@idm-plugin/meteo2 0.9.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  var V0 = Object.defineProperty;
2
- var l0 = (M, z, p) => z in M ? V0(M, z, { enumerable: !0, configurable: !0, writable: !0, value: p }) : M[z] = p;
3
- var v = (M, z, p) => (l0(M, typeof z != "symbol" ? z + "" : z, p), p);
4
- import Y0 from "@log4js-node/log4js-api";
5
- import L from "moment";
2
+ var l0 = (M, z, b) => z in M ? V0(M, z, { enumerable: !0, configurable: !0, writable: !0, value: b }) : M[z] = b;
3
+ var F = (M, z, b) => (l0(M, typeof z != "symbol" ? z + "" : z, b), b);
4
+ import e0 from "@log4js-node/log4js-api";
5
+ import i from "moment";
6
6
  import $ from "got";
7
- import { fetchWeatherApi as o0 } from "openmeteo";
8
- import { Meteo2Assist as w } from "@idm-plugin/meteo";
7
+ import { fetchWeatherApi as t0 } from "openmeteo";
8
+ import { Meteo2Assist as D } from "@idm-plugin/meteo";
9
9
  import Z0 from "xml2js";
10
- import { LaneHelper as T0 } from "@idm-plugin/geo2";
11
- let Z;
10
+ import { LaneHelper as f0 } from "@idm-plugin/geo2";
11
+ let G;
12
12
  try {
13
- Z = Y0.getLogger("meteo");
13
+ G = e0.getLogger("meteo");
14
14
  } catch {
15
15
  } finally {
16
16
  }
@@ -25,26 +25,26 @@ class j0 {
25
25
  * @param source
26
26
  * @param options
27
27
  */
28
- static async queryPointMeteo(z, p, b, A = !1, c = "", o = {}) {
29
- typeof b == "number" && (b = b < 1e12 ? b * 1e3 : b);
30
- const O = L(b), q = {
28
+ static async queryPointMeteo(z, b, p, W = !1, A = "", c = {}) {
29
+ typeof p == "number" && (p = p < 1e12 ? p * 1e3 : p);
30
+ const O = i(p), Y = {
31
31
  searchParams: {
32
32
  lng: z,
33
- lat: p,
33
+ lat: b,
34
34
  ts: O.valueOf(),
35
- params: A ? "watertemp" : void 0,
36
- source: c == null ? void 0 : c.toLowerCase()
35
+ params: W ? "watertemp" : void 0,
36
+ source: A == null ? void 0 : A.toLowerCase()
37
37
  },
38
38
  timeout: 3e4
39
- }, d = L(), n = d.valueOf();
40
- O.isBefore(d.subtract(1, "month")) && (Z == null || Z.warn("[%s] get history meteo on %s: %j", o.requestId, O.format(), q));
41
- const a = "https://aod4idm.idmwx.com/api/ocean/point", Y = await $.get(a, q).json(), t = L().valueOf();
42
- if (Z == null || Z.info("[%s] get meteo(cost: %d ms) from %s with options: %j", o.requestId, t - n, a, q), (Y == null ? void 0 : Y.code) === 0)
39
+ }, a = i(), n = a.valueOf();
40
+ O.isBefore(a.subtract(1, "month")) && (G == null || G.warn("[%s] get history meteo on %s: %j", c.requestId, O.format(), Y));
41
+ const X = "https://aod4idm.idmwx.com/api/ocean/point", d = await $.get(X, Y).json(), t = i().valueOf();
42
+ if (G == null || G.info("[%s] get meteo(cost: %d ms) from %s with options: %j", c.requestId, t - n, X, Y), (d == null ? void 0 : d.code) === 0)
43
43
  return {
44
- ...Y.data,
45
- source: c
44
+ ...d.data,
45
+ source: A
46
46
  };
47
- Z == null || Z.warn("[%s] get meteo failed: %j", o.requestId, Y);
47
+ G == null || G.warn("[%s] get meteo failed: %j", c.requestId, d);
48
48
  }
49
49
  /**
50
50
  * 点查海洋气象要素(指定要素组合)
@@ -60,43 +60,43 @@ class j0 {
60
60
  * @param source
61
61
  * @param options
62
62
  */
63
- static async queryPointFactor(z, p, b, A = "wind,wave,current,watertemp,visibility", c = "", o = {}) {
64
- typeof b == "number" && (b = b < 1e12 ? b * 1e3 : b);
65
- const O = L(b), q = {
63
+ static async queryPointFactor(z, b, p, W = "wind,wave,current,watertemp,visibility", A = "", c = {}) {
64
+ typeof p == "number" && (p = p < 1e12 ? p * 1e3 : p);
65
+ const O = i(p), Y = {
66
66
  searchParams: {
67
67
  lng: z,
68
- lat: p,
68
+ lat: b,
69
69
  ts: O.valueOf(),
70
- params: A,
71
- source: c == null ? void 0 : c.toLowerCase()
70
+ params: W,
71
+ source: A == null ? void 0 : A.toLowerCase()
72
72
  },
73
73
  timeout: 3e4
74
- }, d = L(), n = d.valueOf();
75
- O.isBefore(d.subtract(1, "month")) && (Z == null || Z.warn("[%s] get history factors on %s: %j", o.requestId, O.format(), q));
76
- const a = "https://aod4idm.idmwx.com/api/ocean/factor", Y = await $.get(a, q).json(), t = L().valueOf();
77
- if (Z == null || Z.info("[%s] get factors(cost: %d ms) from %s with options: %j", o.requestId, t - n, a, q), (Y == null ? void 0 : Y.code) === 0)
74
+ }, a = i(), n = a.valueOf();
75
+ O.isBefore(a.subtract(1, "month")) && (G == null || G.warn("[%s] get history factors on %s: %j", c.requestId, O.format(), Y));
76
+ const X = "https://aod4idm.idmwx.com/api/ocean/factor", d = await $.get(X, Y).json(), t = i().valueOf();
77
+ if (G == null || G.info("[%s] get factors(cost: %d ms) from %s with options: %j", c.requestId, t - n, X, Y), (d == null ? void 0 : d.code) === 0)
78
78
  return {
79
- ...Y.data,
80
- source: c
79
+ ...d.data,
80
+ source: A
81
81
  };
82
- Z == null || Z.warn("[%s] get factors failed: %j", o.requestId, Y);
82
+ G == null || G.warn("[%s] get factors failed: %j", c.requestId, d);
83
83
  }
84
84
  /**
85
85
  * @see https://api.windy.com/point-forecast/docs
86
86
  * @param key
87
87
  */
88
- static async queryWindyPointForecast(z, p, b, A = {}) {
89
- const c = "https://api.windy.com/api/point-forecast/v2", o = [];
88
+ static async queryWindyPointForecast(z, b, p, W = {}) {
89
+ const A = "https://api.windy.com/api/point-forecast/v2", c = [];
90
90
  try {
91
- let O = L().valueOf();
92
- const q = await $.post(c, {
91
+ let O = i().valueOf();
92
+ const Y = await $.post(A, {
93
93
  headers: {
94
94
  "Content-Type": "application/json"
95
95
  },
96
96
  json: {
97
97
  lat: z,
98
- lon: p,
99
- key: b,
98
+ lon: b,
99
+ key: p,
100
100
  model: "gfs",
101
101
  parameters: [
102
102
  "temp",
@@ -118,67 +118,67 @@ class j0 {
118
118
  levels: ["surface"]
119
119
  }
120
120
  }).json();
121
- let d = L().valueOf();
122
- Z == null || Z.info("[%s] get gfs-factors(cost: %d ms) from %s", A.requestId, d - O, c), O = d;
123
- const n = await $.post(c, {
121
+ let a = i().valueOf();
122
+ G == null || G.info("[%s] get gfs-factors(cost: %d ms) from %s", W.requestId, a - O, A), O = a;
123
+ const n = await $.post(A, {
124
124
  headers: {
125
125
  "Content-Type": "application/json"
126
126
  },
127
127
  json: {
128
128
  lat: z,
129
- lon: p,
130
- key: b,
129
+ lon: b,
130
+ key: p,
131
131
  model: "gfsWave",
132
132
  parameters: ["waves", "windWaves", "swell1", "swell2"],
133
133
  levels: ["surface"]
134
134
  }
135
135
  }).json();
136
- d = L().valueOf(), Z == null || Z.info("[%s] get gfs-wave-factors(cost: %d ms) from %s", A.requestId, d - O, c);
137
- for (let Y = 0; Y < q.ts.length; Y++) {
138
- const t = this.populateUVFactor(q["wind_u-surface"][Y], q["wind_v-surface"][Y], !1, A);
139
- t.scale = this.calculateBeaufortWindForceScale(t.speed), o.push({
140
- utc: L(q.ts[Y]).utc().format(),
141
- temp: q["temp-surface"][Y] ? Math.round((q["temp-surface"][Y] - 273.15) * 100) / 100 : void 0,
142
- dp_temp: q["dewpoint-surface"][Y] ? Math.round((q["dewpoint-surface"][Y] - 273.15) * 100) / 100 : void 0,
136
+ a = i().valueOf(), G == null || G.info("[%s] get gfs-wave-factors(cost: %d ms) from %s", W.requestId, a - O, A);
137
+ for (let d = 0; d < Y.ts.length; d++) {
138
+ const t = this.populateUVFactor(Y["wind_u-surface"][d], Y["wind_v-surface"][d], !1, W);
139
+ t.scale = this.calculateBeaufortWindForceScale(t.speed), c.push({
140
+ utc: i(Y.ts[d]).utc().format(),
141
+ temp: Y["temp-surface"][d] ? Math.round((Y["temp-surface"][d] - 273.15) * 100) / 100 : void 0,
142
+ dp_temp: Y["dewpoint-surface"][d] ? Math.round((Y["dewpoint-surface"][d] - 273.15) * 100) / 100 : void 0,
143
143
  precip: {
144
- inter3h: q["past3hprecip-surface"][Y] ? Math.round(q["past3hprecip-surface"][Y] * 1e3 * 1e3) / 1e3 : 0,
145
- inter3hSnow: q["past3hsnowprecip-surface"][Y] ? Math.round(q["past3hsnowprecip-surface"][Y] * 1e3 * 1e3) / 1e3 : 0,
146
- inter3hConv: q["past3hconvprecip-surface"][Y] ? Math.round(q["past3hconvprecip-surface"][Y] * 1e3 * 1e3) / 1e3 : 0
144
+ inter3h: Y["past3hprecip-surface"][d] ? Math.round(Y["past3hprecip-surface"][d] * 1e3 * 1e3) / 1e3 : 0,
145
+ inter3hSnow: Y["past3hsnowprecip-surface"][d] ? Math.round(Y["past3hsnowprecip-surface"][d] * 1e3 * 1e3) / 1e3 : 0,
146
+ inter3hConv: Y["past3hconvprecip-surface"][d] ? Math.round(Y["past3hconvprecip-surface"][d] * 1e3 * 1e3) / 1e3 : 0
147
147
  },
148
148
  wind: t,
149
149
  gusts: {
150
- speed: Math.round((q["gust-surface"][Y] || 0) * 100) / 100,
151
- kts: this.convertMs2Kts(q["gust-surface"][Y])
150
+ speed: Math.round((Y["gust-surface"][d] || 0) * 100) / 100,
151
+ kts: this.convertMs2Kts(Y["gust-surface"][d])
152
152
  },
153
- lclouds: q["lclouds-surface"][Y] ? Math.round(q["lclouds-surface"][Y] * 100) / 100 : 0,
154
- mclouds: q["mclouds-surface"][Y] ? Math.round(q["mclouds-surface"][Y] * 100) / 100 : 0,
155
- hclouds: q["hclouds-surface"][Y] ? Math.round(q["hclouds-surface"][Y] * 100) / 100 : 0,
156
- rh: q["rh-surface"][Y] ? Math.round(q["rh-surface"][Y] * 100) / 100 : 0,
157
- gh: q["gh-surface"][Y] ? Math.round(q["gh-surface"][Y] * 100) / 100 : 0,
158
- pressure: Math.round(q["pressure-surface"][Y] / 100 * 100) / 100
153
+ lclouds: Y["lclouds-surface"][d] ? Math.round(Y["lclouds-surface"][d] * 100) / 100 : 0,
154
+ mclouds: Y["mclouds-surface"][d] ? Math.round(Y["mclouds-surface"][d] * 100) / 100 : 0,
155
+ hclouds: Y["hclouds-surface"][d] ? Math.round(Y["hclouds-surface"][d] * 100) / 100 : 0,
156
+ rh: Y["rh-surface"][d] ? Math.round(Y["rh-surface"][d] * 100) / 100 : 0,
157
+ gh: Y["gh-surface"][d] ? Math.round(Y["gh-surface"][d] * 100) / 100 : 0,
158
+ pressure: Math.round(Y["pressure-surface"][d] / 100 * 100) / 100
159
159
  });
160
160
  }
161
- const a = [];
162
- for (let Y = 0; Y < n.ts.length; Y++) {
163
- const t = this.calculateDouglasScale(n["waves_height-surface"][Y], n["waves_direction-surface"][Y], n["waves_period-surface"][Y]), i = this.calculateDouglasScale(n["wwaves_height-surface"][Y], n["wwaves_direction-surface"][Y], n["wwaves_period-surface"][Y]), U = this.calculateDouglasScale(n["swell1_height-surface"][Y], n["swell1_direction-surface"][Y], n["swell1_period-surface"][Y]), s = this.calculateDouglasScale(n["swell2_height-surface"][Y], n["swell2_direction-surface"][Y], n["swell2_period-surface"][Y]);
164
- a.push({
165
- utc: L(n.ts[Y]).utc().format(),
161
+ const X = [];
162
+ for (let d = 0; d < n.ts.length; d++) {
163
+ const t = this.calculateDouglasScale(n["waves_height-surface"][d], n["waves_direction-surface"][d], n["waves_period-surface"][d]), r = this.calculateDouglasScale(n["wwaves_height-surface"][d], n["wwaves_direction-surface"][d], n["wwaves_period-surface"][d]), u = this.calculateDouglasScale(n["swell1_height-surface"][d], n["swell1_direction-surface"][d], n["swell1_period-surface"][d]), V = this.calculateDouglasScale(n["swell2_height-surface"][d], n["swell2_direction-surface"][d], n["swell2_period-surface"][d]);
164
+ X.push({
165
+ utc: i(n.ts[d]).utc().format(),
166
166
  wave: {
167
167
  sig: t,
168
- wd: i,
169
- swell: U,
170
- swell2: s
168
+ wd: r,
169
+ swell: u,
170
+ swell2: V
171
171
  }
172
172
  });
173
173
  }
174
- for (const Y of o) {
175
- const t = a.find((i) => i.utc === Y.utc);
176
- Y.wave = t == null ? void 0 : t.wave;
174
+ for (const d of c) {
175
+ const t = X.find((r) => r.utc === d.utc);
176
+ d.wave = t == null ? void 0 : t.wave;
177
177
  }
178
178
  } catch (O) {
179
- Z.warn("[%s] get-gfs-factor failed: %s", A.requestId, O);
179
+ G.warn("[%s] get-gfs-factor failed: %s", W.requestId, O);
180
180
  }
181
- return o;
181
+ return c;
182
182
  }
183
183
  /**
184
184
  * 填充UV向量
@@ -187,15 +187,15 @@ class j0 {
187
187
  * @param reverse 反转, 如计算洋流方向时,风来流去
188
188
  * @param options
189
189
  */
190
- static populateUVFactor(z, p, b = !1, A = {}) {
191
- const c = Math.round(Math.sqrt(Math.pow(z, 2) + Math.pow(p, 2)) * 1e4) / 1e4, { degree: o, direction: O } = this.calculateUVDirection(z, p, b, A), q = this.convertMs2Kts(c);
190
+ static populateUVFactor(z, b, p = !1, W = {}) {
191
+ const A = Math.round(Math.sqrt(Math.pow(z, 2) + Math.pow(b, 2)) * 1e4) / 1e4, { degree: c, direction: O } = this.calculateUVDirection(z, b, p, W), Y = this.convertMs2Kts(A);
192
192
  return {
193
- speed: c,
194
- kts: q,
195
- degree: o,
193
+ speed: A,
194
+ kts: Y,
195
+ degree: c,
196
196
  direction: O,
197
197
  eastward: Math.round(z * 1e4) / 1e4,
198
- northward: Math.round(p * 1e4) / 1e4
198
+ northward: Math.round(b * 1e4) / 1e4
199
199
  };
200
200
  }
201
201
  static convertMs2Kts(z) {
@@ -208,14 +208,14 @@ class j0 {
208
208
  * @param reverse 反转, 如计算洋流方向时,风来流去
209
209
  * @param options
210
210
  */
211
- static calculateUVDirection(z, p, b = !1, A = {}) {
212
- let c = Math.atan2(z, p) + Math.PI;
213
- b && (c = Math.atan2(z, p));
214
- const o = this.convert2Direction(c);
215
- return c = Math.round(c / (2 * Math.PI) * 360 * 1e4) / 1e4, {
216
- angle: c,
217
- degree: c,
218
- direction: o
211
+ static calculateUVDirection(z, b, p = !1, W = {}) {
212
+ let A = Math.atan2(z, b) + Math.PI;
213
+ p && (A = Math.atan2(z, b));
214
+ const c = this.convert2Direction(A);
215
+ return A = Math.round(A / (2 * Math.PI) * 360 * 1e4) / 1e4, {
216
+ angle: A,
217
+ degree: A,
218
+ direction: c
219
219
  };
220
220
  }
221
221
  /**
@@ -224,13 +224,13 @@ class j0 {
224
224
  * @return {string}
225
225
  */
226
226
  static convert2Direction(z) {
227
- let p = "N/A";
227
+ let b = "N/A";
228
228
  if (!isNaN(z)) {
229
229
  z < 0 && (z += 2 * Math.PI);
230
- const b = Math.PI / 16;
231
- z < b ? p = "N" : z >= b && z < 3 * b ? p = "NNE" : z >= 3 * b && z < 5 * b ? p = "NE" : z >= 5 * b && z < 7 * b ? p = "ENE" : z >= 7 * b && z < 9 * b ? p = "E" : z >= 9 * b && z < 11 * b ? p = "ESE" : z >= 11 * b && z < 13 * b ? p = "SE" : z >= 13 * b && z < 15 * b ? p = "SSE" : z >= 15 * b && z < 17 * b ? p = "S" : z >= 17 * b && z < 19 * b ? p = "SSW" : z >= 19 * b && z < 21 * b ? p = "SW" : z >= 21 * b && z < 23 * b ? p = "WSW" : z >= 23 * b && z < 25 * b ? p = "W" : z >= 25 * b && z < 27 * b ? p = "WNW" : z >= 27 * b && z < 29 * b ? p = "NW" : z >= 29 * b && z < 31 * b ? p = "NNW" : z >= 31 * b && z < 32 * b && (p = "N");
230
+ const p = Math.PI / 16;
231
+ z < p ? b = "N" : z >= p && z < 3 * p ? b = "NNE" : z >= 3 * p && z < 5 * p ? b = "NE" : z >= 5 * p && z < 7 * p ? b = "ENE" : z >= 7 * p && z < 9 * p ? b = "E" : z >= 9 * p && z < 11 * p ? b = "ESE" : z >= 11 * p && z < 13 * p ? b = "SE" : z >= 13 * p && z < 15 * p ? b = "SSE" : z >= 15 * p && z < 17 * p ? b = "S" : z >= 17 * p && z < 19 * p ? b = "SSW" : z >= 19 * p && z < 21 * p ? b = "SW" : z >= 21 * p && z < 23 * p ? b = "WSW" : z >= 23 * p && z < 25 * p ? b = "W" : z >= 25 * p && z < 27 * p ? b = "WNW" : z >= 27 * p && z < 29 * p ? b = "NW" : z >= 29 * p && z < 31 * p ? b = "NNW" : z >= 31 * p && z < 32 * p && (b = "N");
232
232
  }
233
- return p;
233
+ return b;
234
234
  }
235
235
  /**
236
236
  * 计算风力蒲福等级
@@ -238,8 +238,8 @@ class j0 {
238
238
  * @returns {number}
239
239
  */
240
240
  static calculateBeaufortWindForceScale(z) {
241
- let p = 0;
242
- return isNaN(z) || (z = Math.round(z * 10) / 10, z <= 0.2 ? p = 0 : z <= 1.5 ? p = 1 : z <= 3.3 ? p = 2 : z <= 5.4 ? p = 3 : z <= 7.9 ? p = 4 : z <= 10.7 ? p = 5 : z <= 13.8 ? p = 6 : z <= 17.1 ? p = 7 : z <= 20.7 ? p = 8 : z <= 22.4 ? p = 9 : z <= 28.4 ? p = 10 : z <= 32.6 ? p = 11 : z > 32.6 && (p = 12)), p;
241
+ let b = 0;
242
+ return isNaN(z) || (z = Math.round(z * 10) / 10, z <= 0.2 ? b = 0 : z <= 1.5 ? b = 1 : z <= 3.3 ? b = 2 : z <= 5.4 ? b = 3 : z <= 7.9 ? b = 4 : z <= 10.7 ? b = 5 : z <= 13.8 ? b = 6 : z <= 17.1 ? b = 7 : z <= 20.7 ? b = 8 : z <= 22.4 ? b = 9 : z <= 28.4 ? b = 10 : z <= 32.6 ? b = 11 : z > 32.6 && (b = 12)), b;
243
243
  }
244
244
  /**
245
245
  * 计算海浪等级
@@ -247,15 +247,15 @@ class j0 {
247
247
  * @param degree 度
248
248
  * @param period 周期 s
249
249
  */
250
- static calculateDouglasScale(z, p, b) {
251
- let A = "Calm";
252
- const c = this.convert2Direction(p / 360 * 2 * Math.PI);
253
- return isNaN(z) || z <= 0.1 ? A = "Calm" : z <= 0.5 ? A = "Smooth" : z <= 1.25 ? A = "Slight" : z <= 2.5 ? A = "Moderate" : z <= 4 ? A = "Rough" : z <= 6 ? A = "VeryRough" : z <= 9 ? A = "High" : z <= 14 ? A = "VeryHigh" : A = "Precipitous", {
254
- degree: Math.round(p * 100) / 100,
255
- scale: A,
256
- direction: c,
250
+ static calculateDouglasScale(z, b, p) {
251
+ let W = "Calm";
252
+ const A = this.convert2Direction(b / 360 * 2 * Math.PI);
253
+ return isNaN(z) || z <= 0.1 ? W = "Calm" : z <= 0.5 ? W = "Smooth" : z <= 1.25 ? W = "Slight" : z <= 2.5 ? W = "Moderate" : z <= 4 ? W = "Rough" : z <= 6 ? W = "VeryRough" : z <= 9 ? W = "High" : z <= 14 ? W = "VeryHigh" : W = "Precipitous", {
254
+ degree: Math.round(b * 100) / 100,
255
+ scale: W,
256
+ direction: A,
257
257
  height: Math.round(z * 1e3) / 1e3,
258
- period: Math.round(b * 100) / 100
258
+ period: Math.round(p * 100) / 100
259
259
  };
260
260
  }
261
261
  }
@@ -263,301 +263,301 @@ var E0 = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : t
263
263
  function I0(M) {
264
264
  return M && M.__esModule && Object.prototype.hasOwnProperty.call(M, "default") ? M.default : M;
265
265
  }
266
- var t0 = { exports: {} };
266
+ var S0 = { exports: {} };
267
267
  (function(M) {
268
- function z(p, b) {
269
- var A = "XIXHXHXGXGXQXQXPXPXOXOXN##U6U6UW#$U%U%U%U%U%XFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSXTXTXUXIXHXHXGXGXQXQVAVA#%#&V'#'U6#(#)U%U%U%U%U%#*U%XEXEVLVLVLVLYGYGYGYG#+W=W=W=W=W=W=Y$X+X+X+X+X+XTXUVPUQ#,T*T*#-VAVA#.#/#0#1#2U6U6UWU%U%U%U%U%#3VLVLXEYH#4#5#6YGYGYG#7X.#8W=W=W=#9X,X,#:#;#<#=#>VPVP#?#@#AT*T*#B#C#D#E#F#GV'#H#I#JUWU%U%U%U%X6X6#K#LYH#M#N#O#PYG#Q#R#SX.#T#UW=W=#V#WX,#X#Y#Z$#$$$%$&T)$'$(T*T*$)$*$+TW$,$-$.$/$0$1$2$3U%U%XJXJXF$4$5$6$7$8$9$:YG$;$<$=$>$?$@$A$BW3$C$D$E$F$G$HW8$IT)T)T)XHXGXGXQV=$J$K$L$M$N$O$P$Q$R$SV2XKXJXJXFY4$T$U$V$W$X$Y$Z%#%$%%VN%&%'%(%)%*%+%,%-%.%/%0W8XTT)XIXHXHXGXGXQXQU>%1%2%3TL%4%5%6%7U-XKXKX0X0XF%8%9%:%;%<%=%>%?%@%A%B%C%DX(%E%F%GWU%H%I%J%KXSXTXTXUXIXHXHXGXGXQXQU>%L%M%NTL%OUPXMX1XLXKXKXJX0X5%P%QS0%R%S%T%U%V%W%X%Y%Z&#WUWUWUWUWU&$&%X%XSXSXTXTXU&&ZDZDXGXGXQXQXP&'&(&)&*&+&,UOXLXLXKXKXJXJ&-&.&/S0&0T&&1&2WQ&3&4&5&6&7&8&9&:&;&<&=X%X%XSX%XTXTXUXIZDZDZDXGXQXQXPUI&>&?&@&A&B&C&DXLXKXKXJX3&E&F&G&H&I&J&K&L&M&N&OWEW<W<&P&Q&R&S&T&UY%X%ZUXSXTZYXUXIXHXHXGXGXQXQXPXPXOXO&V&W&X&Y&Z'#XKXKXJX3'$'%'&'''(')'*'+','-VMXXW<'.XZ'/'0'1'2WDZPZ9'3'4ZH'5XUXIXHZEZEXGXQXQXPXPXOXOZ@'6'7'8'9':';XKXJXJXF'<'='>'?'@'A'B'C'DXXXXZ1W'XZ'E'F'G'H'I'JW5Z9'K'L'MZWZ<Z<XHZEXGXQXQXPXPXOXOZ@'N'O'PUB'Q'R'S'TXJXFXFXESQ'U'V'W'X'YXWZ0XX'ZXYXZXZW4(#($(%W5(&ZS('ZB((()(*(+ZTZE(,(-XQXPXPXOXOXNU=U=(.(/(0(1(2(3XJXFX8XEXESN(4(5(6(7(8Z2XXZ+XYXZZ-Y#(9(:(;(<(=(>(?ZB(@(A(BZLZT(CZV(DXQXPXPXOXOXNXNU=(E(F(G(H(IXJXJXFXFX8XE(J(K(L(M(NZ*(OZ2XYXYXZXZY#Y#XCXC(P(QX;X;ZN(RZ>(SXHXHZVZVZA(TZQXPZ:XOXNXNV,(U(V(WV.V.XJXJXFXFXEXET((X(Y(ZZ*Z*XXXXXYXYXZXZY#Y#XCXC)#)$)%)&XT)'XUZ6XHXHXGXGXQXQXPXPXOXOXNXNV,)()))*V.XKXJXJXFX8XEXEXRSE)+SEXWXWXXXXXYXYXZXZY#Y#XC),)-).)/XDXAZ6Z6Z8XHXHXGXGXQXQXPXPXOXOXNXNV,)0)1T.XKXKXJXJXFX8XEXEXRXRXVXVXWXWXXXXXYZ/XZXZY#Y#Y$Y$Y%)2)3XDXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXN)4)5)6X9XKXKXJXJXFXFXEXEXRXRXVSESEZ/Z/XXZ/XYXZXZY#Y#Y$Y$Y%Y%XSXSXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXNV&)7)8X9XKX7X7X7XFXFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSVEZ6XUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVH)9):T9T9XJXJXFXFXEXEXRXRVIVIVIVI);VFVFVC)<VKVBVBVBVDVDVDVDVD)=VGXUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)>VH)?Y&)@VJVJVJ)AVIVIVI)BVFVF)C)DVK)E)F)G)H)I)J)K)L)MVGVGVGVGVGVGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)NVH)OY&)PVJVJVJ)QVIVIVI)RVFVF)S)TVKVKVK)UXCXCXCXCXC)VVGVGVGVGVGVGVGVGVGVGVGVGVGVGVG)W)X)Y)Z*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?VGVGXNXNV'*?XLXLUWU%*>TF*?TFTFV'TFV'V'*>V'*?U6*?V8V8*?U%V8*@U%U%U%*@XYW=YGXYXHT*UQT*XQXQ*>*?VAVA*?*@*@TF*ATFTF*ATFTF*AV'TFTFV'*A*B*C*CTRV/XFVLVLYH*CYHYH*C*DXVXV*DYGYGX.YG*D*DW=X.*EW=*E*F*GX,X+X,*GX+X+X+*G*G*HWWWW*HWWWWWWXTXTWW*HVPVPVPUQ*GUQUQUQUQT*UQT**FV>*GV>*GVAV>*HVAVA*HVAVA*HVAVA*H*IVAVATFV'VAV'V'*HV'*IU6U6U6*IU6U6*IU6X6XFXFX4XEXEX4Y@YH*GYH*HYUYUYU*H*HY7Y7*I*IYGYGYGYGYG*IYGYGYG*I*J*J*KX.X.X.X.*K*L*LW=*MW=*MX,*N*OX,X,*OX,X,*OX,*P*P*QW;*R*RWW*SWB*S*TWBWB*T*UWB*VVPVPW8*VVPVP*VVPUQUQT)UQ*UT*UQT**U*VXQV0*VV=*WV=*W*XV=*Y*YV)*ZV)V)V?*ZV?V?*ZV?V?V'*ZV;+#U6+#U6V;V;+#V;V;+#U&+$U&XLXLU&V2Y@Y@XF+#Y@Y@+#Y@XEYHY@+#+#+$+%+&YU+&+'+(+(+)+*++YGYG++YG+++,+-+.+.X.+/X.X.X.+/+0X.+0+1+2+2+3+4+5+5+6+7+8W=W=W=+8+8+9W3W3W3+9+:W%X,X,+:+;X,+;X,X+X+X+X++;X+WBWRXSWB+:XSW8W8W8W8T)V=+9+:+;+;+<+=+>+>V)TTTTV)V?+>+?V?V?TL+?V;V;+?+@+@V;V;V;V;V;V;+@V;+@+A+B+BV2+CV2+C+DYIYI+D+EYI+F+F+G+H+I+I+J+K+L+L+M+N+O+O+P+Q+R+R+S+T+U+U+V+W+X+X+Y+ZVR+Z,#,$,%VN,%VNVN,%,&,'X(,',(,)W2X',),*X',*,+X'X',+,,W&,-,-,.WUWU,.,/,0,1X+,1X+,2WRXSWRX)WW,1,2WW,2,3U>,4,4TTTTTTTT,4TTTL,4,5,6,7,7,8UPUP,8UPUPUP,8U-XLXLXF,8XFY>,8,9,:YB,:,;YBYB,;,<YMYM,<,=YM,>,>,?,@,A,A,BY9Y9,B,CY9,D,D,E,F,G,G,HVS,I,I,J,K,L,L,M,N,O,O,P,QX(X(,QWUWU,Q,RWUWU,R,SWUWUWU,SWU,T,TX+,UY%X+X%X%X%,TX)XSXSU>,T,U,V,VTT,W,X,XTL,YTLTL,YTL,ZXF,ZXFS:,Z-#S:-$-$-%-&-'YMY*T&T&Y*-&-'S9-'-(S9-)-)-*-+-,-,X#--X#---.X#X#-.-/-0-1-1-2-3-4-4-5-6-7WUWTWUWT-6X%X%X%ZJZDXIZDV:-5XPUF-5-6UF-7-7-8-9-:TLTL-:UHTL-:UH-;-;UO-<UOXFX2XFSA-;-<-=SZS0S0-=->->T&-?-@-@S9-AS9S9-AS9-B-B-CWQ-DX#-D-E-F-FW9-GW9-G-H-IW<W<-IW<W<-I-JW<-K-K-L-M-N-NWU-O-PWUWU-PWUWUWU-P-QWUX%-QX%UI-QUIXO-Q-RUIUIUIUHUI-R-RU.-SV7-S-T-U-V-VV--W-XV<T+-X-YXF-YX3-Z-ZSZ.#SZ.#S2.$S2.$.%S2SY.%SYSYSYSX.%SXSX.%SH.&SH.&SHSH.'.'WQ.(.)WQWQ.)VM.)WE.*WEW<.*W<XZ.*X-X-X-.*.+.,.-.-WU..././WXWU.0.0Y$WDY$XN.0XNXN.0UAXNTNTDTDUV.0TD.0.1TITI.1TI.2T?XLU,XLXF.1XFS5.1.2.3.4.4.5.6.7.7.8.9SK.9.:SK.;.;SX.<.=SHSH.=.>SH.>.?S/.?.@S/.A.A.BSUSUW<W<W<.BW<.BW<.C.C.D.E.F.FW0W0W0W0WD.FWDZCXSZ9Z9XSXSZ9ZRZHZH.DZHTNXNZ@XN.CTD.DTDTD.DTD.ETI.E.F.G.G.H.I.J.JXKT@T@SB.JXFXFS-.JXEXE.JSKXET%.JS@.K.L.L.M.NSJ.N.O.P.QSF.Q.R.SS/.SSWSU.SSUSUXWW<.SXZW4.S.TW4.UW4W4W4.U.U.V.WWCWD.WWC.XY%ZP.X.YZ9ZRXSZRZRZFXTXTZHZHXTZWZ@U=XNU=.U.V.WU=.W.X.Y.Z.ZV+/#V+T@/#T@/$U#U#U#/$XJURU#URSL/#SL/$/$/%/&/'/'/(SO/)/)/*S>S>/*/+/,XWXYZ1Z+Z+W4/+W4/,/,WC/-WCWCW5WC/-W5/-W5/.ZSZ7ZS/.ZKZWXTXTZWZWZ?Z?Z?Z=ZZ/,/,ZT/-ZTZEXGZVZVZIZIZVZV/+/,U=/-/-/.U</////0TPTP/0/1/2/3/3/4T=/5/5XJT=XJSN/5SNSNSO/5/6/7/7S>/8/9S>Z.SR/9Z0Z0/9Z*/9W4Y#Y#/9WCY$Y$WC/9XCXC/9/:/;X>/;/<X>X;/<ZSX;XSZS/<ZSZSZBXT/<ZBXUZ?XUZ>Z>ZX/;ZXZVZV/;ZVZVZVZV/;U=/;U=/<U<U</</=/=/>/?/@/@V./AV.V./AV.V.XR/AXRT(/ASNT(/B/B/CSC/D/D/E/FSRSRZ*XWZ*XXZ2Z4Z2/DX>/EX>X>X;/EX;Z;Z;ZN/EZXZXZ6XIZAZQXQXQXMV,V,/C/C/D/ET0/E/F/G/HT(/H/I/J/J/KSE/L/LSR/MXV/MX>/NX:X>X;X:/NX;X;/N/OX;XS/OXSZNZNZMXTV,/NV,/O/O/P/Q/R/R/S/T/USE/USESEXC/UXCXC/UX:Y%X:X:/UX:/VXDXD/V/W/W/X/YT/T5/Y/ZT5Y%/ZY%Y%/Z0#X@X@XMV,XMV&/Z0#0$0%0%XLT4X9V&0%XMV&T90%XLXLV&V&T9T90$T9T9T9XXXX0$VFXZXZVCVKXTXT0#VGXJXJ0#VHXF0#VH0$0$SE0%SE0%VI0&VI0&VF0'VF0'VC0(VCVCVKVCVK0'0(VKVK0(0)VKVK0)0*0+XC0+0,XCXC0,0-XCXC0-0.XCXC0.0/XCXC0/00XCXC00VG01VG01VH02VHVH02VH0303SE04SE04VI05VI05VF06VF06VC07VCVCVKVCVK06XC07XC07VG08VG08VHVGVGVHVHVGVGT9T9VGVGT9T9VGVGT9T9VGVGT9T9VGVG03VHVGVGVHVHVGVGVH02VGVGY&Y&VGVG01SEVGVGVJVJVGVGVJVJVGVGVJVJVGVG0.VIVGVGVIVIVGVGVIVIVGVGVIVIVGVG0+VFVGVGVFVFVGVGVFVFVGVG0)VCVGVGVCVKVGVGVKVKVGVGVKVKVGVGVKVKVGVG0%XCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVG/XVGVGVGXNXNV'U6XOXOVATFVATFVATFV'U6V'U6V'U6V'U6U6U6U6V8UWUWU%U%V8U%V8U%U%U%U%TRT*V>T*V>V>VAV>VAVAVATFTFVAVATFTFVATFVATFVATFTFTFV'V'TFTFV'V'TFTFV'U6V'U6V'V'TFV'V'U6V'U6TRTRU%TRYHYHYUYUYHYH/BY7YHYHY7YG/AYGYGYGYGX./AX.X.W=X.X.X.W=X.X.W=X,W=X,W=W=W=X,W=X,X,X,X,X+X,X+X+X+X+WWX+X+X+WWX+X+WWWWX+XSWWWWWWVPVPVPVPVPVPUQT*V>T*V>T*V>T*V>V>VAV>V>V>VAV>V>VAVAV>VATFTFVAVATFTFVAVATFTFVATFV'U6T<T<V'U6V'U6U6U6U6V;U6U6V;V;YHYH/)YUYUYU/)YUYU/)/*/+YUY7/+Y7Y7Y7/+/,YGYG/,YGYGYGYG/,YGYGYGX.YGYGX.X.YGYGX.X./)X.X.X.X.X.X./)X.X./)X.W=W=X.W=X.W=X.W=W=X,W=X,W=W3W3W3X,X,W3X,X,X,X,/$X+X+X,W;X,/#X,W;X+X+W;W;WWWWW;X)W;X)X+X+WWWWX)WWX)WBX+X+WWWWWWWBWWWWWBWBWWVPWBWBVPVPWBW8WBW8W8W8W8VPW8W8VPVPW8VPUQT*XHXHT*V@XQXQV=U8U8V0.LV=V0V=V0V0V=V=TZTZV=V=TZTZTSTSV=TSV=V=TWV)TWV)TWV)TW.GV).GV).HV'V'V?V'V'U6V'U6V;U6V;V;V;V;U6V;V;U6V;V;UWV;V;V;V;V;U&U&Y4.AY4Y4.AY@.B.CXEXEY'.CYH.C.D.E.EYU.FYU.F.GY,Y,.G.HY,.I.I.JYU.K.K.LZ&Z&.L.MZ&Z&.MYV.N.O.O.P.QYG.Q.R.S.T.T.UYEYE.UYG.V.WYGY=YG.W.W.X.Y.Z.Z/#/$/%YG/%/&/'/'X./(/)/)X./*X.X.X./*WOX.X.WOVNX.X.WIWI/(/)VNVNWIWIVNVN/(X&/)/*X&X&/*X&/*WHVN/+WHWHVY/+X&X&X&/+X&W=X&W=/*/+/,/-WG/-/.//W=//W=W=W=W=//W3W=W=W3W3W3X,W%W%W3W3W3W%W%X,W%/,X,X,/,X,X,X+X+X+X+WRX+WRWBWBW8W8V=V=/)V=V=U>XPU>/(U>U>U>V=/(/)/*TWTW/*/+U>U>U>/+TTTTU>TTTWV)TWV)TT/)TTTTTLTL/)TL/)TLTL/*/*TU/+/,V;V;/,/-V;U6V;V;V;/,/-/.V;TBV;TB/-UKUK/.U-U-U-/.TB/.V2V2V2V2U$UJ/-Y@Y@/.Y@Y@/./////0YI/1/1/2/3/4YI/4YI/5Y,Y,/5Y,Y,/5/6/7/7/8/9/:/:/;/</=/=Z&/>/?Z&Z&/?/@/@/A/B/C/C/D/E/F/F/G/HY</H/IY<Y</I/JY/Y//J/KY//L/L/MY<Y</MYG/N/OY<Y<Y</O/O/P/Q/RYGYG/R/S/S/T/UZ%/U/VYGYG/V/WYGYG/WYQZ%/X/X/YWJWJ/Y/ZYG0#VTVTVT0#0#X.WJVR0#0$VRVRVTVR0$0%X.WOVRWOWOVNWOWOVRVRWPWPVNVNWPWPVY/YVNVNVYVYVNVNVYW=VYVYVNVN/WX(W=W=W2W2W=W=W2W2W2W2X(W2W3W3X'X'W2X'X'X'W3W3/RX'/RW%W%W%W%W%W&W&W%W%/Q/RW&WUWUWU/QWUWUWUWUWUWU/QX,X,/QX,/QX+X+X+WU/QWUWU/QWU/R/SX+WRX+WRX+WRX+/RWWW8WWWWX)WWX)X)U>/PU>U>TETE/P/QU>/QU>TT/QTT/RTT/RTLTLTLTL/RTL/STUTU/S/TTL/TTL/U/UUP/VUPV;/V/W/X/X/YUPUP/YUPUPUP/YU-XLXLYBYBYB/YYBYB/YYBYB/YYB/Z/ZYB0#YBYIYI0#0$YI0$YIYI0$YM0%0&0&0'YMYM0'0(0)0*0*0+0,0-0-0.Y*Y*0.0/000101020304Y*04Y*05Y9Y905Y9XVYRY9Y9YR04Y9Y9YG04Y905YGYG0506Y906Y907YGYG0708VQVQVWVQ0708090:VWVW0:XWVQVQVSVQWSWSWS09VSVS090:WSWP0:WSWPWPWSVNVS09VS0:WS0:0;0<0<VN0=0>VNVN0>0?0?0@0A0B0B0CW,W,VNVN0C0DVNX(X(X(0CX(X(X(X(W2WUWUX'X'WUWUX'X'WUX'X'X'X'0@X'WU0@WUWUWUWU0@0@0AWM0BWU0B0C0DWMWM0DWTX%0DX%X%0D0E0F0GU>0GXPV:0GUYV:U/0GTT0H0IUY0I0J0KTTTTUU0KTT0KTTTLTT0KTLTL0KUP0LUP0LUP0MUPXFY>XFS:0L0MS:S:YB0M0N0OS:0OS0S00OT'0PT'YM0PT'YC0PT'S0T&0PT&T&T&0P0QY*XVT&T&T&S9Y9Y9XV0P0P0Q0R0S0S0T0UVO0U0VW(0W0W0XVUVUVOVUWQ0XVUVUWQVU0WX#0XX#0X0YVU0Z0ZX#X#X#X#0ZX#X#0ZVS1#1$1$1%W7W7W7W71%W7W7W7W71%1%1&W71'1'1(1)1*1*1+W9W9W91+W91,X(X(W9W<X(WUWUWU1*W<W<W<WUWUW<WUWTWT1)1*V:1*UFUFU/U/1*U/TM1*TM1+UFULUF1+1+UE1,1-1-TL1.1/ULUL1/UI1/1011UL11XNULXN11UPXNUPXNUPU.U.UPUPUP10UP1011UOX2S:1112S:S:SA12SASASASZSZS0SZS2S0S0S2S0S0T&S0T&S0T&S0S0T&T&SYT&T&1,T&S9T&S9T&S91+1,1-WQS91-S9S91-1.WQWQ1.X#1/X#1/10WQWQX#X#10X#1011W+1212X#WEWE12W9X#13X#W9WEXXW9W9W9121213W<W<W913W<W<13W:W<1414WU1516WUWU16171718W<19WUWU19W<W<WU19X-191:1;W<1;X-X-X-WUWUX-WU1:WU1;WUWUWUWU1;WUWU1;WUWUWU1;1<WU1<WU1=1=1>WXX%UF1>XOUI1>UIUIUIUI1>UIUIUI1>UIU*UH1>1?TH1?TAU*V7U.U.TKTKU.UOU.U.XMXMV7TDU71<U7XMUOU'U.UZUZ1;XMXMV-1;XMXMV%1;XLTI1;T,UN1<1<SASASZXFSZS=1<SASZSZSZSZSZS=SZSZS2SZS2SZS2SZS2S0S0S2S2S0S0S017S0SYSYSYSXT&SXSXT&SHSXSHSXSHSXSH13SHSHSHSHSHSH1313WQSHWQ13WQS1S1WQ1314VMWQWQVMVMWQWQWQWEWEWEVMWEW<11W<XZW)11XZX-X-111213X*VXX*X*12VX13VX1314VX15VX15VX1616W0X*17WUWUW0WU16WUY$Y$Y$WDWUWD15WDWDWD15U*XNXN1516TYUAUVTDUVTDXMXM1516TD16TD17XL17TIU(TI17TITIS=17S=18S=18S5S<S2S2S218S<S<18SBS<1819S<S2S2S21919T#T#T#191:S-S-T#1:1;S.1;SYT#SY1;SY1<SK1<T$1=1>SYSYSK1>SYSXSK1>SK1>1?S@SXSX1?SX1?SXSX1@SXSXS3S3SHSHS3SFSH1>SFSFSH1>SHS/SHSFSFSF1=1>S/S/1>VM1?1@S/SUS/S/VMVMVMSUVMVMSUSU1=W'1>W'W<XZW<X-XZX-W<VXX-VXX-1<1<1=1>WK1>VXVXVXWKWKVXW0WK1=WK1>WDWDW0Y$ZHZGZHZGUVUVTDXMXMTDU+U+TD1:TDTDTDTDTDUBTIU,TITCTITIUBUBTCTCUBTCU,16U,UXUXUXUXTJU,U,TCV+UXTJV+T@XKXK13XKSV13SVSV13S.14S.1415S.XESK1516S@SQS@SL16S@S@SLS7S3S3S315S3S3SJS3S@S7S714S3S314SOSFSFSO1414SOSOSOSOSOSO14S/S/SFS/13SG14SGSGSW14SWS/S/S/SUS/SUSUSUW<W4W4W4VX11W4W>11W>W>W>11W>1213W4W?13WLY$W?1314W?WD14W?W?WCWLWCWD13WCWCWCWCWCW5W5ZPW5W5ZPY%W5W5U+U+1011U+U+11U=U=11U=U=TDTDU=U=TDUBTDUBU=U=U=TXTXUBTXUBUBV+UBUBUBV+UBV+T@U#T@U#1*U#1+U#U#U#1+U#SL1+S7S71+1,1-1.S71.S7SJSJSJSJSO1-SJSNSJ1-SOSJSOSJSOSOSOSO1,SO1-SO1-SOSO1-SG1.S>1.SWS>1/SWSW1/SWSUSUSWXW1.1/S>S>1/WLWLWLW4WLW4W4WLWLWL1.WLWCW4W4WCW5WCW5W5Y%W5ZSW5ZSW5ZSZ7Z7Z7ZBZZXIZZZ5Z=XHZOXHZOXHZ5ZO1&V*U=U=V*TXV*1&U=U<U=U<UB1%U<V$V$UBV$TPV$1$U<U<UBV+TPTPV+V+TPTPT@T@TPT-T-U#T-U#TPT-TPV.T-0W0XT=U#U#T=T=0W0X0Y0ZT=0ZT=T=0Z1#U@U@SNSNSN1#SOSOSOSPSNSPSPSP0Y0ZSPSP0Z1#SPSPSP1#SP1$1$SR1%SRZ.Z.XWZ3Z3Z*Z3Z*W4W4Z,Y#W40ZY$Y$WCW*WCW*W5W5Y%X>W5Y%X>Y%Y%X>XCX>Y%W5X>Y%W5ZSY%X;ZSZSX;XSZBZBZSXSZBZBZ;Z;Z>Z>Z>ZXZTXGXGZVZVZVZVZAU=U<0NU<V,0NV,0OU<U<U<0OU<T;0OT;TPTPU<TGTPTPTGTGT;0MT;TGTGTG0MTG0MV.V.V.0MV.0NV.0NT=0OT=SNSNT(T(SNSN0NT(T(SCT(SCSPSPSC0MSP0M0NSDSDSD0N0OSDSRSDSD0NSRSRSRSD0N0OSRXCX>XCX>XCX>XCX>X>0MX>X>Z;XTZNZNV,T/0L0MT10MT50N0NT;T0T00N0O0P0QT;T;0Q0R0R0S0TV.T0T;T00T0T0U0VV.T(SCT(SCT(T(T(SET(SESESESCSCSC0S0SSESESESESE0S0TSESR0TSR0TSESESEXCX>XCX>XCX:XCX:X:X;X:XDX;X;XDXDX;X;XD0PX;X;0P0Q0QT60R0S0ST30T0UT2T0T70UT0T0T00UT70UT5T50U0V0WT.T00W0X0Y0YV.UM0Z0Z1#T.T.UMUMT.XL0ZSESESEXCXCXCX?0YX:X?Y%X:XDX:0YX:0YX:0ZXDXDXB0ZXDXD0ZXDV,V,V,0Z0ZT5T5T5V,0ZV,V,T.T.0ZT.T/0ZT/T/X:0ZY%Y%XBXBX=0ZXBXBX@X@V,0YV,T40Y0ZT4T4V&T4V&V&T4T40YT40YT/T4T4V&T9V&V&XLX9T9XLT9T9V&T9VIVFVIVFVDVGVDVGXJXJT9VHXFXFVHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKXCVBVBXCXCVKXCVKXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVGXCVGXCVGXCVGT9VHT9VHT9VHT9VHVHY&VHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVKXCVKXCVKXCVKXCXCVGXCVGXCVGXCVGXMVHVGVHT9VHT9VHVHY&VHY&Y&SEY&SEVJVIVJVIVIVFVIVFVFVCVFVCVKXCVKXCXCVGXCVGYHYH/U/VYHYH/VYGYGX.YGYGYHYHYH/UYH/UYHYU/UY7Y7Y7XRY7/UYDY7Y7/UY7YU/UY7Y7Y7Y7/U/VY7/VYGYGYGYG/VYGYGYG/VY=YGX.X.X.X.X./U/VX.X.X&X&X,X,/UW3X,W;X,X,V=V=U8V=TWV)TWV)V)V?V)V?V)/QV)V)Y4Y4Y4/QY@Y@/QY@/Q/RY4Y4Y8/RY@Y@Y'Y,Y'/RYHYHYH/RYHY3Y3Y3Y3/QY3Y3/QYUYUYUYUYUY3YUY3Y3/P/QY3Y3/Q/RY3/RY3Y3YUYU/R/SY,/SY,/TYUYDYUYUYDY7YVYV/R/SYL/T/TYUY3Z&YUXRZ&Z&XRY;/SY;/SZ$Y;/TY7/TYVYVYLYLYL/TYL/TYLYL/T/UYVYG/UYGYGYG/UYGYL/VZ$Z$/VZ$Z$Z$Z$/V/V/WZ&/X/X/YYEYE/YYEYEYE/YYEYEYEYGYGYEYGYE/XYEYEYGYG/XYG/XY=/YYG/YY=Y=Y=Y=Y=Y=/YY=Y=YGY=Y=YN/XYNYGYGYG/XYGYGYG/XYG/XYGYGYXYXYX/X/X/Y/Z0#0#0$YNYNYN0$YN0%Y=X.0%X.YN0%0&0'X.X.0'X.0'0(0)0*0*X.X.X.X.0*X.WOX.X.VNVNX.WIVN0)0)0*0+X&WIX&WIWHX&X&WHWHX&X&WHX&WHWHWIWHWH0'VN0(0(WHVYVYX&X&X&0(WH0(WHWH0(WG0)WGWH0)VYVYVY0)VYVY0)0*W=W=0*WGVYWGWGW=WGW=W=0)W=W30)W3W3W3X,X,WUWUX,X,WUWUV=V=0'0(0(U>U>U>TWTWV=TWV=V=0'0(V=V=0(TOTWTW0(TWTWTWTW0(U>U>U>0(TLTL0(US0(TLTTTL0(TLTLTLTL0(TLTL0(V;TUTU0(TUTLTL0(TU0)0*TU0*TUTU0*V;TU0+V;V;UP0+V;UPV;UPUP0*UP0+V;V;UKUKUKU-UKU-U-0)U-U-U&V20)V2Y4Y4XEY@Y@Y@YIYIY@0'YI0(Y@Y@YIYIY@Y@Y@0'Y@Y'0'0(YI0(YIYIY'Y'0(0)0)0*0+Y,0+0,YIYI0,Y,0-0.YIYIYI0.0.0/YI00Y,Y,00Y,Y,000102Y,02Y,0303YK04YK04Y,0506Y,Y,06070708YM09090:YMYMY,0:0;0<0<0=Z#Z#YM0=YMYM0=0>0?0@Z&Z&0@Z&YK0@0A0B0B0C0D0EZ&Z&0E0FZ&Z&0F0GZ#0GZ#0H0HY-0I0J0J0K0L0M0MY00N0O0O0PY0Y00P0QY00R0R0S0TY+0TY/0UY/0U0VZ&0W0W0XY<Y<0X0YY<Y<0YYEY<Y<YEYEY<Y<0X0YY/Y/Y<0YY/Y/0Y0ZY/1#1#Y<Y21$1$1%1&1'1'1(1)Y<1)Y<Y<Y<YGYGY<1)Y<1)Y<Y<1)1*Y<Y<Y<1*YRYRY<1*1+1,1,Y<Z(1-1-1.YRYRZ(1.YRYG1.1/Y<Y<YGYG1/YGYG1/101111121314Z%Z%YGZ%Y<Y<131414YGYGYGYG14YG15Z%1516YG16YQ171818YQWJWJYQ18YQWJ18X.WJWJ1819YGYGWJWJY)19Y)Y)YGY)VTVTVQVQX.X.17WJX.X.X.17X.X.17X.1718VQVQ18VQVQVQVYVY18VYX(X(18X(X'18X'X'W3W318W%18W%WU1919WUWUWUW%WUWUWUWU18WUWU18X,WUWUX,X+X+X+WUX+WUWUX+X+WUWUWUWU15WU15X+16X+WRWRX%16U>TETETETETEU>U>TETETTTT13TTTTTTTETTTETETETE12TT12TLTLTLTL12TLTUTLTUTL12TUTU12TUTU121314141516U016171819U019U01:U01:1;UPV;V;V;1;1;V;1<UP1<1=UPUPV;V;1=1>V;1>UPUP1>UPUPUP1>U-XLU-YBYB1>1?YBYB1?1@YIYI1@YI1@1AYBYB1AYB1BYB1BYBYBYB1B1CYBYB1C1DYBYBYI1DYI1E1EYM1FYMYIYIYI1F1FYM1GYMYMYMYM1GZ'Z'YMZ'1F1GZ'Z'YPYP1GYPZ'Z'YMYM1F1GYMYJ1GY+YPY+Y+1GY+1H1H1I1J1KY+1K1LYSYWYWY*Y*1K1LY*Y*1LY/1M1NY/Y/1N1OYTYT1O1PYTYT1PYT1P1Q1R1SY/Y/1SXVYTYT1SY9YTXVY9Y9Y*1RY*Y*Y*Y*Y*1R1RY91SY9YRYGXVXVYGYG1RYGWZWZY9Y9WZWZWZ1QWZ1QWZWZ1QX/1R1SY91SY91T1TYG1UWZYGYG1U1V1VVW1W1XVWVWVW1X1X1YX#X#1Y1ZX#X#1ZXW2#X#2#2$VSVSVSVSX#2$VSVS2$2%WSWS2%WSWSWS2%2&VS2&VSVSWSWYWS2&2&2'VSVSWSWSVSWS2&VN2'VNVNVNVN2'VNVN2'2(2(2)2*W#2*2+W#W#WY2+2,2-2-2.2/2020W,21W,W,W,21W7212223W#W#W#W#X(22W#W#W#W#22W#W#W#W#X(X(X'X'WUWUX'WUWUWUWUWUWU2/WU2/20WM20WMWMWMWMWM2021WU21WUWUWUWU21WM2122WMWM22WT23WTX%X)X%X)U>U>U>2222TTUYUYU>22U>U>UYUY22UYU>U>2223U>U>2324TT24UYTTUY24UYUYUY24UY25UY25UYUYU/25U/U/2526U/U/26TTTMUUTTTLTLTLTLTL25TL2526TL272728TLUPTL28TL29TL29TL2:2:YBYB2;YBYB2;YBYBYBS0S02:2;S:S:2;S02<S0S0S0S:S0S0T'2;T'2;T'2<T'YMYMYCYCT'T'S0T'2:T&T&T&Y*2:Y*2;Y9Y92;2<2<2=WFWFY9Y92=Y9Y92=2>2?2?W(WFVZW(W(2?W(XV2?W62@2@W(2A2B2B2CS9W62CY9W(W(2C2DW(W(W(2DW(2E2E2F2GVU2GVUVUVUWQ2GWQWQ2GX#2H2IVU2I2JX#VU2JVUVUX#X#2JX#2JX#VU2KX#2KX#X#X#2KX#X#2K2LX#2MX#W72MW72MW7W7W7VS2MW7W7W72MW7W7X#2MX#X#W7W7W7W9W72LW7W72LW7W7W7W7W72L2MW,W,2MW9W7W9W9W92LW9W9W9W9W9W9W<W7W7W72K2KW92LW92L2MW92NW92N2O2PW<W<2PW<WT2PWTX%2PX%X%X%V:U/V:V:UFU/UFUFTMUUTMTMTMTMTM2MUFULUFUF2LTLTMUETM2L2M2NUEULULULTLTL2MTLUL2MULULTLTL2MTLULUIULUIULUL2LULUL2LULUL2LULUIUL2LXNUEXN2LUPXNXNUPUOUPUOUPUOUPUOUPU.U.U.X2SASASAS:S:SASASAS0SASZ2FS9T&S9S9VO2F2GVOWQWQWQS9WQS9S9WQWQS9WQVUVUWQWQW@2CWQ2DX#X#WQX#WQWQWQ2CWQ2CWQWQ2CWN2D2EX#X#2EX#WNX#W+W+X#2DW+2EW+2EW+WE2EX#2FXXX#2FX#2GX#W9X#W92FW<W<W<W92FW92G2GW<W<W<W9W<W9W9W<2FW<2GW<2GW<W<W:WUW:W:W:W:W<W<W:W:2EW:2EW:W:2FW<X$2F2GW<W<W<2G2G2H2IW)2IW)W<W)X$X$2IW<W<W<W<2IW<W<W)2IW<W<2IW<W)2IW)2JW<X-W<X-X-WU2IWU2IWUX-X-WUWUWU2IWUWUVXWUWUWUWU2HWUWU2HWUWUWU2HWUWUWXY$WXWUWX2GWXWXY$2GX%UFUFUF2GUFUI2GUIUI2GUIUIUHUHUIU*UHTH2FTHUH2FUHTHUH2FU*TAU7UZU7U7UZV-XMV-V-V%XMXM2CV<V5V52CV1U;2DU)U)TVUDXFSAXF2C2CS=S=S=S0SYSYSYS92BSHSHSHS1SHS1XWWQSHWQSHSHS1S1WQWQVM2?WQ2?VMVMW<W)W<W)W)X-2>X-WUWUX-X*X-X-VXVX2<X*VXVXVXVXX-VXX-2;X-VXX*2;VXVXVXX*VX2;VX2;VXVXWUWUVXVXVXVXY#WU29VXX*VX29W0X*W0WU29WUWUWXWXWXWDUI28XNXNU*V7TYTYV7V72728TI28TITITQU;28TITDTITITITITI27TIUDUDV6V4V#V#26TIS=S=262727S=S5S5S=S2S=S2S2S2S<S2XF25XFSBS<S2S<S-SBS<24SVS2T#S2T#S2S2S2T#S2S2S-S-T#T#21T#S.21S.S.S-S.S-21SYSY21SYSYSYSY2121SKSKSK21T$SMT$S.21S.SMT$SKT$SK20SKSKSKSKS@SK2020S@21SXSK21SKS@SXSX21SX21SX22SXSXSXSXS3SHSHSHSFSHS1SHS/S/2/S/S/2/S1S/S/S1VMS1S1S/2.S/S?VMVM2.XWW<W<2.W'W<W'W'W'VXVX2-Y#VXVXVXWK2,VXWKWKVX2,VXVXX-2,X-VXX*W0WKW0WKW0W0W0TITITD2*U,XLU,UXTJXKTJT@SV2(SVSV2(S.S-S.2(S.XES.2(2)2*2+2+SK2,SKSKSKS@S@SKS@2+2,SQSQSLSLS3S3S32+S7SJS7SJ2*S3SOSOSFSF2*SOSOSOSJSOSOSOSO2)SOSGSO2)2)SGSGSGSG2)2*SWVXVXW>2*VXVXVXW>W>W>2)W>W42)W4W42)W4W4W4WL2)WLWLY$W$W?2)2)W?W?W?W?W?WC2)WDWDWDWCXMU+U=U+U+U+2'U+U+U+2'U=U=U+U=U=T@U#T@2&T-U#T-U#U#U#U#2%SLS7SLS7S72$2%2&S7S7SJ2&SN2&XRSN2&SNSNSNS7SJSJSJ2%SJSJSJSJSJSJSOSO2$SO2%2%2&SO2'SOS8SO2'SGSG2'S>2'S>S8S>2'SW2(2)S>SWS>S>SWSW2(SWS>SWS>S>SWXW2'XWWLWLW4WLWLWC2&WCU=V*U=U=V*V*V*U<UBUBUB2$V$V$V$2$T-T=T-T=2#V.V.V.U#V(2#T=V(V(T=2#2#T=T=T=T=2#T=U@T=2#T=T=2#2$2%2&V(V(2&XJSNSNSN2&SO2&SP2'SPSP2'SOSOS>SPSPS>S>2&S>SPSPSP2&2&2'SR2(S6SRS6SRS6SR2'S6WCWC2'WCU=U=2'2(2(U<V,U<V,U<V,U<U<U<2'U<U<U<2'T;2'TGTGTGTGTG2'TG2'V.V.V.TGV.TG2'2'V.V.V.T=T=V.2'V.T=V.V.2&SNT(T(SPSPSC2&SPSPSPSDSPSDSDSDSC2$SCSCSDSDSC2$SRS6SR2$2$SRSDSRSDSD2$SDX>X;X>X;V,V,V,T6T2T2T6T2T1T5T1T51XT5T5T5T51XT5T5T/T/T/1XT8T01XT0T21XT2T21XT0T/T0T0T0T01X1XT;1YT;1YTGT;TGTGV.V.V.T;T;T;1XT0T0T01XT;T01X1YT0V.V.V.1XV.V.V.SC1XSE1YSC1YSCSESE1YSE1Z1ZSESSSESESESE1ZSESTSESEX;X;XDXDX;X;XDXD1W1XXDXDV,T6V,T6V,T6V,T31VT3T3T3V,T3V,T3V,T3T51UT3T31UT51UT01VT0T0T0T01VT7T0T71VT01V1WT.1WT.T.T.1WT.T.T.1W1X1YUMT01Y1Z2#2#UMUMUM2#V.UM2$2$2%UMV.T.2%T.T.2%UMT.2&SE2&SESEXCXCX?2&2&XDXDXDXB2&XBXBXBXB2&XB2&2'XBXB2'XBXBXBV,2'V,2(2(T5T5T5V,T5V,T/T.T.2'T.T5T5T/T/2&XBXBXBX=XSX@X@V,2%V,T4T/T/T42%T/T/2%2&T4T4V&T4T/T/T4T4YU2$YUYU2$Y72%Y7YHYH2%2&YHYHYHYUYUYUYH2%YUY7Y7Y7YUYDYUYDYDY7YDY7YUY7Y7Y7Y7Y7Y71YY7Y7YGYGY7Y7YGYGYGYGY7YG1VY=Y=Y=1V1WX&X&X&1WX&X&X,X,X,W3V?V?V)V?Y4Y4Y41U1UY@Y@1V1V1WY4Y4Y@Y@Y4Y4Y8Y8Y@Y@1U1V1W1XYH1XYUYUY3YUY3Y3YHYU1WYUY,1WY,Y,1WY3Y,1XY3Y31XY,Y3Y3Y31X1XYUY31YYUYUY,Y,Y3Y3Y,Y3Z&Z&1WZ&1WZ&1X1YXRYVYLYLYVYVYLYLYLYLYL1WYUYUY3YUZ&Y;Z&Z&Z$1UZ$Z$Y;Z$Y;Y;Y7Y7YVYVYLYL1SYLYL1SYLYLYVYGYVYVYGYGYV1RYGYG1RYGYVYVYLYLYLYGYLYLZ$Z$Y;Z$Z$Z$Z$YEZ&1NZ&Z&Z$Z$1NYE1NYEZ&YEZ$1NYEYE1NYEYEYEYLYLZ$YEYEYGYEYEYEYGYE1LYEYGYGYG1KY=Y=Y=Y=Y=YGYGYGYGY=1JY=Y=Y=1JY=Y=Y=1JYGYGYG1JYGYGYX1JYGYX1JYX1J1KYQYN1K1LYGYGYN1LYGYGYGYGYG1LYGYGYG1LYXYX1LYNYXYN1LYNYNYNYN1LYNX.X.X.Y=Y=1KYNYNX.YNYNYNYN1J1KYN1KYN1LX.X.1LX.1LYGYGYGYN1LYG1MYGYGYG1MX.X.1MX.X.1MX.X.X.1MX.WOVN1MVNVNX.X.X.1MX.X.X&X&X.1LX&X&WHWH1LWHVYVYVN1LVYWHVYVYX&X&X&WGX&WHWHWHWGWG1IWGWHWGWHWGWHVYVYVYVY1GVYVYWGWGWGW=W=W=1FW=WGWG1FWGW=1FW=W3W=W=1FW3V=V=V=1FV=V=1F1GV=1GU>U>V=V=U>U>V=V=U>1FV=V=1FU>TWTWTTTTTWTWTTTTU>TEU>1DTT1DTTTT1D1ETLTL1ETLTLTLTL1ETLTLV;1EV;V;1ETU1F1GTUTUUGTU1FUG1G1HTUTUTLTLTU1GTUTU1GV;TUV;V;V;TUTU1FUKUPUKUP1FUPUKUP1FUPUPU-U-U-1FTBTBTBV2Y@Y@Y61E1EY6YI1FY@Y@1FYIYI1FYI1G1G1H1IY.YI1IYIYI1I1JY.Y.1J1KY.Y.Y'Y'1K1L1L1M1NY,1N1O1P1Q1QY.YI1RY.Y.1RY.Y.Y,1R1S1S1TYIYI1TY,1U1V1V1WZ)Z)YI1W1X1Y1YZ)1ZZ)1Z2#2$2%Y,Y,2%2&Y,2&Y,2'Y,Y,Y,2'Y,2'2(2)2)2*2+YKY,YKY,Y,2*YKYKYKYKYKY,YK2)Y,2*Y,2*2+Z)Z)2+2,Z)Z)2,2-2.Z#2.Y,Z#2/Z)Z)Z)2/Z)Z)2/20YM20YMYMZ)20212222YMYMYMY,Y,Y,2222232425Z#25Z#Z#25Z#Z#Z#2526Z#Z#2627YMYM2728292:2:2;Y?Y?2;2<Z'Z'Y?Y?Z'Z'Z&Z&2;2<YKZ&YKYKYKYKYK2;YKYK2;2<2<Z&YKYKZ&Z&2<2=YKYK2=2>YK2>2?Y-2?2@Y-Y-Z&Z&Y-Y-2?2@Y-Y-2@Z&Y-Y-Z#2@Z#Z#Z#2@2A2B2BY-2C2DY02DY0Y02D2EY0Y0Y?2EY?Y?2E2FZ'Z'2F2GZ'Z'Z'Z'2G2HY0Y0Y02HZ'Z'Z'2HZ'2H2I2JY-Y-2J2KY-2K2L2M2M2NY0Y02N2OY0Y0Y0Y/2OY/Y0Y02O2PY0Y02P2Q2QY+2RY+Y02RY/2SY/Y/Y+2SZ&2SZ&Z&2SYEYEYE2SY<Z&2TYEYE2TY<YEYEY<Y<Z&Z&2SY<2SY<Y<Y<YEYEY<YEYYYY2RYYYYY<2R2SY<Y<Y<2SY<Y<Y/Y/Y<2RY2Y2Y2Y2Y/2RY<Y<2R2S2SY<Y22TY2Y2Y22TY22TY<Y<2TY<2U2VY<Y<2VY/YEYEYE2VYEYEY<Y<2U2VY<Y<YGY<Y<Y<YGYGY<Y<Y<2TY<Y<2T2UY<Y<2UY<Y<Y<Y<Y<Y<2UY<Y<2U2VY<2VY<Y<2VZ(Z(Z(Y<Y<Z(Y<Z(Y<Z(Y<Y<Y<2TY<Z(Z(Y<Z(Z(Y<XVXVYGYGY<2RYGYGY<YGY<2QY<YGYGYGYGYQYGYG2PZ%2P2QZ%Z%YQ2QYQYQ2QYQYQYQYQYQZ%2QYQYQZ%Z%Y<2PY<Y<2PYGYGYGY<2P2Q2R2RZ%Z%Z%YG2RYGYGZ%Z%Z%YG2QYGYGYG2QYQYQYQYQYQ2Q2RYQYQ2RYQZ%WJ2RWJYNYNYQYQYNYNYN2Q2Q2RYGY)Y)WJY)Y)Y)VTY)Y)WJ2PWJWJX.X.VRVR2OX.VRX.VTVTVT2OVTVT2O2PVTVT2PVQVYVYVNVNX(X(2OX(2O2PX'X'2PW%W%W%W%W%W&W%2O2PWUWUW%W%2PWUWU2PWUWU2PX,X,X,WUWUWUX+WUWUWUX+2NX+X+X+WRWRX%X%2MTT2NTTTT2NTTTTTTTTTT2NTLTUTLTU2M2NTL2O2OTUU0U0TUTU2O2PTU2PUPUP2PV;UPUPTLTLTLU0TLU0U0U0TL2NTL2OTLU0TL2OU0U0U5U0TL2NTLTL2NU22OTLU0UPU0UPU02NU02OU0UPUPUP2N2OUPUPV;V;V;2O2OV;V;V;V;UPUPUPV;V;V;UPV;2MUPUPV;V;UPUPV;V;UPUP2KUPUPUP2KUPUPUPUPUKUPUKYB2JY>Y>Y>2JY>Y>2J2KY>Y>YBYB2KYBYIYI2KYIYB2KYBYBYIYIYBYBY>2JY>2KY>2KY>YBY>2KY>YBYIYIYBYBYIYIYB2JYIYI2J2KYIYI2K2L2LYM2M2NYI2NYIYIYMYM2NYM2NYMYIXRYIYIYI2N2NYMYIYMYIYMYIXR2MYMYMYMZ'2MZ'Z'YPYP2MYPYPYPZ'2MZ'2MZ'Z'2M2N2O2P2P2Q2R2SY/Y/Y+Y+Y+2RY+Y+YJYJYJ2RYJ2RYW2SYJ2SXRYWYWYWYW2SY+Y+2SY+2S2TYSYS2T2UYWY*2UY*Y*Y*2UY/Y/Y/2U2V2WYTY/Y/YTYTY/2VYTYT2V2WYTYTYSYTYSYTYTYTYTY*YTYT2UYTY/Y/2UY/Y/Y/2UY/2UYTYTYTYT2UYTYT2U2VYTYT2VY92WY9Y*Y*Y*Y9Y*2VY*Y*Y*Y9Y9Y92UY9Y*Y*YGYGYG2UWZWZY9WZYGYGWZWZY92SY92TY92TY9Y92T2U2VX#2VX#X#X#Y9X#Y9X#YGYGWZYGWZWZ2TWZYGYG2TYGYG2TYGVWX/VWX/VWX/X/2SX/VWVWX/VWVWVW2RVW2R2SX#X#2S2TX#X#2TX#X#X#X#VWX#2TVWVW2TVWX#VWX#X#WSWSVSVSWSWS2R2SVSVSX#X#VSVS2RVSVSVS2RVS2RWS2SWSVS2SVSVSWSWSVSWSVS2RVSVSWSWYWS2R2R2SVS2TWSWS2TWSVNVN2TVNWP2TWPVNVNVNVN2TVNVN2TWYWYW#W#W#2SVNW#W#VNVNW#W#W#W#2R2SVNW#W#W#W#2RW#W#2R2S2TWYWYWY2T2U2U2V2WW,WY2W2X2Y2Y2Z3#3$3$3%W#3&3&3'W#W#W,3'WS3(WS3(WSW,W,W,3(W,3(3)3*3+3+3,3-3.3.3/W#W#3/30W#W#VNVNW#W#3/WUWMWMWUWU3/WMWU3/30WMWU30WMWMWMWMWM30303132WTWUWUWU32WUWUWU32WU32WMWM32X+WMX+WMWMWM323233WTWTU>U>U>33U>TTU>UYU>32U>3333UYUYUYU>33XPV:3334V:V:V:34V:V:V:34V:U/TTTT34TT34TTUYUYTTTTUYTTUYTTUY33UYTTUYTTUYUYU/32UYUYU/U/UYTT31U/3132UUUU32TLTLTLTL32TLTLUPUP3233TLUPTLUPTLTLTL3232UPUPUPUPUP32UP32UP33UP33UPTLUPTLUPUPUP32YBYBYBYBYBS:3232YB33S:S:33S:S:S:S0S:33S0S033S033S0S0S0S033S034S0S0S034S034T'T'T'T&34T&Y9Y93435Y*35Y*Y*35Y9Y*XV35Y9Y*Y9WFW-WFWFW-34WF35Y9Y9W-W-Y9Y93435Y935363737W(W(W(W-W-37WF3738393:VZVZ3:3;3;3<3=W/3=W(3>W(3>3?VOVOW(W(VOVOW.3>S93?3?3@W63AY9Y93A3BY9Y9Y9W(Y93AW(W(W(W(W(3AW(3AVUVU3AY9W(W(3A3BVUVU3BVUVUVU3B3CVUVUWQVUWQWQX#X#3BX#3BX#VU3CX#X#3CX#3CX#X#X#VU3C3D3E3EX#3FX#3FX#VU3GVUVUVU3G3GX#3H3IVSX#X#X#3HVSX#X#VSVSVS3HVSVS3HVS3HVSX#VSX#X#X#W7VSVSW7W73F3GW7W7W73GW7W7W7W7X#3GW,3GW7W73GW7W7W7W7W7W73GW7W73G3HW7W93HW9W7W9W9W9W73GW7W7W73G3H3I3IW9W9W9W93IW93J3JW<3KW<W93KW9W9W93K3L3MW93MW93N3NW<W<W<W<W<3NW<WTWTWT3NWTY%X%Y%TMTMULULUU3LUUUUULUEUL3LTM3LTMUL3LULULULUE3LULUEUETLUE3LTLTLUE3LULUL3LUL3L3MUEUEUIULUI3M3MTLUEUETL3MXNUPT&S9T&3MS9S9S93M3MWQWQWQW@3MW@W@W@W@WQ3MWQWQWQ3MWQ3MWQWQVVWN3MWNWNWNWQWNWNWNW+W+X#X#WEX#X#3JW+3KW+W+W+WE3J3KWEWEWEX#3KX#3KXXWEWE3KW7X#3LX#3LX#X#W9W9W9W<W9W9W93KW9W<W<W<3JW<W<W<W<W<3JW:3JW:W<W<W<W:W<W<3I3JW<W<W:3JW:W:W:W:3JW:W<W<3JW<X$X$W<W<W<W<W<3IW)W)3I3J3JW<W)W)3J3K3LW)3L3MW<W)X$X$W<W<W<W<W<X-W)3KW)W)3KW<W)W<W)W)3KW<W)W<W)W)X-WUWUWU3IWUX-X-WUWUVXVXWUWUWU3HWUWU3HWUWUWU3HWUWUWXWXWXWXY$WXX%UFUFT>3FUFUFUIUIUI3EUIUIUH3EUH3FUHUH3FTHTH3FTHTAV%3FV%V5T+T+T+3FV3T,3FT,XFSASA3FSZSZ3FS=S9S9SHSH3EWQVMVMWQWQVMVM3DX-W)X-X-3DVXVXVXVXX-VXX*X*3C3DVX3DVXVXVX3DVXVXVXVXX*VXW0W0X*W03B3CWUWUUI3CUIU*TYV7TYV7V7V7V7UAT:T:3AT:3ATQTITITDTDTD3A3AV#TITIS=S=3AS4S=3A3B3CS=S=S=3CS<S<XFSBSBSBSBSVS-T#S-S-T#3@S.S.3@S.S.S.T#SYT#T#SYSYSKSKSYSKSKSKSMT#SM3=SMT$SMT$SYSKSKSKSK3;SKS@SKS@SKS@3:S@S@S@SKS@SKS@39SXSXSXSXSX39SX39SXSXSXS1S1S/S/S1S1S/S/S1S1S?S?S?S?36SUW<W<W<W'35VXVXVXVXVXWKWKVXWKVXWKX-VXX-VXTITITD3232S-S-S-S-S-S-S.S-S-S-S.S.30S.31SMSMSM31S.31S.S.313233SMT$T$T$33T$33T$XESKSKXRSQS@S@SQS@S331S3S3S3S331S331SOSOSOSOSOSO3131SG32SGSOSO32SGSGSWSWSW3132SGSWW>VXW>W>W>W>W431W431W4W4W>31W432W?W?WLW?W?31W?W?Y$W?W$31W?W?WCWCU+U+U=U+U+U+U+U=U#U#3.U#U#U#U#3.S7S7S73.S73.XRSNSNSJ3.SJ3.SJSJSJ3.SJSNSN3.SJSNSNS7S73.SJSOSGSO3.SO3.3/SISOSOSO3/SISISI3/S8S83/S8SOS>SOS>3.S>SISISI3.3/3030SWSWSWS>30S>S>30SWS>SWSWSW30SW30S>S>S>30WCWCWCUB30V$V$V$V$V$30V.30V.V.V(V(T=30V(V(30U@T=30T=T=30U@T=U@T=U@T=T=V(U#3/V(3/U#V(V(V(V(3/V(V(V(V(U@3.V(U@U@SN3.SNSOSOSO3.SOSP3.SPSP3.SO3/30S>S>SP30SPS6S6S6SPSPSP3/S6S6S63/SR3/SR30S630SRSRW4WCW4WCU=U=U=3/U=V,V,V,V,U<V,V,U<U<3-T5U<U<T5T53,TGTGTGTGTGTG3,TPTP3,V.TGV.3,V.TG3,TGV.V.T=T=T=SNSNT(T(SD3*SCSDSCSDSCSDSDSDSE3)S6S63)SRSD3)SDSDSDSD3)SDT53)T5T5T5T;T53)T/3)T/T/T83)T8T0T/T/T2T/T/T03(3)T0T0T03)T;T;3)T;3)3*T;T;T;3*T;TGT;3*T;T0T03*3+V.3+T0T0T0T0T0V.V.T0V.3*V.SC3*3+SESCSESESESCSCSC3*SESESE3*3*SSSSSSSESESSSSSESE3)ST3)XDXDXDXD3)XDXDT3T6T3T3T53(T53)T3T33)3*3*3+T73,T7T0T7T0T0T0T03+T0T0T5T5T0T03*T.T0T.T5T.T03)T.T.T5T.T5T.T03(3)UMUM3)UMUM3)UM3*UMT03*T03+T0T03+T0T03+T0UM3+UMUMUMV.V.V.3+V.V.UMUMUMV.UMUMV.V.3)V.3)UMT.T.UMUM3)UMUMUMT.T.3(SSSESEXCX:X?X:X:3'X:XDXD3'XBXBX:XB3'XBXDXD3'XBXDXDXBXBXD3&XB3'V,T5V,T5V,T5V,T5T5T5V,T5T5T.T53$3$XBX:XBV,V,V,T/T43#T4T43#T4T4T4T43#T4T4Y7Y73#3$Y7Y73$Y73$Y7Y7Y7YHYH3$YGYHYH3$3%YHYUYUYUY7Y7YGYGYGY=Y=Y=2Z3#X.X&3#3$X&X&3$X.X&X&Y43$3%Y@Y4Y43%Y@Y@Y@3%Y@Y@Y43%Y4Y43%Y4Y4Y'3%Y'Y'3%Y,3&Y,Y'Y'Y'3&3&Y,3'Y,YH3'YUYUYHYH3'YHY3Y3Y,Y,Y3Y3Y,3&Y,3&Y,Y,3&Y,Y,Y,Y3Y3Y,Y,Y33%Y3Y33%YUYUYUY,Z&Y,Z&Y,3$3%3&3&Z&Y,Y,Z&Z&3&Z&YLYL3&3'YLZ$Z$Z$YLYL3&YLYVYV3&3'YV3'YVYG3'YGYGYGZ&Z$Z&Z&Z&YEZ&YEZ&YEZ&Z&Z$Z$YEYEYEZ$YEYEYE2ZYEYE2Z3#YGYGY=YGY=Y=Y=Y=YNYNYNYN2YYN2YYGYXYXYGYGYXYXYG2XYGYGYXYNYX2XYNYN2XYNYG2XYGYG2XYNYGYGYNYN2XYGYGYGYNYNYGYGYG2WYXYNYNYNYN2VYNYNYN2V2WX.Y=Y=YNYNYN2VYNYG2VYNYNYNYNYN2VX.2VX.YNYNX.X.2VX.YNYGYGYGYN2UX.X.2UX.X.X.YGYGYG2U2UX.2VX.2VYGX.2WX.X.2WX.WIWIVNWIX.X.2V2WX.X&X&X&WHWHWHVYVYVYVNVYWHWGWHWHWGWGVYWG2RW=W=W=WGWGVYWG2QW=W3W3W=W32QW3V=2QV=U>2Q2RU>U>2RV=U>U>U>U>2RU>2RV=U>U>V=V=U>U>2QTETETETLTLTTTTUT2PUTUTTLTLUTTLV?2OTLTLTLTUTL2OV;V;2O2PTUTUUGTUTL2OTLTLUG2OTLTL2OUGTLUGTLTLTL2OUGTU2OTLV;V;TU2OV;V;2OV;UKUK2OUKUPUK2OUKUPUKUP2O2OU$U$U$Y6YIY6YIY6Y6Y62NY:Y:YIYIY@2MY@YIY.Y.2MY.2MY.YI2NY.2NY.Y.2NY'2O2PY.Y.2P2Q2Q2RYI2SY'Y'2S2T2T2UY.Y.2U2VY.Y.Y'Y'2V2WY'2WY'2X2X2Y2ZY,2Z3#Y'3$3$Y,3%Y,3%Y,Y,Y,Y'Y'3%3&3&Y,3'Y,3'3(3)3*Y,Y,3*Y,Y.Y.3*3+Y.Y.YIYI3*Y.YI3+Y.YA3+3,Y,Y,YAY,3+3,YIYI3,3-YIYIY,Y,3-Y,3-3.YIYI3.YIYIYIYIYIYI3.YIYIZ)YIYIZ)Z)3-YI3-YI3.3.YI3/YIZ)Z)3/Z)YIZ)YI3/YI3/YI3030YM31YMYIYI3132YMYM32YM3233YIYI33Y,343535Z&36Z&36Z&37Z&Y,Y,3738Y,Y,Y,38Y,3839YK393:YKYKY,Y,Y,YKY,39YKYK39YKY,YK39YKYKYKYI39YI3:3:Y,3;Y,3;3<3=3>3>3?3@Z)3@3AZ)Z)3A3BZ)Z)3BY,3C3DY,Y,Z#Y,3CZ#Z)Z)Y,Y,Y,Z#Z#Z#Z#3B3BYM3CYMZ)Z)YM3CZ)YM3CYM3CYMYMYMZ)Z)3C3D3DYMYMYM3D3EYMYMZ)YM3EYM3E3FY,3GY,Y,Y,3GY,Y,Z#Z#Z#Z#Z#YMZ#Z#YMYMY,3DZ#Z#Y,3D3EZ#YKYKZ#Z#YKZ#Z#Z#YMZ#YMYMZ#Z#YMYMZ#Z#YMYMZ#Z#3@3AYMY?YM3AY?Y?3AY?Z#Z#3AZ#Z#Z#Z#Y?YM3@3A3B3BY?3C3DYKZ&YKYKZ&Z&3CZ&YKYKZ#YKYKYK3BYKYKYK3B3CZ&Z&YKYK3B3CYKYK3CZ&3D3EYKYK3E3FYKYK3FY-YKYKY-Y-YK3EY-Y-Z&Z&Y-Y-3DZ&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z#3AZ#Z#3A3BZ#Y0Z#Z#Z#3B3BY03CY03CY-Y-Y-3CY-3D3EY-Y-3EY-Y03EY0Y03E3FY0Y03F3GY0Y03GZ#Y?Y?3G3HY?3I3IY03JY0Y?Y?Y?Z'3IZ'Z'Z'Z'Z'YPZ'Z'Z'YPYPY0Y03GY0Z'Z'YPZ'Y0Z'Z'Z'Z'Z'3E3FZ'Z'Z'3FY-Y-3FY03FY0Y0Y0Y-Y-Y-3F3FY0Y0Y03FY0Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-3D3E3E3F3G3HY03H3IY/Y0Y0Y03IY03IY03J3JY0Y+Y+Y03J3K3LZ'Y+Z'Y+Z'Y+Z'3KY0Y03KY/3KY/Y/Y/Y/Y/Y+3KZ&YEZ&3KYEYE3KYEZ&Y<Z&Y<Y<Y<Z&Y<YE3IY<Y<Z&Z&Z&3IZ&Z&Z&Y<YYYYY03HYYYYY/3HYYYY3HYYY<Y<Y/Y/Y<Y<3GY<3GY2Y/Y/3GY<Y2Y2Y<Y<Y23G3GY<3HY<Y<Y<3HY<Y23HY2Y2Y23HY23IY2Y23IY23IY<Y/Y/3I3J3KY/3KY/Y/Y/YEY<Y<Y<3JYEY<Y<YEY<Y<Y<Y<YGY<Y<YGYGY<Y<3GYG3HY<YGYGYG3HY<Y<Y<3HY<Y<Y<Z(Y<Y<Z(Z(Y<Y<3F3GY<Z(3GZ(Y<Y<YRYRYGY<Y<Y<Y<YGY<3EYG3EZ%Z%YGYG3EYGYQYQZ%YQ3D3EYQYQ3EYQYQYQ3EZ%Z%Z%Y<Y<Y<YG3D3EYGYGYGYG3EYGY<Y<Y<3E3EYGYGYGYG3EZ%Z%YGZ%YGYGZ%Z%YGYGYG3CYQYQZ%YQZ%YQYQYQYQZ%YQYQ3AYQZ%Z%WJWJ3@X.X.X.Z%Z%Y)Y)3?3@Y)Y)WJ3@WJWJX.X.3@X.VTVTVT3@VTVT3@VQVT3@VQVQ3@VQVQVQ3@X(3AX(W3W33AX'W3W33AX'W3W%W%W%3@3AWUWU3AWUWUWUW%W%W%WUWUX,WU3@X,X,3@X,WUWUWU3@U>TTU>3@U>3@U>TTTETETTTTTTTLTLTLTUTUTU3>TUTUTU3>3>U0U1U0TUTU3>3?TUTUTU3?TUV;3?V;TUTU3?3@TU3@3AUP3AU0TLU03AU03BU03BU53CU5TLU3TLTLU5U5TL3BTL3BTLTLUPUP3BUP3BUPUPUPU9U9U93B3B3C3D3EV;UP3EUP3EV;3FV;3F3G3H3IV;V;3I3J3JUPUPUPYB3J3KY>YBYBY>3KYBYB3KY>YBYBY>Y>Y>3JY>3K3KYI3LYBYBYIYBYBY>YBY>YBY>YBY>YBYBYBY>YBYBYB3HYB3H3IYBYB3IYI3JYBYIYI3JYB3J3KYBYBYIYBYBYB3J3KYIYIYIYMYIYIYMYM3JYMYIYIYI3JYMYM3JYM3JYM3KYMYIYIYI3KYIYMYIYI3J3KYMYMZ'YPZ'Z'Z'YPZ'3JYPYP3JYPZ'3JZ'Z'YPYP3J3KYPYJYPYJZ'3JZ'Z'3JYJZ'YJZ'3JYP3K3KY+3LY+YP3LYPYPY+Y+YPY+Y+3KY+3LYJYJ3LYWY+Y+3LY+Y+Y+3L3M3MYW3NYWYW3NYWYWY+Y+3NYSY+3NYSYS3NYSYSYSYSYSYWYSYSYS3M3NYSYSY*Y*Y/Y/3MY/YT3MYTYT3MY/YTYTYTYTY+Y+Y/Y/YT3LY/Y/3LY/3L3M3NYTYTYTY*Y*Y/Y/Y/3MY/Y/3MY/YT3MYTYTYTY/YTYTY/Y/YT3LY/Y/3LY/YTYTYT3LY*3LY*3MY*3MY*Y*Y9Y9Y*Y93LWZWZWZWZX/3LX/Y9X/X/X/X/X/Y93KX/X/3K3LX/X/3LX/Y9Y9Y93LX#X#Y9X#WZWZWZVWVWYGVW3JYGYGYGVWX/X/3IVW3IVWX#X#3IVWX#X#VWVW3IVWX/X/VWX/3HVWX/X#VWX#X#X#VWVW3GVWVWVW3GVWWSWSVS3GWSWS3GWSVSVSX#X#VSVS3FVSWSWS3FWSVSWSVS3F3FWSVSWSVS3FVSVSWS3FWS3GWSWSVS3GWSWS3GWSVS3GVSVS3GWSVSVSVNVNWP3G3GVNVNVNVNVN3G3H3HWY3IWYVNVN3I3JW#W#3J3KW#W#3KW#3K3LW#W#VNVN3L3M3MWYWYWYVNWYWYWY3L3MW,W,WYWY3M3N3N3OWYWY3O3PW,W,WYW,3PW,WYWYWY3PW,3PW,W,3PW,W,W,WYWY3P3QWY3QWYWYW,3Q3R3S3SWYWY3T3T3UW#W#3UW,W#W#W#W#W,W,W,3T3U3V3V3WW#3XW,W,3XW,WSW,3XW,3XW,WSWSW,W,3XW,3XWYWYWY3X3YWYWYWYWY3YWYWYWYWY3Y3YW#WY3ZW#W#3Z4#4#4$4%W#4%4&W#W#W#4&W#W#4&4'W#W#VNVN4'4(VNVN4(4)WUWUWU4)WUWUWUWM4(4)4*WMWU4*WUWM4*WMWMWMWM4*WTWTWMWMWM4*4*4+WTWT4+WTWTWTWU4+WUWUWUWM4+WM4+WUWMWMWUWU4+X+WMWMWM4+WT4+WTWT4+WTWTWT4+UYU>UYU>UYU>4+4+4,U>UYUYUYU>UYU>U>V:V:U>U>4*4+U>U>V:V:4*4+V:V:4+4,4-UY4-TTTTTTUYTTUYTT4,TTUYTT4,U/U/U/4,U/U/U/UU4,UUUU4,TT4-TT4-TLTLTLTL4-TLTLTL4-TLU:4-UPU:UPTL4-TLUPTLUP4-UPUPUP4-UPUPUP4-4.TLUP4.UP4.UPTLUPYBYB4.YBYBYBS:S:YBYBYB4-YB4-S:S:S:S:S:4-4-4.S:4/S0S04/S04/S0S:S0S0T'S0S0S0T'S0T'S0S0S0T'S0T'T'T'T'T&T'T&4*Y9Y9Y9Y9Y94*Y9Y*4*Y*Y*Y*Y9Y*XVY9Y9Y94)W-W-4)W-4)4*WFWFY9Y9W(W(Y9Y94)Y9Y9Y9Y94)W(4)W(W(Y9W(W(W(W(W(4(W(4(WFWFWFVZ4(VZVZ4(4)VZVZVZVZVZ4)VZVZ4)W(W6VZW6W6VZ4(W6W6W6W6W64(W6W64(4)W64)W64*VZ4*4+W(4+W(W6W(4+4,VO4-W(W(4-W(W6W6W.4-4-W6W6W6W6W6W6W/4,W/W/VOW6VOW64,Y9Y9W(W(4+Y9W(W(Y9Y9Y94+W(4+W(W(W(VU4+VUY9Y94+Y9Y9Y9W(4+Y9Y9VUVU4*VUVUVUY9Y9VU4*Y9Y94*VUX#X#4*X#VUX#VU4*X#X#VUVUX#X#VUX#4(X#VUX#4(X#X#X#VU4(VU4)4)X#4*X#X#X#VUX#4)X#VUVUX#X#VU4)VUX#VUVUVUX#VUVUVUX#VUX#VU4&4'VU4'X#4(X#X#VSX#X#VSVS4'4(VSVS4(4)4)4*X#VSVSVSVSW7VSVSW7W74(WS4)4*X#W7X#X#4)W,4*4+4+W7W7W7W7W74+W9W7W7W9W9W74*W9W9W9W9W7W9W7W7W74)4)4*W7W74*4+4,W9W7W9W9W94+W9W9W9W94+W9W9W94+W9W9W<W<4+W<W<W<W9W<4*W<4+W9W<W<4+W<W9W9W94+W<W<4+W<W9W9W94+W94+W9W<W9W<W<W<W9W<W<W<WTWTWTX%TLTL4(TLUEUEULUETMTMTM4'TM4'TM4(UETLUE4(UE4(UEUETLTL4(TLULUL4(UI4(4)UEUETLTLUE4)UIULUIULTLTL4(UETL4(UPUPS9S9T&S9S94'S9WQ4'WQWQWQ4'4(W@VU4(WQWQWQWQVV4(VV4(VVWQVVVVWNWNWNW+WEW+4'W+4'W+W+W+4'W+WE4'WEWEWE4'W+W+W+4'W+4(WEW7W74(W9W9W94(W94(W9X#W9W9W9W94(W9W<4(W<W<W<W<4(W<4(W<W<W<4(W<W<4(W:W<W:4(WUW:W:W:W:4(W<W<4(W<W)W<4(W<W<W<4(W<W<W)W)W<W)W)W<W)W)W<W<4&W)4&4'W)W)W)W)4'W)W<4'W<W<4'W)W<W)W<W<W)W)W<W<W)W)4%4&4'4(X-WUX-4(WUWU4(4)WUWU4)WUWUWU4)4*UFUF4*UIULUL4*UIUHTH4*TH4*THTHTHUHTHTHTHTHTHTA4)V5V<V54)4)4*4+4,V3V3V3T,SA4+SASZSZSZS=4+WQWQ4+WQW)W)W)X-4*X*VXVXX*X*VX4*X*X*4*VXX*X*4*4+VXX*4+X*WU4+4,WU4,W14-4.4.U*UIU*T:T:TI4.TQTQTITI4-TITDTIV#V#TITIS4S4S44,S=S=4,S4S44,S=S=S4S=S=S=S=S=S5S54*4+S.S.S-S.4+S.SMT$SMT$S@4*S@S@SKS@SKS@4)SXSXSXS@SX4)SXS@4)SXS@4)SUSUSUX-VXX-VXTDTDTD4(S-S-SVS-S.SM4'SM4'SM4(SMSMT$SMT$S.SMS.S.SMSM4&4'SM4'4(4)S.SMS.S.T$T$T$4(T$4(T$T$S3S3S34(S3S3S34(SFSFSOSFSO4'SOSGSGSG4'SG4'SGSOSGSOSOSOSGSGSGSG4&4&SW4'SWW>W>W4W4W>W>W4W>W>W>4%4&4&4'W4W4W?W$W?W?W$W?4&W$U#U#T-4&U#U#V(U#S7S7SNS7S7S7S7SNSNSJSNSJSJ3ZSJSJ3ZSJ4#4$SJSJSNSN4#4$4%SJ4%SG4&SGSGSGSG4&SO4&4'SISO4'SO4(SI4(SISI4(S8SOS8SGSG4(SISISISI4(4(S8S84)S>4)S>S>SGSWSGSWSWSWS>4(SWSW4(SW4(SWS>SWSWS>S>S>WLWC4'WCUBV$V$V$V$4&V$TPV.T-V.V.V(V(4%4&V(V(4&4'4'4(T=T=T=4(T=T=V(U#V(V(U#U#U#4'V(V(U@4'V(V(4'V(SNSOSNSO4&SOSPSO4&SOSPSPSOSOSPSOSPSPSP4%SOSOSPSOS>S>SP4$SP4$SPSPS6S64$S64$S6SR4%SR4%SRSRS6S64%S6U=4%V,V,4%T1T1T5U<U<U<4%TGTG4%TGTPTPTP4%TGTGV.V.TG4$TGV.4$SPSDSDSESDSESES64#SRS6SD4#SDSDSDSD4#SE4#T1T5T5T04#T0T0T8T8T/T8T8T0T8T0T/3YT/T/3YT0T/T0T0T0T03YT;T;T03YT03YT0T03YT;T;T;3YTGT;TG3Y3ZT;4#4#V.V.V.4#V.V.V.T;4#T0T04#V.V.V.SCSC4#SESCSCSC4#SCSESESESESE3Z4#SE4#SE4$SESTSTSTX;X;X;XD3Z4#XDXDT3T34#T34#4$T5T54$T3T54%T3T34%T3T74%T7T7T0T04%T0T7T0T7T04$4%T.T.4%T0T.T.T04%T.T.4%V.4&UMT0UMT0UMV.V.4%4&T0UM4&UM4&UMUMUMT0T0T04&T04&T0T04&T0T.4'T0T0T0UMUMUM4&UMV.V.4&4'V.V.4'V.T0T0T.T.4&UMT.UM4&SSSESSX<X<XDX<XDXD4%XDX:XBX:XBXB4$XBXBXDXD4$4%4%XBXBXBT54%T5T5X:XBX:XB4$4%T4T44%4&T4T4T44&T4T4YU4&YUYU4&4'YU4(Y7Y74(Y74(4)Y7Y7YHYGYGYGYHYHYGYGYHYHYGYGX.4&X.X.4&X.X&X&X.X.4&4'X.X.X&X&X.X.X&4&Y44&Y@Y@Y44&Y@Y@Y44&Y@Y@Y@Y@4&Y@Y44&Y4Y4Y@Y@4&Y@Y'4&Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,4$Y'Y,Y,Y'Y,4$Y,4$Y,Y,Y,YHYUYUYUYHYH4#4$Y3Y3Y34$Y,4$Y,Y,4$Y,Y,Y,4$YUY34%Y3YUY3Y3Y,Z&Y,Z&Y,Y,Y,4#4#Z&4$Z&4$Z&Y,Y,Z&Z&4$Z&4$4%Z$Z$YLYLZ$Z$YLYLZ$Z$YL4#YLYL4#YV4$YVYVYGYVYVYGYG4#YGYEYGYEYEY=Y=YGYGY=Y=YGYGY=YNY=Y=YGYGYGYXYXYXYGYXYXYNYXYXYNYN3TYNYGY=YGYGY=Y=YGYGYNYGYGYGYGYGYGYNYXYNYNYNYNX.3OX.YN3OYNX.YNYNYN3OYNYN3O3PYNYN3P3Q3QX.YNYNX.X.3QX.3QX.X.X.YG3QYGYGYG3QYG3RYGYG3RX.3RX.X.X.3R3SYGYG3SYGX.X.3SX.WOWOX.3SX.X.3S3TX&X&3T3UW=W=W=W=W=3U3UW3W3W3V=V=V=3UV=V=3UV=V=V=V=3UV=V=3UV=V=U>V=U>V=V=3T3UU>TETETEUT3TUTUTV?V?3T3UUGUG3UUGV;V9V;3UV93U3VV;UGUGTLTLTUTUUGUG3TUG3UTLTL3UTLTL3UTU3VTLV;V;TUTUV;V;3UTUUKUK3U3VUPUPUP3VUK3VUPUPU-U$U$U$Y6Y6Y6Y:Y@Y@Y@YIYIY.YI3SYI3SYIYIYIY.YIYIY.Y'Y.Y.Y'Y'3QY'Y.Y'Y.Y.3PY.Y.Y.Y.3P3Q3R3R3SYI3TY.3TYIYIY.Y.3T3UYI3UYIYI3UY'Y.Y.3U3VY.Y.Y'Y'3V3W3WY'Y.Y.3WY'Y.3XY'Y'3X3Y3Y3ZY.Y.3Z4#Y.Y.Y'Y'Y'4#4#4$Y'4%Y'Y'4%4&Y'Y'4&Y,Y,Y,4&Y,Y'4&Y'Y'Y'4&Y'Y'4&4'4(Y,4(Y,Y,Y,4(Y,Y,Y,Y'4(4)4*Y'Y'4*4+Y'4+Y'4,4,4-4.4/4/Y,40Y,Y.40414242Y,Y'434344Y.Y.Y'44Y.Y.Y,Y,44Y,YI44YIYI4445YIYI4546YIY.Y.Y.YIYIY.YAY.45YAYA45YAY.45464747YA4849YAYA49YA49Y,4:Y,Y,Y,4:4;YI4;YIYI4;4<YIYI4<Y,YIYIYIYIYIZ)Z)Z)Z)4;YIYIYI4;YI4;YIYI4;4<4=4>4>YIYIYIZ)Z)4>4?Z)Z)YIYIYI4>YMYMYIYMYI4>4>YMYMYMYMYM4>YMYI4>4?YMYIYMYMYM4>YMYMYMY,Y,YIYIY,Y,YI4=Y,Y,4=Y,YI4=4>4?4?Y,Y,Y,4?Z&4@Z&Y,4@Y,4AY,4A4BZ&Y,4BY,Y,Y,Y,YKYKY,YK4AYKY,Y,Y,4A4A4BYKYK4BYKYKYK4BY,4CY,Y,4C4D4EY,Y,Y,YKYKYKY,Y,Y,YKYKYK4B4C4DY,4DY,Y,Y,YIY,4DY,4DY,4EY,4EY,4F4GY,Y,4GY,4G4HZ)Z)4H4IZ)Z)Y,Y,Y,4IY,Y,4IY,4IZ)Z)Z)Z)4IZ)4J4J4KZ)4LY,Y,4LZ)Y,Y,4LZ)Y,Y,4LY,Z)4LZ)Z)4LZ#4MZ#Z)4MZ)4NZ#Z#4NYMZ)Z)Z)YM4MYMYMYM4M4NYMZ)Z)4N4OYM4O4PYMYMZ)4PZ)Z)4PYMYMYM4PZ)YMYMYMZ)YMYMYMYM4OYM4O4PYMYMY,4PY,4Q4Q4RZ#Z#Z#Z#4RZ#Y,Z#Z#Z#4QZ#Y,Y,Y,Y,4Q4RY,Y,Y,4RZ#Z#YMY?Z#Z#Y?4QYM4QYM4RY?Y?4RY?Z#Z#4RZ#YM4RYMYMYMYMYMZ'YMYMZ'4Q4QY?4R4SYM4SY?Y?4SY?Y?Y?Z&Z&YKYKYKYK4RYKYKYK4R4SYKYK4SYKZ&Z&4S4TZ&Z&YK4TZ&Z&4T4UYK4UYKYK4UZ&4V4WYKYKYK4W4WYK4X4YYKYKY-Y-YKY-4XY-Z&Z&Y-Y-Z#4WZ#Z#4W4X4Y4Z4ZZ#Y0Y0Z#4Z5#Y0Z#Y0Y0Y0Z#Y0Y0Y04YY-Z#Y-4YY-Z#4ZZ#4ZZ#5#5#5$Y0Y0Y-Y-Y05$5$5%Y0Y0Y-5%Y0Y05%5&Y0Y05&5'Y0Y05'5(Y0Y0Z#Z#Z#5(Z#Y?5(Y?Y?Y0Y?Y?Y?Y?Y?Z'Y0Y05&Y05&Y0Z'Z'Y?5&Z'Z'Y0Y05&Y0Z'5&Z'YP5&Z'YPYPZ'Z'YP5&Y0Y05&Y0Y-Y-5&Y-Y-Y0Y0Y0Y-Y-5%Y05%5&Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-5$Y-5%5%YYYYYY5%5&5'Y0YYYY5'YYY0Y/5'Y/Y05'Y0Y/Y0Y0Y0Y+Y0Y0Y05&5&Y+Y+Y+Y0Y05&Y0Y0Y05&Y0Y+Y/Y+5&Y/Y/5&Y/Z'Z'Z'Y+Y05%Y0Y0Y0Y/Y/Y/Y+Y/5$Y/Z&YEZ&Z&YEYEZ&5#YEYE5#5$Z&Z&Z&Y<Y0YY5#Y/Y/5#Y/Y/5#YYY/Y/5#5$Y2Y2Y2Y2Y/5$Y25$Y25%Y2Y<Y2Y2Y2Y<Y2Y<Y2Y<Y2Y2Y2Y<4Z5#Y25#Y2Y2Y25#Y25$Y25$Y2Y2Y2Y2Y25$Y/5$Y/Y/Y<Y<Y<5$Y<Y<5$Y/Y/5$Y/Y/Y<5$Y/Y/YEYEY<Y<YGYG5#YGY<5#Y<Y<5#5$Y<Y<Y<YRYRYR5#5$Z(Z(5$5%Z(Z(5%Z(Z(Z(5%YGY<YGYGYGZ%Z%YGYG5$YGYGYGYQYQYGYGYQYQYGYGYQYG4YZ%Z%Z%Y<Y<YGYGY<YGYGYG4WYG4X4YY<Y<Y<4YY<YG4YYGYGYG4YYGYGYGYQYQYQYQ4XYQYNX.X.X.Z%Z%Y)Y)4VY)Y)Y)X.4VWJWJX.X.X.4VVTVT4V4WVTVTVQVQVTVTVQ4VVTVT4VVQX(X(4VX(4VX(X(X(X'4VX'X'4VX'X'X'WU4VWUWU4V4WWUWUW%W%4W4XWUX,WU4XX,X,4XX,WUX+X+X+U>TT4WTT4WTTU>TTTUTU4WTUTUTUTU4WTL4WTLTLTUTU4WTUTUTU4WTUTU4W4XV;4X4YV;V;TUTUTU4YTUTU4Y4Z4ZV;TUV;TUTU4ZUPTLU0TLU0TLU0TLU0TLU0TLU0TLU5TL4W4WU5U5TLTLU4TL4WTL4WTLTLUPUP4WUP4WUPUPUPU9U9U9UPU94VU9U9UPUP4VUPU9U9UPUPU9UPUPUPV;UPV;4T4TV;4UV;4UV;4VV;V;4VV;V;UPUP4VUPV;V;UPUP4UUPUPUPV;V;V;4UV;V;4UUP4UUPUPUPYBYB4UY>4UY>Y>Y>YBYBY>Y>YBYBY>Y>YBYB4SYB4SYBYBYBYBYI4SYI4S4TYBYBYBYB4TYBY(4TY(Y(4TYIYBYBYIYI4T4U4UYIYBYBYBYIYBYBYIYI4T4UYIYI4U4VYI4VYIYIYMYMYIYIYM4UYIYIYI4UYIYIYMYMYIYIYIYM4TYM4TYMYIYMYIYIYIYMYM4SYM4T4TYM4UYMYPYPZ'YPYPYPZ'YP4SYPZ'YPZ'YPZ'Z'YPYP4RYPZ'4RZ'Z'Z'YPZ'4RZ'Y+YPYPYPYPYP4QY+Y+YPY+4PY+Y+Y+YP4PYPY+Y+Y+Y+YTY+YTY+Y+YJYJYJYWYJY+Y+Y+YWY+YWYWY+Y+YWY+YJYWYJYWYJYWYJYWYWYS4H4IY+Y+YS4IY+YSYSYSYSY+YSYSYSYSY*Y*YSYSY*Y*4EY/4F4GYT4GYTY/4GY/Y/Y/Y/Y/YT4GY/Y/4GY/Y/Y/Y/4GY/Y/4GYTY/4GYTYTY/Y/Y/4GY/Y/4GY/YT4GYTYTY/Y/YTYTY/Y/YTYTYTY9Y9Y94DY94EY9Y*Y9Y9Y9Y*4DY*4EYGYGYG4EX/X/Y9X/Y94DY9Y94DY9Y9Y9Y9X/Y9Y9X/X/4CX/Y9X#4C4DVWYGVWVWVWVW4CVWVWVW4C4D4DVWX#X#VWVW4D4EX/VW4EVWVWVWX#X#VWVW4DVW4DWSVSVSWSWSVSVSVSVS4CVS4CWS4DWSWSWSVSWS4CWSVSWSVSWSVS4CWSWSWSWYWS4BWSWSWSWSVSVSWSWSVS4AVS4AVS4BWSWS4BWSVNVN4B4CWPVNVNVNVN4BVN4C4C4DWYWYVNVNVN4D4DWYWYWYVNVNW#W#VNVNW#W#W#W#W#4BW#W#4B4CW#W#WY4CW#4CW#W#VNVN4C4DVNWYVNWY4CWYWYWY4CWYWYWYWYWYWY4CWYWY4CWY4C4DW,W,4D4EW,W,WYWY4E4FWY4FW,W,4F4GW,W,4G4HW,W,WYW,W,W,WYWYWYW,WY4FW,W,4FW,W,W,WYW,W,W,WYWYW,WY4D4EWYWYW,4E4F4GW,WY4G4HWYWY4HWY4HWYWYWYWYWY4H4IW,W,W,4IW,W,4I4JW,W,W#W#WYWY4I4JW#4JW#W#4JW#W#W#4JWY4KW#4KW#4LW#4L4M4N4OW,W,WSWSWSW,WSW,4M4NWSWSW,W,W,4NW#4NWYWYWY4NWYWYW#4N4O4PWYWY4PWYWY4P4QW#W#W#W#4Q4Q4RWYWYW#W#4R4SW#W#4S4TWYWYWY4TWYWY4TWY4TWYW#W#4T4U4V4W4W4XW#W#4X4YW#4ZWY4Z5#W#5#W#W#W#W#5#W#W#5#W#W#W#W#5#W#W#5#W#W#W#WUWU5#5$WUWUWU5$WUWM5$WMWU5$WMWMWU5$WUWMWUWU5$WMWMWMWT5$WM5$WTWTWM5$5%5&WMWMWTWTWMWT5%5&WUX+WU5&WU5&WMWMWUWU5&WMWUWUWUX+WMWT5%WTWM5%WTWTWM5%5&WTU>UYU>UYUYUY5%UYU>5%U>U>5%UYUYUY5%5&V:V:5&V:V:V:U>U>V:5&U>U>5&5'U>5'V:UY5'UYUYUY5'UYU/U/5'5(5)5*UYTTUYTT5)5*U/U/5*5+U/U/5+5,UU5-TTTT5-TT5-TTUUUU5-TLTTTLUPUPTLUPTLTLU:U:U:UPU:U:TL5*UPUPTLUPUPUPTLUP5)UPTLUPTLTLUPUP5(UPTLTLTL5(TL5(TLTL5(YBY>YBYBYB5(YBYBS:5(S:5(S:S:S:S:S0S:5(S0S05(S0S:S0S:S:S0S05'S05'S0S:S0Y9Y9Y*Y*Y9Y9Y*Y*Y*Y9Y*Y*Y9Y9Y9Y*W-W-5#5$WF5$WFWFW-W-WFWFY9Y95#W(Y95#W(W(Y9Y9W(Y94ZW(W(W(W-4ZWFWF4Z5#VZVZ5#5$VZVZ5$5%VZW(VZVZVZ5%VZVZ5%W(VZ5%VZW6W6W6W6W/5$5%W/W/W6W6W6VOW6W/5$W/W6W/W6W6VZW(VZW(VZVZ4Z5#W65#W6W6W6W(VOVOW(W(VO4ZVO4ZVOVO4Z5#VOVO5#W65$W6W.5$S9W6W6W/5$W/5$VO5%VOY9Y9Y9W(Y9Y9W(5$W(W(W(5$W(5$VUVUY9Y95$Y9Y95$VUVUW(VUW(VUVU5#VUVU5#VUVUVU5#X#5$X#X#X#VUX#VUX#VUX#VUVU4Z5#VUVUVU5#VU5#VUVUVUX#5#X#5#X#VUX#VUVUVU5#5#5$VUVU5$5%VU5&VUVU5&VUX#X#5&X#VUX#VU5&VSVSX#5&VSVS5&X#VSVSX#5&VSVS5&VSX#5&X#X#5&VSVSVSWSWSW7WSW75%W7W75%W7W7W7W,W,5%W,W75%W7W75%W,5&W7W7W75&W75&W95'W95'W95(W9W7W9W7W9W75'W7W75'W9W7W9W7W7W75'W7W7W75'W75'5(5)5)W95*W9W9W<W95*W95*W9W9W9W<5*W<W9W<W9W<W9W<W9W95(W<W9W<W95(W95)W<W<5)W<W9W95)5*5*W<W9W<TLTL5*5+TMTMULTMULUL5*UL5*ULTMUL5*TL5+TL5+TL5,5-TLTLUETLUI5,UIUI5,TLUE5-TLTL5-TLUE5-UE5.TLTL5.UETL5.UPUPS9S9S9WQ5-WQWQWQVU5-W@VU5-X#VUVUW@5-WQWQWQWQWQVVWQVVWQVVW+WEW+WEW+WEW+5*W+5*W+5+5+WE5,WEWEWE5,W+5,W+W+W+W+W+W+WEX#W9X#W9W9W95*W95*W9X#X#W9W9W9W<W9W9W9W<W<W<W<5(W<5(W<W:W<W:W<5(W:W:5(W:WUWUW:5(5(5)W<W<W<W<W)W<W<W<W<W)W)W)W<W)W<W<W)W<W<W<W)W)W<W)W)W)W)W)W<W<W<4ZW<W<4ZW)W<W)W)W)W)4Z4ZW<5#W<W)5#W)W)5#W<5$W<WUWU5$5%WUWU5%5&WUWU5&5'WUWU5'WUWUWU5'WX5'WUWXWUT>T>T>5'5'5(UIUIUHTHUHTHUHTHUHTH5&THTATAV<V<V5V5T+T+T+5%T+T+5%UCUCU?U?U?5$V1V1V1SASZ5$SZSZSZS=S=WQWQWQVMX-X-4ZX-X*4ZVX5#X*5#5$VXVX5$VX5%X*X*5%X*VX5%VXVXWU5%WUWU5%5&5'5(5(W1W1W1W1W1WUWUW1W1WUWUUIUIUIU*T:T:TITITD5$TD5%S4S45%S4S=S4S4S4S45$S4S4T#T#S.S.T#T#S.S.S-S-S-S.S@4YS@S@4YSX4ZSXS@4ZS@S@4Z5#S@S@S?S?S?SUTDTI4ZTIS.SMS.SMS.SMS.SMS.SMS.S.4WSMS.4XSMSM4XSM4XT$SMT$SM4XSMSM4XT$T$T$T$4XT$4YT$4YT$4Z4Z5#SJSJS3S35#5$SO5$SOSGSGSG5$SGSO5$SOSOSG5$SGSWSGSGSGSW5#SWSWSWW>W>5#5$W>W>5$5%5%WVWVWVWVWV5%5&W$5&W?W?5&U#5'U#SJS75'S7SNSNSJSJSJSJSNSJSJSJSJSNS75$S75%5%5&SJSJS7SJSJSJSOSG5%5&5&SGSOSGSGSGSISGSOSO5%SISO5%SOSISOSI5%SI5%SISOSOSISISIS8SO5$SOS8SGSGSG5$SIS>SIS>5#5$S8S8S85$S8S85$S>S>S>SWSWS>5$SWSW5$SWS>S>5$SWWLWCWCWCV$5#V$TPT=V(V(V(V(V(4ZV(T=V(T=4ZV(U@U@U@V(4YT=T=4YT=T=T=4YU@T=T=U#V(V(V(V(V(U@U@V(V(U@U@4VSOSPSPSOSPSPSPSP4USPSPS>S>SP4U4US6SPSPS6S64US64US6SRS6S6S6SR4USR4USRSR4US64V4WU=V,V,V,4VT1T1T1U<4VTGTGTGTG4VTGTPTP4VTPTGTGTG4V4VSPSDSPS6S6S64VSDSDSD4V4VSESESET1T1T5T1T0T;T0T0T/4TT/T/4TT0T/T0T0T0T04TT0T;T04TT04TT0T04TT;4UT;4UTGT;TGT;T;T;4UV.V.4UV.4UV.T0T0T04UT0V.T0T04U4VT;T;4V4WT04WV.V.SCSCSCSESCSCSC4VSE4VSSSS4VSSSSSSSESE4VSS4VSSSSSSX;4VXDXD4VXDXDXDT3T3T5T3T54UT5T5T3T34UT5T3T3T54U4U4VT5T5T3T34VT5T0T0T7T0T0T04U4VT04VT0T.4V4WT.4XT0T0T.T.4WT.T.T.T0T04WV.4WUMUMUMUMV.UM4WV.V.4WV.T0T0T04W4WUMT0UMT04WT0T0T04WT04XT0T04XT0T0T0T.4XUMUM4XUMV.V.V.4XV.V.4XV.4XUMUMUMUMUMT.4XSESSSE4XXDXD4X4YXB4YXBXBXDXD4Y4ZXDXD4ZXBXB4ZXBXB4ZT.T5T54Z5#T4T4T/T/T4T4T/4ZT4T44ZT/T4T4T/4ZT4T4YUY7YU4ZY7Y7YUYUY7Y74YY7YU4YYUYU4YY7YUYUYUYUYUY7YU4XY7Y7X.X.X.4XX.X.4X4YX&4YX&X&4YX&X&X&4Y4ZX&X&Y4Y44Z5#5#5$5%Y@5%5&Y@Y@Y@Y@5&5'5'Y4Y4Y4Y@Y@5'5(Y,Y,5(Y,Y'Y'Y,Y,5'Y,5(Y,5(Y,5)Y,YHYH5)5*YHYH5*YHY3Y3Y,Y,Y35)Y,Y,5)Y,Y,Y,YUYUY3YUY3YUY35(Y,Y,Y,Z&Y,Z&Y,Z&5&Z&Z&Z&Y,Z&Y,5&Y,5&Y,Z&YLYLZ$Z$YLYLZ$5%YV5%YLYLYVYV5%YV5%YLYLYL5%5&5'YG5'5(YXYNYNX.X.X.YN5'YNX.YNYNYN5'YNYN5'5(YNYN5(YNYNYN5(5)5)X.5*X.X.X.YNYNX.X.5)X.YNYN5)X.5)5*YGYGYGYGYG5*YG5*YGX.YGYGYG5*5*X.X.X.YG5*X.X.YGYGX.YGYGYGX.5)X.X.WO5)X.X.X.X&5(5)X&X&5)X&X&X&WGWGW=5)5)WGW=W=W35)W3W3W=W=W=W3V=V=V=5(V=V=5(V=V=V=V=5(V=V=5(5)V=V=V=5)V=V=5)V=5)TLUT5*5*5+V?TL5+TLTLTL5+UG5,5-5-V9V;5.5.V;V;V;5.5/V;V;UGUG5/UG5/50TLTLTLUGTL50UGUG50TU50TLTLTL5051TUTUUKUKUK51UKUK51UKUPUKUPUKUKUK50UKY.Y.YI50YI50YIYIY.Y'Y.50Y'Y'Y.Y.Y.Y.5/505051YIYI51YIYIYIY.Y.5152Y.Y.52Y.5253YI54Y.Y.Y.545455YIYI55Y.56Y.56Y.YIYIY'Y'56Y'Y'Y'56575758Y.Y.Y'Y'5859Y'Y.595:Y'Y'Y.Y'Y'Y'Y'Y.Y.Y'Y.Y.57Y.Y.Y.Y.Y'Y.57Y.57Y.Y.Y'Y'57Y.Y'57Y.Y.57Y'5859Y'Y'Y,Y,Y'58Y'Y'Y,Y,Y'Y,Y'57Y'Y'Y'57Y,Y,5758Y,Y,Y'Y'Y,Y,Y,Y,57Y,Y'Y,Y'Y'Y,56Y'57Y'Y'Y'57Y'5758Y,Y'Y,Y,Y,Y,Y,57Y,57Y,Y,Y,Y'57Y'Y'5758Y,Y,58Y,Y,Y,58Y.Y.Y.Y'58Y.59Y'Y'Y'59Y'59Y'5:Y'5:Y'Y'Y,Y,5:Y,Y'Y'Y'5:Y,Y,5:Y,5:5;Y,Y,5;Y,5<Y,5<Y'5=Y'Y.5=5>5?5?Y'Y'Y'5?Y'5@5A5A5BY'5C5C5DY.5EY'Y'5EY'5E5FY'Y,Y,Y,Y.Y,Y.Y.YIYIY.Y.YI5DY.Y.5DY.Y.5DYIYIYIY.YIY.Y.YAY.5CYAYA5CYAY.Y.Y.5CYI5CYIYI5C5DYIYI5DYAYAYAYAYA5D5EYAYAYA5EYAYA5EYIYAYA5E5F5FY,YAY,YI5FYI5GY,Y,5GY,5GY,YIYI5G5H5IYI5I5JYIYIY,Y,5J5KZ)Z)YIYIYI5JZ)Z)Z)5JYIYI5J5K5LZ)5L5MYIYI5MZ)Z)5NZ)YI5N5O5O5PYIYIZ)Z)YIYIZ)Z)YIYIYIYIYMYMYIYMYI5MZ)Z)YMYMYMYM5LYMYIYI5L5MYIYMYIYI5LYMYMYMY,5LYIYIY,Y,5LY,YI5L5M5NYIYI5NY,5NY,Y,Y,5NY,Y,Y,Y,Z&5NZ&5NZ&5OZ&Y,Z&5OZ&5OZ&Y,Y,Y,5OY,5PY,Y,Y,Z&5OZ&5PZ&5PYKYKYKY,Y,Y,5PY,Y,YKYKY,Y,YKYKY,YKYKYKY,Y,5MY,YKY,YKYKY,5L5MZ&Y,5MY,5N5NZ&Z&Z&YIYIYI5NYI5N5OY,YI5OYI5P5P5Q5RY,YIYIYI5RYI5RYIYIYIY,5RY,5RY,YIY,5RY,YI5SY,Y,5SY,Y,Y,Y,5S5SZ)Z)Z)5S5TZ)Z)5T5UZ)Z)Z)5UZ)Z)Y,Y,Y,5UY,Y,5UY,5U5VZ)Z)Z)Y,Z)Z)5UZ)Z)Z)Y,Y,5UY,Y,Y,5UY,Z)Y,Z)Z)Y,Z)Z)Z)5S5TZ)Z)Y,Y,Z)Y,Y,Y,Z)5SY,Y,Z#Z#5RZ#5SZ#Z)Z#Z)5S5SZ#5TYZZ#Z#Z#YMZ)Z)Z)YMZ)Z)YMYMZ)Z)YMZ)Z)Z)Z)YMZ)Z)Z)5O5OZ)5P5QZ)YM5QYMZ)Z)Z)5Q5QYM5RYMYM5RYMYMZ)5RYMYMZ)Z)Z)5RZ)YM5RYMY,Y,Y,5R5RZ#Z#Z#Y,Y,Z#Z#5QZ#Z#Z#Y,Z#Y,5QY,5QY,Z#Y,Y,Y,5QY,Y,5QZ#Y,Y,Y,Z#Y?Z#Y?Y?YMYMYMY?5NY?5O5PY?Y?5PY?Z#Z#Y?Y?YMYMYM5OY?Y?Z'5O5OY?Y?Y?5O5PYMYMY?Y?5P5QYMYM5QYM5QY?5R5SYKYKZ#YKYKYKYKZ#YKYKZ#5QYKYK5QYKZ&Z&YKYKZ&YKYKYKZ&Z&YK5OZ&Z&5O5PZ&Z&5PZ&YK5PYKYK5PZ&YK5QYK5QYKYKZ&Z&5QZ&YKYKYKY-YKYKYK5P5PY-Y-Y-5PY-Y-Y-YKY-Y-Y-YK5OZ#Z#Z#Z#Z#5OZ#Z#5OY0Z#Y0Z#Z#Y0Y0Z#Z#Z#Z#5MZ#Z#Z#5MZ#Z#5MY0Y05MYKZ#YKZ#5MZ#5N5N5OZ#5PZ#5PZ#5QZ#5QZ#Y05QY-Y0Y0Y-Y-Y0Y0Y-Y-Y05PY05PY0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y05NY-Y-5N5OY-Y-5O5PY-5PY0Y05PY-Y0Y05P5QY0Y0Z#5QY?Y?Z#5Q5R5SY0Y05SY05SY0Y?Y?Y?Y?Y?5SY0Y05SY0Z'Z'5S5TZ'Z'5TZ'5TZ'YP5UY0Y05UY0Y-Y-5U5VY05VY0Y0Y-Y0Y0Y05UY0Y0Y0Y-Y-Y-5UY-YYYYYYY-YY5TYYY-Y-Y-5TYYYY5T5U5U5VY0Y0YYYYY0YYY0Y/Y/Y/Y0Y/Y/Y/Y0Y0Y05SY05SY+Y+Y0Y05SY0Y0Y0Y05SY+Y/Y+Y+Y/Y/5R5SY05SY0Y/Y+Y+Y+Y/5RYEZ&5SY<5SY<Y<5SY<Y<Y<Y0Y/Y/Y/YYYYY/5RYYYY5RY/Y<Y<Y2Y2Y<Y<5QY<5QY2Y/Y2Y<Y<Y2Y2Y25PY2Y2Y2Y<Y2Y2Y<Y<Y2Y<5NY<5OY<Y<Y<Y25OY25OY25PY25PY2Y<Y2Y2Y<Y<5OY<5PY<Y<5PY<Y/5PY<Y/Y/5PY/Y/Y/Y<5PY/Y/YGYGY<5P5PYGY<YGYGYGY<Y<YGYGY<Y<Y<Y<Z(Z(Y<5MZ(Z(5MZ(Z(Z(5M5NZ(Z(Y<Y<Z(Z(YGYG5M5NYGYGZ%Z%YQZ%Z%Z%YGYGY<YGY<5K5L5MYGYG5MYGY<YGYGYGY<YG5LYGYGYGYG5LYQYQZ%Z%Z%Z%5KY)X.X.WJWJX.X.VRVRVTVTVQVQVTVTVQVQVT5GVQVQ5GVQVQVQVNX(VN5G5G5HX(X(5HW3X'X'W35H5I5JW%W%WUWUW%W%WU5IW%W%5IW%WUW%WUWUW%W%WUWUWU5GWUWU5G5HWUWUU>U>U>5H5H5IU>U>TUTU5I5JTUTU5J5KTL5KTL5LTUTU5L5MTUTU5M5NTUTU5N5OTU5OTU5PTUTU5PV;TUV;V;V;TUTUTU5OTUTU5O5PTUTU5P5QTU5QTU5RTUTU5RUPTLU55RU5TLU5U5U5TLU4TLU4TL5PTLTLU0UP5PUP5PUPU0UPU9UPU95P5PUPU9U95PUP5QUPTUTUTU5QTU5Q5RV;5RV;5SV;5SV;V;V;5SUPV;V;5SUPV;5TV;UPUPUPV;V;V;5SV;UP5SUPUP5SUPUP5S5TY>Y>YB5T5UY>Y>Y>Y>5U5UYBYBYBYBYBYB5UYB5UYBYB5UYIYBYBY>YB5UYBY(5UY(Y(YIYIY(Y(YI5T5U5VYIYI5VYIYB5VYBYBYIYI5V5WYIYIYBYBYIYI5V5WYIYI5WYIYIYMYIYMYMYM5VYMYIYI5V5WYIYM5WYM5WYMYIYMYMYMYM5WYM5WYMYMYMYM5W5X5X5YYMYM5Y5ZZ'6#6#YPZ'6$6$YPZ'Z'6$YJZ'6%YPYPYP6%YPYPYPY+YPY+YPY+YW6#YW6$6$YSYSYSY+Y+YSYSY/Y/6#Y/Y+6#Y+Y+6#6$Y+Y+YTYT6$Y/YTY/Y/Y/YTY/YTYTY/Y/5Z6#Y/Y/6#6$6$YTYTYT6$YTYTYTY/Y/Y/6$Y/Y/YT6$6$YTYTYT6$Y96%Y9Y*6%Y*6&Y*Y*Y*Y9Y*Y9Y*Y9YGWZYGWZX/X/Y9Y9X/X/Y9Y9X/X/Y9X/Y9Y95X5YX#X#5YX#VWVW5YVWVWVWX#X#5XVWX#X#X#5XX#X#VWVWX#X#VWVW5W5XX/X/5XVWVWVW5X5YWSWSVSVSX#VSX#X#5WWSVSVSVSVSVSWS5VWS5WWSVSWSVSVSWSWS5VW,5VWSVS5WWSWS5WWSVS5WVSVS5WWSVSVSWP5WWPWPVNVNWP5WVNVNVN5WWY5WWYWY5W5X5YWY5Y5ZWYWYVNWYWYWY5Y5ZWYWYW#W#W#5ZW#W#5Z6#6#WYWYWY6#W#WYW#VNVN6#6$W#6$W#W#VNVNW#W#6#6$WYWYVNVNWYWYWYWYWY6#WYWY6#W,W,6#W,W,WYWYW,W,WYWYW,W,WYWYW,W,WY5XWY5Y5YW,W,W,WYWYWY5YWYWY5YWYWYWYW,5YWY5Y5Z6#6#W,6$W,WYWYWY6$WYWYW,W,W#W#WY6#W#W#6#WYW,W,W,6#W,6#W,WY6#6$WYWYW,WYW,W,WYWY6#6$WYWY6$WY6$WYWYWYWYWYWY6$WYWYWY6$W,W,W,W#W,W,W#W#5Z6#W#W#W,6#W,W,6#6$6%W#W#W,W#6%W,W,6%6&WYWY6&W,6&W#W#W#6&W#6'W#6'W#WYW#WYWYW#6'W#W#6'W#W#6'W#W#6'W#W#W#WS6'WSWS6'W,WSWSW,6'W7W7W#6'W#WY6'W#WYW#W#W#6'6(WY6(WYWY6(6)WYWYWYWY6)WYWYWYWYW#WYWY6(6)W#W#6)6*WY6*WYWYW#W#6*W#W#6*WYWY6*W#WYWYW#W#6*6+W#W#WYWYWYWYWYW#WYWYW#WYWYWYW#6(WYWYWY6(WYWY6(6)WY6)6*6+6+W#W#W#6+6,W#W#6,W#W#W#6,WYW#6-6-WY6.W#W#6.W#W#WYWYW#W#6-W#W#W#6-6.W#W#W#6.W#W#6.6/W#W#VNVN6/60VNW#60W#WU60WUWM60WUWMWMWU6061WM61WMWMWM61WM62WMWUWMWUWMWU61WMWM61WMWT6262WT63WTWMWMWM63WM63WTWT63WTWTWTWM63646565WTWTWTWUX+WUX+WUWUWU6464WMWMWMWM64WMWMWMWM64WMWMWM64WTWT64WTWT64UY65UYU>65U>6666UYUYUYU>66V:V:6667V:V:6768V:V:U>68V:V:6869V:V:696:V:V:U>U>6:6;U>UY6;UY6;UY6<6=TTTTUYUYTTTT6<TTUY6<TTTT6<TTTTTTUYUYU/6<UYUY6<6=UYUYU/6=UYUY6=U/TTTT6=6>TTTT6>TT6>6?UUUU6?TTUU6@UU6@UUUUTTTLTTTLTLUPTLUPTLUPTLUPUPUPUP6=TLTLTL6=TLUPTLUPY>6<Y>6=YBYBY5Y5S:S:6<6=S:S:S:6=S:6=S:S:S0S06=S0S:S0S:S:S:S0S:S0W-W-6;6<W-W-6<W-6<W-WFWF6<6=W(W(Y9Y9Y96=Y9Y96=Y96=W-WF6>W(W(VZVZ6=W(VZVZ6=W(VZVZW(W(VZVZVZW(VZ6<W(W(6<W(VZ6<6=W(VZW(W(W(VZW66<W6W6W6W/W/W6W6W/W66:W6W6W6VZVZVZW6VZW(W6W(6869W66:W(W(6:6;VO6;VOVOW(W(VOVOW(W(VOW(69W6W.W.69W6W6W669W6W.W6696:W/W/W6VO6:VO6:VOVOVOY9Y9W(6:W(W(W(6:W(6:VUVUY9Y96:W(Y9Y96:VUVU6:VUVU6:Y9VUVUX#X#VUX#VUX#VUX#VU68VUX#68X#X#X#VUVUVU68VU68VUVU68X#X#X#68X#VUX#VU68VU69X#X#69X#X#X#696:VU6:VUVUX#X#6:X#6:6;VUVUVUVUW@6;6;X#VU6<X#X#6<X#VSVSX#X#VSVSX#X#VS6:X#6;VSVS6;VSX#6;X#X#6;VSVSVS6;6<W76=WSWS6=W7W,W,W76=6=6>W76?W,W,6?W,6?6@W7W76@W76AW76AW96B6CW76CW7W7W7W7W76CW7W9W9W9W76BW7W76B6CW76DW7W7W7W96CW7W9W96CW9W9W9W7W7W76CW9W96CW9W9W96CW9W7W9W7W9W9W<W9W9W96AW9W9W9W96A6B6BW<W9W<W96BW9W9W9W96B6C6CW<W<W<W9W9W96CW9W96CW<W96CW9W<UUTLUUUUTLTL6BTLTMUL6BULULUL6BULTLTL6BTL6BTLUEUETL6BUE6CUE6CUEUE6CTL6DTLUIULUIUITLTLUE6C6CTLUEUETLTLUEUETLTL6B6CUE6CUEUE6CTLUEUE6CTL6DUPS9WQS9WQVU6CVUVU6CX#VUVUW@WQWQWQW+WEW+W+W+W+W+6AW+6AW+W+W+WE6AWE6A6BW+W+6B6CW+W+WE6CW+W+W9W9X#6CX#6CX#X#W<W<W<6CW<6CW<W:W:W:W<W<W:W:6BW:W:6BW:W:W:W:W<W:W:W:W:W<W)W)W<W<W)W)W<W<W)W)W)6>W)6>W)6?W)W<6?W<W)6?W)W)6?W<W<W<W)W<W)W<WUWUWUX-6=X-X-X-WUWUWU6=WUWU6=6>WUWU6>W1WUWUW1W1WUWUW1WUWU6<6=WXWUWUWXWXT>T>T>6<UI6<UIUI6<UIUIUI6<6=TATAT+6=UC6>UCUC6>UCU?UCU?V1SASZ6=SZX-6=6>VXX*X*6>6?VX6?VXX*X*X*6?VX6?6@6AVXX*X*VX6AVX6AVXVX6AX*6BX*VXVXVX6BWUWUWU6BWU6BWU6CWUWUWAWUWU6BWUWU6BWUWUWU6B6CW1W1TD6CTD6DTDTITDTIS4S4S=S=S46BS4S4SXSXS@6BSXSX6BSXS@SXS@SX6ASXS@S@S@6AS@S@6ASX6BSXTDTDTD6BS.SMS.6B6B6CS.S.6CSM6DSM6DT$SMSMSMSMSM6DSMSM6DT$T$SKT$6D6DSK6ESK6ESK6FSKSKSK6FSKS3S3S36FS3S36FSJS3S36F6G6GSO6HSO6HSGSGSGSGSGSO6H6HSG6I6JSGSGSG6JSGSWSWSWW>W>W>6IW>6I6J6K6KW>6L6MW>W>6MWVW>WV6MWVWVWVWVW4WVW4W4W46KW$6LW$U#U#T-U#T-6KT-T-SJ6KSJ6LS7S7S76LS7SJSJSJS7S76KSJS7S7SJSJSOSOSO6J6JSGSGSGSO6JSOSOSOSISISISO6ISOSISOSISO6ISO6ISOSI6IS86JS86JSISISIS8SIS8S8SI6ISIS8S86IS8S>6I6JS>S>S>SWS>6JSWSW6JSWS>6JS>S>6JTP6KTPV(V(V(6KT=V(T=6KV(V(V(6K6K6LT=T=6LU@T=T=6LSO6M6NSP6NSPSP6N6OSP6PSP6PSPSPS6S66PS6SRS6S6S6S6S6S66OS66O6PSRS6S6S66P6PSRSRSRSRS6SRSR6O6PT1T1U<6PTGTGT;TG6PTGTPTP6PV.TGV.TGV.SPSP6O6PS66PS6S6SRSR6PSRSE6PSESET/6PT/T/6PT06QT0T06QT06R6RT;6S6TT06TT0T0T;T;6T6UT06UT0T;6UTGT;6VT;6VT;T;V.V.6VV.6V6W6XT0T06X6YV.T0T0T06Y6YV.6ZV.T;6ZT0T06ZT;7#T;T07#V.V.SCSESCSESESESS6Z6ZSESSSSSESESE6Z6ZSSSSSSX;6ZXDXD6ZXDXDXDT3T36Z7#T57#T5T5T5T3T5T5T56ZT57#T3T3T37#7#T5T5T5T0T0T07#T0T07#T0T07#T.T.7#T0T.7$T0T07$T0T.T0T.7$T0T0T0T.T0T07#7$7$7%UMUMUM7%UMUM7%V.7&7'7'UM7(UMT07(T0UMT0UMT07(T0UM7(UM7(UMT0UMT0T07(T07(T.T.T.7(UM7)UMV.7)UMUMV.V.7)V.UM7)UMUMUMUMT.UMSE7(SE7)XDXDXB7)7)XD7*7+7+7,XBXBXDXDXB7,XDXD7,XDXDXD7,XDXB7,XBXB7,7-T5T5T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T47(YUYUYUY7Y77(Y7Y7Y7YU7(Y7Y77(Y7YUY7YUY7X.X.X.X&7&7'X&X&X.X.X&X&7&7'X&X&7'X&X&X&X.X.7'7(X.X.X.7(Y4Y4Y@7(7(Y@7)Y@Y4Y4Y47)Y47)Y@Y@7)Y@Y@Y@Y4Y47)Y@Y4Y4Y@Y@Y@Y@Y4Y4Y@Y@7'Y@7'7(Y4Y4Y47(Y4Y47(Y4Y4Y4Y'Y,Y'Y'Y'Y'Y'7'Y'7'Y'Y,Y'Y,Y'Y,Y'Y,Y,Y,YH7%YUYU7%YUYUYUYHYHYUYHY3Y37$Y,Y,7$Y,Y,Y3YUY3Y3Y,Y,7#Z&Y,7#7$Z&7$Z&Y,7%7%YLZ$Z$YVYVYLYLYLYV7$YVYL7$YLYLYV7$YVYV7$YG7%YGYV7%YVYG7%7&YXYXYNYN7&YNYN7&7'X.YN7'YNYG7'7(YGYG7(7)YGYG7)YNYNYNX.7)X.X.YNYNX.X.YNYNYN7(7(X.X.X.YNX.7(X.YNX.X.X.X.YGYGYGYGX.YGYGYG7%YG7&YG7&YGX.YGYGYGX.YG7%X.X.YGYGX.7%X.YGX.YGX.X.WOX.X.X.X.7#X.X.7#X&X.X&X&X&WGW=W=W=WGWG6Y6ZW=W=W3W=V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>6RTLUT6S6STLTLTLV?V?V?6SV?V?6STLV?V?TLTLUGUGTL6RTL6RTLTLUGUGTLUGV;V9V;V9V96PV;V;V;V;6PV;V9V96P6QV9V9V9V;TL6P6QUG6QUGTLTLUGUGTLTLUGUGTL6PUGUGUG6P6P6QTLTLV;6QTUTUV;V;TUTUUKUK6P6QUKUK6QUKUKUKUPUKY.Y.6PY.YI6PYIYI6PY'Y.Y'Y.Y.Y.6PY.Y.6PYIY.Y.YIYIY.Y.6O6P6PYIYIYI6P6QYIYI6Q6RYIYIY.Y.6RY.YI6RYIYIY.Y.YIY.6QY.YIY.Y.Y.YIYIYI6PYIYI6P6QYIYIY.Y.6QY.YI6QYI6RYIY.YIY.Y.6QY.6RY'Y'Y.Y.Y'6QY.Y.Y'Y'Y'6QY'6QY.Y.Y.6Q6RY.6R6SY.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.6PY'Y.Y'Y'Y'6PY'6PY.Y.Y.Y'Y'6PY.Y'Y'6PY'Y.6PY.6QY'Y'6QY'Y'Y'Y'6QY'Y,Y'Y'Y,Y'Y,6PY'Y'6P6QY'Y'6QY'Y,Y,Y'6QY,Y,Y'Y,Y'6PY'Y'Y'Y'Y'Y,Y'Y'Y,6OY'6OY,Y,Y,Y,6OY,6OY,6PY,Y'Y,Y'Y'Y'6OY,Y,6OY,Y,Y,Y,Y'Y,Y,Y.Y'Y.Y.Y'Y'6MY'Y.6M6NY'Y'Y'Y'Y,Y'Y,Y'6MY'Y'6MY,Y'Y,Y'6M6MY,6NY,Y'Y'Y'6N6NY,Y,Y,Y'Y'Y'6N6NY,Y,Y,Y,Y,6NY'6N6OY,Y,Y.Y.Y.Y'Y.Y'6NY'Y.6NY.6OY.Y.6O6P6P6QY'Y'6QY'Y'Y'Y'Y'6Q6R6RY,Y'6SY,Y,6SY,Y'6SY'6TY,Y,6TY,Y'6TY'6U6UY'Y.6VY'Y'6VY'6VY'6W6X6XY'Y.Y.Y'6XY'Y,6X6YY,Y,YI6YYIYIY.Y.6YY.Y.6YYIYIY.YAY.Y.YAYA6XYAY.Y.Y.6XY.Y.YIYI6W6XYIYI6X6YYI6Z6Z7#Y.7$7$7%YIYI7%7&YIYIYAYA7&7'YAYA7'YIYAYAYA7'YAY,Y,Y,YA7&YAY,Y,Y,7&Y,YI7&YIYIY,Y,7&Y,YI7&YI7'Y,7'Y,7(YI7(YIYIYI7(YIYIYI7(YIYI7(Y,YIYI7(Y,7)7*7*7+YIYIYIYI7+7,7,7-YIYIYIZ)YIYIZ)Z)7,Z)YI7,YIZ)Z)Z)Z)7,Z)YIYIYI7+Z)7,Z)Z)Z)Z)7,Z)7,YIYI7,YIYIYIZ)Z)YIYI7+YIYIYIYIYMYIYIYMYM7*YMYIYIYM7*YIYIYMYMYMYIYMYMY,Y,Y,7(7(Y,YIYIYI7(YIY,YIYIYI7(7(Y,Y,Y,YIYI7(YIYIY,YIY,7'Y,Y,Y,Y,Z&7'Z&7'Z&Y,Z&Y,7'Y,Y,Y,7'Y,7(Y,Z&Y,Y,7'Z&7(Z&7(Z&Z&Z&Z&Z&7(Z&7(Z&Y,Y,Y,YKYKYKY,Y,Y,7'Y,Y,YK7'Y,7'Y,Z&Y,Y,Y,7'Y,Y,Y,7'7'Z&7(7)7)Z&7*Z&YIYIYI7*YIYIYIY,YIYI7)Y,YI7)7*Y,7*Y,7+Y,YI7+YIY,7+Y,Y,Y,YIY,Y,Y,7*Y,7+Y,7+Y,YIYIYIYIYI7+YI7+YIY,7+Y,YI7,7,Y,YI7-Y,Y,7-7.Y,Y,Y,7.YI7.Z)Z)Z)7.Z)7/Y,Y,7/70Y,Y,Z)Z)7/Z)Z)Z)Y,7/Z)Z)Y,7/Z)Z)7/Y,Z)Z)Y,Y,Z)Z)7.7/Z)Z)Z)Z)Y,Y,Z)Z)7.Z)Y,Y,Z)Z)Y,Y,Z)7-Y,Y,7-Z)7-Z#Z)7.Z)7.Z)7/Z)Z)7/Z#Z#Z#7/Z#7/YZYZYZ7/YZ70YZ70YMZ)Z)Z)Z)70Z)YMZ)7071Z)Z)71Z)Z)YM71YMZ)Z)Z)YMZ)Z)70YM70YMYMYMYMZ)YM70Z)YM70YMZ)Z)YMYMZ)Z)7/70Y,7071Z#Y,71Z#Z#7172Z#Z#Y,72Y,7373Z#Z#Z#7374Y,Z#74Z#Z#Z#YMY?74Y?74Y?YMYMY?74YMYM7475YM76YM76YM77Y?Y?Z'77YM7778Y?78Y?YMYMY?Y?YM78YM78YMYM78Y?YM79YMYM797:7:Y?YM7;YMYMYM7;7;Y?Y?Y?YKYKZ#Z#YKYKZ#YKYKZ&YKYKZ&Z&78Z&Z&Z&7879Z&Z&797:7:7;YKYK7;YKYKYK7;Z&7<Z&7<Z&YK7=Z&Z&YK7=YKYKYK7=YK7=Y-Y-Y-7=Y-Y-YKYKZ#Z#Z#Z#Z#7<7<Y07=Y07=7>Y0Y0Z#Z#7>Z#Z#7>7?Y0YKYKZ#YKY-Y-7>Y-Z#Y-Z#Z#7=Y-Z#Z#Y-Y-7=Y-Z#7=Z#Y-Z#Y-Z#Z#Z#Z#Z#7<Z#7<Z#Y0Y-Y-Z#Y07;Y-Y0Y-Y-Y-Y07;Y07;Y0Y07;7<Y0Y07<7=Y0Y07=Y-Y0Y07=Y0Y0Y0Y-Y-7=Y-Y-Y-7=Y-Y-Y-Y-7=Y-7=Y0Y0Z#Z#7=Z#Y?Y?7=Y?7=7>Y?Y?Z#7>Y?Y?Y?Y07>Y07>Y0Y?Y?Y?Y?Z'7>7>Y07?7@Z'Z'Z'7@Z'Z'YP7@Z'Z'YPZ'Z'Z'Z'7?7?Z'YPZ'Y-Y-Y-7?Y-Y-Y-Y07>7?Y0Y0Y07?Y0Y07?7@Y0Y0Y-Y-Y-7@Y-7@YYYYY-7@Y-7AYYYY7A7BYYYY7BYYY-Y-Y0Y07A7BY0Y0Y0Y07B7CY07CY+Y+Y0Y07CY0Y0Y0Y07CY/Y/Y+Y+Y/Y/7BY/Y07BY0Y/YEYEZ&Z&Z&7AZ&YEYE7AY<Y<YEYEY<Y<YYYYYY7@YYYY7@7A7AY<Y2Y27AY2Y/Y2Y<Y<Y2Y2Y<Y<Y2Y<Y27?Y2Y<Y<Y<Y2Y<Y2Y<Y2Y<Y2Y<7=Y<7=Y<Y2Y<7=Y<Y/7>Y/7>Y/Y/7>7?Y<Y/Y<Y<Y/Y/7>Y/Y/Y/Y<Y<Y/Y/YGYG7=7>YGYGY<Y<Y<Y<7=Y<Y<Y<Y<Z(Y<Y<Z(Z(Y<Y<Z(Z(Y<7:Y<Y<7:YGY<Y<7:YG7;YGYGYGY<Y<YGYG7:7;YGYGY<YGY<YG7:YGYGYGYG7:Z%Y)Y)Y)VT79VQVQ797:VQVQVNX(VNX(VNVN797:7:X(X(X(X'W3X'W3W3W3W379W379X'X'79X'X'X'797:WUWUW%W%WUW%797:WUWU7:X,WUWUX,X,WU7:U>TTU>7:U>U>U>TTU>79TTTTTUTUTLTLTUTUTLTLTUTUU0U07677U0U0TLU077U07778TLTL78TUU0U0TUTUU0U07778U0U0TUTUU0U0TUTU7778TUTUV;V;TU77TU7878V;79V;797:V;V;TUTUTU7:TUTU7:7;TUTU7;7<TUTU7<7=TUTU7=7>7>V;7?V;7?V;V;V;TUTUUPUP7>U57?U5U4U4TLU4U0UPU0UPU0UPU0UPUPUPU97<U97<U9U9V;7<V;7=V;7=V;7>TUTUTU7>7>V;7?V;TU7?TU7@TUV;TUV;7?V;TUV;TUV;TUV;V;7>V;7?UPUP7?7@7@UP7AUPV;V;V;UP7@UPUPUPV;UPUPUPYB7?YBY>7?YBY>Y>YBYB7?Y>YB7?Y>Y>Y>YB7?YBY>7?Y>YBYBYBYBYIYB7>YBYBYIYIYBYIY>YBYBYBYIYIY(Y(YIYIYI7;YIYIYBYBYIYB7:YI7:YIYIYIYBYIYBYIYIYIYBYBYIYIYBYBYIYIYBYIYIYI7677YIYI77YIYMYMYI77YI77YI78YIYIYFYIYMYM77YM77YMYIYMYMYMYM77YM77YMYMYMYM77YO77YMYOYMYOYO777878YMYMYM78YPZ'Z'YPYP78YP78YPZ'YPYPYPZ'YPYPYPZ'77Z'YPZ'Z'Z'YJZ'7676YJZ'YJYP76YPY+YWYWYW76YSYSYWYSYW7576YS76Y/Y+7777Y/Y+Y+Y/Y/Y+Y+Y/Y/Y+Y/YT7576Y/76Y/YTYTY/Y/YTYTY/Y/Y/7575YTYTYTY/Y/757676YTYTYTY/Y/76Y/YTY/YTYT75YTYTYTY9Y975Y9Y*Y9Y*Y*Y*Y*Y*74Y*74Y*Y*Y9Y9Y9X#Y973X#X#73X#X#X#VWVWX#73VW7374X#74VWX#VWX#74X#X#7475X#X#X/VWX/X/VWVWVW74VWVW7475VSWSVS75VSVSVS75VS75VSVS75WSWSW,WSWS75WSWSWSVSWSWSWS74757576VSVSWSWSVSWSWPVNWPWP74VNWP75VNVN75WY75WYWYWYVNVN7576VN76WYWY76WYWYWYVNVN7677VN77WYWY7778WYWYVNWYWYWYW#77W#WYWY77WYWY7778WYWYW#WYWYWYW#WYWYWYVNVNW#W#VNVN75VNW#VNW#W#VNVNVN7474WY75WYWY75W,W,75WYW,W,WYWYW,W,WYWYWY74WY74WYWYWYWYW,W,WYWY7374WYWY74W,WYWYW,W,WYWYWY73WYWY7374WYWY747575WYW,W,WY75WY76WYWYW,W,W#W#WY75W#W#75WYW,W,7576W,W,W,7676WYWYWY76WYWYWYW,76W,W,76WYW,W,WYWYW,WYWYWY75WYWYWYWY75WYWYW#W#W,W,W#W#73W#W#W#7374W,W,7475W,W,75W,W,W,W,W,W#W#W#W#W#74W#W,74W,W,W,W,W#WYWY73WYW,W,W,W#WYWYW#W#71W#W#W#7172WYWYW#727374WYWYWYW#W#WYWYWY72WYWYWYWS72WS73W,W,73WSW,W,7374W#WYW#WYWY73WYW#W#W#W#73W#W#WYW#WY72WYWY72WYWYWYWYW#WYWYWYWY7172WYWY72W#72W#W#W#W#W#WYWYW#W#71W#W#W#717272W#WYWYW#W#W#72W#W#727373W#WY747475WYWYWYWYW#WYWYWYWY74WYWYWY74WY7475W#WYWYWY757576W#W#7677W#W#77W#W#W#WYWYWY77WY7778W#78W#W#W#WYWYW#WYWYWYW#W#WYWY767777W#W#W#W#77W#W#WY7778W#WY78WY7979W#7:W#VNVNW#W#VNVNW#W#VNVNW#78W#78W#W#78VNW#W#VNW#W#W#WUWUWU77WUWU77WUWUWUWU77WUWU77WM77WMWMWMWMWM77WMWUWMWMWMWU76WMWMWMWMWT76WT76WTWTWMWMWM767677WTWTWMWMWM77WM7778WT78WTWTWTWMWMWM78WM78WTWT78WTWTWT78WTWTWTWU78WMWMWUWM7879WM79WM7:WMWMWM7:WMWM7:7;WT7;WTWTU>UYU>UYU>7:U>7;U>U>U>7;U>7;U>U>U>UYUYUYU>U>7:7;U>U>7;V:U>U>V:V:U>U>V:V:U>79V:V:U>U>79V:U>U>V:V:U>U>V:V:U>77V:V:77U>V:V:U>77UYUY77U>UYUY7778UYUYV:UYV:78V:UY78U/UYUY7879UYUYUYTTUYUYTTTT77TTTTTTUY77U/U/7778U/U/78U/U/U/U/78U/U/7879U/U/TTTTUUUUTTTTUUUUTTTT77TTUU77UUUUUU77UUUU77TTUU78TTTT78TTUUTTUUUUUPUP77UPTLUP77UP77YBY>YBY>YBY>777778S:79797:S:S:S:7:7;S;S0S07;7<7<S0S:S:W-W-7<7=W-7=7>WFW-W-7>W-WFW-WFWFY9Y9W(7=7=W(W(W(Y9Y9W(7=Y9Y97=Y9W-W-WFW-W-W-WFWFW(W(7;7<W(W(7<7=VZ7=VZW(7=W(W(W(VZVZVZW(VZVZVZW(VZW6VZW6W6W6W6W/W679W6W6W(W(79W(79W(W6W(VO79VOVOW(W(79W(VOW(VOW(W6W6W.78W.W.78W6W.W.W.W6W6W6W/W/W6W/W/W/W6W6W675W6VOW6VO7475W(W(W(VUW(VUW(74W(VU74W(W(W(Y9Y9Y974VU74VUVUY9Y9VUY9X#73X#X#7374X#X#VUVU747575X#VUVU75X#76X#X#X#VUX#VU7576X#X#X#VUX#X#X#7576X#X#X#76X#X#VUVUX#X#VU7575X#VUX#VUX#VUVU7475VUVUVUVUW@W@X#X#74X#X#X#VUX#VU73VU74VSVSX#VSX#73X#X#VSVS73VSX#X#X#7373VSVSVSW773W7W773WSW7WSW773W7W77374W7W77475W77676W,W777W,W,77W,77W,W778W,W,78W,W778W7W778W,W7W,W7W7W,W7W,W7W,W,W7W9W7W9W775W7W7W9W975W975W9W7W7W775W9W97576W7W7W9W9W7W7W9W975W975W9W7W9W7W775W975W9W9W9W7W9W7W974W9W9W9W7W9W7W773W<W<W<W9W9W97373W<W<W<73W<W9W9W9W<W9W9W9W9W972W972W<W<W9W<W<W<W9W9W971W9W9W9W<W970W9W970TLUU71TM7172UL72UL737474TLUE75UE75UEUETLTL75TL75TLUE76UETLUE76TLTL76TL76TLTLTLTLTLUE767677UE78UE78UEUE78TL79TLUE79UEUE797:UEUETLUPTL7:TL7:UPUP7:X#VUVUX#X#7:7;W+W+W+7;W+WEW+W+7:WE7;WEWEWE7;7<WEWE7<7=WEWE7=W+WEW+W+W+WE7<WEW+W9W97<W9X#7<X#W9W<7<W<7=W<W:W<W:7<W:W<W<7<WUW:7=W)W<W)7=W<W<7=W<7=W<W<W<W<W<7=W<W)7=W)7>7>W<W<W<WU7>7?7@WUWUWU7@WUWUWU7@WU7@W1W17@W1W1W1WUWUWUWXWUWXWXWX7>UIUIUIULUL7>7?UL7?7@UITHTHTATATHTHTATHT+T+UCUCUCUCUC7=UCUC7=UCSA7=SASZX-X-X-7=7=VXVXVX7=X*VXVXX*X*7=X*7=X*X*X*X*X*7=X*X*X*X*7=X*X*7=7>X*VXX*VXX*X*VXX*VX7<VXVXX*X*7<X*VX7<VX7=VXX*VXX*WUW1WUW1WUWUWU7;WU7;WU7<WU7<WUWUWAWA7<WAWU7<W1W17<W1W1W17<TI7=TI7=TITDTI7=S4S4S4SX7=S@7>7>SXS@7?S@7?S@S@S@7?S@S@SXSX7?SXS@7?S@S@TD7?TD7@S.SMS.S.S.SMS.S.SMSM7>7?SMSM7?SMS.SMS.SMSM7>SMSMSMSMSM7>7>7?T$T$T$SK7?SKT$7?T$7@T$7@T$7AT$7A7BSKT$SKSKSK7ASKT$SKS3S37A7BS3S3SJSJS3S3S37A7AS3SO7BS3SOS3SO7ASOSOSOSO7A7BSG7BSGSOSOSOSGSOSGSO7ASOSO7ASOSOSOSGSGSWSWW>W>W>WVW>W>W>7?WV7?WVWV7?WVWVWVW>W>7?W>WV7?WVWVW>W>7?7@W>W>WVWVW>WVW>WVW$W$W$W?W$W?W?W?7<U#T-U#SJSJSJ7<SJ7<SJSJS7S77<7=S77=7>SJSOSOSO7>SGSG7>SGSO7>SOSG7>SISISISISI7>SISISISOSISOS8SOS8SOS8SOS8SG7;SG7<SISISIS8S8S8S8S>SISIS>S>SISIS>S>S>78S>S>78SWS>79S>S>S>SWV$TPV$78V$TPV$TPV(V(V(7777U@T=78V(V(T=T=V(V(77T=V(7778T=U@U@78U@SPSOSP78SP78SPSP78SOSPSPSP78SPSPS>S>SPSPS>S>77S>SP77SPSPSPS6SPSPS6S6SRS6S6S6S6SRSRSR74SR7475SRSRS6S67576S676SRSRU<U<U<76U<U<76U<U<TGTGTGT;TGT;TG747576V.SD76SDSDSPSP76SPS6S6S676SRSR76SRSESDSESET/75T/7676T077T077T0T/T0T0T0T077T077T0T0T0T;T077T077T0T0T;T;77T;T0T;T0T07677T0T0T;T;77T;T077T0T;T;77T;78T;TGT;T;T;T;T;7777V.78V.78V.797:V.V.7:V.T0T0T;T0T0T079V.79V.V.V.T0T079V.T0T0T0V.78V.V.V.T;T;7879T;T;79T;T079T0T0T0T079V.SESESSSSSESESESSSESE7778SE78SESSX;X;7879X;X;797:T57:T5T5T3T37:7;7;7<T5T5T5T3T5T3T5T3T5T5T3T37:T3T57:T5T5T0T0T7T7T0T0T7T7T0T.T.T.T.T0T.T.7677T.T.T0T077T0T.77T.T.UMUMT0UMV.V.UMV.T075T0UMUMV.UMUMUMV.UM74V.V.74V.UM74UMUMV.V.UMV.T0UMT0UM72UM73UM7374UMUM74UMT075T0T0T0UMT0UMT0T073T.T.T.T0T073T073UMT0UMT0UM73UMV.V.UM7373V.UM747475UMUMSSSSSE75SESSSSSS74XBXBXBXDXD74XD7475XBXB75XD76XD76XDXBXBXDXBXBXBXDXDXB75XDXD7576XDXD76XD7677XBXB7778T5T5T.T.T5T.YUY7YUYUYUY7YUYUY7Y7YUYUY7Y7YUY7X.X.X&X&X.X.X&X&X&X.X&X&X.X.X&X&X.X&X&X&X.X.X&X&X.X.X&X&X.X.X.X&Y4Y4Y@Y@Y4Y@Y4Y@Y4Y@Y@Y@Y4Y4Y@Y@Y4Y4Y@Y@Y4Y@Y@Y@Y4Y@Y@Y@Y4Y@Y4Y4Y@Y@Y4Y4Y@Y@Y4Y4Y4Y@Y4Y4Y@Y@Y4Y4Y'Y,Y'Y,Y'Y,Y'Y,YHYHYUYUYHYHYUYUY3Y3Y,Y,Y,Y3Y,Y,Y,Y,Y,Z&Z&Z&Y,Z&Y,Y,Y,Z&Z&Z&Y,Z&Z&Z&Y,Z&YLYLZ$Z$YLYVYLYVYVYVYLYLYVYGYVYVYGYGYVYGYVYVYVYGYVYVYVYGYNYNYXYXYNYNYXYNYXYXYXYNYNYNX.X.YNYNYNX.YNYGYNYNYGYNYGYGYNYNYGYGYGYNYGYGYNYNYGYGYNYNYNYGYNYNX.X.YNX.X.X.YNYNX.X.YNX.YNX.YGYGYGX.YGX.YGX.YGYGYGX.YGYGX.X.X.YGX.YGX.X.X.X&X.X&X&X&WGWGW=W=WGWGW=W=UTTLUTUTUTTLUTUTUTTLUTTLV?V?V?TLV?V?TLTLUGUGTLUGTLUGTLTLV9V;V9V;V9V9V9V;V9V9V;V;V9V9V;V;TLUGUGUGTLUGUGUGUGUGTLUGUGUGTLUGUGUGUGTUUGUGTLTLUGTUTLTLV;V;TUV;UKUKUKUPUKUKUPUPUKUKUPUPY.Y.YIY.Y.Y.YIY.Y.Y'Y.Y.Y.Y.YIYIY.YIYIYIY.Y.YIYIY.Y.YIYIY.YIYIYIY.Y.YIY.Y.Y.Y.YIY.Y.YIYIY.Y.YIY.Y.Y.YIY.Y.Y.YIY.YIYIYIY.Y.Y.YIYIY.Y.YIYIY.Y.YIY.Y.Y.YIYIY.Y.YIY.YIY.YIY.Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.Y'Y'Y.Y.Y'Y'Y.Y'Y.Y'Y.Y'Y.Y'Y.Y.Y'Y'Y.Y.Y.Y'Y.Y.Y.Y'Y.Y'Y.Y'Y.Y.Y'Y'Y.Y'Y'Y'Y,Y,Y,Y'Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y,Y,Y'Y'Y'Y,Y'Y,Y'Y'Y,Y,Y'Y'Y'Y,Y,Y,Y'Y'Y'Y,Y'Y'Y'Y,Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y'Y'Y.Y.Y.Y'Y'Y'Y.Y'Y.Y.Y'Y,Y'Y'Y'Y'Y'Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y,Y,Y'Y,Y,Y,Y,Y'Y'Y'Y'Y'Y,Y,Y'Y,Y,Y,Y.Y.Y.Y'Y.Y'Y.Y.Y.Y.Y.Y'Y.Y.Y.Y'Y.Y'Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y'Y'Y.Y'Y'Y'Y'Y,Y'Y,Y,Y,Y'Y,Y'Y'Y'Y,Y'Y,Y,Y,Y,Y'Y'Y,Y,Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y'Y,Y'Y,Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y.Y'Y'Y'Y.Y'Y'Y'Y,Y'Y,Y,Y,Y'Y,Y,Y,Y.Y.YIYIYIY.YIYIY.Y.YIYIY.Y.Y.YAY.YAY.Y.Y.Y.Y.YIY.Y.YIYIY.Y.YIYAY.YAYAYAYIYAYIYAYAYAY.Y.YAYAY.YAY.YAY.YAYAYAYIYIYAYAYIYIYAYAYIYIYAYAYIYAYAYAYAYIYAYAYIYAYAYAYIYIYAY,YAY,YAY,YAY,Y,Y,YIYIYIY,YIYIYIY,YIY,YIY,YIY,Y,Y,YIYIY,YIY,Y,Y,Y,Y,YIY,YIYIYIY,YIYIYIY,Y,YIYIY,Y,YIYIY,Y,YIY,YIY,YIYIY,YIYIYIYIY,YIYIY,Y,YIY,YIYIYIZ)YIYIZ)Z)Z)Z)Z)YIZ)Z)Z)YIYIZ)Z)Z)YIZ)YIZ)Z)Z)Z)YIYIZ)YIZ)YIYIZ)Z)Z)Z)Z)YIZ)Z)Z)YIZ)YIYIYIZ)Z)YIYIYIYMYIYMYMYIYMYMY,Y,YIY,Y,Y,YIYIYIY,YIYIYIY,YIY,YIY,Y,Y,YIYIY,Y,Y,Y,YIY,Y,Z&Z&Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Y,Y,Z&Y,Y,Y,Z&Y,Z&Z&Z&Z&Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Y,Y,Z&Y,Z&YKY,YKYKY,Z&Z&Z&Y,Z&Z&Z&Y,Y,Y,Z&Y,Y,Y,Z&Z&Z&YKYKZ&Z&YKYKY,Y,Y,Z&Y,Z&Z&Z&YIYIYIY,YIY,Y,Y,YIY,Y,Y,YIY,YIY,YIY,YIY,YIY,YIY,YIYIYIY,YIY,Y,Y,YIY,YIY,YIY,YIY,YIY,YIY,YIYIYIY,YIY,Y,Y,YIY,YIY,Y,Y,YIY,YIY,YIY,Y,Y,Z)Y,Y,Y,Y,Z)Y,Y,Z)Z)Y,Y,Z)Y,YIYIZ)Z)Z)Z)Y,Y,Z)Y,Z)Z)Y,Y,Z)Z)Y,Z)Z)Z)Y,Z)Z)Z)Y,Y,Y,Z)Y,Y,Y,Z)Y,Y,Z)Y,Y,Y,Y,Z)Y,Y,Z)Z)Z)Z)Y1Y1Y,Y,Z)Z)Y,Y,Z)Z)Z)Z#Z)Z#Z#Z#Z)Z#Z)Z#Z)Z#Z)Z#Z)Z#Z)Z#Z#Z#YZZ#YZZ#Z)YZYZYZYZYZZ)YZZ)YZZ)Z)Z)Z)YMZ)YMZ)YMYMYMZ)YMYMZ)Z)YMYMZ)Z)YMYMZ)YMZ)YMZ)Z)Z)YMZ)YMYMYMYMZ)YMYMZ)Z)Z)YMZ)Z)YMYMZ)YMYMYMY,Y,Y,Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Z#Y,Y,Y,Z#Z#Z#Y,Z#Z#Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Z#Z#Z#YMY?Y?Y?YMY?YMYMY?Y?Y?YMY?Y?YMYMY?Y?YMY?YMY?YMY?YMYMYMY?YMY?YMYMZ'Y?Z'Z'YMY?Y?Y?YMY?Y?Y?Y?Y?YMYMYMY?YMYMYMY?YMYMY?Y?YMYMYMY?YMYMYMYMY?Y?YMYMY?YMY?Y?YMY?Y?Y?YMYMYMY?Y?Y?YMYMYMY?Z&Z&YKZ&Z&Z&YKYKZ&Z&YKYKZ&Z&YKYKZ&Z&YKZ&YKZ&YKYKZ&Z&YKYKZ&Z&YKYKYKYKYKZ&Z&Z&YKZ&YKZ&YKYKZ&Z&YKZ&Z&Z&YKYKYKYKY-YKYKYKYKY-Y-YKY-Y-Z#Z#Y0Y0Z#Z#Z#Y0Z#Y0Y0Y0Z#Z#Y0Y0Z#Z#Y0Y0Z#Z#Y0Y0Z#Y0Z#Y0Z#Y0Y0Y0Z#Y-Z#Y-Z#Y-Z#Z#Z#Y-Z#Z#Z#Y-Y-Y-Z#Z#Z#Y0Z#Z#Z#Y0Y0Y-Y0Y0Y0Y-Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y-Y0Y-Y-Y0Y0Y-Y-Y0Y-Y-Y-Y-Y0Y-Y-Y0Y0Y-Y0Y0Y0Z#Z#Z#Y?Y?Y?Z#Z#Z#Z#Y?Y?Z#Z#Y?Y?Z#Y?Z#Y?Y?Y0Y0Y0Y0Y0Y?Y0Y?Z'Z'Z'Y0Z'Z'Z'Z'Y0Y0Y0Y0Y0Z'Y0Z'Z'Z'YPYPZ'YPYPYPYPYPZ'Z'Z'YPYPY-Y-Y0Y0Y-Y-Y-Y0Y-Y-Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-Y0Y0Y0Y-Y-Y-YYY-Y-YYYYY-YYY-YYY-YYY-Y-YYYYY0Y0YYY0Y0Y0Y0YYY0Y0Y-Y-Y0Y0Y-Y0Y0Y0Y0Y0Y0Y+Y0Y0Y+Y+Y0Y+Y+Y+Y0Y0Y+Y+Y0Y0Y0Y/Y+Y/Y+Y+Y0Y0Y0Y/YEYEZ&YEYEYEY<Y<YYYYY/Y/YYYYY/Y/YYY/Y/Y/Y<Y<Y2Y2Y2Y2Y/Y2Y2Y<Y2Y2Y2Y<Y<Y<Y2Y<Y2Y<Y<Y<Y/Y/Y/Y<Y/Y<Y/Y<Y/Y/Y<Y<Y<Y/Y<Y<Y/Y/Y<Y/Y/Y/Y<YGY<Y<YGYGY<YGY<Y<Z(Z(YGYGY<Y<YGYGY<YGY<YGY<YGY<Y<Y<YGYGYGY<YGYGYGY<Y<YGYGY<YGYGYGZ%Z%VTVTVTVQVTVTVQVQVTVQVQVQVNVNX(X(VNX(X(X(VNVNVNX(W3W3W3X'W3W3X'X'W3W3X'X'W%W%WUWUW%W%WUW%WUX,WUWUX,X,WUWUX,X,WUWUWUX,WUX,U>TTU>TTU>TTTTTTTUTUU0U0TUTUU0U0TLU0TLU0TLU0TLTLU0U0TLTLTUTUU0U0TUTUU0U0TUTUU0U0TUTUTUV;TUTUV;V;TUTUTUV;TUV;V;V;TUV;TUV;TUV;TUV;TUTUTUV;TUTUV;V;TUTUTUUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUV;TUV;TUV;TUV;TUTUTUV;TLTLTLU5TLU5U5U5UPUPU9U9UPUPU9U9V;UPV;UPV;UPV;UPV;UPV;V;V;V;V;UPTUV;V;V;TUV;TUV;TUTUTUV;TUTUTUV;TUV;V;V;TUTUTUV;V;UPV;UPUPUPV;V;UPUPV;V;UPUPV;UPV;UPV;UPV;UPV;UPV;V;UPUPYBYBYBY>YBYBY>Y>YBYBYBY>YBYBYBY>Y>YBYBYBY>YBYBYBYIYIYBYBYIYIYIYBYBYIYBYIYIYIYBYIYIYIYBYBYIYIYBYBYIYIYBYBYMYMYIYMYIYIYIYFYFYFYIYFYMYMYIYMYIYMYIYMYMYMYMYOYMYOYMYOYMYMYOYOYMYMYOYOYOYOYMYMYOYOYMYMYOYOYOYMYPYPZ'Z'YPYPZ'YPZ'YPZ'Z'YPYPZ'YPZ'YJZ'YJYJYJZ'YJYPY+Y+Y+YWYWYSYSYWYSYWYSYWYSYSYSY/Y/Y+Y/Y/Y/Y+Y/Y+Y/Y+Y+YTYTY/Y/YTYTYTY/Y/Y/YTYTY/YTYTYTY/Y/YTYTY/Y/Y/YTY/YTYTYTY/YTYTYTY/Y/Y/YTY/YTYTYTY9Y9Y*Y9Y*Y9Y*Y*Y*Y*Y*Y9Y9Y9X#X#Y9X#X#X#VWVWX#VWVWVWVWX#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#WSWSVSVSVSWSVSWSVSWSVSWSWSWSWSW,WSWSVSVSVSWSVSVSWSWSVSWSVSWSVSVSWSWSVSWSVNVNWPVNVNVNWPWPVNVNVNWYVNWYWYWYVNVNVNWYVNWYWYWYVNVNVNWYVNWYVNVNWYVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYW#WYWYWYWYW#WYWYW#W#WYWYW#WYWYWYVNVNW#VNVNVNWYWYVNWYVNWYVNWYWYWYWYWYW,W,WYWYW,WYWYWYWYW,W,W,WYW,WYWYW,W,WYWYW,W,WYW,W,W,WYW,WYWYWYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,W,W,WYW,W,W,WYW,W#W#WYWYW#WYWYWYW,W,W,WYW,WYWYWYW,WYWYWYW,W,W,WYW,WYWYWYWYWYW,W,WYWYW,W,WYWYW,WYWYWYW#W#W,W,W#W#W,WYW,W,WYWYW,W,WYWYW,W,WYW,W,W,W,WYW,W,W#W#W#W,W#W,W,W,WYWYWYW,W#WYW#WYW#W#WYWYW#W#WYW#W#WYW#WYW#WYW#W#WYWYW#WYWYW#WYWYWSWSWSW,W,W,WSWSW,W,WSWSW,W,W7W7W,W,W7W7WYW#WYW#W#W#WYWYWYW#WYWYW#WYWYWYWYW#W#W#W#WYW#WYWYWYWYW#WYWYW#W#WYW#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYW#W#W#WYW#WYWYWYWYWYWYW#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYWYW#WYWYW#W#WYWYW#WYW#W#WYW#WYW#W#W#WYWYWYW#WYWYW#W#WYW#W#W#WYWYW#W#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYW#W#W#WYW#W#W#W#W#WYWYWYWYW#W#W#W#WYWYWYWYW#W#W#VNW#W#VNVNW#W#VNVNW#VNWUWUWMWMWMWMWMWUWUWUWUWMWUWUWUWMWUWUWUWMWUWMWUWUWUWUWMWMWMWMWTWTWMWMWTWTWMWTWMWTWMWMWMWTWMWTWTWTWMWMWTWMWMWMWTWTWMWTWTWTWMWMWTWTWMWTWTWTWMWMWMWTWMWMWTWTWMWTWTWTWUWUWMWMWUWMWMWMWMWUWMWMWMWTWMWMWMWTWMWTWMWMWTWMWMWMWMWTWMWMWTWTWMWTWTWTUYUYU>UYU>UYU>UYU>UYUYUYU>UYU>U>U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>U>V:U>U>V:V:U>U>UYUYU>U>UYUYU>U>UYUYU>UYUYUYV:UYV:UYV:V:U/U/U/UYU/U/UYUYU/U/UYUYUYTTUYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/TTTTUUTTTTUUUUUUUUTTUUUUTTTTUUTTTTTTUUTTUUTTUUUUUPUPTLUPTLTLUPUPY>YBY>YBY>YBY>YBS:S;S:S;S:S:S;S;S;S;S:S:S:S:S;S:S:S:S;S:S:S:S;S:S:S;S:S:S:S0S:S:S0S0S:S0S0S0S:S0W-W-WFWFW-WFWFWFW-W-W-WFWFW-WFWFWFW-WFW-Y9Y9W(W(Y9Y9Y9W(W(Y9W(W(W(Y9W(W(W(W(VZVZW(W(VZW(W(W(W(VZW(W(VZW(VZVZW(VZVZW(VZW(W6W(W6W6W6W(W6W(W6W(W6W6VOW(VOW(W(W(VOW(W6W6W.W6W.W.W.W6W6W6W6VOY9Y9W(Y9Y9Y9W(W(W(W(W(VUY9Y9W(W(Y9VUY9VUY9Y9VUY9X#VUX#X#VUVUX#X#VUVUX#X#VUVUVUX#VUX#X#X#X#X#VUX#VUVUVUX#X#X#VUX#VUVUVUX#VUVUX#X#VUX#VUVUX#X#VUX#X#VUVUVUVUX#VUVUVUX#VUX#X#X#X#VUX#X#VUVUVUX#VUVUVUX#VUX#VUX#VUX#X#VSX#X#VSVSX#VSX#X#X#VSX#VSVSVSW7WSW7W7WSWSW7WSWSWSW7WSWSWSWSW7WSWSW7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W9W7W7W7W9W7W9W7W9W7W7W7W9W9W9W9W9W7W7W9W9W7W9W9W9W7W9W7W9W7W9W7W7W7W9W7W7W7W9W7W9W9W9W9W9W9W<W9W9W<W<W9W9W9W<W9W<W9W<W9W<W<W<W9W9W9W<W9W9W9W<W9W<W9W<TLTLUUTLTLTLUUTLTMULTMULTMTMTMULULULTMULTMULTMTMULULTMULUETLUEUEUETLUETLTLTLUETLTLTLUETLUETLUEUEUETLTLTLTLTLUEUETLTLUETLUETLTLTLUETLUETLTLTLUEUETLTLUETLUETLUEUETLTLUETLTLTLUETLUETLUEUEUETLUEUETLTLUEUETLTLUETLTLUPTLUPTLUPUPUPX#X#VUVUX#X#VUVUX#X#VUX#W+W+W+WEW+W+W+WEW+WEWEWEW+WEW+W+WEWEW+WEWEWEW+W+WEWEW+W+WEW+WEW+W+W+WEW+X#W9X#X#X#W9W9W9W<W<W<W:W<W:W:W:W<W:W<W:WUWUW:W:W:WUW:W:W)W<W)W)W)W<W)W<W)W)W)W<W<W<W)W)W)W)W)W<W)W<W)W<W)W)W<W)WUX-X-X-WUWUX-X-WUX-X-X-WUWUW1WUWUW1W1W1WUWUWUW1WUW1W1W1T>UIUIUIUIULUIUIULULUIULULULUIUIULUIULUIUCUCU?U?UCUCU?U?SASZSASZX-X-X-VXX-VXX-VXX*X*VXVXVXX*VXX*VXX*VXX*X*X*X*VXX*X*X*VXX*X*VXVXX*VXVXVXVXX*VXVXVXX*VXVXX*X*VXX*VXX*VXX*WUWUWUWAWUWAWAWAWUWAWUWAWUWUWUWAWAWAWUWAWUWUWUW1WUW1W1W1TDTITITITITITDTITDTITDTDS4S=S4S4SXSXSXS@SXSXS@S@SXSXS@S@SXSXS@SXSXSXS@SXSXSXS@S@S@SXS@S@S@SXS@SXTDTITDTITDTITDTISMSMS.S.SMSMS.S.SMSMS.S.SMT$SMSMSMT$SMSMSMSMSMT$SMSMT$T$T$T$T$SKT$T$T$SKT$SKT$SKT$SKT$SKT$SKT$T$T$SKSKSKT$SKT$SKT$SKT$SKS3SJSJSJSJS3SJSJS3SOS3SOS3S3SOSOSOS3SOSOS3SOS3SOSOSGSGSGSOSOSOSGSOSGSOSOSOSGSOSOSGSGSOSOW>W>WVWVW>W>WVWVW>WVWVWVW>W>WVW>WVW>WVWVWVW>WVWVW>WVWVWVT-U#T-U#SJS7SJS7SJS7SJSJS7S7S7SJS7S7SJSJS7S7S7SJS7S7SJSJSOSGSOSGSOSGSGSGSOSGSOSGSOSOSOSISISISOSISGSGSGSISGSISGSIS>SWS>S>SWSWS>SWSWSWS>S>V$TPTPTPV(V(V(T=T=V(T=T=T=U@T=T=V(V(T=T=V(T=T=T=V(V(T=T=U@U@T=T=SOSOSPSOSPSOSPSPSOSOSOSPSOSPSPSPS>S>SPS>SPS>SPSPS6S6S6SRSRS6SRSRS6S6S6SRS6S6S6SRS6S6SRSRS6S6SRSRU<U<U<T1U<U<T1U<TPTPTPV.TPTPV.V.TPV.V.V.SPSPSDSPSDSPSDSPS6SRS6S6SDSRSDSRT/T/T0T0T/T0T/T/T/T/T0T0T0T0T/T0T/T0T/T0T0T0T;T;T0T;T0T0T;T;T0T;T0T;T0T0T0T;T0T;T0T;T0T0T;T;T0T;T;T;T0T;T;T;T0T;TGTGT;TGT;TGT;T;T;V.T;T;V.V.T;V.T;V.T;V.T;V.T;V.T;V.T;T0V.V.T0T0V.V.T0V.T0T0V.V.T0V.V.V.T0T0T0V.T0V.V.V.T;T;T0T0T;T;T0T0T;T;T0T;T;T;T0T;T0V.V.V.SESESESSSESSSSSSSESSSESSX;XDXDXDXDX;XDXDX;X;XDXDX;XDXDXDT3T3T5T3T5T3T5T5T3T3T5T3T3T3T5T3T3T3T5T5T3T3T5T5T3T3T5T5T.T0T.T.T0T0T.T0T.T0T.T.T.T0T.T.UMUMT0UMUMV.UMUMV.UMUMUMV.V.UMV.T0UMT0UMT0T0T0UMT0T0T0UMT0UMUMUMT0UMT0T0T0UMT0T0T0T0T.T.T.T0T.T.T0UMT0UMT0UMUMUMUMV.UMV.V.V.UMUMUMV.UMUMUMV.UMUMV.V.UMUMSESSSSSSXDXDXBXBXDXDXBXDXBXDXBXDXDXDXBXDXDXDXBXDXBXDXBXBXDXDXBXDXBXDXBXBXDXDXBXBXDXDXBXDXDXDXBXDXBXDXBXBXDXDXBXBT5T.T5T5T.T.T5T5", c = ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vincennes", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Etc/GMT", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/UTC", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"];
270
- if (b = +b, !(-90 <= (p = +p) && p <= 90 && -180 <= b && b <= 180))
268
+ function z(b, p) {
269
+ var W = "XIXHXHXGXGXQXQXPXPXOXOXN##U6U6UW#$U%U%U%U%U%XFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSXTXTXUXIXHXHXGXGXQXQVAVA#%#&V'#'U6#(#)U%U%U%U%U%#*U%XEXEVLVLVLVLYGYGYGYG#+W=W=W=W=W=W=Y$X+X+X+X+X+XTXUVPUQ#,T*T*#-VAVA#.#/#0#1#2U6U6UWU%U%U%U%U%#3VLVLXEYH#4#5#6YGYGYG#7X.#8W=W=W=#9X,X,#:#;#<#=#>VPVP#?#@#AT*T*#B#C#D#E#F#GV'#H#I#JUWU%U%U%U%X6X6#K#LYH#M#N#O#PYG#Q#R#SX.#T#UW=W=#V#WX,#X#Y#Z$#$$$%$&T)$'$(T*T*$)$*$+TW$,$-$.$/$0$1$2$3U%U%XJXJXF$4$5$6$7$8$9$:YG$;$<$=$>$?$@$A$BW3$C$D$E$F$G$HW8$IT)T)T)XHXGXGXQV=$J$K$L$M$N$O$P$Q$R$SV2XKXJXJXFY4$T$U$V$W$X$Y$Z%#%$%%VN%&%'%(%)%*%+%,%-%.%/%0W8XTT)XIXHXHXGXGXQXQU>%1%2%3TL%4%5%6%7U-XKXKX0X0XF%8%9%:%;%<%=%>%?%@%A%B%C%DX(%E%F%GWU%H%I%J%KXSXTXTXUXIXHXHXGXGXQXQU>%L%M%NTL%OUPXMX1XLXKXKXJX0X5%P%QS0%R%S%T%U%V%W%X%Y%Z&#WUWUWUWUWU&$&%X%XSXSXTXTXU&&ZDZDXGXGXQXQXP&'&(&)&*&+&,UOXLXLXKXKXJXJ&-&.&/S0&0T&&1&2WQ&3&4&5&6&7&8&9&:&;&<&=X%X%XSX%XTXTXUXIZDZDZDXGXQXQXPUI&>&?&@&A&B&C&DXLXKXKXJX3&E&F&G&H&I&J&K&L&M&N&OWEW<W<&P&Q&R&S&T&UY%X%ZUXSXTZYXUXIXHXHXGXGXQXQXPXPXOXO&V&W&X&Y&Z'#XKXKXJX3'$'%'&'''(')'*'+','-VMXXW<'.XZ'/'0'1'2WDZPZ9'3'4ZH'5XUXIXHZEZEXGXQXQXPXPXOXOZ@'6'7'8'9':';XKXJXJXF'<'='>'?'@'A'B'C'DXXXXZ1W'XZ'E'F'G'H'I'JW5Z9'K'L'MZWZ<Z<XHZEXGXQXQXPXPXOXOZ@'N'O'PUB'Q'R'S'TXJXFXFXESQ'U'V'W'X'YXWZ0XX'ZXYXZXZW4(#($(%W5(&ZS('ZB((()(*(+ZTZE(,(-XQXPXPXOXOXNU=U=(.(/(0(1(2(3XJXFX8XEXESN(4(5(6(7(8Z2XXZ+XYXZZ-Y#(9(:(;(<(=(>(?ZB(@(A(BZLZT(CZV(DXQXPXPXOXOXNXNU=(E(F(G(H(IXJXJXFXFX8XE(J(K(L(M(NZ*(OZ2XYXYXZXZY#Y#XCXC(P(QX;X;ZN(RZ>(SXHXHZVZVZA(TZQXPZ:XOXNXNV,(U(V(WV.V.XJXJXFXFXEXET((X(Y(ZZ*Z*XXXXXYXYXZXZY#Y#XCXC)#)$)%)&XT)'XUZ6XHXHXGXGXQXQXPXPXOXOXNXNV,)()))*V.XKXJXJXFX8XEXEXRSE)+SEXWXWXXXXXYXYXZXZY#Y#XC),)-).)/XDXAZ6Z6Z8XHXHXGXGXQXQXPXPXOXOXNXNV,)0)1T.XKXKXJXJXFX8XEXEXRXRXVXVXWXWXXXXXYZ/XZXZY#Y#Y$Y$Y%)2)3XDXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXN)4)5)6X9XKXKXJXJXFXFXEXEXRXRXVSESEZ/Z/XXZ/XYXZXZY#Y#Y$Y$Y%Y%XSXSXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXNV&)7)8X9XKX7X7X7XFXFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSVEZ6XUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVH)9):T9T9XJXJXFXFXEXEXRXRVIVIVIVI);VFVFVC)<VKVBVBVBVDVDVDVDVD)=VGXUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)>VH)?Y&)@VJVJVJ)AVIVIVI)BVFVF)C)DVK)E)F)G)H)I)J)K)L)MVGVGVGVGVGVGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)NVH)OY&)PVJVJVJ)QVIVIVI)RVFVF)S)TVKVKVK)UXCXCXCXCXC)VVGVGVGVGVGVGVGVGVGVGVGVGVGVGVG)W)X)Y)Z*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?VGVGXNXNV'*?XLXLUWU%*>TF*?TFTFV'TFV'V'*>V'*?U6*?V8V8*?U%V8*@U%U%U%*@XYW=YGXYXHT*UQT*XQXQ*>*?VAVA*?*@*@TF*ATFTF*ATFTF*AV'TFTFV'*A*B*C*CTRV/XFVLVLYH*CYHYH*C*DXVXV*DYGYGX.YG*D*DW=X.*EW=*E*F*GX,X+X,*GX+X+X+*G*G*HWWWW*HWWWWWWXTXTWW*HVPVPVPUQ*GUQUQUQUQT*UQT**FV>*GV>*GVAV>*HVAVA*HVAVA*HVAVA*H*IVAVATFV'VAV'V'*HV'*IU6U6U6*IU6U6*IU6X6XFXFX4XEXEX4Y@YH*GYH*HYUYUYU*H*HY7Y7*I*IYGYGYGYGYG*IYGYGYG*I*J*J*KX.X.X.X.*K*L*LW=*MW=*MX,*N*OX,X,*OX,X,*OX,*P*P*QW;*R*RWW*SWB*S*TWBWB*T*UWB*VVPVPW8*VVPVP*VVPUQUQT)UQ*UT*UQT**U*VXQV0*VV=*WV=*W*XV=*Y*YV)*ZV)V)V?*ZV?V?*ZV?V?V'*ZV;+#U6+#U6V;V;+#V;V;+#U&+$U&XLXLU&V2Y@Y@XF+#Y@Y@+#Y@XEYHY@+#+#+$+%+&YU+&+'+(+(+)+*++YGYG++YG+++,+-+.+.X.+/X.X.X.+/+0X.+0+1+2+2+3+4+5+5+6+7+8W=W=W=+8+8+9W3W3W3+9+:W%X,X,+:+;X,+;X,X+X+X+X++;X+WBWRXSWB+:XSW8W8W8W8T)V=+9+:+;+;+<+=+>+>V)TTTTV)V?+>+?V?V?TL+?V;V;+?+@+@V;V;V;V;V;V;+@V;+@+A+B+BV2+CV2+C+DYIYI+D+EYI+F+F+G+H+I+I+J+K+L+L+M+N+O+O+P+Q+R+R+S+T+U+U+V+W+X+X+Y+ZVR+Z,#,$,%VN,%VNVN,%,&,'X(,',(,)W2X',),*X',*,+X'X',+,,W&,-,-,.WUWU,.,/,0,1X+,1X+,2WRXSWRX)WW,1,2WW,2,3U>,4,4TTTTTTTT,4TTTL,4,5,6,7,7,8UPUP,8UPUPUP,8U-XLXLXF,8XFY>,8,9,:YB,:,;YBYB,;,<YMYM,<,=YM,>,>,?,@,A,A,BY9Y9,B,CY9,D,D,E,F,G,G,HVS,I,I,J,K,L,L,M,N,O,O,P,QX(X(,QWUWU,Q,RWUWU,R,SWUWUWU,SWU,T,TX+,UY%X+X%X%X%,TX)XSXSU>,T,U,V,VTT,W,X,XTL,YTLTL,YTL,ZXF,ZXFS:,Z-#S:-$-$-%-&-'YMY*T&T&Y*-&-'S9-'-(S9-)-)-*-+-,-,X#--X#---.X#X#-.-/-0-1-1-2-3-4-4-5-6-7WUWTWUWT-6X%X%X%ZJZDXIZDV:-5XPUF-5-6UF-7-7-8-9-:TLTL-:UHTL-:UH-;-;UO-<UOXFX2XFSA-;-<-=SZS0S0-=->->T&-?-@-@S9-AS9S9-AS9-B-B-CWQ-DX#-D-E-F-FW9-GW9-G-H-IW<W<-IW<W<-I-JW<-K-K-L-M-N-NWU-O-PWUWU-PWUWUWU-P-QWUX%-QX%UI-QUIXO-Q-RUIUIUIUHUI-R-RU.-SV7-S-T-U-V-VV--W-XV<T+-X-YXF-YX3-Z-ZSZ.#SZ.#S2.$S2.$.%S2SY.%SYSYSYSX.%SXSX.%SH.&SH.&SHSH.'.'WQ.(.)WQWQ.)VM.)WE.*WEW<.*W<XZ.*X-X-X-.*.+.,.-.-WU..././WXWU.0.0Y$WDY$XN.0XNXN.0UAXNTNTDTDUV.0TD.0.1TITI.1TI.2T?XLU,XLXF.1XFS5.1.2.3.4.4.5.6.7.7.8.9SK.9.:SK.;.;SX.<.=SHSH.=.>SH.>.?S/.?.@S/.A.A.BSUSUW<W<W<.BW<.BW<.C.C.D.E.F.FW0W0W0W0WD.FWDZCXSZ9Z9XSXSZ9ZRZHZH.DZHTNXNZ@XN.CTD.DTDTD.DTD.ETI.E.F.G.G.H.I.J.JXKT@T@SB.JXFXFS-.JXEXE.JSKXET%.JS@.K.L.L.M.NSJ.N.O.P.QSF.Q.R.SS/.SSWSU.SSUSUXWW<.SXZW4.S.TW4.UW4W4W4.U.U.V.WWCWD.WWC.XY%ZP.X.YZ9ZRXSZRZRZFXTXTZHZHXTZWZ@U=XNU=.U.V.WU=.W.X.Y.Z.ZV+/#V+T@/#T@/$U#U#U#/$XJURU#URSL/#SL/$/$/%/&/'/'/(SO/)/)/*S>S>/*/+/,XWXYZ1Z+Z+W4/+W4/,/,WC/-WCWCW5WC/-W5/-W5/.ZSZ7ZS/.ZKZWXTXTZWZWZ?Z?Z?Z=ZZ/,/,ZT/-ZTZEXGZVZVZIZIZVZV/+/,U=/-/-/.U</////0TPTP/0/1/2/3/3/4T=/5/5XJT=XJSN/5SNSNSO/5/6/7/7S>/8/9S>Z.SR/9Z0Z0/9Z*/9W4Y#Y#/9WCY$Y$WC/9XCXC/9/:/;X>/;/<X>X;/<ZSX;XSZS/<ZSZSZBXT/<ZBXUZ?XUZ>Z>ZX/;ZXZVZV/;ZVZVZVZV/;U=/;U=/<U<U</</=/=/>/?/@/@V./AV.V./AV.V.XR/AXRT(/ASNT(/B/B/CSC/D/D/E/FSRSRZ*XWZ*XXZ2Z4Z2/DX>/EX>X>X;/EX;Z;Z;ZN/EZXZXZ6XIZAZQXQXQXMV,V,/C/C/D/ET0/E/F/G/HT(/H/I/J/J/KSE/L/LSR/MXV/MX>/NX:X>X;X:/NX;X;/N/OX;XS/OXSZNZNZMXTV,/NV,/O/O/P/Q/R/R/S/T/USE/USESEXC/UXCXC/UX:Y%X:X:/UX:/VXDXD/V/W/W/X/YT/T5/Y/ZT5Y%/ZY%Y%/Z0#X@X@XMV,XMV&/Z0#0$0%0%XLT4X9V&0%XMV&T90%XLXLV&V&T9T90$T9T9T9XXXX0$VFXZXZVCVKXTXT0#VGXJXJ0#VHXF0#VH0$0$SE0%SE0%VI0&VI0&VF0'VF0'VC0(VCVCVKVCVK0'0(VKVK0(0)VKVK0)0*0+XC0+0,XCXC0,0-XCXC0-0.XCXC0.0/XCXC0/00XCXC00VG01VG01VH02VHVH02VH0303SE04SE04VI05VI05VF06VF06VC07VCVCVKVCVK06XC07XC07VG08VG08VHVGVGVHVHVGVGT9T9VGVGT9T9VGVGT9T9VGVGT9T9VGVG03VHVGVGVHVHVGVGVH02VGVGY&Y&VGVG01SEVGVGVJVJVGVGVJVJVGVGVJVJVGVG0.VIVGVGVIVIVGVGVIVIVGVGVIVIVGVG0+VFVGVGVFVFVGVGVFVFVGVG0)VCVGVGVCVKVGVGVKVKVGVGVKVKVGVGVKVKVGVG0%XCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVG/XVGVGVGXNXNV'U6XOXOVATFVATFVATFV'U6V'U6V'U6V'U6U6U6U6V8UWUWU%U%V8U%V8U%U%U%U%TRT*V>T*V>V>VAV>VAVAVATFTFVAVATFTFVATFVATFVATFTFTFV'V'TFTFV'V'TFTFV'U6V'U6V'V'TFV'V'U6V'U6TRTRU%TRYHYHYUYUYHYH/BY7YHYHY7YG/AYGYGYGYGX./AX.X.W=X.X.X.W=X.X.W=X,W=X,W=W=W=X,W=X,X,X,X,X+X,X+X+X+X+WWX+X+X+WWX+X+WWWWX+XSWWWWWWVPVPVPVPVPVPUQT*V>T*V>T*V>T*V>V>VAV>V>V>VAV>V>VAVAV>VATFTFVAVATFTFVAVATFTFVATFV'U6T<T<V'U6V'U6U6U6U6V;U6U6V;V;YHYH/)YUYUYU/)YUYU/)/*/+YUY7/+Y7Y7Y7/+/,YGYG/,YGYGYGYG/,YGYGYGX.YGYGX.X.YGYGX.X./)X.X.X.X.X.X./)X.X./)X.W=W=X.W=X.W=X.W=W=X,W=X,W=W3W3W3X,X,W3X,X,X,X,/$X+X+X,W;X,/#X,W;X+X+W;W;WWWWW;X)W;X)X+X+WWWWX)WWX)WBX+X+WWWWWWWBWWWWWBWBWWVPWBWBVPVPWBW8WBW8W8W8W8VPW8W8VPVPW8VPUQT*XHXHT*V@XQXQV=U8U8V0.LV=V0V=V0V0V=V=TZTZV=V=TZTZTSTSV=TSV=V=TWV)TWV)TWV)TW.GV).GV).HV'V'V?V'V'U6V'U6V;U6V;V;V;V;U6V;V;U6V;V;UWV;V;V;V;V;U&U&Y4.AY4Y4.AY@.B.CXEXEY'.CYH.C.D.E.EYU.FYU.F.GY,Y,.G.HY,.I.I.JYU.K.K.LZ&Z&.L.MZ&Z&.MYV.N.O.O.P.QYG.Q.R.S.T.T.UYEYE.UYG.V.WYGY=YG.W.W.X.Y.Z.Z/#/$/%YG/%/&/'/'X./(/)/)X./*X.X.X./*WOX.X.WOVNX.X.WIWI/(/)VNVNWIWIVNVN/(X&/)/*X&X&/*X&/*WHVN/+WHWHVY/+X&X&X&/+X&W=X&W=/*/+/,/-WG/-/.//W=//W=W=W=W=//W3W=W=W3W3W3X,W%W%W3W3W3W%W%X,W%/,X,X,/,X,X,X+X+X+X+WRX+WRWBWBW8W8V=V=/)V=V=U>XPU>/(U>U>U>V=/(/)/*TWTW/*/+U>U>U>/+TTTTU>TTTWV)TWV)TT/)TTTTTLTL/)TL/)TLTL/*/*TU/+/,V;V;/,/-V;U6V;V;V;/,/-/.V;TBV;TB/-UKUK/.U-U-U-/.TB/.V2V2V2V2U$UJ/-Y@Y@/.Y@Y@/./////0YI/1/1/2/3/4YI/4YI/5Y,Y,/5Y,Y,/5/6/7/7/8/9/:/:/;/</=/=Z&/>/?Z&Z&/?/@/@/A/B/C/C/D/E/F/F/G/HY</H/IY<Y</I/JY/Y//J/KY//L/L/MY<Y</MYG/N/OY<Y<Y</O/O/P/Q/RYGYG/R/S/S/T/UZ%/U/VYGYG/V/WYGYG/WYQZ%/X/X/YWJWJ/Y/ZYG0#VTVTVT0#0#X.WJVR0#0$VRVRVTVR0$0%X.WOVRWOWOVNWOWOVRVRWPWPVNVNWPWPVY/YVNVNVYVYVNVNVYW=VYVYVNVN/WX(W=W=W2W2W=W=W2W2W2W2X(W2W3W3X'X'W2X'X'X'W3W3/RX'/RW%W%W%W%W%W&W&W%W%/Q/RW&WUWUWU/QWUWUWUWUWUWU/QX,X,/QX,/QX+X+X+WU/QWUWU/QWU/R/SX+WRX+WRX+WRX+/RWWW8WWWWX)WWX)X)U>/PU>U>TETE/P/QU>/QU>TT/QTT/RTT/RTLTLTLTL/RTL/STUTU/S/TTL/TTL/U/UUP/VUPV;/V/W/X/X/YUPUP/YUPUPUP/YU-XLXLYBYBYB/YYBYB/YYBYB/YYB/Z/ZYB0#YBYIYI0#0$YI0$YIYI0$YM0%0&0&0'YMYM0'0(0)0*0*0+0,0-0-0.Y*Y*0.0/000101020304Y*04Y*05Y9Y905Y9XVYRY9Y9YR04Y9Y9YG04Y905YGYG0506Y906Y907YGYG0708VQVQVWVQ0708090:VWVW0:XWVQVQVSVQWSWSWS09VSVS090:WSWP0:WSWPWPWSVNVS09VS0:WS0:0;0<0<VN0=0>VNVN0>0?0?0@0A0B0B0CW,W,VNVN0C0DVNX(X(X(0CX(X(X(X(W2WUWUX'X'WUWUX'X'WUX'X'X'X'0@X'WU0@WUWUWUWU0@0@0AWM0BWU0B0C0DWMWM0DWTX%0DX%X%0D0E0F0GU>0GXPV:0GUYV:U/0GTT0H0IUY0I0J0KTTTTUU0KTT0KTTTLTT0KTLTL0KUP0LUP0LUP0MUPXFY>XFS:0L0MS:S:YB0M0N0OS:0OS0S00OT'0PT'YM0PT'YC0PT'S0T&0PT&T&T&0P0QY*XVT&T&T&S9Y9Y9XV0P0P0Q0R0S0S0T0UVO0U0VW(0W0W0XVUVUVOVUWQ0XVUVUWQVU0WX#0XX#0X0YVU0Z0ZX#X#X#X#0ZX#X#0ZVS1#1$1$1%W7W7W7W71%W7W7W7W71%1%1&W71'1'1(1)1*1*1+W9W9W91+W91,X(X(W9W<X(WUWUWU1*W<W<W<WUWUW<WUWTWT1)1*V:1*UFUFU/U/1*U/TM1*TM1+UFULUF1+1+UE1,1-1-TL1.1/ULUL1/UI1/1011UL11XNULXN11UPXNUPXNUPU.U.UPUPUP10UP1011UOX2S:1112S:S:SA12SASASASZSZS0SZS2S0S0S2S0S0T&S0T&S0T&S0S0T&T&SYT&T&1,T&S9T&S9T&S91+1,1-WQS91-S9S91-1.WQWQ1.X#1/X#1/10WQWQX#X#10X#1011W+1212X#WEWE12W9X#13X#W9WEXXW9W9W9121213W<W<W913W<W<13W:W<1414WU1516WUWU16171718W<19WUWU19W<W<WU19X-191:1;W<1;X-X-X-WUWUX-WU1:WU1;WUWUWUWU1;WUWU1;WUWUWU1;1<WU1<WU1=1=1>WXX%UF1>XOUI1>UIUIUIUI1>UIUIUI1>UIU*UH1>1?TH1?TAU*V7U.U.TKTKU.UOU.U.XMXMV7TDU71<U7XMUOU'U.UZUZ1;XMXMV-1;XMXMV%1;XLTI1;T,UN1<1<SASASZXFSZS=1<SASZSZSZSZSZS=SZSZS2SZS2SZS2SZS2S0S0S2S2S0S0S017S0SYSYSYSXT&SXSXT&SHSXSHSXSHSXSH13SHSHSHSHSHSH1313WQSHWQ13WQS1S1WQ1314VMWQWQVMVMWQWQWQWEWEWEVMWEW<11W<XZW)11XZX-X-111213X*VXX*X*12VX13VX1314VX15VX15VX1616W0X*17WUWUW0WU16WUY$Y$Y$WDWUWD15WDWDWD15U*XNXN1516TYUAUVTDUVTDXMXM1516TD16TD17XL17TIU(TI17TITIS=17S=18S=18S5S<S2S2S218S<S<18SBS<1819S<S2S2S21919T#T#T#191:S-S-T#1:1;S.1;SYT#SY1;SY1<SK1<T$1=1>SYSYSK1>SYSXSK1>SK1>1?S@SXSX1?SX1?SXSX1@SXSXS3S3SHSHS3SFSH1>SFSFSH1>SHS/SHSFSFSF1=1>S/S/1>VM1?1@S/SUS/S/VMVMVMSUVMVMSUSU1=W'1>W'W<XZW<X-XZX-W<VXX-VXX-1<1<1=1>WK1>VXVXVXWKWKVXW0WK1=WK1>WDWDW0Y$ZHZGZHZGUVUVTDXMXMTDU+U+TD1:TDTDTDTDTDUBTIU,TITCTITIUBUBTCTCUBTCU,16U,UXUXUXUXTJU,U,TCV+UXTJV+T@XKXK13XKSV13SVSV13S.14S.1415S.XESK1516S@SQS@SL16S@S@SLS7S3S3S315S3S3SJS3S@S7S714S3S314SOSFSFSO1414SOSOSOSOSOSO14S/S/SFS/13SG14SGSGSW14SWS/S/S/SUS/SUSUSUW<W4W4W4VX11W4W>11W>W>W>11W>1213W4W?13WLY$W?1314W?WD14W?W?WCWLWCWD13WCWCWCWCWCW5W5ZPW5W5ZPY%W5W5U+U+1011U+U+11U=U=11U=U=TDTDU=U=TDUBTDUBU=U=U=TXTXUBTXUBUBV+UBUBUBV+UBV+T@U#T@U#1*U#1+U#U#U#1+U#SL1+S7S71+1,1-1.S71.S7SJSJSJSJSO1-SJSNSJ1-SOSJSOSJSOSOSOSO1,SO1-SO1-SOSO1-SG1.S>1.SWS>1/SWSW1/SWSUSUSWXW1.1/S>S>1/WLWLWLW4WLW4W4WLWLWL1.WLWCW4W4WCW5WCW5W5Y%W5ZSW5ZSW5ZSZ7Z7Z7ZBZZXIZZZ5Z=XHZOXHZOXHZ5ZO1&V*U=U=V*TXV*1&U=U<U=U<UB1%U<V$V$UBV$TPV$1$U<U<UBV+TPTPV+V+TPTPT@T@TPT-T-U#T-U#TPT-TPV.T-0W0XT=U#U#T=T=0W0X0Y0ZT=0ZT=T=0Z1#U@U@SNSNSN1#SOSOSOSPSNSPSPSP0Y0ZSPSP0Z1#SPSPSP1#SP1$1$SR1%SRZ.Z.XWZ3Z3Z*Z3Z*W4W4Z,Y#W40ZY$Y$WCW*WCW*W5W5Y%X>W5Y%X>Y%Y%X>XCX>Y%W5X>Y%W5ZSY%X;ZSZSX;XSZBZBZSXSZBZBZ;Z;Z>Z>Z>ZXZTXGXGZVZVZVZVZAU=U<0NU<V,0NV,0OU<U<U<0OU<T;0OT;TPTPU<TGTPTPTGTGT;0MT;TGTGTG0MTG0MV.V.V.0MV.0NV.0NT=0OT=SNSNT(T(SNSN0NT(T(SCT(SCSPSPSC0MSP0M0NSDSDSD0N0OSDSRSDSD0NSRSRSRSD0N0OSRXCX>XCX>XCX>XCX>X>0MX>X>Z;XTZNZNV,T/0L0MT10MT50N0NT;T0T00N0O0P0QT;T;0Q0R0R0S0TV.T0T;T00T0T0U0VV.T(SCT(SCT(T(T(SET(SESESESCSCSC0S0SSESESESESE0S0TSESR0TSR0TSESESEXCX>XCX>XCX:XCX:X:X;X:XDX;X;XDXDX;X;XD0PX;X;0P0Q0QT60R0S0ST30T0UT2T0T70UT0T0T00UT70UT5T50U0V0WT.T00W0X0Y0YV.UM0Z0Z1#T.T.UMUMT.XL0ZSESESEXCXCXCX?0YX:X?Y%X:XDX:0YX:0YX:0ZXDXDXB0ZXDXD0ZXDV,V,V,0Z0ZT5T5T5V,0ZV,V,T.T.0ZT.T/0ZT/T/X:0ZY%Y%XBXBX=0ZXBXBX@X@V,0YV,T40Y0ZT4T4V&T4V&V&T4T40YT40YT/T4T4V&T9V&V&XLX9T9XLT9T9V&T9VIVFVIVFVDVGVDVGXJXJT9VHXFXFVHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKXCVBVBXCXCVKXCVKXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVGXCVGXCVGXCVGT9VHT9VHT9VHT9VHVHY&VHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVKXCVKXCVKXCVKXCXCVGXCVGXCVGXCVGXMVHVGVHT9VHT9VHVHY&VHY&Y&SEY&SEVJVIVJVIVIVFVIVFVFVCVFVCVKXCVKXCXCVGXCVGYHYH/U/VYHYH/VYGYGX.YGYGYHYHYH/UYH/UYHYU/UY7Y7Y7XRY7/UYDY7Y7/UY7YU/UY7Y7Y7Y7/U/VY7/VYGYGYGYG/VYGYGYG/VY=YGX.X.X.X.X./U/VX.X.X&X&X,X,/UW3X,W;X,X,V=V=U8V=TWV)TWV)V)V?V)V?V)/QV)V)Y4Y4Y4/QY@Y@/QY@/Q/RY4Y4Y8/RY@Y@Y'Y,Y'/RYHYHYH/RYHY3Y3Y3Y3/QY3Y3/QYUYUYUYUYUY3YUY3Y3/P/QY3Y3/Q/RY3/RY3Y3YUYU/R/SY,/SY,/TYUYDYUYUYDY7YVYV/R/SYL/T/TYUY3Z&YUXRZ&Z&XRY;/SY;/SZ$Y;/TY7/TYVYVYLYLYL/TYL/TYLYL/T/UYVYG/UYGYGYG/UYGYL/VZ$Z$/VZ$Z$Z$Z$/V/V/WZ&/X/X/YYEYE/YYEYEYE/YYEYEYEYGYGYEYGYE/XYEYEYGYG/XYG/XY=/YYG/YY=Y=Y=Y=Y=Y=/YY=Y=YGY=Y=YN/XYNYGYGYG/XYGYGYG/XYG/XYGYGYXYXYX/X/X/Y/Z0#0#0$YNYNYN0$YN0%Y=X.0%X.YN0%0&0'X.X.0'X.0'0(0)0*0*X.X.X.X.0*X.WOX.X.VNVNX.WIVN0)0)0*0+X&WIX&WIWHX&X&WHWHX&X&WHX&WHWHWIWHWH0'VN0(0(WHVYVYX&X&X&0(WH0(WHWH0(WG0)WGWH0)VYVYVY0)VYVY0)0*W=W=0*WGVYWGWGW=WGW=W=0)W=W30)W3W3W3X,X,WUWUX,X,WUWUV=V=0'0(0(U>U>U>TWTWV=TWV=V=0'0(V=V=0(TOTWTW0(TWTWTWTW0(U>U>U>0(TLTL0(US0(TLTTTL0(TLTLTLTL0(TLTL0(V;TUTU0(TUTLTL0(TU0)0*TU0*TUTU0*V;TU0+V;V;UP0+V;UPV;UPUP0*UP0+V;V;UKUKUKU-UKU-U-0)U-U-U&V20)V2Y4Y4XEY@Y@Y@YIYIY@0'YI0(Y@Y@YIYIY@Y@Y@0'Y@Y'0'0(YI0(YIYIY'Y'0(0)0)0*0+Y,0+0,YIYI0,Y,0-0.YIYIYI0.0.0/YI00Y,Y,00Y,Y,000102Y,02Y,0303YK04YK04Y,0506Y,Y,06070708YM09090:YMYMY,0:0;0<0<0=Z#Z#YM0=YMYM0=0>0?0@Z&Z&0@Z&YK0@0A0B0B0C0D0EZ&Z&0E0FZ&Z&0F0GZ#0GZ#0H0HY-0I0J0J0K0L0M0MY00N0O0O0PY0Y00P0QY00R0R0S0TY+0TY/0UY/0U0VZ&0W0W0XY<Y<0X0YY<Y<0YYEY<Y<YEYEY<Y<0X0YY/Y/Y<0YY/Y/0Y0ZY/1#1#Y<Y21$1$1%1&1'1'1(1)Y<1)Y<Y<Y<YGYGY<1)Y<1)Y<Y<1)1*Y<Y<Y<1*YRYRY<1*1+1,1,Y<Z(1-1-1.YRYRZ(1.YRYG1.1/Y<Y<YGYG1/YGYG1/101111121314Z%Z%YGZ%Y<Y<131414YGYGYGYG14YG15Z%1516YG16YQ171818YQWJWJYQ18YQWJ18X.WJWJ1819YGYGWJWJY)19Y)Y)YGY)VTVTVQVQX.X.17WJX.X.X.17X.X.17X.1718VQVQ18VQVQVQVYVY18VYX(X(18X(X'18X'X'W3W318W%18W%WU1919WUWUWUW%WUWUWUWU18WUWU18X,WUWUX,X+X+X+WUX+WUWUX+X+WUWUWUWU15WU15X+16X+WRWRX%16U>TETETETETEU>U>TETETTTT13TTTTTTTETTTETETETE12TT12TLTLTLTL12TLTUTLTUTL12TUTU12TUTU121314141516U016171819U019U01:U01:1;UPV;V;V;1;1;V;1<UP1<1=UPUPV;V;1=1>V;1>UPUP1>UPUPUP1>U-XLU-YBYB1>1?YBYB1?1@YIYI1@YI1@1AYBYB1AYB1BYB1BYBYBYB1B1CYBYB1C1DYBYBYI1DYI1E1EYM1FYMYIYIYI1F1FYM1GYMYMYMYM1GZ'Z'YMZ'1F1GZ'Z'YPYP1GYPZ'Z'YMYM1F1GYMYJ1GY+YPY+Y+1GY+1H1H1I1J1KY+1K1LYSYWYWY*Y*1K1LY*Y*1LY/1M1NY/Y/1N1OYTYT1O1PYTYT1PYT1P1Q1R1SY/Y/1SXVYTYT1SY9YTXVY9Y9Y*1RY*Y*Y*Y*Y*1R1RY91SY9YRYGXVXVYGYG1RYGWZWZY9Y9WZWZWZ1QWZ1QWZWZ1QX/1R1SY91SY91T1TYG1UWZYGYG1U1V1VVW1W1XVWVWVW1X1X1YX#X#1Y1ZX#X#1ZXW2#X#2#2$VSVSVSVSX#2$VSVS2$2%WSWS2%WSWSWS2%2&VS2&VSVSWSWYWS2&2&2'VSVSWSWSVSWS2&VN2'VNVNVNVN2'VNVN2'2(2(2)2*W#2*2+W#W#WY2+2,2-2-2.2/2020W,21W,W,W,21W7212223W#W#W#W#X(22W#W#W#W#22W#W#W#W#X(X(X'X'WUWUX'WUWUWUWUWUWU2/WU2/20WM20WMWMWMWMWM2021WU21WUWUWUWU21WM2122WMWM22WT23WTX%X)X%X)U>U>U>2222TTUYUYU>22U>U>UYUY22UYU>U>2223U>U>2324TT24UYTTUY24UYUYUY24UY25UY25UYUYU/25U/U/2526U/U/26TTTMUUTTTLTLTLTLTL25TL2526TL272728TLUPTL28TL29TL29TL2:2:YBYB2;YBYB2;YBYBYBS0S02:2;S:S:2;S02<S0S0S0S:S0S0T'2;T'2;T'2<T'YMYMYCYCT'T'S0T'2:T&T&T&Y*2:Y*2;Y9Y92;2<2<2=WFWFY9Y92=Y9Y92=2>2?2?W(WFVZW(W(2?W(XV2?W62@2@W(2A2B2B2CS9W62CY9W(W(2C2DW(W(W(2DW(2E2E2F2GVU2GVUVUVUWQ2GWQWQ2GX#2H2IVU2I2JX#VU2JVUVUX#X#2JX#2JX#VU2KX#2KX#X#X#2KX#X#2K2LX#2MX#W72MW72MW7W7W7VS2MW7W7W72MW7W7X#2MX#X#W7W7W7W9W72LW7W72LW7W7W7W7W72L2MW,W,2MW9W7W9W9W92LW9W9W9W9W9W9W<W7W7W72K2KW92LW92L2MW92NW92N2O2PW<W<2PW<WT2PWTX%2PX%X%X%V:U/V:V:UFU/UFUFTMUUTMTMTMTMTM2MUFULUFUF2LTLTMUETM2L2M2NUEULULULTLTL2MTLUL2MULULTLTL2MTLULUIULUIULUL2LULUL2LULUL2LULUIUL2LXNUEXN2LUPXNXNUPUOUPUOUPUOUPUOUPU.U.U.X2SASASAS:S:SASASAS0SASZ2FS9T&S9S9VO2F2GVOWQWQWQS9WQS9S9WQWQS9WQVUVUWQWQW@2CWQ2DX#X#WQX#WQWQWQ2CWQ2CWQWQ2CWN2D2EX#X#2EX#WNX#W+W+X#2DW+2EW+2EW+WE2EX#2FXXX#2FX#2GX#W9X#W92FW<W<W<W92FW92G2GW<W<W<W9W<W9W9W<2FW<2GW<2GW<W<W:WUW:W:W:W:W<W<W:W:2EW:2EW:W:2FW<X$2F2GW<W<W<2G2G2H2IW)2IW)W<W)X$X$2IW<W<W<W<2IW<W<W)2IW<W<2IW<W)2IW)2JW<X-W<X-X-WU2IWU2IWUX-X-WUWUWU2IWUWUVXWUWUWUWU2HWUWU2HWUWUWU2HWUWUWXY$WXWUWX2GWXWXY$2GX%UFUFUF2GUFUI2GUIUI2GUIUIUHUHUIU*UHTH2FTHUH2FUHTHUH2FU*TAU7UZU7U7UZV-XMV-V-V%XMXM2CV<V5V52CV1U;2DU)U)TVUDXFSAXF2C2CS=S=S=S0SYSYSYS92BSHSHSHS1SHS1XWWQSHWQSHSHS1S1WQWQVM2?WQ2?VMVMW<W)W<W)W)X-2>X-WUWUX-X*X-X-VXVX2<X*VXVXVXVXX-VXX-2;X-VXX*2;VXVXVXX*VX2;VX2;VXVXWUWUVXVXVXVXY#WU29VXX*VX29W0X*W0WU29WUWUWXWXWXWDUI28XNXNU*V7TYTYV7V72728TI28TITITQU;28TITDTITITITITI27TIUDUDV6V4V#V#26TIS=S=262727S=S5S5S=S2S=S2S2S2S<S2XF25XFSBS<S2S<S-SBS<24SVS2T#S2T#S2S2S2T#S2S2S-S-T#T#21T#S.21S.S.S-S.S-21SYSY21SYSYSYSY2121SKSKSK21T$SMT$S.21S.SMT$SKT$SK20SKSKSKSKS@SK2020S@21SXSK21SKS@SXSX21SX21SX22SXSXSXSXS3SHSHSHSFSHS1SHS/S/2/S/S/2/S1S/S/S1VMS1S1S/2.S/S?VMVM2.XWW<W<2.W'W<W'W'W'VXVX2-Y#VXVXVXWK2,VXWKWKVX2,VXVXX-2,X-VXX*W0WKW0WKW0W0W0TITITD2*U,XLU,UXTJXKTJT@SV2(SVSV2(S.S-S.2(S.XES.2(2)2*2+2+SK2,SKSKSKS@S@SKS@2+2,SQSQSLSLS3S3S32+S7SJS7SJ2*S3SOSOSFSF2*SOSOSOSJSOSOSOSO2)SOSGSO2)2)SGSGSGSG2)2*SWVXVXW>2*VXVXVXW>W>W>2)W>W42)W4W42)W4W4W4WL2)WLWLY$W$W?2)2)W?W?W?W?W?WC2)WDWDWDWCXMU+U=U+U+U+2'U+U+U+2'U=U=U+U=U=T@U#T@2&T-U#T-U#U#U#U#2%SLS7SLS7S72$2%2&S7S7SJ2&SN2&XRSN2&SNSNSNS7SJSJSJ2%SJSJSJSJSJSJSOSO2$SO2%2%2&SO2'SOS8SO2'SGSG2'S>2'S>S8S>2'SW2(2)S>SWS>S>SWSW2(SWS>SWS>S>SWXW2'XWWLWLW4WLWLWC2&WCU=V*U=U=V*V*V*U<UBUBUB2$V$V$V$2$T-T=T-T=2#V.V.V.U#V(2#T=V(V(T=2#2#T=T=T=T=2#T=U@T=2#T=T=2#2$2%2&V(V(2&XJSNSNSN2&SO2&SP2'SPSP2'SOSOS>SPSPS>S>2&S>SPSPSP2&2&2'SR2(S6SRS6SRS6SR2'S6WCWC2'WCU=U=2'2(2(U<V,U<V,U<V,U<U<U<2'U<U<U<2'T;2'TGTGTGTGTG2'TG2'V.V.V.TGV.TG2'2'V.V.V.T=T=V.2'V.T=V.V.2&SNT(T(SPSPSC2&SPSPSPSDSPSDSDSDSC2$SCSCSDSDSC2$SRS6SR2$2$SRSDSRSDSD2$SDX>X;X>X;V,V,V,T6T2T2T6T2T1T5T1T51XT5T5T5T51XT5T5T/T/T/1XT8T01XT0T21XT2T21XT0T/T0T0T0T01X1XT;1YT;1YTGT;TGTGV.V.V.T;T;T;1XT0T0T01XT;T01X1YT0V.V.V.1XV.V.V.SC1XSE1YSC1YSCSESE1YSE1Z1ZSESSSESESESE1ZSESTSESEX;X;XDXDX;X;XDXD1W1XXDXDV,T6V,T6V,T6V,T31VT3T3T3V,T3V,T3V,T3T51UT3T31UT51UT01VT0T0T0T01VT7T0T71VT01V1WT.1WT.T.T.1WT.T.T.1W1X1YUMT01Y1Z2#2#UMUMUM2#V.UM2$2$2%UMV.T.2%T.T.2%UMT.2&SE2&SESEXCXCX?2&2&XDXDXDXB2&XBXBXBXB2&XB2&2'XBXB2'XBXBXBV,2'V,2(2(T5T5T5V,T5V,T/T.T.2'T.T5T5T/T/2&XBXBXBX=XSX@X@V,2%V,T4T/T/T42%T/T/2%2&T4T4V&T4T/T/T4T4YU2$YUYU2$Y72%Y7YHYH2%2&YHYHYHYUYUYUYH2%YUY7Y7Y7YUYDYUYDYDY7YDY7YUY7Y7Y7Y7Y7Y71YY7Y7YGYGY7Y7YGYGYGYGY7YG1VY=Y=Y=1V1WX&X&X&1WX&X&X,X,X,W3V?V?V)V?Y4Y4Y41U1UY@Y@1V1V1WY4Y4Y@Y@Y4Y4Y8Y8Y@Y@1U1V1W1XYH1XYUYUY3YUY3Y3YHYU1WYUY,1WY,Y,1WY3Y,1XY3Y31XY,Y3Y3Y31X1XYUY31YYUYUY,Y,Y3Y3Y,Y3Z&Z&1WZ&1WZ&1X1YXRYVYLYLYVYVYLYLYLYLYL1WYUYUY3YUZ&Y;Z&Z&Z$1UZ$Z$Y;Z$Y;Y;Y7Y7YVYVYLYL1SYLYL1SYLYLYVYGYVYVYGYGYV1RYGYG1RYGYVYVYLYLYLYGYLYLZ$Z$Y;Z$Z$Z$Z$YEZ&1NZ&Z&Z$Z$1NYE1NYEZ&YEZ$1NYEYE1NYEYEYEYLYLZ$YEYEYGYEYEYEYGYE1LYEYGYGYG1KY=Y=Y=Y=Y=YGYGYGYGY=1JY=Y=Y=1JY=Y=Y=1JYGYGYG1JYGYGYX1JYGYX1JYX1J1KYQYN1K1LYGYGYN1LYGYGYGYGYG1LYGYGYG1LYXYX1LYNYXYN1LYNYNYNYN1LYNX.X.X.Y=Y=1KYNYNX.YNYNYNYN1J1KYN1KYN1LX.X.1LX.1LYGYGYGYN1LYG1MYGYGYG1MX.X.1MX.X.1MX.X.X.1MX.WOVN1MVNVNX.X.X.1MX.X.X&X&X.1LX&X&WHWH1LWHVYVYVN1LVYWHVYVYX&X&X&WGX&WHWHWHWGWG1IWGWHWGWHWGWHVYVYVYVY1GVYVYWGWGWGW=W=W=1FW=WGWG1FWGW=1FW=W3W=W=1FW3V=V=V=1FV=V=1F1GV=1GU>U>V=V=U>U>V=V=U>1FV=V=1FU>TWTWTTTTTWTWTTTTU>TEU>1DTT1DTTTT1D1ETLTL1ETLTLTLTL1ETLTLV;1EV;V;1ETU1F1GTUTUUGTU1FUG1G1HTUTUTLTLTU1GTUTU1GV;TUV;V;V;TUTU1FUKUPUKUP1FUPUKUP1FUPUPU-U-U-1FTBTBTBV2Y@Y@Y61E1EY6YI1FY@Y@1FYIYI1FYI1G1G1H1IY.YI1IYIYI1I1JY.Y.1J1KY.Y.Y'Y'1K1L1L1M1NY,1N1O1P1Q1QY.YI1RY.Y.1RY.Y.Y,1R1S1S1TYIYI1TY,1U1V1V1WZ)Z)YI1W1X1Y1YZ)1ZZ)1Z2#2$2%Y,Y,2%2&Y,2&Y,2'Y,Y,Y,2'Y,2'2(2)2)2*2+YKY,YKY,Y,2*YKYKYKYKYKY,YK2)Y,2*Y,2*2+Z)Z)2+2,Z)Z)2,2-2.Z#2.Y,Z#2/Z)Z)Z)2/Z)Z)2/20YM20YMYMZ)20212222YMYMYMY,Y,Y,2222232425Z#25Z#Z#25Z#Z#Z#2526Z#Z#2627YMYM2728292:2:2;Y?Y?2;2<Z'Z'Y?Y?Z'Z'Z&Z&2;2<YKZ&YKYKYKYKYK2;YKYK2;2<2<Z&YKYKZ&Z&2<2=YKYK2=2>YK2>2?Y-2?2@Y-Y-Z&Z&Y-Y-2?2@Y-Y-2@Z&Y-Y-Z#2@Z#Z#Z#2@2A2B2BY-2C2DY02DY0Y02D2EY0Y0Y?2EY?Y?2E2FZ'Z'2F2GZ'Z'Z'Z'2G2HY0Y0Y02HZ'Z'Z'2HZ'2H2I2JY-Y-2J2KY-2K2L2M2M2NY0Y02N2OY0Y0Y0Y/2OY/Y0Y02O2PY0Y02P2Q2QY+2RY+Y02RY/2SY/Y/Y+2SZ&2SZ&Z&2SYEYEYE2SY<Z&2TYEYE2TY<YEYEY<Y<Z&Z&2SY<2SY<Y<Y<YEYEY<YEYYYY2RYYYYY<2R2SY<Y<Y<2SY<Y<Y/Y/Y<2RY2Y2Y2Y2Y/2RY<Y<2R2S2SY<Y22TY2Y2Y22TY22TY<Y<2TY<2U2VY<Y<2VY/YEYEYE2VYEYEY<Y<2U2VY<Y<YGY<Y<Y<YGYGY<Y<Y<2TY<Y<2T2UY<Y<2UY<Y<Y<Y<Y<Y<2UY<Y<2U2VY<2VY<Y<2VZ(Z(Z(Y<Y<Z(Y<Z(Y<Z(Y<Y<Y<2TY<Z(Z(Y<Z(Z(Y<XVXVYGYGY<2RYGYGY<YGY<2QY<YGYGYGYGYQYGYG2PZ%2P2QZ%Z%YQ2QYQYQ2QYQYQYQYQYQZ%2QYQYQZ%Z%Y<2PY<Y<2PYGYGYGY<2P2Q2R2RZ%Z%Z%YG2RYGYGZ%Z%Z%YG2QYGYGYG2QYQYQYQYQYQ2Q2RYQYQ2RYQZ%WJ2RWJYNYNYQYQYNYNYN2Q2Q2RYGY)Y)WJY)Y)Y)VTY)Y)WJ2PWJWJX.X.VRVR2OX.VRX.VTVTVT2OVTVT2O2PVTVT2PVQVYVYVNVNX(X(2OX(2O2PX'X'2PW%W%W%W%W%W&W%2O2PWUWUW%W%2PWUWU2PWUWU2PX,X,X,WUWUWUX+WUWUWUX+2NX+X+X+WRWRX%X%2MTT2NTTTT2NTTTTTTTTTT2NTLTUTLTU2M2NTL2O2OTUU0U0TUTU2O2PTU2PUPUP2PV;UPUPTLTLTLU0TLU0U0U0TL2NTL2OTLU0TL2OU0U0U5U0TL2NTLTL2NU22OTLU0UPU0UPU02NU02OU0UPUPUP2N2OUPUPV;V;V;2O2OV;V;V;V;UPUPUPV;V;V;UPV;2MUPUPV;V;UPUPV;V;UPUP2KUPUPUP2KUPUPUPUPUKUPUKYB2JY>Y>Y>2JY>Y>2J2KY>Y>YBYB2KYBYIYI2KYIYB2KYBYBYIYIYBYBY>2JY>2KY>2KY>YBY>2KY>YBYIYIYBYBYIYIYB2JYIYI2J2KYIYI2K2L2LYM2M2NYI2NYIYIYMYM2NYM2NYMYIXRYIYIYI2N2NYMYIYMYIYMYIXR2MYMYMYMZ'2MZ'Z'YPYP2MYPYPYPZ'2MZ'2MZ'Z'2M2N2O2P2P2Q2R2SY/Y/Y+Y+Y+2RY+Y+YJYJYJ2RYJ2RYW2SYJ2SXRYWYWYWYW2SY+Y+2SY+2S2TYSYS2T2UYWY*2UY*Y*Y*2UY/Y/Y/2U2V2WYTY/Y/YTYTY/2VYTYT2V2WYTYTYSYTYSYTYTYTYTY*YTYT2UYTY/Y/2UY/Y/Y/2UY/2UYTYTYTYT2UYTYT2U2VYTYT2VY92WY9Y*Y*Y*Y9Y*2VY*Y*Y*Y9Y9Y92UY9Y*Y*YGYGYG2UWZWZY9WZYGYGWZWZY92SY92TY92TY9Y92T2U2VX#2VX#X#X#Y9X#Y9X#YGYGWZYGWZWZ2TWZYGYG2TYGYG2TYGVWX/VWX/VWX/X/2SX/VWVWX/VWVWVW2RVW2R2SX#X#2S2TX#X#2TX#X#X#X#VWX#2TVWVW2TVWX#VWX#X#WSWSVSVSWSWS2R2SVSVSX#X#VSVS2RVSVSVS2RVS2RWS2SWSVS2SVSVSWSWSVSWSVS2RVSVSWSWYWS2R2R2SVS2TWSWS2TWSVNVN2TVNWP2TWPVNVNVNVN2TVNVN2TWYWYW#W#W#2SVNW#W#VNVNW#W#W#W#2R2SVNW#W#W#W#2RW#W#2R2S2TWYWYWY2T2U2U2V2WW,WY2W2X2Y2Y2Z3#3$3$3%W#3&3&3'W#W#W,3'WS3(WS3(WSW,W,W,3(W,3(3)3*3+3+3,3-3.3.3/W#W#3/30W#W#VNVNW#W#3/WUWMWMWUWU3/WMWU3/30WMWU30WMWMWMWMWM30303132WTWUWUWU32WUWUWU32WU32WMWM32X+WMX+WMWMWM323233WTWTU>U>U>33U>TTU>UYU>32U>3333UYUYUYU>33XPV:3334V:V:V:34V:V:V:34V:U/TTTT34TT34TTUYUYTTTTUYTTUYTTUY33UYTTUYTTUYUYU/32UYUYU/U/UYTT31U/3132UUUU32TLTLTLTL32TLTLUPUP3233TLUPTLUPTLTLTL3232UPUPUPUPUP32UP32UP33UP33UPTLUPTLUPUPUP32YBYBYBYBYBS:3232YB33S:S:33S:S:S:S0S:33S0S033S033S0S0S0S033S034S0S0S034S034T'T'T'T&34T&Y9Y93435Y*35Y*Y*35Y9Y*XV35Y9Y*Y9WFW-WFWFW-34WF35Y9Y9W-W-Y9Y93435Y935363737W(W(W(W-W-37WF3738393:VZVZ3:3;3;3<3=W/3=W(3>W(3>3?VOVOW(W(VOVOW.3>S93?3?3@W63AY9Y93A3BY9Y9Y9W(Y93AW(W(W(W(W(3AW(3AVUVU3AY9W(W(3A3BVUVU3BVUVUVU3B3CVUVUWQVUWQWQX#X#3BX#3BX#VU3CX#X#3CX#3CX#X#X#VU3C3D3E3EX#3FX#3FX#VU3GVUVUVU3G3GX#3H3IVSX#X#X#3HVSX#X#VSVSVS3HVSVS3HVS3HVSX#VSX#X#X#W7VSVSW7W73F3GW7W7W73GW7W7W7W7X#3GW,3GW7W73GW7W7W7W7W7W73GW7W73G3HW7W93HW9W7W9W9W9W73GW7W7W73G3H3I3IW9W9W9W93IW93J3JW<3KW<W93KW9W9W93K3L3MW93MW93N3NW<W<W<W<W<3NW<WTWTWT3NWTY%X%Y%TMTMULULUU3LUUUUULUEUL3LTM3LTMUL3LULULULUE3LULUEUETLUE3LTLTLUE3LULUL3LUL3L3MUEUEUIULUI3M3MTLUEUETL3MXNUPT&S9T&3MS9S9S93M3MWQWQWQW@3MW@W@W@W@WQ3MWQWQWQ3MWQ3MWQWQVVWN3MWNWNWNWQWNWNWNW+W+X#X#WEX#X#3JW+3KW+W+W+WE3J3KWEWEWEX#3KX#3KXXWEWE3KW7X#3LX#3LX#X#W9W9W9W<W9W9W93KW9W<W<W<3JW<W<W<W<W<3JW:3JW:W<W<W<W:W<W<3I3JW<W<W:3JW:W:W:W:3JW:W<W<3JW<X$X$W<W<W<W<W<3IW)W)3I3J3JW<W)W)3J3K3LW)3L3MW<W)X$X$W<W<W<W<W<X-W)3KW)W)3KW<W)W<W)W)3KW<W)W<W)W)X-WUWUWU3IWUX-X-WUWUVXVXWUWUWU3HWUWU3HWUWUWU3HWUWUWXWXWXWXY$WXX%UFUFT>3FUFUFUIUIUI3EUIUIUH3EUH3FUHUH3FTHTH3FTHTAV%3FV%V5T+T+T+3FV3T,3FT,XFSASA3FSZSZ3FS=S9S9SHSH3EWQVMVMWQWQVMVM3DX-W)X-X-3DVXVXVXVXX-VXX*X*3C3DVX3DVXVXVX3DVXVXVXVXX*VXW0W0X*W03B3CWUWUUI3CUIU*TYV7TYV7V7V7V7UAT:T:3AT:3ATQTITITDTDTD3A3AV#TITIS=S=3AS4S=3A3B3CS=S=S=3CS<S<XFSBSBSBSBSVS-T#S-S-T#3@S.S.3@S.S.S.T#SYT#T#SYSYSKSKSYSKSKSKSMT#SM3=SMT$SMT$SYSKSKSKSK3;SKS@SKS@SKS@3:S@S@S@SKS@SKS@39SXSXSXSXSX39SX39SXSXSXS1S1S/S/S1S1S/S/S1S1S?S?S?S?36SUW<W<W<W'35VXVXVXVXVXWKWKVXWKVXWKX-VXX-VXTITITD3232S-S-S-S-S-S-S.S-S-S-S.S.30S.31SMSMSM31S.31S.S.313233SMT$T$T$33T$33T$XESKSKXRSQS@S@SQS@S331S3S3S3S331S331SOSOSOSOSOSO3131SG32SGSOSO32SGSGSWSWSW3132SGSWW>VXW>W>W>W>W431W431W4W4W>31W432W?W?WLW?W?31W?W?Y$W?W$31W?W?WCWCU+U+U=U+U+U+U+U=U#U#3.U#U#U#U#3.S7S7S73.S73.XRSNSNSJ3.SJ3.SJSJSJ3.SJSNSN3.SJSNSNS7S73.SJSOSGSO3.SO3.3/SISOSOSO3/SISISI3/S8S83/S8SOS>SOS>3.S>SISISI3.3/3030SWSWSWS>30S>S>30SWS>SWSWSW30SW30S>S>S>30WCWCWCUB30V$V$V$V$V$30V.30V.V.V(V(T=30V(V(30U@T=30T=T=30U@T=U@T=U@T=T=V(U#3/V(3/U#V(V(V(V(3/V(V(V(V(U@3.V(U@U@SN3.SNSOSOSO3.SOSP3.SPSP3.SO3/30S>S>SP30SPS6S6S6SPSPSP3/S6S6S63/SR3/SR30S630SRSRW4WCW4WCU=U=U=3/U=V,V,V,V,U<V,V,U<U<3-T5U<U<T5T53,TGTGTGTGTGTG3,TPTP3,V.TGV.3,V.TG3,TGV.V.T=T=T=SNSNT(T(SD3*SCSDSCSDSCSDSDSDSE3)S6S63)SRSD3)SDSDSDSD3)SDT53)T5T5T5T;T53)T/3)T/T/T83)T8T0T/T/T2T/T/T03(3)T0T0T03)T;T;3)T;3)3*T;T;T;3*T;TGT;3*T;T0T03*3+V.3+T0T0T0T0T0V.V.T0V.3*V.SC3*3+SESCSESESESCSCSC3*SESESE3*3*SSSSSSSESESSSSSESE3)ST3)XDXDXDXD3)XDXDT3T6T3T3T53(T53)T3T33)3*3*3+T73,T7T0T7T0T0T0T03+T0T0T5T5T0T03*T.T0T.T5T.T03)T.T.T5T.T5T.T03(3)UMUM3)UMUM3)UM3*UMT03*T03+T0T03+T0T03+T0UM3+UMUMUMV.V.V.3+V.V.UMUMUMV.UMUMV.V.3)V.3)UMT.T.UMUM3)UMUMUMT.T.3(SSSESEXCX:X?X:X:3'X:XDXD3'XBXBX:XB3'XBXDXD3'XBXDXDXBXBXD3&XB3'V,T5V,T5V,T5V,T5T5T5V,T5T5T.T53$3$XBX:XBV,V,V,T/T43#T4T43#T4T4T4T43#T4T4Y7Y73#3$Y7Y73$Y73$Y7Y7Y7YHYH3$YGYHYH3$3%YHYUYUYUY7Y7YGYGYGY=Y=Y=2Z3#X.X&3#3$X&X&3$X.X&X&Y43$3%Y@Y4Y43%Y@Y@Y@3%Y@Y@Y43%Y4Y43%Y4Y4Y'3%Y'Y'3%Y,3&Y,Y'Y'Y'3&3&Y,3'Y,YH3'YUYUYHYH3'YHY3Y3Y,Y,Y3Y3Y,3&Y,3&Y,Y,3&Y,Y,Y,Y3Y3Y,Y,Y33%Y3Y33%YUYUYUY,Z&Y,Z&Y,3$3%3&3&Z&Y,Y,Z&Z&3&Z&YLYL3&3'YLZ$Z$Z$YLYL3&YLYVYV3&3'YV3'YVYG3'YGYGYGZ&Z$Z&Z&Z&YEZ&YEZ&YEZ&Z&Z$Z$YEYEYEZ$YEYEYE2ZYEYE2Z3#YGYGY=YGY=Y=Y=Y=YNYNYNYN2YYN2YYGYXYXYGYGYXYXYG2XYGYGYXYNYX2XYNYN2XYNYG2XYGYG2XYNYGYGYNYN2XYGYGYGYNYNYGYGYG2WYXYNYNYNYN2VYNYNYN2V2WX.Y=Y=YNYNYN2VYNYG2VYNYNYNYNYN2VX.2VX.YNYNX.X.2VX.YNYGYGYGYN2UX.X.2UX.X.X.YGYGYG2U2UX.2VX.2VYGX.2WX.X.2WX.WIWIVNWIX.X.2V2WX.X&X&X&WHWHWHVYVYVYVNVYWHWGWHWHWGWGVYWG2RW=W=W=WGWGVYWG2QW=W3W3W=W32QW3V=2QV=U>2Q2RU>U>2RV=U>U>U>U>2RU>2RV=U>U>V=V=U>U>2QTETETETLTLTTTTUT2PUTUTTLTLUTTLV?2OTLTLTLTUTL2OV;V;2O2PTUTUUGTUTL2OTLTLUG2OTLTL2OUGTLUGTLTLTL2OUGTU2OTLV;V;TU2OV;V;2OV;UKUK2OUKUPUK2OUKUPUKUP2O2OU$U$U$Y6YIY6YIY6Y6Y62NY:Y:YIYIY@2MY@YIY.Y.2MY.2MY.YI2NY.2NY.Y.2NY'2O2PY.Y.2P2Q2Q2RYI2SY'Y'2S2T2T2UY.Y.2U2VY.Y.Y'Y'2V2WY'2WY'2X2X2Y2ZY,2Z3#Y'3$3$Y,3%Y,3%Y,Y,Y,Y'Y'3%3&3&Y,3'Y,3'3(3)3*Y,Y,3*Y,Y.Y.3*3+Y.Y.YIYI3*Y.YI3+Y.YA3+3,Y,Y,YAY,3+3,YIYI3,3-YIYIY,Y,3-Y,3-3.YIYI3.YIYIYIYIYIYI3.YIYIZ)YIYIZ)Z)3-YI3-YI3.3.YI3/YIZ)Z)3/Z)YIZ)YI3/YI3/YI3030YM31YMYIYI3132YMYM32YM3233YIYI33Y,343535Z&36Z&36Z&37Z&Y,Y,3738Y,Y,Y,38Y,3839YK393:YKYKY,Y,Y,YKY,39YKYK39YKY,YK39YKYKYKYI39YI3:3:Y,3;Y,3;3<3=3>3>3?3@Z)3@3AZ)Z)3A3BZ)Z)3BY,3C3DY,Y,Z#Y,3CZ#Z)Z)Y,Y,Y,Z#Z#Z#Z#3B3BYM3CYMZ)Z)YM3CZ)YM3CYM3CYMYMYMZ)Z)3C3D3DYMYMYM3D3EYMYMZ)YM3EYM3E3FY,3GY,Y,Y,3GY,Y,Z#Z#Z#Z#Z#YMZ#Z#YMYMY,3DZ#Z#Y,3D3EZ#YKYKZ#Z#YKZ#Z#Z#YMZ#YMYMZ#Z#YMYMZ#Z#YMYMZ#Z#3@3AYMY?YM3AY?Y?3AY?Z#Z#3AZ#Z#Z#Z#Y?YM3@3A3B3BY?3C3DYKZ&YKYKZ&Z&3CZ&YKYKZ#YKYKYK3BYKYKYK3B3CZ&Z&YKYK3B3CYKYK3CZ&3D3EYKYK3E3FYKYK3FY-YKYKY-Y-YK3EY-Y-Z&Z&Y-Y-3DZ&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z#3AZ#Z#3A3BZ#Y0Z#Z#Z#3B3BY03CY03CY-Y-Y-3CY-3D3EY-Y-3EY-Y03EY0Y03E3FY0Y03F3GY0Y03GZ#Y?Y?3G3HY?3I3IY03JY0Y?Y?Y?Z'3IZ'Z'Z'Z'Z'YPZ'Z'Z'YPYPY0Y03GY0Z'Z'YPZ'Y0Z'Z'Z'Z'Z'3E3FZ'Z'Z'3FY-Y-3FY03FY0Y0Y0Y-Y-Y-3F3FY0Y0Y03FY0Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-3D3E3E3F3G3HY03H3IY/Y0Y0Y03IY03IY03J3JY0Y+Y+Y03J3K3LZ'Y+Z'Y+Z'Y+Z'3KY0Y03KY/3KY/Y/Y/Y/Y/Y+3KZ&YEZ&3KYEYE3KYEZ&Y<Z&Y<Y<Y<Z&Y<YE3IY<Y<Z&Z&Z&3IZ&Z&Z&Y<YYYYY03HYYYYY/3HYYYY3HYYY<Y<Y/Y/Y<Y<3GY<3GY2Y/Y/3GY<Y2Y2Y<Y<Y23G3GY<3HY<Y<Y<3HY<Y23HY2Y2Y23HY23IY2Y23IY23IY<Y/Y/3I3J3KY/3KY/Y/Y/YEY<Y<Y<3JYEY<Y<YEY<Y<Y<Y<YGY<Y<YGYGY<Y<3GYG3HY<YGYGYG3HY<Y<Y<3HY<Y<Y<Z(Y<Y<Z(Z(Y<Y<3F3GY<Z(3GZ(Y<Y<YRYRYGY<Y<Y<Y<YGY<3EYG3EZ%Z%YGYG3EYGYQYQZ%YQ3D3EYQYQ3EYQYQYQ3EZ%Z%Z%Y<Y<Y<YG3D3EYGYGYGYG3EYGY<Y<Y<3E3EYGYGYGYG3EZ%Z%YGZ%YGYGZ%Z%YGYGYG3CYQYQZ%YQZ%YQYQYQYQZ%YQYQ3AYQZ%Z%WJWJ3@X.X.X.Z%Z%Y)Y)3?3@Y)Y)WJ3@WJWJX.X.3@X.VTVTVT3@VTVT3@VQVT3@VQVQ3@VQVQVQ3@X(3AX(W3W33AX'W3W33AX'W3W%W%W%3@3AWUWU3AWUWUWUW%W%W%WUWUX,WU3@X,X,3@X,WUWUWU3@U>TTU>3@U>3@U>TTTETETTTTTTTLTLTLTUTUTU3>TUTUTU3>3>U0U1U0TUTU3>3?TUTUTU3?TUV;3?V;TUTU3?3@TU3@3AUP3AU0TLU03AU03BU03BU53CU5TLU3TLTLU5U5TL3BTL3BTLTLUPUP3BUP3BUPUPUPU9U9U93B3B3C3D3EV;UP3EUP3EV;3FV;3F3G3H3IV;V;3I3J3JUPUPUPYB3J3KY>YBYBY>3KYBYB3KY>YBYBY>Y>Y>3JY>3K3KYI3LYBYBYIYBYBY>YBY>YBY>YBY>YBYBYBY>YBYBYB3HYB3H3IYBYB3IYI3JYBYIYI3JYB3J3KYBYBYIYBYBYB3J3KYIYIYIYMYIYIYMYM3JYMYIYIYI3JYMYM3JYM3JYM3KYMYIYIYI3KYIYMYIYI3J3KYMYMZ'YPZ'Z'Z'YPZ'3JYPYP3JYPZ'3JZ'Z'YPYP3J3KYPYJYPYJZ'3JZ'Z'3JYJZ'YJZ'3JYP3K3KY+3LY+YP3LYPYPY+Y+YPY+Y+3KY+3LYJYJ3LYWY+Y+3LY+Y+Y+3L3M3MYW3NYWYW3NYWYWY+Y+3NYSY+3NYSYS3NYSYSYSYSYSYWYSYSYS3M3NYSYSY*Y*Y/Y/3MY/YT3MYTYT3MY/YTYTYTYTY+Y+Y/Y/YT3LY/Y/3LY/3L3M3NYTYTYTY*Y*Y/Y/Y/3MY/Y/3MY/YT3MYTYTYTY/YTYTY/Y/YT3LY/Y/3LY/YTYTYT3LY*3LY*3MY*3MY*Y*Y9Y9Y*Y93LWZWZWZWZX/3LX/Y9X/X/X/X/X/Y93KX/X/3K3LX/X/3LX/Y9Y9Y93LX#X#Y9X#WZWZWZVWVWYGVW3JYGYGYGVWX/X/3IVW3IVWX#X#3IVWX#X#VWVW3IVWX/X/VWX/3HVWX/X#VWX#X#X#VWVW3GVWVWVW3GVWWSWSVS3GWSWS3GWSVSVSX#X#VSVS3FVSWSWS3FWSVSWSVS3F3FWSVSWSVS3FVSVSWS3FWS3GWSWSVS3GWSWS3GWSVS3GVSVS3GWSVSVSVNVNWP3G3GVNVNVNVNVN3G3H3HWY3IWYVNVN3I3JW#W#3J3KW#W#3KW#3K3LW#W#VNVN3L3M3MWYWYWYVNWYWYWY3L3MW,W,WYWY3M3N3N3OWYWY3O3PW,W,WYW,3PW,WYWYWY3PW,3PW,W,3PW,W,W,WYWY3P3QWY3QWYWYW,3Q3R3S3SWYWY3T3T3UW#W#3UW,W#W#W#W#W,W,W,3T3U3V3V3WW#3XW,W,3XW,WSW,3XW,3XW,WSWSW,W,3XW,3XWYWYWY3X3YWYWYWYWY3YWYWYWYWY3Y3YW#WY3ZW#W#3Z4#4#4$4%W#4%4&W#W#W#4&W#W#4&4'W#W#VNVN4'4(VNVN4(4)WUWUWU4)WUWUWUWM4(4)4*WMWU4*WUWM4*WMWMWMWM4*WTWTWMWMWM4*4*4+WTWT4+WTWTWTWU4+WUWUWUWM4+WM4+WUWMWMWUWU4+X+WMWMWM4+WT4+WTWT4+WTWTWT4+UYU>UYU>UYU>4+4+4,U>UYUYUYU>UYU>U>V:V:U>U>4*4+U>U>V:V:4*4+V:V:4+4,4-UY4-TTTTTTUYTTUYTT4,TTUYTT4,U/U/U/4,U/U/U/UU4,UUUU4,TT4-TT4-TLTLTLTL4-TLTLTL4-TLU:4-UPU:UPTL4-TLUPTLUP4-UPUPUP4-UPUPUP4-4.TLUP4.UP4.UPTLUPYBYB4.YBYBYBS:S:YBYBYB4-YB4-S:S:S:S:S:4-4-4.S:4/S0S04/S04/S0S:S0S0T'S0S0S0T'S0T'S0S0S0T'S0T'T'T'T'T&T'T&4*Y9Y9Y9Y9Y94*Y9Y*4*Y*Y*Y*Y9Y*XVY9Y9Y94)W-W-4)W-4)4*WFWFY9Y9W(W(Y9Y94)Y9Y9Y9Y94)W(4)W(W(Y9W(W(W(W(W(4(W(4(WFWFWFVZ4(VZVZ4(4)VZVZVZVZVZ4)VZVZ4)W(W6VZW6W6VZ4(W6W6W6W6W64(W6W64(4)W64)W64*VZ4*4+W(4+W(W6W(4+4,VO4-W(W(4-W(W6W6W.4-4-W6W6W6W6W6W6W/4,W/W/VOW6VOW64,Y9Y9W(W(4+Y9W(W(Y9Y9Y94+W(4+W(W(W(VU4+VUY9Y94+Y9Y9Y9W(4+Y9Y9VUVU4*VUVUVUY9Y9VU4*Y9Y94*VUX#X#4*X#VUX#VU4*X#X#VUVUX#X#VUX#4(X#VUX#4(X#X#X#VU4(VU4)4)X#4*X#X#X#VUX#4)X#VUVUX#X#VU4)VUX#VUVUVUX#VUVUVUX#VUX#VU4&4'VU4'X#4(X#X#VSX#X#VSVS4'4(VSVS4(4)4)4*X#VSVSVSVSW7VSVSW7W74(WS4)4*X#W7X#X#4)W,4*4+4+W7W7W7W7W74+W9W7W7W9W9W74*W9W9W9W9W7W9W7W7W74)4)4*W7W74*4+4,W9W7W9W9W94+W9W9W9W94+W9W9W94+W9W9W<W<4+W<W<W<W9W<4*W<4+W9W<W<4+W<W9W9W94+W<W<4+W<W9W9W94+W94+W9W<W9W<W<W<W9W<W<W<WTWTWTX%TLTL4(TLUEUEULUETMTMTM4'TM4'TM4(UETLUE4(UE4(UEUETLTL4(TLULUL4(UI4(4)UEUETLTLUE4)UIULUIULTLTL4(UETL4(UPUPS9S9T&S9S94'S9WQ4'WQWQWQ4'4(W@VU4(WQWQWQWQVV4(VV4(VVWQVVVVWNWNWNW+WEW+4'W+4'W+W+W+4'W+WE4'WEWEWE4'W+W+W+4'W+4(WEW7W74(W9W9W94(W94(W9X#W9W9W9W94(W9W<4(W<W<W<W<4(W<4(W<W<W<4(W<W<4(W:W<W:4(WUW:W:W:W:4(W<W<4(W<W)W<4(W<W<W<4(W<W<W)W)W<W)W)W<W)W)W<W<4&W)4&4'W)W)W)W)4'W)W<4'W<W<4'W)W<W)W<W<W)W)W<W<W)W)4%4&4'4(X-WUX-4(WUWU4(4)WUWU4)WUWUWU4)4*UFUF4*UIULUL4*UIUHTH4*TH4*THTHTHUHTHTHTHTHTHTA4)V5V<V54)4)4*4+4,V3V3V3T,SA4+SASZSZSZS=4+WQWQ4+WQW)W)W)X-4*X*VXVXX*X*VX4*X*X*4*VXX*X*4*4+VXX*4+X*WU4+4,WU4,W14-4.4.U*UIU*T:T:TI4.TQTQTITI4-TITDTIV#V#TITIS4S4S44,S=S=4,S4S44,S=S=S4S=S=S=S=S=S5S54*4+S.S.S-S.4+S.SMT$SMT$S@4*S@S@SKS@SKS@4)SXSXSXS@SX4)SXS@4)SXS@4)SUSUSUX-VXX-VXTDTDTD4(S-S-SVS-S.SM4'SM4'SM4(SMSMT$SMT$S.SMS.S.SMSM4&4'SM4'4(4)S.SMS.S.T$T$T$4(T$4(T$T$S3S3S34(S3S3S34(SFSFSOSFSO4'SOSGSGSG4'SG4'SGSOSGSOSOSOSGSGSGSG4&4&SW4'SWW>W>W4W4W>W>W4W>W>W>4%4&4&4'W4W4W?W$W?W?W$W?4&W$U#U#T-4&U#U#V(U#S7S7SNS7S7S7S7SNSNSJSNSJSJ3ZSJSJ3ZSJ4#4$SJSJSNSN4#4$4%SJ4%SG4&SGSGSGSG4&SO4&4'SISO4'SO4(SI4(SISI4(S8SOS8SGSG4(SISISISI4(4(S8S84)S>4)S>S>SGSWSGSWSWSWS>4(SWSW4(SW4(SWS>SWSWS>S>S>WLWC4'WCUBV$V$V$V$4&V$TPV.T-V.V.V(V(4%4&V(V(4&4'4'4(T=T=T=4(T=T=V(U#V(V(U#U#U#4'V(V(U@4'V(V(4'V(SNSOSNSO4&SOSPSO4&SOSPSPSOSOSPSOSPSPSP4%SOSOSPSOS>S>SP4$SP4$SPSPS6S64$S64$S6SR4%SR4%SRSRS6S64%S6U=4%V,V,4%T1T1T5U<U<U<4%TGTG4%TGTPTPTP4%TGTGV.V.TG4$TGV.4$SPSDSDSESDSESES64#SRS6SD4#SDSDSDSD4#SE4#T1T5T5T04#T0T0T8T8T/T8T8T0T8T0T/3YT/T/3YT0T/T0T0T0T03YT;T;T03YT03YT0T03YT;T;T;3YTGT;TG3Y3ZT;4#4#V.V.V.4#V.V.V.T;4#T0T04#V.V.V.SCSC4#SESCSCSC4#SCSESESESESE3Z4#SE4#SE4$SESTSTSTX;X;X;XD3Z4#XDXDT3T34#T34#4$T5T54$T3T54%T3T34%T3T74%T7T7T0T04%T0T7T0T7T04$4%T.T.4%T0T.T.T04%T.T.4%V.4&UMT0UMT0UMV.V.4%4&T0UM4&UM4&UMUMUMT0T0T04&T04&T0T04&T0T.4'T0T0T0UMUMUM4&UMV.V.4&4'V.V.4'V.T0T0T.T.4&UMT.UM4&SSSESSX<X<XDX<XDXD4%XDX:XBX:XBXB4$XBXBXDXD4$4%4%XBXBXBT54%T5T5X:XBX:XB4$4%T4T44%4&T4T4T44&T4T4YU4&YUYU4&4'YU4(Y7Y74(Y74(4)Y7Y7YHYGYGYGYHYHYGYGYHYHYGYGX.4&X.X.4&X.X&X&X.X.4&4'X.X.X&X&X.X.X&4&Y44&Y@Y@Y44&Y@Y@Y44&Y@Y@Y@Y@4&Y@Y44&Y4Y4Y@Y@4&Y@Y'4&Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,4$Y'Y,Y,Y'Y,4$Y,4$Y,Y,Y,YHYUYUYUYHYH4#4$Y3Y3Y34$Y,4$Y,Y,4$Y,Y,Y,4$YUY34%Y3YUY3Y3Y,Z&Y,Z&Y,Y,Y,4#4#Z&4$Z&4$Z&Y,Y,Z&Z&4$Z&4$4%Z$Z$YLYLZ$Z$YLYLZ$Z$YL4#YLYL4#YV4$YVYVYGYVYVYGYG4#YGYEYGYEYEY=Y=YGYGY=Y=YGYGY=YNY=Y=YGYGYGYXYXYXYGYXYXYNYXYXYNYN3TYNYGY=YGYGY=Y=YGYGYNYGYGYGYGYGYGYNYXYNYNYNYNX.3OX.YN3OYNX.YNYNYN3OYNYN3O3PYNYN3P3Q3QX.YNYNX.X.3QX.3QX.X.X.YG3QYGYGYG3QYG3RYGYG3RX.3RX.X.X.3R3SYGYG3SYGX.X.3SX.WOWOX.3SX.X.3S3TX&X&3T3UW=W=W=W=W=3U3UW3W3W3V=V=V=3UV=V=3UV=V=V=V=3UV=V=3UV=V=U>V=U>V=V=3T3UU>TETETEUT3TUTUTV?V?3T3UUGUG3UUGV;V9V;3UV93U3VV;UGUGTLTLTUTUUGUG3TUG3UTLTL3UTLTL3UTU3VTLV;V;TUTUV;V;3UTUUKUK3U3VUPUPUP3VUK3VUPUPU-U$U$U$Y6Y6Y6Y:Y@Y@Y@YIYIY.YI3SYI3SYIYIYIY.YIYIY.Y'Y.Y.Y'Y'3QY'Y.Y'Y.Y.3PY.Y.Y.Y.3P3Q3R3R3SYI3TY.3TYIYIY.Y.3T3UYI3UYIYI3UY'Y.Y.3U3VY.Y.Y'Y'3V3W3WY'Y.Y.3WY'Y.3XY'Y'3X3Y3Y3ZY.Y.3Z4#Y.Y.Y'Y'Y'4#4#4$Y'4%Y'Y'4%4&Y'Y'4&Y,Y,Y,4&Y,Y'4&Y'Y'Y'4&Y'Y'4&4'4(Y,4(Y,Y,Y,4(Y,Y,Y,Y'4(4)4*Y'Y'4*4+Y'4+Y'4,4,4-4.4/4/Y,40Y,Y.40414242Y,Y'434344Y.Y.Y'44Y.Y.Y,Y,44Y,YI44YIYI4445YIYI4546YIY.Y.Y.YIYIY.YAY.45YAYA45YAY.45464747YA4849YAYA49YA49Y,4:Y,Y,Y,4:4;YI4;YIYI4;4<YIYI4<Y,YIYIYIYIYIZ)Z)Z)Z)4;YIYIYI4;YI4;YIYI4;4<4=4>4>YIYIYIZ)Z)4>4?Z)Z)YIYIYI4>YMYMYIYMYI4>4>YMYMYMYMYM4>YMYI4>4?YMYIYMYMYM4>YMYMYMY,Y,YIYIY,Y,YI4=Y,Y,4=Y,YI4=4>4?4?Y,Y,Y,4?Z&4@Z&Y,4@Y,4AY,4A4BZ&Y,4BY,Y,Y,Y,YKYKY,YK4AYKY,Y,Y,4A4A4BYKYK4BYKYKYK4BY,4CY,Y,4C4D4EY,Y,Y,YKYKYKY,Y,Y,YKYKYK4B4C4DY,4DY,Y,Y,YIY,4DY,4DY,4EY,4EY,4F4GY,Y,4GY,4G4HZ)Z)4H4IZ)Z)Y,Y,Y,4IY,Y,4IY,4IZ)Z)Z)Z)4IZ)4J4J4KZ)4LY,Y,4LZ)Y,Y,4LZ)Y,Y,4LY,Z)4LZ)Z)4LZ#4MZ#Z)4MZ)4NZ#Z#4NYMZ)Z)Z)YM4MYMYMYM4M4NYMZ)Z)4N4OYM4O4PYMYMZ)4PZ)Z)4PYMYMYM4PZ)YMYMYMZ)YMYMYMYM4OYM4O4PYMYMY,4PY,4Q4Q4RZ#Z#Z#Z#4RZ#Y,Z#Z#Z#4QZ#Y,Y,Y,Y,4Q4RY,Y,Y,4RZ#Z#YMY?Z#Z#Y?4QYM4QYM4RY?Y?4RY?Z#Z#4RZ#YM4RYMYMYMYMYMZ'YMYMZ'4Q4QY?4R4SYM4SY?Y?4SY?Y?Y?Z&Z&YKYKYKYK4RYKYKYK4R4SYKYK4SYKZ&Z&4S4TZ&Z&YK4TZ&Z&4T4UYK4UYKYK4UZ&4V4WYKYKYK4W4WYK4X4YYKYKY-Y-YKY-4XY-Z&Z&Y-Y-Z#4WZ#Z#4W4X4Y4Z4ZZ#Y0Y0Z#4Z5#Y0Z#Y0Y0Y0Z#Y0Y0Y04YY-Z#Y-4YY-Z#4ZZ#4ZZ#5#5#5$Y0Y0Y-Y-Y05$5$5%Y0Y0Y-5%Y0Y05%5&Y0Y05&5'Y0Y05'5(Y0Y0Z#Z#Z#5(Z#Y?5(Y?Y?Y0Y?Y?Y?Y?Y?Z'Y0Y05&Y05&Y0Z'Z'Y?5&Z'Z'Y0Y05&Y0Z'5&Z'YP5&Z'YPYPZ'Z'YP5&Y0Y05&Y0Y-Y-5&Y-Y-Y0Y0Y0Y-Y-5%Y05%5&Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-5$Y-5%5%YYYYYY5%5&5'Y0YYYY5'YYY0Y/5'Y/Y05'Y0Y/Y0Y0Y0Y+Y0Y0Y05&5&Y+Y+Y+Y0Y05&Y0Y0Y05&Y0Y+Y/Y+5&Y/Y/5&Y/Z'Z'Z'Y+Y05%Y0Y0Y0Y/Y/Y/Y+Y/5$Y/Z&YEZ&Z&YEYEZ&5#YEYE5#5$Z&Z&Z&Y<Y0YY5#Y/Y/5#Y/Y/5#YYY/Y/5#5$Y2Y2Y2Y2Y/5$Y25$Y25%Y2Y<Y2Y2Y2Y<Y2Y<Y2Y<Y2Y2Y2Y<4Z5#Y25#Y2Y2Y25#Y25$Y25$Y2Y2Y2Y2Y25$Y/5$Y/Y/Y<Y<Y<5$Y<Y<5$Y/Y/5$Y/Y/Y<5$Y/Y/YEYEY<Y<YGYG5#YGY<5#Y<Y<5#5$Y<Y<Y<YRYRYR5#5$Z(Z(5$5%Z(Z(5%Z(Z(Z(5%YGY<YGYGYGZ%Z%YGYG5$YGYGYGYQYQYGYGYQYQYGYGYQYG4YZ%Z%Z%Y<Y<YGYGY<YGYGYG4WYG4X4YY<Y<Y<4YY<YG4YYGYGYG4YYGYGYGYQYQYQYQ4XYQYNX.X.X.Z%Z%Y)Y)4VY)Y)Y)X.4VWJWJX.X.X.4VVTVT4V4WVTVTVQVQVTVTVQ4VVTVT4VVQX(X(4VX(4VX(X(X(X'4VX'X'4VX'X'X'WU4VWUWU4V4WWUWUW%W%4W4XWUX,WU4XX,X,4XX,WUX+X+X+U>TT4WTT4WTTU>TTTUTU4WTUTUTUTU4WTL4WTLTLTUTU4WTUTUTU4WTUTU4W4XV;4X4YV;V;TUTUTU4YTUTU4Y4Z4ZV;TUV;TUTU4ZUPTLU0TLU0TLU0TLU0TLU0TLU0TLU5TL4W4WU5U5TLTLU4TL4WTL4WTLTLUPUP4WUP4WUPUPUPU9U9U9UPU94VU9U9UPUP4VUPU9U9UPUPU9UPUPUPV;UPV;4T4TV;4UV;4UV;4VV;V;4VV;V;UPUP4VUPV;V;UPUP4UUPUPUPV;V;V;4UV;V;4UUP4UUPUPUPYBYB4UY>4UY>Y>Y>YBYBY>Y>YBYBY>Y>YBYB4SYB4SYBYBYBYBYI4SYI4S4TYBYBYBYB4TYBY(4TY(Y(4TYIYBYBYIYI4T4U4UYIYBYBYBYIYBYBYIYI4T4UYIYI4U4VYI4VYIYIYMYMYIYIYM4UYIYIYI4UYIYIYMYMYIYIYIYM4TYM4TYMYIYMYIYIYIYMYM4SYM4T4TYM4UYMYPYPZ'YPYPYPZ'YP4SYPZ'YPZ'YPZ'Z'YPYP4RYPZ'4RZ'Z'Z'YPZ'4RZ'Y+YPYPYPYPYP4QY+Y+YPY+4PY+Y+Y+YP4PYPY+Y+Y+Y+YTY+YTY+Y+YJYJYJYWYJY+Y+Y+YWY+YWYWY+Y+YWY+YJYWYJYWYJYWYJYWYWYS4H4IY+Y+YS4IY+YSYSYSYSY+YSYSYSYSY*Y*YSYSY*Y*4EY/4F4GYT4GYTY/4GY/Y/Y/Y/Y/YT4GY/Y/4GY/Y/Y/Y/4GY/Y/4GYTY/4GYTYTY/Y/Y/4GY/Y/4GY/YT4GYTYTY/Y/YTYTY/Y/YTYTYTY9Y9Y94DY94EY9Y*Y9Y9Y9Y*4DY*4EYGYGYG4EX/X/Y9X/Y94DY9Y94DY9Y9Y9Y9X/Y9Y9X/X/4CX/Y9X#4C4DVWYGVWVWVWVW4CVWVWVW4C4D4DVWX#X#VWVW4D4EX/VW4EVWVWVWX#X#VWVW4DVW4DWSVSVSWSWSVSVSVSVS4CVS4CWS4DWSWSWSVSWS4CWSVSWSVSWSVS4CWSWSWSWYWS4BWSWSWSWSVSVSWSWSVS4AVS4AVS4BWSWS4BWSVNVN4B4CWPVNVNVNVN4BVN4C4C4DWYWYVNVNVN4D4DWYWYWYVNVNW#W#VNVNW#W#W#W#W#4BW#W#4B4CW#W#WY4CW#4CW#W#VNVN4C4DVNWYVNWY4CWYWYWY4CWYWYWYWYWYWY4CWYWY4CWY4C4DW,W,4D4EW,W,WYWY4E4FWY4FW,W,4F4GW,W,4G4HW,W,WYW,W,W,WYWYWYW,WY4FW,W,4FW,W,W,WYW,W,W,WYWYW,WY4D4EWYWYW,4E4F4GW,WY4G4HWYWY4HWY4HWYWYWYWYWY4H4IW,W,W,4IW,W,4I4JW,W,W#W#WYWY4I4JW#4JW#W#4JW#W#W#4JWY4KW#4KW#4LW#4L4M4N4OW,W,WSWSWSW,WSW,4M4NWSWSW,W,W,4NW#4NWYWYWY4NWYWYW#4N4O4PWYWY4PWYWY4P4QW#W#W#W#4Q4Q4RWYWYW#W#4R4SW#W#4S4TWYWYWY4TWYWY4TWY4TWYW#W#4T4U4V4W4W4XW#W#4X4YW#4ZWY4Z5#W#5#W#W#W#W#5#W#W#5#W#W#W#W#5#W#W#5#W#W#W#WUWU5#5$WUWUWU5$WUWM5$WMWU5$WMWMWU5$WUWMWUWU5$WMWMWMWT5$WM5$WTWTWM5$5%5&WMWMWTWTWMWT5%5&WUX+WU5&WU5&WMWMWUWU5&WMWUWUWUX+WMWT5%WTWM5%WTWTWM5%5&WTU>UYU>UYUYUY5%UYU>5%U>U>5%UYUYUY5%5&V:V:5&V:V:V:U>U>V:5&U>U>5&5'U>5'V:UY5'UYUYUY5'UYU/U/5'5(5)5*UYTTUYTT5)5*U/U/5*5+U/U/5+5,UU5-TTTT5-TT5-TTUUUU5-TLTTTLUPUPTLUPTLTLU:U:U:UPU:U:TL5*UPUPTLUPUPUPTLUP5)UPTLUPTLTLUPUP5(UPTLTLTL5(TL5(TLTL5(YBY>YBYBYB5(YBYBS:5(S:5(S:S:S:S:S0S:5(S0S05(S0S:S0S:S:S0S05'S05'S0S:S0Y9Y9Y*Y*Y9Y9Y*Y*Y*Y9Y*Y*Y9Y9Y9Y*W-W-5#5$WF5$WFWFW-W-WFWFY9Y95#W(Y95#W(W(Y9Y9W(Y94ZW(W(W(W-4ZWFWF4Z5#VZVZ5#5$VZVZ5$5%VZW(VZVZVZ5%VZVZ5%W(VZ5%VZW6W6W6W6W/5$5%W/W/W6W6W6VOW6W/5$W/W6W/W6W6VZW(VZW(VZVZ4Z5#W65#W6W6W6W(VOVOW(W(VO4ZVO4ZVOVO4Z5#VOVO5#W65$W6W.5$S9W6W6W/5$W/5$VO5%VOY9Y9Y9W(Y9Y9W(5$W(W(W(5$W(5$VUVUY9Y95$Y9Y95$VUVUW(VUW(VUVU5#VUVU5#VUVUVU5#X#5$X#X#X#VUX#VUX#VUX#VUVU4Z5#VUVUVU5#VU5#VUVUVUX#5#X#5#X#VUX#VUVUVU5#5#5$VUVU5$5%VU5&VUVU5&VUX#X#5&X#VUX#VU5&VSVSX#5&VSVS5&X#VSVSX#5&VSVS5&VSX#5&X#X#5&VSVSVSWSWSW7WSW75%W7W75%W7W7W7W,W,5%W,W75%W7W75%W,5&W7W7W75&W75&W95'W95'W95(W9W7W9W7W9W75'W7W75'W9W7W9W7W7W75'W7W7W75'W75'5(5)5)W95*W9W9W<W95*W95*W9W9W9W<5*W<W9W<W9W<W9W<W9W95(W<W9W<W95(W95)W<W<5)W<W9W95)5*5*W<W9W<TLTL5*5+TMTMULTMULUL5*UL5*ULTMUL5*TL5+TL5+TL5,5-TLTLUETLUI5,UIUI5,TLUE5-TLTL5-TLUE5-UE5.TLTL5.UETL5.UPUPS9S9S9WQ5-WQWQWQVU5-W@VU5-X#VUVUW@5-WQWQWQWQWQVVWQVVWQVVW+WEW+WEW+WEW+5*W+5*W+5+5+WE5,WEWEWE5,W+5,W+W+W+W+W+W+WEX#W9X#W9W9W95*W95*W9X#X#W9W9W9W<W9W9W9W<W<W<W<5(W<5(W<W:W<W:W<5(W:W:5(W:WUWUW:5(5(5)W<W<W<W<W)W<W<W<W<W)W)W)W<W)W<W<W)W<W<W<W)W)W<W)W)W)W)W)W<W<W<4ZW<W<4ZW)W<W)W)W)W)4Z4ZW<5#W<W)5#W)W)5#W<5$W<WUWU5$5%WUWU5%5&WUWU5&5'WUWU5'WUWUWU5'WX5'WUWXWUT>T>T>5'5'5(UIUIUHTHUHTHUHTHUHTH5&THTATAV<V<V5V5T+T+T+5%T+T+5%UCUCU?U?U?5$V1V1V1SASZ5$SZSZSZS=S=WQWQWQVMX-X-4ZX-X*4ZVX5#X*5#5$VXVX5$VX5%X*X*5%X*VX5%VXVXWU5%WUWU5%5&5'5(5(W1W1W1W1W1WUWUW1W1WUWUUIUIUIU*T:T:TITITD5$TD5%S4S45%S4S=S4S4S4S45$S4S4T#T#S.S.T#T#S.S.S-S-S-S.S@4YS@S@4YSX4ZSXS@4ZS@S@4Z5#S@S@S?S?S?SUTDTI4ZTIS.SMS.SMS.SMS.SMS.SMS.S.4WSMS.4XSMSM4XSM4XT$SMT$SM4XSMSM4XT$T$T$T$4XT$4YT$4YT$4Z4Z5#SJSJS3S35#5$SO5$SOSGSGSG5$SGSO5$SOSOSG5$SGSWSGSGSGSW5#SWSWSWW>W>5#5$W>W>5$5%5%WVWVWVWVWV5%5&W$5&W?W?5&U#5'U#SJS75'S7SNSNSJSJSJSJSNSJSJSJSJSNS75$S75%5%5&SJSJS7SJSJSJSOSG5%5&5&SGSOSGSGSGSISGSOSO5%SISO5%SOSISOSI5%SI5%SISOSOSISISIS8SO5$SOS8SGSGSG5$SIS>SIS>5#5$S8S8S85$S8S85$S>S>S>SWSWS>5$SWSW5$SWS>S>5$SWWLWCWCWCV$5#V$TPT=V(V(V(V(V(4ZV(T=V(T=4ZV(U@U@U@V(4YT=T=4YT=T=T=4YU@T=T=U#V(V(V(V(V(U@U@V(V(U@U@4VSOSPSPSOSPSPSPSP4USPSPS>S>SP4U4US6SPSPS6S64US64US6SRS6S6S6SR4USR4USRSR4US64V4WU=V,V,V,4VT1T1T1U<4VTGTGTGTG4VTGTPTP4VTPTGTGTG4V4VSPSDSPS6S6S64VSDSDSD4V4VSESESET1T1T5T1T0T;T0T0T/4TT/T/4TT0T/T0T0T0T04TT0T;T04TT04TT0T04TT;4UT;4UTGT;TGT;T;T;4UV.V.4UV.4UV.T0T0T04UT0V.T0T04U4VT;T;4V4WT04WV.V.SCSCSCSESCSCSC4VSE4VSSSS4VSSSSSSSESE4VSS4VSSSSSSX;4VXDXD4VXDXDXDT3T3T5T3T54UT5T5T3T34UT5T3T3T54U4U4VT5T5T3T34VT5T0T0T7T0T0T04U4VT04VT0T.4V4WT.4XT0T0T.T.4WT.T.T.T0T04WV.4WUMUMUMUMV.UM4WV.V.4WV.T0T0T04W4WUMT0UMT04WT0T0T04WT04XT0T04XT0T0T0T.4XUMUM4XUMV.V.V.4XV.V.4XV.4XUMUMUMUMUMT.4XSESSSE4XXDXD4X4YXB4YXBXBXDXD4Y4ZXDXD4ZXBXB4ZXBXB4ZT.T5T54Z5#T4T4T/T/T4T4T/4ZT4T44ZT/T4T4T/4ZT4T4YUY7YU4ZY7Y7YUYUY7Y74YY7YU4YYUYU4YY7YUYUYUYUYUY7YU4XY7Y7X.X.X.4XX.X.4X4YX&4YX&X&4YX&X&X&4Y4ZX&X&Y4Y44Z5#5#5$5%Y@5%5&Y@Y@Y@Y@5&5'5'Y4Y4Y4Y@Y@5'5(Y,Y,5(Y,Y'Y'Y,Y,5'Y,5(Y,5(Y,5)Y,YHYH5)5*YHYH5*YHY3Y3Y,Y,Y35)Y,Y,5)Y,Y,Y,YUYUY3YUY3YUY35(Y,Y,Y,Z&Y,Z&Y,Z&5&Z&Z&Z&Y,Z&Y,5&Y,5&Y,Z&YLYLZ$Z$YLYLZ$5%YV5%YLYLYVYV5%YV5%YLYLYL5%5&5'YG5'5(YXYNYNX.X.X.YN5'YNX.YNYNYN5'YNYN5'5(YNYN5(YNYNYN5(5)5)X.5*X.X.X.YNYNX.X.5)X.YNYN5)X.5)5*YGYGYGYGYG5*YG5*YGX.YGYGYG5*5*X.X.X.YG5*X.X.YGYGX.YGYGYGX.5)X.X.WO5)X.X.X.X&5(5)X&X&5)X&X&X&WGWGW=5)5)WGW=W=W35)W3W3W=W=W=W3V=V=V=5(V=V=5(V=V=V=V=5(V=V=5(5)V=V=V=5)V=V=5)V=5)TLUT5*5*5+V?TL5+TLTLTL5+UG5,5-5-V9V;5.5.V;V;V;5.5/V;V;UGUG5/UG5/50TLTLTLUGTL50UGUG50TU50TLTLTL5051TUTUUKUKUK51UKUK51UKUPUKUPUKUKUK50UKY.Y.YI50YI50YIYIY.Y'Y.50Y'Y'Y.Y.Y.Y.5/505051YIYI51YIYIYIY.Y.5152Y.Y.52Y.5253YI54Y.Y.Y.545455YIYI55Y.56Y.56Y.YIYIY'Y'56Y'Y'Y'56575758Y.Y.Y'Y'5859Y'Y.595:Y'Y'Y.Y'Y'Y'Y'Y.Y.Y'Y.Y.57Y.Y.Y.Y.Y'Y.57Y.57Y.Y.Y'Y'57Y.Y'57Y.Y.57Y'5859Y'Y'Y,Y,Y'58Y'Y'Y,Y,Y'Y,Y'57Y'Y'Y'57Y,Y,5758Y,Y,Y'Y'Y,Y,Y,Y,57Y,Y'Y,Y'Y'Y,56Y'57Y'Y'Y'57Y'5758Y,Y'Y,Y,Y,Y,Y,57Y,57Y,Y,Y,Y'57Y'Y'5758Y,Y,58Y,Y,Y,58Y.Y.Y.Y'58Y.59Y'Y'Y'59Y'59Y'5:Y'5:Y'Y'Y,Y,5:Y,Y'Y'Y'5:Y,Y,5:Y,5:5;Y,Y,5;Y,5<Y,5<Y'5=Y'Y.5=5>5?5?Y'Y'Y'5?Y'5@5A5A5BY'5C5C5DY.5EY'Y'5EY'5E5FY'Y,Y,Y,Y.Y,Y.Y.YIYIY.Y.YI5DY.Y.5DY.Y.5DYIYIYIY.YIY.Y.YAY.5CYAYA5CYAY.Y.Y.5CYI5CYIYI5C5DYIYI5DYAYAYAYAYA5D5EYAYAYA5EYAYA5EYIYAYA5E5F5FY,YAY,YI5FYI5GY,Y,5GY,5GY,YIYI5G5H5IYI5I5JYIYIY,Y,5J5KZ)Z)YIYIYI5JZ)Z)Z)5JYIYI5J5K5LZ)5L5MYIYI5MZ)Z)5NZ)YI5N5O5O5PYIYIZ)Z)YIYIZ)Z)YIYIYIYIYMYMYIYMYI5MZ)Z)YMYMYMYM5LYMYIYI5L5MYIYMYIYI5LYMYMYMY,5LYIYIY,Y,5LY,YI5L5M5NYIYI5NY,5NY,Y,Y,5NY,Y,Y,Y,Z&5NZ&5NZ&5OZ&Y,Z&5OZ&5OZ&Y,Y,Y,5OY,5PY,Y,Y,Z&5OZ&5PZ&5PYKYKYKY,Y,Y,5PY,Y,YKYKY,Y,YKYKY,YKYKYKY,Y,5MY,YKY,YKYKY,5L5MZ&Y,5MY,5N5NZ&Z&Z&YIYIYI5NYI5N5OY,YI5OYI5P5P5Q5RY,YIYIYI5RYI5RYIYIYIY,5RY,5RY,YIY,5RY,YI5SY,Y,5SY,Y,Y,Y,5S5SZ)Z)Z)5S5TZ)Z)5T5UZ)Z)Z)5UZ)Z)Y,Y,Y,5UY,Y,5UY,5U5VZ)Z)Z)Y,Z)Z)5UZ)Z)Z)Y,Y,5UY,Y,Y,5UY,Z)Y,Z)Z)Y,Z)Z)Z)5S5TZ)Z)Y,Y,Z)Y,Y,Y,Z)5SY,Y,Z#Z#5RZ#5SZ#Z)Z#Z)5S5SZ#5TYZZ#Z#Z#YMZ)Z)Z)YMZ)Z)YMYMZ)Z)YMZ)Z)Z)Z)YMZ)Z)Z)5O5OZ)5P5QZ)YM5QYMZ)Z)Z)5Q5QYM5RYMYM5RYMYMZ)5RYMYMZ)Z)Z)5RZ)YM5RYMY,Y,Y,5R5RZ#Z#Z#Y,Y,Z#Z#5QZ#Z#Z#Y,Z#Y,5QY,5QY,Z#Y,Y,Y,5QY,Y,5QZ#Y,Y,Y,Z#Y?Z#Y?Y?YMYMYMY?5NY?5O5PY?Y?5PY?Z#Z#Y?Y?YMYMYM5OY?Y?Z'5O5OY?Y?Y?5O5PYMYMY?Y?5P5QYMYM5QYM5QY?5R5SYKYKZ#YKYKYKYKZ#YKYKZ#5QYKYK5QYKZ&Z&YKYKZ&YKYKYKZ&Z&YK5OZ&Z&5O5PZ&Z&5PZ&YK5PYKYK5PZ&YK5QYK5QYKYKZ&Z&5QZ&YKYKYKY-YKYKYK5P5PY-Y-Y-5PY-Y-Y-YKY-Y-Y-YK5OZ#Z#Z#Z#Z#5OZ#Z#5OY0Z#Y0Z#Z#Y0Y0Z#Z#Z#Z#5MZ#Z#Z#5MZ#Z#5MY0Y05MYKZ#YKZ#5MZ#5N5N5OZ#5PZ#5PZ#5QZ#5QZ#Y05QY-Y0Y0Y-Y-Y0Y0Y-Y-Y05PY05PY0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y05NY-Y-5N5OY-Y-5O5PY-5PY0Y05PY-Y0Y05P5QY0Y0Z#5QY?Y?Z#5Q5R5SY0Y05SY05SY0Y?Y?Y?Y?Y?5SY0Y05SY0Z'Z'5S5TZ'Z'5TZ'5TZ'YP5UY0Y05UY0Y-Y-5U5VY05VY0Y0Y-Y0Y0Y05UY0Y0Y0Y-Y-Y-5UY-YYYYYYY-YY5TYYY-Y-Y-5TYYYY5T5U5U5VY0Y0YYYYY0YYY0Y/Y/Y/Y0Y/Y/Y/Y0Y0Y05SY05SY+Y+Y0Y05SY0Y0Y0Y05SY+Y/Y+Y+Y/Y/5R5SY05SY0Y/Y+Y+Y+Y/5RYEZ&5SY<5SY<Y<5SY<Y<Y<Y0Y/Y/Y/YYYYY/5RYYYY5RY/Y<Y<Y2Y2Y<Y<5QY<5QY2Y/Y2Y<Y<Y2Y2Y25PY2Y2Y2Y<Y2Y2Y<Y<Y2Y<5NY<5OY<Y<Y<Y25OY25OY25PY25PY2Y<Y2Y2Y<Y<5OY<5PY<Y<5PY<Y/5PY<Y/Y/5PY/Y/Y/Y<5PY/Y/YGYGY<5P5PYGY<YGYGYGY<Y<YGYGY<Y<Y<Y<Z(Z(Y<5MZ(Z(5MZ(Z(Z(5M5NZ(Z(Y<Y<Z(Z(YGYG5M5NYGYGZ%Z%YQZ%Z%Z%YGYGY<YGY<5K5L5MYGYG5MYGY<YGYGYGY<YG5LYGYGYGYG5LYQYQZ%Z%Z%Z%5KY)X.X.WJWJX.X.VRVRVTVTVQVQVTVTVQVQVT5GVQVQ5GVQVQVQVNX(VN5G5G5HX(X(5HW3X'X'W35H5I5JW%W%WUWUW%W%WU5IW%W%5IW%WUW%WUWUW%W%WUWUWU5GWUWU5G5HWUWUU>U>U>5H5H5IU>U>TUTU5I5JTUTU5J5KTL5KTL5LTUTU5L5MTUTU5M5NTUTU5N5OTU5OTU5PTUTU5PV;TUV;V;V;TUTUTU5OTUTU5O5PTUTU5P5QTU5QTU5RTUTU5RUPTLU55RU5TLU5U5U5TLU4TLU4TL5PTLTLU0UP5PUP5PUPU0UPU9UPU95P5PUPU9U95PUP5QUPTUTUTU5QTU5Q5RV;5RV;5SV;5SV;V;V;5SUPV;V;5SUPV;5TV;UPUPUPV;V;V;5SV;UP5SUPUP5SUPUP5S5TY>Y>YB5T5UY>Y>Y>Y>5U5UYBYBYBYBYBYB5UYB5UYBYB5UYIYBYBY>YB5UYBY(5UY(Y(YIYIY(Y(YI5T5U5VYIYI5VYIYB5VYBYBYIYI5V5WYIYIYBYBYIYI5V5WYIYI5WYIYIYMYIYMYMYM5VYMYIYI5V5WYIYM5WYM5WYMYIYMYMYMYM5WYM5WYMYMYMYM5W5X5X5YYMYM5Y5ZZ'6#6#YPZ'6$6$YPZ'Z'6$YJZ'6%YPYPYP6%YPYPYPY+YPY+YPY+YW6#YW6$6$YSYSYSY+Y+YSYSY/Y/6#Y/Y+6#Y+Y+6#6$Y+Y+YTYT6$Y/YTY/Y/Y/YTY/YTYTY/Y/5Z6#Y/Y/6#6$6$YTYTYT6$YTYTYTY/Y/Y/6$Y/Y/YT6$6$YTYTYT6$Y96%Y9Y*6%Y*6&Y*Y*Y*Y9Y*Y9Y*Y9YGWZYGWZX/X/Y9Y9X/X/Y9Y9X/X/Y9X/Y9Y95X5YX#X#5YX#VWVW5YVWVWVWX#X#5XVWX#X#X#5XX#X#VWVWX#X#VWVW5W5XX/X/5XVWVWVW5X5YWSWSVSVSX#VSX#X#5WWSVSVSVSVSVSWS5VWS5WWSVSWSVSVSWSWS5VW,5VWSVS5WWSWS5WWSVS5WVSVS5WWSVSVSWP5WWPWPVNVNWP5WVNVNVN5WWY5WWYWY5W5X5YWY5Y5ZWYWYVNWYWYWY5Y5ZWYWYW#W#W#5ZW#W#5Z6#6#WYWYWY6#W#WYW#VNVN6#6$W#6$W#W#VNVNW#W#6#6$WYWYVNVNWYWYWYWYWY6#WYWY6#W,W,6#W,W,WYWYW,W,WYWYW,W,WYWYW,W,WY5XWY5Y5YW,W,W,WYWYWY5YWYWY5YWYWYWYW,5YWY5Y5Z6#6#W,6$W,WYWYWY6$WYWYW,W,W#W#WY6#W#W#6#WYW,W,W,6#W,6#W,WY6#6$WYWYW,WYW,W,WYWY6#6$WYWY6$WY6$WYWYWYWYWYWY6$WYWYWY6$W,W,W,W#W,W,W#W#5Z6#W#W#W,6#W,W,6#6$6%W#W#W,W#6%W,W,6%6&WYWY6&W,6&W#W#W#6&W#6'W#6'W#WYW#WYWYW#6'W#W#6'W#W#6'W#W#6'W#W#W#WS6'WSWS6'W,WSWSW,6'W7W7W#6'W#WY6'W#WYW#W#W#6'6(WY6(WYWY6(6)WYWYWYWY6)WYWYWYWYW#WYWY6(6)W#W#6)6*WY6*WYWYW#W#6*W#W#6*WYWY6*W#WYWYW#W#6*6+W#W#WYWYWYWYWYW#WYWYW#WYWYWYW#6(WYWYWY6(WYWY6(6)WY6)6*6+6+W#W#W#6+6,W#W#6,W#W#W#6,WYW#6-6-WY6.W#W#6.W#W#WYWYW#W#6-W#W#W#6-6.W#W#W#6.W#W#6.6/W#W#VNVN6/60VNW#60W#WU60WUWM60WUWMWMWU6061WM61WMWMWM61WM62WMWUWMWUWMWU61WMWM61WMWT6262WT63WTWMWMWM63WM63WTWT63WTWTWTWM63646565WTWTWTWUX+WUX+WUWUWU6464WMWMWMWM64WMWMWMWM64WMWMWM64WTWT64WTWT64UY65UYU>65U>6666UYUYUYU>66V:V:6667V:V:6768V:V:U>68V:V:6869V:V:696:V:V:U>U>6:6;U>UY6;UY6;UY6<6=TTTTUYUYTTTT6<TTUY6<TTTT6<TTTTTTUYUYU/6<UYUY6<6=UYUYU/6=UYUY6=U/TTTT6=6>TTTT6>TT6>6?UUUU6?TTUU6@UU6@UUUUTTTLTTTLTLUPTLUPTLUPTLUPUPUPUP6=TLTLTL6=TLUPTLUPY>6<Y>6=YBYBY5Y5S:S:6<6=S:S:S:6=S:6=S:S:S0S06=S0S:S0S:S:S:S0S:S0W-W-6;6<W-W-6<W-6<W-WFWF6<6=W(W(Y9Y9Y96=Y9Y96=Y96=W-WF6>W(W(VZVZ6=W(VZVZ6=W(VZVZW(W(VZVZVZW(VZ6<W(W(6<W(VZ6<6=W(VZW(W(W(VZW66<W6W6W6W/W/W6W6W/W66:W6W6W6VZVZVZW6VZW(W6W(6869W66:W(W(6:6;VO6;VOVOW(W(VOVOW(W(VOW(69W6W.W.69W6W6W669W6W.W6696:W/W/W6VO6:VO6:VOVOVOY9Y9W(6:W(W(W(6:W(6:VUVUY9Y96:W(Y9Y96:VUVU6:VUVU6:Y9VUVUX#X#VUX#VUX#VUX#VU68VUX#68X#X#X#VUVUVU68VU68VUVU68X#X#X#68X#VUX#VU68VU69X#X#69X#X#X#696:VU6:VUVUX#X#6:X#6:6;VUVUVUVUW@6;6;X#VU6<X#X#6<X#VSVSX#X#VSVSX#X#VS6:X#6;VSVS6;VSX#6;X#X#6;VSVSVS6;6<W76=WSWS6=W7W,W,W76=6=6>W76?W,W,6?W,6?6@W7W76@W76AW76AW96B6CW76CW7W7W7W7W76CW7W9W9W9W76BW7W76B6CW76DW7W7W7W96CW7W9W96CW9W9W9W7W7W76CW9W96CW9W9W96CW9W7W9W7W9W9W<W9W9W96AW9W9W9W96A6B6BW<W9W<W96BW9W9W9W96B6C6CW<W<W<W9W9W96CW9W96CW<W96CW9W<UUTLUUUUTLTL6BTLTMUL6BULULUL6BULTLTL6BTL6BTLUEUETL6BUE6CUE6CUEUE6CTL6DTLUIULUIUITLTLUE6C6CTLUEUETLTLUEUETLTL6B6CUE6CUEUE6CTLUEUE6CTL6DUPS9WQS9WQVU6CVUVU6CX#VUVUW@WQWQWQW+WEW+W+W+W+W+6AW+6AW+W+W+WE6AWE6A6BW+W+6B6CW+W+WE6CW+W+W9W9X#6CX#6CX#X#W<W<W<6CW<6CW<W:W:W:W<W<W:W:6BW:W:6BW:W:W:W:W<W:W:W:W:W<W)W)W<W<W)W)W<W<W)W)W)6>W)6>W)6?W)W<6?W<W)6?W)W)6?W<W<W<W)W<W)W<WUWUWUX-6=X-X-X-WUWUWU6=WUWU6=6>WUWU6>W1WUWUW1W1WUWUW1WUWU6<6=WXWUWUWXWXT>T>T>6<UI6<UIUI6<UIUIUI6<6=TATAT+6=UC6>UCUC6>UCU?UCU?V1SASZ6=SZX-6=6>VXX*X*6>6?VX6?VXX*X*X*6?VX6?6@6AVXX*X*VX6AVX6AVXVX6AX*6BX*VXVXVX6BWUWUWU6BWU6BWU6CWUWUWAWUWU6BWUWU6BWUWUWU6B6CW1W1TD6CTD6DTDTITDTIS4S4S=S=S46BS4S4SXSXS@6BSXSX6BSXS@SXS@SX6ASXS@S@S@6AS@S@6ASX6BSXTDTDTD6BS.SMS.6B6B6CS.S.6CSM6DSM6DT$SMSMSMSMSM6DSMSM6DT$T$SKT$6D6DSK6ESK6ESK6FSKSKSK6FSKS3S3S36FS3S36FSJS3S36F6G6GSO6HSO6HSGSGSGSGSGSO6H6HSG6I6JSGSGSG6JSGSWSWSWW>W>W>6IW>6I6J6K6KW>6L6MW>W>6MWVW>WV6MWVWVWVWVW4WVW4W4W46KW$6LW$U#U#T-U#T-6KT-T-SJ6KSJ6LS7S7S76LS7SJSJSJS7S76KSJS7S7SJSJSOSOSO6J6JSGSGSGSO6JSOSOSOSISISISO6ISOSISOSISO6ISO6ISOSI6IS86JS86JSISISIS8SIS8S8SI6ISIS8S86IS8S>6I6JS>S>S>SWS>6JSWSW6JSWS>6JS>S>6JTP6KTPV(V(V(6KT=V(T=6KV(V(V(6K6K6LT=T=6LU@T=T=6LSO6M6NSP6NSPSP6N6OSP6PSP6PSPSPS6S66PS6SRS6S6S6S6S6S66OS66O6PSRS6S6S66P6PSRSRSRSRS6SRSR6O6PT1T1U<6PTGTGT;TG6PTGTPTP6PV.TGV.TGV.SPSP6O6PS66PS6S6SRSR6PSRSE6PSESET/6PT/T/6PT06QT0T06QT06R6RT;6S6TT06TT0T0T;T;6T6UT06UT0T;6UTGT;6VT;6VT;T;V.V.6VV.6V6W6XT0T06X6YV.T0T0T06Y6YV.6ZV.T;6ZT0T06ZT;7#T;T07#V.V.SCSESCSESESESS6Z6ZSESSSSSESESE6Z6ZSSSSSSX;6ZXDXD6ZXDXDXDT3T36Z7#T57#T5T5T5T3T5T5T56ZT57#T3T3T37#7#T5T5T5T0T0T07#T0T07#T0T07#T.T.7#T0T.7$T0T07$T0T.T0T.7$T0T0T0T.T0T07#7$7$7%UMUMUM7%UMUM7%V.7&7'7'UM7(UMT07(T0UMT0UMT07(T0UM7(UM7(UMT0UMT0T07(T07(T.T.T.7(UM7)UMV.7)UMUMV.V.7)V.UM7)UMUMUMUMT.UMSE7(SE7)XDXDXB7)7)XD7*7+7+7,XBXBXDXDXB7,XDXD7,XDXDXD7,XDXB7,XBXB7,7-T5T5T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T47(YUYUYUY7Y77(Y7Y7Y7YU7(Y7Y77(Y7YUY7YUY7X.X.X.X&7&7'X&X&X.X.X&X&7&7'X&X&7'X&X&X&X.X.7'7(X.X.X.7(Y4Y4Y@7(7(Y@7)Y@Y4Y4Y47)Y47)Y@Y@7)Y@Y@Y@Y4Y47)Y@Y4Y4Y@Y@Y@Y@Y4Y4Y@Y@7'Y@7'7(Y4Y4Y47(Y4Y47(Y4Y4Y4Y'Y,Y'Y'Y'Y'Y'7'Y'7'Y'Y,Y'Y,Y'Y,Y'Y,Y,Y,YH7%YUYU7%YUYUYUYHYHYUYHY3Y37$Y,Y,7$Y,Y,Y3YUY3Y3Y,Y,7#Z&Y,7#7$Z&7$Z&Y,7%7%YLZ$Z$YVYVYLYLYLYV7$YVYL7$YLYLYV7$YVYV7$YG7%YGYV7%YVYG7%7&YXYXYNYN7&YNYN7&7'X.YN7'YNYG7'7(YGYG7(7)YGYG7)YNYNYNX.7)X.X.YNYNX.X.YNYNYN7(7(X.X.X.YNX.7(X.YNX.X.X.X.YGYGYGYGX.YGYGYG7%YG7&YG7&YGX.YGYGYGX.YG7%X.X.YGYGX.7%X.YGX.YGX.X.WOX.X.X.X.7#X.X.7#X&X.X&X&X&WGW=W=W=WGWG6Y6ZW=W=W3W=V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>6RTLUT6S6STLTLTLV?V?V?6SV?V?6STLV?V?TLTLUGUGTL6RTL6RTLTLUGUGTLUGV;V9V;V9V96PV;V;V;V;6PV;V9V96P6QV9V9V9V;TL6P6QUG6QUGTLTLUGUGTLTLUGUGTL6PUGUGUG6P6P6QTLTLV;6QTUTUV;V;TUTUUKUK6P6QUKUK6QUKUKUKUPUKY.Y.6PY.YI6PYIYI6PY'Y.Y'Y.Y.Y.6PY.Y.6PYIY.Y.YIYIY.Y.6O6P6PYIYIYI6P6QYIYI6Q6RYIYIY.Y.6RY.YI6RYIYIY.Y.YIY.6QY.YIY.Y.Y.YIYIYI6PYIYI6P6QYIYIY.Y.6QY.YI6QYI6RYIY.YIY.Y.6QY.6RY'Y'Y.Y.Y'6QY.Y.Y'Y'Y'6QY'6QY.Y.Y.6Q6RY.6R6SY.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.6PY'Y.Y'Y'Y'6PY'6PY.Y.Y.Y'Y'6PY.Y'Y'6PY'Y.6PY.6QY'Y'6QY'Y'Y'Y'6QY'Y,Y'Y'Y,Y'Y,6PY'Y'6P6QY'Y'6QY'Y,Y,Y'6QY,Y,Y'Y,Y'6PY'Y'Y'Y'Y'Y,Y'Y'Y,6OY'6OY,Y,Y,Y,6OY,6OY,6PY,Y'Y,Y'Y'Y'6OY,Y,6OY,Y,Y,Y,Y'Y,Y,Y.Y'Y.Y.Y'Y'6MY'Y.6M6NY'Y'Y'Y'Y,Y'Y,Y'6MY'Y'6MY,Y'Y,Y'6M6MY,6NY,Y'Y'Y'6N6NY,Y,Y,Y'Y'Y'6N6NY,Y,Y,Y,Y,6NY'6N6OY,Y,Y.Y.Y.Y'Y.Y'6NY'Y.6NY.6OY.Y.6O6P6P6QY'Y'6QY'Y'Y'Y'Y'6Q6R6RY,Y'6SY,Y,6SY,Y'6SY'6TY,Y,6TY,Y'6TY'6U6UY'Y.6VY'Y'6VY'6VY'6W6X6XY'Y.Y.Y'6XY'Y,6X6YY,Y,YI6YYIYIY.Y.6YY.Y.6YYIYIY.YAY.Y.YAYA6XYAY.Y.Y.6XY.Y.YIYI6W6XYIYI6X6YYI6Z6Z7#Y.7$7$7%YIYI7%7&YIYIYAYA7&7'YAYA7'YIYAYAYA7'YAY,Y,Y,YA7&YAY,Y,Y,7&Y,YI7&YIYIY,Y,7&Y,YI7&YI7'Y,7'Y,7(YI7(YIYIYI7(YIYIYI7(YIYI7(Y,YIYI7(Y,7)7*7*7+YIYIYIYI7+7,7,7-YIYIYIZ)YIYIZ)Z)7,Z)YI7,YIZ)Z)Z)Z)7,Z)YIYIYI7+Z)7,Z)Z)Z)Z)7,Z)7,YIYI7,YIYIYIZ)Z)YIYI7+YIYIYIYIYMYIYIYMYM7*YMYIYIYM7*YIYIYMYMYMYIYMYMY,Y,Y,7(7(Y,YIYIYI7(YIY,YIYIYI7(7(Y,Y,Y,YIYI7(YIYIY,YIY,7'Y,Y,Y,Y,Z&7'Z&7'Z&Y,Z&Y,7'Y,Y,Y,7'Y,7(Y,Z&Y,Y,7'Z&7(Z&7(Z&Z&Z&Z&Z&7(Z&7(Z&Y,Y,Y,YKYKYKY,Y,Y,7'Y,Y,YK7'Y,7'Y,Z&Y,Y,Y,7'Y,Y,Y,7'7'Z&7(7)7)Z&7*Z&YIYIYI7*YIYIYIY,YIYI7)Y,YI7)7*Y,7*Y,7+Y,YI7+YIY,7+Y,Y,Y,YIY,Y,Y,7*Y,7+Y,7+Y,YIYIYIYIYI7+YI7+YIY,7+Y,YI7,7,Y,YI7-Y,Y,7-7.Y,Y,Y,7.YI7.Z)Z)Z)7.Z)7/Y,Y,7/70Y,Y,Z)Z)7/Z)Z)Z)Y,7/Z)Z)Y,7/Z)Z)7/Y,Z)Z)Y,Y,Z)Z)7.7/Z)Z)Z)Z)Y,Y,Z)Z)7.Z)Y,Y,Z)Z)Y,Y,Z)7-Y,Y,7-Z)7-Z#Z)7.Z)7.Z)7/Z)Z)7/Z#Z#Z#7/Z#7/YZYZYZ7/YZ70YZ70YMZ)Z)Z)Z)70Z)YMZ)7071Z)Z)71Z)Z)YM71YMZ)Z)Z)YMZ)Z)70YM70YMYMYMYMZ)YM70Z)YM70YMZ)Z)YMYMZ)Z)7/70Y,7071Z#Y,71Z#Z#7172Z#Z#Y,72Y,7373Z#Z#Z#7374Y,Z#74Z#Z#Z#YMY?74Y?74Y?YMYMY?74YMYM7475YM76YM76YM77Y?Y?Z'77YM7778Y?78Y?YMYMY?Y?YM78YM78YMYM78Y?YM79YMYM797:7:Y?YM7;YMYMYM7;7;Y?Y?Y?YKYKZ#Z#YKYKZ#YKYKZ&YKYKZ&Z&78Z&Z&Z&7879Z&Z&797:7:7;YKYK7;YKYKYK7;Z&7<Z&7<Z&YK7=Z&Z&YK7=YKYKYK7=YK7=Y-Y-Y-7=Y-Y-YKYKZ#Z#Z#Z#Z#7<7<Y07=Y07=7>Y0Y0Z#Z#7>Z#Z#7>7?Y0YKYKZ#YKY-Y-7>Y-Z#Y-Z#Z#7=Y-Z#Z#Y-Y-7=Y-Z#7=Z#Y-Z#Y-Z#Z#Z#Z#Z#7<Z#7<Z#Y0Y-Y-Z#Y07;Y-Y0Y-Y-Y-Y07;Y07;Y0Y07;7<Y0Y07<7=Y0Y07=Y-Y0Y07=Y0Y0Y0Y-Y-7=Y-Y-Y-7=Y-Y-Y-Y-7=Y-7=Y0Y0Z#Z#7=Z#Y?Y?7=Y?7=7>Y?Y?Z#7>Y?Y?Y?Y07>Y07>Y0Y?Y?Y?Y?Z'7>7>Y07?7@Z'Z'Z'7@Z'Z'YP7@Z'Z'YPZ'Z'Z'Z'7?7?Z'YPZ'Y-Y-Y-7?Y-Y-Y-Y07>7?Y0Y0Y07?Y0Y07?7@Y0Y0Y-Y-Y-7@Y-7@YYYYY-7@Y-7AYYYY7A7BYYYY7BYYY-Y-Y0Y07A7BY0Y0Y0Y07B7CY07CY+Y+Y0Y07CY0Y0Y0Y07CY/Y/Y+Y+Y/Y/7BY/Y07BY0Y/YEYEZ&Z&Z&7AZ&YEYE7AY<Y<YEYEY<Y<YYYYYY7@YYYY7@7A7AY<Y2Y27AY2Y/Y2Y<Y<Y2Y2Y<Y<Y2Y<Y27?Y2Y<Y<Y<Y2Y<Y2Y<Y2Y<Y2Y<7=Y<7=Y<Y2Y<7=Y<Y/7>Y/7>Y/Y/7>7?Y<Y/Y<Y<Y/Y/7>Y/Y/Y/Y<Y<Y/Y/YGYG7=7>YGYGY<Y<Y<Y<7=Y<Y<Y<Y<Z(Y<Y<Z(Z(Y<Y<Z(Z(Y<7:Y<Y<7:YGY<Y<7:YG7;YGYGYGY<Y<YGYG7:7;YGYGY<YGY<YG7:YGYGYGYG7:Z%Y)Y)Y)VT79VQVQ797:VQVQVNX(VNX(VNVN797:7:X(X(X(X'W3X'W3W3W3W379W379X'X'79X'X'X'797:WUWUW%W%WUW%797:WUWU7:X,WUWUX,X,WU7:U>TTU>7:U>U>U>TTU>79TTTTTUTUTLTLTUTUTLTLTUTUU0U07677U0U0TLU077U07778TLTL78TUU0U0TUTUU0U07778U0U0TUTUU0U0TUTU7778TUTUV;V;TU77TU7878V;79V;797:V;V;TUTUTU7:TUTU7:7;TUTU7;7<TUTU7<7=TUTU7=7>7>V;7?V;7?V;V;V;TUTUUPUP7>U57?U5U4U4TLU4U0UPU0UPU0UPU0UPUPUPU97<U97<U9U9V;7<V;7=V;7=V;7>TUTUTU7>7>V;7?V;TU7?TU7@TUV;TUV;7?V;TUV;TUV;TUV;V;7>V;7?UPUP7?7@7@UP7AUPV;V;V;UP7@UPUPUPV;UPUPUPYB7?YBY>7?YBY>Y>YBYB7?Y>YB7?Y>Y>Y>YB7?YBY>7?Y>YBYBYBYBYIYB7>YBYBYIYIYBYIY>YBYBYBYIYIY(Y(YIYIYI7;YIYIYBYBYIYB7:YI7:YIYIYIYBYIYBYIYIYIYBYBYIYIYBYBYIYIYBYIYIYI7677YIYI77YIYMYMYI77YI77YI78YIYIYFYIYMYM77YM77YMYIYMYMYMYM77YM77YMYMYMYM77YO77YMYOYMYOYO777878YMYMYM78YPZ'Z'YPYP78YP78YPZ'YPYPYPZ'YPYPYPZ'77Z'YPZ'Z'Z'YJZ'7676YJZ'YJYP76YPY+YWYWYW76YSYSYWYSYW7576YS76Y/Y+7777Y/Y+Y+Y/Y/Y+Y+Y/Y/Y+Y/YT7576Y/76Y/YTYTY/Y/YTYTY/Y/Y/7575YTYTYTY/Y/757676YTYTYTY/Y/76Y/YTY/YTYT75YTYTYTY9Y975Y9Y*Y9Y*Y*Y*Y*Y*74Y*74Y*Y*Y9Y9Y9X#Y973X#X#73X#X#X#VWVWX#73VW7374X#74VWX#VWX#74X#X#7475X#X#X/VWX/X/VWVWVW74VWVW7475VSWSVS75VSVSVS75VS75VSVS75WSWSW,WSWS75WSWSWSVSWSWSWS74757576VSVSWSWSVSWSWPVNWPWP74VNWP75VNVN75WY75WYWYWYVNVN7576VN76WYWY76WYWYWYVNVN7677VN77WYWY7778WYWYVNWYWYWYW#77W#WYWY77WYWY7778WYWYW#WYWYWYW#WYWYWYVNVNW#W#VNVN75VNW#VNW#W#VNVNVN7474WY75WYWY75W,W,75WYW,W,WYWYW,W,WYWYWY74WY74WYWYWYWYW,W,WYWY7374WYWY74W,WYWYW,W,WYWYWY73WYWY7374WYWY747575WYW,W,WY75WY76WYWYW,W,W#W#WY75W#W#75WYW,W,7576W,W,W,7676WYWYWY76WYWYWYW,76W,W,76WYW,W,WYWYW,WYWYWY75WYWYWYWY75WYWYW#W#W,W,W#W#73W#W#W#7374W,W,7475W,W,75W,W,W,W,W,W#W#W#W#W#74W#W,74W,W,W,W,W#WYWY73WYW,W,W,W#WYWYW#W#71W#W#W#7172WYWYW#727374WYWYWYW#W#WYWYWY72WYWYWYWS72WS73W,W,73WSW,W,7374W#WYW#WYWY73WYW#W#W#W#73W#W#WYW#WY72WYWY72WYWYWYWYW#WYWYWYWY7172WYWY72W#72W#W#W#W#W#WYWYW#W#71W#W#W#717272W#WYWYW#W#W#72W#W#727373W#WY747475WYWYWYWYW#WYWYWYWY74WYWYWY74WY7475W#WYWYWY757576W#W#7677W#W#77W#W#W#WYWYWY77WY7778W#78W#W#W#WYWYW#WYWYWYW#W#WYWY767777W#W#W#W#77W#W#WY7778W#WY78WY7979W#7:W#VNVNW#W#VNVNW#W#VNVNW#78W#78W#W#78VNW#W#VNW#W#W#WUWUWU77WUWU77WUWUWUWU77WUWU77WM77WMWMWMWMWM77WMWUWMWMWMWU76WMWMWMWMWT76WT76WTWTWMWMWM767677WTWTWMWMWM77WM7778WT78WTWTWTWMWMWM78WM78WTWT78WTWTWT78WTWTWTWU78WMWMWUWM7879WM79WM7:WMWMWM7:WMWM7:7;WT7;WTWTU>UYU>UYU>7:U>7;U>U>U>7;U>7;U>U>U>UYUYUYU>U>7:7;U>U>7;V:U>U>V:V:U>U>V:V:U>79V:V:U>U>79V:U>U>V:V:U>U>V:V:U>77V:V:77U>V:V:U>77UYUY77U>UYUY7778UYUYV:UYV:78V:UY78U/UYUY7879UYUYUYTTUYUYTTTT77TTTTTTUY77U/U/7778U/U/78U/U/U/U/78U/U/7879U/U/TTTTUUUUTTTTUUUUTTTT77TTUU77UUUUUU77UUUU77TTUU78TTTT78TTUUTTUUUUUPUP77UPTLUP77UP77YBY>YBY>YBY>777778S:79797:S:S:S:7:7;S;S0S07;7<7<S0S:S:W-W-7<7=W-7=7>WFW-W-7>W-WFW-WFWFY9Y9W(7=7=W(W(W(Y9Y9W(7=Y9Y97=Y9W-W-WFW-W-W-WFWFW(W(7;7<W(W(7<7=VZ7=VZW(7=W(W(W(VZVZVZW(VZVZVZW(VZW6VZW6W6W6W6W/W679W6W6W(W(79W(79W(W6W(VO79VOVOW(W(79W(VOW(VOW(W6W6W.78W.W.78W6W.W.W.W6W6W6W/W/W6W/W/W/W6W6W675W6VOW6VO7475W(W(W(VUW(VUW(74W(VU74W(W(W(Y9Y9Y974VU74VUVUY9Y9VUY9X#73X#X#7374X#X#VUVU747575X#VUVU75X#76X#X#X#VUX#VU7576X#X#X#VUX#X#X#7576X#X#X#76X#X#VUVUX#X#VU7575X#VUX#VUX#VUVU7475VUVUVUVUW@W@X#X#74X#X#X#VUX#VU73VU74VSVSX#VSX#73X#X#VSVS73VSX#X#X#7373VSVSVSW773W7W773WSW7WSW773W7W77374W7W77475W77676W,W777W,W,77W,77W,W778W,W,78W,W778W7W778W,W7W,W7W7W,W7W,W7W,W,W7W9W7W9W775W7W7W9W975W975W9W7W7W775W9W97576W7W7W9W9W7W7W9W975W975W9W7W9W7W775W975W9W9W9W7W9W7W974W9W9W9W7W9W7W773W<W<W<W9W9W97373W<W<W<73W<W9W9W9W<W9W9W9W9W972W972W<W<W9W<W<W<W9W9W971W9W9W9W<W970W9W970TLUU71TM7172UL72UL737474TLUE75UE75UEUETLTL75TL75TLUE76UETLUE76TLTL76TL76TLTLTLTLTLUE767677UE78UE78UEUE78TL79TLUE79UEUE797:UEUETLUPTL7:TL7:UPUP7:X#VUVUX#X#7:7;W+W+W+7;W+WEW+W+7:WE7;WEWEWE7;7<WEWE7<7=WEWE7=W+WEW+W+W+WE7<WEW+W9W97<W9X#7<X#W9W<7<W<7=W<W:W<W:7<W:W<W<7<WUW:7=W)W<W)7=W<W<7=W<7=W<W<W<W<W<7=W<W)7=W)7>7>W<W<W<WU7>7?7@WUWUWU7@WUWUWU7@WU7@W1W17@W1W1W1WUWUWUWXWUWXWXWX7>UIUIUIULUL7>7?UL7?7@UITHTHTATATHTHTATHT+T+UCUCUCUCUC7=UCUC7=UCSA7=SASZX-X-X-7=7=VXVXVX7=X*VXVXX*X*7=X*7=X*X*X*X*X*7=X*X*X*X*7=X*X*7=7>X*VXX*VXX*X*VXX*VX7<VXVXX*X*7<X*VX7<VX7=VXX*VXX*WUW1WUW1WUWUWU7;WU7;WU7<WU7<WUWUWAWA7<WAWU7<W1W17<W1W1W17<TI7=TI7=TITDTI7=S4S4S4SX7=S@7>7>SXS@7?S@7?S@S@S@7?S@S@SXSX7?SXS@7?S@S@TD7?TD7@S.SMS.S.S.SMS.S.SMSM7>7?SMSM7?SMS.SMS.SMSM7>SMSMSMSMSM7>7>7?T$T$T$SK7?SKT$7?T$7@T$7@T$7AT$7A7BSKT$SKSKSK7ASKT$SKS3S37A7BS3S3SJSJS3S3S37A7AS3SO7BS3SOS3SO7ASOSOSOSO7A7BSG7BSGSOSOSOSGSOSGSO7ASOSO7ASOSOSOSGSGSWSWW>W>W>WVW>W>W>7?WV7?WVWV7?WVWVWVW>W>7?W>WV7?WVWVW>W>7?7@W>W>WVWVW>WVW>WVW$W$W$W?W$W?W?W?7<U#T-U#SJSJSJ7<SJ7<SJSJS7S77<7=S77=7>SJSOSOSO7>SGSG7>SGSO7>SOSG7>SISISISISI7>SISISISOSISOS8SOS8SOS8SOS8SG7;SG7<SISISIS8S8S8S8S>SISIS>S>SISIS>S>S>78S>S>78SWS>79S>S>S>SWV$TPV$78V$TPV$TPV(V(V(7777U@T=78V(V(T=T=V(V(77T=V(7778T=U@U@78U@SPSOSP78SP78SPSP78SOSPSPSP78SPSPS>S>SPSPS>S>77S>SP77SPSPSPS6SPSPS6S6SRS6S6S6S6SRSRSR74SR7475SRSRS6S67576S676SRSRU<U<U<76U<U<76U<U<TGTGTGT;TGT;TG747576V.SD76SDSDSPSP76SPS6S6S676SRSR76SRSESDSESET/75T/7676T077T077T0T/T0T0T0T077T077T0T0T0T;T077T077T0T0T;T;77T;T0T;T0T07677T0T0T;T;77T;T077T0T;T;77T;78T;TGT;T;T;T;T;7777V.78V.78V.797:V.V.7:V.T0T0T;T0T0T079V.79V.V.V.T0T079V.T0T0T0V.78V.V.V.T;T;7879T;T;79T;T079T0T0T0T079V.SESESSSSSESESESSSESE7778SE78SESSX;X;7879X;X;797:T57:T5T5T3T37:7;7;7<T5T5T5T3T5T3T5T3T5T5T3T37:T3T57:T5T5T0T0T7T7T0T0T7T7T0T.T.T.T.T0T.T.7677T.T.T0T077T0T.77T.T.UMUMT0UMV.V.UMV.T075T0UMUMV.UMUMUMV.UM74V.V.74V.UM74UMUMV.V.UMV.T0UMT0UM72UM73UM7374UMUM74UMT075T0T0T0UMT0UMT0T073T.T.T.T0T073T073UMT0UMT0UM73UMV.V.UM7373V.UM747475UMUMSSSSSE75SESSSSSS74XBXBXBXDXD74XD7475XBXB75XD76XD76XDXBXBXDXBXBXBXDXDXB75XDXD7576XDXD76XD7677XBXB7778T5T5T.T.T5T.YUY7YUYUYUY7YUYUY7Y7YUYUY7Y7YUY7X.X.X&X&X.X.X&X&X&X.X&X&X.X.X&X&X.X&X&X&X.X.X&X&X.X.X&X&X.X.X.X&Y4Y4Y@Y@Y4Y@Y4Y@Y4Y@Y@Y@Y4Y4Y@Y@Y4Y4Y@Y@Y4Y@Y@Y@Y4Y@Y@Y@Y4Y@Y4Y4Y@Y@Y4Y4Y@Y@Y4Y4Y4Y@Y4Y4Y@Y@Y4Y4Y'Y,Y'Y,Y'Y,Y'Y,YHYHYUYUYHYHYUYUY3Y3Y,Y,Y,Y3Y,Y,Y,Y,Y,Z&Z&Z&Y,Z&Y,Y,Y,Z&Z&Z&Y,Z&Z&Z&Y,Z&YLYLZ$Z$YLYVYLYVYVYVYLYLYVYGYVYVYGYGYVYGYVYVYVYGYVYVYVYGYNYNYXYXYNYNYXYNYXYXYXYNYNYNX.X.YNYNYNX.YNYGYNYNYGYNYGYGYNYNYGYGYGYNYGYGYNYNYGYGYNYNYNYGYNYNX.X.YNX.X.X.YNYNX.X.YNX.YNX.YGYGYGX.YGX.YGX.YGYGYGX.YGYGX.X.X.YGX.YGX.X.X.X&X.X&X&X&WGWGW=W=WGWGW=W=UTTLUTUTUTTLUTUTUTTLUTTLV?V?V?TLV?V?TLTLUGUGTLUGTLUGTLTLV9V;V9V;V9V9V9V;V9V9V;V;V9V9V;V;TLUGUGUGTLUGUGUGUGUGTLUGUGUGTLUGUGUGUGTUUGUGTLTLUGTUTLTLV;V;TUV;UKUKUKUPUKUKUPUPUKUKUPUPY.Y.YIY.Y.Y.YIY.Y.Y'Y.Y.Y.Y.YIYIY.YIYIYIY.Y.YIYIY.Y.YIYIY.YIYIYIY.Y.YIY.Y.Y.Y.YIY.Y.YIYIY.Y.YIY.Y.Y.YIY.Y.Y.YIY.YIYIYIY.Y.Y.YIYIY.Y.YIYIY.Y.YIY.Y.Y.YIYIY.Y.YIY.YIY.YIY.Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.Y'Y'Y.Y.Y'Y'Y.Y'Y.Y'Y.Y'Y.Y'Y.Y.Y'Y'Y.Y.Y.Y'Y.Y.Y.Y'Y.Y'Y.Y'Y.Y.Y'Y'Y.Y'Y'Y'Y,Y,Y,Y'Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y,Y,Y'Y'Y'Y,Y'Y,Y'Y'Y,Y,Y'Y'Y'Y,Y,Y,Y'Y'Y'Y,Y'Y'Y'Y,Y,Y,Y'Y'Y,Y,Y'Y'Y,Y,Y'Y'Y.Y.Y.Y'Y'Y'Y.Y'Y.Y.Y'Y,Y'Y'Y'Y'Y'Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y,Y,Y'Y,Y,Y,Y,Y'Y'Y'Y'Y'Y,Y,Y'Y,Y,Y,Y.Y.Y.Y'Y.Y'Y.Y.Y.Y.Y.Y'Y.Y.Y.Y'Y.Y'Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y'Y'Y.Y'Y'Y'Y'Y,Y'Y,Y,Y,Y'Y,Y'Y'Y'Y,Y'Y,Y,Y,Y,Y'Y'Y,Y,Y,Y'Y,Y'Y'Y,Y,Y'Y,Y'Y,Y'Y,Y'Y,Y'Y,Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y'Y.Y'Y.Y'Y'Y'Y.Y.Y'Y'Y.Y.Y'Y'Y'Y.Y'Y'Y'Y,Y'Y,Y,Y,Y'Y,Y,Y,Y.Y.YIYIYIY.YIYIY.Y.YIYIY.Y.Y.YAY.YAY.Y.Y.Y.Y.YIY.Y.YIYIY.Y.YIYAY.YAYAYAYIYAYIYAYAYAY.Y.YAYAY.YAY.YAY.YAYAYAYIYIYAYAYIYIYAYAYIYIYAYAYIYAYAYAYAYIYAYAYIYAYAYAYIYIYAY,YAY,YAY,YAY,Y,Y,YIYIYIY,YIYIYIY,YIY,YIY,YIY,Y,Y,YIYIY,YIY,Y,Y,Y,Y,YIY,YIYIYIY,YIYIYIY,Y,YIYIY,Y,YIYIY,Y,YIY,YIY,YIYIY,YIYIYIYIY,YIYIY,Y,YIY,YIYIYIZ)YIYIZ)Z)Z)Z)Z)YIZ)Z)Z)YIYIZ)Z)Z)YIZ)YIZ)Z)Z)Z)YIYIZ)YIZ)YIYIZ)Z)Z)Z)Z)YIZ)Z)Z)YIZ)YIYIYIZ)Z)YIYIYIYMYIYMYMYIYMYMY,Y,YIY,Y,Y,YIYIYIY,YIYIYIY,YIY,YIY,Y,Y,YIYIY,Y,Y,Y,YIY,Y,Z&Z&Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Y,Y,Z&Y,Y,Y,Z&Y,Z&Z&Z&Z&Z&Y,Z&Y,Z&Y,Z&Y,Z&Y,Y,Y,Z&Y,Z&YKY,YKYKY,Z&Z&Z&Y,Z&Z&Z&Y,Y,Y,Z&Y,Y,Y,Z&Z&Z&YKYKZ&Z&YKYKY,Y,Y,Z&Y,Z&Z&Z&YIYIYIY,YIY,Y,Y,YIY,Y,Y,YIY,YIY,YIY,YIY,YIY,YIY,YIYIYIY,YIY,Y,Y,YIY,YIY,YIY,YIY,YIY,YIY,YIYIYIY,YIY,Y,Y,YIY,YIY,Y,Y,YIY,YIY,YIY,Y,Y,Z)Y,Y,Y,Y,Z)Y,Y,Z)Z)Y,Y,Z)Y,YIYIZ)Z)Z)Z)Y,Y,Z)Y,Z)Z)Y,Y,Z)Z)Y,Z)Z)Z)Y,Z)Z)Z)Y,Y,Y,Z)Y,Y,Y,Z)Y,Y,Z)Y,Y,Y,Y,Z)Y,Y,Z)Z)Z)Z)Y1Y1Y,Y,Z)Z)Y,Y,Z)Z)Z)Z#Z)Z#Z#Z#Z)Z#Z)Z#Z)Z#Z)Z#Z)Z#Z)Z#Z#Z#YZZ#YZZ#Z)YZYZYZYZYZZ)YZZ)YZZ)Z)Z)Z)YMZ)YMZ)YMYMYMZ)YMYMZ)Z)YMYMZ)Z)YMYMZ)YMZ)YMZ)Z)Z)YMZ)YMYMYMYMZ)YMYMZ)Z)Z)YMZ)Z)YMYMZ)YMYMYMY,Y,Y,Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Z#Y,Y,Y,Z#Z#Z#Y,Z#Z#Z#Y,Y,Y,Z#Y,Y,Z#Z#Y,Z#Z#Z#YMY?Y?Y?YMY?YMYMY?Y?Y?YMY?Y?YMYMY?Y?YMY?YMY?YMY?YMYMYMY?YMY?YMYMZ'Y?Z'Z'YMY?Y?Y?YMY?Y?Y?Y?Y?YMYMYMY?YMYMYMY?YMYMY?Y?YMYMYMY?YMYMYMYMY?Y?YMYMY?YMY?Y?YMY?Y?Y?YMYMYMY?Y?Y?YMYMYMY?Z&Z&YKZ&Z&Z&YKYKZ&Z&YKYKZ&Z&YKYKZ&Z&YKZ&YKZ&YKYKZ&Z&YKYKZ&Z&YKYKYKYKYKZ&Z&Z&YKZ&YKZ&YKYKZ&Z&YKZ&Z&Z&YKYKYKYKY-YKYKYKYKY-Y-YKY-Y-Z#Z#Y0Y0Z#Z#Z#Y0Z#Y0Y0Y0Z#Z#Y0Y0Z#Z#Y0Y0Z#Z#Y0Y0Z#Y0Z#Y0Z#Y0Y0Y0Z#Y-Z#Y-Z#Y-Z#Z#Z#Y-Z#Z#Z#Y-Y-Y-Z#Z#Z#Y0Z#Z#Z#Y0Y0Y-Y0Y0Y0Y-Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y-Y0Y-Y-Y0Y0Y-Y-Y0Y-Y-Y-Y-Y0Y-Y-Y0Y0Y-Y0Y0Y0Z#Z#Z#Y?Y?Y?Z#Z#Z#Z#Y?Y?Z#Z#Y?Y?Z#Y?Z#Y?Y?Y0Y0Y0Y0Y0Y?Y0Y?Z'Z'Z'Y0Z'Z'Z'Z'Y0Y0Y0Y0Y0Z'Y0Z'Z'Z'YPYPZ'YPYPYPYPYPZ'Z'Z'YPYPY-Y-Y0Y0Y-Y-Y-Y0Y-Y-Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-Y0Y0Y0Y-Y-Y-YYY-Y-YYYYY-YYY-YYY-YYY-Y-YYYYY0Y0YYY0Y0Y0Y0YYY0Y0Y-Y-Y0Y0Y-Y0Y0Y0Y0Y0Y0Y+Y0Y0Y+Y+Y0Y+Y+Y+Y0Y0Y+Y+Y0Y0Y0Y/Y+Y/Y+Y+Y0Y0Y0Y/YEYEZ&YEYEYEY<Y<YYYYY/Y/YYYYY/Y/YYY/Y/Y/Y<Y<Y2Y2Y2Y2Y/Y2Y2Y<Y2Y2Y2Y<Y<Y<Y2Y<Y2Y<Y<Y<Y/Y/Y/Y<Y/Y<Y/Y<Y/Y/Y<Y<Y<Y/Y<Y<Y/Y/Y<Y/Y/Y/Y<YGY<Y<YGYGY<YGY<Y<Z(Z(YGYGY<Y<YGYGY<YGY<YGY<YGY<Y<Y<YGYGYGY<YGYGYGY<Y<YGYGY<YGYGYGZ%Z%VTVTVTVQVTVTVQVQVTVQVQVQVNVNX(X(VNX(X(X(VNVNVNX(W3W3W3X'W3W3X'X'W3W3X'X'W%W%WUWUW%W%WUW%WUX,WUWUX,X,WUWUX,X,WUWUWUX,WUX,U>TTU>TTU>TTTTTTTUTUU0U0TUTUU0U0TLU0TLU0TLU0TLTLU0U0TLTLTUTUU0U0TUTUU0U0TUTUU0U0TUTUTUV;TUTUV;V;TUTUTUV;TUV;V;V;TUV;TUV;TUV;TUV;TUTUTUV;TUTUV;V;TUTUTUUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUV;TUV;TUV;TUV;TUTUTUV;TLTLTLU5TLU5U5U5UPUPU9U9UPUPU9U9V;UPV;UPV;UPV;UPV;UPV;V;V;V;V;UPTUV;V;V;TUV;TUV;TUTUTUV;TUTUTUV;TUV;V;V;TUTUTUV;V;UPV;UPUPUPV;V;UPUPV;V;UPUPV;UPV;UPV;UPV;UPV;UPV;V;UPUPYBYBYBY>YBYBY>Y>YBYBYBY>YBYBYBY>Y>YBYBYBY>YBYBYBYIYIYBYBYIYIYIYBYBYIYBYIYIYIYBYIYIYIYBYBYIYIYBYBYIYIYBYBYMYMYIYMYIYIYIYFYFYFYIYFYMYMYIYMYIYMYIYMYMYMYMYOYMYOYMYOYMYMYOYOYMYMYOYOYOYOYMYMYOYOYMYMYOYOYOYMYPYPZ'Z'YPYPZ'YPZ'YPZ'Z'YPYPZ'YPZ'YJZ'YJYJYJZ'YJYPY+Y+Y+YWYWYSYSYWYSYWYSYWYSYSYSY/Y/Y+Y/Y/Y/Y+Y/Y+Y/Y+Y+YTYTY/Y/YTYTYTY/Y/Y/YTYTY/YTYTYTY/Y/YTYTY/Y/Y/YTY/YTYTYTY/YTYTYTY/Y/Y/YTY/YTYTYTY9Y9Y*Y9Y*Y9Y*Y*Y*Y*Y*Y9Y9Y9X#X#Y9X#X#X#VWVWX#VWVWVWVWX#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#WSWSVSVSVSWSVSWSVSWSVSWSWSWSWSW,WSWSVSVSVSWSVSVSWSWSVSWSVSWSVSVSWSWSVSWSVNVNWPVNVNVNWPWPVNVNVNWYVNWYWYWYVNVNVNWYVNWYWYWYVNVNVNWYVNWYVNVNWYVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYW#WYWYWYWYW#WYWYW#W#WYWYW#WYWYWYVNVNW#VNVNVNWYWYVNWYVNWYVNWYWYWYWYWYW,W,WYWYW,WYWYWYWYW,W,W,WYW,WYWYW,W,WYWYW,W,WYW,W,W,WYW,WYWYWYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,W,W,WYW,W,W,WYW,W#W#WYWYW#WYWYWYW,W,W,WYW,WYWYWYW,WYWYWYW,W,W,WYW,WYWYWYWYWYW,W,WYWYW,W,WYWYW,WYWYWYW#W#W,W,W#W#W,WYW,W,WYWYW,W,WYWYW,W,WYW,W,W,W,WYW,W,W#W#W#W,W#W,W,W,WYWYWYW,W#WYW#WYW#W#WYWYW#W#WYW#W#WYW#WYW#WYW#W#WYWYW#WYWYW#WYWYWSWSWSW,W,W,WSWSW,W,WSWSW,W,W7W7W,W,W7W7WYW#WYW#W#W#WYWYWYW#WYWYW#WYWYWYWYW#W#W#W#WYW#WYWYWYWYW#WYWYW#W#WYW#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYW#W#W#WYW#WYWYWYWYWYWYW#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYWYW#WYWYW#W#WYWYW#WYW#W#WYW#WYW#W#W#WYWYWYW#WYWYW#W#WYW#W#W#WYWYW#W#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYW#W#W#WYW#W#W#W#W#WYWYWYWYW#W#W#W#WYWYWYWYW#W#W#VNW#W#VNVNW#W#VNVNW#VNWUWUWMWMWMWMWMWUWUWUWUWMWUWUWUWMWUWUWUWMWUWMWUWUWUWUWMWMWMWMWTWTWMWMWTWTWMWTWMWTWMWMWMWTWMWTWTWTWMWMWTWMWMWMWTWTWMWTWTWTWMWMWTWTWMWTWTWTWMWMWMWTWMWMWTWTWMWTWTWTWUWUWMWMWUWMWMWMWMWUWMWMWMWTWMWMWMWTWMWTWMWMWTWMWMWMWMWTWMWMWTWTWMWTWTWTUYUYU>UYU>UYU>UYU>UYUYUYU>UYU>U>U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>U>V:U>U>V:V:U>U>UYUYU>U>UYUYU>U>UYUYU>UYUYUYV:UYV:UYV:V:U/U/U/UYU/U/UYUYU/U/UYUYUYTTUYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/TTTTUUTTTTUUUUUUUUTTUUUUTTTTUUTTTTTTUUTTUUTTUUUUUPUPTLUPTLTLUPUPY>YBY>YBY>YBY>YBS:S;S:S;S:S:S;S;S;S;S:S:S:S:S;S:S:S:S;S:S:S:S;S:S:S;S:S:S:S0S:S:S0S0S:S0S0S0S:S0W-W-WFWFW-WFWFWFW-W-W-WFWFW-WFWFWFW-WFW-Y9Y9W(W(Y9Y9Y9W(W(Y9W(W(W(Y9W(W(W(W(VZVZW(W(VZW(W(W(W(VZW(W(VZW(VZVZW(VZVZW(VZW(W6W(W6W6W6W(W6W(W6W(W6W6VOW(VOW(W(W(VOW(W6W6W.W6W.W.W.W6W6W6W6VOY9Y9W(Y9Y9Y9W(W(W(W(W(VUY9Y9W(W(Y9VUY9VUY9Y9VUY9X#VUX#X#VUVUX#X#VUVUX#X#VUVUVUX#VUX#X#X#X#X#VUX#VUVUVUX#X#X#VUX#VUVUVUX#VUVUX#X#VUX#VUVUX#X#VUX#X#VUVUVUVUX#VUVUVUX#VUX#X#X#X#VUX#X#VUVUVUX#VUVUVUX#VUX#VUX#VUX#X#VSX#X#VSVSX#VSX#X#X#VSX#VSVSVSW7WSW7W7WSWSW7WSWSWSW7WSWSWSWSW7WSWSW7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W9W7W7W7W9W7W9W7W9W7W7W7W9W9W9W9W9W7W7W9W9W7W9W9W9W7W9W7W9W7W9W7W7W7W9W7W7W7W9W7W9W9W9W9W9W9W<W9W9W<W<W9W9W9W<W9W<W9W<W9W<W<W<W9W9W9W<W9W9W9W<W9W<W9W<TLTLUUTLTLTLUUTLTMULTMULTMTMTMULULULTMULTMULTMTMULULTMULUETLUEUEUETLUETLTLTLUETLTLTLUETLUETLUEUEUETLTLTLTLTLUEUETLTLUETLUETLTLTLUETLUETLTLTLUEUETLTLUETLUETLUEUETLTLUETLTLTLUETLUETLUEUEUETLUEUETLTLUEUETLTLUETLTLUPTLUPTLUPUPUPX#X#VUVUX#X#VUVUX#X#VUX#W+W+W+WEW+W+W+WEW+WEWEWEW+WEW+W+WEWEW+WEWEWEW+W+WEWEW+W+WEW+WEW+W+W+WEW+X#W9X#X#X#W9W9W9W<W<W<W:W<W:W:W:W<W:W<W:WUWUW:W:W:WUW:W:W)W<W)W)W)W<W)W<W)W)W)W<W<W<W)W)W)W)W)W<W)W<W)W<W)W)W<W)WUX-X-X-WUWUX-X-WUX-X-X-WUWUW1WUWUW1W1W1WUWUWUW1WUW1W1W1T>UIUIUIUIULUIUIULULUIULULULUIUIULUIULUIUCUCU?U?UCUCU?U?SASZSASZX-X-X-VXX-VXX-VXX*X*VXVXVXX*VXX*VXX*VXX*X*X*X*VXX*X*X*VXX*X*VXVXX*VXVXVXVXX*VXVXVXX*VXVXX*X*VXX*VXX*VXX*WUWUWUWAWUWAWAWAWUWAWUWAWUWUWUWAWAWAWUWAWUWUWUW1WUW1W1W1TDTITITITITITDTITDTITDTDS4S=S4S4SXSXSXS@SXSXS@S@SXSXS@S@SXSXS@SXSXSXS@SXSXSXS@S@S@SXS@S@S@SXS@SXTDTITDTITDTITDTISMSMS.S.SMSMS.S.SMSMS.S.SMT$SMSMSMT$SMSMSMSMSMT$SMSMT$T$T$T$T$SKT$T$T$SKT$SKT$SKT$SKT$SKT$SKT$T$T$SKSKSKT$SKT$SKT$SKT$SKS3SJSJSJSJS3SJSJS3SOS3SOS3S3SOSOSOS3SOSOS3SOS3SOSOSGSGSGSOSOSOSGSOSGSOSOSOSGSOSOSGSGSOSOW>W>WVWVW>W>WVWVW>WVWVWVW>W>WVW>WVW>WVWVWVW>WVWVW>WVWVWVT-U#T-U#SJS7SJS7SJS7SJSJS7S7S7SJS7S7SJSJS7S7S7SJS7S7SJSJSOSGSOSGSOSGSGSGSOSGSOSGSOSOSOSISISISOSISGSGSGSISGSISGSIS>SWS>S>SWSWS>SWSWSWS>S>V$TPTPTPV(V(V(T=T=V(T=T=T=U@T=T=V(V(T=T=V(T=T=T=V(V(T=T=U@U@T=T=SOSOSPSOSPSOSPSPSOSOSOSPSOSPSPSPS>S>SPS>SPS>SPSPS6S6S6SRSRS6SRSRS6S6S6SRS6S6S6SRS6S6SRSRS6S6SRSRU<U<U<T1U<U<T1U<TPTPTPV.TPTPV.V.TPV.V.V.SPSPSDSPSDSPSDSPS6SRS6S6SDSRSDSRT/T/T0T0T/T0T/T/T/T/T0T0T0T0T/T0T/T0T/T0T0T0T;T;T0T;T0T0T;T;T0T;T0T;T0T0T0T;T0T;T0T;T0T0T;T;T0T;T;T;T0T;T;T;T0T;TGTGT;TGT;TGT;T;T;V.T;T;V.V.T;V.T;V.T;V.T;V.T;V.T;V.T;T0V.V.T0T0V.V.T0V.T0T0V.V.T0V.V.V.T0T0T0V.T0V.V.V.T;T;T0T0T;T;T0T0T;T;T0T;T;T;T0T;T0V.V.V.SESESESSSESSSSSSSESSSESSX;XDXDXDXDX;XDXDX;X;XDXDX;XDXDXDT3T3T5T3T5T3T5T5T3T3T5T3T3T3T5T3T3T3T5T5T3T3T5T5T3T3T5T5T.T0T.T.T0T0T.T0T.T0T.T.T.T0T.T.UMUMT0UMUMV.UMUMV.UMUMUMV.V.UMV.T0UMT0UMT0T0T0UMT0T0T0UMT0UMUMUMT0UMT0T0T0UMT0T0T0T0T.T.T.T0T.T.T0UMT0UMT0UMUMUMUMV.UMV.V.V.UMUMUMV.UMUMUMV.UMUMV.V.UMUMSESSSSSSXDXDXBXBXDXDXBXDXBXDXBXDXDXDXBXDXDXDXBXDXBXDXBXBXDXDXBXDXBXDXBXBXDXDXBXBXDXDXBXDXDXDXBXDXBXDXBXBXDXDXBXBT5T.T5T5T.T.T5T5", A = ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vincennes", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Etc/GMT", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/UTC", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis"];
270
+ if (p = +p, !(-90 <= (b = +b) && b <= 90 && -180 <= p && p <= 180))
271
271
  throw new RangeError("invalid coordinates");
272
- if (90 <= p)
272
+ if (90 <= b)
273
273
  return "Etc/GMT";
274
- var o = -1, O = 48 * (180 + b) / 360.00000000000006, q = 24 * (90 - p) / 180.00000000000003, d = 0 | O, n = 0 | q, a = 96 * n + 2 * d;
275
- for (a = 56 * A.charCodeAt(a) + A.charCodeAt(a + 1) - 1995; a + c.length < 3136; )
276
- a = 56 * A.charCodeAt(a = 8 * (o = o + a + 1) + 4 * (n = 0 | (q = 2 * (q - n) % 2)) + 2 * (d = 0 | (O = 2 * (O - d) % 2)) + 2304) + A.charCodeAt(a + 1) - 1995;
277
- return c[a + c.length - 3136];
274
+ var c = -1, O = 48 * (180 + p) / 360.00000000000006, Y = 24 * (90 - b) / 180.00000000000003, a = 0 | O, n = 0 | Y, X = 96 * n + 2 * a;
275
+ for (X = 56 * W.charCodeAt(X) + W.charCodeAt(X + 1) - 1995; X + A.length < 3136; )
276
+ X = 56 * W.charCodeAt(X = 8 * (c = c + X + 1) + 4 * (n = 0 | (Y = 2 * (Y - n) % 2)) + 2 * (a = 0 | (O = 2 * (O - a) % 2)) + 2304) + W.charCodeAt(X + 1) - 1995;
277
+ return A[X + A.length - 3136];
278
278
  }
279
279
  M.exports = z;
280
- })(t0);
281
- var P0 = t0.exports;
280
+ })(S0);
281
+ var P0 = S0.exports;
282
282
  const G0 = /* @__PURE__ */ I0(P0);
283
- var N0 = { exports: {} };
283
+ var U0 = { exports: {} };
284
284
  (function(M) {
285
285
  //! moment-timezone.js
286
286
  //! version : 0.5.48
287
287
  //! Copyright (c) JS Foundation and other contributors
288
288
  //! license : MIT
289
289
  //! github.com/moment/moment-timezone
290
- (function(z, p) {
291
- M.exports ? M.exports = p(L) : p(z.moment);
290
+ (function(z, b) {
291
+ M.exports ? M.exports = b(i) : b(z.moment);
292
292
  })(E0, function(z) {
293
293
  z.version === void 0 && z.default && (z = z.default);
294
- var p = "0.5.48", b = {}, A = {}, c = {}, o = {}, O = {}, q;
295
- (!z || typeof z.version != "string") && j("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");
296
- var d = z.version.split("."), n = +d[0], a = +d[1];
297
- (n < 2 || n === 2 && a < 6) && j("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + z.version + ". See momentjs.com");
298
- function Y(W) {
299
- return W > 96 ? W - 87 : W > 64 ? W - 29 : W - 48;
294
+ var b = "0.5.48", p = {}, W = {}, A = {}, c = {}, O = {}, Y;
295
+ (!z || typeof z.version != "string") && k("Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/");
296
+ var a = z.version.split("."), n = +a[0], X = +a[1];
297
+ (n < 2 || n === 2 && X < 6) && k("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + z.version + ". See momentjs.com");
298
+ function d(o) {
299
+ return o > 96 ? o - 87 : o > 64 ? o - 29 : o - 48;
300
300
  }
301
- function t(W) {
302
- var R = 0, X = W.split("."), e = X[0], f = X[1] || "", u = 1, _, B = 0, G = 1;
303
- for (W.charCodeAt(0) === 45 && (R = 1, G = -1), R; R < e.length; R++)
304
- _ = Y(e.charCodeAt(R)), B = 60 * B + _;
305
- for (R = 0; R < f.length; R++)
306
- u = u / 60, _ = Y(f.charCodeAt(R)), B += _ * u;
307
- return B * G;
301
+ function t(o) {
302
+ var q = 0, e = o.split("."), R = e[0], T = e[1] || "", s = 1, C, l = 0, h = 1;
303
+ for (o.charCodeAt(0) === 45 && (q = 1, h = -1), q; q < R.length; q++)
304
+ C = d(R.charCodeAt(q)), l = 60 * l + C;
305
+ for (q = 0; q < T.length; q++)
306
+ s = s / 60, C = d(T.charCodeAt(q)), l += C * s;
307
+ return l * h;
308
308
  }
309
- function i(W) {
310
- for (var R = 0; R < W.length; R++)
311
- W[R] = t(W[R]);
309
+ function r(o) {
310
+ for (var q = 0; q < o.length; q++)
311
+ o[q] = t(o[q]);
312
312
  }
313
- function U(W, R) {
314
- for (var X = 0; X < R; X++)
315
- W[X] = Math.round((W[X - 1] || 0) + W[X] * 6e4);
316
- W[R - 1] = 1 / 0;
313
+ function u(o, q) {
314
+ for (var e = 0; e < q; e++)
315
+ o[e] = Math.round((o[e - 1] || 0) + o[e] * 6e4);
316
+ o[q - 1] = 1 / 0;
317
317
  }
318
- function s(W, R) {
319
- var X = [], e;
320
- for (e = 0; e < R.length; e++)
321
- X[e] = W[R[e]];
322
- return X;
318
+ function V(o, q) {
319
+ var e = [], R;
320
+ for (R = 0; R < q.length; R++)
321
+ e[R] = o[q[R]];
322
+ return e;
323
323
  }
324
- function V(W) {
325
- var R = W.split("|"), X = R[2].split(" "), e = R[3].split(""), f = R[4].split(" ");
326
- return i(X), i(e), i(f), U(f, e.length), {
327
- name: R[0],
328
- abbrs: s(R[1].split(" "), e),
329
- offsets: s(X, e),
330
- untils: f,
331
- population: R[5] | 0
324
+ function m(o) {
325
+ var q = o.split("|"), e = q[2].split(" "), R = q[3].split(""), T = q[4].split(" ");
326
+ return r(e), r(R), r(T), u(T, R.length), {
327
+ name: q[0],
328
+ abbrs: V(q[1].split(" "), R),
329
+ offsets: V(e, R),
330
+ untils: T,
331
+ population: q[5] | 0
332
332
  };
333
333
  }
334
- function S(W) {
335
- W && this._set(V(W));
334
+ function L(o) {
335
+ o && this._set(m(o));
336
336
  }
337
- function r(W, R) {
338
- var X = R.length;
339
- if (W < R[0])
337
+ function B(o, q) {
338
+ var e = q.length;
339
+ if (o < q[0])
340
340
  return 0;
341
- if (X > 1 && R[X - 1] === 1 / 0 && W >= R[X - 2])
342
- return X - 1;
343
- if (W >= R[X - 1])
341
+ if (e > 1 && q[e - 1] === 1 / 0 && o >= q[e - 2])
342
+ return e - 1;
343
+ if (o >= q[e - 1])
344
344
  return -1;
345
- for (var e, f = 0, u = X - 1; u - f > 1; )
346
- e = Math.floor((f + u) / 2), R[e] <= W ? f = e : u = e;
347
- return u;
345
+ for (var R, T = 0, s = e - 1; s - T > 1; )
346
+ R = Math.floor((T + s) / 2), q[R] <= o ? T = R : s = R;
347
+ return s;
348
348
  }
349
- S.prototype = {
350
- _set: function(W) {
351
- this.name = W.name, this.abbrs = W.abbrs, this.untils = W.untils, this.offsets = W.offsets, this.population = W.population;
349
+ L.prototype = {
350
+ _set: function(o) {
351
+ this.name = o.name, this.abbrs = o.abbrs, this.untils = o.untils, this.offsets = o.offsets, this.population = o.population;
352
352
  },
353
- _index: function(W) {
354
- var R = +W, X = this.untils, e;
355
- if (e = r(R, X), e >= 0)
356
- return e;
353
+ _index: function(o) {
354
+ var q = +o, e = this.untils, R;
355
+ if (R = B(q, e), R >= 0)
356
+ return R;
357
357
  },
358
358
  countries: function() {
359
- var W = this.name;
360
- return Object.keys(c).filter(function(R) {
361
- return c[R].zones.indexOf(W) !== -1;
359
+ var o = this.name;
360
+ return Object.keys(A).filter(function(q) {
361
+ return A[q].zones.indexOf(o) !== -1;
362
362
  });
363
363
  },
364
- parse: function(W) {
365
- var R = +W, X = this.offsets, e = this.untils, f = e.length - 1, u, _, B, G;
366
- for (G = 0; G < f; G++)
367
- if (u = X[G], _ = X[G + 1], B = X[G && G - 1], u < _ && m.moveAmbiguousForward ? u = _ : u > B && m.moveInvalidForward && (u = B), R < e[G] - u * 6e4)
368
- return X[G];
369
- return X[f];
364
+ parse: function(o) {
365
+ var q = +o, e = this.offsets, R = this.untils, T = R.length - 1, s, C, l, h;
366
+ for (h = 0; h < T; h++)
367
+ if (s = e[h], C = e[h + 1], l = e[h && h - 1], s < C && I.moveAmbiguousForward ? s = C : s > l && I.moveInvalidForward && (s = l), q < R[h] - s * 6e4)
368
+ return e[h];
369
+ return e[T];
370
370
  },
371
- abbr: function(W) {
372
- return this.abbrs[this._index(W)];
371
+ abbr: function(o) {
372
+ return this.abbrs[this._index(o)];
373
373
  },
374
- offset: function(W) {
375
- return j("zone.offset has been deprecated in favor of zone.utcOffset"), this.offsets[this._index(W)];
374
+ offset: function(o) {
375
+ return k("zone.offset has been deprecated in favor of zone.utcOffset"), this.offsets[this._index(o)];
376
376
  },
377
- utcOffset: function(W) {
378
- return this.offsets[this._index(W)];
377
+ utcOffset: function(o) {
378
+ return this.offsets[this._index(o)];
379
379
  }
380
380
  };
381
- function l(W, R) {
382
- this.name = W, this.zones = R;
381
+ function E(o, q) {
382
+ this.name = o, this.zones = q;
383
383
  }
384
- function I(W) {
385
- var R = W.toTimeString(), X = R.match(/\([a-z ]+\)/i);
386
- X && X[0] ? (X = X[0].match(/[A-Z]/g), X = X ? X.join("") : void 0) : (X = R.match(/[A-Z]{3,5}/g), X = X ? X[0] : void 0), X === "GMT" && (X = void 0), this.at = +W, this.abbr = X, this.offset = W.getTimezoneOffset();
384
+ function N(o) {
385
+ var q = o.toTimeString(), e = q.match(/\([a-z ]+\)/i);
386
+ e && e[0] ? (e = e[0].match(/[A-Z]/g), e = e ? e.join("") : void 0) : (e = q.match(/[A-Z]{3,5}/g), e = e ? e[0] : void 0), e === "GMT" && (e = void 0), this.at = +o, this.abbr = e, this.offset = o.getTimezoneOffset();
387
387
  }
388
- function P(W) {
389
- this.zone = W, this.offsetScore = 0, this.abbrScore = 0;
388
+ function Z(o) {
389
+ this.zone = o, this.offsetScore = 0, this.abbrScore = 0;
390
390
  }
391
- P.prototype.scoreOffsetAt = function(W) {
392
- this.offsetScore += Math.abs(this.zone.utcOffset(W.at) - W.offset), this.zone.abbr(W.at).replace(/[^A-Z]/g, "") !== W.abbr && this.abbrScore++;
391
+ Z.prototype.scoreOffsetAt = function(o) {
392
+ this.offsetScore += Math.abs(this.zone.utcOffset(o.at) - o.offset), this.zone.abbr(o.at).replace(/[^A-Z]/g, "") !== o.abbr && this.abbrScore++;
393
393
  };
394
- function E(W, R) {
395
- for (var X, e; e = ((R.at - W.at) / 12e4 | 0) * 6e4; )
396
- X = new I(new Date(W.at + e)), X.offset === W.offset ? W = X : R = X;
397
- return W;
394
+ function f(o, q) {
395
+ for (var e, R; R = ((q.at - o.at) / 12e4 | 0) * 6e4; )
396
+ e = new N(new Date(o.at + R)), e.offset === o.offset ? o = e : q = e;
397
+ return o;
398
398
  }
399
- function C() {
400
- var W = (/* @__PURE__ */ new Date()).getFullYear() - 2, R = new I(new Date(W, 0, 1)), X = R.offset, e = [R], f, u, _, B;
401
- for (B = 1; B < 48; B++)
402
- _ = new Date(W, B, 1).getTimezoneOffset(), _ !== X && (u = new I(new Date(W, B, 1)), f = E(R, u), e.push(f), e.push(new I(new Date(f.at + 6e4))), R = u, X = _);
403
- for (B = 0; B < 4; B++)
404
- e.push(new I(new Date(W + B, 0, 1))), e.push(new I(new Date(W + B, 6, 1)));
405
- return e;
399
+ function U() {
400
+ var o = (/* @__PURE__ */ new Date()).getFullYear() - 2, q = new N(new Date(o, 0, 1)), e = q.offset, R = [q], T, s, C, l;
401
+ for (l = 1; l < 48; l++)
402
+ C = new Date(o, l, 1).getTimezoneOffset(), C !== e && (s = new N(new Date(o, l, 1)), T = f(q, s), R.push(T), R.push(new N(new Date(T.at + 6e4))), q = s, e = C);
403
+ for (l = 0; l < 4; l++)
404
+ R.push(new N(new Date(o + l, 0, 1))), R.push(new N(new Date(o + l, 6, 1)));
405
+ return R;
406
406
  }
407
- function Q(W, R) {
408
- return W.offsetScore !== R.offsetScore ? W.offsetScore - R.offsetScore : W.abbrScore !== R.abbrScore ? W.abbrScore - R.abbrScore : W.zone.population !== R.zone.population ? R.zone.population - W.zone.population : R.zone.name.localeCompare(W.zone.name);
407
+ function P(o, q) {
408
+ return o.offsetScore !== q.offsetScore ? o.offsetScore - q.offsetScore : o.abbrScore !== q.abbrScore ? o.abbrScore - q.abbrScore : o.zone.population !== q.zone.population ? q.zone.population - o.zone.population : q.zone.name.localeCompare(o.zone.name);
409
409
  }
410
- function K(W, R) {
411
- var X, e;
412
- for (i(R), X = 0; X < R.length; X++)
413
- e = R[X], O[e] = O[e] || {}, O[e][W] = !0;
410
+ function w(o, q) {
411
+ var e, R;
412
+ for (r(q), e = 0; e < q.length; e++)
413
+ R = q[e], O[R] = O[R] || {}, O[R][o] = !0;
414
414
  }
415
- function k(W) {
416
- var R = W.length, X = {}, e = [], f = {}, u, _, B, G;
417
- for (u = 0; u < R; u++)
418
- if (B = W[u].offset, !f.hasOwnProperty(B)) {
419
- G = O[B] || {};
420
- for (_ in G)
421
- G.hasOwnProperty(_) && (X[_] = !0);
422
- f[B] = !0;
415
+ function K(o) {
416
+ var q = o.length, e = {}, R = [], T = {}, s, C, l, h;
417
+ for (s = 0; s < q; s++)
418
+ if (l = o[s].offset, !T.hasOwnProperty(l)) {
419
+ h = O[l] || {};
420
+ for (C in h)
421
+ h.hasOwnProperty(C) && (e[C] = !0);
422
+ T[l] = !0;
423
423
  }
424
- for (u in X)
425
- X.hasOwnProperty(u) && e.push(o[u]);
426
- return e;
424
+ for (s in e)
425
+ e.hasOwnProperty(s) && R.push(c[s]);
426
+ return R;
427
427
  }
428
- function O0() {
428
+ function x() {
429
429
  try {
430
- var W = Intl.DateTimeFormat().resolvedOptions().timeZone;
431
- if (W && W.length > 3) {
432
- var R = o[x(W)];
433
- if (R)
434
- return R;
435
- j("Moment Timezone found " + W + " from the Intl api, but did not have that data loaded.");
430
+ var o = Intl.DateTimeFormat().resolvedOptions().timeZone;
431
+ if (o && o.length > 3) {
432
+ var q = c[j(o)];
433
+ if (q)
434
+ return q;
435
+ k("Moment Timezone found " + o + " from the Intl api, but did not have that data loaded.");
436
436
  }
437
437
  } catch {
438
438
  }
439
- var X = C(), e = X.length, f = k(X), u = [], _, B, G;
440
- for (B = 0; B < f.length; B++) {
441
- for (_ = new P(y(f[B])), G = 0; G < e; G++)
442
- _.scoreOffsetAt(X[G]);
443
- u.push(_);
439
+ var e = U(), R = e.length, T = K(e), s = [], C, l, h;
440
+ for (l = 0; l < T.length; l++) {
441
+ for (C = new Z(g(T[l])), h = 0; h < R; h++)
442
+ C.scoreOffsetAt(e[h]);
443
+ s.push(C);
444
444
  }
445
- return u.sort(Q), u.length > 0 ? u[0].zone.name : void 0;
445
+ return s.sort(P), s.length > 0 ? s[0].zone.name : void 0;
446
446
  }
447
- function d0(W) {
448
- return (!q || W) && (q = O0()), q;
447
+ function q0(o) {
448
+ return (!Y || o) && (Y = x()), Y;
449
449
  }
450
- function x(W) {
451
- return (W || "").toLowerCase().replace(/\//g, "_");
450
+ function j(o) {
451
+ return (o || "").toLowerCase().replace(/\//g, "_");
452
452
  }
453
- function W0(W) {
454
- var R, X, e, f;
455
- for (typeof W == "string" && (W = [W]), R = 0; R < W.length; R++)
456
- e = W[R].split("|"), X = e[0], f = x(X), b[f] = W[R], o[f] = X, K(f, e[2].split(" "));
453
+ function c0(o) {
454
+ var q, e, R, T;
455
+ for (typeof o == "string" && (o = [o]), q = 0; q < o.length; q++)
456
+ R = o[q].split("|"), e = R[0], T = j(e), p[T] = o[q], c[T] = e, w(T, R[2].split(" "));
457
457
  }
458
- function y(W, R) {
459
- W = x(W);
460
- var X = b[W], e;
461
- return X instanceof S ? X : typeof X == "string" ? (X = new S(X), b[W] = X, X) : A[W] && R !== y && (e = y(A[W], y)) ? (X = b[W] = new S(), X._set(e), X.name = o[W], X) : null;
458
+ function g(o, q) {
459
+ o = j(o);
460
+ var e = p[o], R;
461
+ return e instanceof L ? e : typeof e == "string" ? (e = new L(e), p[o] = e, e) : W[o] && q !== g && (R = g(W[o], g)) ? (e = p[o] = new L(), e._set(R), e.name = c[o], e) : null;
462
462
  }
463
- function H() {
464
- var W, R = [];
465
- for (W in o)
466
- o.hasOwnProperty(W) && (b[W] || b[A[W]]) && o[W] && R.push(o[W]);
467
- return R.sort();
463
+ function Y0() {
464
+ var o, q = [];
465
+ for (o in c)
466
+ c.hasOwnProperty(o) && (p[o] || p[W[o]]) && c[o] && q.push(c[o]);
467
+ return q.sort();
468
468
  }
469
- function T() {
470
- return Object.keys(c);
469
+ function p0() {
470
+ return Object.keys(A);
471
471
  }
472
- function M0(W) {
473
- var R, X, e, f;
474
- for (typeof W == "string" && (W = [W]), R = 0; R < W.length; R++)
475
- X = W[R].split("|"), e = x(X[0]), f = x(X[1]), A[e] = f, o[e] = X[0], A[f] = e, o[f] = X[1];
472
+ function O0(o) {
473
+ var q, e, R, T;
474
+ for (typeof o == "string" && (o = [o]), q = 0; q < o.length; q++)
475
+ e = o[q].split("|"), R = j(e[0]), T = j(e[1]), W[R] = T, c[R] = e[0], W[T] = R, c[T] = e[1];
476
476
  }
477
- function g(W) {
478
- var R, X, e, f;
479
- if (!(!W || !W.length))
480
- for (R = 0; R < W.length; R++)
481
- f = W[R].split("|"), X = f[0].toUpperCase(), e = f[1].split(" "), c[X] = new l(
482
- X,
483
- e
477
+ function X0(o) {
478
+ var q, e, R, T;
479
+ if (!(!o || !o.length))
480
+ for (q = 0; q < o.length; q++)
481
+ T = o[q].split("|"), e = T[0].toUpperCase(), R = T[1].split(" "), A[e] = new E(
482
+ e,
483
+ R
484
484
  );
485
485
  }
486
- function h(W) {
487
- return W = W.toUpperCase(), c[W] || null;
486
+ function R0(o) {
487
+ return o = o.toUpperCase(), A[o] || null;
488
488
  }
489
- function U0(W, R) {
490
- if (W = h(W), !W)
489
+ function M0(o, q) {
490
+ if (o = R0(o), !o)
491
491
  return null;
492
- var X = W.zones.sort();
493
- return R ? X.map(function(e) {
494
- var f = y(e);
492
+ var e = o.zones.sort();
493
+ return q ? e.map(function(R) {
494
+ var T = g(R);
495
495
  return {
496
- name: e,
497
- offset: f.utcOffset(/* @__PURE__ */ new Date())
496
+ name: R,
497
+ offset: T.utcOffset(/* @__PURE__ */ new Date())
498
498
  };
499
- }) : X;
499
+ }) : e;
500
500
  }
501
- function B0(W) {
502
- W0(W.zones), M0(W.links), g(W.countries), m.dataVersion = W.version;
501
+ function H(o) {
502
+ c0(o.zones), O0(o.links), X0(o.countries), I.dataVersion = o.version;
503
503
  }
504
- function a0(W) {
505
- return a0.didShowError || (a0.didShowError = !0, j("moment.tz.zoneExists('" + W + "') has been deprecated in favor of !moment.tz.zone('" + W + "')")), !!y(W);
504
+ function W0(o) {
505
+ return W0.didShowError || (W0.didShowError = !0, k("moment.tz.zoneExists('" + o + "') has been deprecated in favor of !moment.tz.zone('" + o + "')")), !!g(o);
506
506
  }
507
- function n0(W) {
508
- var R = W._f === "X" || W._f === "x";
509
- return !!(W._a && W._tzm === void 0 && !R);
507
+ function o0(o) {
508
+ var q = o._f === "X" || o._f === "x";
509
+ return !!(o._a && o._tzm === void 0 && !q);
510
510
  }
511
- function j(W) {
512
- typeof console < "u" && typeof console.error == "function" && console.error(W);
511
+ function k(o) {
512
+ typeof console < "u" && typeof console.error == "function" && console.error(o);
513
513
  }
514
- function m(W) {
515
- var R = Array.prototype.slice.call(arguments, 0, -1), X = arguments[arguments.length - 1], e = z.utc.apply(null, R), f;
516
- return !z.isMoment(W) && n0(e) && (f = y(X)) && e.add(f.parse(e), "minutes"), e.tz(X), e;
514
+ function I(o) {
515
+ var q = Array.prototype.slice.call(arguments, 0, -1), e = arguments[arguments.length - 1], R = z.utc.apply(null, q), T;
516
+ return !z.isMoment(o) && o0(R) && (T = g(e)) && R.add(T.parse(R), "minutes"), R.tz(e), R;
517
517
  }
518
- m.version = p, m.dataVersion = "", m._zones = b, m._links = A, m._names = o, m._countries = c, m.add = W0, m.link = M0, m.load = B0, m.zone = y, m.zoneExists = a0, m.guess = d0, m.names = H, m.Zone = S, m.unpack = V, m.unpackBase60 = t, m.needsOffset = n0, m.moveInvalidForward = !0, m.moveAmbiguousForward = !1, m.countries = T, m.zonesForCountry = U0;
519
- var F = z.fn;
520
- z.tz = m, z.defaultZone = null, z.updateOffset = function(W, R) {
521
- var X = z.defaultZone, e;
522
- if (W._z === void 0 && (X && n0(W) && !W._isUTC && W.isValid() && (W._d = z.utc(W._a)._d, W.utc().add(X.parse(W), "minutes")), W._z = X), W._z)
523
- if (e = W._z.utcOffset(W), Math.abs(e) < 16 && (e = e / 60), W.utcOffset !== void 0) {
524
- var f = W._z;
525
- W.utcOffset(-e, R), W._z = f;
518
+ I.version = b, I.dataVersion = "", I._zones = p, I._links = W, I._names = c, I._countries = A, I.add = c0, I.link = O0, I.load = H, I.zone = g, I.zoneExists = W0, I.guess = q0, I.names = Y0, I.Zone = L, I.unpack = m, I.unpackBase60 = t, I.needsOffset = o0, I.moveInvalidForward = !0, I.moveAmbiguousForward = !1, I.countries = p0, I.zonesForCountry = M0;
519
+ var y = z.fn;
520
+ z.tz = I, z.defaultZone = null, z.updateOffset = function(o, q) {
521
+ var e = z.defaultZone, R;
522
+ if (o._z === void 0 && (e && o0(o) && !o._isUTC && o.isValid() && (o._d = z.utc(o._a)._d, o.utc().add(e.parse(o), "minutes")), o._z = e), o._z)
523
+ if (R = o._z.utcOffset(o), Math.abs(R) < 16 && (R = R / 60), o.utcOffset !== void 0) {
524
+ var T = o._z;
525
+ o.utcOffset(-R, q), o._z = T;
526
526
  } else
527
- W.zone(e, R);
528
- }, F.tz = function(W, R) {
529
- if (W) {
530
- if (typeof W != "string")
531
- throw new Error("Time zone name must be a string, got " + W + " [" + typeof W + "]");
532
- return this._z = y(W), this._z ? z.updateOffset(this, R) : j("Moment Timezone has no data for " + W + ". See http://momentjs.com/timezone/docs/#/data-loading/."), this;
527
+ o.zone(R, q);
528
+ }, y.tz = function(o, q) {
529
+ if (o) {
530
+ if (typeof o != "string")
531
+ throw new Error("Time zone name must be a string, got " + o + " [" + typeof o + "]");
532
+ return this._z = g(o), this._z ? z.updateOffset(this, q) : k("Moment Timezone has no data for " + o + ". See http://momentjs.com/timezone/docs/#/data-loading/."), this;
533
533
  }
534
534
  if (this._z)
535
535
  return this._z.name;
536
536
  };
537
- function L0(W) {
537
+ function d0(o) {
538
538
  return function() {
539
- return this._z ? this._z.abbr(this) : W.call(this);
539
+ return this._z ? this._z.abbr(this) : o.call(this);
540
540
  };
541
541
  }
542
- function i0(W) {
542
+ function a0(o) {
543
543
  return function() {
544
- return this._z = null, W.apply(this, arguments);
544
+ return this._z = null, o.apply(this, arguments);
545
545
  };
546
546
  }
547
- function s0(W) {
547
+ function L0(o) {
548
548
  return function() {
549
- return arguments.length > 0 && (this._z = null), W.apply(this, arguments);
549
+ return arguments.length > 0 && (this._z = null), o.apply(this, arguments);
550
550
  };
551
551
  }
552
- F.zoneName = L0(F.zoneName), F.zoneAbbr = L0(F.zoneAbbr), F.utc = i0(F.utc), F.local = i0(F.local), F.utcOffset = s0(F.utcOffset), z.tz.setDefault = function(W) {
553
- return (n < 2 || n === 2 && a < 9) && j("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + z.version + "."), z.defaultZone = W ? y(W) : null, z;
552
+ y.zoneName = d0(y.zoneName), y.zoneAbbr = d0(y.zoneAbbr), y.utc = a0(y.utc), y.local = a0(y.local), y.utcOffset = L0(y.utcOffset), z.tz.setDefault = function(o) {
553
+ return (n < 2 || n === 2 && X < 9) && k("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + z.version + "."), z.defaultZone = o ? g(o) : null, z;
554
554
  };
555
- var A0 = z.momentProperties;
556
- return Object.prototype.toString.call(A0) === "[object Array]" ? (A0.push("_z"), A0.push("_a")) : A0 && (A0._z = null), z;
555
+ var b0 = z.momentProperties;
556
+ return Object.prototype.toString.call(b0) === "[object Array]" ? (b0.push("_z"), b0.push("_a")) : b0 && (b0._z = null), z;
557
557
  });
558
- })(N0);
559
- var _0 = N0.exports;
560
- const C0 = "2025b", h0 = [
558
+ })(U0);
559
+ var _0 = U0.exports;
560
+ const h0 = "2025b", C0 = [
561
561
  "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5",
562
562
  "Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5",
563
563
  "Africa/Algiers|LMT PMT WET WEST CET CEST|-c.c -9.l 0 -10 -10 -20|01232323232323232454542423234542324|-3bQ0c.c MDA2.P cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5",
@@ -1404,46 +1404,47 @@ const C0 = "2025b", h0 = [
1404
1404
  "ZA|Africa/Johannesburg",
1405
1405
  "ZM|Africa/Maputo Africa/Lusaka",
1406
1406
  "ZW|Africa/Maputo Africa/Harare"
1407
- ], K0 = {
1408
- version: C0,
1409
- zones: h0,
1407
+ ], g0 = {
1408
+ version: h0,
1409
+ zones: C0,
1410
1410
  links: D0,
1411
1411
  countries: w0
1412
1412
  };
1413
- var g0 = _0;
1414
- g0.tz.load(K0);
1415
- var R0 = {};
1416
- Object.defineProperty(R0, "__esModule", { value: !0 });
1417
- var z0 = R0.Variable = void 0, r0;
1413
+ var y0 = _0;
1414
+ y0.tz.load(g0);
1415
+ var i0 = {};
1416
+ Object.defineProperty(i0, "__esModule", { value: !0 });
1417
+ var v = i0.Variable = void 0, u0;
1418
1418
  (function(M) {
1419
- M[M.undefined = 0] = "undefined", M[M.apparent_temperature = 1] = "apparent_temperature", M[M.cape = 2] = "cape", M[M.cloud_cover = 3] = "cloud_cover", M[M.cloud_cover_high = 4] = "cloud_cover_high", M[M.cloud_cover_low = 5] = "cloud_cover_low", M[M.cloud_cover_mid = 6] = "cloud_cover_mid", M[M.daylight_duration = 7] = "daylight_duration", M[M.dew_point = 8] = "dew_point", M[M.diffuse_radiation = 9] = "diffuse_radiation", M[M.diffuse_radiation_instant = 10] = "diffuse_radiation_instant", M[M.direct_normal_irradiance = 11] = "direct_normal_irradiance", M[M.direct_normal_irradiance_instant = 12] = "direct_normal_irradiance_instant", M[M.direct_radiation = 13] = "direct_radiation", M[M.direct_radiation_instant = 14] = "direct_radiation_instant", M[M.et0_fao_evapotranspiration = 15] = "et0_fao_evapotranspiration", M[M.evapotranspiration = 16] = "evapotranspiration", M[M.freezing_level_height = 17] = "freezing_level_height", M[M.growing_degree_days = 18] = "growing_degree_days", M[M.is_day = 19] = "is_day", M[M.latent_heat_flux = 20] = "latent_heat_flux", M[M.leaf_wetness_probability = 21] = "leaf_wetness_probability", M[M.lifted_index = 22] = "lifted_index", M[M.lightning_potential = 23] = "lightning_potential", M[M.precipitation = 24] = "precipitation", M[M.precipitation_hours = 25] = "precipitation_hours", M[M.precipitation_probability = 26] = "precipitation_probability", M[M.pressure_msl = 27] = "pressure_msl", M[M.rain = 28] = "rain", M[M.relative_humidity = 29] = "relative_humidity", M[M.runoff = 30] = "runoff", M[M.sensible_heat_flux = 31] = "sensible_heat_flux", M[M.shortwave_radiation = 32] = "shortwave_radiation", M[M.shortwave_radiation_instant = 33] = "shortwave_radiation_instant", M[M.showers = 34] = "showers", M[M.snow_depth = 35] = "snow_depth", M[M.snow_height = 36] = "snow_height", M[M.snowfall = 37] = "snowfall", M[M.snowfall_height = 38] = "snowfall_height", M[M.snowfall_water_equivalent = 39] = "snowfall_water_equivalent", M[M.sunrise = 40] = "sunrise", M[M.sunset = 41] = "sunset", M[M.soil_moisture = 42] = "soil_moisture", M[M.soil_moisture_index = 43] = "soil_moisture_index", M[M.soil_temperature = 44] = "soil_temperature", M[M.surface_pressure = 45] = "surface_pressure", M[M.surface_temperature = 46] = "surface_temperature", M[M.temperature = 47] = "temperature", M[M.terrestrial_radiation = 48] = "terrestrial_radiation", M[M.terrestrial_radiation_instant = 49] = "terrestrial_radiation_instant", M[M.total_column_integrated_water_vapour = 50] = "total_column_integrated_water_vapour", M[M.updraft = 51] = "updraft", M[M.uv_index = 52] = "uv_index", M[M.uv_index_clear_sky = 53] = "uv_index_clear_sky", M[M.vapour_pressure_deficit = 54] = "vapour_pressure_deficit", M[M.visibility = 55] = "visibility", M[M.weather_code = 56] = "weather_code", M[M.wind_direction = 57] = "wind_direction", M[M.wind_gusts = 58] = "wind_gusts", M[M.wind_speed = 59] = "wind_speed", M[M.vertical_velocity = 60] = "vertical_velocity", M[M.geopotential_height = 61] = "geopotential_height", M[M.wet_bulb_temperature = 62] = "wet_bulb_temperature", M[M.river_discharge = 63] = "river_discharge", M[M.wave_height = 64] = "wave_height", M[M.wave_period = 65] = "wave_period", M[M.wave_direction = 66] = "wave_direction", M[M.wind_wave_height = 67] = "wind_wave_height", M[M.wind_wave_period = 68] = "wind_wave_period", M[M.wind_wave_peak_period = 69] = "wind_wave_peak_period", M[M.wind_wave_direction = 70] = "wind_wave_direction", M[M.swell_wave_height = 71] = "swell_wave_height", M[M.swell_wave_period = 72] = "swell_wave_period", M[M.swell_wave_peak_period = 73] = "swell_wave_peak_period", M[M.swell_wave_direction = 74] = "swell_wave_direction", M[M.pm10 = 75] = "pm10", M[M.pm2p5 = 76] = "pm2p5", M[M.dust = 77] = "dust", M[M.aerosol_optical_depth = 78] = "aerosol_optical_depth", M[M.carbon_monoxide = 79] = "carbon_monoxide", M[M.nitrogen_dioxide = 80] = "nitrogen_dioxide", M[M.ammonia = 81] = "ammonia", M[M.ozone = 82] = "ozone", M[M.sulphur_dioxide = 83] = "sulphur_dioxide", M[M.alder_pollen = 84] = "alder_pollen", M[M.birch_pollen = 85] = "birch_pollen", M[M.grass_pollen = 86] = "grass_pollen", M[M.mugwort_pollen = 87] = "mugwort_pollen", M[M.olive_pollen = 88] = "olive_pollen", M[M.ragweed_pollen = 89] = "ragweed_pollen", M[M.european_aqi = 90] = "european_aqi", M[M.european_aqi_pm2p5 = 91] = "european_aqi_pm2p5", M[M.european_aqi_pm10 = 92] = "european_aqi_pm10", M[M.european_aqi_nitrogen_dioxide = 93] = "european_aqi_nitrogen_dioxide", M[M.european_aqi_ozone = 94] = "european_aqi_ozone", M[M.european_aqi_sulphur_dioxide = 95] = "european_aqi_sulphur_dioxide", M[M.us_aqi = 96] = "us_aqi", M[M.us_aqi_pm2p5 = 97] = "us_aqi_pm2p5", M[M.us_aqi_pm10 = 98] = "us_aqi_pm10", M[M.us_aqi_nitrogen_dioxide = 99] = "us_aqi_nitrogen_dioxide", M[M.us_aqi_ozone = 100] = "us_aqi_ozone", M[M.us_aqi_sulphur_dioxide = 101] = "us_aqi_sulphur_dioxide", M[M.us_aqi_carbon_monoxide = 102] = "us_aqi_carbon_monoxide", M[M.sunshine_duration = 103] = "sunshine_duration", M[M.convective_inhibition = 104] = "convective_inhibition", M[M.shortwave_radiation_clear_sky = 105] = "shortwave_radiation_clear_sky", M[M.global_tilted_irradiance = 106] = "global_tilted_irradiance", M[M.global_tilted_irradiance_instant = 107] = "global_tilted_irradiance_instant", M[M.ocean_current_velocity = 108] = "ocean_current_velocity", M[M.ocean_current_direction = 109] = "ocean_current_direction", M[M.cloud_base = 110] = "cloud_base", M[M.cloud_top = 111] = "cloud_top", M[M.mass_density = 112] = "mass_density", M[M.boundary_layer_height = 113] = "boundary_layer_height", M[M.formaldehyde = 114] = "formaldehyde", M[M.glyoxal = 115] = "glyoxal", M[M.non_methane_volatile_organic_compounds = 116] = "non_methane_volatile_organic_compounds", M[M.pm10_wildfires = 117] = "pm10_wildfires", M[M.peroxyacyl_nitrates = 118] = "peroxyacyl_nitrates", M[M.secondary_inorganic_aerosol = 119] = "secondary_inorganic_aerosol", M[M.residential_elementary_carbon = 120] = "residential_elementary_carbon", M[M.total_elementary_carbon = 121] = "total_elementary_carbon", M[M.pm2_5_total_organic_matter = 122] = "pm2_5_total_organic_matter", M[M.sea_salt_aerosol = 123] = "sea_salt_aerosol", M[M.nitrogen_monoxide = 124] = "nitrogen_monoxide", M[M.thunderstorm_probability = 125] = "thunderstorm_probability", M[M.rain_probability = 126] = "rain_probability", M[M.freezing_rain_probability = 127] = "freezing_rain_probability", M[M.ice_pellets_probability = 128] = "ice_pellets_probability", M[M.snowfall_probability = 129] = "snowfall_probability", M[M.carbon_dioxide = 130] = "carbon_dioxide", M[M.methane = 131] = "methane", M[M.sea_level_height_msl = 132] = "sea_level_height_msl", M[M.sea_surface_temperature = 133] = "sea_surface_temperature", M[M.invert_barometer_height = 134] = "invert_barometer_height", M[M.hail = 135] = "hail", M[M.albedo = 136] = "albedo", M[M.precipitation_type = 137] = "precipitation_type", M[M.convective_cloud_base = 138] = "convective_cloud_base", M[M.convective_cloud_top = 139] = "convective_cloud_top", M[M.snow_depth_water_equivalent = 140] = "snow_depth_water_equivalent", M[M.secondary_swell_wave_height = 141] = "secondary_swell_wave_height", M[M.secondary_swell_wave_period = 142] = "secondary_swell_wave_period", M[M.secondary_swell_wave_peak_period = 143] = "secondary_swell_wave_peak_period", M[M.secondary_swell_wave_direction = 144] = "secondary_swell_wave_direction", M[M.tertiary_swell_wave_height = 145] = "tertiary_swell_wave_height", M[M.tertiary_swell_wave_period = 146] = "tertiary_swell_wave_period", M[M.tertiary_swell_wave_peak_period = 147] = "tertiary_swell_wave_peak_period", M[M.tertiary_swell_wave_direction = 148] = "tertiary_swell_wave_direction", M[M.wind_u_component = 149] = "wind_u_component", M[M.wind_v_component = 150] = "wind_v_component", M[M.temperature_max24h = 151] = "temperature_max24h", M[M.temperature_min24h = 152] = "temperature_min24h", M[M.temperature_mean24h = 153] = "temperature_mean24h", M[M.snow_density = 154] = "snow_density", M[M.longwave_radiation = 155] = "longwave_radiation", M[M.sea_ice_cover = 156] = "sea_ice_cover", M[M.k_index = 157] = "k_index", M[M.roughness_length = 158] = "roughness_length", M[M.potential_evapotranspiration = 159] = "potential_evapotranspiration", M[M.wave_peak_period = 160] = "wave_peak_period", M[M.temperature_max6h = 161] = "temperature_max6h", M[M.temperature_min6h = 162] = "temperature_min6h", M[M.lightning_density = 163] = "lightning_density", M[M.sea_ice_thickness = 164] = "sea_ice_thickness";
1420
- })(r0 || (z0 = R0.Variable = r0 = {}));
1421
- var X0 = {};
1422
- Object.defineProperty(X0, "__esModule", { value: !0 });
1423
- var c0 = X0.Aggregation = void 0, f0;
1419
+ M[M.undefined = 0] = "undefined", M[M.apparent_temperature = 1] = "apparent_temperature", M[M.cape = 2] = "cape", M[M.cloud_cover = 3] = "cloud_cover", M[M.cloud_cover_high = 4] = "cloud_cover_high", M[M.cloud_cover_low = 5] = "cloud_cover_low", M[M.cloud_cover_mid = 6] = "cloud_cover_mid", M[M.daylight_duration = 7] = "daylight_duration", M[M.dew_point = 8] = "dew_point", M[M.diffuse_radiation = 9] = "diffuse_radiation", M[M.diffuse_radiation_instant = 10] = "diffuse_radiation_instant", M[M.direct_normal_irradiance = 11] = "direct_normal_irradiance", M[M.direct_normal_irradiance_instant = 12] = "direct_normal_irradiance_instant", M[M.direct_radiation = 13] = "direct_radiation", M[M.direct_radiation_instant = 14] = "direct_radiation_instant", M[M.et0_fao_evapotranspiration = 15] = "et0_fao_evapotranspiration", M[M.evapotranspiration = 16] = "evapotranspiration", M[M.freezing_level_height = 17] = "freezing_level_height", M[M.growing_degree_days = 18] = "growing_degree_days", M[M.is_day = 19] = "is_day", M[M.latent_heat_flux = 20] = "latent_heat_flux", M[M.leaf_wetness_probability = 21] = "leaf_wetness_probability", M[M.lifted_index = 22] = "lifted_index", M[M.lightning_potential = 23] = "lightning_potential", M[M.precipitation = 24] = "precipitation", M[M.precipitation_hours = 25] = "precipitation_hours", M[M.precipitation_probability = 26] = "precipitation_probability", M[M.pressure_msl = 27] = "pressure_msl", M[M.rain = 28] = "rain", M[M.relative_humidity = 29] = "relative_humidity", M[M.runoff = 30] = "runoff", M[M.sensible_heat_flux = 31] = "sensible_heat_flux", M[M.shortwave_radiation = 32] = "shortwave_radiation", M[M.shortwave_radiation_instant = 33] = "shortwave_radiation_instant", M[M.showers = 34] = "showers", M[M.snow_depth = 35] = "snow_depth", M[M.snow_height = 36] = "snow_height", M[M.snowfall = 37] = "snowfall", M[M.snowfall_height = 38] = "snowfall_height", M[M.snowfall_water_equivalent = 39] = "snowfall_water_equivalent", M[M.sunrise = 40] = "sunrise", M[M.sunset = 41] = "sunset", M[M.soil_moisture = 42] = "soil_moisture", M[M.soil_moisture_index = 43] = "soil_moisture_index", M[M.soil_temperature = 44] = "soil_temperature", M[M.surface_pressure = 45] = "surface_pressure", M[M.surface_temperature = 46] = "surface_temperature", M[M.temperature = 47] = "temperature", M[M.terrestrial_radiation = 48] = "terrestrial_radiation", M[M.terrestrial_radiation_instant = 49] = "terrestrial_radiation_instant", M[M.total_column_integrated_water_vapour = 50] = "total_column_integrated_water_vapour", M[M.updraft = 51] = "updraft", M[M.uv_index = 52] = "uv_index", M[M.uv_index_clear_sky = 53] = "uv_index_clear_sky", M[M.vapour_pressure_deficit = 54] = "vapour_pressure_deficit", M[M.visibility = 55] = "visibility", M[M.weather_code = 56] = "weather_code", M[M.wind_direction = 57] = "wind_direction", M[M.wind_gusts = 58] = "wind_gusts", M[M.wind_speed = 59] = "wind_speed", M[M.vertical_velocity = 60] = "vertical_velocity", M[M.geopotential_height = 61] = "geopotential_height", M[M.wet_bulb_temperature = 62] = "wet_bulb_temperature", M[M.river_discharge = 63] = "river_discharge", M[M.wave_height = 64] = "wave_height", M[M.wave_period = 65] = "wave_period", M[M.wave_direction = 66] = "wave_direction", M[M.wind_wave_height = 67] = "wind_wave_height", M[M.wind_wave_period = 68] = "wind_wave_period", M[M.wind_wave_peak_period = 69] = "wind_wave_peak_period", M[M.wind_wave_direction = 70] = "wind_wave_direction", M[M.swell_wave_height = 71] = "swell_wave_height", M[M.swell_wave_period = 72] = "swell_wave_period", M[M.swell_wave_peak_period = 73] = "swell_wave_peak_period", M[M.swell_wave_direction = 74] = "swell_wave_direction", M[M.pm10 = 75] = "pm10", M[M.pm2p5 = 76] = "pm2p5", M[M.dust = 77] = "dust", M[M.aerosol_optical_depth = 78] = "aerosol_optical_depth", M[M.carbon_monoxide = 79] = "carbon_monoxide", M[M.nitrogen_dioxide = 80] = "nitrogen_dioxide", M[M.ammonia = 81] = "ammonia", M[M.ozone = 82] = "ozone", M[M.sulphur_dioxide = 83] = "sulphur_dioxide", M[M.alder_pollen = 84] = "alder_pollen", M[M.birch_pollen = 85] = "birch_pollen", M[M.grass_pollen = 86] = "grass_pollen", M[M.mugwort_pollen = 87] = "mugwort_pollen", M[M.olive_pollen = 88] = "olive_pollen", M[M.ragweed_pollen = 89] = "ragweed_pollen", M[M.european_aqi = 90] = "european_aqi", M[M.european_aqi_pm2p5 = 91] = "european_aqi_pm2p5", M[M.european_aqi_pm10 = 92] = "european_aqi_pm10", M[M.european_aqi_nitrogen_dioxide = 93] = "european_aqi_nitrogen_dioxide", M[M.european_aqi_ozone = 94] = "european_aqi_ozone", M[M.european_aqi_sulphur_dioxide = 95] = "european_aqi_sulphur_dioxide", M[M.us_aqi = 96] = "us_aqi", M[M.us_aqi_pm2p5 = 97] = "us_aqi_pm2p5", M[M.us_aqi_pm10 = 98] = "us_aqi_pm10", M[M.us_aqi_nitrogen_dioxide = 99] = "us_aqi_nitrogen_dioxide", M[M.us_aqi_ozone = 100] = "us_aqi_ozone", M[M.us_aqi_sulphur_dioxide = 101] = "us_aqi_sulphur_dioxide", M[M.us_aqi_carbon_monoxide = 102] = "us_aqi_carbon_monoxide", M[M.sunshine_duration = 103] = "sunshine_duration", M[M.convective_inhibition = 104] = "convective_inhibition", M[M.shortwave_radiation_clear_sky = 105] = "shortwave_radiation_clear_sky", M[M.global_tilted_irradiance = 106] = "global_tilted_irradiance", M[M.global_tilted_irradiance_instant = 107] = "global_tilted_irradiance_instant", M[M.ocean_current_velocity = 108] = "ocean_current_velocity", M[M.ocean_current_direction = 109] = "ocean_current_direction", M[M.cloud_base = 110] = "cloud_base", M[M.cloud_top = 111] = "cloud_top", M[M.mass_density = 112] = "mass_density", M[M.boundary_layer_height = 113] = "boundary_layer_height", M[M.formaldehyde = 114] = "formaldehyde", M[M.glyoxal = 115] = "glyoxal", M[M.non_methane_volatile_organic_compounds = 116] = "non_methane_volatile_organic_compounds", M[M.pm10_wildfires = 117] = "pm10_wildfires", M[M.peroxyacyl_nitrates = 118] = "peroxyacyl_nitrates", M[M.secondary_inorganic_aerosol = 119] = "secondary_inorganic_aerosol", M[M.residential_elementary_carbon = 120] = "residential_elementary_carbon", M[M.total_elementary_carbon = 121] = "total_elementary_carbon", M[M.pm2_5_total_organic_matter = 122] = "pm2_5_total_organic_matter", M[M.sea_salt_aerosol = 123] = "sea_salt_aerosol", M[M.nitrogen_monoxide = 124] = "nitrogen_monoxide", M[M.thunderstorm_probability = 125] = "thunderstorm_probability", M[M.rain_probability = 126] = "rain_probability", M[M.freezing_rain_probability = 127] = "freezing_rain_probability", M[M.ice_pellets_probability = 128] = "ice_pellets_probability", M[M.snowfall_probability = 129] = "snowfall_probability", M[M.carbon_dioxide = 130] = "carbon_dioxide", M[M.methane = 131] = "methane", M[M.sea_level_height_msl = 132] = "sea_level_height_msl", M[M.sea_surface_temperature = 133] = "sea_surface_temperature", M[M.invert_barometer_height = 134] = "invert_barometer_height", M[M.hail = 135] = "hail", M[M.albedo = 136] = "albedo", M[M.precipitation_type = 137] = "precipitation_type", M[M.convective_cloud_base = 138] = "convective_cloud_base", M[M.convective_cloud_top = 139] = "convective_cloud_top", M[M.snow_depth_water_equivalent = 140] = "snow_depth_water_equivalent", M[M.secondary_swell_wave_height = 141] = "secondary_swell_wave_height", M[M.secondary_swell_wave_period = 142] = "secondary_swell_wave_period", M[M.secondary_swell_wave_peak_period = 143] = "secondary_swell_wave_peak_period", M[M.secondary_swell_wave_direction = 144] = "secondary_swell_wave_direction", M[M.tertiary_swell_wave_height = 145] = "tertiary_swell_wave_height", M[M.tertiary_swell_wave_period = 146] = "tertiary_swell_wave_period", M[M.tertiary_swell_wave_peak_period = 147] = "tertiary_swell_wave_peak_period", M[M.tertiary_swell_wave_direction = 148] = "tertiary_swell_wave_direction", M[M.wind_u_component = 149] = "wind_u_component", M[M.wind_v_component = 150] = "wind_v_component", M[M.temperature_max24h = 151] = "temperature_max24h", M[M.temperature_min24h = 152] = "temperature_min24h", M[M.temperature_mean24h = 153] = "temperature_mean24h", M[M.snow_density = 154] = "snow_density", M[M.longwave_radiation = 155] = "longwave_radiation", M[M.sea_ice_cover = 156] = "sea_ice_cover", M[M.k_index = 157] = "k_index", M[M.roughness_length = 158] = "roughness_length", M[M.potential_evapotranspiration = 159] = "potential_evapotranspiration", M[M.wave_peak_period = 160] = "wave_peak_period", M[M.temperature_max6h = 161] = "temperature_max6h", M[M.temperature_min6h = 162] = "temperature_min6h", M[M.lightning_density = 163] = "lightning_density", M[M.sea_ice_thickness = 164] = "sea_ice_thickness", M[M.shortwave_radiation_clear_sky_instant = 165] = "shortwave_radiation_clear_sky_instant", M[M.sea_water_salinity = 166] = "sea_water_salinity";
1420
+ })(u0 || (v = i0.Variable = u0 = {}));
1421
+ var T0 = {};
1422
+ Object.defineProperty(T0, "__esModule", { value: !0 });
1423
+ var z0 = T0.Aggregation = void 0, N0;
1424
1424
  (function(M) {
1425
1425
  M[M.none = 0] = "none", M[M.minimum = 1] = "minimum", M[M.maximum = 2] = "maximum", M[M.mean = 3] = "mean", M[M.p10 = 4] = "p10", M[M.p25 = 5] = "p25", M[M.median = 6] = "median", M[M.p75 = 7] = "p75", M[M.p90 = 8] = "p90", M[M.dominant = 9] = "dominant", M[M.sum = 10] = "sum", M[M.spread = 11] = "spread", M[M.anomaly = 12] = "anomaly", M[M.sot10 = 13] = "sot10", M[M.sot90 = 14] = "sot90", M[M.efi = 15] = "efi";
1426
- })(f0 || (c0 = X0.Aggregation = f0 = {}));
1427
- let D;
1426
+ })(N0 || (z0 = T0.Aggregation = N0 = {}));
1427
+ let _;
1428
1428
  try {
1429
- D = Y0.getLogger("meteo2");
1429
+ _ = e0.getLogger("meteo2");
1430
1430
  } catch {
1431
1431
  } finally {
1432
1432
  }
1433
- class b0 {
1434
- constructor(z, p) {
1435
- v(this, "apikey");
1436
- v(this, "debug");
1437
- v(this, "FORECAST", {
1433
+ class Q {
1434
+ constructor(z, b) {
1435
+ F(this, "apikey");
1436
+ F(this, "debug");
1437
+ F(this, "FORECAST", {
1438
+ // Open-Meteo 大气预报接口
1438
1439
  OM_URL: "https://customer-api.open-meteo.com/v1/forecast",
1439
- ORM_URL: "https://meteo3.idmwx.com/v1/forecast",
1440
- // ORM_HISTORY_URL: 'https://meteo1.idmwx.com/v1/forecast',
1441
- ORM_HISTORY_URL: "https://meteo3.idmwx.com/v1/forecast",
1440
+ // Open-Meteo 大气历史接口
1442
1441
  OM_HISTORY_URL: "https://customer-historical-forecast-api.open-meteo.com/v1/forecast",
1442
+ // Open-Meteo 海洋预报接口
1443
1443
  OM_MARINE_URL: "https://customer-marine-api.open-meteo.com/v1/marine",
1444
+ // ORM 大气预报接口
1445
+ ORM_URL: "https://meteo3.idmwx.com/v1/forecast",
1446
+ // ORM 海洋预报接口
1444
1447
  ORM_MARINE_URL: "https://meteo3.idmwx.com/v1/marine",
1445
- ORM_HISTORY_MARINE_URL: "https://meteo3.idmwx.com/v1/marine",
1446
- // ORM_HISTORY_MARINE_URL: 'https://meteo1.idmwx.com/v1/marine',
1447
1448
  WEATHER_VARIABLES: {
1448
1449
  NORMAL: {
1449
1450
  DAILY: "weather_code,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,precipitation_hours,precipitation_probability_max,rain_sum,showers_sum,snowfall_sum,wind_speed_10m_max,wind_gusts_10m_max,wind_direction_10m_dominant",
@@ -1455,82 +1456,126 @@ class b0 {
1455
1456
  HOURLY: "wave_height,wave_direction,wave_period,wind_wave_height,wind_wave_direction,wind_wave_period,wind_wave_peak_period,swell_wave_height,swell_wave_direction,swell_wave_period,swell_wave_peak_period,ocean_current_velocity,ocean_current_direction,sea_level_height_msl,sea_surface_temperature"
1456
1457
  }
1457
1458
  });
1458
- v(this, "HISTORICAL", {
1459
+ F(this, "HISTORICAL", {
1459
1460
  OM_URL: "https://customer-archive-api.open-meteo.com/v1/archive",
1460
1461
  WEATHER_VARIABLES: {
1461
1462
  HOURLY: "temperature_2m,apparent_temperature,precipitation,weather_code,pressure_msl,surface_pressure,wind_speed_10m,wind_direction_10m,wind_gusts_10m",
1462
1463
  DAILY: "weather_code,temperature_2m_max,temperature_2m_min,temperature_2m_mean,precipitation_sum,precipitation_hours,wind_speed_10m_max,wind_gusts_10m_max,wind_direction_10m_dominant"
1463
1464
  }
1464
1465
  });
1465
- v(this, "CLIMATE", {
1466
+ F(this, "CLIMATE", {
1466
1467
  OM_URL: "https://customer-climate-api.open-meteo.com/v1/climate",
1467
1468
  WEATHER_VARIABLES: {
1468
1469
  DAILY: "temperature_2m_mean,temperature_2m_max,temperature_2m_min,wind_speed_10m_mean,wind_speed_10m_max,relative_humidity_2m_mean,relative_humidity_2m_max,relative_humidity_2m_min,precipitation_sum"
1469
1470
  }
1470
1471
  });
1471
- v(this, "SEASONAL", {
1472
- OM_URL: "https://seasonal-api.open-meteo.com/v1/seasonal",
1472
+ F(this, "SEASONAL", {
1473
+ OM_URL: "https://customer-seasonal-api.open-meteo.com/v1/seasonal",
1473
1474
  WEATHER_VARIABLES: {
1474
- // DAILY: 'temperature_2m_max,temperature_2m_min,precipitation_sum,precipitation_hours,wind_direction_10m_dominant,wind_speed_10m_max',
1475
- DAILY: "temperature_2m_max,temperature_2m_min,precipitation_sum,wind_direction_10m_dominant,wind_speed_10m_max",
1476
- SIX_HOURLY: "pressure_msl,temperature_2m,temperature_2m_max,temperature_2m_min,precipitation,wind_direction_10m,wind_speed_10m,relative_humidity_2m,showers,cloud_cover"
1475
+ DAILY: "temperature_2m_max,temperature_2m_min,temperature_2m_mean,precipitation_sum,weather_code,wind_direction_10m_dominant,wind_speed_10m_max,wind_speed_10m_mean,wind_gusts_10m_max",
1476
+ SIX_HOURLY: "pressure_msl,temperature_2m,temperature_2m_max,weather_code,precipitation,wind_direction_10m,wind_speed_10m,wind_gusts_10m,relative_humidity_2m,showers,cloud_cover,wave_height,wave_direction,wave_period,wave_peak_period"
1477
1477
  }
1478
1478
  });
1479
- v(this, "METEO2_UPDATE", {
1480
- etime: L().unix(),
1479
+ F(this, "METEO2_UPDATE", {
1480
+ etime: i().unix(),
1481
1481
  version: 0
1482
1482
  });
1483
- this.apikey = z || "smE3JnDLHy3TizVv", this.debug = p;
1483
+ this.apikey = z || "smE3JnDLHy3TizVv", this.debug = b;
1484
1484
  }
1485
+ /**
1486
+ * 标准大气模式
1487
+ */
1485
1488
  async standardWeatherModels() {
1486
- return w.standardWeatherModels();
1489
+ return D.standardWeatherModels();
1487
1490
  }
1491
+ /**
1492
+ * 标准海洋模式
1493
+ */
1488
1494
  async standardMarineModels() {
1489
- return w.standardMarineModels();
1495
+ return D.standardMarineModels();
1490
1496
  }
1497
+ /**
1498
+ * 自动匹配大气模式和海洋模式
1499
+ * @param model0
1500
+ */
1491
1501
  async autoPickMeteoModel(z = "best_match") {
1492
- return w.autoPickMeteoModel(z);
1502
+ return D.autoPickMeteoModel(z);
1493
1503
  }
1494
- static range(z, p, b) {
1495
- return Array.from({ length: (p - z) / b }, (A, c) => z + c * b);
1504
+ /**
1505
+ * 生成指定范围内的数字序列
1506
+ * @param start
1507
+ * @param stop
1508
+ * @param step
1509
+ */
1510
+ static range(z, b, p) {
1511
+ return Array.from({ length: (b - z) / p }, (W, A) => z + A * p);
1496
1512
  }
1497
1513
  /**
1498
1514
  * 大气数据
1499
1515
  * @param params
1500
1516
  * @param callback
1517
+ * @param seasonal 是否季节预报, 季节预报不调整时间区间
1518
+ * @param climate 是否气候预报, 气候预报不调整时间区间
1519
+ * @param historical 是否历史数据, 历史数据不调整时间区间
1501
1520
  * @param options
1502
1521
  */
1503
- async weatherForecast(z, p, b = {}) {
1522
+ async weatherForecast(z, b, p, W, A, c = {}) {
1523
+ const { st: O, et: Y, interval: a } = await this.checkTimeInterval(z.start_date, z.end_date, !p && !W && !A, c), n = i();
1504
1524
  try {
1505
- const A = L();
1506
- let c;
1507
- if (z.start_dates instanceof Array)
1508
- for (let O = 0; O < z.start_dates.length; O++) {
1509
- z.start_date = z.start_dates[O], z.end_date = z.end_dates[O], z.fake = z.fakes[O];
1510
- const q = z.url[O];
1511
- this.debug && D.debug("[%s] fetch weather via %s with %j", b.requestId, q, {
1512
- start_date: z.start_date,
1513
- end_date: z.end_date,
1514
- fake: z.fake,
1515
- step: O
1516
- });
1517
- const d = await o0(q, z), n = p ? await p(d, z, b) : await this.parseWeatherData(d, z, b);
1518
- c ? await this.mergeSegments(c, n) : c = n;
1519
- }
1520
- else {
1521
- const O = await o0(z.url, z);
1522
- c = p ? await p(O, z, b) : await this.parseWeatherData(O, z, b);
1525
+ if (p) {
1526
+ const X = this.SEASONAL.OM_URL;
1527
+ return await this.tryToFetchWeatherApi(X, z, b, 0, c);
1528
+ } else if (W) {
1529
+ const X = this.CLIMATE.OM_URL;
1530
+ return await this.tryToFetchWeatherApi(X, z, b, 0, c);
1531
+ } else if (A) {
1532
+ const X = this.HISTORICAL.OM_URL;
1533
+ return await this.tryToFetchWeatherApi(X, z, b, 0, c);
1534
+ } else if (!z.start_date && !z.end_date) {
1535
+ const X = this.pickForecastUrl(!1, c.selfHosted, !1, c);
1536
+ return await this.tryToFetchWeatherApi(X, z, b, 0, c);
1537
+ } else if (Y != null && Y.isBefore(n.clone().subtract(240))) {
1538
+ const X = this.pickForecastUrl(!1, !1, !0, c);
1539
+ return await this.tryToFetchWeatherApi(X, z, b, 0, c);
1540
+ } else if (O != null && O.isAfter(n.clone().add(90, "day"))) {
1541
+ const X = O.get("year") - n.get("year") + 1;
1542
+ z.start_date = O == null ? void 0 : O.clone().subtract(X, "year").format("YYYY-MM-DD"), z.end_date = Y == null ? void 0 : Y.clone().subtract(X, "year").format("YYYY-MM-DD");
1543
+ const d = this.pickForecastUrl(!1, !0, !1, c);
1544
+ return await this.tryToFetchWeatherApi(d, z, b, X, c);
1545
+ } else {
1546
+ const X = this.pickForecastUrl(!1, !0, !1, c);
1547
+ return await this.tryToFetchWeatherApi(X, z, b, 0, c);
1523
1548
  }
1524
- delete z.apikey;
1525
- const o = L();
1526
- return this.debug && D.info("[%s] fetch weather api (%j) cost: %d ms", b.requestId, z.url, o.diff(A, "ms")), this.mergeWeatherData(c);
1527
- } catch (A) {
1528
- return D.warn("[%s] weather forecast failed: %s, with %j", b.requestId, A, z), [];
1549
+ } catch (X) {
1550
+ const { start_date: d, end_date: t } = await this.matchDateRange(X == null ? void 0 : X.message, a, c);
1551
+ z.start_date = d, z.end_date = t, _.info("[%s] retry with extracted date range: %s to %s", c.requestId, d, t);
1552
+ const r = p ? this.SEASONAL.OM_URL : this.pickForecastUrl(!1, !0, !1, c);
1553
+ return await this.tryToFetchWeatherApi(r, z, b, 0, c);
1554
+ }
1555
+ }
1556
+ /**
1557
+ * 尝试调用天气接口, 并解析数据
1558
+ * @param url
1559
+ * @param params
1560
+ * @param callback
1561
+ * @param fakeYear
1562
+ * @param options
1563
+ * @private
1564
+ */
1565
+ async tryToFetchWeatherApi(z, b, p, W = 0, A = {}) {
1566
+ try {
1567
+ const c = i();
1568
+ this.debug && _.info("[%s] fetch weather via %s with %j", A.requestId, z, b);
1569
+ const O = await t0(z, b), Y = p ? await p(O, b, A) : await this.parseWeatherData(O, b, W, A);
1570
+ delete b.apikey;
1571
+ const a = i();
1572
+ return this.debug && _.info("[%s] fetch weather api (%j) cost: %d ms", A.requestId, b.url, a.diff(c, "ms")), this.mergeWeatherData(Y);
1573
+ } catch (c) {
1574
+ throw _.warn("[%s] weather forecast failed: %s, with %j", A.requestId, c, b), c;
1529
1575
  }
1530
1576
  }
1531
1577
  /**
1532
1578
  * 海洋数据
1533
- *
1534
1579
  * Data Set | Region | Spatial Resolution | Temporal Resolution | Data Availability | Update frequency
1535
1580
  * MeteoFrance MFWAM | Global | 0.08° (~8 km) | 3-Hourly | October 2021 with 10 day forecast | Every 12 hours
1536
1581
  * MeteoFrance SMOC Currents, Tides & SST | Global | 0.08° (~8 km) | Hourly | January 2022 with 10 day | forecast Every 24 hours
@@ -1544,91 +1589,137 @@ class b0 {
1544
1589
  * @param params
1545
1590
  * @param options
1546
1591
  */
1547
- async marineForecast(z, p = {}) {
1548
- var b, A, c, o, O, q, d, n;
1549
- try {
1550
- const a = L();
1551
- let Y;
1552
- if (z.start_dates instanceof Array)
1553
- for (let r = 0; r < z.start_dates.length; r++) {
1554
- z.start_date = z.start_dates[r], z.end_date = z.end_dates[r], z.fake = z.fakes[r];
1555
- const l = z.url[r];
1556
- this.debug && D.debug("[%s] fetch marine via %s with %j", p.requestId, l, {
1557
- start_date: z.start_date,
1558
- end_date: z.end_date,
1559
- fake: z.fake,
1560
- step: r
1561
- });
1562
- const I = await o0(l, z), P = await this.parseWeatherData(I, z, p);
1563
- Y ? await this.mergeSegments(Y, P) : Y = P;
1592
+ async marineForecast(z, b = {}) {
1593
+ var u, V, m, L, B, E, N, Z;
1594
+ const { st: p, et: W, interval: A } = await this.checkTimeInterval(z.start_date, z.end_date, !0, b), c = i(), O = [];
1595
+ let Y = 0;
1596
+ if (!z.start_date && !z.end_date) {
1597
+ const f = this.pickForecastUrl(!0, b.selfHosted, !1, b), U = await this.tryToFetchMarineApi(f, z, b);
1598
+ O.push(...U);
1599
+ } else
1600
+ for (const f of z.models)
1601
+ try {
1602
+ if (W != null && W.isBefore(c.clone().subtract(240))) {
1603
+ const U = this.pickForecastUrl(!0, !1, !0, b), P = await this.tryToFetchMarineApi(U, { ...z, models: [f] }, b);
1604
+ O.push(...P);
1605
+ } else if (p != null && p.isAfter(c.clone().add(90, "day"))) {
1606
+ Y = p.get("year") - c.get("year") + 1, z.start_date = p == null ? void 0 : p.clone().subtract(Y, "year").format("YYYY-MM-DD"), z.end_date = W == null ? void 0 : W.clone().subtract(Y, "year").format("YYYY-MM-DD");
1607
+ const U = this.pickForecastUrl(!0, !0, !0, b), P = await this.tryToFetchMarineApi(U, { ...z, models: [f] }, b);
1608
+ O.push(...P);
1609
+ } else {
1610
+ const U = this.pickForecastUrl(!0, !0, !1, b), P = await this.tryToFetchMarineApi(U, { ...z, models: [f] }, b);
1611
+ O.push(...P);
1612
+ }
1613
+ } catch (U) {
1614
+ const { start_date: P, end_date: w } = await this.matchDateRange(U == null ? void 0 : U.message, A, b), K = this.pickForecastUrl(!0, !0, !1, b), x = await this.tryToFetchMarineApi(K, { ...z, start_date: P, end_date: w, models: [f] }, b);
1615
+ O.push(...x);
1564
1616
  }
1565
- else {
1566
- const r = await o0(z.url, z);
1567
- Y = await this.parseWeatherData(r, z, p);
1568
- }
1569
- delete z.apikey;
1570
- const t = L();
1571
- this.debug && D.info("[%s] fetch marine api (%j) cost: %d ms", p.requestId, z.url, t.diff(a, "ms"));
1572
- const i = await this.mergeMarineData(Y), U = i.find((r) => r.model === "ncep_gfswave016"), s = i.find((r) => r.model === "ncep_gfswave025"), V = i.find((r) => r.model === "meteofrance_wave"), S = i.find((r) => r.model === "best_match");
1573
- return (A = (b = S == null ? void 0 : S.hourly) == null ? void 0 : b.wave_height) != null && A.every((r) => r !== null) ? [S] : (o = (c = V == null ? void 0 : V.hourly) == null ? void 0 : c.wave_height) != null && o.every((r) => r !== null) ? [V] : (q = (O = U == null ? void 0 : U.hourly) == null ? void 0 : O.wave_height) != null && q.every((r) => r !== null) ? [U] : (n = (d = s == null ? void 0 : s.hourly) == null ? void 0 : d.wave_height) != null && n.every((r) => r !== null) ? [s] : i != null && i.length ? [i[0]] : [];
1574
- } catch (a) {
1575
- return D.warn("[%s] marine forecast failed: %s, with %j", p.requestId, a, z), [];
1617
+ const a = await this.parseWeatherData(O, z, Y, b);
1618
+ delete z.apikey;
1619
+ const n = await this.mergeMarineData(a, p), X = n.find((f) => f.model === "ncep_gfswave016"), d = n.find((f) => f.model === "ncep_gfswave025"), t = n.find((f) => f.model === "meteofrance_wave"), r = n.find((f) => f.model === "best_match");
1620
+ return (V = (u = r == null ? void 0 : r.hourly) == null ? void 0 : u.wave_height) != null && V.every((f) => f !== null) ? [r] : (L = (m = t == null ? void 0 : t.hourly) == null ? void 0 : m.wave_height) != null && L.every((f) => f !== null) ? [t] : (E = (B = X == null ? void 0 : X.hourly) == null ? void 0 : B.wave_height) != null && E.every((f) => f !== null) ? [X] : (Z = (N = d == null ? void 0 : d.hourly) == null ? void 0 : N.wave_height) != null && Z.every((f) => f !== null) ? [d] : n != null && n.length ? [n[0]] : [];
1621
+ }
1622
+ /**
1623
+ * 尝试调用海洋接口
1624
+ * @param url
1625
+ * @param params
1626
+ * @param options
1627
+ * @private
1628
+ */
1629
+ async tryToFetchMarineApi(z, b, p = {}) {
1630
+ try {
1631
+ const W = i();
1632
+ this.debug && _.info("[%s] fetch marine via %s with %j", p.requestId, z, b);
1633
+ const A = await t0(z, b), c = i();
1634
+ return this.debug && _.info("[%s] fetch weather api (%j) cost: %d ms", p.requestId, b.url, c.diff(W, "ms")), A;
1635
+ } catch (W) {
1636
+ throw _.warn("[%s] marine forecast failed: %s, with %j", p.requestId, W, b), W;
1637
+ }
1638
+ }
1639
+ /**
1640
+ * 检查时间区间, 并调整为合理范围(不超时90天)
1641
+ * @param startDate
1642
+ * @param endDate
1643
+ * @param adjustable 是否季节预报, 季节预报不调整时间区间
1644
+ * @param options
1645
+ * @private
1646
+ */
1647
+ async checkTimeInterval(z, b, p, W = {}) {
1648
+ let A, c, O = 1;
1649
+ return p ? (z && b && (A = i.utc(z), c = i.utc(b), c.diff(A, "days") > 90 && (c = A.clone().add(90, "d")), O = c.diff(A, "day")), this.debug && _.info("[%s] check time interval: %s to %s, with interval: %d days", W.requestId, A == null ? void 0 : A.format(), c == null ? void 0 : c.format(), O)) : (A = i.utc(z), c = i.utc(b), O = c.diff(A, "day")), { st: A, et: c, interval: O };
1650
+ }
1651
+ /**
1652
+ * 从消息中提取时间区间, 并调整为合理范围
1653
+ * @param message
1654
+ * @param interval
1655
+ * @param options
1656
+ * @private
1657
+ */
1658
+ async matchDateRange(z, b = 1, p = {}) {
1659
+ const W = z == null ? void 0 : z.match(/from (\d{4}-\d{2}-\d{2}) to (\d{4}-\d{2}-\d{2})/);
1660
+ if (W) {
1661
+ const A = i.utc(W[2]), c = W[2], O = A.subtract(b || 1, "day").format("YYYY-MM-DD");
1662
+ return _.info("[%s] extract date range from message: %s to %s", p.requestId, O, c), { start_date: O, end_date: c };
1663
+ } else {
1664
+ const A = i.utc().add(7, "day"), c = A.format("YYYY-MM-DD"), O = A.clone().subtract(b, "day").format("YYYY-MM-DD");
1665
+ return _.info("[%s] extract date range with interval (%d): %s to %s", p.requestId, b, O, c), { start_date: O, end_date: c };
1576
1666
  }
1577
1667
  }
1578
1668
  /**
1579
- * 解析请求数据
1669
+ * 解析天气数据
1580
1670
  * @param rsps
1581
1671
  * @param params
1672
+ * @param fakeYear 对应用前一年数据的预报进行时间调整
1582
1673
  * @param options
1583
1674
  * @private
1584
1675
  */
1585
- async parseWeatherData(z, p, b = {}) {
1586
- var o, O, q, d, n, a, Y;
1587
- const A = [], c = Math.pow(10, b.precision || 6);
1588
- for (let t = 0; t < z.length; t++) {
1589
- const i = z[t], U = i.utcOffsetSeconds(), s = i.timezone(), V = i.current(), S = i.hourly(), r = i.daily(), l = {};
1590
- if (l.timezone = s || void 0, l.offset = b0.prettyTimezoneOffset(U), l.model = p.models instanceof Array ? (o = p.models) == null ? void 0 : o[t] : p.models || "best_match", V) {
1591
- const I = L();
1592
- l.current = {
1593
- time: L.unix(Number(V.time())).utc().format()
1676
+ async parseWeatherData(z, b, p = 0, W = {}) {
1677
+ var O, Y, a, n, X, d, t;
1678
+ const A = [], c = Math.pow(10, W.precision || 6);
1679
+ for (let r = 0; r < z.length; r++) {
1680
+ const u = z[r], V = u.utcOffsetSeconds(), m = u.timezone(), L = u.current(), B = u.hourly(), E = u.daily(), N = {};
1681
+ if (N.timezone = m || void 0, N.offset = Q.prettyTimezoneOffset(V), N.model = b.models instanceof Array ? (O = b.models) == null ? void 0 : O[r] : b.models || "best_match", L) {
1682
+ const Z = i();
1683
+ N.current = {
1684
+ time: i.unix(Number(L.time())).utc().add(p, "year").format()
1594
1685
  };
1595
- for (let E = 0; E < V.variablesLength(); E++) {
1596
- const C = V.variables(E).value();
1597
- l.current[p.current[E]] = isNaN(C) ? null : Math.round(C * c) / c;
1686
+ for (let U = 0; U < L.variablesLength(); U++) {
1687
+ const P = L.variables(U).value();
1688
+ N.current[b.current[U]] = isNaN(P) ? null : Math.round(P * c) / c;
1598
1689
  }
1599
- const P = L();
1600
- this.debug && D.debug("[%s] fetch current variables cost: %d ms", b.requestId, P.diff(I, "ms"));
1690
+ const f = i();
1691
+ this.debug && _.debug("[%s] fetch current variables cost: %d ms", W.requestId, f.diff(Z, "ms"));
1601
1692
  }
1602
- if (S) {
1603
- const I = L(), P = L.unix(Number(S.time())).add(p.fake ? 1 : 0, "year");
1604
- l.hourly = {
1605
- date: P.utc().format(),
1606
- time: b0.range(Number(S.time()), Number(S.timeEnd()), S.interval()).map(
1607
- (C) => L.unix(C).add(p.fake ? 1 : 0, "year").diff(P, "h")
1693
+ if (B) {
1694
+ const Z = i(), f = i.unix(Number(B.time())).add(p, "year");
1695
+ N.hourly = {
1696
+ date: f.utc().format(),
1697
+ time: Q.range(Number(B.time()), Number(B.timeEnd()), B.interval()).map(
1698
+ (P) => i.unix(P).add(p, "year").diff(f, "h")
1608
1699
  )
1609
1700
  };
1610
- for (let C = 0; C < S.variablesLength(); C++) {
1611
- const Q = (d = (q = (O = S.variables(C).valuesArray()) == null ? void 0 : O.toString()) == null ? void 0 : q.split(",")) == null ? void 0 : d.map((K) => isNaN(K) ? null : Math.round(Number(K) * c) / c);
1612
- l.hourly[p.hourly[C]] = Q;
1701
+ for (let P = 0; P < B.variablesLength(); P++) {
1702
+ const w = (n = (a = (Y = B.variables(P).valuesArray()) == null ? void 0 : Y.toString()) == null ? void 0 : a.split(",")) == null ? void 0 : n.map((K) => isNaN(K) ? null : Math.round(Number(K) * c) / c);
1703
+ N.hourly[b.hourly[P]] = w;
1613
1704
  }
1614
- const E = L();
1615
- this.debug && D.debug("[%s] fetch hourly variables cost: %d ms", b.requestId, E.diff(I, "ms"));
1705
+ const U = i();
1706
+ this.debug && _.debug("[%s] fetch hourly variables cost: %d ms", W.requestId, U.diff(Z, "ms"));
1616
1707
  }
1617
- if (r) {
1618
- const I = L();
1619
- l.daily = {
1620
- time: b0.range(Number(r.time()), Number(r.timeEnd()), r.interval()).map(
1621
- (E) => L.unix(E).add(p.fake ? 1 : 0, "year").utc().format()
1708
+ if (E) {
1709
+ const Z = i();
1710
+ N.daily = {
1711
+ time: Q.range(Number(E.time()), Number(E.timeEnd()), E.interval()).map(
1712
+ (U) => i.unix(U).add(p, "year").utc().format()
1622
1713
  )
1623
1714
  };
1624
- for (let E = 0; E < r.variablesLength(); E += b.memberLength ?? 1) {
1625
- const C = (Y = (a = (n = r.variables(E).valuesArray()) == null ? void 0 : n.toString()) == null ? void 0 : a.split(",")) == null ? void 0 : Y.map((Q) => isNaN(Q) ? null : Math.round(Number(Q) * c) / c);
1626
- l.daily[p.daily[E / (b.memberLength ?? 1)]] = C;
1715
+ for (let U = 0; U < E.variablesLength(); U += W.memberLength ?? 1) {
1716
+ const P = (t = (d = (X = E.variables(U).valuesArray()) == null ? void 0 : X.toString()) == null ? void 0 : d.split(",")) == null ? void 0 : t.map((w) => isNaN(w) ? null : Math.round(Number(w) * c) / c);
1717
+ N.daily[b.daily[U / (W.memberLength ?? 1)]] = P;
1627
1718
  }
1628
- const P = L();
1629
- this.debug && D.debug("[%s] fetch daily variables cost: %d ms", b.requestId, P.diff(I, "ms"));
1719
+ const f = i();
1720
+ this.debug && _.debug("[%s] fetch daily variables cost: %d ms", W.requestId, f.diff(Z, "ms"));
1630
1721
  }
1631
- A.push(l);
1722
+ A.push(N);
1632
1723
  }
1633
1724
  return A;
1634
1725
  }
@@ -1638,152 +1729,200 @@ class b0 {
1638
1729
  * @param options
1639
1730
  * @private
1640
1731
  */
1641
- async parseSeasonalDailyVariable(z, p, b = {}) {
1642
- var o, O, q, d, n, a, Y, t, i, U, s, V, S, r, l, I;
1643
- const A = [], c = Math.pow(10, b.precision || 6);
1644
- for (let P = 0; P < z.length; P++) {
1645
- const E = z[P], C = E.utcOffsetSeconds(), Q = E.timezone(), K = E.daily(), k = [...Array(K.variablesLength())].map((T, M0) => K.variables(M0)), O0 = k.filter(
1646
- (T) => (T == null ? void 0 : T.variable()) === z0.temperature && (T == null ? void 0 : T.altitude()) === 2 && (T == null ? void 0 : T.aggregation()) === c0.maximum
1647
- ), d0 = k.filter(
1648
- (T) => (T == null ? void 0 : T.variable()) === z0.temperature && (T == null ? void 0 : T.altitude()) === 2 && (T == null ? void 0 : T.aggregation()) === c0.minimum
1649
- ), x = k.filter((T) => (T == null ? void 0 : T.variable()) === z0.precipitation), W0 = k.filter(
1650
- (T) => (T == null ? void 0 : T.variable()) === z0.wind_speed && (T == null ? void 0 : T.altitude()) === 10 && (T == null ? void 0 : T.aggregation()) === c0.maximum
1651
- ), y = k.filter(
1652
- (T) => (T == null ? void 0 : T.variable()) === z0.wind_direction && (T == null ? void 0 : T.altitude()) === 10 && (T == null ? void 0 : T.aggregation()) === c0.dominant
1653
- ), H = {};
1654
- if (H.timezone = Q || void 0, H.offset = b0.prettyTimezoneOffset(C), H.model = p.models instanceof Array ? (o = p.models) == null ? void 0 : o[P] : p.models || "best_match", K) {
1655
- const T = L();
1656
- H.daily = {
1657
- time: b0.range(Number(K.time()), Number(K.timeEnd()), K.interval()).map(
1658
- (g) => L.unix(g).add(p.fake ? 1 : 0, "year").utc().format()
1659
- )
1732
+ async parseSeasonalDailyVariable(z, b, p = {}) {
1733
+ var c, O, Y, a, n, X, d, t, r, u, V, m, L, B, E, N, Z, f, U, P, w, K, x, q0, j, c0, g, Y0;
1734
+ const W = [], A = Math.pow(10, p.precision || 6);
1735
+ for (let p0 = 0; p0 < z.length; p0++) {
1736
+ const O0 = z[p0], X0 = O0.utcOffsetSeconds(), R0 = O0.timezone(), M0 = O0.daily(), H = Array.from({ length: M0.variablesLength() }, (q, e) => M0.variables(e)), W0 = H.filter(
1737
+ (q) => (q == null ? void 0 : q.variable()) === v.temperature && (q == null ? void 0 : q.altitude()) === 2 && (q == null ? void 0 : q.aggregation()) === z0.maximum
1738
+ ), o0 = H.filter(
1739
+ (q) => (q == null ? void 0 : q.variable()) === v.temperature && (q == null ? void 0 : q.altitude()) === 2 && (q == null ? void 0 : q.aggregation()) === z0.minimum
1740
+ ), k = H.filter(
1741
+ (q) => (q == null ? void 0 : q.variable()) === v.temperature && (q == null ? void 0 : q.altitude()) === 2 && (q == null ? void 0 : q.aggregation()) === z0.mean
1742
+ ), I = H.filter((q) => (q == null ? void 0 : q.variable()) === v.precipitation), y = H.filter((q) => (q == null ? void 0 : q.variable()) === v.weather_code), d0 = H.filter(
1743
+ (q) => (q == null ? void 0 : q.variable()) === v.wind_speed && (q == null ? void 0 : q.altitude()) === 10 && (q == null ? void 0 : q.aggregation()) === z0.mean
1744
+ ), a0 = H.filter(
1745
+ (q) => (q == null ? void 0 : q.variable()) === v.wind_speed && (q == null ? void 0 : q.altitude()) === 10 && (q == null ? void 0 : q.aggregation()) === z0.maximum
1746
+ ), L0 = H.filter(
1747
+ (q) => (q == null ? void 0 : q.variable()) === v.wind_gusts && (q == null ? void 0 : q.altitude()) === 10 && (q == null ? void 0 : q.aggregation()) === z0.maximum
1748
+ ), b0 = H.filter(
1749
+ (q) => (q == null ? void 0 : q.variable()) === v.wind_direction && (q == null ? void 0 : q.altitude()) === 10 && (q == null ? void 0 : q.aggregation()) === z0.dominant
1750
+ ), o = {};
1751
+ if (o.timezone = R0 || void 0, o.offset = Q.prettyTimezoneOffset(X0), o.model = b.models instanceof Array ? (c = b.models) == null ? void 0 : c[p0] : b.models || "best_match", M0) {
1752
+ const q = i();
1753
+ o.daily = {
1754
+ time: Q.range(Number(M0.time()), Number(M0.timeEnd()), M0.interval()).map((R) => i.unix(R).utc().format())
1660
1755
  };
1661
- for (const g of O0)
1662
- H.daily.temperature_2m_max = (d = (q = (O = g.valuesArray()) == null ? void 0 : O.toString()) == null ? void 0 : q.split(",")) == null ? void 0 : d.map((h) => isNaN(h) ? null : Math.round(Number(h) * c) / c);
1663
- for (const g of d0)
1664
- H.daily.temperature_2m_min = (Y = (a = (n = g.valuesArray()) == null ? void 0 : n.toString()) == null ? void 0 : a.split(",")) == null ? void 0 : Y.map((h) => isNaN(h) ? null : Math.round(Number(h) * c) / c);
1665
- for (const g of x)
1666
- H.daily.precipitation_sum = (U = (i = (t = g.valuesArray()) == null ? void 0 : t.toString()) == null ? void 0 : i.split(",")) == null ? void 0 : U.map((h) => isNaN(h) ? null : Math.round(Number(h) * c) / c);
1667
- for (const g of y)
1668
- H.daily.wind_direction_10m_dominant = (S = (V = (s = g.valuesArray()) == null ? void 0 : s.toString()) == null ? void 0 : V.split(",")) == null ? void 0 : S.map((h) => isNaN(h) ? null : Math.round(Number(h) * c) / c);
1669
- for (const g of W0)
1670
- H.daily.wind_speed_10m_max = (I = (l = (r = g.valuesArray()) == null ? void 0 : r.toString()) == null ? void 0 : l.split(",")) == null ? void 0 : I.map((h) => isNaN(h) ? null : Math.round(Number(h) * c) / c);
1671
- const M0 = L();
1672
- D.debug("[%s] fetch daily variables cost: %d ms", b.requestId, M0.diff(T, "ms"));
1756
+ for (const R of W0)
1757
+ o.daily.temperature_2m_max = (a = (Y = (O = R.valuesArray()) == null ? void 0 : O.toString()) == null ? void 0 : Y.split(",")) == null ? void 0 : a.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1758
+ for (const R of o0)
1759
+ o.daily.temperature_2m_min = (d = (X = (n = R.valuesArray()) == null ? void 0 : n.toString()) == null ? void 0 : X.split(",")) == null ? void 0 : d.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1760
+ for (const R of k)
1761
+ o.daily.temperature_2m_mean = (u = (r = (t = R.valuesArray()) == null ? void 0 : t.toString()) == null ? void 0 : r.split(",")) == null ? void 0 : u.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1762
+ for (const R of I)
1763
+ o.daily.precipitation_sum = (L = (m = (V = R.valuesArray()) == null ? void 0 : V.toString()) == null ? void 0 : m.split(",")) == null ? void 0 : L.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1764
+ for (const R of y)
1765
+ o.daily.weather_code = (N = (E = (B = R.valuesArray()) == null ? void 0 : B.toString()) == null ? void 0 : E.split(",")) == null ? void 0 : N.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1766
+ for (const R of b0)
1767
+ o.daily.wind_direction_10m_dominant = (U = (f = (Z = R.valuesArray()) == null ? void 0 : Z.toString()) == null ? void 0 : f.split(",")) == null ? void 0 : U.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1768
+ for (const R of d0)
1769
+ o.daily.wind_speed_10m_mean = (K = (w = (P = R.valuesArray()) == null ? void 0 : P.toString()) == null ? void 0 : w.split(",")) == null ? void 0 : K.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1770
+ for (const R of a0)
1771
+ o.daily.wind_speed_10m_max = (j = (q0 = (x = R.valuesArray()) == null ? void 0 : x.toString()) == null ? void 0 : q0.split(",")) == null ? void 0 : j.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1772
+ for (const R of L0)
1773
+ o.daily.wind_gusts_10m_max = (Y0 = (g = (c0 = R.valuesArray()) == null ? void 0 : c0.toString()) == null ? void 0 : g.split(",")) == null ? void 0 : Y0.map((T) => isNaN(T) ? null : Math.round(Number(T) * A) / A);
1774
+ const e = i();
1775
+ _.debug("[%s] fetch daily variables cost: %d ms", p.requestId, e.diff(q, "ms"));
1673
1776
  }
1674
- A.push(H);
1777
+ W.push(o);
1675
1778
  }
1676
- return A;
1779
+ return W;
1677
1780
  }
1678
- async mergeSegments(z, p) {
1679
- for (let b = 0; b < z.length; b++)
1680
- for (const A in z[b])
1681
- if (A === "hourly") {
1682
- for (const c in p[b][A])
1683
- if (z[b][A][c] instanceof Array)
1684
- if (z[b][A].date === p[b][A].date) {
1685
- for (let o = 0; o < z[b][A][c].length; o++)
1686
- z[b][A][c][o] === null && (z[b][A][c][o] = p[b][A][c][o]);
1687
- for (let o = z[b][A][c].length; o < p[b][A][c].length; o++)
1688
- z[b][A][c].push(p[b][A][c][o]);
1781
+ async mergeSegments(z, b) {
1782
+ for (let p = 0; p < z.length; p++)
1783
+ for (const W in z[p])
1784
+ if (W === "hourly") {
1785
+ for (const A in b[p][W])
1786
+ if (z[p][W][A] instanceof Array)
1787
+ if (z[p][W].date === b[p][W].date) {
1788
+ for (let c = 0; c < z[p][W][A].length; c++)
1789
+ z[p][W][A][c] === null && (z[p][W][A][c] = b[p][W][A][c]);
1790
+ for (let c = z[p][W][A].length; c < b[p][W][A].length; c++)
1791
+ z[p][W][A].push(b[p][W][A][c]);
1689
1792
  } else {
1690
- const o = L(p[b][A].date), O = L(z[b][A].date);
1691
- for (let q = 0; q < p[b][A][c].length; q++) {
1692
- const d = o.clone().add(q, "h").diff(O, "h");
1693
- d < z[b][A][c].length ? z[b][A][c][d] === null && (z[b][A][c][d] = p[b][A][c][q]) : c === "time" ? z[b][A][c].push(d) : z[b][A][c].push(p[b][A][c][q]);
1793
+ const c = i(b[p][W].date), O = i(z[p][W].date);
1794
+ for (let Y = 0; Y < b[p][W][A].length; Y++) {
1795
+ const a = c.clone().add(Y, "h").diff(O, "h");
1796
+ a < z[p][W][A].length ? z[p][W][A][a] === null && (z[p][W][A][a] = b[p][W][A][Y]) : A === "time" ? z[p][W][A].push(a) : z[p][W][A].push(b[p][W][A][Y]);
1694
1797
  }
1695
1798
  }
1696
- } else if (A === "daily") {
1697
- for (const c in p[b][A])
1698
- if (z[b][A][c] instanceof Array && c !== "time")
1699
- for (let o = 0; o < p[b][A][c].length; o++)
1700
- z[b][A].time.includes(p[b][A].time[o]) || z[b][A][c].push(p[b][A][c][o]);
1701
- for (let c = 0; c < p[b][A].time.length; c++)
1702
- z[b][A].time.includes(p[b][A].time[c]) || z[b][A].time.push(p[b][A].time[c]);
1799
+ } else if (W === "daily") {
1800
+ for (const A in b[p][W])
1801
+ if (z[p][W][A] instanceof Array && A !== "time")
1802
+ for (let c = 0; c < b[p][W][A].length; c++)
1803
+ z[p][W].time.includes(b[p][W].time[c]) || z[p][W][A].push(b[p][W][A][c]);
1804
+ for (let A = 0; A < b[p][W].time.length; A++)
1805
+ z[p][W].time.includes(b[p][W].time[A]) || z[p][W].time.push(b[p][W].time[A]);
1703
1806
  }
1704
1807
  return z;
1705
1808
  }
1809
+ /**
1810
+ * 合并天气数据, 以IFS025为主, 并用IFS的能见度数据补全IFS025
1811
+ * @param rows
1812
+ * @private
1813
+ */
1706
1814
  async mergeWeatherData(z) {
1707
- var A;
1708
- const p = z.find((c) => c.model === "ecmwf_ifs025"), b = z.find((c) => c.model === "ecmwf_ifs");
1709
- return p && b ? (p.hourly.visibility = (A = b.hourly) == null ? void 0 : A.visibility, [p]) : z;
1710
- }
1711
- async mergeMarineData(z) {
1712
- var O, q, d, n;
1713
- const p = [], b = z.find((a) => a.model === "best_match");
1714
- b && p.push(b);
1715
- const A = z.find((a) => a.model === "meteofrance_currents"), c = z.find((a) => a.model === "ecmwf_wam025"), o = z.find((a) => a.model === "meteofrance_wave");
1716
- for (const a of z)
1717
- ["best_match", "meteofrance_currents"].includes(a.model) || (a.hourly.ocean_current_velocity = (O = A == null ? void 0 : A.hourly) == null ? void 0 : O.ocean_current_velocity, a.hourly.ocean_current_direction = (q = A == null ? void 0 : A.hourly) == null ? void 0 : q.ocean_current_direction, a.hourly.sea_level_height_msl = (d = A == null ? void 0 : A.hourly) == null ? void 0 : d.sea_level_height_msl, a.hourly.sea_surface_temperature = (n = A == null ? void 0 : A.hourly) == null ? void 0 : n.sea_surface_temperature, p.push(a)), a.model === "meteofrance_wave" && c && (a.hourly.time = c.hourly.time, a.hourly.wave_height = c.hourly.wave_height, a.hourly.wave_direction = c.hourly.wave_direction, a.hourly.wave_period = c.hourly.wave_period, a.daily && c.daily && (a.daily.time = c.daily.time, a.daily.wave_height_max = c.daily.wave_height_max, a.daily.wave_direction_dominant = c.daily.wave_direction_dominant, a.daily.wave_period_max = c.daily.wave_period_max)), a.model === "ecmwf_wam025" && o && (a.hourly.swell_wave_height = o.hourly.swell_wave_height, a.hourly.swell_wave_direction = o.hourly.swell_wave_direction, a.hourly.swell_wave_period = o.hourly.swell_wave_period, a.hourly.wind_wave_height = o.hourly.wind_wave_height, a.hourly.wind_wave_direction = o.hourly.wind_wave_direction, a.hourly.wind_wave_period = o.hourly.wind_wave_period, a.daily && o.daily && (a.daily.swell_wave_height_max = o.daily.swell_wave_height_max, a.daily.swell_wave_period_max = o.daily.swell_wave_period_max, a.daily.swell_wave_direction_dominant = o.daily.swell_wave_direction_dominant, a.daily.wind_wave_height_max = o.daily.wind_wave_height_max, a.daily.wind_wave_direction_dominant = o.daily.wind_wave_direction_dominant, a.daily.wind_wave_period_max = o.daily.wind_wave_period_max));
1815
+ var W;
1816
+ const b = z.find((A) => A.model === "ecmwf_ifs025"), p = z.find((A) => A.model === "ecmwf_ifs");
1817
+ return b && p ? (b.hourly.visibility = (W = p.hourly) == null ? void 0 : W.visibility, [b]) : z;
1818
+ }
1819
+ /**
1820
+ * 合并海洋数据, 以best_match为主, 并用meteofrance_currents的海流数据补全其他模型, 用ecmwf_wam的波浪数据补全meteofrance_wave, 用meteofrance_wave的波浪数据补全ecmwf_wam, 并对齐时间
1821
+ * @param rows
1822
+ * @param st
1823
+ * @private
1824
+ */
1825
+ async mergeMarineData(z, b) {
1826
+ var Y, a, n, X, d, t, r, u, V, m;
1827
+ if (b && (z == null ? void 0 : z.length) > 0) {
1828
+ let L = z[0], B = Math.abs((a = i((Y = z[0].hourly) == null ? void 0 : Y.date)) == null ? void 0 : a.diff(b));
1829
+ for (const N of z) {
1830
+ const Z = Math.abs((X = i((n = N.hourly) == null ? void 0 : n.date)) == null ? void 0 : X.diff(b));
1831
+ Z < B && (B = Z, L = N);
1832
+ }
1833
+ const E = (d = L == null ? void 0 : L.hourly) == null ? void 0 : d.date;
1834
+ E && z.forEach((N) => {
1835
+ N.hourly.date = E;
1836
+ });
1837
+ } else {
1838
+ z.sort((B, E) => {
1839
+ var N, Z, f, U;
1840
+ return ((Z = i((N = E.hourly) == null ? void 0 : N.date)) == null ? void 0 : Z.valueOf()) - ((U = i((f = B.hourly) == null ? void 0 : f.date)) == null ? void 0 : U.valueOf());
1841
+ });
1842
+ const L = (t = z == null ? void 0 : z.at(0).hourly) == null ? void 0 : t.date;
1843
+ L && z.forEach((B) => {
1844
+ B.hourly.date = L;
1845
+ });
1846
+ }
1847
+ const p = [], W = z.find((L) => L.model === "best_match");
1848
+ W && p.push(W);
1849
+ const A = z.find((L) => L.model === "meteofrance_currents"), c = z.find((L) => L.model === "ecmwf_wam025"), O = z.find((L) => L.model === "meteofrance_wave");
1850
+ for (const L of z)
1851
+ ["best_match", "meteofrance_currents"].includes(L.model) || (L.hourly.ocean_current_velocity = (r = A == null ? void 0 : A.hourly) == null ? void 0 : r.ocean_current_velocity, L.hourly.ocean_current_direction = (u = A == null ? void 0 : A.hourly) == null ? void 0 : u.ocean_current_direction, L.hourly.sea_level_height_msl = (V = A == null ? void 0 : A.hourly) == null ? void 0 : V.sea_level_height_msl, L.hourly.sea_surface_temperature = (m = A == null ? void 0 : A.hourly) == null ? void 0 : m.sea_surface_temperature, p.push(L)), L.model === "meteofrance_wave" && c && (L.hourly.time = c.hourly.time, L.hourly.wave_height = c.hourly.wave_height, L.hourly.wave_direction = c.hourly.wave_direction, L.hourly.wave_period = c.hourly.wave_period, L.daily && c.daily && (L.daily.time = c.daily.time, L.daily.wave_height_max = c.daily.wave_height_max, L.daily.wave_direction_dominant = c.daily.wave_direction_dominant, L.daily.wave_period_max = c.daily.wave_period_max)), L.model === "ecmwf_wam025" && O && (L.hourly.swell_wave_height = O.hourly.swell_wave_height, L.hourly.swell_wave_direction = O.hourly.swell_wave_direction, L.hourly.swell_wave_period = O.hourly.swell_wave_period, L.hourly.wind_wave_height = O.hourly.wind_wave_height, L.hourly.wind_wave_direction = O.hourly.wind_wave_direction, L.hourly.wind_wave_period = O.hourly.wind_wave_period, L.daily && O.daily && (L.daily.swell_wave_height_max = O.daily.swell_wave_height_max, L.daily.swell_wave_period_max = O.daily.swell_wave_period_max, L.daily.swell_wave_direction_dominant = O.daily.swell_wave_direction_dominant, L.daily.wind_wave_height_max = O.daily.wind_wave_height_max, L.daily.wind_wave_direction_dominant = O.daily.wind_wave_direction_dominant, L.daily.wind_wave_period_max = O.daily.wind_wave_period_max));
1718
1852
  return p;
1719
1853
  }
1720
- pickForecastUrl(z, p, b, A = {}) {
1721
- return z ? b && !A.noFake ? A.selfHistory ? this.FORECAST.ORM_HISTORY_MARINE_URL : this.FORECAST.OM_MARINE_URL : p ? A.marineUrl || this.FORECAST.ORM_MARINE_URL : this.FORECAST.OM_MARINE_URL : b && !A.noFake ? A.selfHistory ? this.FORECAST.ORM_HISTORY_URL : this.FORECAST.OM_HISTORY_URL : p ? A.weatherUrl || this.FORECAST.ORM_URL : this.FORECAST.OM_URL;
1854
+ /**
1855
+ * 选择预报地址
1856
+ * @param marine 是否为海洋预报
1857
+ * @param selfHosted 是否自建服务,默认为true
1858
+ * @param historical 是否为历史数据,默认为false,如果为true,则会使用历史数据接口
1859
+ * @param options
1860
+ * @private
1861
+ */
1862
+ pickForecastUrl(z, b, p, W = {}) {
1863
+ return z ? b ? W.marineUrl || this.FORECAST.ORM_MARINE_URL : this.FORECAST.OM_MARINE_URL : b ? W.weatherUrl || this.FORECAST.ORM_URL : p ? this.FORECAST.OM_HISTORY_URL : this.FORECAST.OM_URL;
1722
1864
  }
1865
+ /**
1866
+ * 选择天气模型, 如果没有指定模型,则使用best_match,如果指定了模型,则按照优先级排序,并去重,确保ecmwf_ifs025和ecmwf_ifs同时存在
1867
+ * @param models
1868
+ * @private
1869
+ */
1723
1870
  pickWeatherModels(z) {
1724
- var c;
1725
- const p = (c = z == null ? void 0 : z.trim()) == null ? void 0 : c.split(",");
1726
- if (!(p != null && p.length))
1871
+ var A;
1872
+ const b = (A = z == null ? void 0 : z.trim()) == null ? void 0 : A.split(",");
1873
+ if (!(b != null && b.length))
1727
1874
  return ["best_match"];
1728
- const b = [];
1729
- for (let o = 0; o < p.length; o++) {
1730
- const O = p[o];
1731
- ["ecmwf_ifs025", "ecmwf_ifs"].includes(O) ? b.push("ecmwf_ifs025", "ecmwf_ifs", O) : b.push(O);
1875
+ const p = [];
1876
+ for (let c = 0; c < b.length; c++) {
1877
+ const O = b[c];
1878
+ ["ecmwf_ifs025", "ecmwf_ifs"].includes(O) ? p.push("ecmwf_ifs025", "ecmwf_ifs", O) : p.push(O);
1732
1879
  }
1733
- return b.reduce((o, O) => (o.includes(O) || o.push(O), o), []);
1880
+ return p.reduce((c, O) => (c.includes(O) || c.push(O), c), []);
1734
1881
  }
1882
+ /**
1883
+ * 选择海洋模型, 如果没有指定模型,则使用best_match,如果指定了模型,则按照优先级排序,并去重,确保meteofrance_currents和ecmwf_wam025同时存在
1884
+ * @param models
1885
+ * @private
1886
+ */
1735
1887
  pickMarineModels(z) {
1736
- var o;
1737
- const p = (o = z == null ? void 0 : z.trim()) == null ? void 0 : o.split(",");
1738
- if (!(p != null && p.length))
1888
+ var c;
1889
+ const b = (c = z == null ? void 0 : z.trim()) == null ? void 0 : c.split(",");
1890
+ if (!(b != null && b.length))
1739
1891
  return ["best_match"];
1740
- const b = [];
1741
- for (let O = 0; O < p.length; O++) {
1742
- const q = p[O];
1743
- ["ecmwf_wam025", "meteofrance_wave", "ewam", "gwam", "era5_ocean"].includes(q) ? b.push("meteofrance_currents", "ecmwf_wam025", q) : ["gfswave", "ncep_gfswave025", "ncep_gfswave016"].includes(q) ? b.push("meteofrance_currents", "ncep_gfswave025", "ncep_gfswave016") : b.push("best_match");
1892
+ const p = [];
1893
+ for (let O = 0; O < b.length; O++) {
1894
+ const Y = b[O];
1895
+ ["ecmwf_wam025", "meteofrance_wave", "ewam", "gwam", "era5_ocean"].includes(Y) ? p.push("meteofrance_currents", "ecmwf_wam025", Y) : ["gfswave", "ncep_gfswave025", "ncep_gfswave016"].includes(Y) ? p.push("meteofrance_currents", "ncep_gfswave025", "ncep_gfswave016") : p.push("best_match");
1744
1896
  }
1745
- const A = b.reduce((O, q) => (O.includes(q) || O.push(q), O), []), c = ["best_match", "meteofrance_currents", "ecmwf_wam025", "meteofrance_wave", "ncep_gfswave025", "gwam", "era5_ocean", "ewam", "ncep_gfswave016"];
1746
- return A.sort((O, q) => {
1747
- const d = c.indexOf(O), n = c.indexOf(q);
1748
- return d - n;
1749
- }), A;
1897
+ const W = p.reduce((O, Y) => (O.includes(Y) || O.push(Y), O), []), A = ["best_match", "meteofrance_currents", "ecmwf_wam025", "meteofrance_wave", "ncep_gfswave025", "gwam", "era5_ocean", "ewam", "ncep_gfswave016"];
1898
+ return W.sort((O, Y) => {
1899
+ const a = A.indexOf(O), n = A.indexOf(Y);
1900
+ return a - n;
1901
+ }), W;
1750
1902
  }
1751
1903
  /**
1752
- * 完善start_hour/end_hour 或者是forecast_days变量,二选一
1753
- * @param datetime 从指定时间开始,不指定时从当前时间开始
1754
- * @param marine 是否为海洋预报
1755
- * @param params 要查询的要素
1756
- * @param options 请求参数
1904
+ * 构建公共参数
1905
+ * @param datetime 指定预报开始时间,格式为ISO 8601字符串,例如"2024-01-01T00:00:00Z",不指定时从当前时间开始
1906
+ * @param params
1907
+ * @param options
1757
1908
  * @private
1758
1909
  */
1759
- async prepare(z, p, b, A = {}) {
1760
- var n, a;
1761
- const c = A.maxDays || 14, o = L.utc(), O = z ? L.utc(z) : void 0, q = p ? await this.pickUpdateMeta(b.models) : [], d = (a = (n = q[0]) == null ? void 0 : n.meta) != null && a.endTime ? L(q[0].meta.endTime) : o.clone().add(c, "day");
1910
+ async prepare(z, b, p = {}) {
1762
1911
  if (z) {
1763
- const Y = O.clone().utc().add(A.forecastDays ?? 1, "day");
1764
- Y.isAfter(d) ? (Y.subtract(1, "year"), O.isAfter(d) ? (O.subtract(1, "year"), b.start_dates = [
1765
- O.clone().subtract(A.pastDays || 0, "day").utc().format("YYYY-MM-DD")
1766
- ], b.end_dates = [Y.utc().format("YYYY-MM-DD")], b.fakes = [!0], b.url = [this.pickForecastUrl(p, A.selfHosted ?? !0, !0, A)]) : (b.start_dates = [
1767
- O.clone().subtract(A.pastDays || 0, "day").utc().format("YYYY-MM-DD"),
1768
- d.clone().subtract(1, "year").subtract(1, "day").utc().format("YYYY-MM-DD")
1769
- ], b.end_dates = [d.clone().subtract(1, "day").utc().format("YYYY-MM-DD"), Y.utc().format("YYYY-MM-DD")], b.fakes = [!1, !0], b.url = [
1770
- this.pickForecastUrl(p, A.selfHosted ?? !0, !1, A),
1771
- this.pickForecastUrl(p, A.selfHosted ?? !0, !0, A)
1772
- ])) : (b.start_dates = [
1773
- O.clone().subtract(A.pastDays || 0, "day").utc().format("YYYY-MM-DD")
1774
- ], b.end_dates = [Y.utc().format("YYYY-MM-DD")], b.fakes = [!1], b.url = [this.pickForecastUrl(p, A.selfHosted ?? !0, O.isBefore(o.clone().subtract(30, "day")), A)]);
1912
+ const W = i.utc(z);
1913
+ b.start_date = W.clone().subtract(p.pastDays || 0, "day").utc().format("YYYY-MM-DD"), b.end_date = W.clone().add(p.forecastDays ?? 1, "day").utc().format("YYYY-MM-DD"), b.fake = !1;
1775
1914
  } else
1776
- b.forecast_days = A.forecastDays, b.past_days = A.pastDays, b.fake = !1, b.url = this.pickForecastUrl(p, A.selfHosted ?? !0, !1, A);
1915
+ b.forecast_days = p.forecastDays, b.past_days = p.pastDays, b.fake = !1;
1777
1916
  return b;
1778
1917
  }
1779
- toStdLng(z, p = 6) {
1918
+ static toStdLng(z, b = 6) {
1780
1919
  z > 180 ? (z = z % 360, z = z > 180 ? z - 360 : z) : z < -180 && (z = z % 360, z = z < -180 ? z + 360 : z);
1781
- const b = Math.pow(10, p);
1782
- return Math.round(z * b) / b;
1920
+ const p = Math.pow(10, b);
1921
+ return Math.round(z * p) / p;
1783
1922
  }
1784
- timezoneOffset(z, p) {
1785
- const b = G0(z, p), A = L().tz(b).utcOffset();
1786
- return Math.round(A / 60 * 10) / 10;
1923
+ timezoneOffset(z, b) {
1924
+ const p = G0(z, b), W = i().tz(p).utcOffset();
1925
+ return Math.round(W / 60 * 10) / 10;
1787
1926
  }
1788
1927
  /**
1789
1928
  * 格式化时区
@@ -1792,8 +1931,8 @@ class b0 {
1792
1931
  */
1793
1932
  static prettyTimezoneOffset(z) {
1794
1933
  z = Math.round(z / 3600 * 10) / 10;
1795
- let p = Math.floor(Math.abs(z)), b = Math.round((Math.abs(z) - p) * 60);
1796
- return b = b > 9 ? b : `0${b}`, p = p > 9 ? p : `0${p}`, z > 0 ? `+${p}:${b}` : `-${p}:${b}`;
1934
+ let b = Math.floor(Math.abs(z)), p = Math.round((Math.abs(z) - b) * 60);
1935
+ return p = p > 9 ? p : `0${p}`, b = b > 9 ? b : `0${b}`, z > 0 ? `+${b}:${p}` : `-${b}:${p}`;
1797
1936
  }
1798
1937
  /**
1799
1938
  * 预报数据
@@ -1821,39 +1960,39 @@ class b0 {
1821
1960
  * @param withHourly
1822
1961
  * @param options
1823
1962
  */
1824
- async spotForecast(z, p, b, A = !0, c = !0, o = !1, O = {
1963
+ async spotForecast(z, b, p, W = !0, A = !0, c = !1, O = {
1825
1964
  forecastDays: 1,
1826
1965
  pastDays: 0,
1827
1966
  precision: 6,
1828
1967
  selfHosted: !0,
1829
1968
  maxDays: 14
1830
1969
  }) {
1831
- var i, U, s, V, S, r;
1832
- p = this.toStdLng(p), this.debug && D.info("[%s] spot forecast params: %j", O.requestId, { lat: z, lng: p, datetime: b, simplify: A, withDaily: c, withHourly: o, options: O });
1833
- const q = {
1970
+ var r, u, V, m, L, B, E, N;
1971
+ b = Q.toStdLng(b), this.debug && _.info("[%s] spot forecast params: %j", O.requestId, { lat: z, lng: b, datetime: p, simplify: W, withDaily: A, withHourly: c, options: O });
1972
+ const Y = {
1834
1973
  apikey: this.apikey,
1835
1974
  latitude: z,
1836
- longitude: p,
1975
+ longitude: b,
1837
1976
  cell_selection: "sea",
1838
1977
  wind_speed_unit: "kn",
1839
1978
  models: this.pickWeatherModels(O.weatherModels),
1840
1979
  timezone: "auto"
1841
1980
  };
1842
- let d;
1843
- const n = this.timezoneOffset(z, p);
1844
- b && (d = L.utc(b).utcOffset(n), d.subtract(n > 0 ? n : -n, "h"), O.selfHistory = !(d != null && d.isBefore(L.utc().subtract(240, "days")))), c && (q.daily = ((i = this.FORECAST.WEATHER_VARIABLES.NORMAL.DAILY) == null ? void 0 : i.split(",")) || []), d || (O.forecastDays = O.forecastDays || 1, O.pastDays = 0, o = !0), o && (q.hourly = ((U = this.FORECAST.WEATHER_VARIABLES.NORMAL.HOURLY) == null ? void 0 : U.split(",")) || []), O.maxDays = O.maxDays || 14, O.pastDays = O.pastDays || 0, O.pastDays = O.pastDays > 7 ? 7 : O.pastDays < 0 ? 0 : O.pastDays, O.forecastDays = O.forecastDays ?? 1, O.forecastDays = O.forecastDays > O.maxDays ? O.maxDays : O.forecastDays < 0 ? 1 : O.forecastDays, await this.prepare(d == null ? void 0 : d.utc().format(), !1, q, O);
1845
- const a = await this.weatherForecast(q, void 0, O), Y = {
1981
+ let a;
1982
+ const n = this.timezoneOffset(z, b);
1983
+ p && (a = i.utc(p).utcOffset(n), a.subtract(n > 0 ? n : -n, "h")), A && (Y.daily = ((r = this.FORECAST.WEATHER_VARIABLES.NORMAL.DAILY) == null ? void 0 : r.split(",")) || []), a || (O.forecastDays = O.forecastDays || 1, O.pastDays = 0, c = !0), c && (Y.hourly = ((u = this.FORECAST.WEATHER_VARIABLES.NORMAL.HOURLY) == null ? void 0 : u.split(",")) || []), O.maxDays = O.maxDays || 14, O.pastDays = O.pastDays || 0, O.pastDays = O.pastDays > 7 ? 7 : O.pastDays < 0 ? 0 : O.pastDays, O.forecastDays = O.forecastDays ?? 1, O.forecastDays = O.forecastDays > O.maxDays ? O.maxDays : O.forecastDays < 0 ? 1 : O.forecastDays, await this.prepare((V = a == null ? void 0 : a.utc()) == null ? void 0 : V.format(), Y, O);
1984
+ const X = await this.weatherForecast(Y, void 0, !1, !1, !1, O), d = {
1846
1985
  apikey: this.apikey,
1847
1986
  latitude: z,
1848
- longitude: p,
1987
+ longitude: b,
1849
1988
  cell_selection: "sea",
1850
1989
  timezone: "auto",
1851
1990
  wind_speed_unit: "kn",
1852
1991
  models: this.pickMarineModels(O.marineModels)
1853
1992
  };
1854
- c && (Y.daily = this.FORECAST.MARINE_VARIABLES.DAILY.split(",")), d || (O.forecastDays = O.forecastDays || 1, o = !0), o && (Y.hourly = this.FORECAST.MARINE_VARIABLES.HOURLY.split(",")), await this.prepare(d == null ? void 0 : d.utc().format(), !0, Y, O);
1855
- let t = await this.marineForecast(Y, O);
1856
- return (S = (V = (s = t[0]) == null ? void 0 : s.hourly) == null ? void 0 : V.wave_height) != null && S.every((l) => l === null || l === 0) && (Y.models = this.pickMarineModels("best_match,ncep_gfswave025,ecmwf_wam025,meteofrance_wave"), t = await this.marineForecast(Y, O)), { weather: a, marine: t, wparams: q, mparams: Y, datetime: (r = d == null ? void 0 : d.utc()) == null ? void 0 : r.format() };
1993
+ A && (d.daily = this.FORECAST.MARINE_VARIABLES.DAILY.split(",")), a || (O.forecastDays = O.forecastDays || 1, c = !0), c && (d.hourly = this.FORECAST.MARINE_VARIABLES.HOURLY.split(",")), await this.prepare((m = a == null ? void 0 : a.utc()) == null ? void 0 : m.format(), d, O);
1994
+ let t = await this.marineForecast(d, O);
1995
+ return (E = (B = (L = t[0]) == null ? void 0 : L.hourly) == null ? void 0 : B.wave_height) != null && E.every((Z) => Z === null || Z === 0) && (d.models = this.pickMarineModels("best_match,ncep_gfswave025,ecmwf_wam025,meteofrance_wave"), t = await this.marineForecast(d, O)), { weather: X, marine: t, wparams: Y, mparams: d, datetime: (N = a == null ? void 0 : a.utc()) == null ? void 0 : N.format() };
1857
1996
  }
1858
1997
  /**
1859
1998
  * 历史再分析数据
@@ -1873,49 +2012,111 @@ class b0 {
1873
2012
  * @param lng
1874
2013
  * @param startDate
1875
2014
  * @param endDate
2015
+ * @param withDaily
2016
+ * @param withHourly
1876
2017
  * @param withMarine
1877
2018
  * @param options
1878
2019
  */
1879
- async spotHistorical(z, p, b, A, c = !0, o = !0, O = !1, q = {
2020
+ async spotHistorical(z, b, p, W, A = !0, c = !0, O = !1, Y = {
1880
2021
  precision: 6
1881
2022
  }) {
1882
- var U, s;
1883
- p = this.toStdLng(p), this.debug && D.info("[%s] spot historical params: %j", q.requestId, { lat: z, lng: p, startDate: b, endDate: A, withMarine: O, options: q });
1884
- const d = this.timezoneOffset(z, p), n = L.utc(b).utcOffset(d), a = L.utc(A).utcOffset(d);
1885
- n.subtract(d > 0 ? d : -d, "h"), a.subtract(d > 0 ? d : -d, "h");
1886
- const Y = {
2023
+ b = Q.toStdLng(b), this.debug && _.info("[%s] spot historical params: %j", Y.requestId, { lat: z, lng: b, startDate: p, endDate: W, withMarine: O, options: Y });
2024
+ const a = this.timezoneOffset(z, b), n = i.utc(p).utcOffset(a), X = i.utc(W).utcOffset(a);
2025
+ n.subtract(a > 0 ? a : -a, "h"), X.subtract(a > 0 ? a : -a, "h");
2026
+ const d = 730;
2027
+ if (X.diff(n, "days") <= d)
2028
+ return await this._fetchHistoricalData(
2029
+ z,
2030
+ b,
2031
+ n.format("YYYY-MM-DD"),
2032
+ X.format("YYYY-MM-DD"),
2033
+ A,
2034
+ c,
2035
+ O,
2036
+ Y
2037
+ );
2038
+ {
2039
+ this.debug && _.info("[%s] splitting historical request into chunks of %d days", Y.requestId, d);
2040
+ const r = [];
2041
+ let u = n.clone();
2042
+ for (; u.isBefore(X); ) {
2043
+ const V = u.clone().add(d, "days"), m = V.isAfter(X) ? X : V;
2044
+ this.debug && _.debug("[%s] fetching chunk from %s to %s", Y.requestId, u.format("YYYY-MM-DD"), m.format("YYYY-MM-DD"));
2045
+ const L = await this._fetchHistoricalData(
2046
+ z,
2047
+ b,
2048
+ u.format("YYYY-MM-DD"),
2049
+ m.format("YYYY-MM-DD"),
2050
+ A,
2051
+ c,
2052
+ O,
2053
+ Y
2054
+ );
2055
+ r.push(L), u = m.clone().add(1, "second"), await new Promise((B) => setTimeout(B, 100));
2056
+ }
2057
+ return this._mergeHistoricalResults(r);
2058
+ }
2059
+ }
2060
+ /**
2061
+ * Fetch historical data for a single date range
2062
+ */
2063
+ async _fetchHistoricalData(z, b, p, W, A = !0, c = !0, O = !1, Y = {}) {
2064
+ var d, t;
2065
+ const a = {
1887
2066
  apikey: this.apikey,
1888
2067
  latitude: z,
1889
- longitude: p,
2068
+ longitude: b,
1890
2069
  cell_selection: "sea",
1891
2070
  wind_speed_unit: "kn",
1892
- models: ((U = q.weatherModels) == null ? void 0 : U.split(",")) || ["best_match"],
2071
+ models: ((d = Y.weatherModels) == null ? void 0 : d.split(",")) || ["best_match"],
1893
2072
  timezone: "auto",
1894
- url: this.HISTORICAL.OM_URL,
1895
- start_date: n.format("YYYY-MM-DD"),
1896
- end_date: a.format("YYYY-MM-DD")
2073
+ start_date: p,
2074
+ end_date: W
1897
2075
  };
1898
- c && (Y.daily = this.HISTORICAL.WEATHER_VARIABLES.DAILY.split(",")), o && (Y.hourly = this.HISTORICAL.WEATHER_VARIABLES.HOURLY.split(","));
1899
- const t = await this.weatherForecast(Y, void 0, q);
1900
- let i;
2076
+ A && (a.daily = this.HISTORICAL.WEATHER_VARIABLES.DAILY.split(",")), c && (a.hourly = this.HISTORICAL.WEATHER_VARIABLES.HOURLY.split(","));
2077
+ const n = await this.weatherForecast(a, void 0, !1, !1, !0, Y);
2078
+ let X;
1901
2079
  if (O) {
1902
- const V = {
2080
+ const r = {
1903
2081
  apikey: this.apikey,
1904
2082
  latitude: z,
1905
- longitude: p,
2083
+ longitude: b,
1906
2084
  cell_selection: "sea",
1907
2085
  timezone: "auto",
1908
2086
  wind_speed_unit: "kn",
1909
- models: ((s = q.marineModels) == null ? void 0 : s.split(",")) || ["best_match"],
2087
+ models: ((t = Y.marineModels) == null ? void 0 : t.split(",")) || ["best_match"],
1910
2088
  daily: this.FORECAST.MARINE_VARIABLES.DAILY.split(","),
1911
2089
  hourly: this.FORECAST.MARINE_VARIABLES.HOURLY.split(","),
1912
2090
  url: this.FORECAST.OM_MARINE_URL,
1913
- start_date: n.format("YYYY-MM-DD"),
1914
- end_date: a.format("YYYY-MM-DD")
2091
+ start_date: p,
2092
+ end_date: W
1915
2093
  };
1916
- i = await this.marineForecast(V, q);
2094
+ X = await this.marineForecast(r, Y);
1917
2095
  }
1918
- return { weather: t, marine: i };
2096
+ return { weather: n, marine: X };
2097
+ }
2098
+ /**
2099
+ * Merge multiple historical data chunks
2100
+ */
2101
+ async _mergeHistoricalResults(z) {
2102
+ if (z.length === 0)
2103
+ return { weather: [], marine: [] };
2104
+ if (z.length === 1)
2105
+ return z[0];
2106
+ const b = { weather: [], marine: [] };
2107
+ for (const p of z)
2108
+ if (p.weather instanceof Array)
2109
+ for (const W of p.weather) {
2110
+ const A = b.weather.find((c) => c.model === W.model);
2111
+ A ? await this.mergeSegments(A, W) : b.weather.push(W);
2112
+ }
2113
+ for (const p of z)
2114
+ if (p.marine instanceof Array)
2115
+ for (const W of p.marine) {
2116
+ const A = b.marine.find((c) => c.model === W.model);
2117
+ A ? await this.mergeSegments(A, W) : b.marine.push(W);
2118
+ }
2119
+ return b;
1919
2120
  }
1920
2121
  /**
1921
2122
  * 季节预报数据
@@ -1929,25 +2130,25 @@ class b0 {
1929
2130
  * @param with6Hourly
1930
2131
  * @param options
1931
2132
  */
1932
- async spotSeasonal(z, p, b, A, c = !1, o = {
2133
+ async spotSeasonal(z, b, p, W, A = !1, c = {
1933
2134
  precision: 6
1934
2135
  }) {
1935
- p = this.toStdLng(p), this.debug && D.info("[%s] spot seasonal params: %j", o.requestId, { lat: z, lng: p, startDate: b, endDate: A, options: o });
1936
- const O = this.timezoneOffset(z, p), q = L.utc(b).utcOffset(O), d = A ? L.utc(A).utcOffset(O) : q.clone().add(1, "month");
1937
- q.subtract(O > 0 ? O : -O, "h"), d.subtract(O > 0 ? O : -O, "h");
2136
+ b = Q.toStdLng(b), this.debug && _.info("[%s] spot seasonal params: %j", c.requestId, { lat: z, lng: b, startDate: p, endDate: W, options: c });
2137
+ const O = this.timezoneOffset(z, b), Y = i.utc(p).utcOffset(O), a = W ? i.utc(W).utcOffset(O) : Y.clone().add(1, "month");
2138
+ Y.subtract(O > 0 ? O : -O, "h"), a.subtract(O > 0 ? O : -O, "h");
1938
2139
  const n = {
1939
2140
  apikey: this.apikey,
1940
2141
  latitude: z,
1941
- longitude: p,
2142
+ longitude: b,
1942
2143
  cell_selection: "sea",
1943
2144
  wind_speed_unit: "kn",
1944
2145
  timezone: "auto",
1945
- url: this.SEASONAL.OM_URL,
1946
- start_date: q.format("YYYY-MM-DD"),
1947
- end_date: d.format("YYYY-MM-DD"),
2146
+ models: "ecmwf_seasonal_ensemble_mean_seamless",
2147
+ start_date: Y.format("YYYY-MM-DD"),
2148
+ end_date: a.format("YYYY-MM-DD"),
1948
2149
  daily: this.SEASONAL.WEATHER_VARIABLES.DAILY.split(",")
1949
2150
  };
1950
- return c && (n.six_hourly = this.SEASONAL.WEATHER_VARIABLES.SIX_HOURLY.split(",")), o.memberLength = 4, { weather: await this.weatherForecast(n, this.parseSeasonalDailyVariable, o) };
2151
+ return A && (n.six_hourly = this.SEASONAL.WEATHER_VARIABLES.SIX_HOURLY.split(",")), c.memberLength = 4, { weather: await this.weatherForecast(n, this.parseSeasonalDailyVariable, !0, !1, !1, c) };
1951
2152
  }
1952
2153
  /**
1953
2154
  * 气候态数据
@@ -1969,95 +2170,136 @@ class b0 {
1969
2170
  * @param endDate
1970
2171
  * @param options
1971
2172
  */
1972
- async spotClimate(z, p, b, A, c = {
2173
+ async spotClimate(z, b, p, W, A = {
1973
2174
  precision: 6
1974
2175
  }) {
1975
- var a;
1976
- p = this.toStdLng(p), this.debug && D.info("[%s] spot climate params: %j", c.requestId, { lat: z, lng: p, startDate: b, endDate: A, options: c });
1977
- const o = this.timezoneOffset(z, p), O = L.utc(b).utcOffset(o), q = A ? L.utc(A).utcOffset(o) : O.clone().add(1, "day");
1978
- q.subtract(o > 0 ? o : -o, "h"), O.subtract(o > 0 ? o : -o, "h");
1979
- const d = {
2176
+ b = Q.toStdLng(b), this.debug && _.info("[%s] spot climate params: %j", A.requestId, { lat: z, lng: b, startDate: p, endDate: W, options: A });
2177
+ const c = this.timezoneOffset(z, b), O = i.utc(p).utcOffset(c), Y = W ? i.utc(W).utcOffset(c) : O.clone().add(1, "day");
2178
+ Y.subtract(c > 0 ? c : -c, "h"), O.subtract(c > 0 ? c : -c, "h");
2179
+ const a = 730;
2180
+ if (Y.diff(O, "days") <= a)
2181
+ return await this._fetchClimateData(z, b, O.format("YYYY-MM-DD"), Y.format("YYYY-MM-DD"), A);
2182
+ {
2183
+ this.debug && _.info("[%s] splitting climate request into chunks of %d days", A.requestId, a);
2184
+ const X = [];
2185
+ let d = O.clone();
2186
+ for (; d.isBefore(Y); ) {
2187
+ const t = d.clone().add(a, "days"), r = t.isAfter(Y) ? Y : t;
2188
+ this.debug && _.debug("[%s] fetching climate chunk from %s to %s", A.requestId, d.format("YYYY-MM-DD"), r.format("YYYY-MM-DD"));
2189
+ const u = await this._fetchClimateData(z, b, d.format("YYYY-MM-DD"), r.format("YYYY-MM-DD"), A);
2190
+ X.push(u), d = r.clone().add(1, "second"), await new Promise((V) => setTimeout(V, 100));
2191
+ }
2192
+ return this._mergeClimateResults(X);
2193
+ }
2194
+ }
2195
+ /**
2196
+ * Fetch climate data for a single date range
2197
+ */
2198
+ async _fetchClimateData(z, b, p, W, A = {}) {
2199
+ var Y;
2200
+ const c = {
1980
2201
  apikey: this.apikey,
1981
2202
  latitude: z,
1982
- longitude: p,
2203
+ longitude: b,
1983
2204
  cell_selection: "sea",
1984
2205
  wind_speed_unit: "kn",
1985
- models: ((a = c.weatherModels) == null ? void 0 : a.split(",")) || "EC_Earth3P_HR",
2206
+ models: ((Y = A.weatherModels) == null ? void 0 : Y.split(",")) || "EC_Earth3P_HR",
1986
2207
  timezone: "auto",
1987
2208
  url: this.CLIMATE.OM_URL,
1988
- start_date: O.format("YYYY-MM-DD"),
1989
- end_date: q.format("YYYY-MM-DD"),
2209
+ start_date: p,
2210
+ end_date: W,
1990
2211
  daily: this.CLIMATE.WEATHER_VARIABLES.DAILY.split(",")
1991
2212
  };
1992
- return { weather: await this.weatherForecast(d, void 0, c) };
2213
+ return { weather: await this.weatherForecast(c, void 0, !1, !0, !1, A) };
2214
+ }
2215
+ /**
2216
+ * Merge multiple climate data chunks
2217
+ */
2218
+ async _mergeClimateResults(z) {
2219
+ if (z.length === 0)
2220
+ return { weather: [] };
2221
+ if (z.length === 1)
2222
+ return z[0];
2223
+ const b = { weather: [] };
2224
+ for (const p of z)
2225
+ if (p.weather instanceof Array)
2226
+ for (const W of p.weather) {
2227
+ const A = b.weather.find((c) => c.model === W.model);
2228
+ A ? await this.mergeSegments(A, W) : b.weather.push(W);
2229
+ }
2230
+ return b;
1993
2231
  }
2232
+ /**
2233
+ * 更新模型信息,获取最新的模型更新时间和可用性等信息,避免使用过期的数据
2234
+ * @param options
2235
+ */
1994
2236
  async update(z = {}) {
1995
- const p = L.unix(this.METEO2_UPDATE.etime), b = this.METEO2_UPDATE.version, A = L();
1996
- if (!b || p.clone().add(10, "minute").isBefore(A)) {
1997
- const c = z.url || "https://meteo3agent.idmwx.com/api/agents/update", o = await fetch(c, {
2237
+ const b = i.unix(this.METEO2_UPDATE.etime), p = this.METEO2_UPDATE.version, W = i();
2238
+ if (!p || b.clone().add(10, "minute").isBefore(W)) {
2239
+ const A = z.url || "https://meteo3agent.idmwx.com/api/agents/update", c = await fetch(A, {
1998
2240
  headers: {
1999
2241
  "Content-Type": "application/json",
2000
2242
  Authorization: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNsYmY5M3I0YTAwMDE4Ymx0NWJ4emFwNWMiLCJyb2xlIjoyMDQ3LCJpYXQiOjE2NzA1NTM0NzAsImV4cCI6Mzg3ODA3MzQ3MH0.MxTv0yLGarZCtOSCZfJHMqrXNMNN0-OL4gBGKGcYcc8"
2001
2243
  }
2002
2244
  });
2003
2245
  try {
2004
- const O = await o.json();
2246
+ const O = await c.json();
2005
2247
  if (O.code === 0) {
2006
- const q = O.data, d = w.standardWeatherModels();
2007
- for (const n of d) {
2008
- const a = w.autoPickSubCategories(n.alias), t = q.filter((i) => a.includes(i.category)).map((i) => {
2009
- var S, r, l, I, P, E;
2010
- const U = L.unix((S = i.meta) == null ? void 0 : S.data_end_time).utc(), s = L.unix((r = i.meta) == null ? void 0 : r.last_run_availability_time).utc(), V = U.diff(s, "days");
2248
+ const Y = O.data, a = D.standardWeatherModels();
2249
+ for (const n of a) {
2250
+ const X = D.autoPickSubCategories(n.alias), t = Y.filter((r) => X.includes(r.category)).map((r) => {
2251
+ var L, B, E, N, Z, f;
2252
+ const u = i.unix((L = r.meta) == null ? void 0 : L.data_end_time).utc(), V = i.unix((B = r.meta) == null ? void 0 : B.last_run_availability_time).utc(), m = u.diff(V, "days");
2011
2253
  return {
2012
- category: i.category,
2254
+ category: r.category,
2013
2255
  meta: {
2014
- endTime: U.format(),
2015
- availabilityTime: s.format(),
2016
- days: V,
2017
- initialisationTime: L.unix((l = i.meta) == null ? void 0 : l.last_run_initialisation_time).utc().format(),
2018
- modificationTime: L.unix((I = i.meta) == null ? void 0 : I.last_run_modification_time).utc().format(),
2019
- temporalResolution: Math.round(((P = i.meta) == null ? void 0 : P.temporal_resolution_seconds) / 3600),
2020
- frequency: Math.round(((E = i.meta) == null ? void 0 : E.update_interval_seconds) / 3600)
2256
+ endTime: u.format(),
2257
+ availabilityTime: V.format(),
2258
+ days: m,
2259
+ initialisationTime: i.unix((E = r.meta) == null ? void 0 : E.last_run_initialisation_time).utc().format(),
2260
+ modificationTime: i.unix((N = r.meta) == null ? void 0 : N.last_run_modification_time).utc().format(),
2261
+ temporalResolution: Math.round(((Z = r.meta) == null ? void 0 : Z.temporal_resolution_seconds) / 3600),
2262
+ frequency: Math.round(((f = r.meta) == null ? void 0 : f.update_interval_seconds) / 3600)
2021
2263
  }
2022
2264
  };
2023
2265
  });
2024
2266
  t.length && (this.METEO2_UPDATE[n.alias] = t);
2025
2267
  }
2026
- this.METEO2_UPDATE.version = b + 1, this.METEO2_UPDATE.etime = A.unix();
2268
+ this.METEO2_UPDATE.version = p + 1, this.METEO2_UPDATE.etime = W.unix();
2027
2269
  }
2028
2270
  } catch (O) {
2029
- D.error("[%s] update meteo2 error: %s", z.requestId, O);
2271
+ _.error("[%s] update meteo2 error: %s", z.requestId, O);
2030
2272
  }
2031
2273
  }
2032
2274
  return this.METEO2_UPDATE;
2033
2275
  }
2034
- async pickUpdateMeta(z, p = {}) {
2035
- const b = await this.update(p);
2276
+ /**
2277
+ * 选择需要更新的模型,按照更新时间排序,返回模型和更新时间等信息
2278
+ * @param model
2279
+ * @param options
2280
+ */
2281
+ async pickUpdateMeta(z, b = {}) {
2282
+ const p = await this.update(b);
2036
2283
  z = z instanceof Array ? z : [z];
2037
- const A = [];
2038
- for (const c in b)
2039
- if (b[c] instanceof Array)
2040
- for (const o of b[c])
2041
- z != null && z.includes(o.category) && o.category !== "meteofrance_currents" && A.push(o);
2042
- return A.sort((c, o) => L(o.meta.endTime).unix() - L(c.meta.endTime).unix()), A;
2284
+ const W = [];
2285
+ for (const A in p)
2286
+ if (p[A] instanceof Array)
2287
+ for (const c of p[A])
2288
+ z != null && z.includes(c.category) && W.push(c);
2289
+ return W.sort((A, c) => i(c.meta.endTime).unix() - i(A.meta.endTime).unix()), W;
2043
2290
  }
2044
2291
  }
2045
- let S0;
2292
+ let B0;
2046
2293
  try {
2047
- S0 = Y0.getLogger("tides");
2294
+ B0 = e0.getLogger("tides");
2048
2295
  } catch {
2049
2296
  } finally {
2050
2297
  }
2051
2298
  class M1 {
2052
- constructor(z, p) {
2053
- v(this, "apikey");
2054
- v(this, "debug");
2055
- this.apikey = z || "aaf294e6-be27-40b8-82cb-0d7844d2dd74", this.debug = p;
2056
- }
2057
- toStdLng(z, p = 6) {
2058
- z > 180 ? (z = z % 360, z = z > 180 ? z - 360 : z) : z < -180 && (z = z % 360, z = z < -180 ? z + 360 : z);
2059
- const b = Math.pow(10, p);
2060
- return Math.round(z * b) / b;
2299
+ constructor(z, b) {
2300
+ F(this, "apikey");
2301
+ F(this, "debug");
2302
+ this.apikey = z || "aaf294e6-be27-40b8-82cb-0d7844d2dd74", this.debug = b;
2061
2303
  }
2062
2304
  /**
2063
2305
  * 潮汐预报数据
@@ -2087,47 +2329,47 @@ class M1 {
2087
2329
  * @param datum
2088
2330
  * @param options
2089
2331
  */
2090
- async tidesForecast(z, p, b = 7, A = "today", c = !0, o = !1, O = !1, q = "CD", d = {}) {
2091
- A = A || "today", b = b || 7, p = this.toStdLng(p), this.debug && S0.info("[%s] spot tides forecast params: %j", d.requestId, { lat: z, lng: p, date: A, extremes: c, heights: o, datums: O, datum: q });
2092
- let n = `https://www.worldtides.info/api/v3?lat=${z}&lon=${p}&days=${b}&date=${A}&datum=${q}&key=${this.apikey}&localtime`;
2093
- c && (n = `${n}&extremes`), o && (n = `${n}&heights`), O && (n = `${n}&datums`);
2094
- const Y = await (await fetch(n)).json();
2095
- return Y.status === 200 ? {
2332
+ async tidesForecast(z, b, p = 7, W = "today", A = !0, c = !1, O = !1, Y = "CD", a = {}) {
2333
+ W = W || "today", p = p || 7, b = Q.toStdLng(b), this.debug && B0.info("[%s] spot tides forecast params: %j", a.requestId, { lat: z, lng: b, date: W, extremes: A, heights: c, datums: O, datum: Y });
2334
+ let n = `https://www.worldtides.info/api/v3?lat=${z}&lon=${b}&days=${p}&date=${W}&datum=${Y}&key=${this.apikey}&localtime`;
2335
+ A && (n = `${n}&extremes`), c && (n = `${n}&heights`), O && (n = `${n}&datums`);
2336
+ const d = await (await fetch(n)).json();
2337
+ return d.status === 200 ? {
2096
2338
  rqt: {
2097
2339
  lat: z,
2098
- lng: p
2340
+ lng: b
2099
2341
  },
2100
2342
  rsp: {
2101
- lat: Y.responseLat,
2102
- lng: Y.responseLon
2343
+ lat: d.responseLat,
2344
+ lng: d.responseLon
2103
2345
  },
2104
- atlas: Y.atlas,
2105
- datum: Y.responseDatum,
2106
- extremes: Y.extremes || [],
2107
- heights: Y.heights || [],
2108
- stations: Y.stations || [],
2109
- datums: Y.datums || []
2110
- } : Y;
2346
+ atlas: d.atlas,
2347
+ datum: d.responseDatum,
2348
+ extremes: d.extremes || [],
2349
+ heights: d.heights || [],
2350
+ stations: d.stations || [],
2351
+ datums: d.datums || []
2352
+ } : d;
2111
2353
  }
2112
2354
  }
2113
- let u0;
2355
+ let s0;
2114
2356
  try {
2115
- u0 = Y0.getLogger("meteo2");
2357
+ s0 = e0.getLogger("meteo2");
2116
2358
  } catch {
2117
2359
  } finally {
2118
2360
  }
2119
- class p0 {
2361
+ class A0 {
2120
2362
  static async parseHistory(z) {
2121
- return z == null ? void 0 : z.map((p) => {
2122
- const b = Number(p.pressure / 100), A = Number(p.lat), c = Number(p.lon), o = Number(p.windSpeed * 3600 / 1852);
2363
+ return z == null ? void 0 : z.map((b) => {
2364
+ const p = Number(b.pressure / 100), W = Number(b.lat), A = Number(b.lon), c = Number(b.windSpeed * 3600 / 1852);
2123
2365
  return {
2124
- updated: L.utc(p.time).format(),
2125
- lat: isNaN(A) ? null : A,
2126
- lng: isNaN(c) ? null : c,
2127
- pressure: isNaN(b) ? null : Math.round(b) || null,
2128
- kts: isNaN(o) ? null : Math.round(o) || null,
2129
- bf: w.beaufort(w.kts2ms(o ?? 0)),
2130
- ...N.parseTropicalType(o),
2366
+ updated: i.utc(b.time).format(),
2367
+ lat: isNaN(W) ? null : W,
2368
+ lng: isNaN(A) ? null : A,
2369
+ pressure: isNaN(p) ? null : Math.round(p) || null,
2370
+ kts: isNaN(c) ? null : Math.round(c) || null,
2371
+ bf: D.beaufort(D.kts2ms(c ?? 0)),
2372
+ ...S.parseTropicalType(c),
2131
2373
  wind: {
2132
2374
  r7: null,
2133
2375
  r7ne: null,
@@ -2149,21 +2391,21 @@ class p0 {
2149
2391
  });
2150
2392
  }
2151
2393
  static async parseForecast(z) {
2152
- return z.map((p) => {
2153
- var c;
2154
- const b = L.utc(p.reftime).format(), A = {};
2155
- return (c = p.records) == null || c.forEach((o) => {
2156
- const O = L.utc(o.time), q = O.diff(b, "hour"), d = Number(o.pressure / 100), n = Number(o.lat), a = Number(o.lon), Y = Number(o.windSpeed * 3600 / 1852);
2157
- A[q] = {
2394
+ return z.map((b) => {
2395
+ var A;
2396
+ const p = i.utc(b.reftime).format(), W = {};
2397
+ return (A = b.records) == null || A.forEach((c) => {
2398
+ const O = i.utc(c.time), Y = O.diff(p, "hour"), a = Number(c.pressure / 100), n = Number(c.lat), X = Number(c.lon), d = Number(c.windSpeed * 3600 / 1852);
2399
+ W[Y] = {
2158
2400
  lat: isNaN(n) ? null : n,
2159
- lng: isNaN(a) ? null : a,
2160
- pressure: isNaN(d) ? null : Math.round(d) || null,
2401
+ lng: isNaN(X) ? null : X,
2402
+ pressure: isNaN(a) ? null : Math.round(a) || null,
2161
2403
  utc: O.format(),
2162
2404
  wind: {
2163
2405
  datetime: O.format(),
2164
- kts: isNaN(Y) ? null : Math.round(Y) || null,
2165
- bf: w.beaufort(w.kts2ms(Y ?? 0)),
2166
- ...N.parseTropicalType(Y),
2406
+ kts: isNaN(d) ? null : Math.round(d) || null,
2407
+ bf: D.beaufort(D.kts2ms(d ?? 0)),
2408
+ ...S.parseTropicalType(d),
2167
2409
  r7: null,
2168
2410
  r7ne: null,
2169
2411
  r7nw: null,
@@ -2185,89 +2427,89 @@ class p0 {
2185
2427
  }
2186
2428
  };
2187
2429
  }), {
2188
- date: b,
2430
+ date: p,
2189
2431
  //@ts-ignore
2190
- model: (e0[((p == null ? void 0 : p.modelIdentifier) || "").toUpperCase()] || "OTHER").toLowerCase(),
2191
- hours: A
2432
+ model: (r0[((b == null ? void 0 : b.modelIdentifier) || "").toUpperCase()] || "OTHER").toLowerCase(),
2433
+ hours: W
2192
2434
  };
2193
2435
  });
2194
2436
  }
2195
2437
  static async parseTropical(z) {
2196
- var o;
2197
- const { id: p, name: b, strength: A } = z, c = {
2198
- id: p == null ? void 0 : p.toLowerCase(),
2199
- name: (o = b == null ? void 0 : b.toLowerCase()) == null ? void 0 : o.replaceAll(/\s/g, "-"),
2200
- strength: A,
2201
- history: await p0.parseHistory(z.history),
2202
- forecasts: await p0.parseForecast(z.forecast)
2438
+ var c;
2439
+ const { id: b, name: p, strength: W } = z, A = {
2440
+ id: b == null ? void 0 : b.toLowerCase(),
2441
+ name: (c = p == null ? void 0 : p.toLowerCase()) == null ? void 0 : c.replaceAll(/\s/g, "-"),
2442
+ strength: W,
2443
+ history: await A0.parseHistory(z.history),
2444
+ forecasts: await A0.parseForecast(z.forecast)
2203
2445
  };
2204
- return await N.tropicalMovement(c), c;
2446
+ return await S.tropicalMovement(A), A;
2205
2447
  }
2206
2448
  static async realtimeForecast() {
2207
- const z = "https://node.windy.com/tc/v2/storms", p = await $.get(z).json(), b = [];
2208
- for (const A of p.storms) {
2209
- const c = `https://node.windy.com/tc/v2/storms/${A.id}`, o = await $.get(c).json(), O = await p0.parseTropical(o);
2210
- b.push(O);
2449
+ const z = "https://node.windy.com/tc/v2/storms", b = await $.get(z).json(), p = [];
2450
+ for (const W of b.storms) {
2451
+ const A = `https://node.windy.com/tc/v2/storms/${W.id}`, c = await $.get(A).json(), O = await A0.parseTropical(c);
2452
+ p.push(O);
2211
2453
  }
2212
- return b;
2454
+ return p;
2213
2455
  }
2214
2456
  }
2215
2457
  const J = class J {
2216
2458
  static async parseHistory(z) {
2217
- const p = `https://hifleet.com/hifleetapi/gettyphooninfo2.do?xuhao=${z}`, b = await $.post(p).text(), A = await J.parser.parseStringPromise(b), c = A.typhoon.position instanceof Array ? A.typhoon.position : [A.typhoon.position], o = [];
2218
- for (const O of c) {
2219
- const q = L(O.updatetime).utcOffset(8).utc().format(), d = Number(O.lat), n = Number(O.lon), a = Number(O.pressure), Y = Number(O.windspeed * 3600 / 1852), t = N.parseWindCircle(O.c7quad1 / 1.852), i = N.parseWindCircle(O.c7quad2 / 1.852), U = N.parseWindCircle(O.c7quad3 / 1.852), s = N.parseWindCircle(O.c7quad4 / 1.852), V = N.parseWindCircle(O.c10quad1 / 1.852), S = N.parseWindCircle(O.c10quad2 / 1.852), r = N.parseWindCircle(O.c10quad3 / 1.852), l = N.parseWindCircle(O.c10quad4 / 1.852), I = N.parseWindCircle(O.c12quad1 / 1.852), P = N.parseWindCircle(O.c12quad2 / 1.852), E = N.parseWindCircle(O.c12quad3 / 1.852), C = N.parseWindCircle(O.c12quad4 / 1.852), { r7: Q, r10: K, r12: k } = N.estimateWindRadii(Y, d), O0 = {
2220
- updated: q,
2221
- lat: isNaN(d) ? null : d,
2459
+ const b = `https://hifleet.com/hifleetapi/gettyphooninfo2.do?xuhao=${z}`, p = await $.post(b).text(), W = await J.parser.parseStringPromise(p), A = W.typhoon.position instanceof Array ? W.typhoon.position : [W.typhoon.position], c = [];
2460
+ for (const O of A) {
2461
+ const Y = i(O.updatetime).utcOffset(8).utc().format(), a = Number(O.lat), n = Number(O.lon), X = Number(O.pressure), d = Number(O.windspeed * 3600 / 1852), t = S.parseWindCircle(O.c7quad1 / 1.852), r = S.parseWindCircle(O.c7quad2 / 1.852), u = S.parseWindCircle(O.c7quad3 / 1.852), V = S.parseWindCircle(O.c7quad4 / 1.852), m = S.parseWindCircle(O.c10quad1 / 1.852), L = S.parseWindCircle(O.c10quad2 / 1.852), B = S.parseWindCircle(O.c10quad3 / 1.852), E = S.parseWindCircle(O.c10quad4 / 1.852), N = S.parseWindCircle(O.c12quad1 / 1.852), Z = S.parseWindCircle(O.c12quad2 / 1.852), f = S.parseWindCircle(O.c12quad3 / 1.852), U = S.parseWindCircle(O.c12quad4 / 1.852), { r7: P, r10: w, r12: K } = S.estimateWindRadii(d, a), x = {
2462
+ updated: Y,
2463
+ lat: isNaN(a) ? null : a,
2222
2464
  lng: isNaN(n) ? null : n,
2223
- pressure: isNaN(a) ? null : Math.round(a),
2224
- kts: isNaN(Y) ? null : Math.round(Y) || null,
2225
- bf: w.beaufort(w.kts2ms(Y ?? 0)),
2226
- ...N.parseTropicalType(Y),
2465
+ pressure: isNaN(X) ? null : Math.round(X),
2466
+ kts: isNaN(d) ? null : Math.round(d) || null,
2467
+ bf: D.beaufort(D.kts2ms(d ?? 0)),
2468
+ ...S.parseTropicalType(d),
2227
2469
  wind: {
2228
- r7: Q,
2470
+ r7: P,
2229
2471
  r7ne: t,
2230
- r7nw: i,
2231
- r7sw: U,
2232
- r7se: s,
2233
- r10: K,
2234
- r10ne: V,
2235
- r10nw: S,
2236
- r10sw: r,
2237
- r10se: l,
2238
- r12: k,
2239
- r12ne: I,
2240
- r12nw: P,
2241
- r12sw: E,
2242
- r12se: C
2472
+ r7nw: r,
2473
+ r7sw: u,
2474
+ r7se: V,
2475
+ r10: w,
2476
+ r10ne: m,
2477
+ r10nw: L,
2478
+ r10sw: B,
2479
+ r10se: E,
2480
+ r12: K,
2481
+ r12ne: N,
2482
+ r12nw: Z,
2483
+ r12sw: f,
2484
+ r12se: U
2243
2485
  }
2244
2486
  };
2245
- o.push(O0);
2487
+ c.push(x);
2246
2488
  }
2247
- return o.sort((O, q) => L(q.updated).unix() - L(O.updated).unix()), o;
2248
- }
2249
- static async parseForecast(z, p) {
2250
- const b = `https://hifleet.com/hifleetapi/gettyphooforecast.do?xuhao=${z}`, A = await $.post(b).text(), c = await J.parser.parseStringPromise(A), o = c.list.forecast instanceof Array ? c.list.forecast : [c.list.forecast], O = [];
2251
- for (const q of o)
2252
- if (q.xuhao === z) {
2253
- const d = q.positions.forecastposition instanceof Array ? q.positions.forecastposition : [q.positions.forecastposition];
2254
- if (d.length) {
2255
- p = p || L(d.at(0).forecasttime).utcOffset(8).utc();
2489
+ return c.sort((O, Y) => i(Y.updated).unix() - i(O.updated).unix()), c;
2490
+ }
2491
+ static async parseForecast(z, b) {
2492
+ const p = `https://hifleet.com/hifleetapi/gettyphooforecast.do?xuhao=${z}`, W = await $.post(p).text(), A = await J.parser.parseStringPromise(W), c = A.list.forecast instanceof Array ? A.list.forecast : [A.list.forecast], O = [];
2493
+ for (const Y of c)
2494
+ if (Y.xuhao === z) {
2495
+ const a = Y.positions.forecastposition instanceof Array ? Y.positions.forecastposition : [Y.positions.forecastposition];
2496
+ if (a.length) {
2497
+ b = b || i(a.at(0).forecasttime).utcOffset(8).utc();
2256
2498
  const n = {};
2257
- for (const Y of d) {
2258
- const t = L(Y.forecasttime).utcOffset(8).utc(), i = t.diff(p, "hours");
2259
- if (i) {
2260
- const U = Number(Y.forelat), s = Number(Y.forelon), V = Number(Y.forepressure), S = Number(Y.forespeed * 3600 / 1852);
2261
- n[i] = {
2262
- lat: isNaN(U) ? null : U,
2263
- lng: isNaN(s) ? null : s,
2264
- pressure: V ? Math.round(V) : null,
2499
+ for (const d of a) {
2500
+ const t = i(d.forecasttime).utcOffset(8).utc(), r = t.diff(b, "hours");
2501
+ if (r) {
2502
+ const u = Number(d.forelat), V = Number(d.forelon), m = Number(d.forepressure), L = Number(d.forespeed * 3600 / 1852);
2503
+ n[r] = {
2504
+ lat: isNaN(u) ? null : u,
2505
+ lng: isNaN(V) ? null : V,
2506
+ pressure: m ? Math.round(m) : null,
2265
2507
  utc: t.format(),
2266
2508
  wind: {
2267
2509
  datetime: t.format(),
2268
- kts: isNaN(S) ? null : Math.round(S),
2269
- bf: w.beaufort(w.kts2ms(S ?? 0)),
2270
- ...N.parseTropicalType(S),
2510
+ kts: isNaN(L) ? null : Math.round(L),
2511
+ bf: D.beaufort(D.kts2ms(L ?? 0)),
2512
+ ...S.parseTropicalType(L),
2271
2513
  r7: null,
2272
2514
  r7ne: null,
2273
2515
  r7nw: null,
@@ -2290,127 +2532,127 @@ const J = class J {
2290
2532
  };
2291
2533
  }
2292
2534
  }
2293
- const a = {
2294
- date: p.utc().format(),
2295
- model: N.parseTropicalModel(q.country).toLowerCase(),
2535
+ const X = {
2536
+ date: b.utc().format(),
2537
+ model: S.parseTropicalModel(Y.country).toLowerCase(),
2296
2538
  hours: n
2297
2539
  };
2298
- O.push(a);
2540
+ O.push(X);
2299
2541
  }
2300
2542
  }
2301
2543
  return O;
2302
2544
  }
2303
2545
  static async parseTropical(z) {
2304
- var o, O, q;
2305
- const p = await J.parseHistory(z.xuhao), b = (o = p.at(0)) == null ? void 0 : o.updated, A = await J.parseForecast(z.xuhao, b ? L(b) : void 0), c = {
2546
+ var c, O, Y;
2547
+ const b = await J.parseHistory(z.xuhao), p = (c = b.at(0)) == null ? void 0 : c.updated, W = await J.parseForecast(z.xuhao, p ? i(p) : void 0), A = {
2306
2548
  id: (O = z.enname) == null ? void 0 : O.toLowerCase(),
2307
- name: (q = z.enname) == null ? void 0 : q.toLowerCase(),
2549
+ name: (Y = z.enname) == null ? void 0 : Y.toLowerCase(),
2308
2550
  cnName: z.name,
2309
- history: p,
2310
- forecasts: A
2551
+ history: b,
2552
+ forecasts: W
2311
2553
  };
2312
- return await N.tropicalMovement(c), c;
2554
+ return await S.tropicalMovement(A), A;
2313
2555
  }
2314
2556
  static async realtimeForecast() {
2315
- const z = "https://hifleet.com/hifleetapi/getCurrentTyphoon2.do", p = await $.post(z).text(), b = await J.parser.parseStringPromise(p), A = [], c = b.typhoon.position instanceof Array ? b.typhoon.position : [b.typhoon.position];
2316
- for (const o of c)
2317
- if (o) {
2318
- const O = await J.parseTropical(o);
2319
- A.push(O);
2557
+ const z = "https://hifleet.com/hifleetapi/getCurrentTyphoon2.do", b = await $.post(z).text(), p = await J.parser.parseStringPromise(b), W = [], A = p.typhoon.position instanceof Array ? p.typhoon.position : [p.typhoon.position];
2558
+ for (const c of A)
2559
+ if (c) {
2560
+ const O = await J.parseTropical(c);
2561
+ W.push(O);
2320
2562
  }
2321
- return A;
2563
+ return W;
2322
2564
  }
2323
2565
  };
2324
- v(J, "parser", Z0.Parser({ explicitArray: !1, mergeAttrs: !0, trim: !0 }));
2325
- let q0 = J;
2326
- var e0 = /* @__PURE__ */ ((M) => (M.CMA = "CMA", M.CNTW = "CNTW", M.CNHK = "CNHK", M.JMA = "JMA", M.KMA = "KMA", M.ECMWF = "ECMWF", M.NOAA_AT = "NOAA-AT", M.NOAA_CP = "NOAA-CP", M.NOAA_EP = "NOAA-EP", M.UKM = "UKM", M.IMD = "IMD", M.GFS = "GFS", M.BOM_ACCESS = "BOM-ACCESS", M.BOM_BULLETIN_EAST = "BOM-BULLETIN-EAST", M.BOM_BULLETIN_NORTH = "BOM-BULLETIN-NORTH", M.BOM_BULLETIN_WEST = "BOM-BULLETIN-WEST", M.OTHER = "OTHER", M))(e0 || {});
2327
- class N {
2566
+ F(J, "parser", Z0.Parser({ explicitArray: !1, mergeAttrs: !0, trim: !0 }));
2567
+ let n0 = J;
2568
+ var r0 = /* @__PURE__ */ ((M) => (M.CMA = "CMA", M.CNTW = "CNTW", M.CNHK = "CNHK", M.JMA = "JMA", M.KMA = "KMA", M.ECMWF = "ECMWF", M.NOAA_AT = "NOAA-AT", M.NOAA_CP = "NOAA-CP", M.NOAA_EP = "NOAA-EP", M.UKM = "UKM", M.IMD = "IMD", M.GFS = "GFS", M.BOM_ACCESS = "BOM-ACCESS", M.BOM_BULLETIN_EAST = "BOM-BULLETIN-EAST", M.BOM_BULLETIN_NORTH = "BOM-BULLETIN-NORTH", M.BOM_BULLETIN_WEST = "BOM-BULLETIN-WEST", M.OTHER = "OTHER", M))(r0 || {});
2569
+ class S {
2328
2570
  /**
2329
2571
  * 台风数据
2330
2572
  * @param vendor
2331
2573
  * @param options
2332
2574
  */
2333
- static async realtimeForecast(z = "", p = {}) {
2334
- return u0.info("[%s] try to fetch realtime tropicals forecast from %s", p.requestId, z), z === "windy" ? p0.realtimeForecast() : z === "hifleet" ? q0.realtimeForecast() : N.mergeTropicals(!0, p);
2575
+ static async realtimeForecast(z = "", b = {}) {
2576
+ return s0.info("[%s] try to fetch realtime tropicals forecast from %s", b.requestId, z), z === "windy" ? A0.realtimeForecast() : z === "hifleet" ? n0.realtimeForecast() : S.mergeTropicals(!0, b);
2335
2577
  }
2336
2578
  static async sortTropical(z) {
2337
- var b;
2338
- const p = Object.values(e0);
2339
- return (b = z.forecasts) == null || b.sort((A, c) => {
2340
- var q, d;
2341
- const o = p.indexOf((q = A.model) == null ? void 0 : q.toUpperCase()), O = p.indexOf((d = c.model) == null ? void 0 : d.toUpperCase());
2342
- return (o === -1 ? 999 : o) - (O === -1 ? 999 : O);
2579
+ var p;
2580
+ const b = Object.values(r0);
2581
+ return (p = z.forecasts) == null || p.sort((W, A) => {
2582
+ var Y, a;
2583
+ const c = b.indexOf((Y = W.model) == null ? void 0 : Y.toUpperCase()), O = b.indexOf((a = A.model) == null ? void 0 : a.toUpperCase());
2584
+ return (c === -1 ? 999 : c) - (O === -1 ? 999 : O);
2343
2585
  }), z;
2344
2586
  }
2345
- static async mergeTropicals(z = !0, p = {}) {
2346
- var c, o;
2347
- const b = await p0.realtimeForecast(), A = z ? await q0.realtimeForecast() : [];
2348
- for (const O of b) {
2349
- const q = A.find((n) => {
2350
- var a, Y;
2351
- return ((a = n.name) == null ? void 0 : a.toLowerCase()) === ((Y = O.name) == null ? void 0 : Y.toLowerCase());
2587
+ static async mergeTropicals(z = !0, b = {}) {
2588
+ var A, c;
2589
+ const p = await A0.realtimeForecast(), W = z ? await n0.realtimeForecast() : [];
2590
+ for (const O of p) {
2591
+ const Y = W.find((n) => {
2592
+ var X, d;
2593
+ return ((X = n.name) == null ? void 0 : X.toLowerCase()) === ((d = O.name) == null ? void 0 : d.toLowerCase());
2352
2594
  });
2353
- if (q) {
2354
- O.cnName = q.cnName, (c = q.history) != null && c.length && (O.history = q.history), O.history.sort((n, a) => L(a.updated).valueOf() - L(n.updated).valueOf());
2355
- for (const n of q.forecasts)
2356
- ["CMA", "JMA", "CNTW", "CNHK", "KMA"].includes((o = n.model) == null ? void 0 : o.toUpperCase()) && !O.forecasts.find((a) => a.model.toLowerCase() === n.model.toLowerCase()) && O.forecasts.push(n);
2595
+ if (Y) {
2596
+ O.cnName = Y.cnName, (A = Y.history) != null && A.length && (O.history = Y.history), O.history.sort((n, X) => i(X.updated).valueOf() - i(n.updated).valueOf());
2597
+ for (const n of Y.forecasts)
2598
+ ["CMA", "JMA", "CNTW", "CNHK", "KMA"].includes((c = n.model) == null ? void 0 : c.toUpperCase()) && !O.forecasts.find((X) => X.model.toLowerCase() === n.model.toLowerCase()) && O.forecasts.push(n);
2357
2599
  }
2358
- O.history = O.history.reduce((n, a) => (n.find((Y) => Y.updated === a.updated) || n.push(a), n), []);
2359
- const d = O.history[0];
2360
- d && O.forecasts.forEach((n) => {
2361
- n.date = d.updated;
2362
- const a = L(d.updated), Y = {};
2600
+ O.history = O.history.reduce((n, X) => (n.find((d) => d.updated === X.updated) || n.push(X), n), []);
2601
+ const a = O.history[0];
2602
+ a && O.forecasts.forEach((n) => {
2603
+ n.date = a.updated;
2604
+ const X = i(a.updated), d = {};
2363
2605
  for (const t in n.hours) {
2364
- const i = n.hours[t], U = L(i.utc).diff(a, "h");
2365
- U > 0 && (Y[U] = i);
2606
+ const r = n.hours[t], u = i(r.utc).diff(X, "h");
2607
+ u > 0 && (d[u] = r);
2366
2608
  }
2367
- n.hours = Y;
2368
- }), await N.tropicalMovement(O);
2609
+ n.hours = d;
2610
+ }), await S.tropicalMovement(O);
2369
2611
  }
2370
- for (const O of A)
2371
- b.every((q) => {
2372
- var d, n;
2373
- return ((d = q.name) == null ? void 0 : d.toLowerCase()) !== ((n = O.name) == null ? void 0 : n.toLowerCase());
2374
- }) && b.push(O);
2375
- return b;
2612
+ for (const O of W)
2613
+ p.every((Y) => {
2614
+ var a, n;
2615
+ return ((a = Y.name) == null ? void 0 : a.toLowerCase()) !== ((n = O.name) == null ? void 0 : n.toLowerCase());
2616
+ }) && p.push(O);
2617
+ return p;
2376
2618
  }
2377
2619
  /**
2378
2620
  * 获取热带气旋的移动信息
2379
2621
  * @param tropical
2380
2622
  */
2381
2623
  static async tropicalMovement(z) {
2382
- await N.sortTropical(z);
2383
- let p = null;
2384
- z.forecasts.forEach((A) => {
2385
- const c = A.hours, o = Object.keys(c);
2386
- for (let O = 0; O < o.length - 1; O++) {
2387
- const q = c[o[O]];
2388
- p = p || q;
2389
- const d = c[o[O + 1]];
2390
- q.movement = N.calculateMovement(q, d);
2391
- const n = N.supplementWindRadii(q);
2392
- q.wind = { ...q.wind || {}, ...n };
2624
+ await S.sortTropical(z);
2625
+ let b = null;
2626
+ z.forecasts.forEach((W) => {
2627
+ const A = W.hours, c = Object.keys(A);
2628
+ for (let O = 0; O < c.length - 1; O++) {
2629
+ const Y = A[c[O]];
2630
+ b = b || Y;
2631
+ const a = A[c[O + 1]];
2632
+ Y.movement = S.calculateMovement(Y, a);
2633
+ const n = S.supplementWindRadii(Y);
2634
+ Y.wind = { ...Y.wind || {}, ...n };
2393
2635
  }
2394
2636
  });
2395
- let b = null;
2396
- for (let A = 0; A < z.history.length - 1; A++) {
2397
- const c = z.history[A + 1], o = z.history[A];
2398
- b = b || o, c.movement = N.calculateMovement(c, o);
2399
- const O = N.supplementWindRadii(c);
2400
- c.wind = { ...c.wind || {}, ...O };
2637
+ let p = null;
2638
+ for (let W = 0; W < z.history.length - 1; W++) {
2639
+ const A = z.history[W + 1], c = z.history[W];
2640
+ p = p || c, A.movement = S.calculateMovement(A, c);
2641
+ const O = S.supplementWindRadii(A);
2642
+ A.wind = { ...A.wind || {}, ...O };
2401
2643
  }
2402
- if (b && p) {
2403
- b.movement = N.calculateMovement(b, p);
2404
- const A = N.supplementWindRadii(b);
2405
- b.wind = { ...b.wind || {}, ...A };
2644
+ if (p && b) {
2645
+ p.movement = S.calculateMovement(p, b);
2646
+ const W = S.supplementWindRadii(p);
2647
+ p.wind = { ...p.wind || {}, ...W };
2406
2648
  }
2407
2649
  return z;
2408
2650
  }
2409
- static calculateMovement(z, p) {
2410
- const b = T0.calculateDistance(z, p), A = L(p.utc || p.updated).diff(z.utc || z.updated, "h", !0);
2651
+ static calculateMovement(z, b) {
2652
+ const p = f0.calculateDistance(z, b), W = i(b.utc || b.updated).diff(z.utc || z.updated, "h", !0);
2411
2653
  return {
2412
- kts: Math.round(b / A * 100) / 100,
2413
- deg: T0.calculateBearing(z, p, !0, 0)
2654
+ kts: Math.round(p / W * 100) / 100,
2655
+ deg: f0.calculateBearing(z, b, !0, 0)
2414
2656
  };
2415
2657
  }
2416
2658
  /**
@@ -2418,9 +2660,9 @@ class N {
2418
2660
  * @param ms 最大风速(m/s)
2419
2661
  * @param lat 纬度
2420
2662
  */
2421
- static estimateRMW(z, p) {
2422
- const b = Math.abs(p || 25), A = 51.6 * Math.exp(-0.0223 * z + 0.0281 * b);
2423
- return Math.max(10, Math.min(150, A));
2663
+ static estimateRMW(z, b) {
2664
+ const p = Math.abs(b || 25), W = 51.6 * Math.exp(-0.0223 * z + 0.0281 * p);
2665
+ return Math.max(10, Math.min(150, W));
2424
2666
  }
2425
2667
  /**
2426
2668
  * 反映风速衰减快慢,由台风特性决定
@@ -2428,8 +2670,8 @@ class N {
2428
2670
  * @param rmw 最大风速半径(km)
2429
2671
  * @param lat 中心纬度
2430
2672
  */
2431
- static estimateHollandB(z, p, b) {
2432
- return 1.0036 + 0.0173 * z - 0.0312 * Math.log(p) + 87e-4 * b;
2673
+ static estimateHollandB(z, b, p) {
2674
+ return 1.0036 + 0.0173 * z - 0.0312 * Math.log(b) + 87e-4 * p;
2433
2675
  }
2434
2676
  /**
2435
2677
  * 推算风圈半径
@@ -2438,15 +2680,15 @@ class N {
2438
2680
  * @param rmw 最大风速半径(km)
2439
2681
  * @param b Holland形状参数B
2440
2682
  */
2441
- static findWindRadius(z, p, b, A) {
2442
- if (z >= p)
2683
+ static findWindRadius(z, b, p, W) {
2684
+ if (z >= b)
2443
2685
  return 0;
2444
- let c = b, o = b * 10;
2445
- for (; o - c > 0.1; ) {
2446
- const O = (c + o) / 2, q = b / O, d = Math.pow(q, A) * Math.exp(1 - Math.pow(q, A));
2447
- p * Math.sqrt(d) > z ? c = O : o = O;
2686
+ let A = p, c = p * 10;
2687
+ for (; c - A > 0.1; ) {
2688
+ const O = (A + c) / 2, Y = p / O, a = Math.pow(Y, W) * Math.exp(1 - Math.pow(Y, W));
2689
+ b * Math.sqrt(a) > z ? A = O : c = O;
2448
2690
  }
2449
- return w.kmh2kts(c + o);
2691
+ return D.kmh2kts(A + c);
2450
2692
  }
2451
2693
  /**
2452
2694
  * 基于台风强度推算风圈基础半径的经验公式
@@ -2454,12 +2696,12 @@ class N {
2454
2696
  * @param lat 纬度
2455
2697
  * @returns 风圈半径对象
2456
2698
  */
2457
- static estimateWindRadii(z, p) {
2458
- const b = w.kts2ms(z), A = N.estimateRMW(b, p), c = N.estimateHollandB(b, A, p), o = N.findWindRadius(17.2, b, A, c), O = N.findWindRadius(28.5, b, A, c), q = N.findWindRadius(37, b, A, c);
2699
+ static estimateWindRadii(z, b) {
2700
+ const p = D.kts2ms(z), W = S.estimateRMW(p, b), A = S.estimateHollandB(p, W, b), c = S.findWindRadius(17.2, p, W, A), O = S.findWindRadius(28.5, p, W, A), Y = S.findWindRadius(37, p, W, A);
2459
2701
  return {
2460
- r7: o ? Math.round(o) : null,
2702
+ r7: c ? Math.round(c) : null,
2461
2703
  r10: O ? Math.round(O) : null,
2462
- r12: q ? Math.round(q) : null
2704
+ r12: Y ? Math.round(Y) : null
2463
2705
  };
2464
2706
  }
2465
2707
  /**
@@ -2470,25 +2712,25 @@ class N {
2470
2712
  * @param hemisphere N 北半球, N 南半球
2471
2713
  * @returns 四象限风圈半径
2472
2714
  */
2473
- static estimateAsymmetricRadii(z, p = 0, b = 0, A = "N") {
2715
+ static estimateAsymmetricRadii(z, b = 0, p = 0, W = "N") {
2474
2716
  if (!z)
2475
2717
  return { ne: null, nw: null, se: null, sw: null };
2476
- if (p < 9)
2718
+ if (b < 9)
2477
2719
  return { ne: z, nw: z, se: z, sw: z };
2478
- const o = 0.15 * Math.min(p / (20 / 1.852), 1), O = {
2479
- ne: (45 - b + 360) % 360,
2480
- nw: (315 - b + 360) % 360,
2481
- se: (135 - b + 360) % 360,
2482
- sw: (225 - b + 360) % 360
2483
- }, q = (d) => {
2484
- const n = d > 180 ? d - 360 : d, a = Math.cos(n * Math.PI / 180);
2485
- return 1 - o * a;
2720
+ const c = 0.15 * Math.min(b / (20 / 1.852), 1), O = {
2721
+ ne: (45 - p + 360) % 360,
2722
+ nw: (315 - p + 360) % 360,
2723
+ se: (135 - p + 360) % 360,
2724
+ sw: (225 - p + 360) % 360
2725
+ }, Y = (a) => {
2726
+ const n = a > 180 ? a - 360 : a, X = Math.cos(n * Math.PI / 180);
2727
+ return 1 - c * X;
2486
2728
  };
2487
2729
  return {
2488
- ne: Math.round(z * q(O.ne)),
2489
- nw: Math.round(z * q(O.nw)),
2490
- se: Math.round(z * q(O.se)),
2491
- sw: Math.round(z * q(O.sw))
2730
+ ne: Math.round(z * Y(O.ne)),
2731
+ nw: Math.round(z * Y(O.nw)),
2732
+ se: Math.round(z * Y(O.se)),
2733
+ sw: Math.round(z * Y(O.sw))
2492
2734
  };
2493
2735
  }
2494
2736
  /**
@@ -2496,14 +2738,14 @@ class N {
2496
2738
  * @param position 预报点数据
2497
2739
  */
2498
2740
  static supplementWindRadii(z) {
2499
- const { wind: p, lat: b, movement: A } = z;
2500
- if (p.r7) {
2501
- for (const d of Object.keys(p))
2502
- /^r[7,10,12]/.test(d) && (isNaN(Number(p[d])) || p[d] < 0) && (p[d] = null);
2503
- return p;
2741
+ const { wind: b, lat: p, movement: W } = z;
2742
+ if (b.r7) {
2743
+ for (const a of Object.keys(b))
2744
+ /^r[7,10,12]/.test(a) && (isNaN(Number(b[a])) || b[a] < 0) && (b[a] = null);
2745
+ return b;
2504
2746
  }
2505
- const c = p.kts;
2506
- if (!c || c < 17)
2747
+ const A = b.kts;
2748
+ if (!A || A < 17)
2507
2749
  return {
2508
2750
  r7: null,
2509
2751
  r7ne: null,
@@ -2521,15 +2763,15 @@ class N {
2521
2763
  r12se: null,
2522
2764
  r12sw: null
2523
2765
  };
2524
- const o = N.estimateWindRadii(c, b), O = {};
2525
- return ["r7", "r10", "r12"].forEach((d) => {
2526
- const n = o[d];
2766
+ const c = S.estimateWindRadii(A, p), O = {};
2767
+ return ["r7", "r10", "r12"].forEach((a) => {
2768
+ const n = c[a];
2527
2769
  if (n) {
2528
- O[d] = n;
2529
- const a = N.estimateAsymmetricRadii(n, (A == null ? void 0 : A.kts) || 0, (A == null ? void 0 : A.deg) || 0, b > 0 ? "N" : "S");
2530
- O[`${d}ne`] = a.ne, O[`${d}nw`] = a.nw, O[`${d}se`] = a.se, O[`${d}sw`] = a.sw;
2770
+ O[a] = n;
2771
+ const X = S.estimateAsymmetricRadii(n, (W == null ? void 0 : W.kts) || 0, (W == null ? void 0 : W.deg) || 0, p > 0 ? "N" : "S");
2772
+ O[`${a}ne`] = X.ne, O[`${a}nw`] = X.nw, O[`${a}se`] = X.se, O[`${a}sw`] = X.sw;
2531
2773
  } else
2532
- O[d] = null, O[`${d}ne`] = null, O[`${d}nw`] = null, O[`${d}se`] = null, O[`${d}sw`] = null;
2774
+ O[a] = null, O[`${a}ne`] = null, O[`${a}nw`] = null, O[`${a}se`] = null, O[`${a}sw`] = null;
2533
2775
  }), O;
2534
2776
  }
2535
2777
  /**
@@ -2554,9 +2796,9 @@ class N {
2554
2796
  }
2555
2797
  export {
2556
2798
  j0 as MeteoHelper,
2557
- b0 as MeteoHelper2,
2799
+ Q as MeteoHelper2,
2558
2800
  M1 as TidesHelper,
2559
- N as TropicalHelper,
2560
- e0 as TropicalModel,
2801
+ S as TropicalHelper,
2802
+ r0 as TropicalModel,
2561
2803
  m0 as WindyModel
2562
2804
  };