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/zonedbx/tzfiles
5 // --output_dir /home/brian/src/AceTimeSuite/libraries/AceTimeLib/src/zonedbx
6 // --tz_version 2025b
7 // --action zonedb
8 // --language arduino
9 // --scope extended
10 // --db_namespace zonedbx
11 // --zi_namespace extended::Info
12 // --start_year 2000
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: [2000,2200]
33 // Accurate Years: [2000,32767]
34 //
35 // Original Years: [1844,2087]
36 // Generated Years: [1950,2087]
37 // Lower/Upper Truncated: [True,False]
38 //
39 // Estimator Years: [1950,2090]
40 // Max Buffer Size: 7
41 //
42 // Records:
43 // Infos: 597
44 // Eras: 647
45 // Policies: 82
46 // Rules: 731
47 //
48 // Memory (8-bits):
49 // Context: 16
50 // Rules: 6579
51 // Policies: 246
52 // Eras: 7117
53 // Zones: 4420
54 // Links: 3341
55 // Registry: 1194
56 // Formats: 231
57 // Letters: 46
58 // Fragments: 150
59 // Names: 5660 (original: 9094)
60 // TOTAL: 29000
61 //
62 // Memory (32-bits):
63 // Context: 24
64 // Rules: 8772
65 // Policies: 656
66 // Eras: 10352
67 // Zones: 8160
68 // Links: 6168
69 // Registry: 2388
70 // Formats: 231
71 // Letters: 64
72 // Fragments: 178
73 // Names: 5660 (original: 9094)
74 // TOTAL: 42653
75 //
76 // DO NOT EDIT
77 
78 #include <zoneinfo/compat.h>
79 #include "zone_policies.h"
80 
81 namespace ace_time {
82 namespace zonedbx {
83 
84 //---------------------------------------------------------------------------
85 // Policies: 82
86 // Rules: 731
87 //---------------------------------------------------------------------------
88 
89 //---------------------------------------------------------------------------
90 // Policy name: AN
91 // Rules: 10
92 //---------------------------------------------------------------------------
93 
94 static const extended::Info::ZoneRule kZoneRulesAN[] ACE_TIME_PROGMEM = {
95  // Anchor: Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 S
96  {
97  -127 /*fromYearTiny (-32767)*/,
98  -127 /*toYearTiny (-32767)*/,
99  1 /*inMonth*/,
100  0 /*onDayOfWeek*/,
101  1 /*onDayOfMonth*/,
102  0 /*atTimeCode*/,
103  0 /*atTimeModifier (kSuffixW + minute=0)*/,
104  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
105  7 /*letterIndex ("S")*/,
106  },
107  // Rule AN 1987 1999 - Oct lastSun 2:00s 1:00 D
108  {
109  -113 /*fromYearTiny (1987)*/,
110  -101 /*toYearTiny (1999)*/,
111  10 /*inMonth*/,
112  7 /*onDayOfWeek*/,
113  0 /*onDayOfMonth*/,
114  8 /*atTimeCode*/,
115  16 /*atTimeModifier (kSuffixS + minute=0)*/,
116  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
117  5 /*letterIndex ("D")*/,
118  },
119  // Rule AN 1990 1995 - Mar Sun>=1 2:00s 0 S
120  {
121  -110 /*fromYearTiny (1990)*/,
122  -105 /*toYearTiny (1995)*/,
123  3 /*inMonth*/,
124  7 /*onDayOfWeek*/,
125  1 /*onDayOfMonth*/,
126  8 /*atTimeCode*/,
127  16 /*atTimeModifier (kSuffixS + minute=0)*/,
128  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
129  7 /*letterIndex ("S")*/,
130  },
131  // Rule AN 1996 2005 - Mar lastSun 2:00s 0 S
132  {
133  -104 /*fromYearTiny (1996)*/,
134  -95 /*toYearTiny (2005)*/,
135  3 /*inMonth*/,
136  7 /*onDayOfWeek*/,
137  0 /*onDayOfMonth*/,
138  8 /*atTimeCode*/,
139  16 /*atTimeModifier (kSuffixS + minute=0)*/,
140  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
141  7 /*letterIndex ("S")*/,
142  },
143  // Rule AN 2000 only - Aug lastSun 2:00s 1:00 D
144  {
145  -100 /*fromYearTiny (2000)*/,
146  -100 /*toYearTiny (2000)*/,
147  8 /*inMonth*/,
148  7 /*onDayOfWeek*/,
149  0 /*onDayOfMonth*/,
150  8 /*atTimeCode*/,
151  16 /*atTimeModifier (kSuffixS + minute=0)*/,
152  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
153  5 /*letterIndex ("D")*/,
154  },
155  // Rule AN 2001 2007 - Oct lastSun 2:00s 1:00 D
156  {
157  -99 /*fromYearTiny (2001)*/,
158  -93 /*toYearTiny (2007)*/,
159  10 /*inMonth*/,
160  7 /*onDayOfWeek*/,
161  0 /*onDayOfMonth*/,
162  8 /*atTimeCode*/,
163  16 /*atTimeModifier (kSuffixS + minute=0)*/,
164  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
165  5 /*letterIndex ("D")*/,
166  },
167  // Rule AN 2006 only - Apr Sun>=1 2:00s 0 S
168  {
169  -94 /*fromYearTiny (2006)*/,
170  -94 /*toYearTiny (2006)*/,
171  4 /*inMonth*/,
172  7 /*onDayOfWeek*/,
173  1 /*onDayOfMonth*/,
174  8 /*atTimeCode*/,
175  16 /*atTimeModifier (kSuffixS + minute=0)*/,
176  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
177  7 /*letterIndex ("S")*/,
178  },
179  // Rule AN 2007 only - Mar lastSun 2:00s 0 S
180  {
181  -93 /*fromYearTiny (2007)*/,
182  -93 /*toYearTiny (2007)*/,
183  3 /*inMonth*/,
184  7 /*onDayOfWeek*/,
185  0 /*onDayOfMonth*/,
186  8 /*atTimeCode*/,
187  16 /*atTimeModifier (kSuffixS + minute=0)*/,
188  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
189  7 /*letterIndex ("S")*/,
190  },
191  // Rule AN 2008 max - Apr Sun>=1 2:00s 0 S
192  {
193  -92 /*fromYearTiny (2008)*/,
194  126 /*toYearTiny (32766)*/,
195  4 /*inMonth*/,
196  7 /*onDayOfWeek*/,
197  1 /*onDayOfMonth*/,
198  8 /*atTimeCode*/,
199  16 /*atTimeModifier (kSuffixS + minute=0)*/,
200  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
201  7 /*letterIndex ("S")*/,
202  },
203  // Rule AN 2008 max - Oct Sun>=1 2:00s 1:00 D
204  {
205  -92 /*fromYearTiny (2008)*/,
206  126 /*toYearTiny (32766)*/,
207  10 /*inMonth*/,
208  7 /*onDayOfWeek*/,
209  1 /*onDayOfMonth*/,
210  8 /*atTimeCode*/,
211  16 /*atTimeModifier (kSuffixS + minute=0)*/,
212  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
213  5 /*letterIndex ("D")*/,
214  },
215 
216 };
217 
218 const extended::Info::ZonePolicy kZonePolicyAN ACE_TIME_PROGMEM = {
219  kZoneRulesAN /*rules*/,
220  10 /*numRules*/,
221 };
222 
223 //---------------------------------------------------------------------------
224 // Policy name: AQ
225 // Rules: 1
226 //---------------------------------------------------------------------------
227 
228 static const extended::Info::ZoneRule kZoneRulesAQ[] ACE_TIME_PROGMEM = {
229  // Anchor: Rule AQ 1990 1992 - Mar Sun>=1 2:00s 0 S
230  {
231  -127 /*fromYearTiny (-32767)*/,
232  -127 /*toYearTiny (-32767)*/,
233  1 /*inMonth*/,
234  0 /*onDayOfWeek*/,
235  1 /*onDayOfMonth*/,
236  0 /*atTimeCode*/,
237  0 /*atTimeModifier (kSuffixW + minute=0)*/,
238  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
239  7 /*letterIndex ("S")*/,
240  },
241 
242 };
243 
244 const extended::Info::ZonePolicy kZonePolicyAQ ACE_TIME_PROGMEM = {
245  kZoneRulesAQ /*rules*/,
246  1 /*numRules*/,
247 };
248 
249 //---------------------------------------------------------------------------
250 // Policy name: AS
251 // Rules: 8
252 //---------------------------------------------------------------------------
253 
254 static const extended::Info::ZoneRule kZoneRulesAS[] ACE_TIME_PROGMEM = {
255  // Anchor: Rule AS 1994 only - Mar 20 2:00s 0 S
256  {
257  -127 /*fromYearTiny (-32767)*/,
258  -127 /*toYearTiny (-32767)*/,
259  1 /*inMonth*/,
260  0 /*onDayOfWeek*/,
261  1 /*onDayOfMonth*/,
262  0 /*atTimeCode*/,
263  0 /*atTimeModifier (kSuffixW + minute=0)*/,
264  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
265  7 /*letterIndex ("S")*/,
266  },
267  // Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 D
268  {
269  -113 /*fromYearTiny (1987)*/,
270  -93 /*toYearTiny (2007)*/,
271  10 /*inMonth*/,
272  7 /*onDayOfWeek*/,
273  0 /*onDayOfMonth*/,
274  8 /*atTimeCode*/,
275  16 /*atTimeModifier (kSuffixS + minute=0)*/,
276  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
277  5 /*letterIndex ("D")*/,
278  },
279  // Rule AS 1994 only - Mar 20 2:00s 0 S
280  {
281  -106 /*fromYearTiny (1994)*/,
282  -106 /*toYearTiny (1994)*/,
283  3 /*inMonth*/,
284  0 /*onDayOfWeek*/,
285  20 /*onDayOfMonth*/,
286  8 /*atTimeCode*/,
287  16 /*atTimeModifier (kSuffixS + minute=0)*/,
288  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
289  7 /*letterIndex ("S")*/,
290  },
291  // Rule AS 1995 2005 - Mar lastSun 2:00s 0 S
292  {
293  -105 /*fromYearTiny (1995)*/,
294  -95 /*toYearTiny (2005)*/,
295  3 /*inMonth*/,
296  7 /*onDayOfWeek*/,
297  0 /*onDayOfMonth*/,
298  8 /*atTimeCode*/,
299  16 /*atTimeModifier (kSuffixS + minute=0)*/,
300  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
301  7 /*letterIndex ("S")*/,
302  },
303  // Rule AS 2006 only - Apr 2 2:00s 0 S
304  {
305  -94 /*fromYearTiny (2006)*/,
306  -94 /*toYearTiny (2006)*/,
307  4 /*inMonth*/,
308  0 /*onDayOfWeek*/,
309  2 /*onDayOfMonth*/,
310  8 /*atTimeCode*/,
311  16 /*atTimeModifier (kSuffixS + minute=0)*/,
312  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
313  7 /*letterIndex ("S")*/,
314  },
315  // Rule AS 2007 only - Mar lastSun 2:00s 0 S
316  {
317  -93 /*fromYearTiny (2007)*/,
318  -93 /*toYearTiny (2007)*/,
319  3 /*inMonth*/,
320  7 /*onDayOfWeek*/,
321  0 /*onDayOfMonth*/,
322  8 /*atTimeCode*/,
323  16 /*atTimeModifier (kSuffixS + minute=0)*/,
324  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
325  7 /*letterIndex ("S")*/,
326  },
327  // Rule AS 2008 max - Apr Sun>=1 2:00s 0 S
328  {
329  -92 /*fromYearTiny (2008)*/,
330  126 /*toYearTiny (32766)*/,
331  4 /*inMonth*/,
332  7 /*onDayOfWeek*/,
333  1 /*onDayOfMonth*/,
334  8 /*atTimeCode*/,
335  16 /*atTimeModifier (kSuffixS + minute=0)*/,
336  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
337  7 /*letterIndex ("S")*/,
338  },
339  // Rule AS 2008 max - Oct Sun>=1 2:00s 1:00 D
340  {
341  -92 /*fromYearTiny (2008)*/,
342  126 /*toYearTiny (32766)*/,
343  10 /*inMonth*/,
344  7 /*onDayOfWeek*/,
345  1 /*onDayOfMonth*/,
346  8 /*atTimeCode*/,
347  16 /*atTimeModifier (kSuffixS + minute=0)*/,
348  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
349  5 /*letterIndex ("D")*/,
350  },
351 
352 };
353 
354 const extended::Info::ZonePolicy kZonePolicyAS ACE_TIME_PROGMEM = {
355  kZoneRulesAS /*rules*/,
356  8 /*numRules*/,
357 };
358 
359 //---------------------------------------------------------------------------
360 // Policy name: AT
361 // Rules: 9
362 //---------------------------------------------------------------------------
363 
364 static const extended::Info::ZoneRule kZoneRulesAT[] ACE_TIME_PROGMEM = {
365  // Anchor: Rule AT 1991 2005 - Mar lastSun 2:00s 0 S
366  {
367  -127 /*fromYearTiny (-32767)*/,
368  -127 /*toYearTiny (-32767)*/,
369  1 /*inMonth*/,
370  0 /*onDayOfWeek*/,
371  1 /*onDayOfMonth*/,
372  0 /*atTimeCode*/,
373  0 /*atTimeModifier (kSuffixW + minute=0)*/,
374  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
375  7 /*letterIndex ("S")*/,
376  },
377  // Rule AT 1988 1990 - Oct lastSun 2:00s 1:00 D
378  {
379  -112 /*fromYearTiny (1988)*/,
380  -110 /*toYearTiny (1990)*/,
381  10 /*inMonth*/,
382  7 /*onDayOfWeek*/,
383  0 /*onDayOfMonth*/,
384  8 /*atTimeCode*/,
385  16 /*atTimeModifier (kSuffixS + minute=0)*/,
386  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
387  5 /*letterIndex ("D")*/,
388  },
389  // Rule AT 1991 1999 - Oct Sun>=1 2:00s 1:00 D
390  {
391  -109 /*fromYearTiny (1991)*/,
392  -101 /*toYearTiny (1999)*/,
393  10 /*inMonth*/,
394  7 /*onDayOfWeek*/,
395  1 /*onDayOfMonth*/,
396  8 /*atTimeCode*/,
397  16 /*atTimeModifier (kSuffixS + minute=0)*/,
398  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
399  5 /*letterIndex ("D")*/,
400  },
401  // Rule AT 1991 2005 - Mar lastSun 2:00s 0 S
402  {
403  -109 /*fromYearTiny (1991)*/,
404  -95 /*toYearTiny (2005)*/,
405  3 /*inMonth*/,
406  7 /*onDayOfWeek*/,
407  0 /*onDayOfMonth*/,
408  8 /*atTimeCode*/,
409  16 /*atTimeModifier (kSuffixS + minute=0)*/,
410  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
411  7 /*letterIndex ("S")*/,
412  },
413  // Rule AT 2000 only - Aug lastSun 2:00s 1:00 D
414  {
415  -100 /*fromYearTiny (2000)*/,
416  -100 /*toYearTiny (2000)*/,
417  8 /*inMonth*/,
418  7 /*onDayOfWeek*/,
419  0 /*onDayOfMonth*/,
420  8 /*atTimeCode*/,
421  16 /*atTimeModifier (kSuffixS + minute=0)*/,
422  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
423  5 /*letterIndex ("D")*/,
424  },
425  // Rule AT 2001 max - Oct Sun>=1 2:00s 1:00 D
426  {
427  -99 /*fromYearTiny (2001)*/,
428  126 /*toYearTiny (32766)*/,
429  10 /*inMonth*/,
430  7 /*onDayOfWeek*/,
431  1 /*onDayOfMonth*/,
432  8 /*atTimeCode*/,
433  16 /*atTimeModifier (kSuffixS + minute=0)*/,
434  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
435  5 /*letterIndex ("D")*/,
436  },
437  // Rule AT 2006 only - Apr Sun>=1 2:00s 0 S
438  {
439  -94 /*fromYearTiny (2006)*/,
440  -94 /*toYearTiny (2006)*/,
441  4 /*inMonth*/,
442  7 /*onDayOfWeek*/,
443  1 /*onDayOfMonth*/,
444  8 /*atTimeCode*/,
445  16 /*atTimeModifier (kSuffixS + minute=0)*/,
446  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
447  7 /*letterIndex ("S")*/,
448  },
449  // Rule AT 2007 only - Mar lastSun 2:00s 0 S
450  {
451  -93 /*fromYearTiny (2007)*/,
452  -93 /*toYearTiny (2007)*/,
453  3 /*inMonth*/,
454  7 /*onDayOfWeek*/,
455  0 /*onDayOfMonth*/,
456  8 /*atTimeCode*/,
457  16 /*atTimeModifier (kSuffixS + minute=0)*/,
458  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
459  7 /*letterIndex ("S")*/,
460  },
461  // Rule AT 2008 max - Apr Sun>=1 2:00s 0 S
462  {
463  -92 /*fromYearTiny (2008)*/,
464  126 /*toYearTiny (32766)*/,
465  4 /*inMonth*/,
466  7 /*onDayOfWeek*/,
467  1 /*onDayOfMonth*/,
468  8 /*atTimeCode*/,
469  16 /*atTimeModifier (kSuffixS + minute=0)*/,
470  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
471  7 /*letterIndex ("S")*/,
472  },
473 
474 };
475 
476 const extended::Info::ZonePolicy kZonePolicyAT ACE_TIME_PROGMEM = {
477  kZoneRulesAT /*rules*/,
478  9 /*numRules*/,
479 };
480 
481 //---------------------------------------------------------------------------
482 // Policy name: AV
483 // Rules: 10
484 //---------------------------------------------------------------------------
485 
486 static const extended::Info::ZoneRule kZoneRulesAV[] ACE_TIME_PROGMEM = {
487  // Anchor: Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 S
488  {
489  -127 /*fromYearTiny (-32767)*/,
490  -127 /*toYearTiny (-32767)*/,
491  1 /*inMonth*/,
492  0 /*onDayOfWeek*/,
493  1 /*onDayOfMonth*/,
494  0 /*atTimeCode*/,
495  0 /*atTimeModifier (kSuffixW + minute=0)*/,
496  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
497  7 /*letterIndex ("S")*/,
498  },
499  // Rule AV 1988 1999 - Oct lastSun 2:00s 1:00 D
500  {
501  -112 /*fromYearTiny (1988)*/,
502  -101 /*toYearTiny (1999)*/,
503  10 /*inMonth*/,
504  7 /*onDayOfWeek*/,
505  0 /*onDayOfMonth*/,
506  8 /*atTimeCode*/,
507  16 /*atTimeModifier (kSuffixS + minute=0)*/,
508  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
509  5 /*letterIndex ("D")*/,
510  },
511  // Rule AV 1991 1994 - Mar Sun>=1 2:00s 0 S
512  {
513  -109 /*fromYearTiny (1991)*/,
514  -106 /*toYearTiny (1994)*/,
515  3 /*inMonth*/,
516  7 /*onDayOfWeek*/,
517  1 /*onDayOfMonth*/,
518  8 /*atTimeCode*/,
519  16 /*atTimeModifier (kSuffixS + minute=0)*/,
520  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
521  7 /*letterIndex ("S")*/,
522  },
523  // Rule AV 1995 2005 - Mar lastSun 2:00s 0 S
524  {
525  -105 /*fromYearTiny (1995)*/,
526  -95 /*toYearTiny (2005)*/,
527  3 /*inMonth*/,
528  7 /*onDayOfWeek*/,
529  0 /*onDayOfMonth*/,
530  8 /*atTimeCode*/,
531  16 /*atTimeModifier (kSuffixS + minute=0)*/,
532  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
533  7 /*letterIndex ("S")*/,
534  },
535  // Rule AV 2000 only - Aug lastSun 2:00s 1:00 D
536  {
537  -100 /*fromYearTiny (2000)*/,
538  -100 /*toYearTiny (2000)*/,
539  8 /*inMonth*/,
540  7 /*onDayOfWeek*/,
541  0 /*onDayOfMonth*/,
542  8 /*atTimeCode*/,
543  16 /*atTimeModifier (kSuffixS + minute=0)*/,
544  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
545  5 /*letterIndex ("D")*/,
546  },
547  // Rule AV 2001 2007 - Oct lastSun 2:00s 1:00 D
548  {
549  -99 /*fromYearTiny (2001)*/,
550  -93 /*toYearTiny (2007)*/,
551  10 /*inMonth*/,
552  7 /*onDayOfWeek*/,
553  0 /*onDayOfMonth*/,
554  8 /*atTimeCode*/,
555  16 /*atTimeModifier (kSuffixS + minute=0)*/,
556  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
557  5 /*letterIndex ("D")*/,
558  },
559  // Rule AV 2006 only - Apr Sun>=1 2:00s 0 S
560  {
561  -94 /*fromYearTiny (2006)*/,
562  -94 /*toYearTiny (2006)*/,
563  4 /*inMonth*/,
564  7 /*onDayOfWeek*/,
565  1 /*onDayOfMonth*/,
566  8 /*atTimeCode*/,
567  16 /*atTimeModifier (kSuffixS + minute=0)*/,
568  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
569  7 /*letterIndex ("S")*/,
570  },
571  // Rule AV 2007 only - Mar lastSun 2:00s 0 S
572  {
573  -93 /*fromYearTiny (2007)*/,
574  -93 /*toYearTiny (2007)*/,
575  3 /*inMonth*/,
576  7 /*onDayOfWeek*/,
577  0 /*onDayOfMonth*/,
578  8 /*atTimeCode*/,
579  16 /*atTimeModifier (kSuffixS + minute=0)*/,
580  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
581  7 /*letterIndex ("S")*/,
582  },
583  // Rule AV 2008 max - Apr Sun>=1 2:00s 0 S
584  {
585  -92 /*fromYearTiny (2008)*/,
586  126 /*toYearTiny (32766)*/,
587  4 /*inMonth*/,
588  7 /*onDayOfWeek*/,
589  1 /*onDayOfMonth*/,
590  8 /*atTimeCode*/,
591  16 /*atTimeModifier (kSuffixS + minute=0)*/,
592  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
593  7 /*letterIndex ("S")*/,
594  },
595  // Rule AV 2008 max - Oct Sun>=1 2:00s 1:00 D
596  {
597  -92 /*fromYearTiny (2008)*/,
598  126 /*toYearTiny (32766)*/,
599  10 /*inMonth*/,
600  7 /*onDayOfWeek*/,
601  1 /*onDayOfMonth*/,
602  8 /*atTimeCode*/,
603  16 /*atTimeModifier (kSuffixS + minute=0)*/,
604  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
605  5 /*letterIndex ("D")*/,
606  },
607 
608 };
609 
610 const extended::Info::ZonePolicy kZonePolicyAV ACE_TIME_PROGMEM = {
611  kZoneRulesAV /*rules*/,
612  10 /*numRules*/,
613 };
614 
615 //---------------------------------------------------------------------------
616 // Policy name: AW
617 // Rules: 5
618 //---------------------------------------------------------------------------
619 
620 static const extended::Info::ZoneRule kZoneRulesAW[] ACE_TIME_PROGMEM = {
621  // Anchor: Rule AW 1992 only - Mar Sun>=1 2:00s 0 S
622  {
623  -127 /*fromYearTiny (-32767)*/,
624  -127 /*toYearTiny (-32767)*/,
625  1 /*inMonth*/,
626  0 /*onDayOfWeek*/,
627  1 /*onDayOfMonth*/,
628  0 /*atTimeCode*/,
629  0 /*atTimeModifier (kSuffixW + minute=0)*/,
630  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
631  7 /*letterIndex ("S")*/,
632  },
633  // Rule AW 1992 only - Mar Sun>=1 2:00s 0 S
634  {
635  -108 /*fromYearTiny (1992)*/,
636  -108 /*toYearTiny (1992)*/,
637  3 /*inMonth*/,
638  7 /*onDayOfWeek*/,
639  1 /*onDayOfMonth*/,
640  8 /*atTimeCode*/,
641  16 /*atTimeModifier (kSuffixS + minute=0)*/,
642  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
643  7 /*letterIndex ("S")*/,
644  },
645  // Rule AW 2006 only - Dec 3 2:00s 1:00 D
646  {
647  -94 /*fromYearTiny (2006)*/,
648  -94 /*toYearTiny (2006)*/,
649  12 /*inMonth*/,
650  0 /*onDayOfWeek*/,
651  3 /*onDayOfMonth*/,
652  8 /*atTimeCode*/,
653  16 /*atTimeModifier (kSuffixS + minute=0)*/,
654  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
655  5 /*letterIndex ("D")*/,
656  },
657  // Rule AW 2007 2009 - Mar lastSun 2:00s 0 S
658  {
659  -93 /*fromYearTiny (2007)*/,
660  -91 /*toYearTiny (2009)*/,
661  3 /*inMonth*/,
662  7 /*onDayOfWeek*/,
663  0 /*onDayOfMonth*/,
664  8 /*atTimeCode*/,
665  16 /*atTimeModifier (kSuffixS + minute=0)*/,
666  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
667  7 /*letterIndex ("S")*/,
668  },
669  // Rule AW 2007 2008 - Oct lastSun 2:00s 1:00 D
670  {
671  -93 /*fromYearTiny (2007)*/,
672  -92 /*toYearTiny (2008)*/,
673  10 /*inMonth*/,
674  7 /*onDayOfWeek*/,
675  0 /*onDayOfMonth*/,
676  8 /*atTimeCode*/,
677  16 /*atTimeModifier (kSuffixS + minute=0)*/,
678  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
679  5 /*letterIndex ("D")*/,
680  },
681 
682 };
683 
684 const extended::Info::ZonePolicy kZonePolicyAW ACE_TIME_PROGMEM = {
685  kZoneRulesAW /*rules*/,
686  5 /*numRules*/,
687 };
688 
689 //---------------------------------------------------------------------------
690 // Policy name: Arg
691 // Rules: 7
692 //---------------------------------------------------------------------------
693 
694 static const extended::Info::ZoneRule kZoneRulesArg[] ACE_TIME_PROGMEM = {
695  // Anchor: Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
696  {
697  -127 /*fromYearTiny (-32767)*/,
698  -127 /*toYearTiny (-32767)*/,
699  1 /*inMonth*/,
700  0 /*onDayOfWeek*/,
701  1 /*onDayOfMonth*/,
702  0 /*atTimeCode*/,
703  0 /*atTimeModifier (kSuffixW + minute=0)*/,
704  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
705  0 /*letterIndex ("")*/,
706  },
707  // Rule Arg 1989 1993 - Mar Sun>=1 0:00 0 -
708  {
709  -111 /*fromYearTiny (1989)*/,
710  -107 /*toYearTiny (1993)*/,
711  3 /*inMonth*/,
712  7 /*onDayOfWeek*/,
713  1 /*onDayOfMonth*/,
714  0 /*atTimeCode*/,
715  0 /*atTimeModifier (kSuffixW + minute=0)*/,
716  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
717  0 /*letterIndex ("")*/,
718  },
719  // Rule Arg 1999 only - Oct Sun>=1 0:00 1:00 -
720  {
721  -101 /*fromYearTiny (1999)*/,
722  -101 /*toYearTiny (1999)*/,
723  10 /*inMonth*/,
724  7 /*onDayOfWeek*/,
725  1 /*onDayOfMonth*/,
726  0 /*atTimeCode*/,
727  0 /*atTimeModifier (kSuffixW + minute=0)*/,
728  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
729  0 /*letterIndex ("")*/,
730  },
731  // Rule Arg 2000 only - Mar 3 0:00 0 -
732  {
733  -100 /*fromYearTiny (2000)*/,
734  -100 /*toYearTiny (2000)*/,
735  3 /*inMonth*/,
736  0 /*onDayOfWeek*/,
737  3 /*onDayOfMonth*/,
738  0 /*atTimeCode*/,
739  0 /*atTimeModifier (kSuffixW + minute=0)*/,
740  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
741  0 /*letterIndex ("")*/,
742  },
743  // Rule Arg 2007 only - Dec 30 0:00 1:00 -
744  {
745  -93 /*fromYearTiny (2007)*/,
746  -93 /*toYearTiny (2007)*/,
747  12 /*inMonth*/,
748  0 /*onDayOfWeek*/,
749  30 /*onDayOfMonth*/,
750  0 /*atTimeCode*/,
751  0 /*atTimeModifier (kSuffixW + minute=0)*/,
752  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
753  0 /*letterIndex ("")*/,
754  },
755  // Rule Arg 2008 2009 - Mar Sun>=15 0:00 0 -
756  {
757  -92 /*fromYearTiny (2008)*/,
758  -91 /*toYearTiny (2009)*/,
759  3 /*inMonth*/,
760  7 /*onDayOfWeek*/,
761  15 /*onDayOfMonth*/,
762  0 /*atTimeCode*/,
763  0 /*atTimeModifier (kSuffixW + minute=0)*/,
764  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
765  0 /*letterIndex ("")*/,
766  },
767  // Rule Arg 2008 only - Oct Sun>=15 0:00 1:00 -
768  {
769  -92 /*fromYearTiny (2008)*/,
770  -92 /*toYearTiny (2008)*/,
771  10 /*inMonth*/,
772  7 /*onDayOfWeek*/,
773  15 /*onDayOfMonth*/,
774  0 /*atTimeCode*/,
775  0 /*atTimeModifier (kSuffixW + minute=0)*/,
776  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
777  0 /*letterIndex ("")*/,
778  },
779 
780 };
781 
782 const extended::Info::ZonePolicy kZonePolicyArg ACE_TIME_PROGMEM = {
783  kZoneRulesArg /*rules*/,
784  7 /*numRules*/,
785 };
786 
787 //---------------------------------------------------------------------------
788 // Policy name: Armenia
789 // Rules: 3
790 //---------------------------------------------------------------------------
791 
792 static const extended::Info::ZoneRule kZoneRulesArmenia[] ACE_TIME_PROGMEM = {
793  // Anchor: Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
794  {
795  -127 /*fromYearTiny (-32767)*/,
796  -127 /*toYearTiny (-32767)*/,
797  1 /*inMonth*/,
798  0 /*onDayOfWeek*/,
799  1 /*onDayOfMonth*/,
800  0 /*atTimeCode*/,
801  0 /*atTimeModifier (kSuffixW + minute=0)*/,
802  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
803  0 /*letterIndex ("")*/,
804  },
805  // Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 -
806  {
807  -89 /*fromYearTiny (2011)*/,
808  -89 /*toYearTiny (2011)*/,
809  3 /*inMonth*/,
810  7 /*onDayOfWeek*/,
811  0 /*onDayOfMonth*/,
812  8 /*atTimeCode*/,
813  16 /*atTimeModifier (kSuffixS + minute=0)*/,
814  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
815  0 /*letterIndex ("")*/,
816  },
817  // Rule Armenia 2011 only - Oct lastSun 2:00s 0 -
818  {
819  -89 /*fromYearTiny (2011)*/,
820  -89 /*toYearTiny (2011)*/,
821  10 /*inMonth*/,
822  7 /*onDayOfWeek*/,
823  0 /*onDayOfMonth*/,
824  8 /*atTimeCode*/,
825  16 /*atTimeModifier (kSuffixS + minute=0)*/,
826  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
827  0 /*letterIndex ("")*/,
828  },
829 
830 };
831 
832 const extended::Info::ZonePolicy kZonePolicyArmenia ACE_TIME_PROGMEM = {
833  kZoneRulesArmenia /*rules*/,
834  3 /*numRules*/,
835 };
836 
837 //---------------------------------------------------------------------------
838 // Policy name: Aus
839 // Rules: 1
840 //---------------------------------------------------------------------------
841 
842 static const extended::Info::ZoneRule kZoneRulesAus[] ACE_TIME_PROGMEM = {
843  // Anchor: Rule Aus 1943 1944 - Mar lastSun 2:00s 0 S
844  {
845  -127 /*fromYearTiny (-32767)*/,
846  -127 /*toYearTiny (-32767)*/,
847  1 /*inMonth*/,
848  0 /*onDayOfWeek*/,
849  1 /*onDayOfMonth*/,
850  0 /*atTimeCode*/,
851  0 /*atTimeModifier (kSuffixW + minute=0)*/,
852  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
853  7 /*letterIndex ("S")*/,
854  },
855 
856 };
857 
858 const extended::Info::ZonePolicy kZonePolicyAus ACE_TIME_PROGMEM = {
859  kZoneRulesAus /*rules*/,
860  1 /*numRules*/,
861 };
862 
863 //---------------------------------------------------------------------------
864 // Policy name: Azer
865 // Rules: 3
866 //---------------------------------------------------------------------------
867 
868 static const extended::Info::ZoneRule kZoneRulesAzer[] ACE_TIME_PROGMEM = {
869  // Anchor: Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
870  {
871  -127 /*fromYearTiny (-32767)*/,
872  -127 /*toYearTiny (-32767)*/,
873  1 /*inMonth*/,
874  0 /*onDayOfWeek*/,
875  1 /*onDayOfMonth*/,
876  0 /*atTimeCode*/,
877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
878  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
879  0 /*letterIndex ("")*/,
880  },
881  // Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 -
882  {
883  -103 /*fromYearTiny (1997)*/,
884  -85 /*toYearTiny (2015)*/,
885  3 /*inMonth*/,
886  7 /*onDayOfWeek*/,
887  0 /*onDayOfMonth*/,
888  16 /*atTimeCode*/,
889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
890  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
891  0 /*letterIndex ("")*/,
892  },
893  // Rule Azer 1997 2015 - Oct lastSun 5:00 0 -
894  {
895  -103 /*fromYearTiny (1997)*/,
896  -85 /*toYearTiny (2015)*/,
897  10 /*inMonth*/,
898  7 /*onDayOfWeek*/,
899  0 /*onDayOfMonth*/,
900  20 /*atTimeCode*/,
901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
903  0 /*letterIndex ("")*/,
904  },
905 
906 };
907 
908 const extended::Info::ZonePolicy kZonePolicyAzer ACE_TIME_PROGMEM = {
909  kZoneRulesAzer /*rules*/,
910  3 /*numRules*/,
911 };
912 
913 //---------------------------------------------------------------------------
914 // Policy name: Barb
915 // Rules: 1
916 //---------------------------------------------------------------------------
917 
918 static const extended::Info::ZoneRule kZoneRulesBarb[] ACE_TIME_PROGMEM = {
919  // Anchor: Rule Barb 1980 only - Sep 25 2:00 0 S
920  {
921  -127 /*fromYearTiny (-32767)*/,
922  -127 /*toYearTiny (-32767)*/,
923  1 /*inMonth*/,
924  0 /*onDayOfWeek*/,
925  1 /*onDayOfMonth*/,
926  0 /*atTimeCode*/,
927  0 /*atTimeModifier (kSuffixW + minute=0)*/,
928  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
929  7 /*letterIndex ("S")*/,
930  },
931 
932 };
933 
934 const extended::Info::ZonePolicy kZonePolicyBarb ACE_TIME_PROGMEM = {
935  kZoneRulesBarb /*rules*/,
936  1 /*numRules*/,
937 };
938 
939 //---------------------------------------------------------------------------
940 // Policy name: Belize
941 // Rules: 1
942 //---------------------------------------------------------------------------
943 
944 static const extended::Info::ZoneRule kZoneRulesBelize[] ACE_TIME_PROGMEM = {
945  // Anchor: Rule Belize 1983 only - Feb 12 0:00 0 CST
946  {
947  -127 /*fromYearTiny (-32767)*/,
948  -127 /*toYearTiny (-32767)*/,
949  1 /*inMonth*/,
950  0 /*onDayOfWeek*/,
951  1 /*onDayOfMonth*/,
952  0 /*atTimeCode*/,
953  0 /*atTimeModifier (kSuffixW + minute=0)*/,
954  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
955  4 /*letterIndex ("CST")*/,
956  },
957 
958 };
959 
960 const extended::Info::ZonePolicy kZonePolicyBelize ACE_TIME_PROGMEM = {
961  kZoneRulesBelize /*rules*/,
962  1 /*numRules*/,
963 };
964 
965 //---------------------------------------------------------------------------
966 // Policy name: Brazil
967 // Rules: 21
968 //---------------------------------------------------------------------------
969 
970 static const extended::Info::ZoneRule kZoneRulesBrazil[] ACE_TIME_PROGMEM = {
971  // Anchor: Rule Brazil 1999 only - Feb 21 0:00 0 -
972  {
973  -127 /*fromYearTiny (-32767)*/,
974  -127 /*toYearTiny (-32767)*/,
975  1 /*inMonth*/,
976  0 /*onDayOfWeek*/,
977  1 /*onDayOfMonth*/,
978  0 /*atTimeCode*/,
979  0 /*atTimeModifier (kSuffixW + minute=0)*/,
980  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
981  0 /*letterIndex ("")*/,
982  },
983  // Rule Brazil 1998 only - Oct 11 0:00 1:00 -
984  {
985  -102 /*fromYearTiny (1998)*/,
986  -102 /*toYearTiny (1998)*/,
987  10 /*inMonth*/,
988  0 /*onDayOfWeek*/,
989  11 /*onDayOfMonth*/,
990  0 /*atTimeCode*/,
991  0 /*atTimeModifier (kSuffixW + minute=0)*/,
992  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
993  0 /*letterIndex ("")*/,
994  },
995  // Rule Brazil 1999 only - Feb 21 0:00 0 -
996  {
997  -101 /*fromYearTiny (1999)*/,
998  -101 /*toYearTiny (1999)*/,
999  2 /*inMonth*/,
1000  0 /*onDayOfWeek*/,
1001  21 /*onDayOfMonth*/,
1002  0 /*atTimeCode*/,
1003  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1004  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1005  0 /*letterIndex ("")*/,
1006  },
1007  // Rule Brazil 1999 only - Oct 3 0:00 1:00 -
1008  {
1009  -101 /*fromYearTiny (1999)*/,
1010  -101 /*toYearTiny (1999)*/,
1011  10 /*inMonth*/,
1012  0 /*onDayOfWeek*/,
1013  3 /*onDayOfMonth*/,
1014  0 /*atTimeCode*/,
1015  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1016  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1017  0 /*letterIndex ("")*/,
1018  },
1019  // Rule Brazil 2000 only - Feb 27 0:00 0 -
1020  {
1021  -100 /*fromYearTiny (2000)*/,
1022  -100 /*toYearTiny (2000)*/,
1023  2 /*inMonth*/,
1024  0 /*onDayOfWeek*/,
1025  27 /*onDayOfMonth*/,
1026  0 /*atTimeCode*/,
1027  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1028  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1029  0 /*letterIndex ("")*/,
1030  },
1031  // Rule Brazil 2000 2001 - Oct Sun>=8 0:00 1:00 -
1032  {
1033  -100 /*fromYearTiny (2000)*/,
1034  -99 /*toYearTiny (2001)*/,
1035  10 /*inMonth*/,
1036  7 /*onDayOfWeek*/,
1037  8 /*onDayOfMonth*/,
1038  0 /*atTimeCode*/,
1039  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1040  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1041  0 /*letterIndex ("")*/,
1042  },
1043  // Rule Brazil 2001 2006 - Feb Sun>=15 0:00 0 -
1044  {
1045  -99 /*fromYearTiny (2001)*/,
1046  -94 /*toYearTiny (2006)*/,
1047  2 /*inMonth*/,
1048  7 /*onDayOfWeek*/,
1049  15 /*onDayOfMonth*/,
1050  0 /*atTimeCode*/,
1051  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1052  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1053  0 /*letterIndex ("")*/,
1054  },
1055  // Rule Brazil 2002 only - Nov 3 0:00 1:00 -
1056  {
1057  -98 /*fromYearTiny (2002)*/,
1058  -98 /*toYearTiny (2002)*/,
1059  11 /*inMonth*/,
1060  0 /*onDayOfWeek*/,
1061  3 /*onDayOfMonth*/,
1062  0 /*atTimeCode*/,
1063  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1064  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1065  0 /*letterIndex ("")*/,
1066  },
1067  // Rule Brazil 2003 only - Oct 19 0:00 1:00 -
1068  {
1069  -97 /*fromYearTiny (2003)*/,
1070  -97 /*toYearTiny (2003)*/,
1071  10 /*inMonth*/,
1072  0 /*onDayOfWeek*/,
1073  19 /*onDayOfMonth*/,
1074  0 /*atTimeCode*/,
1075  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1076  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1077  0 /*letterIndex ("")*/,
1078  },
1079  // Rule Brazil 2004 only - Nov 2 0:00 1:00 -
1080  {
1081  -96 /*fromYearTiny (2004)*/,
1082  -96 /*toYearTiny (2004)*/,
1083  11 /*inMonth*/,
1084  0 /*onDayOfWeek*/,
1085  2 /*onDayOfMonth*/,
1086  0 /*atTimeCode*/,
1087  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1088  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1089  0 /*letterIndex ("")*/,
1090  },
1091  // Rule Brazil 2005 only - Oct 16 0:00 1:00 -
1092  {
1093  -95 /*fromYearTiny (2005)*/,
1094  -95 /*toYearTiny (2005)*/,
1095  10 /*inMonth*/,
1096  0 /*onDayOfWeek*/,
1097  16 /*onDayOfMonth*/,
1098  0 /*atTimeCode*/,
1099  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1100  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1101  0 /*letterIndex ("")*/,
1102  },
1103  // Rule Brazil 2006 only - Nov 5 0:00 1:00 -
1104  {
1105  -94 /*fromYearTiny (2006)*/,
1106  -94 /*toYearTiny (2006)*/,
1107  11 /*inMonth*/,
1108  0 /*onDayOfWeek*/,
1109  5 /*onDayOfMonth*/,
1110  0 /*atTimeCode*/,
1111  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1112  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1113  0 /*letterIndex ("")*/,
1114  },
1115  // Rule Brazil 2007 only - Feb 25 0:00 0 -
1116  {
1117  -93 /*fromYearTiny (2007)*/,
1118  -93 /*toYearTiny (2007)*/,
1119  2 /*inMonth*/,
1120  0 /*onDayOfWeek*/,
1121  25 /*onDayOfMonth*/,
1122  0 /*atTimeCode*/,
1123  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1124  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1125  0 /*letterIndex ("")*/,
1126  },
1127  // Rule Brazil 2007 only - Oct Sun>=8 0:00 1:00 -
1128  {
1129  -93 /*fromYearTiny (2007)*/,
1130  -93 /*toYearTiny (2007)*/,
1131  10 /*inMonth*/,
1132  7 /*onDayOfWeek*/,
1133  8 /*onDayOfMonth*/,
1134  0 /*atTimeCode*/,
1135  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1136  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1137  0 /*letterIndex ("")*/,
1138  },
1139  // Rule Brazil 2008 2017 - Oct Sun>=15 0:00 1:00 -
1140  {
1141  -92 /*fromYearTiny (2008)*/,
1142  -83 /*toYearTiny (2017)*/,
1143  10 /*inMonth*/,
1144  7 /*onDayOfWeek*/,
1145  15 /*onDayOfMonth*/,
1146  0 /*atTimeCode*/,
1147  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1148  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1149  0 /*letterIndex ("")*/,
1150  },
1151  // Rule Brazil 2008 2011 - Feb Sun>=15 0:00 0 -
1152  {
1153  -92 /*fromYearTiny (2008)*/,
1154  -89 /*toYearTiny (2011)*/,
1155  2 /*inMonth*/,
1156  7 /*onDayOfWeek*/,
1157  15 /*onDayOfMonth*/,
1158  0 /*atTimeCode*/,
1159  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1160  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1161  0 /*letterIndex ("")*/,
1162  },
1163  // Rule Brazil 2012 only - Feb Sun>=22 0:00 0 -
1164  {
1165  -88 /*fromYearTiny (2012)*/,
1166  -88 /*toYearTiny (2012)*/,
1167  2 /*inMonth*/,
1168  7 /*onDayOfWeek*/,
1169  22 /*onDayOfMonth*/,
1170  0 /*atTimeCode*/,
1171  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1172  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1173  0 /*letterIndex ("")*/,
1174  },
1175  // Rule Brazil 2013 2014 - Feb Sun>=15 0:00 0 -
1176  {
1177  -87 /*fromYearTiny (2013)*/,
1178  -86 /*toYearTiny (2014)*/,
1179  2 /*inMonth*/,
1180  7 /*onDayOfWeek*/,
1181  15 /*onDayOfMonth*/,
1182  0 /*atTimeCode*/,
1183  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1184  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1185  0 /*letterIndex ("")*/,
1186  },
1187  // Rule Brazil 2015 only - Feb Sun>=22 0:00 0 -
1188  {
1189  -85 /*fromYearTiny (2015)*/,
1190  -85 /*toYearTiny (2015)*/,
1191  2 /*inMonth*/,
1192  7 /*onDayOfWeek*/,
1193  22 /*onDayOfMonth*/,
1194  0 /*atTimeCode*/,
1195  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1196  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1197  0 /*letterIndex ("")*/,
1198  },
1199  // Rule Brazil 2016 2019 - Feb Sun>=15 0:00 0 -
1200  {
1201  -84 /*fromYearTiny (2016)*/,
1202  -81 /*toYearTiny (2019)*/,
1203  2 /*inMonth*/,
1204  7 /*onDayOfWeek*/,
1205  15 /*onDayOfMonth*/,
1206  0 /*atTimeCode*/,
1207  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1208  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1209  0 /*letterIndex ("")*/,
1210  },
1211  // Rule Brazil 2018 only - Nov Sun>=1 0:00 1:00 -
1212  {
1213  -82 /*fromYearTiny (2018)*/,
1214  -82 /*toYearTiny (2018)*/,
1215  11 /*inMonth*/,
1216  7 /*onDayOfWeek*/,
1217  1 /*onDayOfMonth*/,
1218  0 /*atTimeCode*/,
1219  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1220  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1221  0 /*letterIndex ("")*/,
1222  },
1223 
1224 };
1225 
1226 const extended::Info::ZonePolicy kZonePolicyBrazil ACE_TIME_PROGMEM = {
1227  kZoneRulesBrazil /*rules*/,
1228  21 /*numRules*/,
1229 };
1230 
1231 //---------------------------------------------------------------------------
1232 // Policy name: CO
1233 // Rules: 1
1234 //---------------------------------------------------------------------------
1235 
1236 static const extended::Info::ZoneRule kZoneRulesCO[] ACE_TIME_PROGMEM = {
1237  // Anchor: Rule CO 1993 only - Feb 6 24:00 0 -
1238  {
1239  -127 /*fromYearTiny (-32767)*/,
1240  -127 /*toYearTiny (-32767)*/,
1241  1 /*inMonth*/,
1242  0 /*onDayOfWeek*/,
1243  1 /*onDayOfMonth*/,
1244  0 /*atTimeCode*/,
1245  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1246  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1247  0 /*letterIndex ("")*/,
1248  },
1249 
1250 };
1251 
1252 const extended::Info::ZonePolicy kZonePolicyCO ACE_TIME_PROGMEM = {
1253  kZoneRulesCO /*rules*/,
1254  1 /*numRules*/,
1255 };
1256 
1257 //---------------------------------------------------------------------------
1258 // Policy name: CR
1259 // Rules: 1
1260 //---------------------------------------------------------------------------
1261 
1262 static const extended::Info::ZoneRule kZoneRulesCR[] ACE_TIME_PROGMEM = {
1263  // Anchor: Rule CR 1992 only - Mar 15 0:00 0 S
1264  {
1265  -127 /*fromYearTiny (-32767)*/,
1266  -127 /*toYearTiny (-32767)*/,
1267  1 /*inMonth*/,
1268  0 /*onDayOfWeek*/,
1269  1 /*onDayOfMonth*/,
1270  0 /*atTimeCode*/,
1271  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1272  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1273  7 /*letterIndex ("S")*/,
1274  },
1275 
1276 };
1277 
1278 const extended::Info::ZonePolicy kZonePolicyCR ACE_TIME_PROGMEM = {
1279  kZoneRulesCR /*rules*/,
1280  1 /*numRules*/,
1281 };
1282 
1283 //---------------------------------------------------------------------------
1284 // Policy name: Canada
1285 // Rules: 6
1286 //---------------------------------------------------------------------------
1287 
1288 static const extended::Info::ZoneRule kZoneRulesCanada[] ACE_TIME_PROGMEM = {
1289  // Anchor: Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
1290  {
1291  -127 /*fromYearTiny (-32767)*/,
1292  -127 /*toYearTiny (-32767)*/,
1293  1 /*inMonth*/,
1294  0 /*onDayOfWeek*/,
1295  1 /*onDayOfMonth*/,
1296  0 /*atTimeCode*/,
1297  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1298  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1299  7 /*letterIndex ("S")*/,
1300  },
1301  // Rule Canada 1974 1986 - Apr lastSun 2:00 1:00 D
1302  {
1303  -126 /*fromYearTiny (1974)*/,
1304  -114 /*toYearTiny (1986)*/,
1305  4 /*inMonth*/,
1306  7 /*onDayOfWeek*/,
1307  0 /*onDayOfMonth*/,
1308  8 /*atTimeCode*/,
1309  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1310  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1311  5 /*letterIndex ("D")*/,
1312  },
1313  // Rule Canada 1974 2006 - Oct lastSun 2:00 0 S
1314  {
1315  -126 /*fromYearTiny (1974)*/,
1316  -94 /*toYearTiny (2006)*/,
1317  10 /*inMonth*/,
1318  7 /*onDayOfWeek*/,
1319  0 /*onDayOfMonth*/,
1320  8 /*atTimeCode*/,
1321  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1322  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1323  7 /*letterIndex ("S")*/,
1324  },
1325  // Rule Canada 1987 2006 - Apr Sun>=1 2:00 1:00 D
1326  {
1327  -113 /*fromYearTiny (1987)*/,
1328  -94 /*toYearTiny (2006)*/,
1329  4 /*inMonth*/,
1330  7 /*onDayOfWeek*/,
1331  1 /*onDayOfMonth*/,
1332  8 /*atTimeCode*/,
1333  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1334  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1335  5 /*letterIndex ("D")*/,
1336  },
1337  // Rule Canada 2007 max - Mar Sun>=8 2:00 1:00 D
1338  {
1339  -93 /*fromYearTiny (2007)*/,
1340  126 /*toYearTiny (32766)*/,
1341  3 /*inMonth*/,
1342  7 /*onDayOfWeek*/,
1343  8 /*onDayOfMonth*/,
1344  8 /*atTimeCode*/,
1345  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1346  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1347  5 /*letterIndex ("D")*/,
1348  },
1349  // Rule Canada 2007 max - Nov Sun>=1 2:00 0 S
1350  {
1351  -93 /*fromYearTiny (2007)*/,
1352  126 /*toYearTiny (32766)*/,
1353  11 /*inMonth*/,
1354  7 /*onDayOfWeek*/,
1355  1 /*onDayOfMonth*/,
1356  8 /*atTimeCode*/,
1357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1358  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1359  7 /*letterIndex ("S")*/,
1360  },
1361 
1362 };
1363 
1364 const extended::Info::ZonePolicy kZonePolicyCanada ACE_TIME_PROGMEM = {
1365  kZoneRulesCanada /*rules*/,
1366  6 /*numRules*/,
1367 };
1368 
1369 //---------------------------------------------------------------------------
1370 // Policy name: Chatham
1371 // Rules: 6
1372 //---------------------------------------------------------------------------
1373 
1374 static const extended::Info::ZoneRule kZoneRulesChatham[] ACE_TIME_PROGMEM = {
1375  // Anchor: Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
1376  {
1377  -127 /*fromYearTiny (-32767)*/,
1378  -127 /*toYearTiny (-32767)*/,
1379  1 /*inMonth*/,
1380  0 /*onDayOfWeek*/,
1381  1 /*onDayOfMonth*/,
1382  0 /*atTimeCode*/,
1383  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1384  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1385  0 /*letterIndex ("")*/,
1386  },
1387  // Rule Chatham 1989 only - Oct Sun>=8 2:45s 1:00 -
1388  {
1389  -111 /*fromYearTiny (1989)*/,
1390  -111 /*toYearTiny (1989)*/,
1391  10 /*inMonth*/,
1392  7 /*onDayOfWeek*/,
1393  8 /*onDayOfMonth*/,
1394  11 /*atTimeCode*/,
1395  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1396  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1397  0 /*letterIndex ("")*/,
1398  },
1399  // Rule Chatham 1990 2006 - Oct Sun>=1 2:45s 1:00 -
1400  {
1401  -110 /*fromYearTiny (1990)*/,
1402  -94 /*toYearTiny (2006)*/,
1403  10 /*inMonth*/,
1404  7 /*onDayOfWeek*/,
1405  1 /*onDayOfMonth*/,
1406  11 /*atTimeCode*/,
1407  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1408  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1409  0 /*letterIndex ("")*/,
1410  },
1411  // Rule Chatham 1990 2007 - Mar Sun>=15 2:45s 0 -
1412  {
1413  -110 /*fromYearTiny (1990)*/,
1414  -93 /*toYearTiny (2007)*/,
1415  3 /*inMonth*/,
1416  7 /*onDayOfWeek*/,
1417  15 /*onDayOfMonth*/,
1418  11 /*atTimeCode*/,
1419  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1420  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1421  0 /*letterIndex ("")*/,
1422  },
1423  // Rule Chatham 2007 max - Sep lastSun 2:45s 1:00 -
1424  {
1425  -93 /*fromYearTiny (2007)*/,
1426  126 /*toYearTiny (32766)*/,
1427  9 /*inMonth*/,
1428  7 /*onDayOfWeek*/,
1429  0 /*onDayOfMonth*/,
1430  11 /*atTimeCode*/,
1431  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1432  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1433  0 /*letterIndex ("")*/,
1434  },
1435  // Rule Chatham 2008 max - Apr Sun>=1 2:45s 0 -
1436  {
1437  -92 /*fromYearTiny (2008)*/,
1438  126 /*toYearTiny (32766)*/,
1439  4 /*inMonth*/,
1440  7 /*onDayOfWeek*/,
1441  1 /*onDayOfMonth*/,
1442  11 /*atTimeCode*/,
1443  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1444  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1445  0 /*letterIndex ("")*/,
1446  },
1447 
1448 };
1449 
1450 const extended::Info::ZonePolicy kZonePolicyChatham ACE_TIME_PROGMEM = {
1451  kZoneRulesChatham /*rules*/,
1452  6 /*numRules*/,
1453 };
1454 
1455 //---------------------------------------------------------------------------
1456 // Policy name: Chile
1457 // Rules: 18
1458 //---------------------------------------------------------------------------
1459 
1460 static const extended::Info::ZoneRule kZoneRulesChile[] ACE_TIME_PROGMEM = {
1461  // Anchor: Rule Chile 1999 only - Apr 4 3:00u 0 -
1462  {
1463  -127 /*fromYearTiny (-32767)*/,
1464  -127 /*toYearTiny (-32767)*/,
1465  1 /*inMonth*/,
1466  0 /*onDayOfWeek*/,
1467  1 /*onDayOfMonth*/,
1468  0 /*atTimeCode*/,
1469  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1470  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1471  0 /*letterIndex ("")*/,
1472  },
1473  // Rule Chile 1998 only - Sep 27 4:00u 1:00 -
1474  {
1475  -102 /*fromYearTiny (1998)*/,
1476  -102 /*toYearTiny (1998)*/,
1477  9 /*inMonth*/,
1478  0 /*onDayOfWeek*/,
1479  27 /*onDayOfMonth*/,
1480  16 /*atTimeCode*/,
1481  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1482  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1483  0 /*letterIndex ("")*/,
1484  },
1485  // Rule Chile 1999 only - Apr 4 3:00u 0 -
1486  {
1487  -101 /*fromYearTiny (1999)*/,
1488  -101 /*toYearTiny (1999)*/,
1489  4 /*inMonth*/,
1490  0 /*onDayOfWeek*/,
1491  4 /*onDayOfMonth*/,
1492  12 /*atTimeCode*/,
1493  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1494  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1495  0 /*letterIndex ("")*/,
1496  },
1497  // Rule Chile 1999 2010 - Oct Sun>=9 4:00u 1:00 -
1498  {
1499  -101 /*fromYearTiny (1999)*/,
1500  -90 /*toYearTiny (2010)*/,
1501  10 /*inMonth*/,
1502  7 /*onDayOfWeek*/,
1503  9 /*onDayOfMonth*/,
1504  16 /*atTimeCode*/,
1505  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1506  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1507  0 /*letterIndex ("")*/,
1508  },
1509  // Rule Chile 2000 2007 - Mar Sun>=9 3:00u 0 -
1510  {
1511  -100 /*fromYearTiny (2000)*/,
1512  -93 /*toYearTiny (2007)*/,
1513  3 /*inMonth*/,
1514  7 /*onDayOfWeek*/,
1515  9 /*onDayOfMonth*/,
1516  12 /*atTimeCode*/,
1517  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1518  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1519  0 /*letterIndex ("")*/,
1520  },
1521  // Rule Chile 2008 only - Mar 30 3:00u 0 -
1522  {
1523  -92 /*fromYearTiny (2008)*/,
1524  -92 /*toYearTiny (2008)*/,
1525  3 /*inMonth*/,
1526  0 /*onDayOfWeek*/,
1527  30 /*onDayOfMonth*/,
1528  12 /*atTimeCode*/,
1529  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1530  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1531  0 /*letterIndex ("")*/,
1532  },
1533  // Rule Chile 2009 only - Mar Sun>=9 3:00u 0 -
1534  {
1535  -91 /*fromYearTiny (2009)*/,
1536  -91 /*toYearTiny (2009)*/,
1537  3 /*inMonth*/,
1538  7 /*onDayOfWeek*/,
1539  9 /*onDayOfMonth*/,
1540  12 /*atTimeCode*/,
1541  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1542  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1543  0 /*letterIndex ("")*/,
1544  },
1545  // Rule Chile 2010 only - Apr Sun>=1 3:00u 0 -
1546  {
1547  -90 /*fromYearTiny (2010)*/,
1548  -90 /*toYearTiny (2010)*/,
1549  4 /*inMonth*/,
1550  7 /*onDayOfWeek*/,
1551  1 /*onDayOfMonth*/,
1552  12 /*atTimeCode*/,
1553  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1554  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1555  0 /*letterIndex ("")*/,
1556  },
1557  // Rule Chile 2011 only - May Sun>=2 3:00u 0 -
1558  {
1559  -89 /*fromYearTiny (2011)*/,
1560  -89 /*toYearTiny (2011)*/,
1561  5 /*inMonth*/,
1562  7 /*onDayOfWeek*/,
1563  2 /*onDayOfMonth*/,
1564  12 /*atTimeCode*/,
1565  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1566  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1567  0 /*letterIndex ("")*/,
1568  },
1569  // Rule Chile 2011 only - Aug Sun>=16 4:00u 1:00 -
1570  {
1571  -89 /*fromYearTiny (2011)*/,
1572  -89 /*toYearTiny (2011)*/,
1573  8 /*inMonth*/,
1574  7 /*onDayOfWeek*/,
1575  16 /*onDayOfMonth*/,
1576  16 /*atTimeCode*/,
1577  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1578  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1579  0 /*letterIndex ("")*/,
1580  },
1581  // Rule Chile 2012 2014 - Apr Sun>=23 3:00u 0 -
1582  {
1583  -88 /*fromYearTiny (2012)*/,
1584  -86 /*toYearTiny (2014)*/,
1585  4 /*inMonth*/,
1586  7 /*onDayOfWeek*/,
1587  23 /*onDayOfMonth*/,
1588  12 /*atTimeCode*/,
1589  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1590  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1591  0 /*letterIndex ("")*/,
1592  },
1593  // Rule Chile 2012 2014 - Sep Sun>=2 4:00u 1:00 -
1594  {
1595  -88 /*fromYearTiny (2012)*/,
1596  -86 /*toYearTiny (2014)*/,
1597  9 /*inMonth*/,
1598  7 /*onDayOfWeek*/,
1599  2 /*onDayOfMonth*/,
1600  16 /*atTimeCode*/,
1601  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1602  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1603  0 /*letterIndex ("")*/,
1604  },
1605  // Rule Chile 2016 2018 - May Sun>=9 3:00u 0 -
1606  {
1607  -84 /*fromYearTiny (2016)*/,
1608  -82 /*toYearTiny (2018)*/,
1609  5 /*inMonth*/,
1610  7 /*onDayOfWeek*/,
1611  9 /*onDayOfMonth*/,
1612  12 /*atTimeCode*/,
1613  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1614  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1615  0 /*letterIndex ("")*/,
1616  },
1617  // Rule Chile 2016 2018 - Aug Sun>=9 4:00u 1:00 -
1618  {
1619  -84 /*fromYearTiny (2016)*/,
1620  -82 /*toYearTiny (2018)*/,
1621  8 /*inMonth*/,
1622  7 /*onDayOfWeek*/,
1623  9 /*onDayOfMonth*/,
1624  16 /*atTimeCode*/,
1625  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1626  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1627  0 /*letterIndex ("")*/,
1628  },
1629  // Rule Chile 2019 max - Apr Sun>=2 3:00u 0 -
1630  {
1631  -81 /*fromYearTiny (2019)*/,
1632  126 /*toYearTiny (32766)*/,
1633  4 /*inMonth*/,
1634  7 /*onDayOfWeek*/,
1635  2 /*onDayOfMonth*/,
1636  12 /*atTimeCode*/,
1637  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1638  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1639  0 /*letterIndex ("")*/,
1640  },
1641  // Rule Chile 2019 2021 - Sep Sun>=2 4:00u 1:00 -
1642  {
1643  -81 /*fromYearTiny (2019)*/,
1644  -79 /*toYearTiny (2021)*/,
1645  9 /*inMonth*/,
1646  7 /*onDayOfWeek*/,
1647  2 /*onDayOfMonth*/,
1648  16 /*atTimeCode*/,
1649  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1650  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1651  0 /*letterIndex ("")*/,
1652  },
1653  // Rule Chile 2022 only - Sep Sun>=9 4:00u 1:00 -
1654  {
1655  -78 /*fromYearTiny (2022)*/,
1656  -78 /*toYearTiny (2022)*/,
1657  9 /*inMonth*/,
1658  7 /*onDayOfWeek*/,
1659  9 /*onDayOfMonth*/,
1660  16 /*atTimeCode*/,
1661  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1662  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1663  0 /*letterIndex ("")*/,
1664  },
1665  // Rule Chile 2023 max - Sep Sun>=2 4:00u 1:00 -
1666  {
1667  -77 /*fromYearTiny (2023)*/,
1668  126 /*toYearTiny (32766)*/,
1669  9 /*inMonth*/,
1670  7 /*onDayOfWeek*/,
1671  2 /*onDayOfMonth*/,
1672  16 /*atTimeCode*/,
1673  32 /*atTimeModifier (kSuffixU + minute=0)*/,
1674  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1675  0 /*letterIndex ("")*/,
1676  },
1677 
1678 };
1679 
1680 const extended::Info::ZonePolicy kZonePolicyChile ACE_TIME_PROGMEM = {
1681  kZoneRulesChile /*rules*/,
1682  18 /*numRules*/,
1683 };
1684 
1685 //---------------------------------------------------------------------------
1686 // Policy name: Cook
1687 // Rules: 1
1688 //---------------------------------------------------------------------------
1689 
1690 static const extended::Info::ZoneRule kZoneRulesCook[] ACE_TIME_PROGMEM = {
1691  // Anchor: Rule Cook 1979 1991 - Mar Sun>=1 0:00 0 -
1692  {
1693  -127 /*fromYearTiny (-32767)*/,
1694  -127 /*toYearTiny (-32767)*/,
1695  1 /*inMonth*/,
1696  0 /*onDayOfWeek*/,
1697  1 /*onDayOfMonth*/,
1698  0 /*atTimeCode*/,
1699  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1700  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1701  0 /*letterIndex ("")*/,
1702  },
1703 
1704 };
1705 
1706 const extended::Info::ZonePolicy kZonePolicyCook ACE_TIME_PROGMEM = {
1707  kZoneRulesCook /*rules*/,
1708  1 /*numRules*/,
1709 };
1710 
1711 //---------------------------------------------------------------------------
1712 // Policy name: Cuba
1713 // Rules: 15
1714 //---------------------------------------------------------------------------
1715 
1716 static const extended::Info::ZoneRule kZoneRulesCuba[] ACE_TIME_PROGMEM = {
1717  // Anchor: Rule Cuba 1997 only - Oct 12 0:00s 0 S
1718  {
1719  -127 /*fromYearTiny (-32767)*/,
1720  -127 /*toYearTiny (-32767)*/,
1721  1 /*inMonth*/,
1722  0 /*onDayOfWeek*/,
1723  1 /*onDayOfMonth*/,
1724  0 /*atTimeCode*/,
1725  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1726  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1727  7 /*letterIndex ("S")*/,
1728  },
1729  // Rule Cuba 1997 only - Oct 12 0:00s 0 S
1730  {
1731  -103 /*fromYearTiny (1997)*/,
1732  -103 /*toYearTiny (1997)*/,
1733  10 /*inMonth*/,
1734  0 /*onDayOfWeek*/,
1735  12 /*onDayOfMonth*/,
1736  0 /*atTimeCode*/,
1737  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1738  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1739  7 /*letterIndex ("S")*/,
1740  },
1741  // Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
1742  {
1743  -102 /*fromYearTiny (1998)*/,
1744  -101 /*toYearTiny (1999)*/,
1745  3 /*inMonth*/,
1746  7 /*onDayOfWeek*/,
1747  0 /*onDayOfMonth*/,
1748  0 /*atTimeCode*/,
1749  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1750  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1751  5 /*letterIndex ("D")*/,
1752  },
1753  // Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
1754  {
1755  -102 /*fromYearTiny (1998)*/,
1756  -97 /*toYearTiny (2003)*/,
1757  10 /*inMonth*/,
1758  7 /*onDayOfWeek*/,
1759  0 /*onDayOfMonth*/,
1760  0 /*atTimeCode*/,
1761  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1762  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1763  7 /*letterIndex ("S")*/,
1764  },
1765  // Rule Cuba 2000 2003 - Apr Sun>=1 0:00s 1:00 D
1766  {
1767  -100 /*fromYearTiny (2000)*/,
1768  -97 /*toYearTiny (2003)*/,
1769  4 /*inMonth*/,
1770  7 /*onDayOfWeek*/,
1771  1 /*onDayOfMonth*/,
1772  0 /*atTimeCode*/,
1773  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1774  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1775  5 /*letterIndex ("D")*/,
1776  },
1777  // Rule Cuba 2004 only - Mar lastSun 0:00s 1:00 D
1778  {
1779  -96 /*fromYearTiny (2004)*/,
1780  -96 /*toYearTiny (2004)*/,
1781  3 /*inMonth*/,
1782  7 /*onDayOfWeek*/,
1783  0 /*onDayOfMonth*/,
1784  0 /*atTimeCode*/,
1785  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1786  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1787  5 /*letterIndex ("D")*/,
1788  },
1789  // Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S
1790  {
1791  -94 /*fromYearTiny (2006)*/,
1792  -90 /*toYearTiny (2010)*/,
1793  10 /*inMonth*/,
1794  7 /*onDayOfWeek*/,
1795  0 /*onDayOfMonth*/,
1796  0 /*atTimeCode*/,
1797  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1798  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1799  7 /*letterIndex ("S")*/,
1800  },
1801  // Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
1802  {
1803  -93 /*fromYearTiny (2007)*/,
1804  -93 /*toYearTiny (2007)*/,
1805  3 /*inMonth*/,
1806  7 /*onDayOfWeek*/,
1807  8 /*onDayOfMonth*/,
1808  0 /*atTimeCode*/,
1809  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1810  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1811  5 /*letterIndex ("D")*/,
1812  },
1813  // Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
1814  {
1815  -92 /*fromYearTiny (2008)*/,
1816  -92 /*toYearTiny (2008)*/,
1817  3 /*inMonth*/,
1818  7 /*onDayOfWeek*/,
1819  15 /*onDayOfMonth*/,
1820  0 /*atTimeCode*/,
1821  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1822  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1823  5 /*letterIndex ("D")*/,
1824  },
1825  // Rule Cuba 2009 2010 - Mar Sun>=8 0:00s 1:00 D
1826  {
1827  -91 /*fromYearTiny (2009)*/,
1828  -90 /*toYearTiny (2010)*/,
1829  3 /*inMonth*/,
1830  7 /*onDayOfWeek*/,
1831  8 /*onDayOfMonth*/,
1832  0 /*atTimeCode*/,
1833  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1834  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1835  5 /*letterIndex ("D")*/,
1836  },
1837  // Rule Cuba 2011 only - Mar Sun>=15 0:00s 1:00 D
1838  {
1839  -89 /*fromYearTiny (2011)*/,
1840  -89 /*toYearTiny (2011)*/,
1841  3 /*inMonth*/,
1842  7 /*onDayOfWeek*/,
1843  15 /*onDayOfMonth*/,
1844  0 /*atTimeCode*/,
1845  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1846  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1847  5 /*letterIndex ("D")*/,
1848  },
1849  // Rule Cuba 2011 only - Nov 13 0:00s 0 S
1850  {
1851  -89 /*fromYearTiny (2011)*/,
1852  -89 /*toYearTiny (2011)*/,
1853  11 /*inMonth*/,
1854  0 /*onDayOfWeek*/,
1855  13 /*onDayOfMonth*/,
1856  0 /*atTimeCode*/,
1857  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1858  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1859  7 /*letterIndex ("S")*/,
1860  },
1861  // Rule Cuba 2012 only - Apr 1 0:00s 1:00 D
1862  {
1863  -88 /*fromYearTiny (2012)*/,
1864  -88 /*toYearTiny (2012)*/,
1865  4 /*inMonth*/,
1866  0 /*onDayOfWeek*/,
1867  1 /*onDayOfMonth*/,
1868  0 /*atTimeCode*/,
1869  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1870  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1871  5 /*letterIndex ("D")*/,
1872  },
1873  // Rule Cuba 2012 max - Nov Sun>=1 0:00s 0 S
1874  {
1875  -88 /*fromYearTiny (2012)*/,
1876  126 /*toYearTiny (32766)*/,
1877  11 /*inMonth*/,
1878  7 /*onDayOfWeek*/,
1879  1 /*onDayOfMonth*/,
1880  0 /*atTimeCode*/,
1881  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1882  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1883  7 /*letterIndex ("S")*/,
1884  },
1885  // Rule Cuba 2013 max - Mar Sun>=8 0:00s 1:00 D
1886  {
1887  -87 /*fromYearTiny (2013)*/,
1888  126 /*toYearTiny (32766)*/,
1889  3 /*inMonth*/,
1890  7 /*onDayOfWeek*/,
1891  8 /*onDayOfMonth*/,
1892  0 /*atTimeCode*/,
1893  16 /*atTimeModifier (kSuffixS + minute=0)*/,
1894  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1895  5 /*letterIndex ("D")*/,
1896  },
1897 
1898 };
1899 
1900 const extended::Info::ZonePolicy kZonePolicyCuba ACE_TIME_PROGMEM = {
1901  kZoneRulesCuba /*rules*/,
1902  15 /*numRules*/,
1903 };
1904 
1905 //---------------------------------------------------------------------------
1906 // Policy name: Dhaka
1907 // Rules: 3
1908 //---------------------------------------------------------------------------
1909 
1910 static const extended::Info::ZoneRule kZoneRulesDhaka[] ACE_TIME_PROGMEM = {
1911  // Anchor: Rule Dhaka 2009 only - Dec 31 24:00 0 -
1912  {
1913  -127 /*fromYearTiny (-32767)*/,
1914  -127 /*toYearTiny (-32767)*/,
1915  1 /*inMonth*/,
1916  0 /*onDayOfWeek*/,
1917  1 /*onDayOfMonth*/,
1918  0 /*atTimeCode*/,
1919  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1920  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1921  0 /*letterIndex ("")*/,
1922  },
1923  // Rule Dhaka 2009 only - Jun 19 23:00 1:00 -
1924  {
1925  -91 /*fromYearTiny (2009)*/,
1926  -91 /*toYearTiny (2009)*/,
1927  6 /*inMonth*/,
1928  0 /*onDayOfWeek*/,
1929  19 /*onDayOfMonth*/,
1930  92 /*atTimeCode*/,
1931  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1932  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1933  0 /*letterIndex ("")*/,
1934  },
1935  // Rule Dhaka 2009 only - Dec 31 24:00 0 -
1936  {
1937  -91 /*fromYearTiny (2009)*/,
1938  -91 /*toYearTiny (2009)*/,
1939  12 /*inMonth*/,
1940  0 /*onDayOfWeek*/,
1941  31 /*onDayOfMonth*/,
1942  96 /*atTimeCode*/,
1943  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1944  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1945  0 /*letterIndex ("")*/,
1946  },
1947 
1948 };
1949 
1950 const extended::Info::ZonePolicy kZonePolicyDhaka ACE_TIME_PROGMEM = {
1951  kZoneRulesDhaka /*rules*/,
1952  3 /*numRules*/,
1953 };
1954 
1955 //---------------------------------------------------------------------------
1956 // Policy name: E-EurAsia
1957 // Rules: 4
1958 //---------------------------------------------------------------------------
1959 
1960 static const extended::Info::ZoneRule kZoneRulesE_EurAsia[] ACE_TIME_PROGMEM = {
1961  // Anchor: Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
1962  {
1963  -127 /*fromYearTiny (-32767)*/,
1964  -127 /*toYearTiny (-32767)*/,
1965  1 /*inMonth*/,
1966  0 /*onDayOfWeek*/,
1967  1 /*onDayOfMonth*/,
1968  0 /*atTimeCode*/,
1969  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1970  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1971  0 /*letterIndex ("")*/,
1972  },
1973  // Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 -
1974  {
1975  -119 /*fromYearTiny (1981)*/,
1976  126 /*toYearTiny (32766)*/,
1977  3 /*inMonth*/,
1978  7 /*onDayOfWeek*/,
1979  0 /*onDayOfMonth*/,
1980  0 /*atTimeCode*/,
1981  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1982  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
1983  0 /*letterIndex ("")*/,
1984  },
1985  // Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 -
1986  {
1987  -121 /*fromYearTiny (1979)*/,
1988  -105 /*toYearTiny (1995)*/,
1989  9 /*inMonth*/,
1990  7 /*onDayOfWeek*/,
1991  0 /*onDayOfMonth*/,
1992  0 /*atTimeCode*/,
1993  0 /*atTimeModifier (kSuffixW + minute=0)*/,
1994  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
1995  0 /*letterIndex ("")*/,
1996  },
1997  // Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 -
1998  {
1999  -104 /*fromYearTiny (1996)*/,
2000  126 /*toYearTiny (32766)*/,
2001  10 /*inMonth*/,
2002  7 /*onDayOfWeek*/,
2003  0 /*onDayOfMonth*/,
2004  0 /*atTimeCode*/,
2005  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2006  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2007  0 /*letterIndex ("")*/,
2008  },
2009 
2010 };
2011 
2012 const extended::Info::ZonePolicy kZonePolicyE_EurAsia ACE_TIME_PROGMEM = {
2013  kZoneRulesE_EurAsia /*rules*/,
2014  4 /*numRules*/,
2015 };
2016 
2017 //---------------------------------------------------------------------------
2018 // Policy name: EU
2019 // Rules: 4
2020 //---------------------------------------------------------------------------
2021 
2022 static const extended::Info::ZoneRule kZoneRulesEU[] ACE_TIME_PROGMEM = {
2023  // Anchor: Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
2024  {
2025  -127 /*fromYearTiny (-32767)*/,
2026  -127 /*toYearTiny (-32767)*/,
2027  1 /*inMonth*/,
2028  0 /*onDayOfWeek*/,
2029  1 /*onDayOfMonth*/,
2030  0 /*atTimeCode*/,
2031  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2032  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2033  0 /*letterIndex ("")*/,
2034  },
2035  // Rule EU 1979 1995 - Sep lastSun 1:00u 0 -
2036  {
2037  -121 /*fromYearTiny (1979)*/,
2038  -105 /*toYearTiny (1995)*/,
2039  9 /*inMonth*/,
2040  7 /*onDayOfWeek*/,
2041  0 /*onDayOfMonth*/,
2042  4 /*atTimeCode*/,
2043  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2044  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2045  0 /*letterIndex ("")*/,
2046  },
2047  // Rule EU 1981 max - Mar lastSun 1:00u 1:00 S
2048  {
2049  -119 /*fromYearTiny (1981)*/,
2050  126 /*toYearTiny (32766)*/,
2051  3 /*inMonth*/,
2052  7 /*onDayOfWeek*/,
2053  0 /*onDayOfMonth*/,
2054  4 /*atTimeCode*/,
2055  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2056  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2057  7 /*letterIndex ("S")*/,
2058  },
2059  // Rule EU 1996 max - Oct lastSun 1:00u 0 -
2060  {
2061  -104 /*fromYearTiny (1996)*/,
2062  126 /*toYearTiny (32766)*/,
2063  10 /*inMonth*/,
2064  7 /*onDayOfWeek*/,
2065  0 /*onDayOfMonth*/,
2066  4 /*atTimeCode*/,
2067  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2068  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2069  0 /*letterIndex ("")*/,
2070  },
2071 
2072 };
2073 
2074 const extended::Info::ZonePolicy kZonePolicyEU ACE_TIME_PROGMEM = {
2075  kZoneRulesEU /*rules*/,
2076  4 /*numRules*/,
2077 };
2078 
2079 //---------------------------------------------------------------------------
2080 // Policy name: EUAsia
2081 // Rules: 4
2082 //---------------------------------------------------------------------------
2083 
2084 static const extended::Info::ZoneRule kZoneRulesEUAsia[] ACE_TIME_PROGMEM = {
2085  // Anchor: Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
2086  {
2087  -127 /*fromYearTiny (-32767)*/,
2088  -127 /*toYearTiny (-32767)*/,
2089  1 /*inMonth*/,
2090  0 /*onDayOfWeek*/,
2091  1 /*onDayOfMonth*/,
2092  0 /*atTimeCode*/,
2093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2095  0 /*letterIndex ("")*/,
2096  },
2097  // Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S
2098  {
2099  -119 /*fromYearTiny (1981)*/,
2100  126 /*toYearTiny (32766)*/,
2101  3 /*inMonth*/,
2102  7 /*onDayOfWeek*/,
2103  0 /*onDayOfMonth*/,
2104  4 /*atTimeCode*/,
2105  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2106  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2107  7 /*letterIndex ("S")*/,
2108  },
2109  // Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 -
2110  {
2111  -121 /*fromYearTiny (1979)*/,
2112  -105 /*toYearTiny (1995)*/,
2113  9 /*inMonth*/,
2114  7 /*onDayOfWeek*/,
2115  0 /*onDayOfMonth*/,
2116  4 /*atTimeCode*/,
2117  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2118  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2119  0 /*letterIndex ("")*/,
2120  },
2121  // Rule EUAsia 1996 max - Oct lastSun 1:00u 0 -
2122  {
2123  -104 /*fromYearTiny (1996)*/,
2124  126 /*toYearTiny (32766)*/,
2125  10 /*inMonth*/,
2126  7 /*onDayOfWeek*/,
2127  0 /*onDayOfMonth*/,
2128  4 /*atTimeCode*/,
2129  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2130  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2131  0 /*letterIndex ("")*/,
2132  },
2133 
2134 };
2135 
2136 const extended::Info::ZonePolicy kZonePolicyEUAsia ACE_TIME_PROGMEM = {
2137  kZoneRulesEUAsia /*rules*/,
2138  4 /*numRules*/,
2139 };
2140 
2141 //---------------------------------------------------------------------------
2142 // Policy name: Ecuador
2143 // Rules: 1
2144 //---------------------------------------------------------------------------
2145 
2146 static const extended::Info::ZoneRule kZoneRulesEcuador[] ACE_TIME_PROGMEM = {
2147  // Anchor: Rule Ecuador 1993 only - Feb 5 0:00 0 -
2148  {
2149  -127 /*fromYearTiny (-32767)*/,
2150  -127 /*toYearTiny (-32767)*/,
2151  1 /*inMonth*/,
2152  0 /*onDayOfWeek*/,
2153  1 /*onDayOfMonth*/,
2154  0 /*atTimeCode*/,
2155  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2156  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2157  0 /*letterIndex ("")*/,
2158  },
2159 
2160 };
2161 
2162 const extended::Info::ZonePolicy kZonePolicyEcuador ACE_TIME_PROGMEM = {
2163  kZoneRulesEcuador /*rules*/,
2164  1 /*numRules*/,
2165 };
2166 
2167 //---------------------------------------------------------------------------
2168 // Policy name: Egypt
2169 // Rules: 17
2170 //---------------------------------------------------------------------------
2171 
2172 static const extended::Info::ZoneRule kZoneRulesEgypt[] ACE_TIME_PROGMEM = {
2173  // Anchor: Rule Egypt 1966 1994 - Oct 1 3:00 0 -
2174  {
2175  -127 /*fromYearTiny (-32767)*/,
2176  -127 /*toYearTiny (-32767)*/,
2177  1 /*inMonth*/,
2178  0 /*onDayOfWeek*/,
2179  1 /*onDayOfMonth*/,
2180  0 /*atTimeCode*/,
2181  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2182  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2183  0 /*letterIndex ("")*/,
2184  },
2185  // Rule Egypt 1966 1994 - Oct 1 3:00 0 -
2186  {
2187  -127 /*fromYearTiny (1966)*/,
2188  -106 /*toYearTiny (1994)*/,
2189  10 /*inMonth*/,
2190  0 /*onDayOfWeek*/,
2191  1 /*onDayOfMonth*/,
2192  12 /*atTimeCode*/,
2193  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2194  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2195  0 /*letterIndex ("")*/,
2196  },
2197  // Rule Egypt 1995 2010 - Apr lastFri 0:00s 1:00 S
2198  {
2199  -105 /*fromYearTiny (1995)*/,
2200  -90 /*toYearTiny (2010)*/,
2201  4 /*inMonth*/,
2202  5 /*onDayOfWeek*/,
2203  0 /*onDayOfMonth*/,
2204  0 /*atTimeCode*/,
2205  16 /*atTimeModifier (kSuffixS + minute=0)*/,
2206  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2207  7 /*letterIndex ("S")*/,
2208  },
2209  // Rule Egypt 1995 2005 - Sep lastThu 24:00 0 -
2210  {
2211  -105 /*fromYearTiny (1995)*/,
2212  -95 /*toYearTiny (2005)*/,
2213  9 /*inMonth*/,
2214  4 /*onDayOfWeek*/,
2215  0 /*onDayOfMonth*/,
2216  96 /*atTimeCode*/,
2217  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2218  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2219  0 /*letterIndex ("")*/,
2220  },
2221  // Rule Egypt 2006 only - Sep 21 24:00 0 -
2222  {
2223  -94 /*fromYearTiny (2006)*/,
2224  -94 /*toYearTiny (2006)*/,
2225  9 /*inMonth*/,
2226  0 /*onDayOfWeek*/,
2227  21 /*onDayOfMonth*/,
2228  96 /*atTimeCode*/,
2229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2231  0 /*letterIndex ("")*/,
2232  },
2233  // Rule Egypt 2007 only - Sep Thu>=1 24:00 0 -
2234  {
2235  -93 /*fromYearTiny (2007)*/,
2236  -93 /*toYearTiny (2007)*/,
2237  9 /*inMonth*/,
2238  4 /*onDayOfWeek*/,
2239  1 /*onDayOfMonth*/,
2240  96 /*atTimeCode*/,
2241  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2242  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2243  0 /*letterIndex ("")*/,
2244  },
2245  // Rule Egypt 2008 only - Aug lastThu 24:00 0 -
2246  {
2247  -92 /*fromYearTiny (2008)*/,
2248  -92 /*toYearTiny (2008)*/,
2249  8 /*inMonth*/,
2250  4 /*onDayOfWeek*/,
2251  0 /*onDayOfMonth*/,
2252  96 /*atTimeCode*/,
2253  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2255  0 /*letterIndex ("")*/,
2256  },
2257  // Rule Egypt 2009 only - Aug 20 24:00 0 -
2258  {
2259  -91 /*fromYearTiny (2009)*/,
2260  -91 /*toYearTiny (2009)*/,
2261  8 /*inMonth*/,
2262  0 /*onDayOfWeek*/,
2263  20 /*onDayOfMonth*/,
2264  96 /*atTimeCode*/,
2265  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2266  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2267  0 /*letterIndex ("")*/,
2268  },
2269  // Rule Egypt 2010 only - Aug 10 24:00 0 -
2270  {
2271  -90 /*fromYearTiny (2010)*/,
2272  -90 /*toYearTiny (2010)*/,
2273  8 /*inMonth*/,
2274  0 /*onDayOfWeek*/,
2275  10 /*onDayOfMonth*/,
2276  96 /*atTimeCode*/,
2277  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2278  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2279  0 /*letterIndex ("")*/,
2280  },
2281  // Rule Egypt 2010 only - Sep 9 24:00 1:00 S
2282  {
2283  -90 /*fromYearTiny (2010)*/,
2284  -90 /*toYearTiny (2010)*/,
2285  9 /*inMonth*/,
2286  0 /*onDayOfWeek*/,
2287  9 /*onDayOfMonth*/,
2288  96 /*atTimeCode*/,
2289  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2290  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2291  7 /*letterIndex ("S")*/,
2292  },
2293  // Rule Egypt 2010 only - Sep lastThu 24:00 0 -
2294  {
2295  -90 /*fromYearTiny (2010)*/,
2296  -90 /*toYearTiny (2010)*/,
2297  9 /*inMonth*/,
2298  4 /*onDayOfWeek*/,
2299  0 /*onDayOfMonth*/,
2300  96 /*atTimeCode*/,
2301  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2302  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2303  0 /*letterIndex ("")*/,
2304  },
2305  // Rule Egypt 2014 only - May 15 24:00 1:00 S
2306  {
2307  -86 /*fromYearTiny (2014)*/,
2308  -86 /*toYearTiny (2014)*/,
2309  5 /*inMonth*/,
2310  0 /*onDayOfWeek*/,
2311  15 /*onDayOfMonth*/,
2312  96 /*atTimeCode*/,
2313  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2314  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2315  7 /*letterIndex ("S")*/,
2316  },
2317  // Rule Egypt 2014 only - Jun 26 24:00 0 -
2318  {
2319  -86 /*fromYearTiny (2014)*/,
2320  -86 /*toYearTiny (2014)*/,
2321  6 /*inMonth*/,
2322  0 /*onDayOfWeek*/,
2323  26 /*onDayOfMonth*/,
2324  96 /*atTimeCode*/,
2325  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2326  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2327  0 /*letterIndex ("")*/,
2328  },
2329  // Rule Egypt 2014 only - Jul 31 24:00 1:00 S
2330  {
2331  -86 /*fromYearTiny (2014)*/,
2332  -86 /*toYearTiny (2014)*/,
2333  7 /*inMonth*/,
2334  0 /*onDayOfWeek*/,
2335  31 /*onDayOfMonth*/,
2336  96 /*atTimeCode*/,
2337  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2338  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2339  7 /*letterIndex ("S")*/,
2340  },
2341  // Rule Egypt 2014 only - Sep lastThu 24:00 0 -
2342  {
2343  -86 /*fromYearTiny (2014)*/,
2344  -86 /*toYearTiny (2014)*/,
2345  9 /*inMonth*/,
2346  4 /*onDayOfWeek*/,
2347  0 /*onDayOfMonth*/,
2348  96 /*atTimeCode*/,
2349  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2350  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2351  0 /*letterIndex ("")*/,
2352  },
2353  // Rule Egypt 2023 max - Apr lastFri 0:00 1:00 S
2354  {
2355  -77 /*fromYearTiny (2023)*/,
2356  126 /*toYearTiny (32766)*/,
2357  4 /*inMonth*/,
2358  5 /*onDayOfWeek*/,
2359  0 /*onDayOfMonth*/,
2360  0 /*atTimeCode*/,
2361  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2362  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2363  7 /*letterIndex ("S")*/,
2364  },
2365  // Rule Egypt 2023 max - Oct lastThu 24:00 0 -
2366  {
2367  -77 /*fromYearTiny (2023)*/,
2368  126 /*toYearTiny (32766)*/,
2369  10 /*inMonth*/,
2370  4 /*onDayOfWeek*/,
2371  0 /*onDayOfMonth*/,
2372  96 /*atTimeCode*/,
2373  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2374  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2375  0 /*letterIndex ("")*/,
2376  },
2377 
2378 };
2379 
2380 const extended::Info::ZonePolicy kZonePolicyEgypt ACE_TIME_PROGMEM = {
2381  kZoneRulesEgypt /*rules*/,
2382  17 /*numRules*/,
2383 };
2384 
2385 //---------------------------------------------------------------------------
2386 // Policy name: Eire
2387 // Rules: 4
2388 //---------------------------------------------------------------------------
2389 
2390 static const extended::Info::ZoneRule kZoneRulesEire[] ACE_TIME_PROGMEM = {
2391  // Anchor: Rule Eire 1981 max - Mar lastSun 1:00u 0 -
2392  {
2393  -127 /*fromYearTiny (-32767)*/,
2394  -127 /*toYearTiny (-32767)*/,
2395  1 /*inMonth*/,
2396  0 /*onDayOfWeek*/,
2397  1 /*onDayOfMonth*/,
2398  0 /*atTimeCode*/,
2399  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2400  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2401  0 /*letterIndex ("")*/,
2402  },
2403  // Rule Eire 1981 max - Mar lastSun 1:00u 0 -
2404  {
2405  -119 /*fromYearTiny (1981)*/,
2406  126 /*toYearTiny (32766)*/,
2407  3 /*inMonth*/,
2408  7 /*onDayOfWeek*/,
2409  0 /*onDayOfMonth*/,
2410  4 /*atTimeCode*/,
2411  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2412  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2413  0 /*letterIndex ("")*/,
2414  },
2415  // Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 -
2416  {
2417  -110 /*fromYearTiny (1990)*/,
2418  -105 /*toYearTiny (1995)*/,
2419  10 /*inMonth*/,
2420  7 /*onDayOfWeek*/,
2421  22 /*onDayOfMonth*/,
2422  4 /*atTimeCode*/,
2423  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2424  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
2425  0 /*letterIndex ("")*/,
2426  },
2427  // Rule Eire 1996 max - Oct lastSun 1:00u -1:00 -
2428  {
2429  -104 /*fromYearTiny (1996)*/,
2430  126 /*toYearTiny (32766)*/,
2431  10 /*inMonth*/,
2432  7 /*onDayOfWeek*/,
2433  0 /*onDayOfMonth*/,
2434  4 /*atTimeCode*/,
2435  32 /*atTimeModifier (kSuffixU + minute=0)*/,
2436  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
2437  0 /*letterIndex ("")*/,
2438  },
2439 
2440 };
2441 
2442 const extended::Info::ZonePolicy kZonePolicyEire ACE_TIME_PROGMEM = {
2443  kZoneRulesEire /*rules*/,
2444  4 /*numRules*/,
2445 };
2446 
2447 //---------------------------------------------------------------------------
2448 // Policy name: Falk
2449 // Rules: 6
2450 //---------------------------------------------------------------------------
2451 
2452 static const extended::Info::ZoneRule kZoneRulesFalk[] ACE_TIME_PROGMEM = {
2453  // Anchor: Rule Falk 1984 1985 - Apr lastSun 0:00 0 -
2454  {
2455  -127 /*fromYearTiny (-32767)*/,
2456  -127 /*toYearTiny (-32767)*/,
2457  1 /*inMonth*/,
2458  0 /*onDayOfWeek*/,
2459  1 /*onDayOfMonth*/,
2460  0 /*atTimeCode*/,
2461  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2462  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2463  0 /*letterIndex ("")*/,
2464  },
2465  // Rule Falk 1984 1985 - Apr lastSun 0:00 0 -
2466  {
2467  -116 /*fromYearTiny (1984)*/,
2468  -115 /*toYearTiny (1985)*/,
2469  4 /*inMonth*/,
2470  7 /*onDayOfWeek*/,
2471  0 /*onDayOfMonth*/,
2472  0 /*atTimeCode*/,
2473  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2474  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2475  0 /*letterIndex ("")*/,
2476  },
2477  // Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 -
2478  {
2479  -115 /*fromYearTiny (1985)*/,
2480  -100 /*toYearTiny (2000)*/,
2481  9 /*inMonth*/,
2482  7 /*onDayOfWeek*/,
2483  9 /*onDayOfMonth*/,
2484  0 /*atTimeCode*/,
2485  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2486  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2487  0 /*letterIndex ("")*/,
2488  },
2489  // Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 -
2490  {
2491  -114 /*fromYearTiny (1986)*/,
2492  -100 /*toYearTiny (2000)*/,
2493  4 /*inMonth*/,
2494  7 /*onDayOfWeek*/,
2495  16 /*onDayOfMonth*/,
2496  0 /*atTimeCode*/,
2497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2498  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2499  0 /*letterIndex ("")*/,
2500  },
2501  // Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 -
2502  {
2503  -99 /*fromYearTiny (2001)*/,
2504  -90 /*toYearTiny (2010)*/,
2505  4 /*inMonth*/,
2506  7 /*onDayOfWeek*/,
2507  15 /*onDayOfMonth*/,
2508  8 /*atTimeCode*/,
2509  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2510  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2511  0 /*letterIndex ("")*/,
2512  },
2513  // Rule Falk 2001 2010 - Sep Sun>=1 2:00 1:00 -
2514  {
2515  -99 /*fromYearTiny (2001)*/,
2516  -90 /*toYearTiny (2010)*/,
2517  9 /*inMonth*/,
2518  7 /*onDayOfWeek*/,
2519  1 /*onDayOfMonth*/,
2520  8 /*atTimeCode*/,
2521  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2522  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2523  0 /*letterIndex ("")*/,
2524  },
2525 
2526 };
2527 
2528 const extended::Info::ZonePolicy kZonePolicyFalk ACE_TIME_PROGMEM = {
2529  kZoneRulesFalk /*rules*/,
2530  6 /*numRules*/,
2531 };
2532 
2533 //---------------------------------------------------------------------------
2534 // Policy name: Fiji
2535 // Rules: 13
2536 //---------------------------------------------------------------------------
2537 
2538 static const extended::Info::ZoneRule kZoneRulesFiji[] ACE_TIME_PROGMEM = {
2539  // Anchor: Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
2540  {
2541  -127 /*fromYearTiny (-32767)*/,
2542  -127 /*toYearTiny (-32767)*/,
2543  1 /*inMonth*/,
2544  0 /*onDayOfWeek*/,
2545  1 /*onDayOfMonth*/,
2546  0 /*atTimeCode*/,
2547  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2548  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2549  0 /*letterIndex ("")*/,
2550  },
2551  // Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 -
2552  {
2553  -102 /*fromYearTiny (1998)*/,
2554  -101 /*toYearTiny (1999)*/,
2555  11 /*inMonth*/,
2556  7 /*onDayOfWeek*/,
2557  1 /*onDayOfMonth*/,
2558  8 /*atTimeCode*/,
2559  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2560  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2561  0 /*letterIndex ("")*/,
2562  },
2563  // Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
2564  {
2565  -101 /*fromYearTiny (1999)*/,
2566  -100 /*toYearTiny (2000)*/,
2567  2 /*inMonth*/,
2568  7 /*onDayOfWeek*/,
2569  0 /*onDayOfMonth*/,
2570  12 /*atTimeCode*/,
2571  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2572  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2573  0 /*letterIndex ("")*/,
2574  },
2575  // Rule Fiji 2009 only - Nov 29 2:00 1:00 -
2576  {
2577  -91 /*fromYearTiny (2009)*/,
2578  -91 /*toYearTiny (2009)*/,
2579  11 /*inMonth*/,
2580  0 /*onDayOfWeek*/,
2581  29 /*onDayOfMonth*/,
2582  8 /*atTimeCode*/,
2583  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2584  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2585  0 /*letterIndex ("")*/,
2586  },
2587  // Rule Fiji 2010 only - Mar lastSun 3:00 0 -
2588  {
2589  -90 /*fromYearTiny (2010)*/,
2590  -90 /*toYearTiny (2010)*/,
2591  3 /*inMonth*/,
2592  7 /*onDayOfWeek*/,
2593  0 /*onDayOfMonth*/,
2594  12 /*atTimeCode*/,
2595  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2596  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2597  0 /*letterIndex ("")*/,
2598  },
2599  // Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 -
2600  {
2601  -90 /*fromYearTiny (2010)*/,
2602  -87 /*toYearTiny (2013)*/,
2603  10 /*inMonth*/,
2604  7 /*onDayOfWeek*/,
2605  21 /*onDayOfMonth*/,
2606  8 /*atTimeCode*/,
2607  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2608  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2609  0 /*letterIndex ("")*/,
2610  },
2611  // Rule Fiji 2011 only - Mar Sun>=1 3:00 0 -
2612  {
2613  -89 /*fromYearTiny (2011)*/,
2614  -89 /*toYearTiny (2011)*/,
2615  3 /*inMonth*/,
2616  7 /*onDayOfWeek*/,
2617  1 /*onDayOfMonth*/,
2618  12 /*atTimeCode*/,
2619  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2620  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2621  0 /*letterIndex ("")*/,
2622  },
2623  // Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 -
2624  {
2625  -88 /*fromYearTiny (2012)*/,
2626  -87 /*toYearTiny (2013)*/,
2627  1 /*inMonth*/,
2628  7 /*onDayOfWeek*/,
2629  18 /*onDayOfMonth*/,
2630  12 /*atTimeCode*/,
2631  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2632  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2633  0 /*letterIndex ("")*/,
2634  },
2635  // Rule Fiji 2014 only - Jan Sun>=18 2:00 0 -
2636  {
2637  -86 /*fromYearTiny (2014)*/,
2638  -86 /*toYearTiny (2014)*/,
2639  1 /*inMonth*/,
2640  7 /*onDayOfWeek*/,
2641  18 /*onDayOfMonth*/,
2642  8 /*atTimeCode*/,
2643  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2644  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2645  0 /*letterIndex ("")*/,
2646  },
2647  // Rule Fiji 2014 2018 - Nov Sun>=1 2:00 1:00 -
2648  {
2649  -86 /*fromYearTiny (2014)*/,
2650  -82 /*toYearTiny (2018)*/,
2651  11 /*inMonth*/,
2652  7 /*onDayOfWeek*/,
2653  1 /*onDayOfMonth*/,
2654  8 /*atTimeCode*/,
2655  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2656  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2657  0 /*letterIndex ("")*/,
2658  },
2659  // Rule Fiji 2015 2021 - Jan Sun>=12 3:00 0 -
2660  {
2661  -85 /*fromYearTiny (2015)*/,
2662  -79 /*toYearTiny (2021)*/,
2663  1 /*inMonth*/,
2664  7 /*onDayOfWeek*/,
2665  12 /*onDayOfMonth*/,
2666  12 /*atTimeCode*/,
2667  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2668  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2669  0 /*letterIndex ("")*/,
2670  },
2671  // Rule Fiji 2019 only - Nov Sun>=8 2:00 1:00 -
2672  {
2673  -81 /*fromYearTiny (2019)*/,
2674  -81 /*toYearTiny (2019)*/,
2675  11 /*inMonth*/,
2676  7 /*onDayOfWeek*/,
2677  8 /*onDayOfMonth*/,
2678  8 /*atTimeCode*/,
2679  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2680  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2681  0 /*letterIndex ("")*/,
2682  },
2683  // Rule Fiji 2020 only - Dec 20 2:00 1:00 -
2684  {
2685  -80 /*fromYearTiny (2020)*/,
2686  -80 /*toYearTiny (2020)*/,
2687  12 /*inMonth*/,
2688  0 /*onDayOfWeek*/,
2689  20 /*onDayOfMonth*/,
2690  8 /*atTimeCode*/,
2691  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2692  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2693  0 /*letterIndex ("")*/,
2694  },
2695 
2696 };
2697 
2698 const extended::Info::ZonePolicy kZonePolicyFiji ACE_TIME_PROGMEM = {
2699  kZoneRulesFiji /*rules*/,
2700  13 /*numRules*/,
2701 };
2702 
2703 //---------------------------------------------------------------------------
2704 // Policy name: Guam
2705 // Rules: 1
2706 //---------------------------------------------------------------------------
2707 
2708 static const extended::Info::ZoneRule kZoneRulesGuam[] ACE_TIME_PROGMEM = {
2709  // Anchor: Rule Guam 1977 only - Aug 28 2:00 0 S
2710  {
2711  -127 /*fromYearTiny (-32767)*/,
2712  -127 /*toYearTiny (-32767)*/,
2713  1 /*inMonth*/,
2714  0 /*onDayOfWeek*/,
2715  1 /*onDayOfMonth*/,
2716  0 /*atTimeCode*/,
2717  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2718  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2719  7 /*letterIndex ("S")*/,
2720  },
2721 
2722 };
2723 
2724 const extended::Info::ZonePolicy kZonePolicyGuam ACE_TIME_PROGMEM = {
2725  kZoneRulesGuam /*rules*/,
2726  1 /*numRules*/,
2727 };
2728 
2729 //---------------------------------------------------------------------------
2730 // Policy name: Guat
2731 // Rules: 4
2732 //---------------------------------------------------------------------------
2733 
2734 static const extended::Info::ZoneRule kZoneRulesGuat[] ACE_TIME_PROGMEM = {
2735  // Anchor: Rule Guat 1991 only - Sep 7 0:00 0 S
2736  {
2737  -127 /*fromYearTiny (-32767)*/,
2738  -127 /*toYearTiny (-32767)*/,
2739  1 /*inMonth*/,
2740  0 /*onDayOfWeek*/,
2741  1 /*onDayOfMonth*/,
2742  0 /*atTimeCode*/,
2743  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2744  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2745  7 /*letterIndex ("S")*/,
2746  },
2747  // Rule Guat 1991 only - Sep 7 0:00 0 S
2748  {
2749  -109 /*fromYearTiny (1991)*/,
2750  -109 /*toYearTiny (1991)*/,
2751  9 /*inMonth*/,
2752  0 /*onDayOfWeek*/,
2753  7 /*onDayOfMonth*/,
2754  0 /*atTimeCode*/,
2755  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2756  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2757  7 /*letterIndex ("S")*/,
2758  },
2759  // Rule Guat 2006 only - Apr 30 0:00 1:00 D
2760  {
2761  -94 /*fromYearTiny (2006)*/,
2762  -94 /*toYearTiny (2006)*/,
2763  4 /*inMonth*/,
2764  0 /*onDayOfWeek*/,
2765  30 /*onDayOfMonth*/,
2766  0 /*atTimeCode*/,
2767  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2768  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2769  5 /*letterIndex ("D")*/,
2770  },
2771  // Rule Guat 2006 only - Oct 1 0:00 0 S
2772  {
2773  -94 /*fromYearTiny (2006)*/,
2774  -94 /*toYearTiny (2006)*/,
2775  10 /*inMonth*/,
2776  0 /*onDayOfWeek*/,
2777  1 /*onDayOfMonth*/,
2778  0 /*atTimeCode*/,
2779  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2780  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2781  7 /*letterIndex ("S")*/,
2782  },
2783 
2784 };
2785 
2786 const extended::Info::ZonePolicy kZonePolicyGuat ACE_TIME_PROGMEM = {
2787  kZoneRulesGuat /*rules*/,
2788  4 /*numRules*/,
2789 };
2790 
2791 //---------------------------------------------------------------------------
2792 // Policy name: HK
2793 // Rules: 1
2794 //---------------------------------------------------------------------------
2795 
2796 static const extended::Info::ZoneRule kZoneRulesHK[] ACE_TIME_PROGMEM = {
2797  // Anchor: Rule HK 1979 only - Oct 21 3:30 0 -
2798  {
2799  -127 /*fromYearTiny (-32767)*/,
2800  -127 /*toYearTiny (-32767)*/,
2801  1 /*inMonth*/,
2802  0 /*onDayOfWeek*/,
2803  1 /*onDayOfMonth*/,
2804  0 /*atTimeCode*/,
2805  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2806  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2807  0 /*letterIndex ("")*/,
2808  },
2809 
2810 };
2811 
2812 const extended::Info::ZonePolicy kZonePolicyHK ACE_TIME_PROGMEM = {
2813  kZoneRulesHK /*rules*/,
2814  1 /*numRules*/,
2815 };
2816 
2817 //---------------------------------------------------------------------------
2818 // Policy name: Haiti
2819 // Rules: 8
2820 //---------------------------------------------------------------------------
2821 
2822 static const extended::Info::ZoneRule kZoneRulesHaiti[] ACE_TIME_PROGMEM = {
2823  // Anchor: Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
2824  {
2825  -127 /*fromYearTiny (-32767)*/,
2826  -127 /*toYearTiny (-32767)*/,
2827  1 /*inMonth*/,
2828  0 /*onDayOfWeek*/,
2829  1 /*onDayOfMonth*/,
2830  0 /*atTimeCode*/,
2831  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2832  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2833  7 /*letterIndex ("S")*/,
2834  },
2835  // Rule Haiti 1988 1997 - Oct lastSun 1:00s 0 S
2836  {
2837  -112 /*fromYearTiny (1988)*/,
2838  -103 /*toYearTiny (1997)*/,
2839  10 /*inMonth*/,
2840  7 /*onDayOfWeek*/,
2841  0 /*onDayOfMonth*/,
2842  4 /*atTimeCode*/,
2843  16 /*atTimeModifier (kSuffixS + minute=0)*/,
2844  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2845  7 /*letterIndex ("S")*/,
2846  },
2847  // Rule Haiti 2005 2006 - Apr Sun>=1 0:00 1:00 D
2848  {
2849  -95 /*fromYearTiny (2005)*/,
2850  -94 /*toYearTiny (2006)*/,
2851  4 /*inMonth*/,
2852  7 /*onDayOfWeek*/,
2853  1 /*onDayOfMonth*/,
2854  0 /*atTimeCode*/,
2855  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2856  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2857  5 /*letterIndex ("D")*/,
2858  },
2859  // Rule Haiti 2005 2006 - Oct lastSun 0:00 0 S
2860  {
2861  -95 /*fromYearTiny (2005)*/,
2862  -94 /*toYearTiny (2006)*/,
2863  10 /*inMonth*/,
2864  7 /*onDayOfWeek*/,
2865  0 /*onDayOfMonth*/,
2866  0 /*atTimeCode*/,
2867  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2868  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2869  7 /*letterIndex ("S")*/,
2870  },
2871  // Rule Haiti 2012 2015 - Mar Sun>=8 2:00 1:00 D
2872  {
2873  -88 /*fromYearTiny (2012)*/,
2874  -85 /*toYearTiny (2015)*/,
2875  3 /*inMonth*/,
2876  7 /*onDayOfWeek*/,
2877  8 /*onDayOfMonth*/,
2878  8 /*atTimeCode*/,
2879  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2880  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2881  5 /*letterIndex ("D")*/,
2882  },
2883  // Rule Haiti 2012 2015 - Nov Sun>=1 2:00 0 S
2884  {
2885  -88 /*fromYearTiny (2012)*/,
2886  -85 /*toYearTiny (2015)*/,
2887  11 /*inMonth*/,
2888  7 /*onDayOfWeek*/,
2889  1 /*onDayOfMonth*/,
2890  8 /*atTimeCode*/,
2891  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2892  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2893  7 /*letterIndex ("S")*/,
2894  },
2895  // Rule Haiti 2017 max - Mar Sun>=8 2:00 1:00 D
2896  {
2897  -83 /*fromYearTiny (2017)*/,
2898  126 /*toYearTiny (32766)*/,
2899  3 /*inMonth*/,
2900  7 /*onDayOfWeek*/,
2901  8 /*onDayOfMonth*/,
2902  8 /*atTimeCode*/,
2903  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2904  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2905  5 /*letterIndex ("D")*/,
2906  },
2907  // Rule Haiti 2017 max - Nov Sun>=1 2:00 0 S
2908  {
2909  -83 /*fromYearTiny (2017)*/,
2910  126 /*toYearTiny (32766)*/,
2911  11 /*inMonth*/,
2912  7 /*onDayOfWeek*/,
2913  1 /*onDayOfMonth*/,
2914  8 /*atTimeCode*/,
2915  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2916  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2917  7 /*letterIndex ("S")*/,
2918  },
2919 
2920 };
2921 
2922 const extended::Info::ZonePolicy kZonePolicyHaiti ACE_TIME_PROGMEM = {
2923  kZoneRulesHaiti /*rules*/,
2924  8 /*numRules*/,
2925 };
2926 
2927 //---------------------------------------------------------------------------
2928 // Policy name: Holiday
2929 // Rules: 1
2930 //---------------------------------------------------------------------------
2931 
2932 static const extended::Info::ZoneRule kZoneRulesHoliday[] ACE_TIME_PROGMEM = {
2933  // Anchor: Rule Holiday 1993 1994 - Mar Sun>=1 2:00s 0 S
2934  {
2935  -127 /*fromYearTiny (-32767)*/,
2936  -127 /*toYearTiny (-32767)*/,
2937  1 /*inMonth*/,
2938  0 /*onDayOfWeek*/,
2939  1 /*onDayOfMonth*/,
2940  0 /*atTimeCode*/,
2941  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2942  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2943  7 /*letterIndex ("S")*/,
2944  },
2945 
2946 };
2947 
2948 const extended::Info::ZonePolicy kZonePolicyHoliday ACE_TIME_PROGMEM = {
2949  kZoneRulesHoliday /*rules*/,
2950  1 /*numRules*/,
2951 };
2952 
2953 //---------------------------------------------------------------------------
2954 // Policy name: Hond
2955 // Rules: 4
2956 //---------------------------------------------------------------------------
2957 
2958 static const extended::Info::ZoneRule kZoneRulesHond[] ACE_TIME_PROGMEM = {
2959  // Anchor: Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
2960  {
2961  -127 /*fromYearTiny (-32767)*/,
2962  -127 /*toYearTiny (-32767)*/,
2963  1 /*inMonth*/,
2964  0 /*onDayOfWeek*/,
2965  1 /*onDayOfMonth*/,
2966  0 /*atTimeCode*/,
2967  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2968  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2969  7 /*letterIndex ("S")*/,
2970  },
2971  // Rule Hond 1987 1988 - Sep lastSun 0:00 0 S
2972  {
2973  -113 /*fromYearTiny (1987)*/,
2974  -112 /*toYearTiny (1988)*/,
2975  9 /*inMonth*/,
2976  7 /*onDayOfWeek*/,
2977  0 /*onDayOfMonth*/,
2978  0 /*atTimeCode*/,
2979  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2980  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
2981  7 /*letterIndex ("S")*/,
2982  },
2983  // Rule Hond 2006 only - May Sun>=1 0:00 1:00 D
2984  {
2985  -94 /*fromYearTiny (2006)*/,
2986  -94 /*toYearTiny (2006)*/,
2987  5 /*inMonth*/,
2988  7 /*onDayOfWeek*/,
2989  1 /*onDayOfMonth*/,
2990  0 /*atTimeCode*/,
2991  0 /*atTimeModifier (kSuffixW + minute=0)*/,
2992  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
2993  5 /*letterIndex ("D")*/,
2994  },
2995  // Rule Hond 2006 only - Aug Mon>=1 0:00 0 S
2996  {
2997  -94 /*fromYearTiny (2006)*/,
2998  -94 /*toYearTiny (2006)*/,
2999  8 /*inMonth*/,
3000  1 /*onDayOfWeek*/,
3001  1 /*onDayOfMonth*/,
3002  0 /*atTimeCode*/,
3003  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3004  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3005  7 /*letterIndex ("S")*/,
3006  },
3007 
3008 };
3009 
3010 const extended::Info::ZonePolicy kZonePolicyHond ACE_TIME_PROGMEM = {
3011  kZoneRulesHond /*rules*/,
3012  4 /*numRules*/,
3013 };
3014 
3015 //---------------------------------------------------------------------------
3016 // Policy name: Iran
3017 // Rules: 28
3018 //---------------------------------------------------------------------------
3019 
3020 static const extended::Info::ZoneRule kZoneRulesIran[] ACE_TIME_PROGMEM = {
3021  // Anchor: Rule Iran 1996 only - Sep 20 24:00 0 -
3022  {
3023  -127 /*fromYearTiny (-32767)*/,
3024  -127 /*toYearTiny (-32767)*/,
3025  1 /*inMonth*/,
3026  0 /*onDayOfWeek*/,
3027  1 /*onDayOfMonth*/,
3028  0 /*atTimeCode*/,
3029  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3030  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3031  0 /*letterIndex ("")*/,
3032  },
3033  // Rule Iran 1996 only - Sep 20 24:00 0 -
3034  {
3035  -104 /*fromYearTiny (1996)*/,
3036  -104 /*toYearTiny (1996)*/,
3037  9 /*inMonth*/,
3038  0 /*onDayOfWeek*/,
3039  20 /*onDayOfMonth*/,
3040  96 /*atTimeCode*/,
3041  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3042  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3043  0 /*letterIndex ("")*/,
3044  },
3045  // Rule Iran 1997 1999 - Mar 21 24:00 1:00 -
3046  {
3047  -103 /*fromYearTiny (1997)*/,
3048  -101 /*toYearTiny (1999)*/,
3049  3 /*inMonth*/,
3050  0 /*onDayOfWeek*/,
3051  21 /*onDayOfMonth*/,
3052  96 /*atTimeCode*/,
3053  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3054  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3055  0 /*letterIndex ("")*/,
3056  },
3057  // Rule Iran 1997 1999 - Sep 21 24:00 0 -
3058  {
3059  -103 /*fromYearTiny (1997)*/,
3060  -101 /*toYearTiny (1999)*/,
3061  9 /*inMonth*/,
3062  0 /*onDayOfWeek*/,
3063  21 /*onDayOfMonth*/,
3064  96 /*atTimeCode*/,
3065  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3066  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3067  0 /*letterIndex ("")*/,
3068  },
3069  // Rule Iran 2000 only - Mar 20 24:00 1:00 -
3070  {
3071  -100 /*fromYearTiny (2000)*/,
3072  -100 /*toYearTiny (2000)*/,
3073  3 /*inMonth*/,
3074  0 /*onDayOfWeek*/,
3075  20 /*onDayOfMonth*/,
3076  96 /*atTimeCode*/,
3077  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3078  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3079  0 /*letterIndex ("")*/,
3080  },
3081  // Rule Iran 2000 only - Sep 20 24:00 0 -
3082  {
3083  -100 /*fromYearTiny (2000)*/,
3084  -100 /*toYearTiny (2000)*/,
3085  9 /*inMonth*/,
3086  0 /*onDayOfWeek*/,
3087  20 /*onDayOfMonth*/,
3088  96 /*atTimeCode*/,
3089  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3090  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3091  0 /*letterIndex ("")*/,
3092  },
3093  // Rule Iran 2001 2003 - Mar 21 24:00 1:00 -
3094  {
3095  -99 /*fromYearTiny (2001)*/,
3096  -97 /*toYearTiny (2003)*/,
3097  3 /*inMonth*/,
3098  0 /*onDayOfWeek*/,
3099  21 /*onDayOfMonth*/,
3100  96 /*atTimeCode*/,
3101  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3102  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3103  0 /*letterIndex ("")*/,
3104  },
3105  // Rule Iran 2001 2003 - Sep 21 24:00 0 -
3106  {
3107  -99 /*fromYearTiny (2001)*/,
3108  -97 /*toYearTiny (2003)*/,
3109  9 /*inMonth*/,
3110  0 /*onDayOfWeek*/,
3111  21 /*onDayOfMonth*/,
3112  96 /*atTimeCode*/,
3113  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3114  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3115  0 /*letterIndex ("")*/,
3116  },
3117  // Rule Iran 2004 only - Mar 20 24:00 1:00 -
3118  {
3119  -96 /*fromYearTiny (2004)*/,
3120  -96 /*toYearTiny (2004)*/,
3121  3 /*inMonth*/,
3122  0 /*onDayOfWeek*/,
3123  20 /*onDayOfMonth*/,
3124  96 /*atTimeCode*/,
3125  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3126  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3127  0 /*letterIndex ("")*/,
3128  },
3129  // Rule Iran 2004 only - Sep 20 24:00 0 -
3130  {
3131  -96 /*fromYearTiny (2004)*/,
3132  -96 /*toYearTiny (2004)*/,
3133  9 /*inMonth*/,
3134  0 /*onDayOfWeek*/,
3135  20 /*onDayOfMonth*/,
3136  96 /*atTimeCode*/,
3137  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3138  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3139  0 /*letterIndex ("")*/,
3140  },
3141  // Rule Iran 2005 only - Mar 21 24:00 1:00 -
3142  {
3143  -95 /*fromYearTiny (2005)*/,
3144  -95 /*toYearTiny (2005)*/,
3145  3 /*inMonth*/,
3146  0 /*onDayOfWeek*/,
3147  21 /*onDayOfMonth*/,
3148  96 /*atTimeCode*/,
3149  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3150  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3151  0 /*letterIndex ("")*/,
3152  },
3153  // Rule Iran 2005 only - Sep 21 24:00 0 -
3154  {
3155  -95 /*fromYearTiny (2005)*/,
3156  -95 /*toYearTiny (2005)*/,
3157  9 /*inMonth*/,
3158  0 /*onDayOfWeek*/,
3159  21 /*onDayOfMonth*/,
3160  96 /*atTimeCode*/,
3161  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3162  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3163  0 /*letterIndex ("")*/,
3164  },
3165  // Rule Iran 2008 only - Mar 20 24:00 1:00 -
3166  {
3167  -92 /*fromYearTiny (2008)*/,
3168  -92 /*toYearTiny (2008)*/,
3169  3 /*inMonth*/,
3170  0 /*onDayOfWeek*/,
3171  20 /*onDayOfMonth*/,
3172  96 /*atTimeCode*/,
3173  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3174  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3175  0 /*letterIndex ("")*/,
3176  },
3177  // Rule Iran 2008 only - Sep 20 24:00 0 -
3178  {
3179  -92 /*fromYearTiny (2008)*/,
3180  -92 /*toYearTiny (2008)*/,
3181  9 /*inMonth*/,
3182  0 /*onDayOfWeek*/,
3183  20 /*onDayOfMonth*/,
3184  96 /*atTimeCode*/,
3185  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3186  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3187  0 /*letterIndex ("")*/,
3188  },
3189  // Rule Iran 2009 2011 - Mar 21 24:00 1:00 -
3190  {
3191  -91 /*fromYearTiny (2009)*/,
3192  -89 /*toYearTiny (2011)*/,
3193  3 /*inMonth*/,
3194  0 /*onDayOfWeek*/,
3195  21 /*onDayOfMonth*/,
3196  96 /*atTimeCode*/,
3197  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3198  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3199  0 /*letterIndex ("")*/,
3200  },
3201  // Rule Iran 2009 2011 - Sep 21 24:00 0 -
3202  {
3203  -91 /*fromYearTiny (2009)*/,
3204  -89 /*toYearTiny (2011)*/,
3205  9 /*inMonth*/,
3206  0 /*onDayOfWeek*/,
3207  21 /*onDayOfMonth*/,
3208  96 /*atTimeCode*/,
3209  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3210  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3211  0 /*letterIndex ("")*/,
3212  },
3213  // Rule Iran 2012 only - Mar 20 24:00 1:00 -
3214  {
3215  -88 /*fromYearTiny (2012)*/,
3216  -88 /*toYearTiny (2012)*/,
3217  3 /*inMonth*/,
3218  0 /*onDayOfWeek*/,
3219  20 /*onDayOfMonth*/,
3220  96 /*atTimeCode*/,
3221  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3222  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3223  0 /*letterIndex ("")*/,
3224  },
3225  // Rule Iran 2012 only - Sep 20 24:00 0 -
3226  {
3227  -88 /*fromYearTiny (2012)*/,
3228  -88 /*toYearTiny (2012)*/,
3229  9 /*inMonth*/,
3230  0 /*onDayOfWeek*/,
3231  20 /*onDayOfMonth*/,
3232  96 /*atTimeCode*/,
3233  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3234  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3235  0 /*letterIndex ("")*/,
3236  },
3237  // Rule Iran 2013 2015 - Mar 21 24:00 1:00 -
3238  {
3239  -87 /*fromYearTiny (2013)*/,
3240  -85 /*toYearTiny (2015)*/,
3241  3 /*inMonth*/,
3242  0 /*onDayOfWeek*/,
3243  21 /*onDayOfMonth*/,
3244  96 /*atTimeCode*/,
3245  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3246  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3247  0 /*letterIndex ("")*/,
3248  },
3249  // Rule Iran 2013 2015 - Sep 21 24:00 0 -
3250  {
3251  -87 /*fromYearTiny (2013)*/,
3252  -85 /*toYearTiny (2015)*/,
3253  9 /*inMonth*/,
3254  0 /*onDayOfWeek*/,
3255  21 /*onDayOfMonth*/,
3256  96 /*atTimeCode*/,
3257  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3258  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3259  0 /*letterIndex ("")*/,
3260  },
3261  // Rule Iran 2016 only - Mar 20 24:00 1:00 -
3262  {
3263  -84 /*fromYearTiny (2016)*/,
3264  -84 /*toYearTiny (2016)*/,
3265  3 /*inMonth*/,
3266  0 /*onDayOfWeek*/,
3267  20 /*onDayOfMonth*/,
3268  96 /*atTimeCode*/,
3269  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3270  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3271  0 /*letterIndex ("")*/,
3272  },
3273  // Rule Iran 2016 only - Sep 20 24:00 0 -
3274  {
3275  -84 /*fromYearTiny (2016)*/,
3276  -84 /*toYearTiny (2016)*/,
3277  9 /*inMonth*/,
3278  0 /*onDayOfWeek*/,
3279  20 /*onDayOfMonth*/,
3280  96 /*atTimeCode*/,
3281  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3282  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3283  0 /*letterIndex ("")*/,
3284  },
3285  // Rule Iran 2017 2019 - Mar 21 24:00 1:00 -
3286  {
3287  -83 /*fromYearTiny (2017)*/,
3288  -81 /*toYearTiny (2019)*/,
3289  3 /*inMonth*/,
3290  0 /*onDayOfWeek*/,
3291  21 /*onDayOfMonth*/,
3292  96 /*atTimeCode*/,
3293  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3294  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3295  0 /*letterIndex ("")*/,
3296  },
3297  // Rule Iran 2017 2019 - Sep 21 24:00 0 -
3298  {
3299  -83 /*fromYearTiny (2017)*/,
3300  -81 /*toYearTiny (2019)*/,
3301  9 /*inMonth*/,
3302  0 /*onDayOfWeek*/,
3303  21 /*onDayOfMonth*/,
3304  96 /*atTimeCode*/,
3305  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3306  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3307  0 /*letterIndex ("")*/,
3308  },
3309  // Rule Iran 2020 only - Mar 20 24:00 1:00 -
3310  {
3311  -80 /*fromYearTiny (2020)*/,
3312  -80 /*toYearTiny (2020)*/,
3313  3 /*inMonth*/,
3314  0 /*onDayOfWeek*/,
3315  20 /*onDayOfMonth*/,
3316  96 /*atTimeCode*/,
3317  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3318  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3319  0 /*letterIndex ("")*/,
3320  },
3321  // Rule Iran 2020 only - Sep 20 24:00 0 -
3322  {
3323  -80 /*fromYearTiny (2020)*/,
3324  -80 /*toYearTiny (2020)*/,
3325  9 /*inMonth*/,
3326  0 /*onDayOfWeek*/,
3327  20 /*onDayOfMonth*/,
3328  96 /*atTimeCode*/,
3329  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3330  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3331  0 /*letterIndex ("")*/,
3332  },
3333  // Rule Iran 2021 2022 - Mar 21 24:00 1:00 -
3334  {
3335  -79 /*fromYearTiny (2021)*/,
3336  -78 /*toYearTiny (2022)*/,
3337  3 /*inMonth*/,
3338  0 /*onDayOfWeek*/,
3339  21 /*onDayOfMonth*/,
3340  96 /*atTimeCode*/,
3341  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3342  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3343  0 /*letterIndex ("")*/,
3344  },
3345  // Rule Iran 2021 2022 - Sep 21 24:00 0 -
3346  {
3347  -79 /*fromYearTiny (2021)*/,
3348  -78 /*toYearTiny (2022)*/,
3349  9 /*inMonth*/,
3350  0 /*onDayOfWeek*/,
3351  21 /*onDayOfMonth*/,
3352  96 /*atTimeCode*/,
3353  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3354  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3355  0 /*letterIndex ("")*/,
3356  },
3357 
3358 };
3359 
3360 const extended::Info::ZonePolicy kZonePolicyIran ACE_TIME_PROGMEM = {
3361  kZoneRulesIran /*rules*/,
3362  28 /*numRules*/,
3363 };
3364 
3365 //---------------------------------------------------------------------------
3366 // Policy name: Iraq
3367 // Rules: 4
3368 //---------------------------------------------------------------------------
3369 
3370 static const extended::Info::ZoneRule kZoneRulesIraq[] ACE_TIME_PROGMEM = {
3371  // Anchor: Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
3372  {
3373  -127 /*fromYearTiny (-32767)*/,
3374  -127 /*toYearTiny (-32767)*/,
3375  1 /*inMonth*/,
3376  0 /*onDayOfWeek*/,
3377  1 /*onDayOfMonth*/,
3378  0 /*atTimeCode*/,
3379  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3380  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3381  0 /*letterIndex ("")*/,
3382  },
3383  // Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 -
3384  {
3385  -115 /*fromYearTiny (1985)*/,
3386  -110 /*toYearTiny (1990)*/,
3387  9 /*inMonth*/,
3388  7 /*onDayOfWeek*/,
3389  0 /*onDayOfMonth*/,
3390  4 /*atTimeCode*/,
3391  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3392  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3393  0 /*letterIndex ("")*/,
3394  },
3395  // Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 -
3396  {
3397  -109 /*fromYearTiny (1991)*/,
3398  -93 /*toYearTiny (2007)*/,
3399  4 /*inMonth*/,
3400  0 /*onDayOfWeek*/,
3401  1 /*onDayOfMonth*/,
3402  12 /*atTimeCode*/,
3403  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3404  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3405  0 /*letterIndex ("")*/,
3406  },
3407  // Rule Iraq 1991 2007 - Oct 1 3:00s 0 -
3408  {
3409  -109 /*fromYearTiny (1991)*/,
3410  -93 /*toYearTiny (2007)*/,
3411  10 /*inMonth*/,
3412  0 /*onDayOfWeek*/,
3413  1 /*onDayOfMonth*/,
3414  12 /*atTimeCode*/,
3415  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3416  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3417  0 /*letterIndex ("")*/,
3418  },
3419 
3420 };
3421 
3422 const extended::Info::ZonePolicy kZonePolicyIraq ACE_TIME_PROGMEM = {
3423  kZoneRulesIraq /*rules*/,
3424  4 /*numRules*/,
3425 };
3426 
3427 //---------------------------------------------------------------------------
3428 // Policy name: Japan
3429 // Rules: 1
3430 //---------------------------------------------------------------------------
3431 
3432 static const extended::Info::ZoneRule kZoneRulesJapan[] ACE_TIME_PROGMEM = {
3433  // Anchor: Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S
3434  {
3435  -127 /*fromYearTiny (-32767)*/,
3436  -127 /*toYearTiny (-32767)*/,
3437  1 /*inMonth*/,
3438  0 /*onDayOfWeek*/,
3439  1 /*onDayOfMonth*/,
3440  0 /*atTimeCode*/,
3441  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3442  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3443  7 /*letterIndex ("S")*/,
3444  },
3445 
3446 };
3447 
3448 const extended::Info::ZonePolicy kZonePolicyJapan ACE_TIME_PROGMEM = {
3449  kZoneRulesJapan /*rules*/,
3450  1 /*numRules*/,
3451 };
3452 
3453 //---------------------------------------------------------------------------
3454 // Policy name: Jordan
3455 // Rules: 14
3456 //---------------------------------------------------------------------------
3457 
3458 static const extended::Info::ZoneRule kZoneRulesJordan[] ACE_TIME_PROGMEM = {
3459  // Anchor: Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
3460  {
3461  -127 /*fromYearTiny (-32767)*/,
3462  -127 /*toYearTiny (-32767)*/,
3463  1 /*inMonth*/,
3464  0 /*onDayOfWeek*/,
3465  1 /*onDayOfMonth*/,
3466  0 /*atTimeCode*/,
3467  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3468  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3469  0 /*letterIndex ("")*/,
3470  },
3471  // Rule Jordan 1995 1998 - Sep Fri>=15 0:00s 0 -
3472  {
3473  -105 /*fromYearTiny (1995)*/,
3474  -102 /*toYearTiny (1998)*/,
3475  9 /*inMonth*/,
3476  5 /*onDayOfWeek*/,
3477  15 /*onDayOfMonth*/,
3478  0 /*atTimeCode*/,
3479  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3480  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3481  0 /*letterIndex ("")*/,
3482  },
3483  // Rule Jordan 1999 only - Jul 1 0:00s 1:00 S
3484  {
3485  -101 /*fromYearTiny (1999)*/,
3486  -101 /*toYearTiny (1999)*/,
3487  7 /*inMonth*/,
3488  0 /*onDayOfWeek*/,
3489  1 /*onDayOfMonth*/,
3490  0 /*atTimeCode*/,
3491  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3492  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3493  7 /*letterIndex ("S")*/,
3494  },
3495  // Rule Jordan 1999 2002 - Sep lastFri 0:00s 0 -
3496  {
3497  -101 /*fromYearTiny (1999)*/,
3498  -98 /*toYearTiny (2002)*/,
3499  9 /*inMonth*/,
3500  5 /*onDayOfWeek*/,
3501  0 /*onDayOfMonth*/,
3502  0 /*atTimeCode*/,
3503  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3504  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3505  0 /*letterIndex ("")*/,
3506  },
3507  // Rule Jordan 2000 2001 - Mar lastThu 0:00s 1:00 S
3508  {
3509  -100 /*fromYearTiny (2000)*/,
3510  -99 /*toYearTiny (2001)*/,
3511  3 /*inMonth*/,
3512  4 /*onDayOfWeek*/,
3513  0 /*onDayOfMonth*/,
3514  0 /*atTimeCode*/,
3515  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3516  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3517  7 /*letterIndex ("S")*/,
3518  },
3519  // Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S
3520  {
3521  -98 /*fromYearTiny (2002)*/,
3522  -88 /*toYearTiny (2012)*/,
3523  3 /*inMonth*/,
3524  4 /*onDayOfWeek*/,
3525  0 /*onDayOfMonth*/,
3526  96 /*atTimeCode*/,
3527  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3528  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3529  7 /*letterIndex ("S")*/,
3530  },
3531  // Rule Jordan 2003 only - Oct 24 0:00s 0 -
3532  {
3533  -97 /*fromYearTiny (2003)*/,
3534  -97 /*toYearTiny (2003)*/,
3535  10 /*inMonth*/,
3536  0 /*onDayOfWeek*/,
3537  24 /*onDayOfMonth*/,
3538  0 /*atTimeCode*/,
3539  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3540  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3541  0 /*letterIndex ("")*/,
3542  },
3543  // Rule Jordan 2004 only - Oct 15 0:00s 0 -
3544  {
3545  -96 /*fromYearTiny (2004)*/,
3546  -96 /*toYearTiny (2004)*/,
3547  10 /*inMonth*/,
3548  0 /*onDayOfWeek*/,
3549  15 /*onDayOfMonth*/,
3550  0 /*atTimeCode*/,
3551  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3552  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3553  0 /*letterIndex ("")*/,
3554  },
3555  // Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
3556  {
3557  -95 /*fromYearTiny (2005)*/,
3558  -95 /*toYearTiny (2005)*/,
3559  9 /*inMonth*/,
3560  5 /*onDayOfWeek*/,
3561  0 /*onDayOfMonth*/,
3562  0 /*atTimeCode*/,
3563  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3564  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3565  0 /*letterIndex ("")*/,
3566  },
3567  // Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
3568  {
3569  -94 /*fromYearTiny (2006)*/,
3570  -89 /*toYearTiny (2011)*/,
3571  10 /*inMonth*/,
3572  5 /*onDayOfWeek*/,
3573  0 /*onDayOfMonth*/,
3574  0 /*atTimeCode*/,
3575  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3576  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3577  0 /*letterIndex ("")*/,
3578  },
3579  // Rule Jordan 2013 only - Dec 20 0:00 0 -
3580  {
3581  -87 /*fromYearTiny (2013)*/,
3582  -87 /*toYearTiny (2013)*/,
3583  12 /*inMonth*/,
3584  0 /*onDayOfWeek*/,
3585  20 /*onDayOfMonth*/,
3586  0 /*atTimeCode*/,
3587  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3588  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3589  0 /*letterIndex ("")*/,
3590  },
3591  // Rule Jordan 2014 2021 - Mar lastThu 24:00 1:00 S
3592  {
3593  -86 /*fromYearTiny (2014)*/,
3594  -79 /*toYearTiny (2021)*/,
3595  3 /*inMonth*/,
3596  4 /*onDayOfWeek*/,
3597  0 /*onDayOfMonth*/,
3598  96 /*atTimeCode*/,
3599  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3600  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3601  7 /*letterIndex ("S")*/,
3602  },
3603  // Rule Jordan 2014 2022 - Oct lastFri 0:00s 0 -
3604  {
3605  -86 /*fromYearTiny (2014)*/,
3606  -78 /*toYearTiny (2022)*/,
3607  10 /*inMonth*/,
3608  5 /*onDayOfWeek*/,
3609  0 /*onDayOfMonth*/,
3610  0 /*atTimeCode*/,
3611  16 /*atTimeModifier (kSuffixS + minute=0)*/,
3612  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3613  0 /*letterIndex ("")*/,
3614  },
3615  // Rule Jordan 2022 only - Feb lastThu 24:00 1:00 S
3616  {
3617  -78 /*fromYearTiny (2022)*/,
3618  -78 /*toYearTiny (2022)*/,
3619  2 /*inMonth*/,
3620  4 /*onDayOfWeek*/,
3621  0 /*onDayOfMonth*/,
3622  96 /*atTimeCode*/,
3623  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3624  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3625  7 /*letterIndex ("S")*/,
3626  },
3627 
3628 };
3629 
3630 const extended::Info::ZonePolicy kZonePolicyJordan ACE_TIME_PROGMEM = {
3631  kZoneRulesJordan /*rules*/,
3632  14 /*numRules*/,
3633 };
3634 
3635 //---------------------------------------------------------------------------
3636 // Policy name: Kyrgyz
3637 // Rules: 4
3638 //---------------------------------------------------------------------------
3639 
3640 static const extended::Info::ZoneRule kZoneRulesKyrgyz[] ACE_TIME_PROGMEM = {
3641  // Anchor: Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
3642  {
3643  -127 /*fromYearTiny (-32767)*/,
3644  -127 /*toYearTiny (-32767)*/,
3645  1 /*inMonth*/,
3646  0 /*onDayOfWeek*/,
3647  1 /*onDayOfMonth*/,
3648  0 /*atTimeCode*/,
3649  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3650  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3651  0 /*letterIndex ("")*/,
3652  },
3653  // Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 -
3654  {
3655  -108 /*fromYearTiny (1992)*/,
3656  -104 /*toYearTiny (1996)*/,
3657  9 /*inMonth*/,
3658  7 /*onDayOfWeek*/,
3659  0 /*onDayOfMonth*/,
3660  0 /*atTimeCode*/,
3661  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3662  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3663  0 /*letterIndex ("")*/,
3664  },
3665  // Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 -
3666  {
3667  -103 /*fromYearTiny (1997)*/,
3668  -95 /*toYearTiny (2005)*/,
3669  3 /*inMonth*/,
3670  7 /*onDayOfWeek*/,
3671  0 /*onDayOfMonth*/,
3672  10 /*atTimeCode*/,
3673  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3674  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3675  0 /*letterIndex ("")*/,
3676  },
3677  // Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 -
3678  {
3679  -103 /*fromYearTiny (1997)*/,
3680  -96 /*toYearTiny (2004)*/,
3681  10 /*inMonth*/,
3682  7 /*onDayOfWeek*/,
3683  0 /*onDayOfMonth*/,
3684  10 /*atTimeCode*/,
3685  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3686  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3687  0 /*letterIndex ("")*/,
3688  },
3689 
3690 };
3691 
3692 const extended::Info::ZonePolicy kZonePolicyKyrgyz ACE_TIME_PROGMEM = {
3693  kZoneRulesKyrgyz /*rules*/,
3694  4 /*numRules*/,
3695 };
3696 
3697 //---------------------------------------------------------------------------
3698 // Policy name: LH
3699 // Rules: 10
3700 //---------------------------------------------------------------------------
3701 
3702 static const extended::Info::ZoneRule kZoneRulesLH[] ACE_TIME_PROGMEM = {
3703  // Anchor: Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
3704  {
3705  -127 /*fromYearTiny (-32767)*/,
3706  -127 /*toYearTiny (-32767)*/,
3707  1 /*inMonth*/,
3708  0 /*onDayOfWeek*/,
3709  1 /*onDayOfMonth*/,
3710  0 /*atTimeCode*/,
3711  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3712  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3713  0 /*letterIndex ("")*/,
3714  },
3715  // Rule LH 1987 1999 - Oct lastSun 2:00 0:30 -
3716  {
3717  -113 /*fromYearTiny (1987)*/,
3718  -101 /*toYearTiny (1999)*/,
3719  10 /*inMonth*/,
3720  7 /*onDayOfWeek*/,
3721  0 /*onDayOfMonth*/,
3722  8 /*atTimeCode*/,
3723  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3724  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
3725  0 /*letterIndex ("")*/,
3726  },
3727  // Rule LH 1990 1995 - Mar Sun>=1 2:00 0 -
3728  {
3729  -110 /*fromYearTiny (1990)*/,
3730  -105 /*toYearTiny (1995)*/,
3731  3 /*inMonth*/,
3732  7 /*onDayOfWeek*/,
3733  1 /*onDayOfMonth*/,
3734  8 /*atTimeCode*/,
3735  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3736  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3737  0 /*letterIndex ("")*/,
3738  },
3739  // Rule LH 1996 2005 - Mar lastSun 2:00 0 -
3740  {
3741  -104 /*fromYearTiny (1996)*/,
3742  -95 /*toYearTiny (2005)*/,
3743  3 /*inMonth*/,
3744  7 /*onDayOfWeek*/,
3745  0 /*onDayOfMonth*/,
3746  8 /*atTimeCode*/,
3747  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3748  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3749  0 /*letterIndex ("")*/,
3750  },
3751  // Rule LH 2000 only - Aug lastSun 2:00 0:30 -
3752  {
3753  -100 /*fromYearTiny (2000)*/,
3754  -100 /*toYearTiny (2000)*/,
3755  8 /*inMonth*/,
3756  7 /*onDayOfWeek*/,
3757  0 /*onDayOfMonth*/,
3758  8 /*atTimeCode*/,
3759  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3760  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
3761  0 /*letterIndex ("")*/,
3762  },
3763  // Rule LH 2001 2007 - Oct lastSun 2:00 0:30 -
3764  {
3765  -99 /*fromYearTiny (2001)*/,
3766  -93 /*toYearTiny (2007)*/,
3767  10 /*inMonth*/,
3768  7 /*onDayOfWeek*/,
3769  0 /*onDayOfMonth*/,
3770  8 /*atTimeCode*/,
3771  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3772  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
3773  0 /*letterIndex ("")*/,
3774  },
3775  // Rule LH 2006 only - Apr Sun>=1 2:00 0 -
3776  {
3777  -94 /*fromYearTiny (2006)*/,
3778  -94 /*toYearTiny (2006)*/,
3779  4 /*inMonth*/,
3780  7 /*onDayOfWeek*/,
3781  1 /*onDayOfMonth*/,
3782  8 /*atTimeCode*/,
3783  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3784  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3785  0 /*letterIndex ("")*/,
3786  },
3787  // Rule LH 2007 only - Mar lastSun 2:00 0 -
3788  {
3789  -93 /*fromYearTiny (2007)*/,
3790  -93 /*toYearTiny (2007)*/,
3791  3 /*inMonth*/,
3792  7 /*onDayOfWeek*/,
3793  0 /*onDayOfMonth*/,
3794  8 /*atTimeCode*/,
3795  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3796  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3797  0 /*letterIndex ("")*/,
3798  },
3799  // Rule LH 2008 max - Apr Sun>=1 2:00 0 -
3800  {
3801  -92 /*fromYearTiny (2008)*/,
3802  126 /*toYearTiny (32766)*/,
3803  4 /*inMonth*/,
3804  7 /*onDayOfWeek*/,
3805  1 /*onDayOfMonth*/,
3806  8 /*atTimeCode*/,
3807  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3808  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3809  0 /*letterIndex ("")*/,
3810  },
3811  // Rule LH 2008 max - Oct Sun>=1 2:00 0:30 -
3812  {
3813  -92 /*fromYearTiny (2008)*/,
3814  126 /*toYearTiny (32766)*/,
3815  10 /*inMonth*/,
3816  7 /*onDayOfWeek*/,
3817  1 /*onDayOfMonth*/,
3818  8 /*atTimeCode*/,
3819  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3820  6 /*deltaCode ((deltaMinutes=30)/15 + 4)*/,
3821  0 /*letterIndex ("")*/,
3822  },
3823 
3824 };
3825 
3826 const extended::Info::ZonePolicy kZonePolicyLH ACE_TIME_PROGMEM = {
3827  kZoneRulesLH /*rules*/,
3828  10 /*numRules*/,
3829 };
3830 
3831 //---------------------------------------------------------------------------
3832 // Policy name: Lebanon
3833 // Rules: 4
3834 //---------------------------------------------------------------------------
3835 
3836 static const extended::Info::ZoneRule kZoneRulesLebanon[] ACE_TIME_PROGMEM = {
3837  // Anchor: Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
3838  {
3839  -127 /*fromYearTiny (-32767)*/,
3840  -127 /*toYearTiny (-32767)*/,
3841  1 /*inMonth*/,
3842  0 /*onDayOfWeek*/,
3843  1 /*onDayOfMonth*/,
3844  0 /*atTimeCode*/,
3845  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3846  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3847  0 /*letterIndex ("")*/,
3848  },
3849  // Rule Lebanon 1993 max - Mar lastSun 0:00 1:00 S
3850  {
3851  -107 /*fromYearTiny (1993)*/,
3852  126 /*toYearTiny (32766)*/,
3853  3 /*inMonth*/,
3854  7 /*onDayOfWeek*/,
3855  0 /*onDayOfMonth*/,
3856  0 /*atTimeCode*/,
3857  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3858  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3859  7 /*letterIndex ("S")*/,
3860  },
3861  // Rule Lebanon 1993 1998 - Sep lastSun 0:00 0 -
3862  {
3863  -107 /*fromYearTiny (1993)*/,
3864  -102 /*toYearTiny (1998)*/,
3865  9 /*inMonth*/,
3866  7 /*onDayOfWeek*/,
3867  0 /*onDayOfMonth*/,
3868  0 /*atTimeCode*/,
3869  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3870  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3871  0 /*letterIndex ("")*/,
3872  },
3873  // Rule Lebanon 1999 max - Oct lastSun 0:00 0 -
3874  {
3875  -101 /*fromYearTiny (1999)*/,
3876  126 /*toYearTiny (32766)*/,
3877  10 /*inMonth*/,
3878  7 /*onDayOfWeek*/,
3879  0 /*onDayOfMonth*/,
3880  0 /*atTimeCode*/,
3881  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3882  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3883  0 /*letterIndex ("")*/,
3884  },
3885 
3886 };
3887 
3888 const extended::Info::ZonePolicy kZonePolicyLebanon ACE_TIME_PROGMEM = {
3889  kZoneRulesLebanon /*rules*/,
3890  4 /*numRules*/,
3891 };
3892 
3893 //---------------------------------------------------------------------------
3894 // Policy name: Libya
3895 // Rules: 4
3896 //---------------------------------------------------------------------------
3897 
3898 static const extended::Info::ZoneRule kZoneRulesLibya[] ACE_TIME_PROGMEM = {
3899  // Anchor: Rule Libya 1997 only - Oct 4 0:00 0 -
3900  {
3901  -127 /*fromYearTiny (-32767)*/,
3902  -127 /*toYearTiny (-32767)*/,
3903  1 /*inMonth*/,
3904  0 /*onDayOfWeek*/,
3905  1 /*onDayOfMonth*/,
3906  0 /*atTimeCode*/,
3907  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3908  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3909  0 /*letterIndex ("")*/,
3910  },
3911  // Rule Libya 1997 only - Oct 4 0:00 0 -
3912  {
3913  -103 /*fromYearTiny (1997)*/,
3914  -103 /*toYearTiny (1997)*/,
3915  10 /*inMonth*/,
3916  0 /*onDayOfWeek*/,
3917  4 /*onDayOfMonth*/,
3918  0 /*atTimeCode*/,
3919  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3920  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3921  0 /*letterIndex ("")*/,
3922  },
3923  // Rule Libya 2013 only - Mar lastFri 1:00 1:00 S
3924  {
3925  -87 /*fromYearTiny (2013)*/,
3926  -87 /*toYearTiny (2013)*/,
3927  3 /*inMonth*/,
3928  5 /*onDayOfWeek*/,
3929  0 /*onDayOfMonth*/,
3930  4 /*atTimeCode*/,
3931  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3932  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
3933  7 /*letterIndex ("S")*/,
3934  },
3935  // Rule Libya 2013 only - Oct lastFri 2:00 0 -
3936  {
3937  -87 /*fromYearTiny (2013)*/,
3938  -87 /*toYearTiny (2013)*/,
3939  10 /*inMonth*/,
3940  5 /*onDayOfWeek*/,
3941  0 /*onDayOfMonth*/,
3942  8 /*atTimeCode*/,
3943  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3944  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3945  0 /*letterIndex ("")*/,
3946  },
3947 
3948 };
3949 
3950 const extended::Info::ZonePolicy kZonePolicyLibya ACE_TIME_PROGMEM = {
3951  kZoneRulesLibya /*rules*/,
3952  4 /*numRules*/,
3953 };
3954 
3955 //---------------------------------------------------------------------------
3956 // Policy name: Macau
3957 // Rules: 1
3958 //---------------------------------------------------------------------------
3959 
3960 static const extended::Info::ZoneRule kZoneRulesMacau[] ACE_TIME_PROGMEM = {
3961  // Anchor: Rule Macau 1979 only - Oct Sun>=16 03:30 0 S
3962  {
3963  -127 /*fromYearTiny (-32767)*/,
3964  -127 /*toYearTiny (-32767)*/,
3965  1 /*inMonth*/,
3966  0 /*onDayOfWeek*/,
3967  1 /*onDayOfMonth*/,
3968  0 /*atTimeCode*/,
3969  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3970  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3971  7 /*letterIndex ("S")*/,
3972  },
3973 
3974 };
3975 
3976 const extended::Info::ZonePolicy kZonePolicyMacau ACE_TIME_PROGMEM = {
3977  kZoneRulesMacau /*rules*/,
3978  1 /*numRules*/,
3979 };
3980 
3981 //---------------------------------------------------------------------------
3982 // Policy name: Mauritius
3983 // Rules: 4
3984 //---------------------------------------------------------------------------
3985 
3986 static const extended::Info::ZoneRule kZoneRulesMauritius[] ACE_TIME_PROGMEM = {
3987  // Anchor: Rule Mauritius 1983 only - Mar 21 0:00 0 -
3988  {
3989  -127 /*fromYearTiny (-32767)*/,
3990  -127 /*toYearTiny (-32767)*/,
3991  1 /*inMonth*/,
3992  0 /*onDayOfWeek*/,
3993  1 /*onDayOfMonth*/,
3994  0 /*atTimeCode*/,
3995  0 /*atTimeModifier (kSuffixW + minute=0)*/,
3996  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
3997  0 /*letterIndex ("")*/,
3998  },
3999  // Rule Mauritius 1983 only - Mar 21 0:00 0 -
4000  {
4001  -117 /*fromYearTiny (1983)*/,
4002  -117 /*toYearTiny (1983)*/,
4003  3 /*inMonth*/,
4004  0 /*onDayOfWeek*/,
4005  21 /*onDayOfMonth*/,
4006  0 /*atTimeCode*/,
4007  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4008  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4009  0 /*letterIndex ("")*/,
4010  },
4011  // Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 -
4012  {
4013  -92 /*fromYearTiny (2008)*/,
4014  -92 /*toYearTiny (2008)*/,
4015  10 /*inMonth*/,
4016  7 /*onDayOfWeek*/,
4017  0 /*onDayOfMonth*/,
4018  8 /*atTimeCode*/,
4019  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4020  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4021  0 /*letterIndex ("")*/,
4022  },
4023  // Rule Mauritius 2009 only - Mar lastSun 2:00 0 -
4024  {
4025  -91 /*fromYearTiny (2009)*/,
4026  -91 /*toYearTiny (2009)*/,
4027  3 /*inMonth*/,
4028  7 /*onDayOfWeek*/,
4029  0 /*onDayOfMonth*/,
4030  8 /*atTimeCode*/,
4031  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4032  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4033  0 /*letterIndex ("")*/,
4034  },
4035 
4036 };
4037 
4038 const extended::Info::ZonePolicy kZonePolicyMauritius ACE_TIME_PROGMEM = {
4039  kZoneRulesMauritius /*rules*/,
4040  4 /*numRules*/,
4041 };
4042 
4043 //---------------------------------------------------------------------------
4044 // Policy name: Mexico
4045 // Rules: 8
4046 //---------------------------------------------------------------------------
4047 
4048 static const extended::Info::ZoneRule kZoneRulesMexico[] ACE_TIME_PROGMEM = {
4049  // Anchor: Rule Mexico 1950 only - Jul 30 0:00 0 S
4050  {
4051  -127 /*fromYearTiny (-32767)*/,
4052  -127 /*toYearTiny (-32767)*/,
4053  1 /*inMonth*/,
4054  0 /*onDayOfWeek*/,
4055  1 /*onDayOfMonth*/,
4056  0 /*atTimeCode*/,
4057  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4058  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4059  7 /*letterIndex ("S")*/,
4060  },
4061  // Rule Mexico 1950 only - Jul 30 0:00 0 S
4062  {
4063  -127 /*fromYearTiny (1950)*/,
4064  -127 /*toYearTiny (1950)*/,
4065  7 /*inMonth*/,
4066  0 /*onDayOfWeek*/,
4067  30 /*onDayOfMonth*/,
4068  0 /*atTimeCode*/,
4069  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4070  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4071  7 /*letterIndex ("S")*/,
4072  },
4073  // Rule Mexico 1996 2000 - Apr Sun>=1 2:00 1:00 D
4074  {
4075  -104 /*fromYearTiny (1996)*/,
4076  -100 /*toYearTiny (2000)*/,
4077  4 /*inMonth*/,
4078  7 /*onDayOfWeek*/,
4079  1 /*onDayOfMonth*/,
4080  8 /*atTimeCode*/,
4081  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4082  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4083  5 /*letterIndex ("D")*/,
4084  },
4085  // Rule Mexico 1996 2000 - Oct lastSun 2:00 0 S
4086  {
4087  -104 /*fromYearTiny (1996)*/,
4088  -100 /*toYearTiny (2000)*/,
4089  10 /*inMonth*/,
4090  7 /*onDayOfWeek*/,
4091  0 /*onDayOfMonth*/,
4092  8 /*atTimeCode*/,
4093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4095  7 /*letterIndex ("S")*/,
4096  },
4097  // Rule Mexico 2001 only - May Sun>=1 2:00 1:00 D
4098  {
4099  -99 /*fromYearTiny (2001)*/,
4100  -99 /*toYearTiny (2001)*/,
4101  5 /*inMonth*/,
4102  7 /*onDayOfWeek*/,
4103  1 /*onDayOfMonth*/,
4104  8 /*atTimeCode*/,
4105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4106  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4107  5 /*letterIndex ("D")*/,
4108  },
4109  // Rule Mexico 2001 only - Sep lastSun 2:00 0 S
4110  {
4111  -99 /*fromYearTiny (2001)*/,
4112  -99 /*toYearTiny (2001)*/,
4113  9 /*inMonth*/,
4114  7 /*onDayOfWeek*/,
4115  0 /*onDayOfMonth*/,
4116  8 /*atTimeCode*/,
4117  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4118  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4119  7 /*letterIndex ("S")*/,
4120  },
4121  // Rule Mexico 2002 2022 - Apr Sun>=1 2:00 1:00 D
4122  {
4123  -98 /*fromYearTiny (2002)*/,
4124  -78 /*toYearTiny (2022)*/,
4125  4 /*inMonth*/,
4126  7 /*onDayOfWeek*/,
4127  1 /*onDayOfMonth*/,
4128  8 /*atTimeCode*/,
4129  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4130  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4131  5 /*letterIndex ("D")*/,
4132  },
4133  // Rule Mexico 2002 2022 - Oct lastSun 2:00 0 S
4134  {
4135  -98 /*fromYearTiny (2002)*/,
4136  -78 /*toYearTiny (2022)*/,
4137  10 /*inMonth*/,
4138  7 /*onDayOfWeek*/,
4139  0 /*onDayOfMonth*/,
4140  8 /*atTimeCode*/,
4141  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4142  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4143  7 /*letterIndex ("S")*/,
4144  },
4145 
4146 };
4147 
4148 const extended::Info::ZonePolicy kZonePolicyMexico ACE_TIME_PROGMEM = {
4149  kZoneRulesMexico /*rules*/,
4150  8 /*numRules*/,
4151 };
4152 
4153 //---------------------------------------------------------------------------
4154 // Policy name: Moldova
4155 // Rules: 3
4156 //---------------------------------------------------------------------------
4157 
4158 static const extended::Info::ZoneRule kZoneRulesMoldova[] ACE_TIME_PROGMEM = {
4159  // Anchor: Rule Moldova 1997 max - Oct lastSun 3:00 0 -
4160  {
4161  -127 /*fromYearTiny (-32767)*/,
4162  -127 /*toYearTiny (-32767)*/,
4163  1 /*inMonth*/,
4164  0 /*onDayOfWeek*/,
4165  1 /*onDayOfMonth*/,
4166  0 /*atTimeCode*/,
4167  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4168  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4169  0 /*letterIndex ("")*/,
4170  },
4171  // Rule Moldova 1997 max - Mar lastSun 2:00 1:00 S
4172  {
4173  -103 /*fromYearTiny (1997)*/,
4174  126 /*toYearTiny (32766)*/,
4175  3 /*inMonth*/,
4176  7 /*onDayOfWeek*/,
4177  0 /*onDayOfMonth*/,
4178  8 /*atTimeCode*/,
4179  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4180  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4181  7 /*letterIndex ("S")*/,
4182  },
4183  // Rule Moldova 1997 max - Oct lastSun 3:00 0 -
4184  {
4185  -103 /*fromYearTiny (1997)*/,
4186  126 /*toYearTiny (32766)*/,
4187  10 /*inMonth*/,
4188  7 /*onDayOfWeek*/,
4189  0 /*onDayOfMonth*/,
4190  12 /*atTimeCode*/,
4191  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4192  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4193  0 /*letterIndex ("")*/,
4194  },
4195 
4196 };
4197 
4198 const extended::Info::ZonePolicy kZonePolicyMoldova ACE_TIME_PROGMEM = {
4199  kZoneRulesMoldova /*rules*/,
4200  3 /*numRules*/,
4201 };
4202 
4203 //---------------------------------------------------------------------------
4204 // Policy name: Moncton
4205 // Rules: 4
4206 //---------------------------------------------------------------------------
4207 
4208 static const extended::Info::ZoneRule kZoneRulesMoncton[] ACE_TIME_PROGMEM = {
4209  // Anchor: Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
4210  {
4211  -127 /*fromYearTiny (-32767)*/,
4212  -127 /*toYearTiny (-32767)*/,
4213  1 /*inMonth*/,
4214  0 /*onDayOfWeek*/,
4215  1 /*onDayOfMonth*/,
4216  0 /*atTimeCode*/,
4217  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4218  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4219  7 /*letterIndex ("S")*/,
4220  },
4221  // Rule Moncton 1957 1972 - Oct lastSun 2:00 0 S
4222  {
4223  -127 /*fromYearTiny (1957)*/,
4224  -127 /*toYearTiny (1972)*/,
4225  10 /*inMonth*/,
4226  7 /*onDayOfWeek*/,
4227  0 /*onDayOfMonth*/,
4228  8 /*atTimeCode*/,
4229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4231  7 /*letterIndex ("S")*/,
4232  },
4233  // Rule Moncton 1993 2006 - Apr Sun>=1 0:01 1:00 D
4234  {
4235  -107 /*fromYearTiny (1993)*/,
4236  -94 /*toYearTiny (2006)*/,
4237  4 /*inMonth*/,
4238  7 /*onDayOfWeek*/,
4239  1 /*onDayOfMonth*/,
4240  0 /*atTimeCode*/,
4241  1 /*atTimeModifier (kSuffixW + minute=1)*/,
4242  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4243  5 /*letterIndex ("D")*/,
4244  },
4245  // Rule Moncton 1993 2006 - Oct lastSun 0:01 0 S
4246  {
4247  -107 /*fromYearTiny (1993)*/,
4248  -94 /*toYearTiny (2006)*/,
4249  10 /*inMonth*/,
4250  7 /*onDayOfWeek*/,
4251  0 /*onDayOfMonth*/,
4252  0 /*atTimeCode*/,
4253  1 /*atTimeModifier (kSuffixW + minute=1)*/,
4254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4255  7 /*letterIndex ("S")*/,
4256  },
4257 
4258 };
4259 
4260 const extended::Info::ZonePolicy kZonePolicyMoncton ACE_TIME_PROGMEM = {
4261  kZoneRulesMoncton /*rules*/,
4262  4 /*numRules*/,
4263 };
4264 
4265 //---------------------------------------------------------------------------
4266 // Policy name: Mongol
4267 // Rules: 7
4268 //---------------------------------------------------------------------------
4269 
4270 static const extended::Info::ZoneRule kZoneRulesMongol[] ACE_TIME_PROGMEM = {
4271  // Anchor: Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
4272  {
4273  -127 /*fromYearTiny (-32767)*/,
4274  -127 /*toYearTiny (-32767)*/,
4275  1 /*inMonth*/,
4276  0 /*onDayOfWeek*/,
4277  1 /*onDayOfMonth*/,
4278  0 /*atTimeCode*/,
4279  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4280  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4281  0 /*letterIndex ("")*/,
4282  },
4283  // Rule Mongol 1984 1998 - Sep lastSun 0:00 0 -
4284  {
4285  -116 /*fromYearTiny (1984)*/,
4286  -102 /*toYearTiny (1998)*/,
4287  9 /*inMonth*/,
4288  7 /*onDayOfWeek*/,
4289  0 /*onDayOfMonth*/,
4290  0 /*atTimeCode*/,
4291  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4292  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4293  0 /*letterIndex ("")*/,
4294  },
4295  // Rule Mongol 2001 only - Apr lastSat 2:00 1:00 -
4296  {
4297  -99 /*fromYearTiny (2001)*/,
4298  -99 /*toYearTiny (2001)*/,
4299  4 /*inMonth*/,
4300  6 /*onDayOfWeek*/,
4301  0 /*onDayOfMonth*/,
4302  8 /*atTimeCode*/,
4303  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4304  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4305  0 /*letterIndex ("")*/,
4306  },
4307  // Rule Mongol 2001 2006 - Sep lastSat 2:00 0 -
4308  {
4309  -99 /*fromYearTiny (2001)*/,
4310  -94 /*toYearTiny (2006)*/,
4311  9 /*inMonth*/,
4312  6 /*onDayOfWeek*/,
4313  0 /*onDayOfMonth*/,
4314  8 /*atTimeCode*/,
4315  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4316  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4317  0 /*letterIndex ("")*/,
4318  },
4319  // Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 -
4320  {
4321  -98 /*fromYearTiny (2002)*/,
4322  -94 /*toYearTiny (2006)*/,
4323  3 /*inMonth*/,
4324  6 /*onDayOfWeek*/,
4325  0 /*onDayOfMonth*/,
4326  8 /*atTimeCode*/,
4327  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4328  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4329  0 /*letterIndex ("")*/,
4330  },
4331  // Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 -
4332  {
4333  -85 /*fromYearTiny (2015)*/,
4334  -84 /*toYearTiny (2016)*/,
4335  3 /*inMonth*/,
4336  6 /*onDayOfWeek*/,
4337  0 /*onDayOfMonth*/,
4338  8 /*atTimeCode*/,
4339  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4340  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4341  0 /*letterIndex ("")*/,
4342  },
4343  // Rule Mongol 2015 2016 - Sep lastSat 0:00 0 -
4344  {
4345  -85 /*fromYearTiny (2015)*/,
4346  -84 /*toYearTiny (2016)*/,
4347  9 /*inMonth*/,
4348  6 /*onDayOfWeek*/,
4349  0 /*onDayOfMonth*/,
4350  0 /*atTimeCode*/,
4351  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4352  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4353  0 /*letterIndex ("")*/,
4354  },
4355 
4356 };
4357 
4358 const extended::Info::ZonePolicy kZonePolicyMongol ACE_TIME_PROGMEM = {
4359  kZoneRulesMongol /*rules*/,
4360  7 /*numRules*/,
4361 };
4362 
4363 //---------------------------------------------------------------------------
4364 // Policy name: Morocco
4365 // Rules: 170
4366 //---------------------------------------------------------------------------
4367 
4368 static const extended::Info::ZoneRule kZoneRulesMorocco[] ACE_TIME_PROGMEM = {
4369  // Anchor: Rule Morocco 1978 only - Aug 4 0:00 0 -
4370  {
4371  -127 /*fromYearTiny (-32767)*/,
4372  -127 /*toYearTiny (-32767)*/,
4373  1 /*inMonth*/,
4374  0 /*onDayOfWeek*/,
4375  1 /*onDayOfMonth*/,
4376  0 /*atTimeCode*/,
4377  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4378  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4379  0 /*letterIndex ("")*/,
4380  },
4381  // Rule Morocco 1978 only - Aug 4 0:00 0 -
4382  {
4383  -122 /*fromYearTiny (1978)*/,
4384  -122 /*toYearTiny (1978)*/,
4385  8 /*inMonth*/,
4386  0 /*onDayOfWeek*/,
4387  4 /*onDayOfMonth*/,
4388  0 /*atTimeCode*/,
4389  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4390  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4391  0 /*letterIndex ("")*/,
4392  },
4393  // Rule Morocco 2008 only - Jun 1 0:00 1:00 -
4394  {
4395  -92 /*fromYearTiny (2008)*/,
4396  -92 /*toYearTiny (2008)*/,
4397  6 /*inMonth*/,
4398  0 /*onDayOfWeek*/,
4399  1 /*onDayOfMonth*/,
4400  0 /*atTimeCode*/,
4401  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4402  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4403  0 /*letterIndex ("")*/,
4404  },
4405  // Rule Morocco 2008 only - Sep 1 0:00 0 -
4406  {
4407  -92 /*fromYearTiny (2008)*/,
4408  -92 /*toYearTiny (2008)*/,
4409  9 /*inMonth*/,
4410  0 /*onDayOfWeek*/,
4411  1 /*onDayOfMonth*/,
4412  0 /*atTimeCode*/,
4413  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4414  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4415  0 /*letterIndex ("")*/,
4416  },
4417  // Rule Morocco 2009 only - Jun 1 0:00 1:00 -
4418  {
4419  -91 /*fromYearTiny (2009)*/,
4420  -91 /*toYearTiny (2009)*/,
4421  6 /*inMonth*/,
4422  0 /*onDayOfWeek*/,
4423  1 /*onDayOfMonth*/,
4424  0 /*atTimeCode*/,
4425  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4426  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4427  0 /*letterIndex ("")*/,
4428  },
4429  // Rule Morocco 2009 only - Aug 21 0:00 0 -
4430  {
4431  -91 /*fromYearTiny (2009)*/,
4432  -91 /*toYearTiny (2009)*/,
4433  8 /*inMonth*/,
4434  0 /*onDayOfWeek*/,
4435  21 /*onDayOfMonth*/,
4436  0 /*atTimeCode*/,
4437  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4438  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4439  0 /*letterIndex ("")*/,
4440  },
4441  // Rule Morocco 2010 only - May 2 0:00 1:00 -
4442  {
4443  -90 /*fromYearTiny (2010)*/,
4444  -90 /*toYearTiny (2010)*/,
4445  5 /*inMonth*/,
4446  0 /*onDayOfWeek*/,
4447  2 /*onDayOfMonth*/,
4448  0 /*atTimeCode*/,
4449  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4450  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4451  0 /*letterIndex ("")*/,
4452  },
4453  // Rule Morocco 2010 only - Aug 8 0:00 0 -
4454  {
4455  -90 /*fromYearTiny (2010)*/,
4456  -90 /*toYearTiny (2010)*/,
4457  8 /*inMonth*/,
4458  0 /*onDayOfWeek*/,
4459  8 /*onDayOfMonth*/,
4460  0 /*atTimeCode*/,
4461  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4462  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4463  0 /*letterIndex ("")*/,
4464  },
4465  // Rule Morocco 2011 only - Apr 3 0:00 1:00 -
4466  {
4467  -89 /*fromYearTiny (2011)*/,
4468  -89 /*toYearTiny (2011)*/,
4469  4 /*inMonth*/,
4470  0 /*onDayOfWeek*/,
4471  3 /*onDayOfMonth*/,
4472  0 /*atTimeCode*/,
4473  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4474  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4475  0 /*letterIndex ("")*/,
4476  },
4477  // Rule Morocco 2011 only - Jul 31 0:00 0 -
4478  {
4479  -89 /*fromYearTiny (2011)*/,
4480  -89 /*toYearTiny (2011)*/,
4481  7 /*inMonth*/,
4482  0 /*onDayOfWeek*/,
4483  31 /*onDayOfMonth*/,
4484  0 /*atTimeCode*/,
4485  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4486  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4487  0 /*letterIndex ("")*/,
4488  },
4489  // Rule Morocco 2012 2013 - Apr lastSun 2:00 1:00 -
4490  {
4491  -88 /*fromYearTiny (2012)*/,
4492  -87 /*toYearTiny (2013)*/,
4493  4 /*inMonth*/,
4494  7 /*onDayOfWeek*/,
4495  0 /*onDayOfMonth*/,
4496  8 /*atTimeCode*/,
4497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4498  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4499  0 /*letterIndex ("")*/,
4500  },
4501  // Rule Morocco 2012 only - Jul 20 3:00 0 -
4502  {
4503  -88 /*fromYearTiny (2012)*/,
4504  -88 /*toYearTiny (2012)*/,
4505  7 /*inMonth*/,
4506  0 /*onDayOfWeek*/,
4507  20 /*onDayOfMonth*/,
4508  12 /*atTimeCode*/,
4509  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4510  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4511  0 /*letterIndex ("")*/,
4512  },
4513  // Rule Morocco 2012 only - Aug 20 2:00 1:00 -
4514  {
4515  -88 /*fromYearTiny (2012)*/,
4516  -88 /*toYearTiny (2012)*/,
4517  8 /*inMonth*/,
4518  0 /*onDayOfWeek*/,
4519  20 /*onDayOfMonth*/,
4520  8 /*atTimeCode*/,
4521  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4522  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4523  0 /*letterIndex ("")*/,
4524  },
4525  // Rule Morocco 2012 only - Sep 30 3:00 0 -
4526  {
4527  -88 /*fromYearTiny (2012)*/,
4528  -88 /*toYearTiny (2012)*/,
4529  9 /*inMonth*/,
4530  0 /*onDayOfWeek*/,
4531  30 /*onDayOfMonth*/,
4532  12 /*atTimeCode*/,
4533  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4534  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4535  0 /*letterIndex ("")*/,
4536  },
4537  // Rule Morocco 2013 only - Jul 7 3:00 0 -
4538  {
4539  -87 /*fromYearTiny (2013)*/,
4540  -87 /*toYearTiny (2013)*/,
4541  7 /*inMonth*/,
4542  0 /*onDayOfWeek*/,
4543  7 /*onDayOfMonth*/,
4544  12 /*atTimeCode*/,
4545  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4546  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4547  0 /*letterIndex ("")*/,
4548  },
4549  // Rule Morocco 2013 only - Aug 10 2:00 1:00 -
4550  {
4551  -87 /*fromYearTiny (2013)*/,
4552  -87 /*toYearTiny (2013)*/,
4553  8 /*inMonth*/,
4554  0 /*onDayOfWeek*/,
4555  10 /*onDayOfMonth*/,
4556  8 /*atTimeCode*/,
4557  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4558  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4559  0 /*letterIndex ("")*/,
4560  },
4561  // Rule Morocco 2013 2018 - Oct lastSun 3:00 0 -
4562  {
4563  -87 /*fromYearTiny (2013)*/,
4564  -82 /*toYearTiny (2018)*/,
4565  10 /*inMonth*/,
4566  7 /*onDayOfWeek*/,
4567  0 /*onDayOfMonth*/,
4568  12 /*atTimeCode*/,
4569  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4570  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4571  0 /*letterIndex ("")*/,
4572  },
4573  // Rule Morocco 2014 2018 - Mar lastSun 2:00 1:00 -
4574  {
4575  -86 /*fromYearTiny (2014)*/,
4576  -82 /*toYearTiny (2018)*/,
4577  3 /*inMonth*/,
4578  7 /*onDayOfWeek*/,
4579  0 /*onDayOfMonth*/,
4580  8 /*atTimeCode*/,
4581  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4582  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4583  0 /*letterIndex ("")*/,
4584  },
4585  // Rule Morocco 2014 only - Jun 28 3:00 0 -
4586  {
4587  -86 /*fromYearTiny (2014)*/,
4588  -86 /*toYearTiny (2014)*/,
4589  6 /*inMonth*/,
4590  0 /*onDayOfWeek*/,
4591  28 /*onDayOfMonth*/,
4592  12 /*atTimeCode*/,
4593  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4594  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4595  0 /*letterIndex ("")*/,
4596  },
4597  // Rule Morocco 2014 only - Aug 2 2:00 1:00 -
4598  {
4599  -86 /*fromYearTiny (2014)*/,
4600  -86 /*toYearTiny (2014)*/,
4601  8 /*inMonth*/,
4602  0 /*onDayOfWeek*/,
4603  2 /*onDayOfMonth*/,
4604  8 /*atTimeCode*/,
4605  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4606  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4607  0 /*letterIndex ("")*/,
4608  },
4609  // Rule Morocco 2015 only - Jun 14 3:00 0 -
4610  {
4611  -85 /*fromYearTiny (2015)*/,
4612  -85 /*toYearTiny (2015)*/,
4613  6 /*inMonth*/,
4614  0 /*onDayOfWeek*/,
4615  14 /*onDayOfMonth*/,
4616  12 /*atTimeCode*/,
4617  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4618  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4619  0 /*letterIndex ("")*/,
4620  },
4621  // Rule Morocco 2015 only - Jul 19 2:00 1:00 -
4622  {
4623  -85 /*fromYearTiny (2015)*/,
4624  -85 /*toYearTiny (2015)*/,
4625  7 /*inMonth*/,
4626  0 /*onDayOfWeek*/,
4627  19 /*onDayOfMonth*/,
4628  8 /*atTimeCode*/,
4629  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4630  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4631  0 /*letterIndex ("")*/,
4632  },
4633  // Rule Morocco 2016 only - Jun 5 3:00 0 -
4634  {
4635  -84 /*fromYearTiny (2016)*/,
4636  -84 /*toYearTiny (2016)*/,
4637  6 /*inMonth*/,
4638  0 /*onDayOfWeek*/,
4639  5 /*onDayOfMonth*/,
4640  12 /*atTimeCode*/,
4641  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4642  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4643  0 /*letterIndex ("")*/,
4644  },
4645  // Rule Morocco 2016 only - Jul 10 2:00 1:00 -
4646  {
4647  -84 /*fromYearTiny (2016)*/,
4648  -84 /*toYearTiny (2016)*/,
4649  7 /*inMonth*/,
4650  0 /*onDayOfWeek*/,
4651  10 /*onDayOfMonth*/,
4652  8 /*atTimeCode*/,
4653  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4654  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4655  0 /*letterIndex ("")*/,
4656  },
4657  // Rule Morocco 2017 only - May 21 3:00 0 -
4658  {
4659  -83 /*fromYearTiny (2017)*/,
4660  -83 /*toYearTiny (2017)*/,
4661  5 /*inMonth*/,
4662  0 /*onDayOfWeek*/,
4663  21 /*onDayOfMonth*/,
4664  12 /*atTimeCode*/,
4665  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4666  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4667  0 /*letterIndex ("")*/,
4668  },
4669  // Rule Morocco 2017 only - Jul 2 2:00 1:00 -
4670  {
4671  -83 /*fromYearTiny (2017)*/,
4672  -83 /*toYearTiny (2017)*/,
4673  7 /*inMonth*/,
4674  0 /*onDayOfWeek*/,
4675  2 /*onDayOfMonth*/,
4676  8 /*atTimeCode*/,
4677  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4678  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4679  0 /*letterIndex ("")*/,
4680  },
4681  // Rule Morocco 2018 only - May 13 3:00 0 -
4682  {
4683  -82 /*fromYearTiny (2018)*/,
4684  -82 /*toYearTiny (2018)*/,
4685  5 /*inMonth*/,
4686  0 /*onDayOfWeek*/,
4687  13 /*onDayOfMonth*/,
4688  12 /*atTimeCode*/,
4689  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4690  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4691  0 /*letterIndex ("")*/,
4692  },
4693  // Rule Morocco 2018 only - Jun 17 2:00 1:00 -
4694  {
4695  -82 /*fromYearTiny (2018)*/,
4696  -82 /*toYearTiny (2018)*/,
4697  6 /*inMonth*/,
4698  0 /*onDayOfWeek*/,
4699  17 /*onDayOfMonth*/,
4700  8 /*atTimeCode*/,
4701  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4702  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
4703  0 /*letterIndex ("")*/,
4704  },
4705  // Rule Morocco 2019 only - May 5 3:00 -1:00 -
4706  {
4707  -81 /*fromYearTiny (2019)*/,
4708  -81 /*toYearTiny (2019)*/,
4709  5 /*inMonth*/,
4710  0 /*onDayOfWeek*/,
4711  5 /*onDayOfMonth*/,
4712  12 /*atTimeCode*/,
4713  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4714  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4715  0 /*letterIndex ("")*/,
4716  },
4717  // Rule Morocco 2019 only - Jun 9 2:00 0 -
4718  {
4719  -81 /*fromYearTiny (2019)*/,
4720  -81 /*toYearTiny (2019)*/,
4721  6 /*inMonth*/,
4722  0 /*onDayOfWeek*/,
4723  9 /*onDayOfMonth*/,
4724  8 /*atTimeCode*/,
4725  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4726  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4727  0 /*letterIndex ("")*/,
4728  },
4729  // Rule Morocco 2020 only - Apr 19 3:00 -1:00 -
4730  {
4731  -80 /*fromYearTiny (2020)*/,
4732  -80 /*toYearTiny (2020)*/,
4733  4 /*inMonth*/,
4734  0 /*onDayOfWeek*/,
4735  19 /*onDayOfMonth*/,
4736  12 /*atTimeCode*/,
4737  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4738  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4739  0 /*letterIndex ("")*/,
4740  },
4741  // Rule Morocco 2020 only - May 31 2:00 0 -
4742  {
4743  -80 /*fromYearTiny (2020)*/,
4744  -80 /*toYearTiny (2020)*/,
4745  5 /*inMonth*/,
4746  0 /*onDayOfWeek*/,
4747  31 /*onDayOfMonth*/,
4748  8 /*atTimeCode*/,
4749  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4750  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4751  0 /*letterIndex ("")*/,
4752  },
4753  // Rule Morocco 2021 only - Apr 11 3:00 -1:00 -
4754  {
4755  -79 /*fromYearTiny (2021)*/,
4756  -79 /*toYearTiny (2021)*/,
4757  4 /*inMonth*/,
4758  0 /*onDayOfWeek*/,
4759  11 /*onDayOfMonth*/,
4760  12 /*atTimeCode*/,
4761  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4762  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4763  0 /*letterIndex ("")*/,
4764  },
4765  // Rule Morocco 2021 only - May 16 2:00 0 -
4766  {
4767  -79 /*fromYearTiny (2021)*/,
4768  -79 /*toYearTiny (2021)*/,
4769  5 /*inMonth*/,
4770  0 /*onDayOfWeek*/,
4771  16 /*onDayOfMonth*/,
4772  8 /*atTimeCode*/,
4773  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4774  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4775  0 /*letterIndex ("")*/,
4776  },
4777  // Rule Morocco 2022 only - Mar 27 3:00 -1:00 -
4778  {
4779  -78 /*fromYearTiny (2022)*/,
4780  -78 /*toYearTiny (2022)*/,
4781  3 /*inMonth*/,
4782  0 /*onDayOfWeek*/,
4783  27 /*onDayOfMonth*/,
4784  12 /*atTimeCode*/,
4785  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4786  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4787  0 /*letterIndex ("")*/,
4788  },
4789  // Rule Morocco 2022 only - May 8 2:00 0 -
4790  {
4791  -78 /*fromYearTiny (2022)*/,
4792  -78 /*toYearTiny (2022)*/,
4793  5 /*inMonth*/,
4794  0 /*onDayOfWeek*/,
4795  8 /*onDayOfMonth*/,
4796  8 /*atTimeCode*/,
4797  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4798  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4799  0 /*letterIndex ("")*/,
4800  },
4801  // Rule Morocco 2023 only - Mar 19 3:00 -1:00 -
4802  {
4803  -77 /*fromYearTiny (2023)*/,
4804  -77 /*toYearTiny (2023)*/,
4805  3 /*inMonth*/,
4806  0 /*onDayOfWeek*/,
4807  19 /*onDayOfMonth*/,
4808  12 /*atTimeCode*/,
4809  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4810  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4811  0 /*letterIndex ("")*/,
4812  },
4813  // Rule Morocco 2023 only - Apr 23 2:00 0 -
4814  {
4815  -77 /*fromYearTiny (2023)*/,
4816  -77 /*toYearTiny (2023)*/,
4817  4 /*inMonth*/,
4818  0 /*onDayOfWeek*/,
4819  23 /*onDayOfMonth*/,
4820  8 /*atTimeCode*/,
4821  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4822  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4823  0 /*letterIndex ("")*/,
4824  },
4825  // Rule Morocco 2024 only - Mar 10 3:00 -1:00 -
4826  {
4827  -76 /*fromYearTiny (2024)*/,
4828  -76 /*toYearTiny (2024)*/,
4829  3 /*inMonth*/,
4830  0 /*onDayOfWeek*/,
4831  10 /*onDayOfMonth*/,
4832  12 /*atTimeCode*/,
4833  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4834  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4835  0 /*letterIndex ("")*/,
4836  },
4837  // Rule Morocco 2024 only - Apr 14 2:00 0 -
4838  {
4839  -76 /*fromYearTiny (2024)*/,
4840  -76 /*toYearTiny (2024)*/,
4841  4 /*inMonth*/,
4842  0 /*onDayOfWeek*/,
4843  14 /*onDayOfMonth*/,
4844  8 /*atTimeCode*/,
4845  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4846  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4847  0 /*letterIndex ("")*/,
4848  },
4849  // Rule Morocco 2025 only - Feb 23 3:00 -1:00 -
4850  {
4851  -75 /*fromYearTiny (2025)*/,
4852  -75 /*toYearTiny (2025)*/,
4853  2 /*inMonth*/,
4854  0 /*onDayOfWeek*/,
4855  23 /*onDayOfMonth*/,
4856  12 /*atTimeCode*/,
4857  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4858  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4859  0 /*letterIndex ("")*/,
4860  },
4861  // Rule Morocco 2025 only - Apr 6 2:00 0 -
4862  {
4863  -75 /*fromYearTiny (2025)*/,
4864  -75 /*toYearTiny (2025)*/,
4865  4 /*inMonth*/,
4866  0 /*onDayOfWeek*/,
4867  6 /*onDayOfMonth*/,
4868  8 /*atTimeCode*/,
4869  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4870  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4871  0 /*letterIndex ("")*/,
4872  },
4873  // Rule Morocco 2026 only - Feb 15 3:00 -1:00 -
4874  {
4875  -74 /*fromYearTiny (2026)*/,
4876  -74 /*toYearTiny (2026)*/,
4877  2 /*inMonth*/,
4878  0 /*onDayOfWeek*/,
4879  15 /*onDayOfMonth*/,
4880  12 /*atTimeCode*/,
4881  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4882  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4883  0 /*letterIndex ("")*/,
4884  },
4885  // Rule Morocco 2026 only - Mar 22 2:00 0 -
4886  {
4887  -74 /*fromYearTiny (2026)*/,
4888  -74 /*toYearTiny (2026)*/,
4889  3 /*inMonth*/,
4890  0 /*onDayOfWeek*/,
4891  22 /*onDayOfMonth*/,
4892  8 /*atTimeCode*/,
4893  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4894  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4895  0 /*letterIndex ("")*/,
4896  },
4897  // Rule Morocco 2027 only - Feb 7 3:00 -1:00 -
4898  {
4899  -73 /*fromYearTiny (2027)*/,
4900  -73 /*toYearTiny (2027)*/,
4901  2 /*inMonth*/,
4902  0 /*onDayOfWeek*/,
4903  7 /*onDayOfMonth*/,
4904  12 /*atTimeCode*/,
4905  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4906  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4907  0 /*letterIndex ("")*/,
4908  },
4909  // Rule Morocco 2027 only - Mar 14 2:00 0 -
4910  {
4911  -73 /*fromYearTiny (2027)*/,
4912  -73 /*toYearTiny (2027)*/,
4913  3 /*inMonth*/,
4914  0 /*onDayOfWeek*/,
4915  14 /*onDayOfMonth*/,
4916  8 /*atTimeCode*/,
4917  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4918  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4919  0 /*letterIndex ("")*/,
4920  },
4921  // Rule Morocco 2028 only - Jan 23 3:00 -1:00 -
4922  {
4923  -72 /*fromYearTiny (2028)*/,
4924  -72 /*toYearTiny (2028)*/,
4925  1 /*inMonth*/,
4926  0 /*onDayOfWeek*/,
4927  23 /*onDayOfMonth*/,
4928  12 /*atTimeCode*/,
4929  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4930  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4931  0 /*letterIndex ("")*/,
4932  },
4933  // Rule Morocco 2028 only - Mar 5 2:00 0 -
4934  {
4935  -72 /*fromYearTiny (2028)*/,
4936  -72 /*toYearTiny (2028)*/,
4937  3 /*inMonth*/,
4938  0 /*onDayOfWeek*/,
4939  5 /*onDayOfMonth*/,
4940  8 /*atTimeCode*/,
4941  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4942  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4943  0 /*letterIndex ("")*/,
4944  },
4945  // Rule Morocco 2029 only - Jan 14 3:00 -1:00 -
4946  {
4947  -71 /*fromYearTiny (2029)*/,
4948  -71 /*toYearTiny (2029)*/,
4949  1 /*inMonth*/,
4950  0 /*onDayOfWeek*/,
4951  14 /*onDayOfMonth*/,
4952  12 /*atTimeCode*/,
4953  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4954  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4955  0 /*letterIndex ("")*/,
4956  },
4957  // Rule Morocco 2029 only - Feb 18 2:00 0 -
4958  {
4959  -71 /*fromYearTiny (2029)*/,
4960  -71 /*toYearTiny (2029)*/,
4961  2 /*inMonth*/,
4962  0 /*onDayOfWeek*/,
4963  18 /*onDayOfMonth*/,
4964  8 /*atTimeCode*/,
4965  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4966  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4967  0 /*letterIndex ("")*/,
4968  },
4969  // Rule Morocco 2029 only - Dec 30 3:00 -1:00 -
4970  {
4971  -71 /*fromYearTiny (2029)*/,
4972  -71 /*toYearTiny (2029)*/,
4973  12 /*inMonth*/,
4974  0 /*onDayOfWeek*/,
4975  30 /*onDayOfMonth*/,
4976  12 /*atTimeCode*/,
4977  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4978  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
4979  0 /*letterIndex ("")*/,
4980  },
4981  // Rule Morocco 2030 only - Feb 10 2:00 0 -
4982  {
4983  -70 /*fromYearTiny (2030)*/,
4984  -70 /*toYearTiny (2030)*/,
4985  2 /*inMonth*/,
4986  0 /*onDayOfWeek*/,
4987  10 /*onDayOfMonth*/,
4988  8 /*atTimeCode*/,
4989  0 /*atTimeModifier (kSuffixW + minute=0)*/,
4990  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
4991  0 /*letterIndex ("")*/,
4992  },
4993  // Rule Morocco 2030 only - Dec 22 3:00 -1:00 -
4994  {
4995  -70 /*fromYearTiny (2030)*/,
4996  -70 /*toYearTiny (2030)*/,
4997  12 /*inMonth*/,
4998  0 /*onDayOfWeek*/,
4999  22 /*onDayOfMonth*/,
5000  12 /*atTimeCode*/,
5001  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5002  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5003  0 /*letterIndex ("")*/,
5004  },
5005  // Rule Morocco 2031 only - Jan 26 2:00 0 -
5006  {
5007  -69 /*fromYearTiny (2031)*/,
5008  -69 /*toYearTiny (2031)*/,
5009  1 /*inMonth*/,
5010  0 /*onDayOfWeek*/,
5011  26 /*onDayOfMonth*/,
5012  8 /*atTimeCode*/,
5013  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5014  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5015  0 /*letterIndex ("")*/,
5016  },
5017  // Rule Morocco 2031 only - Dec 14 3:00 -1:00 -
5018  {
5019  -69 /*fromYearTiny (2031)*/,
5020  -69 /*toYearTiny (2031)*/,
5021  12 /*inMonth*/,
5022  0 /*onDayOfWeek*/,
5023  14 /*onDayOfMonth*/,
5024  12 /*atTimeCode*/,
5025  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5026  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5027  0 /*letterIndex ("")*/,
5028  },
5029  // Rule Morocco 2032 only - Jan 18 2:00 0 -
5030  {
5031  -68 /*fromYearTiny (2032)*/,
5032  -68 /*toYearTiny (2032)*/,
5033  1 /*inMonth*/,
5034  0 /*onDayOfWeek*/,
5035  18 /*onDayOfMonth*/,
5036  8 /*atTimeCode*/,
5037  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5038  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5039  0 /*letterIndex ("")*/,
5040  },
5041  // Rule Morocco 2032 only - Nov 28 3:00 -1:00 -
5042  {
5043  -68 /*fromYearTiny (2032)*/,
5044  -68 /*toYearTiny (2032)*/,
5045  11 /*inMonth*/,
5046  0 /*onDayOfWeek*/,
5047  28 /*onDayOfMonth*/,
5048  12 /*atTimeCode*/,
5049  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5050  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5051  0 /*letterIndex ("")*/,
5052  },
5053  // Rule Morocco 2033 only - Jan 9 2:00 0 -
5054  {
5055  -67 /*fromYearTiny (2033)*/,
5056  -67 /*toYearTiny (2033)*/,
5057  1 /*inMonth*/,
5058  0 /*onDayOfWeek*/,
5059  9 /*onDayOfMonth*/,
5060  8 /*atTimeCode*/,
5061  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5062  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5063  0 /*letterIndex ("")*/,
5064  },
5065  // Rule Morocco 2033 only - Nov 20 3:00 -1:00 -
5066  {
5067  -67 /*fromYearTiny (2033)*/,
5068  -67 /*toYearTiny (2033)*/,
5069  11 /*inMonth*/,
5070  0 /*onDayOfWeek*/,
5071  20 /*onDayOfMonth*/,
5072  12 /*atTimeCode*/,
5073  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5074  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5075  0 /*letterIndex ("")*/,
5076  },
5077  // Rule Morocco 2033 only - Dec 25 2:00 0 -
5078  {
5079  -67 /*fromYearTiny (2033)*/,
5080  -67 /*toYearTiny (2033)*/,
5081  12 /*inMonth*/,
5082  0 /*onDayOfWeek*/,
5083  25 /*onDayOfMonth*/,
5084  8 /*atTimeCode*/,
5085  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5086  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5087  0 /*letterIndex ("")*/,
5088  },
5089  // Rule Morocco 2034 only - Nov 5 3:00 -1:00 -
5090  {
5091  -66 /*fromYearTiny (2034)*/,
5092  -66 /*toYearTiny (2034)*/,
5093  11 /*inMonth*/,
5094  0 /*onDayOfWeek*/,
5095  5 /*onDayOfMonth*/,
5096  12 /*atTimeCode*/,
5097  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5098  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5099  0 /*letterIndex ("")*/,
5100  },
5101  // Rule Morocco 2034 only - Dec 17 2:00 0 -
5102  {
5103  -66 /*fromYearTiny (2034)*/,
5104  -66 /*toYearTiny (2034)*/,
5105  12 /*inMonth*/,
5106  0 /*onDayOfWeek*/,
5107  17 /*onDayOfMonth*/,
5108  8 /*atTimeCode*/,
5109  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5110  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5111  0 /*letterIndex ("")*/,
5112  },
5113  // Rule Morocco 2035 only - Oct 28 3:00 -1:00 -
5114  {
5115  -65 /*fromYearTiny (2035)*/,
5116  -65 /*toYearTiny (2035)*/,
5117  10 /*inMonth*/,
5118  0 /*onDayOfWeek*/,
5119  28 /*onDayOfMonth*/,
5120  12 /*atTimeCode*/,
5121  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5122  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5123  0 /*letterIndex ("")*/,
5124  },
5125  // Rule Morocco 2035 only - Dec 9 2:00 0 -
5126  {
5127  -65 /*fromYearTiny (2035)*/,
5128  -65 /*toYearTiny (2035)*/,
5129  12 /*inMonth*/,
5130  0 /*onDayOfWeek*/,
5131  9 /*onDayOfMonth*/,
5132  8 /*atTimeCode*/,
5133  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5134  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5135  0 /*letterIndex ("")*/,
5136  },
5137  // Rule Morocco 2036 only - Oct 19 3:00 -1:00 -
5138  {
5139  -64 /*fromYearTiny (2036)*/,
5140  -64 /*toYearTiny (2036)*/,
5141  10 /*inMonth*/,
5142  0 /*onDayOfWeek*/,
5143  19 /*onDayOfMonth*/,
5144  12 /*atTimeCode*/,
5145  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5146  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5147  0 /*letterIndex ("")*/,
5148  },
5149  // Rule Morocco 2036 only - Nov 23 2:00 0 -
5150  {
5151  -64 /*fromYearTiny (2036)*/,
5152  -64 /*toYearTiny (2036)*/,
5153  11 /*inMonth*/,
5154  0 /*onDayOfWeek*/,
5155  23 /*onDayOfMonth*/,
5156  8 /*atTimeCode*/,
5157  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5158  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5159  0 /*letterIndex ("")*/,
5160  },
5161  // Rule Morocco 2037 only - Oct 4 3:00 -1:00 -
5162  {
5163  -63 /*fromYearTiny (2037)*/,
5164  -63 /*toYearTiny (2037)*/,
5165  10 /*inMonth*/,
5166  0 /*onDayOfWeek*/,
5167  4 /*onDayOfMonth*/,
5168  12 /*atTimeCode*/,
5169  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5170  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5171  0 /*letterIndex ("")*/,
5172  },
5173  // Rule Morocco 2037 only - Nov 15 2:00 0 -
5174  {
5175  -63 /*fromYearTiny (2037)*/,
5176  -63 /*toYearTiny (2037)*/,
5177  11 /*inMonth*/,
5178  0 /*onDayOfWeek*/,
5179  15 /*onDayOfMonth*/,
5180  8 /*atTimeCode*/,
5181  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5182  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5183  0 /*letterIndex ("")*/,
5184  },
5185  // Rule Morocco 2038 only - Sep 26 3:00 -1:00 -
5186  {
5187  -62 /*fromYearTiny (2038)*/,
5188  -62 /*toYearTiny (2038)*/,
5189  9 /*inMonth*/,
5190  0 /*onDayOfWeek*/,
5191  26 /*onDayOfMonth*/,
5192  12 /*atTimeCode*/,
5193  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5194  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5195  0 /*letterIndex ("")*/,
5196  },
5197  // Rule Morocco 2038 only - Oct 31 2:00 0 -
5198  {
5199  -62 /*fromYearTiny (2038)*/,
5200  -62 /*toYearTiny (2038)*/,
5201  10 /*inMonth*/,
5202  0 /*onDayOfWeek*/,
5203  31 /*onDayOfMonth*/,
5204  8 /*atTimeCode*/,
5205  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5206  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5207  0 /*letterIndex ("")*/,
5208  },
5209  // Rule Morocco 2039 only - Sep 18 3:00 -1:00 -
5210  {
5211  -61 /*fromYearTiny (2039)*/,
5212  -61 /*toYearTiny (2039)*/,
5213  9 /*inMonth*/,
5214  0 /*onDayOfWeek*/,
5215  18 /*onDayOfMonth*/,
5216  12 /*atTimeCode*/,
5217  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5218  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5219  0 /*letterIndex ("")*/,
5220  },
5221  // Rule Morocco 2039 only - Oct 23 2:00 0 -
5222  {
5223  -61 /*fromYearTiny (2039)*/,
5224  -61 /*toYearTiny (2039)*/,
5225  10 /*inMonth*/,
5226  0 /*onDayOfWeek*/,
5227  23 /*onDayOfMonth*/,
5228  8 /*atTimeCode*/,
5229  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5230  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5231  0 /*letterIndex ("")*/,
5232  },
5233  // Rule Morocco 2040 only - Sep 2 3:00 -1:00 -
5234  {
5235  -60 /*fromYearTiny (2040)*/,
5236  -60 /*toYearTiny (2040)*/,
5237  9 /*inMonth*/,
5238  0 /*onDayOfWeek*/,
5239  2 /*onDayOfMonth*/,
5240  12 /*atTimeCode*/,
5241  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5242  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5243  0 /*letterIndex ("")*/,
5244  },
5245  // Rule Morocco 2040 only - Oct 14 2:00 0 -
5246  {
5247  -60 /*fromYearTiny (2040)*/,
5248  -60 /*toYearTiny (2040)*/,
5249  10 /*inMonth*/,
5250  0 /*onDayOfWeek*/,
5251  14 /*onDayOfMonth*/,
5252  8 /*atTimeCode*/,
5253  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5254  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5255  0 /*letterIndex ("")*/,
5256  },
5257  // Rule Morocco 2041 only - Aug 25 3:00 -1:00 -
5258  {
5259  -59 /*fromYearTiny (2041)*/,
5260  -59 /*toYearTiny (2041)*/,
5261  8 /*inMonth*/,
5262  0 /*onDayOfWeek*/,
5263  25 /*onDayOfMonth*/,
5264  12 /*atTimeCode*/,
5265  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5266  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5267  0 /*letterIndex ("")*/,
5268  },
5269  // Rule Morocco 2041 only - Sep 29 2:00 0 -
5270  {
5271  -59 /*fromYearTiny (2041)*/,
5272  -59 /*toYearTiny (2041)*/,
5273  9 /*inMonth*/,
5274  0 /*onDayOfWeek*/,
5275  29 /*onDayOfMonth*/,
5276  8 /*atTimeCode*/,
5277  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5278  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5279  0 /*letterIndex ("")*/,
5280  },
5281  // Rule Morocco 2042 only - Aug 10 3:00 -1:00 -
5282  {
5283  -58 /*fromYearTiny (2042)*/,
5284  -58 /*toYearTiny (2042)*/,
5285  8 /*inMonth*/,
5286  0 /*onDayOfWeek*/,
5287  10 /*onDayOfMonth*/,
5288  12 /*atTimeCode*/,
5289  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5290  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5291  0 /*letterIndex ("")*/,
5292  },
5293  // Rule Morocco 2042 only - Sep 21 2:00 0 -
5294  {
5295  -58 /*fromYearTiny (2042)*/,
5296  -58 /*toYearTiny (2042)*/,
5297  9 /*inMonth*/,
5298  0 /*onDayOfWeek*/,
5299  21 /*onDayOfMonth*/,
5300  8 /*atTimeCode*/,
5301  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5302  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5303  0 /*letterIndex ("")*/,
5304  },
5305  // Rule Morocco 2043 only - Aug 2 3:00 -1:00 -
5306  {
5307  -57 /*fromYearTiny (2043)*/,
5308  -57 /*toYearTiny (2043)*/,
5309  8 /*inMonth*/,
5310  0 /*onDayOfWeek*/,
5311  2 /*onDayOfMonth*/,
5312  12 /*atTimeCode*/,
5313  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5314  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5315  0 /*letterIndex ("")*/,
5316  },
5317  // Rule Morocco 2043 only - Sep 13 2:00 0 -
5318  {
5319  -57 /*fromYearTiny (2043)*/,
5320  -57 /*toYearTiny (2043)*/,
5321  9 /*inMonth*/,
5322  0 /*onDayOfWeek*/,
5323  13 /*onDayOfMonth*/,
5324  8 /*atTimeCode*/,
5325  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5326  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5327  0 /*letterIndex ("")*/,
5328  },
5329  // Rule Morocco 2044 only - Jul 24 3:00 -1:00 -
5330  {
5331  -56 /*fromYearTiny (2044)*/,
5332  -56 /*toYearTiny (2044)*/,
5333  7 /*inMonth*/,
5334  0 /*onDayOfWeek*/,
5335  24 /*onDayOfMonth*/,
5336  12 /*atTimeCode*/,
5337  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5338  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5339  0 /*letterIndex ("")*/,
5340  },
5341  // Rule Morocco 2044 only - Aug 28 2:00 0 -
5342  {
5343  -56 /*fromYearTiny (2044)*/,
5344  -56 /*toYearTiny (2044)*/,
5345  8 /*inMonth*/,
5346  0 /*onDayOfWeek*/,
5347  28 /*onDayOfMonth*/,
5348  8 /*atTimeCode*/,
5349  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5350  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5351  0 /*letterIndex ("")*/,
5352  },
5353  // Rule Morocco 2045 only - Jul 9 3:00 -1:00 -
5354  {
5355  -55 /*fromYearTiny (2045)*/,
5356  -55 /*toYearTiny (2045)*/,
5357  7 /*inMonth*/,
5358  0 /*onDayOfWeek*/,
5359  9 /*onDayOfMonth*/,
5360  12 /*atTimeCode*/,
5361  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5362  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5363  0 /*letterIndex ("")*/,
5364  },
5365  // Rule Morocco 2045 only - Aug 20 2:00 0 -
5366  {
5367  -55 /*fromYearTiny (2045)*/,
5368  -55 /*toYearTiny (2045)*/,
5369  8 /*inMonth*/,
5370  0 /*onDayOfWeek*/,
5371  20 /*onDayOfMonth*/,
5372  8 /*atTimeCode*/,
5373  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5374  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5375  0 /*letterIndex ("")*/,
5376  },
5377  // Rule Morocco 2046 only - Jul 1 3:00 -1:00 -
5378  {
5379  -54 /*fromYearTiny (2046)*/,
5380  -54 /*toYearTiny (2046)*/,
5381  7 /*inMonth*/,
5382  0 /*onDayOfWeek*/,
5383  1 /*onDayOfMonth*/,
5384  12 /*atTimeCode*/,
5385  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5386  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5387  0 /*letterIndex ("")*/,
5388  },
5389  // Rule Morocco 2046 only - Aug 5 2:00 0 -
5390  {
5391  -54 /*fromYearTiny (2046)*/,
5392  -54 /*toYearTiny (2046)*/,
5393  8 /*inMonth*/,
5394  0 /*onDayOfWeek*/,
5395  5 /*onDayOfMonth*/,
5396  8 /*atTimeCode*/,
5397  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5398  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5399  0 /*letterIndex ("")*/,
5400  },
5401  // Rule Morocco 2047 only - Jun 23 3:00 -1:00 -
5402  {
5403  -53 /*fromYearTiny (2047)*/,
5404  -53 /*toYearTiny (2047)*/,
5405  6 /*inMonth*/,
5406  0 /*onDayOfWeek*/,
5407  23 /*onDayOfMonth*/,
5408  12 /*atTimeCode*/,
5409  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5410  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5411  0 /*letterIndex ("")*/,
5412  },
5413  // Rule Morocco 2047 only - Jul 28 2:00 0 -
5414  {
5415  -53 /*fromYearTiny (2047)*/,
5416  -53 /*toYearTiny (2047)*/,
5417  7 /*inMonth*/,
5418  0 /*onDayOfWeek*/,
5419  28 /*onDayOfMonth*/,
5420  8 /*atTimeCode*/,
5421  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5422  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5423  0 /*letterIndex ("")*/,
5424  },
5425  // Rule Morocco 2048 only - Jun 7 3:00 -1:00 -
5426  {
5427  -52 /*fromYearTiny (2048)*/,
5428  -52 /*toYearTiny (2048)*/,
5429  6 /*inMonth*/,
5430  0 /*onDayOfWeek*/,
5431  7 /*onDayOfMonth*/,
5432  12 /*atTimeCode*/,
5433  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5434  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5435  0 /*letterIndex ("")*/,
5436  },
5437  // Rule Morocco 2048 only - Jul 19 2:00 0 -
5438  {
5439  -52 /*fromYearTiny (2048)*/,
5440  -52 /*toYearTiny (2048)*/,
5441  7 /*inMonth*/,
5442  0 /*onDayOfWeek*/,
5443  19 /*onDayOfMonth*/,
5444  8 /*atTimeCode*/,
5445  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5446  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5447  0 /*letterIndex ("")*/,
5448  },
5449  // Rule Morocco 2049 only - May 30 3:00 -1:00 -
5450  {
5451  -51 /*fromYearTiny (2049)*/,
5452  -51 /*toYearTiny (2049)*/,
5453  5 /*inMonth*/,
5454  0 /*onDayOfWeek*/,
5455  30 /*onDayOfMonth*/,
5456  12 /*atTimeCode*/,
5457  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5458  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5459  0 /*letterIndex ("")*/,
5460  },
5461  // Rule Morocco 2049 only - Jul 4 2:00 0 -
5462  {
5463  -51 /*fromYearTiny (2049)*/,
5464  -51 /*toYearTiny (2049)*/,
5465  7 /*inMonth*/,
5466  0 /*onDayOfWeek*/,
5467  4 /*onDayOfMonth*/,
5468  8 /*atTimeCode*/,
5469  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5470  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5471  0 /*letterIndex ("")*/,
5472  },
5473  // Rule Morocco 2050 only - May 15 3:00 -1:00 -
5474  {
5475  -50 /*fromYearTiny (2050)*/,
5476  -50 /*toYearTiny (2050)*/,
5477  5 /*inMonth*/,
5478  0 /*onDayOfWeek*/,
5479  15 /*onDayOfMonth*/,
5480  12 /*atTimeCode*/,
5481  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5482  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5483  0 /*letterIndex ("")*/,
5484  },
5485  // Rule Morocco 2050 only - Jun 26 2:00 0 -
5486  {
5487  -50 /*fromYearTiny (2050)*/,
5488  -50 /*toYearTiny (2050)*/,
5489  6 /*inMonth*/,
5490  0 /*onDayOfWeek*/,
5491  26 /*onDayOfMonth*/,
5492  8 /*atTimeCode*/,
5493  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5494  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5495  0 /*letterIndex ("")*/,
5496  },
5497  // Rule Morocco 2051 only - May 7 3:00 -1:00 -
5498  {
5499  -49 /*fromYearTiny (2051)*/,
5500  -49 /*toYearTiny (2051)*/,
5501  5 /*inMonth*/,
5502  0 /*onDayOfWeek*/,
5503  7 /*onDayOfMonth*/,
5504  12 /*atTimeCode*/,
5505  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5506  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5507  0 /*letterIndex ("")*/,
5508  },
5509  // Rule Morocco 2051 only - Jun 18 2:00 0 -
5510  {
5511  -49 /*fromYearTiny (2051)*/,
5512  -49 /*toYearTiny (2051)*/,
5513  6 /*inMonth*/,
5514  0 /*onDayOfWeek*/,
5515  18 /*onDayOfMonth*/,
5516  8 /*atTimeCode*/,
5517  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5518  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5519  0 /*letterIndex ("")*/,
5520  },
5521  // Rule Morocco 2052 only - Apr 28 3:00 -1:00 -
5522  {
5523  -48 /*fromYearTiny (2052)*/,
5524  -48 /*toYearTiny (2052)*/,
5525  4 /*inMonth*/,
5526  0 /*onDayOfWeek*/,
5527  28 /*onDayOfMonth*/,
5528  12 /*atTimeCode*/,
5529  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5530  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5531  0 /*letterIndex ("")*/,
5532  },
5533  // Rule Morocco 2052 only - Jun 2 2:00 0 -
5534  {
5535  -48 /*fromYearTiny (2052)*/,
5536  -48 /*toYearTiny (2052)*/,
5537  6 /*inMonth*/,
5538  0 /*onDayOfWeek*/,
5539  2 /*onDayOfMonth*/,
5540  8 /*atTimeCode*/,
5541  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5542  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5543  0 /*letterIndex ("")*/,
5544  },
5545  // Rule Morocco 2053 only - Apr 13 3:00 -1:00 -
5546  {
5547  -47 /*fromYearTiny (2053)*/,
5548  -47 /*toYearTiny (2053)*/,
5549  4 /*inMonth*/,
5550  0 /*onDayOfWeek*/,
5551  13 /*onDayOfMonth*/,
5552  12 /*atTimeCode*/,
5553  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5554  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5555  0 /*letterIndex ("")*/,
5556  },
5557  // Rule Morocco 2053 only - May 25 2:00 0 -
5558  {
5559  -47 /*fromYearTiny (2053)*/,
5560  -47 /*toYearTiny (2053)*/,
5561  5 /*inMonth*/,
5562  0 /*onDayOfWeek*/,
5563  25 /*onDayOfMonth*/,
5564  8 /*atTimeCode*/,
5565  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5566  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5567  0 /*letterIndex ("")*/,
5568  },
5569  // Rule Morocco 2054 only - Apr 5 3:00 -1:00 -
5570  {
5571  -46 /*fromYearTiny (2054)*/,
5572  -46 /*toYearTiny (2054)*/,
5573  4 /*inMonth*/,
5574  0 /*onDayOfWeek*/,
5575  5 /*onDayOfMonth*/,
5576  12 /*atTimeCode*/,
5577  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5578  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5579  0 /*letterIndex ("")*/,
5580  },
5581  // Rule Morocco 2054 only - May 10 2:00 0 -
5582  {
5583  -46 /*fromYearTiny (2054)*/,
5584  -46 /*toYearTiny (2054)*/,
5585  5 /*inMonth*/,
5586  0 /*onDayOfWeek*/,
5587  10 /*onDayOfMonth*/,
5588  8 /*atTimeCode*/,
5589  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5590  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5591  0 /*letterIndex ("")*/,
5592  },
5593  // Rule Morocco 2055 only - Mar 28 3:00 -1:00 -
5594  {
5595  -45 /*fromYearTiny (2055)*/,
5596  -45 /*toYearTiny (2055)*/,
5597  3 /*inMonth*/,
5598  0 /*onDayOfWeek*/,
5599  28 /*onDayOfMonth*/,
5600  12 /*atTimeCode*/,
5601  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5602  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5603  0 /*letterIndex ("")*/,
5604  },
5605  // Rule Morocco 2055 only - May 2 2:00 0 -
5606  {
5607  -45 /*fromYearTiny (2055)*/,
5608  -45 /*toYearTiny (2055)*/,
5609  5 /*inMonth*/,
5610  0 /*onDayOfWeek*/,
5611  2 /*onDayOfMonth*/,
5612  8 /*atTimeCode*/,
5613  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5614  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5615  0 /*letterIndex ("")*/,
5616  },
5617  // Rule Morocco 2056 only - Mar 12 3:00 -1:00 -
5618  {
5619  -44 /*fromYearTiny (2056)*/,
5620  -44 /*toYearTiny (2056)*/,
5621  3 /*inMonth*/,
5622  0 /*onDayOfWeek*/,
5623  12 /*onDayOfMonth*/,
5624  12 /*atTimeCode*/,
5625  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5626  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5627  0 /*letterIndex ("")*/,
5628  },
5629  // Rule Morocco 2056 only - Apr 23 2:00 0 -
5630  {
5631  -44 /*fromYearTiny (2056)*/,
5632  -44 /*toYearTiny (2056)*/,
5633  4 /*inMonth*/,
5634  0 /*onDayOfWeek*/,
5635  23 /*onDayOfMonth*/,
5636  8 /*atTimeCode*/,
5637  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5638  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5639  0 /*letterIndex ("")*/,
5640  },
5641  // Rule Morocco 2057 only - Mar 4 3:00 -1:00 -
5642  {
5643  -43 /*fromYearTiny (2057)*/,
5644  -43 /*toYearTiny (2057)*/,
5645  3 /*inMonth*/,
5646  0 /*onDayOfWeek*/,
5647  4 /*onDayOfMonth*/,
5648  12 /*atTimeCode*/,
5649  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5650  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5651  0 /*letterIndex ("")*/,
5652  },
5653  // Rule Morocco 2057 only - Apr 8 2:00 0 -
5654  {
5655  -43 /*fromYearTiny (2057)*/,
5656  -43 /*toYearTiny (2057)*/,
5657  4 /*inMonth*/,
5658  0 /*onDayOfWeek*/,
5659  8 /*onDayOfMonth*/,
5660  8 /*atTimeCode*/,
5661  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5662  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5663  0 /*letterIndex ("")*/,
5664  },
5665  // Rule Morocco 2058 only - Feb 17 3:00 -1:00 -
5666  {
5667  -42 /*fromYearTiny (2058)*/,
5668  -42 /*toYearTiny (2058)*/,
5669  2 /*inMonth*/,
5670  0 /*onDayOfWeek*/,
5671  17 /*onDayOfMonth*/,
5672  12 /*atTimeCode*/,
5673  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5674  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5675  0 /*letterIndex ("")*/,
5676  },
5677  // Rule Morocco 2058 only - Mar 31 2:00 0 -
5678  {
5679  -42 /*fromYearTiny (2058)*/,
5680  -42 /*toYearTiny (2058)*/,
5681  3 /*inMonth*/,
5682  0 /*onDayOfWeek*/,
5683  31 /*onDayOfMonth*/,
5684  8 /*atTimeCode*/,
5685  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5686  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5687  0 /*letterIndex ("")*/,
5688  },
5689  // Rule Morocco 2059 only - Feb 9 3:00 -1:00 -
5690  {
5691  -41 /*fromYearTiny (2059)*/,
5692  -41 /*toYearTiny (2059)*/,
5693  2 /*inMonth*/,
5694  0 /*onDayOfWeek*/,
5695  9 /*onDayOfMonth*/,
5696  12 /*atTimeCode*/,
5697  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5698  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5699  0 /*letterIndex ("")*/,
5700  },
5701  // Rule Morocco 2059 only - Mar 23 2:00 0 -
5702  {
5703  -41 /*fromYearTiny (2059)*/,
5704  -41 /*toYearTiny (2059)*/,
5705  3 /*inMonth*/,
5706  0 /*onDayOfWeek*/,
5707  23 /*onDayOfMonth*/,
5708  8 /*atTimeCode*/,
5709  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5710  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5711  0 /*letterIndex ("")*/,
5712  },
5713  // Rule Morocco 2060 only - Feb 1 3:00 -1:00 -
5714  {
5715  -40 /*fromYearTiny (2060)*/,
5716  -40 /*toYearTiny (2060)*/,
5717  2 /*inMonth*/,
5718  0 /*onDayOfWeek*/,
5719  1 /*onDayOfMonth*/,
5720  12 /*atTimeCode*/,
5721  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5722  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5723  0 /*letterIndex ("")*/,
5724  },
5725  // Rule Morocco 2060 only - Mar 7 2:00 0 -
5726  {
5727  -40 /*fromYearTiny (2060)*/,
5728  -40 /*toYearTiny (2060)*/,
5729  3 /*inMonth*/,
5730  0 /*onDayOfWeek*/,
5731  7 /*onDayOfMonth*/,
5732  8 /*atTimeCode*/,
5733  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5734  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5735  0 /*letterIndex ("")*/,
5736  },
5737  // Rule Morocco 2061 only - Jan 16 3:00 -1:00 -
5738  {
5739  -39 /*fromYearTiny (2061)*/,
5740  -39 /*toYearTiny (2061)*/,
5741  1 /*inMonth*/,
5742  0 /*onDayOfWeek*/,
5743  16 /*onDayOfMonth*/,
5744  12 /*atTimeCode*/,
5745  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5746  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5747  0 /*letterIndex ("")*/,
5748  },
5749  // Rule Morocco 2061 only - Feb 27 2:00 0 -
5750  {
5751  -39 /*fromYearTiny (2061)*/,
5752  -39 /*toYearTiny (2061)*/,
5753  2 /*inMonth*/,
5754  0 /*onDayOfWeek*/,
5755  27 /*onDayOfMonth*/,
5756  8 /*atTimeCode*/,
5757  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5758  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5759  0 /*letterIndex ("")*/,
5760  },
5761  // Rule Morocco 2062 only - Jan 8 3:00 -1:00 -
5762  {
5763  -38 /*fromYearTiny (2062)*/,
5764  -38 /*toYearTiny (2062)*/,
5765  1 /*inMonth*/,
5766  0 /*onDayOfWeek*/,
5767  8 /*onDayOfMonth*/,
5768  12 /*atTimeCode*/,
5769  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5770  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5771  0 /*letterIndex ("")*/,
5772  },
5773  // Rule Morocco 2062 only - Feb 12 2:00 0 -
5774  {
5775  -38 /*fromYearTiny (2062)*/,
5776  -38 /*toYearTiny (2062)*/,
5777  2 /*inMonth*/,
5778  0 /*onDayOfWeek*/,
5779  12 /*onDayOfMonth*/,
5780  8 /*atTimeCode*/,
5781  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5782  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5783  0 /*letterIndex ("")*/,
5784  },
5785  // Rule Morocco 2062 only - Dec 31 3:00 -1:00 -
5786  {
5787  -38 /*fromYearTiny (2062)*/,
5788  -38 /*toYearTiny (2062)*/,
5789  12 /*inMonth*/,
5790  0 /*onDayOfWeek*/,
5791  31 /*onDayOfMonth*/,
5792  12 /*atTimeCode*/,
5793  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5794  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5795  0 /*letterIndex ("")*/,
5796  },
5797  // Rule Morocco 2063 only - Feb 4 2:00 0 -
5798  {
5799  -37 /*fromYearTiny (2063)*/,
5800  -37 /*toYearTiny (2063)*/,
5801  2 /*inMonth*/,
5802  0 /*onDayOfWeek*/,
5803  4 /*onDayOfMonth*/,
5804  8 /*atTimeCode*/,
5805  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5806  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5807  0 /*letterIndex ("")*/,
5808  },
5809  // Rule Morocco 2063 only - Dec 16 3:00 -1:00 -
5810  {
5811  -37 /*fromYearTiny (2063)*/,
5812  -37 /*toYearTiny (2063)*/,
5813  12 /*inMonth*/,
5814  0 /*onDayOfWeek*/,
5815  16 /*onDayOfMonth*/,
5816  12 /*atTimeCode*/,
5817  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5818  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5819  0 /*letterIndex ("")*/,
5820  },
5821  // Rule Morocco 2064 only - Jan 27 2:00 0 -
5822  {
5823  -36 /*fromYearTiny (2064)*/,
5824  -36 /*toYearTiny (2064)*/,
5825  1 /*inMonth*/,
5826  0 /*onDayOfWeek*/,
5827  27 /*onDayOfMonth*/,
5828  8 /*atTimeCode*/,
5829  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5830  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5831  0 /*letterIndex ("")*/,
5832  },
5833  // Rule Morocco 2064 only - Dec 7 3:00 -1:00 -
5834  {
5835  -36 /*fromYearTiny (2064)*/,
5836  -36 /*toYearTiny (2064)*/,
5837  12 /*inMonth*/,
5838  0 /*onDayOfWeek*/,
5839  7 /*onDayOfMonth*/,
5840  12 /*atTimeCode*/,
5841  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5842  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5843  0 /*letterIndex ("")*/,
5844  },
5845  // Rule Morocco 2065 only - Jan 11 2:00 0 -
5846  {
5847  -35 /*fromYearTiny (2065)*/,
5848  -35 /*toYearTiny (2065)*/,
5849  1 /*inMonth*/,
5850  0 /*onDayOfWeek*/,
5851  11 /*onDayOfMonth*/,
5852  8 /*atTimeCode*/,
5853  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5854  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5855  0 /*letterIndex ("")*/,
5856  },
5857  // Rule Morocco 2065 only - Nov 22 3:00 -1:00 -
5858  {
5859  -35 /*fromYearTiny (2065)*/,
5860  -35 /*toYearTiny (2065)*/,
5861  11 /*inMonth*/,
5862  0 /*onDayOfWeek*/,
5863  22 /*onDayOfMonth*/,
5864  12 /*atTimeCode*/,
5865  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5866  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5867  0 /*letterIndex ("")*/,
5868  },
5869  // Rule Morocco 2066 only - Jan 3 2:00 0 -
5870  {
5871  -34 /*fromYearTiny (2066)*/,
5872  -34 /*toYearTiny (2066)*/,
5873  1 /*inMonth*/,
5874  0 /*onDayOfWeek*/,
5875  3 /*onDayOfMonth*/,
5876  8 /*atTimeCode*/,
5877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5878  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5879  0 /*letterIndex ("")*/,
5880  },
5881  // Rule Morocco 2066 only - Nov 14 3:00 -1:00 -
5882  {
5883  -34 /*fromYearTiny (2066)*/,
5884  -34 /*toYearTiny (2066)*/,
5885  11 /*inMonth*/,
5886  0 /*onDayOfWeek*/,
5887  14 /*onDayOfMonth*/,
5888  12 /*atTimeCode*/,
5889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5890  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5891  0 /*letterIndex ("")*/,
5892  },
5893  // Rule Morocco 2066 only - Dec 26 2:00 0 -
5894  {
5895  -34 /*fromYearTiny (2066)*/,
5896  -34 /*toYearTiny (2066)*/,
5897  12 /*inMonth*/,
5898  0 /*onDayOfWeek*/,
5899  26 /*onDayOfMonth*/,
5900  8 /*atTimeCode*/,
5901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5903  0 /*letterIndex ("")*/,
5904  },
5905  // Rule Morocco 2067 only - Nov 6 3:00 -1:00 -
5906  {
5907  -33 /*fromYearTiny (2067)*/,
5908  -33 /*toYearTiny (2067)*/,
5909  11 /*inMonth*/,
5910  0 /*onDayOfWeek*/,
5911  6 /*onDayOfMonth*/,
5912  12 /*atTimeCode*/,
5913  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5914  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5915  0 /*letterIndex ("")*/,
5916  },
5917  // Rule Morocco 2067 only - Dec 11 2:00 0 -
5918  {
5919  -33 /*fromYearTiny (2067)*/,
5920  -33 /*toYearTiny (2067)*/,
5921  12 /*inMonth*/,
5922  0 /*onDayOfWeek*/,
5923  11 /*onDayOfMonth*/,
5924  8 /*atTimeCode*/,
5925  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5926  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5927  0 /*letterIndex ("")*/,
5928  },
5929  // Rule Morocco 2068 only - Oct 21 3:00 -1:00 -
5930  {
5931  -32 /*fromYearTiny (2068)*/,
5932  -32 /*toYearTiny (2068)*/,
5933  10 /*inMonth*/,
5934  0 /*onDayOfWeek*/,
5935  21 /*onDayOfMonth*/,
5936  12 /*atTimeCode*/,
5937  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5938  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5939  0 /*letterIndex ("")*/,
5940  },
5941  // Rule Morocco 2068 only - Dec 2 2:00 0 -
5942  {
5943  -32 /*fromYearTiny (2068)*/,
5944  -32 /*toYearTiny (2068)*/,
5945  12 /*inMonth*/,
5946  0 /*onDayOfWeek*/,
5947  2 /*onDayOfMonth*/,
5948  8 /*atTimeCode*/,
5949  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5950  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5951  0 /*letterIndex ("")*/,
5952  },
5953  // Rule Morocco 2069 only - Oct 13 3:00 -1:00 -
5954  {
5955  -31 /*fromYearTiny (2069)*/,
5956  -31 /*toYearTiny (2069)*/,
5957  10 /*inMonth*/,
5958  0 /*onDayOfWeek*/,
5959  13 /*onDayOfMonth*/,
5960  12 /*atTimeCode*/,
5961  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5962  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5963  0 /*letterIndex ("")*/,
5964  },
5965  // Rule Morocco 2069 only - Nov 17 2:00 0 -
5966  {
5967  -31 /*fromYearTiny (2069)*/,
5968  -31 /*toYearTiny (2069)*/,
5969  11 /*inMonth*/,
5970  0 /*onDayOfWeek*/,
5971  17 /*onDayOfMonth*/,
5972  8 /*atTimeCode*/,
5973  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5974  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5975  0 /*letterIndex ("")*/,
5976  },
5977  // Rule Morocco 2070 only - Oct 5 3:00 -1:00 -
5978  {
5979  -30 /*fromYearTiny (2070)*/,
5980  -30 /*toYearTiny (2070)*/,
5981  10 /*inMonth*/,
5982  0 /*onDayOfWeek*/,
5983  5 /*onDayOfMonth*/,
5984  12 /*atTimeCode*/,
5985  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5986  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
5987  0 /*letterIndex ("")*/,
5988  },
5989  // Rule Morocco 2070 only - Nov 9 2:00 0 -
5990  {
5991  -30 /*fromYearTiny (2070)*/,
5992  -30 /*toYearTiny (2070)*/,
5993  11 /*inMonth*/,
5994  0 /*onDayOfWeek*/,
5995  9 /*onDayOfMonth*/,
5996  8 /*atTimeCode*/,
5997  0 /*atTimeModifier (kSuffixW + minute=0)*/,
5998  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
5999  0 /*letterIndex ("")*/,
6000  },
6001  // Rule Morocco 2071 only - Sep 20 3:00 -1:00 -
6002  {
6003  -29 /*fromYearTiny (2071)*/,
6004  -29 /*toYearTiny (2071)*/,
6005  9 /*inMonth*/,
6006  0 /*onDayOfWeek*/,
6007  20 /*onDayOfMonth*/,
6008  12 /*atTimeCode*/,
6009  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6010  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6011  0 /*letterIndex ("")*/,
6012  },
6013  // Rule Morocco 2071 only - Nov 1 2:00 0 -
6014  {
6015  -29 /*fromYearTiny (2071)*/,
6016  -29 /*toYearTiny (2071)*/,
6017  11 /*inMonth*/,
6018  0 /*onDayOfWeek*/,
6019  1 /*onDayOfMonth*/,
6020  8 /*atTimeCode*/,
6021  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6022  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6023  0 /*letterIndex ("")*/,
6024  },
6025  // Rule Morocco 2072 only - Sep 11 3:00 -1:00 -
6026  {
6027  -28 /*fromYearTiny (2072)*/,
6028  -28 /*toYearTiny (2072)*/,
6029  9 /*inMonth*/,
6030  0 /*onDayOfWeek*/,
6031  11 /*onDayOfMonth*/,
6032  12 /*atTimeCode*/,
6033  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6034  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6035  0 /*letterIndex ("")*/,
6036  },
6037  // Rule Morocco 2072 only - Oct 16 2:00 0 -
6038  {
6039  -28 /*fromYearTiny (2072)*/,
6040  -28 /*toYearTiny (2072)*/,
6041  10 /*inMonth*/,
6042  0 /*onDayOfWeek*/,
6043  16 /*onDayOfMonth*/,
6044  8 /*atTimeCode*/,
6045  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6046  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6047  0 /*letterIndex ("")*/,
6048  },
6049  // Rule Morocco 2073 only - Aug 27 3:00 -1:00 -
6050  {
6051  -27 /*fromYearTiny (2073)*/,
6052  -27 /*toYearTiny (2073)*/,
6053  8 /*inMonth*/,
6054  0 /*onDayOfWeek*/,
6055  27 /*onDayOfMonth*/,
6056  12 /*atTimeCode*/,
6057  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6058  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6059  0 /*letterIndex ("")*/,
6060  },
6061  // Rule Morocco 2073 only - Oct 8 2:00 0 -
6062  {
6063  -27 /*fromYearTiny (2073)*/,
6064  -27 /*toYearTiny (2073)*/,
6065  10 /*inMonth*/,
6066  0 /*onDayOfWeek*/,
6067  8 /*onDayOfMonth*/,
6068  8 /*atTimeCode*/,
6069  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6070  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6071  0 /*letterIndex ("")*/,
6072  },
6073  // Rule Morocco 2074 only - Aug 19 3:00 -1:00 -
6074  {
6075  -26 /*fromYearTiny (2074)*/,
6076  -26 /*toYearTiny (2074)*/,
6077  8 /*inMonth*/,
6078  0 /*onDayOfWeek*/,
6079  19 /*onDayOfMonth*/,
6080  12 /*atTimeCode*/,
6081  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6082  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6083  0 /*letterIndex ("")*/,
6084  },
6085  // Rule Morocco 2074 only - Sep 30 2:00 0 -
6086  {
6087  -26 /*fromYearTiny (2074)*/,
6088  -26 /*toYearTiny (2074)*/,
6089  9 /*inMonth*/,
6090  0 /*onDayOfWeek*/,
6091  30 /*onDayOfMonth*/,
6092  8 /*atTimeCode*/,
6093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6095  0 /*letterIndex ("")*/,
6096  },
6097  // Rule Morocco 2075 only - Aug 11 3:00 -1:00 -
6098  {
6099  -25 /*fromYearTiny (2075)*/,
6100  -25 /*toYearTiny (2075)*/,
6101  8 /*inMonth*/,
6102  0 /*onDayOfWeek*/,
6103  11 /*onDayOfMonth*/,
6104  12 /*atTimeCode*/,
6105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6106  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6107  0 /*letterIndex ("")*/,
6108  },
6109  // Rule Morocco 2075 only - Sep 15 2:00 0 -
6110  {
6111  -25 /*fromYearTiny (2075)*/,
6112  -25 /*toYearTiny (2075)*/,
6113  9 /*inMonth*/,
6114  0 /*onDayOfWeek*/,
6115  15 /*onDayOfMonth*/,
6116  8 /*atTimeCode*/,
6117  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6118  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6119  0 /*letterIndex ("")*/,
6120  },
6121  // Rule Morocco 2076 only - Jul 26 3:00 -1:00 -
6122  {
6123  -24 /*fromYearTiny (2076)*/,
6124  -24 /*toYearTiny (2076)*/,
6125  7 /*inMonth*/,
6126  0 /*onDayOfWeek*/,
6127  26 /*onDayOfMonth*/,
6128  12 /*atTimeCode*/,
6129  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6130  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6131  0 /*letterIndex ("")*/,
6132  },
6133  // Rule Morocco 2076 only - Sep 6 2:00 0 -
6134  {
6135  -24 /*fromYearTiny (2076)*/,
6136  -24 /*toYearTiny (2076)*/,
6137  9 /*inMonth*/,
6138  0 /*onDayOfWeek*/,
6139  6 /*onDayOfMonth*/,
6140  8 /*atTimeCode*/,
6141  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6142  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6143  0 /*letterIndex ("")*/,
6144  },
6145  // Rule Morocco 2077 only - Jul 18 3:00 -1:00 -
6146  {
6147  -23 /*fromYearTiny (2077)*/,
6148  -23 /*toYearTiny (2077)*/,
6149  7 /*inMonth*/,
6150  0 /*onDayOfWeek*/,
6151  18 /*onDayOfMonth*/,
6152  12 /*atTimeCode*/,
6153  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6154  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6155  0 /*letterIndex ("")*/,
6156  },
6157  // Rule Morocco 2077 only - Aug 22 2:00 0 -
6158  {
6159  -23 /*fromYearTiny (2077)*/,
6160  -23 /*toYearTiny (2077)*/,
6161  8 /*inMonth*/,
6162  0 /*onDayOfWeek*/,
6163  22 /*onDayOfMonth*/,
6164  8 /*atTimeCode*/,
6165  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6166  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6167  0 /*letterIndex ("")*/,
6168  },
6169  // Rule Morocco 2078 only - Jul 10 3:00 -1:00 -
6170  {
6171  -22 /*fromYearTiny (2078)*/,
6172  -22 /*toYearTiny (2078)*/,
6173  7 /*inMonth*/,
6174  0 /*onDayOfWeek*/,
6175  10 /*onDayOfMonth*/,
6176  12 /*atTimeCode*/,
6177  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6178  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6179  0 /*letterIndex ("")*/,
6180  },
6181  // Rule Morocco 2078 only - Aug 14 2:00 0 -
6182  {
6183  -22 /*fromYearTiny (2078)*/,
6184  -22 /*toYearTiny (2078)*/,
6185  8 /*inMonth*/,
6186  0 /*onDayOfWeek*/,
6187  14 /*onDayOfMonth*/,
6188  8 /*atTimeCode*/,
6189  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6190  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6191  0 /*letterIndex ("")*/,
6192  },
6193  // Rule Morocco 2079 only - Jun 25 3:00 -1:00 -
6194  {
6195  -21 /*fromYearTiny (2079)*/,
6196  -21 /*toYearTiny (2079)*/,
6197  6 /*inMonth*/,
6198  0 /*onDayOfWeek*/,
6199  25 /*onDayOfMonth*/,
6200  12 /*atTimeCode*/,
6201  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6202  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6203  0 /*letterIndex ("")*/,
6204  },
6205  // Rule Morocco 2079 only - Aug 6 2:00 0 -
6206  {
6207  -21 /*fromYearTiny (2079)*/,
6208  -21 /*toYearTiny (2079)*/,
6209  8 /*inMonth*/,
6210  0 /*onDayOfWeek*/,
6211  6 /*onDayOfMonth*/,
6212  8 /*atTimeCode*/,
6213  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6214  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6215  0 /*letterIndex ("")*/,
6216  },
6217  // Rule Morocco 2080 only - Jun 16 3:00 -1:00 -
6218  {
6219  -20 /*fromYearTiny (2080)*/,
6220  -20 /*toYearTiny (2080)*/,
6221  6 /*inMonth*/,
6222  0 /*onDayOfWeek*/,
6223  16 /*onDayOfMonth*/,
6224  12 /*atTimeCode*/,
6225  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6226  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6227  0 /*letterIndex ("")*/,
6228  },
6229  // Rule Morocco 2080 only - Jul 21 2:00 0 -
6230  {
6231  -20 /*fromYearTiny (2080)*/,
6232  -20 /*toYearTiny (2080)*/,
6233  7 /*inMonth*/,
6234  0 /*onDayOfWeek*/,
6235  21 /*onDayOfMonth*/,
6236  8 /*atTimeCode*/,
6237  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6238  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6239  0 /*letterIndex ("")*/,
6240  },
6241  // Rule Morocco 2081 only - Jun 1 3:00 -1:00 -
6242  {
6243  -19 /*fromYearTiny (2081)*/,
6244  -19 /*toYearTiny (2081)*/,
6245  6 /*inMonth*/,
6246  0 /*onDayOfWeek*/,
6247  1 /*onDayOfMonth*/,
6248  12 /*atTimeCode*/,
6249  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6250  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6251  0 /*letterIndex ("")*/,
6252  },
6253  // Rule Morocco 2081 only - Jul 13 2:00 0 -
6254  {
6255  -19 /*fromYearTiny (2081)*/,
6256  -19 /*toYearTiny (2081)*/,
6257  7 /*inMonth*/,
6258  0 /*onDayOfWeek*/,
6259  13 /*onDayOfMonth*/,
6260  8 /*atTimeCode*/,
6261  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6262  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6263  0 /*letterIndex ("")*/,
6264  },
6265  // Rule Morocco 2082 only - May 24 3:00 -1:00 -
6266  {
6267  -18 /*fromYearTiny (2082)*/,
6268  -18 /*toYearTiny (2082)*/,
6269  5 /*inMonth*/,
6270  0 /*onDayOfWeek*/,
6271  24 /*onDayOfMonth*/,
6272  12 /*atTimeCode*/,
6273  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6274  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6275  0 /*letterIndex ("")*/,
6276  },
6277  // Rule Morocco 2082 only - Jun 28 2:00 0 -
6278  {
6279  -18 /*fromYearTiny (2082)*/,
6280  -18 /*toYearTiny (2082)*/,
6281  6 /*inMonth*/,
6282  0 /*onDayOfWeek*/,
6283  28 /*onDayOfMonth*/,
6284  8 /*atTimeCode*/,
6285  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6286  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6287  0 /*letterIndex ("")*/,
6288  },
6289  // Rule Morocco 2083 only - May 16 3:00 -1:00 -
6290  {
6291  -17 /*fromYearTiny (2083)*/,
6292  -17 /*toYearTiny (2083)*/,
6293  5 /*inMonth*/,
6294  0 /*onDayOfWeek*/,
6295  16 /*onDayOfMonth*/,
6296  12 /*atTimeCode*/,
6297  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6298  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6299  0 /*letterIndex ("")*/,
6300  },
6301  // Rule Morocco 2083 only - Jun 20 2:00 0 -
6302  {
6303  -17 /*fromYearTiny (2083)*/,
6304  -17 /*toYearTiny (2083)*/,
6305  6 /*inMonth*/,
6306  0 /*onDayOfWeek*/,
6307  20 /*onDayOfMonth*/,
6308  8 /*atTimeCode*/,
6309  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6310  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6311  0 /*letterIndex ("")*/,
6312  },
6313  // Rule Morocco 2084 only - Apr 30 3:00 -1:00 -
6314  {
6315  -16 /*fromYearTiny (2084)*/,
6316  -16 /*toYearTiny (2084)*/,
6317  4 /*inMonth*/,
6318  0 /*onDayOfWeek*/,
6319  30 /*onDayOfMonth*/,
6320  12 /*atTimeCode*/,
6321  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6322  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6323  0 /*letterIndex ("")*/,
6324  },
6325  // Rule Morocco 2084 only - Jun 11 2:00 0 -
6326  {
6327  -16 /*fromYearTiny (2084)*/,
6328  -16 /*toYearTiny (2084)*/,
6329  6 /*inMonth*/,
6330  0 /*onDayOfWeek*/,
6331  11 /*onDayOfMonth*/,
6332  8 /*atTimeCode*/,
6333  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6334  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6335  0 /*letterIndex ("")*/,
6336  },
6337  // Rule Morocco 2085 only - Apr 22 3:00 -1:00 -
6338  {
6339  -15 /*fromYearTiny (2085)*/,
6340  -15 /*toYearTiny (2085)*/,
6341  4 /*inMonth*/,
6342  0 /*onDayOfWeek*/,
6343  22 /*onDayOfMonth*/,
6344  12 /*atTimeCode*/,
6345  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6346  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6347  0 /*letterIndex ("")*/,
6348  },
6349  // Rule Morocco 2085 only - May 27 2:00 0 -
6350  {
6351  -15 /*fromYearTiny (2085)*/,
6352  -15 /*toYearTiny (2085)*/,
6353  5 /*inMonth*/,
6354  0 /*onDayOfWeek*/,
6355  27 /*onDayOfMonth*/,
6356  8 /*atTimeCode*/,
6357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6358  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6359  0 /*letterIndex ("")*/,
6360  },
6361  // Rule Morocco 2086 only - Apr 14 3:00 -1:00 -
6362  {
6363  -14 /*fromYearTiny (2086)*/,
6364  -14 /*toYearTiny (2086)*/,
6365  4 /*inMonth*/,
6366  0 /*onDayOfWeek*/,
6367  14 /*onDayOfMonth*/,
6368  12 /*atTimeCode*/,
6369  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6370  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6371  0 /*letterIndex ("")*/,
6372  },
6373  // Rule Morocco 2086 only - May 19 2:00 0 -
6374  {
6375  -14 /*fromYearTiny (2086)*/,
6376  -14 /*toYearTiny (2086)*/,
6377  5 /*inMonth*/,
6378  0 /*onDayOfWeek*/,
6379  19 /*onDayOfMonth*/,
6380  8 /*atTimeCode*/,
6381  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6382  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6383  0 /*letterIndex ("")*/,
6384  },
6385  // Rule Morocco 2087 only - Mar 30 3:00 -1:00 -
6386  {
6387  -13 /*fromYearTiny (2087)*/,
6388  -13 /*toYearTiny (2087)*/,
6389  3 /*inMonth*/,
6390  0 /*onDayOfWeek*/,
6391  30 /*onDayOfMonth*/,
6392  12 /*atTimeCode*/,
6393  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6394  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6395  0 /*letterIndex ("")*/,
6396  },
6397  // Rule Morocco 2087 only - May 11 2:00 0 -
6398  {
6399  -13 /*fromYearTiny (2087)*/,
6400  -13 /*toYearTiny (2087)*/,
6401  5 /*inMonth*/,
6402  0 /*onDayOfWeek*/,
6403  11 /*onDayOfMonth*/,
6404  8 /*atTimeCode*/,
6405  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6406  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6407  0 /*letterIndex ("")*/,
6408  },
6409 
6410 };
6411 
6412 const extended::Info::ZonePolicy kZonePolicyMorocco ACE_TIME_PROGMEM = {
6413  kZoneRulesMorocco /*rules*/,
6414  170 /*numRules*/,
6415 };
6416 
6417 //---------------------------------------------------------------------------
6418 // Policy name: NC
6419 // Rules: 1
6420 //---------------------------------------------------------------------------
6421 
6422 static const extended::Info::ZoneRule kZoneRulesNC[] ACE_TIME_PROGMEM = {
6423  // Anchor: Rule NC 1997 only - Mar 2 2:00s 0 -
6424  {
6425  -127 /*fromYearTiny (-32767)*/,
6426  -127 /*toYearTiny (-32767)*/,
6427  1 /*inMonth*/,
6428  0 /*onDayOfWeek*/,
6429  1 /*onDayOfMonth*/,
6430  0 /*atTimeCode*/,
6431  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6432  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6433  0 /*letterIndex ("")*/,
6434  },
6435 
6436 };
6437 
6438 const extended::Info::ZonePolicy kZonePolicyNC ACE_TIME_PROGMEM = {
6439  kZoneRulesNC /*rules*/,
6440  1 /*numRules*/,
6441 };
6442 
6443 //---------------------------------------------------------------------------
6444 // Policy name: NT_YK
6445 // Rules: 4
6446 //---------------------------------------------------------------------------
6447 
6448 static const extended::Info::ZoneRule kZoneRulesNT_YK[] ACE_TIME_PROGMEM = {
6449  // Anchor: Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S
6450  {
6451  -127 /*fromYearTiny (-32767)*/,
6452  -127 /*toYearTiny (-32767)*/,
6453  1 /*inMonth*/,
6454  0 /*onDayOfWeek*/,
6455  1 /*onDayOfMonth*/,
6456  0 /*atTimeCode*/,
6457  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6458  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6459  7 /*letterIndex ("S")*/,
6460  },
6461  // Rule NT_YK 1972 1986 - Apr lastSun 2:00 1:00 D
6462  {
6463  -127 /*fromYearTiny (1972)*/,
6464  -114 /*toYearTiny (1986)*/,
6465  4 /*inMonth*/,
6466  7 /*onDayOfWeek*/,
6467  0 /*onDayOfMonth*/,
6468  8 /*atTimeCode*/,
6469  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6470  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6471  5 /*letterIndex ("D")*/,
6472  },
6473  // Rule NT_YK 1972 2006 - Oct lastSun 2:00 0 S
6474  {
6475  -127 /*fromYearTiny (1972)*/,
6476  -94 /*toYearTiny (2006)*/,
6477  10 /*inMonth*/,
6478  7 /*onDayOfWeek*/,
6479  0 /*onDayOfMonth*/,
6480  8 /*atTimeCode*/,
6481  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6482  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6483  7 /*letterIndex ("S")*/,
6484  },
6485  // Rule NT_YK 1987 2006 - Apr Sun>=1 2:00 1:00 D
6486  {
6487  -113 /*fromYearTiny (1987)*/,
6488  -94 /*toYearTiny (2006)*/,
6489  4 /*inMonth*/,
6490  7 /*onDayOfWeek*/,
6491  1 /*onDayOfMonth*/,
6492  8 /*atTimeCode*/,
6493  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6494  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6495  5 /*letterIndex ("D")*/,
6496  },
6497 
6498 };
6499 
6500 const extended::Info::ZonePolicy kZonePolicyNT_YK ACE_TIME_PROGMEM = {
6501  kZoneRulesNT_YK /*rules*/,
6502  4 /*numRules*/,
6503 };
6504 
6505 //---------------------------------------------------------------------------
6506 // Policy name: NZ
6507 // Rules: 6
6508 //---------------------------------------------------------------------------
6509 
6510 static const extended::Info::ZoneRule kZoneRulesNZ[] ACE_TIME_PROGMEM = {
6511  // Anchor: Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
6512  {
6513  -127 /*fromYearTiny (-32767)*/,
6514  -127 /*toYearTiny (-32767)*/,
6515  1 /*inMonth*/,
6516  0 /*onDayOfWeek*/,
6517  1 /*onDayOfMonth*/,
6518  0 /*atTimeCode*/,
6519  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6520  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6521  7 /*letterIndex ("S")*/,
6522  },
6523  // Rule NZ 1989 only - Oct Sun>=8 2:00s 1:00 D
6524  {
6525  -111 /*fromYearTiny (1989)*/,
6526  -111 /*toYearTiny (1989)*/,
6527  10 /*inMonth*/,
6528  7 /*onDayOfWeek*/,
6529  8 /*onDayOfMonth*/,
6530  8 /*atTimeCode*/,
6531  16 /*atTimeModifier (kSuffixS + minute=0)*/,
6532  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6533  5 /*letterIndex ("D")*/,
6534  },
6535  // Rule NZ 1990 2006 - Oct Sun>=1 2:00s 1:00 D
6536  {
6537  -110 /*fromYearTiny (1990)*/,
6538  -94 /*toYearTiny (2006)*/,
6539  10 /*inMonth*/,
6540  7 /*onDayOfWeek*/,
6541  1 /*onDayOfMonth*/,
6542  8 /*atTimeCode*/,
6543  16 /*atTimeModifier (kSuffixS + minute=0)*/,
6544  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6545  5 /*letterIndex ("D")*/,
6546  },
6547  // Rule NZ 1990 2007 - Mar Sun>=15 2:00s 0 S
6548  {
6549  -110 /*fromYearTiny (1990)*/,
6550  -93 /*toYearTiny (2007)*/,
6551  3 /*inMonth*/,
6552  7 /*onDayOfWeek*/,
6553  15 /*onDayOfMonth*/,
6554  8 /*atTimeCode*/,
6555  16 /*atTimeModifier (kSuffixS + minute=0)*/,
6556  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6557  7 /*letterIndex ("S")*/,
6558  },
6559  // Rule NZ 2007 max - Sep lastSun 2:00s 1:00 D
6560  {
6561  -93 /*fromYearTiny (2007)*/,
6562  126 /*toYearTiny (32766)*/,
6563  9 /*inMonth*/,
6564  7 /*onDayOfWeek*/,
6565  0 /*onDayOfMonth*/,
6566  8 /*atTimeCode*/,
6567  16 /*atTimeModifier (kSuffixS + minute=0)*/,
6568  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6569  5 /*letterIndex ("D")*/,
6570  },
6571  // Rule NZ 2008 max - Apr Sun>=1 2:00s 0 S
6572  {
6573  -92 /*fromYearTiny (2008)*/,
6574  126 /*toYearTiny (32766)*/,
6575  4 /*inMonth*/,
6576  7 /*onDayOfWeek*/,
6577  1 /*onDayOfMonth*/,
6578  8 /*atTimeCode*/,
6579  16 /*atTimeModifier (kSuffixS + minute=0)*/,
6580  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6581  7 /*letterIndex ("S")*/,
6582  },
6583 
6584 };
6585 
6586 const extended::Info::ZonePolicy kZonePolicyNZ ACE_TIME_PROGMEM = {
6587  kZoneRulesNZ /*rules*/,
6588  6 /*numRules*/,
6589 };
6590 
6591 //---------------------------------------------------------------------------
6592 // Policy name: Namibia
6593 // Rules: 4
6594 //---------------------------------------------------------------------------
6595 
6596 static const extended::Info::ZoneRule kZoneRulesNamibia[] ACE_TIME_PROGMEM = {
6597  // Anchor: Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
6598  {
6599  -127 /*fromYearTiny (-32767)*/,
6600  -127 /*toYearTiny (-32767)*/,
6601  1 /*inMonth*/,
6602  0 /*onDayOfWeek*/,
6603  1 /*onDayOfMonth*/,
6604  0 /*atTimeCode*/,
6605  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6606  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6607  3 /*letterIndex ("CAT")*/,
6608  },
6609  // Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT
6610  {
6611  -106 /*fromYearTiny (1994)*/,
6612  -106 /*toYearTiny (1994)*/,
6613  3 /*inMonth*/,
6614  0 /*onDayOfWeek*/,
6615  21 /*onDayOfMonth*/,
6616  0 /*atTimeCode*/,
6617  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6618  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6619  8 /*letterIndex ("WAT")*/,
6620  },
6621  // Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT
6622  {
6623  -106 /*fromYearTiny (1994)*/,
6624  -83 /*toYearTiny (2017)*/,
6625  9 /*inMonth*/,
6626  7 /*onDayOfWeek*/,
6627  1 /*onDayOfMonth*/,
6628  8 /*atTimeCode*/,
6629  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6630  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6631  3 /*letterIndex ("CAT")*/,
6632  },
6633  // Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT
6634  {
6635  -105 /*fromYearTiny (1995)*/,
6636  -83 /*toYearTiny (2017)*/,
6637  4 /*inMonth*/,
6638  7 /*onDayOfWeek*/,
6639  1 /*onDayOfMonth*/,
6640  8 /*atTimeCode*/,
6641  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6642  0 /*deltaCode ((deltaMinutes=-60)/15 + 4)*/,
6643  8 /*letterIndex ("WAT")*/,
6644  },
6645 
6646 };
6647 
6648 const extended::Info::ZonePolicy kZonePolicyNamibia ACE_TIME_PROGMEM = {
6649  kZoneRulesNamibia /*rules*/,
6650  4 /*numRules*/,
6651 };
6652 
6653 //---------------------------------------------------------------------------
6654 // Policy name: Nic
6655 // Rules: 6
6656 //---------------------------------------------------------------------------
6657 
6658 static const extended::Info::ZoneRule kZoneRulesNic[] ACE_TIME_PROGMEM = {
6659  // Anchor: Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
6660  {
6661  -127 /*fromYearTiny (-32767)*/,
6662  -127 /*toYearTiny (-32767)*/,
6663  1 /*inMonth*/,
6664  0 /*onDayOfWeek*/,
6665  1 /*onDayOfMonth*/,
6666  0 /*atTimeCode*/,
6667  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6668  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6669  7 /*letterIndex ("S")*/,
6670  },
6671  // Rule Nic 1979 1980 - Jun Mon>=23 0:00 0 S
6672  {
6673  -121 /*fromYearTiny (1979)*/,
6674  -120 /*toYearTiny (1980)*/,
6675  6 /*inMonth*/,
6676  1 /*onDayOfWeek*/,
6677  23 /*onDayOfMonth*/,
6678  0 /*atTimeCode*/,
6679  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6680  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6681  7 /*letterIndex ("S")*/,
6682  },
6683  // Rule Nic 2005 only - Apr 10 0:00 1:00 D
6684  {
6685  -95 /*fromYearTiny (2005)*/,
6686  -95 /*toYearTiny (2005)*/,
6687  4 /*inMonth*/,
6688  0 /*onDayOfWeek*/,
6689  10 /*onDayOfMonth*/,
6690  0 /*atTimeCode*/,
6691  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6692  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6693  5 /*letterIndex ("D")*/,
6694  },
6695  // Rule Nic 2005 only - Oct Sun>=1 0:00 0 S
6696  {
6697  -95 /*fromYearTiny (2005)*/,
6698  -95 /*toYearTiny (2005)*/,
6699  10 /*inMonth*/,
6700  7 /*onDayOfWeek*/,
6701  1 /*onDayOfMonth*/,
6702  0 /*atTimeCode*/,
6703  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6704  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6705  7 /*letterIndex ("S")*/,
6706  },
6707  // Rule Nic 2006 only - Apr 30 2:00 1:00 D
6708  {
6709  -94 /*fromYearTiny (2006)*/,
6710  -94 /*toYearTiny (2006)*/,
6711  4 /*inMonth*/,
6712  0 /*onDayOfWeek*/,
6713  30 /*onDayOfMonth*/,
6714  8 /*atTimeCode*/,
6715  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6716  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6717  5 /*letterIndex ("D")*/,
6718  },
6719  // Rule Nic 2006 only - Oct Sun>=1 1:00 0 S
6720  {
6721  -94 /*fromYearTiny (2006)*/,
6722  -94 /*toYearTiny (2006)*/,
6723  10 /*inMonth*/,
6724  7 /*onDayOfWeek*/,
6725  1 /*onDayOfMonth*/,
6726  4 /*atTimeCode*/,
6727  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6728  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6729  7 /*letterIndex ("S")*/,
6730  },
6731 
6732 };
6733 
6734 const extended::Info::ZonePolicy kZonePolicyNic ACE_TIME_PROGMEM = {
6735  kZoneRulesNic /*rules*/,
6736  6 /*numRules*/,
6737 };
6738 
6739 //---------------------------------------------------------------------------
6740 // Policy name: PRC
6741 // Rules: 1
6742 //---------------------------------------------------------------------------
6743 
6744 static const extended::Info::ZoneRule kZoneRulesPRC[] ACE_TIME_PROGMEM = {
6745  // Anchor: Rule PRC 1986 1991 - Sep Sun>=11 2:00 0 S
6746  {
6747  -127 /*fromYearTiny (-32767)*/,
6748  -127 /*toYearTiny (-32767)*/,
6749  1 /*inMonth*/,
6750  0 /*onDayOfWeek*/,
6751  1 /*onDayOfMonth*/,
6752  0 /*atTimeCode*/,
6753  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6754  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6755  7 /*letterIndex ("S")*/,
6756  },
6757 
6758 };
6759 
6760 const extended::Info::ZonePolicy kZonePolicyPRC ACE_TIME_PROGMEM = {
6761  kZoneRulesPRC /*rules*/,
6762  1 /*numRules*/,
6763 };
6764 
6765 //---------------------------------------------------------------------------
6766 // Policy name: Pakistan
6767 // Rules: 6
6768 //---------------------------------------------------------------------------
6769 
6770 static const extended::Info::ZoneRule kZoneRulesPakistan[] ACE_TIME_PROGMEM = {
6771  // Anchor: Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
6772  {
6773  -127 /*fromYearTiny (-32767)*/,
6774  -127 /*toYearTiny (-32767)*/,
6775  1 /*inMonth*/,
6776  0 /*onDayOfWeek*/,
6777  1 /*onDayOfMonth*/,
6778  0 /*atTimeCode*/,
6779  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6780  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6781  0 /*letterIndex ("")*/,
6782  },
6783  // Rule Pakistan 2002 only - Apr Sun>=2 0:00 1:00 S
6784  {
6785  -98 /*fromYearTiny (2002)*/,
6786  -98 /*toYearTiny (2002)*/,
6787  4 /*inMonth*/,
6788  7 /*onDayOfWeek*/,
6789  2 /*onDayOfMonth*/,
6790  0 /*atTimeCode*/,
6791  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6792  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6793  7 /*letterIndex ("S")*/,
6794  },
6795  // Rule Pakistan 2002 only - Oct Sun>=2 0:00 0 -
6796  {
6797  -98 /*fromYearTiny (2002)*/,
6798  -98 /*toYearTiny (2002)*/,
6799  10 /*inMonth*/,
6800  7 /*onDayOfWeek*/,
6801  2 /*onDayOfMonth*/,
6802  0 /*atTimeCode*/,
6803  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6804  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6805  0 /*letterIndex ("")*/,
6806  },
6807  // Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
6808  {
6809  -92 /*fromYearTiny (2008)*/,
6810  -92 /*toYearTiny (2008)*/,
6811  6 /*inMonth*/,
6812  0 /*onDayOfWeek*/,
6813  1 /*onDayOfMonth*/,
6814  0 /*atTimeCode*/,
6815  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6816  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6817  7 /*letterIndex ("S")*/,
6818  },
6819  // Rule Pakistan 2008 2009 - Nov 1 0:00 0 -
6820  {
6821  -92 /*fromYearTiny (2008)*/,
6822  -91 /*toYearTiny (2009)*/,
6823  11 /*inMonth*/,
6824  0 /*onDayOfWeek*/,
6825  1 /*onDayOfMonth*/,
6826  0 /*atTimeCode*/,
6827  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6828  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6829  0 /*letterIndex ("")*/,
6830  },
6831  // Rule Pakistan 2009 only - Apr 15 0:00 1:00 S
6832  {
6833  -91 /*fromYearTiny (2009)*/,
6834  -91 /*toYearTiny (2009)*/,
6835  4 /*inMonth*/,
6836  0 /*onDayOfWeek*/,
6837  15 /*onDayOfMonth*/,
6838  0 /*atTimeCode*/,
6839  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6840  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6841  7 /*letterIndex ("S")*/,
6842  },
6843 
6844 };
6845 
6846 const extended::Info::ZonePolicy kZonePolicyPakistan ACE_TIME_PROGMEM = {
6847  kZoneRulesPakistan /*rules*/,
6848  6 /*numRules*/,
6849 };
6850 
6851 //---------------------------------------------------------------------------
6852 // Policy name: Palestine
6853 // Rules: 111
6854 //---------------------------------------------------------------------------
6855 
6856 static const extended::Info::ZoneRule kZoneRulesPalestine[] ACE_TIME_PROGMEM = {
6857  // Anchor: Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
6858  {
6859  -127 /*fromYearTiny (-32767)*/,
6860  -127 /*toYearTiny (-32767)*/,
6861  1 /*inMonth*/,
6862  0 /*onDayOfWeek*/,
6863  1 /*onDayOfMonth*/,
6864  0 /*atTimeCode*/,
6865  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6866  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6867  0 /*letterIndex ("")*/,
6868  },
6869  // Rule Palestine 1999 2005 - Apr Fri>=15 0:00 1:00 S
6870  {
6871  -101 /*fromYearTiny (1999)*/,
6872  -95 /*toYearTiny (2005)*/,
6873  4 /*inMonth*/,
6874  5 /*onDayOfWeek*/,
6875  15 /*onDayOfMonth*/,
6876  0 /*atTimeCode*/,
6877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6878  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6879  7 /*letterIndex ("S")*/,
6880  },
6881  // Rule Palestine 1999 2003 - Oct Fri>=15 0:00 0 -
6882  {
6883  -101 /*fromYearTiny (1999)*/,
6884  -97 /*toYearTiny (2003)*/,
6885  10 /*inMonth*/,
6886  5 /*onDayOfWeek*/,
6887  15 /*onDayOfMonth*/,
6888  0 /*atTimeCode*/,
6889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6890  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6891  0 /*letterIndex ("")*/,
6892  },
6893  // Rule Palestine 2004 only - Oct 1 1:00 0 -
6894  {
6895  -96 /*fromYearTiny (2004)*/,
6896  -96 /*toYearTiny (2004)*/,
6897  10 /*inMonth*/,
6898  0 /*onDayOfWeek*/,
6899  1 /*onDayOfMonth*/,
6900  4 /*atTimeCode*/,
6901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6903  0 /*letterIndex ("")*/,
6904  },
6905  // Rule Palestine 2005 only - Oct 4 2:00 0 -
6906  {
6907  -95 /*fromYearTiny (2005)*/,
6908  -95 /*toYearTiny (2005)*/,
6909  10 /*inMonth*/,
6910  0 /*onDayOfWeek*/,
6911  4 /*onDayOfMonth*/,
6912  8 /*atTimeCode*/,
6913  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6914  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6915  0 /*letterIndex ("")*/,
6916  },
6917  // Rule Palestine 2006 2007 - Apr 1 0:00 1:00 S
6918  {
6919  -94 /*fromYearTiny (2006)*/,
6920  -93 /*toYearTiny (2007)*/,
6921  4 /*inMonth*/,
6922  0 /*onDayOfWeek*/,
6923  1 /*onDayOfMonth*/,
6924  0 /*atTimeCode*/,
6925  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6926  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6927  7 /*letterIndex ("S")*/,
6928  },
6929  // Rule Palestine 2006 only - Sep 22 0:00 0 -
6930  {
6931  -94 /*fromYearTiny (2006)*/,
6932  -94 /*toYearTiny (2006)*/,
6933  9 /*inMonth*/,
6934  0 /*onDayOfWeek*/,
6935  22 /*onDayOfMonth*/,
6936  0 /*atTimeCode*/,
6937  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6938  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6939  0 /*letterIndex ("")*/,
6940  },
6941  // Rule Palestine 2007 only - Sep 13 2:00 0 -
6942  {
6943  -93 /*fromYearTiny (2007)*/,
6944  -93 /*toYearTiny (2007)*/,
6945  9 /*inMonth*/,
6946  0 /*onDayOfWeek*/,
6947  13 /*onDayOfMonth*/,
6948  8 /*atTimeCode*/,
6949  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6950  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6951  0 /*letterIndex ("")*/,
6952  },
6953  // Rule Palestine 2008 2009 - Mar lastFri 0:00 1:00 S
6954  {
6955  -92 /*fromYearTiny (2008)*/,
6956  -91 /*toYearTiny (2009)*/,
6957  3 /*inMonth*/,
6958  5 /*onDayOfWeek*/,
6959  0 /*onDayOfMonth*/,
6960  0 /*atTimeCode*/,
6961  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6962  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6963  7 /*letterIndex ("S")*/,
6964  },
6965  // Rule Palestine 2008 only - Sep 1 0:00 0 -
6966  {
6967  -92 /*fromYearTiny (2008)*/,
6968  -92 /*toYearTiny (2008)*/,
6969  9 /*inMonth*/,
6970  0 /*onDayOfWeek*/,
6971  1 /*onDayOfMonth*/,
6972  0 /*atTimeCode*/,
6973  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6974  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6975  0 /*letterIndex ("")*/,
6976  },
6977  // Rule Palestine 2009 only - Sep 4 1:00 0 -
6978  {
6979  -91 /*fromYearTiny (2009)*/,
6980  -91 /*toYearTiny (2009)*/,
6981  9 /*inMonth*/,
6982  0 /*onDayOfWeek*/,
6983  4 /*onDayOfMonth*/,
6984  4 /*atTimeCode*/,
6985  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6986  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
6987  0 /*letterIndex ("")*/,
6988  },
6989  // Rule Palestine 2010 only - Mar 26 0:00 1:00 S
6990  {
6991  -90 /*fromYearTiny (2010)*/,
6992  -90 /*toYearTiny (2010)*/,
6993  3 /*inMonth*/,
6994  0 /*onDayOfWeek*/,
6995  26 /*onDayOfMonth*/,
6996  0 /*atTimeCode*/,
6997  0 /*atTimeModifier (kSuffixW + minute=0)*/,
6998  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
6999  7 /*letterIndex ("S")*/,
7000  },
7001  // Rule Palestine 2010 only - Aug 11 0:00 0 -
7002  {
7003  -90 /*fromYearTiny (2010)*/,
7004  -90 /*toYearTiny (2010)*/,
7005  8 /*inMonth*/,
7006  0 /*onDayOfWeek*/,
7007  11 /*onDayOfMonth*/,
7008  0 /*atTimeCode*/,
7009  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7010  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7011  0 /*letterIndex ("")*/,
7012  },
7013  // Rule Palestine 2011 only - Apr 1 0:01 1:00 S
7014  {
7015  -89 /*fromYearTiny (2011)*/,
7016  -89 /*toYearTiny (2011)*/,
7017  4 /*inMonth*/,
7018  0 /*onDayOfWeek*/,
7019  1 /*onDayOfMonth*/,
7020  0 /*atTimeCode*/,
7021  1 /*atTimeModifier (kSuffixW + minute=1)*/,
7022  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7023  7 /*letterIndex ("S")*/,
7024  },
7025  // Rule Palestine 2011 only - Aug 1 0:00 0 -
7026  {
7027  -89 /*fromYearTiny (2011)*/,
7028  -89 /*toYearTiny (2011)*/,
7029  8 /*inMonth*/,
7030  0 /*onDayOfWeek*/,
7031  1 /*onDayOfMonth*/,
7032  0 /*atTimeCode*/,
7033  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7034  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7035  0 /*letterIndex ("")*/,
7036  },
7037  // Rule Palestine 2011 only - Aug 30 0:00 1:00 S
7038  {
7039  -89 /*fromYearTiny (2011)*/,
7040  -89 /*toYearTiny (2011)*/,
7041  8 /*inMonth*/,
7042  0 /*onDayOfWeek*/,
7043  30 /*onDayOfMonth*/,
7044  0 /*atTimeCode*/,
7045  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7046  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7047  7 /*letterIndex ("S")*/,
7048  },
7049  // Rule Palestine 2011 only - Sep 30 0:00 0 -
7050  {
7051  -89 /*fromYearTiny (2011)*/,
7052  -89 /*toYearTiny (2011)*/,
7053  9 /*inMonth*/,
7054  0 /*onDayOfWeek*/,
7055  30 /*onDayOfMonth*/,
7056  0 /*atTimeCode*/,
7057  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7058  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7059  0 /*letterIndex ("")*/,
7060  },
7061  // Rule Palestine 2012 2014 - Mar lastThu 24:00 1:00 S
7062  {
7063  -88 /*fromYearTiny (2012)*/,
7064  -86 /*toYearTiny (2014)*/,
7065  3 /*inMonth*/,
7066  4 /*onDayOfWeek*/,
7067  0 /*onDayOfMonth*/,
7068  96 /*atTimeCode*/,
7069  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7070  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7071  7 /*letterIndex ("S")*/,
7072  },
7073  // Rule Palestine 2012 only - Sep 21 1:00 0 -
7074  {
7075  -88 /*fromYearTiny (2012)*/,
7076  -88 /*toYearTiny (2012)*/,
7077  9 /*inMonth*/,
7078  0 /*onDayOfWeek*/,
7079  21 /*onDayOfMonth*/,
7080  4 /*atTimeCode*/,
7081  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7082  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7083  0 /*letterIndex ("")*/,
7084  },
7085  // Rule Palestine 2013 only - Sep 27 0:00 0 -
7086  {
7087  -87 /*fromYearTiny (2013)*/,
7088  -87 /*toYearTiny (2013)*/,
7089  9 /*inMonth*/,
7090  0 /*onDayOfWeek*/,
7091  27 /*onDayOfMonth*/,
7092  0 /*atTimeCode*/,
7093  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7094  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7095  0 /*letterIndex ("")*/,
7096  },
7097  // Rule Palestine 2014 only - Oct 24 0:00 0 -
7098  {
7099  -86 /*fromYearTiny (2014)*/,
7100  -86 /*toYearTiny (2014)*/,
7101  10 /*inMonth*/,
7102  0 /*onDayOfWeek*/,
7103  24 /*onDayOfMonth*/,
7104  0 /*atTimeCode*/,
7105  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7106  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7107  0 /*letterIndex ("")*/,
7108  },
7109  // Rule Palestine 2015 only - Mar 28 0:00 1:00 S
7110  {
7111  -85 /*fromYearTiny (2015)*/,
7112  -85 /*toYearTiny (2015)*/,
7113  3 /*inMonth*/,
7114  0 /*onDayOfWeek*/,
7115  28 /*onDayOfMonth*/,
7116  0 /*atTimeCode*/,
7117  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7118  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7119  7 /*letterIndex ("S")*/,
7120  },
7121  // Rule Palestine 2015 only - Oct 23 1:00 0 -
7122  {
7123  -85 /*fromYearTiny (2015)*/,
7124  -85 /*toYearTiny (2015)*/,
7125  10 /*inMonth*/,
7126  0 /*onDayOfWeek*/,
7127  23 /*onDayOfMonth*/,
7128  4 /*atTimeCode*/,
7129  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7130  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7131  0 /*letterIndex ("")*/,
7132  },
7133  // Rule Palestine 2016 2018 - Mar Sat<=30 1:00 1:00 S
7134  {
7135  -84 /*fromYearTiny (2016)*/,
7136  -82 /*toYearTiny (2018)*/,
7137  3 /*inMonth*/,
7138  6 /*onDayOfWeek*/,
7139  -30 /*onDayOfMonth*/,
7140  4 /*atTimeCode*/,
7141  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7142  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7143  7 /*letterIndex ("S")*/,
7144  },
7145  // Rule Palestine 2016 2018 - Oct Sat<=30 1:00 0 -
7146  {
7147  -84 /*fromYearTiny (2016)*/,
7148  -82 /*toYearTiny (2018)*/,
7149  10 /*inMonth*/,
7150  6 /*onDayOfWeek*/,
7151  -30 /*onDayOfMonth*/,
7152  4 /*atTimeCode*/,
7153  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7154  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7155  0 /*letterIndex ("")*/,
7156  },
7157  // Rule Palestine 2019 only - Mar 29 0:00 1:00 S
7158  {
7159  -81 /*fromYearTiny (2019)*/,
7160  -81 /*toYearTiny (2019)*/,
7161  3 /*inMonth*/,
7162  0 /*onDayOfWeek*/,
7163  29 /*onDayOfMonth*/,
7164  0 /*atTimeCode*/,
7165  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7166  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7167  7 /*letterIndex ("S")*/,
7168  },
7169  // Rule Palestine 2019 only - Oct Sat<=30 0:00 0 -
7170  {
7171  -81 /*fromYearTiny (2019)*/,
7172  -81 /*toYearTiny (2019)*/,
7173  10 /*inMonth*/,
7174  6 /*onDayOfWeek*/,
7175  -30 /*onDayOfMonth*/,
7176  0 /*atTimeCode*/,
7177  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7178  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7179  0 /*letterIndex ("")*/,
7180  },
7181  // Rule Palestine 2020 2021 - Mar Sat<=30 0:00 1:00 S
7182  {
7183  -80 /*fromYearTiny (2020)*/,
7184  -79 /*toYearTiny (2021)*/,
7185  3 /*inMonth*/,
7186  6 /*onDayOfWeek*/,
7187  -30 /*onDayOfMonth*/,
7188  0 /*atTimeCode*/,
7189  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7190  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7191  7 /*letterIndex ("S")*/,
7192  },
7193  // Rule Palestine 2020 only - Oct 24 1:00 0 -
7194  {
7195  -80 /*fromYearTiny (2020)*/,
7196  -80 /*toYearTiny (2020)*/,
7197  10 /*inMonth*/,
7198  0 /*onDayOfWeek*/,
7199  24 /*onDayOfMonth*/,
7200  4 /*atTimeCode*/,
7201  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7202  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7203  0 /*letterIndex ("")*/,
7204  },
7205  // Rule Palestine 2021 only - Oct 29 1:00 0 -
7206  {
7207  -79 /*fromYearTiny (2021)*/,
7208  -79 /*toYearTiny (2021)*/,
7209  10 /*inMonth*/,
7210  0 /*onDayOfWeek*/,
7211  29 /*onDayOfMonth*/,
7212  4 /*atTimeCode*/,
7213  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7214  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7215  0 /*letterIndex ("")*/,
7216  },
7217  // Rule Palestine 2022 only - Mar 27 0:00 1:00 S
7218  {
7219  -78 /*fromYearTiny (2022)*/,
7220  -78 /*toYearTiny (2022)*/,
7221  3 /*inMonth*/,
7222  0 /*onDayOfWeek*/,
7223  27 /*onDayOfMonth*/,
7224  0 /*atTimeCode*/,
7225  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7226  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7227  7 /*letterIndex ("S")*/,
7228  },
7229  // Rule Palestine 2022 2035 - Oct Sat<=30 2:00 0 -
7230  {
7231  -78 /*fromYearTiny (2022)*/,
7232  -65 /*toYearTiny (2035)*/,
7233  10 /*inMonth*/,
7234  6 /*onDayOfWeek*/,
7235  -30 /*onDayOfMonth*/,
7236  8 /*atTimeCode*/,
7237  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7238  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7239  0 /*letterIndex ("")*/,
7240  },
7241  // Rule Palestine 2023 only - Apr 29 2:00 1:00 S
7242  {
7243  -77 /*fromYearTiny (2023)*/,
7244  -77 /*toYearTiny (2023)*/,
7245  4 /*inMonth*/,
7246  0 /*onDayOfWeek*/,
7247  29 /*onDayOfMonth*/,
7248  8 /*atTimeCode*/,
7249  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7250  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7251  7 /*letterIndex ("S")*/,
7252  },
7253  // Rule Palestine 2024 only - Apr 20 2:00 1:00 S
7254  {
7255  -76 /*fromYearTiny (2024)*/,
7256  -76 /*toYearTiny (2024)*/,
7257  4 /*inMonth*/,
7258  0 /*onDayOfWeek*/,
7259  20 /*onDayOfMonth*/,
7260  8 /*atTimeCode*/,
7261  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7262  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7263  7 /*letterIndex ("S")*/,
7264  },
7265  // Rule Palestine 2025 only - Apr 12 2:00 1:00 S
7266  {
7267  -75 /*fromYearTiny (2025)*/,
7268  -75 /*toYearTiny (2025)*/,
7269  4 /*inMonth*/,
7270  0 /*onDayOfWeek*/,
7271  12 /*onDayOfMonth*/,
7272  8 /*atTimeCode*/,
7273  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7274  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7275  7 /*letterIndex ("S")*/,
7276  },
7277  // Rule Palestine 2026 2054 - Mar Sat<=30 2:00 1:00 S
7278  {
7279  -74 /*fromYearTiny (2026)*/,
7280  -46 /*toYearTiny (2054)*/,
7281  3 /*inMonth*/,
7282  6 /*onDayOfWeek*/,
7283  -30 /*onDayOfMonth*/,
7284  8 /*atTimeCode*/,
7285  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7286  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7287  7 /*letterIndex ("S")*/,
7288  },
7289  // Rule Palestine 2036 only - Oct 18 2:00 0 -
7290  {
7291  -64 /*fromYearTiny (2036)*/,
7292  -64 /*toYearTiny (2036)*/,
7293  10 /*inMonth*/,
7294  0 /*onDayOfWeek*/,
7295  18 /*onDayOfMonth*/,
7296  8 /*atTimeCode*/,
7297  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7298  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7299  0 /*letterIndex ("")*/,
7300  },
7301  // Rule Palestine 2037 only - Oct 10 2:00 0 -
7302  {
7303  -63 /*fromYearTiny (2037)*/,
7304  -63 /*toYearTiny (2037)*/,
7305  10 /*inMonth*/,
7306  0 /*onDayOfWeek*/,
7307  10 /*onDayOfMonth*/,
7308  8 /*atTimeCode*/,
7309  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7310  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7311  0 /*letterIndex ("")*/,
7312  },
7313  // Rule Palestine 2038 only - Sep 25 2:00 0 -
7314  {
7315  -62 /*fromYearTiny (2038)*/,
7316  -62 /*toYearTiny (2038)*/,
7317  9 /*inMonth*/,
7318  0 /*onDayOfWeek*/,
7319  25 /*onDayOfMonth*/,
7320  8 /*atTimeCode*/,
7321  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7322  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7323  0 /*letterIndex ("")*/,
7324  },
7325  // Rule Palestine 2039 only - Sep 17 2:00 0 -
7326  {
7327  -61 /*fromYearTiny (2039)*/,
7328  -61 /*toYearTiny (2039)*/,
7329  9 /*inMonth*/,
7330  0 /*onDayOfWeek*/,
7331  17 /*onDayOfMonth*/,
7332  8 /*atTimeCode*/,
7333  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7334  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7335  0 /*letterIndex ("")*/,
7336  },
7337  // Rule Palestine 2040 only - Sep 1 2:00 0 -
7338  {
7339  -60 /*fromYearTiny (2040)*/,
7340  -60 /*toYearTiny (2040)*/,
7341  9 /*inMonth*/,
7342  0 /*onDayOfWeek*/,
7343  1 /*onDayOfMonth*/,
7344  8 /*atTimeCode*/,
7345  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7346  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7347  0 /*letterIndex ("")*/,
7348  },
7349  // Rule Palestine 2040 only - Oct 20 2:00 1:00 S
7350  {
7351  -60 /*fromYearTiny (2040)*/,
7352  -60 /*toYearTiny (2040)*/,
7353  10 /*inMonth*/,
7354  0 /*onDayOfWeek*/,
7355  20 /*onDayOfMonth*/,
7356  8 /*atTimeCode*/,
7357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7358  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7359  7 /*letterIndex ("S")*/,
7360  },
7361  // Rule Palestine 2040 2067 - Oct Sat<=30 2:00 0 -
7362  {
7363  -60 /*fromYearTiny (2040)*/,
7364  -33 /*toYearTiny (2067)*/,
7365  10 /*inMonth*/,
7366  6 /*onDayOfWeek*/,
7367  -30 /*onDayOfMonth*/,
7368  8 /*atTimeCode*/,
7369  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7370  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7371  0 /*letterIndex ("")*/,
7372  },
7373  // Rule Palestine 2041 only - Aug 24 2:00 0 -
7374  {
7375  -59 /*fromYearTiny (2041)*/,
7376  -59 /*toYearTiny (2041)*/,
7377  8 /*inMonth*/,
7378  0 /*onDayOfWeek*/,
7379  24 /*onDayOfMonth*/,
7380  8 /*atTimeCode*/,
7381  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7382  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7383  0 /*letterIndex ("")*/,
7384  },
7385  // Rule Palestine 2041 only - Oct 5 2:00 1:00 S
7386  {
7387  -59 /*fromYearTiny (2041)*/,
7388  -59 /*toYearTiny (2041)*/,
7389  10 /*inMonth*/,
7390  0 /*onDayOfWeek*/,
7391  5 /*onDayOfMonth*/,
7392  8 /*atTimeCode*/,
7393  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7394  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7395  7 /*letterIndex ("S")*/,
7396  },
7397  // Rule Palestine 2042 only - Aug 16 2:00 0 -
7398  {
7399  -58 /*fromYearTiny (2042)*/,
7400  -58 /*toYearTiny (2042)*/,
7401  8 /*inMonth*/,
7402  0 /*onDayOfWeek*/,
7403  16 /*onDayOfMonth*/,
7404  8 /*atTimeCode*/,
7405  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7406  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7407  0 /*letterIndex ("")*/,
7408  },
7409  // Rule Palestine 2042 only - Sep 27 2:00 1:00 S
7410  {
7411  -58 /*fromYearTiny (2042)*/,
7412  -58 /*toYearTiny (2042)*/,
7413  9 /*inMonth*/,
7414  0 /*onDayOfWeek*/,
7415  27 /*onDayOfMonth*/,
7416  8 /*atTimeCode*/,
7417  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7418  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7419  7 /*letterIndex ("S")*/,
7420  },
7421  // Rule Palestine 2043 only - Aug 1 2:00 0 -
7422  {
7423  -57 /*fromYearTiny (2043)*/,
7424  -57 /*toYearTiny (2043)*/,
7425  8 /*inMonth*/,
7426  0 /*onDayOfWeek*/,
7427  1 /*onDayOfMonth*/,
7428  8 /*atTimeCode*/,
7429  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7430  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7431  0 /*letterIndex ("")*/,
7432  },
7433  // Rule Palestine 2043 only - Sep 19 2:00 1:00 S
7434  {
7435  -57 /*fromYearTiny (2043)*/,
7436  -57 /*toYearTiny (2043)*/,
7437  9 /*inMonth*/,
7438  0 /*onDayOfWeek*/,
7439  19 /*onDayOfMonth*/,
7440  8 /*atTimeCode*/,
7441  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7442  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7443  7 /*letterIndex ("S")*/,
7444  },
7445  // Rule Palestine 2044 only - Jul 23 2:00 0 -
7446  {
7447  -56 /*fromYearTiny (2044)*/,
7448  -56 /*toYearTiny (2044)*/,
7449  7 /*inMonth*/,
7450  0 /*onDayOfWeek*/,
7451  23 /*onDayOfMonth*/,
7452  8 /*atTimeCode*/,
7453  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7454  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7455  0 /*letterIndex ("")*/,
7456  },
7457  // Rule Palestine 2044 only - Sep 3 2:00 1:00 S
7458  {
7459  -56 /*fromYearTiny (2044)*/,
7460  -56 /*toYearTiny (2044)*/,
7461  9 /*inMonth*/,
7462  0 /*onDayOfWeek*/,
7463  3 /*onDayOfMonth*/,
7464  8 /*atTimeCode*/,
7465  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7466  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7467  7 /*letterIndex ("S")*/,
7468  },
7469  // Rule Palestine 2045 only - Jul 15 2:00 0 -
7470  {
7471  -55 /*fromYearTiny (2045)*/,
7472  -55 /*toYearTiny (2045)*/,
7473  7 /*inMonth*/,
7474  0 /*onDayOfWeek*/,
7475  15 /*onDayOfMonth*/,
7476  8 /*atTimeCode*/,
7477  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7478  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7479  0 /*letterIndex ("")*/,
7480  },
7481  // Rule Palestine 2045 only - Aug 26 2:00 1:00 S
7482  {
7483  -55 /*fromYearTiny (2045)*/,
7484  -55 /*toYearTiny (2045)*/,
7485  8 /*inMonth*/,
7486  0 /*onDayOfWeek*/,
7487  26 /*onDayOfMonth*/,
7488  8 /*atTimeCode*/,
7489  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7490  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7491  7 /*letterIndex ("S")*/,
7492  },
7493  // Rule Palestine 2046 only - Jun 30 2:00 0 -
7494  {
7495  -54 /*fromYearTiny (2046)*/,
7496  -54 /*toYearTiny (2046)*/,
7497  6 /*inMonth*/,
7498  0 /*onDayOfWeek*/,
7499  30 /*onDayOfMonth*/,
7500  8 /*atTimeCode*/,
7501  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7502  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7503  0 /*letterIndex ("")*/,
7504  },
7505  // Rule Palestine 2046 only - Aug 18 2:00 1:00 S
7506  {
7507  -54 /*fromYearTiny (2046)*/,
7508  -54 /*toYearTiny (2046)*/,
7509  8 /*inMonth*/,
7510  0 /*onDayOfWeek*/,
7511  18 /*onDayOfMonth*/,
7512  8 /*atTimeCode*/,
7513  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7514  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7515  7 /*letterIndex ("S")*/,
7516  },
7517  // Rule Palestine 2047 only - Jun 22 2:00 0 -
7518  {
7519  -53 /*fromYearTiny (2047)*/,
7520  -53 /*toYearTiny (2047)*/,
7521  6 /*inMonth*/,
7522  0 /*onDayOfWeek*/,
7523  22 /*onDayOfMonth*/,
7524  8 /*atTimeCode*/,
7525  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7526  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7527  0 /*letterIndex ("")*/,
7528  },
7529  // Rule Palestine 2047 only - Aug 3 2:00 1:00 S
7530  {
7531  -53 /*fromYearTiny (2047)*/,
7532  -53 /*toYearTiny (2047)*/,
7533  8 /*inMonth*/,
7534  0 /*onDayOfWeek*/,
7535  3 /*onDayOfMonth*/,
7536  8 /*atTimeCode*/,
7537  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7538  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7539  7 /*letterIndex ("S")*/,
7540  },
7541  // Rule Palestine 2048 only - Jun 6 2:00 0 -
7542  {
7543  -52 /*fromYearTiny (2048)*/,
7544  -52 /*toYearTiny (2048)*/,
7545  6 /*inMonth*/,
7546  0 /*onDayOfWeek*/,
7547  6 /*onDayOfMonth*/,
7548  8 /*atTimeCode*/,
7549  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7550  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7551  0 /*letterIndex ("")*/,
7552  },
7553  // Rule Palestine 2048 only - Jul 25 2:00 1:00 S
7554  {
7555  -52 /*fromYearTiny (2048)*/,
7556  -52 /*toYearTiny (2048)*/,
7557  7 /*inMonth*/,
7558  0 /*onDayOfWeek*/,
7559  25 /*onDayOfMonth*/,
7560  8 /*atTimeCode*/,
7561  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7562  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7563  7 /*letterIndex ("S")*/,
7564  },
7565  // Rule Palestine 2049 only - May 29 2:00 0 -
7566  {
7567  -51 /*fromYearTiny (2049)*/,
7568  -51 /*toYearTiny (2049)*/,
7569  5 /*inMonth*/,
7570  0 /*onDayOfWeek*/,
7571  29 /*onDayOfMonth*/,
7572  8 /*atTimeCode*/,
7573  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7574  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7575  0 /*letterIndex ("")*/,
7576  },
7577  // Rule Palestine 2049 only - Jul 10 2:00 1:00 S
7578  {
7579  -51 /*fromYearTiny (2049)*/,
7580  -51 /*toYearTiny (2049)*/,
7581  7 /*inMonth*/,
7582  0 /*onDayOfWeek*/,
7583  10 /*onDayOfMonth*/,
7584  8 /*atTimeCode*/,
7585  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7586  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7587  7 /*letterIndex ("S")*/,
7588  },
7589  // Rule Palestine 2050 only - May 21 2:00 0 -
7590  {
7591  -50 /*fromYearTiny (2050)*/,
7592  -50 /*toYearTiny (2050)*/,
7593  5 /*inMonth*/,
7594  0 /*onDayOfWeek*/,
7595  21 /*onDayOfMonth*/,
7596  8 /*atTimeCode*/,
7597  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7598  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7599  0 /*letterIndex ("")*/,
7600  },
7601  // Rule Palestine 2050 only - Jul 2 2:00 1:00 S
7602  {
7603  -50 /*fromYearTiny (2050)*/,
7604  -50 /*toYearTiny (2050)*/,
7605  7 /*inMonth*/,
7606  0 /*onDayOfWeek*/,
7607  2 /*onDayOfMonth*/,
7608  8 /*atTimeCode*/,
7609  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7610  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7611  7 /*letterIndex ("S")*/,
7612  },
7613  // Rule Palestine 2051 only - May 6 2:00 0 -
7614  {
7615  -49 /*fromYearTiny (2051)*/,
7616  -49 /*toYearTiny (2051)*/,
7617  5 /*inMonth*/,
7618  0 /*onDayOfWeek*/,
7619  6 /*onDayOfMonth*/,
7620  8 /*atTimeCode*/,
7621  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7622  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7623  0 /*letterIndex ("")*/,
7624  },
7625  // Rule Palestine 2051 only - Jun 24 2:00 1:00 S
7626  {
7627  -49 /*fromYearTiny (2051)*/,
7628  -49 /*toYearTiny (2051)*/,
7629  6 /*inMonth*/,
7630  0 /*onDayOfWeek*/,
7631  24 /*onDayOfMonth*/,
7632  8 /*atTimeCode*/,
7633  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7634  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7635  7 /*letterIndex ("S")*/,
7636  },
7637  // Rule Palestine 2052 only - Apr 27 2:00 0 -
7638  {
7639  -48 /*fromYearTiny (2052)*/,
7640  -48 /*toYearTiny (2052)*/,
7641  4 /*inMonth*/,
7642  0 /*onDayOfWeek*/,
7643  27 /*onDayOfMonth*/,
7644  8 /*atTimeCode*/,
7645  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7646  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7647  0 /*letterIndex ("")*/,
7648  },
7649  // Rule Palestine 2052 only - Jun 8 2:00 1:00 S
7650  {
7651  -48 /*fromYearTiny (2052)*/,
7652  -48 /*toYearTiny (2052)*/,
7653  6 /*inMonth*/,
7654  0 /*onDayOfWeek*/,
7655  8 /*onDayOfMonth*/,
7656  8 /*atTimeCode*/,
7657  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7658  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7659  7 /*letterIndex ("S")*/,
7660  },
7661  // Rule Palestine 2053 only - Apr 12 2:00 0 -
7662  {
7663  -47 /*fromYearTiny (2053)*/,
7664  -47 /*toYearTiny (2053)*/,
7665  4 /*inMonth*/,
7666  0 /*onDayOfWeek*/,
7667  12 /*onDayOfMonth*/,
7668  8 /*atTimeCode*/,
7669  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7670  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7671  0 /*letterIndex ("")*/,
7672  },
7673  // Rule Palestine 2053 only - May 31 2:00 1:00 S
7674  {
7675  -47 /*fromYearTiny (2053)*/,
7676  -47 /*toYearTiny (2053)*/,
7677  5 /*inMonth*/,
7678  0 /*onDayOfWeek*/,
7679  31 /*onDayOfMonth*/,
7680  8 /*atTimeCode*/,
7681  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7682  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7683  7 /*letterIndex ("S")*/,
7684  },
7685  // Rule Palestine 2054 only - Apr 4 2:00 0 -
7686  {
7687  -46 /*fromYearTiny (2054)*/,
7688  -46 /*toYearTiny (2054)*/,
7689  4 /*inMonth*/,
7690  0 /*onDayOfWeek*/,
7691  4 /*onDayOfMonth*/,
7692  8 /*atTimeCode*/,
7693  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7694  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7695  0 /*letterIndex ("")*/,
7696  },
7697  // Rule Palestine 2054 only - May 23 2:00 1:00 S
7698  {
7699  -46 /*fromYearTiny (2054)*/,
7700  -46 /*toYearTiny (2054)*/,
7701  5 /*inMonth*/,
7702  0 /*onDayOfWeek*/,
7703  23 /*onDayOfMonth*/,
7704  8 /*atTimeCode*/,
7705  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7706  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7707  7 /*letterIndex ("S")*/,
7708  },
7709  // Rule Palestine 2055 only - May 8 2:00 1:00 S
7710  {
7711  -45 /*fromYearTiny (2055)*/,
7712  -45 /*toYearTiny (2055)*/,
7713  5 /*inMonth*/,
7714  0 /*onDayOfWeek*/,
7715  8 /*onDayOfMonth*/,
7716  8 /*atTimeCode*/,
7717  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7718  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7719  7 /*letterIndex ("S")*/,
7720  },
7721  // Rule Palestine 2056 only - Apr 29 2:00 1:00 S
7722  {
7723  -44 /*fromYearTiny (2056)*/,
7724  -44 /*toYearTiny (2056)*/,
7725  4 /*inMonth*/,
7726  0 /*onDayOfWeek*/,
7727  29 /*onDayOfMonth*/,
7728  8 /*atTimeCode*/,
7729  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7730  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7731  7 /*letterIndex ("S")*/,
7732  },
7733  // Rule Palestine 2057 only - Apr 14 2:00 1:00 S
7734  {
7735  -43 /*fromYearTiny (2057)*/,
7736  -43 /*toYearTiny (2057)*/,
7737  4 /*inMonth*/,
7738  0 /*onDayOfWeek*/,
7739  14 /*onDayOfMonth*/,
7740  8 /*atTimeCode*/,
7741  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7742  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7743  7 /*letterIndex ("S")*/,
7744  },
7745  // Rule Palestine 2058 only - Apr 6 2:00 1:00 S
7746  {
7747  -42 /*fromYearTiny (2058)*/,
7748  -42 /*toYearTiny (2058)*/,
7749  4 /*inMonth*/,
7750  0 /*onDayOfWeek*/,
7751  6 /*onDayOfMonth*/,
7752  8 /*atTimeCode*/,
7753  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7754  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7755  7 /*letterIndex ("S")*/,
7756  },
7757  // Rule Palestine 2059 max - Mar Sat<=30 2:00 1:00 S
7758  {
7759  -41 /*fromYearTiny (2059)*/,
7760  126 /*toYearTiny (32766)*/,
7761  3 /*inMonth*/,
7762  6 /*onDayOfWeek*/,
7763  -30 /*onDayOfMonth*/,
7764  8 /*atTimeCode*/,
7765  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7766  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7767  7 /*letterIndex ("S")*/,
7768  },
7769  // Rule Palestine 2068 only - Oct 20 2:00 0 -
7770  {
7771  -32 /*fromYearTiny (2068)*/,
7772  -32 /*toYearTiny (2068)*/,
7773  10 /*inMonth*/,
7774  0 /*onDayOfWeek*/,
7775  20 /*onDayOfMonth*/,
7776  8 /*atTimeCode*/,
7777  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7778  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7779  0 /*letterIndex ("")*/,
7780  },
7781  // Rule Palestine 2069 only - Oct 12 2:00 0 -
7782  {
7783  -31 /*fromYearTiny (2069)*/,
7784  -31 /*toYearTiny (2069)*/,
7785  10 /*inMonth*/,
7786  0 /*onDayOfWeek*/,
7787  12 /*onDayOfMonth*/,
7788  8 /*atTimeCode*/,
7789  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7790  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7791  0 /*letterIndex ("")*/,
7792  },
7793  // Rule Palestine 2070 only - Oct 4 2:00 0 -
7794  {
7795  -30 /*fromYearTiny (2070)*/,
7796  -30 /*toYearTiny (2070)*/,
7797  10 /*inMonth*/,
7798  0 /*onDayOfWeek*/,
7799  4 /*onDayOfMonth*/,
7800  8 /*atTimeCode*/,
7801  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7802  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7803  0 /*letterIndex ("")*/,
7804  },
7805  // Rule Palestine 2071 only - Sep 19 2:00 0 -
7806  {
7807  -29 /*fromYearTiny (2071)*/,
7808  -29 /*toYearTiny (2071)*/,
7809  9 /*inMonth*/,
7810  0 /*onDayOfWeek*/,
7811  19 /*onDayOfMonth*/,
7812  8 /*atTimeCode*/,
7813  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7814  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7815  0 /*letterIndex ("")*/,
7816  },
7817  // Rule Palestine 2072 only - Sep 10 2:00 0 -
7818  {
7819  -28 /*fromYearTiny (2072)*/,
7820  -28 /*toYearTiny (2072)*/,
7821  9 /*inMonth*/,
7822  0 /*onDayOfWeek*/,
7823  10 /*onDayOfMonth*/,
7824  8 /*atTimeCode*/,
7825  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7826  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7827  0 /*letterIndex ("")*/,
7828  },
7829  // Rule Palestine 2072 only - Oct 22 2:00 1:00 S
7830  {
7831  -28 /*fromYearTiny (2072)*/,
7832  -28 /*toYearTiny (2072)*/,
7833  10 /*inMonth*/,
7834  0 /*onDayOfWeek*/,
7835  22 /*onDayOfMonth*/,
7836  8 /*atTimeCode*/,
7837  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7838  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7839  7 /*letterIndex ("S")*/,
7840  },
7841  // Rule Palestine 2072 max - Oct Sat<=30 2:00 0 -
7842  {
7843  -28 /*fromYearTiny (2072)*/,
7844  126 /*toYearTiny (32766)*/,
7845  10 /*inMonth*/,
7846  6 /*onDayOfWeek*/,
7847  -30 /*onDayOfMonth*/,
7848  8 /*atTimeCode*/,
7849  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7850  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7851  0 /*letterIndex ("")*/,
7852  },
7853  // Rule Palestine 2073 only - Sep 2 2:00 0 -
7854  {
7855  -27 /*fromYearTiny (2073)*/,
7856  -27 /*toYearTiny (2073)*/,
7857  9 /*inMonth*/,
7858  0 /*onDayOfWeek*/,
7859  2 /*onDayOfMonth*/,
7860  8 /*atTimeCode*/,
7861  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7862  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7863  0 /*letterIndex ("")*/,
7864  },
7865  // Rule Palestine 2073 only - Oct 14 2:00 1:00 S
7866  {
7867  -27 /*fromYearTiny (2073)*/,
7868  -27 /*toYearTiny (2073)*/,
7869  10 /*inMonth*/,
7870  0 /*onDayOfWeek*/,
7871  14 /*onDayOfMonth*/,
7872  8 /*atTimeCode*/,
7873  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7874  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7875  7 /*letterIndex ("S")*/,
7876  },
7877  // Rule Palestine 2074 only - Aug 18 2:00 0 -
7878  {
7879  -26 /*fromYearTiny (2074)*/,
7880  -26 /*toYearTiny (2074)*/,
7881  8 /*inMonth*/,
7882  0 /*onDayOfWeek*/,
7883  18 /*onDayOfMonth*/,
7884  8 /*atTimeCode*/,
7885  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7886  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7887  0 /*letterIndex ("")*/,
7888  },
7889  // Rule Palestine 2074 only - Oct 6 2:00 1:00 S
7890  {
7891  -26 /*fromYearTiny (2074)*/,
7892  -26 /*toYearTiny (2074)*/,
7893  10 /*inMonth*/,
7894  0 /*onDayOfWeek*/,
7895  6 /*onDayOfMonth*/,
7896  8 /*atTimeCode*/,
7897  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7898  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7899  7 /*letterIndex ("S")*/,
7900  },
7901  // Rule Palestine 2075 only - Aug 10 2:00 0 -
7902  {
7903  -25 /*fromYearTiny (2075)*/,
7904  -25 /*toYearTiny (2075)*/,
7905  8 /*inMonth*/,
7906  0 /*onDayOfWeek*/,
7907  10 /*onDayOfMonth*/,
7908  8 /*atTimeCode*/,
7909  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7910  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7911  0 /*letterIndex ("")*/,
7912  },
7913  // Rule Palestine 2075 only - Sep 21 2:00 1:00 S
7914  {
7915  -25 /*fromYearTiny (2075)*/,
7916  -25 /*toYearTiny (2075)*/,
7917  9 /*inMonth*/,
7918  0 /*onDayOfWeek*/,
7919  21 /*onDayOfMonth*/,
7920  8 /*atTimeCode*/,
7921  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7922  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7923  7 /*letterIndex ("S")*/,
7924  },
7925  // Rule Palestine 2076 only - Jul 25 2:00 0 -
7926  {
7927  -24 /*fromYearTiny (2076)*/,
7928  -24 /*toYearTiny (2076)*/,
7929  7 /*inMonth*/,
7930  0 /*onDayOfWeek*/,
7931  25 /*onDayOfMonth*/,
7932  8 /*atTimeCode*/,
7933  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7934  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7935  0 /*letterIndex ("")*/,
7936  },
7937  // Rule Palestine 2076 only - Sep 12 2:00 1:00 S
7938  {
7939  -24 /*fromYearTiny (2076)*/,
7940  -24 /*toYearTiny (2076)*/,
7941  9 /*inMonth*/,
7942  0 /*onDayOfWeek*/,
7943  12 /*onDayOfMonth*/,
7944  8 /*atTimeCode*/,
7945  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7946  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7947  7 /*letterIndex ("S")*/,
7948  },
7949  // Rule Palestine 2077 only - Jul 17 2:00 0 -
7950  {
7951  -23 /*fromYearTiny (2077)*/,
7952  -23 /*toYearTiny (2077)*/,
7953  7 /*inMonth*/,
7954  0 /*onDayOfWeek*/,
7955  17 /*onDayOfMonth*/,
7956  8 /*atTimeCode*/,
7957  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7958  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7959  0 /*letterIndex ("")*/,
7960  },
7961  // Rule Palestine 2077 only - Sep 4 2:00 1:00 S
7962  {
7963  -23 /*fromYearTiny (2077)*/,
7964  -23 /*toYearTiny (2077)*/,
7965  9 /*inMonth*/,
7966  0 /*onDayOfWeek*/,
7967  4 /*onDayOfMonth*/,
7968  8 /*atTimeCode*/,
7969  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7970  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7971  7 /*letterIndex ("S")*/,
7972  },
7973  // Rule Palestine 2078 only - Jul 9 2:00 0 -
7974  {
7975  -22 /*fromYearTiny (2078)*/,
7976  -22 /*toYearTiny (2078)*/,
7977  7 /*inMonth*/,
7978  0 /*onDayOfWeek*/,
7979  9 /*onDayOfMonth*/,
7980  8 /*atTimeCode*/,
7981  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7982  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
7983  0 /*letterIndex ("")*/,
7984  },
7985  // Rule Palestine 2078 only - Aug 20 2:00 1:00 S
7986  {
7987  -22 /*fromYearTiny (2078)*/,
7988  -22 /*toYearTiny (2078)*/,
7989  8 /*inMonth*/,
7990  0 /*onDayOfWeek*/,
7991  20 /*onDayOfMonth*/,
7992  8 /*atTimeCode*/,
7993  0 /*atTimeModifier (kSuffixW + minute=0)*/,
7994  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
7995  7 /*letterIndex ("S")*/,
7996  },
7997  // Rule Palestine 2079 only - Jun 24 2:00 0 -
7998  {
7999  -21 /*fromYearTiny (2079)*/,
8000  -21 /*toYearTiny (2079)*/,
8001  6 /*inMonth*/,
8002  0 /*onDayOfWeek*/,
8003  24 /*onDayOfMonth*/,
8004  8 /*atTimeCode*/,
8005  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8006  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8007  0 /*letterIndex ("")*/,
8008  },
8009  // Rule Palestine 2079 only - Aug 12 2:00 1:00 S
8010  {
8011  -21 /*fromYearTiny (2079)*/,
8012  -21 /*toYearTiny (2079)*/,
8013  8 /*inMonth*/,
8014  0 /*onDayOfWeek*/,
8015  12 /*onDayOfMonth*/,
8016  8 /*atTimeCode*/,
8017  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8018  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8019  7 /*letterIndex ("S")*/,
8020  },
8021  // Rule Palestine 2080 only - Jun 15 2:00 0 -
8022  {
8023  -20 /*fromYearTiny (2080)*/,
8024  -20 /*toYearTiny (2080)*/,
8025  6 /*inMonth*/,
8026  0 /*onDayOfWeek*/,
8027  15 /*onDayOfMonth*/,
8028  8 /*atTimeCode*/,
8029  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8030  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8031  0 /*letterIndex ("")*/,
8032  },
8033  // Rule Palestine 2080 only - Jul 27 2:00 1:00 S
8034  {
8035  -20 /*fromYearTiny (2080)*/,
8036  -20 /*toYearTiny (2080)*/,
8037  7 /*inMonth*/,
8038  0 /*onDayOfWeek*/,
8039  27 /*onDayOfMonth*/,
8040  8 /*atTimeCode*/,
8041  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8042  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8043  7 /*letterIndex ("S")*/,
8044  },
8045  // Rule Palestine 2081 only - Jun 7 2:00 0 -
8046  {
8047  -19 /*fromYearTiny (2081)*/,
8048  -19 /*toYearTiny (2081)*/,
8049  6 /*inMonth*/,
8050  0 /*onDayOfWeek*/,
8051  7 /*onDayOfMonth*/,
8052  8 /*atTimeCode*/,
8053  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8054  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8055  0 /*letterIndex ("")*/,
8056  },
8057  // Rule Palestine 2081 only - Jul 19 2:00 1:00 S
8058  {
8059  -19 /*fromYearTiny (2081)*/,
8060  -19 /*toYearTiny (2081)*/,
8061  7 /*inMonth*/,
8062  0 /*onDayOfWeek*/,
8063  19 /*onDayOfMonth*/,
8064  8 /*atTimeCode*/,
8065  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8066  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8067  7 /*letterIndex ("S")*/,
8068  },
8069  // Rule Palestine 2082 only - May 23 2:00 0 -
8070  {
8071  -18 /*fromYearTiny (2082)*/,
8072  -18 /*toYearTiny (2082)*/,
8073  5 /*inMonth*/,
8074  0 /*onDayOfWeek*/,
8075  23 /*onDayOfMonth*/,
8076  8 /*atTimeCode*/,
8077  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8078  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8079  0 /*letterIndex ("")*/,
8080  },
8081  // Rule Palestine 2082 only - Jul 11 2:00 1:00 S
8082  {
8083  -18 /*fromYearTiny (2082)*/,
8084  -18 /*toYearTiny (2082)*/,
8085  7 /*inMonth*/,
8086  0 /*onDayOfWeek*/,
8087  11 /*onDayOfMonth*/,
8088  8 /*atTimeCode*/,
8089  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8090  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8091  7 /*letterIndex ("S")*/,
8092  },
8093  // Rule Palestine 2083 only - May 15 2:00 0 -
8094  {
8095  -17 /*fromYearTiny (2083)*/,
8096  -17 /*toYearTiny (2083)*/,
8097  5 /*inMonth*/,
8098  0 /*onDayOfWeek*/,
8099  15 /*onDayOfMonth*/,
8100  8 /*atTimeCode*/,
8101  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8102  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8103  0 /*letterIndex ("")*/,
8104  },
8105  // Rule Palestine 2083 only - Jun 26 2:00 1:00 S
8106  {
8107  -17 /*fromYearTiny (2083)*/,
8108  -17 /*toYearTiny (2083)*/,
8109  6 /*inMonth*/,
8110  0 /*onDayOfWeek*/,
8111  26 /*onDayOfMonth*/,
8112  8 /*atTimeCode*/,
8113  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8114  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8115  7 /*letterIndex ("S")*/,
8116  },
8117  // Rule Palestine 2084 only - Apr 29 2:00 0 -
8118  {
8119  -16 /*fromYearTiny (2084)*/,
8120  -16 /*toYearTiny (2084)*/,
8121  4 /*inMonth*/,
8122  0 /*onDayOfWeek*/,
8123  29 /*onDayOfMonth*/,
8124  8 /*atTimeCode*/,
8125  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8126  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8127  0 /*letterIndex ("")*/,
8128  },
8129  // Rule Palestine 2084 only - Jun 17 2:00 1:00 S
8130  {
8131  -16 /*fromYearTiny (2084)*/,
8132  -16 /*toYearTiny (2084)*/,
8133  6 /*inMonth*/,
8134  0 /*onDayOfWeek*/,
8135  17 /*onDayOfMonth*/,
8136  8 /*atTimeCode*/,
8137  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8138  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8139  7 /*letterIndex ("S")*/,
8140  },
8141  // Rule Palestine 2085 only - Apr 21 2:00 0 -
8142  {
8143  -15 /*fromYearTiny (2085)*/,
8144  -15 /*toYearTiny (2085)*/,
8145  4 /*inMonth*/,
8146  0 /*onDayOfWeek*/,
8147  21 /*onDayOfMonth*/,
8148  8 /*atTimeCode*/,
8149  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8150  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8151  0 /*letterIndex ("")*/,
8152  },
8153  // Rule Palestine 2085 only - Jun 9 2:00 1:00 S
8154  {
8155  -15 /*fromYearTiny (2085)*/,
8156  -15 /*toYearTiny (2085)*/,
8157  6 /*inMonth*/,
8158  0 /*onDayOfWeek*/,
8159  9 /*onDayOfMonth*/,
8160  8 /*atTimeCode*/,
8161  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8162  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8163  7 /*letterIndex ("S")*/,
8164  },
8165  // Rule Palestine 2086 only - Apr 13 2:00 0 -
8166  {
8167  -14 /*fromYearTiny (2086)*/,
8168  -14 /*toYearTiny (2086)*/,
8169  4 /*inMonth*/,
8170  0 /*onDayOfWeek*/,
8171  13 /*onDayOfMonth*/,
8172  8 /*atTimeCode*/,
8173  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8174  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8175  0 /*letterIndex ("")*/,
8176  },
8177  // Rule Palestine 2086 only - May 25 2:00 1:00 S
8178  {
8179  -14 /*fromYearTiny (2086)*/,
8180  -14 /*toYearTiny (2086)*/,
8181  5 /*inMonth*/,
8182  0 /*onDayOfWeek*/,
8183  25 /*onDayOfMonth*/,
8184  8 /*atTimeCode*/,
8185  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8186  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8187  7 /*letterIndex ("S")*/,
8188  },
8189 
8190 };
8191 
8192 const extended::Info::ZonePolicy kZonePolicyPalestine ACE_TIME_PROGMEM = {
8193  kZoneRulesPalestine /*rules*/,
8194  111 /*numRules*/,
8195 };
8196 
8197 //---------------------------------------------------------------------------
8198 // Policy name: Para
8199 // Rules: 11
8200 //---------------------------------------------------------------------------
8201 
8202 static const extended::Info::ZoneRule kZoneRulesPara[] ACE_TIME_PROGMEM = {
8203  // Anchor: Rule Para 1997 only - Feb lastSun 0:00 0 -
8204  {
8205  -127 /*fromYearTiny (-32767)*/,
8206  -127 /*toYearTiny (-32767)*/,
8207  1 /*inMonth*/,
8208  0 /*onDayOfWeek*/,
8209  1 /*onDayOfMonth*/,
8210  0 /*atTimeCode*/,
8211  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8212  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8213  0 /*letterIndex ("")*/,
8214  },
8215  // Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 -
8216  {
8217  -104 /*fromYearTiny (1996)*/,
8218  -99 /*toYearTiny (2001)*/,
8219  10 /*inMonth*/,
8220  7 /*onDayOfWeek*/,
8221  1 /*onDayOfMonth*/,
8222  0 /*atTimeCode*/,
8223  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8224  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8225  0 /*letterIndex ("")*/,
8226  },
8227  // Rule Para 1997 only - Feb lastSun 0:00 0 -
8228  {
8229  -103 /*fromYearTiny (1997)*/,
8230  -103 /*toYearTiny (1997)*/,
8231  2 /*inMonth*/,
8232  7 /*onDayOfWeek*/,
8233  0 /*onDayOfMonth*/,
8234  0 /*atTimeCode*/,
8235  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8236  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8237  0 /*letterIndex ("")*/,
8238  },
8239  // Rule Para 1998 2001 - Mar Sun>=1 0:00 0 -
8240  {
8241  -102 /*fromYearTiny (1998)*/,
8242  -99 /*toYearTiny (2001)*/,
8243  3 /*inMonth*/,
8244  7 /*onDayOfWeek*/,
8245  1 /*onDayOfMonth*/,
8246  0 /*atTimeCode*/,
8247  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8248  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8249  0 /*letterIndex ("")*/,
8250  },
8251  // Rule Para 2002 2004 - Apr Sun>=1 0:00 0 -
8252  {
8253  -98 /*fromYearTiny (2002)*/,
8254  -96 /*toYearTiny (2004)*/,
8255  4 /*inMonth*/,
8256  7 /*onDayOfWeek*/,
8257  1 /*onDayOfMonth*/,
8258  0 /*atTimeCode*/,
8259  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8260  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8261  0 /*letterIndex ("")*/,
8262  },
8263  // Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 -
8264  {
8265  -98 /*fromYearTiny (2002)*/,
8266  -97 /*toYearTiny (2003)*/,
8267  9 /*inMonth*/,
8268  7 /*onDayOfWeek*/,
8269  1 /*onDayOfMonth*/,
8270  0 /*atTimeCode*/,
8271  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8272  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8273  0 /*letterIndex ("")*/,
8274  },
8275  // Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 -
8276  {
8277  -96 /*fromYearTiny (2004)*/,
8278  -91 /*toYearTiny (2009)*/,
8279  10 /*inMonth*/,
8280  7 /*onDayOfWeek*/,
8281  15 /*onDayOfMonth*/,
8282  0 /*atTimeCode*/,
8283  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8284  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8285  0 /*letterIndex ("")*/,
8286  },
8287  // Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
8288  {
8289  -95 /*fromYearTiny (2005)*/,
8290  -91 /*toYearTiny (2009)*/,
8291  3 /*inMonth*/,
8292  7 /*onDayOfWeek*/,
8293  8 /*onDayOfMonth*/,
8294  0 /*atTimeCode*/,
8295  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8296  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8297  0 /*letterIndex ("")*/,
8298  },
8299  // Rule Para 2010 2024 - Oct Sun>=1 0:00 1:00 -
8300  {
8301  -90 /*fromYearTiny (2010)*/,
8302  -76 /*toYearTiny (2024)*/,
8303  10 /*inMonth*/,
8304  7 /*onDayOfWeek*/,
8305  1 /*onDayOfMonth*/,
8306  0 /*atTimeCode*/,
8307  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8308  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8309  0 /*letterIndex ("")*/,
8310  },
8311  // Rule Para 2010 2012 - Apr Sun>=8 0:00 0 -
8312  {
8313  -90 /*fromYearTiny (2010)*/,
8314  -88 /*toYearTiny (2012)*/,
8315  4 /*inMonth*/,
8316  7 /*onDayOfWeek*/,
8317  8 /*onDayOfMonth*/,
8318  0 /*atTimeCode*/,
8319  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8320  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8321  0 /*letterIndex ("")*/,
8322  },
8323  // Rule Para 2013 2024 - Mar Sun>=22 0:00 0 -
8324  {
8325  -87 /*fromYearTiny (2013)*/,
8326  -76 /*toYearTiny (2024)*/,
8327  3 /*inMonth*/,
8328  7 /*onDayOfWeek*/,
8329  22 /*onDayOfMonth*/,
8330  0 /*atTimeCode*/,
8331  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8332  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8333  0 /*letterIndex ("")*/,
8334  },
8335 
8336 };
8337 
8338 const extended::Info::ZonePolicy kZonePolicyPara ACE_TIME_PROGMEM = {
8339  kZoneRulesPara /*rules*/,
8340  11 /*numRules*/,
8341 };
8342 
8343 //---------------------------------------------------------------------------
8344 // Policy name: Peru
8345 // Rules: 1
8346 //---------------------------------------------------------------------------
8347 
8348 static const extended::Info::ZoneRule kZoneRulesPeru[] ACE_TIME_PROGMEM = {
8349  // Anchor: Rule Peru 1994 only - Apr 1 0:00 0 -
8350  {
8351  -127 /*fromYearTiny (-32767)*/,
8352  -127 /*toYearTiny (-32767)*/,
8353  1 /*inMonth*/,
8354  0 /*onDayOfWeek*/,
8355  1 /*onDayOfMonth*/,
8356  0 /*atTimeCode*/,
8357  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8358  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8359  0 /*letterIndex ("")*/,
8360  },
8361 
8362 };
8363 
8364 const extended::Info::ZonePolicy kZonePolicyPeru ACE_TIME_PROGMEM = {
8365  kZoneRulesPeru /*rules*/,
8366  1 /*numRules*/,
8367 };
8368 
8369 //---------------------------------------------------------------------------
8370 // Policy name: Phil
8371 // Rules: 1
8372 //---------------------------------------------------------------------------
8373 
8374 static const extended::Info::ZoneRule kZoneRulesPhil[] ACE_TIME_PROGMEM = {
8375  // Anchor: Rule Phil 1990 only - Jul 28 24:00 0 S
8376  {
8377  -127 /*fromYearTiny (-32767)*/,
8378  -127 /*toYearTiny (-32767)*/,
8379  1 /*inMonth*/,
8380  0 /*onDayOfWeek*/,
8381  1 /*onDayOfMonth*/,
8382  0 /*atTimeCode*/,
8383  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8384  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8385  7 /*letterIndex ("S")*/,
8386  },
8387 
8388 };
8389 
8390 const extended::Info::ZonePolicy kZonePolicyPhil ACE_TIME_PROGMEM = {
8391  kZoneRulesPhil /*rules*/,
8392  1 /*numRules*/,
8393 };
8394 
8395 //---------------------------------------------------------------------------
8396 // Policy name: ROK
8397 // Rules: 1
8398 //---------------------------------------------------------------------------
8399 
8400 static const extended::Info::ZoneRule kZoneRulesROK[] ACE_TIME_PROGMEM = {
8401  // Anchor: Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S
8402  {
8403  -127 /*fromYearTiny (-32767)*/,
8404  -127 /*toYearTiny (-32767)*/,
8405  1 /*inMonth*/,
8406  0 /*onDayOfWeek*/,
8407  1 /*onDayOfMonth*/,
8408  0 /*atTimeCode*/,
8409  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8410  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8411  7 /*letterIndex ("S")*/,
8412  },
8413 
8414 };
8415 
8416 const extended::Info::ZonePolicy kZonePolicyROK ACE_TIME_PROGMEM = {
8417  kZoneRulesROK /*rules*/,
8418  1 /*numRules*/,
8419 };
8420 
8421 //---------------------------------------------------------------------------
8422 // Policy name: Russia
8423 // Rules: 4
8424 //---------------------------------------------------------------------------
8425 
8426 static const extended::Info::ZoneRule kZoneRulesRussia[] ACE_TIME_PROGMEM = {
8427  // Anchor: Rule Russia 1984 1995 - Sep lastSun 2:00s 0 -
8428  {
8429  -127 /*fromYearTiny (-32767)*/,
8430  -127 /*toYearTiny (-32767)*/,
8431  1 /*inMonth*/,
8432  0 /*onDayOfWeek*/,
8433  1 /*onDayOfMonth*/,
8434  0 /*atTimeCode*/,
8435  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8436  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8437  0 /*letterIndex ("")*/,
8438  },
8439  // Rule Russia 1984 1995 - Sep lastSun 2:00s 0 -
8440  {
8441  -116 /*fromYearTiny (1984)*/,
8442  -105 /*toYearTiny (1995)*/,
8443  9 /*inMonth*/,
8444  7 /*onDayOfWeek*/,
8445  0 /*onDayOfMonth*/,
8446  8 /*atTimeCode*/,
8447  16 /*atTimeModifier (kSuffixS + minute=0)*/,
8448  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8449  0 /*letterIndex ("")*/,
8450  },
8451  // Rule Russia 1985 2010 - Mar lastSun 2:00s 1:00 S
8452  {
8453  -115 /*fromYearTiny (1985)*/,
8454  -90 /*toYearTiny (2010)*/,
8455  3 /*inMonth*/,
8456  7 /*onDayOfWeek*/,
8457  0 /*onDayOfMonth*/,
8458  8 /*atTimeCode*/,
8459  16 /*atTimeModifier (kSuffixS + minute=0)*/,
8460  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8461  7 /*letterIndex ("S")*/,
8462  },
8463  // Rule Russia 1996 2010 - Oct lastSun 2:00s 0 -
8464  {
8465  -104 /*fromYearTiny (1996)*/,
8466  -90 /*toYearTiny (2010)*/,
8467  10 /*inMonth*/,
8468  7 /*onDayOfWeek*/,
8469  0 /*onDayOfMonth*/,
8470  8 /*atTimeCode*/,
8471  16 /*atTimeModifier (kSuffixS + minute=0)*/,
8472  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8473  0 /*letterIndex ("")*/,
8474  },
8475 
8476 };
8477 
8478 const extended::Info::ZonePolicy kZonePolicyRussia ACE_TIME_PROGMEM = {
8479  kZoneRulesRussia /*rules*/,
8480  4 /*numRules*/,
8481 };
8482 
8483 //---------------------------------------------------------------------------
8484 // Policy name: RussiaAsia
8485 // Rules: 4
8486 //---------------------------------------------------------------------------
8487 
8488 static const extended::Info::ZoneRule kZoneRulesRussiaAsia[] ACE_TIME_PROGMEM = {
8489  // Anchor: Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
8490  {
8491  -127 /*fromYearTiny (-32767)*/,
8492  -127 /*toYearTiny (-32767)*/,
8493  1 /*inMonth*/,
8494  0 /*onDayOfWeek*/,
8495  1 /*onDayOfMonth*/,
8496  0 /*atTimeCode*/,
8497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8498  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8499  0 /*letterIndex ("")*/,
8500  },
8501  // Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 -
8502  {
8503  -116 /*fromYearTiny (1984)*/,
8504  -105 /*toYearTiny (1995)*/,
8505  9 /*inMonth*/,
8506  7 /*onDayOfWeek*/,
8507  0 /*onDayOfMonth*/,
8508  8 /*atTimeCode*/,
8509  16 /*atTimeModifier (kSuffixS + minute=0)*/,
8510  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8511  0 /*letterIndex ("")*/,
8512  },
8513  // Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 -
8514  {
8515  -115 /*fromYearTiny (1985)*/,
8516  -90 /*toYearTiny (2010)*/,
8517  3 /*inMonth*/,
8518  7 /*onDayOfWeek*/,
8519  0 /*onDayOfMonth*/,
8520  8 /*atTimeCode*/,
8521  16 /*atTimeModifier (kSuffixS + minute=0)*/,
8522  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8523  0 /*letterIndex ("")*/,
8524  },
8525  // Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 -
8526  {
8527  -104 /*fromYearTiny (1996)*/,
8528  -90 /*toYearTiny (2010)*/,
8529  10 /*inMonth*/,
8530  7 /*onDayOfWeek*/,
8531  0 /*onDayOfMonth*/,
8532  8 /*atTimeCode*/,
8533  16 /*atTimeModifier (kSuffixS + minute=0)*/,
8534  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8535  0 /*letterIndex ("")*/,
8536  },
8537 
8538 };
8539 
8540 const extended::Info::ZonePolicy kZonePolicyRussiaAsia ACE_TIME_PROGMEM = {
8541  kZoneRulesRussiaAsia /*rules*/,
8542  4 /*numRules*/,
8543 };
8544 
8545 //---------------------------------------------------------------------------
8546 // Policy name: SA
8547 // Rules: 1
8548 //---------------------------------------------------------------------------
8549 
8550 static const extended::Info::ZoneRule kZoneRulesSA[] ACE_TIME_PROGMEM = {
8551  // Anchor: Rule SA 1943 1944 - Mar Sun>=15 2:00 0 -
8552  {
8553  -127 /*fromYearTiny (-32767)*/,
8554  -127 /*toYearTiny (-32767)*/,
8555  1 /*inMonth*/,
8556  0 /*onDayOfWeek*/,
8557  1 /*onDayOfMonth*/,
8558  0 /*atTimeCode*/,
8559  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8560  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8561  0 /*letterIndex ("")*/,
8562  },
8563 
8564 };
8565 
8566 const extended::Info::ZonePolicy kZonePolicySA ACE_TIME_PROGMEM = {
8567  kZoneRulesSA /*rules*/,
8568  1 /*numRules*/,
8569 };
8570 
8571 //---------------------------------------------------------------------------
8572 // Policy name: Salv
8573 // Rules: 1
8574 //---------------------------------------------------------------------------
8575 
8576 static const extended::Info::ZoneRule kZoneRulesSalv[] ACE_TIME_PROGMEM = {
8577  // Anchor: Rule Salv 1987 1988 - Sep lastSun 0:00 0 S
8578  {
8579  -127 /*fromYearTiny (-32767)*/,
8580  -127 /*toYearTiny (-32767)*/,
8581  1 /*inMonth*/,
8582  0 /*onDayOfWeek*/,
8583  1 /*onDayOfMonth*/,
8584  0 /*atTimeCode*/,
8585  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8586  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8587  7 /*letterIndex ("S")*/,
8588  },
8589 
8590 };
8591 
8592 const extended::Info::ZonePolicy kZonePolicySalv ACE_TIME_PROGMEM = {
8593  kZoneRulesSalv /*rules*/,
8594  1 /*numRules*/,
8595 };
8596 
8597 //---------------------------------------------------------------------------
8598 // Policy name: SanLuis
8599 // Rules: 3
8600 //---------------------------------------------------------------------------
8601 
8602 static const extended::Info::ZoneRule kZoneRulesSanLuis[] ACE_TIME_PROGMEM = {
8603  // Anchor: Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
8604  {
8605  -127 /*fromYearTiny (-32767)*/,
8606  -127 /*toYearTiny (-32767)*/,
8607  1 /*inMonth*/,
8608  0 /*onDayOfWeek*/,
8609  1 /*onDayOfMonth*/,
8610  0 /*atTimeCode*/,
8611  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8612  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8613  0 /*letterIndex ("")*/,
8614  },
8615  // Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
8616  {
8617  -92 /*fromYearTiny (2008)*/,
8618  -91 /*toYearTiny (2009)*/,
8619  3 /*inMonth*/,
8620  7 /*onDayOfWeek*/,
8621  8 /*onDayOfMonth*/,
8622  0 /*atTimeCode*/,
8623  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8624  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8625  0 /*letterIndex ("")*/,
8626  },
8627  // Rule SanLuis 2007 2008 - Oct Sun>=8 0:00 1:00 -
8628  {
8629  -93 /*fromYearTiny (2007)*/,
8630  -92 /*toYearTiny (2008)*/,
8631  10 /*inMonth*/,
8632  7 /*onDayOfWeek*/,
8633  8 /*onDayOfMonth*/,
8634  0 /*atTimeCode*/,
8635  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8636  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8637  0 /*letterIndex ("")*/,
8638  },
8639 
8640 };
8641 
8642 const extended::Info::ZonePolicy kZonePolicySanLuis ACE_TIME_PROGMEM = {
8643  kZoneRulesSanLuis /*rules*/,
8644  3 /*numRules*/,
8645 };
8646 
8647 //---------------------------------------------------------------------------
8648 // Policy name: StJohns
8649 // Rules: 6
8650 //---------------------------------------------------------------------------
8651 
8652 static const extended::Info::ZoneRule kZoneRulesStJohns[] ACE_TIME_PROGMEM = {
8653  // Anchor: Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
8654  {
8655  -127 /*fromYearTiny (-32767)*/,
8656  -127 /*toYearTiny (-32767)*/,
8657  1 /*inMonth*/,
8658  0 /*onDayOfWeek*/,
8659  1 /*onDayOfMonth*/,
8660  0 /*atTimeCode*/,
8661  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8662  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8663  7 /*letterIndex ("S")*/,
8664  },
8665  // Rule StJohns 1987 2006 - Oct lastSun 0:01 0 S
8666  {
8667  -113 /*fromYearTiny (1987)*/,
8668  -94 /*toYearTiny (2006)*/,
8669  10 /*inMonth*/,
8670  7 /*onDayOfWeek*/,
8671  0 /*onDayOfMonth*/,
8672  0 /*atTimeCode*/,
8673  1 /*atTimeModifier (kSuffixW + minute=1)*/,
8674  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8675  7 /*letterIndex ("S")*/,
8676  },
8677  // Rule StJohns 1988 only - Apr Sun>=1 0:01 2:00 DD
8678  {
8679  -112 /*fromYearTiny (1988)*/,
8680  -112 /*toYearTiny (1988)*/,
8681  4 /*inMonth*/,
8682  7 /*onDayOfWeek*/,
8683  1 /*onDayOfMonth*/,
8684  0 /*atTimeCode*/,
8685  1 /*atTimeModifier (kSuffixW + minute=1)*/,
8686  12 /*deltaCode ((deltaMinutes=120)/15 + 4)*/,
8687  6 /*letterIndex ("DD")*/,
8688  },
8689  // Rule StJohns 1989 2006 - Apr Sun>=1 0:01 1:00 D
8690  {
8691  -111 /*fromYearTiny (1989)*/,
8692  -94 /*toYearTiny (2006)*/,
8693  4 /*inMonth*/,
8694  7 /*onDayOfWeek*/,
8695  1 /*onDayOfMonth*/,
8696  0 /*atTimeCode*/,
8697  1 /*atTimeModifier (kSuffixW + minute=1)*/,
8698  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8699  5 /*letterIndex ("D")*/,
8700  },
8701  // Rule StJohns 2007 2011 - Mar Sun>=8 0:01 1:00 D
8702  {
8703  -93 /*fromYearTiny (2007)*/,
8704  -89 /*toYearTiny (2011)*/,
8705  3 /*inMonth*/,
8706  7 /*onDayOfWeek*/,
8707  8 /*onDayOfMonth*/,
8708  0 /*atTimeCode*/,
8709  1 /*atTimeModifier (kSuffixW + minute=1)*/,
8710  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8711  5 /*letterIndex ("D")*/,
8712  },
8713  // Rule StJohns 2007 2010 - Nov Sun>=1 0:01 0 S
8714  {
8715  -93 /*fromYearTiny (2007)*/,
8716  -90 /*toYearTiny (2010)*/,
8717  11 /*inMonth*/,
8718  7 /*onDayOfWeek*/,
8719  1 /*onDayOfMonth*/,
8720  0 /*atTimeCode*/,
8721  1 /*atTimeModifier (kSuffixW + minute=1)*/,
8722  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8723  7 /*letterIndex ("S")*/,
8724  },
8725 
8726 };
8727 
8728 const extended::Info::ZonePolicy kZonePolicyStJohns ACE_TIME_PROGMEM = {
8729  kZoneRulesStJohns /*rules*/,
8730  6 /*numRules*/,
8731 };
8732 
8733 //---------------------------------------------------------------------------
8734 // Policy name: Sudan
8735 // Rules: 1
8736 //---------------------------------------------------------------------------
8737 
8738 static const extended::Info::ZoneRule kZoneRulesSudan[] ACE_TIME_PROGMEM = {
8739  // Anchor: Rule Sudan 1970 1985 - Oct 15 0:00 0 -
8740  {
8741  -127 /*fromYearTiny (-32767)*/,
8742  -127 /*toYearTiny (-32767)*/,
8743  1 /*inMonth*/,
8744  0 /*onDayOfWeek*/,
8745  1 /*onDayOfMonth*/,
8746  0 /*atTimeCode*/,
8747  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8748  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8749  0 /*letterIndex ("")*/,
8750  },
8751 
8752 };
8753 
8754 const extended::Info::ZonePolicy kZonePolicySudan ACE_TIME_PROGMEM = {
8755  kZoneRulesSudan /*rules*/,
8756  1 /*numRules*/,
8757 };
8758 
8759 //---------------------------------------------------------------------------
8760 // Policy name: Syria
8761 // Rules: 13
8762 //---------------------------------------------------------------------------
8763 
8764 static const extended::Info::ZoneRule kZoneRulesSyria[] ACE_TIME_PROGMEM = {
8765  // Anchor: Rule Syria 1994 2005 - Oct 1 0:00 0 -
8766  {
8767  -127 /*fromYearTiny (-32767)*/,
8768  -127 /*toYearTiny (-32767)*/,
8769  1 /*inMonth*/,
8770  0 /*onDayOfWeek*/,
8771  1 /*onDayOfMonth*/,
8772  0 /*atTimeCode*/,
8773  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8774  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8775  0 /*letterIndex ("")*/,
8776  },
8777  // Rule Syria 1994 2005 - Oct 1 0:00 0 -
8778  {
8779  -106 /*fromYearTiny (1994)*/,
8780  -95 /*toYearTiny (2005)*/,
8781  10 /*inMonth*/,
8782  0 /*onDayOfWeek*/,
8783  1 /*onDayOfMonth*/,
8784  0 /*atTimeCode*/,
8785  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8786  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8787  0 /*letterIndex ("")*/,
8788  },
8789  // Rule Syria 1997 1998 - Mar lastMon 0:00 1:00 S
8790  {
8791  -103 /*fromYearTiny (1997)*/,
8792  -102 /*toYearTiny (1998)*/,
8793  3 /*inMonth*/,
8794  1 /*onDayOfWeek*/,
8795  0 /*onDayOfMonth*/,
8796  0 /*atTimeCode*/,
8797  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8798  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8799  7 /*letterIndex ("S")*/,
8800  },
8801  // Rule Syria 1999 2006 - Apr 1 0:00 1:00 S
8802  {
8803  -101 /*fromYearTiny (1999)*/,
8804  -94 /*toYearTiny (2006)*/,
8805  4 /*inMonth*/,
8806  0 /*onDayOfWeek*/,
8807  1 /*onDayOfMonth*/,
8808  0 /*atTimeCode*/,
8809  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8810  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8811  7 /*letterIndex ("S")*/,
8812  },
8813  // Rule Syria 2006 only - Sep 22 0:00 0 -
8814  {
8815  -94 /*fromYearTiny (2006)*/,
8816  -94 /*toYearTiny (2006)*/,
8817  9 /*inMonth*/,
8818  0 /*onDayOfWeek*/,
8819  22 /*onDayOfMonth*/,
8820  0 /*atTimeCode*/,
8821  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8822  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8823  0 /*letterIndex ("")*/,
8824  },
8825  // Rule Syria 2007 only - Mar lastFri 0:00 1:00 S
8826  {
8827  -93 /*fromYearTiny (2007)*/,
8828  -93 /*toYearTiny (2007)*/,
8829  3 /*inMonth*/,
8830  5 /*onDayOfWeek*/,
8831  0 /*onDayOfMonth*/,
8832  0 /*atTimeCode*/,
8833  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8834  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8835  7 /*letterIndex ("S")*/,
8836  },
8837  // Rule Syria 2007 only - Nov Fri>=1 0:00 0 -
8838  {
8839  -93 /*fromYearTiny (2007)*/,
8840  -93 /*toYearTiny (2007)*/,
8841  11 /*inMonth*/,
8842  5 /*onDayOfWeek*/,
8843  1 /*onDayOfMonth*/,
8844  0 /*atTimeCode*/,
8845  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8846  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8847  0 /*letterIndex ("")*/,
8848  },
8849  // Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
8850  {
8851  -92 /*fromYearTiny (2008)*/,
8852  -92 /*toYearTiny (2008)*/,
8853  4 /*inMonth*/,
8854  5 /*onDayOfWeek*/,
8855  1 /*onDayOfMonth*/,
8856  0 /*atTimeCode*/,
8857  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8858  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8859  7 /*letterIndex ("S")*/,
8860  },
8861  // Rule Syria 2008 only - Nov 1 0:00 0 -
8862  {
8863  -92 /*fromYearTiny (2008)*/,
8864  -92 /*toYearTiny (2008)*/,
8865  11 /*inMonth*/,
8866  0 /*onDayOfWeek*/,
8867  1 /*onDayOfMonth*/,
8868  0 /*atTimeCode*/,
8869  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8870  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8871  0 /*letterIndex ("")*/,
8872  },
8873  // Rule Syria 2009 only - Mar lastFri 0:00 1:00 S
8874  {
8875  -91 /*fromYearTiny (2009)*/,
8876  -91 /*toYearTiny (2009)*/,
8877  3 /*inMonth*/,
8878  5 /*onDayOfWeek*/,
8879  0 /*onDayOfMonth*/,
8880  0 /*atTimeCode*/,
8881  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8882  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8883  7 /*letterIndex ("S")*/,
8884  },
8885  // Rule Syria 2010 2011 - Apr Fri>=1 0:00 1:00 S
8886  {
8887  -90 /*fromYearTiny (2010)*/,
8888  -89 /*toYearTiny (2011)*/,
8889  4 /*inMonth*/,
8890  5 /*onDayOfWeek*/,
8891  1 /*onDayOfMonth*/,
8892  0 /*atTimeCode*/,
8893  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8894  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8895  7 /*letterIndex ("S")*/,
8896  },
8897  // Rule Syria 2012 2022 - Mar lastFri 0:00 1:00 S
8898  {
8899  -88 /*fromYearTiny (2012)*/,
8900  -78 /*toYearTiny (2022)*/,
8901  3 /*inMonth*/,
8902  5 /*onDayOfWeek*/,
8903  0 /*onDayOfMonth*/,
8904  0 /*atTimeCode*/,
8905  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8906  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8907  7 /*letterIndex ("S")*/,
8908  },
8909  // Rule Syria 2009 2022 - Oct lastFri 0:00 0 -
8910  {
8911  -91 /*fromYearTiny (2009)*/,
8912  -78 /*toYearTiny (2022)*/,
8913  10 /*inMonth*/,
8914  5 /*onDayOfWeek*/,
8915  0 /*onDayOfMonth*/,
8916  0 /*atTimeCode*/,
8917  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8918  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8919  0 /*letterIndex ("")*/,
8920  },
8921 
8922 };
8923 
8924 const extended::Info::ZonePolicy kZonePolicySyria ACE_TIME_PROGMEM = {
8925  kZoneRulesSyria /*rules*/,
8926  13 /*numRules*/,
8927 };
8928 
8929 //---------------------------------------------------------------------------
8930 // Policy name: Taiwan
8931 // Rules: 1
8932 //---------------------------------------------------------------------------
8933 
8934 static const extended::Info::ZoneRule kZoneRulesTaiwan[] ACE_TIME_PROGMEM = {
8935  // Anchor: Rule Taiwan 1979 only - Oct 1 0:00 0 S
8936  {
8937  -127 /*fromYearTiny (-32767)*/,
8938  -127 /*toYearTiny (-32767)*/,
8939  1 /*inMonth*/,
8940  0 /*onDayOfWeek*/,
8941  1 /*onDayOfMonth*/,
8942  0 /*atTimeCode*/,
8943  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8944  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8945  7 /*letterIndex ("S")*/,
8946  },
8947 
8948 };
8949 
8950 const extended::Info::ZonePolicy kZonePolicyTaiwan ACE_TIME_PROGMEM = {
8951  kZoneRulesTaiwan /*rules*/,
8952  1 /*numRules*/,
8953 };
8954 
8955 //---------------------------------------------------------------------------
8956 // Policy name: Thule
8957 // Rules: 6
8958 //---------------------------------------------------------------------------
8959 
8960 static const extended::Info::ZoneRule kZoneRulesThule[] ACE_TIME_PROGMEM = {
8961  // Anchor: Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
8962  {
8963  -127 /*fromYearTiny (-32767)*/,
8964  -127 /*toYearTiny (-32767)*/,
8965  1 /*inMonth*/,
8966  0 /*onDayOfWeek*/,
8967  1 /*onDayOfMonth*/,
8968  0 /*atTimeCode*/,
8969  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8970  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8971  7 /*letterIndex ("S")*/,
8972  },
8973  // Rule Thule 1991 1992 - Sep lastSun 2:00 0 S
8974  {
8975  -109 /*fromYearTiny (1991)*/,
8976  -108 /*toYearTiny (1992)*/,
8977  9 /*inMonth*/,
8978  7 /*onDayOfWeek*/,
8979  0 /*onDayOfMonth*/,
8980  8 /*atTimeCode*/,
8981  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8982  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
8983  7 /*letterIndex ("S")*/,
8984  },
8985  // Rule Thule 1993 2006 - Apr Sun>=1 2:00 1:00 D
8986  {
8987  -107 /*fromYearTiny (1993)*/,
8988  -94 /*toYearTiny (2006)*/,
8989  4 /*inMonth*/,
8990  7 /*onDayOfWeek*/,
8991  1 /*onDayOfMonth*/,
8992  8 /*atTimeCode*/,
8993  0 /*atTimeModifier (kSuffixW + minute=0)*/,
8994  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
8995  5 /*letterIndex ("D")*/,
8996  },
8997  // Rule Thule 1993 2006 - Oct lastSun 2:00 0 S
8998  {
8999  -107 /*fromYearTiny (1993)*/,
9000  -94 /*toYearTiny (2006)*/,
9001  10 /*inMonth*/,
9002  7 /*onDayOfWeek*/,
9003  0 /*onDayOfMonth*/,
9004  8 /*atTimeCode*/,
9005  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9006  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9007  7 /*letterIndex ("S")*/,
9008  },
9009  // Rule Thule 2007 max - Mar Sun>=8 2:00 1:00 D
9010  {
9011  -93 /*fromYearTiny (2007)*/,
9012  126 /*toYearTiny (32766)*/,
9013  3 /*inMonth*/,
9014  7 /*onDayOfWeek*/,
9015  8 /*onDayOfMonth*/,
9016  8 /*atTimeCode*/,
9017  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9018  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9019  5 /*letterIndex ("D")*/,
9020  },
9021  // Rule Thule 2007 max - Nov Sun>=1 2:00 0 S
9022  {
9023  -93 /*fromYearTiny (2007)*/,
9024  126 /*toYearTiny (32766)*/,
9025  11 /*inMonth*/,
9026  7 /*onDayOfWeek*/,
9027  1 /*onDayOfMonth*/,
9028  8 /*atTimeCode*/,
9029  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9030  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9031  7 /*letterIndex ("S")*/,
9032  },
9033 
9034 };
9035 
9036 const extended::Info::ZonePolicy kZonePolicyThule ACE_TIME_PROGMEM = {
9037  kZoneRulesThule /*rules*/,
9038  6 /*numRules*/,
9039 };
9040 
9041 //---------------------------------------------------------------------------
9042 // Policy name: Tonga
9043 // Rules: 7
9044 //---------------------------------------------------------------------------
9045 
9046 static const extended::Info::ZoneRule kZoneRulesTonga[] ACE_TIME_PROGMEM = {
9047  // Anchor: Rule Tonga 2000 only - Mar 19 2:00s 0 -
9048  {
9049  -127 /*fromYearTiny (-32767)*/,
9050  -127 /*toYearTiny (-32767)*/,
9051  1 /*inMonth*/,
9052  0 /*onDayOfWeek*/,
9053  1 /*onDayOfMonth*/,
9054  0 /*atTimeCode*/,
9055  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9056  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9057  0 /*letterIndex ("")*/,
9058  },
9059  // Rule Tonga 1999 only - Oct 7 2:00s 1:00 -
9060  {
9061  -101 /*fromYearTiny (1999)*/,
9062  -101 /*toYearTiny (1999)*/,
9063  10 /*inMonth*/,
9064  0 /*onDayOfWeek*/,
9065  7 /*onDayOfMonth*/,
9066  8 /*atTimeCode*/,
9067  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9068  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9069  0 /*letterIndex ("")*/,
9070  },
9071  // Rule Tonga 2000 only - Mar 19 2:00s 0 -
9072  {
9073  -100 /*fromYearTiny (2000)*/,
9074  -100 /*toYearTiny (2000)*/,
9075  3 /*inMonth*/,
9076  0 /*onDayOfWeek*/,
9077  19 /*onDayOfMonth*/,
9078  8 /*atTimeCode*/,
9079  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9080  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9081  0 /*letterIndex ("")*/,
9082  },
9083  // Rule Tonga 2000 2001 - Nov Sun>=1 2:00 1:00 -
9084  {
9085  -100 /*fromYearTiny (2000)*/,
9086  -99 /*toYearTiny (2001)*/,
9087  11 /*inMonth*/,
9088  7 /*onDayOfWeek*/,
9089  1 /*onDayOfMonth*/,
9090  8 /*atTimeCode*/,
9091  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9092  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9093  0 /*letterIndex ("")*/,
9094  },
9095  // Rule Tonga 2001 2002 - Jan lastSun 2:00 0 -
9096  {
9097  -99 /*fromYearTiny (2001)*/,
9098  -98 /*toYearTiny (2002)*/,
9099  1 /*inMonth*/,
9100  7 /*onDayOfWeek*/,
9101  0 /*onDayOfMonth*/,
9102  8 /*atTimeCode*/,
9103  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9104  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9105  0 /*letterIndex ("")*/,
9106  },
9107  // Rule Tonga 2016 only - Nov Sun>=1 2:00 1:00 -
9108  {
9109  -84 /*fromYearTiny (2016)*/,
9110  -84 /*toYearTiny (2016)*/,
9111  11 /*inMonth*/,
9112  7 /*onDayOfWeek*/,
9113  1 /*onDayOfMonth*/,
9114  8 /*atTimeCode*/,
9115  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9116  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9117  0 /*letterIndex ("")*/,
9118  },
9119  // Rule Tonga 2017 only - Jan Sun>=15 3:00 0 -
9120  {
9121  -83 /*fromYearTiny (2017)*/,
9122  -83 /*toYearTiny (2017)*/,
9123  1 /*inMonth*/,
9124  7 /*onDayOfWeek*/,
9125  15 /*onDayOfMonth*/,
9126  12 /*atTimeCode*/,
9127  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9128  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9129  0 /*letterIndex ("")*/,
9130  },
9131 
9132 };
9133 
9134 const extended::Info::ZonePolicy kZonePolicyTonga ACE_TIME_PROGMEM = {
9135  kZoneRulesTonga /*rules*/,
9136  7 /*numRules*/,
9137 };
9138 
9139 //---------------------------------------------------------------------------
9140 // Policy name: Troll
9141 // Rules: 3
9142 //---------------------------------------------------------------------------
9143 
9144 static const extended::Info::ZoneRule kZoneRulesTroll[] ACE_TIME_PROGMEM = {
9145  // Anchor: Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
9146  {
9147  -127 /*fromYearTiny (-32767)*/,
9148  -127 /*toYearTiny (-32767)*/,
9149  1 /*inMonth*/,
9150  0 /*onDayOfWeek*/,
9151  1 /*onDayOfMonth*/,
9152  0 /*atTimeCode*/,
9153  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9154  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9155  1 /*letterIndex ("+00")*/,
9156  },
9157  // Rule Troll 2005 max - Mar lastSun 1:00u 2:00 +02
9158  {
9159  -95 /*fromYearTiny (2005)*/,
9160  126 /*toYearTiny (32766)*/,
9161  3 /*inMonth*/,
9162  7 /*onDayOfWeek*/,
9163  0 /*onDayOfMonth*/,
9164  4 /*atTimeCode*/,
9165  32 /*atTimeModifier (kSuffixU + minute=0)*/,
9166  12 /*deltaCode ((deltaMinutes=120)/15 + 4)*/,
9167  2 /*letterIndex ("+02")*/,
9168  },
9169  // Rule Troll 2004 max - Oct lastSun 1:00u 0:00 +00
9170  {
9171  -96 /*fromYearTiny (2004)*/,
9172  126 /*toYearTiny (32766)*/,
9173  10 /*inMonth*/,
9174  7 /*onDayOfWeek*/,
9175  0 /*onDayOfMonth*/,
9176  4 /*atTimeCode*/,
9177  32 /*atTimeModifier (kSuffixU + minute=0)*/,
9178  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9179  1 /*letterIndex ("+00")*/,
9180  },
9181 
9182 };
9183 
9184 const extended::Info::ZonePolicy kZonePolicyTroll ACE_TIME_PROGMEM = {
9185  kZoneRulesTroll /*rules*/,
9186  3 /*numRules*/,
9187 };
9188 
9189 //---------------------------------------------------------------------------
9190 // Policy name: Tunisia
9191 // Rules: 6
9192 //---------------------------------------------------------------------------
9193 
9194 static const extended::Info::ZoneRule kZoneRulesTunisia[] ACE_TIME_PROGMEM = {
9195  // Anchor: Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 -
9196  {
9197  -127 /*fromYearTiny (-32767)*/,
9198  -127 /*toYearTiny (-32767)*/,
9199  1 /*inMonth*/,
9200  0 /*onDayOfWeek*/,
9201  1 /*onDayOfMonth*/,
9202  0 /*atTimeCode*/,
9203  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9204  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9205  0 /*letterIndex ("")*/,
9206  },
9207  // Rule Tunisia 1988 1990 - Sep lastSun 0:00s 0 -
9208  {
9209  -112 /*fromYearTiny (1988)*/,
9210  -110 /*toYearTiny (1990)*/,
9211  9 /*inMonth*/,
9212  7 /*onDayOfWeek*/,
9213  0 /*onDayOfMonth*/,
9214  0 /*atTimeCode*/,
9215  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9216  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9217  0 /*letterIndex ("")*/,
9218  },
9219  // Rule Tunisia 2005 only - May 1 0:00s 1:00 S
9220  {
9221  -95 /*fromYearTiny (2005)*/,
9222  -95 /*toYearTiny (2005)*/,
9223  5 /*inMonth*/,
9224  0 /*onDayOfWeek*/,
9225  1 /*onDayOfMonth*/,
9226  0 /*atTimeCode*/,
9227  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9228  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9229  7 /*letterIndex ("S")*/,
9230  },
9231  // Rule Tunisia 2005 only - Sep 30 1:00s 0 -
9232  {
9233  -95 /*fromYearTiny (2005)*/,
9234  -95 /*toYearTiny (2005)*/,
9235  9 /*inMonth*/,
9236  0 /*onDayOfWeek*/,
9237  30 /*onDayOfMonth*/,
9238  4 /*atTimeCode*/,
9239  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9240  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9241  0 /*letterIndex ("")*/,
9242  },
9243  // Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
9244  {
9245  -94 /*fromYearTiny (2006)*/,
9246  -92 /*toYearTiny (2008)*/,
9247  3 /*inMonth*/,
9248  7 /*onDayOfWeek*/,
9249  0 /*onDayOfMonth*/,
9250  8 /*atTimeCode*/,
9251  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9252  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9253  7 /*letterIndex ("S")*/,
9254  },
9255  // Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
9256  {
9257  -94 /*fromYearTiny (2006)*/,
9258  -92 /*toYearTiny (2008)*/,
9259  10 /*inMonth*/,
9260  7 /*onDayOfWeek*/,
9261  0 /*onDayOfMonth*/,
9262  8 /*atTimeCode*/,
9263  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9264  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9265  0 /*letterIndex ("")*/,
9266  },
9267 
9268 };
9269 
9270 const extended::Info::ZonePolicy kZonePolicyTunisia ACE_TIME_PROGMEM = {
9271  kZoneRulesTunisia /*rules*/,
9272  6 /*numRules*/,
9273 };
9274 
9275 //---------------------------------------------------------------------------
9276 // Policy name: Turkey
9277 // Rules: 4
9278 //---------------------------------------------------------------------------
9279 
9280 static const extended::Info::ZoneRule kZoneRulesTurkey[] ACE_TIME_PROGMEM = {
9281  // Anchor: Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 -
9282  {
9283  -127 /*fromYearTiny (-32767)*/,
9284  -127 /*toYearTiny (-32767)*/,
9285  1 /*inMonth*/,
9286  0 /*onDayOfWeek*/,
9287  1 /*onDayOfMonth*/,
9288  0 /*atTimeCode*/,
9289  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9290  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9291  0 /*letterIndex ("")*/,
9292  },
9293  // Rule Turkey 1986 1995 - Sep lastSun 1:00s 0 -
9294  {
9295  -114 /*fromYearTiny (1986)*/,
9296  -105 /*toYearTiny (1995)*/,
9297  9 /*inMonth*/,
9298  7 /*onDayOfWeek*/,
9299  0 /*onDayOfMonth*/,
9300  4 /*atTimeCode*/,
9301  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9302  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9303  0 /*letterIndex ("")*/,
9304  },
9305  // Rule Turkey 1995 2006 - Mar lastSun 1:00s 1:00 S
9306  {
9307  -105 /*fromYearTiny (1995)*/,
9308  -94 /*toYearTiny (2006)*/,
9309  3 /*inMonth*/,
9310  7 /*onDayOfWeek*/,
9311  0 /*onDayOfMonth*/,
9312  4 /*atTimeCode*/,
9313  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9314  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9315  7 /*letterIndex ("S")*/,
9316  },
9317  // Rule Turkey 1996 2006 - Oct lastSun 1:00s 0 -
9318  {
9319  -104 /*fromYearTiny (1996)*/,
9320  -94 /*toYearTiny (2006)*/,
9321  10 /*inMonth*/,
9322  7 /*onDayOfWeek*/,
9323  0 /*onDayOfMonth*/,
9324  4 /*atTimeCode*/,
9325  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9326  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9327  0 /*letterIndex ("")*/,
9328  },
9329 
9330 };
9331 
9332 const extended::Info::ZonePolicy kZonePolicyTurkey ACE_TIME_PROGMEM = {
9333  kZoneRulesTurkey /*rules*/,
9334  4 /*numRules*/,
9335 };
9336 
9337 //---------------------------------------------------------------------------
9338 // Policy name: US
9339 // Rules: 6
9340 //---------------------------------------------------------------------------
9341 
9342 static const extended::Info::ZoneRule kZoneRulesUS[] ACE_TIME_PROGMEM = {
9343  // Anchor: Rule US 1967 2006 - Oct lastSun 2:00 0 S
9344  {
9345  -127 /*fromYearTiny (-32767)*/,
9346  -127 /*toYearTiny (-32767)*/,
9347  1 /*inMonth*/,
9348  0 /*onDayOfWeek*/,
9349  1 /*onDayOfMonth*/,
9350  0 /*atTimeCode*/,
9351  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9352  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9353  7 /*letterIndex ("S")*/,
9354  },
9355  // Rule US 1967 2006 - Oct lastSun 2:00 0 S
9356  {
9357  -127 /*fromYearTiny (1967)*/,
9358  -94 /*toYearTiny (2006)*/,
9359  10 /*inMonth*/,
9360  7 /*onDayOfWeek*/,
9361  0 /*onDayOfMonth*/,
9362  8 /*atTimeCode*/,
9363  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9364  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9365  7 /*letterIndex ("S")*/,
9366  },
9367  // Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
9368  {
9369  -124 /*fromYearTiny (1976)*/,
9370  -114 /*toYearTiny (1986)*/,
9371  4 /*inMonth*/,
9372  7 /*onDayOfWeek*/,
9373  0 /*onDayOfMonth*/,
9374  8 /*atTimeCode*/,
9375  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9376  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9377  5 /*letterIndex ("D")*/,
9378  },
9379  // Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
9380  {
9381  -113 /*fromYearTiny (1987)*/,
9382  -94 /*toYearTiny (2006)*/,
9383  4 /*inMonth*/,
9384  7 /*onDayOfWeek*/,
9385  1 /*onDayOfMonth*/,
9386  8 /*atTimeCode*/,
9387  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9388  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9389  5 /*letterIndex ("D")*/,
9390  },
9391  // Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
9392  {
9393  -93 /*fromYearTiny (2007)*/,
9394  126 /*toYearTiny (32766)*/,
9395  3 /*inMonth*/,
9396  7 /*onDayOfWeek*/,
9397  8 /*onDayOfMonth*/,
9398  8 /*atTimeCode*/,
9399  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9400  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9401  5 /*letterIndex ("D")*/,
9402  },
9403  // Rule US 2007 max - Nov Sun>=1 2:00 0 S
9404  {
9405  -93 /*fromYearTiny (2007)*/,
9406  126 /*toYearTiny (32766)*/,
9407  11 /*inMonth*/,
9408  7 /*onDayOfWeek*/,
9409  1 /*onDayOfMonth*/,
9410  8 /*atTimeCode*/,
9411  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9412  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9413  7 /*letterIndex ("S")*/,
9414  },
9415 
9416 };
9417 
9418 const extended::Info::ZonePolicy kZonePolicyUS ACE_TIME_PROGMEM = {
9419  kZoneRulesUS /*rules*/,
9420  6 /*numRules*/,
9421 };
9422 
9423 //---------------------------------------------------------------------------
9424 // Policy name: Uruguay
9425 // Rules: 7
9426 //---------------------------------------------------------------------------
9427 
9428 static const extended::Info::ZoneRule kZoneRulesUruguay[] ACE_TIME_PROGMEM = {
9429  // Anchor: Rule Uruguay 1993 only - Feb 28 0:00 0 -
9430  {
9431  -127 /*fromYearTiny (-32767)*/,
9432  -127 /*toYearTiny (-32767)*/,
9433  1 /*inMonth*/,
9434  0 /*onDayOfWeek*/,
9435  1 /*onDayOfMonth*/,
9436  0 /*atTimeCode*/,
9437  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9438  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9439  0 /*letterIndex ("")*/,
9440  },
9441  // Rule Uruguay 1993 only - Feb 28 0:00 0 -
9442  {
9443  -107 /*fromYearTiny (1993)*/,
9444  -107 /*toYearTiny (1993)*/,
9445  2 /*inMonth*/,
9446  0 /*onDayOfWeek*/,
9447  28 /*onDayOfMonth*/,
9448  0 /*atTimeCode*/,
9449  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9450  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9451  0 /*letterIndex ("")*/,
9452  },
9453  // Rule Uruguay 2004 only - Sep 19 0:00 1:00 -
9454  {
9455  -96 /*fromYearTiny (2004)*/,
9456  -96 /*toYearTiny (2004)*/,
9457  9 /*inMonth*/,
9458  0 /*onDayOfWeek*/,
9459  19 /*onDayOfMonth*/,
9460  0 /*atTimeCode*/,
9461  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9462  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9463  0 /*letterIndex ("")*/,
9464  },
9465  // Rule Uruguay 2005 only - Mar 27 2:00 0 -
9466  {
9467  -95 /*fromYearTiny (2005)*/,
9468  -95 /*toYearTiny (2005)*/,
9469  3 /*inMonth*/,
9470  0 /*onDayOfWeek*/,
9471  27 /*onDayOfMonth*/,
9472  8 /*atTimeCode*/,
9473  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9474  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9475  0 /*letterIndex ("")*/,
9476  },
9477  // Rule Uruguay 2005 only - Oct 9 2:00 1:00 -
9478  {
9479  -95 /*fromYearTiny (2005)*/,
9480  -95 /*toYearTiny (2005)*/,
9481  10 /*inMonth*/,
9482  0 /*onDayOfWeek*/,
9483  9 /*onDayOfMonth*/,
9484  8 /*atTimeCode*/,
9485  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9486  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9487  0 /*letterIndex ("")*/,
9488  },
9489  // Rule Uruguay 2006 2015 - Mar Sun>=8 2:00 0 -
9490  {
9491  -94 /*fromYearTiny (2006)*/,
9492  -85 /*toYearTiny (2015)*/,
9493  3 /*inMonth*/,
9494  7 /*onDayOfWeek*/,
9495  8 /*onDayOfMonth*/,
9496  8 /*atTimeCode*/,
9497  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9498  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9499  0 /*letterIndex ("")*/,
9500  },
9501  // Rule Uruguay 2006 2014 - Oct Sun>=1 2:00 1:00 -
9502  {
9503  -94 /*fromYearTiny (2006)*/,
9504  -86 /*toYearTiny (2014)*/,
9505  10 /*inMonth*/,
9506  7 /*onDayOfWeek*/,
9507  1 /*onDayOfMonth*/,
9508  8 /*atTimeCode*/,
9509  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9510  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9511  0 /*letterIndex ("")*/,
9512  },
9513 
9514 };
9515 
9516 const extended::Info::ZonePolicy kZonePolicyUruguay ACE_TIME_PROGMEM = {
9517  kZoneRulesUruguay /*rules*/,
9518  7 /*numRules*/,
9519 };
9520 
9521 //---------------------------------------------------------------------------
9522 // Policy name: Vanuatu
9523 // Rules: 1
9524 //---------------------------------------------------------------------------
9525 
9526 static const extended::Info::ZoneRule kZoneRulesVanuatu[] ACE_TIME_PROGMEM = {
9527  // Anchor: Rule Vanuatu 1992 1993 - Jan Sat>=22 24:00 0 -
9528  {
9529  -127 /*fromYearTiny (-32767)*/,
9530  -127 /*toYearTiny (-32767)*/,
9531  1 /*inMonth*/,
9532  0 /*onDayOfWeek*/,
9533  1 /*onDayOfMonth*/,
9534  0 /*atTimeCode*/,
9535  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9536  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9537  0 /*letterIndex ("")*/,
9538  },
9539 
9540 };
9541 
9542 const extended::Info::ZonePolicy kZonePolicyVanuatu ACE_TIME_PROGMEM = {
9543  kZoneRulesVanuatu /*rules*/,
9544  1 /*numRules*/,
9545 };
9546 
9547 //---------------------------------------------------------------------------
9548 // Policy name: WS
9549 // Rules: 6
9550 //---------------------------------------------------------------------------
9551 
9552 static const extended::Info::ZoneRule kZoneRulesWS[] ACE_TIME_PROGMEM = {
9553  // Anchor: Rule WS 2011 only - Apr Sat>=1 4:00 0 -
9554  {
9555  -127 /*fromYearTiny (-32767)*/,
9556  -127 /*toYearTiny (-32767)*/,
9557  1 /*inMonth*/,
9558  0 /*onDayOfWeek*/,
9559  1 /*onDayOfMonth*/,
9560  0 /*atTimeCode*/,
9561  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9562  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9563  0 /*letterIndex ("")*/,
9564  },
9565  // Rule WS 2010 only - Sep lastSun 0:00 1 -
9566  {
9567  -90 /*fromYearTiny (2010)*/,
9568  -90 /*toYearTiny (2010)*/,
9569  9 /*inMonth*/,
9570  7 /*onDayOfWeek*/,
9571  0 /*onDayOfMonth*/,
9572  0 /*atTimeCode*/,
9573  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9574  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9575  0 /*letterIndex ("")*/,
9576  },
9577  // Rule WS 2011 only - Apr Sat>=1 4:00 0 -
9578  {
9579  -89 /*fromYearTiny (2011)*/,
9580  -89 /*toYearTiny (2011)*/,
9581  4 /*inMonth*/,
9582  6 /*onDayOfWeek*/,
9583  1 /*onDayOfMonth*/,
9584  16 /*atTimeCode*/,
9585  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9586  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9587  0 /*letterIndex ("")*/,
9588  },
9589  // Rule WS 2011 only - Sep lastSat 3:00 1 -
9590  {
9591  -89 /*fromYearTiny (2011)*/,
9592  -89 /*toYearTiny (2011)*/,
9593  9 /*inMonth*/,
9594  6 /*onDayOfWeek*/,
9595  0 /*onDayOfMonth*/,
9596  12 /*atTimeCode*/,
9597  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9598  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9599  0 /*letterIndex ("")*/,
9600  },
9601  // Rule WS 2012 2021 - Apr Sun>=1 4:00 0 -
9602  {
9603  -88 /*fromYearTiny (2012)*/,
9604  -79 /*toYearTiny (2021)*/,
9605  4 /*inMonth*/,
9606  7 /*onDayOfWeek*/,
9607  1 /*onDayOfMonth*/,
9608  16 /*atTimeCode*/,
9609  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9610  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9611  0 /*letterIndex ("")*/,
9612  },
9613  // Rule WS 2012 2020 - Sep lastSun 3:00 1 -
9614  {
9615  -88 /*fromYearTiny (2012)*/,
9616  -80 /*toYearTiny (2020)*/,
9617  9 /*inMonth*/,
9618  7 /*onDayOfWeek*/,
9619  0 /*onDayOfMonth*/,
9620  12 /*atTimeCode*/,
9621  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9622  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9623  0 /*letterIndex ("")*/,
9624  },
9625 
9626 };
9627 
9628 const extended::Info::ZonePolicy kZonePolicyWS ACE_TIME_PROGMEM = {
9629  kZoneRulesWS /*rules*/,
9630  6 /*numRules*/,
9631 };
9632 
9633 //---------------------------------------------------------------------------
9634 // Policy name: Winn
9635 // Rules: 4
9636 //---------------------------------------------------------------------------
9637 
9638 static const extended::Info::ZoneRule kZoneRulesWinn[] ACE_TIME_PROGMEM = {
9639  // Anchor: Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
9640  {
9641  -127 /*fromYearTiny (-32767)*/,
9642  -127 /*toYearTiny (-32767)*/,
9643  1 /*inMonth*/,
9644  0 /*onDayOfWeek*/,
9645  1 /*onDayOfMonth*/,
9646  0 /*atTimeCode*/,
9647  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9648  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9649  7 /*letterIndex ("S")*/,
9650  },
9651  // Rule Winn 1966 1986 - Apr lastSun 2:00s 1:00 D
9652  {
9653  -127 /*fromYearTiny (1966)*/,
9654  -114 /*toYearTiny (1986)*/,
9655  4 /*inMonth*/,
9656  7 /*onDayOfWeek*/,
9657  0 /*onDayOfMonth*/,
9658  8 /*atTimeCode*/,
9659  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9660  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9661  5 /*letterIndex ("D")*/,
9662  },
9663  // Rule Winn 1966 2005 - Oct lastSun 2:00s 0 S
9664  {
9665  -127 /*fromYearTiny (1966)*/,
9666  -95 /*toYearTiny (2005)*/,
9667  10 /*inMonth*/,
9668  7 /*onDayOfWeek*/,
9669  0 /*onDayOfMonth*/,
9670  8 /*atTimeCode*/,
9671  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9672  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9673  7 /*letterIndex ("S")*/,
9674  },
9675  // Rule Winn 1987 2005 - Apr Sun>=1 2:00s 1:00 D
9676  {
9677  -113 /*fromYearTiny (1987)*/,
9678  -95 /*toYearTiny (2005)*/,
9679  4 /*inMonth*/,
9680  7 /*onDayOfWeek*/,
9681  1 /*onDayOfMonth*/,
9682  8 /*atTimeCode*/,
9683  16 /*atTimeModifier (kSuffixS + minute=0)*/,
9684  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9685  5 /*letterIndex ("D")*/,
9686  },
9687 
9688 };
9689 
9690 const extended::Info::ZonePolicy kZonePolicyWinn ACE_TIME_PROGMEM = {
9691  kZoneRulesWinn /*rules*/,
9692  4 /*numRules*/,
9693 };
9694 
9695 //---------------------------------------------------------------------------
9696 // Policy name: Zion
9697 // Rules: 25
9698 //---------------------------------------------------------------------------
9699 
9700 static const extended::Info::ZoneRule kZoneRulesZion[] ACE_TIME_PROGMEM = {
9701  // Anchor: Rule Zion 1998 only - Sep 6 0:00 0 S
9702  {
9703  -127 /*fromYearTiny (-32767)*/,
9704  -127 /*toYearTiny (-32767)*/,
9705  1 /*inMonth*/,
9706  0 /*onDayOfWeek*/,
9707  1 /*onDayOfMonth*/,
9708  0 /*atTimeCode*/,
9709  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9710  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9711  7 /*letterIndex ("S")*/,
9712  },
9713  // Rule Zion 1998 only - Sep 6 0:00 0 S
9714  {
9715  -102 /*fromYearTiny (1998)*/,
9716  -102 /*toYearTiny (1998)*/,
9717  9 /*inMonth*/,
9718  0 /*onDayOfWeek*/,
9719  6 /*onDayOfMonth*/,
9720  0 /*atTimeCode*/,
9721  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9722  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9723  7 /*letterIndex ("S")*/,
9724  },
9725  // Rule Zion 1999 only - Apr 2 2:00 1:00 D
9726  {
9727  -101 /*fromYearTiny (1999)*/,
9728  -101 /*toYearTiny (1999)*/,
9729  4 /*inMonth*/,
9730  0 /*onDayOfWeek*/,
9731  2 /*onDayOfMonth*/,
9732  8 /*atTimeCode*/,
9733  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9734  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9735  5 /*letterIndex ("D")*/,
9736  },
9737  // Rule Zion 1999 only - Sep 3 2:00 0 S
9738  {
9739  -101 /*fromYearTiny (1999)*/,
9740  -101 /*toYearTiny (1999)*/,
9741  9 /*inMonth*/,
9742  0 /*onDayOfWeek*/,
9743  3 /*onDayOfMonth*/,
9744  8 /*atTimeCode*/,
9745  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9746  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9747  7 /*letterIndex ("S")*/,
9748  },
9749  // Rule Zion 2000 only - Apr 14 2:00 1:00 D
9750  {
9751  -100 /*fromYearTiny (2000)*/,
9752  -100 /*toYearTiny (2000)*/,
9753  4 /*inMonth*/,
9754  0 /*onDayOfWeek*/,
9755  14 /*onDayOfMonth*/,
9756  8 /*atTimeCode*/,
9757  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9758  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9759  5 /*letterIndex ("D")*/,
9760  },
9761  // Rule Zion 2000 only - Oct 6 1:00 0 S
9762  {
9763  -100 /*fromYearTiny (2000)*/,
9764  -100 /*toYearTiny (2000)*/,
9765  10 /*inMonth*/,
9766  0 /*onDayOfWeek*/,
9767  6 /*onDayOfMonth*/,
9768  4 /*atTimeCode*/,
9769  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9770  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9771  7 /*letterIndex ("S")*/,
9772  },
9773  // Rule Zion 2001 only - Apr 9 1:00 1:00 D
9774  {
9775  -99 /*fromYearTiny (2001)*/,
9776  -99 /*toYearTiny (2001)*/,
9777  4 /*inMonth*/,
9778  0 /*onDayOfWeek*/,
9779  9 /*onDayOfMonth*/,
9780  4 /*atTimeCode*/,
9781  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9782  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9783  5 /*letterIndex ("D")*/,
9784  },
9785  // Rule Zion 2001 only - Sep 24 1:00 0 S
9786  {
9787  -99 /*fromYearTiny (2001)*/,
9788  -99 /*toYearTiny (2001)*/,
9789  9 /*inMonth*/,
9790  0 /*onDayOfWeek*/,
9791  24 /*onDayOfMonth*/,
9792  4 /*atTimeCode*/,
9793  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9794  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9795  7 /*letterIndex ("S")*/,
9796  },
9797  // Rule Zion 2002 only - Mar 29 1:00 1:00 D
9798  {
9799  -98 /*fromYearTiny (2002)*/,
9800  -98 /*toYearTiny (2002)*/,
9801  3 /*inMonth*/,
9802  0 /*onDayOfWeek*/,
9803  29 /*onDayOfMonth*/,
9804  4 /*atTimeCode*/,
9805  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9806  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9807  5 /*letterIndex ("D")*/,
9808  },
9809  // Rule Zion 2002 only - Oct 7 1:00 0 S
9810  {
9811  -98 /*fromYearTiny (2002)*/,
9812  -98 /*toYearTiny (2002)*/,
9813  10 /*inMonth*/,
9814  0 /*onDayOfWeek*/,
9815  7 /*onDayOfMonth*/,
9816  4 /*atTimeCode*/,
9817  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9818  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9819  7 /*letterIndex ("S")*/,
9820  },
9821  // Rule Zion 2003 only - Mar 28 1:00 1:00 D
9822  {
9823  -97 /*fromYearTiny (2003)*/,
9824  -97 /*toYearTiny (2003)*/,
9825  3 /*inMonth*/,
9826  0 /*onDayOfWeek*/,
9827  28 /*onDayOfMonth*/,
9828  4 /*atTimeCode*/,
9829  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9830  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9831  5 /*letterIndex ("D")*/,
9832  },
9833  // Rule Zion 2003 only - Oct 3 1:00 0 S
9834  {
9835  -97 /*fromYearTiny (2003)*/,
9836  -97 /*toYearTiny (2003)*/,
9837  10 /*inMonth*/,
9838  0 /*onDayOfWeek*/,
9839  3 /*onDayOfMonth*/,
9840  4 /*atTimeCode*/,
9841  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9842  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9843  7 /*letterIndex ("S")*/,
9844  },
9845  // Rule Zion 2004 only - Apr 7 1:00 1:00 D
9846  {
9847  -96 /*fromYearTiny (2004)*/,
9848  -96 /*toYearTiny (2004)*/,
9849  4 /*inMonth*/,
9850  0 /*onDayOfWeek*/,
9851  7 /*onDayOfMonth*/,
9852  4 /*atTimeCode*/,
9853  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9854  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9855  5 /*letterIndex ("D")*/,
9856  },
9857  // Rule Zion 2004 only - Sep 22 1:00 0 S
9858  {
9859  -96 /*fromYearTiny (2004)*/,
9860  -96 /*toYearTiny (2004)*/,
9861  9 /*inMonth*/,
9862  0 /*onDayOfWeek*/,
9863  22 /*onDayOfMonth*/,
9864  4 /*atTimeCode*/,
9865  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9866  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9867  7 /*letterIndex ("S")*/,
9868  },
9869  // Rule Zion 2005 2012 - Apr Fri<=1 2:00 1:00 D
9870  {
9871  -95 /*fromYearTiny (2005)*/,
9872  -88 /*toYearTiny (2012)*/,
9873  4 /*inMonth*/,
9874  5 /*onDayOfWeek*/,
9875  -1 /*onDayOfMonth*/,
9876  8 /*atTimeCode*/,
9877  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9878  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9879  5 /*letterIndex ("D")*/,
9880  },
9881  // Rule Zion 2005 only - Oct 9 2:00 0 S
9882  {
9883  -95 /*fromYearTiny (2005)*/,
9884  -95 /*toYearTiny (2005)*/,
9885  10 /*inMonth*/,
9886  0 /*onDayOfWeek*/,
9887  9 /*onDayOfMonth*/,
9888  8 /*atTimeCode*/,
9889  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9890  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9891  7 /*letterIndex ("S")*/,
9892  },
9893  // Rule Zion 2006 only - Oct 1 2:00 0 S
9894  {
9895  -94 /*fromYearTiny (2006)*/,
9896  -94 /*toYearTiny (2006)*/,
9897  10 /*inMonth*/,
9898  0 /*onDayOfWeek*/,
9899  1 /*onDayOfMonth*/,
9900  8 /*atTimeCode*/,
9901  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9902  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9903  7 /*letterIndex ("S")*/,
9904  },
9905  // Rule Zion 2007 only - Sep 16 2:00 0 S
9906  {
9907  -93 /*fromYearTiny (2007)*/,
9908  -93 /*toYearTiny (2007)*/,
9909  9 /*inMonth*/,
9910  0 /*onDayOfWeek*/,
9911  16 /*onDayOfMonth*/,
9912  8 /*atTimeCode*/,
9913  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9914  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9915  7 /*letterIndex ("S")*/,
9916  },
9917  // Rule Zion 2008 only - Oct 5 2:00 0 S
9918  {
9919  -92 /*fromYearTiny (2008)*/,
9920  -92 /*toYearTiny (2008)*/,
9921  10 /*inMonth*/,
9922  0 /*onDayOfWeek*/,
9923  5 /*onDayOfMonth*/,
9924  8 /*atTimeCode*/,
9925  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9926  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9927  7 /*letterIndex ("S")*/,
9928  },
9929  // Rule Zion 2009 only - Sep 27 2:00 0 S
9930  {
9931  -91 /*fromYearTiny (2009)*/,
9932  -91 /*toYearTiny (2009)*/,
9933  9 /*inMonth*/,
9934  0 /*onDayOfWeek*/,
9935  27 /*onDayOfMonth*/,
9936  8 /*atTimeCode*/,
9937  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9938  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9939  7 /*letterIndex ("S")*/,
9940  },
9941  // Rule Zion 2010 only - Sep 12 2:00 0 S
9942  {
9943  -90 /*fromYearTiny (2010)*/,
9944  -90 /*toYearTiny (2010)*/,
9945  9 /*inMonth*/,
9946  0 /*onDayOfWeek*/,
9947  12 /*onDayOfMonth*/,
9948  8 /*atTimeCode*/,
9949  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9950  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9951  7 /*letterIndex ("S")*/,
9952  },
9953  // Rule Zion 2011 only - Oct 2 2:00 0 S
9954  {
9955  -89 /*fromYearTiny (2011)*/,
9956  -89 /*toYearTiny (2011)*/,
9957  10 /*inMonth*/,
9958  0 /*onDayOfWeek*/,
9959  2 /*onDayOfMonth*/,
9960  8 /*atTimeCode*/,
9961  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9962  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9963  7 /*letterIndex ("S")*/,
9964  },
9965  // Rule Zion 2012 only - Sep 23 2:00 0 S
9966  {
9967  -88 /*fromYearTiny (2012)*/,
9968  -88 /*toYearTiny (2012)*/,
9969  9 /*inMonth*/,
9970  0 /*onDayOfWeek*/,
9971  23 /*onDayOfMonth*/,
9972  8 /*atTimeCode*/,
9973  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9974  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9975  7 /*letterIndex ("S")*/,
9976  },
9977  // Rule Zion 2013 max - Mar Fri>=23 2:00 1:00 D
9978  {
9979  -87 /*fromYearTiny (2013)*/,
9980  126 /*toYearTiny (32766)*/,
9981  3 /*inMonth*/,
9982  5 /*onDayOfWeek*/,
9983  23 /*onDayOfMonth*/,
9984  8 /*atTimeCode*/,
9985  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9986  8 /*deltaCode ((deltaMinutes=60)/15 + 4)*/,
9987  5 /*letterIndex ("D")*/,
9988  },
9989  // Rule Zion 2013 max - Oct lastSun 2:00 0 S
9990  {
9991  -87 /*fromYearTiny (2013)*/,
9992  126 /*toYearTiny (32766)*/,
9993  10 /*inMonth*/,
9994  7 /*onDayOfWeek*/,
9995  0 /*onDayOfMonth*/,
9996  8 /*atTimeCode*/,
9997  0 /*atTimeModifier (kSuffixW + minute=0)*/,
9998  4 /*deltaCode ((deltaMinutes=0)/15 + 4)*/,
9999  7 /*letterIndex ("S")*/,
10000  },
10001 
10002 };
10003 
10004 const extended::Info::ZonePolicy kZonePolicyZion ACE_TIME_PROGMEM = {
10005  kZoneRulesZion /*rules*/,
10006  25 /*numRules*/,
10007 };
10008 
10009 
10010 
10011 }
10012 }
Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...