1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
22
  
23
  
24
  
25
  
26
  
27
  
28
  
29
  
30
  
31
  
32
  
33
  
34
  
35
  
36
  
37
  
38
  
39
  
40
  
41
  
42
  
43
  
44
  
45
  
46
  
47
  
48
  
49
  
50
  
51
  
52
  
53
  
54
  
55
  
56
  
57
  
58
  
59
  
60
  
61
  
62
  
63
  
64
  
65
  
66
  
67
  
68
  
69
  
70
  
71
  
72
  
73
  
74
  
75
  
76
  
77
  
78
  
79
  
80
  
81
  
82
  
83
  
84
  
85
  
86
  
87
  
88
  
89
  
90
  
91
  
92
  
93
  
94
  
95
  
96
  
97
  
98
  
99
  
100
  
101
  
102
  
103
  
104
  
105
  
106
  
107
  
108
  
109
  
110
  
111
  
112
  
113
  
114
  
115
  
116
  
117
  
118
  
119
  
120
  
121
  
122
  
123
  
124
  
125
  
126
  
127
  
128
  
129
  
130
  
131
  
132
  
133
  
134
  
135
  
136
  
137
  
138
  
139
  
140
  
141
  
142
  
143
  
144
  
145
  
146
  
147
  
148
  
149
  
150
  
151
  
152
  
153
  
154
  
155
  
156
  
157
  
158
  
159
  
160
  
161
  
162
  
163
  
164
  
165
  
166
  
167
  
168
  
169
  
170
  
171
  
172
  
173
  
174
  
175
  
176
  
177
  
178
  
179
  
180
  
181
  
182
  
183
  
184
  
185
  
186
  
187
  
188
  
189
  
190
  
191
  
192
  
193
  
194
  
195
  
196
  
197
  
198
  
199
  
200
  
201
  
202
  
203
  
204
  
205
  
206
  
207
  
208
  
209
  
210
  
211
  
212
  
213
  
214
  
215
  
216
  
217
  
218
  
219
  
220
  
221
  
222
  
223
  
224
  
225
  
226
  
227
  
228
  
229
  
230
  
231
  
232
  
233
  
234
  
235
  
236
  
237
  
238
  
239
  
240
  
241
  
242
  
243
  
244
  
245
  
246
  
247
  
248
  
249
  
250
  
251
  
252
  
253
  
254
  
255
  
256
  
# 
#       In the following text, the symbol '#' introduces 
#       a comment, which continues from that symbol until 
#       the end of the line. A plain comment line has a 
#       whitespace character following the comment indicator. 
#       There are also special comment lines defined below. 
#       A special comment will always have a non-whitespace 
#       character in column 2. 
# 
#       A blank line should be ignored. 
# 
#       The following table shows the corrections that must 
#       be applied to compute International Atomic Time (TAI) 
#       from the Coordinated Universal Time (UTC) values that 
#       are transmitted by almost all time services. 
# 
#       The first column shows an epoch as a number of seconds 
#       since 1 January 1900, 00:00:00 (1900.0 is also used to 
#       indicate the same epoch.) Both of these time stamp formats 
#       ignore the complexities of the time scales that were 
#       used before the current definition of UTC at the start 
#       of 1972. (See note 3 below.) 
#       The second column shows the number of seconds that 
#       must be added to UTC to compute TAI for any timestamp 
#       at or after that epoch. The value on each line is 
#       valid from the indicated initial instant until the 
#       epoch given on the next one or indefinitely into the 
#       future if there is no next line. 
#       (The comment on each line shows the representation of 
#       the corresponding initial epoch in the usual 
#       day-month-year format. The epoch always begins at 
#       00:00:00 UTC on the indicated day. See Note 5 below.) 
# 
#       Important notes: 
# 
#       1. Coordinated Universal Time (UTC) is often referred to 
#       as Greenwich Mean Time (GMT). The GMT time scale is no 
#       longer used, and the use of GMT to designate UTC is 
#       discouraged. 
# 
#       2. The UTC time scale is realized by many national 
#       laboratories and timing centers. Each laboratory 
#       identifies its realization with its name: Thus 
#       UTC(NIST), UTC(USNO), etc. The differences among 
#       these different realizations are typically on the 
#       order of a few nanoseconds (i.e., 0.000 000 00x s) 
#       and can be ignored for many purposes. These differences 
#       are tabulated in Circular T, which is published monthly 
#       by the International Bureau of Weights and Measures 
#       (BIPM). See www.bipm.org for more information. 
# 
#       3. The current definition of the relationship between UTC 
#       and TAI dates from 1 January 1972. A number of different 
#       time scales were in use before that epoch, and it can be 
#       quite difficult to compute precise timestamps and time 
#       intervals in those "prehistoric" days. For more information, 
#       consult: 
# 
#               The Explanatory Supplement to the Astronomical 
#               Ephemeris. 
#       or 
#               Terry Quinn, "The BIPM and the Accurate Measurement 
#               of Time," Proc. of the IEEE, Vol. 79, pp. 894-905, 
#               July, 1991. <http://dx.doi.org/10.1109/5.84965> 
#               reprinted in:  
#                  Christine Hackman and Donald B Sullivan (eds.) 
#                  Time and Frequency Measurement 
#                  American Association of Physics Teachers (1996) 
#                  <http://tf.nist.gov/general/pdf/1168.pdf>, pp. 75-86 
# 
#       4. The decision to insert a leap second into UTC is currently 
#       the responsibility of the International Earth Rotation and 
#       Reference Systems Service. (The name was changed from the 
#       International Earth Rotation Service, but the acronym IERS 
#       is still used.) 
# 
#       Leap seconds are announced by the IERS in its Bulletin C. 
# 
#       See www.iers.org for more details. 
# 
#       Every national laboratory and timing center uses the 
#       data from the BIPM and the IERS to construct UTC(lab), 
#       their local realization of UTC. 
# 
#       Although the definition also includes the possibility 
#       of dropping seconds ("negative" leap seconds), this has 
#       never been done and is unlikely to be necessary in the 
#       foreseeable future. 
# 
#       5. If your system keeps time as the number of seconds since 
#       some epoch (e.g., NTP timestamps), then the algorithm for 
#       assigning a UTC time stamp to an event that happens during a positive 
#       leap second is not well defined. The official name of that leap 
#       second is 23:59:60, but there is no way of representing that time 
#       in these systems. 
#       Many systems of this type effectively stop the system clock for 
#       one second during the leap second and use a time that is equivalent 
#       to 23:59:59 UTC twice. For these systems, the corresponding TAI 
#       timestamp would be obtained by advancing to the next entry in the 
#       following table when the time equivalent to 23:59:59 UTC 
#       is used for the second time. Thus the leap second which 
#       occurred on 30 June 1972 at 23:59:59 UTC would have TAI 
#       timestamps computed as follows: 
# 
#       ... 
#       30 June 1972 23:59:59 (2287785599, first time): TAI= UTC + 10 seconds 
#       30 June 1972 23:59:60 (2287785599,second time): TAI= UTC + 11 seconds 
#       1  July 1972 00:00:00 (2287785600)              TAI= UTC + 11 seconds 
#       ... 
# 
#       If your system realizes the leap second by repeating 00:00:00 UTC twice 
#       (this is possible but not usual), then the advance to the next entry 
#       in the table must occur the second time that a time equivalent to 
#       00:00:00 UTC is used. Thus, using the same example as above: 
# 
#       ... 
#       30 June 1972 23:59:59 (2287785599):             TAI= UTC + 10 seconds 
#       30 June 1972 23:59:60 (2287785600, first time): TAI= UTC + 10 seconds 
#       1  July 1972 00:00:00 (2287785600,second time): TAI= UTC + 11 seconds 
#       ... 
# 
#       in both cases the use of timestamps based on TAI produces a smooth 
#       time scale with no discontinuity in the time interval. However, 
#       although the long-term behavior of the time scale is correct in both 
#       methods, the second method is technically not correct because it adds 
#       the extra second to the wrong day. 
# 
#       This complexity would not be needed for negative leap seconds (if they 
#       are ever used). The UTC time would skip 23:59:59 and advance from 
#       23:59:58 to 00:00:00 in that case. The TAI offset would decrease by 
#       1 second at the same instant. This is a much easier situation to deal 
#       with, since the difficulty of unambiguously representing the epoch 
#       during the leap second does not arise. 
# 
#       Some systems implement leap seconds by amortizing the leap second 
#       over the last few minutes of the day. The frequency of the local 
#       clock is decreased (or increased) to realize the positive (or 
#       negative) leap second. This method removes the time step described 
#       above. Although the long-term behavior of the time scale is correct 
#       in this case, this method introduces an error during the adjustment 
#       period both in time and in frequency with respect to the official 
#       definition of UTC. 
# 
#       Questions or comments to: 
#               Judah Levine 
#               Time and Frequency Division 
#               NIST 
#               Boulder, Colorado 
#               Judah.Levine@nist.gov 
# 
#       Last Update of leap second values:   8 July 2016 
# 
#       The following line shows this last update date in NTP timestamp 
#       format. This is the date on which the most recent change to 
#       the leap second data was added to the file. This line can 
#       be identified by the unique pair of characters in the first two 
#       columns as shown below. 
# 
#$       3676924800 
# 
#       The NTP timestamps are in units of seconds since the NTP epoch, 
#       which is 1 January 1900, 00:00:00. The Modified Julian Day number 
#       corresponding to the NTP time stamp, X, can be computed as 
# 
#       X/86400 + 15020 
# 
#       where the first term converts seconds to days and the second 
#       term adds the MJD corresponding to the time origin defined above. 
#       The integer portion of the result is the integer MJD for that 
#       day, and any remainder is the time of day, expressed as the 
#       fraction of the day since 0 hours UTC. The conversion from day 
#       fraction to seconds or to hours, minutes, and seconds may involve 
#       rounding or truncation, depending on the method used in the 
#       computation. 
# 
#       The data in this file will be updated periodically as new leap 
#       seconds are announced. In addition to being entered on the line 
#       above, the update time (in NTP format) will be added to the basic 
#       file name leap-seconds to form the name leap-seconds.<NTP TIME>. 
#       In addition, the generic name leap-seconds.list will always point to 
#       the most recent version of the file. 
# 
#       This update procedure will be performed only when a new leap second 
#       is announced. 
# 
#       The following entry specifies the expiration date of the data 
#       in this file in units of seconds since the origin at the instant 
#       1 January 1900, 00:00:00. This expiration date will be changed 
#       at least twice per year whether or not a new leap second is 
#       announced. These semi-annual changes will be made no later 
#       than 1 June and 1 December of each year to indicate what 
#       action (if any) is to be taken on 30 June and 31 December, 
#       respectively. (These are the customary effective dates for new 
#       leap seconds.) This expiration date will be identified by a 
#       unique pair of characters in columns 1 and 2 as shown below. 
#       In the unlikely event that a leap second is announced with an 
#       effective date other than 30 June or 31 December, then this 
#       file will be edited to include that leap second as soon as it is 
#       announced or at least one month before the effective date 
#       (whichever is later). 
#       If an announcement by the IERS specifies that no leap second is 
#       scheduled, then only the expiration date of the file will 
#       be advanced to show that the information in the file is still 
#       current -- the update time stamp, the data and the name of the file 
#       will not change. 
# 
#       Updated through IERS Bulletin C55 
#       File expires on:  28 December 2018 
# 
#@      3754944000 
# 
2272060800      10      # 1 Jan 1972 
2287785600      11      # 1 Jul 1972 
2303683200      12      # 1 Jan 1973 
2335219200      13      # 1 Jan 1974 
2366755200      14      # 1 Jan 1975 
2398291200      15      # 1 Jan 1976 
2429913600      16      # 1 Jan 1977 
2461449600      17      # 1 Jan 1978 
2492985600      18      # 1 Jan 1979 
2524521600      19      # 1 Jan 1980 
2571782400      20      # 1 Jul 1981 
2603318400      21      # 1 Jul 1982 
2634854400      22      # 1 Jul 1983 
2698012800      23      # 1 Jul 1985 
2776982400      24      # 1 Jan 1988 
2840140800      25      # 1 Jan 1990 
2871676800      26      # 1 Jan 1991 
2918937600      27      # 1 Jul 1992 
2950473600      28      # 1 Jul 1993 
2982009600      29      # 1 Jul 1994 
3029443200      30      # 1 Jan 1996 
3076704000      31      # 1 Jul 1997 
3124137600      32      # 1 Jan 1999 
3345062400      33      # 1 Jan 2006 
3439756800      34      # 1 Jan 2009 
3550089600      35      # 1 Jul 2012 
3644697600      36      # 1 Jul 2015 
3692217600      37      # 1 Jan 2017 
# 
#       the following special comment contains the 
#       hash value of the data in this file computed 
#       use the secure hash algorithm as specified 
#       by FIPS 180-1. See the files in ~/pub/sha for 
#       the details of how this hash value is 
#       computed. Note that the hash computation 
#       ignores comments and whitespace characters 
#       in data lines. It includes the NTP values 
#       of both the last modification time and the 
#       expiration time of the file, but not the 
#       white space on those lines. 
#       the hash line is also ignored in the 
#       computation. 
# 
#h      44dcf58c e28d25aa b36612c8 f3d3e8b5 a8fdf478