AceTime  3.0.0
Date and time classes for Arduino that support timezones from the TZ Database.
zone_policies.cpp
1 // This file was generated by the following script:
2 //
3 // $ /home/brian/src/AceTimeSuite/compiler/src/acetimecompiler/tzcompiler.py
4 // --input_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc/tzfiles
5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbc
6 // --tz_version 2025b
7 // --action zonedb
8 // --language arduino
9 // --scope complete
10 // --db_namespace zonedbc
11 // --zi_namespace complete::Info
12 // --start_year 1800
13 // --until_year 2200
14 //
15 // using the TZ Database files
16 //
17 // africa
18 // antarctica
19 // asia
20 // australasia
21 // backward
22 // etcetera
23 // europe
24 // northamerica
25 // southamerica
26 //
27 // from https://github.com/eggert/tz/releases/tag/2025b
28 //
29 // Supported Zones: 597 (340 zones, 257 links)
30 // Unsupported Zones: 0 (0 zones, 0 links)
31 //
32 // Requested Years: [1800,2200]
33 // Accurate Years: [-32767,32767]
34 //
35 // Original Years: [1844,2087]
36 // Generated Years: [1844,2087]
37 // Lower/Upper Truncated: [False,False]
38 //
39 // Estimator Years: [1800,2090]
40 // Max Buffer Size: 8
41 //
42 // Records:
43 // Infos: 597
44 // Eras: 1956
45 // Policies: 134
46 // Rules: 2235
47 //
48 // Memory (8-bits):
49 // Context: 16
50 // Rules: 26820
51 // Policies: 402
52 // Eras: 29340
53 // Zones: 4420
54 // Links: 3341
55 // Registry: 1194
56 // Formats: 486
57 // Letters: 160
58 // Fragments: 150
59 // Names: 5660 (original: 9094)
60 // TOTAL: 71989
61 //
62 // Memory (32-bits):
63 // Context: 24
64 // Rules: 26820
65 // Policies: 1072
66 // Eras: 39120
67 // Zones: 8160
68 // Links: 6168
69 // Registry: 2388
70 // Formats: 486
71 // Letters: 216
72 // Fragments: 178
73 // Names: 5660 (original: 9094)
74 // TOTAL: 90292
75 //
76 // DO NOT EDIT
77 
78 #include <zoneinfo/compat.h>
79 #include "zone_policies.h"
80 
81 namespace ace_time {
82 namespace zonedbc {
83 
84 //---------------------------------------------------------------------------
85 // Policies: 134
86 // Rules: 2235
87 //---------------------------------------------------------------------------
88 
89 //---------------------------------------------------------------------------
90 // Policy name: AN
91 // Rules: 17
92 //---------------------------------------------------------------------------
93 
94 static const complete::Info::ZoneRule kZoneRulesAN[] ACE_TIME_PROGMEM = {
95  // Anchor: Rule AN 1972 only - Feb 27 2:00s 0 S
96  {
97  -32767 /*fromYear*/,
98  -32767 /*toYear*/,
99  1 /*inMonth*/,
100  0 /*onDayOfWeek*/,
101  1 /*onDayOfMonth*/,
102  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
103  0 /*atTimeCode (0/15)*/,
104  0 /*deltaMinutes*/,
105  25 /*letterIndex ("S")*/,
106  },
107  // Rule AN 1971 1985 - Oct lastSun 2:00s 1:00 D
108  {
109  1971 /*fromYear*/,
110  1985 /*toYear*/,
111  10 /*inMonth*/,
112  7 /*onDayOfWeek*/,
113  0 /*onDayOfMonth*/,
114  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
115  480 /*atTimeCode (7200/15)*/,
116  60 /*deltaMinutes*/,
117  13 /*letterIndex ("D")*/,
118  },
119  // Rule AN 1972 only - Feb 27 2:00s 0 S
120  {
121  1972 /*fromYear*/,
122  1972 /*toYear*/,
123  2 /*inMonth*/,
124  0 /*onDayOfWeek*/,
125  27 /*onDayOfMonth*/,
126  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
127  480 /*atTimeCode (7200/15)*/,
128  0 /*deltaMinutes*/,
129  25 /*letterIndex ("S")*/,
130  },
131  // Rule AN 1973 1981 - Mar Sun>=1 2:00s 0 S
132  {
133  1973 /*fromYear*/,
134  1981 /*toYear*/,
135  3 /*inMonth*/,
136  7 /*onDayOfWeek*/,
137  1 /*onDayOfMonth*/,
138  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
139  480 /*atTimeCode (7200/15)*/,
140  0 /*deltaMinutes*/,
141  25 /*letterIndex ("S")*/,
142  },
143  // Rule AN 1982 only - Apr Sun>=1 2:00s 0 S
144  {
145  1982 /*fromYear*/,
146  1982 /*toYear*/,
147  4 /*inMonth*/,
148  7 /*onDayOfWeek*/,
149  1 /*onDayOfMonth*/,
150  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
151  480 /*atTimeCode (7200/15)*/,
152  0 /*deltaMinutes*/,
153  25 /*letterIndex ("S")*/,
154  },
155  // Rule AN 1983 1985 - Mar Sun>=1 2:00s 0 S
156  {
157  1983 /*fromYear*/,
158  1985 /*toYear*/,
159  3 /*inMonth*/,
160  7 /*onDayOfWeek*/,
161  1 /*onDayOfMonth*/,
162  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
163  480 /*atTimeCode (7200/15)*/,
164  0 /*deltaMinutes*/,
165  25 /*letterIndex ("S")*/,
166  },
167  // Rule AN 1986 1989 - Mar Sun>=15 2:00s 0 S
168  {
169  1986 /*fromYear*/,
170  1989 /*toYear*/,
171  3 /*inMonth*/,
172  7 /*onDayOfWeek*/,
173  15 /*onDayOfMonth*/,
174  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
175  480 /*atTimeCode (7200/15)*/,
176  0 /*deltaMinutes*/,
177  25 /*letterIndex ("S")*/,
178  },
179  // Rule AN 1986 only - Oct 19 2:00s 1:00 D
180  {
181  1986 /*fromYear*/,
182  1986 /*toYear*/,
183  10 /*inMonth*/,
184  0 /*onDayOfWeek*/,
185  19 /*onDayOfMonth*/,
186  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
187  480 /*atTimeCode (7200/15)*/,
188  60 /*deltaMinutes*/,
189  13 /*letterIndex ("D")*/,
190  },
191  // Rule AN 1987 1999 - Oct lastSun 2:00s 1:00 D
192  {
193  1987 /*fromYear*/,
194  1999 /*toYear*/,
195  10 /*inMonth*/,
196  7 /*onDayOfWeek*/,
197  0 /*onDayOfMonth*/,
198  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
199  480 /*atTimeCode (7200/15)*/,
200  60 /*deltaMinutes*/,
201  13 /*letterIndex ("D")*/,
202  },
203  // Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 S
204  {
205  1990 /*fromYear*/,
206  1995 /*toYear*/,
207  3 /*inMonth*/,
208  7 /*onDayOfWeek*/,
209  1 /*onDayOfMonth*/,
210  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
211  480 /*atTimeCode (7200/15)*/,
212  0 /*deltaMinutes*/,
213  25 /*letterIndex ("S")*/,
214  },
215  // Rule AN 1996 2005 - Mar lastSun 2:00s 0 S
216  {
217  1996 /*fromYear*/,
218  2005 /*toYear*/,
219  3 /*inMonth*/,
220  7 /*onDayOfWeek*/,
221  0 /*onDayOfMonth*/,
222  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
223  480 /*atTimeCode (7200/15)*/,
224  0 /*deltaMinutes*/,
225  25 /*letterIndex ("S")*/,
226  },
227  // Rule AN 2000 only - Aug lastSun 2:00s 1:00 D
228  {
229  2000 /*fromYear*/,
230  2000 /*toYear*/,
231  8 /*inMonth*/,
232  7 /*onDayOfWeek*/,
233  0 /*onDayOfMonth*/,
234  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
235  480 /*atTimeCode (7200/15)*/,
236  60 /*deltaMinutes*/,
237  13 /*letterIndex ("D")*/,
238  },
239  // Rule AN 2001 2007 - Oct lastSun 2:00s 1:00 D
240  {
241  2001 /*fromYear*/,
242  2007 /*toYear*/,
243  10 /*inMonth*/,
244  7 /*onDayOfWeek*/,
245  0 /*onDayOfMonth*/,
246  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
247  480 /*atTimeCode (7200/15)*/,
248  60 /*deltaMinutes*/,
249  13 /*letterIndex ("D")*/,
250  },
251  // Rule AN 2006 only - Apr Sun>=1 2:00s 0 S
252  {
253  2006 /*fromYear*/,
254  2006 /*toYear*/,
255  4 /*inMonth*/,
256  7 /*onDayOfWeek*/,
257  1 /*onDayOfMonth*/,
258  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
259  480 /*atTimeCode (7200/15)*/,
260  0 /*deltaMinutes*/,
261  25 /*letterIndex ("S")*/,
262  },
263  // Rule AN 2007 only - Mar lastSun 2:00s 0 S
264  {
265  2007 /*fromYear*/,
266  2007 /*toYear*/,
267  3 /*inMonth*/,
268  7 /*onDayOfWeek*/,
269  0 /*onDayOfMonth*/,
270  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
271  480 /*atTimeCode (7200/15)*/,
272  0 /*deltaMinutes*/,
273  25 /*letterIndex ("S")*/,
274  },
275  // Rule AN 2008 max - Apr Sun>=1 2:00s 0 S
276  {
277  2008 /*fromYear*/,
278  32766 /*toYear*/,
279  4 /*inMonth*/,
280  7 /*onDayOfWeek*/,
281  1 /*onDayOfMonth*/,
282  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
283  480 /*atTimeCode (7200/15)*/,
284  0 /*deltaMinutes*/,
285  25 /*letterIndex ("S")*/,
286  },
287  // Rule AN 2008 max - Oct Sun>=1 2:00s 1:00 D
288  {
289  2008 /*fromYear*/,
290  32766 /*toYear*/,
291  10 /*inMonth*/,
292  7 /*onDayOfWeek*/,
293  1 /*onDayOfMonth*/,
294  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
295  480 /*atTimeCode (7200/15)*/,
296  60 /*deltaMinutes*/,
297  13 /*letterIndex ("D")*/,
298  },
299 
300 };
301 
302 const complete::Info::ZonePolicy kZonePolicyAN ACE_TIME_PROGMEM = {
303  kZoneRulesAN /*rules*/,
304  17 /*numRules*/,
305 };
306 
307 //---------------------------------------------------------------------------
308 // Policy name: AQ
309 // Rules: 5
310 //---------------------------------------------------------------------------
311 
312 static const complete::Info::ZoneRule kZoneRulesAQ[] ACE_TIME_PROGMEM = {
313  // Anchor: Rule AQ 1972 only - Feb lastSun 2:00s 0 S
314  {
315  -32767 /*fromYear*/,
316  -32767 /*toYear*/,
317  1 /*inMonth*/,
318  0 /*onDayOfWeek*/,
319  1 /*onDayOfMonth*/,
320  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
321  0 /*atTimeCode (0/15)*/,
322  0 /*deltaMinutes*/,
323  25 /*letterIndex ("S")*/,
324  },
325  // Rule AQ 1971 only - Oct lastSun 2:00s 1:00 D
326  {
327  1971 /*fromYear*/,
328  1971 /*toYear*/,
329  10 /*inMonth*/,
330  7 /*onDayOfWeek*/,
331  0 /*onDayOfMonth*/,
332  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
333  480 /*atTimeCode (7200/15)*/,
334  60 /*deltaMinutes*/,
335  13 /*letterIndex ("D")*/,
336  },
337  // Rule AQ 1972 only - Feb lastSun 2:00s 0 S
338  {
339  1972 /*fromYear*/,
340  1972 /*toYear*/,
341  2 /*inMonth*/,
342  7 /*onDayOfWeek*/,
343  0 /*onDayOfMonth*/,
344  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
345  480 /*atTimeCode (7200/15)*/,
346  0 /*deltaMinutes*/,
347  25 /*letterIndex ("S")*/,
348  },
349  // Rule AQ 1989 1991 - Oct lastSun 2:00s 1:00 D
350  {
351  1989 /*fromYear*/,
352  1991 /*toYear*/,
353  10 /*inMonth*/,
354  7 /*onDayOfWeek*/,
355  0 /*onDayOfMonth*/,
356  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
357  480 /*atTimeCode (7200/15)*/,
358  60 /*deltaMinutes*/,
359  13 /*letterIndex ("D")*/,
360  },
361  // Rule AQ 1990 1992 - Mar Sun>=1 2:00s 0 S
362  {
363  1990 /*fromYear*/,
364  1992 /*toYear*/,
365  3 /*inMonth*/,
366  7 /*onDayOfWeek*/,
367  1 /*onDayOfMonth*/,
368  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
369  480 /*atTimeCode (7200/15)*/,
370  0 /*deltaMinutes*/,
371  25 /*letterIndex ("S")*/,
372  },
373 
374 };
375 
376 const complete::Info::ZonePolicy kZonePolicyAQ ACE_TIME_PROGMEM = {
377  kZoneRulesAQ /*rules*/,
378  5 /*numRules*/,
379 };
380 
381 //---------------------------------------------------------------------------
382 // Policy name: AS
383 // Rules: 16
384 //---------------------------------------------------------------------------
385 
386 static const complete::Info::ZoneRule kZoneRulesAS[] ACE_TIME_PROGMEM = {
387  // Anchor: Rule AS 1972 only - Feb 27 2:00s 0 S
388  {
389  -32767 /*fromYear*/,
390  -32767 /*toYear*/,
391  1 /*inMonth*/,
392  0 /*onDayOfWeek*/,
393  1 /*onDayOfMonth*/,
394  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
395  0 /*atTimeCode (0/15)*/,
396  0 /*deltaMinutes*/,
397  25 /*letterIndex ("S")*/,
398  },
399  // Rule AS 1971 1985 - Oct lastSun 2:00s 1:00 D
400  {
401  1971 /*fromYear*/,
402  1985 /*toYear*/,
403  10 /*inMonth*/,
404  7 /*onDayOfWeek*/,
405  0 /*onDayOfMonth*/,
406  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
407  480 /*atTimeCode (7200/15)*/,
408  60 /*deltaMinutes*/,
409  13 /*letterIndex ("D")*/,
410  },
411  // Rule AS 1986 only - Oct 19 2:00s 1:00 D
412  {
413  1986 /*fromYear*/,
414  1986 /*toYear*/,
415  10 /*inMonth*/,
416  0 /*onDayOfWeek*/,
417  19 /*onDayOfMonth*/,
418  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
419  480 /*atTimeCode (7200/15)*/,
420  60 /*deltaMinutes*/,
421  13 /*letterIndex ("D")*/,
422  },
423  // Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
424  {
425  1987 /*fromYear*/,
426  2007 /*toYear*/,
427  10 /*inMonth*/,
428  7 /*onDayOfWeek*/,
429  0 /*onDayOfMonth*/,
430  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
431  480 /*atTimeCode (7200/15)*/,
432  60 /*deltaMinutes*/,
433  13 /*letterIndex ("D")*/,
434  },
435  // Rule AS 1972 only - Feb 27 2:00s 0 S
436  {
437  1972 /*fromYear*/,
438  1972 /*toYear*/,
439  2 /*inMonth*/,
440  0 /*onDayOfWeek*/,
441  27 /*onDayOfMonth*/,
442  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
443  480 /*atTimeCode (7200/15)*/,
444  0 /*deltaMinutes*/,
445  25 /*letterIndex ("S")*/,
446  },
447  // Rule AS 1973 1985 - Mar Sun>=1 2:00s 0 S
448  {
449  1973 /*fromYear*/,
450  1985 /*toYear*/,
451  3 /*inMonth*/,
452  7 /*onDayOfWeek*/,
453  1 /*onDayOfMonth*/,
454  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
455  480 /*atTimeCode (7200/15)*/,
456  0 /*deltaMinutes*/,
457  25 /*letterIndex ("S")*/,
458  },
459  // Rule AS 1986 1990 - Mar Sun>=15 2:00s 0 S
460  {
461  1986 /*fromYear*/,
462  1990 /*toYear*/,
463  3 /*inMonth*/,
464  7 /*onDayOfWeek*/,
465  15 /*onDayOfMonth*/,
466  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
467  480 /*atTimeCode (7200/15)*/,
468  0 /*deltaMinutes*/,
469  25 /*letterIndex ("S")*/,
470  },
471  // Rule AS 1991 only - Mar 3 2:00s 0 S
472  {
473  1991 /*fromYear*/,
474  1991 /*toYear*/,
475  3 /*inMonth*/,
476  0 /*onDayOfWeek*/,
477  3 /*onDayOfMonth*/,
478  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
479  480 /*atTimeCode (7200/15)*/,
480  0 /*deltaMinutes*/,
481  25 /*letterIndex ("S")*/,
482  },
483  // Rule AS 1992 only - Mar 22 2:00s 0 S
484  {
485  1992 /*fromYear*/,
486  1992 /*toYear*/,
487  3 /*inMonth*/,
488  0 /*onDayOfWeek*/,
489  22 /*onDayOfMonth*/,
490  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
491  480 /*atTimeCode (7200/15)*/,
492  0 /*deltaMinutes*/,
493  25 /*letterIndex ("S")*/,
494  },
495  // Rule AS 1993 only - Mar 7 2:00s 0 S
496  {
497  1993 /*fromYear*/,
498  1993 /*toYear*/,
499  3 /*inMonth*/,
500  0 /*onDayOfWeek*/,
501  7 /*onDayOfMonth*/,
502  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
503  480 /*atTimeCode (7200/15)*/,
504  0 /*deltaMinutes*/,
505  25 /*letterIndex ("S")*/,
506  },
507  // Rule AS 1994 only - Mar 20 2:00s 0 S
508  {
509  1994 /*fromYear*/,
510  1994 /*toYear*/,
511  3 /*inMonth*/,
512  0 /*onDayOfWeek*/,
513  20 /*onDayOfMonth*/,
514  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
515  480 /*atTimeCode (7200/15)*/,
516  0 /*deltaMinutes*/,
517  25 /*letterIndex ("S")*/,
518  },
519  // Rule AS 1995 2005 - Mar lastSun 2:00s 0 S
520  {
521  1995 /*fromYear*/,
522  2005 /*toYear*/,
523  3 /*inMonth*/,
524  7 /*onDayOfWeek*/,
525  0 /*onDayOfMonth*/,
526  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
527  480 /*atTimeCode (7200/15)*/,
528  0 /*deltaMinutes*/,
529  25 /*letterIndex ("S")*/,
530  },
531  // Rule AS 2006 only - Apr 2 2:00s 0 S
532  {
533  2006 /*fromYear*/,
534  2006 /*toYear*/,
535  4 /*inMonth*/,
536  0 /*onDayOfWeek*/,
537  2 /*onDayOfMonth*/,
538  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
539  480 /*atTimeCode (7200/15)*/,
540  0 /*deltaMinutes*/,
541  25 /*letterIndex ("S")*/,
542  },
543  // Rule AS 2007 only - Mar lastSun 2:00s 0 S
544  {
545  2007 /*fromYear*/,
546  2007 /*toYear*/,
547  3 /*inMonth*/,
548  7 /*onDayOfWeek*/,
549  0 /*onDayOfMonth*/,
550  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
551  480 /*atTimeCode (7200/15)*/,
552  0 /*deltaMinutes*/,
553  25 /*letterIndex ("S")*/,
554  },
555  // Rule AS 2008 max - Apr Sun>=1 2:00s 0 S
556  {
557  2008 /*fromYear*/,
558  32766 /*toYear*/,
559  4 /*inMonth*/,
560  7 /*onDayOfWeek*/,
561  1 /*onDayOfMonth*/,
562  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
563  480 /*atTimeCode (7200/15)*/,
564  0 /*deltaMinutes*/,
565  25 /*letterIndex ("S")*/,
566  },
567  // Rule AS 2008 max - Oct Sun>=1 2:00s 1:00 D
568  {
569  2008 /*fromYear*/,
570  32766 /*toYear*/,
571  10 /*inMonth*/,
572  7 /*onDayOfWeek*/,
573  1 /*onDayOfMonth*/,
574  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
575  480 /*atTimeCode (7200/15)*/,
576  60 /*deltaMinutes*/,
577  13 /*letterIndex ("D")*/,
578  },
579 
580 };
581 
582 const complete::Info::ZonePolicy kZonePolicyAS ACE_TIME_PROGMEM = {
583  kZoneRulesAS /*rules*/,
584  16 /*numRules*/,
585 };
586 
587 //---------------------------------------------------------------------------
588 // Policy name: AT
589 // Rules: 24
590 //---------------------------------------------------------------------------
591 
592 static const complete::Info::ZoneRule kZoneRulesAT[] ACE_TIME_PROGMEM = {
593  // Anchor: Rule AT 1917 only - Mar lastSun 2:00s 0 S
594  {
595  -32767 /*fromYear*/,
596  -32767 /*toYear*/,
597  1 /*inMonth*/,
598  0 /*onDayOfWeek*/,
599  1 /*onDayOfMonth*/,
600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
601  0 /*atTimeCode (0/15)*/,
602  0 /*deltaMinutes*/,
603  25 /*letterIndex ("S")*/,
604  },
605  // Rule AT 1916 only - Oct Sun>=1 2:00s 1:00 D
606  {
607  1916 /*fromYear*/,
608  1916 /*toYear*/,
609  10 /*inMonth*/,
610  7 /*onDayOfWeek*/,
611  1 /*onDayOfMonth*/,
612  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
613  480 /*atTimeCode (7200/15)*/,
614  60 /*deltaMinutes*/,
615  13 /*letterIndex ("D")*/,
616  },
617  // Rule AT 1917 only - Mar lastSun 2:00s 0 S
618  {
619  1917 /*fromYear*/,
620  1917 /*toYear*/,
621  3 /*inMonth*/,
622  7 /*onDayOfWeek*/,
623  0 /*onDayOfMonth*/,
624  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
625  480 /*atTimeCode (7200/15)*/,
626  0 /*deltaMinutes*/,
627  25 /*letterIndex ("S")*/,
628  },
629  // Rule AT 1917 1918 - Oct Sun>=22 2:00s 1:00 D
630  {
631  1917 /*fromYear*/,
632  1918 /*toYear*/,
633  10 /*inMonth*/,
634  7 /*onDayOfWeek*/,
635  22 /*onDayOfMonth*/,
636  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
637  480 /*atTimeCode (7200/15)*/,
638  60 /*deltaMinutes*/,
639  13 /*letterIndex ("D")*/,
640  },
641  // Rule AT 1918 1919 - Mar Sun>=1 2:00s 0 S
642  {
643  1918 /*fromYear*/,
644  1919 /*toYear*/,
645  3 /*inMonth*/,
646  7 /*onDayOfWeek*/,
647  1 /*onDayOfMonth*/,
648  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
649  480 /*atTimeCode (7200/15)*/,
650  0 /*deltaMinutes*/,
651  25 /*letterIndex ("S")*/,
652  },
653  // Rule AT 1967 only - Oct Sun>=1 2:00s 1:00 D
654  {
655  1967 /*fromYear*/,
656  1967 /*toYear*/,
657  10 /*inMonth*/,
658  7 /*onDayOfWeek*/,
659  1 /*onDayOfMonth*/,
660  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
661  480 /*atTimeCode (7200/15)*/,
662  60 /*deltaMinutes*/,
663  13 /*letterIndex ("D")*/,
664  },
665  // Rule AT 1968 only - Mar Sun>=29 2:00s 0 S
666  {
667  1968 /*fromYear*/,
668  1968 /*toYear*/,
669  3 /*inMonth*/,
670  7 /*onDayOfWeek*/,
671  29 /*onDayOfMonth*/,
672  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
673  480 /*atTimeCode (7200/15)*/,
674  0 /*deltaMinutes*/,
675  25 /*letterIndex ("S")*/,
676  },
677  // Rule AT 1968 1985 - Oct lastSun 2:00s 1:00 D
678  {
679  1968 /*fromYear*/,
680  1985 /*toYear*/,
681  10 /*inMonth*/,
682  7 /*onDayOfWeek*/,
683  0 /*onDayOfMonth*/,
684  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
685  480 /*atTimeCode (7200/15)*/,
686  60 /*deltaMinutes*/,
687  13 /*letterIndex ("D")*/,
688  },
689  // Rule AT 1969 1971 - Mar Sun>=8 2:00s 0 S
690  {
691  1969 /*fromYear*/,
692  1971 /*toYear*/,
693  3 /*inMonth*/,
694  7 /*onDayOfWeek*/,
695  8 /*onDayOfMonth*/,
696  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
697  480 /*atTimeCode (7200/15)*/,
698  0 /*deltaMinutes*/,
699  25 /*letterIndex ("S")*/,
700  },
701  // Rule AT 1972 only - Feb lastSun 2:00s 0 S
702  {
703  1972 /*fromYear*/,
704  1972 /*toYear*/,
705  2 /*inMonth*/,
706  7 /*onDayOfWeek*/,
707  0 /*onDayOfMonth*/,
708  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
709  480 /*atTimeCode (7200/15)*/,
710  0 /*deltaMinutes*/,
711  25 /*letterIndex ("S")*/,
712  },
713  // Rule AT 1973 1981 - Mar Sun>=1 2:00s 0 S
714  {
715  1973 /*fromYear*/,
716  1981 /*toYear*/,
717  3 /*inMonth*/,
718  7 /*onDayOfWeek*/,
719  1 /*onDayOfMonth*/,
720  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
721  480 /*atTimeCode (7200/15)*/,
722  0 /*deltaMinutes*/,
723  25 /*letterIndex ("S")*/,
724  },
725  // Rule AT 1982 1983 - Mar lastSun 2:00s 0 S
726  {
727  1982 /*fromYear*/,
728  1983 /*toYear*/,
729  3 /*inMonth*/,
730  7 /*onDayOfWeek*/,
731  0 /*onDayOfMonth*/,
732  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
733  480 /*atTimeCode (7200/15)*/,
734  0 /*deltaMinutes*/,
735  25 /*letterIndex ("S")*/,
736  },
737  // Rule AT 1984 1986 - Mar Sun>=1 2:00s 0 S
738  {
739  1984 /*fromYear*/,
740  1986 /*toYear*/,
741  3 /*inMonth*/,
742  7 /*onDayOfWeek*/,
743  1 /*onDayOfMonth*/,
744  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
745  480 /*atTimeCode (7200/15)*/,
746  0 /*deltaMinutes*/,
747  25 /*letterIndex ("S")*/,
748  },
749  // Rule AT 1986 only - Oct Sun>=15 2:00s 1:00 D
750  {
751  1986 /*fromYear*/,
752  1986 /*toYear*/,
753  10 /*inMonth*/,
754  7 /*onDayOfWeek*/,
755  15 /*onDayOfMonth*/,
756  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
757  480 /*atTimeCode (7200/15)*/,
758  60 /*deltaMinutes*/,
759  13 /*letterIndex ("D")*/,
760  },
761  // Rule AT 1987 1990 - Mar Sun>=15 2:00s 0 S
762  {
763  1987 /*fromYear*/,
764  1990 /*toYear*/,
765  3 /*inMonth*/,
766  7 /*onDayOfWeek*/,
767  15 /*onDayOfMonth*/,
768  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
769  480 /*atTimeCode (7200/15)*/,
770  0 /*deltaMinutes*/,
771  25 /*letterIndex ("S")*/,
772  },
773  // Rule AT 1987 only - Oct Sun>=22 2:00s 1:00 D
774  {
775  1987 /*fromYear*/,
776  1987 /*toYear*/,
777  10 /*inMonth*/,
778  7 /*onDayOfWeek*/,
779  22 /*onDayOfMonth*/,
780  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
781  480 /*atTimeCode (7200/15)*/,
782  60 /*deltaMinutes*/,
783  13 /*letterIndex ("D")*/,
784  },
785  // Rule AT 1988 1990 - Oct lastSun 2:00s 1:00 D
786  {
787  1988 /*fromYear*/,
788  1990 /*toYear*/,
789  10 /*inMonth*/,
790  7 /*onDayOfWeek*/,
791  0 /*onDayOfMonth*/,
792  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
793  480 /*atTimeCode (7200/15)*/,
794  60 /*deltaMinutes*/,
795  13 /*letterIndex ("D")*/,
796  },
797  // Rule AT 1991 1999 - Oct Sun>=1 2:00s 1:00 D
798  {
799  1991 /*fromYear*/,
800  1999 /*toYear*/,
801  10 /*inMonth*/,
802  7 /*onDayOfWeek*/,
803  1 /*onDayOfMonth*/,
804  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
805  480 /*atTimeCode (7200/15)*/,
806  60 /*deltaMinutes*/,
807  13 /*letterIndex ("D")*/,
808  },
809  // Rule AT 1991 2005 - Mar lastSun 2:00s 0 S
810  {
811  1991 /*fromYear*/,
812  2005 /*toYear*/,
813  3 /*inMonth*/,
814  7 /*onDayOfWeek*/,
815  0 /*onDayOfMonth*/,
816  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
817  480 /*atTimeCode (7200/15)*/,
818  0 /*deltaMinutes*/,
819  25 /*letterIndex ("S")*/,
820  },
821  // Rule AT 2000 only - Aug lastSun 2:00s 1:00 D
822  {
823  2000 /*fromYear*/,
824  2000 /*toYear*/,
825  8 /*inMonth*/,
826  7 /*onDayOfWeek*/,
827  0 /*onDayOfMonth*/,
828  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
829  480 /*atTimeCode (7200/15)*/,
830  60 /*deltaMinutes*/,
831  13 /*letterIndex ("D")*/,
832  },
833  // Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 D
834  {
835  2001 /*fromYear*/,
836  32766 /*toYear*/,
837  10 /*inMonth*/,
838  7 /*onDayOfWeek*/,
839  1 /*onDayOfMonth*/,
840  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
841  480 /*atTimeCode (7200/15)*/,
842  60 /*deltaMinutes*/,
843  13 /*letterIndex ("D")*/,
844  },
845  // Rule AT 2006 only - Apr Sun>=1 2:00s 0 S
846  {
847  2006 /*fromYear*/,
848  2006 /*toYear*/,
849  4 /*inMonth*/,
850  7 /*onDayOfWeek*/,
851  1 /*onDayOfMonth*/,
852  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
853  480 /*atTimeCode (7200/15)*/,
854  0 /*deltaMinutes*/,
855  25 /*letterIndex ("S")*/,
856  },
857  // Rule AT 2007 only - Mar lastSun 2:00s 0 S
858  {
859  2007 /*fromYear*/,
860  2007 /*toYear*/,
861  3 /*inMonth*/,
862  7 /*onDayOfWeek*/,
863  0 /*onDayOfMonth*/,
864  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
865  480 /*atTimeCode (7200/15)*/,
866  0 /*deltaMinutes*/,
867  25 /*letterIndex ("S")*/,
868  },
869  // Rule AT 2008 max - Apr Sun>=1 2:00s 0 S
870  {
871  2008 /*fromYear*/,
872  32766 /*toYear*/,
873  4 /*inMonth*/,
874  7 /*onDayOfWeek*/,
875  1 /*onDayOfMonth*/,
876  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
877  480 /*atTimeCode (7200/15)*/,
878  0 /*deltaMinutes*/,
879  25 /*letterIndex ("S")*/,
880  },
881 
882 };
883 
884 const complete::Info::ZonePolicy kZonePolicyAT ACE_TIME_PROGMEM = {
885  kZoneRulesAT /*rules*/,
886  24 /*numRules*/,
887 };
888 
889 //---------------------------------------------------------------------------
890 // Policy name: AV
891 // Rules: 15
892 //---------------------------------------------------------------------------
893 
894 static const complete::Info::ZoneRule kZoneRulesAV[] ACE_TIME_PROGMEM = {
895  // Anchor: Rule AV 1972 only - Feb lastSun 2:00s 0 S
896  {
897  -32767 /*fromYear*/,
898  -32767 /*toYear*/,
899  1 /*inMonth*/,
900  0 /*onDayOfWeek*/,
901  1 /*onDayOfMonth*/,
902  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
903  0 /*atTimeCode (0/15)*/,
904  0 /*deltaMinutes*/,
905  25 /*letterIndex ("S")*/,
906  },
907  // Rule AV 1971 1985 - Oct lastSun 2:00s 1:00 D
908  {
909  1971 /*fromYear*/,
910  1985 /*toYear*/,
911  10 /*inMonth*/,
912  7 /*onDayOfWeek*/,
913  0 /*onDayOfMonth*/,
914  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
915  480 /*atTimeCode (7200/15)*/,
916  60 /*deltaMinutes*/,
917  13 /*letterIndex ("D")*/,
918  },
919  // Rule AV 1972 only - Feb lastSun 2:00s 0 S
920  {
921  1972 /*fromYear*/,
922  1972 /*toYear*/,
923  2 /*inMonth*/,
924  7 /*onDayOfWeek*/,
925  0 /*onDayOfMonth*/,
926  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
927  480 /*atTimeCode (7200/15)*/,
928  0 /*deltaMinutes*/,
929  25 /*letterIndex ("S")*/,
930  },
931  // Rule AV 1973 1985 - Mar Sun>=1 2:00s 0 S
932  {
933  1973 /*fromYear*/,
934  1985 /*toYear*/,
935  3 /*inMonth*/,
936  7 /*onDayOfWeek*/,
937  1 /*onDayOfMonth*/,
938  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
939  480 /*atTimeCode (7200/15)*/,
940  0 /*deltaMinutes*/,
941  25 /*letterIndex ("S")*/,
942  },
943  // Rule AV 1986 1990 - Mar Sun>=15 2:00s 0 S
944  {
945  1986 /*fromYear*/,
946  1990 /*toYear*/,
947  3 /*inMonth*/,
948  7 /*onDayOfWeek*/,
949  15 /*onDayOfMonth*/,
950  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
951  480 /*atTimeCode (7200/15)*/,
952  0 /*deltaMinutes*/,
953  25 /*letterIndex ("S")*/,
954  },
955  // Rule AV 1986 1987 - Oct Sun>=15 2:00s 1:00 D
956  {
957  1986 /*fromYear*/,
958  1987 /*toYear*/,
959  10 /*inMonth*/,
960  7 /*onDayOfWeek*/,
961  15 /*onDayOfMonth*/,
962  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
963  480 /*atTimeCode (7200/15)*/,
964  60 /*deltaMinutes*/,
965  13 /*letterIndex ("D")*/,
966  },
967  // Rule AV 1988 1999 - Oct lastSun 2:00s 1:00 D
968  {
969  1988 /*fromYear*/,
970  1999 /*toYear*/,
971  10 /*inMonth*/,
972  7 /*onDayOfWeek*/,
973  0 /*onDayOfMonth*/,
974  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
975  480 /*atTimeCode (7200/15)*/,
976  60 /*deltaMinutes*/,
977  13 /*letterIndex ("D")*/,
978  },
979  // Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 S
980  {
981  1991 /*fromYear*/,
982  1994 /*toYear*/,
983  3 /*inMonth*/,
984  7 /*onDayOfWeek*/,
985  1 /*onDayOfMonth*/,
986  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
987  480 /*atTimeCode (7200/15)*/,
988  0 /*deltaMinutes*/,
989  25 /*letterIndex ("S")*/,
990  },
991  // Rule AV 1995 2005 - Mar lastSun 2:00s 0 S
992  {
993  1995 /*fromYear*/,
994  2005 /*toYear*/,
995  3 /*inMonth*/,
996  7 /*onDayOfWeek*/,
997  0 /*onDayOfMonth*/,
998  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
999  480 /*atTimeCode (7200/15)*/,
1000  0 /*deltaMinutes*/,
1001  25 /*letterIndex ("S")*/,
1002  },
1003  // Rule AV 2000 only - Aug lastSun 2:00s 1:00 D
1004  {
1005  2000 /*fromYear*/,
1006  2000 /*toYear*/,
1007  8 /*inMonth*/,
1008  7 /*onDayOfWeek*/,
1009  0 /*onDayOfMonth*/,
1010  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1011  480 /*atTimeCode (7200/15)*/,
1012  60 /*deltaMinutes*/,
1013  13 /*letterIndex ("D")*/,
1014  },
1015  // Rule AV 2001 2007 - Oct lastSun 2:00s 1:00 D
1016  {
1017  2001 /*fromYear*/,
1018  2007 /*toYear*/,
1019  10 /*inMonth*/,
1020  7 /*onDayOfWeek*/,
1021  0 /*onDayOfMonth*/,
1022  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1023  480 /*atTimeCode (7200/15)*/,
1024  60 /*deltaMinutes*/,
1025  13 /*letterIndex ("D")*/,
1026  },
1027  // Rule AV 2006 only - Apr Sun>=1 2:00s 0 S
1028  {
1029  2006 /*fromYear*/,
1030  2006 /*toYear*/,
1031  4 /*inMonth*/,
1032  7 /*onDayOfWeek*/,
1033  1 /*onDayOfMonth*/,
1034  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1035  480 /*atTimeCode (7200/15)*/,
1036  0 /*deltaMinutes*/,
1037  25 /*letterIndex ("S")*/,
1038  },
1039  // Rule AV 2007 only - Mar lastSun 2:00s 0 S
1040  {
1041  2007 /*fromYear*/,
1042  2007 /*toYear*/,
1043  3 /*inMonth*/,
1044  7 /*onDayOfWeek*/,
1045  0 /*onDayOfMonth*/,
1046  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1047  480 /*atTimeCode (7200/15)*/,
1048  0 /*deltaMinutes*/,
1049  25 /*letterIndex ("S")*/,
1050  },
1051  // Rule AV 2008 max - Apr Sun>=1 2:00s 0 S
1052  {
1053  2008 /*fromYear*/,
1054  32766 /*toYear*/,
1055  4 /*inMonth*/,
1056  7 /*onDayOfWeek*/,
1057  1 /*onDayOfMonth*/,
1058  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1059  480 /*atTimeCode (7200/15)*/,
1060  0 /*deltaMinutes*/,
1061  25 /*letterIndex ("S")*/,
1062  },
1063  // Rule AV 2008 max - Oct Sun>=1 2:00s 1:00 D
1064  {
1065  2008 /*fromYear*/,
1066  32766 /*toYear*/,
1067  10 /*inMonth*/,
1068  7 /*onDayOfWeek*/,
1069  1 /*onDayOfMonth*/,
1070  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1071  480 /*atTimeCode (7200/15)*/,
1072  60 /*deltaMinutes*/,
1073  13 /*letterIndex ("D")*/,
1074  },
1075 
1076 };
1077 
1078 const complete::Info::ZonePolicy kZonePolicyAV ACE_TIME_PROGMEM = {
1079  kZoneRulesAV /*rules*/,
1080  15 /*numRules*/,
1081 };
1082 
1083 //---------------------------------------------------------------------------
1084 // Policy name: AW
1085 // Rules: 10
1086 //---------------------------------------------------------------------------
1087 
1088 static const complete::Info::ZoneRule kZoneRulesAW[] ACE_TIME_PROGMEM = {
1089  // Anchor: Rule AW 1975 only - Mar Sun>=1 2:00s 0 S
1090  {
1091  -32767 /*fromYear*/,
1092  -32767 /*toYear*/,
1093  1 /*inMonth*/,
1094  0 /*onDayOfWeek*/,
1095  1 /*onDayOfMonth*/,
1096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1097  0 /*atTimeCode (0/15)*/,
1098  0 /*deltaMinutes*/,
1099  25 /*letterIndex ("S")*/,
1100  },
1101  // Rule AW 1974 only - Oct lastSun 2:00s 1:00 D
1102  {
1103  1974 /*fromYear*/,
1104  1974 /*toYear*/,
1105  10 /*inMonth*/,
1106  7 /*onDayOfWeek*/,
1107  0 /*onDayOfMonth*/,
1108  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1109  480 /*atTimeCode (7200/15)*/,
1110  60 /*deltaMinutes*/,
1111  13 /*letterIndex ("D")*/,
1112  },
1113  // Rule AW 1975 only - Mar Sun>=1 2:00s 0 S
1114  {
1115  1975 /*fromYear*/,
1116  1975 /*toYear*/,
1117  3 /*inMonth*/,
1118  7 /*onDayOfWeek*/,
1119  1 /*onDayOfMonth*/,
1120  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1121  480 /*atTimeCode (7200/15)*/,
1122  0 /*deltaMinutes*/,
1123  25 /*letterIndex ("S")*/,
1124  },
1125  // Rule AW 1983 only - Oct lastSun 2:00s 1:00 D
1126  {
1127  1983 /*fromYear*/,
1128  1983 /*toYear*/,
1129  10 /*inMonth*/,
1130  7 /*onDayOfWeek*/,
1131  0 /*onDayOfMonth*/,
1132  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1133  480 /*atTimeCode (7200/15)*/,
1134  60 /*deltaMinutes*/,
1135  13 /*letterIndex ("D")*/,
1136  },
1137  // Rule AW 1984 only - Mar Sun>=1 2:00s 0 S
1138  {
1139  1984 /*fromYear*/,
1140  1984 /*toYear*/,
1141  3 /*inMonth*/,
1142  7 /*onDayOfWeek*/,
1143  1 /*onDayOfMonth*/,
1144  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1145  480 /*atTimeCode (7200/15)*/,
1146  0 /*deltaMinutes*/,
1147  25 /*letterIndex ("S")*/,
1148  },
1149  // Rule AW 1991 only - Nov 17 2:00s 1:00 D
1150  {
1151  1991 /*fromYear*/,
1152  1991 /*toYear*/,
1153  11 /*inMonth*/,
1154  0 /*onDayOfWeek*/,
1155  17 /*onDayOfMonth*/,
1156  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1157  480 /*atTimeCode (7200/15)*/,
1158  60 /*deltaMinutes*/,
1159  13 /*letterIndex ("D")*/,
1160  },
1161  // Rule AW 1992 only - Mar Sun>=1 2:00s 0 S
1162  {
1163  1992 /*fromYear*/,
1164  1992 /*toYear*/,
1165  3 /*inMonth*/,
1166  7 /*onDayOfWeek*/,
1167  1 /*onDayOfMonth*/,
1168  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1169  480 /*atTimeCode (7200/15)*/,
1170  0 /*deltaMinutes*/,
1171  25 /*letterIndex ("S")*/,
1172  },
1173  // Rule AW 2006 only - Dec 3 2:00s 1:00 D
1174  {
1175  2006 /*fromYear*/,
1176  2006 /*toYear*/,
1177  12 /*inMonth*/,
1178  0 /*onDayOfWeek*/,
1179  3 /*onDayOfMonth*/,
1180  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1181  480 /*atTimeCode (7200/15)*/,
1182  60 /*deltaMinutes*/,
1183  13 /*letterIndex ("D")*/,
1184  },
1185  // Rule AW 2007 2009 - Mar lastSun 2:00s 0 S
1186  {
1187  2007 /*fromYear*/,
1188  2009 /*toYear*/,
1189  3 /*inMonth*/,
1190  7 /*onDayOfWeek*/,
1191  0 /*onDayOfMonth*/,
1192  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1193  480 /*atTimeCode (7200/15)*/,
1194  0 /*deltaMinutes*/,
1195  25 /*letterIndex ("S")*/,
1196  },
1197  // Rule AW 2007 2008 - Oct lastSun 2:00s 1:00 D
1198  {
1199  2007 /*fromYear*/,
1200  2008 /*toYear*/,
1201  10 /*inMonth*/,
1202  7 /*onDayOfWeek*/,
1203  0 /*onDayOfMonth*/,
1204  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1205  480 /*atTimeCode (7200/15)*/,
1206  60 /*deltaMinutes*/,
1207  13 /*letterIndex ("D")*/,
1208  },
1209 
1210 };
1211 
1212 const complete::Info::ZonePolicy kZonePolicyAW ACE_TIME_PROGMEM = {
1213  kZoneRulesAW /*rules*/,
1214  10 /*numRules*/,
1215 };
1216 
1217 //---------------------------------------------------------------------------
1218 // Policy name: Albania
1219 // Rules: 26
1220 //---------------------------------------------------------------------------
1221 
1222 static const complete::Info::ZoneRule kZoneRulesAlbania[] ACE_TIME_PROGMEM = {
1223  // Anchor: Rule Albania 1942 only - Nov 2 3:00 0 -
1224  {
1225  -32767 /*fromYear*/,
1226  -32767 /*toYear*/,
1227  1 /*inMonth*/,
1228  0 /*onDayOfWeek*/,
1229  1 /*onDayOfMonth*/,
1230  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1231  0 /*atTimeCode (0/15)*/,
1232  0 /*deltaMinutes*/,
1233  0 /*letterIndex ("")*/,
1234  },
1235  // Rule Albania 1940 only - Jun 16 0:00 1:00 S
1236  {
1237  1940 /*fromYear*/,
1238  1940 /*toYear*/,
1239  6 /*inMonth*/,
1240  0 /*onDayOfWeek*/,
1241  16 /*onDayOfMonth*/,
1242  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1243  0 /*atTimeCode (0/15)*/,
1244  60 /*deltaMinutes*/,
1245  25 /*letterIndex ("S")*/,
1246  },
1247  // Rule Albania 1942 only - Nov 2 3:00 0 -
1248  {
1249  1942 /*fromYear*/,
1250  1942 /*toYear*/,
1251  11 /*inMonth*/,
1252  0 /*onDayOfWeek*/,
1253  2 /*onDayOfMonth*/,
1254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1255  720 /*atTimeCode (10800/15)*/,
1256  0 /*deltaMinutes*/,
1257  0 /*letterIndex ("")*/,
1258  },
1259  // Rule Albania 1943 only - Mar 29 2:00 1:00 S
1260  {
1261  1943 /*fromYear*/,
1262  1943 /*toYear*/,
1263  3 /*inMonth*/,
1264  0 /*onDayOfWeek*/,
1265  29 /*onDayOfMonth*/,
1266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1267  480 /*atTimeCode (7200/15)*/,
1268  60 /*deltaMinutes*/,
1269  25 /*letterIndex ("S")*/,
1270  },
1271  // Rule Albania 1943 only - Apr 10 3:00 0 -
1272  {
1273  1943 /*fromYear*/,
1274  1943 /*toYear*/,
1275  4 /*inMonth*/,
1276  0 /*onDayOfWeek*/,
1277  10 /*onDayOfMonth*/,
1278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1279  720 /*atTimeCode (10800/15)*/,
1280  0 /*deltaMinutes*/,
1281  0 /*letterIndex ("")*/,
1282  },
1283  // Rule Albania 1974 only - May 4 0:00 1:00 S
1284  {
1285  1974 /*fromYear*/,
1286  1974 /*toYear*/,
1287  5 /*inMonth*/,
1288  0 /*onDayOfWeek*/,
1289  4 /*onDayOfMonth*/,
1290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1291  0 /*atTimeCode (0/15)*/,
1292  60 /*deltaMinutes*/,
1293  25 /*letterIndex ("S")*/,
1294  },
1295  // Rule Albania 1974 only - Oct 2 0:00 0 -
1296  {
1297  1974 /*fromYear*/,
1298  1974 /*toYear*/,
1299  10 /*inMonth*/,
1300  0 /*onDayOfWeek*/,
1301  2 /*onDayOfMonth*/,
1302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1303  0 /*atTimeCode (0/15)*/,
1304  0 /*deltaMinutes*/,
1305  0 /*letterIndex ("")*/,
1306  },
1307  // Rule Albania 1975 only - May 1 0:00 1:00 S
1308  {
1309  1975 /*fromYear*/,
1310  1975 /*toYear*/,
1311  5 /*inMonth*/,
1312  0 /*onDayOfWeek*/,
1313  1 /*onDayOfMonth*/,
1314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1315  0 /*atTimeCode (0/15)*/,
1316  60 /*deltaMinutes*/,
1317  25 /*letterIndex ("S")*/,
1318  },
1319  // Rule Albania 1975 only - Oct 2 0:00 0 -
1320  {
1321  1975 /*fromYear*/,
1322  1975 /*toYear*/,
1323  10 /*inMonth*/,
1324  0 /*onDayOfWeek*/,
1325  2 /*onDayOfMonth*/,
1326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1327  0 /*atTimeCode (0/15)*/,
1328  0 /*deltaMinutes*/,
1329  0 /*letterIndex ("")*/,
1330  },
1331  // Rule Albania 1976 only - May 2 0:00 1:00 S
1332  {
1333  1976 /*fromYear*/,
1334  1976 /*toYear*/,
1335  5 /*inMonth*/,
1336  0 /*onDayOfWeek*/,
1337  2 /*onDayOfMonth*/,
1338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1339  0 /*atTimeCode (0/15)*/,
1340  60 /*deltaMinutes*/,
1341  25 /*letterIndex ("S")*/,
1342  },
1343  // Rule Albania 1976 only - Oct 3 0:00 0 -
1344  {
1345  1976 /*fromYear*/,
1346  1976 /*toYear*/,
1347  10 /*inMonth*/,
1348  0 /*onDayOfWeek*/,
1349  3 /*onDayOfMonth*/,
1350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1351  0 /*atTimeCode (0/15)*/,
1352  0 /*deltaMinutes*/,
1353  0 /*letterIndex ("")*/,
1354  },
1355  // Rule Albania 1977 only - May 8 0:00 1:00 S
1356  {
1357  1977 /*fromYear*/,
1358  1977 /*toYear*/,
1359  5 /*inMonth*/,
1360  0 /*onDayOfWeek*/,
1361  8 /*onDayOfMonth*/,
1362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1363  0 /*atTimeCode (0/15)*/,
1364  60 /*deltaMinutes*/,
1365  25 /*letterIndex ("S")*/,
1366  },
1367  // Rule Albania 1977 only - Oct 2 0:00 0 -
1368  {
1369  1977 /*fromYear*/,
1370  1977 /*toYear*/,
1371  10 /*inMonth*/,
1372  0 /*onDayOfWeek*/,
1373  2 /*onDayOfMonth*/,
1374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1375  0 /*atTimeCode (0/15)*/,
1376  0 /*deltaMinutes*/,
1377  0 /*letterIndex ("")*/,
1378  },
1379  // Rule Albania 1978 only - May 6 0:00 1:00 S
1380  {
1381  1978 /*fromYear*/,
1382  1978 /*toYear*/,
1383  5 /*inMonth*/,
1384  0 /*onDayOfWeek*/,
1385  6 /*onDayOfMonth*/,
1386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1387  0 /*atTimeCode (0/15)*/,
1388  60 /*deltaMinutes*/,
1389  25 /*letterIndex ("S")*/,
1390  },
1391  // Rule Albania 1978 only - Oct 1 0:00 0 -
1392  {
1393  1978 /*fromYear*/,
1394  1978 /*toYear*/,
1395  10 /*inMonth*/,
1396  0 /*onDayOfWeek*/,
1397  1 /*onDayOfMonth*/,
1398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1399  0 /*atTimeCode (0/15)*/,
1400  0 /*deltaMinutes*/,
1401  0 /*letterIndex ("")*/,
1402  },
1403  // Rule Albania 1979 only - May 5 0:00 1:00 S
1404  {
1405  1979 /*fromYear*/,
1406  1979 /*toYear*/,
1407  5 /*inMonth*/,
1408  0 /*onDayOfWeek*/,
1409  5 /*onDayOfMonth*/,
1410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1411  0 /*atTimeCode (0/15)*/,
1412  60 /*deltaMinutes*/,
1413  25 /*letterIndex ("S")*/,
1414  },
1415  // Rule Albania 1979 only - Sep 30 0:00 0 -
1416  {
1417  1979 /*fromYear*/,
1418  1979 /*toYear*/,
1419  9 /*inMonth*/,
1420  0 /*onDayOfWeek*/,
1421  30 /*onDayOfMonth*/,
1422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1423  0 /*atTimeCode (0/15)*/,
1424  0 /*deltaMinutes*/,
1425  0 /*letterIndex ("")*/,
1426  },
1427  // Rule Albania 1980 only - May 3 0:00 1:00 S
1428  {
1429  1980 /*fromYear*/,
1430  1980 /*toYear*/,
1431  5 /*inMonth*/,
1432  0 /*onDayOfWeek*/,
1433  3 /*onDayOfMonth*/,
1434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1435  0 /*atTimeCode (0/15)*/,
1436  60 /*deltaMinutes*/,
1437  25 /*letterIndex ("S")*/,
1438  },
1439  // Rule Albania 1980 only - Oct 4 0:00 0 -
1440  {
1441  1980 /*fromYear*/,
1442  1980 /*toYear*/,
1443  10 /*inMonth*/,
1444  0 /*onDayOfWeek*/,
1445  4 /*onDayOfMonth*/,
1446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1447  0 /*atTimeCode (0/15)*/,
1448  0 /*deltaMinutes*/,
1449  0 /*letterIndex ("")*/,
1450  },
1451  // Rule Albania 1981 only - Apr 26 0:00 1:00 S
1452  {
1453  1981 /*fromYear*/,
1454  1981 /*toYear*/,
1455  4 /*inMonth*/,
1456  0 /*onDayOfWeek*/,
1457  26 /*onDayOfMonth*/,
1458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1459  0 /*atTimeCode (0/15)*/,
1460  60 /*deltaMinutes*/,
1461  25 /*letterIndex ("S")*/,
1462  },
1463  // Rule Albania 1981 only - Sep 27 0:00 0 -
1464  {
1465  1981 /*fromYear*/,
1466  1981 /*toYear*/,
1467  9 /*inMonth*/,
1468  0 /*onDayOfWeek*/,
1469  27 /*onDayOfMonth*/,
1470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1471  0 /*atTimeCode (0/15)*/,
1472  0 /*deltaMinutes*/,
1473  0 /*letterIndex ("")*/,
1474  },
1475  // Rule Albania 1982 only - May 2 0:00 1:00 S
1476  {
1477  1982 /*fromYear*/,
1478  1982 /*toYear*/,
1479  5 /*inMonth*/,
1480  0 /*onDayOfWeek*/,
1481  2 /*onDayOfMonth*/,
1482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1483  0 /*atTimeCode (0/15)*/,
1484  60 /*deltaMinutes*/,
1485  25 /*letterIndex ("S")*/,
1486  },
1487  // Rule Albania 1982 only - Oct 3 0:00 0 -
1488  {
1489  1982 /*fromYear*/,
1490  1982 /*toYear*/,
1491  10 /*inMonth*/,
1492  0 /*onDayOfWeek*/,
1493  3 /*onDayOfMonth*/,
1494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1495  0 /*atTimeCode (0/15)*/,
1496  0 /*deltaMinutes*/,
1497  0 /*letterIndex ("")*/,
1498  },
1499  // Rule Albania 1983 only - Apr 18 0:00 1:00 S
1500  {
1501  1983 /*fromYear*/,
1502  1983 /*toYear*/,
1503  4 /*inMonth*/,
1504  0 /*onDayOfWeek*/,
1505  18 /*onDayOfMonth*/,
1506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1507  0 /*atTimeCode (0/15)*/,
1508  60 /*deltaMinutes*/,
1509  25 /*letterIndex ("S")*/,
1510  },
1511  // Rule Albania 1983 only - Oct 1 0:00 0 -
1512  {
1513  1983 /*fromYear*/,
1514  1983 /*toYear*/,
1515  10 /*inMonth*/,
1516  0 /*onDayOfWeek*/,
1517  1 /*onDayOfMonth*/,
1518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1519  0 /*atTimeCode (0/15)*/,
1520  0 /*deltaMinutes*/,
1521  0 /*letterIndex ("")*/,
1522  },
1523  // Rule Albania 1984 only - Apr 1 0:00 1:00 S
1524  {
1525  1984 /*fromYear*/,
1526  1984 /*toYear*/,
1527  4 /*inMonth*/,
1528  0 /*onDayOfWeek*/,
1529  1 /*onDayOfMonth*/,
1530  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1531  0 /*atTimeCode (0/15)*/,
1532  60 /*deltaMinutes*/,
1533  25 /*letterIndex ("S")*/,
1534  },
1535 
1536 };
1537 
1538 const complete::Info::ZonePolicy kZonePolicyAlbania ACE_TIME_PROGMEM = {
1539  kZoneRulesAlbania /*rules*/,
1540  26 /*numRules*/,
1541 };
1542 
1543 //---------------------------------------------------------------------------
1544 // Policy name: Algeria
1545 // Rules: 23
1546 //---------------------------------------------------------------------------
1547 
1548 static const complete::Info::ZoneRule kZoneRulesAlgeria[] ACE_TIME_PROGMEM = {
1549  // Anchor: Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
1550  {
1551  -32767 /*fromYear*/,
1552  -32767 /*toYear*/,
1553  1 /*inMonth*/,
1554  0 /*onDayOfWeek*/,
1555  1 /*onDayOfMonth*/,
1556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1557  0 /*atTimeCode (0/15)*/,
1558  0 /*deltaMinutes*/,
1559  0 /*letterIndex ("")*/,
1560  },
1561  // Rule Algeria 1916 only - Jun 14 23:00s 1:00 S
1562  {
1563  1916 /*fromYear*/,
1564  1916 /*toYear*/,
1565  6 /*inMonth*/,
1566  0 /*onDayOfWeek*/,
1567  14 /*onDayOfMonth*/,
1568  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1569  5520 /*atTimeCode (82800/15)*/,
1570  60 /*deltaMinutes*/,
1571  25 /*letterIndex ("S")*/,
1572  },
1573  // Rule Algeria 1916 1919 - Oct Sun>=1 23:00s 0 -
1574  {
1575  1916 /*fromYear*/,
1576  1919 /*toYear*/,
1577  10 /*inMonth*/,
1578  7 /*onDayOfWeek*/,
1579  1 /*onDayOfMonth*/,
1580  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1581  5520 /*atTimeCode (82800/15)*/,
1582  0 /*deltaMinutes*/,
1583  0 /*letterIndex ("")*/,
1584  },
1585  // Rule Algeria 1917 only - Mar 24 23:00s 1:00 S
1586  {
1587  1917 /*fromYear*/,
1588  1917 /*toYear*/,
1589  3 /*inMonth*/,
1590  0 /*onDayOfWeek*/,
1591  24 /*onDayOfMonth*/,
1592  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1593  5520 /*atTimeCode (82800/15)*/,
1594  60 /*deltaMinutes*/,
1595  25 /*letterIndex ("S")*/,
1596  },
1597  // Rule Algeria 1918 only - Mar 9 23:00s 1:00 S
1598  {
1599  1918 /*fromYear*/,
1600  1918 /*toYear*/,
1601  3 /*inMonth*/,
1602  0 /*onDayOfWeek*/,
1603  9 /*onDayOfMonth*/,
1604  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1605  5520 /*atTimeCode (82800/15)*/,
1606  60 /*deltaMinutes*/,
1607  25 /*letterIndex ("S")*/,
1608  },
1609  // Rule Algeria 1919 only - Mar 1 23:00s 1:00 S
1610  {
1611  1919 /*fromYear*/,
1612  1919 /*toYear*/,
1613  3 /*inMonth*/,
1614  0 /*onDayOfWeek*/,
1615  1 /*onDayOfMonth*/,
1616  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1617  5520 /*atTimeCode (82800/15)*/,
1618  60 /*deltaMinutes*/,
1619  25 /*letterIndex ("S")*/,
1620  },
1621  // Rule Algeria 1920 only - Feb 14 23:00s 1:00 S
1622  {
1623  1920 /*fromYear*/,
1624  1920 /*toYear*/,
1625  2 /*inMonth*/,
1626  0 /*onDayOfWeek*/,
1627  14 /*onDayOfMonth*/,
1628  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1629  5520 /*atTimeCode (82800/15)*/,
1630  60 /*deltaMinutes*/,
1631  25 /*letterIndex ("S")*/,
1632  },
1633  // Rule Algeria 1920 only - Oct 23 23:00s 0 -
1634  {
1635  1920 /*fromYear*/,
1636  1920 /*toYear*/,
1637  10 /*inMonth*/,
1638  0 /*onDayOfWeek*/,
1639  23 /*onDayOfMonth*/,
1640  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1641  5520 /*atTimeCode (82800/15)*/,
1642  0 /*deltaMinutes*/,
1643  0 /*letterIndex ("")*/,
1644  },
1645  // Rule Algeria 1921 only - Mar 14 23:00s 1:00 S
1646  {
1647  1921 /*fromYear*/,
1648  1921 /*toYear*/,
1649  3 /*inMonth*/,
1650  0 /*onDayOfWeek*/,
1651  14 /*onDayOfMonth*/,
1652  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1653  5520 /*atTimeCode (82800/15)*/,
1654  60 /*deltaMinutes*/,
1655  25 /*letterIndex ("S")*/,
1656  },
1657  // Rule Algeria 1921 only - Jun 21 23:00s 0 -
1658  {
1659  1921 /*fromYear*/,
1660  1921 /*toYear*/,
1661  6 /*inMonth*/,
1662  0 /*onDayOfWeek*/,
1663  21 /*onDayOfMonth*/,
1664  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1665  5520 /*atTimeCode (82800/15)*/,
1666  0 /*deltaMinutes*/,
1667  0 /*letterIndex ("")*/,
1668  },
1669  // Rule Algeria 1939 only - Sep 11 23:00s 1:00 S
1670  {
1671  1939 /*fromYear*/,
1672  1939 /*toYear*/,
1673  9 /*inMonth*/,
1674  0 /*onDayOfWeek*/,
1675  11 /*onDayOfMonth*/,
1676  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1677  5520 /*atTimeCode (82800/15)*/,
1678  60 /*deltaMinutes*/,
1679  25 /*letterIndex ("S")*/,
1680  },
1681  // Rule Algeria 1939 only - Nov 19 1:00 0 -
1682  {
1683  1939 /*fromYear*/,
1684  1939 /*toYear*/,
1685  11 /*inMonth*/,
1686  0 /*onDayOfWeek*/,
1687  19 /*onDayOfMonth*/,
1688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1689  240 /*atTimeCode (3600/15)*/,
1690  0 /*deltaMinutes*/,
1691  0 /*letterIndex ("")*/,
1692  },
1693  // Rule Algeria 1944 1945 - Apr Mon>=1 2:00 1:00 S
1694  {
1695  1944 /*fromYear*/,
1696  1945 /*toYear*/,
1697  4 /*inMonth*/,
1698  1 /*onDayOfWeek*/,
1699  1 /*onDayOfMonth*/,
1700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1701  480 /*atTimeCode (7200/15)*/,
1702  60 /*deltaMinutes*/,
1703  25 /*letterIndex ("S")*/,
1704  },
1705  // Rule Algeria 1944 only - Oct 8 2:00 0 -
1706  {
1707  1944 /*fromYear*/,
1708  1944 /*toYear*/,
1709  10 /*inMonth*/,
1710  0 /*onDayOfWeek*/,
1711  8 /*onDayOfMonth*/,
1712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1713  480 /*atTimeCode (7200/15)*/,
1714  0 /*deltaMinutes*/,
1715  0 /*letterIndex ("")*/,
1716  },
1717  // Rule Algeria 1945 only - Sep 16 1:00 0 -
1718  {
1719  1945 /*fromYear*/,
1720  1945 /*toYear*/,
1721  9 /*inMonth*/,
1722  0 /*onDayOfWeek*/,
1723  16 /*onDayOfMonth*/,
1724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1725  240 /*atTimeCode (3600/15)*/,
1726  0 /*deltaMinutes*/,
1727  0 /*letterIndex ("")*/,
1728  },
1729  // Rule Algeria 1971 only - Apr 25 23:00s 1:00 S
1730  {
1731  1971 /*fromYear*/,
1732  1971 /*toYear*/,
1733  4 /*inMonth*/,
1734  0 /*onDayOfWeek*/,
1735  25 /*onDayOfMonth*/,
1736  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1737  5520 /*atTimeCode (82800/15)*/,
1738  60 /*deltaMinutes*/,
1739  25 /*letterIndex ("S")*/,
1740  },
1741  // Rule Algeria 1971 only - Sep 26 23:00s 0 -
1742  {
1743  1971 /*fromYear*/,
1744  1971 /*toYear*/,
1745  9 /*inMonth*/,
1746  0 /*onDayOfWeek*/,
1747  26 /*onDayOfMonth*/,
1748  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
1749  5520 /*atTimeCode (82800/15)*/,
1750  0 /*deltaMinutes*/,
1751  0 /*letterIndex ("")*/,
1752  },
1753  // Rule Algeria 1977 only - May 6 0:00 1:00 S
1754  {
1755  1977 /*fromYear*/,
1756  1977 /*toYear*/,
1757  5 /*inMonth*/,
1758  0 /*onDayOfWeek*/,
1759  6 /*onDayOfMonth*/,
1760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1761  0 /*atTimeCode (0/15)*/,
1762  60 /*deltaMinutes*/,
1763  25 /*letterIndex ("S")*/,
1764  },
1765  // Rule Algeria 1977 only - Oct 21 0:00 0 -
1766  {
1767  1977 /*fromYear*/,
1768  1977 /*toYear*/,
1769  10 /*inMonth*/,
1770  0 /*onDayOfWeek*/,
1771  21 /*onDayOfMonth*/,
1772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1773  0 /*atTimeCode (0/15)*/,
1774  0 /*deltaMinutes*/,
1775  0 /*letterIndex ("")*/,
1776  },
1777  // Rule Algeria 1978 only - Mar 24 1:00 1:00 S
1778  {
1779  1978 /*fromYear*/,
1780  1978 /*toYear*/,
1781  3 /*inMonth*/,
1782  0 /*onDayOfWeek*/,
1783  24 /*onDayOfMonth*/,
1784  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1785  240 /*atTimeCode (3600/15)*/,
1786  60 /*deltaMinutes*/,
1787  25 /*letterIndex ("S")*/,
1788  },
1789  // Rule Algeria 1978 only - Sep 22 3:00 0 -
1790  {
1791  1978 /*fromYear*/,
1792  1978 /*toYear*/,
1793  9 /*inMonth*/,
1794  0 /*onDayOfWeek*/,
1795  22 /*onDayOfMonth*/,
1796  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1797  720 /*atTimeCode (10800/15)*/,
1798  0 /*deltaMinutes*/,
1799  0 /*letterIndex ("")*/,
1800  },
1801  // Rule Algeria 1980 only - Apr 25 0:00 1:00 S
1802  {
1803  1980 /*fromYear*/,
1804  1980 /*toYear*/,
1805  4 /*inMonth*/,
1806  0 /*onDayOfWeek*/,
1807  25 /*onDayOfMonth*/,
1808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1809  0 /*atTimeCode (0/15)*/,
1810  60 /*deltaMinutes*/,
1811  25 /*letterIndex ("S")*/,
1812  },
1813  // Rule Algeria 1980 only - Oct 31 2:00 0 -
1814  {
1815  1980 /*fromYear*/,
1816  1980 /*toYear*/,
1817  10 /*inMonth*/,
1818  0 /*onDayOfWeek*/,
1819  31 /*onDayOfMonth*/,
1820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1821  480 /*atTimeCode (7200/15)*/,
1822  0 /*deltaMinutes*/,
1823  0 /*letterIndex ("")*/,
1824  },
1825 
1826 };
1827 
1828 const complete::Info::ZonePolicy kZonePolicyAlgeria ACE_TIME_PROGMEM = {
1829  kZoneRulesAlgeria /*rules*/,
1830  23 /*numRules*/,
1831 };
1832 
1833 //---------------------------------------------------------------------------
1834 // Policy name: Arg
1835 // Rules: 30
1836 //---------------------------------------------------------------------------
1837 
1838 static const complete::Info::ZoneRule kZoneRulesArg[] ACE_TIME_PROGMEM = {
1839  // Anchor: Rule Arg 1931 only - Apr 1 0:00 0 -
1840  {
1841  -32767 /*fromYear*/,
1842  -32767 /*toYear*/,
1843  1 /*inMonth*/,
1844  0 /*onDayOfWeek*/,
1845  1 /*onDayOfMonth*/,
1846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1847  0 /*atTimeCode (0/15)*/,
1848  0 /*deltaMinutes*/,
1849  0 /*letterIndex ("")*/,
1850  },
1851  // Rule Arg 1930 only - Dec 1 0:00 1:00 -
1852  {
1853  1930 /*fromYear*/,
1854  1930 /*toYear*/,
1855  12 /*inMonth*/,
1856  0 /*onDayOfWeek*/,
1857  1 /*onDayOfMonth*/,
1858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1859  0 /*atTimeCode (0/15)*/,
1860  60 /*deltaMinutes*/,
1861  0 /*letterIndex ("")*/,
1862  },
1863  // Rule Arg 1931 only - Apr 1 0:00 0 -
1864  {
1865  1931 /*fromYear*/,
1866  1931 /*toYear*/,
1867  4 /*inMonth*/,
1868  0 /*onDayOfWeek*/,
1869  1 /*onDayOfMonth*/,
1870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1871  0 /*atTimeCode (0/15)*/,
1872  0 /*deltaMinutes*/,
1873  0 /*letterIndex ("")*/,
1874  },
1875  // Rule Arg 1931 only - Oct 15 0:00 1:00 -
1876  {
1877  1931 /*fromYear*/,
1878  1931 /*toYear*/,
1879  10 /*inMonth*/,
1880  0 /*onDayOfWeek*/,
1881  15 /*onDayOfMonth*/,
1882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1883  0 /*atTimeCode (0/15)*/,
1884  60 /*deltaMinutes*/,
1885  0 /*letterIndex ("")*/,
1886  },
1887  // Rule Arg 1932 1940 - Mar 1 0:00 0 -
1888  {
1889  1932 /*fromYear*/,
1890  1940 /*toYear*/,
1891  3 /*inMonth*/,
1892  0 /*onDayOfWeek*/,
1893  1 /*onDayOfMonth*/,
1894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1895  0 /*atTimeCode (0/15)*/,
1896  0 /*deltaMinutes*/,
1897  0 /*letterIndex ("")*/,
1898  },
1899  // Rule Arg 1932 1939 - Nov 1 0:00 1:00 -
1900  {
1901  1932 /*fromYear*/,
1902  1939 /*toYear*/,
1903  11 /*inMonth*/,
1904  0 /*onDayOfWeek*/,
1905  1 /*onDayOfMonth*/,
1906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1907  0 /*atTimeCode (0/15)*/,
1908  60 /*deltaMinutes*/,
1909  0 /*letterIndex ("")*/,
1910  },
1911  // Rule Arg 1940 only - Jul 1 0:00 1:00 -
1912  {
1913  1940 /*fromYear*/,
1914  1940 /*toYear*/,
1915  7 /*inMonth*/,
1916  0 /*onDayOfWeek*/,
1917  1 /*onDayOfMonth*/,
1918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1919  0 /*atTimeCode (0/15)*/,
1920  60 /*deltaMinutes*/,
1921  0 /*letterIndex ("")*/,
1922  },
1923  // Rule Arg 1941 only - Jun 15 0:00 0 -
1924  {
1925  1941 /*fromYear*/,
1926  1941 /*toYear*/,
1927  6 /*inMonth*/,
1928  0 /*onDayOfWeek*/,
1929  15 /*onDayOfMonth*/,
1930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1931  0 /*atTimeCode (0/15)*/,
1932  0 /*deltaMinutes*/,
1933  0 /*letterIndex ("")*/,
1934  },
1935  // Rule Arg 1941 only - Oct 15 0:00 1:00 -
1936  {
1937  1941 /*fromYear*/,
1938  1941 /*toYear*/,
1939  10 /*inMonth*/,
1940  0 /*onDayOfWeek*/,
1941  15 /*onDayOfMonth*/,
1942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1943  0 /*atTimeCode (0/15)*/,
1944  60 /*deltaMinutes*/,
1945  0 /*letterIndex ("")*/,
1946  },
1947  // Rule Arg 1943 only - Aug 1 0:00 0 -
1948  {
1949  1943 /*fromYear*/,
1950  1943 /*toYear*/,
1951  8 /*inMonth*/,
1952  0 /*onDayOfWeek*/,
1953  1 /*onDayOfMonth*/,
1954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1955  0 /*atTimeCode (0/15)*/,
1956  0 /*deltaMinutes*/,
1957  0 /*letterIndex ("")*/,
1958  },
1959  // Rule Arg 1943 only - Oct 15 0:00 1:00 -
1960  {
1961  1943 /*fromYear*/,
1962  1943 /*toYear*/,
1963  10 /*inMonth*/,
1964  0 /*onDayOfWeek*/,
1965  15 /*onDayOfMonth*/,
1966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1967  0 /*atTimeCode (0/15)*/,
1968  60 /*deltaMinutes*/,
1969  0 /*letterIndex ("")*/,
1970  },
1971  // Rule Arg 1946 only - Mar 1 0:00 0 -
1972  {
1973  1946 /*fromYear*/,
1974  1946 /*toYear*/,
1975  3 /*inMonth*/,
1976  0 /*onDayOfWeek*/,
1977  1 /*onDayOfMonth*/,
1978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1979  0 /*atTimeCode (0/15)*/,
1980  0 /*deltaMinutes*/,
1981  0 /*letterIndex ("")*/,
1982  },
1983  // Rule Arg 1946 only - Oct 1 0:00 1:00 -
1984  {
1985  1946 /*fromYear*/,
1986  1946 /*toYear*/,
1987  10 /*inMonth*/,
1988  0 /*onDayOfWeek*/,
1989  1 /*onDayOfMonth*/,
1990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
1991  0 /*atTimeCode (0/15)*/,
1992  60 /*deltaMinutes*/,
1993  0 /*letterIndex ("")*/,
1994  },
1995  // Rule Arg 1963 only - Oct 1 0:00 0 -
1996  {
1997  1963 /*fromYear*/,
1998  1963 /*toYear*/,
1999  10 /*inMonth*/,
2000  0 /*onDayOfWeek*/,
2001  1 /*onDayOfMonth*/,
2002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2003  0 /*atTimeCode (0/15)*/,
2004  0 /*deltaMinutes*/,
2005  0 /*letterIndex ("")*/,
2006  },
2007  // Rule Arg 1963 only - Dec 15 0:00 1:00 -
2008  {
2009  1963 /*fromYear*/,
2010  1963 /*toYear*/,
2011  12 /*inMonth*/,
2012  0 /*onDayOfWeek*/,
2013  15 /*onDayOfMonth*/,
2014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2015  0 /*atTimeCode (0/15)*/,
2016  60 /*deltaMinutes*/,
2017  0 /*letterIndex ("")*/,
2018  },
2019  // Rule Arg 1964 1966 - Mar 1 0:00 0 -
2020  {
2021  1964 /*fromYear*/,
2022  1966 /*toYear*/,
2023  3 /*inMonth*/,
2024  0 /*onDayOfWeek*/,
2025  1 /*onDayOfMonth*/,
2026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2027  0 /*atTimeCode (0/15)*/,
2028  0 /*deltaMinutes*/,
2029  0 /*letterIndex ("")*/,
2030  },
2031  // Rule Arg 1964 1966 - Oct 15 0:00 1:00 -
2032  {
2033  1964 /*fromYear*/,
2034  1966 /*toYear*/,
2035  10 /*inMonth*/,
2036  0 /*onDayOfWeek*/,
2037  15 /*onDayOfMonth*/,
2038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2039  0 /*atTimeCode (0/15)*/,
2040  60 /*deltaMinutes*/,
2041  0 /*letterIndex ("")*/,
2042  },
2043  // Rule Arg 1967 only - Apr 2 0:00 0 -
2044  {
2045  1967 /*fromYear*/,
2046  1967 /*toYear*/,
2047  4 /*inMonth*/,
2048  0 /*onDayOfWeek*/,
2049  2 /*onDayOfMonth*/,
2050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2051  0 /*atTimeCode (0/15)*/,
2052  0 /*deltaMinutes*/,
2053  0 /*letterIndex ("")*/,
2054  },
2055  // Rule Arg 1967 1968 - Oct Sun>=1 0:00 1:00 -
2056  {
2057  1967 /*fromYear*/,
2058  1968 /*toYear*/,
2059  10 /*inMonth*/,
2060  7 /*onDayOfWeek*/,
2061  1 /*onDayOfMonth*/,
2062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2063  0 /*atTimeCode (0/15)*/,
2064  60 /*deltaMinutes*/,
2065  0 /*letterIndex ("")*/,
2066  },
2067  // Rule Arg 1968 1969 - Apr Sun>=1 0:00 0 -
2068  {
2069  1968 /*fromYear*/,
2070  1969 /*toYear*/,
2071  4 /*inMonth*/,
2072  7 /*onDayOfWeek*/,
2073  1 /*onDayOfMonth*/,
2074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2075  0 /*atTimeCode (0/15)*/,
2076  0 /*deltaMinutes*/,
2077  0 /*letterIndex ("")*/,
2078  },
2079  // Rule Arg 1974 only - Jan 23 0:00 1:00 -
2080  {
2081  1974 /*fromYear*/,
2082  1974 /*toYear*/,
2083  1 /*inMonth*/,
2084  0 /*onDayOfWeek*/,
2085  23 /*onDayOfMonth*/,
2086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2087  0 /*atTimeCode (0/15)*/,
2088  60 /*deltaMinutes*/,
2089  0 /*letterIndex ("")*/,
2090  },
2091  // Rule Arg 1974 only - May 1 0:00 0 -
2092  {
2093  1974 /*fromYear*/,
2094  1974 /*toYear*/,
2095  5 /*inMonth*/,
2096  0 /*onDayOfWeek*/,
2097  1 /*onDayOfMonth*/,
2098  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2099  0 /*atTimeCode (0/15)*/,
2100  0 /*deltaMinutes*/,
2101  0 /*letterIndex ("")*/,
2102  },
2103  // Rule Arg 1988 only - Dec 1 0:00 1:00 -
2104  {
2105  1988 /*fromYear*/,
2106  1988 /*toYear*/,
2107  12 /*inMonth*/,
2108  0 /*onDayOfWeek*/,
2109  1 /*onDayOfMonth*/,
2110  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2111  0 /*atTimeCode (0/15)*/,
2112  60 /*deltaMinutes*/,
2113  0 /*letterIndex ("")*/,
2114  },
2115  // Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
2116  {
2117  1989 /*fromYear*/,
2118  1993 /*toYear*/,
2119  3 /*inMonth*/,
2120  7 /*onDayOfWeek*/,
2121  1 /*onDayOfMonth*/,
2122  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2123  0 /*atTimeCode (0/15)*/,
2124  0 /*deltaMinutes*/,
2125  0 /*letterIndex ("")*/,
2126  },
2127  // Rule Arg 1989 1992 - Oct Sun>=15 0:00 1:00 -
2128  {
2129  1989 /*fromYear*/,
2130  1992 /*toYear*/,
2131  10 /*inMonth*/,
2132  7 /*onDayOfWeek*/,
2133  15 /*onDayOfMonth*/,
2134  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2135  0 /*atTimeCode (0/15)*/,
2136  60 /*deltaMinutes*/,
2137  0 /*letterIndex ("")*/,
2138  },
2139  // Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 -
2140  {
2141  1999 /*fromYear*/,
2142  1999 /*toYear*/,
2143  10 /*inMonth*/,
2144  7 /*onDayOfWeek*/,
2145  1 /*onDayOfMonth*/,
2146  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2147  0 /*atTimeCode (0/15)*/,
2148  60 /*deltaMinutes*/,
2149  0 /*letterIndex ("")*/,
2150  },
2151  // Rule Arg 2000 only - Mar 3 0:00 0 -
2152  {
2153  2000 /*fromYear*/,
2154  2000 /*toYear*/,
2155  3 /*inMonth*/,
2156  0 /*onDayOfWeek*/,
2157  3 /*onDayOfMonth*/,
2158  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2159  0 /*atTimeCode (0/15)*/,
2160  0 /*deltaMinutes*/,
2161  0 /*letterIndex ("")*/,
2162  },
2163  // Rule Arg 2007 only - Dec 30 0:00 1:00 -
2164  {
2165  2007 /*fromYear*/,
2166  2007 /*toYear*/,
2167  12 /*inMonth*/,
2168  0 /*onDayOfWeek*/,
2169  30 /*onDayOfMonth*/,
2170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2171  0 /*atTimeCode (0/15)*/,
2172  60 /*deltaMinutes*/,
2173  0 /*letterIndex ("")*/,
2174  },
2175  // Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 -
2176  {
2177  2008 /*fromYear*/,
2178  2009 /*toYear*/,
2179  3 /*inMonth*/,
2180  7 /*onDayOfWeek*/,
2181  15 /*onDayOfMonth*/,
2182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2183  0 /*atTimeCode (0/15)*/,
2184  0 /*deltaMinutes*/,
2185  0 /*letterIndex ("")*/,
2186  },
2187  // Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
2188  {
2189  2008 /*fromYear*/,
2190  2008 /*toYear*/,
2191  10 /*inMonth*/,
2192  7 /*onDayOfWeek*/,
2193  15 /*onDayOfMonth*/,
2194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2195  0 /*atTimeCode (0/15)*/,
2196  60 /*deltaMinutes*/,
2197  0 /*letterIndex ("")*/,
2198  },
2199 
2200 };
2201 
2202 const complete::Info::ZonePolicy kZonePolicyArg ACE_TIME_PROGMEM = {
2203  kZoneRulesArg /*rules*/,
2204  30 /*numRules*/,
2205 };
2206 
2207 //---------------------------------------------------------------------------
2208 // Policy name: Armenia
2209 // Rules: 3
2210 //---------------------------------------------------------------------------
2211 
2212 static const complete::Info::ZoneRule kZoneRulesArmenia[] ACE_TIME_PROGMEM = {
2213  // Anchor: Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
2214  {
2215  -32767 /*fromYear*/,
2216  -32767 /*toYear*/,
2217  1 /*inMonth*/,
2218  0 /*onDayOfWeek*/,
2219  1 /*onDayOfMonth*/,
2220  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2221  0 /*atTimeCode (0/15)*/,
2222  0 /*deltaMinutes*/,
2223  0 /*letterIndex ("")*/,
2224  },
2225  // Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
2226  {
2227  2011 /*fromYear*/,
2228  2011 /*toYear*/,
2229  3 /*inMonth*/,
2230  7 /*onDayOfWeek*/,
2231  0 /*onDayOfMonth*/,
2232  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2233  480 /*atTimeCode (7200/15)*/,
2234  60 /*deltaMinutes*/,
2235  0 /*letterIndex ("")*/,
2236  },
2237  // Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
2238  {
2239  2011 /*fromYear*/,
2240  2011 /*toYear*/,
2241  10 /*inMonth*/,
2242  7 /*onDayOfWeek*/,
2243  0 /*onDayOfMonth*/,
2244  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2245  480 /*atTimeCode (7200/15)*/,
2246  0 /*deltaMinutes*/,
2247  0 /*letterIndex ("")*/,
2248  },
2249 
2250 };
2251 
2252 const complete::Info::ZonePolicy kZonePolicyArmenia ACE_TIME_PROGMEM = {
2253  kZoneRulesArmenia /*rules*/,
2254  3 /*numRules*/,
2255 };
2256 
2257 //---------------------------------------------------------------------------
2258 // Policy name: Aus
2259 // Rules: 8
2260 //---------------------------------------------------------------------------
2261 
2262 static const complete::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
2263  // Anchor: Rule Aus 1917 only - Mar lastSun 2:00s 0 S
2264  {
2265  -32767 /*fromYear*/,
2266  -32767 /*toYear*/,
2267  1 /*inMonth*/,
2268  0 /*onDayOfWeek*/,
2269  1 /*onDayOfMonth*/,
2270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2271  0 /*atTimeCode (0/15)*/,
2272  0 /*deltaMinutes*/,
2273  25 /*letterIndex ("S")*/,
2274  },
2275  // Rule Aus 1917 only - Jan 1 2:00s 1:00 D
2276  {
2277  1917 /*fromYear*/,
2278  1917 /*toYear*/,
2279  1 /*inMonth*/,
2280  0 /*onDayOfWeek*/,
2281  1 /*onDayOfMonth*/,
2282  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2283  480 /*atTimeCode (7200/15)*/,
2284  60 /*deltaMinutes*/,
2285  13 /*letterIndex ("D")*/,
2286  },
2287  // Rule Aus 1917 only - Mar lastSun 2:00s 0 S
2288  {
2289  1917 /*fromYear*/,
2290  1917 /*toYear*/,
2291  3 /*inMonth*/,
2292  7 /*onDayOfWeek*/,
2293  0 /*onDayOfMonth*/,
2294  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2295  480 /*atTimeCode (7200/15)*/,
2296  0 /*deltaMinutes*/,
2297  25 /*letterIndex ("S")*/,
2298  },
2299  // Rule Aus 1942 only - Jan 1 2:00s 1:00 D
2300  {
2301  1942 /*fromYear*/,
2302  1942 /*toYear*/,
2303  1 /*inMonth*/,
2304  0 /*onDayOfWeek*/,
2305  1 /*onDayOfMonth*/,
2306  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2307  480 /*atTimeCode (7200/15)*/,
2308  60 /*deltaMinutes*/,
2309  13 /*letterIndex ("D")*/,
2310  },
2311  // Rule Aus 1942 only - Mar lastSun 2:00s 0 S
2312  {
2313  1942 /*fromYear*/,
2314  1942 /*toYear*/,
2315  3 /*inMonth*/,
2316  7 /*onDayOfWeek*/,
2317  0 /*onDayOfMonth*/,
2318  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2319  480 /*atTimeCode (7200/15)*/,
2320  0 /*deltaMinutes*/,
2321  25 /*letterIndex ("S")*/,
2322  },
2323  // Rule Aus 1942 only - Sep 27 2:00s 1:00 D
2324  {
2325  1942 /*fromYear*/,
2326  1942 /*toYear*/,
2327  9 /*inMonth*/,
2328  0 /*onDayOfWeek*/,
2329  27 /*onDayOfMonth*/,
2330  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2331  480 /*atTimeCode (7200/15)*/,
2332  60 /*deltaMinutes*/,
2333  13 /*letterIndex ("D")*/,
2334  },
2335  // Rule Aus 1943 1944 - Mar lastSun 2:00s 0 S
2336  {
2337  1943 /*fromYear*/,
2338  1944 /*toYear*/,
2339  3 /*inMonth*/,
2340  7 /*onDayOfWeek*/,
2341  0 /*onDayOfMonth*/,
2342  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2343  480 /*atTimeCode (7200/15)*/,
2344  0 /*deltaMinutes*/,
2345  25 /*letterIndex ("S")*/,
2346  },
2347  // Rule Aus 1943 only - Oct 3 2:00s 1:00 D
2348  {
2349  1943 /*fromYear*/,
2350  1943 /*toYear*/,
2351  10 /*inMonth*/,
2352  0 /*onDayOfWeek*/,
2353  3 /*onDayOfMonth*/,
2354  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2355  480 /*atTimeCode (7200/15)*/,
2356  60 /*deltaMinutes*/,
2357  13 /*letterIndex ("D")*/,
2358  },
2359 
2360 };
2361 
2362 const complete::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
2363  kZoneRulesAus /*rules*/,
2364  8 /*numRules*/,
2365 };
2366 
2367 //---------------------------------------------------------------------------
2368 // Policy name: Austria
2369 // Rules: 10
2370 //---------------------------------------------------------------------------
2371 
2372 static const complete::Info::ZoneRule kZoneRulesAustria[] ACE_TIME_PROGMEM = {
2373  // Anchor: Rule Austria 1920 only - Sep 13 2:00s 0 -
2374  {
2375  -32767 /*fromYear*/,
2376  -32767 /*toYear*/,
2377  1 /*inMonth*/,
2378  0 /*onDayOfWeek*/,
2379  1 /*onDayOfMonth*/,
2380  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2381  0 /*atTimeCode (0/15)*/,
2382  0 /*deltaMinutes*/,
2383  0 /*letterIndex ("")*/,
2384  },
2385  // Rule Austria 1920 only - Apr 5 2:00s 1:00 S
2386  {
2387  1920 /*fromYear*/,
2388  1920 /*toYear*/,
2389  4 /*inMonth*/,
2390  0 /*onDayOfWeek*/,
2391  5 /*onDayOfMonth*/,
2392  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2393  480 /*atTimeCode (7200/15)*/,
2394  60 /*deltaMinutes*/,
2395  25 /*letterIndex ("S")*/,
2396  },
2397  // Rule Austria 1920 only - Sep 13 2:00s 0 -
2398  {
2399  1920 /*fromYear*/,
2400  1920 /*toYear*/,
2401  9 /*inMonth*/,
2402  0 /*onDayOfWeek*/,
2403  13 /*onDayOfMonth*/,
2404  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2405  480 /*atTimeCode (7200/15)*/,
2406  0 /*deltaMinutes*/,
2407  0 /*letterIndex ("")*/,
2408  },
2409  // Rule Austria 1946 only - Apr 14 2:00s 1:00 S
2410  {
2411  1946 /*fromYear*/,
2412  1946 /*toYear*/,
2413  4 /*inMonth*/,
2414  0 /*onDayOfWeek*/,
2415  14 /*onDayOfMonth*/,
2416  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2417  480 /*atTimeCode (7200/15)*/,
2418  60 /*deltaMinutes*/,
2419  25 /*letterIndex ("S")*/,
2420  },
2421  // Rule Austria 1946 only - Oct 7 2:00s 0 -
2422  {
2423  1946 /*fromYear*/,
2424  1946 /*toYear*/,
2425  10 /*inMonth*/,
2426  0 /*onDayOfWeek*/,
2427  7 /*onDayOfMonth*/,
2428  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2429  480 /*atTimeCode (7200/15)*/,
2430  0 /*deltaMinutes*/,
2431  0 /*letterIndex ("")*/,
2432  },
2433  // Rule Austria 1947 1948 - Oct Sun>=1 2:00s 0 -
2434  {
2435  1947 /*fromYear*/,
2436  1948 /*toYear*/,
2437  10 /*inMonth*/,
2438  7 /*onDayOfWeek*/,
2439  1 /*onDayOfMonth*/,
2440  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2441  480 /*atTimeCode (7200/15)*/,
2442  0 /*deltaMinutes*/,
2443  0 /*letterIndex ("")*/,
2444  },
2445  // Rule Austria 1947 only - Apr 6 2:00s 1:00 S
2446  {
2447  1947 /*fromYear*/,
2448  1947 /*toYear*/,
2449  4 /*inMonth*/,
2450  0 /*onDayOfWeek*/,
2451  6 /*onDayOfMonth*/,
2452  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2453  480 /*atTimeCode (7200/15)*/,
2454  60 /*deltaMinutes*/,
2455  25 /*letterIndex ("S")*/,
2456  },
2457  // Rule Austria 1948 only - Apr 18 2:00s 1:00 S
2458  {
2459  1948 /*fromYear*/,
2460  1948 /*toYear*/,
2461  4 /*inMonth*/,
2462  0 /*onDayOfWeek*/,
2463  18 /*onDayOfMonth*/,
2464  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2465  480 /*atTimeCode (7200/15)*/,
2466  60 /*deltaMinutes*/,
2467  25 /*letterIndex ("S")*/,
2468  },
2469  // Rule Austria 1980 only - Apr 6 0:00 1:00 S
2470  {
2471  1980 /*fromYear*/,
2472  1980 /*toYear*/,
2473  4 /*inMonth*/,
2474  0 /*onDayOfWeek*/,
2475  6 /*onDayOfMonth*/,
2476  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2477  0 /*atTimeCode (0/15)*/,
2478  60 /*deltaMinutes*/,
2479  25 /*letterIndex ("S")*/,
2480  },
2481  // Rule Austria 1980 only - Sep 28 0:00 0 -
2482  {
2483  1980 /*fromYear*/,
2484  1980 /*toYear*/,
2485  9 /*inMonth*/,
2486  0 /*onDayOfWeek*/,
2487  28 /*onDayOfMonth*/,
2488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2489  0 /*atTimeCode (0/15)*/,
2490  0 /*deltaMinutes*/,
2491  0 /*letterIndex ("")*/,
2492  },
2493 
2494 };
2495 
2496 const complete::Info::ZonePolicy kZonePolicyAustria ACE_TIME_PROGMEM = {
2497  kZoneRulesAustria /*rules*/,
2498  10 /*numRules*/,
2499 };
2500 
2501 //---------------------------------------------------------------------------
2502 // Policy name: Azer
2503 // Rules: 3
2504 //---------------------------------------------------------------------------
2505 
2506 static const complete::Info::ZoneRule kZoneRulesAzer[] ACE_TIME_PROGMEM = {
2507  // Anchor: Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
2508  {
2509  -32767 /*fromYear*/,
2510  -32767 /*toYear*/,
2511  1 /*inMonth*/,
2512  0 /*onDayOfWeek*/,
2513  1 /*onDayOfMonth*/,
2514  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2515  0 /*atTimeCode (0/15)*/,
2516  0 /*deltaMinutes*/,
2517  0 /*letterIndex ("")*/,
2518  },
2519  // Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
2520  {
2521  1997 /*fromYear*/,
2522  2015 /*toYear*/,
2523  3 /*inMonth*/,
2524  7 /*onDayOfWeek*/,
2525  0 /*onDayOfMonth*/,
2526  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2527  960 /*atTimeCode (14400/15)*/,
2528  60 /*deltaMinutes*/,
2529  0 /*letterIndex ("")*/,
2530  },
2531  // Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
2532  {
2533  1997 /*fromYear*/,
2534  2015 /*toYear*/,
2535  10 /*inMonth*/,
2536  7 /*onDayOfWeek*/,
2537  0 /*onDayOfMonth*/,
2538  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2539  1200 /*atTimeCode (18000/15)*/,
2540  0 /*deltaMinutes*/,
2541  0 /*letterIndex ("")*/,
2542  },
2543 
2544 };
2545 
2546 const complete::Info::ZonePolicy kZonePolicyAzer ACE_TIME_PROGMEM = {
2547  kZoneRulesAzer /*rules*/,
2548  3 /*numRules*/,
2549 };
2550 
2551 //---------------------------------------------------------------------------
2552 // Policy name: Barb
2553 // Rules: 12
2554 //---------------------------------------------------------------------------
2555 
2556 static const complete::Info::ZoneRule kZoneRulesBarb[] ACE_TIME_PROGMEM = {
2557  // Anchor: Rule Barb 1942 only - Aug 31 6:00u 0 S
2558  {
2559  -32767 /*fromYear*/,
2560  -32767 /*toYear*/,
2561  1 /*inMonth*/,
2562  0 /*onDayOfWeek*/,
2563  1 /*onDayOfMonth*/,
2564  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2565  0 /*atTimeCode (0/15)*/,
2566  0 /*deltaMinutes*/,
2567  25 /*letterIndex ("S")*/,
2568  },
2569  // Rule Barb 1942 only - Apr 19 5:00u 1:00 D
2570  {
2571  1942 /*fromYear*/,
2572  1942 /*toYear*/,
2573  4 /*inMonth*/,
2574  0 /*onDayOfWeek*/,
2575  19 /*onDayOfMonth*/,
2576  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
2577  1200 /*atTimeCode (18000/15)*/,
2578  60 /*deltaMinutes*/,
2579  13 /*letterIndex ("D")*/,
2580  },
2581  // Rule Barb 1942 only - Aug 31 6:00u 0 S
2582  {
2583  1942 /*fromYear*/,
2584  1942 /*toYear*/,
2585  8 /*inMonth*/,
2586  0 /*onDayOfWeek*/,
2587  31 /*onDayOfMonth*/,
2588  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
2589  1440 /*atTimeCode (21600/15)*/,
2590  0 /*deltaMinutes*/,
2591  25 /*letterIndex ("S")*/,
2592  },
2593  // Rule Barb 1943 only - May 2 5:00u 1:00 D
2594  {
2595  1943 /*fromYear*/,
2596  1943 /*toYear*/,
2597  5 /*inMonth*/,
2598  0 /*onDayOfWeek*/,
2599  2 /*onDayOfMonth*/,
2600  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
2601  1200 /*atTimeCode (18000/15)*/,
2602  60 /*deltaMinutes*/,
2603  13 /*letterIndex ("D")*/,
2604  },
2605  // Rule Barb 1943 only - Sep 5 6:00u 0 S
2606  {
2607  1943 /*fromYear*/,
2608  1943 /*toYear*/,
2609  9 /*inMonth*/,
2610  0 /*onDayOfWeek*/,
2611  5 /*onDayOfMonth*/,
2612  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
2613  1440 /*atTimeCode (21600/15)*/,
2614  0 /*deltaMinutes*/,
2615  25 /*letterIndex ("S")*/,
2616  },
2617  // Rule Barb 1944 only - Apr 10 5:00u 0:30 -
2618  {
2619  1944 /*fromYear*/,
2620  1944 /*toYear*/,
2621  4 /*inMonth*/,
2622  0 /*onDayOfWeek*/,
2623  10 /*onDayOfMonth*/,
2624  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
2625  1200 /*atTimeCode (18000/15)*/,
2626  30 /*deltaMinutes*/,
2627  0 /*letterIndex ("")*/,
2628  },
2629  // Rule Barb 1944 only - Sep 10 6:00u 0 S
2630  {
2631  1944 /*fromYear*/,
2632  1944 /*toYear*/,
2633  9 /*inMonth*/,
2634  0 /*onDayOfWeek*/,
2635  10 /*onDayOfMonth*/,
2636  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
2637  1440 /*atTimeCode (21600/15)*/,
2638  0 /*deltaMinutes*/,
2639  25 /*letterIndex ("S")*/,
2640  },
2641  // Rule Barb 1977 only - Jun 12 2:00 1:00 D
2642  {
2643  1977 /*fromYear*/,
2644  1977 /*toYear*/,
2645  6 /*inMonth*/,
2646  0 /*onDayOfWeek*/,
2647  12 /*onDayOfMonth*/,
2648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2649  480 /*atTimeCode (7200/15)*/,
2650  60 /*deltaMinutes*/,
2651  13 /*letterIndex ("D")*/,
2652  },
2653  // Rule Barb 1977 1978 - Oct Sun>=1 2:00 0 S
2654  {
2655  1977 /*fromYear*/,
2656  1978 /*toYear*/,
2657  10 /*inMonth*/,
2658  7 /*onDayOfWeek*/,
2659  1 /*onDayOfMonth*/,
2660  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2661  480 /*atTimeCode (7200/15)*/,
2662  0 /*deltaMinutes*/,
2663  25 /*letterIndex ("S")*/,
2664  },
2665  // Rule Barb 1978 1980 - Apr Sun>=15 2:00 1:00 D
2666  {
2667  1978 /*fromYear*/,
2668  1980 /*toYear*/,
2669  4 /*inMonth*/,
2670  7 /*onDayOfWeek*/,
2671  15 /*onDayOfMonth*/,
2672  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2673  480 /*atTimeCode (7200/15)*/,
2674  60 /*deltaMinutes*/,
2675  13 /*letterIndex ("D")*/,
2676  },
2677  // Rule Barb 1979 only - Sep 30 2:00 0 S
2678  {
2679  1979 /*fromYear*/,
2680  1979 /*toYear*/,
2681  9 /*inMonth*/,
2682  0 /*onDayOfWeek*/,
2683  30 /*onDayOfMonth*/,
2684  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2685  480 /*atTimeCode (7200/15)*/,
2686  0 /*deltaMinutes*/,
2687  25 /*letterIndex ("S")*/,
2688  },
2689  // Rule Barb 1980 only - Sep 25 2:00 0 S
2690  {
2691  1980 /*fromYear*/,
2692  1980 /*toYear*/,
2693  9 /*inMonth*/,
2694  0 /*onDayOfWeek*/,
2695  25 /*onDayOfMonth*/,
2696  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2697  480 /*atTimeCode (7200/15)*/,
2698  0 /*deltaMinutes*/,
2699  25 /*letterIndex ("S")*/,
2700  },
2701 
2702 };
2703 
2704 const complete::Info::ZonePolicy kZonePolicyBarb ACE_TIME_PROGMEM = {
2705  kZoneRulesBarb /*rules*/,
2706  12 /*numRules*/,
2707 };
2708 
2709 //---------------------------------------------------------------------------
2710 // Policy name: Belgium
2711 // Rules: 35
2712 //---------------------------------------------------------------------------
2713 
2714 static const complete::Info::ZoneRule kZoneRulesBelgium[] ACE_TIME_PROGMEM = {
2715  // Anchor: Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
2716  {
2717  -32767 /*fromYear*/,
2718  -32767 /*toYear*/,
2719  1 /*inMonth*/,
2720  0 /*onDayOfWeek*/,
2721  1 /*onDayOfMonth*/,
2722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
2723  0 /*atTimeCode (0/15)*/,
2724  0 /*deltaMinutes*/,
2725  0 /*letterIndex ("")*/,
2726  },
2727  // Rule Belgium 1918 only - Mar 9 0:00s 1:00 S
2728  {
2729  1918 /*fromYear*/,
2730  1918 /*toYear*/,
2731  3 /*inMonth*/,
2732  0 /*onDayOfWeek*/,
2733  9 /*onDayOfMonth*/,
2734  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2735  0 /*atTimeCode (0/15)*/,
2736  60 /*deltaMinutes*/,
2737  25 /*letterIndex ("S")*/,
2738  },
2739  // Rule Belgium 1918 1919 - Oct Sat>=1 23:00s 0 -
2740  {
2741  1918 /*fromYear*/,
2742  1919 /*toYear*/,
2743  10 /*inMonth*/,
2744  6 /*onDayOfWeek*/,
2745  1 /*onDayOfMonth*/,
2746  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2747  5520 /*atTimeCode (82800/15)*/,
2748  0 /*deltaMinutes*/,
2749  0 /*letterIndex ("")*/,
2750  },
2751  // Rule Belgium 1919 only - Mar 1 23:00s 1:00 S
2752  {
2753  1919 /*fromYear*/,
2754  1919 /*toYear*/,
2755  3 /*inMonth*/,
2756  0 /*onDayOfWeek*/,
2757  1 /*onDayOfMonth*/,
2758  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2759  5520 /*atTimeCode (82800/15)*/,
2760  60 /*deltaMinutes*/,
2761  25 /*letterIndex ("S")*/,
2762  },
2763  // Rule Belgium 1920 only - Feb 14 23:00s 1:00 S
2764  {
2765  1920 /*fromYear*/,
2766  1920 /*toYear*/,
2767  2 /*inMonth*/,
2768  0 /*onDayOfWeek*/,
2769  14 /*onDayOfMonth*/,
2770  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2771  5520 /*atTimeCode (82800/15)*/,
2772  60 /*deltaMinutes*/,
2773  25 /*letterIndex ("S")*/,
2774  },
2775  // Rule Belgium 1920 only - Oct 23 23:00s 0 -
2776  {
2777  1920 /*fromYear*/,
2778  1920 /*toYear*/,
2779  10 /*inMonth*/,
2780  0 /*onDayOfWeek*/,
2781  23 /*onDayOfMonth*/,
2782  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2783  5520 /*atTimeCode (82800/15)*/,
2784  0 /*deltaMinutes*/,
2785  0 /*letterIndex ("")*/,
2786  },
2787  // Rule Belgium 1921 only - Mar 14 23:00s 1:00 S
2788  {
2789  1921 /*fromYear*/,
2790  1921 /*toYear*/,
2791  3 /*inMonth*/,
2792  0 /*onDayOfWeek*/,
2793  14 /*onDayOfMonth*/,
2794  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2795  5520 /*atTimeCode (82800/15)*/,
2796  60 /*deltaMinutes*/,
2797  25 /*letterIndex ("S")*/,
2798  },
2799  // Rule Belgium 1921 only - Oct 25 23:00s 0 -
2800  {
2801  1921 /*fromYear*/,
2802  1921 /*toYear*/,
2803  10 /*inMonth*/,
2804  0 /*onDayOfWeek*/,
2805  25 /*onDayOfMonth*/,
2806  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2807  5520 /*atTimeCode (82800/15)*/,
2808  0 /*deltaMinutes*/,
2809  0 /*letterIndex ("")*/,
2810  },
2811  // Rule Belgium 1922 only - Mar 25 23:00s 1:00 S
2812  {
2813  1922 /*fromYear*/,
2814  1922 /*toYear*/,
2815  3 /*inMonth*/,
2816  0 /*onDayOfWeek*/,
2817  25 /*onDayOfMonth*/,
2818  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2819  5520 /*atTimeCode (82800/15)*/,
2820  60 /*deltaMinutes*/,
2821  25 /*letterIndex ("S")*/,
2822  },
2823  // Rule Belgium 1922 1927 - Oct Sat>=1 23:00s 0 -
2824  {
2825  1922 /*fromYear*/,
2826  1927 /*toYear*/,
2827  10 /*inMonth*/,
2828  6 /*onDayOfWeek*/,
2829  1 /*onDayOfMonth*/,
2830  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2831  5520 /*atTimeCode (82800/15)*/,
2832  0 /*deltaMinutes*/,
2833  0 /*letterIndex ("")*/,
2834  },
2835  // Rule Belgium 1923 only - Apr 21 23:00s 1:00 S
2836  {
2837  1923 /*fromYear*/,
2838  1923 /*toYear*/,
2839  4 /*inMonth*/,
2840  0 /*onDayOfWeek*/,
2841  21 /*onDayOfMonth*/,
2842  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2843  5520 /*atTimeCode (82800/15)*/,
2844  60 /*deltaMinutes*/,
2845  25 /*letterIndex ("S")*/,
2846  },
2847  // Rule Belgium 1924 only - Mar 29 23:00s 1:00 S
2848  {
2849  1924 /*fromYear*/,
2850  1924 /*toYear*/,
2851  3 /*inMonth*/,
2852  0 /*onDayOfWeek*/,
2853  29 /*onDayOfMonth*/,
2854  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2855  5520 /*atTimeCode (82800/15)*/,
2856  60 /*deltaMinutes*/,
2857  25 /*letterIndex ("S")*/,
2858  },
2859  // Rule Belgium 1925 only - Apr 4 23:00s 1:00 S
2860  {
2861  1925 /*fromYear*/,
2862  1925 /*toYear*/,
2863  4 /*inMonth*/,
2864  0 /*onDayOfWeek*/,
2865  4 /*onDayOfMonth*/,
2866  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2867  5520 /*atTimeCode (82800/15)*/,
2868  60 /*deltaMinutes*/,
2869  25 /*letterIndex ("S")*/,
2870  },
2871  // Rule Belgium 1926 only - Apr 17 23:00s 1:00 S
2872  {
2873  1926 /*fromYear*/,
2874  1926 /*toYear*/,
2875  4 /*inMonth*/,
2876  0 /*onDayOfWeek*/,
2877  17 /*onDayOfMonth*/,
2878  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2879  5520 /*atTimeCode (82800/15)*/,
2880  60 /*deltaMinutes*/,
2881  25 /*letterIndex ("S")*/,
2882  },
2883  // Rule Belgium 1927 only - Apr 9 23:00s 1:00 S
2884  {
2885  1927 /*fromYear*/,
2886  1927 /*toYear*/,
2887  4 /*inMonth*/,
2888  0 /*onDayOfWeek*/,
2889  9 /*onDayOfMonth*/,
2890  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2891  5520 /*atTimeCode (82800/15)*/,
2892  60 /*deltaMinutes*/,
2893  25 /*letterIndex ("S")*/,
2894  },
2895  // Rule Belgium 1928 only - Apr 14 23:00s 1:00 S
2896  {
2897  1928 /*fromYear*/,
2898  1928 /*toYear*/,
2899  4 /*inMonth*/,
2900  0 /*onDayOfWeek*/,
2901  14 /*onDayOfMonth*/,
2902  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2903  5520 /*atTimeCode (82800/15)*/,
2904  60 /*deltaMinutes*/,
2905  25 /*letterIndex ("S")*/,
2906  },
2907  // Rule Belgium 1928 1938 - Oct Sun>=2 2:00s 0 -
2908  {
2909  1928 /*fromYear*/,
2910  1938 /*toYear*/,
2911  10 /*inMonth*/,
2912  7 /*onDayOfWeek*/,
2913  2 /*onDayOfMonth*/,
2914  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2915  480 /*atTimeCode (7200/15)*/,
2916  0 /*deltaMinutes*/,
2917  0 /*letterIndex ("")*/,
2918  },
2919  // Rule Belgium 1929 only - Apr 21 2:00s 1:00 S
2920  {
2921  1929 /*fromYear*/,
2922  1929 /*toYear*/,
2923  4 /*inMonth*/,
2924  0 /*onDayOfWeek*/,
2925  21 /*onDayOfMonth*/,
2926  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2927  480 /*atTimeCode (7200/15)*/,
2928  60 /*deltaMinutes*/,
2929  25 /*letterIndex ("S")*/,
2930  },
2931  // Rule Belgium 1930 only - Apr 13 2:00s 1:00 S
2932  {
2933  1930 /*fromYear*/,
2934  1930 /*toYear*/,
2935  4 /*inMonth*/,
2936  0 /*onDayOfWeek*/,
2937  13 /*onDayOfMonth*/,
2938  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2939  480 /*atTimeCode (7200/15)*/,
2940  60 /*deltaMinutes*/,
2941  25 /*letterIndex ("S")*/,
2942  },
2943  // Rule Belgium 1931 only - Apr 19 2:00s 1:00 S
2944  {
2945  1931 /*fromYear*/,
2946  1931 /*toYear*/,
2947  4 /*inMonth*/,
2948  0 /*onDayOfWeek*/,
2949  19 /*onDayOfMonth*/,
2950  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2951  480 /*atTimeCode (7200/15)*/,
2952  60 /*deltaMinutes*/,
2953  25 /*letterIndex ("S")*/,
2954  },
2955  // Rule Belgium 1932 only - Apr 3 2:00s 1:00 S
2956  {
2957  1932 /*fromYear*/,
2958  1932 /*toYear*/,
2959  4 /*inMonth*/,
2960  0 /*onDayOfWeek*/,
2961  3 /*onDayOfMonth*/,
2962  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2963  480 /*atTimeCode (7200/15)*/,
2964  60 /*deltaMinutes*/,
2965  25 /*letterIndex ("S")*/,
2966  },
2967  // Rule Belgium 1933 only - Mar 26 2:00s 1:00 S
2968  {
2969  1933 /*fromYear*/,
2970  1933 /*toYear*/,
2971  3 /*inMonth*/,
2972  0 /*onDayOfWeek*/,
2973  26 /*onDayOfMonth*/,
2974  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2975  480 /*atTimeCode (7200/15)*/,
2976  60 /*deltaMinutes*/,
2977  25 /*letterIndex ("S")*/,
2978  },
2979  // Rule Belgium 1934 only - Apr 8 2:00s 1:00 S
2980  {
2981  1934 /*fromYear*/,
2982  1934 /*toYear*/,
2983  4 /*inMonth*/,
2984  0 /*onDayOfWeek*/,
2985  8 /*onDayOfMonth*/,
2986  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2987  480 /*atTimeCode (7200/15)*/,
2988  60 /*deltaMinutes*/,
2989  25 /*letterIndex ("S")*/,
2990  },
2991  // Rule Belgium 1935 only - Mar 31 2:00s 1:00 S
2992  {
2993  1935 /*fromYear*/,
2994  1935 /*toYear*/,
2995  3 /*inMonth*/,
2996  0 /*onDayOfWeek*/,
2997  31 /*onDayOfMonth*/,
2998  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
2999  480 /*atTimeCode (7200/15)*/,
3000  60 /*deltaMinutes*/,
3001  25 /*letterIndex ("S")*/,
3002  },
3003  // Rule Belgium 1936 only - Apr 19 2:00s 1:00 S
3004  {
3005  1936 /*fromYear*/,
3006  1936 /*toYear*/,
3007  4 /*inMonth*/,
3008  0 /*onDayOfWeek*/,
3009  19 /*onDayOfMonth*/,
3010  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3011  480 /*atTimeCode (7200/15)*/,
3012  60 /*deltaMinutes*/,
3013  25 /*letterIndex ("S")*/,
3014  },
3015  // Rule Belgium 1937 only - Apr 4 2:00s 1:00 S
3016  {
3017  1937 /*fromYear*/,
3018  1937 /*toYear*/,
3019  4 /*inMonth*/,
3020  0 /*onDayOfWeek*/,
3021  4 /*onDayOfMonth*/,
3022  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3023  480 /*atTimeCode (7200/15)*/,
3024  60 /*deltaMinutes*/,
3025  25 /*letterIndex ("S")*/,
3026  },
3027  // Rule Belgium 1938 only - Mar 27 2:00s 1:00 S
3028  {
3029  1938 /*fromYear*/,
3030  1938 /*toYear*/,
3031  3 /*inMonth*/,
3032  0 /*onDayOfWeek*/,
3033  27 /*onDayOfMonth*/,
3034  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3035  480 /*atTimeCode (7200/15)*/,
3036  60 /*deltaMinutes*/,
3037  25 /*letterIndex ("S")*/,
3038  },
3039  // Rule Belgium 1939 only - Apr 16 2:00s 1:00 S
3040  {
3041  1939 /*fromYear*/,
3042  1939 /*toYear*/,
3043  4 /*inMonth*/,
3044  0 /*onDayOfWeek*/,
3045  16 /*onDayOfMonth*/,
3046  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3047  480 /*atTimeCode (7200/15)*/,
3048  60 /*deltaMinutes*/,
3049  25 /*letterIndex ("S")*/,
3050  },
3051  // Rule Belgium 1939 only - Nov 19 2:00s 0 -
3052  {
3053  1939 /*fromYear*/,
3054  1939 /*toYear*/,
3055  11 /*inMonth*/,
3056  0 /*onDayOfWeek*/,
3057  19 /*onDayOfMonth*/,
3058  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3059  480 /*atTimeCode (7200/15)*/,
3060  0 /*deltaMinutes*/,
3061  0 /*letterIndex ("")*/,
3062  },
3063  // Rule Belgium 1940 only - Feb 25 2:00s 1:00 S
3064  {
3065  1940 /*fromYear*/,
3066  1940 /*toYear*/,
3067  2 /*inMonth*/,
3068  0 /*onDayOfWeek*/,
3069  25 /*onDayOfMonth*/,
3070  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3071  480 /*atTimeCode (7200/15)*/,
3072  60 /*deltaMinutes*/,
3073  25 /*letterIndex ("S")*/,
3074  },
3075  // Rule Belgium 1944 only - Sep 17 2:00s 0 -
3076  {
3077  1944 /*fromYear*/,
3078  1944 /*toYear*/,
3079  9 /*inMonth*/,
3080  0 /*onDayOfWeek*/,
3081  17 /*onDayOfMonth*/,
3082  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3083  480 /*atTimeCode (7200/15)*/,
3084  0 /*deltaMinutes*/,
3085  0 /*letterIndex ("")*/,
3086  },
3087  // Rule Belgium 1945 only - Apr 2 2:00s 1:00 S
3088  {
3089  1945 /*fromYear*/,
3090  1945 /*toYear*/,
3091  4 /*inMonth*/,
3092  0 /*onDayOfWeek*/,
3093  2 /*onDayOfMonth*/,
3094  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3095  480 /*atTimeCode (7200/15)*/,
3096  60 /*deltaMinutes*/,
3097  25 /*letterIndex ("S")*/,
3098  },
3099  // Rule Belgium 1945 only - Sep 16 2:00s 0 -
3100  {
3101  1945 /*fromYear*/,
3102  1945 /*toYear*/,
3103  9 /*inMonth*/,
3104  0 /*onDayOfWeek*/,
3105  16 /*onDayOfMonth*/,
3106  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3107  480 /*atTimeCode (7200/15)*/,
3108  0 /*deltaMinutes*/,
3109  0 /*letterIndex ("")*/,
3110  },
3111  // Rule Belgium 1946 only - May 19 2:00s 1:00 S
3112  {
3113  1946 /*fromYear*/,
3114  1946 /*toYear*/,
3115  5 /*inMonth*/,
3116  0 /*onDayOfWeek*/,
3117  19 /*onDayOfMonth*/,
3118  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3119  480 /*atTimeCode (7200/15)*/,
3120  60 /*deltaMinutes*/,
3121  25 /*letterIndex ("S")*/,
3122  },
3123  // Rule Belgium 1946 only - Oct 7 2:00s 0 -
3124  {
3125  1946 /*fromYear*/,
3126  1946 /*toYear*/,
3127  10 /*inMonth*/,
3128  0 /*onDayOfWeek*/,
3129  7 /*onDayOfMonth*/,
3130  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
3131  480 /*atTimeCode (7200/15)*/,
3132  0 /*deltaMinutes*/,
3133  0 /*letterIndex ("")*/,
3134  },
3135 
3136 };
3137 
3138 const complete::Info::ZonePolicy kZonePolicyBelgium ACE_TIME_PROGMEM = {
3139  kZoneRulesBelgium /*rules*/,
3140  35 /*numRules*/,
3141 };
3142 
3143 //---------------------------------------------------------------------------
3144 // Policy name: Belize
3145 // Rules: 12
3146 //---------------------------------------------------------------------------
3147 
3148 static const complete::Info::ZoneRule kZoneRulesBelize[] ACE_TIME_PROGMEM = {
3149  // Anchor: Rule Belize 1919 1942 - Feb Sat>=8 24:00 0 CST
3150  {
3151  -32767 /*fromYear*/,
3152  -32767 /*toYear*/,
3153  1 /*inMonth*/,
3154  0 /*onDayOfWeek*/,
3155  1 /*onDayOfMonth*/,
3156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3157  0 /*atTimeCode (0/15)*/,
3158  0 /*deltaMinutes*/,
3159  11 /*letterIndex ("CST")*/,
3160  },
3161  // Rule Belize 1918 1941 - Oct Sat>=1 24:00 0:30 -0530
3162  {
3163  1918 /*fromYear*/,
3164  1941 /*toYear*/,
3165  10 /*inMonth*/,
3166  6 /*onDayOfWeek*/,
3167  1 /*onDayOfMonth*/,
3168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3169  5760 /*atTimeCode (86400/15)*/,
3170  30 /*deltaMinutes*/,
3171  5 /*letterIndex ("-0530")*/,
3172  },
3173  // Rule Belize 1919 1942 - Feb Sat>=8 24:00 0 CST
3174  {
3175  1919 /*fromYear*/,
3176  1942 /*toYear*/,
3177  2 /*inMonth*/,
3178  6 /*onDayOfWeek*/,
3179  8 /*onDayOfMonth*/,
3180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3181  5760 /*atTimeCode (86400/15)*/,
3182  0 /*deltaMinutes*/,
3183  11 /*letterIndex ("CST")*/,
3184  },
3185  // Rule Belize 1942 only - Jun 27 24:00 1:00 CWT
3186  {
3187  1942 /*fromYear*/,
3188  1942 /*toYear*/,
3189  6 /*inMonth*/,
3190  0 /*onDayOfWeek*/,
3191  27 /*onDayOfMonth*/,
3192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3193  5760 /*atTimeCode (86400/15)*/,
3194  60 /*deltaMinutes*/,
3195  12 /*letterIndex ("CWT")*/,
3196  },
3197  // Rule Belize 1945 only - Aug 14 23:00u 1:00 CPT
3198  {
3199  1945 /*fromYear*/,
3200  1945 /*toYear*/,
3201  8 /*inMonth*/,
3202  0 /*onDayOfWeek*/,
3203  14 /*onDayOfMonth*/,
3204  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
3205  5520 /*atTimeCode (82800/15)*/,
3206  60 /*deltaMinutes*/,
3207  10 /*letterIndex ("CPT")*/,
3208  },
3209  // Rule Belize 1945 only - Dec 15 24:00 0 CST
3210  {
3211  1945 /*fromYear*/,
3212  1945 /*toYear*/,
3213  12 /*inMonth*/,
3214  0 /*onDayOfWeek*/,
3215  15 /*onDayOfMonth*/,
3216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3217  5760 /*atTimeCode (86400/15)*/,
3218  0 /*deltaMinutes*/,
3219  11 /*letterIndex ("CST")*/,
3220  },
3221  // Rule Belize 1947 1967 - Oct Sat>=1 24:00 0:30 -0530
3222  {
3223  1947 /*fromYear*/,
3224  1967 /*toYear*/,
3225  10 /*inMonth*/,
3226  6 /*onDayOfWeek*/,
3227  1 /*onDayOfMonth*/,
3228  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3229  5760 /*atTimeCode (86400/15)*/,
3230  30 /*deltaMinutes*/,
3231  5 /*letterIndex ("-0530")*/,
3232  },
3233  // Rule Belize 1948 1968 - Feb Sat>=8 24:00 0 CST
3234  {
3235  1948 /*fromYear*/,
3236  1968 /*toYear*/,
3237  2 /*inMonth*/,
3238  6 /*onDayOfWeek*/,
3239  8 /*onDayOfMonth*/,
3240  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3241  5760 /*atTimeCode (86400/15)*/,
3242  0 /*deltaMinutes*/,
3243  11 /*letterIndex ("CST")*/,
3244  },
3245  // Rule Belize 1973 only - Dec 5 0:00 1:00 CDT
3246  {
3247  1973 /*fromYear*/,
3248  1973 /*toYear*/,
3249  12 /*inMonth*/,
3250  0 /*onDayOfWeek*/,
3251  5 /*onDayOfMonth*/,
3252  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3253  0 /*atTimeCode (0/15)*/,
3254  60 /*deltaMinutes*/,
3255  9 /*letterIndex ("CDT")*/,
3256  },
3257  // Rule Belize 1974 only - Feb 9 0:00 0 CST
3258  {
3259  1974 /*fromYear*/,
3260  1974 /*toYear*/,
3261  2 /*inMonth*/,
3262  0 /*onDayOfWeek*/,
3263  9 /*onDayOfMonth*/,
3264  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3265  0 /*atTimeCode (0/15)*/,
3266  0 /*deltaMinutes*/,
3267  11 /*letterIndex ("CST")*/,
3268  },
3269  // Rule Belize 1982 only - Dec 18 0:00 1:00 CDT
3270  {
3271  1982 /*fromYear*/,
3272  1982 /*toYear*/,
3273  12 /*inMonth*/,
3274  0 /*onDayOfWeek*/,
3275  18 /*onDayOfMonth*/,
3276  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3277  0 /*atTimeCode (0/15)*/,
3278  60 /*deltaMinutes*/,
3279  9 /*letterIndex ("CDT")*/,
3280  },
3281  // Rule Belize 1983 only - Feb 12 0:00 0 CST
3282  {
3283  1983 /*fromYear*/,
3284  1983 /*toYear*/,
3285  2 /*inMonth*/,
3286  0 /*onDayOfWeek*/,
3287  12 /*onDayOfMonth*/,
3288  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3289  0 /*atTimeCode (0/15)*/,
3290  0 /*deltaMinutes*/,
3291  11 /*letterIndex ("CST")*/,
3292  },
3293 
3294 };
3295 
3296 const complete::Info::ZonePolicy kZonePolicyBelize ACE_TIME_PROGMEM = {
3297  kZoneRulesBelize /*rules*/,
3298  12 /*numRules*/,
3299 };
3300 
3301 //---------------------------------------------------------------------------
3302 // Policy name: Bermuda
3303 // Rules: 17
3304 //---------------------------------------------------------------------------
3305 
3306 static const complete::Info::ZoneRule kZoneRulesBermuda[] ACE_TIME_PROGMEM = {
3307  // Anchor: Rule Bermuda 1917 only - Sep 30 24:00 0 -
3308  {
3309  -32767 /*fromYear*/,
3310  -32767 /*toYear*/,
3311  1 /*inMonth*/,
3312  0 /*onDayOfWeek*/,
3313  1 /*onDayOfMonth*/,
3314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3315  0 /*atTimeCode (0/15)*/,
3316  0 /*deltaMinutes*/,
3317  0 /*letterIndex ("")*/,
3318  },
3319  // Rule Bermuda 1917 only - Apr 5 24:00 1:00 -
3320  {
3321  1917 /*fromYear*/,
3322  1917 /*toYear*/,
3323  4 /*inMonth*/,
3324  0 /*onDayOfWeek*/,
3325  5 /*onDayOfMonth*/,
3326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3327  5760 /*atTimeCode (86400/15)*/,
3328  60 /*deltaMinutes*/,
3329  0 /*letterIndex ("")*/,
3330  },
3331  // Rule Bermuda 1917 only - Sep 30 24:00 0 -
3332  {
3333  1917 /*fromYear*/,
3334  1917 /*toYear*/,
3335  9 /*inMonth*/,
3336  0 /*onDayOfWeek*/,
3337  30 /*onDayOfMonth*/,
3338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3339  5760 /*atTimeCode (86400/15)*/,
3340  0 /*deltaMinutes*/,
3341  0 /*letterIndex ("")*/,
3342  },
3343  // Rule Bermuda 1918 only - Apr 13 24:00 1:00 -
3344  {
3345  1918 /*fromYear*/,
3346  1918 /*toYear*/,
3347  4 /*inMonth*/,
3348  0 /*onDayOfWeek*/,
3349  13 /*onDayOfMonth*/,
3350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3351  5760 /*atTimeCode (86400/15)*/,
3352  60 /*deltaMinutes*/,
3353  0 /*letterIndex ("")*/,
3354  },
3355  // Rule Bermuda 1918 only - Sep 15 24:00 0 S
3356  {
3357  1918 /*fromYear*/,
3358  1918 /*toYear*/,
3359  9 /*inMonth*/,
3360  0 /*onDayOfWeek*/,
3361  15 /*onDayOfMonth*/,
3362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3363  5760 /*atTimeCode (86400/15)*/,
3364  0 /*deltaMinutes*/,
3365  25 /*letterIndex ("S")*/,
3366  },
3367  // Rule Bermuda 1942 only - Jan 11 2:00 1:00 D
3368  {
3369  1942 /*fromYear*/,
3370  1942 /*toYear*/,
3371  1 /*inMonth*/,
3372  0 /*onDayOfWeek*/,
3373  11 /*onDayOfMonth*/,
3374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3375  480 /*atTimeCode (7200/15)*/,
3376  60 /*deltaMinutes*/,
3377  13 /*letterIndex ("D")*/,
3378  },
3379  // Rule Bermuda 1942 only - Oct 18 2:00 0 S
3380  {
3381  1942 /*fromYear*/,
3382  1942 /*toYear*/,
3383  10 /*inMonth*/,
3384  0 /*onDayOfWeek*/,
3385  18 /*onDayOfMonth*/,
3386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3387  480 /*atTimeCode (7200/15)*/,
3388  0 /*deltaMinutes*/,
3389  25 /*letterIndex ("S")*/,
3390  },
3391  // Rule Bermuda 1943 only - Mar 21 2:00 1:00 D
3392  {
3393  1943 /*fromYear*/,
3394  1943 /*toYear*/,
3395  3 /*inMonth*/,
3396  0 /*onDayOfWeek*/,
3397  21 /*onDayOfMonth*/,
3398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3399  480 /*atTimeCode (7200/15)*/,
3400  60 /*deltaMinutes*/,
3401  13 /*letterIndex ("D")*/,
3402  },
3403  // Rule Bermuda 1943 only - Oct 31 2:00 0 S
3404  {
3405  1943 /*fromYear*/,
3406  1943 /*toYear*/,
3407  10 /*inMonth*/,
3408  0 /*onDayOfWeek*/,
3409  31 /*onDayOfMonth*/,
3410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3411  480 /*atTimeCode (7200/15)*/,
3412  0 /*deltaMinutes*/,
3413  25 /*letterIndex ("S")*/,
3414  },
3415  // Rule Bermuda 1944 1945 - Mar Sun>=8 2:00 1:00 D
3416  {
3417  1944 /*fromYear*/,
3418  1945 /*toYear*/,
3419  3 /*inMonth*/,
3420  7 /*onDayOfWeek*/,
3421  8 /*onDayOfMonth*/,
3422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3423  480 /*atTimeCode (7200/15)*/,
3424  60 /*deltaMinutes*/,
3425  13 /*letterIndex ("D")*/,
3426  },
3427  // Rule Bermuda 1944 1945 - Nov Sun>=1 2:00 0 S
3428  {
3429  1944 /*fromYear*/,
3430  1945 /*toYear*/,
3431  11 /*inMonth*/,
3432  7 /*onDayOfWeek*/,
3433  1 /*onDayOfMonth*/,
3434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3435  480 /*atTimeCode (7200/15)*/,
3436  0 /*deltaMinutes*/,
3437  25 /*letterIndex ("S")*/,
3438  },
3439  // Rule Bermuda 1947 only - May Sun>=15 2:00 1:00 D
3440  {
3441  1947 /*fromYear*/,
3442  1947 /*toYear*/,
3443  5 /*inMonth*/,
3444  7 /*onDayOfWeek*/,
3445  15 /*onDayOfMonth*/,
3446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3447  480 /*atTimeCode (7200/15)*/,
3448  60 /*deltaMinutes*/,
3449  13 /*letterIndex ("D")*/,
3450  },
3451  // Rule Bermuda 1947 only - Sep Sun>=8 2:00 0 S
3452  {
3453  1947 /*fromYear*/,
3454  1947 /*toYear*/,
3455  9 /*inMonth*/,
3456  7 /*onDayOfWeek*/,
3457  8 /*onDayOfMonth*/,
3458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3459  480 /*atTimeCode (7200/15)*/,
3460  0 /*deltaMinutes*/,
3461  25 /*letterIndex ("S")*/,
3462  },
3463  // Rule Bermuda 1948 1952 - May Sun>=22 2:00 1:00 D
3464  {
3465  1948 /*fromYear*/,
3466  1952 /*toYear*/,
3467  5 /*inMonth*/,
3468  7 /*onDayOfWeek*/,
3469  22 /*onDayOfMonth*/,
3470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3471  480 /*atTimeCode (7200/15)*/,
3472  60 /*deltaMinutes*/,
3473  13 /*letterIndex ("D")*/,
3474  },
3475  // Rule Bermuda 1948 1952 - Sep Sun>=1 2:00 0 S
3476  {
3477  1948 /*fromYear*/,
3478  1952 /*toYear*/,
3479  9 /*inMonth*/,
3480  7 /*onDayOfWeek*/,
3481  1 /*onDayOfMonth*/,
3482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3483  480 /*atTimeCode (7200/15)*/,
3484  0 /*deltaMinutes*/,
3485  25 /*letterIndex ("S")*/,
3486  },
3487  // Rule Bermuda 1956 only - May Sun>=22 2:00 1:00 D
3488  {
3489  1956 /*fromYear*/,
3490  1956 /*toYear*/,
3491  5 /*inMonth*/,
3492  7 /*onDayOfWeek*/,
3493  22 /*onDayOfMonth*/,
3494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3495  480 /*atTimeCode (7200/15)*/,
3496  60 /*deltaMinutes*/,
3497  13 /*letterIndex ("D")*/,
3498  },
3499  // Rule Bermuda 1956 only - Oct lastSun 2:00 0 S
3500  {
3501  1956 /*fromYear*/,
3502  1956 /*toYear*/,
3503  10 /*inMonth*/,
3504  7 /*onDayOfWeek*/,
3505  0 /*onDayOfMonth*/,
3506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3507  480 /*atTimeCode (7200/15)*/,
3508  0 /*deltaMinutes*/,
3509  25 /*letterIndex ("S")*/,
3510  },
3511 
3512 };
3513 
3514 const complete::Info::ZonePolicy kZonePolicyBermuda ACE_TIME_PROGMEM = {
3515  kZoneRulesBermuda /*rules*/,
3516  17 /*numRules*/,
3517 };
3518 
3519 //---------------------------------------------------------------------------
3520 // Policy name: Brazil
3521 // Rules: 58
3522 //---------------------------------------------------------------------------
3523 
3524 static const complete::Info::ZoneRule kZoneRulesBrazil[] ACE_TIME_PROGMEM = {
3525  // Anchor: Rule Brazil 1932 1933 - Apr 1 0:00 0 -
3526  {
3527  -32767 /*fromYear*/,
3528  -32767 /*toYear*/,
3529  1 /*inMonth*/,
3530  0 /*onDayOfWeek*/,
3531  1 /*onDayOfMonth*/,
3532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3533  0 /*atTimeCode (0/15)*/,
3534  0 /*deltaMinutes*/,
3535  0 /*letterIndex ("")*/,
3536  },
3537  // Rule Brazil 1931 only - Oct 3 11:00 1:00 -
3538  {
3539  1931 /*fromYear*/,
3540  1931 /*toYear*/,
3541  10 /*inMonth*/,
3542  0 /*onDayOfWeek*/,
3543  3 /*onDayOfMonth*/,
3544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3545  2640 /*atTimeCode (39600/15)*/,
3546  60 /*deltaMinutes*/,
3547  0 /*letterIndex ("")*/,
3548  },
3549  // Rule Brazil 1932 1933 - Apr 1 0:00 0 -
3550  {
3551  1932 /*fromYear*/,
3552  1933 /*toYear*/,
3553  4 /*inMonth*/,
3554  0 /*onDayOfWeek*/,
3555  1 /*onDayOfMonth*/,
3556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3557  0 /*atTimeCode (0/15)*/,
3558  0 /*deltaMinutes*/,
3559  0 /*letterIndex ("")*/,
3560  },
3561  // Rule Brazil 1932 only - Oct 3 0:00 1:00 -
3562  {
3563  1932 /*fromYear*/,
3564  1932 /*toYear*/,
3565  10 /*inMonth*/,
3566  0 /*onDayOfWeek*/,
3567  3 /*onDayOfMonth*/,
3568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3569  0 /*atTimeCode (0/15)*/,
3570  60 /*deltaMinutes*/,
3571  0 /*letterIndex ("")*/,
3572  },
3573  // Rule Brazil 1949 1952 - Dec 1 0:00 1:00 -
3574  {
3575  1949 /*fromYear*/,
3576  1952 /*toYear*/,
3577  12 /*inMonth*/,
3578  0 /*onDayOfWeek*/,
3579  1 /*onDayOfMonth*/,
3580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3581  0 /*atTimeCode (0/15)*/,
3582  60 /*deltaMinutes*/,
3583  0 /*letterIndex ("")*/,
3584  },
3585  // Rule Brazil 1950 only - Apr 16 1:00 0 -
3586  {
3587  1950 /*fromYear*/,
3588  1950 /*toYear*/,
3589  4 /*inMonth*/,
3590  0 /*onDayOfWeek*/,
3591  16 /*onDayOfMonth*/,
3592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3593  240 /*atTimeCode (3600/15)*/,
3594  0 /*deltaMinutes*/,
3595  0 /*letterIndex ("")*/,
3596  },
3597  // Rule Brazil 1951 1952 - Apr 1 0:00 0 -
3598  {
3599  1951 /*fromYear*/,
3600  1952 /*toYear*/,
3601  4 /*inMonth*/,
3602  0 /*onDayOfWeek*/,
3603  1 /*onDayOfMonth*/,
3604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3605  0 /*atTimeCode (0/15)*/,
3606  0 /*deltaMinutes*/,
3607  0 /*letterIndex ("")*/,
3608  },
3609  // Rule Brazil 1953 only - Mar 1 0:00 0 -
3610  {
3611  1953 /*fromYear*/,
3612  1953 /*toYear*/,
3613  3 /*inMonth*/,
3614  0 /*onDayOfWeek*/,
3615  1 /*onDayOfMonth*/,
3616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3617  0 /*atTimeCode (0/15)*/,
3618  0 /*deltaMinutes*/,
3619  0 /*letterIndex ("")*/,
3620  },
3621  // Rule Brazil 1963 only - Dec 9 0:00 1:00 -
3622  {
3623  1963 /*fromYear*/,
3624  1963 /*toYear*/,
3625  12 /*inMonth*/,
3626  0 /*onDayOfWeek*/,
3627  9 /*onDayOfMonth*/,
3628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3629  0 /*atTimeCode (0/15)*/,
3630  60 /*deltaMinutes*/,
3631  0 /*letterIndex ("")*/,
3632  },
3633  // Rule Brazil 1964 only - Mar 1 0:00 0 -
3634  {
3635  1964 /*fromYear*/,
3636  1964 /*toYear*/,
3637  3 /*inMonth*/,
3638  0 /*onDayOfWeek*/,
3639  1 /*onDayOfMonth*/,
3640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3641  0 /*atTimeCode (0/15)*/,
3642  0 /*deltaMinutes*/,
3643  0 /*letterIndex ("")*/,
3644  },
3645  // Rule Brazil 1965 only - Jan 31 0:00 1:00 -
3646  {
3647  1965 /*fromYear*/,
3648  1965 /*toYear*/,
3649  1 /*inMonth*/,
3650  0 /*onDayOfWeek*/,
3651  31 /*onDayOfMonth*/,
3652  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3653  0 /*atTimeCode (0/15)*/,
3654  60 /*deltaMinutes*/,
3655  0 /*letterIndex ("")*/,
3656  },
3657  // Rule Brazil 1965 only - Mar 31 0:00 0 -
3658  {
3659  1965 /*fromYear*/,
3660  1965 /*toYear*/,
3661  3 /*inMonth*/,
3662  0 /*onDayOfWeek*/,
3663  31 /*onDayOfMonth*/,
3664  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3665  0 /*atTimeCode (0/15)*/,
3666  0 /*deltaMinutes*/,
3667  0 /*letterIndex ("")*/,
3668  },
3669  // Rule Brazil 1965 only - Dec 1 0:00 1:00 -
3670  {
3671  1965 /*fromYear*/,
3672  1965 /*toYear*/,
3673  12 /*inMonth*/,
3674  0 /*onDayOfWeek*/,
3675  1 /*onDayOfMonth*/,
3676  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3677  0 /*atTimeCode (0/15)*/,
3678  60 /*deltaMinutes*/,
3679  0 /*letterIndex ("")*/,
3680  },
3681  // Rule Brazil 1966 1968 - Mar 1 0:00 0 -
3682  {
3683  1966 /*fromYear*/,
3684  1968 /*toYear*/,
3685  3 /*inMonth*/,
3686  0 /*onDayOfWeek*/,
3687  1 /*onDayOfMonth*/,
3688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3689  0 /*atTimeCode (0/15)*/,
3690  0 /*deltaMinutes*/,
3691  0 /*letterIndex ("")*/,
3692  },
3693  // Rule Brazil 1966 1967 - Nov 1 0:00 1:00 -
3694  {
3695  1966 /*fromYear*/,
3696  1967 /*toYear*/,
3697  11 /*inMonth*/,
3698  0 /*onDayOfWeek*/,
3699  1 /*onDayOfMonth*/,
3700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3701  0 /*atTimeCode (0/15)*/,
3702  60 /*deltaMinutes*/,
3703  0 /*letterIndex ("")*/,
3704  },
3705  // Rule Brazil 1985 only - Nov 2 0:00 1:00 -
3706  {
3707  1985 /*fromYear*/,
3708  1985 /*toYear*/,
3709  11 /*inMonth*/,
3710  0 /*onDayOfWeek*/,
3711  2 /*onDayOfMonth*/,
3712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3713  0 /*atTimeCode (0/15)*/,
3714  60 /*deltaMinutes*/,
3715  0 /*letterIndex ("")*/,
3716  },
3717  // Rule Brazil 1986 only - Mar 15 0:00 0 -
3718  {
3719  1986 /*fromYear*/,
3720  1986 /*toYear*/,
3721  3 /*inMonth*/,
3722  0 /*onDayOfWeek*/,
3723  15 /*onDayOfMonth*/,
3724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3725  0 /*atTimeCode (0/15)*/,
3726  0 /*deltaMinutes*/,
3727  0 /*letterIndex ("")*/,
3728  },
3729  // Rule Brazil 1986 only - Oct 25 0:00 1:00 -
3730  {
3731  1986 /*fromYear*/,
3732  1986 /*toYear*/,
3733  10 /*inMonth*/,
3734  0 /*onDayOfWeek*/,
3735  25 /*onDayOfMonth*/,
3736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3737  0 /*atTimeCode (0/15)*/,
3738  60 /*deltaMinutes*/,
3739  0 /*letterIndex ("")*/,
3740  },
3741  // Rule Brazil 1987 only - Feb 14 0:00 0 -
3742  {
3743  1987 /*fromYear*/,
3744  1987 /*toYear*/,
3745  2 /*inMonth*/,
3746  0 /*onDayOfWeek*/,
3747  14 /*onDayOfMonth*/,
3748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3749  0 /*atTimeCode (0/15)*/,
3750  0 /*deltaMinutes*/,
3751  0 /*letterIndex ("")*/,
3752  },
3753  // Rule Brazil 1987 only - Oct 25 0:00 1:00 -
3754  {
3755  1987 /*fromYear*/,
3756  1987 /*toYear*/,
3757  10 /*inMonth*/,
3758  0 /*onDayOfWeek*/,
3759  25 /*onDayOfMonth*/,
3760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3761  0 /*atTimeCode (0/15)*/,
3762  60 /*deltaMinutes*/,
3763  0 /*letterIndex ("")*/,
3764  },
3765  // Rule Brazil 1988 only - Feb 7 0:00 0 -
3766  {
3767  1988 /*fromYear*/,
3768  1988 /*toYear*/,
3769  2 /*inMonth*/,
3770  0 /*onDayOfWeek*/,
3771  7 /*onDayOfMonth*/,
3772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3773  0 /*atTimeCode (0/15)*/,
3774  0 /*deltaMinutes*/,
3775  0 /*letterIndex ("")*/,
3776  },
3777  // Rule Brazil 1988 only - Oct 16 0:00 1:00 -
3778  {
3779  1988 /*fromYear*/,
3780  1988 /*toYear*/,
3781  10 /*inMonth*/,
3782  0 /*onDayOfWeek*/,
3783  16 /*onDayOfMonth*/,
3784  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3785  0 /*atTimeCode (0/15)*/,
3786  60 /*deltaMinutes*/,
3787  0 /*letterIndex ("")*/,
3788  },
3789  // Rule Brazil 1989 only - Jan 29 0:00 0 -
3790  {
3791  1989 /*fromYear*/,
3792  1989 /*toYear*/,
3793  1 /*inMonth*/,
3794  0 /*onDayOfWeek*/,
3795  29 /*onDayOfMonth*/,
3796  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3797  0 /*atTimeCode (0/15)*/,
3798  0 /*deltaMinutes*/,
3799  0 /*letterIndex ("")*/,
3800  },
3801  // Rule Brazil 1989 only - Oct 15 0:00 1:00 -
3802  {
3803  1989 /*fromYear*/,
3804  1989 /*toYear*/,
3805  10 /*inMonth*/,
3806  0 /*onDayOfWeek*/,
3807  15 /*onDayOfMonth*/,
3808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3809  0 /*atTimeCode (0/15)*/,
3810  60 /*deltaMinutes*/,
3811  0 /*letterIndex ("")*/,
3812  },
3813  // Rule Brazil 1990 only - Feb 11 0:00 0 -
3814  {
3815  1990 /*fromYear*/,
3816  1990 /*toYear*/,
3817  2 /*inMonth*/,
3818  0 /*onDayOfWeek*/,
3819  11 /*onDayOfMonth*/,
3820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3821  0 /*atTimeCode (0/15)*/,
3822  0 /*deltaMinutes*/,
3823  0 /*letterIndex ("")*/,
3824  },
3825  // Rule Brazil 1990 only - Oct 21 0:00 1:00 -
3826  {
3827  1990 /*fromYear*/,
3828  1990 /*toYear*/,
3829  10 /*inMonth*/,
3830  0 /*onDayOfWeek*/,
3831  21 /*onDayOfMonth*/,
3832  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3833  0 /*atTimeCode (0/15)*/,
3834  60 /*deltaMinutes*/,
3835  0 /*letterIndex ("")*/,
3836  },
3837  // Rule Brazil 1991 only - Feb 17 0:00 0 -
3838  {
3839  1991 /*fromYear*/,
3840  1991 /*toYear*/,
3841  2 /*inMonth*/,
3842  0 /*onDayOfWeek*/,
3843  17 /*onDayOfMonth*/,
3844  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3845  0 /*atTimeCode (0/15)*/,
3846  0 /*deltaMinutes*/,
3847  0 /*letterIndex ("")*/,
3848  },
3849  // Rule Brazil 1991 only - Oct 20 0:00 1:00 -
3850  {
3851  1991 /*fromYear*/,
3852  1991 /*toYear*/,
3853  10 /*inMonth*/,
3854  0 /*onDayOfWeek*/,
3855  20 /*onDayOfMonth*/,
3856  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3857  0 /*atTimeCode (0/15)*/,
3858  60 /*deltaMinutes*/,
3859  0 /*letterIndex ("")*/,
3860  },
3861  // Rule Brazil 1992 only - Feb 9 0:00 0 -
3862  {
3863  1992 /*fromYear*/,
3864  1992 /*toYear*/,
3865  2 /*inMonth*/,
3866  0 /*onDayOfWeek*/,
3867  9 /*onDayOfMonth*/,
3868  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3869  0 /*atTimeCode (0/15)*/,
3870  0 /*deltaMinutes*/,
3871  0 /*letterIndex ("")*/,
3872  },
3873  // Rule Brazil 1992 only - Oct 25 0:00 1:00 -
3874  {
3875  1992 /*fromYear*/,
3876  1992 /*toYear*/,
3877  10 /*inMonth*/,
3878  0 /*onDayOfWeek*/,
3879  25 /*onDayOfMonth*/,
3880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3881  0 /*atTimeCode (0/15)*/,
3882  60 /*deltaMinutes*/,
3883  0 /*letterIndex ("")*/,
3884  },
3885  // Rule Brazil 1993 only - Jan 31 0:00 0 -
3886  {
3887  1993 /*fromYear*/,
3888  1993 /*toYear*/,
3889  1 /*inMonth*/,
3890  0 /*onDayOfWeek*/,
3891  31 /*onDayOfMonth*/,
3892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3893  0 /*atTimeCode (0/15)*/,
3894  0 /*deltaMinutes*/,
3895  0 /*letterIndex ("")*/,
3896  },
3897  // Rule Brazil 1993 1995 - Oct Sun>=11 0:00 1:00 -
3898  {
3899  1993 /*fromYear*/,
3900  1995 /*toYear*/,
3901  10 /*inMonth*/,
3902  7 /*onDayOfWeek*/,
3903  11 /*onDayOfMonth*/,
3904  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3905  0 /*atTimeCode (0/15)*/,
3906  60 /*deltaMinutes*/,
3907  0 /*letterIndex ("")*/,
3908  },
3909  // Rule Brazil 1994 1995 - Feb Sun>=15 0:00 0 -
3910  {
3911  1994 /*fromYear*/,
3912  1995 /*toYear*/,
3913  2 /*inMonth*/,
3914  7 /*onDayOfWeek*/,
3915  15 /*onDayOfMonth*/,
3916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3917  0 /*atTimeCode (0/15)*/,
3918  0 /*deltaMinutes*/,
3919  0 /*letterIndex ("")*/,
3920  },
3921  // Rule Brazil 1996 only - Feb 11 0:00 0 -
3922  {
3923  1996 /*fromYear*/,
3924  1996 /*toYear*/,
3925  2 /*inMonth*/,
3926  0 /*onDayOfWeek*/,
3927  11 /*onDayOfMonth*/,
3928  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3929  0 /*atTimeCode (0/15)*/,
3930  0 /*deltaMinutes*/,
3931  0 /*letterIndex ("")*/,
3932  },
3933  // Rule Brazil 1996 only - Oct 6 0:00 1:00 -
3934  {
3935  1996 /*fromYear*/,
3936  1996 /*toYear*/,
3937  10 /*inMonth*/,
3938  0 /*onDayOfWeek*/,
3939  6 /*onDayOfMonth*/,
3940  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3941  0 /*atTimeCode (0/15)*/,
3942  60 /*deltaMinutes*/,
3943  0 /*letterIndex ("")*/,
3944  },
3945  // Rule Brazil 1997 only - Feb 16 0:00 0 -
3946  {
3947  1997 /*fromYear*/,
3948  1997 /*toYear*/,
3949  2 /*inMonth*/,
3950  0 /*onDayOfWeek*/,
3951  16 /*onDayOfMonth*/,
3952  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3953  0 /*atTimeCode (0/15)*/,
3954  0 /*deltaMinutes*/,
3955  0 /*letterIndex ("")*/,
3956  },
3957  // Rule Brazil 1997 only - Oct 6 0:00 1:00 -
3958  {
3959  1997 /*fromYear*/,
3960  1997 /*toYear*/,
3961  10 /*inMonth*/,
3962  0 /*onDayOfWeek*/,
3963  6 /*onDayOfMonth*/,
3964  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3965  0 /*atTimeCode (0/15)*/,
3966  60 /*deltaMinutes*/,
3967  0 /*letterIndex ("")*/,
3968  },
3969  // Rule Brazil 1998 only - Mar 1 0:00 0 -
3970  {
3971  1998 /*fromYear*/,
3972  1998 /*toYear*/,
3973  3 /*inMonth*/,
3974  0 /*onDayOfWeek*/,
3975  1 /*onDayOfMonth*/,
3976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3977  0 /*atTimeCode (0/15)*/,
3978  0 /*deltaMinutes*/,
3979  0 /*letterIndex ("")*/,
3980  },
3981  // Rule Brazil 1998 only - Oct 11 0:00 1:00 -
3982  {
3983  1998 /*fromYear*/,
3984  1998 /*toYear*/,
3985  10 /*inMonth*/,
3986  0 /*onDayOfWeek*/,
3987  11 /*onDayOfMonth*/,
3988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
3989  0 /*atTimeCode (0/15)*/,
3990  60 /*deltaMinutes*/,
3991  0 /*letterIndex ("")*/,
3992  },
3993  // Rule Brazil 1999 only - Feb 21 0:00 0 -
3994  {
3995  1999 /*fromYear*/,
3996  1999 /*toYear*/,
3997  2 /*inMonth*/,
3998  0 /*onDayOfWeek*/,
3999  21 /*onDayOfMonth*/,
4000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4001  0 /*atTimeCode (0/15)*/,
4002  0 /*deltaMinutes*/,
4003  0 /*letterIndex ("")*/,
4004  },
4005  // Rule Brazil 1999 only - Oct 3 0:00 1:00 -
4006  {
4007  1999 /*fromYear*/,
4008  1999 /*toYear*/,
4009  10 /*inMonth*/,
4010  0 /*onDayOfWeek*/,
4011  3 /*onDayOfMonth*/,
4012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4013  0 /*atTimeCode (0/15)*/,
4014  60 /*deltaMinutes*/,
4015  0 /*letterIndex ("")*/,
4016  },
4017  // Rule Brazil 2000 only - Feb 27 0:00 0 -
4018  {
4019  2000 /*fromYear*/,
4020  2000 /*toYear*/,
4021  2 /*inMonth*/,
4022  0 /*onDayOfWeek*/,
4023  27 /*onDayOfMonth*/,
4024  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4025  0 /*atTimeCode (0/15)*/,
4026  0 /*deltaMinutes*/,
4027  0 /*letterIndex ("")*/,
4028  },
4029  // Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 -
4030  {
4031  2000 /*fromYear*/,
4032  2001 /*toYear*/,
4033  10 /*inMonth*/,
4034  7 /*onDayOfWeek*/,
4035  8 /*onDayOfMonth*/,
4036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4037  0 /*atTimeCode (0/15)*/,
4038  60 /*deltaMinutes*/,
4039  0 /*letterIndex ("")*/,
4040  },
4041  // Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 -
4042  {
4043  2001 /*fromYear*/,
4044  2006 /*toYear*/,
4045  2 /*inMonth*/,
4046  7 /*onDayOfWeek*/,
4047  15 /*onDayOfMonth*/,
4048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4049  0 /*atTimeCode (0/15)*/,
4050  0 /*deltaMinutes*/,
4051  0 /*letterIndex ("")*/,
4052  },
4053  // Rule Brazil 2002 only - Nov 3 0:00 1:00 -
4054  {
4055  2002 /*fromYear*/,
4056  2002 /*toYear*/,
4057  11 /*inMonth*/,
4058  0 /*onDayOfWeek*/,
4059  3 /*onDayOfMonth*/,
4060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4061  0 /*atTimeCode (0/15)*/,
4062  60 /*deltaMinutes*/,
4063  0 /*letterIndex ("")*/,
4064  },
4065  // Rule Brazil 2003 only - Oct 19 0:00 1:00 -
4066  {
4067  2003 /*fromYear*/,
4068  2003 /*toYear*/,
4069  10 /*inMonth*/,
4070  0 /*onDayOfWeek*/,
4071  19 /*onDayOfMonth*/,
4072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4073  0 /*atTimeCode (0/15)*/,
4074  60 /*deltaMinutes*/,
4075  0 /*letterIndex ("")*/,
4076  },
4077  // Rule Brazil 2004 only - Nov 2 0:00 1:00 -
4078  {
4079  2004 /*fromYear*/,
4080  2004 /*toYear*/,
4081  11 /*inMonth*/,
4082  0 /*onDayOfWeek*/,
4083  2 /*onDayOfMonth*/,
4084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4085  0 /*atTimeCode (0/15)*/,
4086  60 /*deltaMinutes*/,
4087  0 /*letterIndex ("")*/,
4088  },
4089  // Rule Brazil 2005 only - Oct 16 0:00 1:00 -
4090  {
4091  2005 /*fromYear*/,
4092  2005 /*toYear*/,
4093  10 /*inMonth*/,
4094  0 /*onDayOfWeek*/,
4095  16 /*onDayOfMonth*/,
4096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4097  0 /*atTimeCode (0/15)*/,
4098  60 /*deltaMinutes*/,
4099  0 /*letterIndex ("")*/,
4100  },
4101  // Rule Brazil 2006 only - Nov 5 0:00 1:00 -
4102  {
4103  2006 /*fromYear*/,
4104  2006 /*toYear*/,
4105  11 /*inMonth*/,
4106  0 /*onDayOfWeek*/,
4107  5 /*onDayOfMonth*/,
4108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4109  0 /*atTimeCode (0/15)*/,
4110  60 /*deltaMinutes*/,
4111  0 /*letterIndex ("")*/,
4112  },
4113  // Rule Brazil 2007 only - Feb 25 0:00 0 -
4114  {
4115  2007 /*fromYear*/,
4116  2007 /*toYear*/,
4117  2 /*inMonth*/,
4118  0 /*onDayOfWeek*/,
4119  25 /*onDayOfMonth*/,
4120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4121  0 /*atTimeCode (0/15)*/,
4122  0 /*deltaMinutes*/,
4123  0 /*letterIndex ("")*/,
4124  },
4125  // Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 -
4126  {
4127  2007 /*fromYear*/,
4128  2007 /*toYear*/,
4129  10 /*inMonth*/,
4130  7 /*onDayOfWeek*/,
4131  8 /*onDayOfMonth*/,
4132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4133  0 /*atTimeCode (0/15)*/,
4134  60 /*deltaMinutes*/,
4135  0 /*letterIndex ("")*/,
4136  },
4137  // Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 -
4138  {
4139  2008 /*fromYear*/,
4140  2017 /*toYear*/,
4141  10 /*inMonth*/,
4142  7 /*onDayOfWeek*/,
4143  15 /*onDayOfMonth*/,
4144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4145  0 /*atTimeCode (0/15)*/,
4146  60 /*deltaMinutes*/,
4147  0 /*letterIndex ("")*/,
4148  },
4149  // Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 -
4150  {
4151  2008 /*fromYear*/,
4152  2011 /*toYear*/,
4153  2 /*inMonth*/,
4154  7 /*onDayOfWeek*/,
4155  15 /*onDayOfMonth*/,
4156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4157  0 /*atTimeCode (0/15)*/,
4158  0 /*deltaMinutes*/,
4159  0 /*letterIndex ("")*/,
4160  },
4161  // Rule Brazil 2012 only - Feb Sun>=22 0:00 0 -
4162  {
4163  2012 /*fromYear*/,
4164  2012 /*toYear*/,
4165  2 /*inMonth*/,
4166  7 /*onDayOfWeek*/,
4167  22 /*onDayOfMonth*/,
4168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4169  0 /*atTimeCode (0/15)*/,
4170  0 /*deltaMinutes*/,
4171  0 /*letterIndex ("")*/,
4172  },
4173  // Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 -
4174  {
4175  2013 /*fromYear*/,
4176  2014 /*toYear*/,
4177  2 /*inMonth*/,
4178  7 /*onDayOfWeek*/,
4179  15 /*onDayOfMonth*/,
4180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4181  0 /*atTimeCode (0/15)*/,
4182  0 /*deltaMinutes*/,
4183  0 /*letterIndex ("")*/,
4184  },
4185  // Rule Brazil 2015 only - Feb Sun>=22 0:00 0 -
4186  {
4187  2015 /*fromYear*/,
4188  2015 /*toYear*/,
4189  2 /*inMonth*/,
4190  7 /*onDayOfWeek*/,
4191  22 /*onDayOfMonth*/,
4192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4193  0 /*atTimeCode (0/15)*/,
4194  0 /*deltaMinutes*/,
4195  0 /*letterIndex ("")*/,
4196  },
4197  // Rule Brazil 2016 2019 - Feb Sun>=15 0:00 0 -
4198  {
4199  2016 /*fromYear*/,
4200  2019 /*toYear*/,
4201  2 /*inMonth*/,
4202  7 /*onDayOfWeek*/,
4203  15 /*onDayOfMonth*/,
4204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4205  0 /*atTimeCode (0/15)*/,
4206  0 /*deltaMinutes*/,
4207  0 /*letterIndex ("")*/,
4208  },
4209  // Rule Brazil 2018 only - Nov Sun>=1 0:00 1:00 -
4210  {
4211  2018 /*fromYear*/,
4212  2018 /*toYear*/,
4213  11 /*inMonth*/,
4214  7 /*onDayOfWeek*/,
4215  1 /*onDayOfMonth*/,
4216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4217  0 /*atTimeCode (0/15)*/,
4218  60 /*deltaMinutes*/,
4219  0 /*letterIndex ("")*/,
4220  },
4221 
4222 };
4223 
4224 const complete::Info::ZonePolicy kZonePolicyBrazil ACE_TIME_PROGMEM = {
4225  kZoneRulesBrazil /*rules*/,
4226  58 /*numRules*/,
4227 };
4228 
4229 //---------------------------------------------------------------------------
4230 // Policy name: Bulg
4231 // Rules: 6
4232 //---------------------------------------------------------------------------
4233 
4234 static const complete::Info::ZoneRule kZoneRulesBulg[] ACE_TIME_PROGMEM = {
4235  // Anchor: Rule Bulg 1979 only - Oct 1 1:00 0 -
4236  {
4237  -32767 /*fromYear*/,
4238  -32767 /*toYear*/,
4239  1 /*inMonth*/,
4240  0 /*onDayOfWeek*/,
4241  1 /*onDayOfMonth*/,
4242  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4243  0 /*atTimeCode (0/15)*/,
4244  0 /*deltaMinutes*/,
4245  0 /*letterIndex ("")*/,
4246  },
4247  // Rule Bulg 1979 only - Mar 31 23:00 1:00 S
4248  {
4249  1979 /*fromYear*/,
4250  1979 /*toYear*/,
4251  3 /*inMonth*/,
4252  0 /*onDayOfWeek*/,
4253  31 /*onDayOfMonth*/,
4254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4255  5520 /*atTimeCode (82800/15)*/,
4256  60 /*deltaMinutes*/,
4257  25 /*letterIndex ("S")*/,
4258  },
4259  // Rule Bulg 1979 only - Oct 1 1:00 0 -
4260  {
4261  1979 /*fromYear*/,
4262  1979 /*toYear*/,
4263  10 /*inMonth*/,
4264  0 /*onDayOfWeek*/,
4265  1 /*onDayOfMonth*/,
4266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4267  240 /*atTimeCode (3600/15)*/,
4268  0 /*deltaMinutes*/,
4269  0 /*letterIndex ("")*/,
4270  },
4271  // Rule Bulg 1980 1982 - Apr Sat>=1 23:00 1:00 S
4272  {
4273  1980 /*fromYear*/,
4274  1982 /*toYear*/,
4275  4 /*inMonth*/,
4276  6 /*onDayOfWeek*/,
4277  1 /*onDayOfMonth*/,
4278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4279  5520 /*atTimeCode (82800/15)*/,
4280  60 /*deltaMinutes*/,
4281  25 /*letterIndex ("S")*/,
4282  },
4283  // Rule Bulg 1980 only - Sep 29 1:00 0 -
4284  {
4285  1980 /*fromYear*/,
4286  1980 /*toYear*/,
4287  9 /*inMonth*/,
4288  0 /*onDayOfWeek*/,
4289  29 /*onDayOfMonth*/,
4290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4291  240 /*atTimeCode (3600/15)*/,
4292  0 /*deltaMinutes*/,
4293  0 /*letterIndex ("")*/,
4294  },
4295  // Rule Bulg 1981 only - Sep 27 2:00 0 -
4296  {
4297  1981 /*fromYear*/,
4298  1981 /*toYear*/,
4299  9 /*inMonth*/,
4300  0 /*onDayOfWeek*/,
4301  27 /*onDayOfMonth*/,
4302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4303  480 /*atTimeCode (7200/15)*/,
4304  0 /*deltaMinutes*/,
4305  0 /*letterIndex ("")*/,
4306  },
4307 
4308 };
4309 
4310 const complete::Info::ZonePolicy kZonePolicyBulg ACE_TIME_PROGMEM = {
4311  kZoneRulesBulg /*rules*/,
4312  6 /*numRules*/,
4313 };
4314 
4315 //---------------------------------------------------------------------------
4316 // Policy name: C-Eur
4317 // Rules: 18
4318 //---------------------------------------------------------------------------
4319 
4320 static const complete::Info::ZoneRule kZoneRulesC_Eur[] ACE_TIME_PROGMEM = {
4321  // Anchor: Rule C-Eur 1916 only - Oct 1 1:00 0 -
4322  {
4323  -32767 /*fromYear*/,
4324  -32767 /*toYear*/,
4325  1 /*inMonth*/,
4326  0 /*onDayOfWeek*/,
4327  1 /*onDayOfMonth*/,
4328  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4329  0 /*atTimeCode (0/15)*/,
4330  0 /*deltaMinutes*/,
4331  0 /*letterIndex ("")*/,
4332  },
4333  // Rule C-Eur 1916 only - Apr 30 23:00 1:00 S
4334  {
4335  1916 /*fromYear*/,
4336  1916 /*toYear*/,
4337  4 /*inMonth*/,
4338  0 /*onDayOfWeek*/,
4339  30 /*onDayOfMonth*/,
4340  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4341  5520 /*atTimeCode (82800/15)*/,
4342  60 /*deltaMinutes*/,
4343  25 /*letterIndex ("S")*/,
4344  },
4345  // Rule C-Eur 1916 only - Oct 1 1:00 0 -
4346  {
4347  1916 /*fromYear*/,
4348  1916 /*toYear*/,
4349  10 /*inMonth*/,
4350  0 /*onDayOfWeek*/,
4351  1 /*onDayOfMonth*/,
4352  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4353  240 /*atTimeCode (3600/15)*/,
4354  0 /*deltaMinutes*/,
4355  0 /*letterIndex ("")*/,
4356  },
4357  // Rule C-Eur 1917 1918 - Apr Mon>=15 2:00s 1:00 S
4358  {
4359  1917 /*fromYear*/,
4360  1918 /*toYear*/,
4361  4 /*inMonth*/,
4362  1 /*onDayOfWeek*/,
4363  15 /*onDayOfMonth*/,
4364  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4365  480 /*atTimeCode (7200/15)*/,
4366  60 /*deltaMinutes*/,
4367  25 /*letterIndex ("S")*/,
4368  },
4369  // Rule C-Eur 1917 1918 - Sep Mon>=15 2:00s 0 -
4370  {
4371  1917 /*fromYear*/,
4372  1918 /*toYear*/,
4373  9 /*inMonth*/,
4374  1 /*onDayOfWeek*/,
4375  15 /*onDayOfMonth*/,
4376  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4377  480 /*atTimeCode (7200/15)*/,
4378  0 /*deltaMinutes*/,
4379  0 /*letterIndex ("")*/,
4380  },
4381  // Rule C-Eur 1940 only - Apr 1 2:00s 1:00 S
4382  {
4383  1940 /*fromYear*/,
4384  1940 /*toYear*/,
4385  4 /*inMonth*/,
4386  0 /*onDayOfWeek*/,
4387  1 /*onDayOfMonth*/,
4388  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4389  480 /*atTimeCode (7200/15)*/,
4390  60 /*deltaMinutes*/,
4391  25 /*letterIndex ("S")*/,
4392  },
4393  // Rule C-Eur 1942 only - Nov 2 2:00s 0 -
4394  {
4395  1942 /*fromYear*/,
4396  1942 /*toYear*/,
4397  11 /*inMonth*/,
4398  0 /*onDayOfWeek*/,
4399  2 /*onDayOfMonth*/,
4400  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4401  480 /*atTimeCode (7200/15)*/,
4402  0 /*deltaMinutes*/,
4403  0 /*letterIndex ("")*/,
4404  },
4405  // Rule C-Eur 1943 only - Mar 29 2:00s 1:00 S
4406  {
4407  1943 /*fromYear*/,
4408  1943 /*toYear*/,
4409  3 /*inMonth*/,
4410  0 /*onDayOfWeek*/,
4411  29 /*onDayOfMonth*/,
4412  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4413  480 /*atTimeCode (7200/15)*/,
4414  60 /*deltaMinutes*/,
4415  25 /*letterIndex ("S")*/,
4416  },
4417  // Rule C-Eur 1943 only - Oct 4 2:00s 0 -
4418  {
4419  1943 /*fromYear*/,
4420  1943 /*toYear*/,
4421  10 /*inMonth*/,
4422  0 /*onDayOfWeek*/,
4423  4 /*onDayOfMonth*/,
4424  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4425  480 /*atTimeCode (7200/15)*/,
4426  0 /*deltaMinutes*/,
4427  0 /*letterIndex ("")*/,
4428  },
4429  // Rule C-Eur 1944 1945 - Apr Mon>=1 2:00s 1:00 S
4430  {
4431  1944 /*fromYear*/,
4432  1945 /*toYear*/,
4433  4 /*inMonth*/,
4434  1 /*onDayOfWeek*/,
4435  1 /*onDayOfMonth*/,
4436  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4437  480 /*atTimeCode (7200/15)*/,
4438  60 /*deltaMinutes*/,
4439  25 /*letterIndex ("S")*/,
4440  },
4441  // Rule C-Eur 1944 only - Oct 2 2:00s 0 -
4442  {
4443  1944 /*fromYear*/,
4444  1944 /*toYear*/,
4445  10 /*inMonth*/,
4446  0 /*onDayOfWeek*/,
4447  2 /*onDayOfMonth*/,
4448  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4449  480 /*atTimeCode (7200/15)*/,
4450  0 /*deltaMinutes*/,
4451  0 /*letterIndex ("")*/,
4452  },
4453  // Rule C-Eur 1945 only - Sep 16 2:00s 0 -
4454  {
4455  1945 /*fromYear*/,
4456  1945 /*toYear*/,
4457  9 /*inMonth*/,
4458  0 /*onDayOfWeek*/,
4459  16 /*onDayOfMonth*/,
4460  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4461  480 /*atTimeCode (7200/15)*/,
4462  0 /*deltaMinutes*/,
4463  0 /*letterIndex ("")*/,
4464  },
4465  // Rule C-Eur 1977 1980 - Apr Sun>=1 2:00s 1:00 S
4466  {
4467  1977 /*fromYear*/,
4468  1980 /*toYear*/,
4469  4 /*inMonth*/,
4470  7 /*onDayOfWeek*/,
4471  1 /*onDayOfMonth*/,
4472  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4473  480 /*atTimeCode (7200/15)*/,
4474  60 /*deltaMinutes*/,
4475  25 /*letterIndex ("S")*/,
4476  },
4477  // Rule C-Eur 1977 only - Sep lastSun 2:00s 0 -
4478  {
4479  1977 /*fromYear*/,
4480  1977 /*toYear*/,
4481  9 /*inMonth*/,
4482  7 /*onDayOfWeek*/,
4483  0 /*onDayOfMonth*/,
4484  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4485  480 /*atTimeCode (7200/15)*/,
4486  0 /*deltaMinutes*/,
4487  0 /*letterIndex ("")*/,
4488  },
4489  // Rule C-Eur 1978 only - Oct 1 2:00s 0 -
4490  {
4491  1978 /*fromYear*/,
4492  1978 /*toYear*/,
4493  10 /*inMonth*/,
4494  0 /*onDayOfWeek*/,
4495  1 /*onDayOfMonth*/,
4496  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4497  480 /*atTimeCode (7200/15)*/,
4498  0 /*deltaMinutes*/,
4499  0 /*letterIndex ("")*/,
4500  },
4501  // Rule C-Eur 1979 1995 - Sep lastSun 2:00s 0 -
4502  {
4503  1979 /*fromYear*/,
4504  1995 /*toYear*/,
4505  9 /*inMonth*/,
4506  7 /*onDayOfWeek*/,
4507  0 /*onDayOfMonth*/,
4508  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4509  480 /*atTimeCode (7200/15)*/,
4510  0 /*deltaMinutes*/,
4511  0 /*letterIndex ("")*/,
4512  },
4513  // Rule C-Eur 1981 max - Mar lastSun 2:00s 1:00 S
4514  {
4515  1981 /*fromYear*/,
4516  32766 /*toYear*/,
4517  3 /*inMonth*/,
4518  7 /*onDayOfWeek*/,
4519  0 /*onDayOfMonth*/,
4520  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4521  480 /*atTimeCode (7200/15)*/,
4522  60 /*deltaMinutes*/,
4523  25 /*letterIndex ("S")*/,
4524  },
4525  // Rule C-Eur 1996 max - Oct lastSun 2:00s 0 -
4526  {
4527  1996 /*fromYear*/,
4528  32766 /*toYear*/,
4529  10 /*inMonth*/,
4530  7 /*onDayOfWeek*/,
4531  0 /*onDayOfMonth*/,
4532  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4533  480 /*atTimeCode (7200/15)*/,
4534  0 /*deltaMinutes*/,
4535  0 /*letterIndex ("")*/,
4536  },
4537 
4538 };
4539 
4540 const complete::Info::ZonePolicy kZonePolicyC_Eur ACE_TIME_PROGMEM = {
4541  kZoneRulesC_Eur /*rules*/,
4542  18 /*numRules*/,
4543 };
4544 
4545 //---------------------------------------------------------------------------
4546 // Policy name: CA
4547 // Rules: 6
4548 //---------------------------------------------------------------------------
4549 
4550 static const complete::Info::ZoneRule kZoneRulesCA[] ACE_TIME_PROGMEM = {
4551  // Anchor: Rule CA 1949 only - Jan 1 2:00 0 S
4552  {
4553  -32767 /*fromYear*/,
4554  -32767 /*toYear*/,
4555  1 /*inMonth*/,
4556  0 /*onDayOfWeek*/,
4557  1 /*onDayOfMonth*/,
4558  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4559  0 /*atTimeCode (0/15)*/,
4560  0 /*deltaMinutes*/,
4561  25 /*letterIndex ("S")*/,
4562  },
4563  // Rule CA 1948 only - Mar 14 2:01 1:00 D
4564  {
4565  1948 /*fromYear*/,
4566  1948 /*toYear*/,
4567  3 /*inMonth*/,
4568  0 /*onDayOfWeek*/,
4569  14 /*onDayOfMonth*/,
4570  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4571  484 /*atTimeCode (7260/15)*/,
4572  60 /*deltaMinutes*/,
4573  13 /*letterIndex ("D")*/,
4574  },
4575  // Rule CA 1949 only - Jan 1 2:00 0 S
4576  {
4577  1949 /*fromYear*/,
4578  1949 /*toYear*/,
4579  1 /*inMonth*/,
4580  0 /*onDayOfWeek*/,
4581  1 /*onDayOfMonth*/,
4582  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4583  480 /*atTimeCode (7200/15)*/,
4584  0 /*deltaMinutes*/,
4585  25 /*letterIndex ("S")*/,
4586  },
4587  // Rule CA 1950 1966 - Apr lastSun 1:00 1:00 D
4588  {
4589  1950 /*fromYear*/,
4590  1966 /*toYear*/,
4591  4 /*inMonth*/,
4592  7 /*onDayOfWeek*/,
4593  0 /*onDayOfMonth*/,
4594  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4595  240 /*atTimeCode (3600/15)*/,
4596  60 /*deltaMinutes*/,
4597  13 /*letterIndex ("D")*/,
4598  },
4599  // Rule CA 1950 1961 - Sep lastSun 2:00 0 S
4600  {
4601  1950 /*fromYear*/,
4602  1961 /*toYear*/,
4603  9 /*inMonth*/,
4604  7 /*onDayOfWeek*/,
4605  0 /*onDayOfMonth*/,
4606  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4607  480 /*atTimeCode (7200/15)*/,
4608  0 /*deltaMinutes*/,
4609  25 /*letterIndex ("S")*/,
4610  },
4611  // Rule CA 1962 1966 - Oct lastSun 2:00 0 S
4612  {
4613  1962 /*fromYear*/,
4614  1966 /*toYear*/,
4615  10 /*inMonth*/,
4616  7 /*onDayOfWeek*/,
4617  0 /*onDayOfMonth*/,
4618  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4619  480 /*atTimeCode (7200/15)*/,
4620  0 /*deltaMinutes*/,
4621  25 /*letterIndex ("S")*/,
4622  },
4623 
4624 };
4625 
4626 const complete::Info::ZonePolicy kZonePolicyCA ACE_TIME_PROGMEM = {
4627  kZoneRulesCA /*rules*/,
4628  6 /*numRules*/,
4629 };
4630 
4631 //---------------------------------------------------------------------------
4632 // Policy name: CO
4633 // Rules: 3
4634 //---------------------------------------------------------------------------
4635 
4636 static const complete::Info::ZoneRule kZoneRulesCO[] ACE_TIME_PROGMEM = {
4637  // Anchor: Rule CO 1993 only - Feb 6 24:00 0 -
4638  {
4639  -32767 /*fromYear*/,
4640  -32767 /*toYear*/,
4641  1 /*inMonth*/,
4642  0 /*onDayOfWeek*/,
4643  1 /*onDayOfMonth*/,
4644  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4645  0 /*atTimeCode (0/15)*/,
4646  0 /*deltaMinutes*/,
4647  0 /*letterIndex ("")*/,
4648  },
4649  // Rule CO 1992 only - May 3 0:00 1:00 -
4650  {
4651  1992 /*fromYear*/,
4652  1992 /*toYear*/,
4653  5 /*inMonth*/,
4654  0 /*onDayOfWeek*/,
4655  3 /*onDayOfMonth*/,
4656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4657  0 /*atTimeCode (0/15)*/,
4658  60 /*deltaMinutes*/,
4659  0 /*letterIndex ("")*/,
4660  },
4661  // Rule CO 1993 only - Feb 6 24:00 0 -
4662  {
4663  1993 /*fromYear*/,
4664  1993 /*toYear*/,
4665  2 /*inMonth*/,
4666  0 /*onDayOfWeek*/,
4667  6 /*onDayOfMonth*/,
4668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4669  5760 /*atTimeCode (86400/15)*/,
4670  0 /*deltaMinutes*/,
4671  0 /*letterIndex ("")*/,
4672  },
4673 
4674 };
4675 
4676 const complete::Info::ZonePolicy kZonePolicyCO ACE_TIME_PROGMEM = {
4677  kZoneRulesCO /*rules*/,
4678  3 /*numRules*/,
4679 };
4680 
4681 //---------------------------------------------------------------------------
4682 // Policy name: CR
4683 // Rules: 6
4684 //---------------------------------------------------------------------------
4685 
4686 static const complete::Info::ZoneRule kZoneRulesCR[] ACE_TIME_PROGMEM = {
4687  // Anchor: Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
4688  {
4689  -32767 /*fromYear*/,
4690  -32767 /*toYear*/,
4691  1 /*inMonth*/,
4692  0 /*onDayOfWeek*/,
4693  1 /*onDayOfMonth*/,
4694  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4695  0 /*atTimeCode (0/15)*/,
4696  0 /*deltaMinutes*/,
4697  25 /*letterIndex ("S")*/,
4698  },
4699  // Rule CR 1979 1980 - Feb lastSun 0:00 1:00 D
4700  {
4701  1979 /*fromYear*/,
4702  1980 /*toYear*/,
4703  2 /*inMonth*/,
4704  7 /*onDayOfWeek*/,
4705  0 /*onDayOfMonth*/,
4706  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4707  0 /*atTimeCode (0/15)*/,
4708  60 /*deltaMinutes*/,
4709  13 /*letterIndex ("D")*/,
4710  },
4711  // Rule CR 1979 1980 - Jun Sun>=1 0:00 0 S
4712  {
4713  1979 /*fromYear*/,
4714  1980 /*toYear*/,
4715  6 /*inMonth*/,
4716  7 /*onDayOfWeek*/,
4717  1 /*onDayOfMonth*/,
4718  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4719  0 /*atTimeCode (0/15)*/,
4720  0 /*deltaMinutes*/,
4721  25 /*letterIndex ("S")*/,
4722  },
4723  // Rule CR 1991 1992 - Jan Sat>=15 0:00 1:00 D
4724  {
4725  1991 /*fromYear*/,
4726  1992 /*toYear*/,
4727  1 /*inMonth*/,
4728  6 /*onDayOfWeek*/,
4729  15 /*onDayOfMonth*/,
4730  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4731  0 /*atTimeCode (0/15)*/,
4732  60 /*deltaMinutes*/,
4733  13 /*letterIndex ("D")*/,
4734  },
4735  // Rule CR 1991 only - Jul 1 0:00 0 S
4736  {
4737  1991 /*fromYear*/,
4738  1991 /*toYear*/,
4739  7 /*inMonth*/,
4740  0 /*onDayOfWeek*/,
4741  1 /*onDayOfMonth*/,
4742  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4743  0 /*atTimeCode (0/15)*/,
4744  0 /*deltaMinutes*/,
4745  25 /*letterIndex ("S")*/,
4746  },
4747  // Rule CR 1992 only - Mar 15 0:00 0 S
4748  {
4749  1992 /*fromYear*/,
4750  1992 /*toYear*/,
4751  3 /*inMonth*/,
4752  0 /*onDayOfWeek*/,
4753  15 /*onDayOfMonth*/,
4754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4755  0 /*atTimeCode (0/15)*/,
4756  0 /*deltaMinutes*/,
4757  25 /*letterIndex ("S")*/,
4758  },
4759 
4760 };
4761 
4762 const complete::Info::ZonePolicy kZonePolicyCR ACE_TIME_PROGMEM = {
4763  kZoneRulesCR /*rules*/,
4764  6 /*numRules*/,
4765 };
4766 
4767 //---------------------------------------------------------------------------
4768 // Policy name: Canada
4769 // Rules: 11
4770 //---------------------------------------------------------------------------
4771 
4772 static const complete::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
4773  // Anchor: Rule Canada 1918 only - Oct 27 2:00 0 S
4774  {
4775  -32767 /*fromYear*/,
4776  -32767 /*toYear*/,
4777  1 /*inMonth*/,
4778  0 /*onDayOfWeek*/,
4779  1 /*onDayOfMonth*/,
4780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4781  0 /*atTimeCode (0/15)*/,
4782  0 /*deltaMinutes*/,
4783  25 /*letterIndex ("S")*/,
4784  },
4785  // Rule Canada 1918 only - Apr 14 2:00 1:00 D
4786  {
4787  1918 /*fromYear*/,
4788  1918 /*toYear*/,
4789  4 /*inMonth*/,
4790  0 /*onDayOfWeek*/,
4791  14 /*onDayOfMonth*/,
4792  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4793  480 /*atTimeCode (7200/15)*/,
4794  60 /*deltaMinutes*/,
4795  13 /*letterIndex ("D")*/,
4796  },
4797  // Rule Canada 1918 only - Oct 27 2:00 0 S
4798  {
4799  1918 /*fromYear*/,
4800  1918 /*toYear*/,
4801  10 /*inMonth*/,
4802  0 /*onDayOfWeek*/,
4803  27 /*onDayOfMonth*/,
4804  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4805  480 /*atTimeCode (7200/15)*/,
4806  0 /*deltaMinutes*/,
4807  25 /*letterIndex ("S")*/,
4808  },
4809  // Rule Canada 1942 only - Feb 9 2:00 1:00 W
4810  {
4811  1942 /*fromYear*/,
4812  1942 /*toYear*/,
4813  2 /*inMonth*/,
4814  0 /*onDayOfWeek*/,
4815  9 /*onDayOfMonth*/,
4816  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4817  480 /*atTimeCode (7200/15)*/,
4818  60 /*deltaMinutes*/,
4819  26 /*letterIndex ("W")*/,
4820  },
4821  // Rule Canada 1945 only - Aug 14 23:00u 1:00 P
4822  {
4823  1945 /*fromYear*/,
4824  1945 /*toYear*/,
4825  8 /*inMonth*/,
4826  0 /*onDayOfWeek*/,
4827  14 /*onDayOfMonth*/,
4828  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
4829  5520 /*atTimeCode (82800/15)*/,
4830  60 /*deltaMinutes*/,
4831  24 /*letterIndex ("P")*/,
4832  },
4833  // Rule Canada 1945 only - Sep 30 2:00 0 S
4834  {
4835  1945 /*fromYear*/,
4836  1945 /*toYear*/,
4837  9 /*inMonth*/,
4838  0 /*onDayOfWeek*/,
4839  30 /*onDayOfMonth*/,
4840  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4841  480 /*atTimeCode (7200/15)*/,
4842  0 /*deltaMinutes*/,
4843  25 /*letterIndex ("S")*/,
4844  },
4845  // Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
4846  {
4847  1974 /*fromYear*/,
4848  1986 /*toYear*/,
4849  4 /*inMonth*/,
4850  7 /*onDayOfWeek*/,
4851  0 /*onDayOfMonth*/,
4852  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4853  480 /*atTimeCode (7200/15)*/,
4854  60 /*deltaMinutes*/,
4855  13 /*letterIndex ("D")*/,
4856  },
4857  // Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
4858  {
4859  1974 /*fromYear*/,
4860  2006 /*toYear*/,
4861  10 /*inMonth*/,
4862  7 /*onDayOfWeek*/,
4863  0 /*onDayOfMonth*/,
4864  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4865  480 /*atTimeCode (7200/15)*/,
4866  0 /*deltaMinutes*/,
4867  25 /*letterIndex ("S")*/,
4868  },
4869  // Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
4870  {
4871  1987 /*fromYear*/,
4872  2006 /*toYear*/,
4873  4 /*inMonth*/,
4874  7 /*onDayOfWeek*/,
4875  1 /*onDayOfMonth*/,
4876  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4877  480 /*atTimeCode (7200/15)*/,
4878  60 /*deltaMinutes*/,
4879  13 /*letterIndex ("D")*/,
4880  },
4881  // Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
4882  {
4883  2007 /*fromYear*/,
4884  32766 /*toYear*/,
4885  3 /*inMonth*/,
4886  7 /*onDayOfWeek*/,
4887  8 /*onDayOfMonth*/,
4888  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4889  480 /*atTimeCode (7200/15)*/,
4890  60 /*deltaMinutes*/,
4891  13 /*letterIndex ("D")*/,
4892  },
4893  // Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
4894  {
4895  2007 /*fromYear*/,
4896  32766 /*toYear*/,
4897  11 /*inMonth*/,
4898  7 /*onDayOfWeek*/,
4899  1 /*onDayOfMonth*/,
4900  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4901  480 /*atTimeCode (7200/15)*/,
4902  0 /*deltaMinutes*/,
4903  25 /*letterIndex ("S")*/,
4904  },
4905 
4906 };
4907 
4908 const complete::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
4909  kZoneRulesCanada /*rules*/,
4910  11 /*numRules*/,
4911 };
4912 
4913 //---------------------------------------------------------------------------
4914 // Policy name: Chatham
4915 // Rules: 10
4916 //---------------------------------------------------------------------------
4917 
4918 static const complete::Info::ZoneRule kZoneRulesChatham[] ACE_TIME_PROGMEM = {
4919  // Anchor: Rule Chatham 1975 only - Feb lastSun 2:45s 0 -
4920  {
4921  -32767 /*fromYear*/,
4922  -32767 /*toYear*/,
4923  1 /*inMonth*/,
4924  0 /*onDayOfWeek*/,
4925  1 /*onDayOfMonth*/,
4926  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
4927  0 /*atTimeCode (0/15)*/,
4928  0 /*deltaMinutes*/,
4929  0 /*letterIndex ("")*/,
4930  },
4931  // Rule Chatham 1974 only - Nov Sun>=1 2:45s 1:00 -
4932  {
4933  1974 /*fromYear*/,
4934  1974 /*toYear*/,
4935  11 /*inMonth*/,
4936  7 /*onDayOfWeek*/,
4937  1 /*onDayOfMonth*/,
4938  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4939  660 /*atTimeCode (9900/15)*/,
4940  60 /*deltaMinutes*/,
4941  0 /*letterIndex ("")*/,
4942  },
4943  // Rule Chatham 1975 only - Feb lastSun 2:45s 0 -
4944  {
4945  1975 /*fromYear*/,
4946  1975 /*toYear*/,
4947  2 /*inMonth*/,
4948  7 /*onDayOfWeek*/,
4949  0 /*onDayOfMonth*/,
4950  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4951  660 /*atTimeCode (9900/15)*/,
4952  0 /*deltaMinutes*/,
4953  0 /*letterIndex ("")*/,
4954  },
4955  // Rule Chatham 1975 1988 - Oct lastSun 2:45s 1:00 -
4956  {
4957  1975 /*fromYear*/,
4958  1988 /*toYear*/,
4959  10 /*inMonth*/,
4960  7 /*onDayOfWeek*/,
4961  0 /*onDayOfMonth*/,
4962  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4963  660 /*atTimeCode (9900/15)*/,
4964  60 /*deltaMinutes*/,
4965  0 /*letterIndex ("")*/,
4966  },
4967  // Rule Chatham 1976 1989 - Mar Sun>=1 2:45s 0 -
4968  {
4969  1976 /*fromYear*/,
4970  1989 /*toYear*/,
4971  3 /*inMonth*/,
4972  7 /*onDayOfWeek*/,
4973  1 /*onDayOfMonth*/,
4974  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4975  660 /*atTimeCode (9900/15)*/,
4976  0 /*deltaMinutes*/,
4977  0 /*letterIndex ("")*/,
4978  },
4979  // Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 -
4980  {
4981  1989 /*fromYear*/,
4982  1989 /*toYear*/,
4983  10 /*inMonth*/,
4984  7 /*onDayOfWeek*/,
4985  8 /*onDayOfMonth*/,
4986  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4987  660 /*atTimeCode (9900/15)*/,
4988  60 /*deltaMinutes*/,
4989  0 /*letterIndex ("")*/,
4990  },
4991  // Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 -
4992  {
4993  1990 /*fromYear*/,
4994  2006 /*toYear*/,
4995  10 /*inMonth*/,
4996  7 /*onDayOfWeek*/,
4997  1 /*onDayOfMonth*/,
4998  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
4999  660 /*atTimeCode (9900/15)*/,
5000  60 /*deltaMinutes*/,
5001  0 /*letterIndex ("")*/,
5002  },
5003  // Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
5004  {
5005  1990 /*fromYear*/,
5006  2007 /*toYear*/,
5007  3 /*inMonth*/,
5008  7 /*onDayOfWeek*/,
5009  15 /*onDayOfMonth*/,
5010  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
5011  660 /*atTimeCode (9900/15)*/,
5012  0 /*deltaMinutes*/,
5013  0 /*letterIndex ("")*/,
5014  },
5015  // Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 -
5016  {
5017  2007 /*fromYear*/,
5018  32766 /*toYear*/,
5019  9 /*inMonth*/,
5020  7 /*onDayOfWeek*/,
5021  0 /*onDayOfMonth*/,
5022  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
5023  660 /*atTimeCode (9900/15)*/,
5024  60 /*deltaMinutes*/,
5025  0 /*letterIndex ("")*/,
5026  },
5027  // Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 -
5028  {
5029  2008 /*fromYear*/,
5030  32766 /*toYear*/,
5031  4 /*inMonth*/,
5032  7 /*onDayOfWeek*/,
5033  1 /*onDayOfMonth*/,
5034  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
5035  660 /*atTimeCode (9900/15)*/,
5036  0 /*deltaMinutes*/,
5037  0 /*letterIndex ("")*/,
5038  },
5039 
5040 };
5041 
5042 const complete::Info::ZonePolicy kZonePolicyChatham ACE_TIME_PROGMEM = {
5043  kZoneRulesChatham /*rules*/,
5044  10 /*numRules*/,
5045 };
5046 
5047 //---------------------------------------------------------------------------
5048 // Policy name: Chicago
5049 // Rules: 7
5050 //---------------------------------------------------------------------------
5051 
5052 static const complete::Info::ZoneRule kZoneRulesChicago[] ACE_TIME_PROGMEM = {
5053  // Anchor: Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
5054  {
5055  -32767 /*fromYear*/,
5056  -32767 /*toYear*/,
5057  1 /*inMonth*/,
5058  0 /*onDayOfWeek*/,
5059  1 /*onDayOfMonth*/,
5060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5061  0 /*atTimeCode (0/15)*/,
5062  0 /*deltaMinutes*/,
5063  25 /*letterIndex ("S")*/,
5064  },
5065  // Rule Chicago 1920 only - Jun 13 2:00 1:00 D
5066  {
5067  1920 /*fromYear*/,
5068  1920 /*toYear*/,
5069  6 /*inMonth*/,
5070  0 /*onDayOfWeek*/,
5071  13 /*onDayOfMonth*/,
5072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5073  480 /*atTimeCode (7200/15)*/,
5074  60 /*deltaMinutes*/,
5075  13 /*letterIndex ("D")*/,
5076  },
5077  // Rule Chicago 1920 1921 - Oct lastSun 2:00 0 S
5078  {
5079  1920 /*fromYear*/,
5080  1921 /*toYear*/,
5081  10 /*inMonth*/,
5082  7 /*onDayOfWeek*/,
5083  0 /*onDayOfMonth*/,
5084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5085  480 /*atTimeCode (7200/15)*/,
5086  0 /*deltaMinutes*/,
5087  25 /*letterIndex ("S")*/,
5088  },
5089  // Rule Chicago 1921 only - Mar lastSun 2:00 1:00 D
5090  {
5091  1921 /*fromYear*/,
5092  1921 /*toYear*/,
5093  3 /*inMonth*/,
5094  7 /*onDayOfWeek*/,
5095  0 /*onDayOfMonth*/,
5096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5097  480 /*atTimeCode (7200/15)*/,
5098  60 /*deltaMinutes*/,
5099  13 /*letterIndex ("D")*/,
5100  },
5101  // Rule Chicago 1922 1966 - Apr lastSun 2:00 1:00 D
5102  {
5103  1922 /*fromYear*/,
5104  1966 /*toYear*/,
5105  4 /*inMonth*/,
5106  7 /*onDayOfWeek*/,
5107  0 /*onDayOfMonth*/,
5108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5109  480 /*atTimeCode (7200/15)*/,
5110  60 /*deltaMinutes*/,
5111  13 /*letterIndex ("D")*/,
5112  },
5113  // Rule Chicago 1922 1954 - Sep lastSun 2:00 0 S
5114  {
5115  1922 /*fromYear*/,
5116  1954 /*toYear*/,
5117  9 /*inMonth*/,
5118  7 /*onDayOfWeek*/,
5119  0 /*onDayOfMonth*/,
5120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5121  480 /*atTimeCode (7200/15)*/,
5122  0 /*deltaMinutes*/,
5123  25 /*letterIndex ("S")*/,
5124  },
5125  // Rule Chicago 1955 1966 - Oct lastSun 2:00 0 S
5126  {
5127  1955 /*fromYear*/,
5128  1966 /*toYear*/,
5129  10 /*inMonth*/,
5130  7 /*onDayOfWeek*/,
5131  0 /*onDayOfMonth*/,
5132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5133  480 /*atTimeCode (7200/15)*/,
5134  0 /*deltaMinutes*/,
5135  25 /*letterIndex ("S")*/,
5136  },
5137 
5138 };
5139 
5140 const complete::Info::ZonePolicy kZonePolicyChicago ACE_TIME_PROGMEM = {
5141  kZoneRulesChicago /*rules*/,
5142  7 /*numRules*/,
5143 };
5144 
5145 //---------------------------------------------------------------------------
5146 // Policy name: Chile
5147 // Rules: 37
5148 //---------------------------------------------------------------------------
5149 
5150 static const complete::Info::ZoneRule kZoneRulesChile[] ACE_TIME_PROGMEM = {
5151  // Anchor: Rule Chile 1928 1932 - Apr 1 0:00 0 -
5152  {
5153  -32767 /*fromYear*/,
5154  -32767 /*toYear*/,
5155  1 /*inMonth*/,
5156  0 /*onDayOfWeek*/,
5157  1 /*onDayOfMonth*/,
5158  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5159  0 /*atTimeCode (0/15)*/,
5160  0 /*deltaMinutes*/,
5161  0 /*letterIndex ("")*/,
5162  },
5163  // Rule Chile 1927 1931 - Sep 1 0:00 1:00 -
5164  {
5165  1927 /*fromYear*/,
5166  1931 /*toYear*/,
5167  9 /*inMonth*/,
5168  0 /*onDayOfWeek*/,
5169  1 /*onDayOfMonth*/,
5170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5171  0 /*atTimeCode (0/15)*/,
5172  60 /*deltaMinutes*/,
5173  0 /*letterIndex ("")*/,
5174  },
5175  // Rule Chile 1928 1932 - Apr 1 0:00 0 -
5176  {
5177  1928 /*fromYear*/,
5178  1932 /*toYear*/,
5179  4 /*inMonth*/,
5180  0 /*onDayOfWeek*/,
5181  1 /*onDayOfMonth*/,
5182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5183  0 /*atTimeCode (0/15)*/,
5184  0 /*deltaMinutes*/,
5185  0 /*letterIndex ("")*/,
5186  },
5187  // Rule Chile 1968 only - Nov 3 4:00u 1:00 -
5188  {
5189  1968 /*fromYear*/,
5190  1968 /*toYear*/,
5191  11 /*inMonth*/,
5192  0 /*onDayOfWeek*/,
5193  3 /*onDayOfMonth*/,
5194  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5195  960 /*atTimeCode (14400/15)*/,
5196  60 /*deltaMinutes*/,
5197  0 /*letterIndex ("")*/,
5198  },
5199  // Rule Chile 1969 only - Mar 30 3:00u 0 -
5200  {
5201  1969 /*fromYear*/,
5202  1969 /*toYear*/,
5203  3 /*inMonth*/,
5204  0 /*onDayOfWeek*/,
5205  30 /*onDayOfMonth*/,
5206  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5207  720 /*atTimeCode (10800/15)*/,
5208  0 /*deltaMinutes*/,
5209  0 /*letterIndex ("")*/,
5210  },
5211  // Rule Chile 1969 only - Nov 23 4:00u 1:00 -
5212  {
5213  1969 /*fromYear*/,
5214  1969 /*toYear*/,
5215  11 /*inMonth*/,
5216  0 /*onDayOfWeek*/,
5217  23 /*onDayOfMonth*/,
5218  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5219  960 /*atTimeCode (14400/15)*/,
5220  60 /*deltaMinutes*/,
5221  0 /*letterIndex ("")*/,
5222  },
5223  // Rule Chile 1970 only - Mar 29 3:00u 0 -
5224  {
5225  1970 /*fromYear*/,
5226  1970 /*toYear*/,
5227  3 /*inMonth*/,
5228  0 /*onDayOfWeek*/,
5229  29 /*onDayOfMonth*/,
5230  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5231  720 /*atTimeCode (10800/15)*/,
5232  0 /*deltaMinutes*/,
5233  0 /*letterIndex ("")*/,
5234  },
5235  // Rule Chile 1971 only - Mar 14 3:00u 0 -
5236  {
5237  1971 /*fromYear*/,
5238  1971 /*toYear*/,
5239  3 /*inMonth*/,
5240  0 /*onDayOfWeek*/,
5241  14 /*onDayOfMonth*/,
5242  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5243  720 /*atTimeCode (10800/15)*/,
5244  0 /*deltaMinutes*/,
5245  0 /*letterIndex ("")*/,
5246  },
5247  // Rule Chile 1970 1972 - Oct Sun>=9 4:00u 1:00 -
5248  {
5249  1970 /*fromYear*/,
5250  1972 /*toYear*/,
5251  10 /*inMonth*/,
5252  7 /*onDayOfWeek*/,
5253  9 /*onDayOfMonth*/,
5254  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5255  960 /*atTimeCode (14400/15)*/,
5256  60 /*deltaMinutes*/,
5257  0 /*letterIndex ("")*/,
5258  },
5259  // Rule Chile 1972 1986 - Mar Sun>=9 3:00u 0 -
5260  {
5261  1972 /*fromYear*/,
5262  1986 /*toYear*/,
5263  3 /*inMonth*/,
5264  7 /*onDayOfWeek*/,
5265  9 /*onDayOfMonth*/,
5266  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5267  720 /*atTimeCode (10800/15)*/,
5268  0 /*deltaMinutes*/,
5269  0 /*letterIndex ("")*/,
5270  },
5271  // Rule Chile 1973 only - Sep 30 4:00u 1:00 -
5272  {
5273  1973 /*fromYear*/,
5274  1973 /*toYear*/,
5275  9 /*inMonth*/,
5276  0 /*onDayOfWeek*/,
5277  30 /*onDayOfMonth*/,
5278  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5279  960 /*atTimeCode (14400/15)*/,
5280  60 /*deltaMinutes*/,
5281  0 /*letterIndex ("")*/,
5282  },
5283  // Rule Chile 1974 1987 - Oct Sun>=9 4:00u 1:00 -
5284  {
5285  1974 /*fromYear*/,
5286  1987 /*toYear*/,
5287  10 /*inMonth*/,
5288  7 /*onDayOfWeek*/,
5289  9 /*onDayOfMonth*/,
5290  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5291  960 /*atTimeCode (14400/15)*/,
5292  60 /*deltaMinutes*/,
5293  0 /*letterIndex ("")*/,
5294  },
5295  // Rule Chile 1987 only - Apr 12 3:00u 0 -
5296  {
5297  1987 /*fromYear*/,
5298  1987 /*toYear*/,
5299  4 /*inMonth*/,
5300  0 /*onDayOfWeek*/,
5301  12 /*onDayOfMonth*/,
5302  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5303  720 /*atTimeCode (10800/15)*/,
5304  0 /*deltaMinutes*/,
5305  0 /*letterIndex ("")*/,
5306  },
5307  // Rule Chile 1988 1990 - Mar Sun>=9 3:00u 0 -
5308  {
5309  1988 /*fromYear*/,
5310  1990 /*toYear*/,
5311  3 /*inMonth*/,
5312  7 /*onDayOfWeek*/,
5313  9 /*onDayOfMonth*/,
5314  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5315  720 /*atTimeCode (10800/15)*/,
5316  0 /*deltaMinutes*/,
5317  0 /*letterIndex ("")*/,
5318  },
5319  // Rule Chile 1988 1989 - Oct Sun>=9 4:00u 1:00 -
5320  {
5321  1988 /*fromYear*/,
5322  1989 /*toYear*/,
5323  10 /*inMonth*/,
5324  7 /*onDayOfWeek*/,
5325  9 /*onDayOfMonth*/,
5326  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5327  960 /*atTimeCode (14400/15)*/,
5328  60 /*deltaMinutes*/,
5329  0 /*letterIndex ("")*/,
5330  },
5331  // Rule Chile 1990 only - Sep 16 4:00u 1:00 -
5332  {
5333  1990 /*fromYear*/,
5334  1990 /*toYear*/,
5335  9 /*inMonth*/,
5336  0 /*onDayOfWeek*/,
5337  16 /*onDayOfMonth*/,
5338  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5339  960 /*atTimeCode (14400/15)*/,
5340  60 /*deltaMinutes*/,
5341  0 /*letterIndex ("")*/,
5342  },
5343  // Rule Chile 1991 1996 - Mar Sun>=9 3:00u 0 -
5344  {
5345  1991 /*fromYear*/,
5346  1996 /*toYear*/,
5347  3 /*inMonth*/,
5348  7 /*onDayOfWeek*/,
5349  9 /*onDayOfMonth*/,
5350  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5351  720 /*atTimeCode (10800/15)*/,
5352  0 /*deltaMinutes*/,
5353  0 /*letterIndex ("")*/,
5354  },
5355  // Rule Chile 1991 1997 - Oct Sun>=9 4:00u 1:00 -
5356  {
5357  1991 /*fromYear*/,
5358  1997 /*toYear*/,
5359  10 /*inMonth*/,
5360  7 /*onDayOfWeek*/,
5361  9 /*onDayOfMonth*/,
5362  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5363  960 /*atTimeCode (14400/15)*/,
5364  60 /*deltaMinutes*/,
5365  0 /*letterIndex ("")*/,
5366  },
5367  // Rule Chile 1997 only - Mar 30 3:00u 0 -
5368  {
5369  1997 /*fromYear*/,
5370  1997 /*toYear*/,
5371  3 /*inMonth*/,
5372  0 /*onDayOfWeek*/,
5373  30 /*onDayOfMonth*/,
5374  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5375  720 /*atTimeCode (10800/15)*/,
5376  0 /*deltaMinutes*/,
5377  0 /*letterIndex ("")*/,
5378  },
5379  // Rule Chile 1998 only - Mar Sun>=9 3:00u 0 -
5380  {
5381  1998 /*fromYear*/,
5382  1998 /*toYear*/,
5383  3 /*inMonth*/,
5384  7 /*onDayOfWeek*/,
5385  9 /*onDayOfMonth*/,
5386  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5387  720 /*atTimeCode (10800/15)*/,
5388  0 /*deltaMinutes*/,
5389  0 /*letterIndex ("")*/,
5390  },
5391  // Rule Chile 1998 only - Sep 27 4:00u 1:00 -
5392  {
5393  1998 /*fromYear*/,
5394  1998 /*toYear*/,
5395  9 /*inMonth*/,
5396  0 /*onDayOfWeek*/,
5397  27 /*onDayOfMonth*/,
5398  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5399  960 /*atTimeCode (14400/15)*/,
5400  60 /*deltaMinutes*/,
5401  0 /*letterIndex ("")*/,
5402  },
5403  // Rule Chile 1999 only - Apr 4 3:00u 0 -
5404  {
5405  1999 /*fromYear*/,
5406  1999 /*toYear*/,
5407  4 /*inMonth*/,
5408  0 /*onDayOfWeek*/,
5409  4 /*onDayOfMonth*/,
5410  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5411  720 /*atTimeCode (10800/15)*/,
5412  0 /*deltaMinutes*/,
5413  0 /*letterIndex ("")*/,
5414  },
5415  // Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 -
5416  {
5417  1999 /*fromYear*/,
5418  2010 /*toYear*/,
5419  10 /*inMonth*/,
5420  7 /*onDayOfWeek*/,
5421  9 /*onDayOfMonth*/,
5422  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5423  960 /*atTimeCode (14400/15)*/,
5424  60 /*deltaMinutes*/,
5425  0 /*letterIndex ("")*/,
5426  },
5427  // Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 -
5428  {
5429  2000 /*fromYear*/,
5430  2007 /*toYear*/,
5431  3 /*inMonth*/,
5432  7 /*onDayOfWeek*/,
5433  9 /*onDayOfMonth*/,
5434  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5435  720 /*atTimeCode (10800/15)*/,
5436  0 /*deltaMinutes*/,
5437  0 /*letterIndex ("")*/,
5438  },
5439  // Rule Chile 2008 only - Mar 30 3:00u 0 -
5440  {
5441  2008 /*fromYear*/,
5442  2008 /*toYear*/,
5443  3 /*inMonth*/,
5444  0 /*onDayOfWeek*/,
5445  30 /*onDayOfMonth*/,
5446  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5447  720 /*atTimeCode (10800/15)*/,
5448  0 /*deltaMinutes*/,
5449  0 /*letterIndex ("")*/,
5450  },
5451  // Rule Chile 2009 only - Mar Sun>=9 3:00u 0 -
5452  {
5453  2009 /*fromYear*/,
5454  2009 /*toYear*/,
5455  3 /*inMonth*/,
5456  7 /*onDayOfWeek*/,
5457  9 /*onDayOfMonth*/,
5458  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5459  720 /*atTimeCode (10800/15)*/,
5460  0 /*deltaMinutes*/,
5461  0 /*letterIndex ("")*/,
5462  },
5463  // Rule Chile 2010 only - Apr Sun>=1 3:00u 0 -
5464  {
5465  2010 /*fromYear*/,
5466  2010 /*toYear*/,
5467  4 /*inMonth*/,
5468  7 /*onDayOfWeek*/,
5469  1 /*onDayOfMonth*/,
5470  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5471  720 /*atTimeCode (10800/15)*/,
5472  0 /*deltaMinutes*/,
5473  0 /*letterIndex ("")*/,
5474  },
5475  // Rule Chile 2011 only - May Sun>=2 3:00u 0 -
5476  {
5477  2011 /*fromYear*/,
5478  2011 /*toYear*/,
5479  5 /*inMonth*/,
5480  7 /*onDayOfWeek*/,
5481  2 /*onDayOfMonth*/,
5482  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5483  720 /*atTimeCode (10800/15)*/,
5484  0 /*deltaMinutes*/,
5485  0 /*letterIndex ("")*/,
5486  },
5487  // Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 -
5488  {
5489  2011 /*fromYear*/,
5490  2011 /*toYear*/,
5491  8 /*inMonth*/,
5492  7 /*onDayOfWeek*/,
5493  16 /*onDayOfMonth*/,
5494  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5495  960 /*atTimeCode (14400/15)*/,
5496  60 /*deltaMinutes*/,
5497  0 /*letterIndex ("")*/,
5498  },
5499  // Rule Chile 2012 2014 - Apr Sun>=23 3:00u 0 -
5500  {
5501  2012 /*fromYear*/,
5502  2014 /*toYear*/,
5503  4 /*inMonth*/,
5504  7 /*onDayOfWeek*/,
5505  23 /*onDayOfMonth*/,
5506  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5507  720 /*atTimeCode (10800/15)*/,
5508  0 /*deltaMinutes*/,
5509  0 /*letterIndex ("")*/,
5510  },
5511  // Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 -
5512  {
5513  2012 /*fromYear*/,
5514  2014 /*toYear*/,
5515  9 /*inMonth*/,
5516  7 /*onDayOfWeek*/,
5517  2 /*onDayOfMonth*/,
5518  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5519  960 /*atTimeCode (14400/15)*/,
5520  60 /*deltaMinutes*/,
5521  0 /*letterIndex ("")*/,
5522  },
5523  // Rule Chile 2016 2018 - May Sun>=9 3:00u 0 -
5524  {
5525  2016 /*fromYear*/,
5526  2018 /*toYear*/,
5527  5 /*inMonth*/,
5528  7 /*onDayOfWeek*/,
5529  9 /*onDayOfMonth*/,
5530  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5531  720 /*atTimeCode (10800/15)*/,
5532  0 /*deltaMinutes*/,
5533  0 /*letterIndex ("")*/,
5534  },
5535  // Rule Chile 2016 2018 - Aug Sun>=9 4:00u 1:00 -
5536  {
5537  2016 /*fromYear*/,
5538  2018 /*toYear*/,
5539  8 /*inMonth*/,
5540  7 /*onDayOfWeek*/,
5541  9 /*onDayOfMonth*/,
5542  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5543  960 /*atTimeCode (14400/15)*/,
5544  60 /*deltaMinutes*/,
5545  0 /*letterIndex ("")*/,
5546  },
5547  // Rule Chile 2019 max - Apr Sun>=2 3:00u 0 -
5548  {
5549  2019 /*fromYear*/,
5550  32766 /*toYear*/,
5551  4 /*inMonth*/,
5552  7 /*onDayOfWeek*/,
5553  2 /*onDayOfMonth*/,
5554  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5555  720 /*atTimeCode (10800/15)*/,
5556  0 /*deltaMinutes*/,
5557  0 /*letterIndex ("")*/,
5558  },
5559  // Rule Chile 2019 2021 - Sep Sun>=2 4:00u 1:00 -
5560  {
5561  2019 /*fromYear*/,
5562  2021 /*toYear*/,
5563  9 /*inMonth*/,
5564  7 /*onDayOfWeek*/,
5565  2 /*onDayOfMonth*/,
5566  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5567  960 /*atTimeCode (14400/15)*/,
5568  60 /*deltaMinutes*/,
5569  0 /*letterIndex ("")*/,
5570  },
5571  // Rule Chile 2022 only - Sep Sun>=9 4:00u 1:00 -
5572  {
5573  2022 /*fromYear*/,
5574  2022 /*toYear*/,
5575  9 /*inMonth*/,
5576  7 /*onDayOfWeek*/,
5577  9 /*onDayOfMonth*/,
5578  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5579  960 /*atTimeCode (14400/15)*/,
5580  60 /*deltaMinutes*/,
5581  0 /*letterIndex ("")*/,
5582  },
5583  // Rule Chile 2023 max - Sep Sun>=2 4:00u 1:00 -
5584  {
5585  2023 /*fromYear*/,
5586  32766 /*toYear*/,
5587  9 /*inMonth*/,
5588  7 /*onDayOfWeek*/,
5589  2 /*onDayOfMonth*/,
5590  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
5591  960 /*atTimeCode (14400/15)*/,
5592  60 /*deltaMinutes*/,
5593  0 /*letterIndex ("")*/,
5594  },
5595 
5596 };
5597 
5598 const complete::Info::ZonePolicy kZonePolicyChile ACE_TIME_PROGMEM = {
5599  kZoneRulesChile /*rules*/,
5600  37 /*numRules*/,
5601 };
5602 
5603 //---------------------------------------------------------------------------
5604 // Policy name: Cook
5605 // Rules: 4
5606 //---------------------------------------------------------------------------
5607 
5608 static const complete::Info::ZoneRule kZoneRulesCook[] ACE_TIME_PROGMEM = {
5609  // Anchor: Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
5610  {
5611  -32767 /*fromYear*/,
5612  -32767 /*toYear*/,
5613  1 /*inMonth*/,
5614  0 /*onDayOfWeek*/,
5615  1 /*onDayOfMonth*/,
5616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5617  0 /*atTimeCode (0/15)*/,
5618  0 /*deltaMinutes*/,
5619  0 /*letterIndex ("")*/,
5620  },
5621  // Rule Cook 1978 only - Nov 12 0:00 0:30 -
5622  {
5623  1978 /*fromYear*/,
5624  1978 /*toYear*/,
5625  11 /*inMonth*/,
5626  0 /*onDayOfWeek*/,
5627  12 /*onDayOfMonth*/,
5628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5629  0 /*atTimeCode (0/15)*/,
5630  30 /*deltaMinutes*/,
5631  0 /*letterIndex ("")*/,
5632  },
5633  // Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
5634  {
5635  1979 /*fromYear*/,
5636  1991 /*toYear*/,
5637  3 /*inMonth*/,
5638  7 /*onDayOfWeek*/,
5639  1 /*onDayOfMonth*/,
5640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5641  0 /*atTimeCode (0/15)*/,
5642  0 /*deltaMinutes*/,
5643  0 /*letterIndex ("")*/,
5644  },
5645  // Rule Cook 1979 1990 - Oct lastSun 0:00 0:30 -
5646  {
5647  1979 /*fromYear*/,
5648  1990 /*toYear*/,
5649  10 /*inMonth*/,
5650  7 /*onDayOfWeek*/,
5651  0 /*onDayOfMonth*/,
5652  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5653  0 /*atTimeCode (0/15)*/,
5654  30 /*deltaMinutes*/,
5655  0 /*letterIndex ("")*/,
5656  },
5657 
5658 };
5659 
5660 const complete::Info::ZonePolicy kZonePolicyCook ACE_TIME_PROGMEM = {
5661  kZoneRulesCook /*rules*/,
5662  4 /*numRules*/,
5663 };
5664 
5665 //---------------------------------------------------------------------------
5666 // Policy name: Cuba
5667 // Rules: 40
5668 //---------------------------------------------------------------------------
5669 
5670 static const complete::Info::ZoneRule kZoneRulesCuba[] ACE_TIME_PROGMEM = {
5671  // Anchor: Rule Cuba 1928 only - Oct 10 0:00 0 S
5672  {
5673  -32767 /*fromYear*/,
5674  -32767 /*toYear*/,
5675  1 /*inMonth*/,
5676  0 /*onDayOfWeek*/,
5677  1 /*onDayOfMonth*/,
5678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5679  0 /*atTimeCode (0/15)*/,
5680  0 /*deltaMinutes*/,
5681  25 /*letterIndex ("S")*/,
5682  },
5683  // Rule Cuba 1928 only - Jun 10 0:00 1:00 D
5684  {
5685  1928 /*fromYear*/,
5686  1928 /*toYear*/,
5687  6 /*inMonth*/,
5688  0 /*onDayOfWeek*/,
5689  10 /*onDayOfMonth*/,
5690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5691  0 /*atTimeCode (0/15)*/,
5692  60 /*deltaMinutes*/,
5693  13 /*letterIndex ("D")*/,
5694  },
5695  // Rule Cuba 1928 only - Oct 10 0:00 0 S
5696  {
5697  1928 /*fromYear*/,
5698  1928 /*toYear*/,
5699  10 /*inMonth*/,
5700  0 /*onDayOfWeek*/,
5701  10 /*onDayOfMonth*/,
5702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5703  0 /*atTimeCode (0/15)*/,
5704  0 /*deltaMinutes*/,
5705  25 /*letterIndex ("S")*/,
5706  },
5707  // Rule Cuba 1940 1942 - Jun Sun>=1 0:00 1:00 D
5708  {
5709  1940 /*fromYear*/,
5710  1942 /*toYear*/,
5711  6 /*inMonth*/,
5712  7 /*onDayOfWeek*/,
5713  1 /*onDayOfMonth*/,
5714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5715  0 /*atTimeCode (0/15)*/,
5716  60 /*deltaMinutes*/,
5717  13 /*letterIndex ("D")*/,
5718  },
5719  // Rule Cuba 1940 1942 - Sep Sun>=1 0:00 0 S
5720  {
5721  1940 /*fromYear*/,
5722  1942 /*toYear*/,
5723  9 /*inMonth*/,
5724  7 /*onDayOfWeek*/,
5725  1 /*onDayOfMonth*/,
5726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5727  0 /*atTimeCode (0/15)*/,
5728  0 /*deltaMinutes*/,
5729  25 /*letterIndex ("S")*/,
5730  },
5731  // Rule Cuba 1945 1946 - Jun Sun>=1 0:00 1:00 D
5732  {
5733  1945 /*fromYear*/,
5734  1946 /*toYear*/,
5735  6 /*inMonth*/,
5736  7 /*onDayOfWeek*/,
5737  1 /*onDayOfMonth*/,
5738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5739  0 /*atTimeCode (0/15)*/,
5740  60 /*deltaMinutes*/,
5741  13 /*letterIndex ("D")*/,
5742  },
5743  // Rule Cuba 1945 1946 - Sep Sun>=1 0:00 0 S
5744  {
5745  1945 /*fromYear*/,
5746  1946 /*toYear*/,
5747  9 /*inMonth*/,
5748  7 /*onDayOfWeek*/,
5749  1 /*onDayOfMonth*/,
5750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5751  0 /*atTimeCode (0/15)*/,
5752  0 /*deltaMinutes*/,
5753  25 /*letterIndex ("S")*/,
5754  },
5755  // Rule Cuba 1965 only - Jun 1 0:00 1:00 D
5756  {
5757  1965 /*fromYear*/,
5758  1965 /*toYear*/,
5759  6 /*inMonth*/,
5760  0 /*onDayOfWeek*/,
5761  1 /*onDayOfMonth*/,
5762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5763  0 /*atTimeCode (0/15)*/,
5764  60 /*deltaMinutes*/,
5765  13 /*letterIndex ("D")*/,
5766  },
5767  // Rule Cuba 1965 only - Sep 30 0:00 0 S
5768  {
5769  1965 /*fromYear*/,
5770  1965 /*toYear*/,
5771  9 /*inMonth*/,
5772  0 /*onDayOfWeek*/,
5773  30 /*onDayOfMonth*/,
5774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5775  0 /*atTimeCode (0/15)*/,
5776  0 /*deltaMinutes*/,
5777  25 /*letterIndex ("S")*/,
5778  },
5779  // Rule Cuba 1966 only - May 29 0:00 1:00 D
5780  {
5781  1966 /*fromYear*/,
5782  1966 /*toYear*/,
5783  5 /*inMonth*/,
5784  0 /*onDayOfWeek*/,
5785  29 /*onDayOfMonth*/,
5786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5787  0 /*atTimeCode (0/15)*/,
5788  60 /*deltaMinutes*/,
5789  13 /*letterIndex ("D")*/,
5790  },
5791  // Rule Cuba 1966 only - Oct 2 0:00 0 S
5792  {
5793  1966 /*fromYear*/,
5794  1966 /*toYear*/,
5795  10 /*inMonth*/,
5796  0 /*onDayOfWeek*/,
5797  2 /*onDayOfMonth*/,
5798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5799  0 /*atTimeCode (0/15)*/,
5800  0 /*deltaMinutes*/,
5801  25 /*letterIndex ("S")*/,
5802  },
5803  // Rule Cuba 1967 only - Apr 8 0:00 1:00 D
5804  {
5805  1967 /*fromYear*/,
5806  1967 /*toYear*/,
5807  4 /*inMonth*/,
5808  0 /*onDayOfWeek*/,
5809  8 /*onDayOfMonth*/,
5810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5811  0 /*atTimeCode (0/15)*/,
5812  60 /*deltaMinutes*/,
5813  13 /*letterIndex ("D")*/,
5814  },
5815  // Rule Cuba 1967 1968 - Sep Sun>=8 0:00 0 S
5816  {
5817  1967 /*fromYear*/,
5818  1968 /*toYear*/,
5819  9 /*inMonth*/,
5820  7 /*onDayOfWeek*/,
5821  8 /*onDayOfMonth*/,
5822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5823  0 /*atTimeCode (0/15)*/,
5824  0 /*deltaMinutes*/,
5825  25 /*letterIndex ("S")*/,
5826  },
5827  // Rule Cuba 1968 only - Apr 14 0:00 1:00 D
5828  {
5829  1968 /*fromYear*/,
5830  1968 /*toYear*/,
5831  4 /*inMonth*/,
5832  0 /*onDayOfWeek*/,
5833  14 /*onDayOfMonth*/,
5834  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5835  0 /*atTimeCode (0/15)*/,
5836  60 /*deltaMinutes*/,
5837  13 /*letterIndex ("D")*/,
5838  },
5839  // Rule Cuba 1969 1977 - Apr lastSun 0:00 1:00 D
5840  {
5841  1969 /*fromYear*/,
5842  1977 /*toYear*/,
5843  4 /*inMonth*/,
5844  7 /*onDayOfWeek*/,
5845  0 /*onDayOfMonth*/,
5846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5847  0 /*atTimeCode (0/15)*/,
5848  60 /*deltaMinutes*/,
5849  13 /*letterIndex ("D")*/,
5850  },
5851  // Rule Cuba 1969 1971 - Oct lastSun 0:00 0 S
5852  {
5853  1969 /*fromYear*/,
5854  1971 /*toYear*/,
5855  10 /*inMonth*/,
5856  7 /*onDayOfWeek*/,
5857  0 /*onDayOfMonth*/,
5858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5859  0 /*atTimeCode (0/15)*/,
5860  0 /*deltaMinutes*/,
5861  25 /*letterIndex ("S")*/,
5862  },
5863  // Rule Cuba 1972 1974 - Oct 8 0:00 0 S
5864  {
5865  1972 /*fromYear*/,
5866  1974 /*toYear*/,
5867  10 /*inMonth*/,
5868  0 /*onDayOfWeek*/,
5869  8 /*onDayOfMonth*/,
5870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5871  0 /*atTimeCode (0/15)*/,
5872  0 /*deltaMinutes*/,
5873  25 /*letterIndex ("S")*/,
5874  },
5875  // Rule Cuba 1975 1977 - Oct lastSun 0:00 0 S
5876  {
5877  1975 /*fromYear*/,
5878  1977 /*toYear*/,
5879  10 /*inMonth*/,
5880  7 /*onDayOfWeek*/,
5881  0 /*onDayOfMonth*/,
5882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5883  0 /*atTimeCode (0/15)*/,
5884  0 /*deltaMinutes*/,
5885  25 /*letterIndex ("S")*/,
5886  },
5887  // Rule Cuba 1978 only - May 7 0:00 1:00 D
5888  {
5889  1978 /*fromYear*/,
5890  1978 /*toYear*/,
5891  5 /*inMonth*/,
5892  0 /*onDayOfWeek*/,
5893  7 /*onDayOfMonth*/,
5894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5895  0 /*atTimeCode (0/15)*/,
5896  60 /*deltaMinutes*/,
5897  13 /*letterIndex ("D")*/,
5898  },
5899  // Rule Cuba 1978 1990 - Oct Sun>=8 0:00 0 S
5900  {
5901  1978 /*fromYear*/,
5902  1990 /*toYear*/,
5903  10 /*inMonth*/,
5904  7 /*onDayOfWeek*/,
5905  8 /*onDayOfMonth*/,
5906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5907  0 /*atTimeCode (0/15)*/,
5908  0 /*deltaMinutes*/,
5909  25 /*letterIndex ("S")*/,
5910  },
5911  // Rule Cuba 1979 1980 - Mar Sun>=15 0:00 1:00 D
5912  {
5913  1979 /*fromYear*/,
5914  1980 /*toYear*/,
5915  3 /*inMonth*/,
5916  7 /*onDayOfWeek*/,
5917  15 /*onDayOfMonth*/,
5918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5919  0 /*atTimeCode (0/15)*/,
5920  60 /*deltaMinutes*/,
5921  13 /*letterIndex ("D")*/,
5922  },
5923  // Rule Cuba 1981 1985 - May Sun>=5 0:00 1:00 D
5924  {
5925  1981 /*fromYear*/,
5926  1985 /*toYear*/,
5927  5 /*inMonth*/,
5928  7 /*onDayOfWeek*/,
5929  5 /*onDayOfMonth*/,
5930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5931  0 /*atTimeCode (0/15)*/,
5932  60 /*deltaMinutes*/,
5933  13 /*letterIndex ("D")*/,
5934  },
5935  // Rule Cuba 1986 1989 - Mar Sun>=14 0:00 1:00 D
5936  {
5937  1986 /*fromYear*/,
5938  1989 /*toYear*/,
5939  3 /*inMonth*/,
5940  7 /*onDayOfWeek*/,
5941  14 /*onDayOfMonth*/,
5942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5943  0 /*atTimeCode (0/15)*/,
5944  60 /*deltaMinutes*/,
5945  13 /*letterIndex ("D")*/,
5946  },
5947  // Rule Cuba 1990 1997 - Apr Sun>=1 0:00 1:00 D
5948  {
5949  1990 /*fromYear*/,
5950  1997 /*toYear*/,
5951  4 /*inMonth*/,
5952  7 /*onDayOfWeek*/,
5953  1 /*onDayOfMonth*/,
5954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
5955  0 /*atTimeCode (0/15)*/,
5956  60 /*deltaMinutes*/,
5957  13 /*letterIndex ("D")*/,
5958  },
5959  // Rule Cuba 1991 1995 - Oct Sun>=8 0:00s 0 S
5960  {
5961  1991 /*fromYear*/,
5962  1995 /*toYear*/,
5963  10 /*inMonth*/,
5964  7 /*onDayOfWeek*/,
5965  8 /*onDayOfMonth*/,
5966  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
5967  0 /*atTimeCode (0/15)*/,
5968  0 /*deltaMinutes*/,
5969  25 /*letterIndex ("S")*/,
5970  },
5971  // Rule Cuba 1996 only - Oct 6 0:00s 0 S
5972  {
5973  1996 /*fromYear*/,
5974  1996 /*toYear*/,
5975  10 /*inMonth*/,
5976  0 /*onDayOfWeek*/,
5977  6 /*onDayOfMonth*/,
5978  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
5979  0 /*atTimeCode (0/15)*/,
5980  0 /*deltaMinutes*/,
5981  25 /*letterIndex ("S")*/,
5982  },
5983  // Rule Cuba 1997 only - Oct 12 0:00s 0 S
5984  {
5985  1997 /*fromYear*/,
5986  1997 /*toYear*/,
5987  10 /*inMonth*/,
5988  0 /*onDayOfWeek*/,
5989  12 /*onDayOfMonth*/,
5990  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
5991  0 /*atTimeCode (0/15)*/,
5992  0 /*deltaMinutes*/,
5993  25 /*letterIndex ("S")*/,
5994  },
5995  // Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
5996  {
5997  1998 /*fromYear*/,
5998  1999 /*toYear*/,
5999  3 /*inMonth*/,
6000  7 /*onDayOfWeek*/,
6001  0 /*onDayOfMonth*/,
6002  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6003  0 /*atTimeCode (0/15)*/,
6004  60 /*deltaMinutes*/,
6005  13 /*letterIndex ("D")*/,
6006  },
6007  // Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
6008  {
6009  1998 /*fromYear*/,
6010  2003 /*toYear*/,
6011  10 /*inMonth*/,
6012  7 /*onDayOfWeek*/,
6013  0 /*onDayOfMonth*/,
6014  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6015  0 /*atTimeCode (0/15)*/,
6016  0 /*deltaMinutes*/,
6017  25 /*letterIndex ("S")*/,
6018  },
6019  // Rule Cuba 2000 2003 - Apr Sun>=1 0:00s 1:00 D
6020  {
6021  2000 /*fromYear*/,
6022  2003 /*toYear*/,
6023  4 /*inMonth*/,
6024  7 /*onDayOfWeek*/,
6025  1 /*onDayOfMonth*/,
6026  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6027  0 /*atTimeCode (0/15)*/,
6028  60 /*deltaMinutes*/,
6029  13 /*letterIndex ("D")*/,
6030  },
6031  // Rule Cuba 2004 only - Mar lastSun 0:00s 1:00 D
6032  {
6033  2004 /*fromYear*/,
6034  2004 /*toYear*/,
6035  3 /*inMonth*/,
6036  7 /*onDayOfWeek*/,
6037  0 /*onDayOfMonth*/,
6038  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6039  0 /*atTimeCode (0/15)*/,
6040  60 /*deltaMinutes*/,
6041  13 /*letterIndex ("D")*/,
6042  },
6043  // Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S
6044  {
6045  2006 /*fromYear*/,
6046  2010 /*toYear*/,
6047  10 /*inMonth*/,
6048  7 /*onDayOfWeek*/,
6049  0 /*onDayOfMonth*/,
6050  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6051  0 /*atTimeCode (0/15)*/,
6052  0 /*deltaMinutes*/,
6053  25 /*letterIndex ("S")*/,
6054  },
6055  // Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
6056  {
6057  2007 /*fromYear*/,
6058  2007 /*toYear*/,
6059  3 /*inMonth*/,
6060  7 /*onDayOfWeek*/,
6061  8 /*onDayOfMonth*/,
6062  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6063  0 /*atTimeCode (0/15)*/,
6064  60 /*deltaMinutes*/,
6065  13 /*letterIndex ("D")*/,
6066  },
6067  // Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
6068  {
6069  2008 /*fromYear*/,
6070  2008 /*toYear*/,
6071  3 /*inMonth*/,
6072  7 /*onDayOfWeek*/,
6073  15 /*onDayOfMonth*/,
6074  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6075  0 /*atTimeCode (0/15)*/,
6076  60 /*deltaMinutes*/,
6077  13 /*letterIndex ("D")*/,
6078  },
6079  // Rule Cuba 2009 2010 - Mar Sun>=8 0:00s 1:00 D
6080  {
6081  2009 /*fromYear*/,
6082  2010 /*toYear*/,
6083  3 /*inMonth*/,
6084  7 /*onDayOfWeek*/,
6085  8 /*onDayOfMonth*/,
6086  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6087  0 /*atTimeCode (0/15)*/,
6088  60 /*deltaMinutes*/,
6089  13 /*letterIndex ("D")*/,
6090  },
6091  // Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D
6092  {
6093  2011 /*fromYear*/,
6094  2011 /*toYear*/,
6095  3 /*inMonth*/,
6096  7 /*onDayOfWeek*/,
6097  15 /*onDayOfMonth*/,
6098  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6099  0 /*atTimeCode (0/15)*/,
6100  60 /*deltaMinutes*/,
6101  13 /*letterIndex ("D")*/,
6102  },
6103  // Rule Cuba 2011 only - Nov 13 0:00s 0 S
6104  {
6105  2011 /*fromYear*/,
6106  2011 /*toYear*/,
6107  11 /*inMonth*/,
6108  0 /*onDayOfWeek*/,
6109  13 /*onDayOfMonth*/,
6110  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6111  0 /*atTimeCode (0/15)*/,
6112  0 /*deltaMinutes*/,
6113  25 /*letterIndex ("S")*/,
6114  },
6115  // Rule Cuba 2012 only - Apr 1 0:00s 1:00 D
6116  {
6117  2012 /*fromYear*/,
6118  2012 /*toYear*/,
6119  4 /*inMonth*/,
6120  0 /*onDayOfWeek*/,
6121  1 /*onDayOfMonth*/,
6122  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6123  0 /*atTimeCode (0/15)*/,
6124  60 /*deltaMinutes*/,
6125  13 /*letterIndex ("D")*/,
6126  },
6127  // Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S
6128  {
6129  2012 /*fromYear*/,
6130  32766 /*toYear*/,
6131  11 /*inMonth*/,
6132  7 /*onDayOfWeek*/,
6133  1 /*onDayOfMonth*/,
6134  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6135  0 /*atTimeCode (0/15)*/,
6136  0 /*deltaMinutes*/,
6137  25 /*letterIndex ("S")*/,
6138  },
6139  // Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D
6140  {
6141  2013 /*fromYear*/,
6142  32766 /*toYear*/,
6143  3 /*inMonth*/,
6144  7 /*onDayOfWeek*/,
6145  8 /*onDayOfMonth*/,
6146  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6147  0 /*atTimeCode (0/15)*/,
6148  60 /*deltaMinutes*/,
6149  13 /*letterIndex ("D")*/,
6150  },
6151 
6152 };
6153 
6154 const complete::Info::ZonePolicy kZonePolicyCuba ACE_TIME_PROGMEM = {
6155  kZoneRulesCuba /*rules*/,
6156  40 /*numRules*/,
6157 };
6158 
6159 //---------------------------------------------------------------------------
6160 // Policy name: Cyprus
6161 // Rules: 10
6162 //---------------------------------------------------------------------------
6163 
6164 static const complete::Info::ZoneRule kZoneRulesCyprus[] ACE_TIME_PROGMEM = {
6165  // Anchor: Rule Cyprus 1975 only - Oct 12 0:00 0 -
6166  {
6167  -32767 /*fromYear*/,
6168  -32767 /*toYear*/,
6169  1 /*inMonth*/,
6170  0 /*onDayOfWeek*/,
6171  1 /*onDayOfMonth*/,
6172  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6173  0 /*atTimeCode (0/15)*/,
6174  0 /*deltaMinutes*/,
6175  0 /*letterIndex ("")*/,
6176  },
6177  // Rule Cyprus 1975 only - Apr 13 0:00 1:00 S
6178  {
6179  1975 /*fromYear*/,
6180  1975 /*toYear*/,
6181  4 /*inMonth*/,
6182  0 /*onDayOfWeek*/,
6183  13 /*onDayOfMonth*/,
6184  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6185  0 /*atTimeCode (0/15)*/,
6186  60 /*deltaMinutes*/,
6187  25 /*letterIndex ("S")*/,
6188  },
6189  // Rule Cyprus 1975 only - Oct 12 0:00 0 -
6190  {
6191  1975 /*fromYear*/,
6192  1975 /*toYear*/,
6193  10 /*inMonth*/,
6194  0 /*onDayOfWeek*/,
6195  12 /*onDayOfMonth*/,
6196  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6197  0 /*atTimeCode (0/15)*/,
6198  0 /*deltaMinutes*/,
6199  0 /*letterIndex ("")*/,
6200  },
6201  // Rule Cyprus 1976 only - May 15 0:00 1:00 S
6202  {
6203  1976 /*fromYear*/,
6204  1976 /*toYear*/,
6205  5 /*inMonth*/,
6206  0 /*onDayOfWeek*/,
6207  15 /*onDayOfMonth*/,
6208  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6209  0 /*atTimeCode (0/15)*/,
6210  60 /*deltaMinutes*/,
6211  25 /*letterIndex ("S")*/,
6212  },
6213  // Rule Cyprus 1976 only - Oct 11 0:00 0 -
6214  {
6215  1976 /*fromYear*/,
6216  1976 /*toYear*/,
6217  10 /*inMonth*/,
6218  0 /*onDayOfWeek*/,
6219  11 /*onDayOfMonth*/,
6220  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6221  0 /*atTimeCode (0/15)*/,
6222  0 /*deltaMinutes*/,
6223  0 /*letterIndex ("")*/,
6224  },
6225  // Rule Cyprus 1977 1980 - Apr Sun>=1 0:00 1:00 S
6226  {
6227  1977 /*fromYear*/,
6228  1980 /*toYear*/,
6229  4 /*inMonth*/,
6230  7 /*onDayOfWeek*/,
6231  1 /*onDayOfMonth*/,
6232  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6233  0 /*atTimeCode (0/15)*/,
6234  60 /*deltaMinutes*/,
6235  25 /*letterIndex ("S")*/,
6236  },
6237  // Rule Cyprus 1977 only - Sep 25 0:00 0 -
6238  {
6239  1977 /*fromYear*/,
6240  1977 /*toYear*/,
6241  9 /*inMonth*/,
6242  0 /*onDayOfWeek*/,
6243  25 /*onDayOfMonth*/,
6244  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6245  0 /*atTimeCode (0/15)*/,
6246  0 /*deltaMinutes*/,
6247  0 /*letterIndex ("")*/,
6248  },
6249  // Rule Cyprus 1978 only - Oct 2 0:00 0 -
6250  {
6251  1978 /*fromYear*/,
6252  1978 /*toYear*/,
6253  10 /*inMonth*/,
6254  0 /*onDayOfWeek*/,
6255  2 /*onDayOfMonth*/,
6256  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6257  0 /*atTimeCode (0/15)*/,
6258  0 /*deltaMinutes*/,
6259  0 /*letterIndex ("")*/,
6260  },
6261  // Rule Cyprus 1979 1997 - Sep lastSun 0:00 0 -
6262  {
6263  1979 /*fromYear*/,
6264  1997 /*toYear*/,
6265  9 /*inMonth*/,
6266  7 /*onDayOfWeek*/,
6267  0 /*onDayOfMonth*/,
6268  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6269  0 /*atTimeCode (0/15)*/,
6270  0 /*deltaMinutes*/,
6271  0 /*letterIndex ("")*/,
6272  },
6273  // Rule Cyprus 1981 1998 - Mar lastSun 0:00 1:00 S
6274  {
6275  1981 /*fromYear*/,
6276  1998 /*toYear*/,
6277  3 /*inMonth*/,
6278  7 /*onDayOfWeek*/,
6279  0 /*onDayOfMonth*/,
6280  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6281  0 /*atTimeCode (0/15)*/,
6282  60 /*deltaMinutes*/,
6283  25 /*letterIndex ("S")*/,
6284  },
6285 
6286 };
6287 
6288 const complete::Info::ZonePolicy kZonePolicyCyprus ACE_TIME_PROGMEM = {
6289  kZoneRulesCyprus /*rules*/,
6290  10 /*numRules*/,
6291 };
6292 
6293 //---------------------------------------------------------------------------
6294 // Policy name: Czech
6295 // Rules: 7
6296 //---------------------------------------------------------------------------
6297 
6298 static const complete::Info::ZoneRule kZoneRulesCzech[] ACE_TIME_PROGMEM = {
6299  // Anchor: Rule Czech 1945 only - Oct 1 2:00s 0 -
6300  {
6301  -32767 /*fromYear*/,
6302  -32767 /*toYear*/,
6303  1 /*inMonth*/,
6304  0 /*onDayOfWeek*/,
6305  1 /*onDayOfMonth*/,
6306  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6307  0 /*atTimeCode (0/15)*/,
6308  0 /*deltaMinutes*/,
6309  0 /*letterIndex ("")*/,
6310  },
6311  // Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S
6312  {
6313  1945 /*fromYear*/,
6314  1945 /*toYear*/,
6315  4 /*inMonth*/,
6316  1 /*onDayOfWeek*/,
6317  1 /*onDayOfMonth*/,
6318  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6319  480 /*atTimeCode (7200/15)*/,
6320  60 /*deltaMinutes*/,
6321  25 /*letterIndex ("S")*/,
6322  },
6323  // Rule Czech 1945 only - Oct 1 2:00s 0 -
6324  {
6325  1945 /*fromYear*/,
6326  1945 /*toYear*/,
6327  10 /*inMonth*/,
6328  0 /*onDayOfWeek*/,
6329  1 /*onDayOfMonth*/,
6330  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6331  480 /*atTimeCode (7200/15)*/,
6332  0 /*deltaMinutes*/,
6333  0 /*letterIndex ("")*/,
6334  },
6335  // Rule Czech 1946 only - May 6 2:00s 1:00 S
6336  {
6337  1946 /*fromYear*/,
6338  1946 /*toYear*/,
6339  5 /*inMonth*/,
6340  0 /*onDayOfWeek*/,
6341  6 /*onDayOfMonth*/,
6342  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6343  480 /*atTimeCode (7200/15)*/,
6344  60 /*deltaMinutes*/,
6345  25 /*letterIndex ("S")*/,
6346  },
6347  // Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 -
6348  {
6349  1946 /*fromYear*/,
6350  1949 /*toYear*/,
6351  10 /*inMonth*/,
6352  7 /*onDayOfWeek*/,
6353  1 /*onDayOfMonth*/,
6354  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6355  480 /*atTimeCode (7200/15)*/,
6356  0 /*deltaMinutes*/,
6357  0 /*letterIndex ("")*/,
6358  },
6359  // Rule Czech 1947 1948 - Apr Sun>=15 2:00s 1:00 S
6360  {
6361  1947 /*fromYear*/,
6362  1948 /*toYear*/,
6363  4 /*inMonth*/,
6364  7 /*onDayOfWeek*/,
6365  15 /*onDayOfMonth*/,
6366  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6367  480 /*atTimeCode (7200/15)*/,
6368  60 /*deltaMinutes*/,
6369  25 /*letterIndex ("S")*/,
6370  },
6371  // Rule Czech 1949 only - Apr 9 2:00s 1:00 S
6372  {
6373  1949 /*fromYear*/,
6374  1949 /*toYear*/,
6375  4 /*inMonth*/,
6376  0 /*onDayOfWeek*/,
6377  9 /*onDayOfMonth*/,
6378  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
6379  480 /*atTimeCode (7200/15)*/,
6380  60 /*deltaMinutes*/,
6381  25 /*letterIndex ("S")*/,
6382  },
6383 
6384 };
6385 
6386 const complete::Info::ZonePolicy kZonePolicyCzech ACE_TIME_PROGMEM = {
6387  kZoneRulesCzech /*rules*/,
6388  7 /*numRules*/,
6389 };
6390 
6391 //---------------------------------------------------------------------------
6392 // Policy name: DR
6393 // Rules: 7
6394 //---------------------------------------------------------------------------
6395 
6396 static const complete::Info::ZoneRule kZoneRulesDR[] ACE_TIME_PROGMEM = {
6397  // Anchor: Rule DR 1967 only - Feb 28 0:00 0 EST
6398  {
6399  -32767 /*fromYear*/,
6400  -32767 /*toYear*/,
6401  1 /*inMonth*/,
6402  0 /*onDayOfWeek*/,
6403  1 /*onDayOfMonth*/,
6404  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6405  0 /*atTimeCode (0/15)*/,
6406  0 /*deltaMinutes*/,
6407  16 /*letterIndex ("EST")*/,
6408  },
6409  // Rule DR 1966 only - Oct 30 0:00 1:00 EDT
6410  {
6411  1966 /*fromYear*/,
6412  1966 /*toYear*/,
6413  10 /*inMonth*/,
6414  0 /*onDayOfWeek*/,
6415  30 /*onDayOfMonth*/,
6416  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6417  0 /*atTimeCode (0/15)*/,
6418  60 /*deltaMinutes*/,
6419  15 /*letterIndex ("EDT")*/,
6420  },
6421  // Rule DR 1967 only - Feb 28 0:00 0 EST
6422  {
6423  1967 /*fromYear*/,
6424  1967 /*toYear*/,
6425  2 /*inMonth*/,
6426  0 /*onDayOfWeek*/,
6427  28 /*onDayOfMonth*/,
6428  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6429  0 /*atTimeCode (0/15)*/,
6430  0 /*deltaMinutes*/,
6431  16 /*letterIndex ("EST")*/,
6432  },
6433  // Rule DR 1969 1973 - Oct lastSun 0:00 0:30 -0430
6434  {
6435  1969 /*fromYear*/,
6436  1973 /*toYear*/,
6437  10 /*inMonth*/,
6438  7 /*onDayOfWeek*/,
6439  0 /*onDayOfMonth*/,
6440  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6441  0 /*atTimeCode (0/15)*/,
6442  30 /*deltaMinutes*/,
6443  4 /*letterIndex ("-0430")*/,
6444  },
6445  // Rule DR 1970 only - Feb 21 0:00 0 EST
6446  {
6447  1970 /*fromYear*/,
6448  1970 /*toYear*/,
6449  2 /*inMonth*/,
6450  0 /*onDayOfWeek*/,
6451  21 /*onDayOfMonth*/,
6452  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6453  0 /*atTimeCode (0/15)*/,
6454  0 /*deltaMinutes*/,
6455  16 /*letterIndex ("EST")*/,
6456  },
6457  // Rule DR 1971 only - Jan 20 0:00 0 EST
6458  {
6459  1971 /*fromYear*/,
6460  1971 /*toYear*/,
6461  1 /*inMonth*/,
6462  0 /*onDayOfWeek*/,
6463  20 /*onDayOfMonth*/,
6464  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6465  0 /*atTimeCode (0/15)*/,
6466  0 /*deltaMinutes*/,
6467  16 /*letterIndex ("EST")*/,
6468  },
6469  // Rule DR 1972 1974 - Jan 21 0:00 0 EST
6470  {
6471  1972 /*fromYear*/,
6472  1974 /*toYear*/,
6473  1 /*inMonth*/,
6474  0 /*onDayOfWeek*/,
6475  21 /*onDayOfMonth*/,
6476  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6477  0 /*atTimeCode (0/15)*/,
6478  0 /*deltaMinutes*/,
6479  16 /*letterIndex ("EST")*/,
6480  },
6481 
6482 };
6483 
6484 const complete::Info::ZonePolicy kZonePolicyDR ACE_TIME_PROGMEM = {
6485  kZoneRulesDR /*rules*/,
6486  7 /*numRules*/,
6487 };
6488 
6489 //---------------------------------------------------------------------------
6490 // Policy name: Denver
6491 // Rules: 6
6492 //---------------------------------------------------------------------------
6493 
6494 static const complete::Info::ZoneRule kZoneRulesDenver[] ACE_TIME_PROGMEM = {
6495  // Anchor: Rule Denver 1920 only - Oct lastSun 2:00 0 S
6496  {
6497  -32767 /*fromYear*/,
6498  -32767 /*toYear*/,
6499  1 /*inMonth*/,
6500  0 /*onDayOfWeek*/,
6501  1 /*onDayOfMonth*/,
6502  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6503  0 /*atTimeCode (0/15)*/,
6504  0 /*deltaMinutes*/,
6505  25 /*letterIndex ("S")*/,
6506  },
6507  // Rule Denver 1920 1921 - Mar lastSun 2:00 1:00 D
6508  {
6509  1920 /*fromYear*/,
6510  1921 /*toYear*/,
6511  3 /*inMonth*/,
6512  7 /*onDayOfWeek*/,
6513  0 /*onDayOfMonth*/,
6514  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6515  480 /*atTimeCode (7200/15)*/,
6516  60 /*deltaMinutes*/,
6517  13 /*letterIndex ("D")*/,
6518  },
6519  // Rule Denver 1920 only - Oct lastSun 2:00 0 S
6520  {
6521  1920 /*fromYear*/,
6522  1920 /*toYear*/,
6523  10 /*inMonth*/,
6524  7 /*onDayOfWeek*/,
6525  0 /*onDayOfMonth*/,
6526  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6527  480 /*atTimeCode (7200/15)*/,
6528  0 /*deltaMinutes*/,
6529  25 /*letterIndex ("S")*/,
6530  },
6531  // Rule Denver 1921 only - May 22 2:00 0 S
6532  {
6533  1921 /*fromYear*/,
6534  1921 /*toYear*/,
6535  5 /*inMonth*/,
6536  0 /*onDayOfWeek*/,
6537  22 /*onDayOfMonth*/,
6538  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6539  480 /*atTimeCode (7200/15)*/,
6540  0 /*deltaMinutes*/,
6541  25 /*letterIndex ("S")*/,
6542  },
6543  // Rule Denver 1965 1966 - Apr lastSun 2:00 1:00 D
6544  {
6545  1965 /*fromYear*/,
6546  1966 /*toYear*/,
6547  4 /*inMonth*/,
6548  7 /*onDayOfWeek*/,
6549  0 /*onDayOfMonth*/,
6550  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6551  480 /*atTimeCode (7200/15)*/,
6552  60 /*deltaMinutes*/,
6553  13 /*letterIndex ("D")*/,
6554  },
6555  // Rule Denver 1965 1966 - Oct lastSun 2:00 0 S
6556  {
6557  1965 /*fromYear*/,
6558  1966 /*toYear*/,
6559  10 /*inMonth*/,
6560  7 /*onDayOfWeek*/,
6561  0 /*onDayOfMonth*/,
6562  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6563  480 /*atTimeCode (7200/15)*/,
6564  0 /*deltaMinutes*/,
6565  25 /*letterIndex ("S")*/,
6566  },
6567 
6568 };
6569 
6570 const complete::Info::ZonePolicy kZonePolicyDenver ACE_TIME_PROGMEM = {
6571  kZoneRulesDenver /*rules*/,
6572  6 /*numRules*/,
6573 };
6574 
6575 //---------------------------------------------------------------------------
6576 // Policy name: Detroit
6577 // Rules: 3
6578 //---------------------------------------------------------------------------
6579 
6580 static const complete::Info::ZoneRule kZoneRulesDetroit[] ACE_TIME_PROGMEM = {
6581  // Anchor: Rule Detroit 1948 only - Sep lastSun 2:00 0 S
6582  {
6583  -32767 /*fromYear*/,
6584  -32767 /*toYear*/,
6585  1 /*inMonth*/,
6586  0 /*onDayOfWeek*/,
6587  1 /*onDayOfMonth*/,
6588  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6589  0 /*atTimeCode (0/15)*/,
6590  0 /*deltaMinutes*/,
6591  25 /*letterIndex ("S")*/,
6592  },
6593  // Rule Detroit 1948 only - Apr lastSun 2:00 1:00 D
6594  {
6595  1948 /*fromYear*/,
6596  1948 /*toYear*/,
6597  4 /*inMonth*/,
6598  7 /*onDayOfWeek*/,
6599  0 /*onDayOfMonth*/,
6600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6601  480 /*atTimeCode (7200/15)*/,
6602  60 /*deltaMinutes*/,
6603  13 /*letterIndex ("D")*/,
6604  },
6605  // Rule Detroit 1948 only - Sep lastSun 2:00 0 S
6606  {
6607  1948 /*fromYear*/,
6608  1948 /*toYear*/,
6609  9 /*inMonth*/,
6610  7 /*onDayOfWeek*/,
6611  0 /*onDayOfMonth*/,
6612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6613  480 /*atTimeCode (7200/15)*/,
6614  0 /*deltaMinutes*/,
6615  25 /*letterIndex ("S")*/,
6616  },
6617 
6618 };
6619 
6620 const complete::Info::ZonePolicy kZonePolicyDetroit ACE_TIME_PROGMEM = {
6621  kZoneRulesDetroit /*rules*/,
6622  3 /*numRules*/,
6623 };
6624 
6625 //---------------------------------------------------------------------------
6626 // Policy name: Dhaka
6627 // Rules: 3
6628 //---------------------------------------------------------------------------
6629 
6630 static const complete::Info::ZoneRule kZoneRulesDhaka[] ACE_TIME_PROGMEM = {
6631  // Anchor: Rule Dhaka 2009 only - Dec 31 24:00 0 -
6632  {
6633  -32767 /*fromYear*/,
6634  -32767 /*toYear*/,
6635  1 /*inMonth*/,
6636  0 /*onDayOfWeek*/,
6637  1 /*onDayOfMonth*/,
6638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6639  0 /*atTimeCode (0/15)*/,
6640  0 /*deltaMinutes*/,
6641  0 /*letterIndex ("")*/,
6642  },
6643  // Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
6644  {
6645  2009 /*fromYear*/,
6646  2009 /*toYear*/,
6647  6 /*inMonth*/,
6648  0 /*onDayOfWeek*/,
6649  19 /*onDayOfMonth*/,
6650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6651  5520 /*atTimeCode (82800/15)*/,
6652  60 /*deltaMinutes*/,
6653  0 /*letterIndex ("")*/,
6654  },
6655  // Rule Dhaka 2009 only - Dec 31 24:00 0 -
6656  {
6657  2009 /*fromYear*/,
6658  2009 /*toYear*/,
6659  12 /*inMonth*/,
6660  0 /*onDayOfWeek*/,
6661  31 /*onDayOfMonth*/,
6662  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6663  5760 /*atTimeCode (86400/15)*/,
6664  0 /*deltaMinutes*/,
6665  0 /*letterIndex ("")*/,
6666  },
6667 
6668 };
6669 
6670 const complete::Info::ZonePolicy kZonePolicyDhaka ACE_TIME_PROGMEM = {
6671  kZoneRulesDhaka /*rules*/,
6672  3 /*numRules*/,
6673 };
6674 
6675 //---------------------------------------------------------------------------
6676 // Policy name: E-Eur
6677 // Rules: 7
6678 //---------------------------------------------------------------------------
6679 
6680 static const complete::Info::ZoneRule kZoneRulesE_Eur[] ACE_TIME_PROGMEM = {
6681  // Anchor: Rule E-Eur 1977 only - Sep lastSun 0:00 0 -
6682  {
6683  -32767 /*fromYear*/,
6684  -32767 /*toYear*/,
6685  1 /*inMonth*/,
6686  0 /*onDayOfWeek*/,
6687  1 /*onDayOfMonth*/,
6688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6689  0 /*atTimeCode (0/15)*/,
6690  0 /*deltaMinutes*/,
6691  0 /*letterIndex ("")*/,
6692  },
6693  // Rule E-Eur 1977 1980 - Apr Sun>=1 0:00 1:00 S
6694  {
6695  1977 /*fromYear*/,
6696  1980 /*toYear*/,
6697  4 /*inMonth*/,
6698  7 /*onDayOfWeek*/,
6699  1 /*onDayOfMonth*/,
6700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6701  0 /*atTimeCode (0/15)*/,
6702  60 /*deltaMinutes*/,
6703  25 /*letterIndex ("S")*/,
6704  },
6705  // Rule E-Eur 1977 only - Sep lastSun 0:00 0 -
6706  {
6707  1977 /*fromYear*/,
6708  1977 /*toYear*/,
6709  9 /*inMonth*/,
6710  7 /*onDayOfWeek*/,
6711  0 /*onDayOfMonth*/,
6712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6713  0 /*atTimeCode (0/15)*/,
6714  0 /*deltaMinutes*/,
6715  0 /*letterIndex ("")*/,
6716  },
6717  // Rule E-Eur 1978 only - Oct 1 0:00 0 -
6718  {
6719  1978 /*fromYear*/,
6720  1978 /*toYear*/,
6721  10 /*inMonth*/,
6722  0 /*onDayOfWeek*/,
6723  1 /*onDayOfMonth*/,
6724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6725  0 /*atTimeCode (0/15)*/,
6726  0 /*deltaMinutes*/,
6727  0 /*letterIndex ("")*/,
6728  },
6729  // Rule E-Eur 1979 1995 - Sep lastSun 0:00 0 -
6730  {
6731  1979 /*fromYear*/,
6732  1995 /*toYear*/,
6733  9 /*inMonth*/,
6734  7 /*onDayOfWeek*/,
6735  0 /*onDayOfMonth*/,
6736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6737  0 /*atTimeCode (0/15)*/,
6738  0 /*deltaMinutes*/,
6739  0 /*letterIndex ("")*/,
6740  },
6741  // Rule E-Eur 1981 max - Mar lastSun 0:00 1:00 S
6742  {
6743  1981 /*fromYear*/,
6744  32766 /*toYear*/,
6745  3 /*inMonth*/,
6746  7 /*onDayOfWeek*/,
6747  0 /*onDayOfMonth*/,
6748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6749  0 /*atTimeCode (0/15)*/,
6750  60 /*deltaMinutes*/,
6751  25 /*letterIndex ("S")*/,
6752  },
6753  // Rule E-Eur 1996 max - Oct lastSun 0:00 0 -
6754  {
6755  1996 /*fromYear*/,
6756  32766 /*toYear*/,
6757  10 /*inMonth*/,
6758  7 /*onDayOfWeek*/,
6759  0 /*onDayOfMonth*/,
6760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6761  0 /*atTimeCode (0/15)*/,
6762  0 /*deltaMinutes*/,
6763  0 /*letterIndex ("")*/,
6764  },
6765 
6766 };
6767 
6768 const complete::Info::ZonePolicy kZonePolicyE_Eur ACE_TIME_PROGMEM = {
6769  kZoneRulesE_Eur /*rules*/,
6770  7 /*numRules*/,
6771 };
6772 
6773 //---------------------------------------------------------------------------
6774 // Policy name: E-EurAsia
6775 // Rules: 4
6776 //---------------------------------------------------------------------------
6777 
6778 static const complete::Info::ZoneRule kZoneRulesE_EurAsia[] ACE_TIME_PROGMEM = {
6779  // Anchor: Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
6780  {
6781  -32767 /*fromYear*/,
6782  -32767 /*toYear*/,
6783  1 /*inMonth*/,
6784  0 /*onDayOfWeek*/,
6785  1 /*onDayOfMonth*/,
6786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6787  0 /*atTimeCode (0/15)*/,
6788  0 /*deltaMinutes*/,
6789  0 /*letterIndex ("")*/,
6790  },
6791  // Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 -
6792  {
6793  1981 /*fromYear*/,
6794  32766 /*toYear*/,
6795  3 /*inMonth*/,
6796  7 /*onDayOfWeek*/,
6797  0 /*onDayOfMonth*/,
6798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6799  0 /*atTimeCode (0/15)*/,
6800  60 /*deltaMinutes*/,
6801  0 /*letterIndex ("")*/,
6802  },
6803  // Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
6804  {
6805  1979 /*fromYear*/,
6806  1995 /*toYear*/,
6807  9 /*inMonth*/,
6808  7 /*onDayOfWeek*/,
6809  0 /*onDayOfMonth*/,
6810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6811  0 /*atTimeCode (0/15)*/,
6812  0 /*deltaMinutes*/,
6813  0 /*letterIndex ("")*/,
6814  },
6815  // Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 -
6816  {
6817  1996 /*fromYear*/,
6818  32766 /*toYear*/,
6819  10 /*inMonth*/,
6820  7 /*onDayOfWeek*/,
6821  0 /*onDayOfMonth*/,
6822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6823  0 /*atTimeCode (0/15)*/,
6824  0 /*deltaMinutes*/,
6825  0 /*letterIndex ("")*/,
6826  },
6827 
6828 };
6829 
6830 const complete::Info::ZonePolicy kZonePolicyE_EurAsia ACE_TIME_PROGMEM = {
6831  kZoneRulesE_EurAsia /*rules*/,
6832  4 /*numRules*/,
6833 };
6834 
6835 //---------------------------------------------------------------------------
6836 // Policy name: EU
6837 // Rules: 7
6838 //---------------------------------------------------------------------------
6839 
6840 static const complete::Info::ZoneRule kZoneRulesEU[] ACE_TIME_PROGMEM = {
6841  // Anchor: Rule EU 1977 only - Sep lastSun 1:00u 0 -
6842  {
6843  -32767 /*fromYear*/,
6844  -32767 /*toYear*/,
6845  1 /*inMonth*/,
6846  0 /*onDayOfWeek*/,
6847  1 /*onDayOfMonth*/,
6848  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6849  0 /*atTimeCode (0/15)*/,
6850  0 /*deltaMinutes*/,
6851  0 /*letterIndex ("")*/,
6852  },
6853  // Rule EU 1977 1980 - Apr Sun>=1 1:00u 1:00 S
6854  {
6855  1977 /*fromYear*/,
6856  1980 /*toYear*/,
6857  4 /*inMonth*/,
6858  7 /*onDayOfWeek*/,
6859  1 /*onDayOfMonth*/,
6860  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6861  240 /*atTimeCode (3600/15)*/,
6862  60 /*deltaMinutes*/,
6863  25 /*letterIndex ("S")*/,
6864  },
6865  // Rule EU 1977 only - Sep lastSun 1:00u 0 -
6866  {
6867  1977 /*fromYear*/,
6868  1977 /*toYear*/,
6869  9 /*inMonth*/,
6870  7 /*onDayOfWeek*/,
6871  0 /*onDayOfMonth*/,
6872  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6873  240 /*atTimeCode (3600/15)*/,
6874  0 /*deltaMinutes*/,
6875  0 /*letterIndex ("")*/,
6876  },
6877  // Rule EU 1978 only - Oct 1 1:00u 0 -
6878  {
6879  1978 /*fromYear*/,
6880  1978 /*toYear*/,
6881  10 /*inMonth*/,
6882  0 /*onDayOfWeek*/,
6883  1 /*onDayOfMonth*/,
6884  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6885  240 /*atTimeCode (3600/15)*/,
6886  0 /*deltaMinutes*/,
6887  0 /*letterIndex ("")*/,
6888  },
6889  // Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
6890  {
6891  1979 /*fromYear*/,
6892  1995 /*toYear*/,
6893  9 /*inMonth*/,
6894  7 /*onDayOfWeek*/,
6895  0 /*onDayOfMonth*/,
6896  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6897  240 /*atTimeCode (3600/15)*/,
6898  0 /*deltaMinutes*/,
6899  0 /*letterIndex ("")*/,
6900  },
6901  // Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
6902  {
6903  1981 /*fromYear*/,
6904  32766 /*toYear*/,
6905  3 /*inMonth*/,
6906  7 /*onDayOfWeek*/,
6907  0 /*onDayOfMonth*/,
6908  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6909  240 /*atTimeCode (3600/15)*/,
6910  60 /*deltaMinutes*/,
6911  25 /*letterIndex ("S")*/,
6912  },
6913  // Rule EU 1996 max - Oct lastSun 1:00u 0 -
6914  {
6915  1996 /*fromYear*/,
6916  32766 /*toYear*/,
6917  10 /*inMonth*/,
6918  7 /*onDayOfWeek*/,
6919  0 /*onDayOfMonth*/,
6920  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6921  240 /*atTimeCode (3600/15)*/,
6922  0 /*deltaMinutes*/,
6923  0 /*letterIndex ("")*/,
6924  },
6925 
6926 };
6927 
6928 const complete::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = {
6929  kZoneRulesEU /*rules*/,
6930  7 /*numRules*/,
6931 };
6932 
6933 //---------------------------------------------------------------------------
6934 // Policy name: EUAsia
6935 // Rules: 4
6936 //---------------------------------------------------------------------------
6937 
6938 static const complete::Info::ZoneRule kZoneRulesEUAsia[] ACE_TIME_PROGMEM = {
6939  // Anchor: Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
6940  {
6941  -32767 /*fromYear*/,
6942  -32767 /*toYear*/,
6943  1 /*inMonth*/,
6944  0 /*onDayOfWeek*/,
6945  1 /*onDayOfMonth*/,
6946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
6947  0 /*atTimeCode (0/15)*/,
6948  0 /*deltaMinutes*/,
6949  0 /*letterIndex ("")*/,
6950  },
6951  // Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
6952  {
6953  1981 /*fromYear*/,
6954  32766 /*toYear*/,
6955  3 /*inMonth*/,
6956  7 /*onDayOfWeek*/,
6957  0 /*onDayOfMonth*/,
6958  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6959  240 /*atTimeCode (3600/15)*/,
6960  60 /*deltaMinutes*/,
6961  25 /*letterIndex ("S")*/,
6962  },
6963  // Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
6964  {
6965  1979 /*fromYear*/,
6966  1995 /*toYear*/,
6967  9 /*inMonth*/,
6968  7 /*onDayOfWeek*/,
6969  0 /*onDayOfMonth*/,
6970  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6971  240 /*atTimeCode (3600/15)*/,
6972  0 /*deltaMinutes*/,
6973  0 /*letterIndex ("")*/,
6974  },
6975  // Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
6976  {
6977  1996 /*fromYear*/,
6978  32766 /*toYear*/,
6979  10 /*inMonth*/,
6980  7 /*onDayOfWeek*/,
6981  0 /*onDayOfMonth*/,
6982  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
6983  240 /*atTimeCode (3600/15)*/,
6984  0 /*deltaMinutes*/,
6985  0 /*letterIndex ("")*/,
6986  },
6987 
6988 };
6989 
6990 const complete::Info::ZonePolicy kZonePolicyEUAsia ACE_TIME_PROGMEM = {
6991  kZoneRulesEUAsia /*rules*/,
6992  4 /*numRules*/,
6993 };
6994 
6995 //---------------------------------------------------------------------------
6996 // Policy name: Ecuador
6997 // Rules: 3
6998 //---------------------------------------------------------------------------
6999 
7000 static const complete::Info::ZoneRule kZoneRulesEcuador[] ACE_TIME_PROGMEM = {
7001  // Anchor: Rule Ecuador 1993 only - Feb 5 0:00 0 -
7002  {
7003  -32767 /*fromYear*/,
7004  -32767 /*toYear*/,
7005  1 /*inMonth*/,
7006  0 /*onDayOfWeek*/,
7007  1 /*onDayOfMonth*/,
7008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7009  0 /*atTimeCode (0/15)*/,
7010  0 /*deltaMinutes*/,
7011  0 /*letterIndex ("")*/,
7012  },
7013  // Rule Ecuador 1992 only - Nov 28 0:00 1:00 -
7014  {
7015  1992 /*fromYear*/,
7016  1992 /*toYear*/,
7017  11 /*inMonth*/,
7018  0 /*onDayOfWeek*/,
7019  28 /*onDayOfMonth*/,
7020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7021  0 /*atTimeCode (0/15)*/,
7022  60 /*deltaMinutes*/,
7023  0 /*letterIndex ("")*/,
7024  },
7025  // Rule Ecuador 1993 only - Feb 5 0:00 0 -
7026  {
7027  1993 /*fromYear*/,
7028  1993 /*toYear*/,
7029  2 /*inMonth*/,
7030  0 /*onDayOfWeek*/,
7031  5 /*onDayOfMonth*/,
7032  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7033  0 /*atTimeCode (0/15)*/,
7034  0 /*deltaMinutes*/,
7035  0 /*letterIndex ("")*/,
7036  },
7037 
7038 };
7039 
7040 const complete::Info::ZonePolicy kZonePolicyEcuador ACE_TIME_PROGMEM = {
7041  kZoneRulesEcuador /*rules*/,
7042  3 /*numRules*/,
7043 };
7044 
7045 //---------------------------------------------------------------------------
7046 // Policy name: Edm
7047 // Rules: 14
7048 //---------------------------------------------------------------------------
7049 
7050 static const complete::Info::ZoneRule kZoneRulesEdm[] ACE_TIME_PROGMEM = {
7051  // Anchor: Rule Edm 1918 only - Oct 27 2:00 0 S
7052  {
7053  -32767 /*fromYear*/,
7054  -32767 /*toYear*/,
7055  1 /*inMonth*/,
7056  0 /*onDayOfWeek*/,
7057  1 /*onDayOfMonth*/,
7058  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7059  0 /*atTimeCode (0/15)*/,
7060  0 /*deltaMinutes*/,
7061  25 /*letterIndex ("S")*/,
7062  },
7063  // Rule Edm 1918 1919 - Apr Sun>=8 2:00 1:00 D
7064  {
7065  1918 /*fromYear*/,
7066  1919 /*toYear*/,
7067  4 /*inMonth*/,
7068  7 /*onDayOfWeek*/,
7069  8 /*onDayOfMonth*/,
7070  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7071  480 /*atTimeCode (7200/15)*/,
7072  60 /*deltaMinutes*/,
7073  13 /*letterIndex ("D")*/,
7074  },
7075  // Rule Edm 1918 only - Oct 27 2:00 0 S
7076  {
7077  1918 /*fromYear*/,
7078  1918 /*toYear*/,
7079  10 /*inMonth*/,
7080  0 /*onDayOfWeek*/,
7081  27 /*onDayOfMonth*/,
7082  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7083  480 /*atTimeCode (7200/15)*/,
7084  0 /*deltaMinutes*/,
7085  25 /*letterIndex ("S")*/,
7086  },
7087  // Rule Edm 1919 only - May 27 2:00 0 S
7088  {
7089  1919 /*fromYear*/,
7090  1919 /*toYear*/,
7091  5 /*inMonth*/,
7092  0 /*onDayOfWeek*/,
7093  27 /*onDayOfMonth*/,
7094  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7095  480 /*atTimeCode (7200/15)*/,
7096  0 /*deltaMinutes*/,
7097  25 /*letterIndex ("S")*/,
7098  },
7099  // Rule Edm 1920 1923 - Apr lastSun 2:00 1:00 D
7100  {
7101  1920 /*fromYear*/,
7102  1923 /*toYear*/,
7103  4 /*inMonth*/,
7104  7 /*onDayOfWeek*/,
7105  0 /*onDayOfMonth*/,
7106  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7107  480 /*atTimeCode (7200/15)*/,
7108  60 /*deltaMinutes*/,
7109  13 /*letterIndex ("D")*/,
7110  },
7111  // Rule Edm 1920 only - Oct lastSun 2:00 0 S
7112  {
7113  1920 /*fromYear*/,
7114  1920 /*toYear*/,
7115  10 /*inMonth*/,
7116  7 /*onDayOfWeek*/,
7117  0 /*onDayOfMonth*/,
7118  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7119  480 /*atTimeCode (7200/15)*/,
7120  0 /*deltaMinutes*/,
7121  25 /*letterIndex ("S")*/,
7122  },
7123  // Rule Edm 1921 1923 - Sep lastSun 2:00 0 S
7124  {
7125  1921 /*fromYear*/,
7126  1923 /*toYear*/,
7127  9 /*inMonth*/,
7128  7 /*onDayOfWeek*/,
7129  0 /*onDayOfMonth*/,
7130  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7131  480 /*atTimeCode (7200/15)*/,
7132  0 /*deltaMinutes*/,
7133  25 /*letterIndex ("S")*/,
7134  },
7135  // Rule Edm 1942 only - Feb 9 2:00 1:00 W
7136  {
7137  1942 /*fromYear*/,
7138  1942 /*toYear*/,
7139  2 /*inMonth*/,
7140  0 /*onDayOfWeek*/,
7141  9 /*onDayOfMonth*/,
7142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7143  480 /*atTimeCode (7200/15)*/,
7144  60 /*deltaMinutes*/,
7145  26 /*letterIndex ("W")*/,
7146  },
7147  // Rule Edm 1945 only - Aug 14 23:00u 1:00 P
7148  {
7149  1945 /*fromYear*/,
7150  1945 /*toYear*/,
7151  8 /*inMonth*/,
7152  0 /*onDayOfWeek*/,
7153  14 /*onDayOfMonth*/,
7154  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
7155  5520 /*atTimeCode (82800/15)*/,
7156  60 /*deltaMinutes*/,
7157  24 /*letterIndex ("P")*/,
7158  },
7159  // Rule Edm 1945 only - Sep lastSun 2:00 0 S
7160  {
7161  1945 /*fromYear*/,
7162  1945 /*toYear*/,
7163  9 /*inMonth*/,
7164  7 /*onDayOfWeek*/,
7165  0 /*onDayOfMonth*/,
7166  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7167  480 /*atTimeCode (7200/15)*/,
7168  0 /*deltaMinutes*/,
7169  25 /*letterIndex ("S")*/,
7170  },
7171  // Rule Edm 1947 only - Apr lastSun 2:00 1:00 D
7172  {
7173  1947 /*fromYear*/,
7174  1947 /*toYear*/,
7175  4 /*inMonth*/,
7176  7 /*onDayOfWeek*/,
7177  0 /*onDayOfMonth*/,
7178  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7179  480 /*atTimeCode (7200/15)*/,
7180  60 /*deltaMinutes*/,
7181  13 /*letterIndex ("D")*/,
7182  },
7183  // Rule Edm 1947 only - Sep lastSun 2:00 0 S
7184  {
7185  1947 /*fromYear*/,
7186  1947 /*toYear*/,
7187  9 /*inMonth*/,
7188  7 /*onDayOfWeek*/,
7189  0 /*onDayOfMonth*/,
7190  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7191  480 /*atTimeCode (7200/15)*/,
7192  0 /*deltaMinutes*/,
7193  25 /*letterIndex ("S")*/,
7194  },
7195  // Rule Edm 1972 1986 - Apr lastSun 2:00 1:00 D
7196  {
7197  1972 /*fromYear*/,
7198  1986 /*toYear*/,
7199  4 /*inMonth*/,
7200  7 /*onDayOfWeek*/,
7201  0 /*onDayOfMonth*/,
7202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7203  480 /*atTimeCode (7200/15)*/,
7204  60 /*deltaMinutes*/,
7205  13 /*letterIndex ("D")*/,
7206  },
7207  // Rule Edm 1972 2006 - Oct lastSun 2:00 0 S
7208  {
7209  1972 /*fromYear*/,
7210  2006 /*toYear*/,
7211  10 /*inMonth*/,
7212  7 /*onDayOfWeek*/,
7213  0 /*onDayOfMonth*/,
7214  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7215  480 /*atTimeCode (7200/15)*/,
7216  0 /*deltaMinutes*/,
7217  25 /*letterIndex ("S")*/,
7218  },
7219 
7220 };
7221 
7222 const complete::Info::ZonePolicy kZonePolicyEdm ACE_TIME_PROGMEM = {
7223  kZoneRulesEdm /*rules*/,
7224  14 /*numRules*/,
7225 };
7226 
7227 //---------------------------------------------------------------------------
7228 // Policy name: Egypt
7229 // Rules: 35
7230 //---------------------------------------------------------------------------
7231 
7232 static const complete::Info::ZoneRule kZoneRulesEgypt[] ACE_TIME_PROGMEM = {
7233  // Anchor: Rule Egypt 1940 only - Oct 1 0:00 0 -
7234  {
7235  -32767 /*fromYear*/,
7236  -32767 /*toYear*/,
7237  1 /*inMonth*/,
7238  0 /*onDayOfWeek*/,
7239  1 /*onDayOfMonth*/,
7240  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7241  0 /*atTimeCode (0/15)*/,
7242  0 /*deltaMinutes*/,
7243  0 /*letterIndex ("")*/,
7244  },
7245  // Rule Egypt 1940 only - Jul 15 0:00 1:00 S
7246  {
7247  1940 /*fromYear*/,
7248  1940 /*toYear*/,
7249  7 /*inMonth*/,
7250  0 /*onDayOfWeek*/,
7251  15 /*onDayOfMonth*/,
7252  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7253  0 /*atTimeCode (0/15)*/,
7254  60 /*deltaMinutes*/,
7255  25 /*letterIndex ("S")*/,
7256  },
7257  // Rule Egypt 1940 only - Oct 1 0:00 0 -
7258  {
7259  1940 /*fromYear*/,
7260  1940 /*toYear*/,
7261  10 /*inMonth*/,
7262  0 /*onDayOfWeek*/,
7263  1 /*onDayOfMonth*/,
7264  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7265  0 /*atTimeCode (0/15)*/,
7266  0 /*deltaMinutes*/,
7267  0 /*letterIndex ("")*/,
7268  },
7269  // Rule Egypt 1941 only - Apr 15 0:00 1:00 S
7270  {
7271  1941 /*fromYear*/,
7272  1941 /*toYear*/,
7273  4 /*inMonth*/,
7274  0 /*onDayOfWeek*/,
7275  15 /*onDayOfMonth*/,
7276  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7277  0 /*atTimeCode (0/15)*/,
7278  60 /*deltaMinutes*/,
7279  25 /*letterIndex ("S")*/,
7280  },
7281  // Rule Egypt 1941 only - Sep 16 0:00 0 -
7282  {
7283  1941 /*fromYear*/,
7284  1941 /*toYear*/,
7285  9 /*inMonth*/,
7286  0 /*onDayOfWeek*/,
7287  16 /*onDayOfMonth*/,
7288  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7289  0 /*atTimeCode (0/15)*/,
7290  0 /*deltaMinutes*/,
7291  0 /*letterIndex ("")*/,
7292  },
7293  // Rule Egypt 1942 1944 - Apr 1 0:00 1:00 S
7294  {
7295  1942 /*fromYear*/,
7296  1944 /*toYear*/,
7297  4 /*inMonth*/,
7298  0 /*onDayOfWeek*/,
7299  1 /*onDayOfMonth*/,
7300  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7301  0 /*atTimeCode (0/15)*/,
7302  60 /*deltaMinutes*/,
7303  25 /*letterIndex ("S")*/,
7304  },
7305  // Rule Egypt 1942 only - Oct 27 0:00 0 -
7306  {
7307  1942 /*fromYear*/,
7308  1942 /*toYear*/,
7309  10 /*inMonth*/,
7310  0 /*onDayOfWeek*/,
7311  27 /*onDayOfMonth*/,
7312  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7313  0 /*atTimeCode (0/15)*/,
7314  0 /*deltaMinutes*/,
7315  0 /*letterIndex ("")*/,
7316  },
7317  // Rule Egypt 1943 1945 - Nov 1 0:00 0 -
7318  {
7319  1943 /*fromYear*/,
7320  1945 /*toYear*/,
7321  11 /*inMonth*/,
7322  0 /*onDayOfWeek*/,
7323  1 /*onDayOfMonth*/,
7324  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7325  0 /*atTimeCode (0/15)*/,
7326  0 /*deltaMinutes*/,
7327  0 /*letterIndex ("")*/,
7328  },
7329  // Rule Egypt 1945 only - Apr 16 0:00 1:00 S
7330  {
7331  1945 /*fromYear*/,
7332  1945 /*toYear*/,
7333  4 /*inMonth*/,
7334  0 /*onDayOfWeek*/,
7335  16 /*onDayOfMonth*/,
7336  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7337  0 /*atTimeCode (0/15)*/,
7338  60 /*deltaMinutes*/,
7339  25 /*letterIndex ("S")*/,
7340  },
7341  // Rule Egypt 1957 only - May 10 0:00 1:00 S
7342  {
7343  1957 /*fromYear*/,
7344  1957 /*toYear*/,
7345  5 /*inMonth*/,
7346  0 /*onDayOfWeek*/,
7347  10 /*onDayOfMonth*/,
7348  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7349  0 /*atTimeCode (0/15)*/,
7350  60 /*deltaMinutes*/,
7351  25 /*letterIndex ("S")*/,
7352  },
7353  // Rule Egypt 1957 1958 - Oct 1 0:00 0 -
7354  {
7355  1957 /*fromYear*/,
7356  1958 /*toYear*/,
7357  10 /*inMonth*/,
7358  0 /*onDayOfWeek*/,
7359  1 /*onDayOfMonth*/,
7360  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7361  0 /*atTimeCode (0/15)*/,
7362  0 /*deltaMinutes*/,
7363  0 /*letterIndex ("")*/,
7364  },
7365  // Rule Egypt 1958 only - May 1 0:00 1:00 S
7366  {
7367  1958 /*fromYear*/,
7368  1958 /*toYear*/,
7369  5 /*inMonth*/,
7370  0 /*onDayOfWeek*/,
7371  1 /*onDayOfMonth*/,
7372  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7373  0 /*atTimeCode (0/15)*/,
7374  60 /*deltaMinutes*/,
7375  25 /*letterIndex ("S")*/,
7376  },
7377  // Rule Egypt 1959 1981 - May 1 1:00 1:00 S
7378  {
7379  1959 /*fromYear*/,
7380  1981 /*toYear*/,
7381  5 /*inMonth*/,
7382  0 /*onDayOfWeek*/,
7383  1 /*onDayOfMonth*/,
7384  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7385  240 /*atTimeCode (3600/15)*/,
7386  60 /*deltaMinutes*/,
7387  25 /*letterIndex ("S")*/,
7388  },
7389  // Rule Egypt 1959 1965 - Sep 30 3:00 0 -
7390  {
7391  1959 /*fromYear*/,
7392  1965 /*toYear*/,
7393  9 /*inMonth*/,
7394  0 /*onDayOfWeek*/,
7395  30 /*onDayOfMonth*/,
7396  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7397  720 /*atTimeCode (10800/15)*/,
7398  0 /*deltaMinutes*/,
7399  0 /*letterIndex ("")*/,
7400  },
7401  // Rule Egypt 1966 1994 - Oct 1 3:00 0 -
7402  {
7403  1966 /*fromYear*/,
7404  1994 /*toYear*/,
7405  10 /*inMonth*/,
7406  0 /*onDayOfWeek*/,
7407  1 /*onDayOfMonth*/,
7408  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7409  720 /*atTimeCode (10800/15)*/,
7410  0 /*deltaMinutes*/,
7411  0 /*letterIndex ("")*/,
7412  },
7413  // Rule Egypt 1982 only - Jul 25 1:00 1:00 S
7414  {
7415  1982 /*fromYear*/,
7416  1982 /*toYear*/,
7417  7 /*inMonth*/,
7418  0 /*onDayOfWeek*/,
7419  25 /*onDayOfMonth*/,
7420  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7421  240 /*atTimeCode (3600/15)*/,
7422  60 /*deltaMinutes*/,
7423  25 /*letterIndex ("S")*/,
7424  },
7425  // Rule Egypt 1983 only - Jul 12 1:00 1:00 S
7426  {
7427  1983 /*fromYear*/,
7428  1983 /*toYear*/,
7429  7 /*inMonth*/,
7430  0 /*onDayOfWeek*/,
7431  12 /*onDayOfMonth*/,
7432  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7433  240 /*atTimeCode (3600/15)*/,
7434  60 /*deltaMinutes*/,
7435  25 /*letterIndex ("S")*/,
7436  },
7437  // Rule Egypt 1984 1988 - May 1 1:00 1:00 S
7438  {
7439  1984 /*fromYear*/,
7440  1988 /*toYear*/,
7441  5 /*inMonth*/,
7442  0 /*onDayOfWeek*/,
7443  1 /*onDayOfMonth*/,
7444  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7445  240 /*atTimeCode (3600/15)*/,
7446  60 /*deltaMinutes*/,
7447  25 /*letterIndex ("S")*/,
7448  },
7449  // Rule Egypt 1989 only - May 6 1:00 1:00 S
7450  {
7451  1989 /*fromYear*/,
7452  1989 /*toYear*/,
7453  5 /*inMonth*/,
7454  0 /*onDayOfWeek*/,
7455  6 /*onDayOfMonth*/,
7456  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7457  240 /*atTimeCode (3600/15)*/,
7458  60 /*deltaMinutes*/,
7459  25 /*letterIndex ("S")*/,
7460  },
7461  // Rule Egypt 1990 1994 - May 1 1:00 1:00 S
7462  {
7463  1990 /*fromYear*/,
7464  1994 /*toYear*/,
7465  5 /*inMonth*/,
7466  0 /*onDayOfWeek*/,
7467  1 /*onDayOfMonth*/,
7468  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7469  240 /*atTimeCode (3600/15)*/,
7470  60 /*deltaMinutes*/,
7471  25 /*letterIndex ("S")*/,
7472  },
7473  // Rule Egypt 1995 2010 - Apr lastFri 0:00s 1:00 S
7474  {
7475  1995 /*fromYear*/,
7476  2010 /*toYear*/,
7477  4 /*inMonth*/,
7478  5 /*onDayOfWeek*/,
7479  0 /*onDayOfMonth*/,
7480  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
7481  0 /*atTimeCode (0/15)*/,
7482  60 /*deltaMinutes*/,
7483  25 /*letterIndex ("S")*/,
7484  },
7485  // Rule Egypt 1995 2005 - Sep lastThu 24:00 0 -
7486  {
7487  1995 /*fromYear*/,
7488  2005 /*toYear*/,
7489  9 /*inMonth*/,
7490  4 /*onDayOfWeek*/,
7491  0 /*onDayOfMonth*/,
7492  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7493  5760 /*atTimeCode (86400/15)*/,
7494  0 /*deltaMinutes*/,
7495  0 /*letterIndex ("")*/,
7496  },
7497  // Rule Egypt 2006 only - Sep 21 24:00 0 -
7498  {
7499  2006 /*fromYear*/,
7500  2006 /*toYear*/,
7501  9 /*inMonth*/,
7502  0 /*onDayOfWeek*/,
7503  21 /*onDayOfMonth*/,
7504  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7505  5760 /*atTimeCode (86400/15)*/,
7506  0 /*deltaMinutes*/,
7507  0 /*letterIndex ("")*/,
7508  },
7509  // Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
7510  {
7511  2007 /*fromYear*/,
7512  2007 /*toYear*/,
7513  9 /*inMonth*/,
7514  4 /*onDayOfWeek*/,
7515  1 /*onDayOfMonth*/,
7516  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7517  5760 /*atTimeCode (86400/15)*/,
7518  0 /*deltaMinutes*/,
7519  0 /*letterIndex ("")*/,
7520  },
7521  // Rule Egypt 2008 only - Aug lastThu 24:00 0 -
7522  {
7523  2008 /*fromYear*/,
7524  2008 /*toYear*/,
7525  8 /*inMonth*/,
7526  4 /*onDayOfWeek*/,
7527  0 /*onDayOfMonth*/,
7528  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7529  5760 /*atTimeCode (86400/15)*/,
7530  0 /*deltaMinutes*/,
7531  0 /*letterIndex ("")*/,
7532  },
7533  // Rule Egypt 2009 only - Aug 20 24:00 0 -
7534  {
7535  2009 /*fromYear*/,
7536  2009 /*toYear*/,
7537  8 /*inMonth*/,
7538  0 /*onDayOfWeek*/,
7539  20 /*onDayOfMonth*/,
7540  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7541  5760 /*atTimeCode (86400/15)*/,
7542  0 /*deltaMinutes*/,
7543  0 /*letterIndex ("")*/,
7544  },
7545  // Rule Egypt 2010 only - Aug 10 24:00 0 -
7546  {
7547  2010 /*fromYear*/,
7548  2010 /*toYear*/,
7549  8 /*inMonth*/,
7550  0 /*onDayOfWeek*/,
7551  10 /*onDayOfMonth*/,
7552  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7553  5760 /*atTimeCode (86400/15)*/,
7554  0 /*deltaMinutes*/,
7555  0 /*letterIndex ("")*/,
7556  },
7557  // Rule Egypt 2010 only - Sep 9 24:00 1:00 S
7558  {
7559  2010 /*fromYear*/,
7560  2010 /*toYear*/,
7561  9 /*inMonth*/,
7562  0 /*onDayOfWeek*/,
7563  9 /*onDayOfMonth*/,
7564  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7565  5760 /*atTimeCode (86400/15)*/,
7566  60 /*deltaMinutes*/,
7567  25 /*letterIndex ("S")*/,
7568  },
7569  // Rule Egypt 2010 only - Sep lastThu 24:00 0 -
7570  {
7571  2010 /*fromYear*/,
7572  2010 /*toYear*/,
7573  9 /*inMonth*/,
7574  4 /*onDayOfWeek*/,
7575  0 /*onDayOfMonth*/,
7576  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7577  5760 /*atTimeCode (86400/15)*/,
7578  0 /*deltaMinutes*/,
7579  0 /*letterIndex ("")*/,
7580  },
7581  // Rule Egypt 2014 only - May 15 24:00 1:00 S
7582  {
7583  2014 /*fromYear*/,
7584  2014 /*toYear*/,
7585  5 /*inMonth*/,
7586  0 /*onDayOfWeek*/,
7587  15 /*onDayOfMonth*/,
7588  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7589  5760 /*atTimeCode (86400/15)*/,
7590  60 /*deltaMinutes*/,
7591  25 /*letterIndex ("S")*/,
7592  },
7593  // Rule Egypt 2014 only - Jun 26 24:00 0 -
7594  {
7595  2014 /*fromYear*/,
7596  2014 /*toYear*/,
7597  6 /*inMonth*/,
7598  0 /*onDayOfWeek*/,
7599  26 /*onDayOfMonth*/,
7600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7601  5760 /*atTimeCode (86400/15)*/,
7602  0 /*deltaMinutes*/,
7603  0 /*letterIndex ("")*/,
7604  },
7605  // Rule Egypt 2014 only - Jul 31 24:00 1:00 S
7606  {
7607  2014 /*fromYear*/,
7608  2014 /*toYear*/,
7609  7 /*inMonth*/,
7610  0 /*onDayOfWeek*/,
7611  31 /*onDayOfMonth*/,
7612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7613  5760 /*atTimeCode (86400/15)*/,
7614  60 /*deltaMinutes*/,
7615  25 /*letterIndex ("S")*/,
7616  },
7617  // Rule Egypt 2014 only - Sep lastThu 24:00 0 -
7618  {
7619  2014 /*fromYear*/,
7620  2014 /*toYear*/,
7621  9 /*inMonth*/,
7622  4 /*onDayOfWeek*/,
7623  0 /*onDayOfMonth*/,
7624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7625  5760 /*atTimeCode (86400/15)*/,
7626  0 /*deltaMinutes*/,
7627  0 /*letterIndex ("")*/,
7628  },
7629  // Rule Egypt 2023 max - Apr lastFri 0:00 1:00 S
7630  {
7631  2023 /*fromYear*/,
7632  32766 /*toYear*/,
7633  4 /*inMonth*/,
7634  5 /*onDayOfWeek*/,
7635  0 /*onDayOfMonth*/,
7636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7637  0 /*atTimeCode (0/15)*/,
7638  60 /*deltaMinutes*/,
7639  25 /*letterIndex ("S")*/,
7640  },
7641  // Rule Egypt 2023 max - Oct lastThu 24:00 0 -
7642  {
7643  2023 /*fromYear*/,
7644  32766 /*toYear*/,
7645  10 /*inMonth*/,
7646  4 /*onDayOfWeek*/,
7647  0 /*onDayOfMonth*/,
7648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7649  5760 /*atTimeCode (86400/15)*/,
7650  0 /*deltaMinutes*/,
7651  0 /*letterIndex ("")*/,
7652  },
7653 
7654 };
7655 
7656 const complete::Info::ZonePolicy kZonePolicyEgypt ACE_TIME_PROGMEM = {
7657  kZoneRulesEgypt /*rules*/,
7658  35 /*numRules*/,
7659 };
7660 
7661 //---------------------------------------------------------------------------
7662 // Policy name: EgyptAsia
7663 // Rules: 7
7664 //---------------------------------------------------------------------------
7665 
7666 static const complete::Info::ZoneRule kZoneRulesEgyptAsia[] ACE_TIME_PROGMEM = {
7667  // Anchor: Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
7668  {
7669  -32767 /*fromYear*/,
7670  -32767 /*toYear*/,
7671  1 /*inMonth*/,
7672  0 /*onDayOfWeek*/,
7673  1 /*onDayOfMonth*/,
7674  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7675  0 /*atTimeCode (0/15)*/,
7676  0 /*deltaMinutes*/,
7677  0 /*letterIndex ("")*/,
7678  },
7679  // Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
7680  {
7681  1957 /*fromYear*/,
7682  1957 /*toYear*/,
7683  5 /*inMonth*/,
7684  0 /*onDayOfWeek*/,
7685  10 /*onDayOfMonth*/,
7686  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7687  0 /*atTimeCode (0/15)*/,
7688  60 /*deltaMinutes*/,
7689  25 /*letterIndex ("S")*/,
7690  },
7691  // Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 -
7692  {
7693  1957 /*fromYear*/,
7694  1958 /*toYear*/,
7695  10 /*inMonth*/,
7696  0 /*onDayOfWeek*/,
7697  1 /*onDayOfMonth*/,
7698  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7699  0 /*atTimeCode (0/15)*/,
7700  0 /*deltaMinutes*/,
7701  0 /*letterIndex ("")*/,
7702  },
7703  // Rule EgyptAsia 1958 only - May 1 0:00 1:00 S
7704  {
7705  1958 /*fromYear*/,
7706  1958 /*toYear*/,
7707  5 /*inMonth*/,
7708  0 /*onDayOfWeek*/,
7709  1 /*onDayOfMonth*/,
7710  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7711  0 /*atTimeCode (0/15)*/,
7712  60 /*deltaMinutes*/,
7713  25 /*letterIndex ("S")*/,
7714  },
7715  // Rule EgyptAsia 1959 1967 - May 1 1:00 1:00 S
7716  {
7717  1959 /*fromYear*/,
7718  1967 /*toYear*/,
7719  5 /*inMonth*/,
7720  0 /*onDayOfWeek*/,
7721  1 /*onDayOfMonth*/,
7722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7723  240 /*atTimeCode (3600/15)*/,
7724  60 /*deltaMinutes*/,
7725  25 /*letterIndex ("S")*/,
7726  },
7727  // Rule EgyptAsia 1959 1965 - Sep 30 3:00 0 -
7728  {
7729  1959 /*fromYear*/,
7730  1965 /*toYear*/,
7731  9 /*inMonth*/,
7732  0 /*onDayOfWeek*/,
7733  30 /*onDayOfMonth*/,
7734  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7735  720 /*atTimeCode (10800/15)*/,
7736  0 /*deltaMinutes*/,
7737  0 /*letterIndex ("")*/,
7738  },
7739  // Rule EgyptAsia 1966 only - Oct 1 3:00 0 -
7740  {
7741  1966 /*fromYear*/,
7742  1966 /*toYear*/,
7743  10 /*inMonth*/,
7744  0 /*onDayOfWeek*/,
7745  1 /*onDayOfMonth*/,
7746  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7747  720 /*atTimeCode (10800/15)*/,
7748  0 /*deltaMinutes*/,
7749  0 /*letterIndex ("")*/,
7750  },
7751 
7752 };
7753 
7754 const complete::Info::ZonePolicy kZonePolicyEgyptAsia ACE_TIME_PROGMEM = {
7755  kZoneRulesEgyptAsia /*rules*/,
7756  7 /*numRules*/,
7757 };
7758 
7759 //---------------------------------------------------------------------------
7760 // Policy name: Eire
7761 // Rules: 8
7762 //---------------------------------------------------------------------------
7763 
7764 static const complete::Info::ZoneRule kZoneRulesEire[] ACE_TIME_PROGMEM = {
7765  // Anchor: Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 -
7766  {
7767  -32767 /*fromYear*/,
7768  -32767 /*toYear*/,
7769  1 /*inMonth*/,
7770  0 /*onDayOfWeek*/,
7771  1 /*onDayOfMonth*/,
7772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7773  0 /*atTimeCode (0/15)*/,
7774  0 /*deltaMinutes*/,
7775  0 /*letterIndex ("")*/,
7776  },
7777  // Rule Eire 1971 only - Oct 31 2:00u -1:00 -
7778  {
7779  1971 /*fromYear*/,
7780  1971 /*toYear*/,
7781  10 /*inMonth*/,
7782  0 /*onDayOfWeek*/,
7783  31 /*onDayOfMonth*/,
7784  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
7785  480 /*atTimeCode (7200/15)*/,
7786  -60 /*deltaMinutes*/,
7787  0 /*letterIndex ("")*/,
7788  },
7789  // Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 -
7790  {
7791  1972 /*fromYear*/,
7792  1980 /*toYear*/,
7793  3 /*inMonth*/,
7794  7 /*onDayOfWeek*/,
7795  16 /*onDayOfMonth*/,
7796  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
7797  480 /*atTimeCode (7200/15)*/,
7798  0 /*deltaMinutes*/,
7799  0 /*letterIndex ("")*/,
7800  },
7801  // Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 -
7802  {
7803  1972 /*fromYear*/,
7804  1980 /*toYear*/,
7805  10 /*inMonth*/,
7806  7 /*onDayOfWeek*/,
7807  23 /*onDayOfMonth*/,
7808  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
7809  480 /*atTimeCode (7200/15)*/,
7810  -60 /*deltaMinutes*/,
7811  0 /*letterIndex ("")*/,
7812  },
7813  // Rule Eire 1981 max - Mar lastSun 1:00u 0 -
7814  {
7815  1981 /*fromYear*/,
7816  32766 /*toYear*/,
7817  3 /*inMonth*/,
7818  7 /*onDayOfWeek*/,
7819  0 /*onDayOfMonth*/,
7820  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
7821  240 /*atTimeCode (3600/15)*/,
7822  0 /*deltaMinutes*/,
7823  0 /*letterIndex ("")*/,
7824  },
7825  // Rule Eire 1981 1989 - Oct Sun>=23 1:00u -1:00 -
7826  {
7827  1981 /*fromYear*/,
7828  1989 /*toYear*/,
7829  10 /*inMonth*/,
7830  7 /*onDayOfWeek*/,
7831  23 /*onDayOfMonth*/,
7832  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
7833  240 /*atTimeCode (3600/15)*/,
7834  -60 /*deltaMinutes*/,
7835  0 /*letterIndex ("")*/,
7836  },
7837  // Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 -
7838  {
7839  1990 /*fromYear*/,
7840  1995 /*toYear*/,
7841  10 /*inMonth*/,
7842  7 /*onDayOfWeek*/,
7843  22 /*onDayOfMonth*/,
7844  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
7845  240 /*atTimeCode (3600/15)*/,
7846  -60 /*deltaMinutes*/,
7847  0 /*letterIndex ("")*/,
7848  },
7849  // Rule Eire 1996 max - Oct lastSun 1:00u -1:00 -
7850  {
7851  1996 /*fromYear*/,
7852  32766 /*toYear*/,
7853  10 /*inMonth*/,
7854  7 /*onDayOfWeek*/,
7855  0 /*onDayOfMonth*/,
7856  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
7857  240 /*atTimeCode (3600/15)*/,
7858  -60 /*deltaMinutes*/,
7859  0 /*letterIndex ("")*/,
7860  },
7861 
7862 };
7863 
7864 const complete::Info::ZonePolicy kZonePolicyEire ACE_TIME_PROGMEM = {
7865  kZoneRulesEire /*rules*/,
7866  8 /*numRules*/,
7867 };
7868 
7869 //---------------------------------------------------------------------------
7870 // Policy name: Falk
7871 // Rules: 13
7872 //---------------------------------------------------------------------------
7873 
7874 static const complete::Info::ZoneRule kZoneRulesFalk[] ACE_TIME_PROGMEM = {
7875  // Anchor: Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
7876  {
7877  -32767 /*fromYear*/,
7878  -32767 /*toYear*/,
7879  1 /*inMonth*/,
7880  0 /*onDayOfWeek*/,
7881  1 /*onDayOfMonth*/,
7882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7883  0 /*atTimeCode (0/15)*/,
7884  0 /*deltaMinutes*/,
7885  0 /*letterIndex ("")*/,
7886  },
7887  // Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 -
7888  {
7889  1937 /*fromYear*/,
7890  1938 /*toYear*/,
7891  9 /*inMonth*/,
7892  7 /*onDayOfWeek*/,
7893  0 /*onDayOfMonth*/,
7894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7895  0 /*atTimeCode (0/15)*/,
7896  60 /*deltaMinutes*/,
7897  0 /*letterIndex ("")*/,
7898  },
7899  // Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 -
7900  {
7901  1938 /*fromYear*/,
7902  1942 /*toYear*/,
7903  3 /*inMonth*/,
7904  7 /*onDayOfWeek*/,
7905  19 /*onDayOfMonth*/,
7906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7907  0 /*atTimeCode (0/15)*/,
7908  0 /*deltaMinutes*/,
7909  0 /*letterIndex ("")*/,
7910  },
7911  // Rule Falk 1939 only - Oct 1 0:00 1:00 -
7912  {
7913  1939 /*fromYear*/,
7914  1939 /*toYear*/,
7915  10 /*inMonth*/,
7916  0 /*onDayOfWeek*/,
7917  1 /*onDayOfMonth*/,
7918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7919  0 /*atTimeCode (0/15)*/,
7920  60 /*deltaMinutes*/,
7921  0 /*letterIndex ("")*/,
7922  },
7923  // Rule Falk 1940 1942 - Sep lastSun 0:00 1:00 -
7924  {
7925  1940 /*fromYear*/,
7926  1942 /*toYear*/,
7927  9 /*inMonth*/,
7928  7 /*onDayOfWeek*/,
7929  0 /*onDayOfMonth*/,
7930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7931  0 /*atTimeCode (0/15)*/,
7932  60 /*deltaMinutes*/,
7933  0 /*letterIndex ("")*/,
7934  },
7935  // Rule Falk 1943 only - Jan 1 0:00 0 -
7936  {
7937  1943 /*fromYear*/,
7938  1943 /*toYear*/,
7939  1 /*inMonth*/,
7940  0 /*onDayOfWeek*/,
7941  1 /*onDayOfMonth*/,
7942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7943  0 /*atTimeCode (0/15)*/,
7944  0 /*deltaMinutes*/,
7945  0 /*letterIndex ("")*/,
7946  },
7947  // Rule Falk 1983 only - Sep lastSun 0:00 1:00 -
7948  {
7949  1983 /*fromYear*/,
7950  1983 /*toYear*/,
7951  9 /*inMonth*/,
7952  7 /*onDayOfWeek*/,
7953  0 /*onDayOfMonth*/,
7954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7955  0 /*atTimeCode (0/15)*/,
7956  60 /*deltaMinutes*/,
7957  0 /*letterIndex ("")*/,
7958  },
7959  // Rule Falk 1984 1985 - Apr lastSun 0:00 0 -
7960  {
7961  1984 /*fromYear*/,
7962  1985 /*toYear*/,
7963  4 /*inMonth*/,
7964  7 /*onDayOfWeek*/,
7965  0 /*onDayOfMonth*/,
7966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7967  0 /*atTimeCode (0/15)*/,
7968  0 /*deltaMinutes*/,
7969  0 /*letterIndex ("")*/,
7970  },
7971  // Rule Falk 1984 only - Sep 16 0:00 1:00 -
7972  {
7973  1984 /*fromYear*/,
7974  1984 /*toYear*/,
7975  9 /*inMonth*/,
7976  0 /*onDayOfWeek*/,
7977  16 /*onDayOfMonth*/,
7978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7979  0 /*atTimeCode (0/15)*/,
7980  60 /*deltaMinutes*/,
7981  0 /*letterIndex ("")*/,
7982  },
7983  // Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 -
7984  {
7985  1985 /*fromYear*/,
7986  2000 /*toYear*/,
7987  9 /*inMonth*/,
7988  7 /*onDayOfWeek*/,
7989  9 /*onDayOfMonth*/,
7990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
7991  0 /*atTimeCode (0/15)*/,
7992  60 /*deltaMinutes*/,
7993  0 /*letterIndex ("")*/,
7994  },
7995  // Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 -
7996  {
7997  1986 /*fromYear*/,
7998  2000 /*toYear*/,
7999  4 /*inMonth*/,
8000  7 /*onDayOfWeek*/,
8001  16 /*onDayOfMonth*/,
8002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8003  0 /*atTimeCode (0/15)*/,
8004  0 /*deltaMinutes*/,
8005  0 /*letterIndex ("")*/,
8006  },
8007  // Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 -
8008  {
8009  2001 /*fromYear*/,
8010  2010 /*toYear*/,
8011  4 /*inMonth*/,
8012  7 /*onDayOfWeek*/,
8013  15 /*onDayOfMonth*/,
8014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8015  480 /*atTimeCode (7200/15)*/,
8016  0 /*deltaMinutes*/,
8017  0 /*letterIndex ("")*/,
8018  },
8019  // Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 -
8020  {
8021  2001 /*fromYear*/,
8022  2010 /*toYear*/,
8023  9 /*inMonth*/,
8024  7 /*onDayOfWeek*/,
8025  1 /*onDayOfMonth*/,
8026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8027  480 /*atTimeCode (7200/15)*/,
8028  60 /*deltaMinutes*/,
8029  0 /*letterIndex ("")*/,
8030  },
8031 
8032 };
8033 
8034 const complete::Info::ZonePolicy kZonePolicyFalk ACE_TIME_PROGMEM = {
8035  kZoneRulesFalk /*rules*/,
8036  13 /*numRules*/,
8037 };
8038 
8039 //---------------------------------------------------------------------------
8040 // Policy name: Fiji
8041 // Rules: 13
8042 //---------------------------------------------------------------------------
8043 
8044 static const complete::Info::ZoneRule kZoneRulesFiji[] ACE_TIME_PROGMEM = {
8045  // Anchor: Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
8046  {
8047  -32767 /*fromYear*/,
8048  -32767 /*toYear*/,
8049  1 /*inMonth*/,
8050  0 /*onDayOfWeek*/,
8051  1 /*onDayOfMonth*/,
8052  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8053  0 /*atTimeCode (0/15)*/,
8054  0 /*deltaMinutes*/,
8055  0 /*letterIndex ("")*/,
8056  },
8057  // Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
8058  {
8059  1998 /*fromYear*/,
8060  1999 /*toYear*/,
8061  11 /*inMonth*/,
8062  7 /*onDayOfWeek*/,
8063  1 /*onDayOfMonth*/,
8064  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8065  480 /*atTimeCode (7200/15)*/,
8066  60 /*deltaMinutes*/,
8067  0 /*letterIndex ("")*/,
8068  },
8069  // Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
8070  {
8071  1999 /*fromYear*/,
8072  2000 /*toYear*/,
8073  2 /*inMonth*/,
8074  7 /*onDayOfWeek*/,
8075  0 /*onDayOfMonth*/,
8076  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8077  720 /*atTimeCode (10800/15)*/,
8078  0 /*deltaMinutes*/,
8079  0 /*letterIndex ("")*/,
8080  },
8081  // Rule Fiji 2009 only - Nov 29 2:00 1:00 -
8082  {
8083  2009 /*fromYear*/,
8084  2009 /*toYear*/,
8085  11 /*inMonth*/,
8086  0 /*onDayOfWeek*/,
8087  29 /*onDayOfMonth*/,
8088  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8089  480 /*atTimeCode (7200/15)*/,
8090  60 /*deltaMinutes*/,
8091  0 /*letterIndex ("")*/,
8092  },
8093  // Rule Fiji 2010 only - Mar lastSun 3:00 0 -
8094  {
8095  2010 /*fromYear*/,
8096  2010 /*toYear*/,
8097  3 /*inMonth*/,
8098  7 /*onDayOfWeek*/,
8099  0 /*onDayOfMonth*/,
8100  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8101  720 /*atTimeCode (10800/15)*/,
8102  0 /*deltaMinutes*/,
8103  0 /*letterIndex ("")*/,
8104  },
8105  // Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 -
8106  {
8107  2010 /*fromYear*/,
8108  2013 /*toYear*/,
8109  10 /*inMonth*/,
8110  7 /*onDayOfWeek*/,
8111  21 /*onDayOfMonth*/,
8112  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8113  480 /*atTimeCode (7200/15)*/,
8114  60 /*deltaMinutes*/,
8115  0 /*letterIndex ("")*/,
8116  },
8117  // Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
8118  {
8119  2011 /*fromYear*/,
8120  2011 /*toYear*/,
8121  3 /*inMonth*/,
8122  7 /*onDayOfWeek*/,
8123  1 /*onDayOfMonth*/,
8124  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8125  720 /*atTimeCode (10800/15)*/,
8126  0 /*deltaMinutes*/,
8127  0 /*letterIndex ("")*/,
8128  },
8129  // Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
8130  {
8131  2012 /*fromYear*/,
8132  2013 /*toYear*/,
8133  1 /*inMonth*/,
8134  7 /*onDayOfWeek*/,
8135  18 /*onDayOfMonth*/,
8136  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8137  720 /*atTimeCode (10800/15)*/,
8138  0 /*deltaMinutes*/,
8139  0 /*letterIndex ("")*/,
8140  },
8141  // Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
8142  {
8143  2014 /*fromYear*/,
8144  2014 /*toYear*/,
8145  1 /*inMonth*/,
8146  7 /*onDayOfWeek*/,
8147  18 /*onDayOfMonth*/,
8148  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8149  480 /*atTimeCode (7200/15)*/,
8150  0 /*deltaMinutes*/,
8151  0 /*letterIndex ("")*/,
8152  },
8153  // Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
8154  {
8155  2014 /*fromYear*/,
8156  2018 /*toYear*/,
8157  11 /*inMonth*/,
8158  7 /*onDayOfWeek*/,
8159  1 /*onDayOfMonth*/,
8160  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8161  480 /*atTimeCode (7200/15)*/,
8162  60 /*deltaMinutes*/,
8163  0 /*letterIndex ("")*/,
8164  },
8165  // Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 -
8166  {
8167  2015 /*fromYear*/,
8168  2021 /*toYear*/,
8169  1 /*inMonth*/,
8170  7 /*onDayOfWeek*/,
8171  12 /*onDayOfMonth*/,
8172  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8173  720 /*atTimeCode (10800/15)*/,
8174  0 /*deltaMinutes*/,
8175  0 /*letterIndex ("")*/,
8176  },
8177  // Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 -
8178  {
8179  2019 /*fromYear*/,
8180  2019 /*toYear*/,
8181  11 /*inMonth*/,
8182  7 /*onDayOfWeek*/,
8183  8 /*onDayOfMonth*/,
8184  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8185  480 /*atTimeCode (7200/15)*/,
8186  60 /*deltaMinutes*/,
8187  0 /*letterIndex ("")*/,
8188  },
8189  // Rule Fiji 2020 only - Dec 20 2:00 1:00 -
8190  {
8191  2020 /*fromYear*/,
8192  2020 /*toYear*/,
8193  12 /*inMonth*/,
8194  0 /*onDayOfWeek*/,
8195  20 /*onDayOfMonth*/,
8196  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8197  480 /*atTimeCode (7200/15)*/,
8198  60 /*deltaMinutes*/,
8199  0 /*letterIndex ("")*/,
8200  },
8201 
8202 };
8203 
8204 const complete::Info::ZonePolicy kZonePolicyFiji ACE_TIME_PROGMEM = {
8205  kZoneRulesFiji /*rules*/,
8206  13 /*numRules*/,
8207 };
8208 
8209 //---------------------------------------------------------------------------
8210 // Policy name: Finland
8211 // Rules: 5
8212 //---------------------------------------------------------------------------
8213 
8214 static const complete::Info::ZoneRule kZoneRulesFinland[] ACE_TIME_PROGMEM = {
8215  // Anchor: Rule Finland 1942 only - Oct 4 1:00 0 -
8216  {
8217  -32767 /*fromYear*/,
8218  -32767 /*toYear*/,
8219  1 /*inMonth*/,
8220  0 /*onDayOfWeek*/,
8221  1 /*onDayOfMonth*/,
8222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8223  0 /*atTimeCode (0/15)*/,
8224  0 /*deltaMinutes*/,
8225  0 /*letterIndex ("")*/,
8226  },
8227  // Rule Finland 1942 only - Apr 2 24:00 1:00 S
8228  {
8229  1942 /*fromYear*/,
8230  1942 /*toYear*/,
8231  4 /*inMonth*/,
8232  0 /*onDayOfWeek*/,
8233  2 /*onDayOfMonth*/,
8234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8235  5760 /*atTimeCode (86400/15)*/,
8236  60 /*deltaMinutes*/,
8237  25 /*letterIndex ("S")*/,
8238  },
8239  // Rule Finland 1942 only - Oct 4 1:00 0 -
8240  {
8241  1942 /*fromYear*/,
8242  1942 /*toYear*/,
8243  10 /*inMonth*/,
8244  0 /*onDayOfWeek*/,
8245  4 /*onDayOfMonth*/,
8246  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8247  240 /*atTimeCode (3600/15)*/,
8248  0 /*deltaMinutes*/,
8249  0 /*letterIndex ("")*/,
8250  },
8251  // Rule Finland 1981 1982 - Mar lastSun 2:00 1:00 S
8252  {
8253  1981 /*fromYear*/,
8254  1982 /*toYear*/,
8255  3 /*inMonth*/,
8256  7 /*onDayOfWeek*/,
8257  0 /*onDayOfMonth*/,
8258  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8259  480 /*atTimeCode (7200/15)*/,
8260  60 /*deltaMinutes*/,
8261  25 /*letterIndex ("S")*/,
8262  },
8263  // Rule Finland 1981 1982 - Sep lastSun 3:00 0 -
8264  {
8265  1981 /*fromYear*/,
8266  1982 /*toYear*/,
8267  9 /*inMonth*/,
8268  7 /*onDayOfWeek*/,
8269  0 /*onDayOfMonth*/,
8270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8271  720 /*atTimeCode (10800/15)*/,
8272  0 /*deltaMinutes*/,
8273  0 /*letterIndex ("")*/,
8274  },
8275 
8276 };
8277 
8278 const complete::Info::ZonePolicy kZonePolicyFinland ACE_TIME_PROGMEM = {
8279  kZoneRulesFinland /*rules*/,
8280  5 /*numRules*/,
8281 };
8282 
8283 //---------------------------------------------------------------------------
8284 // Policy name: France
8285 // Rules: 43
8286 //---------------------------------------------------------------------------
8287 
8288 static const complete::Info::ZoneRule kZoneRulesFrance[] ACE_TIME_PROGMEM = {
8289  // Anchor: Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
8290  {
8291  -32767 /*fromYear*/,
8292  -32767 /*toYear*/,
8293  1 /*inMonth*/,
8294  0 /*onDayOfWeek*/,
8295  1 /*onDayOfMonth*/,
8296  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8297  0 /*atTimeCode (0/15)*/,
8298  0 /*deltaMinutes*/,
8299  0 /*letterIndex ("")*/,
8300  },
8301  // Rule France 1916 only - Jun 14 23:00s 1:00 S
8302  {
8303  1916 /*fromYear*/,
8304  1916 /*toYear*/,
8305  6 /*inMonth*/,
8306  0 /*onDayOfWeek*/,
8307  14 /*onDayOfMonth*/,
8308  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8309  5520 /*atTimeCode (82800/15)*/,
8310  60 /*deltaMinutes*/,
8311  25 /*letterIndex ("S")*/,
8312  },
8313  // Rule France 1916 1919 - Oct Sun>=1 23:00s 0 -
8314  {
8315  1916 /*fromYear*/,
8316  1919 /*toYear*/,
8317  10 /*inMonth*/,
8318  7 /*onDayOfWeek*/,
8319  1 /*onDayOfMonth*/,
8320  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8321  5520 /*atTimeCode (82800/15)*/,
8322  0 /*deltaMinutes*/,
8323  0 /*letterIndex ("")*/,
8324  },
8325  // Rule France 1917 only - Mar 24 23:00s 1:00 S
8326  {
8327  1917 /*fromYear*/,
8328  1917 /*toYear*/,
8329  3 /*inMonth*/,
8330  0 /*onDayOfWeek*/,
8331  24 /*onDayOfMonth*/,
8332  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8333  5520 /*atTimeCode (82800/15)*/,
8334  60 /*deltaMinutes*/,
8335  25 /*letterIndex ("S")*/,
8336  },
8337  // Rule France 1918 only - Mar 9 23:00s 1:00 S
8338  {
8339  1918 /*fromYear*/,
8340  1918 /*toYear*/,
8341  3 /*inMonth*/,
8342  0 /*onDayOfWeek*/,
8343  9 /*onDayOfMonth*/,
8344  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8345  5520 /*atTimeCode (82800/15)*/,
8346  60 /*deltaMinutes*/,
8347  25 /*letterIndex ("S")*/,
8348  },
8349  // Rule France 1919 only - Mar 1 23:00s 1:00 S
8350  {
8351  1919 /*fromYear*/,
8352  1919 /*toYear*/,
8353  3 /*inMonth*/,
8354  0 /*onDayOfWeek*/,
8355  1 /*onDayOfMonth*/,
8356  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8357  5520 /*atTimeCode (82800/15)*/,
8358  60 /*deltaMinutes*/,
8359  25 /*letterIndex ("S")*/,
8360  },
8361  // Rule France 1920 only - Feb 14 23:00s 1:00 S
8362  {
8363  1920 /*fromYear*/,
8364  1920 /*toYear*/,
8365  2 /*inMonth*/,
8366  0 /*onDayOfWeek*/,
8367  14 /*onDayOfMonth*/,
8368  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8369  5520 /*atTimeCode (82800/15)*/,
8370  60 /*deltaMinutes*/,
8371  25 /*letterIndex ("S")*/,
8372  },
8373  // Rule France 1920 only - Oct 23 23:00s 0 -
8374  {
8375  1920 /*fromYear*/,
8376  1920 /*toYear*/,
8377  10 /*inMonth*/,
8378  0 /*onDayOfWeek*/,
8379  23 /*onDayOfMonth*/,
8380  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8381  5520 /*atTimeCode (82800/15)*/,
8382  0 /*deltaMinutes*/,
8383  0 /*letterIndex ("")*/,
8384  },
8385  // Rule France 1921 only - Mar 14 23:00s 1:00 S
8386  {
8387  1921 /*fromYear*/,
8388  1921 /*toYear*/,
8389  3 /*inMonth*/,
8390  0 /*onDayOfWeek*/,
8391  14 /*onDayOfMonth*/,
8392  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8393  5520 /*atTimeCode (82800/15)*/,
8394  60 /*deltaMinutes*/,
8395  25 /*letterIndex ("S")*/,
8396  },
8397  // Rule France 1921 only - Oct 25 23:00s 0 -
8398  {
8399  1921 /*fromYear*/,
8400  1921 /*toYear*/,
8401  10 /*inMonth*/,
8402  0 /*onDayOfWeek*/,
8403  25 /*onDayOfMonth*/,
8404  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8405  5520 /*atTimeCode (82800/15)*/,
8406  0 /*deltaMinutes*/,
8407  0 /*letterIndex ("")*/,
8408  },
8409  // Rule France 1922 only - Mar 25 23:00s 1:00 S
8410  {
8411  1922 /*fromYear*/,
8412  1922 /*toYear*/,
8413  3 /*inMonth*/,
8414  0 /*onDayOfWeek*/,
8415  25 /*onDayOfMonth*/,
8416  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8417  5520 /*atTimeCode (82800/15)*/,
8418  60 /*deltaMinutes*/,
8419  25 /*letterIndex ("S")*/,
8420  },
8421  // Rule France 1922 1938 - Oct Sat>=1 23:00s 0 -
8422  {
8423  1922 /*fromYear*/,
8424  1938 /*toYear*/,
8425  10 /*inMonth*/,
8426  6 /*onDayOfWeek*/,
8427  1 /*onDayOfMonth*/,
8428  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8429  5520 /*atTimeCode (82800/15)*/,
8430  0 /*deltaMinutes*/,
8431  0 /*letterIndex ("")*/,
8432  },
8433  // Rule France 1923 only - May 26 23:00s 1:00 S
8434  {
8435  1923 /*fromYear*/,
8436  1923 /*toYear*/,
8437  5 /*inMonth*/,
8438  0 /*onDayOfWeek*/,
8439  26 /*onDayOfMonth*/,
8440  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8441  5520 /*atTimeCode (82800/15)*/,
8442  60 /*deltaMinutes*/,
8443  25 /*letterIndex ("S")*/,
8444  },
8445  // Rule France 1924 only - Mar 29 23:00s 1:00 S
8446  {
8447  1924 /*fromYear*/,
8448  1924 /*toYear*/,
8449  3 /*inMonth*/,
8450  0 /*onDayOfWeek*/,
8451  29 /*onDayOfMonth*/,
8452  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8453  5520 /*atTimeCode (82800/15)*/,
8454  60 /*deltaMinutes*/,
8455  25 /*letterIndex ("S")*/,
8456  },
8457  // Rule France 1925 only - Apr 4 23:00s 1:00 S
8458  {
8459  1925 /*fromYear*/,
8460  1925 /*toYear*/,
8461  4 /*inMonth*/,
8462  0 /*onDayOfWeek*/,
8463  4 /*onDayOfMonth*/,
8464  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8465  5520 /*atTimeCode (82800/15)*/,
8466  60 /*deltaMinutes*/,
8467  25 /*letterIndex ("S")*/,
8468  },
8469  // Rule France 1926 only - Apr 17 23:00s 1:00 S
8470  {
8471  1926 /*fromYear*/,
8472  1926 /*toYear*/,
8473  4 /*inMonth*/,
8474  0 /*onDayOfWeek*/,
8475  17 /*onDayOfMonth*/,
8476  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8477  5520 /*atTimeCode (82800/15)*/,
8478  60 /*deltaMinutes*/,
8479  25 /*letterIndex ("S")*/,
8480  },
8481  // Rule France 1927 only - Apr 9 23:00s 1:00 S
8482  {
8483  1927 /*fromYear*/,
8484  1927 /*toYear*/,
8485  4 /*inMonth*/,
8486  0 /*onDayOfWeek*/,
8487  9 /*onDayOfMonth*/,
8488  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8489  5520 /*atTimeCode (82800/15)*/,
8490  60 /*deltaMinutes*/,
8491  25 /*letterIndex ("S")*/,
8492  },
8493  // Rule France 1928 only - Apr 14 23:00s 1:00 S
8494  {
8495  1928 /*fromYear*/,
8496  1928 /*toYear*/,
8497  4 /*inMonth*/,
8498  0 /*onDayOfWeek*/,
8499  14 /*onDayOfMonth*/,
8500  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8501  5520 /*atTimeCode (82800/15)*/,
8502  60 /*deltaMinutes*/,
8503  25 /*letterIndex ("S")*/,
8504  },
8505  // Rule France 1929 only - Apr 20 23:00s 1:00 S
8506  {
8507  1929 /*fromYear*/,
8508  1929 /*toYear*/,
8509  4 /*inMonth*/,
8510  0 /*onDayOfWeek*/,
8511  20 /*onDayOfMonth*/,
8512  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8513  5520 /*atTimeCode (82800/15)*/,
8514  60 /*deltaMinutes*/,
8515  25 /*letterIndex ("S")*/,
8516  },
8517  // Rule France 1930 only - Apr 12 23:00s 1:00 S
8518  {
8519  1930 /*fromYear*/,
8520  1930 /*toYear*/,
8521  4 /*inMonth*/,
8522  0 /*onDayOfWeek*/,
8523  12 /*onDayOfMonth*/,
8524  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8525  5520 /*atTimeCode (82800/15)*/,
8526  60 /*deltaMinutes*/,
8527  25 /*letterIndex ("S")*/,
8528  },
8529  // Rule France 1931 only - Apr 18 23:00s 1:00 S
8530  {
8531  1931 /*fromYear*/,
8532  1931 /*toYear*/,
8533  4 /*inMonth*/,
8534  0 /*onDayOfWeek*/,
8535  18 /*onDayOfMonth*/,
8536  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8537  5520 /*atTimeCode (82800/15)*/,
8538  60 /*deltaMinutes*/,
8539  25 /*letterIndex ("S")*/,
8540  },
8541  // Rule France 1932 only - Apr 2 23:00s 1:00 S
8542  {
8543  1932 /*fromYear*/,
8544  1932 /*toYear*/,
8545  4 /*inMonth*/,
8546  0 /*onDayOfWeek*/,
8547  2 /*onDayOfMonth*/,
8548  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8549  5520 /*atTimeCode (82800/15)*/,
8550  60 /*deltaMinutes*/,
8551  25 /*letterIndex ("S")*/,
8552  },
8553  // Rule France 1933 only - Mar 25 23:00s 1:00 S
8554  {
8555  1933 /*fromYear*/,
8556  1933 /*toYear*/,
8557  3 /*inMonth*/,
8558  0 /*onDayOfWeek*/,
8559  25 /*onDayOfMonth*/,
8560  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8561  5520 /*atTimeCode (82800/15)*/,
8562  60 /*deltaMinutes*/,
8563  25 /*letterIndex ("S")*/,
8564  },
8565  // Rule France 1934 only - Apr 7 23:00s 1:00 S
8566  {
8567  1934 /*fromYear*/,
8568  1934 /*toYear*/,
8569  4 /*inMonth*/,
8570  0 /*onDayOfWeek*/,
8571  7 /*onDayOfMonth*/,
8572  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8573  5520 /*atTimeCode (82800/15)*/,
8574  60 /*deltaMinutes*/,
8575  25 /*letterIndex ("S")*/,
8576  },
8577  // Rule France 1935 only - Mar 30 23:00s 1:00 S
8578  {
8579  1935 /*fromYear*/,
8580  1935 /*toYear*/,
8581  3 /*inMonth*/,
8582  0 /*onDayOfWeek*/,
8583  30 /*onDayOfMonth*/,
8584  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8585  5520 /*atTimeCode (82800/15)*/,
8586  60 /*deltaMinutes*/,
8587  25 /*letterIndex ("S")*/,
8588  },
8589  // Rule France 1936 only - Apr 18 23:00s 1:00 S
8590  {
8591  1936 /*fromYear*/,
8592  1936 /*toYear*/,
8593  4 /*inMonth*/,
8594  0 /*onDayOfWeek*/,
8595  18 /*onDayOfMonth*/,
8596  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8597  5520 /*atTimeCode (82800/15)*/,
8598  60 /*deltaMinutes*/,
8599  25 /*letterIndex ("S")*/,
8600  },
8601  // Rule France 1937 only - Apr 3 23:00s 1:00 S
8602  {
8603  1937 /*fromYear*/,
8604  1937 /*toYear*/,
8605  4 /*inMonth*/,
8606  0 /*onDayOfWeek*/,
8607  3 /*onDayOfMonth*/,
8608  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8609  5520 /*atTimeCode (82800/15)*/,
8610  60 /*deltaMinutes*/,
8611  25 /*letterIndex ("S")*/,
8612  },
8613  // Rule France 1938 only - Mar 26 23:00s 1:00 S
8614  {
8615  1938 /*fromYear*/,
8616  1938 /*toYear*/,
8617  3 /*inMonth*/,
8618  0 /*onDayOfWeek*/,
8619  26 /*onDayOfMonth*/,
8620  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8621  5520 /*atTimeCode (82800/15)*/,
8622  60 /*deltaMinutes*/,
8623  25 /*letterIndex ("S")*/,
8624  },
8625  // Rule France 1939 only - Apr 15 23:00s 1:00 S
8626  {
8627  1939 /*fromYear*/,
8628  1939 /*toYear*/,
8629  4 /*inMonth*/,
8630  0 /*onDayOfWeek*/,
8631  15 /*onDayOfMonth*/,
8632  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8633  5520 /*atTimeCode (82800/15)*/,
8634  60 /*deltaMinutes*/,
8635  25 /*letterIndex ("S")*/,
8636  },
8637  // Rule France 1939 only - Nov 18 23:00s 0 -
8638  {
8639  1939 /*fromYear*/,
8640  1939 /*toYear*/,
8641  11 /*inMonth*/,
8642  0 /*onDayOfWeek*/,
8643  18 /*onDayOfMonth*/,
8644  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8645  5520 /*atTimeCode (82800/15)*/,
8646  0 /*deltaMinutes*/,
8647  0 /*letterIndex ("")*/,
8648  },
8649  // Rule France 1940 only - Feb 25 2:00 1:00 S
8650  {
8651  1940 /*fromYear*/,
8652  1940 /*toYear*/,
8653  2 /*inMonth*/,
8654  0 /*onDayOfWeek*/,
8655  25 /*onDayOfMonth*/,
8656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8657  480 /*atTimeCode (7200/15)*/,
8658  60 /*deltaMinutes*/,
8659  25 /*letterIndex ("S")*/,
8660  },
8661  // Rule France 1941 only - May 5 0:00 2:00 M
8662  {
8663  1941 /*fromYear*/,
8664  1941 /*toYear*/,
8665  5 /*inMonth*/,
8666  0 /*onDayOfWeek*/,
8667  5 /*onDayOfMonth*/,
8668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8669  0 /*atTimeCode (0/15)*/,
8670  120 /*deltaMinutes*/,
8671  18 /*letterIndex ("M")*/,
8672  },
8673  // Rule France 1941 only - Oct 6 0:00 1:00 S
8674  {
8675  1941 /*fromYear*/,
8676  1941 /*toYear*/,
8677  10 /*inMonth*/,
8678  0 /*onDayOfWeek*/,
8679  6 /*onDayOfMonth*/,
8680  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8681  0 /*atTimeCode (0/15)*/,
8682  60 /*deltaMinutes*/,
8683  25 /*letterIndex ("S")*/,
8684  },
8685  // Rule France 1942 only - Mar 9 0:00 2:00 M
8686  {
8687  1942 /*fromYear*/,
8688  1942 /*toYear*/,
8689  3 /*inMonth*/,
8690  0 /*onDayOfWeek*/,
8691  9 /*onDayOfMonth*/,
8692  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8693  0 /*atTimeCode (0/15)*/,
8694  120 /*deltaMinutes*/,
8695  18 /*letterIndex ("M")*/,
8696  },
8697  // Rule France 1942 only - Nov 2 3:00 1:00 S
8698  {
8699  1942 /*fromYear*/,
8700  1942 /*toYear*/,
8701  11 /*inMonth*/,
8702  0 /*onDayOfWeek*/,
8703  2 /*onDayOfMonth*/,
8704  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8705  720 /*atTimeCode (10800/15)*/,
8706  60 /*deltaMinutes*/,
8707  25 /*letterIndex ("S")*/,
8708  },
8709  // Rule France 1943 only - Mar 29 2:00 2:00 M
8710  {
8711  1943 /*fromYear*/,
8712  1943 /*toYear*/,
8713  3 /*inMonth*/,
8714  0 /*onDayOfWeek*/,
8715  29 /*onDayOfMonth*/,
8716  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8717  480 /*atTimeCode (7200/15)*/,
8718  120 /*deltaMinutes*/,
8719  18 /*letterIndex ("M")*/,
8720  },
8721  // Rule France 1943 only - Oct 4 3:00 1:00 S
8722  {
8723  1943 /*fromYear*/,
8724  1943 /*toYear*/,
8725  10 /*inMonth*/,
8726  0 /*onDayOfWeek*/,
8727  4 /*onDayOfMonth*/,
8728  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8729  720 /*atTimeCode (10800/15)*/,
8730  60 /*deltaMinutes*/,
8731  25 /*letterIndex ("S")*/,
8732  },
8733  // Rule France 1944 only - Apr 3 2:00 2:00 M
8734  {
8735  1944 /*fromYear*/,
8736  1944 /*toYear*/,
8737  4 /*inMonth*/,
8738  0 /*onDayOfWeek*/,
8739  3 /*onDayOfMonth*/,
8740  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8741  480 /*atTimeCode (7200/15)*/,
8742  120 /*deltaMinutes*/,
8743  18 /*letterIndex ("M")*/,
8744  },
8745  // Rule France 1944 only - Oct 8 1:00 1:00 S
8746  {
8747  1944 /*fromYear*/,
8748  1944 /*toYear*/,
8749  10 /*inMonth*/,
8750  0 /*onDayOfWeek*/,
8751  8 /*onDayOfMonth*/,
8752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8753  240 /*atTimeCode (3600/15)*/,
8754  60 /*deltaMinutes*/,
8755  25 /*letterIndex ("S")*/,
8756  },
8757  // Rule France 1945 only - Apr 2 2:00 2:00 M
8758  {
8759  1945 /*fromYear*/,
8760  1945 /*toYear*/,
8761  4 /*inMonth*/,
8762  0 /*onDayOfWeek*/,
8763  2 /*onDayOfMonth*/,
8764  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8765  480 /*atTimeCode (7200/15)*/,
8766  120 /*deltaMinutes*/,
8767  18 /*letterIndex ("M")*/,
8768  },
8769  // Rule France 1945 only - Sep 16 3:00 0 -
8770  {
8771  1945 /*fromYear*/,
8772  1945 /*toYear*/,
8773  9 /*inMonth*/,
8774  0 /*onDayOfWeek*/,
8775  16 /*onDayOfMonth*/,
8776  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8777  720 /*atTimeCode (10800/15)*/,
8778  0 /*deltaMinutes*/,
8779  0 /*letterIndex ("")*/,
8780  },
8781  // Rule France 1976 only - Mar 28 1:00 1:00 S
8782  {
8783  1976 /*fromYear*/,
8784  1976 /*toYear*/,
8785  3 /*inMonth*/,
8786  0 /*onDayOfWeek*/,
8787  28 /*onDayOfMonth*/,
8788  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8789  240 /*atTimeCode (3600/15)*/,
8790  60 /*deltaMinutes*/,
8791  25 /*letterIndex ("S")*/,
8792  },
8793  // Rule France 1976 only - Sep 26 1:00 0 -
8794  {
8795  1976 /*fromYear*/,
8796  1976 /*toYear*/,
8797  9 /*inMonth*/,
8798  0 /*onDayOfWeek*/,
8799  26 /*onDayOfMonth*/,
8800  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8801  240 /*atTimeCode (3600/15)*/,
8802  0 /*deltaMinutes*/,
8803  0 /*letterIndex ("")*/,
8804  },
8805 
8806 };
8807 
8808 const complete::Info::ZonePolicy kZonePolicyFrance ACE_TIME_PROGMEM = {
8809  kZoneRulesFrance /*rules*/,
8810  43 /*numRules*/,
8811 };
8812 
8813 //---------------------------------------------------------------------------
8814 // Policy name: GB-Eire
8815 // Rules: 66
8816 //---------------------------------------------------------------------------
8817 
8818 static const complete::Info::ZoneRule kZoneRulesGB_Eire[] ACE_TIME_PROGMEM = {
8819  // Anchor: Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
8820  {
8821  -32767 /*fromYear*/,
8822  -32767 /*toYear*/,
8823  1 /*inMonth*/,
8824  0 /*onDayOfWeek*/,
8825  1 /*onDayOfMonth*/,
8826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
8827  0 /*atTimeCode (0/15)*/,
8828  0 /*deltaMinutes*/,
8829  17 /*letterIndex ("GMT")*/,
8830  },
8831  // Rule GB-Eire 1916 only - May 21 2:00s 1:00 BST
8832  {
8833  1916 /*fromYear*/,
8834  1916 /*toYear*/,
8835  5 /*inMonth*/,
8836  0 /*onDayOfWeek*/,
8837  21 /*onDayOfMonth*/,
8838  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8839  480 /*atTimeCode (7200/15)*/,
8840  60 /*deltaMinutes*/,
8841  7 /*letterIndex ("BST")*/,
8842  },
8843  // Rule GB-Eire 1916 only - Oct 1 2:00s 0 GMT
8844  {
8845  1916 /*fromYear*/,
8846  1916 /*toYear*/,
8847  10 /*inMonth*/,
8848  0 /*onDayOfWeek*/,
8849  1 /*onDayOfMonth*/,
8850  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8851  480 /*atTimeCode (7200/15)*/,
8852  0 /*deltaMinutes*/,
8853  17 /*letterIndex ("GMT")*/,
8854  },
8855  // Rule GB-Eire 1917 only - Apr 8 2:00s 1:00 BST
8856  {
8857  1917 /*fromYear*/,
8858  1917 /*toYear*/,
8859  4 /*inMonth*/,
8860  0 /*onDayOfWeek*/,
8861  8 /*onDayOfMonth*/,
8862  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8863  480 /*atTimeCode (7200/15)*/,
8864  60 /*deltaMinutes*/,
8865  7 /*letterIndex ("BST")*/,
8866  },
8867  // Rule GB-Eire 1917 only - Sep 17 2:00s 0 GMT
8868  {
8869  1917 /*fromYear*/,
8870  1917 /*toYear*/,
8871  9 /*inMonth*/,
8872  0 /*onDayOfWeek*/,
8873  17 /*onDayOfMonth*/,
8874  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8875  480 /*atTimeCode (7200/15)*/,
8876  0 /*deltaMinutes*/,
8877  17 /*letterIndex ("GMT")*/,
8878  },
8879  // Rule GB-Eire 1918 only - Mar 24 2:00s 1:00 BST
8880  {
8881  1918 /*fromYear*/,
8882  1918 /*toYear*/,
8883  3 /*inMonth*/,
8884  0 /*onDayOfWeek*/,
8885  24 /*onDayOfMonth*/,
8886  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8887  480 /*atTimeCode (7200/15)*/,
8888  60 /*deltaMinutes*/,
8889  7 /*letterIndex ("BST")*/,
8890  },
8891  // Rule GB-Eire 1918 only - Sep 30 2:00s 0 GMT
8892  {
8893  1918 /*fromYear*/,
8894  1918 /*toYear*/,
8895  9 /*inMonth*/,
8896  0 /*onDayOfWeek*/,
8897  30 /*onDayOfMonth*/,
8898  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8899  480 /*atTimeCode (7200/15)*/,
8900  0 /*deltaMinutes*/,
8901  17 /*letterIndex ("GMT")*/,
8902  },
8903  // Rule GB-Eire 1919 only - Mar 30 2:00s 1:00 BST
8904  {
8905  1919 /*fromYear*/,
8906  1919 /*toYear*/,
8907  3 /*inMonth*/,
8908  0 /*onDayOfWeek*/,
8909  30 /*onDayOfMonth*/,
8910  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8911  480 /*atTimeCode (7200/15)*/,
8912  60 /*deltaMinutes*/,
8913  7 /*letterIndex ("BST")*/,
8914  },
8915  // Rule GB-Eire 1919 only - Sep 29 2:00s 0 GMT
8916  {
8917  1919 /*fromYear*/,
8918  1919 /*toYear*/,
8919  9 /*inMonth*/,
8920  0 /*onDayOfWeek*/,
8921  29 /*onDayOfMonth*/,
8922  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8923  480 /*atTimeCode (7200/15)*/,
8924  0 /*deltaMinutes*/,
8925  17 /*letterIndex ("GMT")*/,
8926  },
8927  // Rule GB-Eire 1920 only - Mar 28 2:00s 1:00 BST
8928  {
8929  1920 /*fromYear*/,
8930  1920 /*toYear*/,
8931  3 /*inMonth*/,
8932  0 /*onDayOfWeek*/,
8933  28 /*onDayOfMonth*/,
8934  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8935  480 /*atTimeCode (7200/15)*/,
8936  60 /*deltaMinutes*/,
8937  7 /*letterIndex ("BST")*/,
8938  },
8939  // Rule GB-Eire 1920 only - Oct 25 2:00s 0 GMT
8940  {
8941  1920 /*fromYear*/,
8942  1920 /*toYear*/,
8943  10 /*inMonth*/,
8944  0 /*onDayOfWeek*/,
8945  25 /*onDayOfMonth*/,
8946  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8947  480 /*atTimeCode (7200/15)*/,
8948  0 /*deltaMinutes*/,
8949  17 /*letterIndex ("GMT")*/,
8950  },
8951  // Rule GB-Eire 1921 only - Apr 3 2:00s 1:00 BST
8952  {
8953  1921 /*fromYear*/,
8954  1921 /*toYear*/,
8955  4 /*inMonth*/,
8956  0 /*onDayOfWeek*/,
8957  3 /*onDayOfMonth*/,
8958  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8959  480 /*atTimeCode (7200/15)*/,
8960  60 /*deltaMinutes*/,
8961  7 /*letterIndex ("BST")*/,
8962  },
8963  // Rule GB-Eire 1921 only - Oct 3 2:00s 0 GMT
8964  {
8965  1921 /*fromYear*/,
8966  1921 /*toYear*/,
8967  10 /*inMonth*/,
8968  0 /*onDayOfWeek*/,
8969  3 /*onDayOfMonth*/,
8970  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8971  480 /*atTimeCode (7200/15)*/,
8972  0 /*deltaMinutes*/,
8973  17 /*letterIndex ("GMT")*/,
8974  },
8975  // Rule GB-Eire 1922 only - Mar 26 2:00s 1:00 BST
8976  {
8977  1922 /*fromYear*/,
8978  1922 /*toYear*/,
8979  3 /*inMonth*/,
8980  0 /*onDayOfWeek*/,
8981  26 /*onDayOfMonth*/,
8982  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8983  480 /*atTimeCode (7200/15)*/,
8984  60 /*deltaMinutes*/,
8985  7 /*letterIndex ("BST")*/,
8986  },
8987  // Rule GB-Eire 1922 only - Oct 8 2:00s 0 GMT
8988  {
8989  1922 /*fromYear*/,
8990  1922 /*toYear*/,
8991  10 /*inMonth*/,
8992  0 /*onDayOfWeek*/,
8993  8 /*onDayOfMonth*/,
8994  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
8995  480 /*atTimeCode (7200/15)*/,
8996  0 /*deltaMinutes*/,
8997  17 /*letterIndex ("GMT")*/,
8998  },
8999  // Rule GB-Eire 1923 only - Apr Sun>=16 2:00s 1:00 BST
9000  {
9001  1923 /*fromYear*/,
9002  1923 /*toYear*/,
9003  4 /*inMonth*/,
9004  7 /*onDayOfWeek*/,
9005  16 /*onDayOfMonth*/,
9006  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9007  480 /*atTimeCode (7200/15)*/,
9008  60 /*deltaMinutes*/,
9009  7 /*letterIndex ("BST")*/,
9010  },
9011  // Rule GB-Eire 1923 1924 - Sep Sun>=16 2:00s 0 GMT
9012  {
9013  1923 /*fromYear*/,
9014  1924 /*toYear*/,
9015  9 /*inMonth*/,
9016  7 /*onDayOfWeek*/,
9017  16 /*onDayOfMonth*/,
9018  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9019  480 /*atTimeCode (7200/15)*/,
9020  0 /*deltaMinutes*/,
9021  17 /*letterIndex ("GMT")*/,
9022  },
9023  // Rule GB-Eire 1924 only - Apr Sun>=9 2:00s 1:00 BST
9024  {
9025  1924 /*fromYear*/,
9026  1924 /*toYear*/,
9027  4 /*inMonth*/,
9028  7 /*onDayOfWeek*/,
9029  9 /*onDayOfMonth*/,
9030  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9031  480 /*atTimeCode (7200/15)*/,
9032  60 /*deltaMinutes*/,
9033  7 /*letterIndex ("BST")*/,
9034  },
9035  // Rule GB-Eire 1925 1926 - Apr Sun>=16 2:00s 1:00 BST
9036  {
9037  1925 /*fromYear*/,
9038  1926 /*toYear*/,
9039  4 /*inMonth*/,
9040  7 /*onDayOfWeek*/,
9041  16 /*onDayOfMonth*/,
9042  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9043  480 /*atTimeCode (7200/15)*/,
9044  60 /*deltaMinutes*/,
9045  7 /*letterIndex ("BST")*/,
9046  },
9047  // Rule GB-Eire 1925 1938 - Oct Sun>=2 2:00s 0 GMT
9048  {
9049  1925 /*fromYear*/,
9050  1938 /*toYear*/,
9051  10 /*inMonth*/,
9052  7 /*onDayOfWeek*/,
9053  2 /*onDayOfMonth*/,
9054  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9055  480 /*atTimeCode (7200/15)*/,
9056  0 /*deltaMinutes*/,
9057  17 /*letterIndex ("GMT")*/,
9058  },
9059  // Rule GB-Eire 1927 only - Apr Sun>=9 2:00s 1:00 BST
9060  {
9061  1927 /*fromYear*/,
9062  1927 /*toYear*/,
9063  4 /*inMonth*/,
9064  7 /*onDayOfWeek*/,
9065  9 /*onDayOfMonth*/,
9066  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9067  480 /*atTimeCode (7200/15)*/,
9068  60 /*deltaMinutes*/,
9069  7 /*letterIndex ("BST")*/,
9070  },
9071  // Rule GB-Eire 1928 1929 - Apr Sun>=16 2:00s 1:00 BST
9072  {
9073  1928 /*fromYear*/,
9074  1929 /*toYear*/,
9075  4 /*inMonth*/,
9076  7 /*onDayOfWeek*/,
9077  16 /*onDayOfMonth*/,
9078  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9079  480 /*atTimeCode (7200/15)*/,
9080  60 /*deltaMinutes*/,
9081  7 /*letterIndex ("BST")*/,
9082  },
9083  // Rule GB-Eire 1930 only - Apr Sun>=9 2:00s 1:00 BST
9084  {
9085  1930 /*fromYear*/,
9086  1930 /*toYear*/,
9087  4 /*inMonth*/,
9088  7 /*onDayOfWeek*/,
9089  9 /*onDayOfMonth*/,
9090  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9091  480 /*atTimeCode (7200/15)*/,
9092  60 /*deltaMinutes*/,
9093  7 /*letterIndex ("BST")*/,
9094  },
9095  // Rule GB-Eire 1931 1932 - Apr Sun>=16 2:00s 1:00 BST
9096  {
9097  1931 /*fromYear*/,
9098  1932 /*toYear*/,
9099  4 /*inMonth*/,
9100  7 /*onDayOfWeek*/,
9101  16 /*onDayOfMonth*/,
9102  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9103  480 /*atTimeCode (7200/15)*/,
9104  60 /*deltaMinutes*/,
9105  7 /*letterIndex ("BST")*/,
9106  },
9107  // Rule GB-Eire 1933 only - Apr Sun>=9 2:00s 1:00 BST
9108  {
9109  1933 /*fromYear*/,
9110  1933 /*toYear*/,
9111  4 /*inMonth*/,
9112  7 /*onDayOfWeek*/,
9113  9 /*onDayOfMonth*/,
9114  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9115  480 /*atTimeCode (7200/15)*/,
9116  60 /*deltaMinutes*/,
9117  7 /*letterIndex ("BST")*/,
9118  },
9119  // Rule GB-Eire 1934 only - Apr Sun>=16 2:00s 1:00 BST
9120  {
9121  1934 /*fromYear*/,
9122  1934 /*toYear*/,
9123  4 /*inMonth*/,
9124  7 /*onDayOfWeek*/,
9125  16 /*onDayOfMonth*/,
9126  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9127  480 /*atTimeCode (7200/15)*/,
9128  60 /*deltaMinutes*/,
9129  7 /*letterIndex ("BST")*/,
9130  },
9131  // Rule GB-Eire 1935 only - Apr Sun>=9 2:00s 1:00 BST
9132  {
9133  1935 /*fromYear*/,
9134  1935 /*toYear*/,
9135  4 /*inMonth*/,
9136  7 /*onDayOfWeek*/,
9137  9 /*onDayOfMonth*/,
9138  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9139  480 /*atTimeCode (7200/15)*/,
9140  60 /*deltaMinutes*/,
9141  7 /*letterIndex ("BST")*/,
9142  },
9143  // Rule GB-Eire 1936 1937 - Apr Sun>=16 2:00s 1:00 BST
9144  {
9145  1936 /*fromYear*/,
9146  1937 /*toYear*/,
9147  4 /*inMonth*/,
9148  7 /*onDayOfWeek*/,
9149  16 /*onDayOfMonth*/,
9150  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9151  480 /*atTimeCode (7200/15)*/,
9152  60 /*deltaMinutes*/,
9153  7 /*letterIndex ("BST")*/,
9154  },
9155  // Rule GB-Eire 1938 only - Apr Sun>=9 2:00s 1:00 BST
9156  {
9157  1938 /*fromYear*/,
9158  1938 /*toYear*/,
9159  4 /*inMonth*/,
9160  7 /*onDayOfWeek*/,
9161  9 /*onDayOfMonth*/,
9162  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9163  480 /*atTimeCode (7200/15)*/,
9164  60 /*deltaMinutes*/,
9165  7 /*letterIndex ("BST")*/,
9166  },
9167  // Rule GB-Eire 1939 only - Apr Sun>=16 2:00s 1:00 BST
9168  {
9169  1939 /*fromYear*/,
9170  1939 /*toYear*/,
9171  4 /*inMonth*/,
9172  7 /*onDayOfWeek*/,
9173  16 /*onDayOfMonth*/,
9174  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9175  480 /*atTimeCode (7200/15)*/,
9176  60 /*deltaMinutes*/,
9177  7 /*letterIndex ("BST")*/,
9178  },
9179  // Rule GB-Eire 1939 only - Nov Sun>=16 2:00s 0 GMT
9180  {
9181  1939 /*fromYear*/,
9182  1939 /*toYear*/,
9183  11 /*inMonth*/,
9184  7 /*onDayOfWeek*/,
9185  16 /*onDayOfMonth*/,
9186  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9187  480 /*atTimeCode (7200/15)*/,
9188  0 /*deltaMinutes*/,
9189  17 /*letterIndex ("GMT")*/,
9190  },
9191  // Rule GB-Eire 1940 only - Feb Sun>=23 2:00s 1:00 BST
9192  {
9193  1940 /*fromYear*/,
9194  1940 /*toYear*/,
9195  2 /*inMonth*/,
9196  7 /*onDayOfWeek*/,
9197  23 /*onDayOfMonth*/,
9198  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9199  480 /*atTimeCode (7200/15)*/,
9200  60 /*deltaMinutes*/,
9201  7 /*letterIndex ("BST")*/,
9202  },
9203  // Rule GB-Eire 1941 only - May Sun>=2 1:00s 2:00 BDST
9204  {
9205  1941 /*fromYear*/,
9206  1941 /*toYear*/,
9207  5 /*inMonth*/,
9208  7 /*onDayOfWeek*/,
9209  2 /*onDayOfMonth*/,
9210  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9211  240 /*atTimeCode (3600/15)*/,
9212  120 /*deltaMinutes*/,
9213  6 /*letterIndex ("BDST")*/,
9214  },
9215  // Rule GB-Eire 1941 1943 - Aug Sun>=9 1:00s 1:00 BST
9216  {
9217  1941 /*fromYear*/,
9218  1943 /*toYear*/,
9219  8 /*inMonth*/,
9220  7 /*onDayOfWeek*/,
9221  9 /*onDayOfMonth*/,
9222  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9223  240 /*atTimeCode (3600/15)*/,
9224  60 /*deltaMinutes*/,
9225  7 /*letterIndex ("BST")*/,
9226  },
9227  // Rule GB-Eire 1942 1944 - Apr Sun>=2 1:00s 2:00 BDST
9228  {
9229  1942 /*fromYear*/,
9230  1944 /*toYear*/,
9231  4 /*inMonth*/,
9232  7 /*onDayOfWeek*/,
9233  2 /*onDayOfMonth*/,
9234  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9235  240 /*atTimeCode (3600/15)*/,
9236  120 /*deltaMinutes*/,
9237  6 /*letterIndex ("BDST")*/,
9238  },
9239  // Rule GB-Eire 1944 only - Sep Sun>=16 1:00s 1:00 BST
9240  {
9241  1944 /*fromYear*/,
9242  1944 /*toYear*/,
9243  9 /*inMonth*/,
9244  7 /*onDayOfWeek*/,
9245  16 /*onDayOfMonth*/,
9246  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9247  240 /*atTimeCode (3600/15)*/,
9248  60 /*deltaMinutes*/,
9249  7 /*letterIndex ("BST")*/,
9250  },
9251  // Rule GB-Eire 1945 only - Apr Mon>=2 1:00s 2:00 BDST
9252  {
9253  1945 /*fromYear*/,
9254  1945 /*toYear*/,
9255  4 /*inMonth*/,
9256  1 /*onDayOfWeek*/,
9257  2 /*onDayOfMonth*/,
9258  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9259  240 /*atTimeCode (3600/15)*/,
9260  120 /*deltaMinutes*/,
9261  6 /*letterIndex ("BDST")*/,
9262  },
9263  // Rule GB-Eire 1945 only - Jul Sun>=9 1:00s 1:00 BST
9264  {
9265  1945 /*fromYear*/,
9266  1945 /*toYear*/,
9267  7 /*inMonth*/,
9268  7 /*onDayOfWeek*/,
9269  9 /*onDayOfMonth*/,
9270  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9271  240 /*atTimeCode (3600/15)*/,
9272  60 /*deltaMinutes*/,
9273  7 /*letterIndex ("BST")*/,
9274  },
9275  // Rule GB-Eire 1945 1946 - Oct Sun>=2 2:00s 0 GMT
9276  {
9277  1945 /*fromYear*/,
9278  1946 /*toYear*/,
9279  10 /*inMonth*/,
9280  7 /*onDayOfWeek*/,
9281  2 /*onDayOfMonth*/,
9282  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9283  480 /*atTimeCode (7200/15)*/,
9284  0 /*deltaMinutes*/,
9285  17 /*letterIndex ("GMT")*/,
9286  },
9287  // Rule GB-Eire 1946 only - Apr Sun>=9 2:00s 1:00 BST
9288  {
9289  1946 /*fromYear*/,
9290  1946 /*toYear*/,
9291  4 /*inMonth*/,
9292  7 /*onDayOfWeek*/,
9293  9 /*onDayOfMonth*/,
9294  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9295  480 /*atTimeCode (7200/15)*/,
9296  60 /*deltaMinutes*/,
9297  7 /*letterIndex ("BST")*/,
9298  },
9299  // Rule GB-Eire 1947 only - Mar 16 2:00s 1:00 BST
9300  {
9301  1947 /*fromYear*/,
9302  1947 /*toYear*/,
9303  3 /*inMonth*/,
9304  0 /*onDayOfWeek*/,
9305  16 /*onDayOfMonth*/,
9306  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9307  480 /*atTimeCode (7200/15)*/,
9308  60 /*deltaMinutes*/,
9309  7 /*letterIndex ("BST")*/,
9310  },
9311  // Rule GB-Eire 1947 only - Apr 13 1:00s 2:00 BDST
9312  {
9313  1947 /*fromYear*/,
9314  1947 /*toYear*/,
9315  4 /*inMonth*/,
9316  0 /*onDayOfWeek*/,
9317  13 /*onDayOfMonth*/,
9318  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9319  240 /*atTimeCode (3600/15)*/,
9320  120 /*deltaMinutes*/,
9321  6 /*letterIndex ("BDST")*/,
9322  },
9323  // Rule GB-Eire 1947 only - Aug 10 1:00s 1:00 BST
9324  {
9325  1947 /*fromYear*/,
9326  1947 /*toYear*/,
9327  8 /*inMonth*/,
9328  0 /*onDayOfWeek*/,
9329  10 /*onDayOfMonth*/,
9330  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9331  240 /*atTimeCode (3600/15)*/,
9332  60 /*deltaMinutes*/,
9333  7 /*letterIndex ("BST")*/,
9334  },
9335  // Rule GB-Eire 1947 only - Nov 2 2:00s 0 GMT
9336  {
9337  1947 /*fromYear*/,
9338  1947 /*toYear*/,
9339  11 /*inMonth*/,
9340  0 /*onDayOfWeek*/,
9341  2 /*onDayOfMonth*/,
9342  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9343  480 /*atTimeCode (7200/15)*/,
9344  0 /*deltaMinutes*/,
9345  17 /*letterIndex ("GMT")*/,
9346  },
9347  // Rule GB-Eire 1948 only - Mar 14 2:00s 1:00 BST
9348  {
9349  1948 /*fromYear*/,
9350  1948 /*toYear*/,
9351  3 /*inMonth*/,
9352  0 /*onDayOfWeek*/,
9353  14 /*onDayOfMonth*/,
9354  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9355  480 /*atTimeCode (7200/15)*/,
9356  60 /*deltaMinutes*/,
9357  7 /*letterIndex ("BST")*/,
9358  },
9359  // Rule GB-Eire 1948 only - Oct 31 2:00s 0 GMT
9360  {
9361  1948 /*fromYear*/,
9362  1948 /*toYear*/,
9363  10 /*inMonth*/,
9364  0 /*onDayOfWeek*/,
9365  31 /*onDayOfMonth*/,
9366  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9367  480 /*atTimeCode (7200/15)*/,
9368  0 /*deltaMinutes*/,
9369  17 /*letterIndex ("GMT")*/,
9370  },
9371  // Rule GB-Eire 1949 only - Apr 3 2:00s 1:00 BST
9372  {
9373  1949 /*fromYear*/,
9374  1949 /*toYear*/,
9375  4 /*inMonth*/,
9376  0 /*onDayOfWeek*/,
9377  3 /*onDayOfMonth*/,
9378  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9379  480 /*atTimeCode (7200/15)*/,
9380  60 /*deltaMinutes*/,
9381  7 /*letterIndex ("BST")*/,
9382  },
9383  // Rule GB-Eire 1949 only - Oct 30 2:00s 0 GMT
9384  {
9385  1949 /*fromYear*/,
9386  1949 /*toYear*/,
9387  10 /*inMonth*/,
9388  0 /*onDayOfWeek*/,
9389  30 /*onDayOfMonth*/,
9390  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9391  480 /*atTimeCode (7200/15)*/,
9392  0 /*deltaMinutes*/,
9393  17 /*letterIndex ("GMT")*/,
9394  },
9395  // Rule GB-Eire 1950 1952 - Apr Sun>=14 2:00s 1:00 BST
9396  {
9397  1950 /*fromYear*/,
9398  1952 /*toYear*/,
9399  4 /*inMonth*/,
9400  7 /*onDayOfWeek*/,
9401  14 /*onDayOfMonth*/,
9402  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9403  480 /*atTimeCode (7200/15)*/,
9404  60 /*deltaMinutes*/,
9405  7 /*letterIndex ("BST")*/,
9406  },
9407  // Rule GB-Eire 1950 1952 - Oct Sun>=21 2:00s 0 GMT
9408  {
9409  1950 /*fromYear*/,
9410  1952 /*toYear*/,
9411  10 /*inMonth*/,
9412  7 /*onDayOfWeek*/,
9413  21 /*onDayOfMonth*/,
9414  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9415  480 /*atTimeCode (7200/15)*/,
9416  0 /*deltaMinutes*/,
9417  17 /*letterIndex ("GMT")*/,
9418  },
9419  // Rule GB-Eire 1953 only - Apr Sun>=16 2:00s 1:00 BST
9420  {
9421  1953 /*fromYear*/,
9422  1953 /*toYear*/,
9423  4 /*inMonth*/,
9424  7 /*onDayOfWeek*/,
9425  16 /*onDayOfMonth*/,
9426  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9427  480 /*atTimeCode (7200/15)*/,
9428  60 /*deltaMinutes*/,
9429  7 /*letterIndex ("BST")*/,
9430  },
9431  // Rule GB-Eire 1953 1960 - Oct Sun>=2 2:00s 0 GMT
9432  {
9433  1953 /*fromYear*/,
9434  1960 /*toYear*/,
9435  10 /*inMonth*/,
9436  7 /*onDayOfWeek*/,
9437  2 /*onDayOfMonth*/,
9438  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9439  480 /*atTimeCode (7200/15)*/,
9440  0 /*deltaMinutes*/,
9441  17 /*letterIndex ("GMT")*/,
9442  },
9443  // Rule GB-Eire 1954 only - Apr Sun>=9 2:00s 1:00 BST
9444  {
9445  1954 /*fromYear*/,
9446  1954 /*toYear*/,
9447  4 /*inMonth*/,
9448  7 /*onDayOfWeek*/,
9449  9 /*onDayOfMonth*/,
9450  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9451  480 /*atTimeCode (7200/15)*/,
9452  60 /*deltaMinutes*/,
9453  7 /*letterIndex ("BST")*/,
9454  },
9455  // Rule GB-Eire 1955 1956 - Apr Sun>=16 2:00s 1:00 BST
9456  {
9457  1955 /*fromYear*/,
9458  1956 /*toYear*/,
9459  4 /*inMonth*/,
9460  7 /*onDayOfWeek*/,
9461  16 /*onDayOfMonth*/,
9462  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9463  480 /*atTimeCode (7200/15)*/,
9464  60 /*deltaMinutes*/,
9465  7 /*letterIndex ("BST")*/,
9466  },
9467  // Rule GB-Eire 1957 only - Apr Sun>=9 2:00s 1:00 BST
9468  {
9469  1957 /*fromYear*/,
9470  1957 /*toYear*/,
9471  4 /*inMonth*/,
9472  7 /*onDayOfWeek*/,
9473  9 /*onDayOfMonth*/,
9474  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9475  480 /*atTimeCode (7200/15)*/,
9476  60 /*deltaMinutes*/,
9477  7 /*letterIndex ("BST")*/,
9478  },
9479  // Rule GB-Eire 1958 1959 - Apr Sun>=16 2:00s 1:00 BST
9480  {
9481  1958 /*fromYear*/,
9482  1959 /*toYear*/,
9483  4 /*inMonth*/,
9484  7 /*onDayOfWeek*/,
9485  16 /*onDayOfMonth*/,
9486  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9487  480 /*atTimeCode (7200/15)*/,
9488  60 /*deltaMinutes*/,
9489  7 /*letterIndex ("BST")*/,
9490  },
9491  // Rule GB-Eire 1960 only - Apr Sun>=9 2:00s 1:00 BST
9492  {
9493  1960 /*fromYear*/,
9494  1960 /*toYear*/,
9495  4 /*inMonth*/,
9496  7 /*onDayOfWeek*/,
9497  9 /*onDayOfMonth*/,
9498  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9499  480 /*atTimeCode (7200/15)*/,
9500  60 /*deltaMinutes*/,
9501  7 /*letterIndex ("BST")*/,
9502  },
9503  // Rule GB-Eire 1961 1963 - Mar lastSun 2:00s 1:00 BST
9504  {
9505  1961 /*fromYear*/,
9506  1963 /*toYear*/,
9507  3 /*inMonth*/,
9508  7 /*onDayOfWeek*/,
9509  0 /*onDayOfMonth*/,
9510  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9511  480 /*atTimeCode (7200/15)*/,
9512  60 /*deltaMinutes*/,
9513  7 /*letterIndex ("BST")*/,
9514  },
9515  // Rule GB-Eire 1961 1968 - Oct Sun>=23 2:00s 0 GMT
9516  {
9517  1961 /*fromYear*/,
9518  1968 /*toYear*/,
9519  10 /*inMonth*/,
9520  7 /*onDayOfWeek*/,
9521  23 /*onDayOfMonth*/,
9522  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9523  480 /*atTimeCode (7200/15)*/,
9524  0 /*deltaMinutes*/,
9525  17 /*letterIndex ("GMT")*/,
9526  },
9527  // Rule GB-Eire 1964 1967 - Mar Sun>=19 2:00s 1:00 BST
9528  {
9529  1964 /*fromYear*/,
9530  1967 /*toYear*/,
9531  3 /*inMonth*/,
9532  7 /*onDayOfWeek*/,
9533  19 /*onDayOfMonth*/,
9534  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9535  480 /*atTimeCode (7200/15)*/,
9536  60 /*deltaMinutes*/,
9537  7 /*letterIndex ("BST")*/,
9538  },
9539  // Rule GB-Eire 1968 only - Feb 18 2:00s 1:00 BST
9540  {
9541  1968 /*fromYear*/,
9542  1968 /*toYear*/,
9543  2 /*inMonth*/,
9544  0 /*onDayOfWeek*/,
9545  18 /*onDayOfMonth*/,
9546  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9547  480 /*atTimeCode (7200/15)*/,
9548  60 /*deltaMinutes*/,
9549  7 /*letterIndex ("BST")*/,
9550  },
9551  // Rule GB-Eire 1972 1980 - Mar Sun>=16 2:00s 1:00 BST
9552  {
9553  1972 /*fromYear*/,
9554  1980 /*toYear*/,
9555  3 /*inMonth*/,
9556  7 /*onDayOfWeek*/,
9557  16 /*onDayOfMonth*/,
9558  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9559  480 /*atTimeCode (7200/15)*/,
9560  60 /*deltaMinutes*/,
9561  7 /*letterIndex ("BST")*/,
9562  },
9563  // Rule GB-Eire 1972 1980 - Oct Sun>=23 2:00s 0 GMT
9564  {
9565  1972 /*fromYear*/,
9566  1980 /*toYear*/,
9567  10 /*inMonth*/,
9568  7 /*onDayOfWeek*/,
9569  23 /*onDayOfMonth*/,
9570  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9571  480 /*atTimeCode (7200/15)*/,
9572  0 /*deltaMinutes*/,
9573  17 /*letterIndex ("GMT")*/,
9574  },
9575  // Rule GB-Eire 1981 1995 - Mar lastSun 1:00u 1:00 BST
9576  {
9577  1981 /*fromYear*/,
9578  1995 /*toYear*/,
9579  3 /*inMonth*/,
9580  7 /*onDayOfWeek*/,
9581  0 /*onDayOfMonth*/,
9582  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
9583  240 /*atTimeCode (3600/15)*/,
9584  60 /*deltaMinutes*/,
9585  7 /*letterIndex ("BST")*/,
9586  },
9587  // Rule GB-Eire 1981 1989 - Oct Sun>=23 1:00u 0 GMT
9588  {
9589  1981 /*fromYear*/,
9590  1989 /*toYear*/,
9591  10 /*inMonth*/,
9592  7 /*onDayOfWeek*/,
9593  23 /*onDayOfMonth*/,
9594  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
9595  240 /*atTimeCode (3600/15)*/,
9596  0 /*deltaMinutes*/,
9597  17 /*letterIndex ("GMT")*/,
9598  },
9599  // Rule GB-Eire 1990 1995 - Oct Sun>=22 1:00u 0 GMT
9600  {
9601  1990 /*fromYear*/,
9602  1995 /*toYear*/,
9603  10 /*inMonth*/,
9604  7 /*onDayOfWeek*/,
9605  22 /*onDayOfMonth*/,
9606  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
9607  240 /*atTimeCode (3600/15)*/,
9608  0 /*deltaMinutes*/,
9609  17 /*letterIndex ("GMT")*/,
9610  },
9611 
9612 };
9613 
9614 const complete::Info::ZonePolicy kZonePolicyGB_Eire ACE_TIME_PROGMEM = {
9615  kZoneRulesGB_Eire /*rules*/,
9616  66 /*numRules*/,
9617 };
9618 
9619 //---------------------------------------------------------------------------
9620 // Policy name: Germany
9621 // Rules: 9
9622 //---------------------------------------------------------------------------
9623 
9624 static const complete::Info::ZoneRule kZoneRulesGermany[] ACE_TIME_PROGMEM = {
9625  // Anchor: Rule Germany 1946 only - Oct 7 2:00s 0 -
9626  {
9627  -32767 /*fromYear*/,
9628  -32767 /*toYear*/,
9629  1 /*inMonth*/,
9630  0 /*onDayOfWeek*/,
9631  1 /*onDayOfMonth*/,
9632  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9633  0 /*atTimeCode (0/15)*/,
9634  0 /*deltaMinutes*/,
9635  0 /*letterIndex ("")*/,
9636  },
9637  // Rule Germany 1946 only - Apr 14 2:00s 1:00 S
9638  {
9639  1946 /*fromYear*/,
9640  1946 /*toYear*/,
9641  4 /*inMonth*/,
9642  0 /*onDayOfWeek*/,
9643  14 /*onDayOfMonth*/,
9644  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9645  480 /*atTimeCode (7200/15)*/,
9646  60 /*deltaMinutes*/,
9647  25 /*letterIndex ("S")*/,
9648  },
9649  // Rule Germany 1946 only - Oct 7 2:00s 0 -
9650  {
9651  1946 /*fromYear*/,
9652  1946 /*toYear*/,
9653  10 /*inMonth*/,
9654  0 /*onDayOfWeek*/,
9655  7 /*onDayOfMonth*/,
9656  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9657  480 /*atTimeCode (7200/15)*/,
9658  0 /*deltaMinutes*/,
9659  0 /*letterIndex ("")*/,
9660  },
9661  // Rule Germany 1947 1949 - Oct Sun>=1 2:00s 0 -
9662  {
9663  1947 /*fromYear*/,
9664  1949 /*toYear*/,
9665  10 /*inMonth*/,
9666  7 /*onDayOfWeek*/,
9667  1 /*onDayOfMonth*/,
9668  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9669  480 /*atTimeCode (7200/15)*/,
9670  0 /*deltaMinutes*/,
9671  0 /*letterIndex ("")*/,
9672  },
9673  // Rule Germany 1947 only - Apr 6 3:00s 1:00 S
9674  {
9675  1947 /*fromYear*/,
9676  1947 /*toYear*/,
9677  4 /*inMonth*/,
9678  0 /*onDayOfWeek*/,
9679  6 /*onDayOfMonth*/,
9680  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9681  720 /*atTimeCode (10800/15)*/,
9682  60 /*deltaMinutes*/,
9683  25 /*letterIndex ("S")*/,
9684  },
9685  // Rule Germany 1947 only - May 11 2:00s 2:00 M
9686  {
9687  1947 /*fromYear*/,
9688  1947 /*toYear*/,
9689  5 /*inMonth*/,
9690  0 /*onDayOfWeek*/,
9691  11 /*onDayOfMonth*/,
9692  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9693  480 /*atTimeCode (7200/15)*/,
9694  120 /*deltaMinutes*/,
9695  18 /*letterIndex ("M")*/,
9696  },
9697  // Rule Germany 1947 only - Jun 29 3:00 1:00 S
9698  {
9699  1947 /*fromYear*/,
9700  1947 /*toYear*/,
9701  6 /*inMonth*/,
9702  0 /*onDayOfWeek*/,
9703  29 /*onDayOfMonth*/,
9704  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9705  720 /*atTimeCode (10800/15)*/,
9706  60 /*deltaMinutes*/,
9707  25 /*letterIndex ("S")*/,
9708  },
9709  // Rule Germany 1948 only - Apr 18 2:00s 1:00 S
9710  {
9711  1948 /*fromYear*/,
9712  1948 /*toYear*/,
9713  4 /*inMonth*/,
9714  0 /*onDayOfWeek*/,
9715  18 /*onDayOfMonth*/,
9716  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9717  480 /*atTimeCode (7200/15)*/,
9718  60 /*deltaMinutes*/,
9719  25 /*letterIndex ("S")*/,
9720  },
9721  // Rule Germany 1949 only - Apr 10 2:00s 1:00 S
9722  {
9723  1949 /*fromYear*/,
9724  1949 /*toYear*/,
9725  4 /*inMonth*/,
9726  0 /*onDayOfWeek*/,
9727  10 /*onDayOfMonth*/,
9728  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9729  480 /*atTimeCode (7200/15)*/,
9730  60 /*deltaMinutes*/,
9731  25 /*letterIndex ("S")*/,
9732  },
9733 
9734 };
9735 
9736 const complete::Info::ZonePolicy kZonePolicyGermany ACE_TIME_PROGMEM = {
9737  kZoneRulesGermany /*rules*/,
9738  9 /*numRules*/,
9739 };
9740 
9741 //---------------------------------------------------------------------------
9742 // Policy name: Greece
9743 // Rules: 20
9744 //---------------------------------------------------------------------------
9745 
9746 static const complete::Info::ZoneRule kZoneRulesGreece[] ACE_TIME_PROGMEM = {
9747  // Anchor: Rule Greece 1932 only - Sep 1 0:00 0 -
9748  {
9749  -32767 /*fromYear*/,
9750  -32767 /*toYear*/,
9751  1 /*inMonth*/,
9752  0 /*onDayOfWeek*/,
9753  1 /*onDayOfMonth*/,
9754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9755  0 /*atTimeCode (0/15)*/,
9756  0 /*deltaMinutes*/,
9757  0 /*letterIndex ("")*/,
9758  },
9759  // Rule Greece 1932 only - Jul 7 0:00 1:00 S
9760  {
9761  1932 /*fromYear*/,
9762  1932 /*toYear*/,
9763  7 /*inMonth*/,
9764  0 /*onDayOfWeek*/,
9765  7 /*onDayOfMonth*/,
9766  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9767  0 /*atTimeCode (0/15)*/,
9768  60 /*deltaMinutes*/,
9769  25 /*letterIndex ("S")*/,
9770  },
9771  // Rule Greece 1932 only - Sep 1 0:00 0 -
9772  {
9773  1932 /*fromYear*/,
9774  1932 /*toYear*/,
9775  9 /*inMonth*/,
9776  0 /*onDayOfWeek*/,
9777  1 /*onDayOfMonth*/,
9778  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9779  0 /*atTimeCode (0/15)*/,
9780  0 /*deltaMinutes*/,
9781  0 /*letterIndex ("")*/,
9782  },
9783  // Rule Greece 1941 only - Apr 7 0:00 1:00 S
9784  {
9785  1941 /*fromYear*/,
9786  1941 /*toYear*/,
9787  4 /*inMonth*/,
9788  0 /*onDayOfWeek*/,
9789  7 /*onDayOfMonth*/,
9790  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9791  0 /*atTimeCode (0/15)*/,
9792  60 /*deltaMinutes*/,
9793  25 /*letterIndex ("S")*/,
9794  },
9795  // Rule Greece 1942 only - Nov 2 3:00 0 -
9796  {
9797  1942 /*fromYear*/,
9798  1942 /*toYear*/,
9799  11 /*inMonth*/,
9800  0 /*onDayOfWeek*/,
9801  2 /*onDayOfMonth*/,
9802  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9803  720 /*atTimeCode (10800/15)*/,
9804  0 /*deltaMinutes*/,
9805  0 /*letterIndex ("")*/,
9806  },
9807  // Rule Greece 1943 only - Mar 30 0:00 1:00 S
9808  {
9809  1943 /*fromYear*/,
9810  1943 /*toYear*/,
9811  3 /*inMonth*/,
9812  0 /*onDayOfWeek*/,
9813  30 /*onDayOfMonth*/,
9814  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9815  0 /*atTimeCode (0/15)*/,
9816  60 /*deltaMinutes*/,
9817  25 /*letterIndex ("S")*/,
9818  },
9819  // Rule Greece 1943 only - Oct 4 0:00 0 -
9820  {
9821  1943 /*fromYear*/,
9822  1943 /*toYear*/,
9823  10 /*inMonth*/,
9824  0 /*onDayOfWeek*/,
9825  4 /*onDayOfMonth*/,
9826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9827  0 /*atTimeCode (0/15)*/,
9828  0 /*deltaMinutes*/,
9829  0 /*letterIndex ("")*/,
9830  },
9831  // Rule Greece 1952 only - Jul 1 0:00 1:00 S
9832  {
9833  1952 /*fromYear*/,
9834  1952 /*toYear*/,
9835  7 /*inMonth*/,
9836  0 /*onDayOfWeek*/,
9837  1 /*onDayOfMonth*/,
9838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9839  0 /*atTimeCode (0/15)*/,
9840  60 /*deltaMinutes*/,
9841  25 /*letterIndex ("S")*/,
9842  },
9843  // Rule Greece 1952 only - Nov 2 0:00 0 -
9844  {
9845  1952 /*fromYear*/,
9846  1952 /*toYear*/,
9847  11 /*inMonth*/,
9848  0 /*onDayOfWeek*/,
9849  2 /*onDayOfMonth*/,
9850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9851  0 /*atTimeCode (0/15)*/,
9852  0 /*deltaMinutes*/,
9853  0 /*letterIndex ("")*/,
9854  },
9855  // Rule Greece 1975 only - Apr 12 0:00s 1:00 S
9856  {
9857  1975 /*fromYear*/,
9858  1975 /*toYear*/,
9859  4 /*inMonth*/,
9860  0 /*onDayOfWeek*/,
9861  12 /*onDayOfMonth*/,
9862  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9863  0 /*atTimeCode (0/15)*/,
9864  60 /*deltaMinutes*/,
9865  25 /*letterIndex ("S")*/,
9866  },
9867  // Rule Greece 1975 only - Nov 26 0:00s 0 -
9868  {
9869  1975 /*fromYear*/,
9870  1975 /*toYear*/,
9871  11 /*inMonth*/,
9872  0 /*onDayOfWeek*/,
9873  26 /*onDayOfMonth*/,
9874  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9875  0 /*atTimeCode (0/15)*/,
9876  0 /*deltaMinutes*/,
9877  0 /*letterIndex ("")*/,
9878  },
9879  // Rule Greece 1976 only - Apr 11 2:00s 1:00 S
9880  {
9881  1976 /*fromYear*/,
9882  1976 /*toYear*/,
9883  4 /*inMonth*/,
9884  0 /*onDayOfWeek*/,
9885  11 /*onDayOfMonth*/,
9886  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9887  480 /*atTimeCode (7200/15)*/,
9888  60 /*deltaMinutes*/,
9889  25 /*letterIndex ("S")*/,
9890  },
9891  // Rule Greece 1976 only - Oct 10 2:00s 0 -
9892  {
9893  1976 /*fromYear*/,
9894  1976 /*toYear*/,
9895  10 /*inMonth*/,
9896  0 /*onDayOfWeek*/,
9897  10 /*onDayOfMonth*/,
9898  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9899  480 /*atTimeCode (7200/15)*/,
9900  0 /*deltaMinutes*/,
9901  0 /*letterIndex ("")*/,
9902  },
9903  // Rule Greece 1977 1978 - Apr Sun>=1 2:00s 1:00 S
9904  {
9905  1977 /*fromYear*/,
9906  1978 /*toYear*/,
9907  4 /*inMonth*/,
9908  7 /*onDayOfWeek*/,
9909  1 /*onDayOfMonth*/,
9910  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9911  480 /*atTimeCode (7200/15)*/,
9912  60 /*deltaMinutes*/,
9913  25 /*letterIndex ("S")*/,
9914  },
9915  // Rule Greece 1977 only - Sep 26 2:00s 0 -
9916  {
9917  1977 /*fromYear*/,
9918  1977 /*toYear*/,
9919  9 /*inMonth*/,
9920  0 /*onDayOfWeek*/,
9921  26 /*onDayOfMonth*/,
9922  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
9923  480 /*atTimeCode (7200/15)*/,
9924  0 /*deltaMinutes*/,
9925  0 /*letterIndex ("")*/,
9926  },
9927  // Rule Greece 1978 only - Sep 24 4:00 0 -
9928  {
9929  1978 /*fromYear*/,
9930  1978 /*toYear*/,
9931  9 /*inMonth*/,
9932  0 /*onDayOfWeek*/,
9933  24 /*onDayOfMonth*/,
9934  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9935  960 /*atTimeCode (14400/15)*/,
9936  0 /*deltaMinutes*/,
9937  0 /*letterIndex ("")*/,
9938  },
9939  // Rule Greece 1979 only - Apr 1 9:00 1:00 S
9940  {
9941  1979 /*fromYear*/,
9942  1979 /*toYear*/,
9943  4 /*inMonth*/,
9944  0 /*onDayOfWeek*/,
9945  1 /*onDayOfMonth*/,
9946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9947  2160 /*atTimeCode (32400/15)*/,
9948  60 /*deltaMinutes*/,
9949  25 /*letterIndex ("S")*/,
9950  },
9951  // Rule Greece 1979 only - Sep 29 2:00 0 -
9952  {
9953  1979 /*fromYear*/,
9954  1979 /*toYear*/,
9955  9 /*inMonth*/,
9956  0 /*onDayOfWeek*/,
9957  29 /*onDayOfMonth*/,
9958  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9959  480 /*atTimeCode (7200/15)*/,
9960  0 /*deltaMinutes*/,
9961  0 /*letterIndex ("")*/,
9962  },
9963  // Rule Greece 1980 only - Apr 1 0:00 1:00 S
9964  {
9965  1980 /*fromYear*/,
9966  1980 /*toYear*/,
9967  4 /*inMonth*/,
9968  0 /*onDayOfWeek*/,
9969  1 /*onDayOfMonth*/,
9970  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9971  0 /*atTimeCode (0/15)*/,
9972  60 /*deltaMinutes*/,
9973  25 /*letterIndex ("S")*/,
9974  },
9975  // Rule Greece 1980 only - Sep 28 0:00 0 -
9976  {
9977  1980 /*fromYear*/,
9978  1980 /*toYear*/,
9979  9 /*inMonth*/,
9980  0 /*onDayOfWeek*/,
9981  28 /*onDayOfMonth*/,
9982  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
9983  0 /*atTimeCode (0/15)*/,
9984  0 /*deltaMinutes*/,
9985  0 /*letterIndex ("")*/,
9986  },
9987 
9988 };
9989 
9990 const complete::Info::ZonePolicy kZonePolicyGreece ACE_TIME_PROGMEM = {
9991  kZoneRulesGreece /*rules*/,
9992  20 /*numRules*/,
9993 };
9994 
9995 //---------------------------------------------------------------------------
9996 // Policy name: Guam
9997 // Rules: 15
9998 //---------------------------------------------------------------------------
9999 
10000 static const complete::Info::ZoneRule kZoneRulesGuam[] ACE_TIME_PROGMEM = {
10001  // Anchor: Rule Guam 1961 only - Jan 29 2:00 0 S
10002  {
10003  -32767 /*fromYear*/,
10004  -32767 /*toYear*/,
10005  1 /*inMonth*/,
10006  0 /*onDayOfWeek*/,
10007  1 /*onDayOfMonth*/,
10008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10009  0 /*atTimeCode (0/15)*/,
10010  0 /*deltaMinutes*/,
10011  25 /*letterIndex ("S")*/,
10012  },
10013  // Rule Guam 1959 only - Jun 27 2:00 1:00 D
10014  {
10015  1959 /*fromYear*/,
10016  1959 /*toYear*/,
10017  6 /*inMonth*/,
10018  0 /*onDayOfWeek*/,
10019  27 /*onDayOfMonth*/,
10020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10021  480 /*atTimeCode (7200/15)*/,
10022  60 /*deltaMinutes*/,
10023  13 /*letterIndex ("D")*/,
10024  },
10025  // Rule Guam 1961 only - Jan 29 2:00 0 S
10026  {
10027  1961 /*fromYear*/,
10028  1961 /*toYear*/,
10029  1 /*inMonth*/,
10030  0 /*onDayOfWeek*/,
10031  29 /*onDayOfMonth*/,
10032  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10033  480 /*atTimeCode (7200/15)*/,
10034  0 /*deltaMinutes*/,
10035  25 /*letterIndex ("S")*/,
10036  },
10037  // Rule Guam 1967 only - Sep 1 2:00 1:00 D
10038  {
10039  1967 /*fromYear*/,
10040  1967 /*toYear*/,
10041  9 /*inMonth*/,
10042  0 /*onDayOfWeek*/,
10043  1 /*onDayOfMonth*/,
10044  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10045  480 /*atTimeCode (7200/15)*/,
10046  60 /*deltaMinutes*/,
10047  13 /*letterIndex ("D")*/,
10048  },
10049  // Rule Guam 1969 only - Jan 26 0:01 0 S
10050  {
10051  1969 /*fromYear*/,
10052  1969 /*toYear*/,
10053  1 /*inMonth*/,
10054  0 /*onDayOfWeek*/,
10055  26 /*onDayOfMonth*/,
10056  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10057  4 /*atTimeCode (60/15)*/,
10058  0 /*deltaMinutes*/,
10059  25 /*letterIndex ("S")*/,
10060  },
10061  // Rule Guam 1969 only - Jun 22 2:00 1:00 D
10062  {
10063  1969 /*fromYear*/,
10064  1969 /*toYear*/,
10065  6 /*inMonth*/,
10066  0 /*onDayOfWeek*/,
10067  22 /*onDayOfMonth*/,
10068  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10069  480 /*atTimeCode (7200/15)*/,
10070  60 /*deltaMinutes*/,
10071  13 /*letterIndex ("D")*/,
10072  },
10073  // Rule Guam 1969 only - Aug 31 2:00 0 S
10074  {
10075  1969 /*fromYear*/,
10076  1969 /*toYear*/,
10077  8 /*inMonth*/,
10078  0 /*onDayOfWeek*/,
10079  31 /*onDayOfMonth*/,
10080  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10081  480 /*atTimeCode (7200/15)*/,
10082  0 /*deltaMinutes*/,
10083  25 /*letterIndex ("S")*/,
10084  },
10085  // Rule Guam 1970 1971 - Apr lastSun 2:00 1:00 D
10086  {
10087  1970 /*fromYear*/,
10088  1971 /*toYear*/,
10089  4 /*inMonth*/,
10090  7 /*onDayOfWeek*/,
10091  0 /*onDayOfMonth*/,
10092  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10093  480 /*atTimeCode (7200/15)*/,
10094  60 /*deltaMinutes*/,
10095  13 /*letterIndex ("D")*/,
10096  },
10097  // Rule Guam 1970 1971 - Sep Sun>=1 2:00 0 S
10098  {
10099  1970 /*fromYear*/,
10100  1971 /*toYear*/,
10101  9 /*inMonth*/,
10102  7 /*onDayOfWeek*/,
10103  1 /*onDayOfMonth*/,
10104  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10105  480 /*atTimeCode (7200/15)*/,
10106  0 /*deltaMinutes*/,
10107  25 /*letterIndex ("S")*/,
10108  },
10109  // Rule Guam 1973 only - Dec 16 2:00 1:00 D
10110  {
10111  1973 /*fromYear*/,
10112  1973 /*toYear*/,
10113  12 /*inMonth*/,
10114  0 /*onDayOfWeek*/,
10115  16 /*onDayOfMonth*/,
10116  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10117  480 /*atTimeCode (7200/15)*/,
10118  60 /*deltaMinutes*/,
10119  13 /*letterIndex ("D")*/,
10120  },
10121  // Rule Guam 1974 only - Feb 24 2:00 0 S
10122  {
10123  1974 /*fromYear*/,
10124  1974 /*toYear*/,
10125  2 /*inMonth*/,
10126  0 /*onDayOfWeek*/,
10127  24 /*onDayOfMonth*/,
10128  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10129  480 /*atTimeCode (7200/15)*/,
10130  0 /*deltaMinutes*/,
10131  25 /*letterIndex ("S")*/,
10132  },
10133  // Rule Guam 1976 only - May 26 2:00 1:00 D
10134  {
10135  1976 /*fromYear*/,
10136  1976 /*toYear*/,
10137  5 /*inMonth*/,
10138  0 /*onDayOfWeek*/,
10139  26 /*onDayOfMonth*/,
10140  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10141  480 /*atTimeCode (7200/15)*/,
10142  60 /*deltaMinutes*/,
10143  13 /*letterIndex ("D")*/,
10144  },
10145  // Rule Guam 1976 only - Aug 22 2:01 0 S
10146  {
10147  1976 /*fromYear*/,
10148  1976 /*toYear*/,
10149  8 /*inMonth*/,
10150  0 /*onDayOfWeek*/,
10151  22 /*onDayOfMonth*/,
10152  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10153  484 /*atTimeCode (7260/15)*/,
10154  0 /*deltaMinutes*/,
10155  25 /*letterIndex ("S")*/,
10156  },
10157  // Rule Guam 1977 only - Apr 24 2:00 1:00 D
10158  {
10159  1977 /*fromYear*/,
10160  1977 /*toYear*/,
10161  4 /*inMonth*/,
10162  0 /*onDayOfWeek*/,
10163  24 /*onDayOfMonth*/,
10164  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10165  480 /*atTimeCode (7200/15)*/,
10166  60 /*deltaMinutes*/,
10167  13 /*letterIndex ("D")*/,
10168  },
10169  // Rule Guam 1977 only - Aug 28 2:00 0 S
10170  {
10171  1977 /*fromYear*/,
10172  1977 /*toYear*/,
10173  8 /*inMonth*/,
10174  0 /*onDayOfWeek*/,
10175  28 /*onDayOfMonth*/,
10176  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10177  480 /*atTimeCode (7200/15)*/,
10178  0 /*deltaMinutes*/,
10179  25 /*letterIndex ("S")*/,
10180  },
10181 
10182 };
10183 
10184 const complete::Info::ZonePolicy kZonePolicyGuam ACE_TIME_PROGMEM = {
10185  kZoneRulesGuam /*rules*/,
10186  15 /*numRules*/,
10187 };
10188 
10189 //---------------------------------------------------------------------------
10190 // Policy name: Guat
10191 // Rules: 9
10192 //---------------------------------------------------------------------------
10193 
10194 static const complete::Info::ZoneRule kZoneRulesGuat[] ACE_TIME_PROGMEM = {
10195  // Anchor: Rule Guat 1974 only - Feb 24 0:00 0 S
10196  {
10197  -32767 /*fromYear*/,
10198  -32767 /*toYear*/,
10199  1 /*inMonth*/,
10200  0 /*onDayOfWeek*/,
10201  1 /*onDayOfMonth*/,
10202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10203  0 /*atTimeCode (0/15)*/,
10204  0 /*deltaMinutes*/,
10205  25 /*letterIndex ("S")*/,
10206  },
10207  // Rule Guat 1973 only - Nov 25 0:00 1:00 D
10208  {
10209  1973 /*fromYear*/,
10210  1973 /*toYear*/,
10211  11 /*inMonth*/,
10212  0 /*onDayOfWeek*/,
10213  25 /*onDayOfMonth*/,
10214  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10215  0 /*atTimeCode (0/15)*/,
10216  60 /*deltaMinutes*/,
10217  13 /*letterIndex ("D")*/,
10218  },
10219  // Rule Guat 1974 only - Feb 24 0:00 0 S
10220  {
10221  1974 /*fromYear*/,
10222  1974 /*toYear*/,
10223  2 /*inMonth*/,
10224  0 /*onDayOfWeek*/,
10225  24 /*onDayOfMonth*/,
10226  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10227  0 /*atTimeCode (0/15)*/,
10228  0 /*deltaMinutes*/,
10229  25 /*letterIndex ("S")*/,
10230  },
10231  // Rule Guat 1983 only - May 21 0:00 1:00 D
10232  {
10233  1983 /*fromYear*/,
10234  1983 /*toYear*/,
10235  5 /*inMonth*/,
10236  0 /*onDayOfWeek*/,
10237  21 /*onDayOfMonth*/,
10238  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10239  0 /*atTimeCode (0/15)*/,
10240  60 /*deltaMinutes*/,
10241  13 /*letterIndex ("D")*/,
10242  },
10243  // Rule Guat 1983 only - Sep 22 0:00 0 S
10244  {
10245  1983 /*fromYear*/,
10246  1983 /*toYear*/,
10247  9 /*inMonth*/,
10248  0 /*onDayOfWeek*/,
10249  22 /*onDayOfMonth*/,
10250  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10251  0 /*atTimeCode (0/15)*/,
10252  0 /*deltaMinutes*/,
10253  25 /*letterIndex ("S")*/,
10254  },
10255  // Rule Guat 1991 only - Mar 23 0:00 1:00 D
10256  {
10257  1991 /*fromYear*/,
10258  1991 /*toYear*/,
10259  3 /*inMonth*/,
10260  0 /*onDayOfWeek*/,
10261  23 /*onDayOfMonth*/,
10262  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10263  0 /*atTimeCode (0/15)*/,
10264  60 /*deltaMinutes*/,
10265  13 /*letterIndex ("D")*/,
10266  },
10267  // Rule Guat 1991 only - Sep 7 0:00 0 S
10268  {
10269  1991 /*fromYear*/,
10270  1991 /*toYear*/,
10271  9 /*inMonth*/,
10272  0 /*onDayOfWeek*/,
10273  7 /*onDayOfMonth*/,
10274  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10275  0 /*atTimeCode (0/15)*/,
10276  0 /*deltaMinutes*/,
10277  25 /*letterIndex ("S")*/,
10278  },
10279  // Rule Guat 2006 only - Apr 30 0:00 1:00 D
10280  {
10281  2006 /*fromYear*/,
10282  2006 /*toYear*/,
10283  4 /*inMonth*/,
10284  0 /*onDayOfWeek*/,
10285  30 /*onDayOfMonth*/,
10286  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10287  0 /*atTimeCode (0/15)*/,
10288  60 /*deltaMinutes*/,
10289  13 /*letterIndex ("D")*/,
10290  },
10291  // Rule Guat 2006 only - Oct 1 0:00 0 S
10292  {
10293  2006 /*fromYear*/,
10294  2006 /*toYear*/,
10295  10 /*inMonth*/,
10296  0 /*onDayOfWeek*/,
10297  1 /*onDayOfMonth*/,
10298  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10299  0 /*atTimeCode (0/15)*/,
10300  0 /*deltaMinutes*/,
10301  25 /*letterIndex ("S")*/,
10302  },
10303 
10304 };
10305 
10306 const complete::Info::ZonePolicy kZonePolicyGuat ACE_TIME_PROGMEM = {
10307  kZoneRulesGuat /*rules*/,
10308  9 /*numRules*/,
10309 };
10310 
10311 //---------------------------------------------------------------------------
10312 // Policy name: HK
10313 // Rules: 15
10314 //---------------------------------------------------------------------------
10315 
10316 static const complete::Info::ZoneRule kZoneRulesHK[] ACE_TIME_PROGMEM = {
10317  // Anchor: Rule HK 1946 only - Dec 1 3:30s 0 -
10318  {
10319  -32767 /*fromYear*/,
10320  -32767 /*toYear*/,
10321  1 /*inMonth*/,
10322  0 /*onDayOfWeek*/,
10323  1 /*onDayOfMonth*/,
10324  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10325  0 /*atTimeCode (0/15)*/,
10326  0 /*deltaMinutes*/,
10327  0 /*letterIndex ("")*/,
10328  },
10329  // Rule HK 1946 only - Apr 21 0:00 1:00 S
10330  {
10331  1946 /*fromYear*/,
10332  1946 /*toYear*/,
10333  4 /*inMonth*/,
10334  0 /*onDayOfWeek*/,
10335  21 /*onDayOfMonth*/,
10336  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10337  0 /*atTimeCode (0/15)*/,
10338  60 /*deltaMinutes*/,
10339  25 /*letterIndex ("S")*/,
10340  },
10341  // Rule HK 1946 only - Dec 1 3:30s 0 -
10342  {
10343  1946 /*fromYear*/,
10344  1946 /*toYear*/,
10345  12 /*inMonth*/,
10346  0 /*onDayOfWeek*/,
10347  1 /*onDayOfMonth*/,
10348  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
10349  840 /*atTimeCode (12600/15)*/,
10350  0 /*deltaMinutes*/,
10351  0 /*letterIndex ("")*/,
10352  },
10353  // Rule HK 1947 only - Apr 13 3:30s 1:00 S
10354  {
10355  1947 /*fromYear*/,
10356  1947 /*toYear*/,
10357  4 /*inMonth*/,
10358  0 /*onDayOfWeek*/,
10359  13 /*onDayOfMonth*/,
10360  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
10361  840 /*atTimeCode (12600/15)*/,
10362  60 /*deltaMinutes*/,
10363  25 /*letterIndex ("S")*/,
10364  },
10365  // Rule HK 1947 only - Nov 30 3:30s 0 -
10366  {
10367  1947 /*fromYear*/,
10368  1947 /*toYear*/,
10369  11 /*inMonth*/,
10370  0 /*onDayOfWeek*/,
10371  30 /*onDayOfMonth*/,
10372  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
10373  840 /*atTimeCode (12600/15)*/,
10374  0 /*deltaMinutes*/,
10375  0 /*letterIndex ("")*/,
10376  },
10377  // Rule HK 1948 only - May 2 3:30s 1:00 S
10378  {
10379  1948 /*fromYear*/,
10380  1948 /*toYear*/,
10381  5 /*inMonth*/,
10382  0 /*onDayOfWeek*/,
10383  2 /*onDayOfMonth*/,
10384  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
10385  840 /*atTimeCode (12600/15)*/,
10386  60 /*deltaMinutes*/,
10387  25 /*letterIndex ("S")*/,
10388  },
10389  // Rule HK 1948 1952 - Oct Sun>=28 3:30s 0 -
10390  {
10391  1948 /*fromYear*/,
10392  1952 /*toYear*/,
10393  10 /*inMonth*/,
10394  7 /*onDayOfWeek*/,
10395  28 /*onDayOfMonth*/,
10396  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
10397  840 /*atTimeCode (12600/15)*/,
10398  0 /*deltaMinutes*/,
10399  0 /*letterIndex ("")*/,
10400  },
10401  // Rule HK 1949 1953 - Apr Sun>=1 3:30 1:00 S
10402  {
10403  1949 /*fromYear*/,
10404  1953 /*toYear*/,
10405  4 /*inMonth*/,
10406  7 /*onDayOfWeek*/,
10407  1 /*onDayOfMonth*/,
10408  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10409  840 /*atTimeCode (12600/15)*/,
10410  60 /*deltaMinutes*/,
10411  25 /*letterIndex ("S")*/,
10412  },
10413  // Rule HK 1953 1964 - Oct Sun>=31 3:30 0 -
10414  {
10415  1953 /*fromYear*/,
10416  1964 /*toYear*/,
10417  10 /*inMonth*/,
10418  7 /*onDayOfWeek*/,
10419  31 /*onDayOfMonth*/,
10420  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10421  840 /*atTimeCode (12600/15)*/,
10422  0 /*deltaMinutes*/,
10423  0 /*letterIndex ("")*/,
10424  },
10425  // Rule HK 1954 1964 - Mar Sun>=18 3:30 1:00 S
10426  {
10427  1954 /*fromYear*/,
10428  1964 /*toYear*/,
10429  3 /*inMonth*/,
10430  7 /*onDayOfWeek*/,
10431  18 /*onDayOfMonth*/,
10432  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10433  840 /*atTimeCode (12600/15)*/,
10434  60 /*deltaMinutes*/,
10435  25 /*letterIndex ("S")*/,
10436  },
10437  // Rule HK 1965 1976 - Apr Sun>=16 3:30 1:00 S
10438  {
10439  1965 /*fromYear*/,
10440  1976 /*toYear*/,
10441  4 /*inMonth*/,
10442  7 /*onDayOfWeek*/,
10443  16 /*onDayOfMonth*/,
10444  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10445  840 /*atTimeCode (12600/15)*/,
10446  60 /*deltaMinutes*/,
10447  25 /*letterIndex ("S")*/,
10448  },
10449  // Rule HK 1965 1976 - Oct Sun>=16 3:30 0 -
10450  {
10451  1965 /*fromYear*/,
10452  1976 /*toYear*/,
10453  10 /*inMonth*/,
10454  7 /*onDayOfWeek*/,
10455  16 /*onDayOfMonth*/,
10456  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10457  840 /*atTimeCode (12600/15)*/,
10458  0 /*deltaMinutes*/,
10459  0 /*letterIndex ("")*/,
10460  },
10461  // Rule HK 1973 only - Dec 30 3:30 1:00 S
10462  {
10463  1973 /*fromYear*/,
10464  1973 /*toYear*/,
10465  12 /*inMonth*/,
10466  0 /*onDayOfWeek*/,
10467  30 /*onDayOfMonth*/,
10468  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10469  840 /*atTimeCode (12600/15)*/,
10470  60 /*deltaMinutes*/,
10471  25 /*letterIndex ("S")*/,
10472  },
10473  // Rule HK 1979 only - May 13 3:30 1:00 S
10474  {
10475  1979 /*fromYear*/,
10476  1979 /*toYear*/,
10477  5 /*inMonth*/,
10478  0 /*onDayOfWeek*/,
10479  13 /*onDayOfMonth*/,
10480  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10481  840 /*atTimeCode (12600/15)*/,
10482  60 /*deltaMinutes*/,
10483  25 /*letterIndex ("S")*/,
10484  },
10485  // Rule HK 1979 only - Oct 21 3:30 0 -
10486  {
10487  1979 /*fromYear*/,
10488  1979 /*toYear*/,
10489  10 /*inMonth*/,
10490  0 /*onDayOfWeek*/,
10491  21 /*onDayOfMonth*/,
10492  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10493  840 /*atTimeCode (12600/15)*/,
10494  0 /*deltaMinutes*/,
10495  0 /*letterIndex ("")*/,
10496  },
10497 
10498 };
10499 
10500 const complete::Info::ZonePolicy kZonePolicyHK ACE_TIME_PROGMEM = {
10501  kZoneRulesHK /*rules*/,
10502  15 /*numRules*/,
10503 };
10504 
10505 //---------------------------------------------------------------------------
10506 // Policy name: Haiti
10507 // Rules: 12
10508 //---------------------------------------------------------------------------
10509 
10510 static const complete::Info::ZoneRule kZoneRulesHaiti[] ACE_TIME_PROGMEM = {
10511  // Anchor: Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
10512  {
10513  -32767 /*fromYear*/,
10514  -32767 /*toYear*/,
10515  1 /*inMonth*/,
10516  0 /*onDayOfWeek*/,
10517  1 /*onDayOfMonth*/,
10518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10519  0 /*atTimeCode (0/15)*/,
10520  0 /*deltaMinutes*/,
10521  25 /*letterIndex ("S")*/,
10522  },
10523  // Rule Haiti 1983 only - May 8 0:00 1:00 D
10524  {
10525  1983 /*fromYear*/,
10526  1983 /*toYear*/,
10527  5 /*inMonth*/,
10528  0 /*onDayOfWeek*/,
10529  8 /*onDayOfMonth*/,
10530  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10531  0 /*atTimeCode (0/15)*/,
10532  60 /*deltaMinutes*/,
10533  13 /*letterIndex ("D")*/,
10534  },
10535  // Rule Haiti 1984 1987 - Apr lastSun 0:00 1:00 D
10536  {
10537  1984 /*fromYear*/,
10538  1987 /*toYear*/,
10539  4 /*inMonth*/,
10540  7 /*onDayOfWeek*/,
10541  0 /*onDayOfMonth*/,
10542  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10543  0 /*atTimeCode (0/15)*/,
10544  60 /*deltaMinutes*/,
10545  13 /*letterIndex ("D")*/,
10546  },
10547  // Rule Haiti 1983 1987 - Oct lastSun 0:00 0 S
10548  {
10549  1983 /*fromYear*/,
10550  1987 /*toYear*/,
10551  10 /*inMonth*/,
10552  7 /*onDayOfWeek*/,
10553  0 /*onDayOfMonth*/,
10554  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10555  0 /*atTimeCode (0/15)*/,
10556  0 /*deltaMinutes*/,
10557  25 /*letterIndex ("S")*/,
10558  },
10559  // Rule Haiti 1988 1997 - Apr Sun>=1 1:00s 1:00 D
10560  {
10561  1988 /*fromYear*/,
10562  1997 /*toYear*/,
10563  4 /*inMonth*/,
10564  7 /*onDayOfWeek*/,
10565  1 /*onDayOfMonth*/,
10566  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
10567  240 /*atTimeCode (3600/15)*/,
10568  60 /*deltaMinutes*/,
10569  13 /*letterIndex ("D")*/,
10570  },
10571  // Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
10572  {
10573  1988 /*fromYear*/,
10574  1997 /*toYear*/,
10575  10 /*inMonth*/,
10576  7 /*onDayOfWeek*/,
10577  0 /*onDayOfMonth*/,
10578  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
10579  240 /*atTimeCode (3600/15)*/,
10580  0 /*deltaMinutes*/,
10581  25 /*letterIndex ("S")*/,
10582  },
10583  // Rule Haiti 2005 2006 - Apr Sun>=1 0:00 1:00 D
10584  {
10585  2005 /*fromYear*/,
10586  2006 /*toYear*/,
10587  4 /*inMonth*/,
10588  7 /*onDayOfWeek*/,
10589  1 /*onDayOfMonth*/,
10590  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10591  0 /*atTimeCode (0/15)*/,
10592  60 /*deltaMinutes*/,
10593  13 /*letterIndex ("D")*/,
10594  },
10595  // Rule Haiti 2005 2006 - Oct lastSun 0:00 0 S
10596  {
10597  2005 /*fromYear*/,
10598  2006 /*toYear*/,
10599  10 /*inMonth*/,
10600  7 /*onDayOfWeek*/,
10601  0 /*onDayOfMonth*/,
10602  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10603  0 /*atTimeCode (0/15)*/,
10604  0 /*deltaMinutes*/,
10605  25 /*letterIndex ("S")*/,
10606  },
10607  // Rule Haiti 2012 2015 - Mar Sun>=8 2:00 1:00 D
10608  {
10609  2012 /*fromYear*/,
10610  2015 /*toYear*/,
10611  3 /*inMonth*/,
10612  7 /*onDayOfWeek*/,
10613  8 /*onDayOfMonth*/,
10614  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10615  480 /*atTimeCode (7200/15)*/,
10616  60 /*deltaMinutes*/,
10617  13 /*letterIndex ("D")*/,
10618  },
10619  // Rule Haiti 2012 2015 - Nov Sun>=1 2:00 0 S
10620  {
10621  2012 /*fromYear*/,
10622  2015 /*toYear*/,
10623  11 /*inMonth*/,
10624  7 /*onDayOfWeek*/,
10625  1 /*onDayOfMonth*/,
10626  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10627  480 /*atTimeCode (7200/15)*/,
10628  0 /*deltaMinutes*/,
10629  25 /*letterIndex ("S")*/,
10630  },
10631  // Rule Haiti 2017 max - Mar Sun>=8 2:00 1:00 D
10632  {
10633  2017 /*fromYear*/,
10634  32766 /*toYear*/,
10635  3 /*inMonth*/,
10636  7 /*onDayOfWeek*/,
10637  8 /*onDayOfMonth*/,
10638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10639  480 /*atTimeCode (7200/15)*/,
10640  60 /*deltaMinutes*/,
10641  13 /*letterIndex ("D")*/,
10642  },
10643  // Rule Haiti 2017 max - Nov Sun>=1 2:00 0 S
10644  {
10645  2017 /*fromYear*/,
10646  32766 /*toYear*/,
10647  11 /*inMonth*/,
10648  7 /*onDayOfWeek*/,
10649  1 /*onDayOfMonth*/,
10650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10651  480 /*atTimeCode (7200/15)*/,
10652  0 /*deltaMinutes*/,
10653  25 /*letterIndex ("S")*/,
10654  },
10655 
10656 };
10657 
10658 const complete::Info::ZonePolicy kZonePolicyHaiti ACE_TIME_PROGMEM = {
10659  kZoneRulesHaiti /*rules*/,
10660  12 /*numRules*/,
10661 };
10662 
10663 //---------------------------------------------------------------------------
10664 // Policy name: Halifax
10665 // Rules: 42
10666 //---------------------------------------------------------------------------
10667 
10668 static const complete::Info::ZoneRule kZoneRulesHalifax[] ACE_TIME_PROGMEM = {
10669  // Anchor: Rule Halifax 1916 only - Oct 1 0:00 0 S
10670  {
10671  -32767 /*fromYear*/,
10672  -32767 /*toYear*/,
10673  1 /*inMonth*/,
10674  0 /*onDayOfWeek*/,
10675  1 /*onDayOfMonth*/,
10676  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10677  0 /*atTimeCode (0/15)*/,
10678  0 /*deltaMinutes*/,
10679  25 /*letterIndex ("S")*/,
10680  },
10681  // Rule Halifax 1916 only - Apr 1 0:00 1:00 D
10682  {
10683  1916 /*fromYear*/,
10684  1916 /*toYear*/,
10685  4 /*inMonth*/,
10686  0 /*onDayOfWeek*/,
10687  1 /*onDayOfMonth*/,
10688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10689  0 /*atTimeCode (0/15)*/,
10690  60 /*deltaMinutes*/,
10691  13 /*letterIndex ("D")*/,
10692  },
10693  // Rule Halifax 1916 only - Oct 1 0:00 0 S
10694  {
10695  1916 /*fromYear*/,
10696  1916 /*toYear*/,
10697  10 /*inMonth*/,
10698  0 /*onDayOfWeek*/,
10699  1 /*onDayOfMonth*/,
10700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10701  0 /*atTimeCode (0/15)*/,
10702  0 /*deltaMinutes*/,
10703  25 /*letterIndex ("S")*/,
10704  },
10705  // Rule Halifax 1920 only - May 9 0:00 1:00 D
10706  {
10707  1920 /*fromYear*/,
10708  1920 /*toYear*/,
10709  5 /*inMonth*/,
10710  0 /*onDayOfWeek*/,
10711  9 /*onDayOfMonth*/,
10712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10713  0 /*atTimeCode (0/15)*/,
10714  60 /*deltaMinutes*/,
10715  13 /*letterIndex ("D")*/,
10716  },
10717  // Rule Halifax 1920 only - Aug 29 0:00 0 S
10718  {
10719  1920 /*fromYear*/,
10720  1920 /*toYear*/,
10721  8 /*inMonth*/,
10722  0 /*onDayOfWeek*/,
10723  29 /*onDayOfMonth*/,
10724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10725  0 /*atTimeCode (0/15)*/,
10726  0 /*deltaMinutes*/,
10727  25 /*letterIndex ("S")*/,
10728  },
10729  // Rule Halifax 1921 only - May 6 0:00 1:00 D
10730  {
10731  1921 /*fromYear*/,
10732  1921 /*toYear*/,
10733  5 /*inMonth*/,
10734  0 /*onDayOfWeek*/,
10735  6 /*onDayOfMonth*/,
10736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10737  0 /*atTimeCode (0/15)*/,
10738  60 /*deltaMinutes*/,
10739  13 /*letterIndex ("D")*/,
10740  },
10741  // Rule Halifax 1921 1922 - Sep 5 0:00 0 S
10742  {
10743  1921 /*fromYear*/,
10744  1922 /*toYear*/,
10745  9 /*inMonth*/,
10746  0 /*onDayOfWeek*/,
10747  5 /*onDayOfMonth*/,
10748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10749  0 /*atTimeCode (0/15)*/,
10750  0 /*deltaMinutes*/,
10751  25 /*letterIndex ("S")*/,
10752  },
10753  // Rule Halifax 1922 only - Apr 30 0:00 1:00 D
10754  {
10755  1922 /*fromYear*/,
10756  1922 /*toYear*/,
10757  4 /*inMonth*/,
10758  0 /*onDayOfWeek*/,
10759  30 /*onDayOfMonth*/,
10760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10761  0 /*atTimeCode (0/15)*/,
10762  60 /*deltaMinutes*/,
10763  13 /*letterIndex ("D")*/,
10764  },
10765  // Rule Halifax 1923 1925 - May Sun>=1 0:00 1:00 D
10766  {
10767  1923 /*fromYear*/,
10768  1925 /*toYear*/,
10769  5 /*inMonth*/,
10770  7 /*onDayOfWeek*/,
10771  1 /*onDayOfMonth*/,
10772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10773  0 /*atTimeCode (0/15)*/,
10774  60 /*deltaMinutes*/,
10775  13 /*letterIndex ("D")*/,
10776  },
10777  // Rule Halifax 1923 only - Sep 4 0:00 0 S
10778  {
10779  1923 /*fromYear*/,
10780  1923 /*toYear*/,
10781  9 /*inMonth*/,
10782  0 /*onDayOfWeek*/,
10783  4 /*onDayOfMonth*/,
10784  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10785  0 /*atTimeCode (0/15)*/,
10786  0 /*deltaMinutes*/,
10787  25 /*letterIndex ("S")*/,
10788  },
10789  // Rule Halifax 1924 only - Sep 15 0:00 0 S
10790  {
10791  1924 /*fromYear*/,
10792  1924 /*toYear*/,
10793  9 /*inMonth*/,
10794  0 /*onDayOfWeek*/,
10795  15 /*onDayOfMonth*/,
10796  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10797  0 /*atTimeCode (0/15)*/,
10798  0 /*deltaMinutes*/,
10799  25 /*letterIndex ("S")*/,
10800  },
10801  // Rule Halifax 1925 only - Sep 28 0:00 0 S
10802  {
10803  1925 /*fromYear*/,
10804  1925 /*toYear*/,
10805  9 /*inMonth*/,
10806  0 /*onDayOfWeek*/,
10807  28 /*onDayOfMonth*/,
10808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10809  0 /*atTimeCode (0/15)*/,
10810  0 /*deltaMinutes*/,
10811  25 /*letterIndex ("S")*/,
10812  },
10813  // Rule Halifax 1926 only - May 16 0:00 1:00 D
10814  {
10815  1926 /*fromYear*/,
10816  1926 /*toYear*/,
10817  5 /*inMonth*/,
10818  0 /*onDayOfWeek*/,
10819  16 /*onDayOfMonth*/,
10820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10821  0 /*atTimeCode (0/15)*/,
10822  60 /*deltaMinutes*/,
10823  13 /*letterIndex ("D")*/,
10824  },
10825  // Rule Halifax 1926 only - Sep 13 0:00 0 S
10826  {
10827  1926 /*fromYear*/,
10828  1926 /*toYear*/,
10829  9 /*inMonth*/,
10830  0 /*onDayOfWeek*/,
10831  13 /*onDayOfMonth*/,
10832  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10833  0 /*atTimeCode (0/15)*/,
10834  0 /*deltaMinutes*/,
10835  25 /*letterIndex ("S")*/,
10836  },
10837  // Rule Halifax 1927 only - May 1 0:00 1:00 D
10838  {
10839  1927 /*fromYear*/,
10840  1927 /*toYear*/,
10841  5 /*inMonth*/,
10842  0 /*onDayOfWeek*/,
10843  1 /*onDayOfMonth*/,
10844  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10845  0 /*atTimeCode (0/15)*/,
10846  60 /*deltaMinutes*/,
10847  13 /*letterIndex ("D")*/,
10848  },
10849  // Rule Halifax 1927 only - Sep 26 0:00 0 S
10850  {
10851  1927 /*fromYear*/,
10852  1927 /*toYear*/,
10853  9 /*inMonth*/,
10854  0 /*onDayOfWeek*/,
10855  26 /*onDayOfMonth*/,
10856  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10857  0 /*atTimeCode (0/15)*/,
10858  0 /*deltaMinutes*/,
10859  25 /*letterIndex ("S")*/,
10860  },
10861  // Rule Halifax 1928 1931 - May Sun>=8 0:00 1:00 D
10862  {
10863  1928 /*fromYear*/,
10864  1931 /*toYear*/,
10865  5 /*inMonth*/,
10866  7 /*onDayOfWeek*/,
10867  8 /*onDayOfMonth*/,
10868  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10869  0 /*atTimeCode (0/15)*/,
10870  60 /*deltaMinutes*/,
10871  13 /*letterIndex ("D")*/,
10872  },
10873  // Rule Halifax 1928 only - Sep 9 0:00 0 S
10874  {
10875  1928 /*fromYear*/,
10876  1928 /*toYear*/,
10877  9 /*inMonth*/,
10878  0 /*onDayOfWeek*/,
10879  9 /*onDayOfMonth*/,
10880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10881  0 /*atTimeCode (0/15)*/,
10882  0 /*deltaMinutes*/,
10883  25 /*letterIndex ("S")*/,
10884  },
10885  // Rule Halifax 1929 only - Sep 3 0:00 0 S
10886  {
10887  1929 /*fromYear*/,
10888  1929 /*toYear*/,
10889  9 /*inMonth*/,
10890  0 /*onDayOfWeek*/,
10891  3 /*onDayOfMonth*/,
10892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10893  0 /*atTimeCode (0/15)*/,
10894  0 /*deltaMinutes*/,
10895  25 /*letterIndex ("S")*/,
10896  },
10897  // Rule Halifax 1930 only - Sep 15 0:00 0 S
10898  {
10899  1930 /*fromYear*/,
10900  1930 /*toYear*/,
10901  9 /*inMonth*/,
10902  0 /*onDayOfWeek*/,
10903  15 /*onDayOfMonth*/,
10904  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10905  0 /*atTimeCode (0/15)*/,
10906  0 /*deltaMinutes*/,
10907  25 /*letterIndex ("S")*/,
10908  },
10909  // Rule Halifax 1931 1932 - Sep Mon>=24 0:00 0 S
10910  {
10911  1931 /*fromYear*/,
10912  1932 /*toYear*/,
10913  9 /*inMonth*/,
10914  1 /*onDayOfWeek*/,
10915  24 /*onDayOfMonth*/,
10916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10917  0 /*atTimeCode (0/15)*/,
10918  0 /*deltaMinutes*/,
10919  25 /*letterIndex ("S")*/,
10920  },
10921  // Rule Halifax 1932 only - May 1 0:00 1:00 D
10922  {
10923  1932 /*fromYear*/,
10924  1932 /*toYear*/,
10925  5 /*inMonth*/,
10926  0 /*onDayOfWeek*/,
10927  1 /*onDayOfMonth*/,
10928  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10929  0 /*atTimeCode (0/15)*/,
10930  60 /*deltaMinutes*/,
10931  13 /*letterIndex ("D")*/,
10932  },
10933  // Rule Halifax 1933 only - Apr 30 0:00 1:00 D
10934  {
10935  1933 /*fromYear*/,
10936  1933 /*toYear*/,
10937  4 /*inMonth*/,
10938  0 /*onDayOfWeek*/,
10939  30 /*onDayOfMonth*/,
10940  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10941  0 /*atTimeCode (0/15)*/,
10942  60 /*deltaMinutes*/,
10943  13 /*letterIndex ("D")*/,
10944  },
10945  // Rule Halifax 1933 only - Oct 2 0:00 0 S
10946  {
10947  1933 /*fromYear*/,
10948  1933 /*toYear*/,
10949  10 /*inMonth*/,
10950  0 /*onDayOfWeek*/,
10951  2 /*onDayOfMonth*/,
10952  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10953  0 /*atTimeCode (0/15)*/,
10954  0 /*deltaMinutes*/,
10955  25 /*letterIndex ("S")*/,
10956  },
10957  // Rule Halifax 1934 only - May 20 0:00 1:00 D
10958  {
10959  1934 /*fromYear*/,
10960  1934 /*toYear*/,
10961  5 /*inMonth*/,
10962  0 /*onDayOfWeek*/,
10963  20 /*onDayOfMonth*/,
10964  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10965  0 /*atTimeCode (0/15)*/,
10966  60 /*deltaMinutes*/,
10967  13 /*letterIndex ("D")*/,
10968  },
10969  // Rule Halifax 1934 only - Sep 16 0:00 0 S
10970  {
10971  1934 /*fromYear*/,
10972  1934 /*toYear*/,
10973  9 /*inMonth*/,
10974  0 /*onDayOfWeek*/,
10975  16 /*onDayOfMonth*/,
10976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10977  0 /*atTimeCode (0/15)*/,
10978  0 /*deltaMinutes*/,
10979  25 /*letterIndex ("S")*/,
10980  },
10981  // Rule Halifax 1935 only - Jun 2 0:00 1:00 D
10982  {
10983  1935 /*fromYear*/,
10984  1935 /*toYear*/,
10985  6 /*inMonth*/,
10986  0 /*onDayOfWeek*/,
10987  2 /*onDayOfMonth*/,
10988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
10989  0 /*atTimeCode (0/15)*/,
10990  60 /*deltaMinutes*/,
10991  13 /*letterIndex ("D")*/,
10992  },
10993  // Rule Halifax 1935 only - Sep 30 0:00 0 S
10994  {
10995  1935 /*fromYear*/,
10996  1935 /*toYear*/,
10997  9 /*inMonth*/,
10998  0 /*onDayOfWeek*/,
10999  30 /*onDayOfMonth*/,
11000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11001  0 /*atTimeCode (0/15)*/,
11002  0 /*deltaMinutes*/,
11003  25 /*letterIndex ("S")*/,
11004  },
11005  // Rule Halifax 1936 only - Jun 1 0:00 1:00 D
11006  {
11007  1936 /*fromYear*/,
11008  1936 /*toYear*/,
11009  6 /*inMonth*/,
11010  0 /*onDayOfWeek*/,
11011  1 /*onDayOfMonth*/,
11012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11013  0 /*atTimeCode (0/15)*/,
11014  60 /*deltaMinutes*/,
11015  13 /*letterIndex ("D")*/,
11016  },
11017  // Rule Halifax 1936 only - Sep 14 0:00 0 S
11018  {
11019  1936 /*fromYear*/,
11020  1936 /*toYear*/,
11021  9 /*inMonth*/,
11022  0 /*onDayOfWeek*/,
11023  14 /*onDayOfMonth*/,
11024  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11025  0 /*atTimeCode (0/15)*/,
11026  0 /*deltaMinutes*/,
11027  25 /*letterIndex ("S")*/,
11028  },
11029  // Rule Halifax 1937 1938 - May Sun>=1 0:00 1:00 D
11030  {
11031  1937 /*fromYear*/,
11032  1938 /*toYear*/,
11033  5 /*inMonth*/,
11034  7 /*onDayOfWeek*/,
11035  1 /*onDayOfMonth*/,
11036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11037  0 /*atTimeCode (0/15)*/,
11038  60 /*deltaMinutes*/,
11039  13 /*letterIndex ("D")*/,
11040  },
11041  // Rule Halifax 1937 1941 - Sep Mon>=24 0:00 0 S
11042  {
11043  1937 /*fromYear*/,
11044  1941 /*toYear*/,
11045  9 /*inMonth*/,
11046  1 /*onDayOfWeek*/,
11047  24 /*onDayOfMonth*/,
11048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11049  0 /*atTimeCode (0/15)*/,
11050  0 /*deltaMinutes*/,
11051  25 /*letterIndex ("S")*/,
11052  },
11053  // Rule Halifax 1939 only - May 28 0:00 1:00 D
11054  {
11055  1939 /*fromYear*/,
11056  1939 /*toYear*/,
11057  5 /*inMonth*/,
11058  0 /*onDayOfWeek*/,
11059  28 /*onDayOfMonth*/,
11060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11061  0 /*atTimeCode (0/15)*/,
11062  60 /*deltaMinutes*/,
11063  13 /*letterIndex ("D")*/,
11064  },
11065  // Rule Halifax 1940 1941 - May Sun>=1 0:00 1:00 D
11066  {
11067  1940 /*fromYear*/,
11068  1941 /*toYear*/,
11069  5 /*inMonth*/,
11070  7 /*onDayOfWeek*/,
11071  1 /*onDayOfMonth*/,
11072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11073  0 /*atTimeCode (0/15)*/,
11074  60 /*deltaMinutes*/,
11075  13 /*letterIndex ("D")*/,
11076  },
11077  // Rule Halifax 1946 1949 - Apr lastSun 2:00 1:00 D
11078  {
11079  1946 /*fromYear*/,
11080  1949 /*toYear*/,
11081  4 /*inMonth*/,
11082  7 /*onDayOfWeek*/,
11083  0 /*onDayOfMonth*/,
11084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11085  480 /*atTimeCode (7200/15)*/,
11086  60 /*deltaMinutes*/,
11087  13 /*letterIndex ("D")*/,
11088  },
11089  // Rule Halifax 1946 1949 - Sep lastSun 2:00 0 S
11090  {
11091  1946 /*fromYear*/,
11092  1949 /*toYear*/,
11093  9 /*inMonth*/,
11094  7 /*onDayOfWeek*/,
11095  0 /*onDayOfMonth*/,
11096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11097  480 /*atTimeCode (7200/15)*/,
11098  0 /*deltaMinutes*/,
11099  25 /*letterIndex ("S")*/,
11100  },
11101  // Rule Halifax 1951 1954 - Apr lastSun 2:00 1:00 D
11102  {
11103  1951 /*fromYear*/,
11104  1954 /*toYear*/,
11105  4 /*inMonth*/,
11106  7 /*onDayOfWeek*/,
11107  0 /*onDayOfMonth*/,
11108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11109  480 /*atTimeCode (7200/15)*/,
11110  60 /*deltaMinutes*/,
11111  13 /*letterIndex ("D")*/,
11112  },
11113  // Rule Halifax 1951 1954 - Sep lastSun 2:00 0 S
11114  {
11115  1951 /*fromYear*/,
11116  1954 /*toYear*/,
11117  9 /*inMonth*/,
11118  7 /*onDayOfWeek*/,
11119  0 /*onDayOfMonth*/,
11120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11121  480 /*atTimeCode (7200/15)*/,
11122  0 /*deltaMinutes*/,
11123  25 /*letterIndex ("S")*/,
11124  },
11125  // Rule Halifax 1956 1959 - Apr lastSun 2:00 1:00 D
11126  {
11127  1956 /*fromYear*/,
11128  1959 /*toYear*/,
11129  4 /*inMonth*/,
11130  7 /*onDayOfWeek*/,
11131  0 /*onDayOfMonth*/,
11132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11133  480 /*atTimeCode (7200/15)*/,
11134  60 /*deltaMinutes*/,
11135  13 /*letterIndex ("D")*/,
11136  },
11137  // Rule Halifax 1956 1959 - Sep lastSun 2:00 0 S
11138  {
11139  1956 /*fromYear*/,
11140  1959 /*toYear*/,
11141  9 /*inMonth*/,
11142  7 /*onDayOfWeek*/,
11143  0 /*onDayOfMonth*/,
11144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11145  480 /*atTimeCode (7200/15)*/,
11146  0 /*deltaMinutes*/,
11147  25 /*letterIndex ("S")*/,
11148  },
11149  // Rule Halifax 1962 1973 - Apr lastSun 2:00 1:00 D
11150  {
11151  1962 /*fromYear*/,
11152  1973 /*toYear*/,
11153  4 /*inMonth*/,
11154  7 /*onDayOfWeek*/,
11155  0 /*onDayOfMonth*/,
11156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11157  480 /*atTimeCode (7200/15)*/,
11158  60 /*deltaMinutes*/,
11159  13 /*letterIndex ("D")*/,
11160  },
11161  // Rule Halifax 1962 1973 - Oct lastSun 2:00 0 S
11162  {
11163  1962 /*fromYear*/,
11164  1973 /*toYear*/,
11165  10 /*inMonth*/,
11166  7 /*onDayOfWeek*/,
11167  0 /*onDayOfMonth*/,
11168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11169  480 /*atTimeCode (7200/15)*/,
11170  0 /*deltaMinutes*/,
11171  25 /*letterIndex ("S")*/,
11172  },
11173 
11174 };
11175 
11176 const complete::Info::ZonePolicy kZonePolicyHalifax ACE_TIME_PROGMEM = {
11177  kZoneRulesHalifax /*rules*/,
11178  42 /*numRules*/,
11179 };
11180 
11181 //---------------------------------------------------------------------------
11182 // Policy name: Holiday
11183 // Rules: 3
11184 //---------------------------------------------------------------------------
11185 
11186 static const complete::Info::ZoneRule kZoneRulesHoliday[] ACE_TIME_PROGMEM = {
11187  // Anchor: Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 S
11188  {
11189  -32767 /*fromYear*/,
11190  -32767 /*toYear*/,
11191  1 /*inMonth*/,
11192  0 /*onDayOfWeek*/,
11193  1 /*onDayOfMonth*/,
11194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11195  0 /*atTimeCode (0/15)*/,
11196  0 /*deltaMinutes*/,
11197  25 /*letterIndex ("S")*/,
11198  },
11199  // Rule Holiday 1992 1993 - Oct lastSun 2:00s 1:00 D
11200  {
11201  1992 /*fromYear*/,
11202  1993 /*toYear*/,
11203  10 /*inMonth*/,
11204  7 /*onDayOfWeek*/,
11205  0 /*onDayOfMonth*/,
11206  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
11207  480 /*atTimeCode (7200/15)*/,
11208  60 /*deltaMinutes*/,
11209  13 /*letterIndex ("D")*/,
11210  },
11211  // Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 S
11212  {
11213  1993 /*fromYear*/,
11214  1994 /*toYear*/,
11215  3 /*inMonth*/,
11216  7 /*onDayOfWeek*/,
11217  1 /*onDayOfMonth*/,
11218  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
11219  480 /*atTimeCode (7200/15)*/,
11220  0 /*deltaMinutes*/,
11221  25 /*letterIndex ("S")*/,
11222  },
11223 
11224 };
11225 
11226 const complete::Info::ZonePolicy kZonePolicyHoliday ACE_TIME_PROGMEM = {
11227  kZoneRulesHoliday /*rules*/,
11228  3 /*numRules*/,
11229 };
11230 
11231 //---------------------------------------------------------------------------
11232 // Policy name: Hond
11233 // Rules: 5
11234 //---------------------------------------------------------------------------
11235 
11236 static const complete::Info::ZoneRule kZoneRulesHond[] ACE_TIME_PROGMEM = {
11237  // Anchor: Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
11238  {
11239  -32767 /*fromYear*/,
11240  -32767 /*toYear*/,
11241  1 /*inMonth*/,
11242  0 /*onDayOfWeek*/,
11243  1 /*onDayOfMonth*/,
11244  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11245  0 /*atTimeCode (0/15)*/,
11246  0 /*deltaMinutes*/,
11247  25 /*letterIndex ("S")*/,
11248  },
11249  // Rule Hond 1987 1988 - May Sun>=1 0:00 1:00 D
11250  {
11251  1987 /*fromYear*/,
11252  1988 /*toYear*/,
11253  5 /*inMonth*/,
11254  7 /*onDayOfWeek*/,
11255  1 /*onDayOfMonth*/,
11256  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11257  0 /*atTimeCode (0/15)*/,
11258  60 /*deltaMinutes*/,
11259  13 /*letterIndex ("D")*/,
11260  },
11261  // Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
11262  {
11263  1987 /*fromYear*/,
11264  1988 /*toYear*/,
11265  9 /*inMonth*/,
11266  7 /*onDayOfWeek*/,
11267  0 /*onDayOfMonth*/,
11268  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11269  0 /*atTimeCode (0/15)*/,
11270  0 /*deltaMinutes*/,
11271  25 /*letterIndex ("S")*/,
11272  },
11273  // Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
11274  {
11275  2006 /*fromYear*/,
11276  2006 /*toYear*/,
11277  5 /*inMonth*/,
11278  7 /*onDayOfWeek*/,
11279  1 /*onDayOfMonth*/,
11280  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11281  0 /*atTimeCode (0/15)*/,
11282  60 /*deltaMinutes*/,
11283  13 /*letterIndex ("D")*/,
11284  },
11285  // Rule Hond 2006 only - Aug Mon>=1 0:00 0 S
11286  {
11287  2006 /*fromYear*/,
11288  2006 /*toYear*/,
11289  8 /*inMonth*/,
11290  1 /*onDayOfWeek*/,
11291  1 /*onDayOfMonth*/,
11292  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11293  0 /*atTimeCode (0/15)*/,
11294  0 /*deltaMinutes*/,
11295  25 /*letterIndex ("S")*/,
11296  },
11297 
11298 };
11299 
11300 const complete::Info::ZonePolicy kZonePolicyHond ACE_TIME_PROGMEM = {
11301  kZoneRulesHond /*rules*/,
11302  5 /*numRules*/,
11303 };
11304 
11305 //---------------------------------------------------------------------------
11306 // Policy name: Hungary
11307 // Rules: 20
11308 //---------------------------------------------------------------------------
11309 
11310 static const complete::Info::ZoneRule kZoneRulesHungary[] ACE_TIME_PROGMEM = {
11311  // Anchor: Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 -
11312  {
11313  -32767 /*fromYear*/,
11314  -32767 /*toYear*/,
11315  1 /*inMonth*/,
11316  0 /*onDayOfWeek*/,
11317  1 /*onDayOfMonth*/,
11318  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11319  0 /*atTimeCode (0/15)*/,
11320  0 /*deltaMinutes*/,
11321  0 /*letterIndex ("")*/,
11322  },
11323  // Rule Hungary 1918 1919 - Apr 15 2:00 1:00 S
11324  {
11325  1918 /*fromYear*/,
11326  1919 /*toYear*/,
11327  4 /*inMonth*/,
11328  0 /*onDayOfWeek*/,
11329  15 /*onDayOfMonth*/,
11330  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11331  480 /*atTimeCode (7200/15)*/,
11332  60 /*deltaMinutes*/,
11333  25 /*letterIndex ("S")*/,
11334  },
11335  // Rule Hungary 1918 1920 - Sep Mon>=15 3:00 0 -
11336  {
11337  1918 /*fromYear*/,
11338  1920 /*toYear*/,
11339  9 /*inMonth*/,
11340  1 /*onDayOfWeek*/,
11341  15 /*onDayOfMonth*/,
11342  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11343  720 /*atTimeCode (10800/15)*/,
11344  0 /*deltaMinutes*/,
11345  0 /*letterIndex ("")*/,
11346  },
11347  // Rule Hungary 1920 only - Apr 5 2:00 1:00 S
11348  {
11349  1920 /*fromYear*/,
11350  1920 /*toYear*/,
11351  4 /*inMonth*/,
11352  0 /*onDayOfWeek*/,
11353  5 /*onDayOfMonth*/,
11354  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11355  480 /*atTimeCode (7200/15)*/,
11356  60 /*deltaMinutes*/,
11357  25 /*letterIndex ("S")*/,
11358  },
11359  // Rule Hungary 1945 only - May 1 23:00 1:00 S
11360  {
11361  1945 /*fromYear*/,
11362  1945 /*toYear*/,
11363  5 /*inMonth*/,
11364  0 /*onDayOfWeek*/,
11365  1 /*onDayOfMonth*/,
11366  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11367  5520 /*atTimeCode (82800/15)*/,
11368  60 /*deltaMinutes*/,
11369  25 /*letterIndex ("S")*/,
11370  },
11371  // Rule Hungary 1945 only - Nov 1 1:00 0 -
11372  {
11373  1945 /*fromYear*/,
11374  1945 /*toYear*/,
11375  11 /*inMonth*/,
11376  0 /*onDayOfWeek*/,
11377  1 /*onDayOfMonth*/,
11378  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11379  240 /*atTimeCode (3600/15)*/,
11380  0 /*deltaMinutes*/,
11381  0 /*letterIndex ("")*/,
11382  },
11383  // Rule Hungary 1946 only - Mar 31 2:00s 1:00 S
11384  {
11385  1946 /*fromYear*/,
11386  1946 /*toYear*/,
11387  3 /*inMonth*/,
11388  0 /*onDayOfWeek*/,
11389  31 /*onDayOfMonth*/,
11390  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
11391  480 /*atTimeCode (7200/15)*/,
11392  60 /*deltaMinutes*/,
11393  25 /*letterIndex ("S")*/,
11394  },
11395  // Rule Hungary 1946 only - Oct 7 2:00 0 -
11396  {
11397  1946 /*fromYear*/,
11398  1946 /*toYear*/,
11399  10 /*inMonth*/,
11400  0 /*onDayOfWeek*/,
11401  7 /*onDayOfMonth*/,
11402  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11403  480 /*atTimeCode (7200/15)*/,
11404  0 /*deltaMinutes*/,
11405  0 /*letterIndex ("")*/,
11406  },
11407  // Rule Hungary 1947 1949 - Apr Sun>=4 2:00s 1:00 S
11408  {
11409  1947 /*fromYear*/,
11410  1949 /*toYear*/,
11411  4 /*inMonth*/,
11412  7 /*onDayOfWeek*/,
11413  4 /*onDayOfMonth*/,
11414  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
11415  480 /*atTimeCode (7200/15)*/,
11416  60 /*deltaMinutes*/,
11417  25 /*letterIndex ("S")*/,
11418  },
11419  // Rule Hungary 1947 1949 - Oct Sun>=1 2:00s 0 -
11420  {
11421  1947 /*fromYear*/,
11422  1949 /*toYear*/,
11423  10 /*inMonth*/,
11424  7 /*onDayOfWeek*/,
11425  1 /*onDayOfMonth*/,
11426  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
11427  480 /*atTimeCode (7200/15)*/,
11428  0 /*deltaMinutes*/,
11429  0 /*letterIndex ("")*/,
11430  },
11431  // Rule Hungary 1954 only - May 23 0:00 1:00 S
11432  {
11433  1954 /*fromYear*/,
11434  1954 /*toYear*/,
11435  5 /*inMonth*/,
11436  0 /*onDayOfWeek*/,
11437  23 /*onDayOfMonth*/,
11438  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11439  0 /*atTimeCode (0/15)*/,
11440  60 /*deltaMinutes*/,
11441  25 /*letterIndex ("S")*/,
11442  },
11443  // Rule Hungary 1954 only - Oct 3 0:00 0 -
11444  {
11445  1954 /*fromYear*/,
11446  1954 /*toYear*/,
11447  10 /*inMonth*/,
11448  0 /*onDayOfWeek*/,
11449  3 /*onDayOfMonth*/,
11450  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11451  0 /*atTimeCode (0/15)*/,
11452  0 /*deltaMinutes*/,
11453  0 /*letterIndex ("")*/,
11454  },
11455  // Rule Hungary 1955 only - May 22 2:00 1:00 S
11456  {
11457  1955 /*fromYear*/,
11458  1955 /*toYear*/,
11459  5 /*inMonth*/,
11460  0 /*onDayOfWeek*/,
11461  22 /*onDayOfMonth*/,
11462  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11463  480 /*atTimeCode (7200/15)*/,
11464  60 /*deltaMinutes*/,
11465  25 /*letterIndex ("S")*/,
11466  },
11467  // Rule Hungary 1955 only - Oct 2 3:00 0 -
11468  {
11469  1955 /*fromYear*/,
11470  1955 /*toYear*/,
11471  10 /*inMonth*/,
11472  0 /*onDayOfWeek*/,
11473  2 /*onDayOfMonth*/,
11474  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11475  720 /*atTimeCode (10800/15)*/,
11476  0 /*deltaMinutes*/,
11477  0 /*letterIndex ("")*/,
11478  },
11479  // Rule Hungary 1956 1957 - Jun Sun>=1 2:00 1:00 S
11480  {
11481  1956 /*fromYear*/,
11482  1957 /*toYear*/,
11483  6 /*inMonth*/,
11484  7 /*onDayOfWeek*/,
11485  1 /*onDayOfMonth*/,
11486  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11487  480 /*atTimeCode (7200/15)*/,
11488  60 /*deltaMinutes*/,
11489  25 /*letterIndex ("S")*/,
11490  },
11491  // Rule Hungary 1956 1957 - Sep lastSun 3:00 0 -
11492  {
11493  1956 /*fromYear*/,
11494  1957 /*toYear*/,
11495  9 /*inMonth*/,
11496  7 /*onDayOfWeek*/,
11497  0 /*onDayOfMonth*/,
11498  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11499  720 /*atTimeCode (10800/15)*/,
11500  0 /*deltaMinutes*/,
11501  0 /*letterIndex ("")*/,
11502  },
11503  // Rule Hungary 1980 only - Apr 6 0:00 1:00 S
11504  {
11505  1980 /*fromYear*/,
11506  1980 /*toYear*/,
11507  4 /*inMonth*/,
11508  0 /*onDayOfWeek*/,
11509  6 /*onDayOfMonth*/,
11510  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11511  0 /*atTimeCode (0/15)*/,
11512  60 /*deltaMinutes*/,
11513  25 /*letterIndex ("S")*/,
11514  },
11515  // Rule Hungary 1980 only - Sep 28 1:00 0 -
11516  {
11517  1980 /*fromYear*/,
11518  1980 /*toYear*/,
11519  9 /*inMonth*/,
11520  0 /*onDayOfWeek*/,
11521  28 /*onDayOfMonth*/,
11522  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11523  240 /*atTimeCode (3600/15)*/,
11524  0 /*deltaMinutes*/,
11525  0 /*letterIndex ("")*/,
11526  },
11527  // Rule Hungary 1981 1983 - Mar lastSun 0:00 1:00 S
11528  {
11529  1981 /*fromYear*/,
11530  1983 /*toYear*/,
11531  3 /*inMonth*/,
11532  7 /*onDayOfWeek*/,
11533  0 /*onDayOfMonth*/,
11534  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11535  0 /*atTimeCode (0/15)*/,
11536  60 /*deltaMinutes*/,
11537  25 /*letterIndex ("S")*/,
11538  },
11539  // Rule Hungary 1981 1983 - Sep lastSun 1:00 0 -
11540  {
11541  1981 /*fromYear*/,
11542  1983 /*toYear*/,
11543  9 /*inMonth*/,
11544  7 /*onDayOfWeek*/,
11545  0 /*onDayOfMonth*/,
11546  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11547  240 /*atTimeCode (3600/15)*/,
11548  0 /*deltaMinutes*/,
11549  0 /*letterIndex ("")*/,
11550  },
11551 
11552 };
11553 
11554 const complete::Info::ZonePolicy kZonePolicyHungary ACE_TIME_PROGMEM = {
11555  kZoneRulesHungary /*rules*/,
11556  20 /*numRules*/,
11557 };
11558 
11559 //---------------------------------------------------------------------------
11560 // Policy name: Indianapolis
11561 // Rules: 4
11562 //---------------------------------------------------------------------------
11563 
11564 static const complete::Info::ZoneRule kZoneRulesIndianapolis[] ACE_TIME_PROGMEM = {
11565  // Anchor: Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
11566  {
11567  -32767 /*fromYear*/,
11568  -32767 /*toYear*/,
11569  1 /*inMonth*/,
11570  0 /*onDayOfWeek*/,
11571  1 /*onDayOfMonth*/,
11572  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11573  0 /*atTimeCode (0/15)*/,
11574  0 /*deltaMinutes*/,
11575  25 /*letterIndex ("S")*/,
11576  },
11577  // Rule Indianapolis 1941 only - Jun 22 2:00 1:00 D
11578  {
11579  1941 /*fromYear*/,
11580  1941 /*toYear*/,
11581  6 /*inMonth*/,
11582  0 /*onDayOfWeek*/,
11583  22 /*onDayOfMonth*/,
11584  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11585  480 /*atTimeCode (7200/15)*/,
11586  60 /*deltaMinutes*/,
11587  13 /*letterIndex ("D")*/,
11588  },
11589  // Rule Indianapolis 1941 1954 - Sep lastSun 2:00 0 S
11590  {
11591  1941 /*fromYear*/,
11592  1954 /*toYear*/,
11593  9 /*inMonth*/,
11594  7 /*onDayOfWeek*/,
11595  0 /*onDayOfMonth*/,
11596  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11597  480 /*atTimeCode (7200/15)*/,
11598  0 /*deltaMinutes*/,
11599  25 /*letterIndex ("S")*/,
11600  },
11601  // Rule Indianapolis 1946 1954 - Apr lastSun 2:00 1:00 D
11602  {
11603  1946 /*fromYear*/,
11604  1954 /*toYear*/,
11605  4 /*inMonth*/,
11606  7 /*onDayOfWeek*/,
11607  0 /*onDayOfMonth*/,
11608  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11609  480 /*atTimeCode (7200/15)*/,
11610  60 /*deltaMinutes*/,
11611  13 /*letterIndex ("D")*/,
11612  },
11613 
11614 };
11615 
11616 const complete::Info::ZonePolicy kZonePolicyIndianapolis ACE_TIME_PROGMEM = {
11617  kZoneRulesIndianapolis /*rules*/,
11618  4 /*numRules*/,
11619 };
11620 
11621 //---------------------------------------------------------------------------
11622 // Policy name: Iran
11623 // Rules: 41
11624 //---------------------------------------------------------------------------
11625 
11626 static const complete::Info::ZoneRule kZoneRulesIran[] ACE_TIME_PROGMEM = {
11627  // Anchor: Rule Iran 1910 only - Jan 1 00:00 0 -
11628  {
11629  -32767 /*fromYear*/,
11630  -32767 /*toYear*/,
11631  1 /*inMonth*/,
11632  0 /*onDayOfWeek*/,
11633  1 /*onDayOfMonth*/,
11634  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11635  0 /*atTimeCode (0/15)*/,
11636  0 /*deltaMinutes*/,
11637  0 /*letterIndex ("")*/,
11638  },
11639  // Rule Iran 1910 only - Jan 1 00:00 0 -
11640  {
11641  1910 /*fromYear*/,
11642  1910 /*toYear*/,
11643  1 /*inMonth*/,
11644  0 /*onDayOfWeek*/,
11645  1 /*onDayOfMonth*/,
11646  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11647  0 /*atTimeCode (0/15)*/,
11648  0 /*deltaMinutes*/,
11649  0 /*letterIndex ("")*/,
11650  },
11651  // Rule Iran 1977 only - Mar 21 23:00 1:00 -
11652  {
11653  1977 /*fromYear*/,
11654  1977 /*toYear*/,
11655  3 /*inMonth*/,
11656  0 /*onDayOfWeek*/,
11657  21 /*onDayOfMonth*/,
11658  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11659  5520 /*atTimeCode (82800/15)*/,
11660  60 /*deltaMinutes*/,
11661  0 /*letterIndex ("")*/,
11662  },
11663  // Rule Iran 1977 only - Oct 20 24:00 0 -
11664  {
11665  1977 /*fromYear*/,
11666  1977 /*toYear*/,
11667  10 /*inMonth*/,
11668  0 /*onDayOfWeek*/,
11669  20 /*onDayOfMonth*/,
11670  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11671  5760 /*atTimeCode (86400/15)*/,
11672  0 /*deltaMinutes*/,
11673  0 /*letterIndex ("")*/,
11674  },
11675  // Rule Iran 1978 only - Mar 24 24:00 1:00 -
11676  {
11677  1978 /*fromYear*/,
11678  1978 /*toYear*/,
11679  3 /*inMonth*/,
11680  0 /*onDayOfWeek*/,
11681  24 /*onDayOfMonth*/,
11682  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11683  5760 /*atTimeCode (86400/15)*/,
11684  60 /*deltaMinutes*/,
11685  0 /*letterIndex ("")*/,
11686  },
11687  // Rule Iran 1978 only - Aug 5 01:00 0 -
11688  {
11689  1978 /*fromYear*/,
11690  1978 /*toYear*/,
11691  8 /*inMonth*/,
11692  0 /*onDayOfWeek*/,
11693  5 /*onDayOfMonth*/,
11694  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11695  240 /*atTimeCode (3600/15)*/,
11696  0 /*deltaMinutes*/,
11697  0 /*letterIndex ("")*/,
11698  },
11699  // Rule Iran 1979 only - May 26 24:00 1:00 -
11700  {
11701  1979 /*fromYear*/,
11702  1979 /*toYear*/,
11703  5 /*inMonth*/,
11704  0 /*onDayOfWeek*/,
11705  26 /*onDayOfMonth*/,
11706  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11707  5760 /*atTimeCode (86400/15)*/,
11708  60 /*deltaMinutes*/,
11709  0 /*letterIndex ("")*/,
11710  },
11711  // Rule Iran 1979 only - Sep 18 24:00 0 -
11712  {
11713  1979 /*fromYear*/,
11714  1979 /*toYear*/,
11715  9 /*inMonth*/,
11716  0 /*onDayOfWeek*/,
11717  18 /*onDayOfMonth*/,
11718  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11719  5760 /*atTimeCode (86400/15)*/,
11720  0 /*deltaMinutes*/,
11721  0 /*letterIndex ("")*/,
11722  },
11723  // Rule Iran 1980 only - Mar 20 24:00 1:00 -
11724  {
11725  1980 /*fromYear*/,
11726  1980 /*toYear*/,
11727  3 /*inMonth*/,
11728  0 /*onDayOfWeek*/,
11729  20 /*onDayOfMonth*/,
11730  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11731  5760 /*atTimeCode (86400/15)*/,
11732  60 /*deltaMinutes*/,
11733  0 /*letterIndex ("")*/,
11734  },
11735  // Rule Iran 1980 only - Sep 22 24:00 0 -
11736  {
11737  1980 /*fromYear*/,
11738  1980 /*toYear*/,
11739  9 /*inMonth*/,
11740  0 /*onDayOfWeek*/,
11741  22 /*onDayOfMonth*/,
11742  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11743  5760 /*atTimeCode (86400/15)*/,
11744  0 /*deltaMinutes*/,
11745  0 /*letterIndex ("")*/,
11746  },
11747  // Rule Iran 1991 only - May 2 24:00 1:00 -
11748  {
11749  1991 /*fromYear*/,
11750  1991 /*toYear*/,
11751  5 /*inMonth*/,
11752  0 /*onDayOfWeek*/,
11753  2 /*onDayOfMonth*/,
11754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11755  5760 /*atTimeCode (86400/15)*/,
11756  60 /*deltaMinutes*/,
11757  0 /*letterIndex ("")*/,
11758  },
11759  // Rule Iran 1992 1995 - Mar 21 24:00 1:00 -
11760  {
11761  1992 /*fromYear*/,
11762  1995 /*toYear*/,
11763  3 /*inMonth*/,
11764  0 /*onDayOfWeek*/,
11765  21 /*onDayOfMonth*/,
11766  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11767  5760 /*atTimeCode (86400/15)*/,
11768  60 /*deltaMinutes*/,
11769  0 /*letterIndex ("")*/,
11770  },
11771  // Rule Iran 1991 1995 - Sep 21 24:00 0 -
11772  {
11773  1991 /*fromYear*/,
11774  1995 /*toYear*/,
11775  9 /*inMonth*/,
11776  0 /*onDayOfWeek*/,
11777  21 /*onDayOfMonth*/,
11778  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11779  5760 /*atTimeCode (86400/15)*/,
11780  0 /*deltaMinutes*/,
11781  0 /*letterIndex ("")*/,
11782  },
11783  // Rule Iran 1996 only - Mar 20 24:00 1:00 -
11784  {
11785  1996 /*fromYear*/,
11786  1996 /*toYear*/,
11787  3 /*inMonth*/,
11788  0 /*onDayOfWeek*/,
11789  20 /*onDayOfMonth*/,
11790  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11791  5760 /*atTimeCode (86400/15)*/,
11792  60 /*deltaMinutes*/,
11793  0 /*letterIndex ("")*/,
11794  },
11795  // Rule Iran 1996 only - Sep 20 24:00 0 -
11796  {
11797  1996 /*fromYear*/,
11798  1996 /*toYear*/,
11799  9 /*inMonth*/,
11800  0 /*onDayOfWeek*/,
11801  20 /*onDayOfMonth*/,
11802  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11803  5760 /*atTimeCode (86400/15)*/,
11804  0 /*deltaMinutes*/,
11805  0 /*letterIndex ("")*/,
11806  },
11807  // Rule Iran 1997 1999 - Mar 21 24:00 1:00 -
11808  {
11809  1997 /*fromYear*/,
11810  1999 /*toYear*/,
11811  3 /*inMonth*/,
11812  0 /*onDayOfWeek*/,
11813  21 /*onDayOfMonth*/,
11814  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11815  5760 /*atTimeCode (86400/15)*/,
11816  60 /*deltaMinutes*/,
11817  0 /*letterIndex ("")*/,
11818  },
11819  // Rule Iran 1997 1999 - Sep 21 24:00 0 -
11820  {
11821  1997 /*fromYear*/,
11822  1999 /*toYear*/,
11823  9 /*inMonth*/,
11824  0 /*onDayOfWeek*/,
11825  21 /*onDayOfMonth*/,
11826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11827  5760 /*atTimeCode (86400/15)*/,
11828  0 /*deltaMinutes*/,
11829  0 /*letterIndex ("")*/,
11830  },
11831  // Rule Iran 2000 only - Mar 20 24:00 1:00 -
11832  {
11833  2000 /*fromYear*/,
11834  2000 /*toYear*/,
11835  3 /*inMonth*/,
11836  0 /*onDayOfWeek*/,
11837  20 /*onDayOfMonth*/,
11838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11839  5760 /*atTimeCode (86400/15)*/,
11840  60 /*deltaMinutes*/,
11841  0 /*letterIndex ("")*/,
11842  },
11843  // Rule Iran 2000 only - Sep 20 24:00 0 -
11844  {
11845  2000 /*fromYear*/,
11846  2000 /*toYear*/,
11847  9 /*inMonth*/,
11848  0 /*onDayOfWeek*/,
11849  20 /*onDayOfMonth*/,
11850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11851  5760 /*atTimeCode (86400/15)*/,
11852  0 /*deltaMinutes*/,
11853  0 /*letterIndex ("")*/,
11854  },
11855  // Rule Iran 2001 2003 - Mar 21 24:00 1:00 -
11856  {
11857  2001 /*fromYear*/,
11858  2003 /*toYear*/,
11859  3 /*inMonth*/,
11860  0 /*onDayOfWeek*/,
11861  21 /*onDayOfMonth*/,
11862  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11863  5760 /*atTimeCode (86400/15)*/,
11864  60 /*deltaMinutes*/,
11865  0 /*letterIndex ("")*/,
11866  },
11867  // Rule Iran 2001 2003 - Sep 21 24:00 0 -
11868  {
11869  2001 /*fromYear*/,
11870  2003 /*toYear*/,
11871  9 /*inMonth*/,
11872  0 /*onDayOfWeek*/,
11873  21 /*onDayOfMonth*/,
11874  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11875  5760 /*atTimeCode (86400/15)*/,
11876  0 /*deltaMinutes*/,
11877  0 /*letterIndex ("")*/,
11878  },
11879  // Rule Iran 2004 only - Mar 20 24:00 1:00 -
11880  {
11881  2004 /*fromYear*/,
11882  2004 /*toYear*/,
11883  3 /*inMonth*/,
11884  0 /*onDayOfWeek*/,
11885  20 /*onDayOfMonth*/,
11886  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11887  5760 /*atTimeCode (86400/15)*/,
11888  60 /*deltaMinutes*/,
11889  0 /*letterIndex ("")*/,
11890  },
11891  // Rule Iran 2004 only - Sep 20 24:00 0 -
11892  {
11893  2004 /*fromYear*/,
11894  2004 /*toYear*/,
11895  9 /*inMonth*/,
11896  0 /*onDayOfWeek*/,
11897  20 /*onDayOfMonth*/,
11898  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11899  5760 /*atTimeCode (86400/15)*/,
11900  0 /*deltaMinutes*/,
11901  0 /*letterIndex ("")*/,
11902  },
11903  // Rule Iran 2005 only - Mar 21 24:00 1:00 -
11904  {
11905  2005 /*fromYear*/,
11906  2005 /*toYear*/,
11907  3 /*inMonth*/,
11908  0 /*onDayOfWeek*/,
11909  21 /*onDayOfMonth*/,
11910  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11911  5760 /*atTimeCode (86400/15)*/,
11912  60 /*deltaMinutes*/,
11913  0 /*letterIndex ("")*/,
11914  },
11915  // Rule Iran 2005 only - Sep 21 24:00 0 -
11916  {
11917  2005 /*fromYear*/,
11918  2005 /*toYear*/,
11919  9 /*inMonth*/,
11920  0 /*onDayOfWeek*/,
11921  21 /*onDayOfMonth*/,
11922  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11923  5760 /*atTimeCode (86400/15)*/,
11924  0 /*deltaMinutes*/,
11925  0 /*letterIndex ("")*/,
11926  },
11927  // Rule Iran 2008 only - Mar 20 24:00 1:00 -
11928  {
11929  2008 /*fromYear*/,
11930  2008 /*toYear*/,
11931  3 /*inMonth*/,
11932  0 /*onDayOfWeek*/,
11933  20 /*onDayOfMonth*/,
11934  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11935  5760 /*atTimeCode (86400/15)*/,
11936  60 /*deltaMinutes*/,
11937  0 /*letterIndex ("")*/,
11938  },
11939  // Rule Iran 2008 only - Sep 20 24:00 0 -
11940  {
11941  2008 /*fromYear*/,
11942  2008 /*toYear*/,
11943  9 /*inMonth*/,
11944  0 /*onDayOfWeek*/,
11945  20 /*onDayOfMonth*/,
11946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11947  5760 /*atTimeCode (86400/15)*/,
11948  0 /*deltaMinutes*/,
11949  0 /*letterIndex ("")*/,
11950  },
11951  // Rule Iran 2009 2011 - Mar 21 24:00 1:00 -
11952  {
11953  2009 /*fromYear*/,
11954  2011 /*toYear*/,
11955  3 /*inMonth*/,
11956  0 /*onDayOfWeek*/,
11957  21 /*onDayOfMonth*/,
11958  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11959  5760 /*atTimeCode (86400/15)*/,
11960  60 /*deltaMinutes*/,
11961  0 /*letterIndex ("")*/,
11962  },
11963  // Rule Iran 2009 2011 - Sep 21 24:00 0 -
11964  {
11965  2009 /*fromYear*/,
11966  2011 /*toYear*/,
11967  9 /*inMonth*/,
11968  0 /*onDayOfWeek*/,
11969  21 /*onDayOfMonth*/,
11970  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11971  5760 /*atTimeCode (86400/15)*/,
11972  0 /*deltaMinutes*/,
11973  0 /*letterIndex ("")*/,
11974  },
11975  // Rule Iran 2012 only - Mar 20 24:00 1:00 -
11976  {
11977  2012 /*fromYear*/,
11978  2012 /*toYear*/,
11979  3 /*inMonth*/,
11980  0 /*onDayOfWeek*/,
11981  20 /*onDayOfMonth*/,
11982  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11983  5760 /*atTimeCode (86400/15)*/,
11984  60 /*deltaMinutes*/,
11985  0 /*letterIndex ("")*/,
11986  },
11987  // Rule Iran 2012 only - Sep 20 24:00 0 -
11988  {
11989  2012 /*fromYear*/,
11990  2012 /*toYear*/,
11991  9 /*inMonth*/,
11992  0 /*onDayOfWeek*/,
11993  20 /*onDayOfMonth*/,
11994  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
11995  5760 /*atTimeCode (86400/15)*/,
11996  0 /*deltaMinutes*/,
11997  0 /*letterIndex ("")*/,
11998  },
11999  // Rule Iran 2013 2015 - Mar 21 24:00 1:00 -
12000  {
12001  2013 /*fromYear*/,
12002  2015 /*toYear*/,
12003  3 /*inMonth*/,
12004  0 /*onDayOfWeek*/,
12005  21 /*onDayOfMonth*/,
12006  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12007  5760 /*atTimeCode (86400/15)*/,
12008  60 /*deltaMinutes*/,
12009  0 /*letterIndex ("")*/,
12010  },
12011  // Rule Iran 2013 2015 - Sep 21 24:00 0 -
12012  {
12013  2013 /*fromYear*/,
12014  2015 /*toYear*/,
12015  9 /*inMonth*/,
12016  0 /*onDayOfWeek*/,
12017  21 /*onDayOfMonth*/,
12018  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12019  5760 /*atTimeCode (86400/15)*/,
12020  0 /*deltaMinutes*/,
12021  0 /*letterIndex ("")*/,
12022  },
12023  // Rule Iran 2016 only - Mar 20 24:00 1:00 -
12024  {
12025  2016 /*fromYear*/,
12026  2016 /*toYear*/,
12027  3 /*inMonth*/,
12028  0 /*onDayOfWeek*/,
12029  20 /*onDayOfMonth*/,
12030  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12031  5760 /*atTimeCode (86400/15)*/,
12032  60 /*deltaMinutes*/,
12033  0 /*letterIndex ("")*/,
12034  },
12035  // Rule Iran 2016 only - Sep 20 24:00 0 -
12036  {
12037  2016 /*fromYear*/,
12038  2016 /*toYear*/,
12039  9 /*inMonth*/,
12040  0 /*onDayOfWeek*/,
12041  20 /*onDayOfMonth*/,
12042  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12043  5760 /*atTimeCode (86400/15)*/,
12044  0 /*deltaMinutes*/,
12045  0 /*letterIndex ("")*/,
12046  },
12047  // Rule Iran 2017 2019 - Mar 21 24:00 1:00 -
12048  {
12049  2017 /*fromYear*/,
12050  2019 /*toYear*/,
12051  3 /*inMonth*/,
12052  0 /*onDayOfWeek*/,
12053  21 /*onDayOfMonth*/,
12054  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12055  5760 /*atTimeCode (86400/15)*/,
12056  60 /*deltaMinutes*/,
12057  0 /*letterIndex ("")*/,
12058  },
12059  // Rule Iran 2017 2019 - Sep 21 24:00 0 -
12060  {
12061  2017 /*fromYear*/,
12062  2019 /*toYear*/,
12063  9 /*inMonth*/,
12064  0 /*onDayOfWeek*/,
12065  21 /*onDayOfMonth*/,
12066  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12067  5760 /*atTimeCode (86400/15)*/,
12068  0 /*deltaMinutes*/,
12069  0 /*letterIndex ("")*/,
12070  },
12071  // Rule Iran 2020 only - Mar 20 24:00 1:00 -
12072  {
12073  2020 /*fromYear*/,
12074  2020 /*toYear*/,
12075  3 /*inMonth*/,
12076  0 /*onDayOfWeek*/,
12077  20 /*onDayOfMonth*/,
12078  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12079  5760 /*atTimeCode (86400/15)*/,
12080  60 /*deltaMinutes*/,
12081  0 /*letterIndex ("")*/,
12082  },
12083  // Rule Iran 2020 only - Sep 20 24:00 0 -
12084  {
12085  2020 /*fromYear*/,
12086  2020 /*toYear*/,
12087  9 /*inMonth*/,
12088  0 /*onDayOfWeek*/,
12089  20 /*onDayOfMonth*/,
12090  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12091  5760 /*atTimeCode (86400/15)*/,
12092  0 /*deltaMinutes*/,
12093  0 /*letterIndex ("")*/,
12094  },
12095  // Rule Iran 2021 2022 - Mar 21 24:00 1:00 -
12096  {
12097  2021 /*fromYear*/,
12098  2022 /*toYear*/,
12099  3 /*inMonth*/,
12100  0 /*onDayOfWeek*/,
12101  21 /*onDayOfMonth*/,
12102  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12103  5760 /*atTimeCode (86400/15)*/,
12104  60 /*deltaMinutes*/,
12105  0 /*letterIndex ("")*/,
12106  },
12107  // Rule Iran 2021 2022 - Sep 21 24:00 0 -
12108  {
12109  2021 /*fromYear*/,
12110  2022 /*toYear*/,
12111  9 /*inMonth*/,
12112  0 /*onDayOfWeek*/,
12113  21 /*onDayOfMonth*/,
12114  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12115  5760 /*atTimeCode (86400/15)*/,
12116  0 /*deltaMinutes*/,
12117  0 /*letterIndex ("")*/,
12118  },
12119 
12120 };
12121 
12122 const complete::Info::ZonePolicy kZonePolicyIran ACE_TIME_PROGMEM = {
12123  kZoneRulesIran /*rules*/,
12124  41 /*numRules*/,
12125 };
12126 
12127 //---------------------------------------------------------------------------
12128 // Policy name: Iraq
12129 // Rules: 9
12130 //---------------------------------------------------------------------------
12131 
12132 static const complete::Info::ZoneRule kZoneRulesIraq[] ACE_TIME_PROGMEM = {
12133  // Anchor: Rule Iraq 1982 1984 - Oct 1 0:00 0 -
12134  {
12135  -32767 /*fromYear*/,
12136  -32767 /*toYear*/,
12137  1 /*inMonth*/,
12138  0 /*onDayOfWeek*/,
12139  1 /*onDayOfMonth*/,
12140  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12141  0 /*atTimeCode (0/15)*/,
12142  0 /*deltaMinutes*/,
12143  0 /*letterIndex ("")*/,
12144  },
12145  // Rule Iraq 1982 only - May 1 0:00 1:00 -
12146  {
12147  1982 /*fromYear*/,
12148  1982 /*toYear*/,
12149  5 /*inMonth*/,
12150  0 /*onDayOfWeek*/,
12151  1 /*onDayOfMonth*/,
12152  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12153  0 /*atTimeCode (0/15)*/,
12154  60 /*deltaMinutes*/,
12155  0 /*letterIndex ("")*/,
12156  },
12157  // Rule Iraq 1982 1984 - Oct 1 0:00 0 -
12158  {
12159  1982 /*fromYear*/,
12160  1984 /*toYear*/,
12161  10 /*inMonth*/,
12162  0 /*onDayOfWeek*/,
12163  1 /*onDayOfMonth*/,
12164  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12165  0 /*atTimeCode (0/15)*/,
12166  0 /*deltaMinutes*/,
12167  0 /*letterIndex ("")*/,
12168  },
12169  // Rule Iraq 1983 only - Mar 31 0:00 1:00 -
12170  {
12171  1983 /*fromYear*/,
12172  1983 /*toYear*/,
12173  3 /*inMonth*/,
12174  0 /*onDayOfWeek*/,
12175  31 /*onDayOfMonth*/,
12176  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12177  0 /*atTimeCode (0/15)*/,
12178  60 /*deltaMinutes*/,
12179  0 /*letterIndex ("")*/,
12180  },
12181  // Rule Iraq 1984 1985 - Apr 1 0:00 1:00 -
12182  {
12183  1984 /*fromYear*/,
12184  1985 /*toYear*/,
12185  4 /*inMonth*/,
12186  0 /*onDayOfWeek*/,
12187  1 /*onDayOfMonth*/,
12188  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12189  0 /*atTimeCode (0/15)*/,
12190  60 /*deltaMinutes*/,
12191  0 /*letterIndex ("")*/,
12192  },
12193  // Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
12194  {
12195  1985 /*fromYear*/,
12196  1990 /*toYear*/,
12197  9 /*inMonth*/,
12198  7 /*onDayOfWeek*/,
12199  0 /*onDayOfMonth*/,
12200  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12201  240 /*atTimeCode (3600/15)*/,
12202  0 /*deltaMinutes*/,
12203  0 /*letterIndex ("")*/,
12204  },
12205  // Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 -
12206  {
12207  1986 /*fromYear*/,
12208  1990 /*toYear*/,
12209  3 /*inMonth*/,
12210  7 /*onDayOfWeek*/,
12211  0 /*onDayOfMonth*/,
12212  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12213  240 /*atTimeCode (3600/15)*/,
12214  60 /*deltaMinutes*/,
12215  0 /*letterIndex ("")*/,
12216  },
12217  // Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 -
12218  {
12219  1991 /*fromYear*/,
12220  2007 /*toYear*/,
12221  4 /*inMonth*/,
12222  0 /*onDayOfWeek*/,
12223  1 /*onDayOfMonth*/,
12224  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12225  720 /*atTimeCode (10800/15)*/,
12226  60 /*deltaMinutes*/,
12227  0 /*letterIndex ("")*/,
12228  },
12229  // Rule Iraq 1991 2007 - Oct 1 3:00s 0 -
12230  {
12231  1991 /*fromYear*/,
12232  2007 /*toYear*/,
12233  10 /*inMonth*/,
12234  0 /*onDayOfWeek*/,
12235  1 /*onDayOfMonth*/,
12236  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12237  720 /*atTimeCode (10800/15)*/,
12238  0 /*deltaMinutes*/,
12239  0 /*letterIndex ("")*/,
12240  },
12241 
12242 };
12243 
12244 const complete::Info::ZonePolicy kZonePolicyIraq ACE_TIME_PROGMEM = {
12245  kZoneRulesIraq /*rules*/,
12246  9 /*numRules*/,
12247 };
12248 
12249 //---------------------------------------------------------------------------
12250 // Policy name: Italy
12251 // Rules: 42
12252 //---------------------------------------------------------------------------
12253 
12254 static const complete::Info::ZoneRule kZoneRulesItaly[] ACE_TIME_PROGMEM = {
12255  // Anchor: Rule Italy 1916 1917 - Sep 30 24:00 0 -
12256  {
12257  -32767 /*fromYear*/,
12258  -32767 /*toYear*/,
12259  1 /*inMonth*/,
12260  0 /*onDayOfWeek*/,
12261  1 /*onDayOfMonth*/,
12262  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12263  0 /*atTimeCode (0/15)*/,
12264  0 /*deltaMinutes*/,
12265  0 /*letterIndex ("")*/,
12266  },
12267  // Rule Italy 1916 only - Jun 3 24:00 1:00 S
12268  {
12269  1916 /*fromYear*/,
12270  1916 /*toYear*/,
12271  6 /*inMonth*/,
12272  0 /*onDayOfWeek*/,
12273  3 /*onDayOfMonth*/,
12274  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12275  5760 /*atTimeCode (86400/15)*/,
12276  60 /*deltaMinutes*/,
12277  25 /*letterIndex ("S")*/,
12278  },
12279  // Rule Italy 1916 1917 - Sep 30 24:00 0 -
12280  {
12281  1916 /*fromYear*/,
12282  1917 /*toYear*/,
12283  9 /*inMonth*/,
12284  0 /*onDayOfWeek*/,
12285  30 /*onDayOfMonth*/,
12286  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12287  5760 /*atTimeCode (86400/15)*/,
12288  0 /*deltaMinutes*/,
12289  0 /*letterIndex ("")*/,
12290  },
12291  // Rule Italy 1917 only - Mar 31 24:00 1:00 S
12292  {
12293  1917 /*fromYear*/,
12294  1917 /*toYear*/,
12295  3 /*inMonth*/,
12296  0 /*onDayOfWeek*/,
12297  31 /*onDayOfMonth*/,
12298  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12299  5760 /*atTimeCode (86400/15)*/,
12300  60 /*deltaMinutes*/,
12301  25 /*letterIndex ("S")*/,
12302  },
12303  // Rule Italy 1918 only - Mar 9 24:00 1:00 S
12304  {
12305  1918 /*fromYear*/,
12306  1918 /*toYear*/,
12307  3 /*inMonth*/,
12308  0 /*onDayOfWeek*/,
12309  9 /*onDayOfMonth*/,
12310  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12311  5760 /*atTimeCode (86400/15)*/,
12312  60 /*deltaMinutes*/,
12313  25 /*letterIndex ("S")*/,
12314  },
12315  // Rule Italy 1918 only - Oct 6 24:00 0 -
12316  {
12317  1918 /*fromYear*/,
12318  1918 /*toYear*/,
12319  10 /*inMonth*/,
12320  0 /*onDayOfWeek*/,
12321  6 /*onDayOfMonth*/,
12322  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12323  5760 /*atTimeCode (86400/15)*/,
12324  0 /*deltaMinutes*/,
12325  0 /*letterIndex ("")*/,
12326  },
12327  // Rule Italy 1919 only - Mar 1 24:00 1:00 S
12328  {
12329  1919 /*fromYear*/,
12330  1919 /*toYear*/,
12331  3 /*inMonth*/,
12332  0 /*onDayOfWeek*/,
12333  1 /*onDayOfMonth*/,
12334  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12335  5760 /*atTimeCode (86400/15)*/,
12336  60 /*deltaMinutes*/,
12337  25 /*letterIndex ("S")*/,
12338  },
12339  // Rule Italy 1919 only - Oct 4 24:00 0 -
12340  {
12341  1919 /*fromYear*/,
12342  1919 /*toYear*/,
12343  10 /*inMonth*/,
12344  0 /*onDayOfWeek*/,
12345  4 /*onDayOfMonth*/,
12346  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12347  5760 /*atTimeCode (86400/15)*/,
12348  0 /*deltaMinutes*/,
12349  0 /*letterIndex ("")*/,
12350  },
12351  // Rule Italy 1920 only - Mar 20 24:00 1:00 S
12352  {
12353  1920 /*fromYear*/,
12354  1920 /*toYear*/,
12355  3 /*inMonth*/,
12356  0 /*onDayOfWeek*/,
12357  20 /*onDayOfMonth*/,
12358  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12359  5760 /*atTimeCode (86400/15)*/,
12360  60 /*deltaMinutes*/,
12361  25 /*letterIndex ("S")*/,
12362  },
12363  // Rule Italy 1920 only - Sep 18 24:00 0 -
12364  {
12365  1920 /*fromYear*/,
12366  1920 /*toYear*/,
12367  9 /*inMonth*/,
12368  0 /*onDayOfWeek*/,
12369  18 /*onDayOfMonth*/,
12370  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12371  5760 /*atTimeCode (86400/15)*/,
12372  0 /*deltaMinutes*/,
12373  0 /*letterIndex ("")*/,
12374  },
12375  // Rule Italy 1940 only - Jun 14 24:00 1:00 S
12376  {
12377  1940 /*fromYear*/,
12378  1940 /*toYear*/,
12379  6 /*inMonth*/,
12380  0 /*onDayOfWeek*/,
12381  14 /*onDayOfMonth*/,
12382  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12383  5760 /*atTimeCode (86400/15)*/,
12384  60 /*deltaMinutes*/,
12385  25 /*letterIndex ("S")*/,
12386  },
12387  // Rule Italy 1942 only - Nov 2 2:00s 0 -
12388  {
12389  1942 /*fromYear*/,
12390  1942 /*toYear*/,
12391  11 /*inMonth*/,
12392  0 /*onDayOfWeek*/,
12393  2 /*onDayOfMonth*/,
12394  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12395  480 /*atTimeCode (7200/15)*/,
12396  0 /*deltaMinutes*/,
12397  0 /*letterIndex ("")*/,
12398  },
12399  // Rule Italy 1943 only - Mar 29 2:00s 1:00 S
12400  {
12401  1943 /*fromYear*/,
12402  1943 /*toYear*/,
12403  3 /*inMonth*/,
12404  0 /*onDayOfWeek*/,
12405  29 /*onDayOfMonth*/,
12406  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12407  480 /*atTimeCode (7200/15)*/,
12408  60 /*deltaMinutes*/,
12409  25 /*letterIndex ("S")*/,
12410  },
12411  // Rule Italy 1943 only - Oct 4 2:00s 0 -
12412  {
12413  1943 /*fromYear*/,
12414  1943 /*toYear*/,
12415  10 /*inMonth*/,
12416  0 /*onDayOfWeek*/,
12417  4 /*onDayOfMonth*/,
12418  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12419  480 /*atTimeCode (7200/15)*/,
12420  0 /*deltaMinutes*/,
12421  0 /*letterIndex ("")*/,
12422  },
12423  // Rule Italy 1944 only - Apr 2 2:00s 1:00 S
12424  {
12425  1944 /*fromYear*/,
12426  1944 /*toYear*/,
12427  4 /*inMonth*/,
12428  0 /*onDayOfWeek*/,
12429  2 /*onDayOfMonth*/,
12430  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12431  480 /*atTimeCode (7200/15)*/,
12432  60 /*deltaMinutes*/,
12433  25 /*letterIndex ("S")*/,
12434  },
12435  // Rule Italy 1944 only - Sep 17 2:00s 0 -
12436  {
12437  1944 /*fromYear*/,
12438  1944 /*toYear*/,
12439  9 /*inMonth*/,
12440  0 /*onDayOfWeek*/,
12441  17 /*onDayOfMonth*/,
12442  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12443  480 /*atTimeCode (7200/15)*/,
12444  0 /*deltaMinutes*/,
12445  0 /*letterIndex ("")*/,
12446  },
12447  // Rule Italy 1945 only - Apr 2 2:00 1:00 S
12448  {
12449  1945 /*fromYear*/,
12450  1945 /*toYear*/,
12451  4 /*inMonth*/,
12452  0 /*onDayOfWeek*/,
12453  2 /*onDayOfMonth*/,
12454  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12455  480 /*atTimeCode (7200/15)*/,
12456  60 /*deltaMinutes*/,
12457  25 /*letterIndex ("S")*/,
12458  },
12459  // Rule Italy 1945 only - Sep 15 1:00 0 -
12460  {
12461  1945 /*fromYear*/,
12462  1945 /*toYear*/,
12463  9 /*inMonth*/,
12464  0 /*onDayOfWeek*/,
12465  15 /*onDayOfMonth*/,
12466  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12467  240 /*atTimeCode (3600/15)*/,
12468  0 /*deltaMinutes*/,
12469  0 /*letterIndex ("")*/,
12470  },
12471  // Rule Italy 1946 only - Mar 17 2:00s 1:00 S
12472  {
12473  1946 /*fromYear*/,
12474  1946 /*toYear*/,
12475  3 /*inMonth*/,
12476  0 /*onDayOfWeek*/,
12477  17 /*onDayOfMonth*/,
12478  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12479  480 /*atTimeCode (7200/15)*/,
12480  60 /*deltaMinutes*/,
12481  25 /*letterIndex ("S")*/,
12482  },
12483  // Rule Italy 1946 only - Oct 6 2:00s 0 -
12484  {
12485  1946 /*fromYear*/,
12486  1946 /*toYear*/,
12487  10 /*inMonth*/,
12488  0 /*onDayOfWeek*/,
12489  6 /*onDayOfMonth*/,
12490  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12491  480 /*atTimeCode (7200/15)*/,
12492  0 /*deltaMinutes*/,
12493  0 /*letterIndex ("")*/,
12494  },
12495  // Rule Italy 1947 only - Mar 16 0:00s 1:00 S
12496  {
12497  1947 /*fromYear*/,
12498  1947 /*toYear*/,
12499  3 /*inMonth*/,
12500  0 /*onDayOfWeek*/,
12501  16 /*onDayOfMonth*/,
12502  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12503  0 /*atTimeCode (0/15)*/,
12504  60 /*deltaMinutes*/,
12505  25 /*letterIndex ("S")*/,
12506  },
12507  // Rule Italy 1947 only - Oct 5 0:00s 0 -
12508  {
12509  1947 /*fromYear*/,
12510  1947 /*toYear*/,
12511  10 /*inMonth*/,
12512  0 /*onDayOfWeek*/,
12513  5 /*onDayOfMonth*/,
12514  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12515  0 /*atTimeCode (0/15)*/,
12516  0 /*deltaMinutes*/,
12517  0 /*letterIndex ("")*/,
12518  },
12519  // Rule Italy 1948 only - Feb 29 2:00s 1:00 S
12520  {
12521  1948 /*fromYear*/,
12522  1948 /*toYear*/,
12523  2 /*inMonth*/,
12524  0 /*onDayOfWeek*/,
12525  29 /*onDayOfMonth*/,
12526  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12527  480 /*atTimeCode (7200/15)*/,
12528  60 /*deltaMinutes*/,
12529  25 /*letterIndex ("S")*/,
12530  },
12531  // Rule Italy 1948 only - Oct 3 2:00s 0 -
12532  {
12533  1948 /*fromYear*/,
12534  1948 /*toYear*/,
12535  10 /*inMonth*/,
12536  0 /*onDayOfWeek*/,
12537  3 /*onDayOfMonth*/,
12538  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12539  480 /*atTimeCode (7200/15)*/,
12540  0 /*deltaMinutes*/,
12541  0 /*letterIndex ("")*/,
12542  },
12543  // Rule Italy 1966 1968 - May Sun>=22 0:00s 1:00 S
12544  {
12545  1966 /*fromYear*/,
12546  1968 /*toYear*/,
12547  5 /*inMonth*/,
12548  7 /*onDayOfWeek*/,
12549  22 /*onDayOfMonth*/,
12550  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12551  0 /*atTimeCode (0/15)*/,
12552  60 /*deltaMinutes*/,
12553  25 /*letterIndex ("S")*/,
12554  },
12555  // Rule Italy 1966 only - Sep 24 24:00 0 -
12556  {
12557  1966 /*fromYear*/,
12558  1966 /*toYear*/,
12559  9 /*inMonth*/,
12560  0 /*onDayOfWeek*/,
12561  24 /*onDayOfMonth*/,
12562  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12563  5760 /*atTimeCode (86400/15)*/,
12564  0 /*deltaMinutes*/,
12565  0 /*letterIndex ("")*/,
12566  },
12567  // Rule Italy 1967 1969 - Sep Sun>=22 0:00s 0 -
12568  {
12569  1967 /*fromYear*/,
12570  1969 /*toYear*/,
12571  9 /*inMonth*/,
12572  7 /*onDayOfWeek*/,
12573  22 /*onDayOfMonth*/,
12574  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12575  0 /*atTimeCode (0/15)*/,
12576  0 /*deltaMinutes*/,
12577  0 /*letterIndex ("")*/,
12578  },
12579  // Rule Italy 1969 only - Jun 1 0:00s 1:00 S
12580  {
12581  1969 /*fromYear*/,
12582  1969 /*toYear*/,
12583  6 /*inMonth*/,
12584  0 /*onDayOfWeek*/,
12585  1 /*onDayOfMonth*/,
12586  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12587  0 /*atTimeCode (0/15)*/,
12588  60 /*deltaMinutes*/,
12589  25 /*letterIndex ("S")*/,
12590  },
12591  // Rule Italy 1970 only - May 31 0:00s 1:00 S
12592  {
12593  1970 /*fromYear*/,
12594  1970 /*toYear*/,
12595  5 /*inMonth*/,
12596  0 /*onDayOfWeek*/,
12597  31 /*onDayOfMonth*/,
12598  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12599  0 /*atTimeCode (0/15)*/,
12600  60 /*deltaMinutes*/,
12601  25 /*letterIndex ("S")*/,
12602  },
12603  // Rule Italy 1970 only - Sep lastSun 0:00s 0 -
12604  {
12605  1970 /*fromYear*/,
12606  1970 /*toYear*/,
12607  9 /*inMonth*/,
12608  7 /*onDayOfWeek*/,
12609  0 /*onDayOfMonth*/,
12610  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12611  0 /*atTimeCode (0/15)*/,
12612  0 /*deltaMinutes*/,
12613  0 /*letterIndex ("")*/,
12614  },
12615  // Rule Italy 1971 1972 - May Sun>=22 0:00s 1:00 S
12616  {
12617  1971 /*fromYear*/,
12618  1972 /*toYear*/,
12619  5 /*inMonth*/,
12620  7 /*onDayOfWeek*/,
12621  22 /*onDayOfMonth*/,
12622  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12623  0 /*atTimeCode (0/15)*/,
12624  60 /*deltaMinutes*/,
12625  25 /*letterIndex ("S")*/,
12626  },
12627  // Rule Italy 1971 only - Sep lastSun 0:00s 0 -
12628  {
12629  1971 /*fromYear*/,
12630  1971 /*toYear*/,
12631  9 /*inMonth*/,
12632  7 /*onDayOfWeek*/,
12633  0 /*onDayOfMonth*/,
12634  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12635  0 /*atTimeCode (0/15)*/,
12636  0 /*deltaMinutes*/,
12637  0 /*letterIndex ("")*/,
12638  },
12639  // Rule Italy 1972 only - Oct 1 0:00s 0 -
12640  {
12641  1972 /*fromYear*/,
12642  1972 /*toYear*/,
12643  10 /*inMonth*/,
12644  0 /*onDayOfWeek*/,
12645  1 /*onDayOfMonth*/,
12646  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12647  0 /*atTimeCode (0/15)*/,
12648  0 /*deltaMinutes*/,
12649  0 /*letterIndex ("")*/,
12650  },
12651  // Rule Italy 1973 only - Jun 3 0:00s 1:00 S
12652  {
12653  1973 /*fromYear*/,
12654  1973 /*toYear*/,
12655  6 /*inMonth*/,
12656  0 /*onDayOfWeek*/,
12657  3 /*onDayOfMonth*/,
12658  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12659  0 /*atTimeCode (0/15)*/,
12660  60 /*deltaMinutes*/,
12661  25 /*letterIndex ("S")*/,
12662  },
12663  // Rule Italy 1973 1974 - Sep lastSun 0:00s 0 -
12664  {
12665  1973 /*fromYear*/,
12666  1974 /*toYear*/,
12667  9 /*inMonth*/,
12668  7 /*onDayOfWeek*/,
12669  0 /*onDayOfMonth*/,
12670  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12671  0 /*atTimeCode (0/15)*/,
12672  0 /*deltaMinutes*/,
12673  0 /*letterIndex ("")*/,
12674  },
12675  // Rule Italy 1974 only - May 26 0:00s 1:00 S
12676  {
12677  1974 /*fromYear*/,
12678  1974 /*toYear*/,
12679  5 /*inMonth*/,
12680  0 /*onDayOfWeek*/,
12681  26 /*onDayOfMonth*/,
12682  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12683  0 /*atTimeCode (0/15)*/,
12684  60 /*deltaMinutes*/,
12685  25 /*letterIndex ("S")*/,
12686  },
12687  // Rule Italy 1975 only - Jun 1 0:00s 1:00 S
12688  {
12689  1975 /*fromYear*/,
12690  1975 /*toYear*/,
12691  6 /*inMonth*/,
12692  0 /*onDayOfWeek*/,
12693  1 /*onDayOfMonth*/,
12694  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12695  0 /*atTimeCode (0/15)*/,
12696  60 /*deltaMinutes*/,
12697  25 /*letterIndex ("S")*/,
12698  },
12699  // Rule Italy 1975 1977 - Sep lastSun 0:00s 0 -
12700  {
12701  1975 /*fromYear*/,
12702  1977 /*toYear*/,
12703  9 /*inMonth*/,
12704  7 /*onDayOfWeek*/,
12705  0 /*onDayOfMonth*/,
12706  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12707  0 /*atTimeCode (0/15)*/,
12708  0 /*deltaMinutes*/,
12709  0 /*letterIndex ("")*/,
12710  },
12711  // Rule Italy 1976 only - May 30 0:00s 1:00 S
12712  {
12713  1976 /*fromYear*/,
12714  1976 /*toYear*/,
12715  5 /*inMonth*/,
12716  0 /*onDayOfWeek*/,
12717  30 /*onDayOfMonth*/,
12718  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12719  0 /*atTimeCode (0/15)*/,
12720  60 /*deltaMinutes*/,
12721  25 /*letterIndex ("S")*/,
12722  },
12723  // Rule Italy 1977 1979 - May Sun>=22 0:00s 1:00 S
12724  {
12725  1977 /*fromYear*/,
12726  1979 /*toYear*/,
12727  5 /*inMonth*/,
12728  7 /*onDayOfWeek*/,
12729  22 /*onDayOfMonth*/,
12730  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12731  0 /*atTimeCode (0/15)*/,
12732  60 /*deltaMinutes*/,
12733  25 /*letterIndex ("S")*/,
12734  },
12735  // Rule Italy 1978 only - Oct 1 0:00s 0 -
12736  {
12737  1978 /*fromYear*/,
12738  1978 /*toYear*/,
12739  10 /*inMonth*/,
12740  0 /*onDayOfWeek*/,
12741  1 /*onDayOfMonth*/,
12742  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12743  0 /*atTimeCode (0/15)*/,
12744  0 /*deltaMinutes*/,
12745  0 /*letterIndex ("")*/,
12746  },
12747  // Rule Italy 1979 only - Sep 30 0:00s 0 -
12748  {
12749  1979 /*fromYear*/,
12750  1979 /*toYear*/,
12751  9 /*inMonth*/,
12752  0 /*onDayOfWeek*/,
12753  30 /*onDayOfMonth*/,
12754  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
12755  0 /*atTimeCode (0/15)*/,
12756  0 /*deltaMinutes*/,
12757  0 /*letterIndex ("")*/,
12758  },
12759 
12760 };
12761 
12762 const complete::Info::ZonePolicy kZonePolicyItaly ACE_TIME_PROGMEM = {
12763  kZoneRulesItaly /*rules*/,
12764  42 /*numRules*/,
12765 };
12766 
12767 //---------------------------------------------------------------------------
12768 // Policy name: Japan
12769 // Rules: 5
12770 //---------------------------------------------------------------------------
12771 
12772 static const complete::Info::ZoneRule kZoneRulesJapan[] ACE_TIME_PROGMEM = {
12773  // Anchor: Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S
12774  {
12775  -32767 /*fromYear*/,
12776  -32767 /*toYear*/,
12777  1 /*inMonth*/,
12778  0 /*onDayOfWeek*/,
12779  1 /*onDayOfMonth*/,
12780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12781  0 /*atTimeCode (0/15)*/,
12782  0 /*deltaMinutes*/,
12783  25 /*letterIndex ("S")*/,
12784  },
12785  // Rule Japan 1948 only - May Sat>=1 24:00 1:00 D
12786  {
12787  1948 /*fromYear*/,
12788  1948 /*toYear*/,
12789  5 /*inMonth*/,
12790  6 /*onDayOfWeek*/,
12791  1 /*onDayOfMonth*/,
12792  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12793  5760 /*atTimeCode (86400/15)*/,
12794  60 /*deltaMinutes*/,
12795  13 /*letterIndex ("D")*/,
12796  },
12797  // Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S
12798  {
12799  1948 /*fromYear*/,
12800  1951 /*toYear*/,
12801  9 /*inMonth*/,
12802  6 /*onDayOfWeek*/,
12803  8 /*onDayOfMonth*/,
12804  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12805  6000 /*atTimeCode (90000/15)*/,
12806  0 /*deltaMinutes*/,
12807  25 /*letterIndex ("S")*/,
12808  },
12809  // Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D
12810  {
12811  1949 /*fromYear*/,
12812  1949 /*toYear*/,
12813  4 /*inMonth*/,
12814  6 /*onDayOfWeek*/,
12815  1 /*onDayOfMonth*/,
12816  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12817  5760 /*atTimeCode (86400/15)*/,
12818  60 /*deltaMinutes*/,
12819  13 /*letterIndex ("D")*/,
12820  },
12821  // Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D
12822  {
12823  1950 /*fromYear*/,
12824  1951 /*toYear*/,
12825  5 /*inMonth*/,
12826  6 /*onDayOfWeek*/,
12827  1 /*onDayOfMonth*/,
12828  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12829  5760 /*atTimeCode (86400/15)*/,
12830  60 /*deltaMinutes*/,
12831  13 /*letterIndex ("D")*/,
12832  },
12833 
12834 };
12835 
12836 const complete::Info::ZonePolicy kZonePolicyJapan ACE_TIME_PROGMEM = {
12837  kZoneRulesJapan /*rules*/,
12838  5 /*numRules*/,
12839 };
12840 
12841 //---------------------------------------------------------------------------
12842 // Policy name: Jordan
12843 // Rules: 33
12844 //---------------------------------------------------------------------------
12845 
12846 static const complete::Info::ZoneRule kZoneRulesJordan[] ACE_TIME_PROGMEM = {
12847  // Anchor: Rule Jordan 1973 1975 - Oct 1 0:00 0 -
12848  {
12849  -32767 /*fromYear*/,
12850  -32767 /*toYear*/,
12851  1 /*inMonth*/,
12852  0 /*onDayOfWeek*/,
12853  1 /*onDayOfMonth*/,
12854  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12855  0 /*atTimeCode (0/15)*/,
12856  0 /*deltaMinutes*/,
12857  0 /*letterIndex ("")*/,
12858  },
12859  // Rule Jordan 1973 only - Jun 6 0:00 1:00 S
12860  {
12861  1973 /*fromYear*/,
12862  1973 /*toYear*/,
12863  6 /*inMonth*/,
12864  0 /*onDayOfWeek*/,
12865  6 /*onDayOfMonth*/,
12866  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12867  0 /*atTimeCode (0/15)*/,
12868  60 /*deltaMinutes*/,
12869  25 /*letterIndex ("S")*/,
12870  },
12871  // Rule Jordan 1973 1975 - Oct 1 0:00 0 -
12872  {
12873  1973 /*fromYear*/,
12874  1975 /*toYear*/,
12875  10 /*inMonth*/,
12876  0 /*onDayOfWeek*/,
12877  1 /*onDayOfMonth*/,
12878  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12879  0 /*atTimeCode (0/15)*/,
12880  0 /*deltaMinutes*/,
12881  0 /*letterIndex ("")*/,
12882  },
12883  // Rule Jordan 1974 1977 - May 1 0:00 1:00 S
12884  {
12885  1974 /*fromYear*/,
12886  1977 /*toYear*/,
12887  5 /*inMonth*/,
12888  0 /*onDayOfWeek*/,
12889  1 /*onDayOfMonth*/,
12890  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12891  0 /*atTimeCode (0/15)*/,
12892  60 /*deltaMinutes*/,
12893  25 /*letterIndex ("S")*/,
12894  },
12895  // Rule Jordan 1976 only - Nov 1 0:00 0 -
12896  {
12897  1976 /*fromYear*/,
12898  1976 /*toYear*/,
12899  11 /*inMonth*/,
12900  0 /*onDayOfWeek*/,
12901  1 /*onDayOfMonth*/,
12902  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12903  0 /*atTimeCode (0/15)*/,
12904  0 /*deltaMinutes*/,
12905  0 /*letterIndex ("")*/,
12906  },
12907  // Rule Jordan 1977 only - Oct 1 0:00 0 -
12908  {
12909  1977 /*fromYear*/,
12910  1977 /*toYear*/,
12911  10 /*inMonth*/,
12912  0 /*onDayOfWeek*/,
12913  1 /*onDayOfMonth*/,
12914  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12915  0 /*atTimeCode (0/15)*/,
12916  0 /*deltaMinutes*/,
12917  0 /*letterIndex ("")*/,
12918  },
12919  // Rule Jordan 1978 only - Apr 30 0:00 1:00 S
12920  {
12921  1978 /*fromYear*/,
12922  1978 /*toYear*/,
12923  4 /*inMonth*/,
12924  0 /*onDayOfWeek*/,
12925  30 /*onDayOfMonth*/,
12926  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12927  0 /*atTimeCode (0/15)*/,
12928  60 /*deltaMinutes*/,
12929  25 /*letterIndex ("S")*/,
12930  },
12931  // Rule Jordan 1978 only - Sep 30 0:00 0 -
12932  {
12933  1978 /*fromYear*/,
12934  1978 /*toYear*/,
12935  9 /*inMonth*/,
12936  0 /*onDayOfWeek*/,
12937  30 /*onDayOfMonth*/,
12938  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12939  0 /*atTimeCode (0/15)*/,
12940  0 /*deltaMinutes*/,
12941  0 /*letterIndex ("")*/,
12942  },
12943  // Rule Jordan 1985 only - Apr 1 0:00 1:00 S
12944  {
12945  1985 /*fromYear*/,
12946  1985 /*toYear*/,
12947  4 /*inMonth*/,
12948  0 /*onDayOfWeek*/,
12949  1 /*onDayOfMonth*/,
12950  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12951  0 /*atTimeCode (0/15)*/,
12952  60 /*deltaMinutes*/,
12953  25 /*letterIndex ("S")*/,
12954  },
12955  // Rule Jordan 1985 only - Oct 1 0:00 0 -
12956  {
12957  1985 /*fromYear*/,
12958  1985 /*toYear*/,
12959  10 /*inMonth*/,
12960  0 /*onDayOfWeek*/,
12961  1 /*onDayOfMonth*/,
12962  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12963  0 /*atTimeCode (0/15)*/,
12964  0 /*deltaMinutes*/,
12965  0 /*letterIndex ("")*/,
12966  },
12967  // Rule Jordan 1986 1988 - Apr Fri>=1 0:00 1:00 S
12968  {
12969  1986 /*fromYear*/,
12970  1988 /*toYear*/,
12971  4 /*inMonth*/,
12972  5 /*onDayOfWeek*/,
12973  1 /*onDayOfMonth*/,
12974  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12975  0 /*atTimeCode (0/15)*/,
12976  60 /*deltaMinutes*/,
12977  25 /*letterIndex ("S")*/,
12978  },
12979  // Rule Jordan 1986 1990 - Oct Fri>=1 0:00 0 -
12980  {
12981  1986 /*fromYear*/,
12982  1990 /*toYear*/,
12983  10 /*inMonth*/,
12984  5 /*onDayOfWeek*/,
12985  1 /*onDayOfMonth*/,
12986  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12987  0 /*atTimeCode (0/15)*/,
12988  0 /*deltaMinutes*/,
12989  0 /*letterIndex ("")*/,
12990  },
12991  // Rule Jordan 1989 only - May 8 0:00 1:00 S
12992  {
12993  1989 /*fromYear*/,
12994  1989 /*toYear*/,
12995  5 /*inMonth*/,
12996  0 /*onDayOfWeek*/,
12997  8 /*onDayOfMonth*/,
12998  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
12999  0 /*atTimeCode (0/15)*/,
13000  60 /*deltaMinutes*/,
13001  25 /*letterIndex ("S")*/,
13002  },
13003  // Rule Jordan 1990 only - Apr 27 0:00 1:00 S
13004  {
13005  1990 /*fromYear*/,
13006  1990 /*toYear*/,
13007  4 /*inMonth*/,
13008  0 /*onDayOfWeek*/,
13009  27 /*onDayOfMonth*/,
13010  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13011  0 /*atTimeCode (0/15)*/,
13012  60 /*deltaMinutes*/,
13013  25 /*letterIndex ("S")*/,
13014  },
13015  // Rule Jordan 1991 only - Apr 17 0:00 1:00 S
13016  {
13017  1991 /*fromYear*/,
13018  1991 /*toYear*/,
13019  4 /*inMonth*/,
13020  0 /*onDayOfWeek*/,
13021  17 /*onDayOfMonth*/,
13022  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13023  0 /*atTimeCode (0/15)*/,
13024  60 /*deltaMinutes*/,
13025  25 /*letterIndex ("S")*/,
13026  },
13027  // Rule Jordan 1991 only - Sep 27 0:00 0 -
13028  {
13029  1991 /*fromYear*/,
13030  1991 /*toYear*/,
13031  9 /*inMonth*/,
13032  0 /*onDayOfWeek*/,
13033  27 /*onDayOfMonth*/,
13034  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13035  0 /*atTimeCode (0/15)*/,
13036  0 /*deltaMinutes*/,
13037  0 /*letterIndex ("")*/,
13038  },
13039  // Rule Jordan 1992 only - Apr 10 0:00 1:00 S
13040  {
13041  1992 /*fromYear*/,
13042  1992 /*toYear*/,
13043  4 /*inMonth*/,
13044  0 /*onDayOfWeek*/,
13045  10 /*onDayOfMonth*/,
13046  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13047  0 /*atTimeCode (0/15)*/,
13048  60 /*deltaMinutes*/,
13049  25 /*letterIndex ("S")*/,
13050  },
13051  // Rule Jordan 1992 1993 - Oct Fri>=1 0:00 0 -
13052  {
13053  1992 /*fromYear*/,
13054  1993 /*toYear*/,
13055  10 /*inMonth*/,
13056  5 /*onDayOfWeek*/,
13057  1 /*onDayOfMonth*/,
13058  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13059  0 /*atTimeCode (0/15)*/,
13060  0 /*deltaMinutes*/,
13061  0 /*letterIndex ("")*/,
13062  },
13063  // Rule Jordan 1993 1998 - Apr Fri>=1 0:00 1:00 S
13064  {
13065  1993 /*fromYear*/,
13066  1998 /*toYear*/,
13067  4 /*inMonth*/,
13068  5 /*onDayOfWeek*/,
13069  1 /*onDayOfMonth*/,
13070  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13071  0 /*atTimeCode (0/15)*/,
13072  60 /*deltaMinutes*/,
13073  25 /*letterIndex ("S")*/,
13074  },
13075  // Rule Jordan 1994 only - Sep Fri>=15 0:00 0 -
13076  {
13077  1994 /*fromYear*/,
13078  1994 /*toYear*/,
13079  9 /*inMonth*/,
13080  5 /*onDayOfWeek*/,
13081  15 /*onDayOfMonth*/,
13082  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13083  0 /*atTimeCode (0/15)*/,
13084  0 /*deltaMinutes*/,
13085  0 /*letterIndex ("")*/,
13086  },
13087  // Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
13088  {
13089  1995 /*fromYear*/,
13090  1998 /*toYear*/,
13091  9 /*inMonth*/,
13092  5 /*onDayOfWeek*/,
13093  15 /*onDayOfMonth*/,
13094  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13095  0 /*atTimeCode (0/15)*/,
13096  0 /*deltaMinutes*/,
13097  0 /*letterIndex ("")*/,
13098  },
13099  // Rule Jordan 1999 only - Jul 1 0:00s 1:00 S
13100  {
13101  1999 /*fromYear*/,
13102  1999 /*toYear*/,
13103  7 /*inMonth*/,
13104  0 /*onDayOfWeek*/,
13105  1 /*onDayOfMonth*/,
13106  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13107  0 /*atTimeCode (0/15)*/,
13108  60 /*deltaMinutes*/,
13109  25 /*letterIndex ("S")*/,
13110  },
13111  // Rule Jordan 1999 2002 - Sep lastFri 0:00s 0 -
13112  {
13113  1999 /*fromYear*/,
13114  2002 /*toYear*/,
13115  9 /*inMonth*/,
13116  5 /*onDayOfWeek*/,
13117  0 /*onDayOfMonth*/,
13118  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13119  0 /*atTimeCode (0/15)*/,
13120  0 /*deltaMinutes*/,
13121  0 /*letterIndex ("")*/,
13122  },
13123  // Rule Jordan 2000 2001 - Mar lastThu 0:00s 1:00 S
13124  {
13125  2000 /*fromYear*/,
13126  2001 /*toYear*/,
13127  3 /*inMonth*/,
13128  4 /*onDayOfWeek*/,
13129  0 /*onDayOfMonth*/,
13130  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13131  0 /*atTimeCode (0/15)*/,
13132  60 /*deltaMinutes*/,
13133  25 /*letterIndex ("S")*/,
13134  },
13135  // Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S
13136  {
13137  2002 /*fromYear*/,
13138  2012 /*toYear*/,
13139  3 /*inMonth*/,
13140  4 /*onDayOfWeek*/,
13141  0 /*onDayOfMonth*/,
13142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13143  5760 /*atTimeCode (86400/15)*/,
13144  60 /*deltaMinutes*/,
13145  25 /*letterIndex ("S")*/,
13146  },
13147  // Rule Jordan 2003 only - Oct 24 0:00s 0 -
13148  {
13149  2003 /*fromYear*/,
13150  2003 /*toYear*/,
13151  10 /*inMonth*/,
13152  0 /*onDayOfWeek*/,
13153  24 /*onDayOfMonth*/,
13154  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13155  0 /*atTimeCode (0/15)*/,
13156  0 /*deltaMinutes*/,
13157  0 /*letterIndex ("")*/,
13158  },
13159  // Rule Jordan 2004 only - Oct 15 0:00s 0 -
13160  {
13161  2004 /*fromYear*/,
13162  2004 /*toYear*/,
13163  10 /*inMonth*/,
13164  0 /*onDayOfWeek*/,
13165  15 /*onDayOfMonth*/,
13166  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13167  0 /*atTimeCode (0/15)*/,
13168  0 /*deltaMinutes*/,
13169  0 /*letterIndex ("")*/,
13170  },
13171  // Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
13172  {
13173  2005 /*fromYear*/,
13174  2005 /*toYear*/,
13175  9 /*inMonth*/,
13176  5 /*onDayOfWeek*/,
13177  0 /*onDayOfMonth*/,
13178  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13179  0 /*atTimeCode (0/15)*/,
13180  0 /*deltaMinutes*/,
13181  0 /*letterIndex ("")*/,
13182  },
13183  // Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
13184  {
13185  2006 /*fromYear*/,
13186  2011 /*toYear*/,
13187  10 /*inMonth*/,
13188  5 /*onDayOfWeek*/,
13189  0 /*onDayOfMonth*/,
13190  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13191  0 /*atTimeCode (0/15)*/,
13192  0 /*deltaMinutes*/,
13193  0 /*letterIndex ("")*/,
13194  },
13195  // Rule Jordan 2013 only - Dec 20 0:00 0 -
13196  {
13197  2013 /*fromYear*/,
13198  2013 /*toYear*/,
13199  12 /*inMonth*/,
13200  0 /*onDayOfWeek*/,
13201  20 /*onDayOfMonth*/,
13202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13203  0 /*atTimeCode (0/15)*/,
13204  0 /*deltaMinutes*/,
13205  0 /*letterIndex ("")*/,
13206  },
13207  // Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S
13208  {
13209  2014 /*fromYear*/,
13210  2021 /*toYear*/,
13211  3 /*inMonth*/,
13212  4 /*onDayOfWeek*/,
13213  0 /*onDayOfMonth*/,
13214  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13215  5760 /*atTimeCode (86400/15)*/,
13216  60 /*deltaMinutes*/,
13217  25 /*letterIndex ("S")*/,
13218  },
13219  // Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 -
13220  {
13221  2014 /*fromYear*/,
13222  2022 /*toYear*/,
13223  10 /*inMonth*/,
13224  5 /*onDayOfWeek*/,
13225  0 /*onDayOfMonth*/,
13226  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13227  0 /*atTimeCode (0/15)*/,
13228  0 /*deltaMinutes*/,
13229  0 /*letterIndex ("")*/,
13230  },
13231  // Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S
13232  {
13233  2022 /*fromYear*/,
13234  2022 /*toYear*/,
13235  2 /*inMonth*/,
13236  4 /*onDayOfWeek*/,
13237  0 /*onDayOfMonth*/,
13238  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13239  5760 /*atTimeCode (86400/15)*/,
13240  60 /*deltaMinutes*/,
13241  25 /*letterIndex ("S")*/,
13242  },
13243 
13244 };
13245 
13246 const complete::Info::ZonePolicy kZonePolicyJordan ACE_TIME_PROGMEM = {
13247  kZoneRulesJordan /*rules*/,
13248  33 /*numRules*/,
13249 };
13250 
13251 //---------------------------------------------------------------------------
13252 // Policy name: Kyrgyz
13253 // Rules: 5
13254 //---------------------------------------------------------------------------
13255 
13256 static const complete::Info::ZoneRule kZoneRulesKyrgyz[] ACE_TIME_PROGMEM = {
13257  // Anchor: Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
13258  {
13259  -32767 /*fromYear*/,
13260  -32767 /*toYear*/,
13261  1 /*inMonth*/,
13262  0 /*onDayOfWeek*/,
13263  1 /*onDayOfMonth*/,
13264  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13265  0 /*atTimeCode (0/15)*/,
13266  0 /*deltaMinutes*/,
13267  0 /*letterIndex ("")*/,
13268  },
13269  // Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 -
13270  {
13271  1992 /*fromYear*/,
13272  1996 /*toYear*/,
13273  4 /*inMonth*/,
13274  7 /*onDayOfWeek*/,
13275  7 /*onDayOfMonth*/,
13276  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13277  0 /*atTimeCode (0/15)*/,
13278  60 /*deltaMinutes*/,
13279  0 /*letterIndex ("")*/,
13280  },
13281  // Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
13282  {
13283  1992 /*fromYear*/,
13284  1996 /*toYear*/,
13285  9 /*inMonth*/,
13286  7 /*onDayOfWeek*/,
13287  0 /*onDayOfMonth*/,
13288  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13289  0 /*atTimeCode (0/15)*/,
13290  0 /*deltaMinutes*/,
13291  0 /*letterIndex ("")*/,
13292  },
13293  // Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
13294  {
13295  1997 /*fromYear*/,
13296  2005 /*toYear*/,
13297  3 /*inMonth*/,
13298  7 /*onDayOfWeek*/,
13299  0 /*onDayOfMonth*/,
13300  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13301  600 /*atTimeCode (9000/15)*/,
13302  60 /*deltaMinutes*/,
13303  0 /*letterIndex ("")*/,
13304  },
13305  // Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 -
13306  {
13307  1997 /*fromYear*/,
13308  2004 /*toYear*/,
13309  10 /*inMonth*/,
13310  7 /*onDayOfWeek*/,
13311  0 /*onDayOfMonth*/,
13312  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13313  600 /*atTimeCode (9000/15)*/,
13314  0 /*deltaMinutes*/,
13315  0 /*letterIndex ("")*/,
13316  },
13317 
13318 };
13319 
13320 const complete::Info::ZonePolicy kZonePolicyKyrgyz ACE_TIME_PROGMEM = {
13321  kZoneRulesKyrgyz /*rules*/,
13322  5 /*numRules*/,
13323 };
13324 
13325 //---------------------------------------------------------------------------
13326 // Policy name: LH
13327 // Rules: 15
13328 //---------------------------------------------------------------------------
13329 
13330 static const complete::Info::ZoneRule kZoneRulesLH[] ACE_TIME_PROGMEM = {
13331  // Anchor: Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
13332  {
13333  -32767 /*fromYear*/,
13334  -32767 /*toYear*/,
13335  1 /*inMonth*/,
13336  0 /*onDayOfWeek*/,
13337  1 /*onDayOfMonth*/,
13338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13339  0 /*atTimeCode (0/15)*/,
13340  0 /*deltaMinutes*/,
13341  0 /*letterIndex ("")*/,
13342  },
13343  // Rule LH 1981 1984 - Oct lastSun 2:00 1:00 -
13344  {
13345  1981 /*fromYear*/,
13346  1984 /*toYear*/,
13347  10 /*inMonth*/,
13348  7 /*onDayOfWeek*/,
13349  0 /*onDayOfMonth*/,
13350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13351  480 /*atTimeCode (7200/15)*/,
13352  60 /*deltaMinutes*/,
13353  0 /*letterIndex ("")*/,
13354  },
13355  // Rule LH 1982 1985 - Mar Sun>=1 2:00 0 -
13356  {
13357  1982 /*fromYear*/,
13358  1985 /*toYear*/,
13359  3 /*inMonth*/,
13360  7 /*onDayOfWeek*/,
13361  1 /*onDayOfMonth*/,
13362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13363  480 /*atTimeCode (7200/15)*/,
13364  0 /*deltaMinutes*/,
13365  0 /*letterIndex ("")*/,
13366  },
13367  // Rule LH 1985 only - Oct lastSun 2:00 0:30 -
13368  {
13369  1985 /*fromYear*/,
13370  1985 /*toYear*/,
13371  10 /*inMonth*/,
13372  7 /*onDayOfWeek*/,
13373  0 /*onDayOfMonth*/,
13374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13375  480 /*atTimeCode (7200/15)*/,
13376  30 /*deltaMinutes*/,
13377  0 /*letterIndex ("")*/,
13378  },
13379  // Rule LH 1986 1989 - Mar Sun>=15 2:00 0 -
13380  {
13381  1986 /*fromYear*/,
13382  1989 /*toYear*/,
13383  3 /*inMonth*/,
13384  7 /*onDayOfWeek*/,
13385  15 /*onDayOfMonth*/,
13386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13387  480 /*atTimeCode (7200/15)*/,
13388  0 /*deltaMinutes*/,
13389  0 /*letterIndex ("")*/,
13390  },
13391  // Rule LH 1986 only - Oct 19 2:00 0:30 -
13392  {
13393  1986 /*fromYear*/,
13394  1986 /*toYear*/,
13395  10 /*inMonth*/,
13396  0 /*onDayOfWeek*/,
13397  19 /*onDayOfMonth*/,
13398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13399  480 /*atTimeCode (7200/15)*/,
13400  30 /*deltaMinutes*/,
13401  0 /*letterIndex ("")*/,
13402  },
13403  // Rule LH 1987 1999 - Oct lastSun 2:00 0:30 -
13404  {
13405  1987 /*fromYear*/,
13406  1999 /*toYear*/,
13407  10 /*inMonth*/,
13408  7 /*onDayOfWeek*/,
13409  0 /*onDayOfMonth*/,
13410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13411  480 /*atTimeCode (7200/15)*/,
13412  30 /*deltaMinutes*/,
13413  0 /*letterIndex ("")*/,
13414  },
13415  // Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
13416  {
13417  1990 /*fromYear*/,
13418  1995 /*toYear*/,
13419  3 /*inMonth*/,
13420  7 /*onDayOfWeek*/,
13421  1 /*onDayOfMonth*/,
13422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13423  480 /*atTimeCode (7200/15)*/,
13424  0 /*deltaMinutes*/,
13425  0 /*letterIndex ("")*/,
13426  },
13427  // Rule LH 1996 2005 - Mar lastSun 2:00 0 -
13428  {
13429  1996 /*fromYear*/,
13430  2005 /*toYear*/,
13431  3 /*inMonth*/,
13432  7 /*onDayOfWeek*/,
13433  0 /*onDayOfMonth*/,
13434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13435  480 /*atTimeCode (7200/15)*/,
13436  0 /*deltaMinutes*/,
13437  0 /*letterIndex ("")*/,
13438  },
13439  // Rule LH 2000 only - Aug lastSun 2:00 0:30 -
13440  {
13441  2000 /*fromYear*/,
13442  2000 /*toYear*/,
13443  8 /*inMonth*/,
13444  7 /*onDayOfWeek*/,
13445  0 /*onDayOfMonth*/,
13446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13447  480 /*atTimeCode (7200/15)*/,
13448  30 /*deltaMinutes*/,
13449  0 /*letterIndex ("")*/,
13450  },
13451  // Rule LH 2001 2007 - Oct lastSun 2:00 0:30 -
13452  {
13453  2001 /*fromYear*/,
13454  2007 /*toYear*/,
13455  10 /*inMonth*/,
13456  7 /*onDayOfWeek*/,
13457  0 /*onDayOfMonth*/,
13458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13459  480 /*atTimeCode (7200/15)*/,
13460  30 /*deltaMinutes*/,
13461  0 /*letterIndex ("")*/,
13462  },
13463  // Rule LH 2006 only - Apr Sun>=1 2:00 0 -
13464  {
13465  2006 /*fromYear*/,
13466  2006 /*toYear*/,
13467  4 /*inMonth*/,
13468  7 /*onDayOfWeek*/,
13469  1 /*onDayOfMonth*/,
13470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13471  480 /*atTimeCode (7200/15)*/,
13472  0 /*deltaMinutes*/,
13473  0 /*letterIndex ("")*/,
13474  },
13475  // Rule LH 2007 only - Mar lastSun 2:00 0 -
13476  {
13477  2007 /*fromYear*/,
13478  2007 /*toYear*/,
13479  3 /*inMonth*/,
13480  7 /*onDayOfWeek*/,
13481  0 /*onDayOfMonth*/,
13482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13483  480 /*atTimeCode (7200/15)*/,
13484  0 /*deltaMinutes*/,
13485  0 /*letterIndex ("")*/,
13486  },
13487  // Rule LH 2008 max - Apr Sun>=1 2:00 0 -
13488  {
13489  2008 /*fromYear*/,
13490  32766 /*toYear*/,
13491  4 /*inMonth*/,
13492  7 /*onDayOfWeek*/,
13493  1 /*onDayOfMonth*/,
13494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13495  480 /*atTimeCode (7200/15)*/,
13496  0 /*deltaMinutes*/,
13497  0 /*letterIndex ("")*/,
13498  },
13499  // Rule LH 2008 max - Oct Sun>=1 2:00 0:30 -
13500  {
13501  2008 /*fromYear*/,
13502  32766 /*toYear*/,
13503  10 /*inMonth*/,
13504  7 /*onDayOfWeek*/,
13505  1 /*onDayOfMonth*/,
13506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13507  480 /*atTimeCode (7200/15)*/,
13508  30 /*deltaMinutes*/,
13509  0 /*letterIndex ("")*/,
13510  },
13511 
13512 };
13513 
13514 const complete::Info::ZonePolicy kZonePolicyLH ACE_TIME_PROGMEM = {
13515  kZoneRulesLH /*rules*/,
13516  15 /*numRules*/,
13517 };
13518 
13519 //---------------------------------------------------------------------------
13520 // Policy name: Latvia
13521 // Rules: 3
13522 //---------------------------------------------------------------------------
13523 
13524 static const complete::Info::ZoneRule kZoneRulesLatvia[] ACE_TIME_PROGMEM = {
13525  // Anchor: Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
13526  {
13527  -32767 /*fromYear*/,
13528  -32767 /*toYear*/,
13529  1 /*inMonth*/,
13530  0 /*onDayOfWeek*/,
13531  1 /*onDayOfMonth*/,
13532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13533  0 /*atTimeCode (0/15)*/,
13534  0 /*deltaMinutes*/,
13535  0 /*letterIndex ("")*/,
13536  },
13537  // Rule Latvia 1989 1996 - Mar lastSun 2:00s 1:00 S
13538  {
13539  1989 /*fromYear*/,
13540  1996 /*toYear*/,
13541  3 /*inMonth*/,
13542  7 /*onDayOfWeek*/,
13543  0 /*onDayOfMonth*/,
13544  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13545  480 /*atTimeCode (7200/15)*/,
13546  60 /*deltaMinutes*/,
13547  25 /*letterIndex ("S")*/,
13548  },
13549  // Rule Latvia 1989 1996 - Sep lastSun 2:00s 0 -
13550  {
13551  1989 /*fromYear*/,
13552  1996 /*toYear*/,
13553  9 /*inMonth*/,
13554  7 /*onDayOfWeek*/,
13555  0 /*onDayOfMonth*/,
13556  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
13557  480 /*atTimeCode (7200/15)*/,
13558  0 /*deltaMinutes*/,
13559  0 /*letterIndex ("")*/,
13560  },
13561 
13562 };
13563 
13564 const complete::Info::ZonePolicy kZonePolicyLatvia ACE_TIME_PROGMEM = {
13565  kZoneRulesLatvia /*rules*/,
13566  3 /*numRules*/,
13567 };
13568 
13569 //---------------------------------------------------------------------------
13570 // Policy name: Lebanon
13571 // Rules: 25
13572 //---------------------------------------------------------------------------
13573 
13574 static const complete::Info::ZoneRule kZoneRulesLebanon[] ACE_TIME_PROGMEM = {
13575  // Anchor: Rule Lebanon 1920 only - Oct 25 0:00 0 -
13576  {
13577  -32767 /*fromYear*/,
13578  -32767 /*toYear*/,
13579  1 /*inMonth*/,
13580  0 /*onDayOfWeek*/,
13581  1 /*onDayOfMonth*/,
13582  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13583  0 /*atTimeCode (0/15)*/,
13584  0 /*deltaMinutes*/,
13585  0 /*letterIndex ("")*/,
13586  },
13587  // Rule Lebanon 1920 only - Mar 28 0:00 1:00 S
13588  {
13589  1920 /*fromYear*/,
13590  1920 /*toYear*/,
13591  3 /*inMonth*/,
13592  0 /*onDayOfWeek*/,
13593  28 /*onDayOfMonth*/,
13594  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13595  0 /*atTimeCode (0/15)*/,
13596  60 /*deltaMinutes*/,
13597  25 /*letterIndex ("S")*/,
13598  },
13599  // Rule Lebanon 1920 only - Oct 25 0:00 0 -
13600  {
13601  1920 /*fromYear*/,
13602  1920 /*toYear*/,
13603  10 /*inMonth*/,
13604  0 /*onDayOfWeek*/,
13605  25 /*onDayOfMonth*/,
13606  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13607  0 /*atTimeCode (0/15)*/,
13608  0 /*deltaMinutes*/,
13609  0 /*letterIndex ("")*/,
13610  },
13611  // Rule Lebanon 1921 only - Apr 3 0:00 1:00 S
13612  {
13613  1921 /*fromYear*/,
13614  1921 /*toYear*/,
13615  4 /*inMonth*/,
13616  0 /*onDayOfWeek*/,
13617  3 /*onDayOfMonth*/,
13618  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13619  0 /*atTimeCode (0/15)*/,
13620  60 /*deltaMinutes*/,
13621  25 /*letterIndex ("S")*/,
13622  },
13623  // Rule Lebanon 1921 only - Oct 3 0:00 0 -
13624  {
13625  1921 /*fromYear*/,
13626  1921 /*toYear*/,
13627  10 /*inMonth*/,
13628  0 /*onDayOfWeek*/,
13629  3 /*onDayOfMonth*/,
13630  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13631  0 /*atTimeCode (0/15)*/,
13632  0 /*deltaMinutes*/,
13633  0 /*letterIndex ("")*/,
13634  },
13635  // Rule Lebanon 1922 only - Mar 26 0:00 1:00 S
13636  {
13637  1922 /*fromYear*/,
13638  1922 /*toYear*/,
13639  3 /*inMonth*/,
13640  0 /*onDayOfWeek*/,
13641  26 /*onDayOfMonth*/,
13642  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13643  0 /*atTimeCode (0/15)*/,
13644  60 /*deltaMinutes*/,
13645  25 /*letterIndex ("S")*/,
13646  },
13647  // Rule Lebanon 1922 only - Oct 8 0:00 0 -
13648  {
13649  1922 /*fromYear*/,
13650  1922 /*toYear*/,
13651  10 /*inMonth*/,
13652  0 /*onDayOfWeek*/,
13653  8 /*onDayOfMonth*/,
13654  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13655  0 /*atTimeCode (0/15)*/,
13656  0 /*deltaMinutes*/,
13657  0 /*letterIndex ("")*/,
13658  },
13659  // Rule Lebanon 1923 only - Apr 22 0:00 1:00 S
13660  {
13661  1923 /*fromYear*/,
13662  1923 /*toYear*/,
13663  4 /*inMonth*/,
13664  0 /*onDayOfWeek*/,
13665  22 /*onDayOfMonth*/,
13666  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13667  0 /*atTimeCode (0/15)*/,
13668  60 /*deltaMinutes*/,
13669  25 /*letterIndex ("S")*/,
13670  },
13671  // Rule Lebanon 1923 only - Sep 16 0:00 0 -
13672  {
13673  1923 /*fromYear*/,
13674  1923 /*toYear*/,
13675  9 /*inMonth*/,
13676  0 /*onDayOfWeek*/,
13677  16 /*onDayOfMonth*/,
13678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13679  0 /*atTimeCode (0/15)*/,
13680  0 /*deltaMinutes*/,
13681  0 /*letterIndex ("")*/,
13682  },
13683  // Rule Lebanon 1957 1961 - May 1 0:00 1:00 S
13684  {
13685  1957 /*fromYear*/,
13686  1961 /*toYear*/,
13687  5 /*inMonth*/,
13688  0 /*onDayOfWeek*/,
13689  1 /*onDayOfMonth*/,
13690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13691  0 /*atTimeCode (0/15)*/,
13692  60 /*deltaMinutes*/,
13693  25 /*letterIndex ("S")*/,
13694  },
13695  // Rule Lebanon 1957 1961 - Oct 1 0:00 0 -
13696  {
13697  1957 /*fromYear*/,
13698  1961 /*toYear*/,
13699  10 /*inMonth*/,
13700  0 /*onDayOfWeek*/,
13701  1 /*onDayOfMonth*/,
13702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13703  0 /*atTimeCode (0/15)*/,
13704  0 /*deltaMinutes*/,
13705  0 /*letterIndex ("")*/,
13706  },
13707  // Rule Lebanon 1972 only - Jun 22 0:00 1:00 S
13708  {
13709  1972 /*fromYear*/,
13710  1972 /*toYear*/,
13711  6 /*inMonth*/,
13712  0 /*onDayOfWeek*/,
13713  22 /*onDayOfMonth*/,
13714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13715  0 /*atTimeCode (0/15)*/,
13716  60 /*deltaMinutes*/,
13717  25 /*letterIndex ("S")*/,
13718  },
13719  // Rule Lebanon 1972 1977 - Oct 1 0:00 0 -
13720  {
13721  1972 /*fromYear*/,
13722  1977 /*toYear*/,
13723  10 /*inMonth*/,
13724  0 /*onDayOfWeek*/,
13725  1 /*onDayOfMonth*/,
13726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13727  0 /*atTimeCode (0/15)*/,
13728  0 /*deltaMinutes*/,
13729  0 /*letterIndex ("")*/,
13730  },
13731  // Rule Lebanon 1973 1977 - May 1 0:00 1:00 S
13732  {
13733  1973 /*fromYear*/,
13734  1977 /*toYear*/,
13735  5 /*inMonth*/,
13736  0 /*onDayOfWeek*/,
13737  1 /*onDayOfMonth*/,
13738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13739  0 /*atTimeCode (0/15)*/,
13740  60 /*deltaMinutes*/,
13741  25 /*letterIndex ("S")*/,
13742  },
13743  // Rule Lebanon 1978 only - Apr 30 0:00 1:00 S
13744  {
13745  1978 /*fromYear*/,
13746  1978 /*toYear*/,
13747  4 /*inMonth*/,
13748  0 /*onDayOfWeek*/,
13749  30 /*onDayOfMonth*/,
13750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13751  0 /*atTimeCode (0/15)*/,
13752  60 /*deltaMinutes*/,
13753  25 /*letterIndex ("S")*/,
13754  },
13755  // Rule Lebanon 1978 only - Sep 30 0:00 0 -
13756  {
13757  1978 /*fromYear*/,
13758  1978 /*toYear*/,
13759  9 /*inMonth*/,
13760  0 /*onDayOfWeek*/,
13761  30 /*onDayOfMonth*/,
13762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13763  0 /*atTimeCode (0/15)*/,
13764  0 /*deltaMinutes*/,
13765  0 /*letterIndex ("")*/,
13766  },
13767  // Rule Lebanon 1984 1987 - May 1 0:00 1:00 S
13768  {
13769  1984 /*fromYear*/,
13770  1987 /*toYear*/,
13771  5 /*inMonth*/,
13772  0 /*onDayOfWeek*/,
13773  1 /*onDayOfMonth*/,
13774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13775  0 /*atTimeCode (0/15)*/,
13776  60 /*deltaMinutes*/,
13777  25 /*letterIndex ("S")*/,
13778  },
13779  // Rule Lebanon 1984 1991 - Oct 16 0:00 0 -
13780  {
13781  1984 /*fromYear*/,
13782  1991 /*toYear*/,
13783  10 /*inMonth*/,
13784  0 /*onDayOfWeek*/,
13785  16 /*onDayOfMonth*/,
13786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13787  0 /*atTimeCode (0/15)*/,
13788  0 /*deltaMinutes*/,
13789  0 /*letterIndex ("")*/,
13790  },
13791  // Rule Lebanon 1988 only - Jun 1 0:00 1:00 S
13792  {
13793  1988 /*fromYear*/,
13794  1988 /*toYear*/,
13795  6 /*inMonth*/,
13796  0 /*onDayOfWeek*/,
13797  1 /*onDayOfMonth*/,
13798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13799  0 /*atTimeCode (0/15)*/,
13800  60 /*deltaMinutes*/,
13801  25 /*letterIndex ("S")*/,
13802  },
13803  // Rule Lebanon 1989 only - May 10 0:00 1:00 S
13804  {
13805  1989 /*fromYear*/,
13806  1989 /*toYear*/,
13807  5 /*inMonth*/,
13808  0 /*onDayOfWeek*/,
13809  10 /*onDayOfMonth*/,
13810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13811  0 /*atTimeCode (0/15)*/,
13812  60 /*deltaMinutes*/,
13813  25 /*letterIndex ("S")*/,
13814  },
13815  // Rule Lebanon 1990 1992 - May 1 0:00 1:00 S
13816  {
13817  1990 /*fromYear*/,
13818  1992 /*toYear*/,
13819  5 /*inMonth*/,
13820  0 /*onDayOfWeek*/,
13821  1 /*onDayOfMonth*/,
13822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13823  0 /*atTimeCode (0/15)*/,
13824  60 /*deltaMinutes*/,
13825  25 /*letterIndex ("S")*/,
13826  },
13827  // Rule Lebanon 1992 only - Oct 4 0:00 0 -
13828  {
13829  1992 /*fromYear*/,
13830  1992 /*toYear*/,
13831  10 /*inMonth*/,
13832  0 /*onDayOfWeek*/,
13833  4 /*onDayOfMonth*/,
13834  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13835  0 /*atTimeCode (0/15)*/,
13836  0 /*deltaMinutes*/,
13837  0 /*letterIndex ("")*/,
13838  },
13839  // Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S
13840  {
13841  1993 /*fromYear*/,
13842  32766 /*toYear*/,
13843  3 /*inMonth*/,
13844  7 /*onDayOfWeek*/,
13845  0 /*onDayOfMonth*/,
13846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13847  0 /*atTimeCode (0/15)*/,
13848  60 /*deltaMinutes*/,
13849  25 /*letterIndex ("S")*/,
13850  },
13851  // Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
13852  {
13853  1993 /*fromYear*/,
13854  1998 /*toYear*/,
13855  9 /*inMonth*/,
13856  7 /*onDayOfWeek*/,
13857  0 /*onDayOfMonth*/,
13858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13859  0 /*atTimeCode (0/15)*/,
13860  0 /*deltaMinutes*/,
13861  0 /*letterIndex ("")*/,
13862  },
13863  // Rule Lebanon 1999 max - Oct lastSun 0:00 0 -
13864  {
13865  1999 /*fromYear*/,
13866  32766 /*toYear*/,
13867  10 /*inMonth*/,
13868  7 /*onDayOfWeek*/,
13869  0 /*onDayOfMonth*/,
13870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13871  0 /*atTimeCode (0/15)*/,
13872  0 /*deltaMinutes*/,
13873  0 /*letterIndex ("")*/,
13874  },
13875 
13876 };
13877 
13878 const complete::Info::ZonePolicy kZonePolicyLebanon ACE_TIME_PROGMEM = {
13879  kZoneRulesLebanon /*rules*/,
13880  25 /*numRules*/,
13881 };
13882 
13883 //---------------------------------------------------------------------------
13884 // Policy name: Libya
13885 // Rules: 18
13886 //---------------------------------------------------------------------------
13887 
13888 static const complete::Info::ZoneRule kZoneRulesLibya[] ACE_TIME_PROGMEM = {
13889  // Anchor: Rule Libya 1952 only - Jan 1 0:00 0 -
13890  {
13891  -32767 /*fromYear*/,
13892  -32767 /*toYear*/,
13893  1 /*inMonth*/,
13894  0 /*onDayOfWeek*/,
13895  1 /*onDayOfMonth*/,
13896  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13897  0 /*atTimeCode (0/15)*/,
13898  0 /*deltaMinutes*/,
13899  0 /*letterIndex ("")*/,
13900  },
13901  // Rule Libya 1951 only - Oct 14 2:00 1:00 S
13902  {
13903  1951 /*fromYear*/,
13904  1951 /*toYear*/,
13905  10 /*inMonth*/,
13906  0 /*onDayOfWeek*/,
13907  14 /*onDayOfMonth*/,
13908  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13909  480 /*atTimeCode (7200/15)*/,
13910  60 /*deltaMinutes*/,
13911  25 /*letterIndex ("S")*/,
13912  },
13913  // Rule Libya 1952 only - Jan 1 0:00 0 -
13914  {
13915  1952 /*fromYear*/,
13916  1952 /*toYear*/,
13917  1 /*inMonth*/,
13918  0 /*onDayOfWeek*/,
13919  1 /*onDayOfMonth*/,
13920  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13921  0 /*atTimeCode (0/15)*/,
13922  0 /*deltaMinutes*/,
13923  0 /*letterIndex ("")*/,
13924  },
13925  // Rule Libya 1953 only - Oct 9 2:00 1:00 S
13926  {
13927  1953 /*fromYear*/,
13928  1953 /*toYear*/,
13929  10 /*inMonth*/,
13930  0 /*onDayOfWeek*/,
13931  9 /*onDayOfMonth*/,
13932  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13933  480 /*atTimeCode (7200/15)*/,
13934  60 /*deltaMinutes*/,
13935  25 /*letterIndex ("S")*/,
13936  },
13937  // Rule Libya 1954 only - Jan 1 0:00 0 -
13938  {
13939  1954 /*fromYear*/,
13940  1954 /*toYear*/,
13941  1 /*inMonth*/,
13942  0 /*onDayOfWeek*/,
13943  1 /*onDayOfMonth*/,
13944  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13945  0 /*atTimeCode (0/15)*/,
13946  0 /*deltaMinutes*/,
13947  0 /*letterIndex ("")*/,
13948  },
13949  // Rule Libya 1955 only - Sep 30 0:00 1:00 S
13950  {
13951  1955 /*fromYear*/,
13952  1955 /*toYear*/,
13953  9 /*inMonth*/,
13954  0 /*onDayOfWeek*/,
13955  30 /*onDayOfMonth*/,
13956  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13957  0 /*atTimeCode (0/15)*/,
13958  60 /*deltaMinutes*/,
13959  25 /*letterIndex ("S")*/,
13960  },
13961  // Rule Libya 1956 only - Jan 1 0:00 0 -
13962  {
13963  1956 /*fromYear*/,
13964  1956 /*toYear*/,
13965  1 /*inMonth*/,
13966  0 /*onDayOfWeek*/,
13967  1 /*onDayOfMonth*/,
13968  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13969  0 /*atTimeCode (0/15)*/,
13970  0 /*deltaMinutes*/,
13971  0 /*letterIndex ("")*/,
13972  },
13973  // Rule Libya 1982 1984 - Apr 1 0:00 1:00 S
13974  {
13975  1982 /*fromYear*/,
13976  1984 /*toYear*/,
13977  4 /*inMonth*/,
13978  0 /*onDayOfWeek*/,
13979  1 /*onDayOfMonth*/,
13980  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13981  0 /*atTimeCode (0/15)*/,
13982  60 /*deltaMinutes*/,
13983  25 /*letterIndex ("S")*/,
13984  },
13985  // Rule Libya 1982 1985 - Oct 1 0:00 0 -
13986  {
13987  1982 /*fromYear*/,
13988  1985 /*toYear*/,
13989  10 /*inMonth*/,
13990  0 /*onDayOfWeek*/,
13991  1 /*onDayOfMonth*/,
13992  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
13993  0 /*atTimeCode (0/15)*/,
13994  0 /*deltaMinutes*/,
13995  0 /*letterIndex ("")*/,
13996  },
13997  // Rule Libya 1985 only - Apr 6 0:00 1:00 S
13998  {
13999  1985 /*fromYear*/,
14000  1985 /*toYear*/,
14001  4 /*inMonth*/,
14002  0 /*onDayOfWeek*/,
14003  6 /*onDayOfMonth*/,
14004  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14005  0 /*atTimeCode (0/15)*/,
14006  60 /*deltaMinutes*/,
14007  25 /*letterIndex ("S")*/,
14008  },
14009  // Rule Libya 1986 only - Apr 4 0:00 1:00 S
14010  {
14011  1986 /*fromYear*/,
14012  1986 /*toYear*/,
14013  4 /*inMonth*/,
14014  0 /*onDayOfWeek*/,
14015  4 /*onDayOfMonth*/,
14016  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14017  0 /*atTimeCode (0/15)*/,
14018  60 /*deltaMinutes*/,
14019  25 /*letterIndex ("S")*/,
14020  },
14021  // Rule Libya 1986 only - Oct 3 0:00 0 -
14022  {
14023  1986 /*fromYear*/,
14024  1986 /*toYear*/,
14025  10 /*inMonth*/,
14026  0 /*onDayOfWeek*/,
14027  3 /*onDayOfMonth*/,
14028  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14029  0 /*atTimeCode (0/15)*/,
14030  0 /*deltaMinutes*/,
14031  0 /*letterIndex ("")*/,
14032  },
14033  // Rule Libya 1987 1989 - Apr 1 0:00 1:00 S
14034  {
14035  1987 /*fromYear*/,
14036  1989 /*toYear*/,
14037  4 /*inMonth*/,
14038  0 /*onDayOfWeek*/,
14039  1 /*onDayOfMonth*/,
14040  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14041  0 /*atTimeCode (0/15)*/,
14042  60 /*deltaMinutes*/,
14043  25 /*letterIndex ("S")*/,
14044  },
14045  // Rule Libya 1987 1989 - Oct 1 0:00 0 -
14046  {
14047  1987 /*fromYear*/,
14048  1989 /*toYear*/,
14049  10 /*inMonth*/,
14050  0 /*onDayOfWeek*/,
14051  1 /*onDayOfMonth*/,
14052  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14053  0 /*atTimeCode (0/15)*/,
14054  0 /*deltaMinutes*/,
14055  0 /*letterIndex ("")*/,
14056  },
14057  // Rule Libya 1997 only - Apr 4 0:00 1:00 S
14058  {
14059  1997 /*fromYear*/,
14060  1997 /*toYear*/,
14061  4 /*inMonth*/,
14062  0 /*onDayOfWeek*/,
14063  4 /*onDayOfMonth*/,
14064  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14065  0 /*atTimeCode (0/15)*/,
14066  60 /*deltaMinutes*/,
14067  25 /*letterIndex ("S")*/,
14068  },
14069  // Rule Libya 1997 only - Oct 4 0:00 0 -
14070  {
14071  1997 /*fromYear*/,
14072  1997 /*toYear*/,
14073  10 /*inMonth*/,
14074  0 /*onDayOfWeek*/,
14075  4 /*onDayOfMonth*/,
14076  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14077  0 /*atTimeCode (0/15)*/,
14078  0 /*deltaMinutes*/,
14079  0 /*letterIndex ("")*/,
14080  },
14081  // Rule Libya 2013 only - Mar lastFri 1:00 1:00 S
14082  {
14083  2013 /*fromYear*/,
14084  2013 /*toYear*/,
14085  3 /*inMonth*/,
14086  5 /*onDayOfWeek*/,
14087  0 /*onDayOfMonth*/,
14088  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14089  240 /*atTimeCode (3600/15)*/,
14090  60 /*deltaMinutes*/,
14091  25 /*letterIndex ("S")*/,
14092  },
14093  // Rule Libya 2013 only - Oct lastFri 2:00 0 -
14094  {
14095  2013 /*fromYear*/,
14096  2013 /*toYear*/,
14097  10 /*inMonth*/,
14098  5 /*onDayOfWeek*/,
14099  0 /*onDayOfMonth*/,
14100  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14101  480 /*atTimeCode (7200/15)*/,
14102  0 /*deltaMinutes*/,
14103  0 /*letterIndex ("")*/,
14104  },
14105 
14106 };
14107 
14108 const complete::Info::ZonePolicy kZonePolicyLibya ACE_TIME_PROGMEM = {
14109  kZoneRulesLibya /*rules*/,
14110  18 /*numRules*/,
14111 };
14112 
14113 //---------------------------------------------------------------------------
14114 // Policy name: Louisville
14115 // Rules: 10
14116 //---------------------------------------------------------------------------
14117 
14118 static const complete::Info::ZoneRule kZoneRulesLouisville[] ACE_TIME_PROGMEM = {
14119  // Anchor: Rule Louisville 1921 only - Sep 1 2:00 0 S
14120  {
14121  -32767 /*fromYear*/,
14122  -32767 /*toYear*/,
14123  1 /*inMonth*/,
14124  0 /*onDayOfWeek*/,
14125  1 /*onDayOfMonth*/,
14126  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14127  0 /*atTimeCode (0/15)*/,
14128  0 /*deltaMinutes*/,
14129  25 /*letterIndex ("S")*/,
14130  },
14131  // Rule Louisville 1921 only - May 1 2:00 1:00 D
14132  {
14133  1921 /*fromYear*/,
14134  1921 /*toYear*/,
14135  5 /*inMonth*/,
14136  0 /*onDayOfWeek*/,
14137  1 /*onDayOfMonth*/,
14138  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14139  480 /*atTimeCode (7200/15)*/,
14140  60 /*deltaMinutes*/,
14141  13 /*letterIndex ("D")*/,
14142  },
14143  // Rule Louisville 1921 only - Sep 1 2:00 0 S
14144  {
14145  1921 /*fromYear*/,
14146  1921 /*toYear*/,
14147  9 /*inMonth*/,
14148  0 /*onDayOfWeek*/,
14149  1 /*onDayOfMonth*/,
14150  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14151  480 /*atTimeCode (7200/15)*/,
14152  0 /*deltaMinutes*/,
14153  25 /*letterIndex ("S")*/,
14154  },
14155  // Rule Louisville 1941 only - Apr lastSun 2:00 1:00 D
14156  {
14157  1941 /*fromYear*/,
14158  1941 /*toYear*/,
14159  4 /*inMonth*/,
14160  7 /*onDayOfWeek*/,
14161  0 /*onDayOfMonth*/,
14162  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14163  480 /*atTimeCode (7200/15)*/,
14164  60 /*deltaMinutes*/,
14165  13 /*letterIndex ("D")*/,
14166  },
14167  // Rule Louisville 1941 only - Sep lastSun 2:00 0 S
14168  {
14169  1941 /*fromYear*/,
14170  1941 /*toYear*/,
14171  9 /*inMonth*/,
14172  7 /*onDayOfWeek*/,
14173  0 /*onDayOfMonth*/,
14174  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14175  480 /*atTimeCode (7200/15)*/,
14176  0 /*deltaMinutes*/,
14177  25 /*letterIndex ("S")*/,
14178  },
14179  // Rule Louisville 1946 only - Apr lastSun 0:01 1:00 D
14180  {
14181  1946 /*fromYear*/,
14182  1946 /*toYear*/,
14183  4 /*inMonth*/,
14184  7 /*onDayOfWeek*/,
14185  0 /*onDayOfMonth*/,
14186  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14187  4 /*atTimeCode (60/15)*/,
14188  60 /*deltaMinutes*/,
14189  13 /*letterIndex ("D")*/,
14190  },
14191  // Rule Louisville 1946 only - Jun 2 2:00 0 S
14192  {
14193  1946 /*fromYear*/,
14194  1946 /*toYear*/,
14195  6 /*inMonth*/,
14196  0 /*onDayOfWeek*/,
14197  2 /*onDayOfMonth*/,
14198  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14199  480 /*atTimeCode (7200/15)*/,
14200  0 /*deltaMinutes*/,
14201  25 /*letterIndex ("S")*/,
14202  },
14203  // Rule Louisville 1950 1961 - Apr lastSun 2:00 1:00 D
14204  {
14205  1950 /*fromYear*/,
14206  1961 /*toYear*/,
14207  4 /*inMonth*/,
14208  7 /*onDayOfWeek*/,
14209  0 /*onDayOfMonth*/,
14210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14211  480 /*atTimeCode (7200/15)*/,
14212  60 /*deltaMinutes*/,
14213  13 /*letterIndex ("D")*/,
14214  },
14215  // Rule Louisville 1950 1955 - Sep lastSun 2:00 0 S
14216  {
14217  1950 /*fromYear*/,
14218  1955 /*toYear*/,
14219  9 /*inMonth*/,
14220  7 /*onDayOfWeek*/,
14221  0 /*onDayOfMonth*/,
14222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14223  480 /*atTimeCode (7200/15)*/,
14224  0 /*deltaMinutes*/,
14225  25 /*letterIndex ("S")*/,
14226  },
14227  // Rule Louisville 1956 1961 - Oct lastSun 2:00 0 S
14228  {
14229  1956 /*fromYear*/,
14230  1961 /*toYear*/,
14231  10 /*inMonth*/,
14232  7 /*onDayOfWeek*/,
14233  0 /*onDayOfMonth*/,
14234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14235  480 /*atTimeCode (7200/15)*/,
14236  0 /*deltaMinutes*/,
14237  25 /*letterIndex ("S")*/,
14238  },
14239 
14240 };
14241 
14242 const complete::Info::ZonePolicy kZonePolicyLouisville ACE_TIME_PROGMEM = {
14243  kZoneRulesLouisville /*rules*/,
14244  10 /*numRules*/,
14245 };
14246 
14247 //---------------------------------------------------------------------------
14248 // Policy name: Macau
14249 // Rules: 28
14250 //---------------------------------------------------------------------------
14251 
14252 static const complete::Info::ZoneRule kZoneRulesMacau[] ACE_TIME_PROGMEM = {
14253  // Anchor: Rule Macau 1942 only - Nov 17 23:00 0 -
14254  {
14255  -32767 /*fromYear*/,
14256  -32767 /*toYear*/,
14257  1 /*inMonth*/,
14258  0 /*onDayOfWeek*/,
14259  1 /*onDayOfMonth*/,
14260  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14261  0 /*atTimeCode (0/15)*/,
14262  0 /*deltaMinutes*/,
14263  0 /*letterIndex ("")*/,
14264  },
14265  // Rule Macau 1942 1943 - Apr 30 23:00 1:00 -
14266  {
14267  1942 /*fromYear*/,
14268  1943 /*toYear*/,
14269  4 /*inMonth*/,
14270  0 /*onDayOfWeek*/,
14271  30 /*onDayOfMonth*/,
14272  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14273  5520 /*atTimeCode (82800/15)*/,
14274  60 /*deltaMinutes*/,
14275  0 /*letterIndex ("")*/,
14276  },
14277  // Rule Macau 1942 only - Nov 17 23:00 0 -
14278  {
14279  1942 /*fromYear*/,
14280  1942 /*toYear*/,
14281  11 /*inMonth*/,
14282  0 /*onDayOfWeek*/,
14283  17 /*onDayOfMonth*/,
14284  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14285  5520 /*atTimeCode (82800/15)*/,
14286  0 /*deltaMinutes*/,
14287  0 /*letterIndex ("")*/,
14288  },
14289  // Rule Macau 1943 only - Sep 30 23:00 0 S
14290  {
14291  1943 /*fromYear*/,
14292  1943 /*toYear*/,
14293  9 /*inMonth*/,
14294  0 /*onDayOfWeek*/,
14295  30 /*onDayOfMonth*/,
14296  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14297  5520 /*atTimeCode (82800/15)*/,
14298  0 /*deltaMinutes*/,
14299  25 /*letterIndex ("S")*/,
14300  },
14301  // Rule Macau 1946 only - Apr 30 23:00s 1:00 D
14302  {
14303  1946 /*fromYear*/,
14304  1946 /*toYear*/,
14305  4 /*inMonth*/,
14306  0 /*onDayOfWeek*/,
14307  30 /*onDayOfMonth*/,
14308  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14309  5520 /*atTimeCode (82800/15)*/,
14310  60 /*deltaMinutes*/,
14311  13 /*letterIndex ("D")*/,
14312  },
14313  // Rule Macau 1946 only - Sep 30 23:00s 0 S
14314  {
14315  1946 /*fromYear*/,
14316  1946 /*toYear*/,
14317  9 /*inMonth*/,
14318  0 /*onDayOfWeek*/,
14319  30 /*onDayOfMonth*/,
14320  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14321  5520 /*atTimeCode (82800/15)*/,
14322  0 /*deltaMinutes*/,
14323  25 /*letterIndex ("S")*/,
14324  },
14325  // Rule Macau 1947 only - Apr 19 23:00s 1:00 D
14326  {
14327  1947 /*fromYear*/,
14328  1947 /*toYear*/,
14329  4 /*inMonth*/,
14330  0 /*onDayOfWeek*/,
14331  19 /*onDayOfMonth*/,
14332  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14333  5520 /*atTimeCode (82800/15)*/,
14334  60 /*deltaMinutes*/,
14335  13 /*letterIndex ("D")*/,
14336  },
14337  // Rule Macau 1947 only - Nov 30 23:00s 0 S
14338  {
14339  1947 /*fromYear*/,
14340  1947 /*toYear*/,
14341  11 /*inMonth*/,
14342  0 /*onDayOfWeek*/,
14343  30 /*onDayOfMonth*/,
14344  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14345  5520 /*atTimeCode (82800/15)*/,
14346  0 /*deltaMinutes*/,
14347  25 /*letterIndex ("S")*/,
14348  },
14349  // Rule Macau 1948 only - May 2 23:00s 1:00 D
14350  {
14351  1948 /*fromYear*/,
14352  1948 /*toYear*/,
14353  5 /*inMonth*/,
14354  0 /*onDayOfWeek*/,
14355  2 /*onDayOfMonth*/,
14356  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14357  5520 /*atTimeCode (82800/15)*/,
14358  60 /*deltaMinutes*/,
14359  13 /*letterIndex ("D")*/,
14360  },
14361  // Rule Macau 1948 only - Oct 31 23:00s 0 S
14362  {
14363  1948 /*fromYear*/,
14364  1948 /*toYear*/,
14365  10 /*inMonth*/,
14366  0 /*onDayOfWeek*/,
14367  31 /*onDayOfMonth*/,
14368  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14369  5520 /*atTimeCode (82800/15)*/,
14370  0 /*deltaMinutes*/,
14371  25 /*letterIndex ("S")*/,
14372  },
14373  // Rule Macau 1949 1950 - Apr Sat>=1 23:00s 1:00 D
14374  {
14375  1949 /*fromYear*/,
14376  1950 /*toYear*/,
14377  4 /*inMonth*/,
14378  6 /*onDayOfWeek*/,
14379  1 /*onDayOfMonth*/,
14380  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14381  5520 /*atTimeCode (82800/15)*/,
14382  60 /*deltaMinutes*/,
14383  13 /*letterIndex ("D")*/,
14384  },
14385  // Rule Macau 1949 1950 - Oct lastSat 23:00s 0 S
14386  {
14387  1949 /*fromYear*/,
14388  1950 /*toYear*/,
14389  10 /*inMonth*/,
14390  6 /*onDayOfWeek*/,
14391  0 /*onDayOfMonth*/,
14392  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14393  5520 /*atTimeCode (82800/15)*/,
14394  0 /*deltaMinutes*/,
14395  25 /*letterIndex ("S")*/,
14396  },
14397  // Rule Macau 1951 only - Mar 31 23:00s 1:00 D
14398  {
14399  1951 /*fromYear*/,
14400  1951 /*toYear*/,
14401  3 /*inMonth*/,
14402  0 /*onDayOfWeek*/,
14403  31 /*onDayOfMonth*/,
14404  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14405  5520 /*atTimeCode (82800/15)*/,
14406  60 /*deltaMinutes*/,
14407  13 /*letterIndex ("D")*/,
14408  },
14409  // Rule Macau 1951 only - Oct 28 23:00s 0 S
14410  {
14411  1951 /*fromYear*/,
14412  1951 /*toYear*/,
14413  10 /*inMonth*/,
14414  0 /*onDayOfWeek*/,
14415  28 /*onDayOfMonth*/,
14416  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14417  5520 /*atTimeCode (82800/15)*/,
14418  0 /*deltaMinutes*/,
14419  25 /*letterIndex ("S")*/,
14420  },
14421  // Rule Macau 1952 1953 - Apr Sat>=1 23:00s 1:00 D
14422  {
14423  1952 /*fromYear*/,
14424  1953 /*toYear*/,
14425  4 /*inMonth*/,
14426  6 /*onDayOfWeek*/,
14427  1 /*onDayOfMonth*/,
14428  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14429  5520 /*atTimeCode (82800/15)*/,
14430  60 /*deltaMinutes*/,
14431  13 /*letterIndex ("D")*/,
14432  },
14433  // Rule Macau 1952 only - Nov 1 23:00s 0 S
14434  {
14435  1952 /*fromYear*/,
14436  1952 /*toYear*/,
14437  11 /*inMonth*/,
14438  0 /*onDayOfWeek*/,
14439  1 /*onDayOfMonth*/,
14440  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14441  5520 /*atTimeCode (82800/15)*/,
14442  0 /*deltaMinutes*/,
14443  25 /*letterIndex ("S")*/,
14444  },
14445  // Rule Macau 1953 1954 - Oct lastSat 23:00s 0 S
14446  {
14447  1953 /*fromYear*/,
14448  1954 /*toYear*/,
14449  10 /*inMonth*/,
14450  6 /*onDayOfWeek*/,
14451  0 /*onDayOfMonth*/,
14452  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14453  5520 /*atTimeCode (82800/15)*/,
14454  0 /*deltaMinutes*/,
14455  25 /*letterIndex ("S")*/,
14456  },
14457  // Rule Macau 1954 1956 - Mar Sat>=17 23:00s 1:00 D
14458  {
14459  1954 /*fromYear*/,
14460  1956 /*toYear*/,
14461  3 /*inMonth*/,
14462  6 /*onDayOfWeek*/,
14463  17 /*onDayOfMonth*/,
14464  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14465  5520 /*atTimeCode (82800/15)*/,
14466  60 /*deltaMinutes*/,
14467  13 /*letterIndex ("D")*/,
14468  },
14469  // Rule Macau 1955 only - Nov 5 23:00s 0 S
14470  {
14471  1955 /*fromYear*/,
14472  1955 /*toYear*/,
14473  11 /*inMonth*/,
14474  0 /*onDayOfWeek*/,
14475  5 /*onDayOfMonth*/,
14476  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14477  5520 /*atTimeCode (82800/15)*/,
14478  0 /*deltaMinutes*/,
14479  25 /*letterIndex ("S")*/,
14480  },
14481  // Rule Macau 1956 1964 - Nov Sun>=1 03:30 0 S
14482  {
14483  1956 /*fromYear*/,
14484  1964 /*toYear*/,
14485  11 /*inMonth*/,
14486  7 /*onDayOfWeek*/,
14487  1 /*onDayOfMonth*/,
14488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14489  840 /*atTimeCode (12600/15)*/,
14490  0 /*deltaMinutes*/,
14491  25 /*letterIndex ("S")*/,
14492  },
14493  // Rule Macau 1957 1964 - Mar Sun>=18 03:30 1:00 D
14494  {
14495  1957 /*fromYear*/,
14496  1964 /*toYear*/,
14497  3 /*inMonth*/,
14498  7 /*onDayOfWeek*/,
14499  18 /*onDayOfMonth*/,
14500  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14501  840 /*atTimeCode (12600/15)*/,
14502  60 /*deltaMinutes*/,
14503  13 /*letterIndex ("D")*/,
14504  },
14505  // Rule Macau 1965 1973 - Apr Sun>=16 03:30 1:00 D
14506  {
14507  1965 /*fromYear*/,
14508  1973 /*toYear*/,
14509  4 /*inMonth*/,
14510  7 /*onDayOfWeek*/,
14511  16 /*onDayOfMonth*/,
14512  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14513  840 /*atTimeCode (12600/15)*/,
14514  60 /*deltaMinutes*/,
14515  13 /*letterIndex ("D")*/,
14516  },
14517  // Rule Macau 1965 1966 - Oct Sun>=16 02:30 0 S
14518  {
14519  1965 /*fromYear*/,
14520  1966 /*toYear*/,
14521  10 /*inMonth*/,
14522  7 /*onDayOfWeek*/,
14523  16 /*onDayOfMonth*/,
14524  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14525  600 /*atTimeCode (9000/15)*/,
14526  0 /*deltaMinutes*/,
14527  25 /*letterIndex ("S")*/,
14528  },
14529  // Rule Macau 1967 1976 - Oct Sun>=16 03:30 0 S
14530  {
14531  1967 /*fromYear*/,
14532  1976 /*toYear*/,
14533  10 /*inMonth*/,
14534  7 /*onDayOfWeek*/,
14535  16 /*onDayOfMonth*/,
14536  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14537  840 /*atTimeCode (12600/15)*/,
14538  0 /*deltaMinutes*/,
14539  25 /*letterIndex ("S")*/,
14540  },
14541  // Rule Macau 1973 only - Dec 30 03:30 1:00 D
14542  {
14543  1973 /*fromYear*/,
14544  1973 /*toYear*/,
14545  12 /*inMonth*/,
14546  0 /*onDayOfWeek*/,
14547  30 /*onDayOfMonth*/,
14548  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14549  840 /*atTimeCode (12600/15)*/,
14550  60 /*deltaMinutes*/,
14551  13 /*letterIndex ("D")*/,
14552  },
14553  // Rule Macau 1975 1976 - Apr Sun>=16 03:30 1:00 D
14554  {
14555  1975 /*fromYear*/,
14556  1976 /*toYear*/,
14557  4 /*inMonth*/,
14558  7 /*onDayOfWeek*/,
14559  16 /*onDayOfMonth*/,
14560  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14561  840 /*atTimeCode (12600/15)*/,
14562  60 /*deltaMinutes*/,
14563  13 /*letterIndex ("D")*/,
14564  },
14565  // Rule Macau 1979 only - May 13 03:30 1:00 D
14566  {
14567  1979 /*fromYear*/,
14568  1979 /*toYear*/,
14569  5 /*inMonth*/,
14570  0 /*onDayOfWeek*/,
14571  13 /*onDayOfMonth*/,
14572  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14573  840 /*atTimeCode (12600/15)*/,
14574  60 /*deltaMinutes*/,
14575  13 /*letterIndex ("D")*/,
14576  },
14577  // Rule Macau 1979 only - Oct Sun>=16 03:30 0 S
14578  {
14579  1979 /*fromYear*/,
14580  1979 /*toYear*/,
14581  10 /*inMonth*/,
14582  7 /*onDayOfWeek*/,
14583  16 /*onDayOfMonth*/,
14584  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14585  840 /*atTimeCode (12600/15)*/,
14586  0 /*deltaMinutes*/,
14587  25 /*letterIndex ("S")*/,
14588  },
14589 
14590 };
14591 
14592 const complete::Info::ZonePolicy kZonePolicyMacau ACE_TIME_PROGMEM = {
14593  kZoneRulesMacau /*rules*/,
14594  28 /*numRules*/,
14595 };
14596 
14597 //---------------------------------------------------------------------------
14598 // Policy name: Malta
14599 // Rules: 8
14600 //---------------------------------------------------------------------------
14601 
14602 static const complete::Info::ZoneRule kZoneRulesMalta[] ACE_TIME_PROGMEM = {
14603  // Anchor: Rule Malta 1973 only - Sep 29 0:00s 0 -
14604  {
14605  -32767 /*fromYear*/,
14606  -32767 /*toYear*/,
14607  1 /*inMonth*/,
14608  0 /*onDayOfWeek*/,
14609  1 /*onDayOfMonth*/,
14610  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14611  0 /*atTimeCode (0/15)*/,
14612  0 /*deltaMinutes*/,
14613  0 /*letterIndex ("")*/,
14614  },
14615  // Rule Malta 1973 only - Mar 31 0:00s 1:00 S
14616  {
14617  1973 /*fromYear*/,
14618  1973 /*toYear*/,
14619  3 /*inMonth*/,
14620  0 /*onDayOfWeek*/,
14621  31 /*onDayOfMonth*/,
14622  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14623  0 /*atTimeCode (0/15)*/,
14624  60 /*deltaMinutes*/,
14625  25 /*letterIndex ("S")*/,
14626  },
14627  // Rule Malta 1973 only - Sep 29 0:00s 0 -
14628  {
14629  1973 /*fromYear*/,
14630  1973 /*toYear*/,
14631  9 /*inMonth*/,
14632  0 /*onDayOfWeek*/,
14633  29 /*onDayOfMonth*/,
14634  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14635  0 /*atTimeCode (0/15)*/,
14636  0 /*deltaMinutes*/,
14637  0 /*letterIndex ("")*/,
14638  },
14639  // Rule Malta 1974 only - Apr 21 0:00s 1:00 S
14640  {
14641  1974 /*fromYear*/,
14642  1974 /*toYear*/,
14643  4 /*inMonth*/,
14644  0 /*onDayOfWeek*/,
14645  21 /*onDayOfMonth*/,
14646  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14647  0 /*atTimeCode (0/15)*/,
14648  60 /*deltaMinutes*/,
14649  25 /*letterIndex ("S")*/,
14650  },
14651  // Rule Malta 1974 only - Sep 16 0:00s 0 -
14652  {
14653  1974 /*fromYear*/,
14654  1974 /*toYear*/,
14655  9 /*inMonth*/,
14656  0 /*onDayOfWeek*/,
14657  16 /*onDayOfMonth*/,
14658  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
14659  0 /*atTimeCode (0/15)*/,
14660  0 /*deltaMinutes*/,
14661  0 /*letterIndex ("")*/,
14662  },
14663  // Rule Malta 1975 1979 - Apr Sun>=15 2:00 1:00 S
14664  {
14665  1975 /*fromYear*/,
14666  1979 /*toYear*/,
14667  4 /*inMonth*/,
14668  7 /*onDayOfWeek*/,
14669  15 /*onDayOfMonth*/,
14670  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14671  480 /*atTimeCode (7200/15)*/,
14672  60 /*deltaMinutes*/,
14673  25 /*letterIndex ("S")*/,
14674  },
14675  // Rule Malta 1975 1980 - Sep Sun>=15 2:00 0 -
14676  {
14677  1975 /*fromYear*/,
14678  1980 /*toYear*/,
14679  9 /*inMonth*/,
14680  7 /*onDayOfWeek*/,
14681  15 /*onDayOfMonth*/,
14682  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14683  480 /*atTimeCode (7200/15)*/,
14684  0 /*deltaMinutes*/,
14685  0 /*letterIndex ("")*/,
14686  },
14687  // Rule Malta 1980 only - Mar 31 2:00 1:00 S
14688  {
14689  1980 /*fromYear*/,
14690  1980 /*toYear*/,
14691  3 /*inMonth*/,
14692  0 /*onDayOfWeek*/,
14693  31 /*onDayOfMonth*/,
14694  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14695  480 /*atTimeCode (7200/15)*/,
14696  60 /*deltaMinutes*/,
14697  25 /*letterIndex ("S")*/,
14698  },
14699 
14700 };
14701 
14702 const complete::Info::ZonePolicy kZonePolicyMalta ACE_TIME_PROGMEM = {
14703  kZoneRulesMalta /*rules*/,
14704  8 /*numRules*/,
14705 };
14706 
14707 //---------------------------------------------------------------------------
14708 // Policy name: Marengo
14709 // Rules: 5
14710 //---------------------------------------------------------------------------
14711 
14712 static const complete::Info::ZoneRule kZoneRulesMarengo[] ACE_TIME_PROGMEM = {
14713  // Anchor: Rule Marengo 1951 only - Sep lastSun 2:00 0 S
14714  {
14715  -32767 /*fromYear*/,
14716  -32767 /*toYear*/,
14717  1 /*inMonth*/,
14718  0 /*onDayOfWeek*/,
14719  1 /*onDayOfMonth*/,
14720  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14721  0 /*atTimeCode (0/15)*/,
14722  0 /*deltaMinutes*/,
14723  25 /*letterIndex ("S")*/,
14724  },
14725  // Rule Marengo 1951 only - Apr lastSun 2:00 1:00 D
14726  {
14727  1951 /*fromYear*/,
14728  1951 /*toYear*/,
14729  4 /*inMonth*/,
14730  7 /*onDayOfWeek*/,
14731  0 /*onDayOfMonth*/,
14732  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14733  480 /*atTimeCode (7200/15)*/,
14734  60 /*deltaMinutes*/,
14735  13 /*letterIndex ("D")*/,
14736  },
14737  // Rule Marengo 1951 only - Sep lastSun 2:00 0 S
14738  {
14739  1951 /*fromYear*/,
14740  1951 /*toYear*/,
14741  9 /*inMonth*/,
14742  7 /*onDayOfWeek*/,
14743  0 /*onDayOfMonth*/,
14744  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14745  480 /*atTimeCode (7200/15)*/,
14746  0 /*deltaMinutes*/,
14747  25 /*letterIndex ("S")*/,
14748  },
14749  // Rule Marengo 1954 1960 - Apr lastSun 2:00 1:00 D
14750  {
14751  1954 /*fromYear*/,
14752  1960 /*toYear*/,
14753  4 /*inMonth*/,
14754  7 /*onDayOfWeek*/,
14755  0 /*onDayOfMonth*/,
14756  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14757  480 /*atTimeCode (7200/15)*/,
14758  60 /*deltaMinutes*/,
14759  13 /*letterIndex ("D")*/,
14760  },
14761  // Rule Marengo 1954 1960 - Sep lastSun 2:00 0 S
14762  {
14763  1954 /*fromYear*/,
14764  1960 /*toYear*/,
14765  9 /*inMonth*/,
14766  7 /*onDayOfWeek*/,
14767  0 /*onDayOfMonth*/,
14768  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14769  480 /*atTimeCode (7200/15)*/,
14770  0 /*deltaMinutes*/,
14771  25 /*letterIndex ("S")*/,
14772  },
14773 
14774 };
14775 
14776 const complete::Info::ZonePolicy kZonePolicyMarengo ACE_TIME_PROGMEM = {
14777  kZoneRulesMarengo /*rules*/,
14778  5 /*numRules*/,
14779 };
14780 
14781 //---------------------------------------------------------------------------
14782 // Policy name: Mauritius
14783 // Rules: 5
14784 //---------------------------------------------------------------------------
14785 
14786 static const complete::Info::ZoneRule kZoneRulesMauritius[] ACE_TIME_PROGMEM = {
14787  // Anchor: Rule Mauritius 1983 only - Mar 21 0:00 0 -
14788  {
14789  -32767 /*fromYear*/,
14790  -32767 /*toYear*/,
14791  1 /*inMonth*/,
14792  0 /*onDayOfWeek*/,
14793  1 /*onDayOfMonth*/,
14794  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14795  0 /*atTimeCode (0/15)*/,
14796  0 /*deltaMinutes*/,
14797  0 /*letterIndex ("")*/,
14798  },
14799  // Rule Mauritius 1982 only - Oct 10 0:00 1:00 -
14800  {
14801  1982 /*fromYear*/,
14802  1982 /*toYear*/,
14803  10 /*inMonth*/,
14804  0 /*onDayOfWeek*/,
14805  10 /*onDayOfMonth*/,
14806  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14807  0 /*atTimeCode (0/15)*/,
14808  60 /*deltaMinutes*/,
14809  0 /*letterIndex ("")*/,
14810  },
14811  // Rule Mauritius 1983 only - Mar 21 0:00 0 -
14812  {
14813  1983 /*fromYear*/,
14814  1983 /*toYear*/,
14815  3 /*inMonth*/,
14816  0 /*onDayOfWeek*/,
14817  21 /*onDayOfMonth*/,
14818  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14819  0 /*atTimeCode (0/15)*/,
14820  0 /*deltaMinutes*/,
14821  0 /*letterIndex ("")*/,
14822  },
14823  // Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
14824  {
14825  2008 /*fromYear*/,
14826  2008 /*toYear*/,
14827  10 /*inMonth*/,
14828  7 /*onDayOfWeek*/,
14829  0 /*onDayOfMonth*/,
14830  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14831  480 /*atTimeCode (7200/15)*/,
14832  60 /*deltaMinutes*/,
14833  0 /*letterIndex ("")*/,
14834  },
14835  // Rule Mauritius 2009 only - Mar lastSun 2:00 0 -
14836  {
14837  2009 /*fromYear*/,
14838  2009 /*toYear*/,
14839  3 /*inMonth*/,
14840  7 /*onDayOfWeek*/,
14841  0 /*onDayOfMonth*/,
14842  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14843  480 /*atTimeCode (7200/15)*/,
14844  0 /*deltaMinutes*/,
14845  0 /*letterIndex ("")*/,
14846  },
14847 
14848 };
14849 
14850 const complete::Info::ZonePolicy kZonePolicyMauritius ACE_TIME_PROGMEM = {
14851  kZoneRulesMauritius /*rules*/,
14852  5 /*numRules*/,
14853 };
14854 
14855 //---------------------------------------------------------------------------
14856 // Policy name: Menominee
14857 // Rules: 5
14858 //---------------------------------------------------------------------------
14859 
14860 static const complete::Info::ZoneRule kZoneRulesMenominee[] ACE_TIME_PROGMEM = {
14861  // Anchor: Rule Menominee 1946 only - Sep lastSun 2:00 0 S
14862  {
14863  -32767 /*fromYear*/,
14864  -32767 /*toYear*/,
14865  1 /*inMonth*/,
14866  0 /*onDayOfWeek*/,
14867  1 /*onDayOfMonth*/,
14868  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14869  0 /*atTimeCode (0/15)*/,
14870  0 /*deltaMinutes*/,
14871  25 /*letterIndex ("S")*/,
14872  },
14873  // Rule Menominee 1946 only - Apr lastSun 2:00 1:00 D
14874  {
14875  1946 /*fromYear*/,
14876  1946 /*toYear*/,
14877  4 /*inMonth*/,
14878  7 /*onDayOfWeek*/,
14879  0 /*onDayOfMonth*/,
14880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14881  480 /*atTimeCode (7200/15)*/,
14882  60 /*deltaMinutes*/,
14883  13 /*letterIndex ("D")*/,
14884  },
14885  // Rule Menominee 1946 only - Sep lastSun 2:00 0 S
14886  {
14887  1946 /*fromYear*/,
14888  1946 /*toYear*/,
14889  9 /*inMonth*/,
14890  7 /*onDayOfWeek*/,
14891  0 /*onDayOfMonth*/,
14892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14893  480 /*atTimeCode (7200/15)*/,
14894  0 /*deltaMinutes*/,
14895  25 /*letterIndex ("S")*/,
14896  },
14897  // Rule Menominee 1966 only - Apr lastSun 2:00 1:00 D
14898  {
14899  1966 /*fromYear*/,
14900  1966 /*toYear*/,
14901  4 /*inMonth*/,
14902  7 /*onDayOfWeek*/,
14903  0 /*onDayOfMonth*/,
14904  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14905  480 /*atTimeCode (7200/15)*/,
14906  60 /*deltaMinutes*/,
14907  13 /*letterIndex ("D")*/,
14908  },
14909  // Rule Menominee 1966 only - Oct lastSun 2:00 0 S
14910  {
14911  1966 /*fromYear*/,
14912  1966 /*toYear*/,
14913  10 /*inMonth*/,
14914  7 /*onDayOfWeek*/,
14915  0 /*onDayOfMonth*/,
14916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14917  480 /*atTimeCode (7200/15)*/,
14918  0 /*deltaMinutes*/,
14919  25 /*letterIndex ("S")*/,
14920  },
14921 
14922 };
14923 
14924 const complete::Info::ZonePolicy kZonePolicyMenominee ACE_TIME_PROGMEM = {
14925  kZoneRulesMenominee /*rules*/,
14926  5 /*numRules*/,
14927 };
14928 
14929 //---------------------------------------------------------------------------
14930 // Policy name: Mexico
14931 // Rules: 17
14932 //---------------------------------------------------------------------------
14933 
14934 static const complete::Info::ZoneRule kZoneRulesMexico[] ACE_TIME_PROGMEM = {
14935  // Anchor: Rule Mexico 1931 only - Oct 1 0:00 0 S
14936  {
14937  -32767 /*fromYear*/,
14938  -32767 /*toYear*/,
14939  1 /*inMonth*/,
14940  0 /*onDayOfWeek*/,
14941  1 /*onDayOfMonth*/,
14942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14943  0 /*atTimeCode (0/15)*/,
14944  0 /*deltaMinutes*/,
14945  25 /*letterIndex ("S")*/,
14946  },
14947  // Rule Mexico 1931 only - Apr 30 0:00 1:00 D
14948  {
14949  1931 /*fromYear*/,
14950  1931 /*toYear*/,
14951  4 /*inMonth*/,
14952  0 /*onDayOfWeek*/,
14953  30 /*onDayOfMonth*/,
14954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14955  0 /*atTimeCode (0/15)*/,
14956  60 /*deltaMinutes*/,
14957  13 /*letterIndex ("D")*/,
14958  },
14959  // Rule Mexico 1931 only - Oct 1 0:00 0 S
14960  {
14961  1931 /*fromYear*/,
14962  1931 /*toYear*/,
14963  10 /*inMonth*/,
14964  0 /*onDayOfWeek*/,
14965  1 /*onDayOfMonth*/,
14966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14967  0 /*atTimeCode (0/15)*/,
14968  0 /*deltaMinutes*/,
14969  25 /*letterIndex ("S")*/,
14970  },
14971  // Rule Mexico 1939 only - Feb 5 0:00 1:00 D
14972  {
14973  1939 /*fromYear*/,
14974  1939 /*toYear*/,
14975  2 /*inMonth*/,
14976  0 /*onDayOfWeek*/,
14977  5 /*onDayOfMonth*/,
14978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14979  0 /*atTimeCode (0/15)*/,
14980  60 /*deltaMinutes*/,
14981  13 /*letterIndex ("D")*/,
14982  },
14983  // Rule Mexico 1939 only - Jun 25 0:00 0 S
14984  {
14985  1939 /*fromYear*/,
14986  1939 /*toYear*/,
14987  6 /*inMonth*/,
14988  0 /*onDayOfWeek*/,
14989  25 /*onDayOfMonth*/,
14990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
14991  0 /*atTimeCode (0/15)*/,
14992  0 /*deltaMinutes*/,
14993  25 /*letterIndex ("S")*/,
14994  },
14995  // Rule Mexico 1940 only - Dec 9 0:00 1:00 D
14996  {
14997  1940 /*fromYear*/,
14998  1940 /*toYear*/,
14999  12 /*inMonth*/,
15000  0 /*onDayOfWeek*/,
15001  9 /*onDayOfMonth*/,
15002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15003  0 /*atTimeCode (0/15)*/,
15004  60 /*deltaMinutes*/,
15005  13 /*letterIndex ("D")*/,
15006  },
15007  // Rule Mexico 1941 only - Apr 1 0:00 0 S
15008  {
15009  1941 /*fromYear*/,
15010  1941 /*toYear*/,
15011  4 /*inMonth*/,
15012  0 /*onDayOfWeek*/,
15013  1 /*onDayOfMonth*/,
15014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15015  0 /*atTimeCode (0/15)*/,
15016  0 /*deltaMinutes*/,
15017  25 /*letterIndex ("S")*/,
15018  },
15019  // Rule Mexico 1943 only - Dec 16 0:00 1:00 W
15020  {
15021  1943 /*fromYear*/,
15022  1943 /*toYear*/,
15023  12 /*inMonth*/,
15024  0 /*onDayOfWeek*/,
15025  16 /*onDayOfMonth*/,
15026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15027  0 /*atTimeCode (0/15)*/,
15028  60 /*deltaMinutes*/,
15029  26 /*letterIndex ("W")*/,
15030  },
15031  // Rule Mexico 1944 only - May 1 0:00 0 S
15032  {
15033  1944 /*fromYear*/,
15034  1944 /*toYear*/,
15035  5 /*inMonth*/,
15036  0 /*onDayOfWeek*/,
15037  1 /*onDayOfMonth*/,
15038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15039  0 /*atTimeCode (0/15)*/,
15040  0 /*deltaMinutes*/,
15041  25 /*letterIndex ("S")*/,
15042  },
15043  // Rule Mexico 1950 only - Feb 12 0:00 1:00 D
15044  {
15045  1950 /*fromYear*/,
15046  1950 /*toYear*/,
15047  2 /*inMonth*/,
15048  0 /*onDayOfWeek*/,
15049  12 /*onDayOfMonth*/,
15050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15051  0 /*atTimeCode (0/15)*/,
15052  60 /*deltaMinutes*/,
15053  13 /*letterIndex ("D")*/,
15054  },
15055  // Rule Mexico 1950 only - Jul 30 0:00 0 S
15056  {
15057  1950 /*fromYear*/,
15058  1950 /*toYear*/,
15059  7 /*inMonth*/,
15060  0 /*onDayOfWeek*/,
15061  30 /*onDayOfMonth*/,
15062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15063  0 /*atTimeCode (0/15)*/,
15064  0 /*deltaMinutes*/,
15065  25 /*letterIndex ("S")*/,
15066  },
15067  // Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D
15068  {
15069  1996 /*fromYear*/,
15070  2000 /*toYear*/,
15071  4 /*inMonth*/,
15072  7 /*onDayOfWeek*/,
15073  1 /*onDayOfMonth*/,
15074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15075  480 /*atTimeCode (7200/15)*/,
15076  60 /*deltaMinutes*/,
15077  13 /*letterIndex ("D")*/,
15078  },
15079  // Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S
15080  {
15081  1996 /*fromYear*/,
15082  2000 /*toYear*/,
15083  10 /*inMonth*/,
15084  7 /*onDayOfWeek*/,
15085  0 /*onDayOfMonth*/,
15086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15087  480 /*atTimeCode (7200/15)*/,
15088  0 /*deltaMinutes*/,
15089  25 /*letterIndex ("S")*/,
15090  },
15091  // Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D
15092  {
15093  2001 /*fromYear*/,
15094  2001 /*toYear*/,
15095  5 /*inMonth*/,
15096  7 /*onDayOfWeek*/,
15097  1 /*onDayOfMonth*/,
15098  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15099  480 /*atTimeCode (7200/15)*/,
15100  60 /*deltaMinutes*/,
15101  13 /*letterIndex ("D")*/,
15102  },
15103  // Rule Mexico 2001 only - Sep lastSun 2:00 0 S
15104  {
15105  2001 /*fromYear*/,
15106  2001 /*toYear*/,
15107  9 /*inMonth*/,
15108  7 /*onDayOfWeek*/,
15109  0 /*onDayOfMonth*/,
15110  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15111  480 /*atTimeCode (7200/15)*/,
15112  0 /*deltaMinutes*/,
15113  25 /*letterIndex ("S")*/,
15114  },
15115  // Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D
15116  {
15117  2002 /*fromYear*/,
15118  2022 /*toYear*/,
15119  4 /*inMonth*/,
15120  7 /*onDayOfWeek*/,
15121  1 /*onDayOfMonth*/,
15122  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15123  480 /*atTimeCode (7200/15)*/,
15124  60 /*deltaMinutes*/,
15125  13 /*letterIndex ("D")*/,
15126  },
15127  // Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S
15128  {
15129  2002 /*fromYear*/,
15130  2022 /*toYear*/,
15131  10 /*inMonth*/,
15132  7 /*onDayOfWeek*/,
15133  0 /*onDayOfMonth*/,
15134  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15135  480 /*atTimeCode (7200/15)*/,
15136  0 /*deltaMinutes*/,
15137  25 /*letterIndex ("S")*/,
15138  },
15139 
15140 };
15141 
15142 const complete::Info::ZonePolicy kZonePolicyMexico ACE_TIME_PROGMEM = {
15143  kZoneRulesMexico /*rules*/,
15144  17 /*numRules*/,
15145 };
15146 
15147 //---------------------------------------------------------------------------
15148 // Policy name: Moldova
15149 // Rules: 3
15150 //---------------------------------------------------------------------------
15151 
15152 static const complete::Info::ZoneRule kZoneRulesMoldova[] ACE_TIME_PROGMEM = {
15153  // Anchor: Rule Moldova 1997 max - Oct lastSun 3:00 0 -
15154  {
15155  -32767 /*fromYear*/,
15156  -32767 /*toYear*/,
15157  1 /*inMonth*/,
15158  0 /*onDayOfWeek*/,
15159  1 /*onDayOfMonth*/,
15160  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15161  0 /*atTimeCode (0/15)*/,
15162  0 /*deltaMinutes*/,
15163  0 /*letterIndex ("")*/,
15164  },
15165  // Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
15166  {
15167  1997 /*fromYear*/,
15168  32766 /*toYear*/,
15169  3 /*inMonth*/,
15170  7 /*onDayOfWeek*/,
15171  0 /*onDayOfMonth*/,
15172  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15173  480 /*atTimeCode (7200/15)*/,
15174  60 /*deltaMinutes*/,
15175  25 /*letterIndex ("S")*/,
15176  },
15177  // Rule Moldova 1997 max - Oct lastSun 3:00 0 -
15178  {
15179  1997 /*fromYear*/,
15180  32766 /*toYear*/,
15181  10 /*inMonth*/,
15182  7 /*onDayOfWeek*/,
15183  0 /*onDayOfMonth*/,
15184  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15185  720 /*atTimeCode (10800/15)*/,
15186  0 /*deltaMinutes*/,
15187  0 /*letterIndex ("")*/,
15188  },
15189 
15190 };
15191 
15192 const complete::Info::ZonePolicy kZonePolicyMoldova ACE_TIME_PROGMEM = {
15193  kZoneRulesMoldova /*rules*/,
15194  3 /*numRules*/,
15195 };
15196 
15197 //---------------------------------------------------------------------------
15198 // Policy name: Moncton
15199 // Rules: 14
15200 //---------------------------------------------------------------------------
15201 
15202 static const complete::Info::ZoneRule kZoneRulesMoncton[] ACE_TIME_PROGMEM = {
15203  // Anchor: Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
15204  {
15205  -32767 /*fromYear*/,
15206  -32767 /*toYear*/,
15207  1 /*inMonth*/,
15208  0 /*onDayOfWeek*/,
15209  1 /*onDayOfMonth*/,
15210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15211  0 /*atTimeCode (0/15)*/,
15212  0 /*deltaMinutes*/,
15213  25 /*letterIndex ("S")*/,
15214  },
15215  // Rule Moncton 1933 1935 - Jun Sun>=8 1:00 1:00 D
15216  {
15217  1933 /*fromYear*/,
15218  1935 /*toYear*/,
15219  6 /*inMonth*/,
15220  7 /*onDayOfWeek*/,
15221  8 /*onDayOfMonth*/,
15222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15223  240 /*atTimeCode (3600/15)*/,
15224  60 /*deltaMinutes*/,
15225  13 /*letterIndex ("D")*/,
15226  },
15227  // Rule Moncton 1933 1935 - Sep Sun>=8 1:00 0 S
15228  {
15229  1933 /*fromYear*/,
15230  1935 /*toYear*/,
15231  9 /*inMonth*/,
15232  7 /*onDayOfWeek*/,
15233  8 /*onDayOfMonth*/,
15234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15235  240 /*atTimeCode (3600/15)*/,
15236  0 /*deltaMinutes*/,
15237  25 /*letterIndex ("S")*/,
15238  },
15239  // Rule Moncton 1936 1938 - Jun Sun>=1 1:00 1:00 D
15240  {
15241  1936 /*fromYear*/,
15242  1938 /*toYear*/,
15243  6 /*inMonth*/,
15244  7 /*onDayOfWeek*/,
15245  1 /*onDayOfMonth*/,
15246  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15247  240 /*atTimeCode (3600/15)*/,
15248  60 /*deltaMinutes*/,
15249  13 /*letterIndex ("D")*/,
15250  },
15251  // Rule Moncton 1936 1938 - Sep Sun>=1 1:00 0 S
15252  {
15253  1936 /*fromYear*/,
15254  1938 /*toYear*/,
15255  9 /*inMonth*/,
15256  7 /*onDayOfWeek*/,
15257  1 /*onDayOfMonth*/,
15258  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15259  240 /*atTimeCode (3600/15)*/,
15260  0 /*deltaMinutes*/,
15261  25 /*letterIndex ("S")*/,
15262  },
15263  // Rule Moncton 1939 only - May 27 1:00 1:00 D
15264  {
15265  1939 /*fromYear*/,
15266  1939 /*toYear*/,
15267  5 /*inMonth*/,
15268  0 /*onDayOfWeek*/,
15269  27 /*onDayOfMonth*/,
15270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15271  240 /*atTimeCode (3600/15)*/,
15272  60 /*deltaMinutes*/,
15273  13 /*letterIndex ("D")*/,
15274  },
15275  // Rule Moncton 1939 1941 - Sep Sat>=21 1:00 0 S
15276  {
15277  1939 /*fromYear*/,
15278  1941 /*toYear*/,
15279  9 /*inMonth*/,
15280  6 /*onDayOfWeek*/,
15281  21 /*onDayOfMonth*/,
15282  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15283  240 /*atTimeCode (3600/15)*/,
15284  0 /*deltaMinutes*/,
15285  25 /*letterIndex ("S")*/,
15286  },
15287  // Rule Moncton 1940 only - May 19 1:00 1:00 D
15288  {
15289  1940 /*fromYear*/,
15290  1940 /*toYear*/,
15291  5 /*inMonth*/,
15292  0 /*onDayOfWeek*/,
15293  19 /*onDayOfMonth*/,
15294  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15295  240 /*atTimeCode (3600/15)*/,
15296  60 /*deltaMinutes*/,
15297  13 /*letterIndex ("D")*/,
15298  },
15299  // Rule Moncton 1941 only - May 4 1:00 1:00 D
15300  {
15301  1941 /*fromYear*/,
15302  1941 /*toYear*/,
15303  5 /*inMonth*/,
15304  0 /*onDayOfWeek*/,
15305  4 /*onDayOfMonth*/,
15306  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15307  240 /*atTimeCode (3600/15)*/,
15308  60 /*deltaMinutes*/,
15309  13 /*letterIndex ("D")*/,
15310  },
15311  // Rule Moncton 1946 1972 - Apr lastSun 2:00 1:00 D
15312  {
15313  1946 /*fromYear*/,
15314  1972 /*toYear*/,
15315  4 /*inMonth*/,
15316  7 /*onDayOfWeek*/,
15317  0 /*onDayOfMonth*/,
15318  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15319  480 /*atTimeCode (7200/15)*/,
15320  60 /*deltaMinutes*/,
15321  13 /*letterIndex ("D")*/,
15322  },
15323  // Rule Moncton 1946 1956 - Sep lastSun 2:00 0 S
15324  {
15325  1946 /*fromYear*/,
15326  1956 /*toYear*/,
15327  9 /*inMonth*/,
15328  7 /*onDayOfWeek*/,
15329  0 /*onDayOfMonth*/,
15330  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15331  480 /*atTimeCode (7200/15)*/,
15332  0 /*deltaMinutes*/,
15333  25 /*letterIndex ("S")*/,
15334  },
15335  // Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
15336  {
15337  1957 /*fromYear*/,
15338  1972 /*toYear*/,
15339  10 /*inMonth*/,
15340  7 /*onDayOfWeek*/,
15341  0 /*onDayOfMonth*/,
15342  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15343  480 /*atTimeCode (7200/15)*/,
15344  0 /*deltaMinutes*/,
15345  25 /*letterIndex ("S")*/,
15346  },
15347  // Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D
15348  {
15349  1993 /*fromYear*/,
15350  2006 /*toYear*/,
15351  4 /*inMonth*/,
15352  7 /*onDayOfWeek*/,
15353  1 /*onDayOfMonth*/,
15354  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15355  4 /*atTimeCode (60/15)*/,
15356  60 /*deltaMinutes*/,
15357  13 /*letterIndex ("D")*/,
15358  },
15359  // Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S
15360  {
15361  1993 /*fromYear*/,
15362  2006 /*toYear*/,
15363  10 /*inMonth*/,
15364  7 /*onDayOfWeek*/,
15365  0 /*onDayOfMonth*/,
15366  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15367  4 /*atTimeCode (60/15)*/,
15368  0 /*deltaMinutes*/,
15369  25 /*letterIndex ("S")*/,
15370  },
15371 
15372 };
15373 
15374 const complete::Info::ZonePolicy kZonePolicyMoncton ACE_TIME_PROGMEM = {
15375  kZoneRulesMoncton /*rules*/,
15376  14 /*numRules*/,
15377 };
15378 
15379 //---------------------------------------------------------------------------
15380 // Policy name: Mongol
15381 // Rules: 10
15382 //---------------------------------------------------------------------------
15383 
15384 static const complete::Info::ZoneRule kZoneRulesMongol[] ACE_TIME_PROGMEM = {
15385  // Anchor: Rule Mongol 1983 only - Oct 1 0:00 0 -
15386  {
15387  -32767 /*fromYear*/,
15388  -32767 /*toYear*/,
15389  1 /*inMonth*/,
15390  0 /*onDayOfWeek*/,
15391  1 /*onDayOfMonth*/,
15392  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15393  0 /*atTimeCode (0/15)*/,
15394  0 /*deltaMinutes*/,
15395  0 /*letterIndex ("")*/,
15396  },
15397  // Rule Mongol 1983 1984 - Apr 1 0:00 1:00 -
15398  {
15399  1983 /*fromYear*/,
15400  1984 /*toYear*/,
15401  4 /*inMonth*/,
15402  0 /*onDayOfWeek*/,
15403  1 /*onDayOfMonth*/,
15404  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15405  0 /*atTimeCode (0/15)*/,
15406  60 /*deltaMinutes*/,
15407  0 /*letterIndex ("")*/,
15408  },
15409  // Rule Mongol 1983 only - Oct 1 0:00 0 -
15410  {
15411  1983 /*fromYear*/,
15412  1983 /*toYear*/,
15413  10 /*inMonth*/,
15414  0 /*onDayOfWeek*/,
15415  1 /*onDayOfMonth*/,
15416  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15417  0 /*atTimeCode (0/15)*/,
15418  0 /*deltaMinutes*/,
15419  0 /*letterIndex ("")*/,
15420  },
15421  // Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 -
15422  {
15423  1985 /*fromYear*/,
15424  1998 /*toYear*/,
15425  3 /*inMonth*/,
15426  7 /*onDayOfWeek*/,
15427  0 /*onDayOfMonth*/,
15428  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15429  0 /*atTimeCode (0/15)*/,
15430  60 /*deltaMinutes*/,
15431  0 /*letterIndex ("")*/,
15432  },
15433  // Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
15434  {
15435  1984 /*fromYear*/,
15436  1998 /*toYear*/,
15437  9 /*inMonth*/,
15438  7 /*onDayOfWeek*/,
15439  0 /*onDayOfMonth*/,
15440  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15441  0 /*atTimeCode (0/15)*/,
15442  0 /*deltaMinutes*/,
15443  0 /*letterIndex ("")*/,
15444  },
15445  // Rule Mongol 2001 only - Apr lastSat 2:00 1:00 -
15446  {
15447  2001 /*fromYear*/,
15448  2001 /*toYear*/,
15449  4 /*inMonth*/,
15450  6 /*onDayOfWeek*/,
15451  0 /*onDayOfMonth*/,
15452  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15453  480 /*atTimeCode (7200/15)*/,
15454  60 /*deltaMinutes*/,
15455  0 /*letterIndex ("")*/,
15456  },
15457  // Rule Mongol 2001 2006 - Sep lastSat 2:00 0 -
15458  {
15459  2001 /*fromYear*/,
15460  2006 /*toYear*/,
15461  9 /*inMonth*/,
15462  6 /*onDayOfWeek*/,
15463  0 /*onDayOfMonth*/,
15464  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15465  480 /*atTimeCode (7200/15)*/,
15466  0 /*deltaMinutes*/,
15467  0 /*letterIndex ("")*/,
15468  },
15469  // Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 -
15470  {
15471  2002 /*fromYear*/,
15472  2006 /*toYear*/,
15473  3 /*inMonth*/,
15474  6 /*onDayOfWeek*/,
15475  0 /*onDayOfMonth*/,
15476  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15477  480 /*atTimeCode (7200/15)*/,
15478  60 /*deltaMinutes*/,
15479  0 /*letterIndex ("")*/,
15480  },
15481  // Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 -
15482  {
15483  2015 /*fromYear*/,
15484  2016 /*toYear*/,
15485  3 /*inMonth*/,
15486  6 /*onDayOfWeek*/,
15487  0 /*onDayOfMonth*/,
15488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15489  480 /*atTimeCode (7200/15)*/,
15490  60 /*deltaMinutes*/,
15491  0 /*letterIndex ("")*/,
15492  },
15493  // Rule Mongol 2015 2016 - Sep lastSat 0:00 0 -
15494  {
15495  2015 /*fromYear*/,
15496  2016 /*toYear*/,
15497  9 /*inMonth*/,
15498  6 /*onDayOfWeek*/,
15499  0 /*onDayOfMonth*/,
15500  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15501  0 /*atTimeCode (0/15)*/,
15502  0 /*deltaMinutes*/,
15503  0 /*letterIndex ("")*/,
15504  },
15505 
15506 };
15507 
15508 const complete::Info::ZonePolicy kZonePolicyMongol ACE_TIME_PROGMEM = {
15509  kZoneRulesMongol /*rules*/,
15510  10 /*numRules*/,
15511 };
15512 
15513 //---------------------------------------------------------------------------
15514 // Policy name: Morocco
15515 // Rules: 184
15516 //---------------------------------------------------------------------------
15517 
15518 static const complete::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = {
15519  // Anchor: Rule Morocco 1939 only - Nov 19 0:00 0 -
15520  {
15521  -32767 /*fromYear*/,
15522  -32767 /*toYear*/,
15523  1 /*inMonth*/,
15524  0 /*onDayOfWeek*/,
15525  1 /*onDayOfMonth*/,
15526  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15527  0 /*atTimeCode (0/15)*/,
15528  0 /*deltaMinutes*/,
15529  0 /*letterIndex ("")*/,
15530  },
15531  // Rule Morocco 1939 only - Sep 12 0:00 1:00 -
15532  {
15533  1939 /*fromYear*/,
15534  1939 /*toYear*/,
15535  9 /*inMonth*/,
15536  0 /*onDayOfWeek*/,
15537  12 /*onDayOfMonth*/,
15538  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15539  0 /*atTimeCode (0/15)*/,
15540  60 /*deltaMinutes*/,
15541  0 /*letterIndex ("")*/,
15542  },
15543  // Rule Morocco 1939 only - Nov 19 0:00 0 -
15544  {
15545  1939 /*fromYear*/,
15546  1939 /*toYear*/,
15547  11 /*inMonth*/,
15548  0 /*onDayOfWeek*/,
15549  19 /*onDayOfMonth*/,
15550  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15551  0 /*atTimeCode (0/15)*/,
15552  0 /*deltaMinutes*/,
15553  0 /*letterIndex ("")*/,
15554  },
15555  // Rule Morocco 1940 only - Feb 25 0:00 1:00 -
15556  {
15557  1940 /*fromYear*/,
15558  1940 /*toYear*/,
15559  2 /*inMonth*/,
15560  0 /*onDayOfWeek*/,
15561  25 /*onDayOfMonth*/,
15562  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15563  0 /*atTimeCode (0/15)*/,
15564  60 /*deltaMinutes*/,
15565  0 /*letterIndex ("")*/,
15566  },
15567  // Rule Morocco 1945 only - Nov 18 0:00 0 -
15568  {
15569  1945 /*fromYear*/,
15570  1945 /*toYear*/,
15571  11 /*inMonth*/,
15572  0 /*onDayOfWeek*/,
15573  18 /*onDayOfMonth*/,
15574  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15575  0 /*atTimeCode (0/15)*/,
15576  0 /*deltaMinutes*/,
15577  0 /*letterIndex ("")*/,
15578  },
15579  // Rule Morocco 1950 only - Jun 11 0:00 1:00 -
15580  {
15581  1950 /*fromYear*/,
15582  1950 /*toYear*/,
15583  6 /*inMonth*/,
15584  0 /*onDayOfWeek*/,
15585  11 /*onDayOfMonth*/,
15586  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15587  0 /*atTimeCode (0/15)*/,
15588  60 /*deltaMinutes*/,
15589  0 /*letterIndex ("")*/,
15590  },
15591  // Rule Morocco 1950 only - Oct 29 0:00 0 -
15592  {
15593  1950 /*fromYear*/,
15594  1950 /*toYear*/,
15595  10 /*inMonth*/,
15596  0 /*onDayOfWeek*/,
15597  29 /*onDayOfMonth*/,
15598  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15599  0 /*atTimeCode (0/15)*/,
15600  0 /*deltaMinutes*/,
15601  0 /*letterIndex ("")*/,
15602  },
15603  // Rule Morocco 1967 only - Jun 3 12:00 1:00 -
15604  {
15605  1967 /*fromYear*/,
15606  1967 /*toYear*/,
15607  6 /*inMonth*/,
15608  0 /*onDayOfWeek*/,
15609  3 /*onDayOfMonth*/,
15610  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15611  2880 /*atTimeCode (43200/15)*/,
15612  60 /*deltaMinutes*/,
15613  0 /*letterIndex ("")*/,
15614  },
15615  // Rule Morocco 1967 only - Oct 1 0:00 0 -
15616  {
15617  1967 /*fromYear*/,
15618  1967 /*toYear*/,
15619  10 /*inMonth*/,
15620  0 /*onDayOfWeek*/,
15621  1 /*onDayOfMonth*/,
15622  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15623  0 /*atTimeCode (0/15)*/,
15624  0 /*deltaMinutes*/,
15625  0 /*letterIndex ("")*/,
15626  },
15627  // Rule Morocco 1974 only - Jun 24 0:00 1:00 -
15628  {
15629  1974 /*fromYear*/,
15630  1974 /*toYear*/,
15631  6 /*inMonth*/,
15632  0 /*onDayOfWeek*/,
15633  24 /*onDayOfMonth*/,
15634  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15635  0 /*atTimeCode (0/15)*/,
15636  60 /*deltaMinutes*/,
15637  0 /*letterIndex ("")*/,
15638  },
15639  // Rule Morocco 1974 only - Sep 1 0:00 0 -
15640  {
15641  1974 /*fromYear*/,
15642  1974 /*toYear*/,
15643  9 /*inMonth*/,
15644  0 /*onDayOfWeek*/,
15645  1 /*onDayOfMonth*/,
15646  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15647  0 /*atTimeCode (0/15)*/,
15648  0 /*deltaMinutes*/,
15649  0 /*letterIndex ("")*/,
15650  },
15651  // Rule Morocco 1976 1977 - May 1 0:00 1:00 -
15652  {
15653  1976 /*fromYear*/,
15654  1977 /*toYear*/,
15655  5 /*inMonth*/,
15656  0 /*onDayOfWeek*/,
15657  1 /*onDayOfMonth*/,
15658  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15659  0 /*atTimeCode (0/15)*/,
15660  60 /*deltaMinutes*/,
15661  0 /*letterIndex ("")*/,
15662  },
15663  // Rule Morocco 1976 only - Aug 1 0:00 0 -
15664  {
15665  1976 /*fromYear*/,
15666  1976 /*toYear*/,
15667  8 /*inMonth*/,
15668  0 /*onDayOfWeek*/,
15669  1 /*onDayOfMonth*/,
15670  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15671  0 /*atTimeCode (0/15)*/,
15672  0 /*deltaMinutes*/,
15673  0 /*letterIndex ("")*/,
15674  },
15675  // Rule Morocco 1977 only - Sep 28 0:00 0 -
15676  {
15677  1977 /*fromYear*/,
15678  1977 /*toYear*/,
15679  9 /*inMonth*/,
15680  0 /*onDayOfWeek*/,
15681  28 /*onDayOfMonth*/,
15682  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15683  0 /*atTimeCode (0/15)*/,
15684  0 /*deltaMinutes*/,
15685  0 /*letterIndex ("")*/,
15686  },
15687  // Rule Morocco 1978 only - Jun 1 0:00 1:00 -
15688  {
15689  1978 /*fromYear*/,
15690  1978 /*toYear*/,
15691  6 /*inMonth*/,
15692  0 /*onDayOfWeek*/,
15693  1 /*onDayOfMonth*/,
15694  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15695  0 /*atTimeCode (0/15)*/,
15696  60 /*deltaMinutes*/,
15697  0 /*letterIndex ("")*/,
15698  },
15699  // Rule Morocco 1978 only - Aug 4 0:00 0 -
15700  {
15701  1978 /*fromYear*/,
15702  1978 /*toYear*/,
15703  8 /*inMonth*/,
15704  0 /*onDayOfWeek*/,
15705  4 /*onDayOfMonth*/,
15706  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15707  0 /*atTimeCode (0/15)*/,
15708  0 /*deltaMinutes*/,
15709  0 /*letterIndex ("")*/,
15710  },
15711  // Rule Morocco 2008 only - Jun 1 0:00 1:00 -
15712  {
15713  2008 /*fromYear*/,
15714  2008 /*toYear*/,
15715  6 /*inMonth*/,
15716  0 /*onDayOfWeek*/,
15717  1 /*onDayOfMonth*/,
15718  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15719  0 /*atTimeCode (0/15)*/,
15720  60 /*deltaMinutes*/,
15721  0 /*letterIndex ("")*/,
15722  },
15723  // Rule Morocco 2008 only - Sep 1 0:00 0 -
15724  {
15725  2008 /*fromYear*/,
15726  2008 /*toYear*/,
15727  9 /*inMonth*/,
15728  0 /*onDayOfWeek*/,
15729  1 /*onDayOfMonth*/,
15730  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15731  0 /*atTimeCode (0/15)*/,
15732  0 /*deltaMinutes*/,
15733  0 /*letterIndex ("")*/,
15734  },
15735  // Rule Morocco 2009 only - Jun 1 0:00 1:00 -
15736  {
15737  2009 /*fromYear*/,
15738  2009 /*toYear*/,
15739  6 /*inMonth*/,
15740  0 /*onDayOfWeek*/,
15741  1 /*onDayOfMonth*/,
15742  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15743  0 /*atTimeCode (0/15)*/,
15744  60 /*deltaMinutes*/,
15745  0 /*letterIndex ("")*/,
15746  },
15747  // Rule Morocco 2009 only - Aug 21 0:00 0 -
15748  {
15749  2009 /*fromYear*/,
15750  2009 /*toYear*/,
15751  8 /*inMonth*/,
15752  0 /*onDayOfWeek*/,
15753  21 /*onDayOfMonth*/,
15754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15755  0 /*atTimeCode (0/15)*/,
15756  0 /*deltaMinutes*/,
15757  0 /*letterIndex ("")*/,
15758  },
15759  // Rule Morocco 2010 only - May 2 0:00 1:00 -
15760  {
15761  2010 /*fromYear*/,
15762  2010 /*toYear*/,
15763  5 /*inMonth*/,
15764  0 /*onDayOfWeek*/,
15765  2 /*onDayOfMonth*/,
15766  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15767  0 /*atTimeCode (0/15)*/,
15768  60 /*deltaMinutes*/,
15769  0 /*letterIndex ("")*/,
15770  },
15771  // Rule Morocco 2010 only - Aug 8 0:00 0 -
15772  {
15773  2010 /*fromYear*/,
15774  2010 /*toYear*/,
15775  8 /*inMonth*/,
15776  0 /*onDayOfWeek*/,
15777  8 /*onDayOfMonth*/,
15778  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15779  0 /*atTimeCode (0/15)*/,
15780  0 /*deltaMinutes*/,
15781  0 /*letterIndex ("")*/,
15782  },
15783  // Rule Morocco 2011 only - Apr 3 0:00 1:00 -
15784  {
15785  2011 /*fromYear*/,
15786  2011 /*toYear*/,
15787  4 /*inMonth*/,
15788  0 /*onDayOfWeek*/,
15789  3 /*onDayOfMonth*/,
15790  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15791  0 /*atTimeCode (0/15)*/,
15792  60 /*deltaMinutes*/,
15793  0 /*letterIndex ("")*/,
15794  },
15795  // Rule Morocco 2011 only - Jul 31 0:00 0 -
15796  {
15797  2011 /*fromYear*/,
15798  2011 /*toYear*/,
15799  7 /*inMonth*/,
15800  0 /*onDayOfWeek*/,
15801  31 /*onDayOfMonth*/,
15802  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15803  0 /*atTimeCode (0/15)*/,
15804  0 /*deltaMinutes*/,
15805  0 /*letterIndex ("")*/,
15806  },
15807  // Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 -
15808  {
15809  2012 /*fromYear*/,
15810  2013 /*toYear*/,
15811  4 /*inMonth*/,
15812  7 /*onDayOfWeek*/,
15813  0 /*onDayOfMonth*/,
15814  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15815  480 /*atTimeCode (7200/15)*/,
15816  60 /*deltaMinutes*/,
15817  0 /*letterIndex ("")*/,
15818  },
15819  // Rule Morocco 2012 only - Jul 20 3:00 0 -
15820  {
15821  2012 /*fromYear*/,
15822  2012 /*toYear*/,
15823  7 /*inMonth*/,
15824  0 /*onDayOfWeek*/,
15825  20 /*onDayOfMonth*/,
15826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15827  720 /*atTimeCode (10800/15)*/,
15828  0 /*deltaMinutes*/,
15829  0 /*letterIndex ("")*/,
15830  },
15831  // Rule Morocco 2012 only - Aug 20 2:00 1:00 -
15832  {
15833  2012 /*fromYear*/,
15834  2012 /*toYear*/,
15835  8 /*inMonth*/,
15836  0 /*onDayOfWeek*/,
15837  20 /*onDayOfMonth*/,
15838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15839  480 /*atTimeCode (7200/15)*/,
15840  60 /*deltaMinutes*/,
15841  0 /*letterIndex ("")*/,
15842  },
15843  // Rule Morocco 2012 only - Sep 30 3:00 0 -
15844  {
15845  2012 /*fromYear*/,
15846  2012 /*toYear*/,
15847  9 /*inMonth*/,
15848  0 /*onDayOfWeek*/,
15849  30 /*onDayOfMonth*/,
15850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15851  720 /*atTimeCode (10800/15)*/,
15852  0 /*deltaMinutes*/,
15853  0 /*letterIndex ("")*/,
15854  },
15855  // Rule Morocco 2013 only - Jul 7 3:00 0 -
15856  {
15857  2013 /*fromYear*/,
15858  2013 /*toYear*/,
15859  7 /*inMonth*/,
15860  0 /*onDayOfWeek*/,
15861  7 /*onDayOfMonth*/,
15862  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15863  720 /*atTimeCode (10800/15)*/,
15864  0 /*deltaMinutes*/,
15865  0 /*letterIndex ("")*/,
15866  },
15867  // Rule Morocco 2013 only - Aug 10 2:00 1:00 -
15868  {
15869  2013 /*fromYear*/,
15870  2013 /*toYear*/,
15871  8 /*inMonth*/,
15872  0 /*onDayOfWeek*/,
15873  10 /*onDayOfMonth*/,
15874  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15875  480 /*atTimeCode (7200/15)*/,
15876  60 /*deltaMinutes*/,
15877  0 /*letterIndex ("")*/,
15878  },
15879  // Rule Morocco 2013 2018 - Oct lastSun 3:00 0 -
15880  {
15881  2013 /*fromYear*/,
15882  2018 /*toYear*/,
15883  10 /*inMonth*/,
15884  7 /*onDayOfWeek*/,
15885  0 /*onDayOfMonth*/,
15886  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15887  720 /*atTimeCode (10800/15)*/,
15888  0 /*deltaMinutes*/,
15889  0 /*letterIndex ("")*/,
15890  },
15891  // Rule Morocco 2014 2018 - Mar lastSun 2:00 1:00 -
15892  {
15893  2014 /*fromYear*/,
15894  2018 /*toYear*/,
15895  3 /*inMonth*/,
15896  7 /*onDayOfWeek*/,
15897  0 /*onDayOfMonth*/,
15898  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15899  480 /*atTimeCode (7200/15)*/,
15900  60 /*deltaMinutes*/,
15901  0 /*letterIndex ("")*/,
15902  },
15903  // Rule Morocco 2014 only - Jun 28 3:00 0 -
15904  {
15905  2014 /*fromYear*/,
15906  2014 /*toYear*/,
15907  6 /*inMonth*/,
15908  0 /*onDayOfWeek*/,
15909  28 /*onDayOfMonth*/,
15910  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15911  720 /*atTimeCode (10800/15)*/,
15912  0 /*deltaMinutes*/,
15913  0 /*letterIndex ("")*/,
15914  },
15915  // Rule Morocco 2014 only - Aug 2 2:00 1:00 -
15916  {
15917  2014 /*fromYear*/,
15918  2014 /*toYear*/,
15919  8 /*inMonth*/,
15920  0 /*onDayOfWeek*/,
15921  2 /*onDayOfMonth*/,
15922  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15923  480 /*atTimeCode (7200/15)*/,
15924  60 /*deltaMinutes*/,
15925  0 /*letterIndex ("")*/,
15926  },
15927  // Rule Morocco 2015 only - Jun 14 3:00 0 -
15928  {
15929  2015 /*fromYear*/,
15930  2015 /*toYear*/,
15931  6 /*inMonth*/,
15932  0 /*onDayOfWeek*/,
15933  14 /*onDayOfMonth*/,
15934  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15935  720 /*atTimeCode (10800/15)*/,
15936  0 /*deltaMinutes*/,
15937  0 /*letterIndex ("")*/,
15938  },
15939  // Rule Morocco 2015 only - Jul 19 2:00 1:00 -
15940  {
15941  2015 /*fromYear*/,
15942  2015 /*toYear*/,
15943  7 /*inMonth*/,
15944  0 /*onDayOfWeek*/,
15945  19 /*onDayOfMonth*/,
15946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15947  480 /*atTimeCode (7200/15)*/,
15948  60 /*deltaMinutes*/,
15949  0 /*letterIndex ("")*/,
15950  },
15951  // Rule Morocco 2016 only - Jun 5 3:00 0 -
15952  {
15953  2016 /*fromYear*/,
15954  2016 /*toYear*/,
15955  6 /*inMonth*/,
15956  0 /*onDayOfWeek*/,
15957  5 /*onDayOfMonth*/,
15958  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15959  720 /*atTimeCode (10800/15)*/,
15960  0 /*deltaMinutes*/,
15961  0 /*letterIndex ("")*/,
15962  },
15963  // Rule Morocco 2016 only - Jul 10 2:00 1:00 -
15964  {
15965  2016 /*fromYear*/,
15966  2016 /*toYear*/,
15967  7 /*inMonth*/,
15968  0 /*onDayOfWeek*/,
15969  10 /*onDayOfMonth*/,
15970  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15971  480 /*atTimeCode (7200/15)*/,
15972  60 /*deltaMinutes*/,
15973  0 /*letterIndex ("")*/,
15974  },
15975  // Rule Morocco 2017 only - May 21 3:00 0 -
15976  {
15977  2017 /*fromYear*/,
15978  2017 /*toYear*/,
15979  5 /*inMonth*/,
15980  0 /*onDayOfWeek*/,
15981  21 /*onDayOfMonth*/,
15982  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15983  720 /*atTimeCode (10800/15)*/,
15984  0 /*deltaMinutes*/,
15985  0 /*letterIndex ("")*/,
15986  },
15987  // Rule Morocco 2017 only - Jul 2 2:00 1:00 -
15988  {
15989  2017 /*fromYear*/,
15990  2017 /*toYear*/,
15991  7 /*inMonth*/,
15992  0 /*onDayOfWeek*/,
15993  2 /*onDayOfMonth*/,
15994  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
15995  480 /*atTimeCode (7200/15)*/,
15996  60 /*deltaMinutes*/,
15997  0 /*letterIndex ("")*/,
15998  },
15999  // Rule Morocco 2018 only - May 13 3:00 0 -
16000  {
16001  2018 /*fromYear*/,
16002  2018 /*toYear*/,
16003  5 /*inMonth*/,
16004  0 /*onDayOfWeek*/,
16005  13 /*onDayOfMonth*/,
16006  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16007  720 /*atTimeCode (10800/15)*/,
16008  0 /*deltaMinutes*/,
16009  0 /*letterIndex ("")*/,
16010  },
16011  // Rule Morocco 2018 only - Jun 17 2:00 1:00 -
16012  {
16013  2018 /*fromYear*/,
16014  2018 /*toYear*/,
16015  6 /*inMonth*/,
16016  0 /*onDayOfWeek*/,
16017  17 /*onDayOfMonth*/,
16018  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16019  480 /*atTimeCode (7200/15)*/,
16020  60 /*deltaMinutes*/,
16021  0 /*letterIndex ("")*/,
16022  },
16023  // Rule Morocco 2019 only - May 5 3:00 -1:00 -
16024  {
16025  2019 /*fromYear*/,
16026  2019 /*toYear*/,
16027  5 /*inMonth*/,
16028  0 /*onDayOfWeek*/,
16029  5 /*onDayOfMonth*/,
16030  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16031  720 /*atTimeCode (10800/15)*/,
16032  -60 /*deltaMinutes*/,
16033  0 /*letterIndex ("")*/,
16034  },
16035  // Rule Morocco 2019 only - Jun 9 2:00 0 -
16036  {
16037  2019 /*fromYear*/,
16038  2019 /*toYear*/,
16039  6 /*inMonth*/,
16040  0 /*onDayOfWeek*/,
16041  9 /*onDayOfMonth*/,
16042  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16043  480 /*atTimeCode (7200/15)*/,
16044  0 /*deltaMinutes*/,
16045  0 /*letterIndex ("")*/,
16046  },
16047  // Rule Morocco 2020 only - Apr 19 3:00 -1:00 -
16048  {
16049  2020 /*fromYear*/,
16050  2020 /*toYear*/,
16051  4 /*inMonth*/,
16052  0 /*onDayOfWeek*/,
16053  19 /*onDayOfMonth*/,
16054  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16055  720 /*atTimeCode (10800/15)*/,
16056  -60 /*deltaMinutes*/,
16057  0 /*letterIndex ("")*/,
16058  },
16059  // Rule Morocco 2020 only - May 31 2:00 0 -
16060  {
16061  2020 /*fromYear*/,
16062  2020 /*toYear*/,
16063  5 /*inMonth*/,
16064  0 /*onDayOfWeek*/,
16065  31 /*onDayOfMonth*/,
16066  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16067  480 /*atTimeCode (7200/15)*/,
16068  0 /*deltaMinutes*/,
16069  0 /*letterIndex ("")*/,
16070  },
16071  // Rule Morocco 2021 only - Apr 11 3:00 -1:00 -
16072  {
16073  2021 /*fromYear*/,
16074  2021 /*toYear*/,
16075  4 /*inMonth*/,
16076  0 /*onDayOfWeek*/,
16077  11 /*onDayOfMonth*/,
16078  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16079  720 /*atTimeCode (10800/15)*/,
16080  -60 /*deltaMinutes*/,
16081  0 /*letterIndex ("")*/,
16082  },
16083  // Rule Morocco 2021 only - May 16 2:00 0 -
16084  {
16085  2021 /*fromYear*/,
16086  2021 /*toYear*/,
16087  5 /*inMonth*/,
16088  0 /*onDayOfWeek*/,
16089  16 /*onDayOfMonth*/,
16090  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16091  480 /*atTimeCode (7200/15)*/,
16092  0 /*deltaMinutes*/,
16093  0 /*letterIndex ("")*/,
16094  },
16095  // Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
16096  {
16097  2022 /*fromYear*/,
16098  2022 /*toYear*/,
16099  3 /*inMonth*/,
16100  0 /*onDayOfWeek*/,
16101  27 /*onDayOfMonth*/,
16102  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16103  720 /*atTimeCode (10800/15)*/,
16104  -60 /*deltaMinutes*/,
16105  0 /*letterIndex ("")*/,
16106  },
16107  // Rule Morocco 2022 only - May 8 2:00 0 -
16108  {
16109  2022 /*fromYear*/,
16110  2022 /*toYear*/,
16111  5 /*inMonth*/,
16112  0 /*onDayOfWeek*/,
16113  8 /*onDayOfMonth*/,
16114  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16115  480 /*atTimeCode (7200/15)*/,
16116  0 /*deltaMinutes*/,
16117  0 /*letterIndex ("")*/,
16118  },
16119  // Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
16120  {
16121  2023 /*fromYear*/,
16122  2023 /*toYear*/,
16123  3 /*inMonth*/,
16124  0 /*onDayOfWeek*/,
16125  19 /*onDayOfMonth*/,
16126  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16127  720 /*atTimeCode (10800/15)*/,
16128  -60 /*deltaMinutes*/,
16129  0 /*letterIndex ("")*/,
16130  },
16131  // Rule Morocco 2023 only - Apr 23 2:00 0 -
16132  {
16133  2023 /*fromYear*/,
16134  2023 /*toYear*/,
16135  4 /*inMonth*/,
16136  0 /*onDayOfWeek*/,
16137  23 /*onDayOfMonth*/,
16138  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16139  480 /*atTimeCode (7200/15)*/,
16140  0 /*deltaMinutes*/,
16141  0 /*letterIndex ("")*/,
16142  },
16143  // Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
16144  {
16145  2024 /*fromYear*/,
16146  2024 /*toYear*/,
16147  3 /*inMonth*/,
16148  0 /*onDayOfWeek*/,
16149  10 /*onDayOfMonth*/,
16150  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16151  720 /*atTimeCode (10800/15)*/,
16152  -60 /*deltaMinutes*/,
16153  0 /*letterIndex ("")*/,
16154  },
16155  // Rule Morocco 2024 only - Apr 14 2:00 0 -
16156  {
16157  2024 /*fromYear*/,
16158  2024 /*toYear*/,
16159  4 /*inMonth*/,
16160  0 /*onDayOfWeek*/,
16161  14 /*onDayOfMonth*/,
16162  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16163  480 /*atTimeCode (7200/15)*/,
16164  0 /*deltaMinutes*/,
16165  0 /*letterIndex ("")*/,
16166  },
16167  // Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
16168  {
16169  2025 /*fromYear*/,
16170  2025 /*toYear*/,
16171  2 /*inMonth*/,
16172  0 /*onDayOfWeek*/,
16173  23 /*onDayOfMonth*/,
16174  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16175  720 /*atTimeCode (10800/15)*/,
16176  -60 /*deltaMinutes*/,
16177  0 /*letterIndex ("")*/,
16178  },
16179  // Rule Morocco 2025 only - Apr 6 2:00 0 -
16180  {
16181  2025 /*fromYear*/,
16182  2025 /*toYear*/,
16183  4 /*inMonth*/,
16184  0 /*onDayOfWeek*/,
16185  6 /*onDayOfMonth*/,
16186  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16187  480 /*atTimeCode (7200/15)*/,
16188  0 /*deltaMinutes*/,
16189  0 /*letterIndex ("")*/,
16190  },
16191  // Rule Morocco 2026 only - Feb 15 3:00 -1:00 -
16192  {
16193  2026 /*fromYear*/,
16194  2026 /*toYear*/,
16195  2 /*inMonth*/,
16196  0 /*onDayOfWeek*/,
16197  15 /*onDayOfMonth*/,
16198  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16199  720 /*atTimeCode (10800/15)*/,
16200  -60 /*deltaMinutes*/,
16201  0 /*letterIndex ("")*/,
16202  },
16203  // Rule Morocco 2026 only - Mar 22 2:00 0 -
16204  {
16205  2026 /*fromYear*/,
16206  2026 /*toYear*/,
16207  3 /*inMonth*/,
16208  0 /*onDayOfWeek*/,
16209  22 /*onDayOfMonth*/,
16210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16211  480 /*atTimeCode (7200/15)*/,
16212  0 /*deltaMinutes*/,
16213  0 /*letterIndex ("")*/,
16214  },
16215  // Rule Morocco 2027 only - Feb 7 3:00 -1:00 -
16216  {
16217  2027 /*fromYear*/,
16218  2027 /*toYear*/,
16219  2 /*inMonth*/,
16220  0 /*onDayOfWeek*/,
16221  7 /*onDayOfMonth*/,
16222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16223  720 /*atTimeCode (10800/15)*/,
16224  -60 /*deltaMinutes*/,
16225  0 /*letterIndex ("")*/,
16226  },
16227  // Rule Morocco 2027 only - Mar 14 2:00 0 -
16228  {
16229  2027 /*fromYear*/,
16230  2027 /*toYear*/,
16231  3 /*inMonth*/,
16232  0 /*onDayOfWeek*/,
16233  14 /*onDayOfMonth*/,
16234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16235  480 /*atTimeCode (7200/15)*/,
16236  0 /*deltaMinutes*/,
16237  0 /*letterIndex ("")*/,
16238  },
16239  // Rule Morocco 2028 only - Jan 23 3:00 -1:00 -
16240  {
16241  2028 /*fromYear*/,
16242  2028 /*toYear*/,
16243  1 /*inMonth*/,
16244  0 /*onDayOfWeek*/,
16245  23 /*onDayOfMonth*/,
16246  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16247  720 /*atTimeCode (10800/15)*/,
16248  -60 /*deltaMinutes*/,
16249  0 /*letterIndex ("")*/,
16250  },
16251  // Rule Morocco 2028 only - Mar 5 2:00 0 -
16252  {
16253  2028 /*fromYear*/,
16254  2028 /*toYear*/,
16255  3 /*inMonth*/,
16256  0 /*onDayOfWeek*/,
16257  5 /*onDayOfMonth*/,
16258  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16259  480 /*atTimeCode (7200/15)*/,
16260  0 /*deltaMinutes*/,
16261  0 /*letterIndex ("")*/,
16262  },
16263  // Rule Morocco 2029 only - Jan 14 3:00 -1:00 -
16264  {
16265  2029 /*fromYear*/,
16266  2029 /*toYear*/,
16267  1 /*inMonth*/,
16268  0 /*onDayOfWeek*/,
16269  14 /*onDayOfMonth*/,
16270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16271  720 /*atTimeCode (10800/15)*/,
16272  -60 /*deltaMinutes*/,
16273  0 /*letterIndex ("")*/,
16274  },
16275  // Rule Morocco 2029 only - Feb 18 2:00 0 -
16276  {
16277  2029 /*fromYear*/,
16278  2029 /*toYear*/,
16279  2 /*inMonth*/,
16280  0 /*onDayOfWeek*/,
16281  18 /*onDayOfMonth*/,
16282  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16283  480 /*atTimeCode (7200/15)*/,
16284  0 /*deltaMinutes*/,
16285  0 /*letterIndex ("")*/,
16286  },
16287  // Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
16288  {
16289  2029 /*fromYear*/,
16290  2029 /*toYear*/,
16291  12 /*inMonth*/,
16292  0 /*onDayOfWeek*/,
16293  30 /*onDayOfMonth*/,
16294  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16295  720 /*atTimeCode (10800/15)*/,
16296  -60 /*deltaMinutes*/,
16297  0 /*letterIndex ("")*/,
16298  },
16299  // Rule Morocco 2030 only - Feb 10 2:00 0 -
16300  {
16301  2030 /*fromYear*/,
16302  2030 /*toYear*/,
16303  2 /*inMonth*/,
16304  0 /*onDayOfWeek*/,
16305  10 /*onDayOfMonth*/,
16306  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16307  480 /*atTimeCode (7200/15)*/,
16308  0 /*deltaMinutes*/,
16309  0 /*letterIndex ("")*/,
16310  },
16311  // Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
16312  {
16313  2030 /*fromYear*/,
16314  2030 /*toYear*/,
16315  12 /*inMonth*/,
16316  0 /*onDayOfWeek*/,
16317  22 /*onDayOfMonth*/,
16318  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16319  720 /*atTimeCode (10800/15)*/,
16320  -60 /*deltaMinutes*/,
16321  0 /*letterIndex ("")*/,
16322  },
16323  // Rule Morocco 2031 only - Jan 26 2:00 0 -
16324  {
16325  2031 /*fromYear*/,
16326  2031 /*toYear*/,
16327  1 /*inMonth*/,
16328  0 /*onDayOfWeek*/,
16329  26 /*onDayOfMonth*/,
16330  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16331  480 /*atTimeCode (7200/15)*/,
16332  0 /*deltaMinutes*/,
16333  0 /*letterIndex ("")*/,
16334  },
16335  // Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
16336  {
16337  2031 /*fromYear*/,
16338  2031 /*toYear*/,
16339  12 /*inMonth*/,
16340  0 /*onDayOfWeek*/,
16341  14 /*onDayOfMonth*/,
16342  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16343  720 /*atTimeCode (10800/15)*/,
16344  -60 /*deltaMinutes*/,
16345  0 /*letterIndex ("")*/,
16346  },
16347  // Rule Morocco 2032 only - Jan 18 2:00 0 -
16348  {
16349  2032 /*fromYear*/,
16350  2032 /*toYear*/,
16351  1 /*inMonth*/,
16352  0 /*onDayOfWeek*/,
16353  18 /*onDayOfMonth*/,
16354  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16355  480 /*atTimeCode (7200/15)*/,
16356  0 /*deltaMinutes*/,
16357  0 /*letterIndex ("")*/,
16358  },
16359  // Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
16360  {
16361  2032 /*fromYear*/,
16362  2032 /*toYear*/,
16363  11 /*inMonth*/,
16364  0 /*onDayOfWeek*/,
16365  28 /*onDayOfMonth*/,
16366  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16367  720 /*atTimeCode (10800/15)*/,
16368  -60 /*deltaMinutes*/,
16369  0 /*letterIndex ("")*/,
16370  },
16371  // Rule Morocco 2033 only - Jan 9 2:00 0 -
16372  {
16373  2033 /*fromYear*/,
16374  2033 /*toYear*/,
16375  1 /*inMonth*/,
16376  0 /*onDayOfWeek*/,
16377  9 /*onDayOfMonth*/,
16378  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16379  480 /*atTimeCode (7200/15)*/,
16380  0 /*deltaMinutes*/,
16381  0 /*letterIndex ("")*/,
16382  },
16383  // Rule Morocco 2033 only - Nov 20 3:00 -1:00 -
16384  {
16385  2033 /*fromYear*/,
16386  2033 /*toYear*/,
16387  11 /*inMonth*/,
16388  0 /*onDayOfWeek*/,
16389  20 /*onDayOfMonth*/,
16390  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16391  720 /*atTimeCode (10800/15)*/,
16392  -60 /*deltaMinutes*/,
16393  0 /*letterIndex ("")*/,
16394  },
16395  // Rule Morocco 2033 only - Dec 25 2:00 0 -
16396  {
16397  2033 /*fromYear*/,
16398  2033 /*toYear*/,
16399  12 /*inMonth*/,
16400  0 /*onDayOfWeek*/,
16401  25 /*onDayOfMonth*/,
16402  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16403  480 /*atTimeCode (7200/15)*/,
16404  0 /*deltaMinutes*/,
16405  0 /*letterIndex ("")*/,
16406  },
16407  // Rule Morocco 2034 only - Nov 5 3:00 -1:00 -
16408  {
16409  2034 /*fromYear*/,
16410  2034 /*toYear*/,
16411  11 /*inMonth*/,
16412  0 /*onDayOfWeek*/,
16413  5 /*onDayOfMonth*/,
16414  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16415  720 /*atTimeCode (10800/15)*/,
16416  -60 /*deltaMinutes*/,
16417  0 /*letterIndex ("")*/,
16418  },
16419  // Rule Morocco 2034 only - Dec 17 2:00 0 -
16420  {
16421  2034 /*fromYear*/,
16422  2034 /*toYear*/,
16423  12 /*inMonth*/,
16424  0 /*onDayOfWeek*/,
16425  17 /*onDayOfMonth*/,
16426  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16427  480 /*atTimeCode (7200/15)*/,
16428  0 /*deltaMinutes*/,
16429  0 /*letterIndex ("")*/,
16430  },
16431  // Rule Morocco 2035 only - Oct 28 3:00 -1:00 -
16432  {
16433  2035 /*fromYear*/,
16434  2035 /*toYear*/,
16435  10 /*inMonth*/,
16436  0 /*onDayOfWeek*/,
16437  28 /*onDayOfMonth*/,
16438  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16439  720 /*atTimeCode (10800/15)*/,
16440  -60 /*deltaMinutes*/,
16441  0 /*letterIndex ("")*/,
16442  },
16443  // Rule Morocco 2035 only - Dec 9 2:00 0 -
16444  {
16445  2035 /*fromYear*/,
16446  2035 /*toYear*/,
16447  12 /*inMonth*/,
16448  0 /*onDayOfWeek*/,
16449  9 /*onDayOfMonth*/,
16450  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16451  480 /*atTimeCode (7200/15)*/,
16452  0 /*deltaMinutes*/,
16453  0 /*letterIndex ("")*/,
16454  },
16455  // Rule Morocco 2036 only - Oct 19 3:00 -1:00 -
16456  {
16457  2036 /*fromYear*/,
16458  2036 /*toYear*/,
16459  10 /*inMonth*/,
16460  0 /*onDayOfWeek*/,
16461  19 /*onDayOfMonth*/,
16462  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16463  720 /*atTimeCode (10800/15)*/,
16464  -60 /*deltaMinutes*/,
16465  0 /*letterIndex ("")*/,
16466  },
16467  // Rule Morocco 2036 only - Nov 23 2:00 0 -
16468  {
16469  2036 /*fromYear*/,
16470  2036 /*toYear*/,
16471  11 /*inMonth*/,
16472  0 /*onDayOfWeek*/,
16473  23 /*onDayOfMonth*/,
16474  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16475  480 /*atTimeCode (7200/15)*/,
16476  0 /*deltaMinutes*/,
16477  0 /*letterIndex ("")*/,
16478  },
16479  // Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
16480  {
16481  2037 /*fromYear*/,
16482  2037 /*toYear*/,
16483  10 /*inMonth*/,
16484  0 /*onDayOfWeek*/,
16485  4 /*onDayOfMonth*/,
16486  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16487  720 /*atTimeCode (10800/15)*/,
16488  -60 /*deltaMinutes*/,
16489  0 /*letterIndex ("")*/,
16490  },
16491  // Rule Morocco 2037 only - Nov 15 2:00 0 -
16492  {
16493  2037 /*fromYear*/,
16494  2037 /*toYear*/,
16495  11 /*inMonth*/,
16496  0 /*onDayOfWeek*/,
16497  15 /*onDayOfMonth*/,
16498  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16499  480 /*atTimeCode (7200/15)*/,
16500  0 /*deltaMinutes*/,
16501  0 /*letterIndex ("")*/,
16502  },
16503  // Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
16504  {
16505  2038 /*fromYear*/,
16506  2038 /*toYear*/,
16507  9 /*inMonth*/,
16508  0 /*onDayOfWeek*/,
16509  26 /*onDayOfMonth*/,
16510  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16511  720 /*atTimeCode (10800/15)*/,
16512  -60 /*deltaMinutes*/,
16513  0 /*letterIndex ("")*/,
16514  },
16515  // Rule Morocco 2038 only - Oct 31 2:00 0 -
16516  {
16517  2038 /*fromYear*/,
16518  2038 /*toYear*/,
16519  10 /*inMonth*/,
16520  0 /*onDayOfWeek*/,
16521  31 /*onDayOfMonth*/,
16522  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16523  480 /*atTimeCode (7200/15)*/,
16524  0 /*deltaMinutes*/,
16525  0 /*letterIndex ("")*/,
16526  },
16527  // Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
16528  {
16529  2039 /*fromYear*/,
16530  2039 /*toYear*/,
16531  9 /*inMonth*/,
16532  0 /*onDayOfWeek*/,
16533  18 /*onDayOfMonth*/,
16534  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16535  720 /*atTimeCode (10800/15)*/,
16536  -60 /*deltaMinutes*/,
16537  0 /*letterIndex ("")*/,
16538  },
16539  // Rule Morocco 2039 only - Oct 23 2:00 0 -
16540  {
16541  2039 /*fromYear*/,
16542  2039 /*toYear*/,
16543  10 /*inMonth*/,
16544  0 /*onDayOfWeek*/,
16545  23 /*onDayOfMonth*/,
16546  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16547  480 /*atTimeCode (7200/15)*/,
16548  0 /*deltaMinutes*/,
16549  0 /*letterIndex ("")*/,
16550  },
16551  // Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
16552  {
16553  2040 /*fromYear*/,
16554  2040 /*toYear*/,
16555  9 /*inMonth*/,
16556  0 /*onDayOfWeek*/,
16557  2 /*onDayOfMonth*/,
16558  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16559  720 /*atTimeCode (10800/15)*/,
16560  -60 /*deltaMinutes*/,
16561  0 /*letterIndex ("")*/,
16562  },
16563  // Rule Morocco 2040 only - Oct 14 2:00 0 -
16564  {
16565  2040 /*fromYear*/,
16566  2040 /*toYear*/,
16567  10 /*inMonth*/,
16568  0 /*onDayOfWeek*/,
16569  14 /*onDayOfMonth*/,
16570  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16571  480 /*atTimeCode (7200/15)*/,
16572  0 /*deltaMinutes*/,
16573  0 /*letterIndex ("")*/,
16574  },
16575  // Rule Morocco 2041 only - Aug 25 3:00 -1:00 -
16576  {
16577  2041 /*fromYear*/,
16578  2041 /*toYear*/,
16579  8 /*inMonth*/,
16580  0 /*onDayOfWeek*/,
16581  25 /*onDayOfMonth*/,
16582  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16583  720 /*atTimeCode (10800/15)*/,
16584  -60 /*deltaMinutes*/,
16585  0 /*letterIndex ("")*/,
16586  },
16587  // Rule Morocco 2041 only - Sep 29 2:00 0 -
16588  {
16589  2041 /*fromYear*/,
16590  2041 /*toYear*/,
16591  9 /*inMonth*/,
16592  0 /*onDayOfWeek*/,
16593  29 /*onDayOfMonth*/,
16594  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16595  480 /*atTimeCode (7200/15)*/,
16596  0 /*deltaMinutes*/,
16597  0 /*letterIndex ("")*/,
16598  },
16599  // Rule Morocco 2042 only - Aug 10 3:00 -1:00 -
16600  {
16601  2042 /*fromYear*/,
16602  2042 /*toYear*/,
16603  8 /*inMonth*/,
16604  0 /*onDayOfWeek*/,
16605  10 /*onDayOfMonth*/,
16606  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16607  720 /*atTimeCode (10800/15)*/,
16608  -60 /*deltaMinutes*/,
16609  0 /*letterIndex ("")*/,
16610  },
16611  // Rule Morocco 2042 only - Sep 21 2:00 0 -
16612  {
16613  2042 /*fromYear*/,
16614  2042 /*toYear*/,
16615  9 /*inMonth*/,
16616  0 /*onDayOfWeek*/,
16617  21 /*onDayOfMonth*/,
16618  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16619  480 /*atTimeCode (7200/15)*/,
16620  0 /*deltaMinutes*/,
16621  0 /*letterIndex ("")*/,
16622  },
16623  // Rule Morocco 2043 only - Aug 2 3:00 -1:00 -
16624  {
16625  2043 /*fromYear*/,
16626  2043 /*toYear*/,
16627  8 /*inMonth*/,
16628  0 /*onDayOfWeek*/,
16629  2 /*onDayOfMonth*/,
16630  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16631  720 /*atTimeCode (10800/15)*/,
16632  -60 /*deltaMinutes*/,
16633  0 /*letterIndex ("")*/,
16634  },
16635  // Rule Morocco 2043 only - Sep 13 2:00 0 -
16636  {
16637  2043 /*fromYear*/,
16638  2043 /*toYear*/,
16639  9 /*inMonth*/,
16640  0 /*onDayOfWeek*/,
16641  13 /*onDayOfMonth*/,
16642  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16643  480 /*atTimeCode (7200/15)*/,
16644  0 /*deltaMinutes*/,
16645  0 /*letterIndex ("")*/,
16646  },
16647  // Rule Morocco 2044 only - Jul 24 3:00 -1:00 -
16648  {
16649  2044 /*fromYear*/,
16650  2044 /*toYear*/,
16651  7 /*inMonth*/,
16652  0 /*onDayOfWeek*/,
16653  24 /*onDayOfMonth*/,
16654  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16655  720 /*atTimeCode (10800/15)*/,
16656  -60 /*deltaMinutes*/,
16657  0 /*letterIndex ("")*/,
16658  },
16659  // Rule Morocco 2044 only - Aug 28 2:00 0 -
16660  {
16661  2044 /*fromYear*/,
16662  2044 /*toYear*/,
16663  8 /*inMonth*/,
16664  0 /*onDayOfWeek*/,
16665  28 /*onDayOfMonth*/,
16666  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16667  480 /*atTimeCode (7200/15)*/,
16668  0 /*deltaMinutes*/,
16669  0 /*letterIndex ("")*/,
16670  },
16671  // Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
16672  {
16673  2045 /*fromYear*/,
16674  2045 /*toYear*/,
16675  7 /*inMonth*/,
16676  0 /*onDayOfWeek*/,
16677  9 /*onDayOfMonth*/,
16678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16679  720 /*atTimeCode (10800/15)*/,
16680  -60 /*deltaMinutes*/,
16681  0 /*letterIndex ("")*/,
16682  },
16683  // Rule Morocco 2045 only - Aug 20 2:00 0 -
16684  {
16685  2045 /*fromYear*/,
16686  2045 /*toYear*/,
16687  8 /*inMonth*/,
16688  0 /*onDayOfWeek*/,
16689  20 /*onDayOfMonth*/,
16690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16691  480 /*atTimeCode (7200/15)*/,
16692  0 /*deltaMinutes*/,
16693  0 /*letterIndex ("")*/,
16694  },
16695  // Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
16696  {
16697  2046 /*fromYear*/,
16698  2046 /*toYear*/,
16699  7 /*inMonth*/,
16700  0 /*onDayOfWeek*/,
16701  1 /*onDayOfMonth*/,
16702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16703  720 /*atTimeCode (10800/15)*/,
16704  -60 /*deltaMinutes*/,
16705  0 /*letterIndex ("")*/,
16706  },
16707  // Rule Morocco 2046 only - Aug 5 2:00 0 -
16708  {
16709  2046 /*fromYear*/,
16710  2046 /*toYear*/,
16711  8 /*inMonth*/,
16712  0 /*onDayOfWeek*/,
16713  5 /*onDayOfMonth*/,
16714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16715  480 /*atTimeCode (7200/15)*/,
16716  0 /*deltaMinutes*/,
16717  0 /*letterIndex ("")*/,
16718  },
16719  // Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
16720  {
16721  2047 /*fromYear*/,
16722  2047 /*toYear*/,
16723  6 /*inMonth*/,
16724  0 /*onDayOfWeek*/,
16725  23 /*onDayOfMonth*/,
16726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16727  720 /*atTimeCode (10800/15)*/,
16728  -60 /*deltaMinutes*/,
16729  0 /*letterIndex ("")*/,
16730  },
16731  // Rule Morocco 2047 only - Jul 28 2:00 0 -
16732  {
16733  2047 /*fromYear*/,
16734  2047 /*toYear*/,
16735  7 /*inMonth*/,
16736  0 /*onDayOfWeek*/,
16737  28 /*onDayOfMonth*/,
16738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16739  480 /*atTimeCode (7200/15)*/,
16740  0 /*deltaMinutes*/,
16741  0 /*letterIndex ("")*/,
16742  },
16743  // Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
16744  {
16745  2048 /*fromYear*/,
16746  2048 /*toYear*/,
16747  6 /*inMonth*/,
16748  0 /*onDayOfWeek*/,
16749  7 /*onDayOfMonth*/,
16750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16751  720 /*atTimeCode (10800/15)*/,
16752  -60 /*deltaMinutes*/,
16753  0 /*letterIndex ("")*/,
16754  },
16755  // Rule Morocco 2048 only - Jul 19 2:00 0 -
16756  {
16757  2048 /*fromYear*/,
16758  2048 /*toYear*/,
16759  7 /*inMonth*/,
16760  0 /*onDayOfWeek*/,
16761  19 /*onDayOfMonth*/,
16762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16763  480 /*atTimeCode (7200/15)*/,
16764  0 /*deltaMinutes*/,
16765  0 /*letterIndex ("")*/,
16766  },
16767  // Rule Morocco 2049 only - May 30 3:00 -1:00 -
16768  {
16769  2049 /*fromYear*/,
16770  2049 /*toYear*/,
16771  5 /*inMonth*/,
16772  0 /*onDayOfWeek*/,
16773  30 /*onDayOfMonth*/,
16774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16775  720 /*atTimeCode (10800/15)*/,
16776  -60 /*deltaMinutes*/,
16777  0 /*letterIndex ("")*/,
16778  },
16779  // Rule Morocco 2049 only - Jul 4 2:00 0 -
16780  {
16781  2049 /*fromYear*/,
16782  2049 /*toYear*/,
16783  7 /*inMonth*/,
16784  0 /*onDayOfWeek*/,
16785  4 /*onDayOfMonth*/,
16786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16787  480 /*atTimeCode (7200/15)*/,
16788  0 /*deltaMinutes*/,
16789  0 /*letterIndex ("")*/,
16790  },
16791  // Rule Morocco 2050 only - May 15 3:00 -1:00 -
16792  {
16793  2050 /*fromYear*/,
16794  2050 /*toYear*/,
16795  5 /*inMonth*/,
16796  0 /*onDayOfWeek*/,
16797  15 /*onDayOfMonth*/,
16798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16799  720 /*atTimeCode (10800/15)*/,
16800  -60 /*deltaMinutes*/,
16801  0 /*letterIndex ("")*/,
16802  },
16803  // Rule Morocco 2050 only - Jun 26 2:00 0 -
16804  {
16805  2050 /*fromYear*/,
16806  2050 /*toYear*/,
16807  6 /*inMonth*/,
16808  0 /*onDayOfWeek*/,
16809  26 /*onDayOfMonth*/,
16810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16811  480 /*atTimeCode (7200/15)*/,
16812  0 /*deltaMinutes*/,
16813  0 /*letterIndex ("")*/,
16814  },
16815  // Rule Morocco 2051 only - May 7 3:00 -1:00 -
16816  {
16817  2051 /*fromYear*/,
16818  2051 /*toYear*/,
16819  5 /*inMonth*/,
16820  0 /*onDayOfWeek*/,
16821  7 /*onDayOfMonth*/,
16822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16823  720 /*atTimeCode (10800/15)*/,
16824  -60 /*deltaMinutes*/,
16825  0 /*letterIndex ("")*/,
16826  },
16827  // Rule Morocco 2051 only - Jun 18 2:00 0 -
16828  {
16829  2051 /*fromYear*/,
16830  2051 /*toYear*/,
16831  6 /*inMonth*/,
16832  0 /*onDayOfWeek*/,
16833  18 /*onDayOfMonth*/,
16834  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16835  480 /*atTimeCode (7200/15)*/,
16836  0 /*deltaMinutes*/,
16837  0 /*letterIndex ("")*/,
16838  },
16839  // Rule Morocco 2052 only - Apr 28 3:00 -1:00 -
16840  {
16841  2052 /*fromYear*/,
16842  2052 /*toYear*/,
16843  4 /*inMonth*/,
16844  0 /*onDayOfWeek*/,
16845  28 /*onDayOfMonth*/,
16846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16847  720 /*atTimeCode (10800/15)*/,
16848  -60 /*deltaMinutes*/,
16849  0 /*letterIndex ("")*/,
16850  },
16851  // Rule Morocco 2052 only - Jun 2 2:00 0 -
16852  {
16853  2052 /*fromYear*/,
16854  2052 /*toYear*/,
16855  6 /*inMonth*/,
16856  0 /*onDayOfWeek*/,
16857  2 /*onDayOfMonth*/,
16858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16859  480 /*atTimeCode (7200/15)*/,
16860  0 /*deltaMinutes*/,
16861  0 /*letterIndex ("")*/,
16862  },
16863  // Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
16864  {
16865  2053 /*fromYear*/,
16866  2053 /*toYear*/,
16867  4 /*inMonth*/,
16868  0 /*onDayOfWeek*/,
16869  13 /*onDayOfMonth*/,
16870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16871  720 /*atTimeCode (10800/15)*/,
16872  -60 /*deltaMinutes*/,
16873  0 /*letterIndex ("")*/,
16874  },
16875  // Rule Morocco 2053 only - May 25 2:00 0 -
16876  {
16877  2053 /*fromYear*/,
16878  2053 /*toYear*/,
16879  5 /*inMonth*/,
16880  0 /*onDayOfWeek*/,
16881  25 /*onDayOfMonth*/,
16882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16883  480 /*atTimeCode (7200/15)*/,
16884  0 /*deltaMinutes*/,
16885  0 /*letterIndex ("")*/,
16886  },
16887  // Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
16888  {
16889  2054 /*fromYear*/,
16890  2054 /*toYear*/,
16891  4 /*inMonth*/,
16892  0 /*onDayOfWeek*/,
16893  5 /*onDayOfMonth*/,
16894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16895  720 /*atTimeCode (10800/15)*/,
16896  -60 /*deltaMinutes*/,
16897  0 /*letterIndex ("")*/,
16898  },
16899  // Rule Morocco 2054 only - May 10 2:00 0 -
16900  {
16901  2054 /*fromYear*/,
16902  2054 /*toYear*/,
16903  5 /*inMonth*/,
16904  0 /*onDayOfWeek*/,
16905  10 /*onDayOfMonth*/,
16906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16907  480 /*atTimeCode (7200/15)*/,
16908  0 /*deltaMinutes*/,
16909  0 /*letterIndex ("")*/,
16910  },
16911  // Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
16912  {
16913  2055 /*fromYear*/,
16914  2055 /*toYear*/,
16915  3 /*inMonth*/,
16916  0 /*onDayOfWeek*/,
16917  28 /*onDayOfMonth*/,
16918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16919  720 /*atTimeCode (10800/15)*/,
16920  -60 /*deltaMinutes*/,
16921  0 /*letterIndex ("")*/,
16922  },
16923  // Rule Morocco 2055 only - May 2 2:00 0 -
16924  {
16925  2055 /*fromYear*/,
16926  2055 /*toYear*/,
16927  5 /*inMonth*/,
16928  0 /*onDayOfWeek*/,
16929  2 /*onDayOfMonth*/,
16930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16931  480 /*atTimeCode (7200/15)*/,
16932  0 /*deltaMinutes*/,
16933  0 /*letterIndex ("")*/,
16934  },
16935  // Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
16936  {
16937  2056 /*fromYear*/,
16938  2056 /*toYear*/,
16939  3 /*inMonth*/,
16940  0 /*onDayOfWeek*/,
16941  12 /*onDayOfMonth*/,
16942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16943  720 /*atTimeCode (10800/15)*/,
16944  -60 /*deltaMinutes*/,
16945  0 /*letterIndex ("")*/,
16946  },
16947  // Rule Morocco 2056 only - Apr 23 2:00 0 -
16948  {
16949  2056 /*fromYear*/,
16950  2056 /*toYear*/,
16951  4 /*inMonth*/,
16952  0 /*onDayOfWeek*/,
16953  23 /*onDayOfMonth*/,
16954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16955  480 /*atTimeCode (7200/15)*/,
16956  0 /*deltaMinutes*/,
16957  0 /*letterIndex ("")*/,
16958  },
16959  // Rule Morocco 2057 only - Mar 4 3:00 -1:00 -
16960  {
16961  2057 /*fromYear*/,
16962  2057 /*toYear*/,
16963  3 /*inMonth*/,
16964  0 /*onDayOfWeek*/,
16965  4 /*onDayOfMonth*/,
16966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16967  720 /*atTimeCode (10800/15)*/,
16968  -60 /*deltaMinutes*/,
16969  0 /*letterIndex ("")*/,
16970  },
16971  // Rule Morocco 2057 only - Apr 8 2:00 0 -
16972  {
16973  2057 /*fromYear*/,
16974  2057 /*toYear*/,
16975  4 /*inMonth*/,
16976  0 /*onDayOfWeek*/,
16977  8 /*onDayOfMonth*/,
16978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16979  480 /*atTimeCode (7200/15)*/,
16980  0 /*deltaMinutes*/,
16981  0 /*letterIndex ("")*/,
16982  },
16983  // Rule Morocco 2058 only - Feb 17 3:00 -1:00 -
16984  {
16985  2058 /*fromYear*/,
16986  2058 /*toYear*/,
16987  2 /*inMonth*/,
16988  0 /*onDayOfWeek*/,
16989  17 /*onDayOfMonth*/,
16990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
16991  720 /*atTimeCode (10800/15)*/,
16992  -60 /*deltaMinutes*/,
16993  0 /*letterIndex ("")*/,
16994  },
16995  // Rule Morocco 2058 only - Mar 31 2:00 0 -
16996  {
16997  2058 /*fromYear*/,
16998  2058 /*toYear*/,
16999  3 /*inMonth*/,
17000  0 /*onDayOfWeek*/,
17001  31 /*onDayOfMonth*/,
17002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17003  480 /*atTimeCode (7200/15)*/,
17004  0 /*deltaMinutes*/,
17005  0 /*letterIndex ("")*/,
17006  },
17007  // Rule Morocco 2059 only - Feb 9 3:00 -1:00 -
17008  {
17009  2059 /*fromYear*/,
17010  2059 /*toYear*/,
17011  2 /*inMonth*/,
17012  0 /*onDayOfWeek*/,
17013  9 /*onDayOfMonth*/,
17014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17015  720 /*atTimeCode (10800/15)*/,
17016  -60 /*deltaMinutes*/,
17017  0 /*letterIndex ("")*/,
17018  },
17019  // Rule Morocco 2059 only - Mar 23 2:00 0 -
17020  {
17021  2059 /*fromYear*/,
17022  2059 /*toYear*/,
17023  3 /*inMonth*/,
17024  0 /*onDayOfWeek*/,
17025  23 /*onDayOfMonth*/,
17026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17027  480 /*atTimeCode (7200/15)*/,
17028  0 /*deltaMinutes*/,
17029  0 /*letterIndex ("")*/,
17030  },
17031  // Rule Morocco 2060 only - Feb 1 3:00 -1:00 -
17032  {
17033  2060 /*fromYear*/,
17034  2060 /*toYear*/,
17035  2 /*inMonth*/,
17036  0 /*onDayOfWeek*/,
17037  1 /*onDayOfMonth*/,
17038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17039  720 /*atTimeCode (10800/15)*/,
17040  -60 /*deltaMinutes*/,
17041  0 /*letterIndex ("")*/,
17042  },
17043  // Rule Morocco 2060 only - Mar 7 2:00 0 -
17044  {
17045  2060 /*fromYear*/,
17046  2060 /*toYear*/,
17047  3 /*inMonth*/,
17048  0 /*onDayOfWeek*/,
17049  7 /*onDayOfMonth*/,
17050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17051  480 /*atTimeCode (7200/15)*/,
17052  0 /*deltaMinutes*/,
17053  0 /*letterIndex ("")*/,
17054  },
17055  // Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
17056  {
17057  2061 /*fromYear*/,
17058  2061 /*toYear*/,
17059  1 /*inMonth*/,
17060  0 /*onDayOfWeek*/,
17061  16 /*onDayOfMonth*/,
17062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17063  720 /*atTimeCode (10800/15)*/,
17064  -60 /*deltaMinutes*/,
17065  0 /*letterIndex ("")*/,
17066  },
17067  // Rule Morocco 2061 only - Feb 27 2:00 0 -
17068  {
17069  2061 /*fromYear*/,
17070  2061 /*toYear*/,
17071  2 /*inMonth*/,
17072  0 /*onDayOfWeek*/,
17073  27 /*onDayOfMonth*/,
17074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17075  480 /*atTimeCode (7200/15)*/,
17076  0 /*deltaMinutes*/,
17077  0 /*letterIndex ("")*/,
17078  },
17079  // Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
17080  {
17081  2062 /*fromYear*/,
17082  2062 /*toYear*/,
17083  1 /*inMonth*/,
17084  0 /*onDayOfWeek*/,
17085  8 /*onDayOfMonth*/,
17086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17087  720 /*atTimeCode (10800/15)*/,
17088  -60 /*deltaMinutes*/,
17089  0 /*letterIndex ("")*/,
17090  },
17091  // Rule Morocco 2062 only - Feb 12 2:00 0 -
17092  {
17093  2062 /*fromYear*/,
17094  2062 /*toYear*/,
17095  2 /*inMonth*/,
17096  0 /*onDayOfWeek*/,
17097  12 /*onDayOfMonth*/,
17098  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17099  480 /*atTimeCode (7200/15)*/,
17100  0 /*deltaMinutes*/,
17101  0 /*letterIndex ("")*/,
17102  },
17103  // Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
17104  {
17105  2062 /*fromYear*/,
17106  2062 /*toYear*/,
17107  12 /*inMonth*/,
17108  0 /*onDayOfWeek*/,
17109  31 /*onDayOfMonth*/,
17110  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17111  720 /*atTimeCode (10800/15)*/,
17112  -60 /*deltaMinutes*/,
17113  0 /*letterIndex ("")*/,
17114  },
17115  // Rule Morocco 2063 only - Feb 4 2:00 0 -
17116  {
17117  2063 /*fromYear*/,
17118  2063 /*toYear*/,
17119  2 /*inMonth*/,
17120  0 /*onDayOfWeek*/,
17121  4 /*onDayOfMonth*/,
17122  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17123  480 /*atTimeCode (7200/15)*/,
17124  0 /*deltaMinutes*/,
17125  0 /*letterIndex ("")*/,
17126  },
17127  // Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
17128  {
17129  2063 /*fromYear*/,
17130  2063 /*toYear*/,
17131  12 /*inMonth*/,
17132  0 /*onDayOfWeek*/,
17133  16 /*onDayOfMonth*/,
17134  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17135  720 /*atTimeCode (10800/15)*/,
17136  -60 /*deltaMinutes*/,
17137  0 /*letterIndex ("")*/,
17138  },
17139  // Rule Morocco 2064 only - Jan 27 2:00 0 -
17140  {
17141  2064 /*fromYear*/,
17142  2064 /*toYear*/,
17143  1 /*inMonth*/,
17144  0 /*onDayOfWeek*/,
17145  27 /*onDayOfMonth*/,
17146  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17147  480 /*atTimeCode (7200/15)*/,
17148  0 /*deltaMinutes*/,
17149  0 /*letterIndex ("")*/,
17150  },
17151  // Rule Morocco 2064 only - Dec 7 3:00 -1:00 -
17152  {
17153  2064 /*fromYear*/,
17154  2064 /*toYear*/,
17155  12 /*inMonth*/,
17156  0 /*onDayOfWeek*/,
17157  7 /*onDayOfMonth*/,
17158  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17159  720 /*atTimeCode (10800/15)*/,
17160  -60 /*deltaMinutes*/,
17161  0 /*letterIndex ("")*/,
17162  },
17163  // Rule Morocco 2065 only - Jan 11 2:00 0 -
17164  {
17165  2065 /*fromYear*/,
17166  2065 /*toYear*/,
17167  1 /*inMonth*/,
17168  0 /*onDayOfWeek*/,
17169  11 /*onDayOfMonth*/,
17170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17171  480 /*atTimeCode (7200/15)*/,
17172  0 /*deltaMinutes*/,
17173  0 /*letterIndex ("")*/,
17174  },
17175  // Rule Morocco 2065 only - Nov 22 3:00 -1:00 -
17176  {
17177  2065 /*fromYear*/,
17178  2065 /*toYear*/,
17179  11 /*inMonth*/,
17180  0 /*onDayOfWeek*/,
17181  22 /*onDayOfMonth*/,
17182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17183  720 /*atTimeCode (10800/15)*/,
17184  -60 /*deltaMinutes*/,
17185  0 /*letterIndex ("")*/,
17186  },
17187  // Rule Morocco 2066 only - Jan 3 2:00 0 -
17188  {
17189  2066 /*fromYear*/,
17190  2066 /*toYear*/,
17191  1 /*inMonth*/,
17192  0 /*onDayOfWeek*/,
17193  3 /*onDayOfMonth*/,
17194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17195  480 /*atTimeCode (7200/15)*/,
17196  0 /*deltaMinutes*/,
17197  0 /*letterIndex ("")*/,
17198  },
17199  // Rule Morocco 2066 only - Nov 14 3:00 -1:00 -
17200  {
17201  2066 /*fromYear*/,
17202  2066 /*toYear*/,
17203  11 /*inMonth*/,
17204  0 /*onDayOfWeek*/,
17205  14 /*onDayOfMonth*/,
17206  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17207  720 /*atTimeCode (10800/15)*/,
17208  -60 /*deltaMinutes*/,
17209  0 /*letterIndex ("")*/,
17210  },
17211  // Rule Morocco 2066 only - Dec 26 2:00 0 -
17212  {
17213  2066 /*fromYear*/,
17214  2066 /*toYear*/,
17215  12 /*inMonth*/,
17216  0 /*onDayOfWeek*/,
17217  26 /*onDayOfMonth*/,
17218  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17219  480 /*atTimeCode (7200/15)*/,
17220  0 /*deltaMinutes*/,
17221  0 /*letterIndex ("")*/,
17222  },
17223  // Rule Morocco 2067 only - Nov 6 3:00 -1:00 -
17224  {
17225  2067 /*fromYear*/,
17226  2067 /*toYear*/,
17227  11 /*inMonth*/,
17228  0 /*onDayOfWeek*/,
17229  6 /*onDayOfMonth*/,
17230  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17231  720 /*atTimeCode (10800/15)*/,
17232  -60 /*deltaMinutes*/,
17233  0 /*letterIndex ("")*/,
17234  },
17235  // Rule Morocco 2067 only - Dec 11 2:00 0 -
17236  {
17237  2067 /*fromYear*/,
17238  2067 /*toYear*/,
17239  12 /*inMonth*/,
17240  0 /*onDayOfWeek*/,
17241  11 /*onDayOfMonth*/,
17242  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17243  480 /*atTimeCode (7200/15)*/,
17244  0 /*deltaMinutes*/,
17245  0 /*letterIndex ("")*/,
17246  },
17247  // Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
17248  {
17249  2068 /*fromYear*/,
17250  2068 /*toYear*/,
17251  10 /*inMonth*/,
17252  0 /*onDayOfWeek*/,
17253  21 /*onDayOfMonth*/,
17254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17255  720 /*atTimeCode (10800/15)*/,
17256  -60 /*deltaMinutes*/,
17257  0 /*letterIndex ("")*/,
17258  },
17259  // Rule Morocco 2068 only - Dec 2 2:00 0 -
17260  {
17261  2068 /*fromYear*/,
17262  2068 /*toYear*/,
17263  12 /*inMonth*/,
17264  0 /*onDayOfWeek*/,
17265  2 /*onDayOfMonth*/,
17266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17267  480 /*atTimeCode (7200/15)*/,
17268  0 /*deltaMinutes*/,
17269  0 /*letterIndex ("")*/,
17270  },
17271  // Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
17272  {
17273  2069 /*fromYear*/,
17274  2069 /*toYear*/,
17275  10 /*inMonth*/,
17276  0 /*onDayOfWeek*/,
17277  13 /*onDayOfMonth*/,
17278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17279  720 /*atTimeCode (10800/15)*/,
17280  -60 /*deltaMinutes*/,
17281  0 /*letterIndex ("")*/,
17282  },
17283  // Rule Morocco 2069 only - Nov 17 2:00 0 -
17284  {
17285  2069 /*fromYear*/,
17286  2069 /*toYear*/,
17287  11 /*inMonth*/,
17288  0 /*onDayOfWeek*/,
17289  17 /*onDayOfMonth*/,
17290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17291  480 /*atTimeCode (7200/15)*/,
17292  0 /*deltaMinutes*/,
17293  0 /*letterIndex ("")*/,
17294  },
17295  // Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
17296  {
17297  2070 /*fromYear*/,
17298  2070 /*toYear*/,
17299  10 /*inMonth*/,
17300  0 /*onDayOfWeek*/,
17301  5 /*onDayOfMonth*/,
17302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17303  720 /*atTimeCode (10800/15)*/,
17304  -60 /*deltaMinutes*/,
17305  0 /*letterIndex ("")*/,
17306  },
17307  // Rule Morocco 2070 only - Nov 9 2:00 0 -
17308  {
17309  2070 /*fromYear*/,
17310  2070 /*toYear*/,
17311  11 /*inMonth*/,
17312  0 /*onDayOfWeek*/,
17313  9 /*onDayOfMonth*/,
17314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17315  480 /*atTimeCode (7200/15)*/,
17316  0 /*deltaMinutes*/,
17317  0 /*letterIndex ("")*/,
17318  },
17319  // Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
17320  {
17321  2071 /*fromYear*/,
17322  2071 /*toYear*/,
17323  9 /*inMonth*/,
17324  0 /*onDayOfWeek*/,
17325  20 /*onDayOfMonth*/,
17326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17327  720 /*atTimeCode (10800/15)*/,
17328  -60 /*deltaMinutes*/,
17329  0 /*letterIndex ("")*/,
17330  },
17331  // Rule Morocco 2071 only - Nov 1 2:00 0 -
17332  {
17333  2071 /*fromYear*/,
17334  2071 /*toYear*/,
17335  11 /*inMonth*/,
17336  0 /*onDayOfWeek*/,
17337  1 /*onDayOfMonth*/,
17338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17339  480 /*atTimeCode (7200/15)*/,
17340  0 /*deltaMinutes*/,
17341  0 /*letterIndex ("")*/,
17342  },
17343  // Rule Morocco 2072 only - Sep 11 3:00 -1:00 -
17344  {
17345  2072 /*fromYear*/,
17346  2072 /*toYear*/,
17347  9 /*inMonth*/,
17348  0 /*onDayOfWeek*/,
17349  11 /*onDayOfMonth*/,
17350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17351  720 /*atTimeCode (10800/15)*/,
17352  -60 /*deltaMinutes*/,
17353  0 /*letterIndex ("")*/,
17354  },
17355  // Rule Morocco 2072 only - Oct 16 2:00 0 -
17356  {
17357  2072 /*fromYear*/,
17358  2072 /*toYear*/,
17359  10 /*inMonth*/,
17360  0 /*onDayOfWeek*/,
17361  16 /*onDayOfMonth*/,
17362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17363  480 /*atTimeCode (7200/15)*/,
17364  0 /*deltaMinutes*/,
17365  0 /*letterIndex ("")*/,
17366  },
17367  // Rule Morocco 2073 only - Aug 27 3:00 -1:00 -
17368  {
17369  2073 /*fromYear*/,
17370  2073 /*toYear*/,
17371  8 /*inMonth*/,
17372  0 /*onDayOfWeek*/,
17373  27 /*onDayOfMonth*/,
17374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17375  720 /*atTimeCode (10800/15)*/,
17376  -60 /*deltaMinutes*/,
17377  0 /*letterIndex ("")*/,
17378  },
17379  // Rule Morocco 2073 only - Oct 8 2:00 0 -
17380  {
17381  2073 /*fromYear*/,
17382  2073 /*toYear*/,
17383  10 /*inMonth*/,
17384  0 /*onDayOfWeek*/,
17385  8 /*onDayOfMonth*/,
17386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17387  480 /*atTimeCode (7200/15)*/,
17388  0 /*deltaMinutes*/,
17389  0 /*letterIndex ("")*/,
17390  },
17391  // Rule Morocco 2074 only - Aug 19 3:00 -1:00 -
17392  {
17393  2074 /*fromYear*/,
17394  2074 /*toYear*/,
17395  8 /*inMonth*/,
17396  0 /*onDayOfWeek*/,
17397  19 /*onDayOfMonth*/,
17398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17399  720 /*atTimeCode (10800/15)*/,
17400  -60 /*deltaMinutes*/,
17401  0 /*letterIndex ("")*/,
17402  },
17403  // Rule Morocco 2074 only - Sep 30 2:00 0 -
17404  {
17405  2074 /*fromYear*/,
17406  2074 /*toYear*/,
17407  9 /*inMonth*/,
17408  0 /*onDayOfWeek*/,
17409  30 /*onDayOfMonth*/,
17410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17411  480 /*atTimeCode (7200/15)*/,
17412  0 /*deltaMinutes*/,
17413  0 /*letterIndex ("")*/,
17414  },
17415  // Rule Morocco 2075 only - Aug 11 3:00 -1:00 -
17416  {
17417  2075 /*fromYear*/,
17418  2075 /*toYear*/,
17419  8 /*inMonth*/,
17420  0 /*onDayOfWeek*/,
17421  11 /*onDayOfMonth*/,
17422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17423  720 /*atTimeCode (10800/15)*/,
17424  -60 /*deltaMinutes*/,
17425  0 /*letterIndex ("")*/,
17426  },
17427  // Rule Morocco 2075 only - Sep 15 2:00 0 -
17428  {
17429  2075 /*fromYear*/,
17430  2075 /*toYear*/,
17431  9 /*inMonth*/,
17432  0 /*onDayOfWeek*/,
17433  15 /*onDayOfMonth*/,
17434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17435  480 /*atTimeCode (7200/15)*/,
17436  0 /*deltaMinutes*/,
17437  0 /*letterIndex ("")*/,
17438  },
17439  // Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
17440  {
17441  2076 /*fromYear*/,
17442  2076 /*toYear*/,
17443  7 /*inMonth*/,
17444  0 /*onDayOfWeek*/,
17445  26 /*onDayOfMonth*/,
17446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17447  720 /*atTimeCode (10800/15)*/,
17448  -60 /*deltaMinutes*/,
17449  0 /*letterIndex ("")*/,
17450  },
17451  // Rule Morocco 2076 only - Sep 6 2:00 0 -
17452  {
17453  2076 /*fromYear*/,
17454  2076 /*toYear*/,
17455  9 /*inMonth*/,
17456  0 /*onDayOfWeek*/,
17457  6 /*onDayOfMonth*/,
17458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17459  480 /*atTimeCode (7200/15)*/,
17460  0 /*deltaMinutes*/,
17461  0 /*letterIndex ("")*/,
17462  },
17463  // Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
17464  {
17465  2077 /*fromYear*/,
17466  2077 /*toYear*/,
17467  7 /*inMonth*/,
17468  0 /*onDayOfWeek*/,
17469  18 /*onDayOfMonth*/,
17470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17471  720 /*atTimeCode (10800/15)*/,
17472  -60 /*deltaMinutes*/,
17473  0 /*letterIndex ("")*/,
17474  },
17475  // Rule Morocco 2077 only - Aug 22 2:00 0 -
17476  {
17477  2077 /*fromYear*/,
17478  2077 /*toYear*/,
17479  8 /*inMonth*/,
17480  0 /*onDayOfWeek*/,
17481  22 /*onDayOfMonth*/,
17482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17483  480 /*atTimeCode (7200/15)*/,
17484  0 /*deltaMinutes*/,
17485  0 /*letterIndex ("")*/,
17486  },
17487  // Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
17488  {
17489  2078 /*fromYear*/,
17490  2078 /*toYear*/,
17491  7 /*inMonth*/,
17492  0 /*onDayOfWeek*/,
17493  10 /*onDayOfMonth*/,
17494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17495  720 /*atTimeCode (10800/15)*/,
17496  -60 /*deltaMinutes*/,
17497  0 /*letterIndex ("")*/,
17498  },
17499  // Rule Morocco 2078 only - Aug 14 2:00 0 -
17500  {
17501  2078 /*fromYear*/,
17502  2078 /*toYear*/,
17503  8 /*inMonth*/,
17504  0 /*onDayOfWeek*/,
17505  14 /*onDayOfMonth*/,
17506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17507  480 /*atTimeCode (7200/15)*/,
17508  0 /*deltaMinutes*/,
17509  0 /*letterIndex ("")*/,
17510  },
17511  // Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
17512  {
17513  2079 /*fromYear*/,
17514  2079 /*toYear*/,
17515  6 /*inMonth*/,
17516  0 /*onDayOfWeek*/,
17517  25 /*onDayOfMonth*/,
17518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17519  720 /*atTimeCode (10800/15)*/,
17520  -60 /*deltaMinutes*/,
17521  0 /*letterIndex ("")*/,
17522  },
17523  // Rule Morocco 2079 only - Aug 6 2:00 0 -
17524  {
17525  2079 /*fromYear*/,
17526  2079 /*toYear*/,
17527  8 /*inMonth*/,
17528  0 /*onDayOfWeek*/,
17529  6 /*onDayOfMonth*/,
17530  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17531  480 /*atTimeCode (7200/15)*/,
17532  0 /*deltaMinutes*/,
17533  0 /*letterIndex ("")*/,
17534  },
17535  // Rule Morocco 2080 only - Jun 16 3:00 -1:00 -
17536  {
17537  2080 /*fromYear*/,
17538  2080 /*toYear*/,
17539  6 /*inMonth*/,
17540  0 /*onDayOfWeek*/,
17541  16 /*onDayOfMonth*/,
17542  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17543  720 /*atTimeCode (10800/15)*/,
17544  -60 /*deltaMinutes*/,
17545  0 /*letterIndex ("")*/,
17546  },
17547  // Rule Morocco 2080 only - Jul 21 2:00 0 -
17548  {
17549  2080 /*fromYear*/,
17550  2080 /*toYear*/,
17551  7 /*inMonth*/,
17552  0 /*onDayOfWeek*/,
17553  21 /*onDayOfMonth*/,
17554  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17555  480 /*atTimeCode (7200/15)*/,
17556  0 /*deltaMinutes*/,
17557  0 /*letterIndex ("")*/,
17558  },
17559  // Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
17560  {
17561  2081 /*fromYear*/,
17562  2081 /*toYear*/,
17563  6 /*inMonth*/,
17564  0 /*onDayOfWeek*/,
17565  1 /*onDayOfMonth*/,
17566  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17567  720 /*atTimeCode (10800/15)*/,
17568  -60 /*deltaMinutes*/,
17569  0 /*letterIndex ("")*/,
17570  },
17571  // Rule Morocco 2081 only - Jul 13 2:00 0 -
17572  {
17573  2081 /*fromYear*/,
17574  2081 /*toYear*/,
17575  7 /*inMonth*/,
17576  0 /*onDayOfWeek*/,
17577  13 /*onDayOfMonth*/,
17578  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17579  480 /*atTimeCode (7200/15)*/,
17580  0 /*deltaMinutes*/,
17581  0 /*letterIndex ("")*/,
17582  },
17583  // Rule Morocco 2082 only - May 24 3:00 -1:00 -
17584  {
17585  2082 /*fromYear*/,
17586  2082 /*toYear*/,
17587  5 /*inMonth*/,
17588  0 /*onDayOfWeek*/,
17589  24 /*onDayOfMonth*/,
17590  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17591  720 /*atTimeCode (10800/15)*/,
17592  -60 /*deltaMinutes*/,
17593  0 /*letterIndex ("")*/,
17594  },
17595  // Rule Morocco 2082 only - Jun 28 2:00 0 -
17596  {
17597  2082 /*fromYear*/,
17598  2082 /*toYear*/,
17599  6 /*inMonth*/,
17600  0 /*onDayOfWeek*/,
17601  28 /*onDayOfMonth*/,
17602  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17603  480 /*atTimeCode (7200/15)*/,
17604  0 /*deltaMinutes*/,
17605  0 /*letterIndex ("")*/,
17606  },
17607  // Rule Morocco 2083 only - May 16 3:00 -1:00 -
17608  {
17609  2083 /*fromYear*/,
17610  2083 /*toYear*/,
17611  5 /*inMonth*/,
17612  0 /*onDayOfWeek*/,
17613  16 /*onDayOfMonth*/,
17614  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17615  720 /*atTimeCode (10800/15)*/,
17616  -60 /*deltaMinutes*/,
17617  0 /*letterIndex ("")*/,
17618  },
17619  // Rule Morocco 2083 only - Jun 20 2:00 0 -
17620  {
17621  2083 /*fromYear*/,
17622  2083 /*toYear*/,
17623  6 /*inMonth*/,
17624  0 /*onDayOfWeek*/,
17625  20 /*onDayOfMonth*/,
17626  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17627  480 /*atTimeCode (7200/15)*/,
17628  0 /*deltaMinutes*/,
17629  0 /*letterIndex ("")*/,
17630  },
17631  // Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
17632  {
17633  2084 /*fromYear*/,
17634  2084 /*toYear*/,
17635  4 /*inMonth*/,
17636  0 /*onDayOfWeek*/,
17637  30 /*onDayOfMonth*/,
17638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17639  720 /*atTimeCode (10800/15)*/,
17640  -60 /*deltaMinutes*/,
17641  0 /*letterIndex ("")*/,
17642  },
17643  // Rule Morocco 2084 only - Jun 11 2:00 0 -
17644  {
17645  2084 /*fromYear*/,
17646  2084 /*toYear*/,
17647  6 /*inMonth*/,
17648  0 /*onDayOfWeek*/,
17649  11 /*onDayOfMonth*/,
17650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17651  480 /*atTimeCode (7200/15)*/,
17652  0 /*deltaMinutes*/,
17653  0 /*letterIndex ("")*/,
17654  },
17655  // Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
17656  {
17657  2085 /*fromYear*/,
17658  2085 /*toYear*/,
17659  4 /*inMonth*/,
17660  0 /*onDayOfWeek*/,
17661  22 /*onDayOfMonth*/,
17662  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17663  720 /*atTimeCode (10800/15)*/,
17664  -60 /*deltaMinutes*/,
17665  0 /*letterIndex ("")*/,
17666  },
17667  // Rule Morocco 2085 only - May 27 2:00 0 -
17668  {
17669  2085 /*fromYear*/,
17670  2085 /*toYear*/,
17671  5 /*inMonth*/,
17672  0 /*onDayOfWeek*/,
17673  27 /*onDayOfMonth*/,
17674  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17675  480 /*atTimeCode (7200/15)*/,
17676  0 /*deltaMinutes*/,
17677  0 /*letterIndex ("")*/,
17678  },
17679  // Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
17680  {
17681  2086 /*fromYear*/,
17682  2086 /*toYear*/,
17683  4 /*inMonth*/,
17684  0 /*onDayOfWeek*/,
17685  14 /*onDayOfMonth*/,
17686  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17687  720 /*atTimeCode (10800/15)*/,
17688  -60 /*deltaMinutes*/,
17689  0 /*letterIndex ("")*/,
17690  },
17691  // Rule Morocco 2086 only - May 19 2:00 0 -
17692  {
17693  2086 /*fromYear*/,
17694  2086 /*toYear*/,
17695  5 /*inMonth*/,
17696  0 /*onDayOfWeek*/,
17697  19 /*onDayOfMonth*/,
17698  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17699  480 /*atTimeCode (7200/15)*/,
17700  0 /*deltaMinutes*/,
17701  0 /*letterIndex ("")*/,
17702  },
17703  // Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
17704  {
17705  2087 /*fromYear*/,
17706  2087 /*toYear*/,
17707  3 /*inMonth*/,
17708  0 /*onDayOfWeek*/,
17709  30 /*onDayOfMonth*/,
17710  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17711  720 /*atTimeCode (10800/15)*/,
17712  -60 /*deltaMinutes*/,
17713  0 /*letterIndex ("")*/,
17714  },
17715  // Rule Morocco 2087 only - May 11 2:00 0 -
17716  {
17717  2087 /*fromYear*/,
17718  2087 /*toYear*/,
17719  5 /*inMonth*/,
17720  0 /*onDayOfWeek*/,
17721  11 /*onDayOfMonth*/,
17722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17723  480 /*atTimeCode (7200/15)*/,
17724  0 /*deltaMinutes*/,
17725  0 /*letterIndex ("")*/,
17726  },
17727 
17728 };
17729 
17730 const complete::Info::ZonePolicy kZonePolicyMorocco ACE_TIME_PROGMEM = {
17731  kZoneRulesMorocco /*rules*/,
17732  184 /*numRules*/,
17733 };
17734 
17735 //---------------------------------------------------------------------------
17736 // Policy name: NBorneo
17737 // Rules: 3
17738 //---------------------------------------------------------------------------
17739 
17740 static const complete::Info::ZoneRule kZoneRulesNBorneo[] ACE_TIME_PROGMEM = {
17741  // Anchor: Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
17742  {
17743  -32767 /*fromYear*/,
17744  -32767 /*toYear*/,
17745  1 /*inMonth*/,
17746  0 /*onDayOfWeek*/,
17747  1 /*onDayOfMonth*/,
17748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17749  0 /*atTimeCode (0/15)*/,
17750  0 /*deltaMinutes*/,
17751  0 /*letterIndex ("")*/,
17752  },
17753  // Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 -
17754  {
17755  1935 /*fromYear*/,
17756  1941 /*toYear*/,
17757  9 /*inMonth*/,
17758  0 /*onDayOfWeek*/,
17759  14 /*onDayOfMonth*/,
17760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17761  0 /*atTimeCode (0/15)*/,
17762  20 /*deltaMinutes*/,
17763  0 /*letterIndex ("")*/,
17764  },
17765  // Rule NBorneo 1935 1941 - Dec 14 0:00 0 -
17766  {
17767  1935 /*fromYear*/,
17768  1941 /*toYear*/,
17769  12 /*inMonth*/,
17770  0 /*onDayOfWeek*/,
17771  14 /*onDayOfMonth*/,
17772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17773  0 /*atTimeCode (0/15)*/,
17774  0 /*deltaMinutes*/,
17775  0 /*letterIndex ("")*/,
17776  },
17777 
17778 };
17779 
17780 const complete::Info::ZonePolicy kZonePolicyNBorneo ACE_TIME_PROGMEM = {
17781  kZoneRulesNBorneo /*rules*/,
17782  3 /*numRules*/,
17783 };
17784 
17785 //---------------------------------------------------------------------------
17786 // Policy name: NC
17787 // Rules: 5
17788 //---------------------------------------------------------------------------
17789 
17790 static const complete::Info::ZoneRule kZoneRulesNC[] ACE_TIME_PROGMEM = {
17791  // Anchor: Rule NC 1978 1979 - Feb 27 0:00 0 -
17792  {
17793  -32767 /*fromYear*/,
17794  -32767 /*toYear*/,
17795  1 /*inMonth*/,
17796  0 /*onDayOfWeek*/,
17797  1 /*onDayOfMonth*/,
17798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17799  0 /*atTimeCode (0/15)*/,
17800  0 /*deltaMinutes*/,
17801  0 /*letterIndex ("")*/,
17802  },
17803  // Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 -
17804  {
17805  1977 /*fromYear*/,
17806  1978 /*toYear*/,
17807  12 /*inMonth*/,
17808  7 /*onDayOfWeek*/,
17809  1 /*onDayOfMonth*/,
17810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17811  0 /*atTimeCode (0/15)*/,
17812  60 /*deltaMinutes*/,
17813  0 /*letterIndex ("")*/,
17814  },
17815  // Rule NC 1978 1979 - Feb 27 0:00 0 -
17816  {
17817  1978 /*fromYear*/,
17818  1979 /*toYear*/,
17819  2 /*inMonth*/,
17820  0 /*onDayOfWeek*/,
17821  27 /*onDayOfMonth*/,
17822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17823  0 /*atTimeCode (0/15)*/,
17824  0 /*deltaMinutes*/,
17825  0 /*letterIndex ("")*/,
17826  },
17827  // Rule NC 1996 only - Dec 1 2:00s 1:00 -
17828  {
17829  1996 /*fromYear*/,
17830  1996 /*toYear*/,
17831  12 /*inMonth*/,
17832  0 /*onDayOfWeek*/,
17833  1 /*onDayOfMonth*/,
17834  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
17835  480 /*atTimeCode (7200/15)*/,
17836  60 /*deltaMinutes*/,
17837  0 /*letterIndex ("")*/,
17838  },
17839  // Rule NC 1997 only - Mar 2 2:00s 0 -
17840  {
17841  1997 /*fromYear*/,
17842  1997 /*toYear*/,
17843  3 /*inMonth*/,
17844  0 /*onDayOfWeek*/,
17845  2 /*onDayOfMonth*/,
17846  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
17847  480 /*atTimeCode (7200/15)*/,
17848  0 /*deltaMinutes*/,
17849  0 /*letterIndex ("")*/,
17850  },
17851 
17852 };
17853 
17854 const complete::Info::ZonePolicy kZonePolicyNC ACE_TIME_PROGMEM = {
17855  kZoneRulesNC /*rules*/,
17856  5 /*numRules*/,
17857 };
17858 
17859 //---------------------------------------------------------------------------
17860 // Policy name: NT_YK
17861 // Rules: 11
17862 //---------------------------------------------------------------------------
17863 
17864 static const complete::Info::ZoneRule kZoneRulesNT_YK[] ACE_TIME_PROGMEM = {
17865  // Anchor: Rule NT_YK 1918 only - Oct 27 2:00 0 S
17866  {
17867  -32767 /*fromYear*/,
17868  -32767 /*toYear*/,
17869  1 /*inMonth*/,
17870  0 /*onDayOfWeek*/,
17871  1 /*onDayOfMonth*/,
17872  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17873  0 /*atTimeCode (0/15)*/,
17874  0 /*deltaMinutes*/,
17875  25 /*letterIndex ("S")*/,
17876  },
17877  // Rule NT_YK 1918 only - Apr 14 2:00 1:00 D
17878  {
17879  1918 /*fromYear*/,
17880  1918 /*toYear*/,
17881  4 /*inMonth*/,
17882  0 /*onDayOfWeek*/,
17883  14 /*onDayOfMonth*/,
17884  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17885  480 /*atTimeCode (7200/15)*/,
17886  60 /*deltaMinutes*/,
17887  13 /*letterIndex ("D")*/,
17888  },
17889  // Rule NT_YK 1918 only - Oct 27 2:00 0 S
17890  {
17891  1918 /*fromYear*/,
17892  1918 /*toYear*/,
17893  10 /*inMonth*/,
17894  0 /*onDayOfWeek*/,
17895  27 /*onDayOfMonth*/,
17896  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17897  480 /*atTimeCode (7200/15)*/,
17898  0 /*deltaMinutes*/,
17899  25 /*letterIndex ("S")*/,
17900  },
17901  // Rule NT_YK 1919 only - May 25 2:00 1:00 D
17902  {
17903  1919 /*fromYear*/,
17904  1919 /*toYear*/,
17905  5 /*inMonth*/,
17906  0 /*onDayOfWeek*/,
17907  25 /*onDayOfMonth*/,
17908  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17909  480 /*atTimeCode (7200/15)*/,
17910  60 /*deltaMinutes*/,
17911  13 /*letterIndex ("D")*/,
17912  },
17913  // Rule NT_YK 1919 only - Nov 1 0:00 0 S
17914  {
17915  1919 /*fromYear*/,
17916  1919 /*toYear*/,
17917  11 /*inMonth*/,
17918  0 /*onDayOfWeek*/,
17919  1 /*onDayOfMonth*/,
17920  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17921  0 /*atTimeCode (0/15)*/,
17922  0 /*deltaMinutes*/,
17923  25 /*letterIndex ("S")*/,
17924  },
17925  // Rule NT_YK 1942 only - Feb 9 2:00 1:00 W
17926  {
17927  1942 /*fromYear*/,
17928  1942 /*toYear*/,
17929  2 /*inMonth*/,
17930  0 /*onDayOfWeek*/,
17931  9 /*onDayOfMonth*/,
17932  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17933  480 /*atTimeCode (7200/15)*/,
17934  60 /*deltaMinutes*/,
17935  26 /*letterIndex ("W")*/,
17936  },
17937  // Rule NT_YK 1945 only - Aug 14 23:00u 1:00 P
17938  {
17939  1945 /*fromYear*/,
17940  1945 /*toYear*/,
17941  8 /*inMonth*/,
17942  0 /*onDayOfWeek*/,
17943  14 /*onDayOfMonth*/,
17944  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
17945  5520 /*atTimeCode (82800/15)*/,
17946  60 /*deltaMinutes*/,
17947  24 /*letterIndex ("P")*/,
17948  },
17949  // Rule NT_YK 1945 only - Sep 30 2:00 0 S
17950  {
17951  1945 /*fromYear*/,
17952  1945 /*toYear*/,
17953  9 /*inMonth*/,
17954  0 /*onDayOfWeek*/,
17955  30 /*onDayOfMonth*/,
17956  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17957  480 /*atTimeCode (7200/15)*/,
17958  0 /*deltaMinutes*/,
17959  25 /*letterIndex ("S")*/,
17960  },
17961  // Rule NT_YK 1972 1986 - Apr lastSun 2:00 1:00 D
17962  {
17963  1972 /*fromYear*/,
17964  1986 /*toYear*/,
17965  4 /*inMonth*/,
17966  7 /*onDayOfWeek*/,
17967  0 /*onDayOfMonth*/,
17968  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17969  480 /*atTimeCode (7200/15)*/,
17970  60 /*deltaMinutes*/,
17971  13 /*letterIndex ("D")*/,
17972  },
17973  // Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S
17974  {
17975  1972 /*fromYear*/,
17976  2006 /*toYear*/,
17977  10 /*inMonth*/,
17978  7 /*onDayOfWeek*/,
17979  0 /*onDayOfMonth*/,
17980  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17981  480 /*atTimeCode (7200/15)*/,
17982  0 /*deltaMinutes*/,
17983  25 /*letterIndex ("S")*/,
17984  },
17985  // Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D
17986  {
17987  1987 /*fromYear*/,
17988  2006 /*toYear*/,
17989  4 /*inMonth*/,
17990  7 /*onDayOfWeek*/,
17991  1 /*onDayOfMonth*/,
17992  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
17993  480 /*atTimeCode (7200/15)*/,
17994  60 /*deltaMinutes*/,
17995  13 /*letterIndex ("D")*/,
17996  },
17997 
17998 };
17999 
18000 const complete::Info::ZonePolicy kZonePolicyNT_YK ACE_TIME_PROGMEM = {
18001  kZoneRulesNT_YK /*rules*/,
18002  11 /*numRules*/,
18003 };
18004 
18005 //---------------------------------------------------------------------------
18006 // Policy name: NYC
18007 // Rules: 6
18008 //---------------------------------------------------------------------------
18009 
18010 static const complete::Info::ZoneRule kZoneRulesNYC[] ACE_TIME_PROGMEM = {
18011  // Anchor: Rule NYC 1920 only - Oct lastSun 2:00 0 S
18012  {
18013  -32767 /*fromYear*/,
18014  -32767 /*toYear*/,
18015  1 /*inMonth*/,
18016  0 /*onDayOfWeek*/,
18017  1 /*onDayOfMonth*/,
18018  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18019  0 /*atTimeCode (0/15)*/,
18020  0 /*deltaMinutes*/,
18021  25 /*letterIndex ("S")*/,
18022  },
18023  // Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
18024  {
18025  1920 /*fromYear*/,
18026  1920 /*toYear*/,
18027  3 /*inMonth*/,
18028  7 /*onDayOfWeek*/,
18029  0 /*onDayOfMonth*/,
18030  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18031  480 /*atTimeCode (7200/15)*/,
18032  60 /*deltaMinutes*/,
18033  13 /*letterIndex ("D")*/,
18034  },
18035  // Rule NYC 1920 only - Oct lastSun 2:00 0 S
18036  {
18037  1920 /*fromYear*/,
18038  1920 /*toYear*/,
18039  10 /*inMonth*/,
18040  7 /*onDayOfWeek*/,
18041  0 /*onDayOfMonth*/,
18042  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18043  480 /*atTimeCode (7200/15)*/,
18044  0 /*deltaMinutes*/,
18045  25 /*letterIndex ("S")*/,
18046  },
18047  // Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
18048  {
18049  1921 /*fromYear*/,
18050  1966 /*toYear*/,
18051  4 /*inMonth*/,
18052  7 /*onDayOfWeek*/,
18053  0 /*onDayOfMonth*/,
18054  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18055  480 /*atTimeCode (7200/15)*/,
18056  60 /*deltaMinutes*/,
18057  13 /*letterIndex ("D")*/,
18058  },
18059  // Rule NYC 1921 1954 - Sep lastSun 2:00 0 S
18060  {
18061  1921 /*fromYear*/,
18062  1954 /*toYear*/,
18063  9 /*inMonth*/,
18064  7 /*onDayOfWeek*/,
18065  0 /*onDayOfMonth*/,
18066  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18067  480 /*atTimeCode (7200/15)*/,
18068  0 /*deltaMinutes*/,
18069  25 /*letterIndex ("S")*/,
18070  },
18071  // Rule NYC 1955 1966 - Oct lastSun 2:00 0 S
18072  {
18073  1955 /*fromYear*/,
18074  1966 /*toYear*/,
18075  10 /*inMonth*/,
18076  7 /*onDayOfWeek*/,
18077  0 /*onDayOfMonth*/,
18078  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18079  480 /*atTimeCode (7200/15)*/,
18080  0 /*deltaMinutes*/,
18081  25 /*letterIndex ("S")*/,
18082  },
18083 
18084 };
18085 
18086 const complete::Info::ZonePolicy kZonePolicyNYC ACE_TIME_PROGMEM = {
18087  kZoneRulesNYC /*rules*/,
18088  6 /*numRules*/,
18089 };
18090 
18091 //---------------------------------------------------------------------------
18092 // Policy name: NZ
18093 // Rules: 17
18094 //---------------------------------------------------------------------------
18095 
18096 static const complete::Info::ZoneRule kZoneRulesNZ[] ACE_TIME_PROGMEM = {
18097  // Anchor: Rule NZ 1928 only - Mar 4 2:00 0 M
18098  {
18099  -32767 /*fromYear*/,
18100  -32767 /*toYear*/,
18101  1 /*inMonth*/,
18102  0 /*onDayOfWeek*/,
18103  1 /*onDayOfMonth*/,
18104  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18105  0 /*atTimeCode (0/15)*/,
18106  0 /*deltaMinutes*/,
18107  18 /*letterIndex ("M")*/,
18108  },
18109  // Rule NZ 1927 only - Nov 6 2:00 1:00 S
18110  {
18111  1927 /*fromYear*/,
18112  1927 /*toYear*/,
18113  11 /*inMonth*/,
18114  0 /*onDayOfWeek*/,
18115  6 /*onDayOfMonth*/,
18116  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18117  480 /*atTimeCode (7200/15)*/,
18118  60 /*deltaMinutes*/,
18119  25 /*letterIndex ("S")*/,
18120  },
18121  // Rule NZ 1928 only - Mar 4 2:00 0 M
18122  {
18123  1928 /*fromYear*/,
18124  1928 /*toYear*/,
18125  3 /*inMonth*/,
18126  0 /*onDayOfWeek*/,
18127  4 /*onDayOfMonth*/,
18128  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18129  480 /*atTimeCode (7200/15)*/,
18130  0 /*deltaMinutes*/,
18131  18 /*letterIndex ("M")*/,
18132  },
18133  // Rule NZ 1928 1933 - Oct Sun>=8 2:00 0:30 S
18134  {
18135  1928 /*fromYear*/,
18136  1933 /*toYear*/,
18137  10 /*inMonth*/,
18138  7 /*onDayOfWeek*/,
18139  8 /*onDayOfMonth*/,
18140  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18141  480 /*atTimeCode (7200/15)*/,
18142  30 /*deltaMinutes*/,
18143  25 /*letterIndex ("S")*/,
18144  },
18145  // Rule NZ 1929 1933 - Mar Sun>=15 2:00 0 M
18146  {
18147  1929 /*fromYear*/,
18148  1933 /*toYear*/,
18149  3 /*inMonth*/,
18150  7 /*onDayOfWeek*/,
18151  15 /*onDayOfMonth*/,
18152  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18153  480 /*atTimeCode (7200/15)*/,
18154  0 /*deltaMinutes*/,
18155  18 /*letterIndex ("M")*/,
18156  },
18157  // Rule NZ 1934 1940 - Apr lastSun 2:00 0 M
18158  {
18159  1934 /*fromYear*/,
18160  1940 /*toYear*/,
18161  4 /*inMonth*/,
18162  7 /*onDayOfWeek*/,
18163  0 /*onDayOfMonth*/,
18164  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18165  480 /*atTimeCode (7200/15)*/,
18166  0 /*deltaMinutes*/,
18167  18 /*letterIndex ("M")*/,
18168  },
18169  // Rule NZ 1934 1940 - Sep lastSun 2:00 0:30 S
18170  {
18171  1934 /*fromYear*/,
18172  1940 /*toYear*/,
18173  9 /*inMonth*/,
18174  7 /*onDayOfWeek*/,
18175  0 /*onDayOfMonth*/,
18176  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18177  480 /*atTimeCode (7200/15)*/,
18178  30 /*deltaMinutes*/,
18179  25 /*letterIndex ("S")*/,
18180  },
18181  // Rule NZ 1946 only - Jan 1 0:00 0 S
18182  {
18183  1946 /*fromYear*/,
18184  1946 /*toYear*/,
18185  1 /*inMonth*/,
18186  0 /*onDayOfWeek*/,
18187  1 /*onDayOfMonth*/,
18188  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18189  0 /*atTimeCode (0/15)*/,
18190  0 /*deltaMinutes*/,
18191  25 /*letterIndex ("S")*/,
18192  },
18193  // Rule NZ 1974 only - Nov Sun>=1 2:00s 1:00 D
18194  {
18195  1974 /*fromYear*/,
18196  1974 /*toYear*/,
18197  11 /*inMonth*/,
18198  7 /*onDayOfWeek*/,
18199  1 /*onDayOfMonth*/,
18200  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18201  480 /*atTimeCode (7200/15)*/,
18202  60 /*deltaMinutes*/,
18203  13 /*letterIndex ("D")*/,
18204  },
18205  // Rule NZ 1975 only - Feb lastSun 2:00s 0 S
18206  {
18207  1975 /*fromYear*/,
18208  1975 /*toYear*/,
18209  2 /*inMonth*/,
18210  7 /*onDayOfWeek*/,
18211  0 /*onDayOfMonth*/,
18212  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18213  480 /*atTimeCode (7200/15)*/,
18214  0 /*deltaMinutes*/,
18215  25 /*letterIndex ("S")*/,
18216  },
18217  // Rule NZ 1975 1988 - Oct lastSun 2:00s 1:00 D
18218  {
18219  1975 /*fromYear*/,
18220  1988 /*toYear*/,
18221  10 /*inMonth*/,
18222  7 /*onDayOfWeek*/,
18223  0 /*onDayOfMonth*/,
18224  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18225  480 /*atTimeCode (7200/15)*/,
18226  60 /*deltaMinutes*/,
18227  13 /*letterIndex ("D")*/,
18228  },
18229  // Rule NZ 1976 1989 - Mar Sun>=1 2:00s 0 S
18230  {
18231  1976 /*fromYear*/,
18232  1989 /*toYear*/,
18233  3 /*inMonth*/,
18234  7 /*onDayOfWeek*/,
18235  1 /*onDayOfMonth*/,
18236  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18237  480 /*atTimeCode (7200/15)*/,
18238  0 /*deltaMinutes*/,
18239  25 /*letterIndex ("S")*/,
18240  },
18241  // Rule NZ 1989 only - Oct Sun>=8 2:00s 1:00 D
18242  {
18243  1989 /*fromYear*/,
18244  1989 /*toYear*/,
18245  10 /*inMonth*/,
18246  7 /*onDayOfWeek*/,
18247  8 /*onDayOfMonth*/,
18248  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18249  480 /*atTimeCode (7200/15)*/,
18250  60 /*deltaMinutes*/,
18251  13 /*letterIndex ("D")*/,
18252  },
18253  // Rule NZ 1990 2006 - Oct Sun>=1 2:00s 1:00 D
18254  {
18255  1990 /*fromYear*/,
18256  2006 /*toYear*/,
18257  10 /*inMonth*/,
18258  7 /*onDayOfWeek*/,
18259  1 /*onDayOfMonth*/,
18260  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18261  480 /*atTimeCode (7200/15)*/,
18262  60 /*deltaMinutes*/,
18263  13 /*letterIndex ("D")*/,
18264  },
18265  // Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
18266  {
18267  1990 /*fromYear*/,
18268  2007 /*toYear*/,
18269  3 /*inMonth*/,
18270  7 /*onDayOfWeek*/,
18271  15 /*onDayOfMonth*/,
18272  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18273  480 /*atTimeCode (7200/15)*/,
18274  0 /*deltaMinutes*/,
18275  25 /*letterIndex ("S")*/,
18276  },
18277  // Rule NZ 2007 max - Sep lastSun 2:00s 1:00 D
18278  {
18279  2007 /*fromYear*/,
18280  32766 /*toYear*/,
18281  9 /*inMonth*/,
18282  7 /*onDayOfWeek*/,
18283  0 /*onDayOfMonth*/,
18284  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18285  480 /*atTimeCode (7200/15)*/,
18286  60 /*deltaMinutes*/,
18287  13 /*letterIndex ("D")*/,
18288  },
18289  // Rule NZ 2008 max - Apr Sun>=1 2:00s 0 S
18290  {
18291  2008 /*fromYear*/,
18292  32766 /*toYear*/,
18293  4 /*inMonth*/,
18294  7 /*onDayOfWeek*/,
18295  1 /*onDayOfMonth*/,
18296  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
18297  480 /*atTimeCode (7200/15)*/,
18298  0 /*deltaMinutes*/,
18299  25 /*letterIndex ("S")*/,
18300  },
18301 
18302 };
18303 
18304 const complete::Info::ZonePolicy kZonePolicyNZ ACE_TIME_PROGMEM = {
18305  kZoneRulesNZ /*rules*/,
18306  17 /*numRules*/,
18307 };
18308 
18309 //---------------------------------------------------------------------------
18310 // Policy name: Namibia
18311 // Rules: 4
18312 //---------------------------------------------------------------------------
18313 
18314 static const complete::Info::ZoneRule kZoneRulesNamibia[] ACE_TIME_PROGMEM = {
18315  // Anchor: Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
18316  {
18317  -32767 /*fromYear*/,
18318  -32767 /*toYear*/,
18319  1 /*inMonth*/,
18320  0 /*onDayOfWeek*/,
18321  1 /*onDayOfMonth*/,
18322  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18323  0 /*atTimeCode (0/15)*/,
18324  0 /*deltaMinutes*/,
18325  8 /*letterIndex ("CAT")*/,
18326  },
18327  // Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
18328  {
18329  1994 /*fromYear*/,
18330  1994 /*toYear*/,
18331  3 /*inMonth*/,
18332  0 /*onDayOfWeek*/,
18333  21 /*onDayOfMonth*/,
18334  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18335  0 /*atTimeCode (0/15)*/,
18336  -60 /*deltaMinutes*/,
18337  27 /*letterIndex ("WAT")*/,
18338  },
18339  // Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
18340  {
18341  1994 /*fromYear*/,
18342  2017 /*toYear*/,
18343  9 /*inMonth*/,
18344  7 /*onDayOfWeek*/,
18345  1 /*onDayOfMonth*/,
18346  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18347  480 /*atTimeCode (7200/15)*/,
18348  0 /*deltaMinutes*/,
18349  8 /*letterIndex ("CAT")*/,
18350  },
18351  // Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
18352  {
18353  1995 /*fromYear*/,
18354  2017 /*toYear*/,
18355  4 /*inMonth*/,
18356  7 /*onDayOfWeek*/,
18357  1 /*onDayOfMonth*/,
18358  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18359  480 /*atTimeCode (7200/15)*/,
18360  -60 /*deltaMinutes*/,
18361  27 /*letterIndex ("WAT")*/,
18362  },
18363 
18364 };
18365 
18366 const complete::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = {
18367  kZoneRulesNamibia /*rules*/,
18368  4 /*numRules*/,
18369 };
18370 
18371 //---------------------------------------------------------------------------
18372 // Policy name: Nic
18373 // Rules: 7
18374 //---------------------------------------------------------------------------
18375 
18376 static const complete::Info::ZoneRule kZoneRulesNic[] ACE_TIME_PROGMEM = {
18377  // Anchor: Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
18378  {
18379  -32767 /*fromYear*/,
18380  -32767 /*toYear*/,
18381  1 /*inMonth*/,
18382  0 /*onDayOfWeek*/,
18383  1 /*onDayOfMonth*/,
18384  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18385  0 /*atTimeCode (0/15)*/,
18386  0 /*deltaMinutes*/,
18387  25 /*letterIndex ("S")*/,
18388  },
18389  // Rule Nic 1979 1980 - Mar Sun>=16 0:00 1:00 D
18390  {
18391  1979 /*fromYear*/,
18392  1980 /*toYear*/,
18393  3 /*inMonth*/,
18394  7 /*onDayOfWeek*/,
18395  16 /*onDayOfMonth*/,
18396  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18397  0 /*atTimeCode (0/15)*/,
18398  60 /*deltaMinutes*/,
18399  13 /*letterIndex ("D")*/,
18400  },
18401  // Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
18402  {
18403  1979 /*fromYear*/,
18404  1980 /*toYear*/,
18405  6 /*inMonth*/,
18406  1 /*onDayOfWeek*/,
18407  23 /*onDayOfMonth*/,
18408  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18409  0 /*atTimeCode (0/15)*/,
18410  0 /*deltaMinutes*/,
18411  25 /*letterIndex ("S")*/,
18412  },
18413  // Rule Nic 2005 only - Apr 10 0:00 1:00 D
18414  {
18415  2005 /*fromYear*/,
18416  2005 /*toYear*/,
18417  4 /*inMonth*/,
18418  0 /*onDayOfWeek*/,
18419  10 /*onDayOfMonth*/,
18420  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18421  0 /*atTimeCode (0/15)*/,
18422  60 /*deltaMinutes*/,
18423  13 /*letterIndex ("D")*/,
18424  },
18425  // Rule Nic 2005 only - Oct Sun>=1 0:00 0 S
18426  {
18427  2005 /*fromYear*/,
18428  2005 /*toYear*/,
18429  10 /*inMonth*/,
18430  7 /*onDayOfWeek*/,
18431  1 /*onDayOfMonth*/,
18432  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18433  0 /*atTimeCode (0/15)*/,
18434  0 /*deltaMinutes*/,
18435  25 /*letterIndex ("S")*/,
18436  },
18437  // Rule Nic 2006 only - Apr 30 2:00 1:00 D
18438  {
18439  2006 /*fromYear*/,
18440  2006 /*toYear*/,
18441  4 /*inMonth*/,
18442  0 /*onDayOfWeek*/,
18443  30 /*onDayOfMonth*/,
18444  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18445  480 /*atTimeCode (7200/15)*/,
18446  60 /*deltaMinutes*/,
18447  13 /*letterIndex ("D")*/,
18448  },
18449  // Rule Nic 2006 only - Oct Sun>=1 1:00 0 S
18450  {
18451  2006 /*fromYear*/,
18452  2006 /*toYear*/,
18453  10 /*inMonth*/,
18454  7 /*onDayOfWeek*/,
18455  1 /*onDayOfMonth*/,
18456  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18457  240 /*atTimeCode (3600/15)*/,
18458  0 /*deltaMinutes*/,
18459  25 /*letterIndex ("S")*/,
18460  },
18461 
18462 };
18463 
18464 const complete::Info::ZonePolicy kZonePolicyNic ACE_TIME_PROGMEM = {
18465  kZoneRulesNic /*rules*/,
18466  7 /*numRules*/,
18467 };
18468 
18469 //---------------------------------------------------------------------------
18470 // Policy name: PRC
18471 // Rules: 4
18472 //---------------------------------------------------------------------------
18473 
18474 static const complete::Info::ZoneRule kZoneRulesPRC[] ACE_TIME_PROGMEM = {
18475  // Anchor: Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
18476  {
18477  -32767 /*fromYear*/,
18478  -32767 /*toYear*/,
18479  1 /*inMonth*/,
18480  0 /*onDayOfWeek*/,
18481  1 /*onDayOfMonth*/,
18482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18483  0 /*atTimeCode (0/15)*/,
18484  0 /*deltaMinutes*/,
18485  25 /*letterIndex ("S")*/,
18486  },
18487  // Rule PRC 1986 only - May 4 2:00 1:00 D
18488  {
18489  1986 /*fromYear*/,
18490  1986 /*toYear*/,
18491  5 /*inMonth*/,
18492  0 /*onDayOfWeek*/,
18493  4 /*onDayOfMonth*/,
18494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18495  480 /*atTimeCode (7200/15)*/,
18496  60 /*deltaMinutes*/,
18497  13 /*letterIndex ("D")*/,
18498  },
18499  // Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
18500  {
18501  1986 /*fromYear*/,
18502  1991 /*toYear*/,
18503  9 /*inMonth*/,
18504  7 /*onDayOfWeek*/,
18505  11 /*onDayOfMonth*/,
18506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18507  480 /*atTimeCode (7200/15)*/,
18508  0 /*deltaMinutes*/,
18509  25 /*letterIndex ("S")*/,
18510  },
18511  // Rule PRC 1987 1991 - Apr Sun>=11 2:00 1:00 D
18512  {
18513  1987 /*fromYear*/,
18514  1991 /*toYear*/,
18515  4 /*inMonth*/,
18516  7 /*onDayOfWeek*/,
18517  11 /*onDayOfMonth*/,
18518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18519  480 /*atTimeCode (7200/15)*/,
18520  60 /*deltaMinutes*/,
18521  13 /*letterIndex ("D")*/,
18522  },
18523 
18524 };
18525 
18526 const complete::Info::ZonePolicy kZonePolicyPRC ACE_TIME_PROGMEM = {
18527  kZoneRulesPRC /*rules*/,
18528  4 /*numRules*/,
18529 };
18530 
18531 //---------------------------------------------------------------------------
18532 // Policy name: Pakistan
18533 // Rules: 6
18534 //---------------------------------------------------------------------------
18535 
18536 static const complete::Info::ZoneRule kZoneRulesPakistan[] ACE_TIME_PROGMEM = {
18537  // Anchor: Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
18538  {
18539  -32767 /*fromYear*/,
18540  -32767 /*toYear*/,
18541  1 /*inMonth*/,
18542  0 /*onDayOfWeek*/,
18543  1 /*onDayOfMonth*/,
18544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18545  0 /*atTimeCode (0/15)*/,
18546  0 /*deltaMinutes*/,
18547  0 /*letterIndex ("")*/,
18548  },
18549  // Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
18550  {
18551  2002 /*fromYear*/,
18552  2002 /*toYear*/,
18553  4 /*inMonth*/,
18554  7 /*onDayOfWeek*/,
18555  2 /*onDayOfMonth*/,
18556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18557  0 /*atTimeCode (0/15)*/,
18558  60 /*deltaMinutes*/,
18559  25 /*letterIndex ("S")*/,
18560  },
18561  // Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
18562  {
18563  2002 /*fromYear*/,
18564  2002 /*toYear*/,
18565  10 /*inMonth*/,
18566  7 /*onDayOfWeek*/,
18567  2 /*onDayOfMonth*/,
18568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18569  0 /*atTimeCode (0/15)*/,
18570  0 /*deltaMinutes*/,
18571  0 /*letterIndex ("")*/,
18572  },
18573  // Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
18574  {
18575  2008 /*fromYear*/,
18576  2008 /*toYear*/,
18577  6 /*inMonth*/,
18578  0 /*onDayOfWeek*/,
18579  1 /*onDayOfMonth*/,
18580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18581  0 /*atTimeCode (0/15)*/,
18582  60 /*deltaMinutes*/,
18583  25 /*letterIndex ("S")*/,
18584  },
18585  // Rule Pakistan 2008 2009 - Nov 1 0:00 0 -
18586  {
18587  2008 /*fromYear*/,
18588  2009 /*toYear*/,
18589  11 /*inMonth*/,
18590  0 /*onDayOfWeek*/,
18591  1 /*onDayOfMonth*/,
18592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18593  0 /*atTimeCode (0/15)*/,
18594  0 /*deltaMinutes*/,
18595  0 /*letterIndex ("")*/,
18596  },
18597  // Rule Pakistan 2009 only - Apr 15 0:00 1:00 S
18598  {
18599  2009 /*fromYear*/,
18600  2009 /*toYear*/,
18601  4 /*inMonth*/,
18602  0 /*onDayOfWeek*/,
18603  15 /*onDayOfMonth*/,
18604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18605  0 /*atTimeCode (0/15)*/,
18606  60 /*deltaMinutes*/,
18607  25 /*letterIndex ("S")*/,
18608  },
18609 
18610 };
18611 
18612 const complete::Info::ZonePolicy kZonePolicyPakistan ACE_TIME_PROGMEM = {
18613  kZoneRulesPakistan /*rules*/,
18614  6 /*numRules*/,
18615 };
18616 
18617 //---------------------------------------------------------------------------
18618 // Policy name: Palestine
18619 // Rules: 111
18620 //---------------------------------------------------------------------------
18621 
18622 static const complete::Info::ZoneRule kZoneRulesPalestine[] ACE_TIME_PROGMEM = {
18623  // Anchor: Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
18624  {
18625  -32767 /*fromYear*/,
18626  -32767 /*toYear*/,
18627  1 /*inMonth*/,
18628  0 /*onDayOfWeek*/,
18629  1 /*onDayOfMonth*/,
18630  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18631  0 /*atTimeCode (0/15)*/,
18632  0 /*deltaMinutes*/,
18633  0 /*letterIndex ("")*/,
18634  },
18635  // Rule Palestine 1999 2005 - Apr Fri>=15 0:00 1:00 S
18636  {
18637  1999 /*fromYear*/,
18638  2005 /*toYear*/,
18639  4 /*inMonth*/,
18640  5 /*onDayOfWeek*/,
18641  15 /*onDayOfMonth*/,
18642  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18643  0 /*atTimeCode (0/15)*/,
18644  60 /*deltaMinutes*/,
18645  25 /*letterIndex ("S")*/,
18646  },
18647  // Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
18648  {
18649  1999 /*fromYear*/,
18650  2003 /*toYear*/,
18651  10 /*inMonth*/,
18652  5 /*onDayOfWeek*/,
18653  15 /*onDayOfMonth*/,
18654  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18655  0 /*atTimeCode (0/15)*/,
18656  0 /*deltaMinutes*/,
18657  0 /*letterIndex ("")*/,
18658  },
18659  // Rule Palestine 2004 only - Oct 1 1:00 0 -
18660  {
18661  2004 /*fromYear*/,
18662  2004 /*toYear*/,
18663  10 /*inMonth*/,
18664  0 /*onDayOfWeek*/,
18665  1 /*onDayOfMonth*/,
18666  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18667  240 /*atTimeCode (3600/15)*/,
18668  0 /*deltaMinutes*/,
18669  0 /*letterIndex ("")*/,
18670  },
18671  // Rule Palestine 2005 only - Oct 4 2:00 0 -
18672  {
18673  2005 /*fromYear*/,
18674  2005 /*toYear*/,
18675  10 /*inMonth*/,
18676  0 /*onDayOfWeek*/,
18677  4 /*onDayOfMonth*/,
18678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18679  480 /*atTimeCode (7200/15)*/,
18680  0 /*deltaMinutes*/,
18681  0 /*letterIndex ("")*/,
18682  },
18683  // Rule Palestine 2006 2007 - Apr 1 0:00 1:00 S
18684  {
18685  2006 /*fromYear*/,
18686  2007 /*toYear*/,
18687  4 /*inMonth*/,
18688  0 /*onDayOfWeek*/,
18689  1 /*onDayOfMonth*/,
18690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18691  0 /*atTimeCode (0/15)*/,
18692  60 /*deltaMinutes*/,
18693  25 /*letterIndex ("S")*/,
18694  },
18695  // Rule Palestine 2006 only - Sep 22 0:00 0 -
18696  {
18697  2006 /*fromYear*/,
18698  2006 /*toYear*/,
18699  9 /*inMonth*/,
18700  0 /*onDayOfWeek*/,
18701  22 /*onDayOfMonth*/,
18702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18703  0 /*atTimeCode (0/15)*/,
18704  0 /*deltaMinutes*/,
18705  0 /*letterIndex ("")*/,
18706  },
18707  // Rule Palestine 2007 only - Sep 13 2:00 0 -
18708  {
18709  2007 /*fromYear*/,
18710  2007 /*toYear*/,
18711  9 /*inMonth*/,
18712  0 /*onDayOfWeek*/,
18713  13 /*onDayOfMonth*/,
18714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18715  480 /*atTimeCode (7200/15)*/,
18716  0 /*deltaMinutes*/,
18717  0 /*letterIndex ("")*/,
18718  },
18719  // Rule Palestine 2008 2009 - Mar lastFri 0:00 1:00 S
18720  {
18721  2008 /*fromYear*/,
18722  2009 /*toYear*/,
18723  3 /*inMonth*/,
18724  5 /*onDayOfWeek*/,
18725  0 /*onDayOfMonth*/,
18726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18727  0 /*atTimeCode (0/15)*/,
18728  60 /*deltaMinutes*/,
18729  25 /*letterIndex ("S")*/,
18730  },
18731  // Rule Palestine 2008 only - Sep 1 0:00 0 -
18732  {
18733  2008 /*fromYear*/,
18734  2008 /*toYear*/,
18735  9 /*inMonth*/,
18736  0 /*onDayOfWeek*/,
18737  1 /*onDayOfMonth*/,
18738  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18739  0 /*atTimeCode (0/15)*/,
18740  0 /*deltaMinutes*/,
18741  0 /*letterIndex ("")*/,
18742  },
18743  // Rule Palestine 2009 only - Sep 4 1:00 0 -
18744  {
18745  2009 /*fromYear*/,
18746  2009 /*toYear*/,
18747  9 /*inMonth*/,
18748  0 /*onDayOfWeek*/,
18749  4 /*onDayOfMonth*/,
18750  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18751  240 /*atTimeCode (3600/15)*/,
18752  0 /*deltaMinutes*/,
18753  0 /*letterIndex ("")*/,
18754  },
18755  // Rule Palestine 2010 only - Mar 26 0:00 1:00 S
18756  {
18757  2010 /*fromYear*/,
18758  2010 /*toYear*/,
18759  3 /*inMonth*/,
18760  0 /*onDayOfWeek*/,
18761  26 /*onDayOfMonth*/,
18762  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18763  0 /*atTimeCode (0/15)*/,
18764  60 /*deltaMinutes*/,
18765  25 /*letterIndex ("S")*/,
18766  },
18767  // Rule Palestine 2010 only - Aug 11 0:00 0 -
18768  {
18769  2010 /*fromYear*/,
18770  2010 /*toYear*/,
18771  8 /*inMonth*/,
18772  0 /*onDayOfWeek*/,
18773  11 /*onDayOfMonth*/,
18774  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18775  0 /*atTimeCode (0/15)*/,
18776  0 /*deltaMinutes*/,
18777  0 /*letterIndex ("")*/,
18778  },
18779  // Rule Palestine 2011 only - Apr 1 0:01 1:00 S
18780  {
18781  2011 /*fromYear*/,
18782  2011 /*toYear*/,
18783  4 /*inMonth*/,
18784  0 /*onDayOfWeek*/,
18785  1 /*onDayOfMonth*/,
18786  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18787  4 /*atTimeCode (60/15)*/,
18788  60 /*deltaMinutes*/,
18789  25 /*letterIndex ("S")*/,
18790  },
18791  // Rule Palestine 2011 only - Aug 1 0:00 0 -
18792  {
18793  2011 /*fromYear*/,
18794  2011 /*toYear*/,
18795  8 /*inMonth*/,
18796  0 /*onDayOfWeek*/,
18797  1 /*onDayOfMonth*/,
18798  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18799  0 /*atTimeCode (0/15)*/,
18800  0 /*deltaMinutes*/,
18801  0 /*letterIndex ("")*/,
18802  },
18803  // Rule Palestine 2011 only - Aug 30 0:00 1:00 S
18804  {
18805  2011 /*fromYear*/,
18806  2011 /*toYear*/,
18807  8 /*inMonth*/,
18808  0 /*onDayOfWeek*/,
18809  30 /*onDayOfMonth*/,
18810  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18811  0 /*atTimeCode (0/15)*/,
18812  60 /*deltaMinutes*/,
18813  25 /*letterIndex ("S")*/,
18814  },
18815  // Rule Palestine 2011 only - Sep 30 0:00 0 -
18816  {
18817  2011 /*fromYear*/,
18818  2011 /*toYear*/,
18819  9 /*inMonth*/,
18820  0 /*onDayOfWeek*/,
18821  30 /*onDayOfMonth*/,
18822  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18823  0 /*atTimeCode (0/15)*/,
18824  0 /*deltaMinutes*/,
18825  0 /*letterIndex ("")*/,
18826  },
18827  // Rule Palestine 2012 2014 - Mar lastThu 24:00 1:00 S
18828  {
18829  2012 /*fromYear*/,
18830  2014 /*toYear*/,
18831  3 /*inMonth*/,
18832  4 /*onDayOfWeek*/,
18833  0 /*onDayOfMonth*/,
18834  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18835  5760 /*atTimeCode (86400/15)*/,
18836  60 /*deltaMinutes*/,
18837  25 /*letterIndex ("S")*/,
18838  },
18839  // Rule Palestine 2012 only - Sep 21 1:00 0 -
18840  {
18841  2012 /*fromYear*/,
18842  2012 /*toYear*/,
18843  9 /*inMonth*/,
18844  0 /*onDayOfWeek*/,
18845  21 /*onDayOfMonth*/,
18846  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18847  240 /*atTimeCode (3600/15)*/,
18848  0 /*deltaMinutes*/,
18849  0 /*letterIndex ("")*/,
18850  },
18851  // Rule Palestine 2013 only - Sep 27 0:00 0 -
18852  {
18853  2013 /*fromYear*/,
18854  2013 /*toYear*/,
18855  9 /*inMonth*/,
18856  0 /*onDayOfWeek*/,
18857  27 /*onDayOfMonth*/,
18858  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18859  0 /*atTimeCode (0/15)*/,
18860  0 /*deltaMinutes*/,
18861  0 /*letterIndex ("")*/,
18862  },
18863  // Rule Palestine 2014 only - Oct 24 0:00 0 -
18864  {
18865  2014 /*fromYear*/,
18866  2014 /*toYear*/,
18867  10 /*inMonth*/,
18868  0 /*onDayOfWeek*/,
18869  24 /*onDayOfMonth*/,
18870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18871  0 /*atTimeCode (0/15)*/,
18872  0 /*deltaMinutes*/,
18873  0 /*letterIndex ("")*/,
18874  },
18875  // Rule Palestine 2015 only - Mar 28 0:00 1:00 S
18876  {
18877  2015 /*fromYear*/,
18878  2015 /*toYear*/,
18879  3 /*inMonth*/,
18880  0 /*onDayOfWeek*/,
18881  28 /*onDayOfMonth*/,
18882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18883  0 /*atTimeCode (0/15)*/,
18884  60 /*deltaMinutes*/,
18885  25 /*letterIndex ("S")*/,
18886  },
18887  // Rule Palestine 2015 only - Oct 23 1:00 0 -
18888  {
18889  2015 /*fromYear*/,
18890  2015 /*toYear*/,
18891  10 /*inMonth*/,
18892  0 /*onDayOfWeek*/,
18893  23 /*onDayOfMonth*/,
18894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18895  240 /*atTimeCode (3600/15)*/,
18896  0 /*deltaMinutes*/,
18897  0 /*letterIndex ("")*/,
18898  },
18899  // Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S
18900  {
18901  2016 /*fromYear*/,
18902  2018 /*toYear*/,
18903  3 /*inMonth*/,
18904  6 /*onDayOfWeek*/,
18905  -30 /*onDayOfMonth*/,
18906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18907  240 /*atTimeCode (3600/15)*/,
18908  60 /*deltaMinutes*/,
18909  25 /*letterIndex ("S")*/,
18910  },
18911  // Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 -
18912  {
18913  2016 /*fromYear*/,
18914  2018 /*toYear*/,
18915  10 /*inMonth*/,
18916  6 /*onDayOfWeek*/,
18917  -30 /*onDayOfMonth*/,
18918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18919  240 /*atTimeCode (3600/15)*/,
18920  0 /*deltaMinutes*/,
18921  0 /*letterIndex ("")*/,
18922  },
18923  // Rule Palestine 2019 only - Mar 29 0:00 1:00 S
18924  {
18925  2019 /*fromYear*/,
18926  2019 /*toYear*/,
18927  3 /*inMonth*/,
18928  0 /*onDayOfWeek*/,
18929  29 /*onDayOfMonth*/,
18930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18931  0 /*atTimeCode (0/15)*/,
18932  60 /*deltaMinutes*/,
18933  25 /*letterIndex ("S")*/,
18934  },
18935  // Rule Palestine 2019 only - Oct Sat<=30 0:00 0 -
18936  {
18937  2019 /*fromYear*/,
18938  2019 /*toYear*/,
18939  10 /*inMonth*/,
18940  6 /*onDayOfWeek*/,
18941  -30 /*onDayOfMonth*/,
18942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18943  0 /*atTimeCode (0/15)*/,
18944  0 /*deltaMinutes*/,
18945  0 /*letterIndex ("")*/,
18946  },
18947  // Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
18948  {
18949  2020 /*fromYear*/,
18950  2021 /*toYear*/,
18951  3 /*inMonth*/,
18952  6 /*onDayOfWeek*/,
18953  -30 /*onDayOfMonth*/,
18954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18955  0 /*atTimeCode (0/15)*/,
18956  60 /*deltaMinutes*/,
18957  25 /*letterIndex ("S")*/,
18958  },
18959  // Rule Palestine 2020 only - Oct 24 1:00 0 -
18960  {
18961  2020 /*fromYear*/,
18962  2020 /*toYear*/,
18963  10 /*inMonth*/,
18964  0 /*onDayOfWeek*/,
18965  24 /*onDayOfMonth*/,
18966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18967  240 /*atTimeCode (3600/15)*/,
18968  0 /*deltaMinutes*/,
18969  0 /*letterIndex ("")*/,
18970  },
18971  // Rule Palestine 2021 only - Oct 29 1:00 0 -
18972  {
18973  2021 /*fromYear*/,
18974  2021 /*toYear*/,
18975  10 /*inMonth*/,
18976  0 /*onDayOfWeek*/,
18977  29 /*onDayOfMonth*/,
18978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18979  240 /*atTimeCode (3600/15)*/,
18980  0 /*deltaMinutes*/,
18981  0 /*letterIndex ("")*/,
18982  },
18983  // Rule Palestine 2022 only - Mar 27 0:00 1:00 S
18984  {
18985  2022 /*fromYear*/,
18986  2022 /*toYear*/,
18987  3 /*inMonth*/,
18988  0 /*onDayOfWeek*/,
18989  27 /*onDayOfMonth*/,
18990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
18991  0 /*atTimeCode (0/15)*/,
18992  60 /*deltaMinutes*/,
18993  25 /*letterIndex ("S")*/,
18994  },
18995  // Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 -
18996  {
18997  2022 /*fromYear*/,
18998  2035 /*toYear*/,
18999  10 /*inMonth*/,
19000  6 /*onDayOfWeek*/,
19001  -30 /*onDayOfMonth*/,
19002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19003  480 /*atTimeCode (7200/15)*/,
19004  0 /*deltaMinutes*/,
19005  0 /*letterIndex ("")*/,
19006  },
19007  // Rule Palestine 2023 only - Apr 29 2:00 1:00 S
19008  {
19009  2023 /*fromYear*/,
19010  2023 /*toYear*/,
19011  4 /*inMonth*/,
19012  0 /*onDayOfWeek*/,
19013  29 /*onDayOfMonth*/,
19014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19015  480 /*atTimeCode (7200/15)*/,
19016  60 /*deltaMinutes*/,
19017  25 /*letterIndex ("S")*/,
19018  },
19019  // Rule Palestine 2024 only - Apr 20 2:00 1:00 S
19020  {
19021  2024 /*fromYear*/,
19022  2024 /*toYear*/,
19023  4 /*inMonth*/,
19024  0 /*onDayOfWeek*/,
19025  20 /*onDayOfMonth*/,
19026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19027  480 /*atTimeCode (7200/15)*/,
19028  60 /*deltaMinutes*/,
19029  25 /*letterIndex ("S")*/,
19030  },
19031  // Rule Palestine 2025 only - Apr 12 2:00 1:00 S
19032  {
19033  2025 /*fromYear*/,
19034  2025 /*toYear*/,
19035  4 /*inMonth*/,
19036  0 /*onDayOfWeek*/,
19037  12 /*onDayOfMonth*/,
19038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19039  480 /*atTimeCode (7200/15)*/,
19040  60 /*deltaMinutes*/,
19041  25 /*letterIndex ("S")*/,
19042  },
19043  // Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S
19044  {
19045  2026 /*fromYear*/,
19046  2054 /*toYear*/,
19047  3 /*inMonth*/,
19048  6 /*onDayOfWeek*/,
19049  -30 /*onDayOfMonth*/,
19050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19051  480 /*atTimeCode (7200/15)*/,
19052  60 /*deltaMinutes*/,
19053  25 /*letterIndex ("S")*/,
19054  },
19055  // Rule Palestine 2036 only - Oct 18 2:00 0 -
19056  {
19057  2036 /*fromYear*/,
19058  2036 /*toYear*/,
19059  10 /*inMonth*/,
19060  0 /*onDayOfWeek*/,
19061  18 /*onDayOfMonth*/,
19062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19063  480 /*atTimeCode (7200/15)*/,
19064  0 /*deltaMinutes*/,
19065  0 /*letterIndex ("")*/,
19066  },
19067  // Rule Palestine 2037 only - Oct 10 2:00 0 -
19068  {
19069  2037 /*fromYear*/,
19070  2037 /*toYear*/,
19071  10 /*inMonth*/,
19072  0 /*onDayOfWeek*/,
19073  10 /*onDayOfMonth*/,
19074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19075  480 /*atTimeCode (7200/15)*/,
19076  0 /*deltaMinutes*/,
19077  0 /*letterIndex ("")*/,
19078  },
19079  // Rule Palestine 2038 only - Sep 25 2:00 0 -
19080  {
19081  2038 /*fromYear*/,
19082  2038 /*toYear*/,
19083  9 /*inMonth*/,
19084  0 /*onDayOfWeek*/,
19085  25 /*onDayOfMonth*/,
19086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19087  480 /*atTimeCode (7200/15)*/,
19088  0 /*deltaMinutes*/,
19089  0 /*letterIndex ("")*/,
19090  },
19091  // Rule Palestine 2039 only - Sep 17 2:00 0 -
19092  {
19093  2039 /*fromYear*/,
19094  2039 /*toYear*/,
19095  9 /*inMonth*/,
19096  0 /*onDayOfWeek*/,
19097  17 /*onDayOfMonth*/,
19098  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19099  480 /*atTimeCode (7200/15)*/,
19100  0 /*deltaMinutes*/,
19101  0 /*letterIndex ("")*/,
19102  },
19103  // Rule Palestine 2040 only - Sep 1 2:00 0 -
19104  {
19105  2040 /*fromYear*/,
19106  2040 /*toYear*/,
19107  9 /*inMonth*/,
19108  0 /*onDayOfWeek*/,
19109  1 /*onDayOfMonth*/,
19110  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19111  480 /*atTimeCode (7200/15)*/,
19112  0 /*deltaMinutes*/,
19113  0 /*letterIndex ("")*/,
19114  },
19115  // Rule Palestine 2040 only - Oct 20 2:00 1:00 S
19116  {
19117  2040 /*fromYear*/,
19118  2040 /*toYear*/,
19119  10 /*inMonth*/,
19120  0 /*onDayOfWeek*/,
19121  20 /*onDayOfMonth*/,
19122  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19123  480 /*atTimeCode (7200/15)*/,
19124  60 /*deltaMinutes*/,
19125  25 /*letterIndex ("S")*/,
19126  },
19127  // Rule Palestine 2040 2067 - Oct Sat<=30 2:00 0 -
19128  {
19129  2040 /*fromYear*/,
19130  2067 /*toYear*/,
19131  10 /*inMonth*/,
19132  6 /*onDayOfWeek*/,
19133  -30 /*onDayOfMonth*/,
19134  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19135  480 /*atTimeCode (7200/15)*/,
19136  0 /*deltaMinutes*/,
19137  0 /*letterIndex ("")*/,
19138  },
19139  // Rule Palestine 2041 only - Aug 24 2:00 0 -
19140  {
19141  2041 /*fromYear*/,
19142  2041 /*toYear*/,
19143  8 /*inMonth*/,
19144  0 /*onDayOfWeek*/,
19145  24 /*onDayOfMonth*/,
19146  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19147  480 /*atTimeCode (7200/15)*/,
19148  0 /*deltaMinutes*/,
19149  0 /*letterIndex ("")*/,
19150  },
19151  // Rule Palestine 2041 only - Oct 5 2:00 1:00 S
19152  {
19153  2041 /*fromYear*/,
19154  2041 /*toYear*/,
19155  10 /*inMonth*/,
19156  0 /*onDayOfWeek*/,
19157  5 /*onDayOfMonth*/,
19158  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19159  480 /*atTimeCode (7200/15)*/,
19160  60 /*deltaMinutes*/,
19161  25 /*letterIndex ("S")*/,
19162  },
19163  // Rule Palestine 2042 only - Aug 16 2:00 0 -
19164  {
19165  2042 /*fromYear*/,
19166  2042 /*toYear*/,
19167  8 /*inMonth*/,
19168  0 /*onDayOfWeek*/,
19169  16 /*onDayOfMonth*/,
19170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19171  480 /*atTimeCode (7200/15)*/,
19172  0 /*deltaMinutes*/,
19173  0 /*letterIndex ("")*/,
19174  },
19175  // Rule Palestine 2042 only - Sep 27 2:00 1:00 S
19176  {
19177  2042 /*fromYear*/,
19178  2042 /*toYear*/,
19179  9 /*inMonth*/,
19180  0 /*onDayOfWeek*/,
19181  27 /*onDayOfMonth*/,
19182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19183  480 /*atTimeCode (7200/15)*/,
19184  60 /*deltaMinutes*/,
19185  25 /*letterIndex ("S")*/,
19186  },
19187  // Rule Palestine 2043 only - Aug 1 2:00 0 -
19188  {
19189  2043 /*fromYear*/,
19190  2043 /*toYear*/,
19191  8 /*inMonth*/,
19192  0 /*onDayOfWeek*/,
19193  1 /*onDayOfMonth*/,
19194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19195  480 /*atTimeCode (7200/15)*/,
19196  0 /*deltaMinutes*/,
19197  0 /*letterIndex ("")*/,
19198  },
19199  // Rule Palestine 2043 only - Sep 19 2:00 1:00 S
19200  {
19201  2043 /*fromYear*/,
19202  2043 /*toYear*/,
19203  9 /*inMonth*/,
19204  0 /*onDayOfWeek*/,
19205  19 /*onDayOfMonth*/,
19206  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19207  480 /*atTimeCode (7200/15)*/,
19208  60 /*deltaMinutes*/,
19209  25 /*letterIndex ("S")*/,
19210  },
19211  // Rule Palestine 2044 only - Jul 23 2:00 0 -
19212  {
19213  2044 /*fromYear*/,
19214  2044 /*toYear*/,
19215  7 /*inMonth*/,
19216  0 /*onDayOfWeek*/,
19217  23 /*onDayOfMonth*/,
19218  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19219  480 /*atTimeCode (7200/15)*/,
19220  0 /*deltaMinutes*/,
19221  0 /*letterIndex ("")*/,
19222  },
19223  // Rule Palestine 2044 only - Sep 3 2:00 1:00 S
19224  {
19225  2044 /*fromYear*/,
19226  2044 /*toYear*/,
19227  9 /*inMonth*/,
19228  0 /*onDayOfWeek*/,
19229  3 /*onDayOfMonth*/,
19230  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19231  480 /*atTimeCode (7200/15)*/,
19232  60 /*deltaMinutes*/,
19233  25 /*letterIndex ("S")*/,
19234  },
19235  // Rule Palestine 2045 only - Jul 15 2:00 0 -
19236  {
19237  2045 /*fromYear*/,
19238  2045 /*toYear*/,
19239  7 /*inMonth*/,
19240  0 /*onDayOfWeek*/,
19241  15 /*onDayOfMonth*/,
19242  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19243  480 /*atTimeCode (7200/15)*/,
19244  0 /*deltaMinutes*/,
19245  0 /*letterIndex ("")*/,
19246  },
19247  // Rule Palestine 2045 only - Aug 26 2:00 1:00 S
19248  {
19249  2045 /*fromYear*/,
19250  2045 /*toYear*/,
19251  8 /*inMonth*/,
19252  0 /*onDayOfWeek*/,
19253  26 /*onDayOfMonth*/,
19254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19255  480 /*atTimeCode (7200/15)*/,
19256  60 /*deltaMinutes*/,
19257  25 /*letterIndex ("S")*/,
19258  },
19259  // Rule Palestine 2046 only - Jun 30 2:00 0 -
19260  {
19261  2046 /*fromYear*/,
19262  2046 /*toYear*/,
19263  6 /*inMonth*/,
19264  0 /*onDayOfWeek*/,
19265  30 /*onDayOfMonth*/,
19266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19267  480 /*atTimeCode (7200/15)*/,
19268  0 /*deltaMinutes*/,
19269  0 /*letterIndex ("")*/,
19270  },
19271  // Rule Palestine 2046 only - Aug 18 2:00 1:00 S
19272  {
19273  2046 /*fromYear*/,
19274  2046 /*toYear*/,
19275  8 /*inMonth*/,
19276  0 /*onDayOfWeek*/,
19277  18 /*onDayOfMonth*/,
19278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19279  480 /*atTimeCode (7200/15)*/,
19280  60 /*deltaMinutes*/,
19281  25 /*letterIndex ("S")*/,
19282  },
19283  // Rule Palestine 2047 only - Jun 22 2:00 0 -
19284  {
19285  2047 /*fromYear*/,
19286  2047 /*toYear*/,
19287  6 /*inMonth*/,
19288  0 /*onDayOfWeek*/,
19289  22 /*onDayOfMonth*/,
19290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19291  480 /*atTimeCode (7200/15)*/,
19292  0 /*deltaMinutes*/,
19293  0 /*letterIndex ("")*/,
19294  },
19295  // Rule Palestine 2047 only - Aug 3 2:00 1:00 S
19296  {
19297  2047 /*fromYear*/,
19298  2047 /*toYear*/,
19299  8 /*inMonth*/,
19300  0 /*onDayOfWeek*/,
19301  3 /*onDayOfMonth*/,
19302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19303  480 /*atTimeCode (7200/15)*/,
19304  60 /*deltaMinutes*/,
19305  25 /*letterIndex ("S")*/,
19306  },
19307  // Rule Palestine 2048 only - Jun 6 2:00 0 -
19308  {
19309  2048 /*fromYear*/,
19310  2048 /*toYear*/,
19311  6 /*inMonth*/,
19312  0 /*onDayOfWeek*/,
19313  6 /*onDayOfMonth*/,
19314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19315  480 /*atTimeCode (7200/15)*/,
19316  0 /*deltaMinutes*/,
19317  0 /*letterIndex ("")*/,
19318  },
19319  // Rule Palestine 2048 only - Jul 25 2:00 1:00 S
19320  {
19321  2048 /*fromYear*/,
19322  2048 /*toYear*/,
19323  7 /*inMonth*/,
19324  0 /*onDayOfWeek*/,
19325  25 /*onDayOfMonth*/,
19326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19327  480 /*atTimeCode (7200/15)*/,
19328  60 /*deltaMinutes*/,
19329  25 /*letterIndex ("S")*/,
19330  },
19331  // Rule Palestine 2049 only - May 29 2:00 0 -
19332  {
19333  2049 /*fromYear*/,
19334  2049 /*toYear*/,
19335  5 /*inMonth*/,
19336  0 /*onDayOfWeek*/,
19337  29 /*onDayOfMonth*/,
19338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19339  480 /*atTimeCode (7200/15)*/,
19340  0 /*deltaMinutes*/,
19341  0 /*letterIndex ("")*/,
19342  },
19343  // Rule Palestine 2049 only - Jul 10 2:00 1:00 S
19344  {
19345  2049 /*fromYear*/,
19346  2049 /*toYear*/,
19347  7 /*inMonth*/,
19348  0 /*onDayOfWeek*/,
19349  10 /*onDayOfMonth*/,
19350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19351  480 /*atTimeCode (7200/15)*/,
19352  60 /*deltaMinutes*/,
19353  25 /*letterIndex ("S")*/,
19354  },
19355  // Rule Palestine 2050 only - May 21 2:00 0 -
19356  {
19357  2050 /*fromYear*/,
19358  2050 /*toYear*/,
19359  5 /*inMonth*/,
19360  0 /*onDayOfWeek*/,
19361  21 /*onDayOfMonth*/,
19362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19363  480 /*atTimeCode (7200/15)*/,
19364  0 /*deltaMinutes*/,
19365  0 /*letterIndex ("")*/,
19366  },
19367  // Rule Palestine 2050 only - Jul 2 2:00 1:00 S
19368  {
19369  2050 /*fromYear*/,
19370  2050 /*toYear*/,
19371  7 /*inMonth*/,
19372  0 /*onDayOfWeek*/,
19373  2 /*onDayOfMonth*/,
19374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19375  480 /*atTimeCode (7200/15)*/,
19376  60 /*deltaMinutes*/,
19377  25 /*letterIndex ("S")*/,
19378  },
19379  // Rule Palestine 2051 only - May 6 2:00 0 -
19380  {
19381  2051 /*fromYear*/,
19382  2051 /*toYear*/,
19383  5 /*inMonth*/,
19384  0 /*onDayOfWeek*/,
19385  6 /*onDayOfMonth*/,
19386  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19387  480 /*atTimeCode (7200/15)*/,
19388  0 /*deltaMinutes*/,
19389  0 /*letterIndex ("")*/,
19390  },
19391  // Rule Palestine 2051 only - Jun 24 2:00 1:00 S
19392  {
19393  2051 /*fromYear*/,
19394  2051 /*toYear*/,
19395  6 /*inMonth*/,
19396  0 /*onDayOfWeek*/,
19397  24 /*onDayOfMonth*/,
19398  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19399  480 /*atTimeCode (7200/15)*/,
19400  60 /*deltaMinutes*/,
19401  25 /*letterIndex ("S")*/,
19402  },
19403  // Rule Palestine 2052 only - Apr 27 2:00 0 -
19404  {
19405  2052 /*fromYear*/,
19406  2052 /*toYear*/,
19407  4 /*inMonth*/,
19408  0 /*onDayOfWeek*/,
19409  27 /*onDayOfMonth*/,
19410  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19411  480 /*atTimeCode (7200/15)*/,
19412  0 /*deltaMinutes*/,
19413  0 /*letterIndex ("")*/,
19414  },
19415  // Rule Palestine 2052 only - Jun 8 2:00 1:00 S
19416  {
19417  2052 /*fromYear*/,
19418  2052 /*toYear*/,
19419  6 /*inMonth*/,
19420  0 /*onDayOfWeek*/,
19421  8 /*onDayOfMonth*/,
19422  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19423  480 /*atTimeCode (7200/15)*/,
19424  60 /*deltaMinutes*/,
19425  25 /*letterIndex ("S")*/,
19426  },
19427  // Rule Palestine 2053 only - Apr 12 2:00 0 -
19428  {
19429  2053 /*fromYear*/,
19430  2053 /*toYear*/,
19431  4 /*inMonth*/,
19432  0 /*onDayOfWeek*/,
19433  12 /*onDayOfMonth*/,
19434  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19435  480 /*atTimeCode (7200/15)*/,
19436  0 /*deltaMinutes*/,
19437  0 /*letterIndex ("")*/,
19438  },
19439  // Rule Palestine 2053 only - May 31 2:00 1:00 S
19440  {
19441  2053 /*fromYear*/,
19442  2053 /*toYear*/,
19443  5 /*inMonth*/,
19444  0 /*onDayOfWeek*/,
19445  31 /*onDayOfMonth*/,
19446  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19447  480 /*atTimeCode (7200/15)*/,
19448  60 /*deltaMinutes*/,
19449  25 /*letterIndex ("S")*/,
19450  },
19451  // Rule Palestine 2054 only - Apr 4 2:00 0 -
19452  {
19453  2054 /*fromYear*/,
19454  2054 /*toYear*/,
19455  4 /*inMonth*/,
19456  0 /*onDayOfWeek*/,
19457  4 /*onDayOfMonth*/,
19458  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19459  480 /*atTimeCode (7200/15)*/,
19460  0 /*deltaMinutes*/,
19461  0 /*letterIndex ("")*/,
19462  },
19463  // Rule Palestine 2054 only - May 23 2:00 1:00 S
19464  {
19465  2054 /*fromYear*/,
19466  2054 /*toYear*/,
19467  5 /*inMonth*/,
19468  0 /*onDayOfWeek*/,
19469  23 /*onDayOfMonth*/,
19470  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19471  480 /*atTimeCode (7200/15)*/,
19472  60 /*deltaMinutes*/,
19473  25 /*letterIndex ("S")*/,
19474  },
19475  // Rule Palestine 2055 only - May 8 2:00 1:00 S
19476  {
19477  2055 /*fromYear*/,
19478  2055 /*toYear*/,
19479  5 /*inMonth*/,
19480  0 /*onDayOfWeek*/,
19481  8 /*onDayOfMonth*/,
19482  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19483  480 /*atTimeCode (7200/15)*/,
19484  60 /*deltaMinutes*/,
19485  25 /*letterIndex ("S")*/,
19486  },
19487  // Rule Palestine 2056 only - Apr 29 2:00 1:00 S
19488  {
19489  2056 /*fromYear*/,
19490  2056 /*toYear*/,
19491  4 /*inMonth*/,
19492  0 /*onDayOfWeek*/,
19493  29 /*onDayOfMonth*/,
19494  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19495  480 /*atTimeCode (7200/15)*/,
19496  60 /*deltaMinutes*/,
19497  25 /*letterIndex ("S")*/,
19498  },
19499  // Rule Palestine 2057 only - Apr 14 2:00 1:00 S
19500  {
19501  2057 /*fromYear*/,
19502  2057 /*toYear*/,
19503  4 /*inMonth*/,
19504  0 /*onDayOfWeek*/,
19505  14 /*onDayOfMonth*/,
19506  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19507  480 /*atTimeCode (7200/15)*/,
19508  60 /*deltaMinutes*/,
19509  25 /*letterIndex ("S")*/,
19510  },
19511  // Rule Palestine 2058 only - Apr 6 2:00 1:00 S
19512  {
19513  2058 /*fromYear*/,
19514  2058 /*toYear*/,
19515  4 /*inMonth*/,
19516  0 /*onDayOfWeek*/,
19517  6 /*onDayOfMonth*/,
19518  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19519  480 /*atTimeCode (7200/15)*/,
19520  60 /*deltaMinutes*/,
19521  25 /*letterIndex ("S")*/,
19522  },
19523  // Rule Palestine 2059 max - Mar Sat<=30 2:00 1:00 S
19524  {
19525  2059 /*fromYear*/,
19526  32766 /*toYear*/,
19527  3 /*inMonth*/,
19528  6 /*onDayOfWeek*/,
19529  -30 /*onDayOfMonth*/,
19530  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19531  480 /*atTimeCode (7200/15)*/,
19532  60 /*deltaMinutes*/,
19533  25 /*letterIndex ("S")*/,
19534  },
19535  // Rule Palestine 2068 only - Oct 20 2:00 0 -
19536  {
19537  2068 /*fromYear*/,
19538  2068 /*toYear*/,
19539  10 /*inMonth*/,
19540  0 /*onDayOfWeek*/,
19541  20 /*onDayOfMonth*/,
19542  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19543  480 /*atTimeCode (7200/15)*/,
19544  0 /*deltaMinutes*/,
19545  0 /*letterIndex ("")*/,
19546  },
19547  // Rule Palestine 2069 only - Oct 12 2:00 0 -
19548  {
19549  2069 /*fromYear*/,
19550  2069 /*toYear*/,
19551  10 /*inMonth*/,
19552  0 /*onDayOfWeek*/,
19553  12 /*onDayOfMonth*/,
19554  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19555  480 /*atTimeCode (7200/15)*/,
19556  0 /*deltaMinutes*/,
19557  0 /*letterIndex ("")*/,
19558  },
19559  // Rule Palestine 2070 only - Oct 4 2:00 0 -
19560  {
19561  2070 /*fromYear*/,
19562  2070 /*toYear*/,
19563  10 /*inMonth*/,
19564  0 /*onDayOfWeek*/,
19565  4 /*onDayOfMonth*/,
19566  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19567  480 /*atTimeCode (7200/15)*/,
19568  0 /*deltaMinutes*/,
19569  0 /*letterIndex ("")*/,
19570  },
19571  // Rule Palestine 2071 only - Sep 19 2:00 0 -
19572  {
19573  2071 /*fromYear*/,
19574  2071 /*toYear*/,
19575  9 /*inMonth*/,
19576  0 /*onDayOfWeek*/,
19577  19 /*onDayOfMonth*/,
19578  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19579  480 /*atTimeCode (7200/15)*/,
19580  0 /*deltaMinutes*/,
19581  0 /*letterIndex ("")*/,
19582  },
19583  // Rule Palestine 2072 only - Sep 10 2:00 0 -
19584  {
19585  2072 /*fromYear*/,
19586  2072 /*toYear*/,
19587  9 /*inMonth*/,
19588  0 /*onDayOfWeek*/,
19589  10 /*onDayOfMonth*/,
19590  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19591  480 /*atTimeCode (7200/15)*/,
19592  0 /*deltaMinutes*/,
19593  0 /*letterIndex ("")*/,
19594  },
19595  // Rule Palestine 2072 only - Oct 22 2:00 1:00 S
19596  {
19597  2072 /*fromYear*/,
19598  2072 /*toYear*/,
19599  10 /*inMonth*/,
19600  0 /*onDayOfWeek*/,
19601  22 /*onDayOfMonth*/,
19602  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19603  480 /*atTimeCode (7200/15)*/,
19604  60 /*deltaMinutes*/,
19605  25 /*letterIndex ("S")*/,
19606  },
19607  // Rule Palestine 2072 max - Oct Sat<=30 2:00 0 -
19608  {
19609  2072 /*fromYear*/,
19610  32766 /*toYear*/,
19611  10 /*inMonth*/,
19612  6 /*onDayOfWeek*/,
19613  -30 /*onDayOfMonth*/,
19614  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19615  480 /*atTimeCode (7200/15)*/,
19616  0 /*deltaMinutes*/,
19617  0 /*letterIndex ("")*/,
19618  },
19619  // Rule Palestine 2073 only - Sep 2 2:00 0 -
19620  {
19621  2073 /*fromYear*/,
19622  2073 /*toYear*/,
19623  9 /*inMonth*/,
19624  0 /*onDayOfWeek*/,
19625  2 /*onDayOfMonth*/,
19626  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19627  480 /*atTimeCode (7200/15)*/,
19628  0 /*deltaMinutes*/,
19629  0 /*letterIndex ("")*/,
19630  },
19631  // Rule Palestine 2073 only - Oct 14 2:00 1:00 S
19632  {
19633  2073 /*fromYear*/,
19634  2073 /*toYear*/,
19635  10 /*inMonth*/,
19636  0 /*onDayOfWeek*/,
19637  14 /*onDayOfMonth*/,
19638  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19639  480 /*atTimeCode (7200/15)*/,
19640  60 /*deltaMinutes*/,
19641  25 /*letterIndex ("S")*/,
19642  },
19643  // Rule Palestine 2074 only - Aug 18 2:00 0 -
19644  {
19645  2074 /*fromYear*/,
19646  2074 /*toYear*/,
19647  8 /*inMonth*/,
19648  0 /*onDayOfWeek*/,
19649  18 /*onDayOfMonth*/,
19650  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19651  480 /*atTimeCode (7200/15)*/,
19652  0 /*deltaMinutes*/,
19653  0 /*letterIndex ("")*/,
19654  },
19655  // Rule Palestine 2074 only - Oct 6 2:00 1:00 S
19656  {
19657  2074 /*fromYear*/,
19658  2074 /*toYear*/,
19659  10 /*inMonth*/,
19660  0 /*onDayOfWeek*/,
19661  6 /*onDayOfMonth*/,
19662  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19663  480 /*atTimeCode (7200/15)*/,
19664  60 /*deltaMinutes*/,
19665  25 /*letterIndex ("S")*/,
19666  },
19667  // Rule Palestine 2075 only - Aug 10 2:00 0 -
19668  {
19669  2075 /*fromYear*/,
19670  2075 /*toYear*/,
19671  8 /*inMonth*/,
19672  0 /*onDayOfWeek*/,
19673  10 /*onDayOfMonth*/,
19674  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19675  480 /*atTimeCode (7200/15)*/,
19676  0 /*deltaMinutes*/,
19677  0 /*letterIndex ("")*/,
19678  },
19679  // Rule Palestine 2075 only - Sep 21 2:00 1:00 S
19680  {
19681  2075 /*fromYear*/,
19682  2075 /*toYear*/,
19683  9 /*inMonth*/,
19684  0 /*onDayOfWeek*/,
19685  21 /*onDayOfMonth*/,
19686  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19687  480 /*atTimeCode (7200/15)*/,
19688  60 /*deltaMinutes*/,
19689  25 /*letterIndex ("S")*/,
19690  },
19691  // Rule Palestine 2076 only - Jul 25 2:00 0 -
19692  {
19693  2076 /*fromYear*/,
19694  2076 /*toYear*/,
19695  7 /*inMonth*/,
19696  0 /*onDayOfWeek*/,
19697  25 /*onDayOfMonth*/,
19698  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19699  480 /*atTimeCode (7200/15)*/,
19700  0 /*deltaMinutes*/,
19701  0 /*letterIndex ("")*/,
19702  },
19703  // Rule Palestine 2076 only - Sep 12 2:00 1:00 S
19704  {
19705  2076 /*fromYear*/,
19706  2076 /*toYear*/,
19707  9 /*inMonth*/,
19708  0 /*onDayOfWeek*/,
19709  12 /*onDayOfMonth*/,
19710  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19711  480 /*atTimeCode (7200/15)*/,
19712  60 /*deltaMinutes*/,
19713  25 /*letterIndex ("S")*/,
19714  },
19715  // Rule Palestine 2077 only - Jul 17 2:00 0 -
19716  {
19717  2077 /*fromYear*/,
19718  2077 /*toYear*/,
19719  7 /*inMonth*/,
19720  0 /*onDayOfWeek*/,
19721  17 /*onDayOfMonth*/,
19722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19723  480 /*atTimeCode (7200/15)*/,
19724  0 /*deltaMinutes*/,
19725  0 /*letterIndex ("")*/,
19726  },
19727  // Rule Palestine 2077 only - Sep 4 2:00 1:00 S
19728  {
19729  2077 /*fromYear*/,
19730  2077 /*toYear*/,
19731  9 /*inMonth*/,
19732  0 /*onDayOfWeek*/,
19733  4 /*onDayOfMonth*/,
19734  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19735  480 /*atTimeCode (7200/15)*/,
19736  60 /*deltaMinutes*/,
19737  25 /*letterIndex ("S")*/,
19738  },
19739  // Rule Palestine 2078 only - Jul 9 2:00 0 -
19740  {
19741  2078 /*fromYear*/,
19742  2078 /*toYear*/,
19743  7 /*inMonth*/,
19744  0 /*onDayOfWeek*/,
19745  9 /*onDayOfMonth*/,
19746  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19747  480 /*atTimeCode (7200/15)*/,
19748  0 /*deltaMinutes*/,
19749  0 /*letterIndex ("")*/,
19750  },
19751  // Rule Palestine 2078 only - Aug 20 2:00 1:00 S
19752  {
19753  2078 /*fromYear*/,
19754  2078 /*toYear*/,
19755  8 /*inMonth*/,
19756  0 /*onDayOfWeek*/,
19757  20 /*onDayOfMonth*/,
19758  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19759  480 /*atTimeCode (7200/15)*/,
19760  60 /*deltaMinutes*/,
19761  25 /*letterIndex ("S")*/,
19762  },
19763  // Rule Palestine 2079 only - Jun 24 2:00 0 -
19764  {
19765  2079 /*fromYear*/,
19766  2079 /*toYear*/,
19767  6 /*inMonth*/,
19768  0 /*onDayOfWeek*/,
19769  24 /*onDayOfMonth*/,
19770  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19771  480 /*atTimeCode (7200/15)*/,
19772  0 /*deltaMinutes*/,
19773  0 /*letterIndex ("")*/,
19774  },
19775  // Rule Palestine 2079 only - Aug 12 2:00 1:00 S
19776  {
19777  2079 /*fromYear*/,
19778  2079 /*toYear*/,
19779  8 /*inMonth*/,
19780  0 /*onDayOfWeek*/,
19781  12 /*onDayOfMonth*/,
19782  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19783  480 /*atTimeCode (7200/15)*/,
19784  60 /*deltaMinutes*/,
19785  25 /*letterIndex ("S")*/,
19786  },
19787  // Rule Palestine 2080 only - Jun 15 2:00 0 -
19788  {
19789  2080 /*fromYear*/,
19790  2080 /*toYear*/,
19791  6 /*inMonth*/,
19792  0 /*onDayOfWeek*/,
19793  15 /*onDayOfMonth*/,
19794  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19795  480 /*atTimeCode (7200/15)*/,
19796  0 /*deltaMinutes*/,
19797  0 /*letterIndex ("")*/,
19798  },
19799  // Rule Palestine 2080 only - Jul 27 2:00 1:00 S
19800  {
19801  2080 /*fromYear*/,
19802  2080 /*toYear*/,
19803  7 /*inMonth*/,
19804  0 /*onDayOfWeek*/,
19805  27 /*onDayOfMonth*/,
19806  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19807  480 /*atTimeCode (7200/15)*/,
19808  60 /*deltaMinutes*/,
19809  25 /*letterIndex ("S")*/,
19810  },
19811  // Rule Palestine 2081 only - Jun 7 2:00 0 -
19812  {
19813  2081 /*fromYear*/,
19814  2081 /*toYear*/,
19815  6 /*inMonth*/,
19816  0 /*onDayOfWeek*/,
19817  7 /*onDayOfMonth*/,
19818  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19819  480 /*atTimeCode (7200/15)*/,
19820  0 /*deltaMinutes*/,
19821  0 /*letterIndex ("")*/,
19822  },
19823  // Rule Palestine 2081 only - Jul 19 2:00 1:00 S
19824  {
19825  2081 /*fromYear*/,
19826  2081 /*toYear*/,
19827  7 /*inMonth*/,
19828  0 /*onDayOfWeek*/,
19829  19 /*onDayOfMonth*/,
19830  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19831  480 /*atTimeCode (7200/15)*/,
19832  60 /*deltaMinutes*/,
19833  25 /*letterIndex ("S")*/,
19834  },
19835  // Rule Palestine 2082 only - May 23 2:00 0 -
19836  {
19837  2082 /*fromYear*/,
19838  2082 /*toYear*/,
19839  5 /*inMonth*/,
19840  0 /*onDayOfWeek*/,
19841  23 /*onDayOfMonth*/,
19842  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19843  480 /*atTimeCode (7200/15)*/,
19844  0 /*deltaMinutes*/,
19845  0 /*letterIndex ("")*/,
19846  },
19847  // Rule Palestine 2082 only - Jul 11 2:00 1:00 S
19848  {
19849  2082 /*fromYear*/,
19850  2082 /*toYear*/,
19851  7 /*inMonth*/,
19852  0 /*onDayOfWeek*/,
19853  11 /*onDayOfMonth*/,
19854  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19855  480 /*atTimeCode (7200/15)*/,
19856  60 /*deltaMinutes*/,
19857  25 /*letterIndex ("S")*/,
19858  },
19859  // Rule Palestine 2083 only - May 15 2:00 0 -
19860  {
19861  2083 /*fromYear*/,
19862  2083 /*toYear*/,
19863  5 /*inMonth*/,
19864  0 /*onDayOfWeek*/,
19865  15 /*onDayOfMonth*/,
19866  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19867  480 /*atTimeCode (7200/15)*/,
19868  0 /*deltaMinutes*/,
19869  0 /*letterIndex ("")*/,
19870  },
19871  // Rule Palestine 2083 only - Jun 26 2:00 1:00 S
19872  {
19873  2083 /*fromYear*/,
19874  2083 /*toYear*/,
19875  6 /*inMonth*/,
19876  0 /*onDayOfWeek*/,
19877  26 /*onDayOfMonth*/,
19878  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19879  480 /*atTimeCode (7200/15)*/,
19880  60 /*deltaMinutes*/,
19881  25 /*letterIndex ("S")*/,
19882  },
19883  // Rule Palestine 2084 only - Apr 29 2:00 0 -
19884  {
19885  2084 /*fromYear*/,
19886  2084 /*toYear*/,
19887  4 /*inMonth*/,
19888  0 /*onDayOfWeek*/,
19889  29 /*onDayOfMonth*/,
19890  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19891  480 /*atTimeCode (7200/15)*/,
19892  0 /*deltaMinutes*/,
19893  0 /*letterIndex ("")*/,
19894  },
19895  // Rule Palestine 2084 only - Jun 17 2:00 1:00 S
19896  {
19897  2084 /*fromYear*/,
19898  2084 /*toYear*/,
19899  6 /*inMonth*/,
19900  0 /*onDayOfWeek*/,
19901  17 /*onDayOfMonth*/,
19902  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19903  480 /*atTimeCode (7200/15)*/,
19904  60 /*deltaMinutes*/,
19905  25 /*letterIndex ("S")*/,
19906  },
19907  // Rule Palestine 2085 only - Apr 21 2:00 0 -
19908  {
19909  2085 /*fromYear*/,
19910  2085 /*toYear*/,
19911  4 /*inMonth*/,
19912  0 /*onDayOfWeek*/,
19913  21 /*onDayOfMonth*/,
19914  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19915  480 /*atTimeCode (7200/15)*/,
19916  0 /*deltaMinutes*/,
19917  0 /*letterIndex ("")*/,
19918  },
19919  // Rule Palestine 2085 only - Jun 9 2:00 1:00 S
19920  {
19921  2085 /*fromYear*/,
19922  2085 /*toYear*/,
19923  6 /*inMonth*/,
19924  0 /*onDayOfWeek*/,
19925  9 /*onDayOfMonth*/,
19926  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19927  480 /*atTimeCode (7200/15)*/,
19928  60 /*deltaMinutes*/,
19929  25 /*letterIndex ("S")*/,
19930  },
19931  // Rule Palestine 2086 only - Apr 13 2:00 0 -
19932  {
19933  2086 /*fromYear*/,
19934  2086 /*toYear*/,
19935  4 /*inMonth*/,
19936  0 /*onDayOfWeek*/,
19937  13 /*onDayOfMonth*/,
19938  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19939  480 /*atTimeCode (7200/15)*/,
19940  0 /*deltaMinutes*/,
19941  0 /*letterIndex ("")*/,
19942  },
19943  // Rule Palestine 2086 only - May 25 2:00 1:00 S
19944  {
19945  2086 /*fromYear*/,
19946  2086 /*toYear*/,
19947  5 /*inMonth*/,
19948  0 /*onDayOfWeek*/,
19949  25 /*onDayOfMonth*/,
19950  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19951  480 /*atTimeCode (7200/15)*/,
19952  60 /*deltaMinutes*/,
19953  25 /*letterIndex ("S")*/,
19954  },
19955 
19956 };
19957 
19958 const complete::Info::ZonePolicy kZonePolicyPalestine ACE_TIME_PROGMEM = {
19959  kZoneRulesPalestine /*rules*/,
19960  111 /*numRules*/,
19961 };
19962 
19963 //---------------------------------------------------------------------------
19964 // Policy name: Para
19965 // Rules: 23
19966 //---------------------------------------------------------------------------
19967 
19968 static const complete::Info::ZoneRule kZoneRulesPara[] ACE_TIME_PROGMEM = {
19969  // Anchor: Rule Para 1975 1978 - Mar 1 0:00 0 -
19970  {
19971  -32767 /*fromYear*/,
19972  -32767 /*toYear*/,
19973  1 /*inMonth*/,
19974  0 /*onDayOfWeek*/,
19975  1 /*onDayOfMonth*/,
19976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19977  0 /*atTimeCode (0/15)*/,
19978  0 /*deltaMinutes*/,
19979  0 /*letterIndex ("")*/,
19980  },
19981  // Rule Para 1975 1988 - Oct 1 0:00 1:00 -
19982  {
19983  1975 /*fromYear*/,
19984  1988 /*toYear*/,
19985  10 /*inMonth*/,
19986  0 /*onDayOfWeek*/,
19987  1 /*onDayOfMonth*/,
19988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
19989  0 /*atTimeCode (0/15)*/,
19990  60 /*deltaMinutes*/,
19991  0 /*letterIndex ("")*/,
19992  },
19993  // Rule Para 1975 1978 - Mar 1 0:00 0 -
19994  {
19995  1975 /*fromYear*/,
19996  1978 /*toYear*/,
19997  3 /*inMonth*/,
19998  0 /*onDayOfWeek*/,
19999  1 /*onDayOfMonth*/,
20000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20001  0 /*atTimeCode (0/15)*/,
20002  0 /*deltaMinutes*/,
20003  0 /*letterIndex ("")*/,
20004  },
20005  // Rule Para 1979 1991 - Apr 1 0:00 0 -
20006  {
20007  1979 /*fromYear*/,
20008  1991 /*toYear*/,
20009  4 /*inMonth*/,
20010  0 /*onDayOfWeek*/,
20011  1 /*onDayOfMonth*/,
20012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20013  0 /*atTimeCode (0/15)*/,
20014  0 /*deltaMinutes*/,
20015  0 /*letterIndex ("")*/,
20016  },
20017  // Rule Para 1989 only - Oct 22 0:00 1:00 -
20018  {
20019  1989 /*fromYear*/,
20020  1989 /*toYear*/,
20021  10 /*inMonth*/,
20022  0 /*onDayOfWeek*/,
20023  22 /*onDayOfMonth*/,
20024  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20025  0 /*atTimeCode (0/15)*/,
20026  60 /*deltaMinutes*/,
20027  0 /*letterIndex ("")*/,
20028  },
20029  // Rule Para 1990 only - Oct 1 0:00 1:00 -
20030  {
20031  1990 /*fromYear*/,
20032  1990 /*toYear*/,
20033  10 /*inMonth*/,
20034  0 /*onDayOfWeek*/,
20035  1 /*onDayOfMonth*/,
20036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20037  0 /*atTimeCode (0/15)*/,
20038  60 /*deltaMinutes*/,
20039  0 /*letterIndex ("")*/,
20040  },
20041  // Rule Para 1991 only - Oct 6 0:00 1:00 -
20042  {
20043  1991 /*fromYear*/,
20044  1991 /*toYear*/,
20045  10 /*inMonth*/,
20046  0 /*onDayOfWeek*/,
20047  6 /*onDayOfMonth*/,
20048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20049  0 /*atTimeCode (0/15)*/,
20050  60 /*deltaMinutes*/,
20051  0 /*letterIndex ("")*/,
20052  },
20053  // Rule Para 1992 only - Mar 1 0:00 0 -
20054  {
20055  1992 /*fromYear*/,
20056  1992 /*toYear*/,
20057  3 /*inMonth*/,
20058  0 /*onDayOfWeek*/,
20059  1 /*onDayOfMonth*/,
20060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20061  0 /*atTimeCode (0/15)*/,
20062  0 /*deltaMinutes*/,
20063  0 /*letterIndex ("")*/,
20064  },
20065  // Rule Para 1992 only - Oct 5 0:00 1:00 -
20066  {
20067  1992 /*fromYear*/,
20068  1992 /*toYear*/,
20069  10 /*inMonth*/,
20070  0 /*onDayOfWeek*/,
20071  5 /*onDayOfMonth*/,
20072  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20073  0 /*atTimeCode (0/15)*/,
20074  60 /*deltaMinutes*/,
20075  0 /*letterIndex ("")*/,
20076  },
20077  // Rule Para 1993 only - Mar 31 0:00 0 -
20078  {
20079  1993 /*fromYear*/,
20080  1993 /*toYear*/,
20081  3 /*inMonth*/,
20082  0 /*onDayOfWeek*/,
20083  31 /*onDayOfMonth*/,
20084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20085  0 /*atTimeCode (0/15)*/,
20086  0 /*deltaMinutes*/,
20087  0 /*letterIndex ("")*/,
20088  },
20089  // Rule Para 1993 1995 - Oct 1 0:00 1:00 -
20090  {
20091  1993 /*fromYear*/,
20092  1995 /*toYear*/,
20093  10 /*inMonth*/,
20094  0 /*onDayOfWeek*/,
20095  1 /*onDayOfMonth*/,
20096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20097  0 /*atTimeCode (0/15)*/,
20098  60 /*deltaMinutes*/,
20099  0 /*letterIndex ("")*/,
20100  },
20101  // Rule Para 1994 1995 - Feb lastSun 0:00 0 -
20102  {
20103  1994 /*fromYear*/,
20104  1995 /*toYear*/,
20105  2 /*inMonth*/,
20106  7 /*onDayOfWeek*/,
20107  0 /*onDayOfMonth*/,
20108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20109  0 /*atTimeCode (0/15)*/,
20110  0 /*deltaMinutes*/,
20111  0 /*letterIndex ("")*/,
20112  },
20113  // Rule Para 1996 only - Mar 1 0:00 0 -
20114  {
20115  1996 /*fromYear*/,
20116  1996 /*toYear*/,
20117  3 /*inMonth*/,
20118  0 /*onDayOfWeek*/,
20119  1 /*onDayOfMonth*/,
20120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20121  0 /*atTimeCode (0/15)*/,
20122  0 /*deltaMinutes*/,
20123  0 /*letterIndex ("")*/,
20124  },
20125  // Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 -
20126  {
20127  1996 /*fromYear*/,
20128  2001 /*toYear*/,
20129  10 /*inMonth*/,
20130  7 /*onDayOfWeek*/,
20131  1 /*onDayOfMonth*/,
20132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20133  0 /*atTimeCode (0/15)*/,
20134  60 /*deltaMinutes*/,
20135  0 /*letterIndex ("")*/,
20136  },
20137  // Rule Para 1997 only - Feb lastSun 0:00 0 -
20138  {
20139  1997 /*fromYear*/,
20140  1997 /*toYear*/,
20141  2 /*inMonth*/,
20142  7 /*onDayOfWeek*/,
20143  0 /*onDayOfMonth*/,
20144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20145  0 /*atTimeCode (0/15)*/,
20146  0 /*deltaMinutes*/,
20147  0 /*letterIndex ("")*/,
20148  },
20149  // Rule Para 1998 2001 - Mar Sun>=1 0:00 0 -
20150  {
20151  1998 /*fromYear*/,
20152  2001 /*toYear*/,
20153  3 /*inMonth*/,
20154  7 /*onDayOfWeek*/,
20155  1 /*onDayOfMonth*/,
20156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20157  0 /*atTimeCode (0/15)*/,
20158  0 /*deltaMinutes*/,
20159  0 /*letterIndex ("")*/,
20160  },
20161  // Rule Para 2002 2004 - Apr Sun>=1 0:00 0 -
20162  {
20163  2002 /*fromYear*/,
20164  2004 /*toYear*/,
20165  4 /*inMonth*/,
20166  7 /*onDayOfWeek*/,
20167  1 /*onDayOfMonth*/,
20168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20169  0 /*atTimeCode (0/15)*/,
20170  0 /*deltaMinutes*/,
20171  0 /*letterIndex ("")*/,
20172  },
20173  // Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 -
20174  {
20175  2002 /*fromYear*/,
20176  2003 /*toYear*/,
20177  9 /*inMonth*/,
20178  7 /*onDayOfWeek*/,
20179  1 /*onDayOfMonth*/,
20180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20181  0 /*atTimeCode (0/15)*/,
20182  60 /*deltaMinutes*/,
20183  0 /*letterIndex ("")*/,
20184  },
20185  // Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 -
20186  {
20187  2004 /*fromYear*/,
20188  2009 /*toYear*/,
20189  10 /*inMonth*/,
20190  7 /*onDayOfWeek*/,
20191  15 /*onDayOfMonth*/,
20192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20193  0 /*atTimeCode (0/15)*/,
20194  60 /*deltaMinutes*/,
20195  0 /*letterIndex ("")*/,
20196  },
20197  // Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
20198  {
20199  2005 /*fromYear*/,
20200  2009 /*toYear*/,
20201  3 /*inMonth*/,
20202  7 /*onDayOfWeek*/,
20203  8 /*onDayOfMonth*/,
20204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20205  0 /*atTimeCode (0/15)*/,
20206  0 /*deltaMinutes*/,
20207  0 /*letterIndex ("")*/,
20208  },
20209  // Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 -
20210  {
20211  2010 /*fromYear*/,
20212  2024 /*toYear*/,
20213  10 /*inMonth*/,
20214  7 /*onDayOfWeek*/,
20215  1 /*onDayOfMonth*/,
20216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20217  0 /*atTimeCode (0/15)*/,
20218  60 /*deltaMinutes*/,
20219  0 /*letterIndex ("")*/,
20220  },
20221  // Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
20222  {
20223  2010 /*fromYear*/,
20224  2012 /*toYear*/,
20225  4 /*inMonth*/,
20226  7 /*onDayOfWeek*/,
20227  8 /*onDayOfMonth*/,
20228  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20229  0 /*atTimeCode (0/15)*/,
20230  0 /*deltaMinutes*/,
20231  0 /*letterIndex ("")*/,
20232  },
20233  // Rule Para 2013 2024 - Mar Sun>=22 0:00 0 -
20234  {
20235  2013 /*fromYear*/,
20236  2024 /*toYear*/,
20237  3 /*inMonth*/,
20238  7 /*onDayOfWeek*/,
20239  22 /*onDayOfMonth*/,
20240  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20241  0 /*atTimeCode (0/15)*/,
20242  0 /*deltaMinutes*/,
20243  0 /*letterIndex ("")*/,
20244  },
20245 
20246 };
20247 
20248 const complete::Info::ZonePolicy kZonePolicyPara ACE_TIME_PROGMEM = {
20249  kZoneRulesPara /*rules*/,
20250  23 /*numRules*/,
20251 };
20252 
20253 //---------------------------------------------------------------------------
20254 // Policy name: Perry
20255 // Rules: 5
20256 //---------------------------------------------------------------------------
20257 
20258 static const complete::Info::ZoneRule kZoneRulesPerry[] ACE_TIME_PROGMEM = {
20259  // Anchor: Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
20260  {
20261  -32767 /*fromYear*/,
20262  -32767 /*toYear*/,
20263  1 /*inMonth*/,
20264  0 /*onDayOfWeek*/,
20265  1 /*onDayOfMonth*/,
20266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20267  0 /*atTimeCode (0/15)*/,
20268  0 /*deltaMinutes*/,
20269  25 /*letterIndex ("S")*/,
20270  },
20271  // Rule Perry 1955 only - May 1 0:00 1:00 D
20272  {
20273  1955 /*fromYear*/,
20274  1955 /*toYear*/,
20275  5 /*inMonth*/,
20276  0 /*onDayOfWeek*/,
20277  1 /*onDayOfMonth*/,
20278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20279  0 /*atTimeCode (0/15)*/,
20280  60 /*deltaMinutes*/,
20281  13 /*letterIndex ("D")*/,
20282  },
20283  // Rule Perry 1955 1960 - Sep lastSun 2:00 0 S
20284  {
20285  1955 /*fromYear*/,
20286  1960 /*toYear*/,
20287  9 /*inMonth*/,
20288  7 /*onDayOfWeek*/,
20289  0 /*onDayOfMonth*/,
20290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20291  480 /*atTimeCode (7200/15)*/,
20292  0 /*deltaMinutes*/,
20293  25 /*letterIndex ("S")*/,
20294  },
20295  // Rule Perry 1956 1963 - Apr lastSun 2:00 1:00 D
20296  {
20297  1956 /*fromYear*/,
20298  1963 /*toYear*/,
20299  4 /*inMonth*/,
20300  7 /*onDayOfWeek*/,
20301  0 /*onDayOfMonth*/,
20302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20303  480 /*atTimeCode (7200/15)*/,
20304  60 /*deltaMinutes*/,
20305  13 /*letterIndex ("D")*/,
20306  },
20307  // Rule Perry 1961 1963 - Oct lastSun 2:00 0 S
20308  {
20309  1961 /*fromYear*/,
20310  1963 /*toYear*/,
20311  10 /*inMonth*/,
20312  7 /*onDayOfWeek*/,
20313  0 /*onDayOfMonth*/,
20314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20315  480 /*atTimeCode (7200/15)*/,
20316  0 /*deltaMinutes*/,
20317  25 /*letterIndex ("S")*/,
20318  },
20319 
20320 };
20321 
20322 const complete::Info::ZonePolicy kZonePolicyPerry ACE_TIME_PROGMEM = {
20323  kZoneRulesPerry /*rules*/,
20324  5 /*numRules*/,
20325 };
20326 
20327 //---------------------------------------------------------------------------
20328 // Policy name: Peru
20329 // Rules: 11
20330 //---------------------------------------------------------------------------
20331 
20332 static const complete::Info::ZoneRule kZoneRulesPeru[] ACE_TIME_PROGMEM = {
20333  // Anchor: Rule Peru 1938 only - Apr 1 0:00 0 -
20334  {
20335  -32767 /*fromYear*/,
20336  -32767 /*toYear*/,
20337  1 /*inMonth*/,
20338  0 /*onDayOfWeek*/,
20339  1 /*onDayOfMonth*/,
20340  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20341  0 /*atTimeCode (0/15)*/,
20342  0 /*deltaMinutes*/,
20343  0 /*letterIndex ("")*/,
20344  },
20345  // Rule Peru 1938 only - Jan 1 0:00 1:00 -
20346  {
20347  1938 /*fromYear*/,
20348  1938 /*toYear*/,
20349  1 /*inMonth*/,
20350  0 /*onDayOfWeek*/,
20351  1 /*onDayOfMonth*/,
20352  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20353  0 /*atTimeCode (0/15)*/,
20354  60 /*deltaMinutes*/,
20355  0 /*letterIndex ("")*/,
20356  },
20357  // Rule Peru 1938 only - Apr 1 0:00 0 -
20358  {
20359  1938 /*fromYear*/,
20360  1938 /*toYear*/,
20361  4 /*inMonth*/,
20362  0 /*onDayOfWeek*/,
20363  1 /*onDayOfMonth*/,
20364  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20365  0 /*atTimeCode (0/15)*/,
20366  0 /*deltaMinutes*/,
20367  0 /*letterIndex ("")*/,
20368  },
20369  // Rule Peru 1938 1939 - Sep lastSun 0:00 1:00 -
20370  {
20371  1938 /*fromYear*/,
20372  1939 /*toYear*/,
20373  9 /*inMonth*/,
20374  7 /*onDayOfWeek*/,
20375  0 /*onDayOfMonth*/,
20376  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20377  0 /*atTimeCode (0/15)*/,
20378  60 /*deltaMinutes*/,
20379  0 /*letterIndex ("")*/,
20380  },
20381  // Rule Peru 1939 1940 - Mar Sun>=24 0:00 0 -
20382  {
20383  1939 /*fromYear*/,
20384  1940 /*toYear*/,
20385  3 /*inMonth*/,
20386  7 /*onDayOfWeek*/,
20387  24 /*onDayOfMonth*/,
20388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20389  0 /*atTimeCode (0/15)*/,
20390  0 /*deltaMinutes*/,
20391  0 /*letterIndex ("")*/,
20392  },
20393  // Rule Peru 1986 1987 - Jan 1 0:00 1:00 -
20394  {
20395  1986 /*fromYear*/,
20396  1987 /*toYear*/,
20397  1 /*inMonth*/,
20398  0 /*onDayOfWeek*/,
20399  1 /*onDayOfMonth*/,
20400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20401  0 /*atTimeCode (0/15)*/,
20402  60 /*deltaMinutes*/,
20403  0 /*letterIndex ("")*/,
20404  },
20405  // Rule Peru 1986 1987 - Apr 1 0:00 0 -
20406  {
20407  1986 /*fromYear*/,
20408  1987 /*toYear*/,
20409  4 /*inMonth*/,
20410  0 /*onDayOfWeek*/,
20411  1 /*onDayOfMonth*/,
20412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20413  0 /*atTimeCode (0/15)*/,
20414  0 /*deltaMinutes*/,
20415  0 /*letterIndex ("")*/,
20416  },
20417  // Rule Peru 1990 only - Jan 1 0:00 1:00 -
20418  {
20419  1990 /*fromYear*/,
20420  1990 /*toYear*/,
20421  1 /*inMonth*/,
20422  0 /*onDayOfWeek*/,
20423  1 /*onDayOfMonth*/,
20424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20425  0 /*atTimeCode (0/15)*/,
20426  60 /*deltaMinutes*/,
20427  0 /*letterIndex ("")*/,
20428  },
20429  // Rule Peru 1990 only - Apr 1 0:00 0 -
20430  {
20431  1990 /*fromYear*/,
20432  1990 /*toYear*/,
20433  4 /*inMonth*/,
20434  0 /*onDayOfWeek*/,
20435  1 /*onDayOfMonth*/,
20436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20437  0 /*atTimeCode (0/15)*/,
20438  0 /*deltaMinutes*/,
20439  0 /*letterIndex ("")*/,
20440  },
20441  // Rule Peru 1994 only - Jan 1 0:00 1:00 -
20442  {
20443  1994 /*fromYear*/,
20444  1994 /*toYear*/,
20445  1 /*inMonth*/,
20446  0 /*onDayOfWeek*/,
20447  1 /*onDayOfMonth*/,
20448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20449  0 /*atTimeCode (0/15)*/,
20450  60 /*deltaMinutes*/,
20451  0 /*letterIndex ("")*/,
20452  },
20453  // Rule Peru 1994 only - Apr 1 0:00 0 -
20454  {
20455  1994 /*fromYear*/,
20456  1994 /*toYear*/,
20457  4 /*inMonth*/,
20458  0 /*onDayOfWeek*/,
20459  1 /*onDayOfMonth*/,
20460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20461  0 /*atTimeCode (0/15)*/,
20462  0 /*deltaMinutes*/,
20463  0 /*letterIndex ("")*/,
20464  },
20465 
20466 };
20467 
20468 const complete::Info::ZonePolicy kZonePolicyPeru ACE_TIME_PROGMEM = {
20469  kZoneRulesPeru /*rules*/,
20470  11 /*numRules*/,
20471 };
20472 
20473 //---------------------------------------------------------------------------
20474 // Policy name: Phil
20475 // Rules: 11
20476 //---------------------------------------------------------------------------
20477 
20478 static const complete::Info::ZoneRule kZoneRulesPhil[] ACE_TIME_PROGMEM = {
20479  // Anchor: Rule Phil 1937 only - Jan 15 24:00 0 S
20480  {
20481  -32767 /*fromYear*/,
20482  -32767 /*toYear*/,
20483  1 /*inMonth*/,
20484  0 /*onDayOfWeek*/,
20485  1 /*onDayOfMonth*/,
20486  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20487  0 /*atTimeCode (0/15)*/,
20488  0 /*deltaMinutes*/,
20489  25 /*letterIndex ("S")*/,
20490  },
20491  // Rule Phil 1936 only - Oct 31 24:00 1:00 D
20492  {
20493  1936 /*fromYear*/,
20494  1936 /*toYear*/,
20495  10 /*inMonth*/,
20496  0 /*onDayOfWeek*/,
20497  31 /*onDayOfMonth*/,
20498  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20499  5760 /*atTimeCode (86400/15)*/,
20500  60 /*deltaMinutes*/,
20501  13 /*letterIndex ("D")*/,
20502  },
20503  // Rule Phil 1937 only - Jan 15 24:00 0 S
20504  {
20505  1937 /*fromYear*/,
20506  1937 /*toYear*/,
20507  1 /*inMonth*/,
20508  0 /*onDayOfWeek*/,
20509  15 /*onDayOfMonth*/,
20510  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20511  5760 /*atTimeCode (86400/15)*/,
20512  0 /*deltaMinutes*/,
20513  25 /*letterIndex ("S")*/,
20514  },
20515  // Rule Phil 1941 only - Dec 15 24:00 1:00 D
20516  {
20517  1941 /*fromYear*/,
20518  1941 /*toYear*/,
20519  12 /*inMonth*/,
20520  0 /*onDayOfWeek*/,
20521  15 /*onDayOfMonth*/,
20522  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20523  5760 /*atTimeCode (86400/15)*/,
20524  60 /*deltaMinutes*/,
20525  13 /*letterIndex ("D")*/,
20526  },
20527  // Rule Phil 1945 only - Nov 30 24:00 0 S
20528  {
20529  1945 /*fromYear*/,
20530  1945 /*toYear*/,
20531  11 /*inMonth*/,
20532  0 /*onDayOfWeek*/,
20533  30 /*onDayOfMonth*/,
20534  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20535  5760 /*atTimeCode (86400/15)*/,
20536  0 /*deltaMinutes*/,
20537  25 /*letterIndex ("S")*/,
20538  },
20539  // Rule Phil 1954 only - Apr 11 24:00 1:00 D
20540  {
20541  1954 /*fromYear*/,
20542  1954 /*toYear*/,
20543  4 /*inMonth*/,
20544  0 /*onDayOfWeek*/,
20545  11 /*onDayOfMonth*/,
20546  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20547  5760 /*atTimeCode (86400/15)*/,
20548  60 /*deltaMinutes*/,
20549  13 /*letterIndex ("D")*/,
20550  },
20551  // Rule Phil 1954 only - Jun 4 24:00 0 S
20552  {
20553  1954 /*fromYear*/,
20554  1954 /*toYear*/,
20555  6 /*inMonth*/,
20556  0 /*onDayOfWeek*/,
20557  4 /*onDayOfMonth*/,
20558  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20559  5760 /*atTimeCode (86400/15)*/,
20560  0 /*deltaMinutes*/,
20561  25 /*letterIndex ("S")*/,
20562  },
20563  // Rule Phil 1977 only - Mar 27 24:00 1:00 D
20564  {
20565  1977 /*fromYear*/,
20566  1977 /*toYear*/,
20567  3 /*inMonth*/,
20568  0 /*onDayOfWeek*/,
20569  27 /*onDayOfMonth*/,
20570  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20571  5760 /*atTimeCode (86400/15)*/,
20572  60 /*deltaMinutes*/,
20573  13 /*letterIndex ("D")*/,
20574  },
20575  // Rule Phil 1977 only - Sep 21 24:00 0 S
20576  {
20577  1977 /*fromYear*/,
20578  1977 /*toYear*/,
20579  9 /*inMonth*/,
20580  0 /*onDayOfWeek*/,
20581  21 /*onDayOfMonth*/,
20582  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20583  5760 /*atTimeCode (86400/15)*/,
20584  0 /*deltaMinutes*/,
20585  25 /*letterIndex ("S")*/,
20586  },
20587  // Rule Phil 1990 only - May 21 0:00 1:00 D
20588  {
20589  1990 /*fromYear*/,
20590  1990 /*toYear*/,
20591  5 /*inMonth*/,
20592  0 /*onDayOfWeek*/,
20593  21 /*onDayOfMonth*/,
20594  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20595  0 /*atTimeCode (0/15)*/,
20596  60 /*deltaMinutes*/,
20597  13 /*letterIndex ("D")*/,
20598  },
20599  // Rule Phil 1990 only - Jul 28 24:00 0 S
20600  {
20601  1990 /*fromYear*/,
20602  1990 /*toYear*/,
20603  7 /*inMonth*/,
20604  0 /*onDayOfWeek*/,
20605  28 /*onDayOfMonth*/,
20606  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20607  5760 /*atTimeCode (86400/15)*/,
20608  0 /*deltaMinutes*/,
20609  25 /*letterIndex ("S")*/,
20610  },
20611 
20612 };
20613 
20614 const complete::Info::ZonePolicy kZonePolicyPhil ACE_TIME_PROGMEM = {
20615  kZoneRulesPhil /*rules*/,
20616  11 /*numRules*/,
20617 };
20618 
20619 //---------------------------------------------------------------------------
20620 // Policy name: Pike
20621 // Rules: 5
20622 //---------------------------------------------------------------------------
20623 
20624 static const complete::Info::ZoneRule kZoneRulesPike[] ACE_TIME_PROGMEM = {
20625  // Anchor: Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
20626  {
20627  -32767 /*fromYear*/,
20628  -32767 /*toYear*/,
20629  1 /*inMonth*/,
20630  0 /*onDayOfWeek*/,
20631  1 /*onDayOfMonth*/,
20632  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20633  0 /*atTimeCode (0/15)*/,
20634  0 /*deltaMinutes*/,
20635  25 /*letterIndex ("S")*/,
20636  },
20637  // Rule Pike 1955 only - May 1 0:00 1:00 D
20638  {
20639  1955 /*fromYear*/,
20640  1955 /*toYear*/,
20641  5 /*inMonth*/,
20642  0 /*onDayOfWeek*/,
20643  1 /*onDayOfMonth*/,
20644  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20645  0 /*atTimeCode (0/15)*/,
20646  60 /*deltaMinutes*/,
20647  13 /*letterIndex ("D")*/,
20648  },
20649  // Rule Pike 1955 1960 - Sep lastSun 2:00 0 S
20650  {
20651  1955 /*fromYear*/,
20652  1960 /*toYear*/,
20653  9 /*inMonth*/,
20654  7 /*onDayOfWeek*/,
20655  0 /*onDayOfMonth*/,
20656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20657  480 /*atTimeCode (7200/15)*/,
20658  0 /*deltaMinutes*/,
20659  25 /*letterIndex ("S")*/,
20660  },
20661  // Rule Pike 1956 1964 - Apr lastSun 2:00 1:00 D
20662  {
20663  1956 /*fromYear*/,
20664  1964 /*toYear*/,
20665  4 /*inMonth*/,
20666  7 /*onDayOfWeek*/,
20667  0 /*onDayOfMonth*/,
20668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20669  480 /*atTimeCode (7200/15)*/,
20670  60 /*deltaMinutes*/,
20671  13 /*letterIndex ("D")*/,
20672  },
20673  // Rule Pike 1961 1964 - Oct lastSun 2:00 0 S
20674  {
20675  1961 /*fromYear*/,
20676  1964 /*toYear*/,
20677  10 /*inMonth*/,
20678  7 /*onDayOfWeek*/,
20679  0 /*onDayOfMonth*/,
20680  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20681  480 /*atTimeCode (7200/15)*/,
20682  0 /*deltaMinutes*/,
20683  25 /*letterIndex ("S")*/,
20684  },
20685 
20686 };
20687 
20688 const complete::Info::ZonePolicy kZonePolicyPike ACE_TIME_PROGMEM = {
20689  kZoneRulesPike /*rules*/,
20690  5 /*numRules*/,
20691 };
20692 
20693 //---------------------------------------------------------------------------
20694 // Policy name: Poland
20695 // Rules: 21
20696 //---------------------------------------------------------------------------
20697 
20698 static const complete::Info::ZoneRule kZoneRulesPoland[] ACE_TIME_PROGMEM = {
20699  // Anchor: Rule Poland 1918 1919 - Sep 16 2:00s 0 -
20700  {
20701  -32767 /*fromYear*/,
20702  -32767 /*toYear*/,
20703  1 /*inMonth*/,
20704  0 /*onDayOfWeek*/,
20705  1 /*onDayOfMonth*/,
20706  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20707  0 /*atTimeCode (0/15)*/,
20708  0 /*deltaMinutes*/,
20709  0 /*letterIndex ("")*/,
20710  },
20711  // Rule Poland 1918 1919 - Sep 16 2:00s 0 -
20712  {
20713  1918 /*fromYear*/,
20714  1919 /*toYear*/,
20715  9 /*inMonth*/,
20716  0 /*onDayOfWeek*/,
20717  16 /*onDayOfMonth*/,
20718  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20719  480 /*atTimeCode (7200/15)*/,
20720  0 /*deltaMinutes*/,
20721  0 /*letterIndex ("")*/,
20722  },
20723  // Rule Poland 1919 only - Apr 15 2:00s 1:00 S
20724  {
20725  1919 /*fromYear*/,
20726  1919 /*toYear*/,
20727  4 /*inMonth*/,
20728  0 /*onDayOfWeek*/,
20729  15 /*onDayOfMonth*/,
20730  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20731  480 /*atTimeCode (7200/15)*/,
20732  60 /*deltaMinutes*/,
20733  25 /*letterIndex ("S")*/,
20734  },
20735  // Rule Poland 1944 only - Apr 3 2:00s 1:00 S
20736  {
20737  1944 /*fromYear*/,
20738  1944 /*toYear*/,
20739  4 /*inMonth*/,
20740  0 /*onDayOfWeek*/,
20741  3 /*onDayOfMonth*/,
20742  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20743  480 /*atTimeCode (7200/15)*/,
20744  60 /*deltaMinutes*/,
20745  25 /*letterIndex ("S")*/,
20746  },
20747  // Rule Poland 1944 only - Oct 4 2:00 0 -
20748  {
20749  1944 /*fromYear*/,
20750  1944 /*toYear*/,
20751  10 /*inMonth*/,
20752  0 /*onDayOfWeek*/,
20753  4 /*onDayOfMonth*/,
20754  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20755  480 /*atTimeCode (7200/15)*/,
20756  0 /*deltaMinutes*/,
20757  0 /*letterIndex ("")*/,
20758  },
20759  // Rule Poland 1945 only - Apr 29 0:00 1:00 S
20760  {
20761  1945 /*fromYear*/,
20762  1945 /*toYear*/,
20763  4 /*inMonth*/,
20764  0 /*onDayOfWeek*/,
20765  29 /*onDayOfMonth*/,
20766  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20767  0 /*atTimeCode (0/15)*/,
20768  60 /*deltaMinutes*/,
20769  25 /*letterIndex ("S")*/,
20770  },
20771  // Rule Poland 1945 only - Nov 1 0:00 0 -
20772  {
20773  1945 /*fromYear*/,
20774  1945 /*toYear*/,
20775  11 /*inMonth*/,
20776  0 /*onDayOfWeek*/,
20777  1 /*onDayOfMonth*/,
20778  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20779  0 /*atTimeCode (0/15)*/,
20780  0 /*deltaMinutes*/,
20781  0 /*letterIndex ("")*/,
20782  },
20783  // Rule Poland 1946 only - Apr 14 0:00s 1:00 S
20784  {
20785  1946 /*fromYear*/,
20786  1946 /*toYear*/,
20787  4 /*inMonth*/,
20788  0 /*onDayOfWeek*/,
20789  14 /*onDayOfMonth*/,
20790  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20791  0 /*atTimeCode (0/15)*/,
20792  60 /*deltaMinutes*/,
20793  25 /*letterIndex ("S")*/,
20794  },
20795  // Rule Poland 1946 only - Oct 7 2:00s 0 -
20796  {
20797  1946 /*fromYear*/,
20798  1946 /*toYear*/,
20799  10 /*inMonth*/,
20800  0 /*onDayOfWeek*/,
20801  7 /*onDayOfMonth*/,
20802  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20803  480 /*atTimeCode (7200/15)*/,
20804  0 /*deltaMinutes*/,
20805  0 /*letterIndex ("")*/,
20806  },
20807  // Rule Poland 1947 only - May 4 2:00s 1:00 S
20808  {
20809  1947 /*fromYear*/,
20810  1947 /*toYear*/,
20811  5 /*inMonth*/,
20812  0 /*onDayOfWeek*/,
20813  4 /*onDayOfMonth*/,
20814  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20815  480 /*atTimeCode (7200/15)*/,
20816  60 /*deltaMinutes*/,
20817  25 /*letterIndex ("S")*/,
20818  },
20819  // Rule Poland 1947 1949 - Oct Sun>=1 2:00s 0 -
20820  {
20821  1947 /*fromYear*/,
20822  1949 /*toYear*/,
20823  10 /*inMonth*/,
20824  7 /*onDayOfWeek*/,
20825  1 /*onDayOfMonth*/,
20826  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20827  480 /*atTimeCode (7200/15)*/,
20828  0 /*deltaMinutes*/,
20829  0 /*letterIndex ("")*/,
20830  },
20831  // Rule Poland 1948 only - Apr 18 2:00s 1:00 S
20832  {
20833  1948 /*fromYear*/,
20834  1948 /*toYear*/,
20835  4 /*inMonth*/,
20836  0 /*onDayOfWeek*/,
20837  18 /*onDayOfMonth*/,
20838  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20839  480 /*atTimeCode (7200/15)*/,
20840  60 /*deltaMinutes*/,
20841  25 /*letterIndex ("S")*/,
20842  },
20843  // Rule Poland 1949 only - Apr 10 2:00s 1:00 S
20844  {
20845  1949 /*fromYear*/,
20846  1949 /*toYear*/,
20847  4 /*inMonth*/,
20848  0 /*onDayOfWeek*/,
20849  10 /*onDayOfMonth*/,
20850  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20851  480 /*atTimeCode (7200/15)*/,
20852  60 /*deltaMinutes*/,
20853  25 /*letterIndex ("S")*/,
20854  },
20855  // Rule Poland 1957 only - Jun 2 1:00s 1:00 S
20856  {
20857  1957 /*fromYear*/,
20858  1957 /*toYear*/,
20859  6 /*inMonth*/,
20860  0 /*onDayOfWeek*/,
20861  2 /*onDayOfMonth*/,
20862  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20863  240 /*atTimeCode (3600/15)*/,
20864  60 /*deltaMinutes*/,
20865  25 /*letterIndex ("S")*/,
20866  },
20867  // Rule Poland 1957 1958 - Sep lastSun 1:00s 0 -
20868  {
20869  1957 /*fromYear*/,
20870  1958 /*toYear*/,
20871  9 /*inMonth*/,
20872  7 /*onDayOfWeek*/,
20873  0 /*onDayOfMonth*/,
20874  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20875  240 /*atTimeCode (3600/15)*/,
20876  0 /*deltaMinutes*/,
20877  0 /*letterIndex ("")*/,
20878  },
20879  // Rule Poland 1958 only - Mar 30 1:00s 1:00 S
20880  {
20881  1958 /*fromYear*/,
20882  1958 /*toYear*/,
20883  3 /*inMonth*/,
20884  0 /*onDayOfWeek*/,
20885  30 /*onDayOfMonth*/,
20886  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20887  240 /*atTimeCode (3600/15)*/,
20888  60 /*deltaMinutes*/,
20889  25 /*letterIndex ("S")*/,
20890  },
20891  // Rule Poland 1959 only - May 31 1:00s 1:00 S
20892  {
20893  1959 /*fromYear*/,
20894  1959 /*toYear*/,
20895  5 /*inMonth*/,
20896  0 /*onDayOfWeek*/,
20897  31 /*onDayOfMonth*/,
20898  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20899  240 /*atTimeCode (3600/15)*/,
20900  60 /*deltaMinutes*/,
20901  25 /*letterIndex ("S")*/,
20902  },
20903  // Rule Poland 1959 1961 - Oct Sun>=1 1:00s 0 -
20904  {
20905  1959 /*fromYear*/,
20906  1961 /*toYear*/,
20907  10 /*inMonth*/,
20908  7 /*onDayOfWeek*/,
20909  1 /*onDayOfMonth*/,
20910  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20911  240 /*atTimeCode (3600/15)*/,
20912  0 /*deltaMinutes*/,
20913  0 /*letterIndex ("")*/,
20914  },
20915  // Rule Poland 1960 only - Apr 3 1:00s 1:00 S
20916  {
20917  1960 /*fromYear*/,
20918  1960 /*toYear*/,
20919  4 /*inMonth*/,
20920  0 /*onDayOfWeek*/,
20921  3 /*onDayOfMonth*/,
20922  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20923  240 /*atTimeCode (3600/15)*/,
20924  60 /*deltaMinutes*/,
20925  25 /*letterIndex ("S")*/,
20926  },
20927  // Rule Poland 1961 1964 - May lastSun 1:00s 1:00 S
20928  {
20929  1961 /*fromYear*/,
20930  1964 /*toYear*/,
20931  5 /*inMonth*/,
20932  7 /*onDayOfWeek*/,
20933  0 /*onDayOfMonth*/,
20934  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20935  240 /*atTimeCode (3600/15)*/,
20936  60 /*deltaMinutes*/,
20937  25 /*letterIndex ("S")*/,
20938  },
20939  // Rule Poland 1962 1964 - Sep lastSun 1:00s 0 -
20940  {
20941  1962 /*fromYear*/,
20942  1964 /*toYear*/,
20943  9 /*inMonth*/,
20944  7 /*onDayOfWeek*/,
20945  0 /*onDayOfMonth*/,
20946  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
20947  240 /*atTimeCode (3600/15)*/,
20948  0 /*deltaMinutes*/,
20949  0 /*letterIndex ("")*/,
20950  },
20951 
20952 };
20953 
20954 const complete::Info::ZonePolicy kZonePolicyPoland ACE_TIME_PROGMEM = {
20955  kZoneRulesPoland /*rules*/,
20956  21 /*numRules*/,
20957 };
20958 
20959 //---------------------------------------------------------------------------
20960 // Policy name: Port
20961 // Rules: 46
20962 //---------------------------------------------------------------------------
20963 
20964 static const complete::Info::ZoneRule kZoneRulesPort[] ACE_TIME_PROGMEM = {
20965  // Anchor: Rule Port 1916 only - Nov 1 1:00 0 -
20966  {
20967  -32767 /*fromYear*/,
20968  -32767 /*toYear*/,
20969  1 /*inMonth*/,
20970  0 /*onDayOfWeek*/,
20971  1 /*onDayOfMonth*/,
20972  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20973  0 /*atTimeCode (0/15)*/,
20974  0 /*deltaMinutes*/,
20975  0 /*letterIndex ("")*/,
20976  },
20977  // Rule Port 1916 only - Jun 17 23:00 1:00 S
20978  {
20979  1916 /*fromYear*/,
20980  1916 /*toYear*/,
20981  6 /*inMonth*/,
20982  0 /*onDayOfWeek*/,
20983  17 /*onDayOfMonth*/,
20984  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20985  5520 /*atTimeCode (82800/15)*/,
20986  60 /*deltaMinutes*/,
20987  25 /*letterIndex ("S")*/,
20988  },
20989  // Rule Port 1916 only - Nov 1 1:00 0 -
20990  {
20991  1916 /*fromYear*/,
20992  1916 /*toYear*/,
20993  11 /*inMonth*/,
20994  0 /*onDayOfWeek*/,
20995  1 /*onDayOfMonth*/,
20996  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
20997  240 /*atTimeCode (3600/15)*/,
20998  0 /*deltaMinutes*/,
20999  0 /*letterIndex ("")*/,
21000  },
21001  // Rule Port 1917 1921 - Mar 1 0:00 1:00 S
21002  {
21003  1917 /*fromYear*/,
21004  1921 /*toYear*/,
21005  3 /*inMonth*/,
21006  0 /*onDayOfWeek*/,
21007  1 /*onDayOfMonth*/,
21008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21009  0 /*atTimeCode (0/15)*/,
21010  60 /*deltaMinutes*/,
21011  25 /*letterIndex ("S")*/,
21012  },
21013  // Rule Port 1917 1921 - Oct 14 24:00 0 -
21014  {
21015  1917 /*fromYear*/,
21016  1921 /*toYear*/,
21017  10 /*inMonth*/,
21018  0 /*onDayOfWeek*/,
21019  14 /*onDayOfMonth*/,
21020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21021  5760 /*atTimeCode (86400/15)*/,
21022  0 /*deltaMinutes*/,
21023  0 /*letterIndex ("")*/,
21024  },
21025  // Rule Port 1924 only - Apr 16 23:00s 1:00 S
21026  {
21027  1924 /*fromYear*/,
21028  1924 /*toYear*/,
21029  4 /*inMonth*/,
21030  0 /*onDayOfWeek*/,
21031  16 /*onDayOfMonth*/,
21032  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21033  5520 /*atTimeCode (82800/15)*/,
21034  60 /*deltaMinutes*/,
21035  25 /*letterIndex ("S")*/,
21036  },
21037  // Rule Port 1924 only - Oct 4 23:00s 0 -
21038  {
21039  1924 /*fromYear*/,
21040  1924 /*toYear*/,
21041  10 /*inMonth*/,
21042  0 /*onDayOfWeek*/,
21043  4 /*onDayOfMonth*/,
21044  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21045  5520 /*atTimeCode (82800/15)*/,
21046  0 /*deltaMinutes*/,
21047  0 /*letterIndex ("")*/,
21048  },
21049  // Rule Port 1926 only - Apr 17 23:00s 1:00 S
21050  {
21051  1926 /*fromYear*/,
21052  1926 /*toYear*/,
21053  4 /*inMonth*/,
21054  0 /*onDayOfWeek*/,
21055  17 /*onDayOfMonth*/,
21056  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21057  5520 /*atTimeCode (82800/15)*/,
21058  60 /*deltaMinutes*/,
21059  25 /*letterIndex ("S")*/,
21060  },
21061  // Rule Port 1926 1929 - Oct Sat>=1 23:00s 0 -
21062  {
21063  1926 /*fromYear*/,
21064  1929 /*toYear*/,
21065  10 /*inMonth*/,
21066  6 /*onDayOfWeek*/,
21067  1 /*onDayOfMonth*/,
21068  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21069  5520 /*atTimeCode (82800/15)*/,
21070  0 /*deltaMinutes*/,
21071  0 /*letterIndex ("")*/,
21072  },
21073  // Rule Port 1927 only - Apr 9 23:00s 1:00 S
21074  {
21075  1927 /*fromYear*/,
21076  1927 /*toYear*/,
21077  4 /*inMonth*/,
21078  0 /*onDayOfWeek*/,
21079  9 /*onDayOfMonth*/,
21080  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21081  5520 /*atTimeCode (82800/15)*/,
21082  60 /*deltaMinutes*/,
21083  25 /*letterIndex ("S")*/,
21084  },
21085  // Rule Port 1928 only - Apr 14 23:00s 1:00 S
21086  {
21087  1928 /*fromYear*/,
21088  1928 /*toYear*/,
21089  4 /*inMonth*/,
21090  0 /*onDayOfWeek*/,
21091  14 /*onDayOfMonth*/,
21092  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21093  5520 /*atTimeCode (82800/15)*/,
21094  60 /*deltaMinutes*/,
21095  25 /*letterIndex ("S")*/,
21096  },
21097  // Rule Port 1929 only - Apr 20 23:00s 1:00 S
21098  {
21099  1929 /*fromYear*/,
21100  1929 /*toYear*/,
21101  4 /*inMonth*/,
21102  0 /*onDayOfWeek*/,
21103  20 /*onDayOfMonth*/,
21104  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21105  5520 /*atTimeCode (82800/15)*/,
21106  60 /*deltaMinutes*/,
21107  25 /*letterIndex ("S")*/,
21108  },
21109  // Rule Port 1931 only - Apr 18 23:00s 1:00 S
21110  {
21111  1931 /*fromYear*/,
21112  1931 /*toYear*/,
21113  4 /*inMonth*/,
21114  0 /*onDayOfWeek*/,
21115  18 /*onDayOfMonth*/,
21116  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21117  5520 /*atTimeCode (82800/15)*/,
21118  60 /*deltaMinutes*/,
21119  25 /*letterIndex ("S")*/,
21120  },
21121  // Rule Port 1931 1932 - Oct Sat>=1 23:00s 0 -
21122  {
21123  1931 /*fromYear*/,
21124  1932 /*toYear*/,
21125  10 /*inMonth*/,
21126  6 /*onDayOfWeek*/,
21127  1 /*onDayOfMonth*/,
21128  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21129  5520 /*atTimeCode (82800/15)*/,
21130  0 /*deltaMinutes*/,
21131  0 /*letterIndex ("")*/,
21132  },
21133  // Rule Port 1932 only - Apr 2 23:00s 1:00 S
21134  {
21135  1932 /*fromYear*/,
21136  1932 /*toYear*/,
21137  4 /*inMonth*/,
21138  0 /*onDayOfWeek*/,
21139  2 /*onDayOfMonth*/,
21140  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21141  5520 /*atTimeCode (82800/15)*/,
21142  60 /*deltaMinutes*/,
21143  25 /*letterIndex ("S")*/,
21144  },
21145  // Rule Port 1934 only - Apr 7 23:00s 1:00 S
21146  {
21147  1934 /*fromYear*/,
21148  1934 /*toYear*/,
21149  4 /*inMonth*/,
21150  0 /*onDayOfWeek*/,
21151  7 /*onDayOfMonth*/,
21152  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21153  5520 /*atTimeCode (82800/15)*/,
21154  60 /*deltaMinutes*/,
21155  25 /*letterIndex ("S")*/,
21156  },
21157  // Rule Port 1934 1938 - Oct Sat>=1 23:00s 0 -
21158  {
21159  1934 /*fromYear*/,
21160  1938 /*toYear*/,
21161  10 /*inMonth*/,
21162  6 /*onDayOfWeek*/,
21163  1 /*onDayOfMonth*/,
21164  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21165  5520 /*atTimeCode (82800/15)*/,
21166  0 /*deltaMinutes*/,
21167  0 /*letterIndex ("")*/,
21168  },
21169  // Rule Port 1935 only - Mar 30 23:00s 1:00 S
21170  {
21171  1935 /*fromYear*/,
21172  1935 /*toYear*/,
21173  3 /*inMonth*/,
21174  0 /*onDayOfWeek*/,
21175  30 /*onDayOfMonth*/,
21176  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21177  5520 /*atTimeCode (82800/15)*/,
21178  60 /*deltaMinutes*/,
21179  25 /*letterIndex ("S")*/,
21180  },
21181  // Rule Port 1936 only - Apr 18 23:00s 1:00 S
21182  {
21183  1936 /*fromYear*/,
21184  1936 /*toYear*/,
21185  4 /*inMonth*/,
21186  0 /*onDayOfWeek*/,
21187  18 /*onDayOfMonth*/,
21188  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21189  5520 /*atTimeCode (82800/15)*/,
21190  60 /*deltaMinutes*/,
21191  25 /*letterIndex ("S")*/,
21192  },
21193  // Rule Port 1937 only - Apr 3 23:00s 1:00 S
21194  {
21195  1937 /*fromYear*/,
21196  1937 /*toYear*/,
21197  4 /*inMonth*/,
21198  0 /*onDayOfWeek*/,
21199  3 /*onDayOfMonth*/,
21200  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21201  5520 /*atTimeCode (82800/15)*/,
21202  60 /*deltaMinutes*/,
21203  25 /*letterIndex ("S")*/,
21204  },
21205  // Rule Port 1938 only - Mar 26 23:00s 1:00 S
21206  {
21207  1938 /*fromYear*/,
21208  1938 /*toYear*/,
21209  3 /*inMonth*/,
21210  0 /*onDayOfWeek*/,
21211  26 /*onDayOfMonth*/,
21212  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21213  5520 /*atTimeCode (82800/15)*/,
21214  60 /*deltaMinutes*/,
21215  25 /*letterIndex ("S")*/,
21216  },
21217  // Rule Port 1939 only - Apr 15 23:00s 1:00 S
21218  {
21219  1939 /*fromYear*/,
21220  1939 /*toYear*/,
21221  4 /*inMonth*/,
21222  0 /*onDayOfWeek*/,
21223  15 /*onDayOfMonth*/,
21224  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21225  5520 /*atTimeCode (82800/15)*/,
21226  60 /*deltaMinutes*/,
21227  25 /*letterIndex ("S")*/,
21228  },
21229  // Rule Port 1939 only - Nov 18 23:00s 0 -
21230  {
21231  1939 /*fromYear*/,
21232  1939 /*toYear*/,
21233  11 /*inMonth*/,
21234  0 /*onDayOfWeek*/,
21235  18 /*onDayOfMonth*/,
21236  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21237  5520 /*atTimeCode (82800/15)*/,
21238  0 /*deltaMinutes*/,
21239  0 /*letterIndex ("")*/,
21240  },
21241  // Rule Port 1940 only - Feb 24 23:00s 1:00 S
21242  {
21243  1940 /*fromYear*/,
21244  1940 /*toYear*/,
21245  2 /*inMonth*/,
21246  0 /*onDayOfWeek*/,
21247  24 /*onDayOfMonth*/,
21248  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21249  5520 /*atTimeCode (82800/15)*/,
21250  60 /*deltaMinutes*/,
21251  25 /*letterIndex ("S")*/,
21252  },
21253  // Rule Port 1940 only - Oct 7 23:00s 0 -
21254  {
21255  1940 /*fromYear*/,
21256  1940 /*toYear*/,
21257  10 /*inMonth*/,
21258  0 /*onDayOfWeek*/,
21259  7 /*onDayOfMonth*/,
21260  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21261  5520 /*atTimeCode (82800/15)*/,
21262  0 /*deltaMinutes*/,
21263  0 /*letterIndex ("")*/,
21264  },
21265  // Rule Port 1941 only - Apr 5 23:00s 1:00 S
21266  {
21267  1941 /*fromYear*/,
21268  1941 /*toYear*/,
21269  4 /*inMonth*/,
21270  0 /*onDayOfWeek*/,
21271  5 /*onDayOfMonth*/,
21272  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21273  5520 /*atTimeCode (82800/15)*/,
21274  60 /*deltaMinutes*/,
21275  25 /*letterIndex ("S")*/,
21276  },
21277  // Rule Port 1941 only - Oct 5 23:00s 0 -
21278  {
21279  1941 /*fromYear*/,
21280  1941 /*toYear*/,
21281  10 /*inMonth*/,
21282  0 /*onDayOfWeek*/,
21283  5 /*onDayOfMonth*/,
21284  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21285  5520 /*atTimeCode (82800/15)*/,
21286  0 /*deltaMinutes*/,
21287  0 /*letterIndex ("")*/,
21288  },
21289  // Rule Port 1942 1945 - Mar Sat>=8 23:00s 1:00 S
21290  {
21291  1942 /*fromYear*/,
21292  1945 /*toYear*/,
21293  3 /*inMonth*/,
21294  6 /*onDayOfWeek*/,
21295  8 /*onDayOfMonth*/,
21296  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21297  5520 /*atTimeCode (82800/15)*/,
21298  60 /*deltaMinutes*/,
21299  25 /*letterIndex ("S")*/,
21300  },
21301  // Rule Port 1942 only - Apr 25 22:00s 2:00 M
21302  {
21303  1942 /*fromYear*/,
21304  1942 /*toYear*/,
21305  4 /*inMonth*/,
21306  0 /*onDayOfWeek*/,
21307  25 /*onDayOfMonth*/,
21308  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21309  5280 /*atTimeCode (79200/15)*/,
21310  120 /*deltaMinutes*/,
21311  18 /*letterIndex ("M")*/,
21312  },
21313  // Rule Port 1942 only - Aug 15 22:00s 1:00 S
21314  {
21315  1942 /*fromYear*/,
21316  1942 /*toYear*/,
21317  8 /*inMonth*/,
21318  0 /*onDayOfWeek*/,
21319  15 /*onDayOfMonth*/,
21320  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21321  5280 /*atTimeCode (79200/15)*/,
21322  60 /*deltaMinutes*/,
21323  25 /*letterIndex ("S")*/,
21324  },
21325  // Rule Port 1942 1945 - Oct Sat>=24 23:00s 0 -
21326  {
21327  1942 /*fromYear*/,
21328  1945 /*toYear*/,
21329  10 /*inMonth*/,
21330  6 /*onDayOfWeek*/,
21331  24 /*onDayOfMonth*/,
21332  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21333  5520 /*atTimeCode (82800/15)*/,
21334  0 /*deltaMinutes*/,
21335  0 /*letterIndex ("")*/,
21336  },
21337  // Rule Port 1943 only - Apr 17 22:00s 2:00 M
21338  {
21339  1943 /*fromYear*/,
21340  1943 /*toYear*/,
21341  4 /*inMonth*/,
21342  0 /*onDayOfWeek*/,
21343  17 /*onDayOfMonth*/,
21344  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21345  5280 /*atTimeCode (79200/15)*/,
21346  120 /*deltaMinutes*/,
21347  18 /*letterIndex ("M")*/,
21348  },
21349  // Rule Port 1943 1945 - Aug Sat>=25 22:00s 1:00 S
21350  {
21351  1943 /*fromYear*/,
21352  1945 /*toYear*/,
21353  8 /*inMonth*/,
21354  6 /*onDayOfWeek*/,
21355  25 /*onDayOfMonth*/,
21356  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21357  5280 /*atTimeCode (79200/15)*/,
21358  60 /*deltaMinutes*/,
21359  25 /*letterIndex ("S")*/,
21360  },
21361  // Rule Port 1944 1945 - Apr Sat>=21 22:00s 2:00 M
21362  {
21363  1944 /*fromYear*/,
21364  1945 /*toYear*/,
21365  4 /*inMonth*/,
21366  6 /*onDayOfWeek*/,
21367  21 /*onDayOfMonth*/,
21368  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21369  5280 /*atTimeCode (79200/15)*/,
21370  120 /*deltaMinutes*/,
21371  18 /*letterIndex ("M")*/,
21372  },
21373  // Rule Port 1946 only - Apr Sat>=1 23:00s 1:00 S
21374  {
21375  1946 /*fromYear*/,
21376  1946 /*toYear*/,
21377  4 /*inMonth*/,
21378  6 /*onDayOfWeek*/,
21379  1 /*onDayOfMonth*/,
21380  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21381  5520 /*atTimeCode (82800/15)*/,
21382  60 /*deltaMinutes*/,
21383  25 /*letterIndex ("S")*/,
21384  },
21385  // Rule Port 1946 only - Oct Sat>=1 23:00s 0 -
21386  {
21387  1946 /*fromYear*/,
21388  1946 /*toYear*/,
21389  10 /*inMonth*/,
21390  6 /*onDayOfWeek*/,
21391  1 /*onDayOfMonth*/,
21392  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21393  5520 /*atTimeCode (82800/15)*/,
21394  0 /*deltaMinutes*/,
21395  0 /*letterIndex ("")*/,
21396  },
21397  // Rule Port 1947 1966 - Apr Sun>=1 2:00s 1:00 S
21398  {
21399  1947 /*fromYear*/,
21400  1966 /*toYear*/,
21401  4 /*inMonth*/,
21402  7 /*onDayOfWeek*/,
21403  1 /*onDayOfMonth*/,
21404  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21405  480 /*atTimeCode (7200/15)*/,
21406  60 /*deltaMinutes*/,
21407  25 /*letterIndex ("S")*/,
21408  },
21409  // Rule Port 1947 1965 - Oct Sun>=1 2:00s 0 -
21410  {
21411  1947 /*fromYear*/,
21412  1965 /*toYear*/,
21413  10 /*inMonth*/,
21414  7 /*onDayOfWeek*/,
21415  1 /*onDayOfMonth*/,
21416  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21417  480 /*atTimeCode (7200/15)*/,
21418  0 /*deltaMinutes*/,
21419  0 /*letterIndex ("")*/,
21420  },
21421  // Rule Port 1976 only - Sep lastSun 1:00 0 -
21422  {
21423  1976 /*fromYear*/,
21424  1976 /*toYear*/,
21425  9 /*inMonth*/,
21426  7 /*onDayOfWeek*/,
21427  0 /*onDayOfMonth*/,
21428  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21429  240 /*atTimeCode (3600/15)*/,
21430  0 /*deltaMinutes*/,
21431  0 /*letterIndex ("")*/,
21432  },
21433  // Rule Port 1977 only - Mar lastSun 0:00s 1:00 S
21434  {
21435  1977 /*fromYear*/,
21436  1977 /*toYear*/,
21437  3 /*inMonth*/,
21438  7 /*onDayOfWeek*/,
21439  0 /*onDayOfMonth*/,
21440  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21441  0 /*atTimeCode (0/15)*/,
21442  60 /*deltaMinutes*/,
21443  25 /*letterIndex ("S")*/,
21444  },
21445  // Rule Port 1977 only - Sep lastSun 0:00s 0 -
21446  {
21447  1977 /*fromYear*/,
21448  1977 /*toYear*/,
21449  9 /*inMonth*/,
21450  7 /*onDayOfWeek*/,
21451  0 /*onDayOfMonth*/,
21452  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21453  0 /*atTimeCode (0/15)*/,
21454  0 /*deltaMinutes*/,
21455  0 /*letterIndex ("")*/,
21456  },
21457  // Rule Port 1978 1980 - Apr Sun>=1 1:00s 1:00 S
21458  {
21459  1978 /*fromYear*/,
21460  1980 /*toYear*/,
21461  4 /*inMonth*/,
21462  7 /*onDayOfWeek*/,
21463  1 /*onDayOfMonth*/,
21464  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21465  240 /*atTimeCode (3600/15)*/,
21466  60 /*deltaMinutes*/,
21467  25 /*letterIndex ("S")*/,
21468  },
21469  // Rule Port 1978 only - Oct 1 1:00s 0 -
21470  {
21471  1978 /*fromYear*/,
21472  1978 /*toYear*/,
21473  10 /*inMonth*/,
21474  0 /*onDayOfWeek*/,
21475  1 /*onDayOfMonth*/,
21476  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21477  240 /*atTimeCode (3600/15)*/,
21478  0 /*deltaMinutes*/,
21479  0 /*letterIndex ("")*/,
21480  },
21481  // Rule Port 1979 1980 - Sep lastSun 1:00s 0 -
21482  {
21483  1979 /*fromYear*/,
21484  1980 /*toYear*/,
21485  9 /*inMonth*/,
21486  7 /*onDayOfWeek*/,
21487  0 /*onDayOfMonth*/,
21488  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21489  240 /*atTimeCode (3600/15)*/,
21490  0 /*deltaMinutes*/,
21491  0 /*letterIndex ("")*/,
21492  },
21493  // Rule Port 1981 1986 - Mar lastSun 0:00s 1:00 S
21494  {
21495  1981 /*fromYear*/,
21496  1986 /*toYear*/,
21497  3 /*inMonth*/,
21498  7 /*onDayOfWeek*/,
21499  0 /*onDayOfMonth*/,
21500  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21501  0 /*atTimeCode (0/15)*/,
21502  60 /*deltaMinutes*/,
21503  25 /*letterIndex ("S")*/,
21504  },
21505  // Rule Port 1981 1985 - Sep lastSun 0:00s 0 -
21506  {
21507  1981 /*fromYear*/,
21508  1985 /*toYear*/,
21509  9 /*inMonth*/,
21510  7 /*onDayOfWeek*/,
21511  0 /*onDayOfMonth*/,
21512  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
21513  0 /*atTimeCode (0/15)*/,
21514  0 /*deltaMinutes*/,
21515  0 /*letterIndex ("")*/,
21516  },
21517 
21518 };
21519 
21520 const complete::Info::ZonePolicy kZonePolicyPort ACE_TIME_PROGMEM = {
21521  kZoneRulesPort /*rules*/,
21522  46 /*numRules*/,
21523 };
21524 
21525 //---------------------------------------------------------------------------
21526 // Policy name: Pulaski
21527 // Rules: 5
21528 //---------------------------------------------------------------------------
21529 
21530 static const complete::Info::ZoneRule kZoneRulesPulaski[] ACE_TIME_PROGMEM = {
21531  // Anchor: Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
21532  {
21533  -32767 /*fromYear*/,
21534  -32767 /*toYear*/,
21535  1 /*inMonth*/,
21536  0 /*onDayOfWeek*/,
21537  1 /*onDayOfMonth*/,
21538  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21539  0 /*atTimeCode (0/15)*/,
21540  0 /*deltaMinutes*/,
21541  25 /*letterIndex ("S")*/,
21542  },
21543  // Rule Pulaski 1946 1960 - Apr lastSun 2:00 1:00 D
21544  {
21545  1946 /*fromYear*/,
21546  1960 /*toYear*/,
21547  4 /*inMonth*/,
21548  7 /*onDayOfWeek*/,
21549  0 /*onDayOfMonth*/,
21550  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21551  480 /*atTimeCode (7200/15)*/,
21552  60 /*deltaMinutes*/,
21553  13 /*letterIndex ("D")*/,
21554  },
21555  // Rule Pulaski 1946 1954 - Sep lastSun 2:00 0 S
21556  {
21557  1946 /*fromYear*/,
21558  1954 /*toYear*/,
21559  9 /*inMonth*/,
21560  7 /*onDayOfWeek*/,
21561  0 /*onDayOfMonth*/,
21562  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21563  480 /*atTimeCode (7200/15)*/,
21564  0 /*deltaMinutes*/,
21565  25 /*letterIndex ("S")*/,
21566  },
21567  // Rule Pulaski 1955 1956 - Oct lastSun 2:00 0 S
21568  {
21569  1955 /*fromYear*/,
21570  1956 /*toYear*/,
21571  10 /*inMonth*/,
21572  7 /*onDayOfWeek*/,
21573  0 /*onDayOfMonth*/,
21574  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21575  480 /*atTimeCode (7200/15)*/,
21576  0 /*deltaMinutes*/,
21577  25 /*letterIndex ("S")*/,
21578  },
21579  // Rule Pulaski 1957 1960 - Sep lastSun 2:00 0 S
21580  {
21581  1957 /*fromYear*/,
21582  1960 /*toYear*/,
21583  9 /*inMonth*/,
21584  7 /*onDayOfWeek*/,
21585  0 /*onDayOfMonth*/,
21586  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21587  480 /*atTimeCode (7200/15)*/,
21588  0 /*deltaMinutes*/,
21589  25 /*letterIndex ("S")*/,
21590  },
21591 
21592 };
21593 
21594 const complete::Info::ZonePolicy kZonePolicyPulaski ACE_TIME_PROGMEM = {
21595  kZoneRulesPulaski /*rules*/,
21596  5 /*numRules*/,
21597 };
21598 
21599 //---------------------------------------------------------------------------
21600 // Policy name: ROK
21601 // Rules: 15
21602 //---------------------------------------------------------------------------
21603 
21604 static const complete::Info::ZoneRule kZoneRulesROK[] ACE_TIME_PROGMEM = {
21605  // Anchor: Rule ROK 1948 only - Sep 12 24:00 0 S
21606  {
21607  -32767 /*fromYear*/,
21608  -32767 /*toYear*/,
21609  1 /*inMonth*/,
21610  0 /*onDayOfWeek*/,
21611  1 /*onDayOfMonth*/,
21612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21613  0 /*atTimeCode (0/15)*/,
21614  0 /*deltaMinutes*/,
21615  25 /*letterIndex ("S")*/,
21616  },
21617  // Rule ROK 1948 only - Jun 1 0:00 1:00 D
21618  {
21619  1948 /*fromYear*/,
21620  1948 /*toYear*/,
21621  6 /*inMonth*/,
21622  0 /*onDayOfWeek*/,
21623  1 /*onDayOfMonth*/,
21624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21625  0 /*atTimeCode (0/15)*/,
21626  60 /*deltaMinutes*/,
21627  13 /*letterIndex ("D")*/,
21628  },
21629  // Rule ROK 1948 only - Sep 12 24:00 0 S
21630  {
21631  1948 /*fromYear*/,
21632  1948 /*toYear*/,
21633  9 /*inMonth*/,
21634  0 /*onDayOfWeek*/,
21635  12 /*onDayOfMonth*/,
21636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21637  5760 /*atTimeCode (86400/15)*/,
21638  0 /*deltaMinutes*/,
21639  25 /*letterIndex ("S")*/,
21640  },
21641  // Rule ROK 1949 only - Apr 3 0:00 1:00 D
21642  {
21643  1949 /*fromYear*/,
21644  1949 /*toYear*/,
21645  4 /*inMonth*/,
21646  0 /*onDayOfWeek*/,
21647  3 /*onDayOfMonth*/,
21648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21649  0 /*atTimeCode (0/15)*/,
21650  60 /*deltaMinutes*/,
21651  13 /*letterIndex ("D")*/,
21652  },
21653  // Rule ROK 1949 1951 - Sep Sat>=7 24:00 0 S
21654  {
21655  1949 /*fromYear*/,
21656  1951 /*toYear*/,
21657  9 /*inMonth*/,
21658  6 /*onDayOfWeek*/,
21659  7 /*onDayOfMonth*/,
21660  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21661  5760 /*atTimeCode (86400/15)*/,
21662  0 /*deltaMinutes*/,
21663  25 /*letterIndex ("S")*/,
21664  },
21665  // Rule ROK 1950 only - Apr 1 0:00 1:00 D
21666  {
21667  1950 /*fromYear*/,
21668  1950 /*toYear*/,
21669  4 /*inMonth*/,
21670  0 /*onDayOfWeek*/,
21671  1 /*onDayOfMonth*/,
21672  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21673  0 /*atTimeCode (0/15)*/,
21674  60 /*deltaMinutes*/,
21675  13 /*letterIndex ("D")*/,
21676  },
21677  // Rule ROK 1951 only - May 6 0:00 1:00 D
21678  {
21679  1951 /*fromYear*/,
21680  1951 /*toYear*/,
21681  5 /*inMonth*/,
21682  0 /*onDayOfWeek*/,
21683  6 /*onDayOfMonth*/,
21684  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21685  0 /*atTimeCode (0/15)*/,
21686  60 /*deltaMinutes*/,
21687  13 /*letterIndex ("D")*/,
21688  },
21689  // Rule ROK 1955 only - May 5 0:00 1:00 D
21690  {
21691  1955 /*fromYear*/,
21692  1955 /*toYear*/,
21693  5 /*inMonth*/,
21694  0 /*onDayOfWeek*/,
21695  5 /*onDayOfMonth*/,
21696  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21697  0 /*atTimeCode (0/15)*/,
21698  60 /*deltaMinutes*/,
21699  13 /*letterIndex ("D")*/,
21700  },
21701  // Rule ROK 1955 only - Sep 8 24:00 0 S
21702  {
21703  1955 /*fromYear*/,
21704  1955 /*toYear*/,
21705  9 /*inMonth*/,
21706  0 /*onDayOfWeek*/,
21707  8 /*onDayOfMonth*/,
21708  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21709  5760 /*atTimeCode (86400/15)*/,
21710  0 /*deltaMinutes*/,
21711  25 /*letterIndex ("S")*/,
21712  },
21713  // Rule ROK 1956 only - May 20 0:00 1:00 D
21714  {
21715  1956 /*fromYear*/,
21716  1956 /*toYear*/,
21717  5 /*inMonth*/,
21718  0 /*onDayOfWeek*/,
21719  20 /*onDayOfMonth*/,
21720  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21721  0 /*atTimeCode (0/15)*/,
21722  60 /*deltaMinutes*/,
21723  13 /*letterIndex ("D")*/,
21724  },
21725  // Rule ROK 1956 only - Sep 29 24:00 0 S
21726  {
21727  1956 /*fromYear*/,
21728  1956 /*toYear*/,
21729  9 /*inMonth*/,
21730  0 /*onDayOfWeek*/,
21731  29 /*onDayOfMonth*/,
21732  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21733  5760 /*atTimeCode (86400/15)*/,
21734  0 /*deltaMinutes*/,
21735  25 /*letterIndex ("S")*/,
21736  },
21737  // Rule ROK 1957 1960 - May Sun>=1 0:00 1:00 D
21738  {
21739  1957 /*fromYear*/,
21740  1960 /*toYear*/,
21741  5 /*inMonth*/,
21742  7 /*onDayOfWeek*/,
21743  1 /*onDayOfMonth*/,
21744  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21745  0 /*atTimeCode (0/15)*/,
21746  60 /*deltaMinutes*/,
21747  13 /*letterIndex ("D")*/,
21748  },
21749  // Rule ROK 1957 1960 - Sep Sat>=17 24:00 0 S
21750  {
21751  1957 /*fromYear*/,
21752  1960 /*toYear*/,
21753  9 /*inMonth*/,
21754  6 /*onDayOfWeek*/,
21755  17 /*onDayOfMonth*/,
21756  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21757  5760 /*atTimeCode (86400/15)*/,
21758  0 /*deltaMinutes*/,
21759  25 /*letterIndex ("S")*/,
21760  },
21761  // Rule ROK 1987 1988 - May Sun>=8 2:00 1:00 D
21762  {
21763  1987 /*fromYear*/,
21764  1988 /*toYear*/,
21765  5 /*inMonth*/,
21766  7 /*onDayOfWeek*/,
21767  8 /*onDayOfMonth*/,
21768  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21769  480 /*atTimeCode (7200/15)*/,
21770  60 /*deltaMinutes*/,
21771  13 /*letterIndex ("D")*/,
21772  },
21773  // Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
21774  {
21775  1987 /*fromYear*/,
21776  1988 /*toYear*/,
21777  10 /*inMonth*/,
21778  7 /*onDayOfWeek*/,
21779  8 /*onDayOfMonth*/,
21780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21781  720 /*atTimeCode (10800/15)*/,
21782  0 /*deltaMinutes*/,
21783  25 /*letterIndex ("S")*/,
21784  },
21785 
21786 };
21787 
21788 const complete::Info::ZonePolicy kZonePolicyROK ACE_TIME_PROGMEM = {
21789  kZoneRulesROK /*rules*/,
21790  15 /*numRules*/,
21791 };
21792 
21793 //---------------------------------------------------------------------------
21794 // Policy name: Regina
21795 // Rules: 18
21796 //---------------------------------------------------------------------------
21797 
21798 static const complete::Info::ZoneRule kZoneRulesRegina[] ACE_TIME_PROGMEM = {
21799  // Anchor: Rule Regina 1918 only - Oct 27 2:00 0 S
21800  {
21801  -32767 /*fromYear*/,
21802  -32767 /*toYear*/,
21803  1 /*inMonth*/,
21804  0 /*onDayOfWeek*/,
21805  1 /*onDayOfMonth*/,
21806  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21807  0 /*atTimeCode (0/15)*/,
21808  0 /*deltaMinutes*/,
21809  25 /*letterIndex ("S")*/,
21810  },
21811  // Rule Regina 1918 only - Apr 14 2:00 1:00 D
21812  {
21813  1918 /*fromYear*/,
21814  1918 /*toYear*/,
21815  4 /*inMonth*/,
21816  0 /*onDayOfWeek*/,
21817  14 /*onDayOfMonth*/,
21818  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21819  480 /*atTimeCode (7200/15)*/,
21820  60 /*deltaMinutes*/,
21821  13 /*letterIndex ("D")*/,
21822  },
21823  // Rule Regina 1918 only - Oct 27 2:00 0 S
21824  {
21825  1918 /*fromYear*/,
21826  1918 /*toYear*/,
21827  10 /*inMonth*/,
21828  0 /*onDayOfWeek*/,
21829  27 /*onDayOfMonth*/,
21830  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21831  480 /*atTimeCode (7200/15)*/,
21832  0 /*deltaMinutes*/,
21833  25 /*letterIndex ("S")*/,
21834  },
21835  // Rule Regina 1930 1934 - May Sun>=1 0:00 1:00 D
21836  {
21837  1930 /*fromYear*/,
21838  1934 /*toYear*/,
21839  5 /*inMonth*/,
21840  7 /*onDayOfWeek*/,
21841  1 /*onDayOfMonth*/,
21842  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21843  0 /*atTimeCode (0/15)*/,
21844  60 /*deltaMinutes*/,
21845  13 /*letterIndex ("D")*/,
21846  },
21847  // Rule Regina 1930 1934 - Oct Sun>=1 0:00 0 S
21848  {
21849  1930 /*fromYear*/,
21850  1934 /*toYear*/,
21851  10 /*inMonth*/,
21852  7 /*onDayOfWeek*/,
21853  1 /*onDayOfMonth*/,
21854  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21855  0 /*atTimeCode (0/15)*/,
21856  0 /*deltaMinutes*/,
21857  25 /*letterIndex ("S")*/,
21858  },
21859  // Rule Regina 1937 1941 - Apr Sun>=8 0:00 1:00 D
21860  {
21861  1937 /*fromYear*/,
21862  1941 /*toYear*/,
21863  4 /*inMonth*/,
21864  7 /*onDayOfWeek*/,
21865  8 /*onDayOfMonth*/,
21866  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21867  0 /*atTimeCode (0/15)*/,
21868  60 /*deltaMinutes*/,
21869  13 /*letterIndex ("D")*/,
21870  },
21871  // Rule Regina 1937 only - Oct Sun>=8 0:00 0 S
21872  {
21873  1937 /*fromYear*/,
21874  1937 /*toYear*/,
21875  10 /*inMonth*/,
21876  7 /*onDayOfWeek*/,
21877  8 /*onDayOfMonth*/,
21878  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21879  0 /*atTimeCode (0/15)*/,
21880  0 /*deltaMinutes*/,
21881  25 /*letterIndex ("S")*/,
21882  },
21883  // Rule Regina 1938 only - Oct Sun>=1 0:00 0 S
21884  {
21885  1938 /*fromYear*/,
21886  1938 /*toYear*/,
21887  10 /*inMonth*/,
21888  7 /*onDayOfWeek*/,
21889  1 /*onDayOfMonth*/,
21890  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21891  0 /*atTimeCode (0/15)*/,
21892  0 /*deltaMinutes*/,
21893  25 /*letterIndex ("S")*/,
21894  },
21895  // Rule Regina 1939 1941 - Oct Sun>=8 0:00 0 S
21896  {
21897  1939 /*fromYear*/,
21898  1941 /*toYear*/,
21899  10 /*inMonth*/,
21900  7 /*onDayOfWeek*/,
21901  8 /*onDayOfMonth*/,
21902  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21903  0 /*atTimeCode (0/15)*/,
21904  0 /*deltaMinutes*/,
21905  25 /*letterIndex ("S")*/,
21906  },
21907  // Rule Regina 1942 only - Feb 9 2:00 1:00 W
21908  {
21909  1942 /*fromYear*/,
21910  1942 /*toYear*/,
21911  2 /*inMonth*/,
21912  0 /*onDayOfWeek*/,
21913  9 /*onDayOfMonth*/,
21914  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21915  480 /*atTimeCode (7200/15)*/,
21916  60 /*deltaMinutes*/,
21917  26 /*letterIndex ("W")*/,
21918  },
21919  // Rule Regina 1945 only - Aug 14 23:00u 1:00 P
21920  {
21921  1945 /*fromYear*/,
21922  1945 /*toYear*/,
21923  8 /*inMonth*/,
21924  0 /*onDayOfWeek*/,
21925  14 /*onDayOfMonth*/,
21926  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
21927  5520 /*atTimeCode (82800/15)*/,
21928  60 /*deltaMinutes*/,
21929  24 /*letterIndex ("P")*/,
21930  },
21931  // Rule Regina 1945 only - Sep lastSun 2:00 0 S
21932  {
21933  1945 /*fromYear*/,
21934  1945 /*toYear*/,
21935  9 /*inMonth*/,
21936  7 /*onDayOfWeek*/,
21937  0 /*onDayOfMonth*/,
21938  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21939  480 /*atTimeCode (7200/15)*/,
21940  0 /*deltaMinutes*/,
21941  25 /*letterIndex ("S")*/,
21942  },
21943  // Rule Regina 1946 only - Apr Sun>=8 2:00 1:00 D
21944  {
21945  1946 /*fromYear*/,
21946  1946 /*toYear*/,
21947  4 /*inMonth*/,
21948  7 /*onDayOfWeek*/,
21949  8 /*onDayOfMonth*/,
21950  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21951  480 /*atTimeCode (7200/15)*/,
21952  60 /*deltaMinutes*/,
21953  13 /*letterIndex ("D")*/,
21954  },
21955  // Rule Regina 1946 only - Oct Sun>=8 2:00 0 S
21956  {
21957  1946 /*fromYear*/,
21958  1946 /*toYear*/,
21959  10 /*inMonth*/,
21960  7 /*onDayOfWeek*/,
21961  8 /*onDayOfMonth*/,
21962  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21963  480 /*atTimeCode (7200/15)*/,
21964  0 /*deltaMinutes*/,
21965  25 /*letterIndex ("S")*/,
21966  },
21967  // Rule Regina 1947 1957 - Apr lastSun 2:00 1:00 D
21968  {
21969  1947 /*fromYear*/,
21970  1957 /*toYear*/,
21971  4 /*inMonth*/,
21972  7 /*onDayOfWeek*/,
21973  0 /*onDayOfMonth*/,
21974  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21975  480 /*atTimeCode (7200/15)*/,
21976  60 /*deltaMinutes*/,
21977  13 /*letterIndex ("D")*/,
21978  },
21979  // Rule Regina 1947 1957 - Sep lastSun 2:00 0 S
21980  {
21981  1947 /*fromYear*/,
21982  1957 /*toYear*/,
21983  9 /*inMonth*/,
21984  7 /*onDayOfWeek*/,
21985  0 /*onDayOfMonth*/,
21986  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21987  480 /*atTimeCode (7200/15)*/,
21988  0 /*deltaMinutes*/,
21989  25 /*letterIndex ("S")*/,
21990  },
21991  // Rule Regina 1959 only - Apr lastSun 2:00 1:00 D
21992  {
21993  1959 /*fromYear*/,
21994  1959 /*toYear*/,
21995  4 /*inMonth*/,
21996  7 /*onDayOfWeek*/,
21997  0 /*onDayOfMonth*/,
21998  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
21999  480 /*atTimeCode (7200/15)*/,
22000  60 /*deltaMinutes*/,
22001  13 /*letterIndex ("D")*/,
22002  },
22003  // Rule Regina 1959 only - Oct lastSun 2:00 0 S
22004  {
22005  1959 /*fromYear*/,
22006  1959 /*toYear*/,
22007  10 /*inMonth*/,
22008  7 /*onDayOfWeek*/,
22009  0 /*onDayOfMonth*/,
22010  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22011  480 /*atTimeCode (7200/15)*/,
22012  0 /*deltaMinutes*/,
22013  25 /*letterIndex ("S")*/,
22014  },
22015 
22016 };
22017 
22018 const complete::Info::ZonePolicy kZonePolicyRegina ACE_TIME_PROGMEM = {
22019  kZoneRulesRegina /*rules*/,
22020  18 /*numRules*/,
22021 };
22022 
22023 //---------------------------------------------------------------------------
22024 // Policy name: Romania
22025 // Rules: 10
22026 //---------------------------------------------------------------------------
22027 
22028 static const complete::Info::ZoneRule kZoneRulesRomania[] ACE_TIME_PROGMEM = {
22029  // Anchor: Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
22030  {
22031  -32767 /*fromYear*/,
22032  -32767 /*toYear*/,
22033  1 /*inMonth*/,
22034  0 /*onDayOfWeek*/,
22035  1 /*onDayOfMonth*/,
22036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22037  0 /*atTimeCode (0/15)*/,
22038  0 /*deltaMinutes*/,
22039  0 /*letterIndex ("")*/,
22040  },
22041  // Rule Romania 1932 only - May 21 0:00s 1:00 S
22042  {
22043  1932 /*fromYear*/,
22044  1932 /*toYear*/,
22045  5 /*inMonth*/,
22046  0 /*onDayOfWeek*/,
22047  21 /*onDayOfMonth*/,
22048  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22049  0 /*atTimeCode (0/15)*/,
22050  60 /*deltaMinutes*/,
22051  25 /*letterIndex ("S")*/,
22052  },
22053  // Rule Romania 1932 1939 - Oct Sun>=1 0:00s 0 -
22054  {
22055  1932 /*fromYear*/,
22056  1939 /*toYear*/,
22057  10 /*inMonth*/,
22058  7 /*onDayOfWeek*/,
22059  1 /*onDayOfMonth*/,
22060  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22061  0 /*atTimeCode (0/15)*/,
22062  0 /*deltaMinutes*/,
22063  0 /*letterIndex ("")*/,
22064  },
22065  // Rule Romania 1933 1939 - Apr Sun>=2 0:00s 1:00 S
22066  {
22067  1933 /*fromYear*/,
22068  1939 /*toYear*/,
22069  4 /*inMonth*/,
22070  7 /*onDayOfWeek*/,
22071  2 /*onDayOfMonth*/,
22072  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22073  0 /*atTimeCode (0/15)*/,
22074  60 /*deltaMinutes*/,
22075  25 /*letterIndex ("S")*/,
22076  },
22077  // Rule Romania 1979 only - May 27 0:00 1:00 S
22078  {
22079  1979 /*fromYear*/,
22080  1979 /*toYear*/,
22081  5 /*inMonth*/,
22082  0 /*onDayOfWeek*/,
22083  27 /*onDayOfMonth*/,
22084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22085  0 /*atTimeCode (0/15)*/,
22086  60 /*deltaMinutes*/,
22087  25 /*letterIndex ("S")*/,
22088  },
22089  // Rule Romania 1979 only - Sep lastSun 0:00 0 -
22090  {
22091  1979 /*fromYear*/,
22092  1979 /*toYear*/,
22093  9 /*inMonth*/,
22094  7 /*onDayOfWeek*/,
22095  0 /*onDayOfMonth*/,
22096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22097  0 /*atTimeCode (0/15)*/,
22098  0 /*deltaMinutes*/,
22099  0 /*letterIndex ("")*/,
22100  },
22101  // Rule Romania 1980 only - Apr 5 23:00 1:00 S
22102  {
22103  1980 /*fromYear*/,
22104  1980 /*toYear*/,
22105  4 /*inMonth*/,
22106  0 /*onDayOfWeek*/,
22107  5 /*onDayOfMonth*/,
22108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22109  5520 /*atTimeCode (82800/15)*/,
22110  60 /*deltaMinutes*/,
22111  25 /*letterIndex ("S")*/,
22112  },
22113  // Rule Romania 1980 only - Sep lastSun 1:00 0 -
22114  {
22115  1980 /*fromYear*/,
22116  1980 /*toYear*/,
22117  9 /*inMonth*/,
22118  7 /*onDayOfWeek*/,
22119  0 /*onDayOfMonth*/,
22120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22121  240 /*atTimeCode (3600/15)*/,
22122  0 /*deltaMinutes*/,
22123  0 /*letterIndex ("")*/,
22124  },
22125  // Rule Romania 1991 1993 - Mar lastSun 0:00s 1:00 S
22126  {
22127  1991 /*fromYear*/,
22128  1993 /*toYear*/,
22129  3 /*inMonth*/,
22130  7 /*onDayOfWeek*/,
22131  0 /*onDayOfMonth*/,
22132  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22133  0 /*atTimeCode (0/15)*/,
22134  60 /*deltaMinutes*/,
22135  25 /*letterIndex ("S")*/,
22136  },
22137  // Rule Romania 1991 1993 - Sep lastSun 0:00s 0 -
22138  {
22139  1991 /*fromYear*/,
22140  1993 /*toYear*/,
22141  9 /*inMonth*/,
22142  7 /*onDayOfWeek*/,
22143  0 /*onDayOfMonth*/,
22144  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22145  0 /*atTimeCode (0/15)*/,
22146  0 /*deltaMinutes*/,
22147  0 /*letterIndex ("")*/,
22148  },
22149 
22150 };
22151 
22152 const complete::Info::ZonePolicy kZonePolicyRomania ACE_TIME_PROGMEM = {
22153  kZoneRulesRomania /*rules*/,
22154  10 /*numRules*/,
22155 };
22156 
22157 //---------------------------------------------------------------------------
22158 // Policy name: Russia
22159 // Rules: 17
22160 //---------------------------------------------------------------------------
22161 
22162 static const complete::Info::ZoneRule kZoneRulesRussia[] ACE_TIME_PROGMEM = {
22163  // Anchor: Rule Russia 1917 only - Dec 28 0:00 0 MMT
22164  {
22165  -32767 /*fromYear*/,
22166  -32767 /*toYear*/,
22167  1 /*inMonth*/,
22168  0 /*onDayOfWeek*/,
22169  1 /*onDayOfMonth*/,
22170  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22171  0 /*atTimeCode (0/15)*/,
22172  0 /*deltaMinutes*/,
22173  20 /*letterIndex ("MMT")*/,
22174  },
22175  // Rule Russia 1917 only - Jul 1 23:00 1:00 MST
22176  {
22177  1917 /*fromYear*/,
22178  1917 /*toYear*/,
22179  7 /*inMonth*/,
22180  0 /*onDayOfWeek*/,
22181  1 /*onDayOfMonth*/,
22182  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22183  5520 /*atTimeCode (82800/15)*/,
22184  60 /*deltaMinutes*/,
22185  23 /*letterIndex ("MST")*/,
22186  },
22187  // Rule Russia 1917 only - Dec 28 0:00 0 MMT
22188  {
22189  1917 /*fromYear*/,
22190  1917 /*toYear*/,
22191  12 /*inMonth*/,
22192  0 /*onDayOfWeek*/,
22193  28 /*onDayOfMonth*/,
22194  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22195  0 /*atTimeCode (0/15)*/,
22196  0 /*deltaMinutes*/,
22197  20 /*letterIndex ("MMT")*/,
22198  },
22199  // Rule Russia 1918 only - May 31 22:00 2:00 MDST
22200  {
22201  1918 /*fromYear*/,
22202  1918 /*toYear*/,
22203  5 /*inMonth*/,
22204  0 /*onDayOfWeek*/,
22205  31 /*onDayOfMonth*/,
22206  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22207  5280 /*atTimeCode (79200/15)*/,
22208  120 /*deltaMinutes*/,
22209  19 /*letterIndex ("MDST")*/,
22210  },
22211  // Rule Russia 1918 only - Sep 16 1:00 1:00 MST
22212  {
22213  1918 /*fromYear*/,
22214  1918 /*toYear*/,
22215  9 /*inMonth*/,
22216  0 /*onDayOfWeek*/,
22217  16 /*onDayOfMonth*/,
22218  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22219  240 /*atTimeCode (3600/15)*/,
22220  60 /*deltaMinutes*/,
22221  23 /*letterIndex ("MST")*/,
22222  },
22223  // Rule Russia 1919 only - May 31 23:00 2:00 MDST
22224  {
22225  1919 /*fromYear*/,
22226  1919 /*toYear*/,
22227  5 /*inMonth*/,
22228  0 /*onDayOfWeek*/,
22229  31 /*onDayOfMonth*/,
22230  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22231  5520 /*atTimeCode (82800/15)*/,
22232  120 /*deltaMinutes*/,
22233  19 /*letterIndex ("MDST")*/,
22234  },
22235  // Rule Russia 1919 only - Jul 1 0:00u 1:00 MSD
22236  {
22237  1919 /*fromYear*/,
22238  1919 /*toYear*/,
22239  7 /*inMonth*/,
22240  0 /*onDayOfWeek*/,
22241  1 /*onDayOfMonth*/,
22242  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
22243  0 /*atTimeCode (0/15)*/,
22244  60 /*deltaMinutes*/,
22245  21 /*letterIndex ("MSD")*/,
22246  },
22247  // Rule Russia 1919 only - Aug 16 0:00 0 MSK
22248  {
22249  1919 /*fromYear*/,
22250  1919 /*toYear*/,
22251  8 /*inMonth*/,
22252  0 /*onDayOfWeek*/,
22253  16 /*onDayOfMonth*/,
22254  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22255  0 /*atTimeCode (0/15)*/,
22256  0 /*deltaMinutes*/,
22257  22 /*letterIndex ("MSK")*/,
22258  },
22259  // Rule Russia 1921 only - Feb 14 23:00 1:00 MSD
22260  {
22261  1921 /*fromYear*/,
22262  1921 /*toYear*/,
22263  2 /*inMonth*/,
22264  0 /*onDayOfWeek*/,
22265  14 /*onDayOfMonth*/,
22266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22267  5520 /*atTimeCode (82800/15)*/,
22268  60 /*deltaMinutes*/,
22269  21 /*letterIndex ("MSD")*/,
22270  },
22271  // Rule Russia 1921 only - Mar 20 23:00 2:00 +05
22272  {
22273  1921 /*fromYear*/,
22274  1921 /*toYear*/,
22275  3 /*inMonth*/,
22276  0 /*onDayOfWeek*/,
22277  20 /*onDayOfMonth*/,
22278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22279  5520 /*atTimeCode (82800/15)*/,
22280  120 /*deltaMinutes*/,
22281  3 /*letterIndex ("+05")*/,
22282  },
22283  // Rule Russia 1921 only - Sep 1 0:00 1:00 MSD
22284  {
22285  1921 /*fromYear*/,
22286  1921 /*toYear*/,
22287  9 /*inMonth*/,
22288  0 /*onDayOfWeek*/,
22289  1 /*onDayOfMonth*/,
22290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22291  0 /*atTimeCode (0/15)*/,
22292  60 /*deltaMinutes*/,
22293  21 /*letterIndex ("MSD")*/,
22294  },
22295  // Rule Russia 1921 only - Oct 1 0:00 0 -
22296  {
22297  1921 /*fromYear*/,
22298  1921 /*toYear*/,
22299  10 /*inMonth*/,
22300  0 /*onDayOfWeek*/,
22301  1 /*onDayOfMonth*/,
22302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22303  0 /*atTimeCode (0/15)*/,
22304  0 /*deltaMinutes*/,
22305  0 /*letterIndex ("")*/,
22306  },
22307  // Rule Russia 1981 1984 - Apr 1 0:00 1:00 S
22308  {
22309  1981 /*fromYear*/,
22310  1984 /*toYear*/,
22311  4 /*inMonth*/,
22312  0 /*onDayOfWeek*/,
22313  1 /*onDayOfMonth*/,
22314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22315  0 /*atTimeCode (0/15)*/,
22316  60 /*deltaMinutes*/,
22317  25 /*letterIndex ("S")*/,
22318  },
22319  // Rule Russia 1981 1983 - Oct 1 0:00 0 -
22320  {
22321  1981 /*fromYear*/,
22322  1983 /*toYear*/,
22323  10 /*inMonth*/,
22324  0 /*onDayOfWeek*/,
22325  1 /*onDayOfMonth*/,
22326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22327  0 /*atTimeCode (0/15)*/,
22328  0 /*deltaMinutes*/,
22329  0 /*letterIndex ("")*/,
22330  },
22331  // Rule Russia 1984 1995 - Sep lastSun 2:00s 0 -
22332  {
22333  1984 /*fromYear*/,
22334  1995 /*toYear*/,
22335  9 /*inMonth*/,
22336  7 /*onDayOfWeek*/,
22337  0 /*onDayOfMonth*/,
22338  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22339  480 /*atTimeCode (7200/15)*/,
22340  0 /*deltaMinutes*/,
22341  0 /*letterIndex ("")*/,
22342  },
22343  // Rule Russia 1985 2010 - Mar lastSun 2:00s 1:00 S
22344  {
22345  1985 /*fromYear*/,
22346  2010 /*toYear*/,
22347  3 /*inMonth*/,
22348  7 /*onDayOfWeek*/,
22349  0 /*onDayOfMonth*/,
22350  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22351  480 /*atTimeCode (7200/15)*/,
22352  60 /*deltaMinutes*/,
22353  25 /*letterIndex ("S")*/,
22354  },
22355  // Rule Russia 1996 2010 - Oct lastSun 2:00s 0 -
22356  {
22357  1996 /*fromYear*/,
22358  2010 /*toYear*/,
22359  10 /*inMonth*/,
22360  7 /*onDayOfWeek*/,
22361  0 /*onDayOfMonth*/,
22362  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22363  480 /*atTimeCode (7200/15)*/,
22364  0 /*deltaMinutes*/,
22365  0 /*letterIndex ("")*/,
22366  },
22367 
22368 };
22369 
22370 const complete::Info::ZonePolicy kZonePolicyRussia ACE_TIME_PROGMEM = {
22371  kZoneRulesRussia /*rules*/,
22372  17 /*numRules*/,
22373 };
22374 
22375 //---------------------------------------------------------------------------
22376 // Policy name: RussiaAsia
22377 // Rules: 6
22378 //---------------------------------------------------------------------------
22379 
22380 static const complete::Info::ZoneRule kZoneRulesRussiaAsia[] ACE_TIME_PROGMEM = {
22381  // Anchor: Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 -
22382  {
22383  -32767 /*fromYear*/,
22384  -32767 /*toYear*/,
22385  1 /*inMonth*/,
22386  0 /*onDayOfWeek*/,
22387  1 /*onDayOfMonth*/,
22388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22389  0 /*atTimeCode (0/15)*/,
22390  0 /*deltaMinutes*/,
22391  0 /*letterIndex ("")*/,
22392  },
22393  // Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 -
22394  {
22395  1981 /*fromYear*/,
22396  1984 /*toYear*/,
22397  4 /*inMonth*/,
22398  0 /*onDayOfWeek*/,
22399  1 /*onDayOfMonth*/,
22400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22401  0 /*atTimeCode (0/15)*/,
22402  60 /*deltaMinutes*/,
22403  0 /*letterIndex ("")*/,
22404  },
22405  // Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 -
22406  {
22407  1981 /*fromYear*/,
22408  1983 /*toYear*/,
22409  10 /*inMonth*/,
22410  0 /*onDayOfWeek*/,
22411  1 /*onDayOfMonth*/,
22412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22413  0 /*atTimeCode (0/15)*/,
22414  0 /*deltaMinutes*/,
22415  0 /*letterIndex ("")*/,
22416  },
22417  // Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
22418  {
22419  1984 /*fromYear*/,
22420  1995 /*toYear*/,
22421  9 /*inMonth*/,
22422  7 /*onDayOfWeek*/,
22423  0 /*onDayOfMonth*/,
22424  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22425  480 /*atTimeCode (7200/15)*/,
22426  0 /*deltaMinutes*/,
22427  0 /*letterIndex ("")*/,
22428  },
22429  // Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 -
22430  {
22431  1985 /*fromYear*/,
22432  2010 /*toYear*/,
22433  3 /*inMonth*/,
22434  7 /*onDayOfWeek*/,
22435  0 /*onDayOfMonth*/,
22436  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22437  480 /*atTimeCode (7200/15)*/,
22438  60 /*deltaMinutes*/,
22439  0 /*letterIndex ("")*/,
22440  },
22441  // Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 -
22442  {
22443  1996 /*fromYear*/,
22444  2010 /*toYear*/,
22445  10 /*inMonth*/,
22446  7 /*onDayOfWeek*/,
22447  0 /*onDayOfMonth*/,
22448  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22449  480 /*atTimeCode (7200/15)*/,
22450  0 /*deltaMinutes*/,
22451  0 /*letterIndex ("")*/,
22452  },
22453 
22454 };
22455 
22456 const complete::Info::ZonePolicy kZonePolicyRussiaAsia ACE_TIME_PROGMEM = {
22457  kZoneRulesRussiaAsia /*rules*/,
22458  6 /*numRules*/,
22459 };
22460 
22461 //---------------------------------------------------------------------------
22462 // Policy name: SA
22463 // Rules: 3
22464 //---------------------------------------------------------------------------
22465 
22466 static const complete::Info::ZoneRule kZoneRulesSA[] ACE_TIME_PROGMEM = {
22467  // Anchor: Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
22468  {
22469  -32767 /*fromYear*/,
22470  -32767 /*toYear*/,
22471  1 /*inMonth*/,
22472  0 /*onDayOfWeek*/,
22473  1 /*onDayOfMonth*/,
22474  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22475  0 /*atTimeCode (0/15)*/,
22476  0 /*deltaMinutes*/,
22477  0 /*letterIndex ("")*/,
22478  },
22479  // Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 -
22480  {
22481  1942 /*fromYear*/,
22482  1943 /*toYear*/,
22483  9 /*inMonth*/,
22484  7 /*onDayOfWeek*/,
22485  15 /*onDayOfMonth*/,
22486  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22487  480 /*atTimeCode (7200/15)*/,
22488  60 /*deltaMinutes*/,
22489  0 /*letterIndex ("")*/,
22490  },
22491  // Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
22492  {
22493  1943 /*fromYear*/,
22494  1944 /*toYear*/,
22495  3 /*inMonth*/,
22496  7 /*onDayOfWeek*/,
22497  15 /*onDayOfMonth*/,
22498  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22499  480 /*atTimeCode (7200/15)*/,
22500  0 /*deltaMinutes*/,
22501  0 /*letterIndex ("")*/,
22502  },
22503 
22504 };
22505 
22506 const complete::Info::ZonePolicy kZonePolicySA ACE_TIME_PROGMEM = {
22507  kZoneRulesSA /*rules*/,
22508  3 /*numRules*/,
22509 };
22510 
22511 //---------------------------------------------------------------------------
22512 // Policy name: Salv
22513 // Rules: 3
22514 //---------------------------------------------------------------------------
22515 
22516 static const complete::Info::ZoneRule kZoneRulesSalv[] ACE_TIME_PROGMEM = {
22517  // Anchor: Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
22518  {
22519  -32767 /*fromYear*/,
22520  -32767 /*toYear*/,
22521  1 /*inMonth*/,
22522  0 /*onDayOfWeek*/,
22523  1 /*onDayOfMonth*/,
22524  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22525  0 /*atTimeCode (0/15)*/,
22526  0 /*deltaMinutes*/,
22527  25 /*letterIndex ("S")*/,
22528  },
22529  // Rule Salv 1987 1988 - May Sun>=1 0:00 1:00 D
22530  {
22531  1987 /*fromYear*/,
22532  1988 /*toYear*/,
22533  5 /*inMonth*/,
22534  7 /*onDayOfWeek*/,
22535  1 /*onDayOfMonth*/,
22536  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22537  0 /*atTimeCode (0/15)*/,
22538  60 /*deltaMinutes*/,
22539  13 /*letterIndex ("D")*/,
22540  },
22541  // Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
22542  {
22543  1987 /*fromYear*/,
22544  1988 /*toYear*/,
22545  9 /*inMonth*/,
22546  7 /*onDayOfWeek*/,
22547  0 /*onDayOfMonth*/,
22548  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22549  0 /*atTimeCode (0/15)*/,
22550  0 /*deltaMinutes*/,
22551  25 /*letterIndex ("S")*/,
22552  },
22553 
22554 };
22555 
22556 const complete::Info::ZonePolicy kZonePolicySalv ACE_TIME_PROGMEM = {
22557  kZoneRulesSalv /*rules*/,
22558  3 /*numRules*/,
22559 };
22560 
22561 //---------------------------------------------------------------------------
22562 // Policy name: SanLuis
22563 // Rules: 3
22564 //---------------------------------------------------------------------------
22565 
22566 static const complete::Info::ZoneRule kZoneRulesSanLuis[] ACE_TIME_PROGMEM = {
22567  // Anchor: Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
22568  {
22569  -32767 /*fromYear*/,
22570  -32767 /*toYear*/,
22571  1 /*inMonth*/,
22572  0 /*onDayOfWeek*/,
22573  1 /*onDayOfMonth*/,
22574  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22575  0 /*atTimeCode (0/15)*/,
22576  0 /*deltaMinutes*/,
22577  0 /*letterIndex ("")*/,
22578  },
22579  // Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
22580  {
22581  2008 /*fromYear*/,
22582  2009 /*toYear*/,
22583  3 /*inMonth*/,
22584  7 /*onDayOfWeek*/,
22585  8 /*onDayOfMonth*/,
22586  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22587  0 /*atTimeCode (0/15)*/,
22588  0 /*deltaMinutes*/,
22589  0 /*letterIndex ("")*/,
22590  },
22591  // Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 -
22592  {
22593  2007 /*fromYear*/,
22594  2008 /*toYear*/,
22595  10 /*inMonth*/,
22596  7 /*onDayOfWeek*/,
22597  8 /*onDayOfMonth*/,
22598  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22599  0 /*atTimeCode (0/15)*/,
22600  60 /*deltaMinutes*/,
22601  0 /*letterIndex ("")*/,
22602  },
22603 
22604 };
22605 
22606 const complete::Info::ZonePolicy kZonePolicySanLuis ACE_TIME_PROGMEM = {
22607  kZoneRulesSanLuis /*rules*/,
22608  3 /*numRules*/,
22609 };
22610 
22611 //---------------------------------------------------------------------------
22612 // Policy name: Shang
22613 // Rules: 15
22614 //---------------------------------------------------------------------------
22615 
22616 static const complete::Info::ZoneRule kZoneRulesShang[] ACE_TIME_PROGMEM = {
22617  // Anchor: Rule Shang 1919 only - Sep 30 24:00 0 S
22618  {
22619  -32767 /*fromYear*/,
22620  -32767 /*toYear*/,
22621  1 /*inMonth*/,
22622  0 /*onDayOfWeek*/,
22623  1 /*onDayOfMonth*/,
22624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22625  0 /*atTimeCode (0/15)*/,
22626  0 /*deltaMinutes*/,
22627  25 /*letterIndex ("S")*/,
22628  },
22629  // Rule Shang 1919 only - Apr 12 24:00 1:00 D
22630  {
22631  1919 /*fromYear*/,
22632  1919 /*toYear*/,
22633  4 /*inMonth*/,
22634  0 /*onDayOfWeek*/,
22635  12 /*onDayOfMonth*/,
22636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22637  5760 /*atTimeCode (86400/15)*/,
22638  60 /*deltaMinutes*/,
22639  13 /*letterIndex ("D")*/,
22640  },
22641  // Rule Shang 1919 only - Sep 30 24:00 0 S
22642  {
22643  1919 /*fromYear*/,
22644  1919 /*toYear*/,
22645  9 /*inMonth*/,
22646  0 /*onDayOfWeek*/,
22647  30 /*onDayOfMonth*/,
22648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22649  5760 /*atTimeCode (86400/15)*/,
22650  0 /*deltaMinutes*/,
22651  25 /*letterIndex ("S")*/,
22652  },
22653  // Rule Shang 1940 only - Jun 1 0:00 1:00 D
22654  {
22655  1940 /*fromYear*/,
22656  1940 /*toYear*/,
22657  6 /*inMonth*/,
22658  0 /*onDayOfWeek*/,
22659  1 /*onDayOfMonth*/,
22660  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22661  0 /*atTimeCode (0/15)*/,
22662  60 /*deltaMinutes*/,
22663  13 /*letterIndex ("D")*/,
22664  },
22665  // Rule Shang 1940 only - Oct 12 24:00 0 S
22666  {
22667  1940 /*fromYear*/,
22668  1940 /*toYear*/,
22669  10 /*inMonth*/,
22670  0 /*onDayOfWeek*/,
22671  12 /*onDayOfMonth*/,
22672  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22673  5760 /*atTimeCode (86400/15)*/,
22674  0 /*deltaMinutes*/,
22675  25 /*letterIndex ("S")*/,
22676  },
22677  // Rule Shang 1941 only - Mar 15 0:00 1:00 D
22678  {
22679  1941 /*fromYear*/,
22680  1941 /*toYear*/,
22681  3 /*inMonth*/,
22682  0 /*onDayOfWeek*/,
22683  15 /*onDayOfMonth*/,
22684  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22685  0 /*atTimeCode (0/15)*/,
22686  60 /*deltaMinutes*/,
22687  13 /*letterIndex ("D")*/,
22688  },
22689  // Rule Shang 1941 only - Nov 1 24:00 0 S
22690  {
22691  1941 /*fromYear*/,
22692  1941 /*toYear*/,
22693  11 /*inMonth*/,
22694  0 /*onDayOfWeek*/,
22695  1 /*onDayOfMonth*/,
22696  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22697  5760 /*atTimeCode (86400/15)*/,
22698  0 /*deltaMinutes*/,
22699  25 /*letterIndex ("S")*/,
22700  },
22701  // Rule Shang 1942 only - Jan 31 0:00 1:00 D
22702  {
22703  1942 /*fromYear*/,
22704  1942 /*toYear*/,
22705  1 /*inMonth*/,
22706  0 /*onDayOfWeek*/,
22707  31 /*onDayOfMonth*/,
22708  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22709  0 /*atTimeCode (0/15)*/,
22710  60 /*deltaMinutes*/,
22711  13 /*letterIndex ("D")*/,
22712  },
22713  // Rule Shang 1945 only - Sep 1 24:00 0 S
22714  {
22715  1945 /*fromYear*/,
22716  1945 /*toYear*/,
22717  9 /*inMonth*/,
22718  0 /*onDayOfWeek*/,
22719  1 /*onDayOfMonth*/,
22720  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22721  5760 /*atTimeCode (86400/15)*/,
22722  0 /*deltaMinutes*/,
22723  25 /*letterIndex ("S")*/,
22724  },
22725  // Rule Shang 1946 only - May 15 0:00 1:00 D
22726  {
22727  1946 /*fromYear*/,
22728  1946 /*toYear*/,
22729  5 /*inMonth*/,
22730  0 /*onDayOfWeek*/,
22731  15 /*onDayOfMonth*/,
22732  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22733  0 /*atTimeCode (0/15)*/,
22734  60 /*deltaMinutes*/,
22735  13 /*letterIndex ("D")*/,
22736  },
22737  // Rule Shang 1946 only - Sep 30 24:00 0 S
22738  {
22739  1946 /*fromYear*/,
22740  1946 /*toYear*/,
22741  9 /*inMonth*/,
22742  0 /*onDayOfWeek*/,
22743  30 /*onDayOfMonth*/,
22744  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22745  5760 /*atTimeCode (86400/15)*/,
22746  0 /*deltaMinutes*/,
22747  25 /*letterIndex ("S")*/,
22748  },
22749  // Rule Shang 1947 only - Apr 15 0:00 1:00 D
22750  {
22751  1947 /*fromYear*/,
22752  1947 /*toYear*/,
22753  4 /*inMonth*/,
22754  0 /*onDayOfWeek*/,
22755  15 /*onDayOfMonth*/,
22756  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22757  0 /*atTimeCode (0/15)*/,
22758  60 /*deltaMinutes*/,
22759  13 /*letterIndex ("D")*/,
22760  },
22761  // Rule Shang 1947 only - Oct 31 24:00 0 S
22762  {
22763  1947 /*fromYear*/,
22764  1947 /*toYear*/,
22765  10 /*inMonth*/,
22766  0 /*onDayOfWeek*/,
22767  31 /*onDayOfMonth*/,
22768  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22769  5760 /*atTimeCode (86400/15)*/,
22770  0 /*deltaMinutes*/,
22771  25 /*letterIndex ("S")*/,
22772  },
22773  // Rule Shang 1948 1949 - May 1 0:00 1:00 D
22774  {
22775  1948 /*fromYear*/,
22776  1949 /*toYear*/,
22777  5 /*inMonth*/,
22778  0 /*onDayOfWeek*/,
22779  1 /*onDayOfMonth*/,
22780  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22781  0 /*atTimeCode (0/15)*/,
22782  60 /*deltaMinutes*/,
22783  13 /*letterIndex ("D")*/,
22784  },
22785  // Rule Shang 1948 1949 - Sep 30 24:00 0 S
22786  {
22787  1948 /*fromYear*/,
22788  1949 /*toYear*/,
22789  9 /*inMonth*/,
22790  0 /*onDayOfWeek*/,
22791  30 /*onDayOfMonth*/,
22792  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22793  5760 /*atTimeCode (86400/15)*/,
22794  0 /*deltaMinutes*/,
22795  25 /*letterIndex ("S")*/,
22796  },
22797 
22798 };
22799 
22800 const complete::Info::ZonePolicy kZonePolicyShang ACE_TIME_PROGMEM = {
22801  kZoneRulesShang /*rules*/,
22802  15 /*numRules*/,
22803 };
22804 
22805 //---------------------------------------------------------------------------
22806 // Policy name: SovietZone
22807 // Rules: 4
22808 //---------------------------------------------------------------------------
22809 
22810 static const complete::Info::ZoneRule kZoneRulesSovietZone[] ACE_TIME_PROGMEM = {
22811  // Anchor: Rule SovietZone 1945 only - Nov 18 2:00s 0 -
22812  {
22813  -32767 /*fromYear*/,
22814  -32767 /*toYear*/,
22815  1 /*inMonth*/,
22816  0 /*onDayOfWeek*/,
22817  1 /*onDayOfMonth*/,
22818  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22819  0 /*atTimeCode (0/15)*/,
22820  0 /*deltaMinutes*/,
22821  0 /*letterIndex ("")*/,
22822  },
22823  // Rule SovietZone 1945 only - May 24 2:00 2:00 M
22824  {
22825  1945 /*fromYear*/,
22826  1945 /*toYear*/,
22827  5 /*inMonth*/,
22828  0 /*onDayOfWeek*/,
22829  24 /*onDayOfMonth*/,
22830  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22831  480 /*atTimeCode (7200/15)*/,
22832  120 /*deltaMinutes*/,
22833  18 /*letterIndex ("M")*/,
22834  },
22835  // Rule SovietZone 1945 only - Sep 24 3:00 1:00 S
22836  {
22837  1945 /*fromYear*/,
22838  1945 /*toYear*/,
22839  9 /*inMonth*/,
22840  0 /*onDayOfWeek*/,
22841  24 /*onDayOfMonth*/,
22842  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22843  720 /*atTimeCode (10800/15)*/,
22844  60 /*deltaMinutes*/,
22845  25 /*letterIndex ("S")*/,
22846  },
22847  // Rule SovietZone 1945 only - Nov 18 2:00s 0 -
22848  {
22849  1945 /*fromYear*/,
22850  1945 /*toYear*/,
22851  11 /*inMonth*/,
22852  0 /*onDayOfWeek*/,
22853  18 /*onDayOfMonth*/,
22854  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22855  480 /*atTimeCode (7200/15)*/,
22856  0 /*deltaMinutes*/,
22857  0 /*letterIndex ("")*/,
22858  },
22859 
22860 };
22861 
22862 const complete::Info::ZonePolicy kZonePolicySovietZone ACE_TIME_PROGMEM = {
22863  kZoneRulesSovietZone /*rules*/,
22864  4 /*numRules*/,
22865 };
22866 
22867 //---------------------------------------------------------------------------
22868 // Policy name: Spain
22869 // Rules: 31
22870 //---------------------------------------------------------------------------
22871 
22872 static const complete::Info::ZoneRule kZoneRulesSpain[] ACE_TIME_PROGMEM = {
22873  // Anchor: Rule Spain 1918 1919 - Oct 6 24:00s 0 -
22874  {
22875  -32767 /*fromYear*/,
22876  -32767 /*toYear*/,
22877  1 /*inMonth*/,
22878  0 /*onDayOfWeek*/,
22879  1 /*onDayOfMonth*/,
22880  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22881  0 /*atTimeCode (0/15)*/,
22882  0 /*deltaMinutes*/,
22883  0 /*letterIndex ("")*/,
22884  },
22885  // Rule Spain 1918 only - Apr 15 23:00 1:00 S
22886  {
22887  1918 /*fromYear*/,
22888  1918 /*toYear*/,
22889  4 /*inMonth*/,
22890  0 /*onDayOfWeek*/,
22891  15 /*onDayOfMonth*/,
22892  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22893  5520 /*atTimeCode (82800/15)*/,
22894  60 /*deltaMinutes*/,
22895  25 /*letterIndex ("S")*/,
22896  },
22897  // Rule Spain 1918 1919 - Oct 6 24:00s 0 -
22898  {
22899  1918 /*fromYear*/,
22900  1919 /*toYear*/,
22901  10 /*inMonth*/,
22902  0 /*onDayOfWeek*/,
22903  6 /*onDayOfMonth*/,
22904  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22905  5760 /*atTimeCode (86400/15)*/,
22906  0 /*deltaMinutes*/,
22907  0 /*letterIndex ("")*/,
22908  },
22909  // Rule Spain 1919 only - Apr 6 23:00 1:00 S
22910  {
22911  1919 /*fromYear*/,
22912  1919 /*toYear*/,
22913  4 /*inMonth*/,
22914  0 /*onDayOfWeek*/,
22915  6 /*onDayOfMonth*/,
22916  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22917  5520 /*atTimeCode (82800/15)*/,
22918  60 /*deltaMinutes*/,
22919  25 /*letterIndex ("S")*/,
22920  },
22921  // Rule Spain 1924 only - Apr 16 23:00 1:00 S
22922  {
22923  1924 /*fromYear*/,
22924  1924 /*toYear*/,
22925  4 /*inMonth*/,
22926  0 /*onDayOfWeek*/,
22927  16 /*onDayOfMonth*/,
22928  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22929  5520 /*atTimeCode (82800/15)*/,
22930  60 /*deltaMinutes*/,
22931  25 /*letterIndex ("S")*/,
22932  },
22933  // Rule Spain 1924 only - Oct 4 24:00s 0 -
22934  {
22935  1924 /*fromYear*/,
22936  1924 /*toYear*/,
22937  10 /*inMonth*/,
22938  0 /*onDayOfWeek*/,
22939  4 /*onDayOfMonth*/,
22940  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22941  5760 /*atTimeCode (86400/15)*/,
22942  0 /*deltaMinutes*/,
22943  0 /*letterIndex ("")*/,
22944  },
22945  // Rule Spain 1926 only - Apr 17 23:00 1:00 S
22946  {
22947  1926 /*fromYear*/,
22948  1926 /*toYear*/,
22949  4 /*inMonth*/,
22950  0 /*onDayOfWeek*/,
22951  17 /*onDayOfMonth*/,
22952  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22953  5520 /*atTimeCode (82800/15)*/,
22954  60 /*deltaMinutes*/,
22955  25 /*letterIndex ("S")*/,
22956  },
22957  // Rule Spain 1926 1929 - Oct Sat>=1 24:00s 0 -
22958  {
22959  1926 /*fromYear*/,
22960  1929 /*toYear*/,
22961  10 /*inMonth*/,
22962  6 /*onDayOfWeek*/,
22963  1 /*onDayOfMonth*/,
22964  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
22965  5760 /*atTimeCode (86400/15)*/,
22966  0 /*deltaMinutes*/,
22967  0 /*letterIndex ("")*/,
22968  },
22969  // Rule Spain 1927 only - Apr 9 23:00 1:00 S
22970  {
22971  1927 /*fromYear*/,
22972  1927 /*toYear*/,
22973  4 /*inMonth*/,
22974  0 /*onDayOfWeek*/,
22975  9 /*onDayOfMonth*/,
22976  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22977  5520 /*atTimeCode (82800/15)*/,
22978  60 /*deltaMinutes*/,
22979  25 /*letterIndex ("S")*/,
22980  },
22981  // Rule Spain 1928 only - Apr 15 0:00 1:00 S
22982  {
22983  1928 /*fromYear*/,
22984  1928 /*toYear*/,
22985  4 /*inMonth*/,
22986  0 /*onDayOfWeek*/,
22987  15 /*onDayOfMonth*/,
22988  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
22989  0 /*atTimeCode (0/15)*/,
22990  60 /*deltaMinutes*/,
22991  25 /*letterIndex ("S")*/,
22992  },
22993  // Rule Spain 1929 only - Apr 20 23:00 1:00 S
22994  {
22995  1929 /*fromYear*/,
22996  1929 /*toYear*/,
22997  4 /*inMonth*/,
22998  0 /*onDayOfWeek*/,
22999  20 /*onDayOfMonth*/,
23000  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23001  5520 /*atTimeCode (82800/15)*/,
23002  60 /*deltaMinutes*/,
23003  25 /*letterIndex ("S")*/,
23004  },
23005  // Rule Spain 1937 only - Jun 16 23:00 1:00 S
23006  {
23007  1937 /*fromYear*/,
23008  1937 /*toYear*/,
23009  6 /*inMonth*/,
23010  0 /*onDayOfWeek*/,
23011  16 /*onDayOfMonth*/,
23012  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23013  5520 /*atTimeCode (82800/15)*/,
23014  60 /*deltaMinutes*/,
23015  25 /*letterIndex ("S")*/,
23016  },
23017  // Rule Spain 1937 only - Oct 2 24:00s 0 -
23018  {
23019  1937 /*fromYear*/,
23020  1937 /*toYear*/,
23021  10 /*inMonth*/,
23022  0 /*onDayOfWeek*/,
23023  2 /*onDayOfMonth*/,
23024  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
23025  5760 /*atTimeCode (86400/15)*/,
23026  0 /*deltaMinutes*/,
23027  0 /*letterIndex ("")*/,
23028  },
23029  // Rule Spain 1938 only - Apr 2 23:00 1:00 S
23030  {
23031  1938 /*fromYear*/,
23032  1938 /*toYear*/,
23033  4 /*inMonth*/,
23034  0 /*onDayOfWeek*/,
23035  2 /*onDayOfMonth*/,
23036  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23037  5520 /*atTimeCode (82800/15)*/,
23038  60 /*deltaMinutes*/,
23039  25 /*letterIndex ("S")*/,
23040  },
23041  // Rule Spain 1938 only - Apr 30 23:00 2:00 M
23042  {
23043  1938 /*fromYear*/,
23044  1938 /*toYear*/,
23045  4 /*inMonth*/,
23046  0 /*onDayOfWeek*/,
23047  30 /*onDayOfMonth*/,
23048  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23049  5520 /*atTimeCode (82800/15)*/,
23050  120 /*deltaMinutes*/,
23051  18 /*letterIndex ("M")*/,
23052  },
23053  // Rule Spain 1938 only - Oct 2 24:00 1:00 S
23054  {
23055  1938 /*fromYear*/,
23056  1938 /*toYear*/,
23057  10 /*inMonth*/,
23058  0 /*onDayOfWeek*/,
23059  2 /*onDayOfMonth*/,
23060  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23061  5760 /*atTimeCode (86400/15)*/,
23062  60 /*deltaMinutes*/,
23063  25 /*letterIndex ("S")*/,
23064  },
23065  // Rule Spain 1939 only - Oct 7 24:00s 0 -
23066  {
23067  1939 /*fromYear*/,
23068  1939 /*toYear*/,
23069  10 /*inMonth*/,
23070  0 /*onDayOfWeek*/,
23071  7 /*onDayOfMonth*/,
23072  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
23073  5760 /*atTimeCode (86400/15)*/,
23074  0 /*deltaMinutes*/,
23075  0 /*letterIndex ("")*/,
23076  },
23077  // Rule Spain 1942 only - May 2 23:00 1:00 S
23078  {
23079  1942 /*fromYear*/,
23080  1942 /*toYear*/,
23081  5 /*inMonth*/,
23082  0 /*onDayOfWeek*/,
23083  2 /*onDayOfMonth*/,
23084  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23085  5520 /*atTimeCode (82800/15)*/,
23086  60 /*deltaMinutes*/,
23087  25 /*letterIndex ("S")*/,
23088  },
23089  // Rule Spain 1942 only - Sep 1 1:00 0 -
23090  {
23091  1942 /*fromYear*/,
23092  1942 /*toYear*/,
23093  9 /*inMonth*/,
23094  0 /*onDayOfWeek*/,
23095  1 /*onDayOfMonth*/,
23096  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23097  240 /*atTimeCode (3600/15)*/,
23098  0 /*deltaMinutes*/,
23099  0 /*letterIndex ("")*/,
23100  },
23101  // Rule Spain 1943 1946 - Apr Sat>=13 23:00 1:00 S
23102  {
23103  1943 /*fromYear*/,
23104  1946 /*toYear*/,
23105  4 /*inMonth*/,
23106  6 /*onDayOfWeek*/,
23107  13 /*onDayOfMonth*/,
23108  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23109  5520 /*atTimeCode (82800/15)*/,
23110  60 /*deltaMinutes*/,
23111  25 /*letterIndex ("S")*/,
23112  },
23113  // Rule Spain 1943 1944 - Oct Sun>=1 1:00 0 -
23114  {
23115  1943 /*fromYear*/,
23116  1944 /*toYear*/,
23117  10 /*inMonth*/,
23118  7 /*onDayOfWeek*/,
23119  1 /*onDayOfMonth*/,
23120  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23121  240 /*atTimeCode (3600/15)*/,
23122  0 /*deltaMinutes*/,
23123  0 /*letterIndex ("")*/,
23124  },
23125  // Rule Spain 1945 1946 - Sep lastSun 1:00 0 -
23126  {
23127  1945 /*fromYear*/,
23128  1946 /*toYear*/,
23129  9 /*inMonth*/,
23130  7 /*onDayOfWeek*/,
23131  0 /*onDayOfMonth*/,
23132  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23133  240 /*atTimeCode (3600/15)*/,
23134  0 /*deltaMinutes*/,
23135  0 /*letterIndex ("")*/,
23136  },
23137  // Rule Spain 1949 only - Apr 30 23:00 1:00 S
23138  {
23139  1949 /*fromYear*/,
23140  1949 /*toYear*/,
23141  4 /*inMonth*/,
23142  0 /*onDayOfWeek*/,
23143  30 /*onDayOfMonth*/,
23144  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23145  5520 /*atTimeCode (82800/15)*/,
23146  60 /*deltaMinutes*/,
23147  25 /*letterIndex ("S")*/,
23148  },
23149  // Rule Spain 1949 only - Oct 2 1:00 0 -
23150  {
23151  1949 /*fromYear*/,
23152  1949 /*toYear*/,
23153  10 /*inMonth*/,
23154  0 /*onDayOfWeek*/,
23155  2 /*onDayOfMonth*/,
23156  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23157  240 /*atTimeCode (3600/15)*/,
23158  0 /*deltaMinutes*/,
23159  0 /*letterIndex ("")*/,
23160  },
23161  // Rule Spain 1974 1975 - Apr Sat>=12 23:00 1:00 S
23162  {
23163  1974 /*fromYear*/,
23164  1975 /*toYear*/,
23165  4 /*inMonth*/,
23166  6 /*onDayOfWeek*/,
23167  12 /*onDayOfMonth*/,
23168  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23169  5520 /*atTimeCode (82800/15)*/,
23170  60 /*deltaMinutes*/,
23171  25 /*letterIndex ("S")*/,
23172  },
23173  // Rule Spain 1974 1975 - Oct Sun>=1 1:00 0 -
23174  {
23175  1974 /*fromYear*/,
23176  1975 /*toYear*/,
23177  10 /*inMonth*/,
23178  7 /*onDayOfWeek*/,
23179  1 /*onDayOfMonth*/,
23180  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23181  240 /*atTimeCode (3600/15)*/,
23182  0 /*deltaMinutes*/,
23183  0 /*letterIndex ("")*/,
23184  },
23185  // Rule Spain 1976 only - Mar 27 23:00 1:00 S
23186  {
23187  1976 /*fromYear*/,
23188  1976 /*toYear*/,
23189  3 /*inMonth*/,
23190  0 /*onDayOfWeek*/,
23191  27 /*onDayOfMonth*/,
23192  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23193  5520 /*atTimeCode (82800/15)*/,
23194  60 /*deltaMinutes*/,
23195  25 /*letterIndex ("S")*/,
23196  },
23197  // Rule Spain 1976 1977 - Sep lastSun 1:00 0 -
23198  {
23199  1976 /*fromYear*/,
23200  1977 /*toYear*/,
23201  9 /*inMonth*/,
23202  7 /*onDayOfWeek*/,
23203  0 /*onDayOfMonth*/,
23204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23205  240 /*atTimeCode (3600/15)*/,
23206  0 /*deltaMinutes*/,
23207  0 /*letterIndex ("")*/,
23208  },
23209  // Rule Spain 1977 only - Apr 2 23:00 1:00 S
23210  {
23211  1977 /*fromYear*/,
23212  1977 /*toYear*/,
23213  4 /*inMonth*/,
23214  0 /*onDayOfWeek*/,
23215  2 /*onDayOfMonth*/,
23216  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23217  5520 /*atTimeCode (82800/15)*/,
23218  60 /*deltaMinutes*/,
23219  25 /*letterIndex ("S")*/,
23220  },
23221  // Rule Spain 1978 only - Apr 2 2:00s 1:00 S
23222  {
23223  1978 /*fromYear*/,
23224  1978 /*toYear*/,
23225  4 /*inMonth*/,
23226  0 /*onDayOfWeek*/,
23227  2 /*onDayOfMonth*/,
23228  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
23229  480 /*atTimeCode (7200/15)*/,
23230  60 /*deltaMinutes*/,
23231  25 /*letterIndex ("S")*/,
23232  },
23233  // Rule Spain 1978 only - Oct 1 2:00s 0 -
23234  {
23235  1978 /*fromYear*/,
23236  1978 /*toYear*/,
23237  10 /*inMonth*/,
23238  0 /*onDayOfWeek*/,
23239  1 /*onDayOfMonth*/,
23240  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
23241  480 /*atTimeCode (7200/15)*/,
23242  0 /*deltaMinutes*/,
23243  0 /*letterIndex ("")*/,
23244  },
23245 
23246 };
23247 
23248 const complete::Info::ZonePolicy kZonePolicySpain ACE_TIME_PROGMEM = {
23249  kZoneRulesSpain /*rules*/,
23250  31 /*numRules*/,
23251 };
23252 
23253 //---------------------------------------------------------------------------
23254 // Policy name: SpainAfrica
23255 // Rules: 10
23256 //---------------------------------------------------------------------------
23257 
23258 static const complete::Info::ZoneRule kZoneRulesSpainAfrica[] ACE_TIME_PROGMEM = {
23259  // Anchor: Rule SpainAfrica 1967 only - Oct 1 0:00 0 -
23260  {
23261  -32767 /*fromYear*/,
23262  -32767 /*toYear*/,
23263  1 /*inMonth*/,
23264  0 /*onDayOfWeek*/,
23265  1 /*onDayOfMonth*/,
23266  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23267  0 /*atTimeCode (0/15)*/,
23268  0 /*deltaMinutes*/,
23269  0 /*letterIndex ("")*/,
23270  },
23271  // Rule SpainAfrica 1967 only - Jun 3 12:00 1:00 S
23272  {
23273  1967 /*fromYear*/,
23274  1967 /*toYear*/,
23275  6 /*inMonth*/,
23276  0 /*onDayOfWeek*/,
23277  3 /*onDayOfMonth*/,
23278  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23279  2880 /*atTimeCode (43200/15)*/,
23280  60 /*deltaMinutes*/,
23281  25 /*letterIndex ("S")*/,
23282  },
23283  // Rule SpainAfrica 1967 only - Oct 1 0:00 0 -
23284  {
23285  1967 /*fromYear*/,
23286  1967 /*toYear*/,
23287  10 /*inMonth*/,
23288  0 /*onDayOfWeek*/,
23289  1 /*onDayOfMonth*/,
23290  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23291  0 /*atTimeCode (0/15)*/,
23292  0 /*deltaMinutes*/,
23293  0 /*letterIndex ("")*/,
23294  },
23295  // Rule SpainAfrica 1974 only - Jun 24 0:00 1:00 S
23296  {
23297  1974 /*fromYear*/,
23298  1974 /*toYear*/,
23299  6 /*inMonth*/,
23300  0 /*onDayOfWeek*/,
23301  24 /*onDayOfMonth*/,
23302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23303  0 /*atTimeCode (0/15)*/,
23304  60 /*deltaMinutes*/,
23305  25 /*letterIndex ("S")*/,
23306  },
23307  // Rule SpainAfrica 1974 only - Sep 1 0:00 0 -
23308  {
23309  1974 /*fromYear*/,
23310  1974 /*toYear*/,
23311  9 /*inMonth*/,
23312  0 /*onDayOfWeek*/,
23313  1 /*onDayOfMonth*/,
23314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23315  0 /*atTimeCode (0/15)*/,
23316  0 /*deltaMinutes*/,
23317  0 /*letterIndex ("")*/,
23318  },
23319  // Rule SpainAfrica 1976 1977 - May 1 0:00 1:00 S
23320  {
23321  1976 /*fromYear*/,
23322  1977 /*toYear*/,
23323  5 /*inMonth*/,
23324  0 /*onDayOfWeek*/,
23325  1 /*onDayOfMonth*/,
23326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23327  0 /*atTimeCode (0/15)*/,
23328  60 /*deltaMinutes*/,
23329  25 /*letterIndex ("S")*/,
23330  },
23331  // Rule SpainAfrica 1976 only - Aug 1 0:00 0 -
23332  {
23333  1976 /*fromYear*/,
23334  1976 /*toYear*/,
23335  8 /*inMonth*/,
23336  0 /*onDayOfWeek*/,
23337  1 /*onDayOfMonth*/,
23338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23339  0 /*atTimeCode (0/15)*/,
23340  0 /*deltaMinutes*/,
23341  0 /*letterIndex ("")*/,
23342  },
23343  // Rule SpainAfrica 1977 only - Sep 28 0:00 0 -
23344  {
23345  1977 /*fromYear*/,
23346  1977 /*toYear*/,
23347  9 /*inMonth*/,
23348  0 /*onDayOfWeek*/,
23349  28 /*onDayOfMonth*/,
23350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23351  0 /*atTimeCode (0/15)*/,
23352  0 /*deltaMinutes*/,
23353  0 /*letterIndex ("")*/,
23354  },
23355  // Rule SpainAfrica 1978 only - Jun 1 0:00 1:00 S
23356  {
23357  1978 /*fromYear*/,
23358  1978 /*toYear*/,
23359  6 /*inMonth*/,
23360  0 /*onDayOfWeek*/,
23361  1 /*onDayOfMonth*/,
23362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23363  0 /*atTimeCode (0/15)*/,
23364  60 /*deltaMinutes*/,
23365  25 /*letterIndex ("S")*/,
23366  },
23367  // Rule SpainAfrica 1978 only - Aug 4 0:00 0 -
23368  {
23369  1978 /*fromYear*/,
23370  1978 /*toYear*/,
23371  8 /*inMonth*/,
23372  0 /*onDayOfWeek*/,
23373  4 /*onDayOfMonth*/,
23374  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23375  0 /*atTimeCode (0/15)*/,
23376  0 /*deltaMinutes*/,
23377  0 /*letterIndex ("")*/,
23378  },
23379 
23380 };
23381 
23382 const complete::Info::ZonePolicy kZonePolicySpainAfrica ACE_TIME_PROGMEM = {
23383  kZoneRulesSpainAfrica /*rules*/,
23384  10 /*numRules*/,
23385 };
23386 
23387 //---------------------------------------------------------------------------
23388 // Policy name: StJohns
23389 // Rules: 20
23390 //---------------------------------------------------------------------------
23391 
23392 static const complete::Info::ZoneRule kZoneRulesStJohns[] ACE_TIME_PROGMEM = {
23393  // Anchor: Rule StJohns 1917 only - Sep 17 2:00 0 S
23394  {
23395  -32767 /*fromYear*/,
23396  -32767 /*toYear*/,
23397  1 /*inMonth*/,
23398  0 /*onDayOfWeek*/,
23399  1 /*onDayOfMonth*/,
23400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23401  0 /*atTimeCode (0/15)*/,
23402  0 /*deltaMinutes*/,
23403  25 /*letterIndex ("S")*/,
23404  },
23405  // Rule StJohns 1917 only - Apr 8 2:00 1:00 D
23406  {
23407  1917 /*fromYear*/,
23408  1917 /*toYear*/,
23409  4 /*inMonth*/,
23410  0 /*onDayOfWeek*/,
23411  8 /*onDayOfMonth*/,
23412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23413  480 /*atTimeCode (7200/15)*/,
23414  60 /*deltaMinutes*/,
23415  13 /*letterIndex ("D")*/,
23416  },
23417  // Rule StJohns 1917 only - Sep 17 2:00 0 S
23418  {
23419  1917 /*fromYear*/,
23420  1917 /*toYear*/,
23421  9 /*inMonth*/,
23422  0 /*onDayOfWeek*/,
23423  17 /*onDayOfMonth*/,
23424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23425  480 /*atTimeCode (7200/15)*/,
23426  0 /*deltaMinutes*/,
23427  25 /*letterIndex ("S")*/,
23428  },
23429  // Rule StJohns 1919 only - May 5 23:00 1:00 D
23430  {
23431  1919 /*fromYear*/,
23432  1919 /*toYear*/,
23433  5 /*inMonth*/,
23434  0 /*onDayOfWeek*/,
23435  5 /*onDayOfMonth*/,
23436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23437  5520 /*atTimeCode (82800/15)*/,
23438  60 /*deltaMinutes*/,
23439  13 /*letterIndex ("D")*/,
23440  },
23441  // Rule StJohns 1919 only - Aug 12 23:00 0 S
23442  {
23443  1919 /*fromYear*/,
23444  1919 /*toYear*/,
23445  8 /*inMonth*/,
23446  0 /*onDayOfWeek*/,
23447  12 /*onDayOfMonth*/,
23448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23449  5520 /*atTimeCode (82800/15)*/,
23450  0 /*deltaMinutes*/,
23451  25 /*letterIndex ("S")*/,
23452  },
23453  // Rule StJohns 1920 1935 - May Sun>=1 23:00 1:00 D
23454  {
23455  1920 /*fromYear*/,
23456  1935 /*toYear*/,
23457  5 /*inMonth*/,
23458  7 /*onDayOfWeek*/,
23459  1 /*onDayOfMonth*/,
23460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23461  5520 /*atTimeCode (82800/15)*/,
23462  60 /*deltaMinutes*/,
23463  13 /*letterIndex ("D")*/,
23464  },
23465  // Rule StJohns 1920 1935 - Oct lastSun 23:00 0 S
23466  {
23467  1920 /*fromYear*/,
23468  1935 /*toYear*/,
23469  10 /*inMonth*/,
23470  7 /*onDayOfWeek*/,
23471  0 /*onDayOfMonth*/,
23472  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23473  5520 /*atTimeCode (82800/15)*/,
23474  0 /*deltaMinutes*/,
23475  25 /*letterIndex ("S")*/,
23476  },
23477  // Rule StJohns 1936 1941 - May Mon>=9 0:00 1:00 D
23478  {
23479  1936 /*fromYear*/,
23480  1941 /*toYear*/,
23481  5 /*inMonth*/,
23482  1 /*onDayOfWeek*/,
23483  9 /*onDayOfMonth*/,
23484  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23485  0 /*atTimeCode (0/15)*/,
23486  60 /*deltaMinutes*/,
23487  13 /*letterIndex ("D")*/,
23488  },
23489  // Rule StJohns 1936 1941 - Oct Mon>=2 0:00 0 S
23490  {
23491  1936 /*fromYear*/,
23492  1941 /*toYear*/,
23493  10 /*inMonth*/,
23494  1 /*onDayOfWeek*/,
23495  2 /*onDayOfMonth*/,
23496  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23497  0 /*atTimeCode (0/15)*/,
23498  0 /*deltaMinutes*/,
23499  25 /*letterIndex ("S")*/,
23500  },
23501  // Rule StJohns 1946 1950 - May Sun>=8 2:00 1:00 D
23502  {
23503  1946 /*fromYear*/,
23504  1950 /*toYear*/,
23505  5 /*inMonth*/,
23506  7 /*onDayOfWeek*/,
23507  8 /*onDayOfMonth*/,
23508  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23509  480 /*atTimeCode (7200/15)*/,
23510  60 /*deltaMinutes*/,
23511  13 /*letterIndex ("D")*/,
23512  },
23513  // Rule StJohns 1946 1950 - Oct Sun>=2 2:00 0 S
23514  {
23515  1946 /*fromYear*/,
23516  1950 /*toYear*/,
23517  10 /*inMonth*/,
23518  7 /*onDayOfWeek*/,
23519  2 /*onDayOfMonth*/,
23520  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23521  480 /*atTimeCode (7200/15)*/,
23522  0 /*deltaMinutes*/,
23523  25 /*letterIndex ("S")*/,
23524  },
23525  // Rule StJohns 1951 1986 - Apr lastSun 2:00 1:00 D
23526  {
23527  1951 /*fromYear*/,
23528  1986 /*toYear*/,
23529  4 /*inMonth*/,
23530  7 /*onDayOfWeek*/,
23531  0 /*onDayOfMonth*/,
23532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23533  480 /*atTimeCode (7200/15)*/,
23534  60 /*deltaMinutes*/,
23535  13 /*letterIndex ("D")*/,
23536  },
23537  // Rule StJohns 1951 1959 - Sep lastSun 2:00 0 S
23538  {
23539  1951 /*fromYear*/,
23540  1959 /*toYear*/,
23541  9 /*inMonth*/,
23542  7 /*onDayOfWeek*/,
23543  0 /*onDayOfMonth*/,
23544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23545  480 /*atTimeCode (7200/15)*/,
23546  0 /*deltaMinutes*/,
23547  25 /*letterIndex ("S")*/,
23548  },
23549  // Rule StJohns 1960 1986 - Oct lastSun 2:00 0 S
23550  {
23551  1960 /*fromYear*/,
23552  1986 /*toYear*/,
23553  10 /*inMonth*/,
23554  7 /*onDayOfWeek*/,
23555  0 /*onDayOfMonth*/,
23556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23557  480 /*atTimeCode (7200/15)*/,
23558  0 /*deltaMinutes*/,
23559  25 /*letterIndex ("S")*/,
23560  },
23561  // Rule StJohns 1987 only - Apr Sun>=1 0:01 1:00 D
23562  {
23563  1987 /*fromYear*/,
23564  1987 /*toYear*/,
23565  4 /*inMonth*/,
23566  7 /*onDayOfWeek*/,
23567  1 /*onDayOfMonth*/,
23568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23569  4 /*atTimeCode (60/15)*/,
23570  60 /*deltaMinutes*/,
23571  13 /*letterIndex ("D")*/,
23572  },
23573  // Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
23574  {
23575  1987 /*fromYear*/,
23576  2006 /*toYear*/,
23577  10 /*inMonth*/,
23578  7 /*onDayOfWeek*/,
23579  0 /*onDayOfMonth*/,
23580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23581  4 /*atTimeCode (60/15)*/,
23582  0 /*deltaMinutes*/,
23583  25 /*letterIndex ("S")*/,
23584  },
23585  // Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD
23586  {
23587  1988 /*fromYear*/,
23588  1988 /*toYear*/,
23589  4 /*inMonth*/,
23590  7 /*onDayOfWeek*/,
23591  1 /*onDayOfMonth*/,
23592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23593  4 /*atTimeCode (60/15)*/,
23594  120 /*deltaMinutes*/,
23595  14 /*letterIndex ("DD")*/,
23596  },
23597  // Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D
23598  {
23599  1989 /*fromYear*/,
23600  2006 /*toYear*/,
23601  4 /*inMonth*/,
23602  7 /*onDayOfWeek*/,
23603  1 /*onDayOfMonth*/,
23604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23605  4 /*atTimeCode (60/15)*/,
23606  60 /*deltaMinutes*/,
23607  13 /*letterIndex ("D")*/,
23608  },
23609  // Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D
23610  {
23611  2007 /*fromYear*/,
23612  2011 /*toYear*/,
23613  3 /*inMonth*/,
23614  7 /*onDayOfWeek*/,
23615  8 /*onDayOfMonth*/,
23616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23617  4 /*atTimeCode (60/15)*/,
23618  60 /*deltaMinutes*/,
23619  13 /*letterIndex ("D")*/,
23620  },
23621  // Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S
23622  {
23623  2007 /*fromYear*/,
23624  2010 /*toYear*/,
23625  11 /*inMonth*/,
23626  7 /*onDayOfWeek*/,
23627  1 /*onDayOfMonth*/,
23628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23629  4 /*atTimeCode (60/15)*/,
23630  0 /*deltaMinutes*/,
23631  25 /*letterIndex ("S")*/,
23632  },
23633 
23634 };
23635 
23636 const complete::Info::ZonePolicy kZonePolicyStJohns ACE_TIME_PROGMEM = {
23637  kZoneRulesStJohns /*rules*/,
23638  20 /*numRules*/,
23639 };
23640 
23641 //---------------------------------------------------------------------------
23642 // Policy name: Starke
23643 // Rules: 6
23644 //---------------------------------------------------------------------------
23645 
23646 static const complete::Info::ZoneRule kZoneRulesStarke[] ACE_TIME_PROGMEM = {
23647  // Anchor: Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
23648  {
23649  -32767 /*fromYear*/,
23650  -32767 /*toYear*/,
23651  1 /*inMonth*/,
23652  0 /*onDayOfWeek*/,
23653  1 /*onDayOfMonth*/,
23654  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23655  0 /*atTimeCode (0/15)*/,
23656  0 /*deltaMinutes*/,
23657  25 /*letterIndex ("S")*/,
23658  },
23659  // Rule Starke 1947 1961 - Apr lastSun 2:00 1:00 D
23660  {
23661  1947 /*fromYear*/,
23662  1961 /*toYear*/,
23663  4 /*inMonth*/,
23664  7 /*onDayOfWeek*/,
23665  0 /*onDayOfMonth*/,
23666  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23667  480 /*atTimeCode (7200/15)*/,
23668  60 /*deltaMinutes*/,
23669  13 /*letterIndex ("D")*/,
23670  },
23671  // Rule Starke 1947 1954 - Sep lastSun 2:00 0 S
23672  {
23673  1947 /*fromYear*/,
23674  1954 /*toYear*/,
23675  9 /*inMonth*/,
23676  7 /*onDayOfWeek*/,
23677  0 /*onDayOfMonth*/,
23678  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23679  480 /*atTimeCode (7200/15)*/,
23680  0 /*deltaMinutes*/,
23681  25 /*letterIndex ("S")*/,
23682  },
23683  // Rule Starke 1955 1956 - Oct lastSun 2:00 0 S
23684  {
23685  1955 /*fromYear*/,
23686  1956 /*toYear*/,
23687  10 /*inMonth*/,
23688  7 /*onDayOfWeek*/,
23689  0 /*onDayOfMonth*/,
23690  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23691  480 /*atTimeCode (7200/15)*/,
23692  0 /*deltaMinutes*/,
23693  25 /*letterIndex ("S")*/,
23694  },
23695  // Rule Starke 1957 1958 - Sep lastSun 2:00 0 S
23696  {
23697  1957 /*fromYear*/,
23698  1958 /*toYear*/,
23699  9 /*inMonth*/,
23700  7 /*onDayOfWeek*/,
23701  0 /*onDayOfMonth*/,
23702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23703  480 /*atTimeCode (7200/15)*/,
23704  0 /*deltaMinutes*/,
23705  25 /*letterIndex ("S")*/,
23706  },
23707  // Rule Starke 1959 1961 - Oct lastSun 2:00 0 S
23708  {
23709  1959 /*fromYear*/,
23710  1961 /*toYear*/,
23711  10 /*inMonth*/,
23712  7 /*onDayOfWeek*/,
23713  0 /*onDayOfMonth*/,
23714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23715  480 /*atTimeCode (7200/15)*/,
23716  0 /*deltaMinutes*/,
23717  25 /*letterIndex ("S")*/,
23718  },
23719 
23720 };
23721 
23722 const complete::Info::ZonePolicy kZonePolicyStarke ACE_TIME_PROGMEM = {
23723  kZoneRulesStarke /*rules*/,
23724  6 /*numRules*/,
23725 };
23726 
23727 //---------------------------------------------------------------------------
23728 // Policy name: Sudan
23729 // Rules: 5
23730 //---------------------------------------------------------------------------
23731 
23732 static const complete::Info::ZoneRule kZoneRulesSudan[] ACE_TIME_PROGMEM = {
23733  // Anchor: Rule Sudan 1970 1985 - Oct 15 0:00 0 -
23734  {
23735  -32767 /*fromYear*/,
23736  -32767 /*toYear*/,
23737  1 /*inMonth*/,
23738  0 /*onDayOfWeek*/,
23739  1 /*onDayOfMonth*/,
23740  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23741  0 /*atTimeCode (0/15)*/,
23742  0 /*deltaMinutes*/,
23743  0 /*letterIndex ("")*/,
23744  },
23745  // Rule Sudan 1970 only - May 1 0:00 1:00 S
23746  {
23747  1970 /*fromYear*/,
23748  1970 /*toYear*/,
23749  5 /*inMonth*/,
23750  0 /*onDayOfWeek*/,
23751  1 /*onDayOfMonth*/,
23752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23753  0 /*atTimeCode (0/15)*/,
23754  60 /*deltaMinutes*/,
23755  25 /*letterIndex ("S")*/,
23756  },
23757  // Rule Sudan 1970 1985 - Oct 15 0:00 0 -
23758  {
23759  1970 /*fromYear*/,
23760  1985 /*toYear*/,
23761  10 /*inMonth*/,
23762  0 /*onDayOfWeek*/,
23763  15 /*onDayOfMonth*/,
23764  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23765  0 /*atTimeCode (0/15)*/,
23766  0 /*deltaMinutes*/,
23767  0 /*letterIndex ("")*/,
23768  },
23769  // Rule Sudan 1971 only - Apr 30 0:00 1:00 S
23770  {
23771  1971 /*fromYear*/,
23772  1971 /*toYear*/,
23773  4 /*inMonth*/,
23774  0 /*onDayOfWeek*/,
23775  30 /*onDayOfMonth*/,
23776  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23777  0 /*atTimeCode (0/15)*/,
23778  60 /*deltaMinutes*/,
23779  25 /*letterIndex ("S")*/,
23780  },
23781  // Rule Sudan 1972 1985 - Apr lastSun 0:00 1:00 S
23782  {
23783  1972 /*fromYear*/,
23784  1985 /*toYear*/,
23785  4 /*inMonth*/,
23786  7 /*onDayOfWeek*/,
23787  0 /*onDayOfMonth*/,
23788  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23789  0 /*atTimeCode (0/15)*/,
23790  60 /*deltaMinutes*/,
23791  25 /*letterIndex ("S")*/,
23792  },
23793 
23794 };
23795 
23796 const complete::Info::ZonePolicy kZonePolicySudan ACE_TIME_PROGMEM = {
23797  kZoneRulesSudan /*rules*/,
23798  5 /*numRules*/,
23799 };
23800 
23801 //---------------------------------------------------------------------------
23802 // Policy name: Swift
23803 // Rules: 6
23804 //---------------------------------------------------------------------------
23805 
23806 static const complete::Info::ZoneRule kZoneRulesSwift[] ACE_TIME_PROGMEM = {
23807  // Anchor: Rule Swift 1957 only - Oct lastSun 2:00 0 S
23808  {
23809  -32767 /*fromYear*/,
23810  -32767 /*toYear*/,
23811  1 /*inMonth*/,
23812  0 /*onDayOfWeek*/,
23813  1 /*onDayOfMonth*/,
23814  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23815  0 /*atTimeCode (0/15)*/,
23816  0 /*deltaMinutes*/,
23817  25 /*letterIndex ("S")*/,
23818  },
23819  // Rule Swift 1957 only - Apr lastSun 2:00 1:00 D
23820  {
23821  1957 /*fromYear*/,
23822  1957 /*toYear*/,
23823  4 /*inMonth*/,
23824  7 /*onDayOfWeek*/,
23825  0 /*onDayOfMonth*/,
23826  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23827  480 /*atTimeCode (7200/15)*/,
23828  60 /*deltaMinutes*/,
23829  13 /*letterIndex ("D")*/,
23830  },
23831  // Rule Swift 1957 only - Oct lastSun 2:00 0 S
23832  {
23833  1957 /*fromYear*/,
23834  1957 /*toYear*/,
23835  10 /*inMonth*/,
23836  7 /*onDayOfWeek*/,
23837  0 /*onDayOfMonth*/,
23838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23839  480 /*atTimeCode (7200/15)*/,
23840  0 /*deltaMinutes*/,
23841  25 /*letterIndex ("S")*/,
23842  },
23843  // Rule Swift 1959 1961 - Apr lastSun 2:00 1:00 D
23844  {
23845  1959 /*fromYear*/,
23846  1961 /*toYear*/,
23847  4 /*inMonth*/,
23848  7 /*onDayOfWeek*/,
23849  0 /*onDayOfMonth*/,
23850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23851  480 /*atTimeCode (7200/15)*/,
23852  60 /*deltaMinutes*/,
23853  13 /*letterIndex ("D")*/,
23854  },
23855  // Rule Swift 1959 only - Oct lastSun 2:00 0 S
23856  {
23857  1959 /*fromYear*/,
23858  1959 /*toYear*/,
23859  10 /*inMonth*/,
23860  7 /*onDayOfWeek*/,
23861  0 /*onDayOfMonth*/,
23862  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23863  480 /*atTimeCode (7200/15)*/,
23864  0 /*deltaMinutes*/,
23865  25 /*letterIndex ("S")*/,
23866  },
23867  // Rule Swift 1960 1961 - Sep lastSun 2:00 0 S
23868  {
23869  1960 /*fromYear*/,
23870  1961 /*toYear*/,
23871  9 /*inMonth*/,
23872  7 /*onDayOfWeek*/,
23873  0 /*onDayOfMonth*/,
23874  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23875  480 /*atTimeCode (7200/15)*/,
23876  0 /*deltaMinutes*/,
23877  25 /*letterIndex ("S")*/,
23878  },
23879 
23880 };
23881 
23882 const complete::Info::ZonePolicy kZonePolicySwift ACE_TIME_PROGMEM = {
23883  kZoneRulesSwift /*rules*/,
23884  6 /*numRules*/,
23885 };
23886 
23887 //---------------------------------------------------------------------------
23888 // Policy name: Swiss
23889 // Rules: 3
23890 //---------------------------------------------------------------------------
23891 
23892 static const complete::Info::ZoneRule kZoneRulesSwiss[] ACE_TIME_PROGMEM = {
23893  // Anchor: Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
23894  {
23895  -32767 /*fromYear*/,
23896  -32767 /*toYear*/,
23897  1 /*inMonth*/,
23898  0 /*onDayOfWeek*/,
23899  1 /*onDayOfMonth*/,
23900  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23901  0 /*atTimeCode (0/15)*/,
23902  0 /*deltaMinutes*/,
23903  0 /*letterIndex ("")*/,
23904  },
23905  // Rule Swiss 1941 1942 - May Mon>=1 1:00 1:00 S
23906  {
23907  1941 /*fromYear*/,
23908  1942 /*toYear*/,
23909  5 /*inMonth*/,
23910  1 /*onDayOfWeek*/,
23911  1 /*onDayOfMonth*/,
23912  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23913  240 /*atTimeCode (3600/15)*/,
23914  60 /*deltaMinutes*/,
23915  25 /*letterIndex ("S")*/,
23916  },
23917  // Rule Swiss 1941 1942 - Oct Mon>=1 2:00 0 -
23918  {
23919  1941 /*fromYear*/,
23920  1942 /*toYear*/,
23921  10 /*inMonth*/,
23922  1 /*onDayOfWeek*/,
23923  1 /*onDayOfMonth*/,
23924  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23925  480 /*atTimeCode (7200/15)*/,
23926  0 /*deltaMinutes*/,
23927  0 /*letterIndex ("")*/,
23928  },
23929 
23930 };
23931 
23932 const complete::Info::ZonePolicy kZonePolicySwiss ACE_TIME_PROGMEM = {
23933  kZoneRulesSwiss /*rules*/,
23934  3 /*numRules*/,
23935 };
23936 
23937 //---------------------------------------------------------------------------
23938 // Policy name: Syria
23939 // Rules: 42
23940 //---------------------------------------------------------------------------
23941 
23942 static const complete::Info::ZoneRule kZoneRulesSyria[] ACE_TIME_PROGMEM = {
23943  // Anchor: Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
23944  {
23945  -32767 /*fromYear*/,
23946  -32767 /*toYear*/,
23947  1 /*inMonth*/,
23948  0 /*onDayOfWeek*/,
23949  1 /*onDayOfMonth*/,
23950  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23951  0 /*atTimeCode (0/15)*/,
23952  0 /*deltaMinutes*/,
23953  0 /*letterIndex ("")*/,
23954  },
23955  // Rule Syria 1920 1923 - Apr Sun>=15 2:00 1:00 S
23956  {
23957  1920 /*fromYear*/,
23958  1923 /*toYear*/,
23959  4 /*inMonth*/,
23960  7 /*onDayOfWeek*/,
23961  15 /*onDayOfMonth*/,
23962  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23963  480 /*atTimeCode (7200/15)*/,
23964  60 /*deltaMinutes*/,
23965  25 /*letterIndex ("S")*/,
23966  },
23967  // Rule Syria 1920 1923 - Oct Sun>=1 2:00 0 -
23968  {
23969  1920 /*fromYear*/,
23970  1923 /*toYear*/,
23971  10 /*inMonth*/,
23972  7 /*onDayOfWeek*/,
23973  1 /*onDayOfMonth*/,
23974  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23975  480 /*atTimeCode (7200/15)*/,
23976  0 /*deltaMinutes*/,
23977  0 /*letterIndex ("")*/,
23978  },
23979  // Rule Syria 1962 only - Apr 29 2:00 1:00 S
23980  {
23981  1962 /*fromYear*/,
23982  1962 /*toYear*/,
23983  4 /*inMonth*/,
23984  0 /*onDayOfWeek*/,
23985  29 /*onDayOfMonth*/,
23986  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23987  480 /*atTimeCode (7200/15)*/,
23988  60 /*deltaMinutes*/,
23989  25 /*letterIndex ("S")*/,
23990  },
23991  // Rule Syria 1962 only - Oct 1 2:00 0 -
23992  {
23993  1962 /*fromYear*/,
23994  1962 /*toYear*/,
23995  10 /*inMonth*/,
23996  0 /*onDayOfWeek*/,
23997  1 /*onDayOfMonth*/,
23998  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
23999  480 /*atTimeCode (7200/15)*/,
24000  0 /*deltaMinutes*/,
24001  0 /*letterIndex ("")*/,
24002  },
24003  // Rule Syria 1963 1965 - May 1 2:00 1:00 S
24004  {
24005  1963 /*fromYear*/,
24006  1965 /*toYear*/,
24007  5 /*inMonth*/,
24008  0 /*onDayOfWeek*/,
24009  1 /*onDayOfMonth*/,
24010  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24011  480 /*atTimeCode (7200/15)*/,
24012  60 /*deltaMinutes*/,
24013  25 /*letterIndex ("S")*/,
24014  },
24015  // Rule Syria 1963 only - Sep 30 2:00 0 -
24016  {
24017  1963 /*fromYear*/,
24018  1963 /*toYear*/,
24019  9 /*inMonth*/,
24020  0 /*onDayOfWeek*/,
24021  30 /*onDayOfMonth*/,
24022  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24023  480 /*atTimeCode (7200/15)*/,
24024  0 /*deltaMinutes*/,
24025  0 /*letterIndex ("")*/,
24026  },
24027  // Rule Syria 1964 only - Oct 1 2:00 0 -
24028  {
24029  1964 /*fromYear*/,
24030  1964 /*toYear*/,
24031  10 /*inMonth*/,
24032  0 /*onDayOfWeek*/,
24033  1 /*onDayOfMonth*/,
24034  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24035  480 /*atTimeCode (7200/15)*/,
24036  0 /*deltaMinutes*/,
24037  0 /*letterIndex ("")*/,
24038  },
24039  // Rule Syria 1965 only - Sep 30 2:00 0 -
24040  {
24041  1965 /*fromYear*/,
24042  1965 /*toYear*/,
24043  9 /*inMonth*/,
24044  0 /*onDayOfWeek*/,
24045  30 /*onDayOfMonth*/,
24046  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24047  480 /*atTimeCode (7200/15)*/,
24048  0 /*deltaMinutes*/,
24049  0 /*letterIndex ("")*/,
24050  },
24051  // Rule Syria 1966 only - Apr 24 2:00 1:00 S
24052  {
24053  1966 /*fromYear*/,
24054  1966 /*toYear*/,
24055  4 /*inMonth*/,
24056  0 /*onDayOfWeek*/,
24057  24 /*onDayOfMonth*/,
24058  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24059  480 /*atTimeCode (7200/15)*/,
24060  60 /*deltaMinutes*/,
24061  25 /*letterIndex ("S")*/,
24062  },
24063  // Rule Syria 1966 1976 - Oct 1 2:00 0 -
24064  {
24065  1966 /*fromYear*/,
24066  1976 /*toYear*/,
24067  10 /*inMonth*/,
24068  0 /*onDayOfWeek*/,
24069  1 /*onDayOfMonth*/,
24070  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24071  480 /*atTimeCode (7200/15)*/,
24072  0 /*deltaMinutes*/,
24073  0 /*letterIndex ("")*/,
24074  },
24075  // Rule Syria 1967 1978 - May 1 2:00 1:00 S
24076  {
24077  1967 /*fromYear*/,
24078  1978 /*toYear*/,
24079  5 /*inMonth*/,
24080  0 /*onDayOfWeek*/,
24081  1 /*onDayOfMonth*/,
24082  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24083  480 /*atTimeCode (7200/15)*/,
24084  60 /*deltaMinutes*/,
24085  25 /*letterIndex ("S")*/,
24086  },
24087  // Rule Syria 1977 1978 - Sep 1 2:00 0 -
24088  {
24089  1977 /*fromYear*/,
24090  1978 /*toYear*/,
24091  9 /*inMonth*/,
24092  0 /*onDayOfWeek*/,
24093  1 /*onDayOfMonth*/,
24094  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24095  480 /*atTimeCode (7200/15)*/,
24096  0 /*deltaMinutes*/,
24097  0 /*letterIndex ("")*/,
24098  },
24099  // Rule Syria 1983 1984 - Apr 9 2:00 1:00 S
24100  {
24101  1983 /*fromYear*/,
24102  1984 /*toYear*/,
24103  4 /*inMonth*/,
24104  0 /*onDayOfWeek*/,
24105  9 /*onDayOfMonth*/,
24106  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24107  480 /*atTimeCode (7200/15)*/,
24108  60 /*deltaMinutes*/,
24109  25 /*letterIndex ("S")*/,
24110  },
24111  // Rule Syria 1983 1984 - Oct 1 2:00 0 -
24112  {
24113  1983 /*fromYear*/,
24114  1984 /*toYear*/,
24115  10 /*inMonth*/,
24116  0 /*onDayOfWeek*/,
24117  1 /*onDayOfMonth*/,
24118  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24119  480 /*atTimeCode (7200/15)*/,
24120  0 /*deltaMinutes*/,
24121  0 /*letterIndex ("")*/,
24122  },
24123  // Rule Syria 1986 only - Feb 16 2:00 1:00 S
24124  {
24125  1986 /*fromYear*/,
24126  1986 /*toYear*/,
24127  2 /*inMonth*/,
24128  0 /*onDayOfWeek*/,
24129  16 /*onDayOfMonth*/,
24130  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24131  480 /*atTimeCode (7200/15)*/,
24132  60 /*deltaMinutes*/,
24133  25 /*letterIndex ("S")*/,
24134  },
24135  // Rule Syria 1986 only - Oct 9 2:00 0 -
24136  {
24137  1986 /*fromYear*/,
24138  1986 /*toYear*/,
24139  10 /*inMonth*/,
24140  0 /*onDayOfWeek*/,
24141  9 /*onDayOfMonth*/,
24142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24143  480 /*atTimeCode (7200/15)*/,
24144  0 /*deltaMinutes*/,
24145  0 /*letterIndex ("")*/,
24146  },
24147  // Rule Syria 1987 only - Mar 1 2:00 1:00 S
24148  {
24149  1987 /*fromYear*/,
24150  1987 /*toYear*/,
24151  3 /*inMonth*/,
24152  0 /*onDayOfWeek*/,
24153  1 /*onDayOfMonth*/,
24154  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24155  480 /*atTimeCode (7200/15)*/,
24156  60 /*deltaMinutes*/,
24157  25 /*letterIndex ("S")*/,
24158  },
24159  // Rule Syria 1987 1988 - Oct 31 2:00 0 -
24160  {
24161  1987 /*fromYear*/,
24162  1988 /*toYear*/,
24163  10 /*inMonth*/,
24164  0 /*onDayOfWeek*/,
24165  31 /*onDayOfMonth*/,
24166  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24167  480 /*atTimeCode (7200/15)*/,
24168  0 /*deltaMinutes*/,
24169  0 /*letterIndex ("")*/,
24170  },
24171  // Rule Syria 1988 only - Mar 15 2:00 1:00 S
24172  {
24173  1988 /*fromYear*/,
24174  1988 /*toYear*/,
24175  3 /*inMonth*/,
24176  0 /*onDayOfWeek*/,
24177  15 /*onDayOfMonth*/,
24178  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24179  480 /*atTimeCode (7200/15)*/,
24180  60 /*deltaMinutes*/,
24181  25 /*letterIndex ("S")*/,
24182  },
24183  // Rule Syria 1989 only - Mar 31 2:00 1:00 S
24184  {
24185  1989 /*fromYear*/,
24186  1989 /*toYear*/,
24187  3 /*inMonth*/,
24188  0 /*onDayOfWeek*/,
24189  31 /*onDayOfMonth*/,
24190  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24191  480 /*atTimeCode (7200/15)*/,
24192  60 /*deltaMinutes*/,
24193  25 /*letterIndex ("S")*/,
24194  },
24195  // Rule Syria 1989 only - Oct 1 2:00 0 -
24196  {
24197  1989 /*fromYear*/,
24198  1989 /*toYear*/,
24199  10 /*inMonth*/,
24200  0 /*onDayOfWeek*/,
24201  1 /*onDayOfMonth*/,
24202  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24203  480 /*atTimeCode (7200/15)*/,
24204  0 /*deltaMinutes*/,
24205  0 /*letterIndex ("")*/,
24206  },
24207  // Rule Syria 1990 only - Apr 1 2:00 1:00 S
24208  {
24209  1990 /*fromYear*/,
24210  1990 /*toYear*/,
24211  4 /*inMonth*/,
24212  0 /*onDayOfWeek*/,
24213  1 /*onDayOfMonth*/,
24214  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24215  480 /*atTimeCode (7200/15)*/,
24216  60 /*deltaMinutes*/,
24217  25 /*letterIndex ("S")*/,
24218  },
24219  // Rule Syria 1990 only - Sep 30 2:00 0 -
24220  {
24221  1990 /*fromYear*/,
24222  1990 /*toYear*/,
24223  9 /*inMonth*/,
24224  0 /*onDayOfWeek*/,
24225  30 /*onDayOfMonth*/,
24226  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24227  480 /*atTimeCode (7200/15)*/,
24228  0 /*deltaMinutes*/,
24229  0 /*letterIndex ("")*/,
24230  },
24231  // Rule Syria 1991 only - Apr 1 0:00 1:00 S
24232  {
24233  1991 /*fromYear*/,
24234  1991 /*toYear*/,
24235  4 /*inMonth*/,
24236  0 /*onDayOfWeek*/,
24237  1 /*onDayOfMonth*/,
24238  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24239  0 /*atTimeCode (0/15)*/,
24240  60 /*deltaMinutes*/,
24241  25 /*letterIndex ("S")*/,
24242  },
24243  // Rule Syria 1991 1992 - Oct 1 0:00 0 -
24244  {
24245  1991 /*fromYear*/,
24246  1992 /*toYear*/,
24247  10 /*inMonth*/,
24248  0 /*onDayOfWeek*/,
24249  1 /*onDayOfMonth*/,
24250  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24251  0 /*atTimeCode (0/15)*/,
24252  0 /*deltaMinutes*/,
24253  0 /*letterIndex ("")*/,
24254  },
24255  // Rule Syria 1992 only - Apr 8 0:00 1:00 S
24256  {
24257  1992 /*fromYear*/,
24258  1992 /*toYear*/,
24259  4 /*inMonth*/,
24260  0 /*onDayOfWeek*/,
24261  8 /*onDayOfMonth*/,
24262  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24263  0 /*atTimeCode (0/15)*/,
24264  60 /*deltaMinutes*/,
24265  25 /*letterIndex ("S")*/,
24266  },
24267  // Rule Syria 1993 only - Mar 26 0:00 1:00 S
24268  {
24269  1993 /*fromYear*/,
24270  1993 /*toYear*/,
24271  3 /*inMonth*/,
24272  0 /*onDayOfWeek*/,
24273  26 /*onDayOfMonth*/,
24274  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24275  0 /*atTimeCode (0/15)*/,
24276  60 /*deltaMinutes*/,
24277  25 /*letterIndex ("S")*/,
24278  },
24279  // Rule Syria 1993 only - Sep 25 0:00 0 -
24280  {
24281  1993 /*fromYear*/,
24282  1993 /*toYear*/,
24283  9 /*inMonth*/,
24284  0 /*onDayOfWeek*/,
24285  25 /*onDayOfMonth*/,
24286  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24287  0 /*atTimeCode (0/15)*/,
24288  0 /*deltaMinutes*/,
24289  0 /*letterIndex ("")*/,
24290  },
24291  // Rule Syria 1994 1996 - Apr 1 0:00 1:00 S
24292  {
24293  1994 /*fromYear*/,
24294  1996 /*toYear*/,
24295  4 /*inMonth*/,
24296  0 /*onDayOfWeek*/,
24297  1 /*onDayOfMonth*/,
24298  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24299  0 /*atTimeCode (0/15)*/,
24300  60 /*deltaMinutes*/,
24301  25 /*letterIndex ("S")*/,
24302  },
24303  // Rule Syria 1994 2005 - Oct 1 0:00 0 -
24304  {
24305  1994 /*fromYear*/,
24306  2005 /*toYear*/,
24307  10 /*inMonth*/,
24308  0 /*onDayOfWeek*/,
24309  1 /*onDayOfMonth*/,
24310  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24311  0 /*atTimeCode (0/15)*/,
24312  0 /*deltaMinutes*/,
24313  0 /*letterIndex ("")*/,
24314  },
24315  // Rule Syria 1997 1998 - Mar lastMon 0:00 1:00 S
24316  {
24317  1997 /*fromYear*/,
24318  1998 /*toYear*/,
24319  3 /*inMonth*/,
24320  1 /*onDayOfWeek*/,
24321  0 /*onDayOfMonth*/,
24322  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24323  0 /*atTimeCode (0/15)*/,
24324  60 /*deltaMinutes*/,
24325  25 /*letterIndex ("S")*/,
24326  },
24327  // Rule Syria 1999 2006 - Apr 1 0:00 1:00 S
24328  {
24329  1999 /*fromYear*/,
24330  2006 /*toYear*/,
24331  4 /*inMonth*/,
24332  0 /*onDayOfWeek*/,
24333  1 /*onDayOfMonth*/,
24334  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24335  0 /*atTimeCode (0/15)*/,
24336  60 /*deltaMinutes*/,
24337  25 /*letterIndex ("S")*/,
24338  },
24339  // Rule Syria 2006 only - Sep 22 0:00 0 -
24340  {
24341  2006 /*fromYear*/,
24342  2006 /*toYear*/,
24343  9 /*inMonth*/,
24344  0 /*onDayOfWeek*/,
24345  22 /*onDayOfMonth*/,
24346  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24347  0 /*atTimeCode (0/15)*/,
24348  0 /*deltaMinutes*/,
24349  0 /*letterIndex ("")*/,
24350  },
24351  // Rule Syria 2007 only - Mar lastFri 0:00 1:00 S
24352  {
24353  2007 /*fromYear*/,
24354  2007 /*toYear*/,
24355  3 /*inMonth*/,
24356  5 /*onDayOfWeek*/,
24357  0 /*onDayOfMonth*/,
24358  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24359  0 /*atTimeCode (0/15)*/,
24360  60 /*deltaMinutes*/,
24361  25 /*letterIndex ("S")*/,
24362  },
24363  // Rule Syria 2007 only - Nov Fri>=1 0:00 0 -
24364  {
24365  2007 /*fromYear*/,
24366  2007 /*toYear*/,
24367  11 /*inMonth*/,
24368  5 /*onDayOfWeek*/,
24369  1 /*onDayOfMonth*/,
24370  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24371  0 /*atTimeCode (0/15)*/,
24372  0 /*deltaMinutes*/,
24373  0 /*letterIndex ("")*/,
24374  },
24375  // Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
24376  {
24377  2008 /*fromYear*/,
24378  2008 /*toYear*/,
24379  4 /*inMonth*/,
24380  5 /*onDayOfWeek*/,
24381  1 /*onDayOfMonth*/,
24382  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24383  0 /*atTimeCode (0/15)*/,
24384  60 /*deltaMinutes*/,
24385  25 /*letterIndex ("S")*/,
24386  },
24387  // Rule Syria 2008 only - Nov 1 0:00 0 -
24388  {
24389  2008 /*fromYear*/,
24390  2008 /*toYear*/,
24391  11 /*inMonth*/,
24392  0 /*onDayOfWeek*/,
24393  1 /*onDayOfMonth*/,
24394  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24395  0 /*atTimeCode (0/15)*/,
24396  0 /*deltaMinutes*/,
24397  0 /*letterIndex ("")*/,
24398  },
24399  // Rule Syria 2009 only - Mar lastFri 0:00 1:00 S
24400  {
24401  2009 /*fromYear*/,
24402  2009 /*toYear*/,
24403  3 /*inMonth*/,
24404  5 /*onDayOfWeek*/,
24405  0 /*onDayOfMonth*/,
24406  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24407  0 /*atTimeCode (0/15)*/,
24408  60 /*deltaMinutes*/,
24409  25 /*letterIndex ("S")*/,
24410  },
24411  // Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S
24412  {
24413  2010 /*fromYear*/,
24414  2011 /*toYear*/,
24415  4 /*inMonth*/,
24416  5 /*onDayOfWeek*/,
24417  1 /*onDayOfMonth*/,
24418  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24419  0 /*atTimeCode (0/15)*/,
24420  60 /*deltaMinutes*/,
24421  25 /*letterIndex ("S")*/,
24422  },
24423  // Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S
24424  {
24425  2012 /*fromYear*/,
24426  2022 /*toYear*/,
24427  3 /*inMonth*/,
24428  5 /*onDayOfWeek*/,
24429  0 /*onDayOfMonth*/,
24430  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24431  0 /*atTimeCode (0/15)*/,
24432  60 /*deltaMinutes*/,
24433  25 /*letterIndex ("S")*/,
24434  },
24435  // Rule Syria 2009 2022 - Oct lastFri 0:00 0 -
24436  {
24437  2009 /*fromYear*/,
24438  2022 /*toYear*/,
24439  10 /*inMonth*/,
24440  5 /*onDayOfWeek*/,
24441  0 /*onDayOfMonth*/,
24442  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24443  0 /*atTimeCode (0/15)*/,
24444  0 /*deltaMinutes*/,
24445  0 /*letterIndex ("")*/,
24446  },
24447 
24448 };
24449 
24450 const complete::Info::ZonePolicy kZonePolicySyria ACE_TIME_PROGMEM = {
24451  kZoneRulesSyria /*rules*/,
24452  42 /*numRules*/,
24453 };
24454 
24455 //---------------------------------------------------------------------------
24456 // Policy name: Taiwan
24457 // Rules: 16
24458 //---------------------------------------------------------------------------
24459 
24460 static const complete::Info::ZoneRule kZoneRulesTaiwan[] ACE_TIME_PROGMEM = {
24461  // Anchor: Rule Taiwan 1946 only - Oct 1 0:00 0 S
24462  {
24463  -32767 /*fromYear*/,
24464  -32767 /*toYear*/,
24465  1 /*inMonth*/,
24466  0 /*onDayOfWeek*/,
24467  1 /*onDayOfMonth*/,
24468  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24469  0 /*atTimeCode (0/15)*/,
24470  0 /*deltaMinutes*/,
24471  25 /*letterIndex ("S")*/,
24472  },
24473  // Rule Taiwan 1946 only - May 15 0:00 1:00 D
24474  {
24475  1946 /*fromYear*/,
24476  1946 /*toYear*/,
24477  5 /*inMonth*/,
24478  0 /*onDayOfWeek*/,
24479  15 /*onDayOfMonth*/,
24480  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24481  0 /*atTimeCode (0/15)*/,
24482  60 /*deltaMinutes*/,
24483  13 /*letterIndex ("D")*/,
24484  },
24485  // Rule Taiwan 1946 only - Oct 1 0:00 0 S
24486  {
24487  1946 /*fromYear*/,
24488  1946 /*toYear*/,
24489  10 /*inMonth*/,
24490  0 /*onDayOfWeek*/,
24491  1 /*onDayOfMonth*/,
24492  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24493  0 /*atTimeCode (0/15)*/,
24494  0 /*deltaMinutes*/,
24495  25 /*letterIndex ("S")*/,
24496  },
24497  // Rule Taiwan 1947 only - Apr 15 0:00 1:00 D
24498  {
24499  1947 /*fromYear*/,
24500  1947 /*toYear*/,
24501  4 /*inMonth*/,
24502  0 /*onDayOfWeek*/,
24503  15 /*onDayOfMonth*/,
24504  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24505  0 /*atTimeCode (0/15)*/,
24506  60 /*deltaMinutes*/,
24507  13 /*letterIndex ("D")*/,
24508  },
24509  // Rule Taiwan 1947 only - Nov 1 0:00 0 S
24510  {
24511  1947 /*fromYear*/,
24512  1947 /*toYear*/,
24513  11 /*inMonth*/,
24514  0 /*onDayOfWeek*/,
24515  1 /*onDayOfMonth*/,
24516  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24517  0 /*atTimeCode (0/15)*/,
24518  0 /*deltaMinutes*/,
24519  25 /*letterIndex ("S")*/,
24520  },
24521  // Rule Taiwan 1948 1951 - May 1 0:00 1:00 D
24522  {
24523  1948 /*fromYear*/,
24524  1951 /*toYear*/,
24525  5 /*inMonth*/,
24526  0 /*onDayOfWeek*/,
24527  1 /*onDayOfMonth*/,
24528  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24529  0 /*atTimeCode (0/15)*/,
24530  60 /*deltaMinutes*/,
24531  13 /*letterIndex ("D")*/,
24532  },
24533  // Rule Taiwan 1948 1951 - Oct 1 0:00 0 S
24534  {
24535  1948 /*fromYear*/,
24536  1951 /*toYear*/,
24537  10 /*inMonth*/,
24538  0 /*onDayOfWeek*/,
24539  1 /*onDayOfMonth*/,
24540  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24541  0 /*atTimeCode (0/15)*/,
24542  0 /*deltaMinutes*/,
24543  25 /*letterIndex ("S")*/,
24544  },
24545  // Rule Taiwan 1952 only - Mar 1 0:00 1:00 D
24546  {
24547  1952 /*fromYear*/,
24548  1952 /*toYear*/,
24549  3 /*inMonth*/,
24550  0 /*onDayOfWeek*/,
24551  1 /*onDayOfMonth*/,
24552  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24553  0 /*atTimeCode (0/15)*/,
24554  60 /*deltaMinutes*/,
24555  13 /*letterIndex ("D")*/,
24556  },
24557  // Rule Taiwan 1952 1954 - Nov 1 0:00 0 S
24558  {
24559  1952 /*fromYear*/,
24560  1954 /*toYear*/,
24561  11 /*inMonth*/,
24562  0 /*onDayOfWeek*/,
24563  1 /*onDayOfMonth*/,
24564  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24565  0 /*atTimeCode (0/15)*/,
24566  0 /*deltaMinutes*/,
24567  25 /*letterIndex ("S")*/,
24568  },
24569  // Rule Taiwan 1953 1959 - Apr 1 0:00 1:00 D
24570  {
24571  1953 /*fromYear*/,
24572  1959 /*toYear*/,
24573  4 /*inMonth*/,
24574  0 /*onDayOfWeek*/,
24575  1 /*onDayOfMonth*/,
24576  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24577  0 /*atTimeCode (0/15)*/,
24578  60 /*deltaMinutes*/,
24579  13 /*letterIndex ("D")*/,
24580  },
24581  // Rule Taiwan 1955 1961 - Oct 1 0:00 0 S
24582  {
24583  1955 /*fromYear*/,
24584  1961 /*toYear*/,
24585  10 /*inMonth*/,
24586  0 /*onDayOfWeek*/,
24587  1 /*onDayOfMonth*/,
24588  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24589  0 /*atTimeCode (0/15)*/,
24590  0 /*deltaMinutes*/,
24591  25 /*letterIndex ("S")*/,
24592  },
24593  // Rule Taiwan 1960 1961 - Jun 1 0:00 1:00 D
24594  {
24595  1960 /*fromYear*/,
24596  1961 /*toYear*/,
24597  6 /*inMonth*/,
24598  0 /*onDayOfWeek*/,
24599  1 /*onDayOfMonth*/,
24600  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24601  0 /*atTimeCode (0/15)*/,
24602  60 /*deltaMinutes*/,
24603  13 /*letterIndex ("D")*/,
24604  },
24605  // Rule Taiwan 1974 1975 - Apr 1 0:00 1:00 D
24606  {
24607  1974 /*fromYear*/,
24608  1975 /*toYear*/,
24609  4 /*inMonth*/,
24610  0 /*onDayOfWeek*/,
24611  1 /*onDayOfMonth*/,
24612  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24613  0 /*atTimeCode (0/15)*/,
24614  60 /*deltaMinutes*/,
24615  13 /*letterIndex ("D")*/,
24616  },
24617  // Rule Taiwan 1974 1975 - Oct 1 0:00 0 S
24618  {
24619  1974 /*fromYear*/,
24620  1975 /*toYear*/,
24621  10 /*inMonth*/,
24622  0 /*onDayOfWeek*/,
24623  1 /*onDayOfMonth*/,
24624  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24625  0 /*atTimeCode (0/15)*/,
24626  0 /*deltaMinutes*/,
24627  25 /*letterIndex ("S")*/,
24628  },
24629  // Rule Taiwan 1979 only - Jul 1 0:00 1:00 D
24630  {
24631  1979 /*fromYear*/,
24632  1979 /*toYear*/,
24633  7 /*inMonth*/,
24634  0 /*onDayOfWeek*/,
24635  1 /*onDayOfMonth*/,
24636  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24637  0 /*atTimeCode (0/15)*/,
24638  60 /*deltaMinutes*/,
24639  13 /*letterIndex ("D")*/,
24640  },
24641  // Rule Taiwan 1979 only - Oct 1 0:00 0 S
24642  {
24643  1979 /*fromYear*/,
24644  1979 /*toYear*/,
24645  10 /*inMonth*/,
24646  0 /*onDayOfWeek*/,
24647  1 /*onDayOfMonth*/,
24648  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24649  0 /*atTimeCode (0/15)*/,
24650  0 /*deltaMinutes*/,
24651  25 /*letterIndex ("S")*/,
24652  },
24653 
24654 };
24655 
24656 const complete::Info::ZonePolicy kZonePolicyTaiwan ACE_TIME_PROGMEM = {
24657  kZoneRulesTaiwan /*rules*/,
24658  16 /*numRules*/,
24659 };
24660 
24661 //---------------------------------------------------------------------------
24662 // Policy name: Thule
24663 // Rules: 7
24664 //---------------------------------------------------------------------------
24665 
24666 static const complete::Info::ZoneRule kZoneRulesThule[] ACE_TIME_PROGMEM = {
24667  // Anchor: Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
24668  {
24669  -32767 /*fromYear*/,
24670  -32767 /*toYear*/,
24671  1 /*inMonth*/,
24672  0 /*onDayOfWeek*/,
24673  1 /*onDayOfMonth*/,
24674  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24675  0 /*atTimeCode (0/15)*/,
24676  0 /*deltaMinutes*/,
24677  25 /*letterIndex ("S")*/,
24678  },
24679  // Rule Thule 1991 1992 - Mar lastSun 2:00 1:00 D
24680  {
24681  1991 /*fromYear*/,
24682  1992 /*toYear*/,
24683  3 /*inMonth*/,
24684  7 /*onDayOfWeek*/,
24685  0 /*onDayOfMonth*/,
24686  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24687  480 /*atTimeCode (7200/15)*/,
24688  60 /*deltaMinutes*/,
24689  13 /*letterIndex ("D")*/,
24690  },
24691  // Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
24692  {
24693  1991 /*fromYear*/,
24694  1992 /*toYear*/,
24695  9 /*inMonth*/,
24696  7 /*onDayOfWeek*/,
24697  0 /*onDayOfMonth*/,
24698  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24699  480 /*atTimeCode (7200/15)*/,
24700  0 /*deltaMinutes*/,
24701  25 /*letterIndex ("S")*/,
24702  },
24703  // Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
24704  {
24705  1993 /*fromYear*/,
24706  2006 /*toYear*/,
24707  4 /*inMonth*/,
24708  7 /*onDayOfWeek*/,
24709  1 /*onDayOfMonth*/,
24710  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24711  480 /*atTimeCode (7200/15)*/,
24712  60 /*deltaMinutes*/,
24713  13 /*letterIndex ("D")*/,
24714  },
24715  // Rule Thule 1993 2006 - Oct lastSun 2:00 0 S
24716  {
24717  1993 /*fromYear*/,
24718  2006 /*toYear*/,
24719  10 /*inMonth*/,
24720  7 /*onDayOfWeek*/,
24721  0 /*onDayOfMonth*/,
24722  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24723  480 /*atTimeCode (7200/15)*/,
24724  0 /*deltaMinutes*/,
24725  25 /*letterIndex ("S")*/,
24726  },
24727  // Rule Thule 2007 max - Mar Sun>=8 2:00 1:00 D
24728  {
24729  2007 /*fromYear*/,
24730  32766 /*toYear*/,
24731  3 /*inMonth*/,
24732  7 /*onDayOfWeek*/,
24733  8 /*onDayOfMonth*/,
24734  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24735  480 /*atTimeCode (7200/15)*/,
24736  60 /*deltaMinutes*/,
24737  13 /*letterIndex ("D")*/,
24738  },
24739  // Rule Thule 2007 max - Nov Sun>=1 2:00 0 S
24740  {
24741  2007 /*fromYear*/,
24742  32766 /*toYear*/,
24743  11 /*inMonth*/,
24744  7 /*onDayOfWeek*/,
24745  1 /*onDayOfMonth*/,
24746  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24747  480 /*atTimeCode (7200/15)*/,
24748  0 /*deltaMinutes*/,
24749  25 /*letterIndex ("S")*/,
24750  },
24751 
24752 };
24753 
24754 const complete::Info::ZonePolicy kZonePolicyThule ACE_TIME_PROGMEM = {
24755  kZoneRulesThule /*rules*/,
24756  7 /*numRules*/,
24757 };
24758 
24759 //---------------------------------------------------------------------------
24760 // Policy name: Tonga
24761 // Rules: 7
24762 //---------------------------------------------------------------------------
24763 
24764 static const complete::Info::ZoneRule kZoneRulesTonga[] ACE_TIME_PROGMEM = {
24765  // Anchor: Rule Tonga 2000 only - Mar 19 2:00s 0 -
24766  {
24767  -32767 /*fromYear*/,
24768  -32767 /*toYear*/,
24769  1 /*inMonth*/,
24770  0 /*onDayOfWeek*/,
24771  1 /*onDayOfMonth*/,
24772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24773  0 /*atTimeCode (0/15)*/,
24774  0 /*deltaMinutes*/,
24775  0 /*letterIndex ("")*/,
24776  },
24777  // Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
24778  {
24779  1999 /*fromYear*/,
24780  1999 /*toYear*/,
24781  10 /*inMonth*/,
24782  0 /*onDayOfWeek*/,
24783  7 /*onDayOfMonth*/,
24784  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
24785  480 /*atTimeCode (7200/15)*/,
24786  60 /*deltaMinutes*/,
24787  0 /*letterIndex ("")*/,
24788  },
24789  // Rule Tonga 2000 only - Mar 19 2:00s 0 -
24790  {
24791  2000 /*fromYear*/,
24792  2000 /*toYear*/,
24793  3 /*inMonth*/,
24794  0 /*onDayOfWeek*/,
24795  19 /*onDayOfMonth*/,
24796  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
24797  480 /*atTimeCode (7200/15)*/,
24798  0 /*deltaMinutes*/,
24799  0 /*letterIndex ("")*/,
24800  },
24801  // Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
24802  {
24803  2000 /*fromYear*/,
24804  2001 /*toYear*/,
24805  11 /*inMonth*/,
24806  7 /*onDayOfWeek*/,
24807  1 /*onDayOfMonth*/,
24808  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24809  480 /*atTimeCode (7200/15)*/,
24810  60 /*deltaMinutes*/,
24811  0 /*letterIndex ("")*/,
24812  },
24813  // Rule Tonga 2001 2002 - Jan lastSun 2:00 0 -
24814  {
24815  2001 /*fromYear*/,
24816  2002 /*toYear*/,
24817  1 /*inMonth*/,
24818  7 /*onDayOfWeek*/,
24819  0 /*onDayOfMonth*/,
24820  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24821  480 /*atTimeCode (7200/15)*/,
24822  0 /*deltaMinutes*/,
24823  0 /*letterIndex ("")*/,
24824  },
24825  // Rule Tonga 2016 only - Nov Sun>=1 2:00 1:00 -
24826  {
24827  2016 /*fromYear*/,
24828  2016 /*toYear*/,
24829  11 /*inMonth*/,
24830  7 /*onDayOfWeek*/,
24831  1 /*onDayOfMonth*/,
24832  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24833  480 /*atTimeCode (7200/15)*/,
24834  60 /*deltaMinutes*/,
24835  0 /*letterIndex ("")*/,
24836  },
24837  // Rule Tonga 2017 only - Jan Sun>=15 3:00 0 -
24838  {
24839  2017 /*fromYear*/,
24840  2017 /*toYear*/,
24841  1 /*inMonth*/,
24842  7 /*onDayOfWeek*/,
24843  15 /*onDayOfMonth*/,
24844  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24845  720 /*atTimeCode (10800/15)*/,
24846  0 /*deltaMinutes*/,
24847  0 /*letterIndex ("")*/,
24848  },
24849 
24850 };
24851 
24852 const complete::Info::ZonePolicy kZonePolicyTonga ACE_TIME_PROGMEM = {
24853  kZoneRulesTonga /*rules*/,
24854  7 /*numRules*/,
24855 };
24856 
24857 //---------------------------------------------------------------------------
24858 // Policy name: Toronto
24859 // Rules: 19
24860 //---------------------------------------------------------------------------
24861 
24862 static const complete::Info::ZoneRule kZoneRulesToronto[] ACE_TIME_PROGMEM = {
24863  // Anchor: Rule Toronto 1919 only - Oct 26 0:00 0 S
24864  {
24865  -32767 /*fromYear*/,
24866  -32767 /*toYear*/,
24867  1 /*inMonth*/,
24868  0 /*onDayOfWeek*/,
24869  1 /*onDayOfMonth*/,
24870  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24871  0 /*atTimeCode (0/15)*/,
24872  0 /*deltaMinutes*/,
24873  25 /*letterIndex ("S")*/,
24874  },
24875  // Rule Toronto 1919 only - Mar 30 23:30 1:00 D
24876  {
24877  1919 /*fromYear*/,
24878  1919 /*toYear*/,
24879  3 /*inMonth*/,
24880  0 /*onDayOfWeek*/,
24881  30 /*onDayOfMonth*/,
24882  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24883  5640 /*atTimeCode (84600/15)*/,
24884  60 /*deltaMinutes*/,
24885  13 /*letterIndex ("D")*/,
24886  },
24887  // Rule Toronto 1919 only - Oct 26 0:00 0 S
24888  {
24889  1919 /*fromYear*/,
24890  1919 /*toYear*/,
24891  10 /*inMonth*/,
24892  0 /*onDayOfWeek*/,
24893  26 /*onDayOfMonth*/,
24894  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24895  0 /*atTimeCode (0/15)*/,
24896  0 /*deltaMinutes*/,
24897  25 /*letterIndex ("S")*/,
24898  },
24899  // Rule Toronto 1920 only - May 2 2:00 1:00 D
24900  {
24901  1920 /*fromYear*/,
24902  1920 /*toYear*/,
24903  5 /*inMonth*/,
24904  0 /*onDayOfWeek*/,
24905  2 /*onDayOfMonth*/,
24906  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24907  480 /*atTimeCode (7200/15)*/,
24908  60 /*deltaMinutes*/,
24909  13 /*letterIndex ("D")*/,
24910  },
24911  // Rule Toronto 1920 only - Sep 26 0:00 0 S
24912  {
24913  1920 /*fromYear*/,
24914  1920 /*toYear*/,
24915  9 /*inMonth*/,
24916  0 /*onDayOfWeek*/,
24917  26 /*onDayOfMonth*/,
24918  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24919  0 /*atTimeCode (0/15)*/,
24920  0 /*deltaMinutes*/,
24921  25 /*letterIndex ("S")*/,
24922  },
24923  // Rule Toronto 1921 only - May 15 2:00 1:00 D
24924  {
24925  1921 /*fromYear*/,
24926  1921 /*toYear*/,
24927  5 /*inMonth*/,
24928  0 /*onDayOfWeek*/,
24929  15 /*onDayOfMonth*/,
24930  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24931  480 /*atTimeCode (7200/15)*/,
24932  60 /*deltaMinutes*/,
24933  13 /*letterIndex ("D")*/,
24934  },
24935  // Rule Toronto 1921 only - Sep 15 2:00 0 S
24936  {
24937  1921 /*fromYear*/,
24938  1921 /*toYear*/,
24939  9 /*inMonth*/,
24940  0 /*onDayOfWeek*/,
24941  15 /*onDayOfMonth*/,
24942  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24943  480 /*atTimeCode (7200/15)*/,
24944  0 /*deltaMinutes*/,
24945  25 /*letterIndex ("S")*/,
24946  },
24947  // Rule Toronto 1922 1923 - May Sun>=8 2:00 1:00 D
24948  {
24949  1922 /*fromYear*/,
24950  1923 /*toYear*/,
24951  5 /*inMonth*/,
24952  7 /*onDayOfWeek*/,
24953  8 /*onDayOfMonth*/,
24954  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24955  480 /*atTimeCode (7200/15)*/,
24956  60 /*deltaMinutes*/,
24957  13 /*letterIndex ("D")*/,
24958  },
24959  // Rule Toronto 1922 1926 - Sep Sun>=15 2:00 0 S
24960  {
24961  1922 /*fromYear*/,
24962  1926 /*toYear*/,
24963  9 /*inMonth*/,
24964  7 /*onDayOfWeek*/,
24965  15 /*onDayOfMonth*/,
24966  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24967  480 /*atTimeCode (7200/15)*/,
24968  0 /*deltaMinutes*/,
24969  25 /*letterIndex ("S")*/,
24970  },
24971  // Rule Toronto 1924 1927 - May Sun>=1 2:00 1:00 D
24972  {
24973  1924 /*fromYear*/,
24974  1927 /*toYear*/,
24975  5 /*inMonth*/,
24976  7 /*onDayOfWeek*/,
24977  1 /*onDayOfMonth*/,
24978  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24979  480 /*atTimeCode (7200/15)*/,
24980  60 /*deltaMinutes*/,
24981  13 /*letterIndex ("D")*/,
24982  },
24983  // Rule Toronto 1927 1937 - Sep Sun>=25 2:00 0 S
24984  {
24985  1927 /*fromYear*/,
24986  1937 /*toYear*/,
24987  9 /*inMonth*/,
24988  7 /*onDayOfWeek*/,
24989  25 /*onDayOfMonth*/,
24990  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
24991  480 /*atTimeCode (7200/15)*/,
24992  0 /*deltaMinutes*/,
24993  25 /*letterIndex ("S")*/,
24994  },
24995  // Rule Toronto 1928 1937 - Apr Sun>=25 2:00 1:00 D
24996  {
24997  1928 /*fromYear*/,
24998  1937 /*toYear*/,
24999  4 /*inMonth*/,
25000  7 /*onDayOfWeek*/,
25001  25 /*onDayOfMonth*/,
25002  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25003  480 /*atTimeCode (7200/15)*/,
25004  60 /*deltaMinutes*/,
25005  13 /*letterIndex ("D")*/,
25006  },
25007  // Rule Toronto 1938 1940 - Apr lastSun 2:00 1:00 D
25008  {
25009  1938 /*fromYear*/,
25010  1940 /*toYear*/,
25011  4 /*inMonth*/,
25012  7 /*onDayOfWeek*/,
25013  0 /*onDayOfMonth*/,
25014  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25015  480 /*atTimeCode (7200/15)*/,
25016  60 /*deltaMinutes*/,
25017  13 /*letterIndex ("D")*/,
25018  },
25019  // Rule Toronto 1938 1939 - Sep lastSun 2:00 0 S
25020  {
25021  1938 /*fromYear*/,
25022  1939 /*toYear*/,
25023  9 /*inMonth*/,
25024  7 /*onDayOfWeek*/,
25025  0 /*onDayOfMonth*/,
25026  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25027  480 /*atTimeCode (7200/15)*/,
25028  0 /*deltaMinutes*/,
25029  25 /*letterIndex ("S")*/,
25030  },
25031  // Rule Toronto 1945 1948 - Sep lastSun 2:00 0 S
25032  {
25033  1945 /*fromYear*/,
25034  1948 /*toYear*/,
25035  9 /*inMonth*/,
25036  7 /*onDayOfWeek*/,
25037  0 /*onDayOfMonth*/,
25038  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25039  480 /*atTimeCode (7200/15)*/,
25040  0 /*deltaMinutes*/,
25041  25 /*letterIndex ("S")*/,
25042  },
25043  // Rule Toronto 1946 1973 - Apr lastSun 2:00 1:00 D
25044  {
25045  1946 /*fromYear*/,
25046  1973 /*toYear*/,
25047  4 /*inMonth*/,
25048  7 /*onDayOfWeek*/,
25049  0 /*onDayOfMonth*/,
25050  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25051  480 /*atTimeCode (7200/15)*/,
25052  60 /*deltaMinutes*/,
25053  13 /*letterIndex ("D")*/,
25054  },
25055  // Rule Toronto 1949 1950 - Nov lastSun 2:00 0 S
25056  {
25057  1949 /*fromYear*/,
25058  1950 /*toYear*/,
25059  11 /*inMonth*/,
25060  7 /*onDayOfWeek*/,
25061  0 /*onDayOfMonth*/,
25062  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25063  480 /*atTimeCode (7200/15)*/,
25064  0 /*deltaMinutes*/,
25065  25 /*letterIndex ("S")*/,
25066  },
25067  // Rule Toronto 1951 1956 - Sep lastSun 2:00 0 S
25068  {
25069  1951 /*fromYear*/,
25070  1956 /*toYear*/,
25071  9 /*inMonth*/,
25072  7 /*onDayOfWeek*/,
25073  0 /*onDayOfMonth*/,
25074  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25075  480 /*atTimeCode (7200/15)*/,
25076  0 /*deltaMinutes*/,
25077  25 /*letterIndex ("S")*/,
25078  },
25079  // Rule Toronto 1957 1973 - Oct lastSun 2:00 0 S
25080  {
25081  1957 /*fromYear*/,
25082  1973 /*toYear*/,
25083  10 /*inMonth*/,
25084  7 /*onDayOfWeek*/,
25085  0 /*onDayOfMonth*/,
25086  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25087  480 /*atTimeCode (7200/15)*/,
25088  0 /*deltaMinutes*/,
25089  25 /*letterIndex ("S")*/,
25090  },
25091 
25092 };
25093 
25094 const complete::Info::ZonePolicy kZonePolicyToronto ACE_TIME_PROGMEM = {
25095  kZoneRulesToronto /*rules*/,
25096  19 /*numRules*/,
25097 };
25098 
25099 //---------------------------------------------------------------------------
25100 // Policy name: Troll
25101 // Rules: 3
25102 //---------------------------------------------------------------------------
25103 
25104 static const complete::Info::ZoneRule kZoneRulesTroll[] ACE_TIME_PROGMEM = {
25105  // Anchor: Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
25106  {
25107  -32767 /*fromYear*/,
25108  -32767 /*toYear*/,
25109  1 /*inMonth*/,
25110  0 /*onDayOfWeek*/,
25111  1 /*onDayOfMonth*/,
25112  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25113  0 /*atTimeCode (0/15)*/,
25114  0 /*deltaMinutes*/,
25115  1 /*letterIndex ("+00")*/,
25116  },
25117  // Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
25118  {
25119  2005 /*fromYear*/,
25120  32766 /*toYear*/,
25121  3 /*inMonth*/,
25122  7 /*onDayOfWeek*/,
25123  0 /*onDayOfMonth*/,
25124  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
25125  240 /*atTimeCode (3600/15)*/,
25126  120 /*deltaMinutes*/,
25127  2 /*letterIndex ("+02")*/,
25128  },
25129  // Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
25130  {
25131  2004 /*fromYear*/,
25132  32766 /*toYear*/,
25133  10 /*inMonth*/,
25134  7 /*onDayOfWeek*/,
25135  0 /*onDayOfMonth*/,
25136  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
25137  240 /*atTimeCode (3600/15)*/,
25138  0 /*deltaMinutes*/,
25139  1 /*letterIndex ("+00")*/,
25140  },
25141 
25142 };
25143 
25144 const complete::Info::ZonePolicy kZonePolicyTroll ACE_TIME_PROGMEM = {
25145  kZoneRulesTroll /*rules*/,
25146  3 /*numRules*/,
25147 };
25148 
25149 //---------------------------------------------------------------------------
25150 // Policy name: Tunisia
25151 // Rules: 26
25152 //---------------------------------------------------------------------------
25153 
25154 static const complete::Info::ZoneRule kZoneRulesTunisia[] ACE_TIME_PROGMEM = {
25155  // Anchor: Rule Tunisia 1939 only - Nov 18 23:00s 0 -
25156  {
25157  -32767 /*fromYear*/,
25158  -32767 /*toYear*/,
25159  1 /*inMonth*/,
25160  0 /*onDayOfWeek*/,
25161  1 /*onDayOfMonth*/,
25162  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25163  0 /*atTimeCode (0/15)*/,
25164  0 /*deltaMinutes*/,
25165  0 /*letterIndex ("")*/,
25166  },
25167  // Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
25168  {
25169  1939 /*fromYear*/,
25170  1939 /*toYear*/,
25171  4 /*inMonth*/,
25172  0 /*onDayOfWeek*/,
25173  15 /*onDayOfMonth*/,
25174  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25175  5520 /*atTimeCode (82800/15)*/,
25176  60 /*deltaMinutes*/,
25177  25 /*letterIndex ("S")*/,
25178  },
25179  // Rule Tunisia 1939 only - Nov 18 23:00s 0 -
25180  {
25181  1939 /*fromYear*/,
25182  1939 /*toYear*/,
25183  11 /*inMonth*/,
25184  0 /*onDayOfWeek*/,
25185  18 /*onDayOfMonth*/,
25186  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25187  5520 /*atTimeCode (82800/15)*/,
25188  0 /*deltaMinutes*/,
25189  0 /*letterIndex ("")*/,
25190  },
25191  // Rule Tunisia 1940 only - Feb 25 23:00s 1:00 S
25192  {
25193  1940 /*fromYear*/,
25194  1940 /*toYear*/,
25195  2 /*inMonth*/,
25196  0 /*onDayOfWeek*/,
25197  25 /*onDayOfMonth*/,
25198  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25199  5520 /*atTimeCode (82800/15)*/,
25200  60 /*deltaMinutes*/,
25201  25 /*letterIndex ("S")*/,
25202  },
25203  // Rule Tunisia 1941 only - Oct 6 0:00 0 -
25204  {
25205  1941 /*fromYear*/,
25206  1941 /*toYear*/,
25207  10 /*inMonth*/,
25208  0 /*onDayOfWeek*/,
25209  6 /*onDayOfMonth*/,
25210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25211  0 /*atTimeCode (0/15)*/,
25212  0 /*deltaMinutes*/,
25213  0 /*letterIndex ("")*/,
25214  },
25215  // Rule Tunisia 1942 only - Mar 9 0:00 1:00 S
25216  {
25217  1942 /*fromYear*/,
25218  1942 /*toYear*/,
25219  3 /*inMonth*/,
25220  0 /*onDayOfWeek*/,
25221  9 /*onDayOfMonth*/,
25222  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25223  0 /*atTimeCode (0/15)*/,
25224  60 /*deltaMinutes*/,
25225  25 /*letterIndex ("S")*/,
25226  },
25227  // Rule Tunisia 1942 only - Nov 2 3:00 0 -
25228  {
25229  1942 /*fromYear*/,
25230  1942 /*toYear*/,
25231  11 /*inMonth*/,
25232  0 /*onDayOfWeek*/,
25233  2 /*onDayOfMonth*/,
25234  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25235  720 /*atTimeCode (10800/15)*/,
25236  0 /*deltaMinutes*/,
25237  0 /*letterIndex ("")*/,
25238  },
25239  // Rule Tunisia 1943 only - Mar 29 2:00 1:00 S
25240  {
25241  1943 /*fromYear*/,
25242  1943 /*toYear*/,
25243  3 /*inMonth*/,
25244  0 /*onDayOfWeek*/,
25245  29 /*onDayOfMonth*/,
25246  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25247  480 /*atTimeCode (7200/15)*/,
25248  60 /*deltaMinutes*/,
25249  25 /*letterIndex ("S")*/,
25250  },
25251  // Rule Tunisia 1943 only - Apr 17 2:00 0 -
25252  {
25253  1943 /*fromYear*/,
25254  1943 /*toYear*/,
25255  4 /*inMonth*/,
25256  0 /*onDayOfWeek*/,
25257  17 /*onDayOfMonth*/,
25258  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25259  480 /*atTimeCode (7200/15)*/,
25260  0 /*deltaMinutes*/,
25261  0 /*letterIndex ("")*/,
25262  },
25263  // Rule Tunisia 1943 only - Apr 25 2:00 1:00 S
25264  {
25265  1943 /*fromYear*/,
25266  1943 /*toYear*/,
25267  4 /*inMonth*/,
25268  0 /*onDayOfWeek*/,
25269  25 /*onDayOfMonth*/,
25270  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25271  480 /*atTimeCode (7200/15)*/,
25272  60 /*deltaMinutes*/,
25273  25 /*letterIndex ("S")*/,
25274  },
25275  // Rule Tunisia 1943 only - Oct 4 2:00 0 -
25276  {
25277  1943 /*fromYear*/,
25278  1943 /*toYear*/,
25279  10 /*inMonth*/,
25280  0 /*onDayOfWeek*/,
25281  4 /*onDayOfMonth*/,
25282  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25283  480 /*atTimeCode (7200/15)*/,
25284  0 /*deltaMinutes*/,
25285  0 /*letterIndex ("")*/,
25286  },
25287  // Rule Tunisia 1944 1945 - Apr Mon>=1 2:00 1:00 S
25288  {
25289  1944 /*fromYear*/,
25290  1945 /*toYear*/,
25291  4 /*inMonth*/,
25292  1 /*onDayOfWeek*/,
25293  1 /*onDayOfMonth*/,
25294  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25295  480 /*atTimeCode (7200/15)*/,
25296  60 /*deltaMinutes*/,
25297  25 /*letterIndex ("S")*/,
25298  },
25299  // Rule Tunisia 1944 only - Oct 8 0:00 0 -
25300  {
25301  1944 /*fromYear*/,
25302  1944 /*toYear*/,
25303  10 /*inMonth*/,
25304  0 /*onDayOfWeek*/,
25305  8 /*onDayOfMonth*/,
25306  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25307  0 /*atTimeCode (0/15)*/,
25308  0 /*deltaMinutes*/,
25309  0 /*letterIndex ("")*/,
25310  },
25311  // Rule Tunisia 1945 only - Sep 16 0:00 0 -
25312  {
25313  1945 /*fromYear*/,
25314  1945 /*toYear*/,
25315  9 /*inMonth*/,
25316  0 /*onDayOfWeek*/,
25317  16 /*onDayOfMonth*/,
25318  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25319  0 /*atTimeCode (0/15)*/,
25320  0 /*deltaMinutes*/,
25321  0 /*letterIndex ("")*/,
25322  },
25323  // Rule Tunisia 1977 only - Apr 30 0:00s 1:00 S
25324  {
25325  1977 /*fromYear*/,
25326  1977 /*toYear*/,
25327  4 /*inMonth*/,
25328  0 /*onDayOfWeek*/,
25329  30 /*onDayOfMonth*/,
25330  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25331  0 /*atTimeCode (0/15)*/,
25332  60 /*deltaMinutes*/,
25333  25 /*letterIndex ("S")*/,
25334  },
25335  // Rule Tunisia 1977 only - Sep 24 0:00s 0 -
25336  {
25337  1977 /*fromYear*/,
25338  1977 /*toYear*/,
25339  9 /*inMonth*/,
25340  0 /*onDayOfWeek*/,
25341  24 /*onDayOfMonth*/,
25342  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25343  0 /*atTimeCode (0/15)*/,
25344  0 /*deltaMinutes*/,
25345  0 /*letterIndex ("")*/,
25346  },
25347  // Rule Tunisia 1978 only - May 1 0:00s 1:00 S
25348  {
25349  1978 /*fromYear*/,
25350  1978 /*toYear*/,
25351  5 /*inMonth*/,
25352  0 /*onDayOfWeek*/,
25353  1 /*onDayOfMonth*/,
25354  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25355  0 /*atTimeCode (0/15)*/,
25356  60 /*deltaMinutes*/,
25357  25 /*letterIndex ("S")*/,
25358  },
25359  // Rule Tunisia 1978 only - Oct 1 0:00s 0 -
25360  {
25361  1978 /*fromYear*/,
25362  1978 /*toYear*/,
25363  10 /*inMonth*/,
25364  0 /*onDayOfWeek*/,
25365  1 /*onDayOfMonth*/,
25366  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25367  0 /*atTimeCode (0/15)*/,
25368  0 /*deltaMinutes*/,
25369  0 /*letterIndex ("")*/,
25370  },
25371  // Rule Tunisia 1988 only - Jun 1 0:00s 1:00 S
25372  {
25373  1988 /*fromYear*/,
25374  1988 /*toYear*/,
25375  6 /*inMonth*/,
25376  0 /*onDayOfWeek*/,
25377  1 /*onDayOfMonth*/,
25378  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25379  0 /*atTimeCode (0/15)*/,
25380  60 /*deltaMinutes*/,
25381  25 /*letterIndex ("S")*/,
25382  },
25383  // Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 -
25384  {
25385  1988 /*fromYear*/,
25386  1990 /*toYear*/,
25387  9 /*inMonth*/,
25388  7 /*onDayOfWeek*/,
25389  0 /*onDayOfMonth*/,
25390  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25391  0 /*atTimeCode (0/15)*/,
25392  0 /*deltaMinutes*/,
25393  0 /*letterIndex ("")*/,
25394  },
25395  // Rule Tunisia 1989 only - Mar 26 0:00s 1:00 S
25396  {
25397  1989 /*fromYear*/,
25398  1989 /*toYear*/,
25399  3 /*inMonth*/,
25400  0 /*onDayOfWeek*/,
25401  26 /*onDayOfMonth*/,
25402  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25403  0 /*atTimeCode (0/15)*/,
25404  60 /*deltaMinutes*/,
25405  25 /*letterIndex ("S")*/,
25406  },
25407  // Rule Tunisia 1990 only - May 1 0:00s 1:00 S
25408  {
25409  1990 /*fromYear*/,
25410  1990 /*toYear*/,
25411  5 /*inMonth*/,
25412  0 /*onDayOfWeek*/,
25413  1 /*onDayOfMonth*/,
25414  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25415  0 /*atTimeCode (0/15)*/,
25416  60 /*deltaMinutes*/,
25417  25 /*letterIndex ("S")*/,
25418  },
25419  // Rule Tunisia 2005 only - May 1 0:00s 1:00 S
25420  {
25421  2005 /*fromYear*/,
25422  2005 /*toYear*/,
25423  5 /*inMonth*/,
25424  0 /*onDayOfWeek*/,
25425  1 /*onDayOfMonth*/,
25426  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25427  0 /*atTimeCode (0/15)*/,
25428  60 /*deltaMinutes*/,
25429  25 /*letterIndex ("S")*/,
25430  },
25431  // Rule Tunisia 2005 only - Sep 30 1:00s 0 -
25432  {
25433  2005 /*fromYear*/,
25434  2005 /*toYear*/,
25435  9 /*inMonth*/,
25436  0 /*onDayOfWeek*/,
25437  30 /*onDayOfMonth*/,
25438  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25439  240 /*atTimeCode (3600/15)*/,
25440  0 /*deltaMinutes*/,
25441  0 /*letterIndex ("")*/,
25442  },
25443  // Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
25444  {
25445  2006 /*fromYear*/,
25446  2008 /*toYear*/,
25447  3 /*inMonth*/,
25448  7 /*onDayOfWeek*/,
25449  0 /*onDayOfMonth*/,
25450  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25451  480 /*atTimeCode (7200/15)*/,
25452  60 /*deltaMinutes*/,
25453  25 /*letterIndex ("S")*/,
25454  },
25455  // Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
25456  {
25457  2006 /*fromYear*/,
25458  2008 /*toYear*/,
25459  10 /*inMonth*/,
25460  7 /*onDayOfWeek*/,
25461  0 /*onDayOfMonth*/,
25462  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25463  480 /*atTimeCode (7200/15)*/,
25464  0 /*deltaMinutes*/,
25465  0 /*letterIndex ("")*/,
25466  },
25467 
25468 };
25469 
25470 const complete::Info::ZonePolicy kZonePolicyTunisia ACE_TIME_PROGMEM = {
25471  kZoneRulesTunisia /*rules*/,
25472  26 /*numRules*/,
25473 };
25474 
25475 //---------------------------------------------------------------------------
25476 // Policy name: Turkey
25477 // Rules: 46
25478 //---------------------------------------------------------------------------
25479 
25480 static const complete::Info::ZoneRule kZoneRulesTurkey[] ACE_TIME_PROGMEM = {
25481  // Anchor: Rule Turkey 1916 only - Oct 1 0:00 0 -
25482  {
25483  -32767 /*fromYear*/,
25484  -32767 /*toYear*/,
25485  1 /*inMonth*/,
25486  0 /*onDayOfWeek*/,
25487  1 /*onDayOfMonth*/,
25488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25489  0 /*atTimeCode (0/15)*/,
25490  0 /*deltaMinutes*/,
25491  0 /*letterIndex ("")*/,
25492  },
25493  // Rule Turkey 1916 only - May 1 0:00 1:00 S
25494  {
25495  1916 /*fromYear*/,
25496  1916 /*toYear*/,
25497  5 /*inMonth*/,
25498  0 /*onDayOfWeek*/,
25499  1 /*onDayOfMonth*/,
25500  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25501  0 /*atTimeCode (0/15)*/,
25502  60 /*deltaMinutes*/,
25503  25 /*letterIndex ("S")*/,
25504  },
25505  // Rule Turkey 1916 only - Oct 1 0:00 0 -
25506  {
25507  1916 /*fromYear*/,
25508  1916 /*toYear*/,
25509  10 /*inMonth*/,
25510  0 /*onDayOfWeek*/,
25511  1 /*onDayOfMonth*/,
25512  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25513  0 /*atTimeCode (0/15)*/,
25514  0 /*deltaMinutes*/,
25515  0 /*letterIndex ("")*/,
25516  },
25517  // Rule Turkey 1920 only - Mar 28 0:00 1:00 S
25518  {
25519  1920 /*fromYear*/,
25520  1920 /*toYear*/,
25521  3 /*inMonth*/,
25522  0 /*onDayOfWeek*/,
25523  28 /*onDayOfMonth*/,
25524  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25525  0 /*atTimeCode (0/15)*/,
25526  60 /*deltaMinutes*/,
25527  25 /*letterIndex ("S")*/,
25528  },
25529  // Rule Turkey 1920 only - Oct 25 0:00 0 -
25530  {
25531  1920 /*fromYear*/,
25532  1920 /*toYear*/,
25533  10 /*inMonth*/,
25534  0 /*onDayOfWeek*/,
25535  25 /*onDayOfMonth*/,
25536  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25537  0 /*atTimeCode (0/15)*/,
25538  0 /*deltaMinutes*/,
25539  0 /*letterIndex ("")*/,
25540  },
25541  // Rule Turkey 1921 only - Apr 3 0:00 1:00 S
25542  {
25543  1921 /*fromYear*/,
25544  1921 /*toYear*/,
25545  4 /*inMonth*/,
25546  0 /*onDayOfWeek*/,
25547  3 /*onDayOfMonth*/,
25548  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25549  0 /*atTimeCode (0/15)*/,
25550  60 /*deltaMinutes*/,
25551  25 /*letterIndex ("S")*/,
25552  },
25553  // Rule Turkey 1921 only - Oct 3 0:00 0 -
25554  {
25555  1921 /*fromYear*/,
25556  1921 /*toYear*/,
25557  10 /*inMonth*/,
25558  0 /*onDayOfWeek*/,
25559  3 /*onDayOfMonth*/,
25560  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25561  0 /*atTimeCode (0/15)*/,
25562  0 /*deltaMinutes*/,
25563  0 /*letterIndex ("")*/,
25564  },
25565  // Rule Turkey 1922 only - Mar 26 0:00 1:00 S
25566  {
25567  1922 /*fromYear*/,
25568  1922 /*toYear*/,
25569  3 /*inMonth*/,
25570  0 /*onDayOfWeek*/,
25571  26 /*onDayOfMonth*/,
25572  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25573  0 /*atTimeCode (0/15)*/,
25574  60 /*deltaMinutes*/,
25575  25 /*letterIndex ("S")*/,
25576  },
25577  // Rule Turkey 1922 only - Oct 8 0:00 0 -
25578  {
25579  1922 /*fromYear*/,
25580  1922 /*toYear*/,
25581  10 /*inMonth*/,
25582  0 /*onDayOfWeek*/,
25583  8 /*onDayOfMonth*/,
25584  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25585  0 /*atTimeCode (0/15)*/,
25586  0 /*deltaMinutes*/,
25587  0 /*letterIndex ("")*/,
25588  },
25589  // Rule Turkey 1924 only - May 13 0:00 1:00 S
25590  {
25591  1924 /*fromYear*/,
25592  1924 /*toYear*/,
25593  5 /*inMonth*/,
25594  0 /*onDayOfWeek*/,
25595  13 /*onDayOfMonth*/,
25596  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25597  0 /*atTimeCode (0/15)*/,
25598  60 /*deltaMinutes*/,
25599  25 /*letterIndex ("S")*/,
25600  },
25601  // Rule Turkey 1924 1925 - Oct 1 0:00 0 -
25602  {
25603  1924 /*fromYear*/,
25604  1925 /*toYear*/,
25605  10 /*inMonth*/,
25606  0 /*onDayOfWeek*/,
25607  1 /*onDayOfMonth*/,
25608  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25609  0 /*atTimeCode (0/15)*/,
25610  0 /*deltaMinutes*/,
25611  0 /*letterIndex ("")*/,
25612  },
25613  // Rule Turkey 1925 only - May 1 0:00 1:00 S
25614  {
25615  1925 /*fromYear*/,
25616  1925 /*toYear*/,
25617  5 /*inMonth*/,
25618  0 /*onDayOfWeek*/,
25619  1 /*onDayOfMonth*/,
25620  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25621  0 /*atTimeCode (0/15)*/,
25622  60 /*deltaMinutes*/,
25623  25 /*letterIndex ("S")*/,
25624  },
25625  // Rule Turkey 1940 only - Jul 1 0:00 1:00 S
25626  {
25627  1940 /*fromYear*/,
25628  1940 /*toYear*/,
25629  7 /*inMonth*/,
25630  0 /*onDayOfWeek*/,
25631  1 /*onDayOfMonth*/,
25632  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25633  0 /*atTimeCode (0/15)*/,
25634  60 /*deltaMinutes*/,
25635  25 /*letterIndex ("S")*/,
25636  },
25637  // Rule Turkey 1940 only - Oct 6 0:00 0 -
25638  {
25639  1940 /*fromYear*/,
25640  1940 /*toYear*/,
25641  10 /*inMonth*/,
25642  0 /*onDayOfWeek*/,
25643  6 /*onDayOfMonth*/,
25644  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25645  0 /*atTimeCode (0/15)*/,
25646  0 /*deltaMinutes*/,
25647  0 /*letterIndex ("")*/,
25648  },
25649  // Rule Turkey 1940 only - Dec 1 0:00 1:00 S
25650  {
25651  1940 /*fromYear*/,
25652  1940 /*toYear*/,
25653  12 /*inMonth*/,
25654  0 /*onDayOfWeek*/,
25655  1 /*onDayOfMonth*/,
25656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25657  0 /*atTimeCode (0/15)*/,
25658  60 /*deltaMinutes*/,
25659  25 /*letterIndex ("S")*/,
25660  },
25661  // Rule Turkey 1941 only - Sep 21 0:00 0 -
25662  {
25663  1941 /*fromYear*/,
25664  1941 /*toYear*/,
25665  9 /*inMonth*/,
25666  0 /*onDayOfWeek*/,
25667  21 /*onDayOfMonth*/,
25668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25669  0 /*atTimeCode (0/15)*/,
25670  0 /*deltaMinutes*/,
25671  0 /*letterIndex ("")*/,
25672  },
25673  // Rule Turkey 1942 only - Apr 1 0:00 1:00 S
25674  {
25675  1942 /*fromYear*/,
25676  1942 /*toYear*/,
25677  4 /*inMonth*/,
25678  0 /*onDayOfWeek*/,
25679  1 /*onDayOfMonth*/,
25680  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25681  0 /*atTimeCode (0/15)*/,
25682  60 /*deltaMinutes*/,
25683  25 /*letterIndex ("S")*/,
25684  },
25685  // Rule Turkey 1945 only - Oct 8 0:00 0 -
25686  {
25687  1945 /*fromYear*/,
25688  1945 /*toYear*/,
25689  10 /*inMonth*/,
25690  0 /*onDayOfWeek*/,
25691  8 /*onDayOfMonth*/,
25692  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25693  0 /*atTimeCode (0/15)*/,
25694  0 /*deltaMinutes*/,
25695  0 /*letterIndex ("")*/,
25696  },
25697  // Rule Turkey 1946 only - Jun 1 0:00 1:00 S
25698  {
25699  1946 /*fromYear*/,
25700  1946 /*toYear*/,
25701  6 /*inMonth*/,
25702  0 /*onDayOfWeek*/,
25703  1 /*onDayOfMonth*/,
25704  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25705  0 /*atTimeCode (0/15)*/,
25706  60 /*deltaMinutes*/,
25707  25 /*letterIndex ("S")*/,
25708  },
25709  // Rule Turkey 1946 only - Oct 1 0:00 0 -
25710  {
25711  1946 /*fromYear*/,
25712  1946 /*toYear*/,
25713  10 /*inMonth*/,
25714  0 /*onDayOfWeek*/,
25715  1 /*onDayOfMonth*/,
25716  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25717  0 /*atTimeCode (0/15)*/,
25718  0 /*deltaMinutes*/,
25719  0 /*letterIndex ("")*/,
25720  },
25721  // Rule Turkey 1947 1948 - Apr Sun>=16 0:00 1:00 S
25722  {
25723  1947 /*fromYear*/,
25724  1948 /*toYear*/,
25725  4 /*inMonth*/,
25726  7 /*onDayOfWeek*/,
25727  16 /*onDayOfMonth*/,
25728  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25729  0 /*atTimeCode (0/15)*/,
25730  60 /*deltaMinutes*/,
25731  25 /*letterIndex ("S")*/,
25732  },
25733  // Rule Turkey 1947 1951 - Oct Sun>=2 0:00 0 -
25734  {
25735  1947 /*fromYear*/,
25736  1951 /*toYear*/,
25737  10 /*inMonth*/,
25738  7 /*onDayOfWeek*/,
25739  2 /*onDayOfMonth*/,
25740  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25741  0 /*atTimeCode (0/15)*/,
25742  0 /*deltaMinutes*/,
25743  0 /*letterIndex ("")*/,
25744  },
25745  // Rule Turkey 1949 only - Apr 10 0:00 1:00 S
25746  {
25747  1949 /*fromYear*/,
25748  1949 /*toYear*/,
25749  4 /*inMonth*/,
25750  0 /*onDayOfWeek*/,
25751  10 /*onDayOfMonth*/,
25752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25753  0 /*atTimeCode (0/15)*/,
25754  60 /*deltaMinutes*/,
25755  25 /*letterIndex ("S")*/,
25756  },
25757  // Rule Turkey 1950 only - Apr 16 0:00 1:00 S
25758  {
25759  1950 /*fromYear*/,
25760  1950 /*toYear*/,
25761  4 /*inMonth*/,
25762  0 /*onDayOfWeek*/,
25763  16 /*onDayOfMonth*/,
25764  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25765  0 /*atTimeCode (0/15)*/,
25766  60 /*deltaMinutes*/,
25767  25 /*letterIndex ("S")*/,
25768  },
25769  // Rule Turkey 1951 only - Apr 22 0:00 1:00 S
25770  {
25771  1951 /*fromYear*/,
25772  1951 /*toYear*/,
25773  4 /*inMonth*/,
25774  0 /*onDayOfWeek*/,
25775  22 /*onDayOfMonth*/,
25776  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25777  0 /*atTimeCode (0/15)*/,
25778  60 /*deltaMinutes*/,
25779  25 /*letterIndex ("S")*/,
25780  },
25781  // Rule Turkey 1962 only - Jul 15 0:00 1:00 S
25782  {
25783  1962 /*fromYear*/,
25784  1962 /*toYear*/,
25785  7 /*inMonth*/,
25786  0 /*onDayOfWeek*/,
25787  15 /*onDayOfMonth*/,
25788  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25789  0 /*atTimeCode (0/15)*/,
25790  60 /*deltaMinutes*/,
25791  25 /*letterIndex ("S")*/,
25792  },
25793  // Rule Turkey 1963 only - Oct 30 0:00 0 -
25794  {
25795  1963 /*fromYear*/,
25796  1963 /*toYear*/,
25797  10 /*inMonth*/,
25798  0 /*onDayOfWeek*/,
25799  30 /*onDayOfMonth*/,
25800  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25801  0 /*atTimeCode (0/15)*/,
25802  0 /*deltaMinutes*/,
25803  0 /*letterIndex ("")*/,
25804  },
25805  // Rule Turkey 1964 only - May 15 0:00 1:00 S
25806  {
25807  1964 /*fromYear*/,
25808  1964 /*toYear*/,
25809  5 /*inMonth*/,
25810  0 /*onDayOfWeek*/,
25811  15 /*onDayOfMonth*/,
25812  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25813  0 /*atTimeCode (0/15)*/,
25814  60 /*deltaMinutes*/,
25815  25 /*letterIndex ("S")*/,
25816  },
25817  // Rule Turkey 1964 only - Oct 1 0:00 0 -
25818  {
25819  1964 /*fromYear*/,
25820  1964 /*toYear*/,
25821  10 /*inMonth*/,
25822  0 /*onDayOfWeek*/,
25823  1 /*onDayOfMonth*/,
25824  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25825  0 /*atTimeCode (0/15)*/,
25826  0 /*deltaMinutes*/,
25827  0 /*letterIndex ("")*/,
25828  },
25829  // Rule Turkey 1973 only - Jun 3 1:00 1:00 S
25830  {
25831  1973 /*fromYear*/,
25832  1973 /*toYear*/,
25833  6 /*inMonth*/,
25834  0 /*onDayOfWeek*/,
25835  3 /*onDayOfMonth*/,
25836  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25837  240 /*atTimeCode (3600/15)*/,
25838  60 /*deltaMinutes*/,
25839  25 /*letterIndex ("S")*/,
25840  },
25841  // Rule Turkey 1973 1976 - Oct Sun>=31 2:00 0 -
25842  {
25843  1973 /*fromYear*/,
25844  1976 /*toYear*/,
25845  10 /*inMonth*/,
25846  7 /*onDayOfWeek*/,
25847  31 /*onDayOfMonth*/,
25848  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25849  480 /*atTimeCode (7200/15)*/,
25850  0 /*deltaMinutes*/,
25851  0 /*letterIndex ("")*/,
25852  },
25853  // Rule Turkey 1974 only - Mar 31 2:00 1:00 S
25854  {
25855  1974 /*fromYear*/,
25856  1974 /*toYear*/,
25857  3 /*inMonth*/,
25858  0 /*onDayOfWeek*/,
25859  31 /*onDayOfMonth*/,
25860  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25861  480 /*atTimeCode (7200/15)*/,
25862  60 /*deltaMinutes*/,
25863  25 /*letterIndex ("S")*/,
25864  },
25865  // Rule Turkey 1975 only - Mar 22 2:00 1:00 S
25866  {
25867  1975 /*fromYear*/,
25868  1975 /*toYear*/,
25869  3 /*inMonth*/,
25870  0 /*onDayOfWeek*/,
25871  22 /*onDayOfMonth*/,
25872  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25873  480 /*atTimeCode (7200/15)*/,
25874  60 /*deltaMinutes*/,
25875  25 /*letterIndex ("S")*/,
25876  },
25877  // Rule Turkey 1976 only - Mar 21 2:00 1:00 S
25878  {
25879  1976 /*fromYear*/,
25880  1976 /*toYear*/,
25881  3 /*inMonth*/,
25882  0 /*onDayOfWeek*/,
25883  21 /*onDayOfMonth*/,
25884  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25885  480 /*atTimeCode (7200/15)*/,
25886  60 /*deltaMinutes*/,
25887  25 /*letterIndex ("S")*/,
25888  },
25889  // Rule Turkey 1977 1978 - Apr Sun>=1 2:00 1:00 S
25890  {
25891  1977 /*fromYear*/,
25892  1978 /*toYear*/,
25893  4 /*inMonth*/,
25894  7 /*onDayOfWeek*/,
25895  1 /*onDayOfMonth*/,
25896  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25897  480 /*atTimeCode (7200/15)*/,
25898  60 /*deltaMinutes*/,
25899  25 /*letterIndex ("S")*/,
25900  },
25901  // Rule Turkey 1977 1978 - Oct Sun>=15 2:00 0 -
25902  {
25903  1977 /*fromYear*/,
25904  1978 /*toYear*/,
25905  10 /*inMonth*/,
25906  7 /*onDayOfWeek*/,
25907  15 /*onDayOfMonth*/,
25908  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25909  480 /*atTimeCode (7200/15)*/,
25910  0 /*deltaMinutes*/,
25911  0 /*letterIndex ("")*/,
25912  },
25913  // Rule Turkey 1978 only - Jun 29 0:00 0 -
25914  {
25915  1978 /*fromYear*/,
25916  1978 /*toYear*/,
25917  6 /*inMonth*/,
25918  0 /*onDayOfWeek*/,
25919  29 /*onDayOfMonth*/,
25920  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25921  0 /*atTimeCode (0/15)*/,
25922  0 /*deltaMinutes*/,
25923  0 /*letterIndex ("")*/,
25924  },
25925  // Rule Turkey 1983 only - Jul 31 2:00 1:00 S
25926  {
25927  1983 /*fromYear*/,
25928  1983 /*toYear*/,
25929  7 /*inMonth*/,
25930  0 /*onDayOfWeek*/,
25931  31 /*onDayOfMonth*/,
25932  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25933  480 /*atTimeCode (7200/15)*/,
25934  60 /*deltaMinutes*/,
25935  25 /*letterIndex ("S")*/,
25936  },
25937  // Rule Turkey 1983 only - Oct 2 2:00 0 -
25938  {
25939  1983 /*fromYear*/,
25940  1983 /*toYear*/,
25941  10 /*inMonth*/,
25942  0 /*onDayOfWeek*/,
25943  2 /*onDayOfMonth*/,
25944  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
25945  480 /*atTimeCode (7200/15)*/,
25946  0 /*deltaMinutes*/,
25947  0 /*letterIndex ("")*/,
25948  },
25949  // Rule Turkey 1985 only - Apr 20 1:00s 1:00 S
25950  {
25951  1985 /*fromYear*/,
25952  1985 /*toYear*/,
25953  4 /*inMonth*/,
25954  0 /*onDayOfWeek*/,
25955  20 /*onDayOfMonth*/,
25956  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25957  240 /*atTimeCode (3600/15)*/,
25958  60 /*deltaMinutes*/,
25959  25 /*letterIndex ("S")*/,
25960  },
25961  // Rule Turkey 1985 only - Sep 28 1:00s 0 -
25962  {
25963  1985 /*fromYear*/,
25964  1985 /*toYear*/,
25965  9 /*inMonth*/,
25966  0 /*onDayOfWeek*/,
25967  28 /*onDayOfMonth*/,
25968  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25969  240 /*atTimeCode (3600/15)*/,
25970  0 /*deltaMinutes*/,
25971  0 /*letterIndex ("")*/,
25972  },
25973  // Rule Turkey 1986 1993 - Mar lastSun 1:00s 1:00 S
25974  {
25975  1986 /*fromYear*/,
25976  1993 /*toYear*/,
25977  3 /*inMonth*/,
25978  7 /*onDayOfWeek*/,
25979  0 /*onDayOfMonth*/,
25980  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25981  240 /*atTimeCode (3600/15)*/,
25982  60 /*deltaMinutes*/,
25983  25 /*letterIndex ("S")*/,
25984  },
25985  // Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 -
25986  {
25987  1986 /*fromYear*/,
25988  1995 /*toYear*/,
25989  9 /*inMonth*/,
25990  7 /*onDayOfWeek*/,
25991  0 /*onDayOfMonth*/,
25992  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
25993  240 /*atTimeCode (3600/15)*/,
25994  0 /*deltaMinutes*/,
25995  0 /*letterIndex ("")*/,
25996  },
25997  // Rule Turkey 1994 only - Mar 20 1:00s 1:00 S
25998  {
25999  1994 /*fromYear*/,
26000  1994 /*toYear*/,
26001  3 /*inMonth*/,
26002  0 /*onDayOfWeek*/,
26003  20 /*onDayOfMonth*/,
26004  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
26005  240 /*atTimeCode (3600/15)*/,
26006  60 /*deltaMinutes*/,
26007  25 /*letterIndex ("S")*/,
26008  },
26009  // Rule Turkey 1995 2006 - Mar lastSun 1:00s 1:00 S
26010  {
26011  1995 /*fromYear*/,
26012  2006 /*toYear*/,
26013  3 /*inMonth*/,
26014  7 /*onDayOfWeek*/,
26015  0 /*onDayOfMonth*/,
26016  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
26017  240 /*atTimeCode (3600/15)*/,
26018  60 /*deltaMinutes*/,
26019  25 /*letterIndex ("S")*/,
26020  },
26021  // Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 -
26022  {
26023  1996 /*fromYear*/,
26024  2006 /*toYear*/,
26025  10 /*inMonth*/,
26026  7 /*onDayOfWeek*/,
26027  0 /*onDayOfMonth*/,
26028  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
26029  240 /*atTimeCode (3600/15)*/,
26030  0 /*deltaMinutes*/,
26031  0 /*letterIndex ("")*/,
26032  },
26033 
26034 };
26035 
26036 const complete::Info::ZonePolicy kZonePolicyTurkey ACE_TIME_PROGMEM = {
26037  kZoneRulesTurkey /*rules*/,
26038  46 /*numRules*/,
26039 };
26040 
26041 //---------------------------------------------------------------------------
26042 // Policy name: US
26043 // Rules: 14
26044 //---------------------------------------------------------------------------
26045 
26046 static const complete::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
26047  // Anchor: Rule US 1918 1919 - Oct lastSun 2:00 0 S
26048  {
26049  -32767 /*fromYear*/,
26050  -32767 /*toYear*/,
26051  1 /*inMonth*/,
26052  0 /*onDayOfWeek*/,
26053  1 /*onDayOfMonth*/,
26054  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26055  0 /*atTimeCode (0/15)*/,
26056  0 /*deltaMinutes*/,
26057  25 /*letterIndex ("S")*/,
26058  },
26059  // Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
26060  {
26061  1918 /*fromYear*/,
26062  1919 /*toYear*/,
26063  3 /*inMonth*/,
26064  7 /*onDayOfWeek*/,
26065  0 /*onDayOfMonth*/,
26066  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26067  480 /*atTimeCode (7200/15)*/,
26068  60 /*deltaMinutes*/,
26069  13 /*letterIndex ("D")*/,
26070  },
26071  // Rule US 1918 1919 - Oct lastSun 2:00 0 S
26072  {
26073  1918 /*fromYear*/,
26074  1919 /*toYear*/,
26075  10 /*inMonth*/,
26076  7 /*onDayOfWeek*/,
26077  0 /*onDayOfMonth*/,
26078  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26079  480 /*atTimeCode (7200/15)*/,
26080  0 /*deltaMinutes*/,
26081  25 /*letterIndex ("S")*/,
26082  },
26083  // Rule US 1942 only - Feb 9 2:00 1:00 W
26084  {
26085  1942 /*fromYear*/,
26086  1942 /*toYear*/,
26087  2 /*inMonth*/,
26088  0 /*onDayOfWeek*/,
26089  9 /*onDayOfMonth*/,
26090  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26091  480 /*atTimeCode (7200/15)*/,
26092  60 /*deltaMinutes*/,
26093  26 /*letterIndex ("W")*/,
26094  },
26095  // Rule US 1945 only - Aug 14 23:00u 1:00 P
26096  {
26097  1945 /*fromYear*/,
26098  1945 /*toYear*/,
26099  8 /*inMonth*/,
26100  0 /*onDayOfWeek*/,
26101  14 /*onDayOfMonth*/,
26102  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
26103  5520 /*atTimeCode (82800/15)*/,
26104  60 /*deltaMinutes*/,
26105  24 /*letterIndex ("P")*/,
26106  },
26107  // Rule US 1945 only - Sep 30 2:00 0 S
26108  {
26109  1945 /*fromYear*/,
26110  1945 /*toYear*/,
26111  9 /*inMonth*/,
26112  0 /*onDayOfWeek*/,
26113  30 /*onDayOfMonth*/,
26114  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26115  480 /*atTimeCode (7200/15)*/,
26116  0 /*deltaMinutes*/,
26117  25 /*letterIndex ("S")*/,
26118  },
26119  // Rule US 1967 2006 - Oct lastSun 2:00 0 S
26120  {
26121  1967 /*fromYear*/,
26122  2006 /*toYear*/,
26123  10 /*inMonth*/,
26124  7 /*onDayOfWeek*/,
26125  0 /*onDayOfMonth*/,
26126  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26127  480 /*atTimeCode (7200/15)*/,
26128  0 /*deltaMinutes*/,
26129  25 /*letterIndex ("S")*/,
26130  },
26131  // Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
26132  {
26133  1967 /*fromYear*/,
26134  1973 /*toYear*/,
26135  4 /*inMonth*/,
26136  7 /*onDayOfWeek*/,
26137  0 /*onDayOfMonth*/,
26138  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26139  480 /*atTimeCode (7200/15)*/,
26140  60 /*deltaMinutes*/,
26141  13 /*letterIndex ("D")*/,
26142  },
26143  // Rule US 1974 only - Jan 6 2:00 1:00 D
26144  {
26145  1974 /*fromYear*/,
26146  1974 /*toYear*/,
26147  1 /*inMonth*/,
26148  0 /*onDayOfWeek*/,
26149  6 /*onDayOfMonth*/,
26150  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26151  480 /*atTimeCode (7200/15)*/,
26152  60 /*deltaMinutes*/,
26153  13 /*letterIndex ("D")*/,
26154  },
26155  // Rule US 1975 only - Feb lastSun 2:00 1:00 D
26156  {
26157  1975 /*fromYear*/,
26158  1975 /*toYear*/,
26159  2 /*inMonth*/,
26160  7 /*onDayOfWeek*/,
26161  0 /*onDayOfMonth*/,
26162  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26163  480 /*atTimeCode (7200/15)*/,
26164  60 /*deltaMinutes*/,
26165  13 /*letterIndex ("D")*/,
26166  },
26167  // Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
26168  {
26169  1976 /*fromYear*/,
26170  1986 /*toYear*/,
26171  4 /*inMonth*/,
26172  7 /*onDayOfWeek*/,
26173  0 /*onDayOfMonth*/,
26174  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26175  480 /*atTimeCode (7200/15)*/,
26176  60 /*deltaMinutes*/,
26177  13 /*letterIndex ("D")*/,
26178  },
26179  // Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
26180  {
26181  1987 /*fromYear*/,
26182  2006 /*toYear*/,
26183  4 /*inMonth*/,
26184  7 /*onDayOfWeek*/,
26185  1 /*onDayOfMonth*/,
26186  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26187  480 /*atTimeCode (7200/15)*/,
26188  60 /*deltaMinutes*/,
26189  13 /*letterIndex ("D")*/,
26190  },
26191  // Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
26192  {
26193  2007 /*fromYear*/,
26194  32766 /*toYear*/,
26195  3 /*inMonth*/,
26196  7 /*onDayOfWeek*/,
26197  8 /*onDayOfMonth*/,
26198  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26199  480 /*atTimeCode (7200/15)*/,
26200  60 /*deltaMinutes*/,
26201  13 /*letterIndex ("D")*/,
26202  },
26203  // Rule US 2007 max - Nov Sun>=1 2:00 0 S
26204  {
26205  2007 /*fromYear*/,
26206  32766 /*toYear*/,
26207  11 /*inMonth*/,
26208  7 /*onDayOfWeek*/,
26209  1 /*onDayOfMonth*/,
26210  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26211  480 /*atTimeCode (7200/15)*/,
26212  0 /*deltaMinutes*/,
26213  25 /*letterIndex ("S")*/,
26214  },
26215 
26216 };
26217 
26218 const complete::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
26219  kZoneRulesUS /*rules*/,
26220  14 /*numRules*/,
26221 };
26222 
26223 //---------------------------------------------------------------------------
26224 // Policy name: Uruguay
26225 // Rules: 49
26226 //---------------------------------------------------------------------------
26227 
26228 static const complete::Info::ZoneRule kZoneRulesUruguay[] ACE_TIME_PROGMEM = {
26229  // Anchor: Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
26230  {
26231  -32767 /*fromYear*/,
26232  -32767 /*toYear*/,
26233  1 /*inMonth*/,
26234  0 /*onDayOfWeek*/,
26235  1 /*onDayOfMonth*/,
26236  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26237  0 /*atTimeCode (0/15)*/,
26238  0 /*deltaMinutes*/,
26239  0 /*letterIndex ("")*/,
26240  },
26241  // Rule Uruguay 1923 1925 - Oct 1 0:00 0:30 -
26242  {
26243  1923 /*fromYear*/,
26244  1925 /*toYear*/,
26245  10 /*inMonth*/,
26246  0 /*onDayOfWeek*/,
26247  1 /*onDayOfMonth*/,
26248  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26249  0 /*atTimeCode (0/15)*/,
26250  30 /*deltaMinutes*/,
26251  0 /*letterIndex ("")*/,
26252  },
26253  // Rule Uruguay 1924 1926 - Apr 1 0:00 0 -
26254  {
26255  1924 /*fromYear*/,
26256  1926 /*toYear*/,
26257  4 /*inMonth*/,
26258  0 /*onDayOfWeek*/,
26259  1 /*onDayOfMonth*/,
26260  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26261  0 /*atTimeCode (0/15)*/,
26262  0 /*deltaMinutes*/,
26263  0 /*letterIndex ("")*/,
26264  },
26265  // Rule Uruguay 1933 1938 - Oct lastSun 0:00 0:30 -
26266  {
26267  1933 /*fromYear*/,
26268  1938 /*toYear*/,
26269  10 /*inMonth*/,
26270  7 /*onDayOfWeek*/,
26271  0 /*onDayOfMonth*/,
26272  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26273  0 /*atTimeCode (0/15)*/,
26274  30 /*deltaMinutes*/,
26275  0 /*letterIndex ("")*/,
26276  },
26277  // Rule Uruguay 1934 1941 - Mar lastSat 24:00 0 -
26278  {
26279  1934 /*fromYear*/,
26280  1941 /*toYear*/,
26281  3 /*inMonth*/,
26282  6 /*onDayOfWeek*/,
26283  0 /*onDayOfMonth*/,
26284  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26285  5760 /*atTimeCode (86400/15)*/,
26286  0 /*deltaMinutes*/,
26287  0 /*letterIndex ("")*/,
26288  },
26289  // Rule Uruguay 1939 only - Oct 1 0:00 0:30 -
26290  {
26291  1939 /*fromYear*/,
26292  1939 /*toYear*/,
26293  10 /*inMonth*/,
26294  0 /*onDayOfWeek*/,
26295  1 /*onDayOfMonth*/,
26296  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26297  0 /*atTimeCode (0/15)*/,
26298  30 /*deltaMinutes*/,
26299  0 /*letterIndex ("")*/,
26300  },
26301  // Rule Uruguay 1940 only - Oct 27 0:00 0:30 -
26302  {
26303  1940 /*fromYear*/,
26304  1940 /*toYear*/,
26305  10 /*inMonth*/,
26306  0 /*onDayOfWeek*/,
26307  27 /*onDayOfMonth*/,
26308  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26309  0 /*atTimeCode (0/15)*/,
26310  30 /*deltaMinutes*/,
26311  0 /*letterIndex ("")*/,
26312  },
26313  // Rule Uruguay 1941 only - Aug 1 0:00 0:30 -
26314  {
26315  1941 /*fromYear*/,
26316  1941 /*toYear*/,
26317  8 /*inMonth*/,
26318  0 /*onDayOfWeek*/,
26319  1 /*onDayOfMonth*/,
26320  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26321  0 /*atTimeCode (0/15)*/,
26322  30 /*deltaMinutes*/,
26323  0 /*letterIndex ("")*/,
26324  },
26325  // Rule Uruguay 1942 only - Dec 14 0:00 0:30 -
26326  {
26327  1942 /*fromYear*/,
26328  1942 /*toYear*/,
26329  12 /*inMonth*/,
26330  0 /*onDayOfWeek*/,
26331  14 /*onDayOfMonth*/,
26332  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26333  0 /*atTimeCode (0/15)*/,
26334  30 /*deltaMinutes*/,
26335  0 /*letterIndex ("")*/,
26336  },
26337  // Rule Uruguay 1943 only - Mar 14 0:00 0 -
26338  {
26339  1943 /*fromYear*/,
26340  1943 /*toYear*/,
26341  3 /*inMonth*/,
26342  0 /*onDayOfWeek*/,
26343  14 /*onDayOfMonth*/,
26344  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26345  0 /*atTimeCode (0/15)*/,
26346  0 /*deltaMinutes*/,
26347  0 /*letterIndex ("")*/,
26348  },
26349  // Rule Uruguay 1959 only - May 24 0:00 0:30 -
26350  {
26351  1959 /*fromYear*/,
26352  1959 /*toYear*/,
26353  5 /*inMonth*/,
26354  0 /*onDayOfWeek*/,
26355  24 /*onDayOfMonth*/,
26356  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26357  0 /*atTimeCode (0/15)*/,
26358  30 /*deltaMinutes*/,
26359  0 /*letterIndex ("")*/,
26360  },
26361  // Rule Uruguay 1959 only - Nov 15 0:00 0 -
26362  {
26363  1959 /*fromYear*/,
26364  1959 /*toYear*/,
26365  11 /*inMonth*/,
26366  0 /*onDayOfWeek*/,
26367  15 /*onDayOfMonth*/,
26368  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26369  0 /*atTimeCode (0/15)*/,
26370  0 /*deltaMinutes*/,
26371  0 /*letterIndex ("")*/,
26372  },
26373  // Rule Uruguay 1960 only - Jan 17 0:00 1:00 -
26374  {
26375  1960 /*fromYear*/,
26376  1960 /*toYear*/,
26377  1 /*inMonth*/,
26378  0 /*onDayOfWeek*/,
26379  17 /*onDayOfMonth*/,
26380  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26381  0 /*atTimeCode (0/15)*/,
26382  60 /*deltaMinutes*/,
26383  0 /*letterIndex ("")*/,
26384  },
26385  // Rule Uruguay 1960 only - Mar 6 0:00 0 -
26386  {
26387  1960 /*fromYear*/,
26388  1960 /*toYear*/,
26389  3 /*inMonth*/,
26390  0 /*onDayOfWeek*/,
26391  6 /*onDayOfMonth*/,
26392  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26393  0 /*atTimeCode (0/15)*/,
26394  0 /*deltaMinutes*/,
26395  0 /*letterIndex ("")*/,
26396  },
26397  // Rule Uruguay 1965 only - Apr 4 0:00 1:00 -
26398  {
26399  1965 /*fromYear*/,
26400  1965 /*toYear*/,
26401  4 /*inMonth*/,
26402  0 /*onDayOfWeek*/,
26403  4 /*onDayOfMonth*/,
26404  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26405  0 /*atTimeCode (0/15)*/,
26406  60 /*deltaMinutes*/,
26407  0 /*letterIndex ("")*/,
26408  },
26409  // Rule Uruguay 1965 only - Sep 26 0:00 0 -
26410  {
26411  1965 /*fromYear*/,
26412  1965 /*toYear*/,
26413  9 /*inMonth*/,
26414  0 /*onDayOfWeek*/,
26415  26 /*onDayOfMonth*/,
26416  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26417  0 /*atTimeCode (0/15)*/,
26418  0 /*deltaMinutes*/,
26419  0 /*letterIndex ("")*/,
26420  },
26421  // Rule Uruguay 1968 only - May 27 0:00 0:30 -
26422  {
26423  1968 /*fromYear*/,
26424  1968 /*toYear*/,
26425  5 /*inMonth*/,
26426  0 /*onDayOfWeek*/,
26427  27 /*onDayOfMonth*/,
26428  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26429  0 /*atTimeCode (0/15)*/,
26430  30 /*deltaMinutes*/,
26431  0 /*letterIndex ("")*/,
26432  },
26433  // Rule Uruguay 1968 only - Dec 1 0:00 0 -
26434  {
26435  1968 /*fromYear*/,
26436  1968 /*toYear*/,
26437  12 /*inMonth*/,
26438  0 /*onDayOfWeek*/,
26439  1 /*onDayOfMonth*/,
26440  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26441  0 /*atTimeCode (0/15)*/,
26442  0 /*deltaMinutes*/,
26443  0 /*letterIndex ("")*/,
26444  },
26445  // Rule Uruguay 1970 only - Apr 25 0:00 1:00 -
26446  {
26447  1970 /*fromYear*/,
26448  1970 /*toYear*/,
26449  4 /*inMonth*/,
26450  0 /*onDayOfWeek*/,
26451  25 /*onDayOfMonth*/,
26452  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26453  0 /*atTimeCode (0/15)*/,
26454  60 /*deltaMinutes*/,
26455  0 /*letterIndex ("")*/,
26456  },
26457  // Rule Uruguay 1970 only - Jun 14 0:00 0 -
26458  {
26459  1970 /*fromYear*/,
26460  1970 /*toYear*/,
26461  6 /*inMonth*/,
26462  0 /*onDayOfWeek*/,
26463  14 /*onDayOfMonth*/,
26464  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26465  0 /*atTimeCode (0/15)*/,
26466  0 /*deltaMinutes*/,
26467  0 /*letterIndex ("")*/,
26468  },
26469  // Rule Uruguay 1972 only - Apr 23 0:00 1:00 -
26470  {
26471  1972 /*fromYear*/,
26472  1972 /*toYear*/,
26473  4 /*inMonth*/,
26474  0 /*onDayOfWeek*/,
26475  23 /*onDayOfMonth*/,
26476  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26477  0 /*atTimeCode (0/15)*/,
26478  60 /*deltaMinutes*/,
26479  0 /*letterIndex ("")*/,
26480  },
26481  // Rule Uruguay 1972 only - Jul 16 0:00 0 -
26482  {
26483  1972 /*fromYear*/,
26484  1972 /*toYear*/,
26485  7 /*inMonth*/,
26486  0 /*onDayOfWeek*/,
26487  16 /*onDayOfMonth*/,
26488  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26489  0 /*atTimeCode (0/15)*/,
26490  0 /*deltaMinutes*/,
26491  0 /*letterIndex ("")*/,
26492  },
26493  // Rule Uruguay 1974 only - Jan 13 0:00 1:30 -
26494  {
26495  1974 /*fromYear*/,
26496  1974 /*toYear*/,
26497  1 /*inMonth*/,
26498  0 /*onDayOfWeek*/,
26499  13 /*onDayOfMonth*/,
26500  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26501  0 /*atTimeCode (0/15)*/,
26502  90 /*deltaMinutes*/,
26503  0 /*letterIndex ("")*/,
26504  },
26505  // Rule Uruguay 1974 only - Mar 10 0:00 0:30 -
26506  {
26507  1974 /*fromYear*/,
26508  1974 /*toYear*/,
26509  3 /*inMonth*/,
26510  0 /*onDayOfWeek*/,
26511  10 /*onDayOfMonth*/,
26512  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26513  0 /*atTimeCode (0/15)*/,
26514  30 /*deltaMinutes*/,
26515  0 /*letterIndex ("")*/,
26516  },
26517  // Rule Uruguay 1974 only - Sep 1 0:00 0 -
26518  {
26519  1974 /*fromYear*/,
26520  1974 /*toYear*/,
26521  9 /*inMonth*/,
26522  0 /*onDayOfWeek*/,
26523  1 /*onDayOfMonth*/,
26524  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26525  0 /*atTimeCode (0/15)*/,
26526  0 /*deltaMinutes*/,
26527  0 /*letterIndex ("")*/,
26528  },
26529  // Rule Uruguay 1974 only - Dec 22 0:00 1:00 -
26530  {
26531  1974 /*fromYear*/,
26532  1974 /*toYear*/,
26533  12 /*inMonth*/,
26534  0 /*onDayOfWeek*/,
26535  22 /*onDayOfMonth*/,
26536  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26537  0 /*atTimeCode (0/15)*/,
26538  60 /*deltaMinutes*/,
26539  0 /*letterIndex ("")*/,
26540  },
26541  // Rule Uruguay 1975 only - Mar 30 0:00 0 -
26542  {
26543  1975 /*fromYear*/,
26544  1975 /*toYear*/,
26545  3 /*inMonth*/,
26546  0 /*onDayOfWeek*/,
26547  30 /*onDayOfMonth*/,
26548  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26549  0 /*atTimeCode (0/15)*/,
26550  0 /*deltaMinutes*/,
26551  0 /*letterIndex ("")*/,
26552  },
26553  // Rule Uruguay 1976 only - Dec 19 0:00 1:00 -
26554  {
26555  1976 /*fromYear*/,
26556  1976 /*toYear*/,
26557  12 /*inMonth*/,
26558  0 /*onDayOfWeek*/,
26559  19 /*onDayOfMonth*/,
26560  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26561  0 /*atTimeCode (0/15)*/,
26562  60 /*deltaMinutes*/,
26563  0 /*letterIndex ("")*/,
26564  },
26565  // Rule Uruguay 1977 only - Mar 6 0:00 0 -
26566  {
26567  1977 /*fromYear*/,
26568  1977 /*toYear*/,
26569  3 /*inMonth*/,
26570  0 /*onDayOfWeek*/,
26571  6 /*onDayOfMonth*/,
26572  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26573  0 /*atTimeCode (0/15)*/,
26574  0 /*deltaMinutes*/,
26575  0 /*letterIndex ("")*/,
26576  },
26577  // Rule Uruguay 1977 only - Dec 4 0:00 1:00 -
26578  {
26579  1977 /*fromYear*/,
26580  1977 /*toYear*/,
26581  12 /*inMonth*/,
26582  0 /*onDayOfWeek*/,
26583  4 /*onDayOfMonth*/,
26584  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26585  0 /*atTimeCode (0/15)*/,
26586  60 /*deltaMinutes*/,
26587  0 /*letterIndex ("")*/,
26588  },
26589  // Rule Uruguay 1978 1979 - Mar Sun>=1 0:00 0 -
26590  {
26591  1978 /*fromYear*/,
26592  1979 /*toYear*/,
26593  3 /*inMonth*/,
26594  7 /*onDayOfWeek*/,
26595  1 /*onDayOfMonth*/,
26596  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26597  0 /*atTimeCode (0/15)*/,
26598  0 /*deltaMinutes*/,
26599  0 /*letterIndex ("")*/,
26600  },
26601  // Rule Uruguay 1978 only - Dec 17 0:00 1:00 -
26602  {
26603  1978 /*fromYear*/,
26604  1978 /*toYear*/,
26605  12 /*inMonth*/,
26606  0 /*onDayOfWeek*/,
26607  17 /*onDayOfMonth*/,
26608  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26609  0 /*atTimeCode (0/15)*/,
26610  60 /*deltaMinutes*/,
26611  0 /*letterIndex ("")*/,
26612  },
26613  // Rule Uruguay 1979 only - Apr 29 0:00 1:00 -
26614  {
26615  1979 /*fromYear*/,
26616  1979 /*toYear*/,
26617  4 /*inMonth*/,
26618  0 /*onDayOfWeek*/,
26619  29 /*onDayOfMonth*/,
26620  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26621  0 /*atTimeCode (0/15)*/,
26622  60 /*deltaMinutes*/,
26623  0 /*letterIndex ("")*/,
26624  },
26625  // Rule Uruguay 1980 only - Mar 16 0:00 0 -
26626  {
26627  1980 /*fromYear*/,
26628  1980 /*toYear*/,
26629  3 /*inMonth*/,
26630  0 /*onDayOfWeek*/,
26631  16 /*onDayOfMonth*/,
26632  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26633  0 /*atTimeCode (0/15)*/,
26634  0 /*deltaMinutes*/,
26635  0 /*letterIndex ("")*/,
26636  },
26637  // Rule Uruguay 1987 only - Dec 14 0:00 1:00 -
26638  {
26639  1987 /*fromYear*/,
26640  1987 /*toYear*/,
26641  12 /*inMonth*/,
26642  0 /*onDayOfWeek*/,
26643  14 /*onDayOfMonth*/,
26644  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26645  0 /*atTimeCode (0/15)*/,
26646  60 /*deltaMinutes*/,
26647  0 /*letterIndex ("")*/,
26648  },
26649  // Rule Uruguay 1988 only - Feb 28 0:00 0 -
26650  {
26651  1988 /*fromYear*/,
26652  1988 /*toYear*/,
26653  2 /*inMonth*/,
26654  0 /*onDayOfWeek*/,
26655  28 /*onDayOfMonth*/,
26656  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26657  0 /*atTimeCode (0/15)*/,
26658  0 /*deltaMinutes*/,
26659  0 /*letterIndex ("")*/,
26660  },
26661  // Rule Uruguay 1988 only - Dec 11 0:00 1:00 -
26662  {
26663  1988 /*fromYear*/,
26664  1988 /*toYear*/,
26665  12 /*inMonth*/,
26666  0 /*onDayOfWeek*/,
26667  11 /*onDayOfMonth*/,
26668  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26669  0 /*atTimeCode (0/15)*/,
26670  60 /*deltaMinutes*/,
26671  0 /*letterIndex ("")*/,
26672  },
26673  // Rule Uruguay 1989 only - Mar 5 0:00 0 -
26674  {
26675  1989 /*fromYear*/,
26676  1989 /*toYear*/,
26677  3 /*inMonth*/,
26678  0 /*onDayOfWeek*/,
26679  5 /*onDayOfMonth*/,
26680  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26681  0 /*atTimeCode (0/15)*/,
26682  0 /*deltaMinutes*/,
26683  0 /*letterIndex ("")*/,
26684  },
26685  // Rule Uruguay 1989 only - Oct 29 0:00 1:00 -
26686  {
26687  1989 /*fromYear*/,
26688  1989 /*toYear*/,
26689  10 /*inMonth*/,
26690  0 /*onDayOfWeek*/,
26691  29 /*onDayOfMonth*/,
26692  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26693  0 /*atTimeCode (0/15)*/,
26694  60 /*deltaMinutes*/,
26695  0 /*letterIndex ("")*/,
26696  },
26697  // Rule Uruguay 1990 only - Feb 25 0:00 0 -
26698  {
26699  1990 /*fromYear*/,
26700  1990 /*toYear*/,
26701  2 /*inMonth*/,
26702  0 /*onDayOfWeek*/,
26703  25 /*onDayOfMonth*/,
26704  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26705  0 /*atTimeCode (0/15)*/,
26706  0 /*deltaMinutes*/,
26707  0 /*letterIndex ("")*/,
26708  },
26709  // Rule Uruguay 1990 1991 - Oct Sun>=21 0:00 1:00 -
26710  {
26711  1990 /*fromYear*/,
26712  1991 /*toYear*/,
26713  10 /*inMonth*/,
26714  7 /*onDayOfWeek*/,
26715  21 /*onDayOfMonth*/,
26716  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26717  0 /*atTimeCode (0/15)*/,
26718  60 /*deltaMinutes*/,
26719  0 /*letterIndex ("")*/,
26720  },
26721  // Rule Uruguay 1991 1992 - Mar Sun>=1 0:00 0 -
26722  {
26723  1991 /*fromYear*/,
26724  1992 /*toYear*/,
26725  3 /*inMonth*/,
26726  7 /*onDayOfWeek*/,
26727  1 /*onDayOfMonth*/,
26728  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26729  0 /*atTimeCode (0/15)*/,
26730  0 /*deltaMinutes*/,
26731  0 /*letterIndex ("")*/,
26732  },
26733  // Rule Uruguay 1992 only - Oct 18 0:00 1:00 -
26734  {
26735  1992 /*fromYear*/,
26736  1992 /*toYear*/,
26737  10 /*inMonth*/,
26738  0 /*onDayOfWeek*/,
26739  18 /*onDayOfMonth*/,
26740  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26741  0 /*atTimeCode (0/15)*/,
26742  60 /*deltaMinutes*/,
26743  0 /*letterIndex ("")*/,
26744  },
26745  // Rule Uruguay 1993 only - Feb 28 0:00 0 -
26746  {
26747  1993 /*fromYear*/,
26748  1993 /*toYear*/,
26749  2 /*inMonth*/,
26750  0 /*onDayOfWeek*/,
26751  28 /*onDayOfMonth*/,
26752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26753  0 /*atTimeCode (0/15)*/,
26754  0 /*deltaMinutes*/,
26755  0 /*letterIndex ("")*/,
26756  },
26757  // Rule Uruguay 2004 only - Sep 19 0:00 1:00 -
26758  {
26759  2004 /*fromYear*/,
26760  2004 /*toYear*/,
26761  9 /*inMonth*/,
26762  0 /*onDayOfWeek*/,
26763  19 /*onDayOfMonth*/,
26764  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26765  0 /*atTimeCode (0/15)*/,
26766  60 /*deltaMinutes*/,
26767  0 /*letterIndex ("")*/,
26768  },
26769  // Rule Uruguay 2005 only - Mar 27 2:00 0 -
26770  {
26771  2005 /*fromYear*/,
26772  2005 /*toYear*/,
26773  3 /*inMonth*/,
26774  0 /*onDayOfWeek*/,
26775  27 /*onDayOfMonth*/,
26776  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26777  480 /*atTimeCode (7200/15)*/,
26778  0 /*deltaMinutes*/,
26779  0 /*letterIndex ("")*/,
26780  },
26781  // Rule Uruguay 2005 only - Oct 9 2:00 1:00 -
26782  {
26783  2005 /*fromYear*/,
26784  2005 /*toYear*/,
26785  10 /*inMonth*/,
26786  0 /*onDayOfWeek*/,
26787  9 /*onDayOfMonth*/,
26788  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26789  480 /*atTimeCode (7200/15)*/,
26790  60 /*deltaMinutes*/,
26791  0 /*letterIndex ("")*/,
26792  },
26793  // Rule Uruguay 2006 2015 - Mar Sun>=8 2:00 0 -
26794  {
26795  2006 /*fromYear*/,
26796  2015 /*toYear*/,
26797  3 /*inMonth*/,
26798  7 /*onDayOfWeek*/,
26799  8 /*onDayOfMonth*/,
26800  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26801  480 /*atTimeCode (7200/15)*/,
26802  0 /*deltaMinutes*/,
26803  0 /*letterIndex ("")*/,
26804  },
26805  // Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 -
26806  {
26807  2006 /*fromYear*/,
26808  2014 /*toYear*/,
26809  10 /*inMonth*/,
26810  7 /*onDayOfWeek*/,
26811  1 /*onDayOfMonth*/,
26812  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26813  480 /*atTimeCode (7200/15)*/,
26814  60 /*deltaMinutes*/,
26815  0 /*letterIndex ("")*/,
26816  },
26817 
26818 };
26819 
26820 const complete::Info::ZonePolicy kZonePolicyUruguay ACE_TIME_PROGMEM = {
26821  kZoneRulesUruguay /*rules*/,
26822  49 /*numRules*/,
26823 };
26824 
26825 //---------------------------------------------------------------------------
26826 // Policy name: Vanc
26827 // Rules: 10
26828 //---------------------------------------------------------------------------
26829 
26830 static const complete::Info::ZoneRule kZoneRulesVanc[] ACE_TIME_PROGMEM = {
26831  // Anchor: Rule Vanc 1918 only - Oct 27 2:00 0 S
26832  {
26833  -32767 /*fromYear*/,
26834  -32767 /*toYear*/,
26835  1 /*inMonth*/,
26836  0 /*onDayOfWeek*/,
26837  1 /*onDayOfMonth*/,
26838  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26839  0 /*atTimeCode (0/15)*/,
26840  0 /*deltaMinutes*/,
26841  25 /*letterIndex ("S")*/,
26842  },
26843  // Rule Vanc 1918 only - Apr 14 2:00 1:00 D
26844  {
26845  1918 /*fromYear*/,
26846  1918 /*toYear*/,
26847  4 /*inMonth*/,
26848  0 /*onDayOfWeek*/,
26849  14 /*onDayOfMonth*/,
26850  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26851  480 /*atTimeCode (7200/15)*/,
26852  60 /*deltaMinutes*/,
26853  13 /*letterIndex ("D")*/,
26854  },
26855  // Rule Vanc 1918 only - Oct 27 2:00 0 S
26856  {
26857  1918 /*fromYear*/,
26858  1918 /*toYear*/,
26859  10 /*inMonth*/,
26860  0 /*onDayOfWeek*/,
26861  27 /*onDayOfMonth*/,
26862  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26863  480 /*atTimeCode (7200/15)*/,
26864  0 /*deltaMinutes*/,
26865  25 /*letterIndex ("S")*/,
26866  },
26867  // Rule Vanc 1942 only - Feb 9 2:00 1:00 W
26868  {
26869  1942 /*fromYear*/,
26870  1942 /*toYear*/,
26871  2 /*inMonth*/,
26872  0 /*onDayOfWeek*/,
26873  9 /*onDayOfMonth*/,
26874  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26875  480 /*atTimeCode (7200/15)*/,
26876  60 /*deltaMinutes*/,
26877  26 /*letterIndex ("W")*/,
26878  },
26879  // Rule Vanc 1945 only - Aug 14 23:00u 1:00 P
26880  {
26881  1945 /*fromYear*/,
26882  1945 /*toYear*/,
26883  8 /*inMonth*/,
26884  0 /*onDayOfWeek*/,
26885  14 /*onDayOfMonth*/,
26886  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
26887  5520 /*atTimeCode (82800/15)*/,
26888  60 /*deltaMinutes*/,
26889  24 /*letterIndex ("P")*/,
26890  },
26891  // Rule Vanc 1945 only - Sep 30 2:00 0 S
26892  {
26893  1945 /*fromYear*/,
26894  1945 /*toYear*/,
26895  9 /*inMonth*/,
26896  0 /*onDayOfWeek*/,
26897  30 /*onDayOfMonth*/,
26898  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26899  480 /*atTimeCode (7200/15)*/,
26900  0 /*deltaMinutes*/,
26901  25 /*letterIndex ("S")*/,
26902  },
26903  // Rule Vanc 1946 1986 - Apr lastSun 2:00 1:00 D
26904  {
26905  1946 /*fromYear*/,
26906  1986 /*toYear*/,
26907  4 /*inMonth*/,
26908  7 /*onDayOfWeek*/,
26909  0 /*onDayOfMonth*/,
26910  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26911  480 /*atTimeCode (7200/15)*/,
26912  60 /*deltaMinutes*/,
26913  13 /*letterIndex ("D")*/,
26914  },
26915  // Rule Vanc 1946 only - Sep 29 2:00 0 S
26916  {
26917  1946 /*fromYear*/,
26918  1946 /*toYear*/,
26919  9 /*inMonth*/,
26920  0 /*onDayOfWeek*/,
26921  29 /*onDayOfMonth*/,
26922  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26923  480 /*atTimeCode (7200/15)*/,
26924  0 /*deltaMinutes*/,
26925  25 /*letterIndex ("S")*/,
26926  },
26927  // Rule Vanc 1947 1961 - Sep lastSun 2:00 0 S
26928  {
26929  1947 /*fromYear*/,
26930  1961 /*toYear*/,
26931  9 /*inMonth*/,
26932  7 /*onDayOfWeek*/,
26933  0 /*onDayOfMonth*/,
26934  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26935  480 /*atTimeCode (7200/15)*/,
26936  0 /*deltaMinutes*/,
26937  25 /*letterIndex ("S")*/,
26938  },
26939  // Rule Vanc 1962 2006 - Oct lastSun 2:00 0 S
26940  {
26941  1962 /*fromYear*/,
26942  2006 /*toYear*/,
26943  10 /*inMonth*/,
26944  7 /*onDayOfWeek*/,
26945  0 /*onDayOfMonth*/,
26946  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26947  480 /*atTimeCode (7200/15)*/,
26948  0 /*deltaMinutes*/,
26949  25 /*letterIndex ("S")*/,
26950  },
26951 
26952 };
26953 
26954 const complete::Info::ZonePolicy kZonePolicyVanc ACE_TIME_PROGMEM = {
26955  kZoneRulesVanc /*rules*/,
26956  10 /*numRules*/,
26957 };
26958 
26959 //---------------------------------------------------------------------------
26960 // Policy name: Vanuatu
26961 // Rules: 7
26962 //---------------------------------------------------------------------------
26963 
26964 static const complete::Info::ZoneRule kZoneRulesVanuatu[] ACE_TIME_PROGMEM = {
26965  // Anchor: Rule Vanuatu 1974 only - Mar 30 12:00u 0 -
26966  {
26967  -32767 /*fromYear*/,
26968  -32767 /*toYear*/,
26969  1 /*inMonth*/,
26970  0 /*onDayOfWeek*/,
26971  1 /*onDayOfMonth*/,
26972  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
26973  0 /*atTimeCode (0/15)*/,
26974  0 /*deltaMinutes*/,
26975  0 /*letterIndex ("")*/,
26976  },
26977  // Rule Vanuatu 1973 only - Dec 22 12:00u 1:00 -
26978  {
26979  1973 /*fromYear*/,
26980  1973 /*toYear*/,
26981  12 /*inMonth*/,
26982  0 /*onDayOfWeek*/,
26983  22 /*onDayOfMonth*/,
26984  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
26985  2880 /*atTimeCode (43200/15)*/,
26986  60 /*deltaMinutes*/,
26987  0 /*letterIndex ("")*/,
26988  },
26989  // Rule Vanuatu 1974 only - Mar 30 12:00u 0 -
26990  {
26991  1974 /*fromYear*/,
26992  1974 /*toYear*/,
26993  3 /*inMonth*/,
26994  0 /*onDayOfWeek*/,
26995  30 /*onDayOfMonth*/,
26996  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
26997  2880 /*atTimeCode (43200/15)*/,
26998  0 /*deltaMinutes*/,
26999  0 /*letterIndex ("")*/,
27000  },
27001  // Rule Vanuatu 1983 1991 - Sep Sat>=22 24:00 1:00 -
27002  {
27003  1983 /*fromYear*/,
27004  1991 /*toYear*/,
27005  9 /*inMonth*/,
27006  6 /*onDayOfWeek*/,
27007  22 /*onDayOfMonth*/,
27008  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27009  5760 /*atTimeCode (86400/15)*/,
27010  60 /*deltaMinutes*/,
27011  0 /*letterIndex ("")*/,
27012  },
27013  // Rule Vanuatu 1984 1991 - Mar Sat>=22 24:00 0 -
27014  {
27015  1984 /*fromYear*/,
27016  1991 /*toYear*/,
27017  3 /*inMonth*/,
27018  6 /*onDayOfWeek*/,
27019  22 /*onDayOfMonth*/,
27020  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27021  5760 /*atTimeCode (86400/15)*/,
27022  0 /*deltaMinutes*/,
27023  0 /*letterIndex ("")*/,
27024  },
27025  // Rule Vanuatu 1992 1993 - Jan Sat>=22 24:00 0 -
27026  {
27027  1992 /*fromYear*/,
27028  1993 /*toYear*/,
27029  1 /*inMonth*/,
27030  6 /*onDayOfWeek*/,
27031  22 /*onDayOfMonth*/,
27032  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27033  5760 /*atTimeCode (86400/15)*/,
27034  0 /*deltaMinutes*/,
27035  0 /*letterIndex ("")*/,
27036  },
27037  // Rule Vanuatu 1992 only - Oct Sat>=22 24:00 1:00 -
27038  {
27039  1992 /*fromYear*/,
27040  1992 /*toYear*/,
27041  10 /*inMonth*/,
27042  6 /*onDayOfWeek*/,
27043  22 /*onDayOfMonth*/,
27044  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27045  5760 /*atTimeCode (86400/15)*/,
27046  60 /*deltaMinutes*/,
27047  0 /*letterIndex ("")*/,
27048  },
27049 
27050 };
27051 
27052 const complete::Info::ZonePolicy kZonePolicyVanuatu ACE_TIME_PROGMEM = {
27053  kZoneRulesVanuatu /*rules*/,
27054  7 /*numRules*/,
27055 };
27056 
27057 //---------------------------------------------------------------------------
27058 // Policy name: Vincennes
27059 // Rules: 10
27060 //---------------------------------------------------------------------------
27061 
27062 static const complete::Info::ZoneRule kZoneRulesVincennes[] ACE_TIME_PROGMEM = {
27063  // Anchor: Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
27064  {
27065  -32767 /*fromYear*/,
27066  -32767 /*toYear*/,
27067  1 /*inMonth*/,
27068  0 /*onDayOfWeek*/,
27069  1 /*onDayOfMonth*/,
27070  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27071  0 /*atTimeCode (0/15)*/,
27072  0 /*deltaMinutes*/,
27073  25 /*letterIndex ("S")*/,
27074  },
27075  // Rule Vincennes 1946 only - Apr lastSun 2:00 1:00 D
27076  {
27077  1946 /*fromYear*/,
27078  1946 /*toYear*/,
27079  4 /*inMonth*/,
27080  7 /*onDayOfWeek*/,
27081  0 /*onDayOfMonth*/,
27082  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27083  480 /*atTimeCode (7200/15)*/,
27084  60 /*deltaMinutes*/,
27085  13 /*letterIndex ("D")*/,
27086  },
27087  // Rule Vincennes 1946 only - Sep lastSun 2:00 0 S
27088  {
27089  1946 /*fromYear*/,
27090  1946 /*toYear*/,
27091  9 /*inMonth*/,
27092  7 /*onDayOfWeek*/,
27093  0 /*onDayOfMonth*/,
27094  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27095  480 /*atTimeCode (7200/15)*/,
27096  0 /*deltaMinutes*/,
27097  25 /*letterIndex ("S")*/,
27098  },
27099  // Rule Vincennes 1953 1954 - Apr lastSun 2:00 1:00 D
27100  {
27101  1953 /*fromYear*/,
27102  1954 /*toYear*/,
27103  4 /*inMonth*/,
27104  7 /*onDayOfWeek*/,
27105  0 /*onDayOfMonth*/,
27106  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27107  480 /*atTimeCode (7200/15)*/,
27108  60 /*deltaMinutes*/,
27109  13 /*letterIndex ("D")*/,
27110  },
27111  // Rule Vincennes 1953 1959 - Sep lastSun 2:00 0 S
27112  {
27113  1953 /*fromYear*/,
27114  1959 /*toYear*/,
27115  9 /*inMonth*/,
27116  7 /*onDayOfWeek*/,
27117  0 /*onDayOfMonth*/,
27118  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27119  480 /*atTimeCode (7200/15)*/,
27120  0 /*deltaMinutes*/,
27121  25 /*letterIndex ("S")*/,
27122  },
27123  // Rule Vincennes 1955 only - May 1 0:00 1:00 D
27124  {
27125  1955 /*fromYear*/,
27126  1955 /*toYear*/,
27127  5 /*inMonth*/,
27128  0 /*onDayOfWeek*/,
27129  1 /*onDayOfMonth*/,
27130  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27131  0 /*atTimeCode (0/15)*/,
27132  60 /*deltaMinutes*/,
27133  13 /*letterIndex ("D")*/,
27134  },
27135  // Rule Vincennes 1956 1963 - Apr lastSun 2:00 1:00 D
27136  {
27137  1956 /*fromYear*/,
27138  1963 /*toYear*/,
27139  4 /*inMonth*/,
27140  7 /*onDayOfWeek*/,
27141  0 /*onDayOfMonth*/,
27142  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27143  480 /*atTimeCode (7200/15)*/,
27144  60 /*deltaMinutes*/,
27145  13 /*letterIndex ("D")*/,
27146  },
27147  // Rule Vincennes 1960 only - Oct lastSun 2:00 0 S
27148  {
27149  1960 /*fromYear*/,
27150  1960 /*toYear*/,
27151  10 /*inMonth*/,
27152  7 /*onDayOfWeek*/,
27153  0 /*onDayOfMonth*/,
27154  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27155  480 /*atTimeCode (7200/15)*/,
27156  0 /*deltaMinutes*/,
27157  25 /*letterIndex ("S")*/,
27158  },
27159  // Rule Vincennes 1961 only - Sep lastSun 2:00 0 S
27160  {
27161  1961 /*fromYear*/,
27162  1961 /*toYear*/,
27163  9 /*inMonth*/,
27164  7 /*onDayOfWeek*/,
27165  0 /*onDayOfMonth*/,
27166  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27167  480 /*atTimeCode (7200/15)*/,
27168  0 /*deltaMinutes*/,
27169  25 /*letterIndex ("S")*/,
27170  },
27171  // Rule Vincennes 1962 1963 - Oct lastSun 2:00 0 S
27172  {
27173  1962 /*fromYear*/,
27174  1963 /*toYear*/,
27175  10 /*inMonth*/,
27176  7 /*onDayOfWeek*/,
27177  0 /*onDayOfMonth*/,
27178  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27179  480 /*atTimeCode (7200/15)*/,
27180  0 /*deltaMinutes*/,
27181  25 /*letterIndex ("S")*/,
27182  },
27183 
27184 };
27185 
27186 const complete::Info::ZonePolicy kZonePolicyVincennes ACE_TIME_PROGMEM = {
27187  kZoneRulesVincennes /*rules*/,
27188  10 /*numRules*/,
27189 };
27190 
27191 //---------------------------------------------------------------------------
27192 // Policy name: W-Eur
27193 // Rules: 7
27194 //---------------------------------------------------------------------------
27195 
27196 static const complete::Info::ZoneRule kZoneRulesW_Eur[] ACE_TIME_PROGMEM = {
27197  // Anchor: Rule W-Eur 1977 only - Sep lastSun 1:00s 0 -
27198  {
27199  -32767 /*fromYear*/,
27200  -32767 /*toYear*/,
27201  1 /*inMonth*/,
27202  0 /*onDayOfWeek*/,
27203  1 /*onDayOfMonth*/,
27204  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27205  0 /*atTimeCode (0/15)*/,
27206  0 /*deltaMinutes*/,
27207  0 /*letterIndex ("")*/,
27208  },
27209  // Rule W-Eur 1977 1980 - Apr Sun>=1 1:00s 1:00 S
27210  {
27211  1977 /*fromYear*/,
27212  1980 /*toYear*/,
27213  4 /*inMonth*/,
27214  7 /*onDayOfWeek*/,
27215  1 /*onDayOfMonth*/,
27216  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27217  240 /*atTimeCode (3600/15)*/,
27218  60 /*deltaMinutes*/,
27219  25 /*letterIndex ("S")*/,
27220  },
27221  // Rule W-Eur 1977 only - Sep lastSun 1:00s 0 -
27222  {
27223  1977 /*fromYear*/,
27224  1977 /*toYear*/,
27225  9 /*inMonth*/,
27226  7 /*onDayOfWeek*/,
27227  0 /*onDayOfMonth*/,
27228  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27229  240 /*atTimeCode (3600/15)*/,
27230  0 /*deltaMinutes*/,
27231  0 /*letterIndex ("")*/,
27232  },
27233  // Rule W-Eur 1978 only - Oct 1 1:00s 0 -
27234  {
27235  1978 /*fromYear*/,
27236  1978 /*toYear*/,
27237  10 /*inMonth*/,
27238  0 /*onDayOfWeek*/,
27239  1 /*onDayOfMonth*/,
27240  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27241  240 /*atTimeCode (3600/15)*/,
27242  0 /*deltaMinutes*/,
27243  0 /*letterIndex ("")*/,
27244  },
27245  // Rule W-Eur 1979 1995 - Sep lastSun 1:00s 0 -
27246  {
27247  1979 /*fromYear*/,
27248  1995 /*toYear*/,
27249  9 /*inMonth*/,
27250  7 /*onDayOfWeek*/,
27251  0 /*onDayOfMonth*/,
27252  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27253  240 /*atTimeCode (3600/15)*/,
27254  0 /*deltaMinutes*/,
27255  0 /*letterIndex ("")*/,
27256  },
27257  // Rule W-Eur 1981 max - Mar lastSun 1:00s 1:00 S
27258  {
27259  1981 /*fromYear*/,
27260  32766 /*toYear*/,
27261  3 /*inMonth*/,
27262  7 /*onDayOfWeek*/,
27263  0 /*onDayOfMonth*/,
27264  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27265  240 /*atTimeCode (3600/15)*/,
27266  60 /*deltaMinutes*/,
27267  25 /*letterIndex ("S")*/,
27268  },
27269  // Rule W-Eur 1996 max - Oct lastSun 1:00s 0 -
27270  {
27271  1996 /*fromYear*/,
27272  32766 /*toYear*/,
27273  10 /*inMonth*/,
27274  7 /*onDayOfWeek*/,
27275  0 /*onDayOfMonth*/,
27276  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27277  240 /*atTimeCode (3600/15)*/,
27278  0 /*deltaMinutes*/,
27279  0 /*letterIndex ("")*/,
27280  },
27281 
27282 };
27283 
27284 const complete::Info::ZonePolicy kZonePolicyW_Eur ACE_TIME_PROGMEM = {
27285  kZoneRulesW_Eur /*rules*/,
27286  7 /*numRules*/,
27287 };
27288 
27289 //---------------------------------------------------------------------------
27290 // Policy name: WS
27291 // Rules: 6
27292 //---------------------------------------------------------------------------
27293 
27294 static const complete::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = {
27295  // Anchor: Rule WS 2011 only - Apr Sat>=1 4:00 0 -
27296  {
27297  -32767 /*fromYear*/,
27298  -32767 /*toYear*/,
27299  1 /*inMonth*/,
27300  0 /*onDayOfWeek*/,
27301  1 /*onDayOfMonth*/,
27302  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27303  0 /*atTimeCode (0/15)*/,
27304  0 /*deltaMinutes*/,
27305  0 /*letterIndex ("")*/,
27306  },
27307  // Rule WS 2010 only - Sep lastSun 0:00 1 -
27308  {
27309  2010 /*fromYear*/,
27310  2010 /*toYear*/,
27311  9 /*inMonth*/,
27312  7 /*onDayOfWeek*/,
27313  0 /*onDayOfMonth*/,
27314  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27315  0 /*atTimeCode (0/15)*/,
27316  60 /*deltaMinutes*/,
27317  0 /*letterIndex ("")*/,
27318  },
27319  // Rule WS 2011 only - Apr Sat>=1 4:00 0 -
27320  {
27321  2011 /*fromYear*/,
27322  2011 /*toYear*/,
27323  4 /*inMonth*/,
27324  6 /*onDayOfWeek*/,
27325  1 /*onDayOfMonth*/,
27326  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27327  960 /*atTimeCode (14400/15)*/,
27328  0 /*deltaMinutes*/,
27329  0 /*letterIndex ("")*/,
27330  },
27331  // Rule WS 2011 only - Sep lastSat 3:00 1 -
27332  {
27333  2011 /*fromYear*/,
27334  2011 /*toYear*/,
27335  9 /*inMonth*/,
27336  6 /*onDayOfWeek*/,
27337  0 /*onDayOfMonth*/,
27338  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27339  720 /*atTimeCode (10800/15)*/,
27340  60 /*deltaMinutes*/,
27341  0 /*letterIndex ("")*/,
27342  },
27343  // Rule WS 2012 2021 - Apr Sun>=1 4:00 0 -
27344  {
27345  2012 /*fromYear*/,
27346  2021 /*toYear*/,
27347  4 /*inMonth*/,
27348  7 /*onDayOfWeek*/,
27349  1 /*onDayOfMonth*/,
27350  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27351  960 /*atTimeCode (14400/15)*/,
27352  0 /*deltaMinutes*/,
27353  0 /*letterIndex ("")*/,
27354  },
27355  // Rule WS 2012 2020 - Sep lastSun 3:00 1 -
27356  {
27357  2012 /*fromYear*/,
27358  2020 /*toYear*/,
27359  9 /*inMonth*/,
27360  7 /*onDayOfWeek*/,
27361  0 /*onDayOfMonth*/,
27362  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27363  720 /*atTimeCode (10800/15)*/,
27364  60 /*deltaMinutes*/,
27365  0 /*letterIndex ("")*/,
27366  },
27367 
27368 };
27369 
27370 const complete::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = {
27371  kZoneRulesWS /*rules*/,
27372  6 /*numRules*/,
27373 };
27374 
27375 //---------------------------------------------------------------------------
27376 // Policy name: Winn
27377 // Rules: 25
27378 //---------------------------------------------------------------------------
27379 
27380 static const complete::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
27381  // Anchor: Rule Winn 1916 only - Sep 17 0:00 0 S
27382  {
27383  -32767 /*fromYear*/,
27384  -32767 /*toYear*/,
27385  1 /*inMonth*/,
27386  0 /*onDayOfWeek*/,
27387  1 /*onDayOfMonth*/,
27388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27389  0 /*atTimeCode (0/15)*/,
27390  0 /*deltaMinutes*/,
27391  25 /*letterIndex ("S")*/,
27392  },
27393  // Rule Winn 1916 only - Apr 23 0:00 1:00 D
27394  {
27395  1916 /*fromYear*/,
27396  1916 /*toYear*/,
27397  4 /*inMonth*/,
27398  0 /*onDayOfWeek*/,
27399  23 /*onDayOfMonth*/,
27400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27401  0 /*atTimeCode (0/15)*/,
27402  60 /*deltaMinutes*/,
27403  13 /*letterIndex ("D")*/,
27404  },
27405  // Rule Winn 1916 only - Sep 17 0:00 0 S
27406  {
27407  1916 /*fromYear*/,
27408  1916 /*toYear*/,
27409  9 /*inMonth*/,
27410  0 /*onDayOfWeek*/,
27411  17 /*onDayOfMonth*/,
27412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27413  0 /*atTimeCode (0/15)*/,
27414  0 /*deltaMinutes*/,
27415  25 /*letterIndex ("S")*/,
27416  },
27417  // Rule Winn 1918 only - Apr 14 2:00 1:00 D
27418  {
27419  1918 /*fromYear*/,
27420  1918 /*toYear*/,
27421  4 /*inMonth*/,
27422  0 /*onDayOfWeek*/,
27423  14 /*onDayOfMonth*/,
27424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27425  480 /*atTimeCode (7200/15)*/,
27426  60 /*deltaMinutes*/,
27427  13 /*letterIndex ("D")*/,
27428  },
27429  // Rule Winn 1918 only - Oct 27 2:00 0 S
27430  {
27431  1918 /*fromYear*/,
27432  1918 /*toYear*/,
27433  10 /*inMonth*/,
27434  0 /*onDayOfWeek*/,
27435  27 /*onDayOfMonth*/,
27436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27437  480 /*atTimeCode (7200/15)*/,
27438  0 /*deltaMinutes*/,
27439  25 /*letterIndex ("S")*/,
27440  },
27441  // Rule Winn 1937 only - May 16 2:00 1:00 D
27442  {
27443  1937 /*fromYear*/,
27444  1937 /*toYear*/,
27445  5 /*inMonth*/,
27446  0 /*onDayOfWeek*/,
27447  16 /*onDayOfMonth*/,
27448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27449  480 /*atTimeCode (7200/15)*/,
27450  60 /*deltaMinutes*/,
27451  13 /*letterIndex ("D")*/,
27452  },
27453  // Rule Winn 1937 only - Sep 26 2:00 0 S
27454  {
27455  1937 /*fromYear*/,
27456  1937 /*toYear*/,
27457  9 /*inMonth*/,
27458  0 /*onDayOfWeek*/,
27459  26 /*onDayOfMonth*/,
27460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27461  480 /*atTimeCode (7200/15)*/,
27462  0 /*deltaMinutes*/,
27463  25 /*letterIndex ("S")*/,
27464  },
27465  // Rule Winn 1942 only - Feb 9 2:00 1:00 W
27466  {
27467  1942 /*fromYear*/,
27468  1942 /*toYear*/,
27469  2 /*inMonth*/,
27470  0 /*onDayOfWeek*/,
27471  9 /*onDayOfMonth*/,
27472  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27473  480 /*atTimeCode (7200/15)*/,
27474  60 /*deltaMinutes*/,
27475  26 /*letterIndex ("W")*/,
27476  },
27477  // Rule Winn 1945 only - Aug 14 23:00u 1:00 P
27478  {
27479  1945 /*fromYear*/,
27480  1945 /*toYear*/,
27481  8 /*inMonth*/,
27482  0 /*onDayOfWeek*/,
27483  14 /*onDayOfMonth*/,
27484  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27485  5520 /*atTimeCode (82800/15)*/,
27486  60 /*deltaMinutes*/,
27487  24 /*letterIndex ("P")*/,
27488  },
27489  // Rule Winn 1945 only - Sep lastSun 2:00 0 S
27490  {
27491  1945 /*fromYear*/,
27492  1945 /*toYear*/,
27493  9 /*inMonth*/,
27494  7 /*onDayOfWeek*/,
27495  0 /*onDayOfMonth*/,
27496  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27497  480 /*atTimeCode (7200/15)*/,
27498  0 /*deltaMinutes*/,
27499  25 /*letterIndex ("S")*/,
27500  },
27501  // Rule Winn 1946 only - May 12 2:00 1:00 D
27502  {
27503  1946 /*fromYear*/,
27504  1946 /*toYear*/,
27505  5 /*inMonth*/,
27506  0 /*onDayOfWeek*/,
27507  12 /*onDayOfMonth*/,
27508  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27509  480 /*atTimeCode (7200/15)*/,
27510  60 /*deltaMinutes*/,
27511  13 /*letterIndex ("D")*/,
27512  },
27513  // Rule Winn 1946 only - Oct 13 2:00 0 S
27514  {
27515  1946 /*fromYear*/,
27516  1946 /*toYear*/,
27517  10 /*inMonth*/,
27518  0 /*onDayOfWeek*/,
27519  13 /*onDayOfMonth*/,
27520  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27521  480 /*atTimeCode (7200/15)*/,
27522  0 /*deltaMinutes*/,
27523  25 /*letterIndex ("S")*/,
27524  },
27525  // Rule Winn 1947 1949 - Apr lastSun 2:00 1:00 D
27526  {
27527  1947 /*fromYear*/,
27528  1949 /*toYear*/,
27529  4 /*inMonth*/,
27530  7 /*onDayOfWeek*/,
27531  0 /*onDayOfMonth*/,
27532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27533  480 /*atTimeCode (7200/15)*/,
27534  60 /*deltaMinutes*/,
27535  13 /*letterIndex ("D")*/,
27536  },
27537  // Rule Winn 1947 1949 - Sep lastSun 2:00 0 S
27538  {
27539  1947 /*fromYear*/,
27540  1949 /*toYear*/,
27541  9 /*inMonth*/,
27542  7 /*onDayOfWeek*/,
27543  0 /*onDayOfMonth*/,
27544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27545  480 /*atTimeCode (7200/15)*/,
27546  0 /*deltaMinutes*/,
27547  25 /*letterIndex ("S")*/,
27548  },
27549  // Rule Winn 1950 only - May 1 2:00 1:00 D
27550  {
27551  1950 /*fromYear*/,
27552  1950 /*toYear*/,
27553  5 /*inMonth*/,
27554  0 /*onDayOfWeek*/,
27555  1 /*onDayOfMonth*/,
27556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27557  480 /*atTimeCode (7200/15)*/,
27558  60 /*deltaMinutes*/,
27559  13 /*letterIndex ("D")*/,
27560  },
27561  // Rule Winn 1950 only - Sep 30 2:00 0 S
27562  {
27563  1950 /*fromYear*/,
27564  1950 /*toYear*/,
27565  9 /*inMonth*/,
27566  0 /*onDayOfWeek*/,
27567  30 /*onDayOfMonth*/,
27568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27569  480 /*atTimeCode (7200/15)*/,
27570  0 /*deltaMinutes*/,
27571  25 /*letterIndex ("S")*/,
27572  },
27573  // Rule Winn 1951 1960 - Apr lastSun 2:00 1:00 D
27574  {
27575  1951 /*fromYear*/,
27576  1960 /*toYear*/,
27577  4 /*inMonth*/,
27578  7 /*onDayOfWeek*/,
27579  0 /*onDayOfMonth*/,
27580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27581  480 /*atTimeCode (7200/15)*/,
27582  60 /*deltaMinutes*/,
27583  13 /*letterIndex ("D")*/,
27584  },
27585  // Rule Winn 1951 1958 - Sep lastSun 2:00 0 S
27586  {
27587  1951 /*fromYear*/,
27588  1958 /*toYear*/,
27589  9 /*inMonth*/,
27590  7 /*onDayOfWeek*/,
27591  0 /*onDayOfMonth*/,
27592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27593  480 /*atTimeCode (7200/15)*/,
27594  0 /*deltaMinutes*/,
27595  25 /*letterIndex ("S")*/,
27596  },
27597  // Rule Winn 1959 only - Oct lastSun 2:00 0 S
27598  {
27599  1959 /*fromYear*/,
27600  1959 /*toYear*/,
27601  10 /*inMonth*/,
27602  7 /*onDayOfWeek*/,
27603  0 /*onDayOfMonth*/,
27604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27605  480 /*atTimeCode (7200/15)*/,
27606  0 /*deltaMinutes*/,
27607  25 /*letterIndex ("S")*/,
27608  },
27609  // Rule Winn 1960 only - Sep lastSun 2:00 0 S
27610  {
27611  1960 /*fromYear*/,
27612  1960 /*toYear*/,
27613  9 /*inMonth*/,
27614  7 /*onDayOfWeek*/,
27615  0 /*onDayOfMonth*/,
27616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27617  480 /*atTimeCode (7200/15)*/,
27618  0 /*deltaMinutes*/,
27619  25 /*letterIndex ("S")*/,
27620  },
27621  // Rule Winn 1963 only - Apr lastSun 2:00 1:00 D
27622  {
27623  1963 /*fromYear*/,
27624  1963 /*toYear*/,
27625  4 /*inMonth*/,
27626  7 /*onDayOfWeek*/,
27627  0 /*onDayOfMonth*/,
27628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27629  480 /*atTimeCode (7200/15)*/,
27630  60 /*deltaMinutes*/,
27631  13 /*letterIndex ("D")*/,
27632  },
27633  // Rule Winn 1963 only - Sep 22 2:00 0 S
27634  {
27635  1963 /*fromYear*/,
27636  1963 /*toYear*/,
27637  9 /*inMonth*/,
27638  0 /*onDayOfWeek*/,
27639  22 /*onDayOfMonth*/,
27640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27641  480 /*atTimeCode (7200/15)*/,
27642  0 /*deltaMinutes*/,
27643  25 /*letterIndex ("S")*/,
27644  },
27645  // Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
27646  {
27647  1966 /*fromYear*/,
27648  1986 /*toYear*/,
27649  4 /*inMonth*/,
27650  7 /*onDayOfWeek*/,
27651  0 /*onDayOfMonth*/,
27652  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27653  480 /*atTimeCode (7200/15)*/,
27654  60 /*deltaMinutes*/,
27655  13 /*letterIndex ("D")*/,
27656  },
27657  // Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
27658  {
27659  1966 /*fromYear*/,
27660  2005 /*toYear*/,
27661  10 /*inMonth*/,
27662  7 /*onDayOfWeek*/,
27663  0 /*onDayOfMonth*/,
27664  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27665  480 /*atTimeCode (7200/15)*/,
27666  0 /*deltaMinutes*/,
27667  25 /*letterIndex ("S")*/,
27668  },
27669  // Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
27670  {
27671  1987 /*fromYear*/,
27672  2005 /*toYear*/,
27673  4 /*inMonth*/,
27674  7 /*onDayOfWeek*/,
27675  1 /*onDayOfMonth*/,
27676  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
27677  480 /*atTimeCode (7200/15)*/,
27678  60 /*deltaMinutes*/,
27679  13 /*letterIndex ("D")*/,
27680  },
27681 
27682 };
27683 
27684 const complete::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
27685  kZoneRulesWinn /*rules*/,
27686  25 /*numRules*/,
27687 };
27688 
27689 //---------------------------------------------------------------------------
27690 // Policy name: Yukon
27691 // Rules: 3
27692 //---------------------------------------------------------------------------
27693 
27694 static const complete::Info::ZoneRule kZoneRulesYukon[] ACE_TIME_PROGMEM = {
27695  // Anchor: Rule Yukon 1965 only - Oct lastSun 2:00 0 S
27696  {
27697  -32767 /*fromYear*/,
27698  -32767 /*toYear*/,
27699  1 /*inMonth*/,
27700  0 /*onDayOfWeek*/,
27701  1 /*onDayOfMonth*/,
27702  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27703  0 /*atTimeCode (0/15)*/,
27704  0 /*deltaMinutes*/,
27705  25 /*letterIndex ("S")*/,
27706  },
27707  // Rule Yukon 1965 only - Apr lastSun 0:00 2:00 DD
27708  {
27709  1965 /*fromYear*/,
27710  1965 /*toYear*/,
27711  4 /*inMonth*/,
27712  7 /*onDayOfWeek*/,
27713  0 /*onDayOfMonth*/,
27714  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27715  0 /*atTimeCode (0/15)*/,
27716  120 /*deltaMinutes*/,
27717  14 /*letterIndex ("DD")*/,
27718  },
27719  // Rule Yukon 1965 only - Oct lastSun 2:00 0 S
27720  {
27721  1965 /*fromYear*/,
27722  1965 /*toYear*/,
27723  10 /*inMonth*/,
27724  7 /*onDayOfWeek*/,
27725  0 /*onDayOfMonth*/,
27726  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27727  480 /*atTimeCode (7200/15)*/,
27728  0 /*deltaMinutes*/,
27729  25 /*letterIndex ("S")*/,
27730  },
27731 
27732 };
27733 
27734 const complete::Info::ZonePolicy kZonePolicyYukon ACE_TIME_PROGMEM = {
27735  kZoneRulesYukon /*rules*/,
27736  3 /*numRules*/,
27737 };
27738 
27739 //---------------------------------------------------------------------------
27740 // Policy name: Zion
27741 // Rules: 86
27742 //---------------------------------------------------------------------------
27743 
27744 static const complete::Info::ZoneRule kZoneRulesZion[] ACE_TIME_PROGMEM = {
27745  // Anchor: Rule Zion 1940 only - Sep 30 24:00u 0 S
27746  {
27747  -32767 /*fromYear*/,
27748  -32767 /*toYear*/,
27749  1 /*inMonth*/,
27750  0 /*onDayOfWeek*/,
27751  1 /*onDayOfMonth*/,
27752  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
27753  0 /*atTimeCode (0/15)*/,
27754  0 /*deltaMinutes*/,
27755  25 /*letterIndex ("S")*/,
27756  },
27757  // Rule Zion 1940 only - May 31 24:00u 1:00 D
27758  {
27759  1940 /*fromYear*/,
27760  1940 /*toYear*/,
27761  5 /*inMonth*/,
27762  0 /*onDayOfWeek*/,
27763  31 /*onDayOfMonth*/,
27764  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27765  5760 /*atTimeCode (86400/15)*/,
27766  60 /*deltaMinutes*/,
27767  13 /*letterIndex ("D")*/,
27768  },
27769  // Rule Zion 1940 only - Sep 30 24:00u 0 S
27770  {
27771  1940 /*fromYear*/,
27772  1940 /*toYear*/,
27773  9 /*inMonth*/,
27774  0 /*onDayOfWeek*/,
27775  30 /*onDayOfMonth*/,
27776  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27777  5760 /*atTimeCode (86400/15)*/,
27778  0 /*deltaMinutes*/,
27779  25 /*letterIndex ("S")*/,
27780  },
27781  // Rule Zion 1940 only - Nov 16 24:00u 1:00 D
27782  {
27783  1940 /*fromYear*/,
27784  1940 /*toYear*/,
27785  11 /*inMonth*/,
27786  0 /*onDayOfWeek*/,
27787  16 /*onDayOfMonth*/,
27788  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27789  5760 /*atTimeCode (86400/15)*/,
27790  60 /*deltaMinutes*/,
27791  13 /*letterIndex ("D")*/,
27792  },
27793  // Rule Zion 1942 1946 - Oct 31 24:00u 0 S
27794  {
27795  1942 /*fromYear*/,
27796  1946 /*toYear*/,
27797  10 /*inMonth*/,
27798  0 /*onDayOfWeek*/,
27799  31 /*onDayOfMonth*/,
27800  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27801  5760 /*atTimeCode (86400/15)*/,
27802  0 /*deltaMinutes*/,
27803  25 /*letterIndex ("S")*/,
27804  },
27805  // Rule Zion 1943 1944 - Mar 31 24:00u 1:00 D
27806  {
27807  1943 /*fromYear*/,
27808  1944 /*toYear*/,
27809  3 /*inMonth*/,
27810  0 /*onDayOfWeek*/,
27811  31 /*onDayOfMonth*/,
27812  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27813  5760 /*atTimeCode (86400/15)*/,
27814  60 /*deltaMinutes*/,
27815  13 /*letterIndex ("D")*/,
27816  },
27817  // Rule Zion 1945 1946 - Apr 15 24:00u 1:00 D
27818  {
27819  1945 /*fromYear*/,
27820  1946 /*toYear*/,
27821  4 /*inMonth*/,
27822  0 /*onDayOfWeek*/,
27823  15 /*onDayOfMonth*/,
27824  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27825  5760 /*atTimeCode (86400/15)*/,
27826  60 /*deltaMinutes*/,
27827  13 /*letterIndex ("D")*/,
27828  },
27829  // Rule Zion 1948 only - May 22 24:00u 2:00 DD
27830  {
27831  1948 /*fromYear*/,
27832  1948 /*toYear*/,
27833  5 /*inMonth*/,
27834  0 /*onDayOfWeek*/,
27835  22 /*onDayOfMonth*/,
27836  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27837  5760 /*atTimeCode (86400/15)*/,
27838  120 /*deltaMinutes*/,
27839  14 /*letterIndex ("DD")*/,
27840  },
27841  // Rule Zion 1948 only - Aug 31 24:00u 1:00 D
27842  {
27843  1948 /*fromYear*/,
27844  1948 /*toYear*/,
27845  8 /*inMonth*/,
27846  0 /*onDayOfWeek*/,
27847  31 /*onDayOfMonth*/,
27848  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27849  5760 /*atTimeCode (86400/15)*/,
27850  60 /*deltaMinutes*/,
27851  13 /*letterIndex ("D")*/,
27852  },
27853  // Rule Zion 1948 1949 - Oct 31 24:00u 0 S
27854  {
27855  1948 /*fromYear*/,
27856  1949 /*toYear*/,
27857  10 /*inMonth*/,
27858  0 /*onDayOfWeek*/,
27859  31 /*onDayOfMonth*/,
27860  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27861  5760 /*atTimeCode (86400/15)*/,
27862  0 /*deltaMinutes*/,
27863  25 /*letterIndex ("S")*/,
27864  },
27865  // Rule Zion 1949 only - Apr 30 24:00u 1:00 D
27866  {
27867  1949 /*fromYear*/,
27868  1949 /*toYear*/,
27869  4 /*inMonth*/,
27870  0 /*onDayOfWeek*/,
27871  30 /*onDayOfMonth*/,
27872  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27873  5760 /*atTimeCode (86400/15)*/,
27874  60 /*deltaMinutes*/,
27875  13 /*letterIndex ("D")*/,
27876  },
27877  // Rule Zion 1950 only - Apr 15 24:00u 1:00 D
27878  {
27879  1950 /*fromYear*/,
27880  1950 /*toYear*/,
27881  4 /*inMonth*/,
27882  0 /*onDayOfWeek*/,
27883  15 /*onDayOfMonth*/,
27884  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27885  5760 /*atTimeCode (86400/15)*/,
27886  60 /*deltaMinutes*/,
27887  13 /*letterIndex ("D")*/,
27888  },
27889  // Rule Zion 1950 only - Sep 14 24:00u 0 S
27890  {
27891  1950 /*fromYear*/,
27892  1950 /*toYear*/,
27893  9 /*inMonth*/,
27894  0 /*onDayOfWeek*/,
27895  14 /*onDayOfMonth*/,
27896  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27897  5760 /*atTimeCode (86400/15)*/,
27898  0 /*deltaMinutes*/,
27899  25 /*letterIndex ("S")*/,
27900  },
27901  // Rule Zion 1951 only - Mar 31 24:00u 1:00 D
27902  {
27903  1951 /*fromYear*/,
27904  1951 /*toYear*/,
27905  3 /*inMonth*/,
27906  0 /*onDayOfWeek*/,
27907  31 /*onDayOfMonth*/,
27908  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27909  5760 /*atTimeCode (86400/15)*/,
27910  60 /*deltaMinutes*/,
27911  13 /*letterIndex ("D")*/,
27912  },
27913  // Rule Zion 1951 only - Nov 10 24:00u 0 S
27914  {
27915  1951 /*fromYear*/,
27916  1951 /*toYear*/,
27917  11 /*inMonth*/,
27918  0 /*onDayOfWeek*/,
27919  10 /*onDayOfMonth*/,
27920  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27921  5760 /*atTimeCode (86400/15)*/,
27922  0 /*deltaMinutes*/,
27923  25 /*letterIndex ("S")*/,
27924  },
27925  // Rule Zion 1952 only - Apr 19 24:00u 1:00 D
27926  {
27927  1952 /*fromYear*/,
27928  1952 /*toYear*/,
27929  4 /*inMonth*/,
27930  0 /*onDayOfWeek*/,
27931  19 /*onDayOfMonth*/,
27932  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27933  5760 /*atTimeCode (86400/15)*/,
27934  60 /*deltaMinutes*/,
27935  13 /*letterIndex ("D")*/,
27936  },
27937  // Rule Zion 1952 only - Oct 18 24:00u 0 S
27938  {
27939  1952 /*fromYear*/,
27940  1952 /*toYear*/,
27941  10 /*inMonth*/,
27942  0 /*onDayOfWeek*/,
27943  18 /*onDayOfMonth*/,
27944  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27945  5760 /*atTimeCode (86400/15)*/,
27946  0 /*deltaMinutes*/,
27947  25 /*letterIndex ("S")*/,
27948  },
27949  // Rule Zion 1953 only - Apr 11 24:00u 1:00 D
27950  {
27951  1953 /*fromYear*/,
27952  1953 /*toYear*/,
27953  4 /*inMonth*/,
27954  0 /*onDayOfWeek*/,
27955  11 /*onDayOfMonth*/,
27956  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27957  5760 /*atTimeCode (86400/15)*/,
27958  60 /*deltaMinutes*/,
27959  13 /*letterIndex ("D")*/,
27960  },
27961  // Rule Zion 1953 only - Sep 12 24:00u 0 S
27962  {
27963  1953 /*fromYear*/,
27964  1953 /*toYear*/,
27965  9 /*inMonth*/,
27966  0 /*onDayOfWeek*/,
27967  12 /*onDayOfMonth*/,
27968  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27969  5760 /*atTimeCode (86400/15)*/,
27970  0 /*deltaMinutes*/,
27971  25 /*letterIndex ("S")*/,
27972  },
27973  // Rule Zion 1954 only - Jun 12 24:00u 1:00 D
27974  {
27975  1954 /*fromYear*/,
27976  1954 /*toYear*/,
27977  6 /*inMonth*/,
27978  0 /*onDayOfWeek*/,
27979  12 /*onDayOfMonth*/,
27980  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27981  5760 /*atTimeCode (86400/15)*/,
27982  60 /*deltaMinutes*/,
27983  13 /*letterIndex ("D")*/,
27984  },
27985  // Rule Zion 1954 only - Sep 11 24:00u 0 S
27986  {
27987  1954 /*fromYear*/,
27988  1954 /*toYear*/,
27989  9 /*inMonth*/,
27990  0 /*onDayOfWeek*/,
27991  11 /*onDayOfMonth*/,
27992  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
27993  5760 /*atTimeCode (86400/15)*/,
27994  0 /*deltaMinutes*/,
27995  25 /*letterIndex ("S")*/,
27996  },
27997  // Rule Zion 1955 only - Jun 11 24:00u 1:00 D
27998  {
27999  1955 /*fromYear*/,
28000  1955 /*toYear*/,
28001  6 /*inMonth*/,
28002  0 /*onDayOfWeek*/,
28003  11 /*onDayOfMonth*/,
28004  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
28005  5760 /*atTimeCode (86400/15)*/,
28006  60 /*deltaMinutes*/,
28007  13 /*letterIndex ("D")*/,
28008  },
28009  // Rule Zion 1955 only - Sep 10 24:00u 0 S
28010  {
28011  1955 /*fromYear*/,
28012  1955 /*toYear*/,
28013  9 /*inMonth*/,
28014  0 /*onDayOfWeek*/,
28015  10 /*onDayOfMonth*/,
28016  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
28017  5760 /*atTimeCode (86400/15)*/,
28018  0 /*deltaMinutes*/,
28019  25 /*letterIndex ("S")*/,
28020  },
28021  // Rule Zion 1956 only - Jun 2 24:00u 1:00 D
28022  {
28023  1956 /*fromYear*/,
28024  1956 /*toYear*/,
28025  6 /*inMonth*/,
28026  0 /*onDayOfWeek*/,
28027  2 /*onDayOfMonth*/,
28028  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
28029  5760 /*atTimeCode (86400/15)*/,
28030  60 /*deltaMinutes*/,
28031  13 /*letterIndex ("D")*/,
28032  },
28033  // Rule Zion 1956 only - Sep 29 24:00u 0 S
28034  {
28035  1956 /*fromYear*/,
28036  1956 /*toYear*/,
28037  9 /*inMonth*/,
28038  0 /*onDayOfWeek*/,
28039  29 /*onDayOfMonth*/,
28040  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
28041  5760 /*atTimeCode (86400/15)*/,
28042  0 /*deltaMinutes*/,
28043  25 /*letterIndex ("S")*/,
28044  },
28045  // Rule Zion 1957 only - Apr 27 24:00u 1:00 D
28046  {
28047  1957 /*fromYear*/,
28048  1957 /*toYear*/,
28049  4 /*inMonth*/,
28050  0 /*onDayOfWeek*/,
28051  27 /*onDayOfMonth*/,
28052  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
28053  5760 /*atTimeCode (86400/15)*/,
28054  60 /*deltaMinutes*/,
28055  13 /*letterIndex ("D")*/,
28056  },
28057  // Rule Zion 1957 only - Sep 21 24:00u 0 S
28058  {
28059  1957 /*fromYear*/,
28060  1957 /*toYear*/,
28061  9 /*inMonth*/,
28062  0 /*onDayOfWeek*/,
28063  21 /*onDayOfMonth*/,
28064  32 /*atTimeModifier (kAtcSuffixU + seconds=0)*/,
28065  5760 /*atTimeCode (86400/15)*/,
28066  0 /*deltaMinutes*/,
28067  25 /*letterIndex ("S")*/,
28068  },
28069  // Rule Zion 1974 only - Jul 6 24:00 1:00 D
28070  {
28071  1974 /*fromYear*/,
28072  1974 /*toYear*/,
28073  7 /*inMonth*/,
28074  0 /*onDayOfWeek*/,
28075  6 /*onDayOfMonth*/,
28076  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28077  5760 /*atTimeCode (86400/15)*/,
28078  60 /*deltaMinutes*/,
28079  13 /*letterIndex ("D")*/,
28080  },
28081  // Rule Zion 1974 only - Oct 12 24:00 0 S
28082  {
28083  1974 /*fromYear*/,
28084  1974 /*toYear*/,
28085  10 /*inMonth*/,
28086  0 /*onDayOfWeek*/,
28087  12 /*onDayOfMonth*/,
28088  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28089  5760 /*atTimeCode (86400/15)*/,
28090  0 /*deltaMinutes*/,
28091  25 /*letterIndex ("S")*/,
28092  },
28093  // Rule Zion 1975 only - Apr 19 24:00 1:00 D
28094  {
28095  1975 /*fromYear*/,
28096  1975 /*toYear*/,
28097  4 /*inMonth*/,
28098  0 /*onDayOfWeek*/,
28099  19 /*onDayOfMonth*/,
28100  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28101  5760 /*atTimeCode (86400/15)*/,
28102  60 /*deltaMinutes*/,
28103  13 /*letterIndex ("D")*/,
28104  },
28105  // Rule Zion 1975 only - Aug 30 24:00 0 S
28106  {
28107  1975 /*fromYear*/,
28108  1975 /*toYear*/,
28109  8 /*inMonth*/,
28110  0 /*onDayOfWeek*/,
28111  30 /*onDayOfMonth*/,
28112  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28113  5760 /*atTimeCode (86400/15)*/,
28114  0 /*deltaMinutes*/,
28115  25 /*letterIndex ("S")*/,
28116  },
28117  // Rule Zion 1980 only - Aug 2 24:00s 1:00 D
28118  {
28119  1980 /*fromYear*/,
28120  1980 /*toYear*/,
28121  8 /*inMonth*/,
28122  0 /*onDayOfWeek*/,
28123  2 /*onDayOfMonth*/,
28124  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
28125  5760 /*atTimeCode (86400/15)*/,
28126  60 /*deltaMinutes*/,
28127  13 /*letterIndex ("D")*/,
28128  },
28129  // Rule Zion 1980 only - Sep 13 24:00s 0 S
28130  {
28131  1980 /*fromYear*/,
28132  1980 /*toYear*/,
28133  9 /*inMonth*/,
28134  0 /*onDayOfWeek*/,
28135  13 /*onDayOfMonth*/,
28136  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
28137  5760 /*atTimeCode (86400/15)*/,
28138  0 /*deltaMinutes*/,
28139  25 /*letterIndex ("S")*/,
28140  },
28141  // Rule Zion 1984 only - May 5 24:00s 1:00 D
28142  {
28143  1984 /*fromYear*/,
28144  1984 /*toYear*/,
28145  5 /*inMonth*/,
28146  0 /*onDayOfWeek*/,
28147  5 /*onDayOfMonth*/,
28148  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
28149  5760 /*atTimeCode (86400/15)*/,
28150  60 /*deltaMinutes*/,
28151  13 /*letterIndex ("D")*/,
28152  },
28153  // Rule Zion 1984 only - Aug 25 24:00s 0 S
28154  {
28155  1984 /*fromYear*/,
28156  1984 /*toYear*/,
28157  8 /*inMonth*/,
28158  0 /*onDayOfWeek*/,
28159  25 /*onDayOfMonth*/,
28160  16 /*atTimeModifier (kAtcSuffixS + seconds=0)*/,
28161  5760 /*atTimeCode (86400/15)*/,
28162  0 /*deltaMinutes*/,
28163  25 /*letterIndex ("S")*/,
28164  },
28165  // Rule Zion 1985 only - Apr 13 24:00 1:00 D
28166  {
28167  1985 /*fromYear*/,
28168  1985 /*toYear*/,
28169  4 /*inMonth*/,
28170  0 /*onDayOfWeek*/,
28171  13 /*onDayOfMonth*/,
28172  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28173  5760 /*atTimeCode (86400/15)*/,
28174  60 /*deltaMinutes*/,
28175  13 /*letterIndex ("D")*/,
28176  },
28177  // Rule Zion 1985 only - Aug 31 24:00 0 S
28178  {
28179  1985 /*fromYear*/,
28180  1985 /*toYear*/,
28181  8 /*inMonth*/,
28182  0 /*onDayOfWeek*/,
28183  31 /*onDayOfMonth*/,
28184  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28185  5760 /*atTimeCode (86400/15)*/,
28186  0 /*deltaMinutes*/,
28187  25 /*letterIndex ("S")*/,
28188  },
28189  // Rule Zion 1986 only - May 17 24:00 1:00 D
28190  {
28191  1986 /*fromYear*/,
28192  1986 /*toYear*/,
28193  5 /*inMonth*/,
28194  0 /*onDayOfWeek*/,
28195  17 /*onDayOfMonth*/,
28196  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28197  5760 /*atTimeCode (86400/15)*/,
28198  60 /*deltaMinutes*/,
28199  13 /*letterIndex ("D")*/,
28200  },
28201  // Rule Zion 1986 only - Sep 6 24:00 0 S
28202  {
28203  1986 /*fromYear*/,
28204  1986 /*toYear*/,
28205  9 /*inMonth*/,
28206  0 /*onDayOfWeek*/,
28207  6 /*onDayOfMonth*/,
28208  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28209  5760 /*atTimeCode (86400/15)*/,
28210  0 /*deltaMinutes*/,
28211  25 /*letterIndex ("S")*/,
28212  },
28213  // Rule Zion 1987 only - Apr 14 24:00 1:00 D
28214  {
28215  1987 /*fromYear*/,
28216  1987 /*toYear*/,
28217  4 /*inMonth*/,
28218  0 /*onDayOfWeek*/,
28219  14 /*onDayOfMonth*/,
28220  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28221  5760 /*atTimeCode (86400/15)*/,
28222  60 /*deltaMinutes*/,
28223  13 /*letterIndex ("D")*/,
28224  },
28225  // Rule Zion 1987 only - Sep 12 24:00 0 S
28226  {
28227  1987 /*fromYear*/,
28228  1987 /*toYear*/,
28229  9 /*inMonth*/,
28230  0 /*onDayOfWeek*/,
28231  12 /*onDayOfMonth*/,
28232  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28233  5760 /*atTimeCode (86400/15)*/,
28234  0 /*deltaMinutes*/,
28235  25 /*letterIndex ("S")*/,
28236  },
28237  // Rule Zion 1988 only - Apr 9 24:00 1:00 D
28238  {
28239  1988 /*fromYear*/,
28240  1988 /*toYear*/,
28241  4 /*inMonth*/,
28242  0 /*onDayOfWeek*/,
28243  9 /*onDayOfMonth*/,
28244  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28245  5760 /*atTimeCode (86400/15)*/,
28246  60 /*deltaMinutes*/,
28247  13 /*letterIndex ("D")*/,
28248  },
28249  // Rule Zion 1988 only - Sep 3 24:00 0 S
28250  {
28251  1988 /*fromYear*/,
28252  1988 /*toYear*/,
28253  9 /*inMonth*/,
28254  0 /*onDayOfWeek*/,
28255  3 /*onDayOfMonth*/,
28256  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28257  5760 /*atTimeCode (86400/15)*/,
28258  0 /*deltaMinutes*/,
28259  25 /*letterIndex ("S")*/,
28260  },
28261  // Rule Zion 1989 only - Apr 29 24:00 1:00 D
28262  {
28263  1989 /*fromYear*/,
28264  1989 /*toYear*/,
28265  4 /*inMonth*/,
28266  0 /*onDayOfWeek*/,
28267  29 /*onDayOfMonth*/,
28268  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28269  5760 /*atTimeCode (86400/15)*/,
28270  60 /*deltaMinutes*/,
28271  13 /*letterIndex ("D")*/,
28272  },
28273  // Rule Zion 1989 only - Sep 2 24:00 0 S
28274  {
28275  1989 /*fromYear*/,
28276  1989 /*toYear*/,
28277  9 /*inMonth*/,
28278  0 /*onDayOfWeek*/,
28279  2 /*onDayOfMonth*/,
28280  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28281  5760 /*atTimeCode (86400/15)*/,
28282  0 /*deltaMinutes*/,
28283  25 /*letterIndex ("S")*/,
28284  },
28285  // Rule Zion 1990 only - Mar 24 24:00 1:00 D
28286  {
28287  1990 /*fromYear*/,
28288  1990 /*toYear*/,
28289  3 /*inMonth*/,
28290  0 /*onDayOfWeek*/,
28291  24 /*onDayOfMonth*/,
28292  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28293  5760 /*atTimeCode (86400/15)*/,
28294  60 /*deltaMinutes*/,
28295  13 /*letterIndex ("D")*/,
28296  },
28297  // Rule Zion 1990 only - Aug 25 24:00 0 S
28298  {
28299  1990 /*fromYear*/,
28300  1990 /*toYear*/,
28301  8 /*inMonth*/,
28302  0 /*onDayOfWeek*/,
28303  25 /*onDayOfMonth*/,
28304  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28305  5760 /*atTimeCode (86400/15)*/,
28306  0 /*deltaMinutes*/,
28307  25 /*letterIndex ("S")*/,
28308  },
28309  // Rule Zion 1991 only - Mar 23 24:00 1:00 D
28310  {
28311  1991 /*fromYear*/,
28312  1991 /*toYear*/,
28313  3 /*inMonth*/,
28314  0 /*onDayOfWeek*/,
28315  23 /*onDayOfMonth*/,
28316  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28317  5760 /*atTimeCode (86400/15)*/,
28318  60 /*deltaMinutes*/,
28319  13 /*letterIndex ("D")*/,
28320  },
28321  // Rule Zion 1991 only - Aug 31 24:00 0 S
28322  {
28323  1991 /*fromYear*/,
28324  1991 /*toYear*/,
28325  8 /*inMonth*/,
28326  0 /*onDayOfWeek*/,
28327  31 /*onDayOfMonth*/,
28328  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28329  5760 /*atTimeCode (86400/15)*/,
28330  0 /*deltaMinutes*/,
28331  25 /*letterIndex ("S")*/,
28332  },
28333  // Rule Zion 1992 only - Mar 28 24:00 1:00 D
28334  {
28335  1992 /*fromYear*/,
28336  1992 /*toYear*/,
28337  3 /*inMonth*/,
28338  0 /*onDayOfWeek*/,
28339  28 /*onDayOfMonth*/,
28340  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28341  5760 /*atTimeCode (86400/15)*/,
28342  60 /*deltaMinutes*/,
28343  13 /*letterIndex ("D")*/,
28344  },
28345  // Rule Zion 1992 only - Sep 5 24:00 0 S
28346  {
28347  1992 /*fromYear*/,
28348  1992 /*toYear*/,
28349  9 /*inMonth*/,
28350  0 /*onDayOfWeek*/,
28351  5 /*onDayOfMonth*/,
28352  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28353  5760 /*atTimeCode (86400/15)*/,
28354  0 /*deltaMinutes*/,
28355  25 /*letterIndex ("S")*/,
28356  },
28357  // Rule Zion 1993 only - Apr 2 0:00 1:00 D
28358  {
28359  1993 /*fromYear*/,
28360  1993 /*toYear*/,
28361  4 /*inMonth*/,
28362  0 /*onDayOfWeek*/,
28363  2 /*onDayOfMonth*/,
28364  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28365  0 /*atTimeCode (0/15)*/,
28366  60 /*deltaMinutes*/,
28367  13 /*letterIndex ("D")*/,
28368  },
28369  // Rule Zion 1993 only - Sep 5 0:00 0 S
28370  {
28371  1993 /*fromYear*/,
28372  1993 /*toYear*/,
28373  9 /*inMonth*/,
28374  0 /*onDayOfWeek*/,
28375  5 /*onDayOfMonth*/,
28376  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28377  0 /*atTimeCode (0/15)*/,
28378  0 /*deltaMinutes*/,
28379  25 /*letterIndex ("S")*/,
28380  },
28381  // Rule Zion 1994 only - Apr 1 0:00 1:00 D
28382  {
28383  1994 /*fromYear*/,
28384  1994 /*toYear*/,
28385  4 /*inMonth*/,
28386  0 /*onDayOfWeek*/,
28387  1 /*onDayOfMonth*/,
28388  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28389  0 /*atTimeCode (0/15)*/,
28390  60 /*deltaMinutes*/,
28391  13 /*letterIndex ("D")*/,
28392  },
28393  // Rule Zion 1994 only - Aug 28 0:00 0 S
28394  {
28395  1994 /*fromYear*/,
28396  1994 /*toYear*/,
28397  8 /*inMonth*/,
28398  0 /*onDayOfWeek*/,
28399  28 /*onDayOfMonth*/,
28400  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28401  0 /*atTimeCode (0/15)*/,
28402  0 /*deltaMinutes*/,
28403  25 /*letterIndex ("S")*/,
28404  },
28405  // Rule Zion 1995 only - Mar 31 0:00 1:00 D
28406  {
28407  1995 /*fromYear*/,
28408  1995 /*toYear*/,
28409  3 /*inMonth*/,
28410  0 /*onDayOfWeek*/,
28411  31 /*onDayOfMonth*/,
28412  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28413  0 /*atTimeCode (0/15)*/,
28414  60 /*deltaMinutes*/,
28415  13 /*letterIndex ("D")*/,
28416  },
28417  // Rule Zion 1995 only - Sep 3 0:00 0 S
28418  {
28419  1995 /*fromYear*/,
28420  1995 /*toYear*/,
28421  9 /*inMonth*/,
28422  0 /*onDayOfWeek*/,
28423  3 /*onDayOfMonth*/,
28424  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28425  0 /*atTimeCode (0/15)*/,
28426  0 /*deltaMinutes*/,
28427  25 /*letterIndex ("S")*/,
28428  },
28429  // Rule Zion 1996 only - Mar 14 24:00 1:00 D
28430  {
28431  1996 /*fromYear*/,
28432  1996 /*toYear*/,
28433  3 /*inMonth*/,
28434  0 /*onDayOfWeek*/,
28435  14 /*onDayOfMonth*/,
28436  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28437  5760 /*atTimeCode (86400/15)*/,
28438  60 /*deltaMinutes*/,
28439  13 /*letterIndex ("D")*/,
28440  },
28441  // Rule Zion 1996 only - Sep 15 24:00 0 S
28442  {
28443  1996 /*fromYear*/,
28444  1996 /*toYear*/,
28445  9 /*inMonth*/,
28446  0 /*onDayOfWeek*/,
28447  15 /*onDayOfMonth*/,
28448  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28449  5760 /*atTimeCode (86400/15)*/,
28450  0 /*deltaMinutes*/,
28451  25 /*letterIndex ("S")*/,
28452  },
28453  // Rule Zion 1997 only - Mar 20 24:00 1:00 D
28454  {
28455  1997 /*fromYear*/,
28456  1997 /*toYear*/,
28457  3 /*inMonth*/,
28458  0 /*onDayOfWeek*/,
28459  20 /*onDayOfMonth*/,
28460  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28461  5760 /*atTimeCode (86400/15)*/,
28462  60 /*deltaMinutes*/,
28463  13 /*letterIndex ("D")*/,
28464  },
28465  // Rule Zion 1997 only - Sep 13 24:00 0 S
28466  {
28467  1997 /*fromYear*/,
28468  1997 /*toYear*/,
28469  9 /*inMonth*/,
28470  0 /*onDayOfWeek*/,
28471  13 /*onDayOfMonth*/,
28472  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28473  5760 /*atTimeCode (86400/15)*/,
28474  0 /*deltaMinutes*/,
28475  25 /*letterIndex ("S")*/,
28476  },
28477  // Rule Zion 1998 only - Mar 20 0:00 1:00 D
28478  {
28479  1998 /*fromYear*/,
28480  1998 /*toYear*/,
28481  3 /*inMonth*/,
28482  0 /*onDayOfWeek*/,
28483  20 /*onDayOfMonth*/,
28484  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28485  0 /*atTimeCode (0/15)*/,
28486  60 /*deltaMinutes*/,
28487  13 /*letterIndex ("D")*/,
28488  },
28489  // Rule Zion 1998 only - Sep 6 0:00 0 S
28490  {
28491  1998 /*fromYear*/,
28492  1998 /*toYear*/,
28493  9 /*inMonth*/,
28494  0 /*onDayOfWeek*/,
28495  6 /*onDayOfMonth*/,
28496  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28497  0 /*atTimeCode (0/15)*/,
28498  0 /*deltaMinutes*/,
28499  25 /*letterIndex ("S")*/,
28500  },
28501  // Rule Zion 1999 only - Apr 2 2:00 1:00 D
28502  {
28503  1999 /*fromYear*/,
28504  1999 /*toYear*/,
28505  4 /*inMonth*/,
28506  0 /*onDayOfWeek*/,
28507  2 /*onDayOfMonth*/,
28508  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28509  480 /*atTimeCode (7200/15)*/,
28510  60 /*deltaMinutes*/,
28511  13 /*letterIndex ("D")*/,
28512  },
28513  // Rule Zion 1999 only - Sep 3 2:00 0 S
28514  {
28515  1999 /*fromYear*/,
28516  1999 /*toYear*/,
28517  9 /*inMonth*/,
28518  0 /*onDayOfWeek*/,
28519  3 /*onDayOfMonth*/,
28520  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28521  480 /*atTimeCode (7200/15)*/,
28522  0 /*deltaMinutes*/,
28523  25 /*letterIndex ("S")*/,
28524  },
28525  // Rule Zion 2000 only - Apr 14 2:00 1:00 D
28526  {
28527  2000 /*fromYear*/,
28528  2000 /*toYear*/,
28529  4 /*inMonth*/,
28530  0 /*onDayOfWeek*/,
28531  14 /*onDayOfMonth*/,
28532  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28533  480 /*atTimeCode (7200/15)*/,
28534  60 /*deltaMinutes*/,
28535  13 /*letterIndex ("D")*/,
28536  },
28537  // Rule Zion 2000 only - Oct 6 1:00 0 S
28538  {
28539  2000 /*fromYear*/,
28540  2000 /*toYear*/,
28541  10 /*inMonth*/,
28542  0 /*onDayOfWeek*/,
28543  6 /*onDayOfMonth*/,
28544  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28545  240 /*atTimeCode (3600/15)*/,
28546  0 /*deltaMinutes*/,
28547  25 /*letterIndex ("S")*/,
28548  },
28549  // Rule Zion 2001 only - Apr 9 1:00 1:00 D
28550  {
28551  2001 /*fromYear*/,
28552  2001 /*toYear*/,
28553  4 /*inMonth*/,
28554  0 /*onDayOfWeek*/,
28555  9 /*onDayOfMonth*/,
28556  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28557  240 /*atTimeCode (3600/15)*/,
28558  60 /*deltaMinutes*/,
28559  13 /*letterIndex ("D")*/,
28560  },
28561  // Rule Zion 2001 only - Sep 24 1:00 0 S
28562  {
28563  2001 /*fromYear*/,
28564  2001 /*toYear*/,
28565  9 /*inMonth*/,
28566  0 /*onDayOfWeek*/,
28567  24 /*onDayOfMonth*/,
28568  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28569  240 /*atTimeCode (3600/15)*/,
28570  0 /*deltaMinutes*/,
28571  25 /*letterIndex ("S")*/,
28572  },
28573  // Rule Zion 2002 only - Mar 29 1:00 1:00 D
28574  {
28575  2002 /*fromYear*/,
28576  2002 /*toYear*/,
28577  3 /*inMonth*/,
28578  0 /*onDayOfWeek*/,
28579  29 /*onDayOfMonth*/,
28580  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28581  240 /*atTimeCode (3600/15)*/,
28582  60 /*deltaMinutes*/,
28583  13 /*letterIndex ("D")*/,
28584  },
28585  // Rule Zion 2002 only - Oct 7 1:00 0 S
28586  {
28587  2002 /*fromYear*/,
28588  2002 /*toYear*/,
28589  10 /*inMonth*/,
28590  0 /*onDayOfWeek*/,
28591  7 /*onDayOfMonth*/,
28592  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28593  240 /*atTimeCode (3600/15)*/,
28594  0 /*deltaMinutes*/,
28595  25 /*letterIndex ("S")*/,
28596  },
28597  // Rule Zion 2003 only - Mar 28 1:00 1:00 D
28598  {
28599  2003 /*fromYear*/,
28600  2003 /*toYear*/,
28601  3 /*inMonth*/,
28602  0 /*onDayOfWeek*/,
28603  28 /*onDayOfMonth*/,
28604  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28605  240 /*atTimeCode (3600/15)*/,
28606  60 /*deltaMinutes*/,
28607  13 /*letterIndex ("D")*/,
28608  },
28609  // Rule Zion 2003 only - Oct 3 1:00 0 S
28610  {
28611  2003 /*fromYear*/,
28612  2003 /*toYear*/,
28613  10 /*inMonth*/,
28614  0 /*onDayOfWeek*/,
28615  3 /*onDayOfMonth*/,
28616  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28617  240 /*atTimeCode (3600/15)*/,
28618  0 /*deltaMinutes*/,
28619  25 /*letterIndex ("S")*/,
28620  },
28621  // Rule Zion 2004 only - Apr 7 1:00 1:00 D
28622  {
28623  2004 /*fromYear*/,
28624  2004 /*toYear*/,
28625  4 /*inMonth*/,
28626  0 /*onDayOfWeek*/,
28627  7 /*onDayOfMonth*/,
28628  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28629  240 /*atTimeCode (3600/15)*/,
28630  60 /*deltaMinutes*/,
28631  13 /*letterIndex ("D")*/,
28632  },
28633  // Rule Zion 2004 only - Sep 22 1:00 0 S
28634  {
28635  2004 /*fromYear*/,
28636  2004 /*toYear*/,
28637  9 /*inMonth*/,
28638  0 /*onDayOfWeek*/,
28639  22 /*onDayOfMonth*/,
28640  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28641  240 /*atTimeCode (3600/15)*/,
28642  0 /*deltaMinutes*/,
28643  25 /*letterIndex ("S")*/,
28644  },
28645  // Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
28646  {
28647  2005 /*fromYear*/,
28648  2012 /*toYear*/,
28649  4 /*inMonth*/,
28650  5 /*onDayOfWeek*/,
28651  -1 /*onDayOfMonth*/,
28652  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28653  480 /*atTimeCode (7200/15)*/,
28654  60 /*deltaMinutes*/,
28655  13 /*letterIndex ("D")*/,
28656  },
28657  // Rule Zion 2005 only - Oct 9 2:00 0 S
28658  {
28659  2005 /*fromYear*/,
28660  2005 /*toYear*/,
28661  10 /*inMonth*/,
28662  0 /*onDayOfWeek*/,
28663  9 /*onDayOfMonth*/,
28664  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28665  480 /*atTimeCode (7200/15)*/,
28666  0 /*deltaMinutes*/,
28667  25 /*letterIndex ("S")*/,
28668  },
28669  // Rule Zion 2006 only - Oct 1 2:00 0 S
28670  {
28671  2006 /*fromYear*/,
28672  2006 /*toYear*/,
28673  10 /*inMonth*/,
28674  0 /*onDayOfWeek*/,
28675  1 /*onDayOfMonth*/,
28676  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28677  480 /*atTimeCode (7200/15)*/,
28678  0 /*deltaMinutes*/,
28679  25 /*letterIndex ("S")*/,
28680  },
28681  // Rule Zion 2007 only - Sep 16 2:00 0 S
28682  {
28683  2007 /*fromYear*/,
28684  2007 /*toYear*/,
28685  9 /*inMonth*/,
28686  0 /*onDayOfWeek*/,
28687  16 /*onDayOfMonth*/,
28688  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28689  480 /*atTimeCode (7200/15)*/,
28690  0 /*deltaMinutes*/,
28691  25 /*letterIndex ("S")*/,
28692  },
28693  // Rule Zion 2008 only - Oct 5 2:00 0 S
28694  {
28695  2008 /*fromYear*/,
28696  2008 /*toYear*/,
28697  10 /*inMonth*/,
28698  0 /*onDayOfWeek*/,
28699  5 /*onDayOfMonth*/,
28700  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28701  480 /*atTimeCode (7200/15)*/,
28702  0 /*deltaMinutes*/,
28703  25 /*letterIndex ("S")*/,
28704  },
28705  // Rule Zion 2009 only - Sep 27 2:00 0 S
28706  {
28707  2009 /*fromYear*/,
28708  2009 /*toYear*/,
28709  9 /*inMonth*/,
28710  0 /*onDayOfWeek*/,
28711  27 /*onDayOfMonth*/,
28712  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28713  480 /*atTimeCode (7200/15)*/,
28714  0 /*deltaMinutes*/,
28715  25 /*letterIndex ("S")*/,
28716  },
28717  // Rule Zion 2010 only - Sep 12 2:00 0 S
28718  {
28719  2010 /*fromYear*/,
28720  2010 /*toYear*/,
28721  9 /*inMonth*/,
28722  0 /*onDayOfWeek*/,
28723  12 /*onDayOfMonth*/,
28724  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28725  480 /*atTimeCode (7200/15)*/,
28726  0 /*deltaMinutes*/,
28727  25 /*letterIndex ("S")*/,
28728  },
28729  // Rule Zion 2011 only - Oct 2 2:00 0 S
28730  {
28731  2011 /*fromYear*/,
28732  2011 /*toYear*/,
28733  10 /*inMonth*/,
28734  0 /*onDayOfWeek*/,
28735  2 /*onDayOfMonth*/,
28736  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28737  480 /*atTimeCode (7200/15)*/,
28738  0 /*deltaMinutes*/,
28739  25 /*letterIndex ("S")*/,
28740  },
28741  // Rule Zion 2012 only - Sep 23 2:00 0 S
28742  {
28743  2012 /*fromYear*/,
28744  2012 /*toYear*/,
28745  9 /*inMonth*/,
28746  0 /*onDayOfWeek*/,
28747  23 /*onDayOfMonth*/,
28748  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28749  480 /*atTimeCode (7200/15)*/,
28750  0 /*deltaMinutes*/,
28751  25 /*letterIndex ("S")*/,
28752  },
28753  // Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
28754  {
28755  2013 /*fromYear*/,
28756  32766 /*toYear*/,
28757  3 /*inMonth*/,
28758  5 /*onDayOfWeek*/,
28759  23 /*onDayOfMonth*/,
28760  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28761  480 /*atTimeCode (7200/15)*/,
28762  60 /*deltaMinutes*/,
28763  13 /*letterIndex ("D")*/,
28764  },
28765  // Rule Zion 2013 max - Oct lastSun 2:00 0 S
28766  {
28767  2013 /*fromYear*/,
28768  32766 /*toYear*/,
28769  10 /*inMonth*/,
28770  7 /*onDayOfWeek*/,
28771  0 /*onDayOfMonth*/,
28772  0 /*atTimeModifier (kAtcSuffixW + seconds=0)*/,
28773  480 /*atTimeCode (7200/15)*/,
28774  0 /*deltaMinutes*/,
28775  25 /*letterIndex ("S")*/,
28776  },
28777 
28778 };
28779 
28780 const complete::Info::ZonePolicy kZonePolicyZion ACE_TIME_PROGMEM = {
28781  kZoneRulesZion /*rules*/,
28782  86 /*numRules*/,
28783 };
28784 
28785 
28786 
28787 }
28788 }
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...