@sync-in/server 2.0.0 → 2.1.0

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.
Files changed (232) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +38 -28
  3. package/environment/environment.dist.yaml +4 -0
  4. package/package.json +17 -17
  5. package/server/applications/files/utils/doc-textify/adapters/pdf.js +1 -1
  6. package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -1
  7. package/server/applications/files/utils/files.js +37 -24
  8. package/server/applications/files/utils/files.js.map +1 -1
  9. package/server/applications/notifications/i18n/index.js +5 -0
  10. package/server/applications/notifications/i18n/index.js.map +1 -1
  11. package/server/applications/notifications/i18n/nl.js +54 -0
  12. package/server/applications/notifications/i18n/nl.js.map +1 -0
  13. package/server/applications/sync/services/sync-clients-manager.service.js +1 -1
  14. package/server/applications/sync/services/sync-clients-manager.service.js.map +1 -1
  15. package/server/authentication/providers/oidc/auth-oidc.config.js +5 -0
  16. package/server/authentication/providers/oidc/auth-oidc.config.js.map +1 -1
  17. package/server/authentication/providers/oidc/auth-provider-oidc.service.js +10 -7
  18. package/server/authentication/providers/oidc/auth-provider-oidc.service.js.map +1 -1
  19. package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js +16 -0
  20. package/server/authentication/providers/oidc/auth-provider-oidc.service.spec.js.map +1 -1
  21. package/server/common/i18n.js +1 -0
  22. package/server/common/i18n.js.map +1 -1
  23. package/server/infrastructure/database/database.module.js +7 -0
  24. package/server/infrastructure/database/database.module.js.map +1 -1
  25. package/server/infrastructure/database/scripts/check-db.js +20 -0
  26. package/server/infrastructure/database/scripts/check-db.js.map +1 -0
  27. package/static/3rdpartylicenses.txt +391 -391
  28. package/static/assets/pdfjs/build/pdf.mjs +512 -417
  29. package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
  30. package/static/assets/pdfjs/build/pdf.sandbox.mjs +390 -4
  31. package/static/assets/pdfjs/build/pdf.sandbox.mjs.map +1 -1
  32. package/static/assets/pdfjs/build/pdf.worker.mjs +2378 -401
  33. package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
  34. package/static/assets/pdfjs/version +1 -1
  35. package/static/assets/pdfjs/web/debugger.mjs +6 -15
  36. package/static/assets/pdfjs/web/locale/be/viewer.ftl +78 -0
  37. package/static/assets/pdfjs/web/locale/cs/viewer.ftl +82 -0
  38. package/static/assets/pdfjs/web/locale/cy/viewer.ftl +90 -0
  39. package/static/assets/pdfjs/web/locale/de/viewer.ftl +75 -0
  40. package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +82 -0
  41. package/static/assets/pdfjs/web/locale/el/viewer.ftl +74 -0
  42. package/static/assets/pdfjs/web/locale/en-CA/viewer.ftl +74 -0
  43. package/static/assets/pdfjs/web/locale/en-GB/viewer.ftl +81 -0
  44. package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +14 -14
  45. package/static/assets/pdfjs/web/locale/eo/viewer.ftl +74 -0
  46. package/static/assets/pdfjs/web/locale/es-AR/viewer.ftl +74 -0
  47. package/static/assets/pdfjs/web/locale/es-CL/viewer.ftl +74 -0
  48. package/static/assets/pdfjs/web/locale/es-ES/viewer.ftl +74 -0
  49. package/static/assets/pdfjs/web/locale/es-MX/viewer.ftl +75 -0
  50. package/static/assets/pdfjs/web/locale/eu/viewer.ftl +74 -0
  51. package/static/assets/pdfjs/web/locale/fi/viewer.ftl +74 -0
  52. package/static/assets/pdfjs/web/locale/fr/viewer.ftl +81 -0
  53. package/static/assets/pdfjs/web/locale/fy-NL/viewer.ftl +74 -0
  54. package/static/assets/pdfjs/web/locale/gn/viewer.ftl +77 -0
  55. package/static/assets/pdfjs/web/locale/he/viewer.ftl +81 -0
  56. package/static/assets/pdfjs/web/locale/hsb/viewer.ftl +87 -0
  57. package/static/assets/pdfjs/web/locale/hu/viewer.ftl +74 -0
  58. package/static/assets/pdfjs/web/locale/hy-AM/viewer.ftl +10 -10
  59. package/static/assets/pdfjs/web/locale/ia/viewer.ftl +75 -0
  60. package/static/assets/pdfjs/web/locale/it/viewer.ftl +81 -0
  61. package/static/assets/pdfjs/web/locale/ja/viewer.ftl +58 -0
  62. package/static/assets/pdfjs/web/locale/ka/viewer.ftl +74 -0
  63. package/static/assets/pdfjs/web/locale/kk/viewer.ftl +81 -0
  64. package/static/assets/pdfjs/web/locale/km/viewer.ftl +44 -0
  65. package/static/assets/pdfjs/web/locale/ko/viewer.ftl +65 -0
  66. package/static/assets/pdfjs/web/locale/nb-NO/viewer.ftl +74 -0
  67. package/static/assets/pdfjs/web/locale/nl/viewer.ftl +81 -0
  68. package/static/assets/pdfjs/web/locale/nn-NO/viewer.ftl +75 -0
  69. package/static/assets/pdfjs/web/locale/pa-IN/viewer.ftl +74 -0
  70. package/static/assets/pdfjs/web/locale/pl/viewer.ftl +78 -0
  71. package/static/assets/pdfjs/web/locale/pt-BR/viewer.ftl +74 -0
  72. package/static/assets/pdfjs/web/locale/ro/viewer.ftl +81 -3
  73. package/static/assets/pdfjs/web/locale/ru/viewer.ftl +85 -0
  74. package/static/assets/pdfjs/web/locale/sk/viewer.ftl +83 -1
  75. package/static/assets/pdfjs/web/locale/sl/viewer.ftl +82 -0
  76. package/static/assets/pdfjs/web/locale/sv-SE/viewer.ftl +81 -0
  77. package/static/assets/pdfjs/web/locale/tg/viewer.ftl +74 -0
  78. package/static/assets/pdfjs/web/locale/th/viewer.ftl +58 -0
  79. package/static/assets/pdfjs/web/locale/tr/viewer.ftl +74 -0
  80. package/static/assets/pdfjs/web/locale/uk/viewer.ftl +144 -0
  81. package/static/assets/pdfjs/web/locale/vi/viewer.ftl +65 -0
  82. package/static/assets/pdfjs/web/locale/zh-CN/viewer.ftl +61 -3
  83. package/static/assets/pdfjs/web/locale/zh-TW/viewer.ftl +65 -0
  84. package/static/assets/pdfjs/web/viewer.css +292 -152
  85. package/static/assets/pdfjs/web/viewer.html +14 -21
  86. package/static/assets/pdfjs/web/viewer.mjs +782 -327
  87. package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
  88. package/static/assets/pdfjs/web/wasm/jbig2.wasm +0 -0
  89. package/static/{chunk-7WOPGQXB.js → chunk-25XD7GNL.js} +1 -1
  90. package/static/{chunk-E5WI5725.js → chunk-2W4Z5VTY.js} +1 -1
  91. package/static/chunk-2XNPCG4F.js +1 -0
  92. package/static/chunk-3B2RHO2H.js +1 -0
  93. package/static/{chunk-UMDRE4S7.js → chunk-3DNAFXGN.js} +1 -1
  94. package/static/{chunk-OANZITPM.js → chunk-3EPN4WD7.js} +1 -1
  95. package/static/chunk-4L2WBHB6.js +1 -0
  96. package/static/chunk-4RYZNAIZ.js +1 -0
  97. package/static/chunk-5C77PEFA.js +1 -0
  98. package/static/chunk-5JA3DZWQ.js +1 -0
  99. package/static/chunk-5MSTJGPE.js +1 -0
  100. package/static/{chunk-VSBFNFOM.js → chunk-5O7KTREI.js} +1 -1
  101. package/static/chunk-6KORLSUZ.js +1 -0
  102. package/static/chunk-6LIHQVPW.js +2 -0
  103. package/static/{chunk-2CKLZ3FM.js → chunk-72BXGTUG.js} +1 -1
  104. package/static/chunk-7423QJQN.js +1 -0
  105. package/static/chunk-77HB4DE6.js +1 -0
  106. package/static/{chunk-RWAAC3A4.js → chunk-7PVTMTWH.js} +1 -1
  107. package/static/{chunk-IWWBV6EM.js → chunk-7UIOW5AD.js} +1 -1
  108. package/static/chunk-7YMONFZZ.js +1 -0
  109. package/static/chunk-AUPNSQGJ.js +1 -0
  110. package/static/chunk-AYF6ZI6L.js +5 -0
  111. package/static/chunk-BEESW4BF.js +1 -0
  112. package/static/{chunk-2R6IBBPZ.js → chunk-BI3VI6XG.js} +1 -1
  113. package/static/chunk-BMGKB3JK.js +4 -0
  114. package/static/chunk-CFXAKPPB.js +563 -0
  115. package/static/chunk-CGYZG6CB.js +2 -0
  116. package/static/{chunk-K25E7YGG.js → chunk-CHAYERHQ.js} +1 -1
  117. package/static/chunk-CLNKPQMZ.js +1 -0
  118. package/static/{chunk-ISV3BO6R.js → chunk-CVLSRA2W.js} +1 -1
  119. package/static/chunk-D373HBMN.js +1 -0
  120. package/static/{chunk-MTRXBVWZ.js → chunk-D43PHZEY.js} +1 -1
  121. package/static/chunk-D44RAVFK.js +1 -0
  122. package/static/chunk-DFVVEGWC.js +1 -0
  123. package/static/chunk-E43LXI27.js +1 -0
  124. package/static/{chunk-GQFMWVFD.js → chunk-E5M4ZDID.js} +1 -1
  125. package/static/chunk-F7JS3YWP.js +2 -0
  126. package/static/chunk-FRWEEOOM.js +1 -0
  127. package/static/chunk-HIZGSP7R.js +1 -0
  128. package/static/chunk-HX6ZWXQD.js +1 -0
  129. package/static/chunk-HZ6LLXLE.js +1 -0
  130. package/static/{chunk-RLL634K4.js → chunk-IFHFPV5W.js} +1 -1
  131. package/static/{chunk-KJD3KFF3.js → chunk-JICKUOQ6.js} +1 -1
  132. package/static/chunk-KY2BW2LP.js +1 -0
  133. package/static/{chunk-CWYHOPOP.js → chunk-KYA3HPDX.js} +1 -1
  134. package/static/{chunk-RWCNTCU5.js → chunk-KYLATNX5.js} +1 -1
  135. package/static/chunk-LCZNSV4Z.js +1 -0
  136. package/static/{chunk-GVNTC564.js → chunk-MA6DYTMQ.js} +1 -1
  137. package/static/{chunk-KZS7CTNR.js → chunk-MXH5XYBD.js} +1 -1
  138. package/static/{chunk-NMTBMHUL.js → chunk-MXIJGSDQ.js} +1 -1
  139. package/static/{chunk-RS2OFKWP.js → chunk-NE75E3GD.js} +1 -1
  140. package/static/{chunk-MZQK6LNV.js → chunk-NJKIHMOH.js} +1 -1
  141. package/static/chunk-NMDGST45.js +1 -0
  142. package/static/{chunk-CU76ATCF.js → chunk-OF7P4LTI.js} +1 -1
  143. package/static/chunk-OK5K5CYJ.js +13 -0
  144. package/static/chunk-OZ6LXMUH.js +1 -0
  145. package/static/chunk-PFY6YUPS.js +2 -0
  146. package/static/chunk-PQ2YFCVM.js +1 -0
  147. package/static/{chunk-Y4AUYQTG.js → chunk-QPX34S6P.js} +4 -4
  148. package/static/{chunk-27ATUHBH.js → chunk-QQO7S2VY.js} +1 -1
  149. package/static/chunk-RANZZPRG.js +1 -0
  150. package/static/{chunk-WN4WXCVK.js → chunk-RNQB2QJB.js} +1 -1
  151. package/static/{chunk-Q3EGCMF5.js → chunk-S7QYAKG5.js} +1 -1
  152. package/static/chunk-SCEWOW5C.js +2 -0
  153. package/static/chunk-SQ2KIOJ7.js +1 -0
  154. package/static/{chunk-QVRVFYJH.js → chunk-SW5GCGOI.js} +1 -1
  155. package/static/chunk-SWCYWB2T.js +1 -0
  156. package/static/{chunk-4FIGEBNL.js → chunk-SWZ3L2LK.js} +1 -1
  157. package/static/{chunk-TWCGKSYE.js → chunk-TDK62XEQ.js} +1 -1
  158. package/static/chunk-TH4L5H6P.js +1 -0
  159. package/static/chunk-U3ZGYOLA.js +1 -0
  160. package/static/chunk-U6V4Y234.js +1 -0
  161. package/static/chunk-U7KNV64D.js +2 -0
  162. package/static/chunk-UC66HJV4.js +1 -0
  163. package/static/{chunk-7GWW6MJO.js → chunk-V4HAIERK.js} +1 -1
  164. package/static/chunk-V55LDRV7.js +1 -0
  165. package/static/{chunk-5CZOSAMZ.js → chunk-WF6D7CQ4.js} +1 -1
  166. package/static/chunk-WJPVHM7T.js +1 -0
  167. package/static/chunk-WM4XBDC2.js +1 -0
  168. package/static/chunk-X2EKQYMZ.js +1 -0
  169. package/static/{chunk-L5IHUVXL.js → chunk-XEDABMM5.js} +1 -1
  170. package/static/{chunk-OGE4SAHU.js → chunk-Y3YKVK3K.js} +1 -1
  171. package/static/{chunk-QIGUDEZF.js → chunk-YEOAMYRK.js} +1 -1
  172. package/static/{chunk-A4UGPSWX.js → chunk-ZLTL7I7D.js} +1 -1
  173. package/static/chunk-ZYNBYM7I.js +3 -0
  174. package/static/index.html +2 -2
  175. package/static/main-KFUSRCP5.js +5 -0
  176. package/static/media/inter-cyrillic-ext-wght-normal-IYF56FF6.woff2 +0 -0
  177. package/static/media/inter-cyrillic-wght-normal-JEOLYBOO.woff2 +0 -0
  178. package/static/media/inter-greek-ext-wght-normal-EOVOK2B5.woff2 +0 -0
  179. package/static/media/inter-greek-wght-normal-IRE366VL.woff2 +0 -0
  180. package/static/media/inter-latin-ext-wght-normal-HA22NDSG.woff2 +0 -0
  181. package/static/media/inter-latin-wght-normal-NRMW37G5.woff2 +0 -0
  182. package/static/media/inter-vietnamese-wght-normal-CE5GGD3W.woff2 +0 -0
  183. package/static/styles-66AEF62D.css +1 -0
  184. package/static/chunk-22TZP6HW.js +0 -1
  185. package/static/chunk-2QZPX7LO.js +0 -1
  186. package/static/chunk-4P3JABAP.js +0 -13
  187. package/static/chunk-677WUBCT.js +0 -1
  188. package/static/chunk-74CAHBFM.js +0 -1
  189. package/static/chunk-AHO37FKW.js +0 -1
  190. package/static/chunk-AQCXMKP3.js +0 -1
  191. package/static/chunk-B6PDYCRO.js +0 -3
  192. package/static/chunk-FC5HTKVM.js +0 -1
  193. package/static/chunk-FOSM7EYI.js +0 -1
  194. package/static/chunk-GAZO25PI.js +0 -1
  195. package/static/chunk-GB7ABR5N.js +0 -1
  196. package/static/chunk-GEHFKZQ5.js +0 -2
  197. package/static/chunk-HGL3NYP2.js +0 -2
  198. package/static/chunk-HLIWPWRA.js +0 -1
  199. package/static/chunk-HNYB3M4S.js +0 -1
  200. package/static/chunk-HUXAUQMN.js +0 -1
  201. package/static/chunk-I2XA6PPK.js +0 -1
  202. package/static/chunk-JV3AGU5B.js +0 -1
  203. package/static/chunk-K46PUTZB.js +0 -1
  204. package/static/chunk-KERFLJ56.js +0 -1
  205. package/static/chunk-KPKSI23S.js +0 -1
  206. package/static/chunk-L7RRX2M3.js +0 -1
  207. package/static/chunk-LGWJ2WKU.js +0 -1
  208. package/static/chunk-LUSVISM6.js +0 -1
  209. package/static/chunk-MLC7JK2H.js +0 -2
  210. package/static/chunk-MOHNYW2A.js +0 -1
  211. package/static/chunk-NCDUOVMW.js +0 -1
  212. package/static/chunk-NGUAJIGI.js +0 -1
  213. package/static/chunk-NIPP6JDI.js +0 -1
  214. package/static/chunk-O4XXMZFX.js +0 -4
  215. package/static/chunk-OI3ME22C.js +0 -1
  216. package/static/chunk-QF2NSHZA.js +0 -1
  217. package/static/chunk-QJVC3SRJ.js +0 -562
  218. package/static/chunk-QKN6LAAA.js +0 -1
  219. package/static/chunk-QRFESU5O.js +0 -2
  220. package/static/chunk-RFJIPIOK.js +0 -2
  221. package/static/chunk-S5Y64DDS.js +0 -1
  222. package/static/chunk-SLG5KDU6.js +0 -1
  223. package/static/chunk-TJ4CVFEL.js +0 -1
  224. package/static/chunk-VRIOLRYR.js +0 -5
  225. package/static/chunk-VS4O2XDP.js +0 -1
  226. package/static/chunk-WX7RXW7K.js +0 -1
  227. package/static/chunk-XC4POKR3.js +0 -2
  228. package/static/chunk-Y67J3BOL.js +0 -1
  229. package/static/chunk-YMIXHRJQ.js +0 -1
  230. package/static/chunk-ZUNKFAKP.js +0 -1
  231. package/static/main-QN4UCOC5.js +0 -5
  232. package/static/styles-46GLIE7Y.css +0 -1
@@ -21,8 +21,8 @@
21
21
  */
22
22
 
23
23
  /**
24
- * pdfjsVersion = 5.4.624
25
- * pdfjsBuild = 384c6208b
24
+ * pdfjsVersion = 5.5.207
25
+ * pdfjsBuild = 527964698
26
26
  */
27
27
  /******/ // The require scope
28
28
  /******/ var __webpack_require__ = {};
@@ -408,6 +408,9 @@ function updateUrlHash(url, hash, allowRel = false) {
408
408
  }
409
409
  return "";
410
410
  }
411
+ function stripPath(str) {
412
+ return str.substring(str.lastIndexOf("/") + 1);
413
+ }
411
414
  function shadow(obj, prop, value, nonSerializable = false) {
412
415
  Object.defineProperty(obj, prop, {
413
416
  value,
@@ -894,6 +897,9 @@ function _isValidExplicitDest(validRef, validName, dest) {
894
897
  }
895
898
  return true;
896
899
  }
900
+ const makeArr = () => [];
901
+ const makeMap = () => new Map();
902
+ const makeObj = () => Object.create(null);
897
903
  function MathClamp(v, min, max) {
898
904
  return Math.min(Math.max(v, min), max);
899
905
  }
@@ -1158,9 +1164,7 @@ class RefSet {
1158
1164
  }
1159
1165
  }
1160
1166
  class RefSetCache {
1161
- constructor() {
1162
- this._map = new Map();
1163
- }
1167
+ _map = new Map();
1164
1168
  get size() {
1165
1169
  return this._map.size;
1166
1170
  }
@@ -1370,7 +1374,7 @@ async function fetchBinaryData(url) {
1370
1374
  if (!response.ok) {
1371
1375
  throw new Error(`Failed to fetch file "${url}" with "${response.statusText}".`);
1372
1376
  }
1373
- return new Uint8Array(await response.arrayBuffer());
1377
+ return response.bytes();
1374
1378
  }
1375
1379
  function getInheritableProperty({
1376
1380
  dict,
@@ -1707,12 +1711,7 @@ function getNewAnnotationsMap(annotationStorage) {
1707
1711
  if (!key.startsWith(AnnotationEditorPrefix)) {
1708
1712
  continue;
1709
1713
  }
1710
- let annotations = newAnnotationsByPage.get(value.pageIndex);
1711
- if (!annotations) {
1712
- annotations = [];
1713
- newAnnotationsByPage.set(value.pageIndex, annotations);
1714
- }
1715
- annotations.push(value);
1714
+ newAnnotationsByPage.getOrInsertComputed(value.pageIndex, makeArr).push(value);
1716
1715
  }
1717
1716
  return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;
1718
1717
  }
@@ -2087,6 +2086,21 @@ function copyRgbaImage(src, dest, alpha01) {
2087
2086
  }
2088
2087
  }
2089
2088
  }
2089
+ function isDefaultDecodeHelper(decode, expectedLen) {
2090
+ if (!Array.isArray(decode)) {
2091
+ return true;
2092
+ }
2093
+ const decodeLen = decode.length;
2094
+ if (decodeLen < expectedLen) {
2095
+ warn("Decode map length is too short.");
2096
+ return true;
2097
+ }
2098
+ if (decodeLen > expectedLen) {
2099
+ info("Truncating too long decode map.");
2100
+ decode.length = expectedLen;
2101
+ }
2102
+ return false;
2103
+ }
2090
2104
  class ColorSpace {
2091
2105
  static #rgbBuf = new Uint8ClampedArray(3);
2092
2106
  constructor(name, numComps) {
@@ -2113,8 +2127,8 @@ class ColorSpace {
2113
2127
  isPassthrough(bits) {
2114
2128
  return false;
2115
2129
  }
2116
- isDefaultDecode(decodeMap, bpc) {
2117
- return ColorSpace.isDefaultDecode(decodeMap, this.numComps);
2130
+ isDefaultDecode(decode, bpc) {
2131
+ return ColorSpace.isDefaultDecode(decode, this.numComps);
2118
2132
  }
2119
2133
  fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {
2120
2134
  const count = originalWidth * originalHeight;
@@ -2174,11 +2188,7 @@ class ColorSpace {
2174
2188
  return shadow(this, "usesZeroToOneRange", true);
2175
2189
  }
2176
2190
  static isDefaultDecode(decode, numComps) {
2177
- if (!Array.isArray(decode)) {
2178
- return true;
2179
- }
2180
- if (numComps * 2 !== decode.length) {
2181
- warn("The decode map is not the correct length");
2191
+ if (isDefaultDecodeHelper(decode, numComps * 2)) {
2182
2192
  return true;
2183
2193
  }
2184
2194
  for (let i = 0, ii = decode.length; i < ii; i += 2) {
@@ -2241,7 +2251,7 @@ class PatternCS extends ColorSpace {
2241
2251
  super("Pattern", null);
2242
2252
  this.base = baseCS;
2243
2253
  }
2244
- isDefaultDecode(decodeMap, bpc) {
2254
+ isDefaultDecode(decode, bpc) {
2245
2255
  unreachable("Should not call PatternCS.isDefaultDecode");
2246
2256
  }
2247
2257
  }
@@ -2291,19 +2301,15 @@ class IndexedCS extends ColorSpace {
2291
2301
  getOutputLength(inputLength, alpha01) {
2292
2302
  return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);
2293
2303
  }
2294
- isDefaultDecode(decodeMap, bpc) {
2295
- if (!Array.isArray(decodeMap)) {
2296
- return true;
2297
- }
2298
- if (decodeMap.length !== 2) {
2299
- warn("Decode map length is not correct");
2304
+ isDefaultDecode(decode, bpc) {
2305
+ if (isDefaultDecodeHelper(decode, 2)) {
2300
2306
  return true;
2301
2307
  }
2302
2308
  if (!Number.isInteger(bpc) || bpc < 1) {
2303
2309
  warn("Bits per component is not correct");
2304
2310
  return true;
2305
2311
  }
2306
- return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;
2312
+ return decode[0] === 0 && decode[1] === (1 << bpc) - 1;
2307
2313
  }
2308
2314
  }
2309
2315
  class DeviceGrayCS extends ColorSpace {
@@ -2689,7 +2695,7 @@ class LabCS extends ColorSpace {
2689
2695
  getOutputLength(inputLength, alpha01) {
2690
2696
  return inputLength * (3 + alpha01) / 3 | 0;
2691
2697
  }
2692
- isDefaultDecode(decodeMap, bpc) {
2698
+ isDefaultDecode(decode, bpc) {
2693
2699
  return true;
2694
2700
  }
2695
2701
  get usesZeroToOneRange() {
@@ -3106,35 +3112,31 @@ class ChunkedStreamManager {
3106
3112
  this.disableAutoFetch = args.disableAutoFetch;
3107
3113
  this.msgHandler = args.msgHandler;
3108
3114
  }
3109
- sendRequest(begin, end) {
3115
+ async sendRequest(begin, end) {
3110
3116
  const rangeReader = this.pdfStream.getRangeReader(begin, end);
3111
3117
  let chunks = [];
3112
- return new Promise((resolve, reject) => {
3113
- const readChunk = ({
3118
+ while (true) {
3119
+ const {
3114
3120
  value,
3115
3121
  done
3116
- }) => {
3117
- try {
3118
- if (done) {
3119
- resolve(arrayBuffersToBytes(chunks));
3120
- chunks = null;
3121
- return;
3122
- }
3123
- chunks.push(value);
3124
- rangeReader.read().then(readChunk, reject);
3125
- } catch (e) {
3126
- reject(e);
3127
- }
3128
- };
3129
- rangeReader.read().then(readChunk, reject);
3130
- }).then(data => {
3122
+ } = await rangeReader.read();
3131
3123
  if (this.aborted) {
3124
+ chunks = null;
3132
3125
  return;
3133
3126
  }
3134
- this.onReceiveData({
3135
- chunk: data,
3136
- begin
3137
- });
3127
+ if (done) {
3128
+ break;
3129
+ }
3130
+ chunks.push(value);
3131
+ }
3132
+ if (chunks.length === 0 && this.disableAutoFetch) {
3133
+ return;
3134
+ }
3135
+ const data = arrayBuffersToBytes(chunks);
3136
+ chunks = null;
3137
+ this.onReceiveData({
3138
+ chunk: data.buffer,
3139
+ begin
3138
3140
  });
3139
3141
  }
3140
3142
  requestAllChunks(noFetch = false) {
@@ -3294,7 +3296,7 @@ class ChunkedStreamManager {
3294
3296
  capability.resolve();
3295
3297
  }
3296
3298
  this.msgHandler.send("DocProgress", {
3297
- loaded: stream.numChunksLoaded * chunkSize,
3299
+ loaded: MathClamp(stream.numChunksLoaded * chunkSize, stream.progressiveDataLength, length),
3298
3300
  total: length
3299
3301
  });
3300
3302
  }
@@ -3340,27 +3342,28 @@ function convertBlackAndWhiteToRGBA({
3340
3342
  const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];
3341
3343
  const widthInSource = width >> 3;
3342
3344
  const widthRemainder = width & 7;
3345
+ const xorMask = zeroMapping ^ oneMapping;
3343
3346
  const srcLength = src.length;
3344
3347
  dest = new Uint32Array(dest.buffer);
3345
3348
  let destPos = 0;
3346
- for (let i = 0; i < height; i++) {
3347
- for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {
3348
- const elem = srcPos < srcLength ? src[srcPos] : 255;
3349
- dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;
3350
- dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;
3351
- dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;
3352
- dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;
3353
- dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;
3354
- dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;
3355
- dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;
3356
- dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;
3349
+ for (let i = 0; i < height; ++i) {
3350
+ for (const max = srcPos + widthInSource; srcPos < max; ++srcPos, destPos += 8) {
3351
+ const elem = src[srcPos];
3352
+ dest[destPos] = zeroMapping ^ -(elem >> 7 & 1) & xorMask;
3353
+ dest[destPos + 1] = zeroMapping ^ -(elem >> 6 & 1) & xorMask;
3354
+ dest[destPos + 2] = zeroMapping ^ -(elem >> 5 & 1) & xorMask;
3355
+ dest[destPos + 3] = zeroMapping ^ -(elem >> 4 & 1) & xorMask;
3356
+ dest[destPos + 4] = zeroMapping ^ -(elem >> 3 & 1) & xorMask;
3357
+ dest[destPos + 5] = zeroMapping ^ -(elem >> 2 & 1) & xorMask;
3358
+ dest[destPos + 6] = zeroMapping ^ -(elem >> 1 & 1) & xorMask;
3359
+ dest[destPos + 7] = zeroMapping ^ -(elem & 1) & xorMask;
3357
3360
  }
3358
3361
  if (widthRemainder === 0) {
3359
3362
  continue;
3360
3363
  }
3361
3364
  const elem = srcPos < srcLength ? src[srcPos++] : 255;
3362
- for (let j = 0; j < widthRemainder; j++) {
3363
- dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;
3365
+ for (let j = 0; j < widthRemainder; ++j, ++destPos) {
3366
+ dest[destPos] = zeroMapping ^ -(elem >> 7 - j & 1) & xorMask;
3364
3367
  }
3365
3368
  }
3366
3369
  return {
@@ -3380,31 +3383,32 @@ function convertRGBToRGBA({
3380
3383
  const len = width * height * 3;
3381
3384
  const len32 = len >> 2;
3382
3385
  const src32 = new Uint32Array(src.buffer, srcPos, len32);
3386
+ const alphaMask = FeatureTest.isLittleEndian ? 0xff000000 : 0xff;
3383
3387
  if (FeatureTest.isLittleEndian) {
3384
3388
  for (; i < len32 - 2; i += 3, destPos += 4) {
3385
- const s1 = src32[i];
3386
- const s2 = src32[i + 1];
3387
- const s3 = src32[i + 2];
3388
- dest[destPos] = s1 | 0xff000000;
3389
- dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000;
3390
- dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000;
3391
- dest[destPos + 3] = s3 >>> 8 | 0xff000000;
3389
+ const s1 = src32[i],
3390
+ s2 = src32[i + 1],
3391
+ s3 = src32[i + 2];
3392
+ dest[destPos] = s1 | alphaMask;
3393
+ dest[destPos + 1] = s1 >>> 24 | s2 << 8 | alphaMask;
3394
+ dest[destPos + 2] = s2 >>> 16 | s3 << 16 | alphaMask;
3395
+ dest[destPos + 3] = s3 >>> 8 | alphaMask;
3392
3396
  }
3393
3397
  for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {
3394
- dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000;
3398
+ dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | alphaMask;
3395
3399
  }
3396
3400
  } else {
3397
3401
  for (; i < len32 - 2; i += 3, destPos += 4) {
3398
- const s1 = src32[i];
3399
- const s2 = src32[i + 1];
3400
- const s3 = src32[i + 2];
3401
- dest[destPos] = s1 | 0xff;
3402
- dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff;
3403
- dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff;
3404
- dest[destPos + 3] = s3 << 8 | 0xff;
3402
+ const s1 = src32[i],
3403
+ s2 = src32[i + 1],
3404
+ s3 = src32[i + 2];
3405
+ dest[destPos] = s1 | alphaMask;
3406
+ dest[destPos + 1] = s1 << 24 | s2 >>> 8 | alphaMask;
3407
+ dest[destPos + 2] = s2 << 16 | s3 >>> 16 | alphaMask;
3408
+ dest[destPos + 3] = s3 << 8 | alphaMask;
3405
3409
  }
3406
3410
  for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {
3407
- dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff;
3411
+ dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | alphaMask;
3408
3412
  }
3409
3413
  }
3410
3414
  return {
@@ -3429,7 +3433,7 @@ function grayToRGBA(src, dest) {
3429
3433
 
3430
3434
 
3431
3435
  const MIN_IMAGE_DIM = 2048;
3432
- const MAX_IMAGE_DIM = 65537;
3436
+ const MAX_IMAGE_DIM = 32768;
3433
3437
  const MAX_ERROR = 128;
3434
3438
  class ImageResizer {
3435
3439
  static #goodSquareLength = MIN_IMAGE_DIM;
@@ -3858,7 +3862,7 @@ async function JBig2(moduleArg = {}) {
3858
3862
  }
3859
3863
  function initRuntime() {
3860
3864
  runtimeInitialized = true;
3861
- wasmExports["h"]();
3865
+ wasmExports["j"]();
3862
3866
  }
3863
3867
  function postRun() {
3864
3868
  if (Module["postRun"]) {
@@ -3958,10 +3962,11 @@ async function JBig2(moduleArg = {}) {
3958
3962
  return;
3959
3963
  }
3960
3964
  try {
3961
- func();
3962
- maybeExit();
3965
+ return func();
3963
3966
  } catch (e) {
3964
3967
  handleException(e);
3968
+ } finally {
3969
+ maybeExit();
3965
3970
  }
3966
3971
  };
3967
3972
  var _emscripten_get_now = () => performance.now();
@@ -3981,6 +3986,9 @@ async function JBig2(moduleArg = {}) {
3981
3986
  };
3982
3987
  return 0;
3983
3988
  };
3989
+ function _createImageData(size) {
3990
+ Module.imageData = new Uint8Array(size);
3991
+ }
3984
3992
  var getHeapMax = () => 2147483648;
3985
3993
  var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
3986
3994
  var growMemory = size => {
@@ -4021,6 +4029,9 @@ async function JBig2(moduleArg = {}) {
4021
4029
  imageData.set(HEAPU8.subarray(srcStart, srcStart + pitch8), destStart);
4022
4030
  }
4023
4031
  }
4032
+ function _setLineData(line_ptr, pitch8, offset) {
4033
+ Module.imageData.set(HEAPU8.subarray(line_ptr, line_ptr + pitch8), offset);
4034
+ }
4024
4035
  var writeArrayToMemory = (array, buffer) => {
4025
4036
  HEAP8.set(array, buffer);
4026
4037
  };
@@ -4037,22 +4048,25 @@ async function JBig2(moduleArg = {}) {
4037
4048
  }
4038
4049
  }
4039
4050
  Module["writeArrayToMemory"] = writeArrayToMemory;
4040
- var _malloc, _free, _jbig2_decode, __emscripten_timeout, memory, __indirect_function_table, wasmMemory;
4051
+ var _malloc, _free, _jbig2_decode, _ccitt_decode, __emscripten_timeout, memory, __indirect_function_table, wasmMemory;
4041
4052
  function assignWasmExports(wasmExports) {
4042
- _malloc = Module["_malloc"] = wasmExports["i"];
4043
- _free = Module["_free"] = wasmExports["j"];
4044
- _jbig2_decode = Module["_jbig2_decode"] = wasmExports["k"];
4045
- __emscripten_timeout = wasmExports["l"];
4046
- memory = wasmMemory = wasmExports["g"];
4053
+ _malloc = Module["_malloc"] = wasmExports["k"];
4054
+ _free = Module["_free"] = wasmExports["l"];
4055
+ _jbig2_decode = Module["_jbig2_decode"] = wasmExports["m"];
4056
+ _ccitt_decode = Module["_ccitt_decode"] = wasmExports["n"];
4057
+ __emscripten_timeout = wasmExports["o"];
4058
+ memory = wasmMemory = wasmExports["i"];
4047
4059
  __indirect_function_table = wasmExports["__indirect_function_table"];
4048
4060
  }
4049
4061
  var wasmImports = {
4050
4062
  e: __abort_js,
4051
4063
  b: __emscripten_runtime_keepalive_clear,
4052
4064
  c: __setitimer_js,
4065
+ g: _createImageData,
4053
4066
  d: _emscripten_resize_heap,
4054
4067
  a: _proc_exit,
4055
- f: _setImageData
4068
+ h: _setImageData,
4069
+ f: _setLineData
4056
4070
  };
4057
4071
  function run() {
4058
4072
  preRun();
@@ -4088,7 +4102,7 @@ async function JBig2(moduleArg = {}) {
4088
4102
  return moduleRtn;
4089
4103
  }
4090
4104
  /* harmony default export */ const jbig2 = (JBig2);
4091
- ;// ./src/core/jbig2_wasm.js
4105
+ ;// ./src/core/jbig2_ccittFax_wasm.js
4092
4106
 
4093
4107
 
4094
4108
 
@@ -4097,7 +4111,7 @@ class JBig2Error extends BaseException {
4097
4111
  super(msg, "Jbig2Error");
4098
4112
  }
4099
4113
  }
4100
- class JBig2WasmImage {
4114
+ class JBig2CCITTFaxWasmImage {
4101
4115
  static #buffer = null;
4102
4116
  static #handler = null;
4103
4117
  static #modulePromise = null;
@@ -4139,7 +4153,7 @@ class JBig2WasmImage {
4139
4153
  this.#handler = null;
4140
4154
  }
4141
4155
  }
4142
- static async decode(bytes, width, height, globals) {
4156
+ static async decode(bytes, width, height, globals, CCITTOptions) {
4143
4157
  if (!this.#modulePromise) {
4144
4158
  const {
4145
4159
  promise,
@@ -4165,12 +4179,16 @@ class JBig2WasmImage {
4165
4179
  const size = bytes.length;
4166
4180
  ptr = module._malloc(size);
4167
4181
  module.writeArrayToMemory(bytes, ptr);
4168
- const globalsSize = globals ? globals.length : 0;
4169
- if (globalsSize > 0) {
4170
- globalsPtr = module._malloc(globalsSize);
4171
- module.writeArrayToMemory(globals, globalsPtr);
4182
+ if (CCITTOptions) {
4183
+ module._ccitt_decode(ptr, size, width, height, CCITTOptions.K, CCITTOptions.EndOfLine ? 1 : 0, CCITTOptions.EncodedByteAlign ? 1 : 0, CCITTOptions.BlackIs1 ? 1 : 0, CCITTOptions.Columns, CCITTOptions.Rows);
4184
+ } else {
4185
+ const globalsSize = globals ? globals.length : 0;
4186
+ if (globalsSize > 0) {
4187
+ globalsPtr = module._malloc(globalsSize);
4188
+ module.writeArrayToMemory(globals, globalsPtr);
4189
+ }
4190
+ module._jbig2_decode(ptr, size, width, height, globalsPtr, globalsSize);
4172
4191
  }
4173
- module._jbig2_decode(ptr, size, width, height, globalsPtr, globalsSize);
4174
4192
  if (!module.imageData) {
4175
4193
  throw new JBig2Error("Unknown error");
4176
4194
  }
@@ -4266,12 +4284,49 @@ class DecodeStream extends BaseStream {
4266
4284
  async getImageData(length, decoderOptions) {
4267
4285
  if (!this.canAsyncDecodeImageFromBuffer) {
4268
4286
  if (this.isAsyncDecoder) {
4269
- return this.decodeImage(null, decoderOptions);
4287
+ return this.decodeImage(null, length, decoderOptions);
4270
4288
  }
4271
4289
  return this.getBytes(length, decoderOptions);
4272
4290
  }
4273
4291
  const data = await this.stream.asyncGetBytes();
4274
- return this.decodeImage(data, decoderOptions);
4292
+ return this.decodeImage(data, length, decoderOptions);
4293
+ }
4294
+ async asyncGetBytesFromDecompressionStream(name) {
4295
+ this.stream.reset();
4296
+ const bytes = this.stream.isAsync ? await this.stream.asyncGetBytes() : this.stream.getBytes();
4297
+ try {
4298
+ const {
4299
+ readable,
4300
+ writable
4301
+ } = new DecompressionStream(name);
4302
+ const writer = writable.getWriter();
4303
+ await writer.ready;
4304
+ writer.write(bytes).then(async () => {
4305
+ await writer.ready;
4306
+ await writer.close();
4307
+ }).catch(() => {});
4308
+ const chunks = [];
4309
+ let totalLength = 0;
4310
+ for await (const chunk of readable) {
4311
+ chunks.push(chunk);
4312
+ totalLength += chunk.byteLength;
4313
+ }
4314
+ const data = new Uint8Array(totalLength);
4315
+ let offset = 0;
4316
+ for (const chunk of chunks) {
4317
+ data.set(chunk, offset);
4318
+ offset += chunk.byteLength;
4319
+ }
4320
+ return {
4321
+ decompressed: data,
4322
+ compressed: bytes
4323
+ };
4324
+ } catch {
4325
+ return {
4326
+ decompressed: null,
4327
+ compressed: bytes
4328
+ };
4329
+ }
4275
4330
  }
4276
4331
  reset() {
4277
4332
  this.pos = 0;
@@ -7489,6 +7544,1982 @@ class AsciiHexStream extends DecodeStream {
7489
7544
  }
7490
7545
  }
7491
7546
 
7547
+ ;// ./external/brotli/decode.js
7548
+ let Options;
7549
+ let makeBrotliDecode = () => {
7550
+ const MAX_HUFFMAN_TABLE_SIZE = Int32Array.from([256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822, 854, 886, 920, 952, 984, 1016, 1048, 1080]);
7551
+ const CODE_LENGTH_CODE_ORDER = Int32Array.from([1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15]);
7552
+ const DISTANCE_SHORT_CODE_INDEX_OFFSET = Int32Array.from([0, 3, 2, 1, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3]);
7553
+ const DISTANCE_SHORT_CODE_VALUE_OFFSET = Int32Array.from([0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3]);
7554
+ const FIXED_TABLE = Int32Array.from([0x020000, 0x020004, 0x020003, 0x030002, 0x020000, 0x020004, 0x020003, 0x040001, 0x020000, 0x020004, 0x020003, 0x030002, 0x020000, 0x020004, 0x020003, 0x040005]);
7555
+ const BLOCK_LENGTH_OFFSET = Int32Array.from([1, 5, 9, 13, 17, 25, 33, 41, 49, 65, 81, 97, 113, 145, 177, 209, 241, 305, 369, 497, 753, 1265, 2289, 4337, 8433, 16625]);
7556
+ const BLOCK_LENGTH_N_BITS = Int32Array.from([2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 24]);
7557
+ const INSERT_LENGTH_N_BITS = Int16Array.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0C, 0x0E, 0x18]);
7558
+ const COPY_LENGTH_N_BITS = Int16Array.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x18]);
7559
+ const CMD_LOOKUP = new Int16Array(2816);
7560
+ unpackCommandLookupTable(CMD_LOOKUP);
7561
+ function log2floor(i) {
7562
+ let result = -1;
7563
+ let step = 16;
7564
+ let v = i;
7565
+ while (step > 0) {
7566
+ let next = v >> step;
7567
+ if (next !== 0) {
7568
+ result += step;
7569
+ v = next;
7570
+ }
7571
+ step = step >> 1;
7572
+ }
7573
+ return result + v;
7574
+ }
7575
+ function calculateDistanceAlphabetSize(npostfix, ndirect, maxndistbits) {
7576
+ return 16 + ndirect + 2 * (maxndistbits << npostfix);
7577
+ }
7578
+ function calculateDistanceAlphabetLimit(s, maxDistance, npostfix, ndirect) {
7579
+ if (maxDistance < ndirect + (2 << npostfix)) {
7580
+ return makeError(s, -23);
7581
+ }
7582
+ const offset = (maxDistance - ndirect >> npostfix) + 4;
7583
+ const ndistbits = log2floor(offset) - 1;
7584
+ const group = ndistbits - 1 << 1 | offset >> ndistbits & 1;
7585
+ return (group - 1 << npostfix) + (1 << npostfix) + ndirect + 16;
7586
+ }
7587
+ function unpackCommandLookupTable(cmdLookup) {
7588
+ const insertLengthOffsets = new Int32Array(24);
7589
+ const copyLengthOffsets = new Int32Array(24);
7590
+ copyLengthOffsets[0] = 2;
7591
+ for (let i = 0; i < 23; ++i) {
7592
+ insertLengthOffsets[i + 1] = insertLengthOffsets[i] + (1 << INSERT_LENGTH_N_BITS[i]);
7593
+ copyLengthOffsets[i + 1] = copyLengthOffsets[i] + (1 << COPY_LENGTH_N_BITS[i]);
7594
+ }
7595
+ for (let cmdCode = 0; cmdCode < 704; ++cmdCode) {
7596
+ let rangeIdx = cmdCode >> 6;
7597
+ let distanceContextOffset = -4;
7598
+ if (rangeIdx >= 2) {
7599
+ rangeIdx -= 2;
7600
+ distanceContextOffset = 0;
7601
+ }
7602
+ const insertCode = (0x29850 >> rangeIdx * 2 & 0x3) << 3 | cmdCode >> 3 & 7;
7603
+ const copyCode = (0x26244 >> rangeIdx * 2 & 0x3) << 3 | cmdCode & 7;
7604
+ const copyLengthOffset = copyLengthOffsets[copyCode];
7605
+ const distanceContext = distanceContextOffset + Math.min(copyLengthOffset, 5) - 2;
7606
+ const index = cmdCode * 4;
7607
+ cmdLookup[index] = INSERT_LENGTH_N_BITS[insertCode] | COPY_LENGTH_N_BITS[copyCode] << 8;
7608
+ cmdLookup[index + 1] = insertLengthOffsets[insertCode];
7609
+ cmdLookup[index + 2] = copyLengthOffsets[copyCode];
7610
+ cmdLookup[index + 3] = distanceContext;
7611
+ }
7612
+ }
7613
+ function decodeWindowBits(s) {
7614
+ const largeWindowEnabled = s.isLargeWindow;
7615
+ s.isLargeWindow = 0;
7616
+ if (s.bitOffset >= 16) {
7617
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7618
+ s.bitOffset -= 16;
7619
+ }
7620
+ if (readFewBits(s, 1) === 0) {
7621
+ return 16;
7622
+ }
7623
+ let n = readFewBits(s, 3);
7624
+ if (n !== 0) {
7625
+ return 17 + n;
7626
+ }
7627
+ n = readFewBits(s, 3);
7628
+ if (n !== 0) {
7629
+ if (n === 1) {
7630
+ if (largeWindowEnabled === 0) {
7631
+ return -1;
7632
+ }
7633
+ s.isLargeWindow = 1;
7634
+ if (readFewBits(s, 1) === 1) {
7635
+ return -1;
7636
+ }
7637
+ n = readFewBits(s, 6);
7638
+ if (n < 10 || n > 30) {
7639
+ return -1;
7640
+ }
7641
+ return n;
7642
+ }
7643
+ return 8 + n;
7644
+ }
7645
+ return 17;
7646
+ }
7647
+ function attachDictionaryChunk(s, data) {
7648
+ if (s.runningState !== 1) {
7649
+ return makeError(s, -24);
7650
+ }
7651
+ if (s.cdNumChunks === 0) {
7652
+ s.cdChunks = new Array(16);
7653
+ s.cdChunkOffsets = new Int32Array(16);
7654
+ s.cdBlockBits = -1;
7655
+ }
7656
+ if (s.cdNumChunks === 15) {
7657
+ return makeError(s, -27);
7658
+ }
7659
+ s.cdChunks[s.cdNumChunks] = data;
7660
+ s.cdNumChunks++;
7661
+ s.cdTotalSize += data.length;
7662
+ s.cdChunkOffsets[s.cdNumChunks] = s.cdTotalSize;
7663
+ return 0;
7664
+ }
7665
+ function initState(s) {
7666
+ if (s.runningState !== 0) {
7667
+ return makeError(s, -26);
7668
+ }
7669
+ s.blockTrees = new Int32Array(3091);
7670
+ s.blockTrees[0] = 7;
7671
+ s.distRbIdx = 3;
7672
+ let result = calculateDistanceAlphabetLimit(s, 0x7FFFFFFC, 3, 120);
7673
+ if (result < 0) {
7674
+ return result;
7675
+ }
7676
+ const maxDistanceAlphabetLimit = result;
7677
+ s.distExtraBits = new Int8Array(maxDistanceAlphabetLimit);
7678
+ s.distOffset = new Int32Array(maxDistanceAlphabetLimit);
7679
+ result = initBitReader(s);
7680
+ if (result < 0) {
7681
+ return result;
7682
+ }
7683
+ s.runningState = 1;
7684
+ return 0;
7685
+ }
7686
+ function close(s) {
7687
+ if (s.runningState === 0) {
7688
+ return makeError(s, -25);
7689
+ }
7690
+ if (s.runningState > 0) {
7691
+ s.runningState = 11;
7692
+ }
7693
+ return 0;
7694
+ }
7695
+ function decodeVarLenUnsignedByte(s) {
7696
+ if (s.bitOffset >= 16) {
7697
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7698
+ s.bitOffset -= 16;
7699
+ }
7700
+ if (readFewBits(s, 1) !== 0) {
7701
+ const n = readFewBits(s, 3);
7702
+ if (n === 0) {
7703
+ return 1;
7704
+ }
7705
+ return readFewBits(s, n) + (1 << n);
7706
+ }
7707
+ return 0;
7708
+ }
7709
+ function decodeMetaBlockLength(s) {
7710
+ if (s.bitOffset >= 16) {
7711
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7712
+ s.bitOffset -= 16;
7713
+ }
7714
+ s.inputEnd = readFewBits(s, 1);
7715
+ s.metaBlockLength = 0;
7716
+ s.isUncompressed = 0;
7717
+ s.isMetadata = 0;
7718
+ if (s.inputEnd !== 0 && readFewBits(s, 1) !== 0) {
7719
+ return 0;
7720
+ }
7721
+ const sizeNibbles = readFewBits(s, 2) + 4;
7722
+ if (sizeNibbles === 7) {
7723
+ s.isMetadata = 1;
7724
+ if (readFewBits(s, 1) !== 0) {
7725
+ return makeError(s, -6);
7726
+ }
7727
+ const sizeBytes = readFewBits(s, 2);
7728
+ if (sizeBytes === 0) {
7729
+ return 0;
7730
+ }
7731
+ for (let i = 0; i < sizeBytes; ++i) {
7732
+ if (s.bitOffset >= 16) {
7733
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7734
+ s.bitOffset -= 16;
7735
+ }
7736
+ const bits = readFewBits(s, 8);
7737
+ if (bits === 0 && i + 1 === sizeBytes && sizeBytes > 1) {
7738
+ return makeError(s, -8);
7739
+ }
7740
+ s.metaBlockLength += bits << i * 8;
7741
+ }
7742
+ } else {
7743
+ for (let i = 0; i < sizeNibbles; ++i) {
7744
+ if (s.bitOffset >= 16) {
7745
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7746
+ s.bitOffset -= 16;
7747
+ }
7748
+ const bits = readFewBits(s, 4);
7749
+ if (bits === 0 && i + 1 === sizeNibbles && sizeNibbles > 4) {
7750
+ return makeError(s, -8);
7751
+ }
7752
+ s.metaBlockLength += bits << i * 4;
7753
+ }
7754
+ }
7755
+ s.metaBlockLength++;
7756
+ if (s.inputEnd === 0) {
7757
+ s.isUncompressed = readFewBits(s, 1);
7758
+ }
7759
+ return 0;
7760
+ }
7761
+ function readSymbol(tableGroup, tableIdx, s) {
7762
+ let offset = tableGroup[tableIdx];
7763
+ const v = s.accumulator32 >>> s.bitOffset;
7764
+ offset += v & 0xFF;
7765
+ const bits = tableGroup[offset] >> 16;
7766
+ const sym = tableGroup[offset] & 0xFFFF;
7767
+ if (bits <= 8) {
7768
+ s.bitOffset += bits;
7769
+ return sym;
7770
+ }
7771
+ offset += sym;
7772
+ const mask = (1 << bits) - 1;
7773
+ offset += (v & mask) >>> 8;
7774
+ s.bitOffset += (tableGroup[offset] >> 16) + 8;
7775
+ return tableGroup[offset] & 0xFFFF;
7776
+ }
7777
+ function readBlockLength(tableGroup, tableIdx, s) {
7778
+ if (s.bitOffset >= 16) {
7779
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7780
+ s.bitOffset -= 16;
7781
+ }
7782
+ const code = readSymbol(tableGroup, tableIdx, s);
7783
+ const n = BLOCK_LENGTH_N_BITS[code];
7784
+ if (s.bitOffset >= 16) {
7785
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7786
+ s.bitOffset -= 16;
7787
+ }
7788
+ return BLOCK_LENGTH_OFFSET[code] + (n <= 16 ? readFewBits(s, n) : readManyBits(s, n));
7789
+ }
7790
+ function moveToFront(v, index) {
7791
+ let i = index;
7792
+ const value = v[i];
7793
+ while (i > 0) {
7794
+ v[i] = v[i - 1];
7795
+ i--;
7796
+ }
7797
+ v[0] = value;
7798
+ }
7799
+ function inverseMoveToFrontTransform(v, vLen) {
7800
+ const mtf = new Int32Array(256);
7801
+ for (let i = 0; i < 256; ++i) {
7802
+ mtf[i] = i;
7803
+ }
7804
+ for (let i = 0; i < vLen; ++i) {
7805
+ const index = v[i] & 0xFF;
7806
+ v[i] = mtf[index];
7807
+ if (index !== 0) {
7808
+ moveToFront(mtf, index);
7809
+ }
7810
+ }
7811
+ }
7812
+ function readHuffmanCodeLengths(codeLengthCodeLengths, numSymbols, codeLengths, s) {
7813
+ let symbol = 0;
7814
+ let prevCodeLen = 8;
7815
+ let repeat = 0;
7816
+ let repeatCodeLen = 0;
7817
+ let space = 32768;
7818
+ const table = new Int32Array(33);
7819
+ const tableIdx = table.length - 1;
7820
+ buildHuffmanTable(table, tableIdx, 5, codeLengthCodeLengths, 18);
7821
+ while (symbol < numSymbols && space > 0) {
7822
+ if (s.halfOffset > 2030) {
7823
+ const result = readMoreInput(s);
7824
+ if (result < 0) {
7825
+ return result;
7826
+ }
7827
+ }
7828
+ if (s.bitOffset >= 16) {
7829
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7830
+ s.bitOffset -= 16;
7831
+ }
7832
+ const p = s.accumulator32 >>> s.bitOffset & 31;
7833
+ s.bitOffset += table[p] >> 16;
7834
+ const codeLen = table[p] & 0xFFFF;
7835
+ if (codeLen < 16) {
7836
+ repeat = 0;
7837
+ codeLengths[symbol++] = codeLen;
7838
+ if (codeLen !== 0) {
7839
+ prevCodeLen = codeLen;
7840
+ space -= 32768 >> codeLen;
7841
+ }
7842
+ } else {
7843
+ const extraBits = codeLen - 14;
7844
+ let newLen = 0;
7845
+ if (codeLen === 16) {
7846
+ newLen = prevCodeLen;
7847
+ }
7848
+ if (repeatCodeLen !== newLen) {
7849
+ repeat = 0;
7850
+ repeatCodeLen = newLen;
7851
+ }
7852
+ const oldRepeat = repeat;
7853
+ if (repeat > 0) {
7854
+ repeat -= 2;
7855
+ repeat = repeat << extraBits;
7856
+ }
7857
+ if (s.bitOffset >= 16) {
7858
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7859
+ s.bitOffset -= 16;
7860
+ }
7861
+ repeat += readFewBits(s, extraBits) + 3;
7862
+ const repeatDelta = repeat - oldRepeat;
7863
+ if (symbol + repeatDelta > numSymbols) {
7864
+ return makeError(s, -2);
7865
+ }
7866
+ for (let i = 0; i < repeatDelta; ++i) {
7867
+ codeLengths[symbol++] = repeatCodeLen;
7868
+ }
7869
+ if (repeatCodeLen !== 0) {
7870
+ space -= repeatDelta << 15 - repeatCodeLen;
7871
+ }
7872
+ }
7873
+ }
7874
+ if (space !== 0) {
7875
+ return makeError(s, -18);
7876
+ }
7877
+ codeLengths.fill(0, symbol, numSymbols);
7878
+ return 0;
7879
+ }
7880
+ function checkDupes(s, symbols, length) {
7881
+ for (let i = 0; i < length - 1; ++i) {
7882
+ for (let j = i + 1; j < length; ++j) {
7883
+ if (symbols[i] === symbols[j]) {
7884
+ return makeError(s, -7);
7885
+ }
7886
+ }
7887
+ }
7888
+ return 0;
7889
+ }
7890
+ function readSimpleHuffmanCode(alphabetSizeMax, alphabetSizeLimit, tableGroup, tableIdx, s) {
7891
+ const codeLengths = new Int32Array(alphabetSizeLimit);
7892
+ const symbols = new Int32Array(4);
7893
+ const maxBits = 1 + log2floor(alphabetSizeMax - 1);
7894
+ const numSymbols = readFewBits(s, 2) + 1;
7895
+ for (let i = 0; i < numSymbols; ++i) {
7896
+ if (s.bitOffset >= 16) {
7897
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7898
+ s.bitOffset -= 16;
7899
+ }
7900
+ const symbol = readFewBits(s, maxBits);
7901
+ if (symbol >= alphabetSizeLimit) {
7902
+ return makeError(s, -15);
7903
+ }
7904
+ symbols[i] = symbol;
7905
+ }
7906
+ const result = checkDupes(s, symbols, numSymbols);
7907
+ if (result < 0) {
7908
+ return result;
7909
+ }
7910
+ let histogramId = numSymbols;
7911
+ if (numSymbols === 4) {
7912
+ histogramId += readFewBits(s, 1);
7913
+ }
7914
+ switch (histogramId) {
7915
+ case 1:
7916
+ codeLengths[symbols[0]] = 1;
7917
+ break;
7918
+ case 2:
7919
+ codeLengths[symbols[0]] = 1;
7920
+ codeLengths[symbols[1]] = 1;
7921
+ break;
7922
+ case 3:
7923
+ codeLengths[symbols[0]] = 1;
7924
+ codeLengths[symbols[1]] = 2;
7925
+ codeLengths[symbols[2]] = 2;
7926
+ break;
7927
+ case 4:
7928
+ codeLengths[symbols[0]] = 2;
7929
+ codeLengths[symbols[1]] = 2;
7930
+ codeLengths[symbols[2]] = 2;
7931
+ codeLengths[symbols[3]] = 2;
7932
+ break;
7933
+ case 5:
7934
+ codeLengths[symbols[0]] = 1;
7935
+ codeLengths[symbols[1]] = 2;
7936
+ codeLengths[symbols[2]] = 3;
7937
+ codeLengths[symbols[3]] = 3;
7938
+ break;
7939
+ default:
7940
+ break;
7941
+ }
7942
+ return buildHuffmanTable(tableGroup, tableIdx, 8, codeLengths, alphabetSizeLimit);
7943
+ }
7944
+ function readComplexHuffmanCode(alphabetSizeLimit, skip, tableGroup, tableIdx, s) {
7945
+ const codeLengths = new Int32Array(alphabetSizeLimit);
7946
+ const codeLengthCodeLengths = new Int32Array(18);
7947
+ let space = 32;
7948
+ let numCodes = 0;
7949
+ for (let i = skip; i < 18; ++i) {
7950
+ const codeLenIdx = CODE_LENGTH_CODE_ORDER[i];
7951
+ if (s.bitOffset >= 16) {
7952
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7953
+ s.bitOffset -= 16;
7954
+ }
7955
+ const p = s.accumulator32 >>> s.bitOffset & 15;
7956
+ s.bitOffset += FIXED_TABLE[p] >> 16;
7957
+ const v = FIXED_TABLE[p] & 0xFFFF;
7958
+ codeLengthCodeLengths[codeLenIdx] = v;
7959
+ if (v !== 0) {
7960
+ space -= 32 >> v;
7961
+ numCodes++;
7962
+ if (space <= 0) {
7963
+ break;
7964
+ }
7965
+ }
7966
+ }
7967
+ if (space !== 0 && numCodes !== 1) {
7968
+ return makeError(s, -4);
7969
+ }
7970
+ const result = readHuffmanCodeLengths(codeLengthCodeLengths, alphabetSizeLimit, codeLengths, s);
7971
+ if (result < 0) {
7972
+ return result;
7973
+ }
7974
+ return buildHuffmanTable(tableGroup, tableIdx, 8, codeLengths, alphabetSizeLimit);
7975
+ }
7976
+ function readHuffmanCode(alphabetSizeMax, alphabetSizeLimit, tableGroup, tableIdx, s) {
7977
+ if (s.halfOffset > 2030) {
7978
+ const result = readMoreInput(s);
7979
+ if (result < 0) {
7980
+ return result;
7981
+ }
7982
+ }
7983
+ if (s.bitOffset >= 16) {
7984
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
7985
+ s.bitOffset -= 16;
7986
+ }
7987
+ const simpleCodeOrSkip = readFewBits(s, 2);
7988
+ if (simpleCodeOrSkip === 1) {
7989
+ return readSimpleHuffmanCode(alphabetSizeMax, alphabetSizeLimit, tableGroup, tableIdx, s);
7990
+ }
7991
+ return readComplexHuffmanCode(alphabetSizeLimit, simpleCodeOrSkip, tableGroup, tableIdx, s);
7992
+ }
7993
+ function decodeContextMap(contextMapSize, contextMap, s) {
7994
+ let result;
7995
+ if (s.halfOffset > 2030) {
7996
+ result = readMoreInput(s);
7997
+ if (result < 0) {
7998
+ return result;
7999
+ }
8000
+ }
8001
+ const numTrees = decodeVarLenUnsignedByte(s) + 1;
8002
+ if (numTrees === 1) {
8003
+ contextMap.fill(0, 0, contextMapSize);
8004
+ return numTrees;
8005
+ }
8006
+ if (s.bitOffset >= 16) {
8007
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8008
+ s.bitOffset -= 16;
8009
+ }
8010
+ const useRleForZeros = readFewBits(s, 1);
8011
+ let maxRunLengthPrefix = 0;
8012
+ if (useRleForZeros !== 0) {
8013
+ maxRunLengthPrefix = readFewBits(s, 4) + 1;
8014
+ }
8015
+ const alphabetSize = numTrees + maxRunLengthPrefix;
8016
+ const tableSize = MAX_HUFFMAN_TABLE_SIZE[alphabetSize + 31 >> 5];
8017
+ const table = new Int32Array(tableSize + 1);
8018
+ const tableIdx = table.length - 1;
8019
+ result = readHuffmanCode(alphabetSize, alphabetSize, table, tableIdx, s);
8020
+ if (result < 0) {
8021
+ return result;
8022
+ }
8023
+ let i = 0;
8024
+ while (i < contextMapSize) {
8025
+ if (s.halfOffset > 2030) {
8026
+ result = readMoreInput(s);
8027
+ if (result < 0) {
8028
+ return result;
8029
+ }
8030
+ }
8031
+ if (s.bitOffset >= 16) {
8032
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8033
+ s.bitOffset -= 16;
8034
+ }
8035
+ const code = readSymbol(table, tableIdx, s);
8036
+ if (code === 0) {
8037
+ contextMap[i] = 0;
8038
+ i++;
8039
+ } else if (code <= maxRunLengthPrefix) {
8040
+ if (s.bitOffset >= 16) {
8041
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8042
+ s.bitOffset -= 16;
8043
+ }
8044
+ let reps = (1 << code) + readFewBits(s, code);
8045
+ while (reps !== 0) {
8046
+ if (i >= contextMapSize) {
8047
+ return makeError(s, -3);
8048
+ }
8049
+ contextMap[i] = 0;
8050
+ i++;
8051
+ reps--;
8052
+ }
8053
+ } else {
8054
+ contextMap[i] = code - maxRunLengthPrefix;
8055
+ i++;
8056
+ }
8057
+ }
8058
+ if (s.bitOffset >= 16) {
8059
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8060
+ s.bitOffset -= 16;
8061
+ }
8062
+ if (readFewBits(s, 1) === 1) {
8063
+ inverseMoveToFrontTransform(contextMap, contextMapSize);
8064
+ }
8065
+ return numTrees;
8066
+ }
8067
+ function decodeBlockTypeAndLength(s, treeType, numBlockTypes) {
8068
+ const ringBuffers = s.rings;
8069
+ const offset = 4 + treeType * 2;
8070
+ if (s.bitOffset >= 16) {
8071
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8072
+ s.bitOffset -= 16;
8073
+ }
8074
+ let blockType = readSymbol(s.blockTrees, 2 * treeType, s);
8075
+ const result = readBlockLength(s.blockTrees, 2 * treeType + 1, s);
8076
+ if (blockType === 1) {
8077
+ blockType = ringBuffers[offset + 1] + 1;
8078
+ } else if (blockType === 0) {
8079
+ blockType = ringBuffers[offset];
8080
+ } else {
8081
+ blockType -= 2;
8082
+ }
8083
+ if (blockType >= numBlockTypes) {
8084
+ blockType -= numBlockTypes;
8085
+ }
8086
+ ringBuffers[offset] = ringBuffers[offset + 1];
8087
+ ringBuffers[offset + 1] = blockType;
8088
+ return result;
8089
+ }
8090
+ function decodeLiteralBlockSwitch(s) {
8091
+ s.literalBlockLength = decodeBlockTypeAndLength(s, 0, s.numLiteralBlockTypes);
8092
+ const literalBlockType = s.rings[5];
8093
+ s.contextMapSlice = literalBlockType << 6;
8094
+ s.literalTreeIdx = s.contextMap[s.contextMapSlice] & 0xFF;
8095
+ const contextMode = s.contextModes[literalBlockType];
8096
+ s.contextLookupOffset1 = contextMode << 9;
8097
+ s.contextLookupOffset2 = s.contextLookupOffset1 + 256;
8098
+ }
8099
+ function decodeCommandBlockSwitch(s) {
8100
+ s.commandBlockLength = decodeBlockTypeAndLength(s, 1, s.numCommandBlockTypes);
8101
+ s.commandTreeIdx = s.rings[7];
8102
+ }
8103
+ function decodeDistanceBlockSwitch(s) {
8104
+ s.distanceBlockLength = decodeBlockTypeAndLength(s, 2, s.numDistanceBlockTypes);
8105
+ s.distContextMapSlice = s.rings[9] << 2;
8106
+ }
8107
+ function maybeReallocateRingBuffer(s) {
8108
+ let newSize = s.maxRingBufferSize;
8109
+ if (newSize > s.expectedTotalSize) {
8110
+ const minimalNewSize = s.expectedTotalSize;
8111
+ while (newSize >> 1 > minimalNewSize) {
8112
+ newSize = newSize >> 1;
8113
+ }
8114
+ if (s.inputEnd === 0 && newSize < 16384 && s.maxRingBufferSize >= 16384) {
8115
+ newSize = 16384;
8116
+ }
8117
+ }
8118
+ if (newSize <= s.ringBufferSize) {
8119
+ return;
8120
+ }
8121
+ const ringBufferSizeWithSlack = newSize + 37;
8122
+ const newBuffer = new Int8Array(ringBufferSizeWithSlack);
8123
+ const oldBuffer = s.ringBuffer;
8124
+ if (oldBuffer.length !== 0) {
8125
+ newBuffer.set(oldBuffer.subarray(0, s.ringBufferSize), 0);
8126
+ }
8127
+ s.ringBuffer = newBuffer;
8128
+ s.ringBufferSize = newSize;
8129
+ }
8130
+ function readNextMetablockHeader(s) {
8131
+ if (s.inputEnd !== 0) {
8132
+ s.nextRunningState = 10;
8133
+ s.runningState = 12;
8134
+ return 0;
8135
+ }
8136
+ s.literalTreeGroup = new Int32Array(0);
8137
+ s.commandTreeGroup = new Int32Array(0);
8138
+ s.distanceTreeGroup = new Int32Array(0);
8139
+ let result;
8140
+ if (s.halfOffset > 2030) {
8141
+ result = readMoreInput(s);
8142
+ if (result < 0) {
8143
+ return result;
8144
+ }
8145
+ }
8146
+ result = decodeMetaBlockLength(s);
8147
+ if (result < 0) {
8148
+ return result;
8149
+ }
8150
+ if (s.metaBlockLength === 0 && s.isMetadata === 0) {
8151
+ return 0;
8152
+ }
8153
+ if (s.isUncompressed !== 0 || s.isMetadata !== 0) {
8154
+ result = jumpToByteBoundary(s);
8155
+ if (result < 0) {
8156
+ return result;
8157
+ }
8158
+ if (s.isMetadata === 0) {
8159
+ s.runningState = 6;
8160
+ } else {
8161
+ s.runningState = 5;
8162
+ }
8163
+ } else {
8164
+ s.runningState = 3;
8165
+ }
8166
+ if (s.isMetadata !== 0) {
8167
+ return 0;
8168
+ }
8169
+ s.expectedTotalSize += s.metaBlockLength;
8170
+ if (s.expectedTotalSize > 1 << 30) {
8171
+ s.expectedTotalSize = 1 << 30;
8172
+ }
8173
+ if (s.ringBufferSize < s.maxRingBufferSize) {
8174
+ maybeReallocateRingBuffer(s);
8175
+ }
8176
+ return 0;
8177
+ }
8178
+ function readMetablockPartition(s, treeType, numBlockTypes) {
8179
+ let offset = s.blockTrees[2 * treeType];
8180
+ if (numBlockTypes <= 1) {
8181
+ s.blockTrees[2 * treeType + 1] = offset;
8182
+ s.blockTrees[2 * treeType + 2] = offset;
8183
+ return 1 << 28;
8184
+ }
8185
+ const blockTypeAlphabetSize = numBlockTypes + 2;
8186
+ let result = readHuffmanCode(blockTypeAlphabetSize, blockTypeAlphabetSize, s.blockTrees, 2 * treeType, s);
8187
+ if (result < 0) {
8188
+ return result;
8189
+ }
8190
+ offset += result;
8191
+ s.blockTrees[2 * treeType + 1] = offset;
8192
+ const blockLengthAlphabetSize = 26;
8193
+ result = readHuffmanCode(blockLengthAlphabetSize, blockLengthAlphabetSize, s.blockTrees, 2 * treeType + 1, s);
8194
+ if (result < 0) {
8195
+ return result;
8196
+ }
8197
+ offset += result;
8198
+ s.blockTrees[2 * treeType + 2] = offset;
8199
+ return readBlockLength(s.blockTrees, 2 * treeType + 1, s);
8200
+ }
8201
+ function calculateDistanceLut(s, alphabetSizeLimit) {
8202
+ const distExtraBits = s.distExtraBits;
8203
+ const distOffset = s.distOffset;
8204
+ const npostfix = s.distancePostfixBits;
8205
+ const ndirect = s.numDirectDistanceCodes;
8206
+ const postfix = 1 << npostfix;
8207
+ let bits = 1;
8208
+ let half = 0;
8209
+ let i = 16;
8210
+ for (let j = 0; j < ndirect; ++j) {
8211
+ distExtraBits[i] = 0;
8212
+ distOffset[i] = j + 1;
8213
+ ++i;
8214
+ }
8215
+ while (i < alphabetSizeLimit) {
8216
+ const base = ndirect + ((2 + half << bits) - 4 << npostfix) + 1;
8217
+ for (let j = 0; j < postfix; ++j) {
8218
+ distExtraBits[i] = bits;
8219
+ distOffset[i] = base + j;
8220
+ ++i;
8221
+ }
8222
+ bits = bits + half;
8223
+ half = half ^ 1;
8224
+ }
8225
+ }
8226
+ function readMetablockHuffmanCodesAndContextMaps(s) {
8227
+ s.numLiteralBlockTypes = decodeVarLenUnsignedByte(s) + 1;
8228
+ let result = readMetablockPartition(s, 0, s.numLiteralBlockTypes);
8229
+ if (result < 0) {
8230
+ return result;
8231
+ }
8232
+ s.literalBlockLength = result;
8233
+ s.numCommandBlockTypes = decodeVarLenUnsignedByte(s) + 1;
8234
+ result = readMetablockPartition(s, 1, s.numCommandBlockTypes);
8235
+ if (result < 0) {
8236
+ return result;
8237
+ }
8238
+ s.commandBlockLength = result;
8239
+ s.numDistanceBlockTypes = decodeVarLenUnsignedByte(s) + 1;
8240
+ result = readMetablockPartition(s, 2, s.numDistanceBlockTypes);
8241
+ if (result < 0) {
8242
+ return result;
8243
+ }
8244
+ s.distanceBlockLength = result;
8245
+ if (s.halfOffset > 2030) {
8246
+ result = readMoreInput(s);
8247
+ if (result < 0) {
8248
+ return result;
8249
+ }
8250
+ }
8251
+ if (s.bitOffset >= 16) {
8252
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8253
+ s.bitOffset -= 16;
8254
+ }
8255
+ s.distancePostfixBits = readFewBits(s, 2);
8256
+ s.numDirectDistanceCodes = readFewBits(s, 4) << s.distancePostfixBits;
8257
+ s.contextModes = new Int8Array(s.numLiteralBlockTypes);
8258
+ let i = 0;
8259
+ while (i < s.numLiteralBlockTypes) {
8260
+ const limit = Math.min(i + 96, s.numLiteralBlockTypes);
8261
+ while (i < limit) {
8262
+ if (s.bitOffset >= 16) {
8263
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8264
+ s.bitOffset -= 16;
8265
+ }
8266
+ s.contextModes[i] = readFewBits(s, 2);
8267
+ i++;
8268
+ }
8269
+ if (s.halfOffset > 2030) {
8270
+ result = readMoreInput(s);
8271
+ if (result < 0) {
8272
+ return result;
8273
+ }
8274
+ }
8275
+ }
8276
+ const contextMapLength = s.numLiteralBlockTypes << 6;
8277
+ s.contextMap = new Int8Array(contextMapLength);
8278
+ result = decodeContextMap(contextMapLength, s.contextMap, s);
8279
+ if (result < 0) {
8280
+ return result;
8281
+ }
8282
+ const numLiteralTrees = result;
8283
+ s.trivialLiteralContext = 1;
8284
+ for (let j = 0; j < contextMapLength; ++j) {
8285
+ if (s.contextMap[j] !== j >> 6) {
8286
+ s.trivialLiteralContext = 0;
8287
+ break;
8288
+ }
8289
+ }
8290
+ s.distContextMap = new Int8Array(s.numDistanceBlockTypes << 2);
8291
+ result = decodeContextMap(s.numDistanceBlockTypes << 2, s.distContextMap, s);
8292
+ if (result < 0) {
8293
+ return result;
8294
+ }
8295
+ const numDistTrees = result;
8296
+ s.literalTreeGroup = new Int32Array(huffmanTreeGroupAllocSize(256, numLiteralTrees));
8297
+ result = decodeHuffmanTreeGroup(256, 256, numLiteralTrees, s, s.literalTreeGroup);
8298
+ if (result < 0) {
8299
+ return result;
8300
+ }
8301
+ s.commandTreeGroup = new Int32Array(huffmanTreeGroupAllocSize(704, s.numCommandBlockTypes));
8302
+ result = decodeHuffmanTreeGroup(704, 704, s.numCommandBlockTypes, s, s.commandTreeGroup);
8303
+ if (result < 0) {
8304
+ return result;
8305
+ }
8306
+ let distanceAlphabetSizeMax = calculateDistanceAlphabetSize(s.distancePostfixBits, s.numDirectDistanceCodes, 24);
8307
+ let distanceAlphabetSizeLimit = distanceAlphabetSizeMax;
8308
+ if (s.isLargeWindow === 1) {
8309
+ distanceAlphabetSizeMax = calculateDistanceAlphabetSize(s.distancePostfixBits, s.numDirectDistanceCodes, 62);
8310
+ result = calculateDistanceAlphabetLimit(s, 0x7FFFFFFC, s.distancePostfixBits, s.numDirectDistanceCodes);
8311
+ if (result < 0) {
8312
+ return result;
8313
+ }
8314
+ distanceAlphabetSizeLimit = result;
8315
+ }
8316
+ s.distanceTreeGroup = new Int32Array(huffmanTreeGroupAllocSize(distanceAlphabetSizeLimit, numDistTrees));
8317
+ result = decodeHuffmanTreeGroup(distanceAlphabetSizeMax, distanceAlphabetSizeLimit, numDistTrees, s, s.distanceTreeGroup);
8318
+ if (result < 0) {
8319
+ return result;
8320
+ }
8321
+ calculateDistanceLut(s, distanceAlphabetSizeLimit);
8322
+ s.contextMapSlice = 0;
8323
+ s.distContextMapSlice = 0;
8324
+ s.contextLookupOffset1 = s.contextModes[0] * 512;
8325
+ s.contextLookupOffset2 = s.contextLookupOffset1 + 256;
8326
+ s.literalTreeIdx = 0;
8327
+ s.commandTreeIdx = 0;
8328
+ s.rings[4] = 1;
8329
+ s.rings[5] = 0;
8330
+ s.rings[6] = 1;
8331
+ s.rings[7] = 0;
8332
+ s.rings[8] = 1;
8333
+ s.rings[9] = 0;
8334
+ return 0;
8335
+ }
8336
+ function copyUncompressedData(s) {
8337
+ const ringBuffer = s.ringBuffer;
8338
+ let result;
8339
+ if (s.metaBlockLength <= 0) {
8340
+ result = reload(s);
8341
+ if (result < 0) {
8342
+ return result;
8343
+ }
8344
+ s.runningState = 2;
8345
+ return 0;
8346
+ }
8347
+ const chunkLength = Math.min(s.ringBufferSize - s.pos, s.metaBlockLength);
8348
+ result = copyRawBytes(s, ringBuffer, s.pos, chunkLength);
8349
+ if (result < 0) {
8350
+ return result;
8351
+ }
8352
+ s.metaBlockLength -= chunkLength;
8353
+ s.pos += chunkLength;
8354
+ if (s.pos === s.ringBufferSize) {
8355
+ s.nextRunningState = 6;
8356
+ s.runningState = 12;
8357
+ return 0;
8358
+ }
8359
+ result = reload(s);
8360
+ if (result < 0) {
8361
+ return result;
8362
+ }
8363
+ s.runningState = 2;
8364
+ return 0;
8365
+ }
8366
+ function writeRingBuffer(s) {
8367
+ const toWrite = Math.min(s.outputLength - s.outputUsed, s.ringBufferBytesReady - s.ringBufferBytesWritten);
8368
+ if (toWrite !== 0) {
8369
+ s.output.set(s.ringBuffer.subarray(s.ringBufferBytesWritten, s.ringBufferBytesWritten + toWrite), s.outputOffset + s.outputUsed);
8370
+ s.outputUsed += toWrite;
8371
+ s.ringBufferBytesWritten += toWrite;
8372
+ }
8373
+ if (s.outputUsed < s.outputLength) {
8374
+ return 0;
8375
+ }
8376
+ return 2;
8377
+ }
8378
+ function huffmanTreeGroupAllocSize(alphabetSizeLimit, n) {
8379
+ const maxTableSize = MAX_HUFFMAN_TABLE_SIZE[alphabetSizeLimit + 31 >> 5];
8380
+ return n + n * maxTableSize;
8381
+ }
8382
+ function decodeHuffmanTreeGroup(alphabetSizeMax, alphabetSizeLimit, n, s, group) {
8383
+ let next = n;
8384
+ for (let i = 0; i < n; ++i) {
8385
+ group[i] = next;
8386
+ const result = readHuffmanCode(alphabetSizeMax, alphabetSizeLimit, group, i, s);
8387
+ if (result < 0) {
8388
+ return result;
8389
+ }
8390
+ next += result;
8391
+ }
8392
+ return 0;
8393
+ }
8394
+ function calculateFence(s) {
8395
+ let result = s.ringBufferSize;
8396
+ if (s.isEager !== 0) {
8397
+ result = Math.min(result, s.ringBufferBytesWritten + s.outputLength - s.outputUsed);
8398
+ }
8399
+ return result;
8400
+ }
8401
+ function doUseDictionary(s, fence) {
8402
+ if (s.distance > 0x7FFFFFFC) {
8403
+ return makeError(s, -9);
8404
+ }
8405
+ const address = s.distance - s.maxDistance - 1 - s.cdTotalSize;
8406
+ if (address < 0) {
8407
+ const result = initializeCompoundDictionaryCopy(s, -address - 1, s.copyLength);
8408
+ if (result < 0) {
8409
+ return result;
8410
+ }
8411
+ s.runningState = 14;
8412
+ } else {
8413
+ const dictionaryData = data;
8414
+ const wordLength = s.copyLength;
8415
+ if (wordLength > 31) {
8416
+ return makeError(s, -9);
8417
+ }
8418
+ const shift = sizeBits[wordLength];
8419
+ if (shift === 0) {
8420
+ return makeError(s, -9);
8421
+ }
8422
+ let offset = offsets[wordLength];
8423
+ const mask = (1 << shift) - 1;
8424
+ const wordIdx = address & mask;
8425
+ const transformIdx = address >> shift;
8426
+ offset += wordIdx * wordLength;
8427
+ const transforms = RFC_TRANSFORMS;
8428
+ if (transformIdx >= transforms.numTransforms) {
8429
+ return makeError(s, -9);
8430
+ }
8431
+ const len = transformDictionaryWord(s.ringBuffer, s.pos, dictionaryData, offset, wordLength, transforms, transformIdx);
8432
+ s.pos += len;
8433
+ s.metaBlockLength -= len;
8434
+ if (s.pos >= fence) {
8435
+ s.nextRunningState = 4;
8436
+ s.runningState = 12;
8437
+ return 0;
8438
+ }
8439
+ s.runningState = 4;
8440
+ }
8441
+ return 0;
8442
+ }
8443
+ function initializeCompoundDictionary(s) {
8444
+ s.cdBlockMap = new Int8Array(256);
8445
+ let blockBits = 8;
8446
+ while (s.cdTotalSize - 1 >> blockBits !== 0) {
8447
+ blockBits++;
8448
+ }
8449
+ blockBits -= 8;
8450
+ s.cdBlockBits = blockBits;
8451
+ let cursor = 0;
8452
+ let index = 0;
8453
+ while (cursor < s.cdTotalSize) {
8454
+ while (s.cdChunkOffsets[index + 1] < cursor) {
8455
+ index++;
8456
+ }
8457
+ s.cdBlockMap[cursor >> blockBits] = index;
8458
+ cursor += 1 << blockBits;
8459
+ }
8460
+ }
8461
+ function initializeCompoundDictionaryCopy(s, address, length) {
8462
+ if (s.cdBlockBits === -1) {
8463
+ initializeCompoundDictionary(s);
8464
+ }
8465
+ let index = s.cdBlockMap[address >> s.cdBlockBits];
8466
+ while (address >= s.cdChunkOffsets[index + 1]) {
8467
+ index++;
8468
+ }
8469
+ if (s.cdTotalSize > address + length) {
8470
+ return makeError(s, -9);
8471
+ }
8472
+ s.distRbIdx = s.distRbIdx + 1 & 0x3;
8473
+ s.rings[s.distRbIdx] = s.distance;
8474
+ s.metaBlockLength -= length;
8475
+ s.cdBrIndex = index;
8476
+ s.cdBrOffset = address - s.cdChunkOffsets[index];
8477
+ s.cdBrLength = length;
8478
+ s.cdBrCopied = 0;
8479
+ return 0;
8480
+ }
8481
+ function copyFromCompoundDictionary(s, fence) {
8482
+ let pos = s.pos;
8483
+ const origPos = pos;
8484
+ while (s.cdBrLength !== s.cdBrCopied) {
8485
+ const space = fence - pos;
8486
+ const chunkLength = s.cdChunkOffsets[s.cdBrIndex + 1] - s.cdChunkOffsets[s.cdBrIndex];
8487
+ const remChunkLength = chunkLength - s.cdBrOffset;
8488
+ let length = s.cdBrLength - s.cdBrCopied;
8489
+ if (length > remChunkLength) {
8490
+ length = remChunkLength;
8491
+ }
8492
+ if (length > space) {
8493
+ length = space;
8494
+ }
8495
+ s.ringBuffer.set(s.cdChunks[s.cdBrIndex].subarray(s.cdBrOffset, s.cdBrOffset + length), pos);
8496
+ pos += length;
8497
+ s.cdBrOffset += length;
8498
+ s.cdBrCopied += length;
8499
+ if (length === remChunkLength) {
8500
+ s.cdBrIndex++;
8501
+ s.cdBrOffset = 0;
8502
+ }
8503
+ if (pos >= fence) {
8504
+ break;
8505
+ }
8506
+ }
8507
+ return pos - origPos;
8508
+ }
8509
+ function decompress(s) {
8510
+ let result;
8511
+ if (s.runningState === 0) {
8512
+ return makeError(s, -25);
8513
+ }
8514
+ if (s.runningState < 0) {
8515
+ return makeError(s, -28);
8516
+ }
8517
+ if (s.runningState === 11) {
8518
+ return makeError(s, -22);
8519
+ }
8520
+ if (s.runningState === 1) {
8521
+ const windowBits = decodeWindowBits(s);
8522
+ if (windowBits === -1) {
8523
+ return makeError(s, -11);
8524
+ }
8525
+ s.maxRingBufferSize = 1 << windowBits;
8526
+ s.maxBackwardDistance = s.maxRingBufferSize - 16;
8527
+ s.runningState = 2;
8528
+ }
8529
+ let fence = calculateFence(s);
8530
+ let ringBufferMask = s.ringBufferSize - 1;
8531
+ let ringBuffer = s.ringBuffer;
8532
+ while (s.runningState !== 10) {
8533
+ switch (s.runningState) {
8534
+ case 2:
8535
+ if (s.metaBlockLength < 0) {
8536
+ return makeError(s, -10);
8537
+ }
8538
+ result = readNextMetablockHeader(s);
8539
+ if (result < 0) {
8540
+ return result;
8541
+ }
8542
+ fence = calculateFence(s);
8543
+ ringBufferMask = s.ringBufferSize - 1;
8544
+ ringBuffer = s.ringBuffer;
8545
+ continue;
8546
+ case 3:
8547
+ result = readMetablockHuffmanCodesAndContextMaps(s);
8548
+ if (result < 0) {
8549
+ return result;
8550
+ }
8551
+ s.runningState = 4;
8552
+ continue;
8553
+ case 4:
8554
+ if (s.metaBlockLength <= 0) {
8555
+ s.runningState = 2;
8556
+ continue;
8557
+ }
8558
+ if (s.halfOffset > 2030) {
8559
+ result = readMoreInput(s);
8560
+ if (result < 0) {
8561
+ return result;
8562
+ }
8563
+ }
8564
+ if (s.commandBlockLength === 0) {
8565
+ decodeCommandBlockSwitch(s);
8566
+ }
8567
+ s.commandBlockLength--;
8568
+ if (s.bitOffset >= 16) {
8569
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8570
+ s.bitOffset -= 16;
8571
+ }
8572
+ const cmdCode = readSymbol(s.commandTreeGroup, s.commandTreeIdx, s) << 2;
8573
+ const insertAndCopyExtraBits = CMD_LOOKUP[cmdCode];
8574
+ const insertLengthOffset = CMD_LOOKUP[cmdCode + 1];
8575
+ const copyLengthOffset = CMD_LOOKUP[cmdCode + 2];
8576
+ s.distanceCode = CMD_LOOKUP[cmdCode + 3];
8577
+ if (s.bitOffset >= 16) {
8578
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8579
+ s.bitOffset -= 16;
8580
+ }
8581
+ const insertLengthExtraBits = insertAndCopyExtraBits & 0xFF;
8582
+ s.insertLength = insertLengthOffset + (insertLengthExtraBits <= 16 ? readFewBits(s, insertLengthExtraBits) : readManyBits(s, insertLengthExtraBits));
8583
+ if (s.bitOffset >= 16) {
8584
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8585
+ s.bitOffset -= 16;
8586
+ }
8587
+ const copyLengthExtraBits = insertAndCopyExtraBits >> 8;
8588
+ s.copyLength = copyLengthOffset + (copyLengthExtraBits <= 16 ? readFewBits(s, copyLengthExtraBits) : readManyBits(s, copyLengthExtraBits));
8589
+ s.j = 0;
8590
+ s.runningState = 7;
8591
+ continue;
8592
+ case 7:
8593
+ if (s.trivialLiteralContext !== 0) {
8594
+ while (s.j < s.insertLength) {
8595
+ if (s.halfOffset > 2030) {
8596
+ result = readMoreInput(s);
8597
+ if (result < 0) {
8598
+ return result;
8599
+ }
8600
+ }
8601
+ if (s.literalBlockLength === 0) {
8602
+ decodeLiteralBlockSwitch(s);
8603
+ }
8604
+ s.literalBlockLength--;
8605
+ if (s.bitOffset >= 16) {
8606
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8607
+ s.bitOffset -= 16;
8608
+ }
8609
+ ringBuffer[s.pos] = readSymbol(s.literalTreeGroup, s.literalTreeIdx, s);
8610
+ s.pos++;
8611
+ s.j++;
8612
+ if (s.pos >= fence) {
8613
+ s.nextRunningState = 7;
8614
+ s.runningState = 12;
8615
+ break;
8616
+ }
8617
+ }
8618
+ } else {
8619
+ let prevByte1 = ringBuffer[s.pos - 1 & ringBufferMask] & 0xFF;
8620
+ let prevByte2 = ringBuffer[s.pos - 2 & ringBufferMask] & 0xFF;
8621
+ while (s.j < s.insertLength) {
8622
+ if (s.halfOffset > 2030) {
8623
+ result = readMoreInput(s);
8624
+ if (result < 0) {
8625
+ return result;
8626
+ }
8627
+ }
8628
+ if (s.literalBlockLength === 0) {
8629
+ decodeLiteralBlockSwitch(s);
8630
+ }
8631
+ const literalContext = LOOKUP[s.contextLookupOffset1 + prevByte1] | LOOKUP[s.contextLookupOffset2 + prevByte2];
8632
+ const literalTreeIdx = s.contextMap[s.contextMapSlice + literalContext] & 0xFF;
8633
+ s.literalBlockLength--;
8634
+ prevByte2 = prevByte1;
8635
+ if (s.bitOffset >= 16) {
8636
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8637
+ s.bitOffset -= 16;
8638
+ }
8639
+ prevByte1 = readSymbol(s.literalTreeGroup, literalTreeIdx, s);
8640
+ ringBuffer[s.pos] = prevByte1;
8641
+ s.pos++;
8642
+ s.j++;
8643
+ if (s.pos >= fence) {
8644
+ s.nextRunningState = 7;
8645
+ s.runningState = 12;
8646
+ break;
8647
+ }
8648
+ }
8649
+ }
8650
+ if (s.runningState !== 7) {
8651
+ continue;
8652
+ }
8653
+ s.metaBlockLength -= s.insertLength;
8654
+ if (s.metaBlockLength <= 0) {
8655
+ s.runningState = 4;
8656
+ continue;
8657
+ }
8658
+ let distanceCode = s.distanceCode;
8659
+ if (distanceCode < 0) {
8660
+ s.distance = s.rings[s.distRbIdx];
8661
+ } else {
8662
+ if (s.halfOffset > 2030) {
8663
+ result = readMoreInput(s);
8664
+ if (result < 0) {
8665
+ return result;
8666
+ }
8667
+ }
8668
+ if (s.distanceBlockLength === 0) {
8669
+ decodeDistanceBlockSwitch(s);
8670
+ }
8671
+ s.distanceBlockLength--;
8672
+ if (s.bitOffset >= 16) {
8673
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8674
+ s.bitOffset -= 16;
8675
+ }
8676
+ const distTreeIdx = s.distContextMap[s.distContextMapSlice + distanceCode] & 0xFF;
8677
+ distanceCode = readSymbol(s.distanceTreeGroup, distTreeIdx, s);
8678
+ if (distanceCode < 16) {
8679
+ const index = s.distRbIdx + DISTANCE_SHORT_CODE_INDEX_OFFSET[distanceCode] & 0x3;
8680
+ s.distance = s.rings[index] + DISTANCE_SHORT_CODE_VALUE_OFFSET[distanceCode];
8681
+ if (s.distance < 0) {
8682
+ return makeError(s, -12);
8683
+ }
8684
+ } else {
8685
+ const extraBits = s.distExtraBits[distanceCode];
8686
+ let bits;
8687
+ if (s.bitOffset + extraBits <= 32) {
8688
+ bits = readFewBits(s, extraBits);
8689
+ } else {
8690
+ if (s.bitOffset >= 16) {
8691
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8692
+ s.bitOffset -= 16;
8693
+ }
8694
+ bits = extraBits <= 16 ? readFewBits(s, extraBits) : readManyBits(s, extraBits);
8695
+ }
8696
+ s.distance = s.distOffset[distanceCode] + (bits << s.distancePostfixBits);
8697
+ }
8698
+ }
8699
+ if (s.maxDistance !== s.maxBackwardDistance && s.pos < s.maxBackwardDistance) {
8700
+ s.maxDistance = s.pos;
8701
+ } else {
8702
+ s.maxDistance = s.maxBackwardDistance;
8703
+ }
8704
+ if (s.distance > s.maxDistance) {
8705
+ s.runningState = 9;
8706
+ continue;
8707
+ }
8708
+ if (distanceCode > 0) {
8709
+ s.distRbIdx = s.distRbIdx + 1 & 0x3;
8710
+ s.rings[s.distRbIdx] = s.distance;
8711
+ }
8712
+ if (s.copyLength > s.metaBlockLength) {
8713
+ return makeError(s, -9);
8714
+ }
8715
+ s.j = 0;
8716
+ s.runningState = 8;
8717
+ continue;
8718
+ case 8:
8719
+ let src = s.pos - s.distance & ringBufferMask;
8720
+ let dst = s.pos;
8721
+ const copyLength = s.copyLength - s.j;
8722
+ const srcEnd = src + copyLength;
8723
+ const dstEnd = dst + copyLength;
8724
+ if (srcEnd < ringBufferMask && dstEnd < ringBufferMask) {
8725
+ if (copyLength < 12 || srcEnd > dst && dstEnd > src) {
8726
+ const numQuads = copyLength + 3 >> 2;
8727
+ for (let k = 0; k < numQuads; ++k) {
8728
+ ringBuffer[dst++] = ringBuffer[src++];
8729
+ ringBuffer[dst++] = ringBuffer[src++];
8730
+ ringBuffer[dst++] = ringBuffer[src++];
8731
+ ringBuffer[dst++] = ringBuffer[src++];
8732
+ }
8733
+ } else {
8734
+ ringBuffer.copyWithin(dst, src, srcEnd);
8735
+ }
8736
+ s.j += copyLength;
8737
+ s.metaBlockLength -= copyLength;
8738
+ s.pos += copyLength;
8739
+ } else {
8740
+ while (s.j < s.copyLength) {
8741
+ ringBuffer[s.pos] = ringBuffer[s.pos - s.distance & ringBufferMask];
8742
+ s.metaBlockLength--;
8743
+ s.pos++;
8744
+ s.j++;
8745
+ if (s.pos >= fence) {
8746
+ s.nextRunningState = 8;
8747
+ s.runningState = 12;
8748
+ break;
8749
+ }
8750
+ }
8751
+ }
8752
+ if (s.runningState === 8) {
8753
+ s.runningState = 4;
8754
+ }
8755
+ continue;
8756
+ case 9:
8757
+ result = doUseDictionary(s, fence);
8758
+ if (result < 0) {
8759
+ return result;
8760
+ }
8761
+ continue;
8762
+ case 14:
8763
+ s.pos += copyFromCompoundDictionary(s, fence);
8764
+ if (s.pos >= fence) {
8765
+ s.nextRunningState = 14;
8766
+ s.runningState = 12;
8767
+ return 2;
8768
+ }
8769
+ s.runningState = 4;
8770
+ continue;
8771
+ case 5:
8772
+ while (s.metaBlockLength > 0) {
8773
+ if (s.halfOffset > 2030) {
8774
+ result = readMoreInput(s);
8775
+ if (result < 0) {
8776
+ return result;
8777
+ }
8778
+ }
8779
+ if (s.bitOffset >= 16) {
8780
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
8781
+ s.bitOffset -= 16;
8782
+ }
8783
+ readFewBits(s, 8);
8784
+ s.metaBlockLength--;
8785
+ }
8786
+ s.runningState = 2;
8787
+ continue;
8788
+ case 6:
8789
+ result = copyUncompressedData(s);
8790
+ if (result < 0) {
8791
+ return result;
8792
+ }
8793
+ continue;
8794
+ case 12:
8795
+ s.ringBufferBytesReady = Math.min(s.pos, s.ringBufferSize);
8796
+ s.runningState = 13;
8797
+ continue;
8798
+ case 13:
8799
+ result = writeRingBuffer(s);
8800
+ if (result !== 0) {
8801
+ return result;
8802
+ }
8803
+ if (s.pos >= s.maxBackwardDistance) {
8804
+ s.maxDistance = s.maxBackwardDistance;
8805
+ }
8806
+ if (s.pos >= s.ringBufferSize) {
8807
+ if (s.pos > s.ringBufferSize) {
8808
+ ringBuffer.copyWithin(0, s.ringBufferSize, s.pos);
8809
+ }
8810
+ s.pos = s.pos & ringBufferMask;
8811
+ s.ringBufferBytesWritten = 0;
8812
+ }
8813
+ s.runningState = s.nextRunningState;
8814
+ continue;
8815
+ default:
8816
+ return makeError(s, -28);
8817
+ }
8818
+ }
8819
+ if (s.runningState !== 10) {
8820
+ return makeError(s, -29);
8821
+ }
8822
+ if (s.metaBlockLength < 0) {
8823
+ return makeError(s, -10);
8824
+ }
8825
+ result = jumpToByteBoundary(s);
8826
+ if (result !== 0) {
8827
+ return result;
8828
+ }
8829
+ result = checkHealth(s, 1);
8830
+ if (result !== 0) {
8831
+ return result;
8832
+ }
8833
+ return 1;
8834
+ }
8835
+ function Transforms(numTransforms, prefixSuffixLen, prefixSuffixCount) {
8836
+ this.numTransforms = 0;
8837
+ this.triplets = new Int32Array(0);
8838
+ this.prefixSuffixStorage = new Int8Array(0);
8839
+ this.prefixSuffixHeads = new Int32Array(0);
8840
+ this.params = new Int16Array(0);
8841
+ this.numTransforms = numTransforms;
8842
+ this.triplets = new Int32Array(numTransforms * 3);
8843
+ this.params = new Int16Array(numTransforms);
8844
+ this.prefixSuffixStorage = new Int8Array(prefixSuffixLen);
8845
+ this.prefixSuffixHeads = new Int32Array(prefixSuffixCount + 1);
8846
+ }
8847
+ const RFC_TRANSFORMS = new Transforms(121, 167, 50);
8848
+ function unpackTransforms(prefixSuffix, prefixSuffixHeads, transforms, prefixSuffixSrc, transformsSrc) {
8849
+ const prefixSuffixBytes = toUtf8Runes(prefixSuffixSrc);
8850
+ const n = prefixSuffixBytes.length;
8851
+ let index = 1;
8852
+ let j = 0;
8853
+ for (let i = 0; i < n; ++i) {
8854
+ const c = prefixSuffixBytes[i];
8855
+ if (c === 35) {
8856
+ prefixSuffixHeads[index++] = j;
8857
+ } else {
8858
+ prefixSuffix[j++] = c;
8859
+ }
8860
+ }
8861
+ for (let i = 0; i < 363; ++i) {
8862
+ transforms[i] = transformsSrc.charCodeAt(i) - 32;
8863
+ }
8864
+ }
8865
+ unpackTransforms(RFC_TRANSFORMS.prefixSuffixStorage, RFC_TRANSFORMS.prefixSuffixHeads, RFC_TRANSFORMS.triplets, "# #s #, #e #.# the #.com/#\xC2\xA0# of # and # in # to #\"#\">#\n#]# for # a # that #. # with #'# from # by #. The # on # as # is #ing #\n\t#:#ed #(# at #ly #=\"# of the #. This #,# not #er #al #='#ful #ive #less #est #ize #ous #", " !! ! , *! &! \" ! ) * * - ! # ! #!*! + ,$ ! - % . / # 0 1 . \" 2 3!* 4% ! # / 5 6 7 8 0 1 & $ 9 + : ; < ' != > ?! 4 @ 4 2 & A *# ( B C& ) % ) !*# *-% A +! *. D! %' & E *6 F G% ! *A *% H! D I!+! J!+ K +- *4! A L!*4 M N +6 O!*% +.! K *G P +%( ! G *D +D Q +# *K!*G!+D!+# +G +A +4!+% +K!+4!*D!+K!*K");
8866
+ function transformDictionaryWord(dst, dstOffset, src, srcOffset, wordLen, transforms, transformIndex) {
8867
+ let offset = dstOffset;
8868
+ const triplets = transforms.triplets;
8869
+ const prefixSuffixStorage = transforms.prefixSuffixStorage;
8870
+ const prefixSuffixHeads = transforms.prefixSuffixHeads;
8871
+ const transformOffset = 3 * transformIndex;
8872
+ const prefixIdx = triplets[transformOffset];
8873
+ const transformType = triplets[transformOffset + 1];
8874
+ const suffixIdx = triplets[transformOffset + 2];
8875
+ let prefix = prefixSuffixHeads[prefixIdx];
8876
+ const prefixEnd = prefixSuffixHeads[prefixIdx + 1];
8877
+ let suffix = prefixSuffixHeads[suffixIdx];
8878
+ const suffixEnd = prefixSuffixHeads[suffixIdx + 1];
8879
+ let omitFirst = transformType - 11;
8880
+ let omitLast = transformType;
8881
+ if (omitFirst < 1 || omitFirst > 9) {
8882
+ omitFirst = 0;
8883
+ }
8884
+ if (omitLast < 1 || omitLast > 9) {
8885
+ omitLast = 0;
8886
+ }
8887
+ while (prefix !== prefixEnd) {
8888
+ dst[offset++] = prefixSuffixStorage[prefix++];
8889
+ }
8890
+ let len = wordLen;
8891
+ if (omitFirst > len) {
8892
+ omitFirst = len;
8893
+ }
8894
+ let dictOffset = srcOffset + omitFirst;
8895
+ len -= omitFirst;
8896
+ len -= omitLast;
8897
+ let i = len;
8898
+ while (i > 0) {
8899
+ dst[offset++] = src[dictOffset++];
8900
+ i--;
8901
+ }
8902
+ if (transformType === 10 || transformType === 11) {
8903
+ let uppercaseOffset = offset - len;
8904
+ if (transformType === 10) {
8905
+ len = 1;
8906
+ }
8907
+ while (len > 0) {
8908
+ const c0 = dst[uppercaseOffset] & 0xFF;
8909
+ if (c0 < 0xC0) {
8910
+ if (c0 >= 97 && c0 <= 122) {
8911
+ dst[uppercaseOffset] = dst[uppercaseOffset] ^ 32;
8912
+ }
8913
+ uppercaseOffset += 1;
8914
+ len -= 1;
8915
+ } else if (c0 < 0xE0) {
8916
+ dst[uppercaseOffset + 1] = dst[uppercaseOffset + 1] ^ 32;
8917
+ uppercaseOffset += 2;
8918
+ len -= 2;
8919
+ } else {
8920
+ dst[uppercaseOffset + 2] = dst[uppercaseOffset + 2] ^ 5;
8921
+ uppercaseOffset += 3;
8922
+ len -= 3;
8923
+ }
8924
+ }
8925
+ } else if (transformType === 21 || transformType === 22) {
8926
+ let shiftOffset = offset - len;
8927
+ const param = transforms.params[transformIndex];
8928
+ let scalar = (param & 0x7FFF) + (0x1000000 - (param & 0x8000));
8929
+ while (len > 0) {
8930
+ let step = 1;
8931
+ const c0 = dst[shiftOffset] & 0xFF;
8932
+ if (c0 < 0x80) {
8933
+ scalar += c0;
8934
+ dst[shiftOffset] = scalar & 0x7F;
8935
+ } else if (c0 < 0xC0) {} else if (c0 < 0xE0) {
8936
+ if (len >= 2) {
8937
+ const c1 = dst[shiftOffset + 1];
8938
+ scalar += c1 & 0x3F | (c0 & 0x1F) << 6;
8939
+ dst[shiftOffset] = 0xC0 | scalar >> 6 & 0x1F;
8940
+ dst[shiftOffset + 1] = c1 & 0xC0 | scalar & 0x3F;
8941
+ step = 2;
8942
+ } else {
8943
+ step = len;
8944
+ }
8945
+ } else if (c0 < 0xF0) {
8946
+ if (len >= 3) {
8947
+ const c1 = dst[shiftOffset + 1];
8948
+ const c2 = dst[shiftOffset + 2];
8949
+ scalar += c2 & 0x3F | (c1 & 0x3F) << 6 | (c0 & 0x0F) << 12;
8950
+ dst[shiftOffset] = 0xE0 | scalar >> 12 & 0x0F;
8951
+ dst[shiftOffset + 1] = c1 & 0xC0 | scalar >> 6 & 0x3F;
8952
+ dst[shiftOffset + 2] = c2 & 0xC0 | scalar & 0x3F;
8953
+ step = 3;
8954
+ } else {
8955
+ step = len;
8956
+ }
8957
+ } else if (c0 < 0xF8) {
8958
+ if (len >= 4) {
8959
+ const c1 = dst[shiftOffset + 1];
8960
+ const c2 = dst[shiftOffset + 2];
8961
+ const c3 = dst[shiftOffset + 3];
8962
+ scalar += c3 & 0x3F | (c2 & 0x3F) << 6 | (c1 & 0x3F) << 12 | (c0 & 0x07) << 18;
8963
+ dst[shiftOffset] = 0xF0 | scalar >> 18 & 0x07;
8964
+ dst[shiftOffset + 1] = c1 & 0xC0 | scalar >> 12 & 0x3F;
8965
+ dst[shiftOffset + 2] = c2 & 0xC0 | scalar >> 6 & 0x3F;
8966
+ dst[shiftOffset + 3] = c3 & 0xC0 | scalar & 0x3F;
8967
+ step = 4;
8968
+ } else {
8969
+ step = len;
8970
+ }
8971
+ }
8972
+ shiftOffset += step;
8973
+ len -= step;
8974
+ if (transformType === 21) {
8975
+ len = 0;
8976
+ }
8977
+ }
8978
+ }
8979
+ while (suffix !== suffixEnd) {
8980
+ dst[offset++] = prefixSuffixStorage[suffix++];
8981
+ }
8982
+ return offset - dstOffset;
8983
+ }
8984
+ function getNextKey(key, len) {
8985
+ let step = 1 << len - 1;
8986
+ while ((key & step) !== 0) {
8987
+ step = step >> 1;
8988
+ }
8989
+ return (key & step - 1) + step;
8990
+ }
8991
+ function replicateValue(table, offset, step, end, item) {
8992
+ let pos = end;
8993
+ while (pos > 0) {
8994
+ pos -= step;
8995
+ table[offset + pos] = item;
8996
+ }
8997
+ }
8998
+ function nextTableBitSize(count, len, rootBits) {
8999
+ let bits = len;
9000
+ let left = 1 << bits - rootBits;
9001
+ while (bits < 15) {
9002
+ left -= count[bits];
9003
+ if (left <= 0) {
9004
+ break;
9005
+ }
9006
+ bits++;
9007
+ left = left << 1;
9008
+ }
9009
+ return bits - rootBits;
9010
+ }
9011
+ function buildHuffmanTable(tableGroup, tableIdx, rootBits, codeLengths, codeLengthsSize) {
9012
+ const tableOffset = tableGroup[tableIdx];
9013
+ const sorted = new Int32Array(codeLengthsSize);
9014
+ const count = new Int32Array(16);
9015
+ const offset = new Int32Array(16);
9016
+ for (let sym = 0; sym < codeLengthsSize; ++sym) {
9017
+ count[codeLengths[sym]]++;
9018
+ }
9019
+ offset[1] = 0;
9020
+ for (let len = 1; len < 15; ++len) {
9021
+ offset[len + 1] = offset[len] + count[len];
9022
+ }
9023
+ for (let sym = 0; sym < codeLengthsSize; ++sym) {
9024
+ if (codeLengths[sym] !== 0) {
9025
+ sorted[offset[codeLengths[sym]]++] = sym;
9026
+ }
9027
+ }
9028
+ let tableBits = rootBits;
9029
+ let tableSize = 1 << tableBits;
9030
+ let totalSize = tableSize;
9031
+ if (offset[15] === 1) {
9032
+ for (let k = 0; k < totalSize; ++k) {
9033
+ tableGroup[tableOffset + k] = sorted[0];
9034
+ }
9035
+ return totalSize;
9036
+ }
9037
+ let key = 0;
9038
+ let symbol = 0;
9039
+ let step = 1;
9040
+ for (let len = 1; len <= rootBits; ++len) {
9041
+ step = step << 1;
9042
+ while (count[len] > 0) {
9043
+ replicateValue(tableGroup, tableOffset + key, step, tableSize, len << 16 | sorted[symbol++]);
9044
+ key = getNextKey(key, len);
9045
+ count[len]--;
9046
+ }
9047
+ }
9048
+ const mask = totalSize - 1;
9049
+ let low = -1;
9050
+ let currentOffset = tableOffset;
9051
+ step = 1;
9052
+ for (let len = rootBits + 1; len <= 15; ++len) {
9053
+ step = step << 1;
9054
+ while (count[len] > 0) {
9055
+ if ((key & mask) !== low) {
9056
+ currentOffset += tableSize;
9057
+ tableBits = nextTableBitSize(count, len, rootBits);
9058
+ tableSize = 1 << tableBits;
9059
+ totalSize += tableSize;
9060
+ low = key & mask;
9061
+ tableGroup[tableOffset + low] = tableBits + rootBits << 16 | currentOffset - tableOffset - low;
9062
+ }
9063
+ replicateValue(tableGroup, currentOffset + (key >> rootBits), step, tableSize, len - rootBits << 16 | sorted[symbol++]);
9064
+ key = getNextKey(key, len);
9065
+ count[len]--;
9066
+ }
9067
+ }
9068
+ return totalSize;
9069
+ }
9070
+ function readMoreInput(s) {
9071
+ if (s.endOfStreamReached !== 0) {
9072
+ if (halfAvailable(s) >= -2) {
9073
+ return 0;
9074
+ }
9075
+ return makeError(s, -16);
9076
+ }
9077
+ const readOffset = s.halfOffset << 1;
9078
+ let bytesInBuffer = 4096 - readOffset;
9079
+ s.byteBuffer.copyWithin(0, readOffset, 4096);
9080
+ s.halfOffset = 0;
9081
+ while (bytesInBuffer < 4096) {
9082
+ const spaceLeft = 4096 - bytesInBuffer;
9083
+ const len = readInput(s, s.byteBuffer, bytesInBuffer, spaceLeft);
9084
+ if (len < -1) {
9085
+ return len;
9086
+ }
9087
+ if (len <= 0) {
9088
+ s.endOfStreamReached = 1;
9089
+ s.tailBytes = bytesInBuffer;
9090
+ bytesInBuffer += 1;
9091
+ break;
9092
+ }
9093
+ bytesInBuffer += len;
9094
+ }
9095
+ bytesToNibbles(s, bytesInBuffer);
9096
+ return 0;
9097
+ }
9098
+ function checkHealth(s, endOfStream) {
9099
+ if (s.endOfStreamReached === 0) {
9100
+ return 0;
9101
+ }
9102
+ const byteOffset = (s.halfOffset << 1) + (s.bitOffset + 7 >> 3) - 4;
9103
+ if (byteOffset > s.tailBytes) {
9104
+ return makeError(s, -13);
9105
+ }
9106
+ if (endOfStream !== 0 && byteOffset !== s.tailBytes) {
9107
+ return makeError(s, -17);
9108
+ }
9109
+ return 0;
9110
+ }
9111
+ function readFewBits(s, n) {
9112
+ const v = s.accumulator32 >>> s.bitOffset & (1 << n) - 1;
9113
+ s.bitOffset += n;
9114
+ return v;
9115
+ }
9116
+ function readManyBits(s, n) {
9117
+ const low = readFewBits(s, 16);
9118
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
9119
+ s.bitOffset -= 16;
9120
+ return low | readFewBits(s, n - 16) << 16;
9121
+ }
9122
+ function initBitReader(s) {
9123
+ s.byteBuffer = new Int8Array(4160);
9124
+ s.accumulator32 = 0;
9125
+ s.shortBuffer = new Int16Array(2080);
9126
+ s.bitOffset = 32;
9127
+ s.halfOffset = 2048;
9128
+ s.endOfStreamReached = 0;
9129
+ return prepare(s);
9130
+ }
9131
+ function prepare(s) {
9132
+ if (s.halfOffset > 2030) {
9133
+ const result = readMoreInput(s);
9134
+ if (result !== 0) {
9135
+ return result;
9136
+ }
9137
+ }
9138
+ let health = checkHealth(s, 0);
9139
+ if (health !== 0) {
9140
+ return health;
9141
+ }
9142
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
9143
+ s.bitOffset -= 16;
9144
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
9145
+ s.bitOffset -= 16;
9146
+ return 0;
9147
+ }
9148
+ function reload(s) {
9149
+ if (s.bitOffset === 32) {
9150
+ return prepare(s);
9151
+ }
9152
+ return 0;
9153
+ }
9154
+ function jumpToByteBoundary(s) {
9155
+ const padding = 32 - s.bitOffset & 7;
9156
+ if (padding !== 0) {
9157
+ const paddingBits = readFewBits(s, padding);
9158
+ if (paddingBits !== 0) {
9159
+ return makeError(s, -5);
9160
+ }
9161
+ }
9162
+ return 0;
9163
+ }
9164
+ function halfAvailable(s) {
9165
+ let limit = 2048;
9166
+ if (s.endOfStreamReached !== 0) {
9167
+ limit = s.tailBytes + 1 >> 1;
9168
+ }
9169
+ return limit - s.halfOffset;
9170
+ }
9171
+ function copyRawBytes(s, data, offset, length) {
9172
+ let pos = offset;
9173
+ let len = length;
9174
+ if ((s.bitOffset & 7) !== 0) {
9175
+ return makeError(s, -30);
9176
+ }
9177
+ while (s.bitOffset !== 32 && len !== 0) {
9178
+ data[pos++] = s.accumulator32 >>> s.bitOffset;
9179
+ s.bitOffset += 8;
9180
+ len--;
9181
+ }
9182
+ if (len === 0) {
9183
+ return 0;
9184
+ }
9185
+ const copyNibbles = Math.min(halfAvailable(s), len >> 1);
9186
+ if (copyNibbles > 0) {
9187
+ const readOffset = s.halfOffset << 1;
9188
+ const delta = copyNibbles << 1;
9189
+ data.set(s.byteBuffer.subarray(readOffset, readOffset + delta), pos);
9190
+ pos += delta;
9191
+ len -= delta;
9192
+ s.halfOffset += copyNibbles;
9193
+ }
9194
+ if (len === 0) {
9195
+ return 0;
9196
+ }
9197
+ if (halfAvailable(s) > 0) {
9198
+ if (s.bitOffset >= 16) {
9199
+ s.accumulator32 = s.shortBuffer[s.halfOffset++] << 16 | s.accumulator32 >>> 16;
9200
+ s.bitOffset -= 16;
9201
+ }
9202
+ while (len !== 0) {
9203
+ data[pos++] = s.accumulator32 >>> s.bitOffset;
9204
+ s.bitOffset += 8;
9205
+ len--;
9206
+ }
9207
+ return checkHealth(s, 0);
9208
+ }
9209
+ while (len > 0) {
9210
+ const chunkLen = readInput(s, data, pos, len);
9211
+ if (chunkLen < -1) {
9212
+ return chunkLen;
9213
+ }
9214
+ if (chunkLen <= 0) {
9215
+ return makeError(s, -16);
9216
+ }
9217
+ pos += chunkLen;
9218
+ len -= chunkLen;
9219
+ }
9220
+ return 0;
9221
+ }
9222
+ function bytesToNibbles(s, byteLen) {
9223
+ const byteBuffer = s.byteBuffer;
9224
+ const halfLen = byteLen >> 1;
9225
+ const shortBuffer = s.shortBuffer;
9226
+ for (let i = 0; i < halfLen; ++i) {
9227
+ shortBuffer[i] = byteBuffer[i * 2] & 0xFF | (byteBuffer[i * 2 + 1] & 0xFF) << 8;
9228
+ }
9229
+ }
9230
+ const LOOKUP = new Int32Array(2048);
9231
+ function unpackLookupTable(lookup, utfMap, utfRle) {
9232
+ for (let i = 0; i < 256; ++i) {
9233
+ lookup[i] = i & 0x3F;
9234
+ lookup[512 + i] = i >> 2;
9235
+ lookup[1792 + i] = 2 + (i >> 6);
9236
+ }
9237
+ for (let i = 0; i < 128; ++i) {
9238
+ lookup[1024 + i] = 4 * (utfMap.charCodeAt(i) - 32);
9239
+ }
9240
+ for (let i = 0; i < 64; ++i) {
9241
+ lookup[1152 + i] = i & 1;
9242
+ lookup[1216 + i] = 2 + (i & 1);
9243
+ }
9244
+ let offset = 1280;
9245
+ for (let k = 0; k < 19; ++k) {
9246
+ const value = k & 3;
9247
+ const rep = utfRle.charCodeAt(k) - 32;
9248
+ for (let i = 0; i < rep; ++i) {
9249
+ lookup[offset++] = value;
9250
+ }
9251
+ }
9252
+ for (let i = 0; i < 16; ++i) {
9253
+ lookup[1792 + i] = 1;
9254
+ lookup[2032 + i] = 6;
9255
+ }
9256
+ lookup[1792] = 0;
9257
+ lookup[2047] = 7;
9258
+ for (let i = 0; i < 256; ++i) {
9259
+ lookup[1536 + i] = lookup[1792 + i] << 3;
9260
+ }
9261
+ }
9262
+ unpackLookupTable(LOOKUP, " !! ! \"#$##%#$&'##(#)#++++++++++((&*'##,---,---,-----,-----,-----&#'###.///.///./////./////./////&#'# ", "A/* ': & : $ \x81 @");
9263
+ function State() {
9264
+ this.ringBuffer = new Int8Array(0);
9265
+ this.contextModes = new Int8Array(0);
9266
+ this.contextMap = new Int8Array(0);
9267
+ this.distContextMap = new Int8Array(0);
9268
+ this.distExtraBits = new Int8Array(0);
9269
+ this.output = new Int8Array(0);
9270
+ this.byteBuffer = new Int8Array(0);
9271
+ this.shortBuffer = new Int16Array(0);
9272
+ this.intBuffer = new Int32Array(0);
9273
+ this.rings = new Int32Array(0);
9274
+ this.blockTrees = new Int32Array(0);
9275
+ this.literalTreeGroup = new Int32Array(0);
9276
+ this.commandTreeGroup = new Int32Array(0);
9277
+ this.distanceTreeGroup = new Int32Array(0);
9278
+ this.distOffset = new Int32Array(0);
9279
+ this.accumulator64 = 0;
9280
+ this.runningState = 0;
9281
+ this.nextRunningState = 0;
9282
+ this.accumulator32 = 0;
9283
+ this.bitOffset = 0;
9284
+ this.halfOffset = 0;
9285
+ this.tailBytes = 0;
9286
+ this.endOfStreamReached = 0;
9287
+ this.metaBlockLength = 0;
9288
+ this.inputEnd = 0;
9289
+ this.isUncompressed = 0;
9290
+ this.isMetadata = 0;
9291
+ this.literalBlockLength = 0;
9292
+ this.numLiteralBlockTypes = 0;
9293
+ this.commandBlockLength = 0;
9294
+ this.numCommandBlockTypes = 0;
9295
+ this.distanceBlockLength = 0;
9296
+ this.numDistanceBlockTypes = 0;
9297
+ this.pos = 0;
9298
+ this.maxDistance = 0;
9299
+ this.distRbIdx = 0;
9300
+ this.trivialLiteralContext = 0;
9301
+ this.literalTreeIdx = 0;
9302
+ this.commandTreeIdx = 0;
9303
+ this.j = 0;
9304
+ this.insertLength = 0;
9305
+ this.contextMapSlice = 0;
9306
+ this.distContextMapSlice = 0;
9307
+ this.contextLookupOffset1 = 0;
9308
+ this.contextLookupOffset2 = 0;
9309
+ this.distanceCode = 0;
9310
+ this.numDirectDistanceCodes = 0;
9311
+ this.distancePostfixBits = 0;
9312
+ this.distance = 0;
9313
+ this.copyLength = 0;
9314
+ this.maxBackwardDistance = 0;
9315
+ this.maxRingBufferSize = 0;
9316
+ this.ringBufferSize = 0;
9317
+ this.expectedTotalSize = 0;
9318
+ this.outputOffset = 0;
9319
+ this.outputLength = 0;
9320
+ this.outputUsed = 0;
9321
+ this.ringBufferBytesWritten = 0;
9322
+ this.ringBufferBytesReady = 0;
9323
+ this.isEager = 0;
9324
+ this.isLargeWindow = 0;
9325
+ this.cdNumChunks = 0;
9326
+ this.cdTotalSize = 0;
9327
+ this.cdBrIndex = 0;
9328
+ this.cdBrOffset = 0;
9329
+ this.cdBrLength = 0;
9330
+ this.cdBrCopied = 0;
9331
+ this.cdChunks = new Array(0);
9332
+ this.cdChunkOffsets = new Int32Array(0);
9333
+ this.cdBlockBits = 0;
9334
+ this.cdBlockMap = new Int8Array(0);
9335
+ this.input = new InputStream(new Int8Array(0));
9336
+ this.ringBuffer = new Int8Array(0);
9337
+ this.rings = new Int32Array(10);
9338
+ this.rings[0] = 16;
9339
+ this.rings[1] = 15;
9340
+ this.rings[2] = 11;
9341
+ this.rings[3] = 4;
9342
+ }
9343
+ let data = new Int8Array(0);
9344
+ const offsets = new Int32Array(32);
9345
+ const sizeBits = new Int32Array(32);
9346
+ function setData(newData, newSizeBits) {
9347
+ const dictionaryOffsets = offsets;
9348
+ const dictionarySizeBits = sizeBits;
9349
+ for (let i = 0; i < newSizeBits.length; ++i) {
9350
+ dictionarySizeBits[i] = newSizeBits[i];
9351
+ }
9352
+ let pos = 0;
9353
+ for (let i = 0; i < newSizeBits.length; ++i) {
9354
+ dictionaryOffsets[i] = pos;
9355
+ const bits = dictionarySizeBits[i];
9356
+ if (bits !== 0) {
9357
+ pos += i << (bits & 31);
9358
+ }
9359
+ }
9360
+ for (let i = newSizeBits.length; i < 32; ++i) {
9361
+ dictionaryOffsets[i] = pos;
9362
+ }
9363
+ data = newData;
9364
+ }
9365
+ function unpackDictionaryData(dictionary, data0, data1, skipFlip, sizeBits, sizeBitsData) {
9366
+ const dict = toUsAsciiBytes(data0 + data1);
9367
+ const skipFlipRunes = toUtf8Runes(skipFlip);
9368
+ let offset = 0;
9369
+ const n = skipFlipRunes.length >> 1;
9370
+ for (let i = 0; i < n; ++i) {
9371
+ const skip = skipFlipRunes[2 * i] - 36;
9372
+ const flip = skipFlipRunes[2 * i + 1] - 36;
9373
+ for (let j = 0; j < skip; ++j) {
9374
+ dict[offset] = dict[offset] ^ 3;
9375
+ offset++;
9376
+ }
9377
+ for (let j = 0; j < flip; ++j) {
9378
+ dict[offset] = dict[offset] ^ 236;
9379
+ offset++;
9380
+ }
9381
+ }
9382
+ for (let i = 0; i < sizeBitsData.length; ++i) {
9383
+ sizeBits[i] = sizeBitsData.charCodeAt(i) - 65;
9384
+ }
9385
+ dictionary.set(dict);
9386
+ }
9387
+ const dictionaryData = new Int8Array(122784);
9388
+ const dictionarySizeBits = new Int32Array(25);
9389
+ unpackDictionaryData(dictionaryData, "wjnfgltmojefofewab`h`lgfgbwbpkltlmozpjwf`jwzlsfmivpwojhfeqfftlqhwf{wzfbqlufqalgzolufelqnallhsobzojufojmfkfosklnfpjgfnlqftlqgolmdwkfnujftejmgsbdfgbzpevookfbgwfqnfb`kbqfbeqlnwqvfnbqhbaofvslmkjdkgbwfobmgmftpfufmmf{w`bpfalwkslpwvpfgnbgfkbmgkfqftkbwmbnfOjmhaoldpjyfabpfkfognbhfnbjmvpfq$*#(klogfmgptjwkMftpqfbgtfqfpjdmwbhfkbufdbnfpffm`boosbwktfoosovpnfmvejonsbqwiljmwkjpojpwdllgmffgtbzptfpwilapnjmgboploldlqj`kvpfpobpwwfbnbqnzellghjmdtjoofbpwtbqgafpwejqfSbdfhmltbtbz-smdnlufwkbmolbgdjufpfoemlwfnv`keffgnbmzql`hj`lmlm`follhkjgfgjfgKlnfqvofklpwbib{jmel`ovaobtpofppkboeplnfpv`kylmf233&lmfp`bqfWjnfqb`faovfelvqtffheb`fklsfdbufkbqgolpwtkfmsbqhhfswsbpppkjsqllnKWNOsobmWzsfglmfpbufhffseobdojmhplogejufwllhqbwfwltmivnswkvpgbqh`bqgejofefbqpwbzhjoowkbweboobvwlfufq-`lnwbohpklsulwfgffsnlgfqfpwwvqmalqmabmgefooqlpfvqo+phjmqlof`lnfb`wpbdfpnffwdlog-isdjwfnubqzefowwkfmpfmggqlsUjft`lsz2-3!?,b=pwlsfopfojfpwlvqsb`h-djesbpw`pp<dqbznfbm%dw8qjgfpklwobwfpbjgqlbgubq#effoilkmqj`hslqwebpw$VB.gfbg?,a=sllqajoowzsfV-P-tllgnvpw1s{8JmelqbmhtjgftbmwtbooofbgX3^8sbvotbufpvqf'+$ tbjwnbppbqnpdlfpdbjmobmdsbjg\"..#ol`hvmjwqllwtbohejqntjef{no!plmdwfpw13s{hjmgqltpwlloelmwnbjopbefpwbqnbsp`lqfqbjmeoltabazpsbmpbzp7s{85s{8bqwpellwqfbotjhjkfbwpwfswqjslqd,obhftfbhwlogElqn`bpwebmpabmhufqzqvmpivozwbph2s{8dlbodqftpoltfgdfjg>!pfwp6s{8-ip<73s{je#+pllmpfbwmlmfwvafyfqlpfmwqffgeb`wjmwldjewkbqn2;s{`bnfkjooalogyllnuljgfbpzqjmdejoosfbhjmjw`lpw0s{8ib`hwbdpajwpqloofgjwhmftmfbq?\"..dqltIPLMgvwzMbnfpbofzlv#olwpsbjmibyy`logfzfpejpkttt-qjphwbapsqfu23s{qjpf16s{Aovfgjmd033/abooelqgfbqmtjogal{-ebjqob`hufqpsbjqivmfwf`kje+\"sj`hfujo'+! tbqnolqgglfpsvoo/333jgfbgqbtkvdfpslwevmgavqmkqfe`foohfzpwj`hklvqolppevfo21s{pvjwgfboQPP!bdfgdqfzDFW!fbpfbjnpdjqobjgp;s{8mbuzdqjgwjsp :::tbqpobgz`bqp*8#~sks<kfoowbootklnyk9\t),\x0E\t#233kboo-\t\tB4s{8svpk`kbw3s{8`qft),?,kbpk46s{eobwqbqf#%%#wfoo`bnslmwlobjgnjppphjswfmwejmfnbofdfwpsolw733/\x0E\t\x0E\t`lloeffw-sks?aq=fqj`nlpwdvjgafoogfp`kbjqnbwkbwln,jnd% ;1ov`h`fmw3338wjmzdlmfkwnopfoogqvdEQFFmlgfmj`h<jg>olpfmvooubpwtjmgQPP#tfbqqfozaffmpbnfgvhfmbpb`bsftjpkdvoeW109kjwppolwdbwfhj`haovqwkfz26s{$$*8*8!=npjftjmpajqgplqwafwbpffhW2;9lqgpwqffnboo53s{ebqn\x0ElupalzpX3^-$*8!SLPWafbqhjgp*8~~nbqzwfmg+VH*rvbgyk9\n.pjy....sqls$*8\x0EojewW2:9uj`fbmgzgfaw=QPPsllomf`haoltW259gllqfuboW249ofwpebjolqbosloomlub`lopdfmf#\x0Elxplewqlnfwjooqlpp?k0=slvqebgfsjmh?wq=njmj*\x7F\"+njmfyk9\x04abqpkfbq33*8njoh#..=jqlmeqfggjphtfmwpljosvwp,ip,klozW119JPAMW139bgbnpffp?k1=iplm$/#$`lmwW129#QPPollsbpjbnllm?,s=plvoOJMFelqw`bqwW279?k2=;3s{\"..?:s{8W379njhf975Ymj`fjm`kZlqhqj`fyk9\b$**8svqfnbdfsbqbwlmfalmg904Y\\le\\$^*8333/yk9\x0Bwbmhzbqgaltoavpk965YIbub03s{\t\x7F~\t&@0&907YifeeF[SJ`bpkujpbdloepmltyk9\x05rvfq-`pppj`hnfbwnjm-ajmggfookjqfsj`pqfmw905YKWWS.132elwltloeFMG#{al{967YALGZgj`h8\t~\tf{jw906Yubqpafbw$~*8gjfw:::8bmmf~~?,Xj^-Obmdhn.^tjqfwlzpbggppfbobof{8\t\n~f`klmjmf-lqd336*wlmziftppbmgofdpqlle333*#133tjmfdfbqgldpallwdbqz`vwpwzofwfnswjlm-{no`l`hdbmd'+$-63s{Sk-Gnjp`bobmolbmgfphnjofqzbmvmj{gjp`*8~\tgvpw`ojs*-\t\t43s{.133GUGp4^=?wbsfgfnlj((*tbdffvqlskjolswpklofEBRpbpjm.15WobapsfwpVQO#avoh`llh8~\x0E\tKFBGX3^*baaqivbm+2:;ofpkwtjm?,j=plmzdvzpev`hsjsf\x7F.\t\"331*mgltX2^8X^8\tOld#pbow\x0E\t\n\nabmdwqjnabwk*x\x0E\t33s{\t~*8hl9\0effpbg=\x0Ep9,,#X^8wloosovd+*x\tx\x0E\t#-ip$133sgvboalbw-ISD*8\t~rvlw*8\t\t$*8\t\x0E\t~\x0E1327132613251324132;132:13131312131113101317131613151314131;131:130313021301130013071306130513041320132113221323133:133;133413351336133713301331133213332:::2::;2::42::52::62::72::02::12::22::32:;:2:;;2:;42:;52:;62:;72:;02:;12:;22:;32:4:2:4;2:442:452:462:472:402:412:422:432:5:2:5;2:542:552:562:572:502:512:522:532:6:2:6;2:642:652:662:672:602:612:622:632333231720:73333::::`lnln/Mpfpwffpwbsfqlwlglkb`f`bgbb/]lajfmg/Abbp/Aujgb`bpllwqlelqlplollwqb`vbogjilpjgldqbmwjslwfnbgfafbodlrv/Efpwlmbgbwqfpsl`l`bpbabilwlgbpjmlbdvbsvfpvmlpbmwfgj`fovjpfoobnbzlylmbbnlqsjpllaqb`oj`foolgjlpklqb`bpj<[<\\<Q<\\<R<P=l<\\=l=o=n<\\<Q<Y<S<R<R=n<T<[<Q<R<X<R=n<R<Z<Y<R<Q<T=i<q<\\<Y<Y<]=g<P=g<~=g=m<R<^=g<^<R<q<R<R<]<s<R<W<T<Q<T<L<H<q<Y<p=g=n=g<r<Q<T<P<X<\\<{<\\<x<\\<q=o<r<]=n<Y<t<[<Y<U<Q=o<P<P<N=g=o<Z5m5f4O5j5i4K5i4U5o5h4O5d4]4C5f4K5m5e5k5d5h5i5h5o4K5d5h5k4D4_4K5h4I5j5k5f4O5f5n4C5k5h4G5i4D5k5h5d5h5f4D5h4K5f4D5o4X5f4K5i4O5i5j4F4D5f5h5j4A4D5k5i5i4X5d4Xejqpwujgflojdkwtlqognfgjbtkjwf`olpfaob`hqjdkwpnbooallhpsob`fnvpj`ejfoglqgfqsljmwubovfofufowbaofalbqgklvpfdqlvstlqhpzfbqppwbwfwlgbztbwfqpwbqwpwzofgfbwksltfqsklmfmjdkwfqqlqjmsvwbalvwwfqnpwjwofwllopfufmwol`bowjnfpobqdftlqgpdbnfppklqwpsb`fel`vp`ofbqnlgfoaol`hdvjgfqbgjlpkbqftlnfmbdbjmnlmfzjnbdfmbnfpzlvmdojmfpobwfq`lolqdqffmeqlmw%bns8tbw`kelq`fsqj`fqvofpafdjmbewfqujpjwjppvfbqfbpafoltjmgf{wlwboklvqpobafosqjmwsqfppavjowojmhppsffgpwvgzwqbgfelvmgpfmpfvmgfqpkltmelqnpqbmdfbggfgpwjoonlufgwbhfmbalufeobpkej{fglewfmlwkfqujftp`kf`hofdboqjufqjwfnprvj`hpkbsfkvnbmf{jpwdljmdnlujfwkjqgabpj`sfb`fpwbdftjgwkoldjmjgfbptqlwfsbdfpvpfqpgqjufpwlqfaqfbhplvwkulj`fpjwfpnlmwktkfqfavjogtkj`kfbqwkelqvnwkqffpslqwsbqwz@oj`holtfqojufp`obppobzfqfmwqzpwlqzvpbdfplvmg`lvqwzlvq#ajqwkslsvswzsfpbssozJnbdfafjmdvssfqmlwfpfufqzpkltpnfbmpf{wqbnbw`kwqb`hhmltmfbqozafdbmpvsfqsbsfqmlqwkofbqmdjufmmbnfgfmgfgWfqnpsbqwpDqlvsaqbmgvpjmdtlnbmebopfqfbgzbvgjlwbhfptkjof-`ln,ojufg`bpfpgbjoz`kjogdqfbwivgdfwklpfvmjwpmfufqaqlbg`lbpw`lufqbssofejofp`z`ofp`fmfsobmp`oj`htqjwfrvffmsjf`ffnbjoeqbnflogfqsklwlojnjw`b`kf`jujop`boffmwfqwkfnfwkfqfwlv`kalvmgqlzbobphfgtklofpjm`fpwl`h#mbnfebjwkkfbqwfnswzleefqp`lsfltmfgnjdkwboavnwkjmhaollgbqqbznbilqwqvpw`bmlmvmjlm`lvmwubojgpwlmfPwzofOldjmkbsszl``vqofew9eqfpkrvjwfejonpdqbgfmffgpvqabmejdkwabpjpklufqbvwl8qlvwf-kwnonj{fgejmboZlvq#pojgfwlsj`aqltmbolmfgqbtmpsojwqfb`kQjdkwgbwfpnbq`krvlwfdllgpOjmhpglvawbpzm`wkvnaboolt`kjfezlvwkmlufo23s{8pfqufvmwjokbmgp@kf`hPsb`frvfqzibnfpfrvbowtj`f3/333Pwbqwsbmfoplmdpqlvmgfjdkwpkjewtlqwkslpwpofbgptffhpbuljgwkfpfnjofpsobmfpnbqwboskbsobmwnbqhpqbwfpsobzp`objnpbofpwf{wppwbqptqlmd?,k0=wkjmd-lqd,nvowjkfbqgSltfqpwbmgwlhfmplojg+wkjpaqjmdpkjsppwbeewqjfg`boopevoozeb`wpbdfmwWkjp#,,..=bgnjmfdzswFufmw26s{8Fnbjowqvf!`qlpppsfmwaoldpal{!=mlwfgofbuf`kjmbpjyfpdvfpw?,k7=qlalwkfbuzwqvf/pfufmdqbmg`qjnfpjdmpbtbqfgbm`fskbpf=?\"..fm\\VP% 0:8133s{\\mbnfobwjmfmilzbib{-bwjlmpnjwkV-P-#klogpsfwfqjmgjbmbu!=`kbjmp`lqf`lnfpgljmdsqjlqPkbqf2::3pqlnbmojpwpibsbmeboopwqjboltmfqbdqff?,k1=bavpfbofqwlsfqb!.,,T`bqgpkjoopwfbnpSklwlwqvwk`ofbm-sks<pbjmwnfwboolvjpnfbmwsqlleaqjfeqlt!=dfmqfwqv`hollhpUbovfEqbnf-mfw,..=\t?wqz#x\tubq#nbhfp`lpwpsobjmbgvowrvfpwwqbjmobalqkfosp`bvpfnbdj`nlwlqwkfjq163s{ofbpwpwfsp@lvmw`lvogdobpppjgfpevmgpklwfobtbqgnlvwknlufpsbqjpdjufpgvw`kwf{bpeqvjwmvoo/\x7F\x7FX^8wls!=\t?\"..SLPW!l`fbm?aq,=eollqpsfbhgfswk#pjyfabmhp`bw`k`kbqw13s{8bojdmgfboptlvog63s{8vqo>!sbqhpnlvpfNlpw#---?,bnlmdaqbjmalgz#mlmf8abpfg`bqqzgqbewqfefqsbdf\\klnf-nfwfqgfobzgqfbnsqlufiljmw?,wq=gqvdp?\"..#bsqjojgfboboofmf{b`welqwk`lgfpoldj`Ujft#pffnpaobmhslqwp#+133pbufg\\ojmhdlbopdqbmwdqffhklnfpqjmdpqbwfg03s{8tklpfsbqpf+*8!#Aol`hojmv{ilmfpsj{fo$*8!=*8je+.ofewgbujgklqpfEl`vpqbjpfal{fpWqb`hfnfmw?,fn=abq!=-pq`>wltfqbow>!`baofkfmqz17s{8pfwvsjwbozpkbqsnjmlqwbpwftbmwpwkjp-qfpfwtkffodjqop,`pp,233&8`ovappwveeajaofulwfp#2333hlqfb~*8\x0E\tabmgprvfvf>#x~8;3s{8`hjmdx\x0E\t\n\nbkfbg`ol`hjqjpkojhf#qbwjlpwbwpElqn!zbkll*X3^8Balvwejmgp?,k2=gfavdwbphpVQO#>`foop~*+*821s{8sqjnfwfoopwvqmp3{533-isd!psbjmafb`kwb{fpnj`qlbmdfo..=?,djewppwfuf.ojmhalgz-~*8\t\nnlvmw#+2::EBR?,qldfqeqbmh@obpp1;s{8effgp?k2=?p`lwwwfpwp11s{8gqjmh*#\x7F\x7F#oftjppkboo 30:8#elq#olufgtbpwf33s{8ib9\x0Fnpjnlm?elmwqfsoznffwpvmwfq`kfbswjdkwAqbmg*#\">#gqfpp`ojspqllnplmhfznlajonbjm-Mbnf#sobwfevmmzwqffp`ln,!2-isdtnlgfsbqbnPWBQWofew#jggfm/#132*8\t~\telqn-ujqvp`kbjqwqbmptlqpwSbdfpjwjlmsbw`k?\"..\tl.`b`ejqnpwlvqp/333#bpjbmj((*xbglaf$*X3^jg>23alwk8nfmv#-1-nj-smd!hfujm`lb`k@kjogaqv`f1-isdVQO*(-isd\x7Fpvjwfpoj`fkbqqz213!#ptffwwq=\x0E\tmbnf>gjfdlsbdf#ptjpp..=\t\t eee8!=Old-`ln!wqfbwpkffw*#%%#27s{8poffsmwfmwejofgib9\x0Fojg>!`Mbnf!tlqpfpklwp.al{.gfowb\t%ow8afbqp97;Y?gbwb.qvqbo?,b=#psfmgabhfqpklsp>#!!8sks!=`wjlm20s{8aqjbmkfoolpjyf>l>&1E#iljmnbzaf?jnd#jnd!=/#eipjnd!#!*X3^NWlsAWzsf!mftozGbmph`yf`kwqbjohmltp?,k6=ebr!=yk.`m23*8\t.2!*8wzsf>aovfpwqvozgbujp-ip$8=\x0E\t?\"pwffo#zlv#k1=\x0E\telqn#ifpvp233&#nfmv-\x0E\t\n\x0E\ttbofpqjphpvnfmwggjmda.ojhwfb`kdje!#ufdbpgbmphffpwjpkrjspvlnjplaqfgfpgffmwqfwlglpsvfgfb/]lpfpw/Mwjfmfkbpwblwqlpsbqwfglmgfmvfulkb`fqelqnbnjpnlnfilqnvmglbrv/Ag/Abpp/_olbzvgbef`kbwlgbpwbmwlnfmlpgbwlplwqbppjwjlnv`klbklqbovdbqnbzlqfpwlpklqbpwfmfqbmwfpelwlpfpwbpsb/Apmvfubpbovgelqlpnfgjlrvjfmnfpfpslgfq`kjofpfq/Muf`fpgf`jqilp/Efpwbqufmwbdqvslkf`klfoolpwfmdlbnjdl`lpbpmjufodfmwfnjpnbbjqfpivojlwfnbpkb`jbebulqivmjlojaqfsvmwlavfmlbvwlqbaqjoavfmbwf{wlnbqylpbafqojpwbovfdl`/_nlfmfqlivfdlsfq/Vkbafqfpwlzmvm`bnvifqubolqevfqbojaqldvpwbjdvboulwlp`bplpdv/Absvfglplnlpbujplvpwfggfafmml`kfavp`bebowbfvqlppfqjfgj`kl`vqpl`obuf`bpbpof/_msobylobqdllaqbpujpwbbslzlivmwlwqbwbujpwl`qfbq`bnslkfnlp`jm`l`bqdlsjplplqgfmkb`fm/Mqfbgjp`lsfgql`fq`bsvfgbsbsfonfmlq/Vwjo`obqlilqdf`boofslmfqwbqgfmbgjfnbq`bpjdvffoobppjdol`l`kfnlwlpnbgqf`obpfqfpwlmj/]lrvfgbsbpbqabm`lkjilpujbifsbaol/Epwfujfmfqfjmlgfibqelmgl`bmbomlqwfofwqb`bvpbwlnbqnbmlpovmfpbvwlpujoobufmglsfpbqwjslpwfmdbnbq`loofubsbgqfvmjglubnlpylmbpbnalpabmgbnbqjbbavplnv`kbpvajqqjlibujujqdqbgl`kj`bboo/Ailufmgj`kbfpwbmwbofppbojqpvfolsfplpejmfpoobnbavp`l/Epwboofdbmfdqlsobybkvnlqsbdbqivmwbglaofjpobpalopbab/]lkbaobov`kb/mqfbgj`fmivdbqmlwbpuboofboo/M`bqdbglolqbabilfpw/Edvpwlnfmwfnbqjlejqnb`lpwlej`kbsobwbkldbqbqwfpofzfpbrvfonvpflabpfpsl`lpnjwbg`jfol`kj`lnjfgldbmbqpbmwlfwbsbgfafpsobzbqfgfppjfwf`lqwf`lqfbgvgbpgfpflujfilgfpfbbdvbp%rvlw8glnbjm`lnnlmpwbwvpfufmwpnbpwfqpzpwfnb`wjlmabmmfqqfnlufp`qloovsgbwfdolabonfgjvnejowfqmvnafq`kbmdfqfpvowsvaoj`p`qffm`kllpfmlqnbowqbufojppvfpplvq`fwbqdfwpsqjmdnlgvofnlajofptjw`ksklwlpalqgfqqfdjlmjwpfoepl`jbob`wjuf`lovnmqf`lqgelooltwjwof=fjwkfqofmdwkebnjozeqjfmgobzlvwbvwklq`qfbwfqfujftpvnnfqpfqufqsobzfgsobzfqf{sbmgsloj`zelqnbwglvaofsljmwppfqjfpsfqplmojujmdgfpjdmnlmwkpelq`fpvmjrvftfjdkwsflsoffmfqdzmbwvqfpfbq`kejdvqfkbujmd`vpwlnleepfwofwwfqtjmgltpvanjwqfmgfqdqlvspvsolbgkfbowknfwklgujgflpp`klloevwvqfpkbgltgfabwfubovfpLaif`wlwkfqpqjdkwpofbdvf`kqlnfpjnsofmlwj`fpkbqfgfmgjmdpfbplmqfslqwlmojmfprvbqfavwwlmjnbdfpfmbaofnlujmdobwfpwtjmwfqEqbm`fsfqjlgpwqlmdqfsfbwOlmglmgfwbjoelqnfggfnbmgpf`vqfsbppfgwlddofsob`fpgfuj`fpwbwj``jwjfppwqfbnzfooltbwwb`hpwqffweojdkwkjggfmjmel!=lsfmfgvpfevouboofz`bvpfpofbgfqpf`qfwpf`lmggbnbdfpslqwpf{`fswqbwjmdpjdmfgwkjmdpfeef`wejfogppwbwfpleej`fujpvbofgjwlqulovnfQfslqwnvpfvnnlujfpsbqfmwb``fppnlpwoznlwkfq!#jg>!nbqhfwdqlvmg`kbm`fpvqufzafelqfpznalonlnfmwpsff`knlwjlmjmpjgfnbwwfq@fmwfqlaif`wf{jpwpnjggofFvqlsfdqltwkofdb`znbmmfqfmlvdk`bqffqbmptfqlqjdjmslqwbo`ojfmwpfof`wqbmgln`olpfgwlsj`p`lnjmdebwkfqlswjlmpjnsozqbjpfgfp`bsf`klpfm`kvq`kgfejmfqfbplm`lqmfqlvwsvwnfnlqzjeqbnfsloj`fnlgfopMvnafqgvqjmdleefqppwzofphjoofgojpwfg`boofgpjoufqnbqdjmgfofwfafwwfqaqltpfojnjwpDolabopjmdoftjgdfw`fmwfqavgdfwmltqbs`qfgjw`objnpfmdjmfpbefwz`klj`fpsjqjw.pwzofpsqfbgnbhjmdmffgfgqvppjbsofbpff{wfmwP`qjswaqlhfmbooltp`kbqdfgjujgfeb`wlqnfnafq.abpfgwkflqz`lmejdbqlvmgtlqhfgkfosfg@kvq`kjnsb`wpklvogbotbzpoldl!#alwwlnojpw!=*xubq#sqfej{lqbmdfKfbgfq-svpk+`lvsofdbqgfmaqjgdfobvm`kQfujftwbhjmdujpjlmojwwofgbwjmdAvwwlmafbvwzwkfnfpelqdlwPfbq`kbm`klqbonlpwolbgfg@kbmdfqfwvqmpwqjmdqfolbgNlajofjm`lnfpvssozPlvq`flqgfqpujftfg%maps8`lvqpfBalvw#jpobmg?kwno#`llhjfmbnf>!bnbylmnlgfqmbguj`fjm?,b=9#Wkf#gjboldklvpfpAFDJM#Nf{j`lpwbqwp`fmwqfkfjdkwbggjmdJpobmgbppfwpFnsjqfP`kllofeelqwgjqf`wmfbqoznbmvboPfof`w-\t\tLmfiljmfgnfmv!=SkjojsbtbqgpkbmgofjnslqwLeej`fqfdbqgphjoopmbwjlmPslqwpgfdqfftffhoz#+f-d-afkjmggl`wlqolddfgvmjwfg?,a=?,afdjmpsobmwpbppjpwbqwjpwjppvfg033s{\x7F`bmbgbbdfm`zp`kfnfqfnbjmAqbyjopbnsofoldl!=afzlmg.p`bofb``fswpfqufgnbqjmfEllwfq`bnfqb?,k2=\t\\elqn!ofbufppwqfpp!#,=\x0E\t-dje!#lmolbgolbgfqL{elqgpjpwfqpvqujuojpwfmefnbofGfpjdmpjyf>!bssfbowf{w!=ofufopwkbmhpkjdkfqelq`fgbmjnbobmzlmfBeqj`bbdqffgqf`fmwSflsof?aq#,=tlmgfqsqj`fpwvqmfg\x7F\x7F#x~8nbjm!=jmojmfpvmgbztqbs!=ebjofg`fmpvpnjmvwfafb`lmrvlwfp263s{\x7Ffpwbwfqfnlwffnbjo!ojmhfgqjdkw8pjdmboelqnbo2-kwnopjdmvssqjm`feolbw9-smd!#elqvn-B``fppsbsfqpplvmgpf{wfmgKfjdkwpojgfqVWE.;!%bns8#Afelqf-#TjwkpwvgjlltmfqpnbmbdfsqlejwiRvfqzbmmvbosbqbnpalvdkwebnlvpdlldofolmdfqj((*#xjpqbfopbzjmdgf`jgfklnf!=kfbgfqfmpvqfaqbm`ksjf`fpaol`h8pwbwfgwls!=?qb`jmdqfpjyf..%dw8sb`jwzpf{vboavqfbv-isd!#23/333lawbjmwjwofpbnlvmw/#Jm`-`lnfgznfmv!#ozqj`pwlgbz-jmgffg`lvmwz\\oldl-EbnjozollhfgNbqhfwopf#jeSobzfqwvqhfz*8ubq#elqfpwdjujmdfqqlqpGlnbjm~fopfxjmpfqwAold?,ellwfqoldjm-ebpwfqbdfmwp?algz#23s{#3sqbdnbeqjgbzivmjlqgloobqsob`fg`lufqpsovdjm6/333#sbdf!=alpwlm-wfpw+bubwbqwfpwfg\\`lvmwelqvnpp`kfnbjmgf{/ejoofgpkbqfpqfbgfqbofqw+bssfbqPvanjwojmf!=algz!=\t)#WkfWklvdkpffjmdifqpfzMftp?,ufqjezf{sfqwjmivqztjgwk>@llhjfPWBQW#b`qlpp\\jnbdfwkqfbgmbwjufsl`hfwal{!=\tPzpwfn#Gbujg`bm`fqwbaofpsqlufgBsqjo#qfboozgqjufqjwfn!=nlqf!=albqgp`lolqp`bnsvpejqpw#\x7F\x7F#X^8nfgjb-dvjwbqejmjpktjgwk9pkltfgLwkfq#-sks!#bppvnfobzfqptjoplmpwlqfpqfojfeptfgfm@vpwlnfbpjoz#zlvq#Pwqjmd\t\tTkjowbzolq`ofbq9qfplqweqfm`kwklvdk!*#(#!?algz=avzjmdaqbmgpNfnafqmbnf!=lssjmdpf`wlq6s{8!=upsb`fslpwfqnbilq#`leeffnbqwjmnbwvqfkbssfm?,mbu=hbmpbpojmh!=Jnbdfp>ebopftkjof#kpsb`f3%bns8#\t\tJm##sltfqSlophj.`lolqilqgbmAlwwlnPwbqw#.`lvmw1-kwnomftp!=32-isdLmojmf.qjdkwnjoofqpfmjlqJPAM#33/333#dvjgfpubovf*f`wjlmqfsbjq-{no!##qjdkwp-kwno.aol`hqfdF{s9klufqtjwkjmujqdjmsklmfp?,wq=\x0Evpjmd#\t\nubq#=$*8\t\n?,wg=\t?,wq=\tabkbpbaqbpjodbofdlnbdzbqslophjpqsphj4]4C5d\bTA\nzk\x0BBl\bQ\x7F\x0BUm\x05Gx\bSM\nmC\bTA\twQ\nd}\bW@\bTl\bTF\ti@\tcT\x0BBM\x0B|j\x04BV\tqw\tcC\bWI\npa\tfM\n{Z\x05{X\bTF\bVV\bVK\t\x7Fm\x04kF\t[]\bPm\bTv\nsI\x0Bpg\t[I\bQp\x04mx\x0B_W\n^M\npe\x0BQ}\x0BGu\nel\npe\x04Ch\x04BV\bTA\tSo\nzk\x0BGL\x0BxD\nd[\x05Jz\x05MY\bQp\x04li\nfl\npC\x05{B\x05Nt\x0BwT\ti_\bTg\x04QQ\n|p\x0BXN\bQS\x0BxD\x04QC\bWZ\tpD\x0BVS\bTW\x05Nt\x04Yh\nzu\x04Kj\x05N}\twr\tHa\n_D\tj`\x0BQ}\x0BWp\nxZ\x04{c\tji\tBU\nbD\x04a|\tTn\tpV\nZd\nmC\x0BEV\x05{X\tc}\tTo\bWl\bUd\tIQ\tcg\x0Bxs\nXW\twR\x0Bek\tc}\t]y\tJn\nrp\neg\npV\nz\\\x05{W\npl\nz\\\nzU\tPc\t`{\bV@\nc|\bRw\ti_\bVb\nwX\tHv\x04Su\bTF\x0B_W\x0BWs\x0BsI\x05m\x7F\nTT\ndc\tUS\t}f\tiZ\bWz\tc}\x04MD\tBe\tiD\x0B@@\bTl\bPv\t}t\x04Sw\x04M`\x0BnU\tkW\x0Bed\nqo\x0BxY\tA|\bTz\x0By`\x04BR\x04BM\tia\x04XU\nyu\x04n^\tfL\tiI\nXW\tfD\bWz\bW@\tyj\t\x7Fm\tav\tBN\x0Bb\\\tpD\bTf\nY[\tJn\bQy\t[^\x0BWc\x0Byu\x04Dl\x04CJ\x0BWj\x0BHR\t`V\x0BuW\tQy\np@\x0BGu\x05pl\x04Jm\bW[\nLP\nxC\n`m\twQ\x05ui\x05\x7FR\nbI\twQ\tBZ\tWV\x04BR\npg\tcg\x05ti\x04CW\n_y\tRg\bQa\x0BQB\x0BWc\nYb\x05le\ngE\x04Su\nL[\tQ\x7F\tea\tdj\x0B]W\nb~\x04M`\twL\bTV\bVH\nt\x7F\npl\t|b\x05s_\bU|\bTa\x04oQ\x05lv\x04Sk\x04M`\bTv\x0BK}\nfl\tcC\x04oQ\x04BR\tHk\t|d\bQp\tHK\tBZ\x0BHR\bPv\x0BLx\x0BEZ\bT\x7F\bTv\tiD\x05oD\x05MU\x0BwB\x04Su\x05k`\x04St\ntC\tPl\tKg\noi\tjY\x0BxY\x04h}\nzk\bWZ\t\x7Fm\x0Be`\tTB\tfE\nzk\t`z\x04Yh\nV|\tHK\tAJ\tAJ\bUL\tp\\\tql\nYc\x04Kd\nfy\x04Yh\t[I\x0BDg\x04Jm\n]n\nlb\bUd\n{Z\tlu\tfs\x04oQ\bTW\x04Jm\x0BwB\tea\x04Yh\x04BC\tsb\tTn\nzU\n_y\x0BxY\tQ]\ngw\x04mt\tO\\\ntb\bWW\bQy\tmI\tV[\ny\\\naB\x0BRb\twQ\n]Q\x04QJ\bWg\x0BWa\bQj\ntC\bVH\nYm\x0Bxs\bVK\nel\bWI\x0BxY\x04Cq\ntR\x0BHV\bTl\bVw\tay\bQa\bVV\t}t\tdj\nr|\tp\\\twR\n{i\nTT\t[I\ti[\tAJ\x0Bxs\x0B_W\td{\x0BQ}\tcg\tTz\tA|\tCj\x0BLm\x05N}\x05m\x7F\nbK\tdZ\tp\\\t`V\tsV\np@\tiD\twQ\x0BQ}\bTf\x05ka\x04Jm\x0B@@\bV`\tzp\n@N\x04Sw\tiI\tcg\noi\x04Su\bVw\x04lo\x04Cy\tc}\x0Bb\\\tsU\x04BA\bWI\bTf\nxS\tVp\nd|\bTV\x0BbC\tNo\x05Ju\nTC\t|`\n{Z\tD]\bU|\tc}\x05lm\bTl\tBv\tPl\tc}\bQp\t\x7Fm\nLk\tkj\n@N\x04Sb\x04KO\tj_\tp\\\nzU\bTl\bTg\bWI\tcf\x04XO\bWW\ndz\x04li\tBN\nd[\bWO\x04MD\x0BKC\tdj\tI_\bVV\ny\\\x0BLm\x05xl\txB\tkV\x0Bb\\\x0BJW\x0BVS\tVx\x0BxD\td{\x04MD\bTa\t|`\x0BPz\x04R}\x0BWs\x04BM\nsI\x04CN\bTa\x04Jm\npe\ti_\npV\nrh\tRd\tHv\n~A\nxR\x0BWh\x0BWk\nxS\x0BAz\x0BwX\nbI\x04oQ\tfw\nqI\nV|\nun\x05z\x7F\x0Bpg\td\\\x0BoA\x05{D\ti_\x05xB\bT\x7F\t`V\x05qr\tTT\x04g]\x04CA\x0BuR\tVJ\tT`\npw\x0BRb\tI_\nCx\x04Ro\x0BsI\x04Cj\x04Kh\tBv\tWV\x04BB\x05oD\x05{D\nhc\x04Km\x0B^R\tQE\n{I\np@\nc|\x05Gt\tc}\x04Dl\nzU\x05qN\tsV\x05k}\tHh\x0B|j\nqo\x05u|\tQ]\x0Bek\x05\x7FZ\x04M`\x04St\npe\tdj\bVG\x0BeE\t\x7Fm\x0BWc\x04|I\n[W\tfL\bT\x7F\tBZ\x04Su\x0BKa\x04Cq\x05Nt\x04Y[\nqI\bTv\tfM\ti@\t}f\x04B\\\tQy\x0BBl\bWg\x04XD\x05kc\x0Bx[\bVV\tQ]\t\x7Fa\tPy\x0BxD\nfI\t}f\x05oD\tdj\tSG\x05ls\t~D\x04CN\n{Z\t\\v\n_D\nhc\x0Bx_\x04C[\tAJ\nLM\tVx\x04CI\tbj\tc^\tcF\ntC\x04Sx\twr\x04XA\bU\\\t|a\x0BK\\\bTV\bVj\nd|\tfs\x04CX\ntb\bRw\tVx\tAE\tA|\bT\x7F\x05Nt\x0BDg\tVc\bTl\x04d@\npo\t\x7FM\tcF\npe\tiZ\tBo\bSq\nfH\x04l`\bTx\bWf\tHE\x0BF{\tcO\tfD\nlm\x0BfZ\nlm\x0BeU\tdG\x04BH\bTV\tSi\x05MW\nwX\nz\\\t\\c\x04CX\nd}\tl}\bQp\bTV\tF~\bQ\x7F\t`i\ng@\x05nO\bUd\bTl\nL[\twQ\tji\ntC\t|J\nLU\naB\x0BxY\x04Kj\tAJ\x05uN\ti[\npe\x04Sk\x0BDg\x0Bx]\bVb\bVV\nea\tkV\nqI\bTa\x04Sk\nAO\tpD\ntb\nts\nyi\bVg\ti_\x0B_W\nLk\x05Nt\tyj\tfM\x04R\x7F\tiI\bTl\x0BwX\tsV\x0BMl\nyu\tAJ\bVj\x04KO\tWV\x0BA}\x0BW\x7F\nrp\tiD\x0B|o\x05lv\x0BsI\x04BM\td~\tCU\bVb\x04eV\npC\x0BwT\tj`\tc}\x0Bxs\x0Bps\x0Bvh\tWV\x0BGg\x0BAe\x0BVK\x0B]W\trg\x0BWc\x05F`\tBr\x0Bb\\\tdZ\bQp\nqI\x04kF\nLk\x0BAR\bWI\bTg\tbs\tdw\n{L\n_y\tiZ\bTA\tlg\bVV\bTl\tdk\n`k\ta{\ti_\x05{A\x05wj\twN\x0B@@\bTe\ti_\n_D\twL\nAH\x0BiK\x0Bek\n[]\tp_\tyj\bTv\tUS\t[r\n{I\nps\x05Gt\x0BVK\npl\x04S}\x0BWP\t|d\x04MD\x0BHV\bT\x7F\x04R}\x04M`\bTV\bVH\x05lv\x04Ch\bW[\x04Ke\tR{\x0B^R\tab\tBZ\tVA\tB`\nd|\nhs\x04Ke\tBe\x04Oi\tR{\td\\\x05nB\bWZ\tdZ\tVJ\x05Os\t\x7Fm\x04uQ\x0BhZ\x04Q@\x04QQ\nfI\bW[\x04B\\\x04li\nzU\nMd\x04M`\nxS\bVV\n\\}\x0BxD\t\x7Fm\bTp\x04IS\nc|\tkV\x05i~\tV{\x0BhZ\t|b\bWt\n@R\x0BoA\x0BnU\bWI\tea\tB`\tiD\tc}\tTz\x04BR\x0BQB\x05Nj\tCP\t[I\bTv\t`W\x05uN\x0Bpg\x0Bpg\x0BWc\tiT\tbs\twL\tU_\tc\\\t|h\x0BKa\tNr\tfL\nq|\nzu\nz\\\tNr\bUg\t|b\x04m`\bTv\nyd\nrp\bWf\tUX\x04BV\nzk\nd}\twQ\t}f\x04Ce\x0Bed\bTW\bSB\nxU\tcn\bTb\ne\x7F\ta\\\tSG\bU|\npV\nN\\\x04Kn\x0BnU\tAt\tpD\x0B^R\x0BIr\x04b[\tR{\tdE\x0BxD\x0BWK\x0BWA\bQL\bW@\x04Su\bUd\nDM\tPc\x04CA\x04Dl\x04oQ\tHs\x05wi\x04ub\n\x7Fa\bQp\x05Ob\nLP\bTl\x04Y[\x0BK}\tAJ\bQ\x7F\x04n^\x0BsA\bSM\nqM\bWZ\n^W\x0Bz{\x04S|\tfD\bVK\bTv\bPv\x04BB\tCP\x04dF\tid\x0Bxs\x04mx\x0Bws\tcC\ntC\tyc\x05M`\x0BW\x7F\nrh\bQp\x0BxD\x04\\o\nsI\x04_k\nzu\x04kF\tfD\x04Xs\x04XO\tjp\bTv\x04BS\x05{B\tBr\nzQ\nbI\tc{\x04BD\x04BV\x05nO\bTF\tca\x05Jd\tfL\tPV\tI_\nlK\x04`o\twX\npa\tgu\bP}\x05{^\bWf\n{I\tBN\npa\x04Kl\x0Bpg\tcn\tfL\x0Bvh\x04Cq\bTl\x0BnU\bSq\x04Cm\twR\bUJ\npe\nyd\nYg\x04Cy\x0BKW\tfD\nea\x04oQ\tj_\tBv\x04nM\x0BID\bTa\nzA\x05pl\n]n\bTa\tR{\tfr\n_y\bUg\x05{X\x05kk\x0BxD\x04|I\x05xl\nfy\x04Ce\x0BwB\nLk\x0Bd]\noi\n}h\tQ]\npe\bVw\x04Hk\x04OQ\nzk\tAJ\npV\bPv\ny\\\tA{\x04Oi\bSB\x04XA\x0BeE\tjp\nq}\tiD\x05qN\x0B^R\t\x7Fm\tiZ\tBr\bVg\noi\n\\X\tU_\nc|\x0BHV\bTf\tTn\x04\\N\x04\\N\nuB\x05lv\nyu\tTd\bTf\bPL\x0B]W\tdG\nA`\nw^\ngI\npe\tdw\nz\\\x05ia\bWZ\tcF\x04Jm\n{Z\bWO\x04_k\x04Df\x04RR\td\\\bVV\x0Bxs\x04BN\x05ti\x04lm\tTd\t]y\x0BHV\tSo\x0B|j\x04XX\tA|\x0BZ^\x0BGu\bTW\x05M`\x04kF\x0BhZ\x0BVK\tdG\x0BBl\tay\nxU\x05qE\x05nO\bVw\nqI\x04CX\ne\x7F\tPl\bWO\x0BLm\tdL\x05uH\x04Cm\tdT\x04fn\x0BwB\x05ka\x0BnU\n@M\nyT\tHv\t\\}\x04Kh\td~\x04Yh\x05k}\neR\td\\\bWI\t|b\tHK\tiD\bTW\x05MY\npl\bQ_\twr\x0BAx\tHE\bTg\bSq\x05vp\x0Bb\\\bWO\nOl\nsI\nfy\x0BID\t\\c\n{Z\n^~\npe\nAO\tTT\x0Bxv\x04k_\bWO\x0B|j\x0BwB\tQy\ti@\tPl\tHa\tdZ\x05k}\x04ra\tUT\x0BJc\x0Bed\np@\tQN\nd|\tkj\tHk\x04M`\noi\twr\td\\\nlq\no_\nlb\nL[\tac\x04BB\x04BH\x04Cm\npl\tIQ\bVK\x0Bxs\n`e\x0BiK\npa\x04Oi\tUS\bTp\tfD\nPG\x05kk\x04XA\nz\\\neg\x0BWh\twR\x05qN\nqS\tcn\x04lo\nxS\n^W\tBU\nt\x7F\tHE\tp\\\tfF\tfw\bVV\bW@\tak\x0BVK\x05ls\tVJ\bVV\x0BeE\x04\\o\nyX\nYm\x04M`\x05lL\nd|\nzk\tA{\x05sE\twQ\x04XT\nt\x7F\tPl\t]y\x0BwT\x05{p\x04MD\x0Bb\\\tQ]\x04Kj\tJn\nAH\x0BRb\tBU\tHK\t\\c\nfI\x05m\x7F\nqM\n@R\tSo\noi\x04BT\tHv\n_y\x04Kh\tBZ\t]i\bUJ\tV{\x04Sr\nbI\x0BGg\ta_\bTR\nfI\nfl\t[K\tII\x04S|\x0BuW\tiI\bWI\nqI\x0B|j\x04BV\bVg\bWZ\x04kF\x0Bx]\bTA\tab\tfr\ti@\tJd\tJd\x0Bps\nAO\bTa\x05xu\tiD\nzk\t|d\t|`\bW[\tlP\tdG\bVV\x0Bw}\x0BqO\ti[\bQ\x7F\bTz\x0BVF\twN\x05ts\tdw\bTv\neS\ngi\tNr\x05yS\npe\bVV\bSq\n`m\tyj\tBZ\x0BWX\bSB\tc\\\nUR\t[J\tc_\x04nM\bWQ\x0BAx\nMd\tBr\x05ui\x0BxY\bSM\x0BWc\x0B|j\x0Bxs\t}Q\tBO\bPL\bWW\tfM\nAO\tPc\x0BeU\x04e^\bTg\nqI\tac\bPv\tcF\x04oQ\tQ\x7F\x0BhZ\x05ka\nz\\\tiK\tBU\n`k\tCP\x04S|\x04M`\n{I\tS{\x04_O\tBZ\x04Zi\x04Sk\tps\tp\\\nYu\n]s\nxC\bWt\nbD\tkV\x0BGu\x05yS\nqA\t[r\neK\x04M`\tdZ\x05lL\bUg\bTl\nbD\tUS\x0Bb\\\tpV\ncc\x04S\\\tct\t`z\bPL\x0BWs\nA`\neg\bSq\x05uE\x04CR\x0BDg\t`W\x0Bz{\x0BWc\x04Sk\x04Sk\tbW\bUg\tea\nxZ\tiI\tUX\tVJ\nqn\tS{\x0BRb\bTQ\npl\x05Gt\x0BuW\x05uj\npF\nqI\tfL\t[I\tia\x04XO\nyu\x0BDg\x0Bed\tq{\x04VG\bQ\x7F\x05ka\tVj\tkV\txB\nd|\np@\tQN\tPc\tps\x04]j\tkV\toU\bTp\nzU\x05nB\x0BB]\ta{\bV@\n]n\x04m`\tcz\tR{\x04m`\bQa\x0BwT\bSM\x05MY\x05qN\tdj\x05~s\x0BQ}\x05MY\x0BMB\tBv\twR\bRg\x0BQ}\tql\x0BKC\nrm\x05xu\x04CC\x0BwB\x0Bvh\tBq\x04Xq\npV\ti_\x05Ob\x05uE\nbd\nqo\x0B{i\nC~\tBL\x0BeE\x05uH\bVj\x04Ey\x04Gz\x0BzR\x0B{i\tcf\n{Z\n]n\x04XA\x0BGu\x0BnU\thS\x0BGI\nCc\tHE\bTA\tHB\x04BH\x04Cj\nCc\bTF\tHE\nXI\tA{\bQ\x7F\tc\\\x0BmO\x0BWX\nfH\np@\x05MY\bTF\nlK\tBt\nzU\tTT\x04Km\x0BwT\npV\ndt\x0ByI\tVx\tQ\x7F\tRg\tTd\nzU\bRS\nLM\twA\x04nM\tTn\ndS\t]g\nLc\x0BwB\t}t\t[I\tCP\x04kX\x0BFm\x0BhZ\x05m\x7F\ti[\np@\x0BQ}\x0BW\x7F\t|d\nMO\nMd\tf_\tfD\tcJ\tHz\x0BRb\tio\tPy\x04Y[\nxU\tct\x0B@@\tww\bPv\x04BM\x04FF\ntb\x05v|\x0BKm\tBq\tBq\x04Kh\x04`o\nZd\x04XU\ti]\t|`\tSt\x04B\\\bQ\x7F\x0B_W\tTJ\nqI\t|a\tA{\x0BuP\x04MD\tPl\nxR\tfL\x0Bws\tc{\td\\\bV`\neg\tHK\x05kc\nd|\bVV\ny\\\x05kc\ti]\bVG\t`V\tss\tI_\tAE\tbs\tdu\nel\tpD\x0BW\x7F\nqs\x05lv\bSM\x04Zi\x0BVK\x05ia\x0BQB\tQ\x7F\n{Z\bPt\x0BKl\nlK\nhs\ndS\bVK\x05mf\nd^\tkV\tcO\nc|\bVH\t\\]\bTv\bSq\tmI\x0BDg\tVJ\tcn\ny\\\bVg\bTv\nyX\bTF\t]]\bTp\noi\nhs\x0BeU\nBf\tdj\x05Mr\n|p\t\\g\t]r\bVb\x05{D\nd[\x04XN\tfM\tO\\\x05s_\tcf\tiZ\x04XN\x0BWc\tqv\n`m\tU^\x05oD\nd|\x0BGg\tdE\x0Bwf\x04lo\x04u}\nd|\x05oQ\t`i\x04Oi\x0BxD\ndZ\nCx\x04Yw\nzk\ntb\ngw\tyj\tB`\nyX\x0Bps\ntC\x0BpP\x0Bqw\bPu\bPX\tDm\npw\x05Nj\tss\taG\x0Bxs\bPt\noL\x04Gz\tOk\ti@\ti]\x04eC\tIQ\tii\tdj\x0B@J\t|d\x05uh\bWZ\x0BeU\x0BnU\bTa\tcC\x04g]\nzk\x04Yh\bVK\nLU\np@\ntb\ntR\tCj\x0BNP\ti@\bP{\n\\}\n{c\nwX\tfL\bVG\tc{\t|`\tAJ\t|C\tfD\x05ln\t|d\tbs\nqI\x05{B\x0BAx\np@\nzk\x0BRb\x05Os\x0BWS\x04e^\x0BD_\tBv\x0BWd\bVb\x0Bxs\x0BeE\bRw\n]n\n|p\x0Bg|\tfw\x05kc\bTI\x05ka\n\\T\x04Sp\tju\x0Bps\npe\x05u|\x0BGr\bVe\tCU\x04]M\x04XU\x0BxD\bTa\tIQ\x0BWq\tCU\tam\tdj\bSo\x04Sw\x0BnU\x04Ch\tQ]\x05s_\bPt\tfS\bTa\t\\}\n@O\x04Yc\tUZ\bTx\npe\x0BnU\nzU\t|}\tiD\nz\\\bSM\x0BxD\x04BR\nzQ\tQN\x04]M\x04Yh\nLP\x0BFm\x0BLX\x05vc\x0Bql\x05ka\tHK\bVb\ntC\nCy\bTv\nuV\x04oQ\t`z\t[I\tB`\x0BRb\tyj\tsb\x0BWs\bTl\tkV\x0Bed\ne\x7F\x05lL\x0BxN\t\x7Fm\nJn\tjY\x0BxD\bVb\bSq\x0Byu\twL\x0BXL\bTA\tpg\tAt\tnD\x04XX\twR\npl\nhw\x05yS\nps\tcO\bW[\x0B|j\x04XN\tsV\tp\\\tBe\nb~\nAJ\n]e\x05k`\x05qN\tdw\tWV\tHE\x0BEV\x05Jz\tid\tB`\tzh\x05E]\tfD\bTg\x05qN\bTa\tja\x04Cv\bSM\nhc\bUe\x05t_\tie\x04g]\twQ\nPn\bVB\tjw\bVg\x0BbE\tBZ\x0BRH\bP{\tjp\n\\}\ta_\tcC\t|a\x0BD]\tBZ\ti[\tfD\x0BxW\no_\td\\\n_D\ntb\t\\c\tAJ\nlK\x04oQ\x04lo\x0BLx\x0BM@\bWZ\x04Kn\x0Bpg\nTi\nIv\n|r\x0B@}\x05Jz\x05Lm\x05Wh\x05k}\x05ln\x0BxD\n]s\x04gc\x0Bps\tBr\bTW\x0BBM\x05tZ\nBY\x04DW\tjf\x0BSW\x04C}\nqo\tdE\tmv\tIQ\bPP\bUb\x05lv\x04BC\nzQ\t[I\x0Bgl\nig\bUs\x04BT\x0BbC\bSq\tsU\tiW\nJn\tSY\tHK\trg\npV\x0BID\x0B|j\x04KO\t`S\t|a`vbmglfmujbqnbgqjgavp`bqjmj`jlwjfnslslqrvf`vfmwbfpwbglsvfgfmivfdlp`lmwqbfpw/Mmmlnaqfwjfmfmsfqejonbmfqbbnjdlp`jvgbg`fmwqlbvmrvfsvfgfpgfmwqlsqjnfqsqf`jlpfd/Vmavfmlpuloufqsvmwlppfnbmbkba/Abbdlpwlmvfulpvmjglp`bqolpfrvjslmj/]lpnv`klpbodvmb`lqqfljnbdfmsbqwjqbqqjabnbq/Abklnaqffnsoflufqgbg`bnajlnv`kbpevfqlmsbpbglo/Amfbsbqf`fmvfubp`vqplpfpwbabrvjfqlojaqlp`vbmwlb``fplnjdvfoubqjlp`vbwqlwjfmfpdqvslppfq/Mmfvqlsbnfgjlpeqfmwfb`fq`bgfn/Mplefqwb`l`kfpnlgfoljwbojbofwqbpbod/Vm`lnsqb`vbofpf{jpwf`vfqslpjfmglsqfmpboofdbqujbifpgjmfqlnvq`jbslgq/Msvfpwlgjbqjlsvfaolrvjfqfnbmvfosqlsjl`qjpjp`jfqwlpfdvqlnvfqwfevfmwf`fqqbqdqbmgffef`wlsbqwfpnfgjgbsqlsjbleqf`fwjfqqbf.nbjoubqjbpelqnbpevwvqllaifwlpfdvjqqjfpdlmlqnbpnjpnlp/Vmj`l`bnjmlpjwjlpqby/_mgfajglsqvfabwlofglwfm/Abifp/Vpfpsfql`l`jmblqjdfmwjfmgb`jfmwl`/Mgjykbaobqpfq/Abobwjmbevfqybfpwjoldvfqqbfmwqbq/E{jwlo/_sfybdfmgbu/Agflfujwbqsbdjmbnfwqlpibujfqsbgqfpe/M`jo`bafyb/Mqfbppbojgbfmu/Alibs/_mbavplpajfmfpwf{wlpoofubqsvfgbmevfqwf`ln/Vm`obpfpkvnbmlwfmjglajoablvmjgbgfpw/Mpfgjwbq`qfbgl<X<W=c=k=n<R<V<\\<V<T<W<T=a=n<R<^=m<Y<Y<_<R<S=l<T=n<\\<V<Y=e<Y=o<Z<Y<v<\\<V<]<Y<[<]=g<W<R<Q<T<~=m<Y<S<R<X<A=n<R=n<R<P=k<Y<P<Q<Y=n<W<Y=n=l<\\<[<R<Q<\\<_<X<Y<P<Q<Y<x<W=c<s=l<T<Q<\\=m<Q<T=i=n<Y<P<V=n<R<_<R<X<^<R=n=n<\\<P<M<D<|<P<\\=c<K=n<R<^<\\=m<^<\\<P<Y<P=o<N<\\<V<X<^<\\<Q<\\<P=a=n<T=a=n=o<~<\\<P=n<Y=i<S=l<R=n=o=n<Q<\\<X<X<Q=c<~<R=n=n=l<T<Q<Y<U<~<\\=m<Q<T<P=m<\\<P=n<R=n=l=o<]<r<Q<T<P<T=l<Q<Y<Y<r<r<r<W<T=j=a=n<\\<r<Q<\\<Q<Y<P<X<R<P<P<R<U<X<^<Y<R<Q<R=m=o<X\fHy\fIk\fHU\fId\fHy\fIl\fHT\fIk\fHy\fHR\fHy\fIg\fHx\fH\\\fHF\fH\\\fHD\fIk\fHc\fHy\fHy\fHS\fHA\fIl\fHk\fHT\fHy\fH\\\fHH\fIg\fHU\fIg\fHj\fHF\fHU\fIl\fHC\fHU\fHC\fHR\fHH\fHy\fHI\fHRibdqbm\fHj\fHp\fHp\fIg\fHi\fH@\fHJ\fIg\fH{\fHd\fHp\fHR\fH{\fHc\fHU\fHB\fHk\fHD\fHY\fHU\fHC\fIk\fHI\fIk\fHI\fIl\fHt\fH\\\fHp\fH@\fHJ\fIl\fHy\fHd\fHp\fIl\fHY\fIk\fHD\fHd\fHD\fHc\fHU\fH\\\fHe\fHT\fHB\fIk\fHy\fHB\fHY\fIg\fH^\fIk\fHT\fH@\fHB\fHd\fHJ\fIk\fH\x7F\fH\\\fHj\fHB\fH@\fHT\fHA\fH\\\fH@\fHD\fHv\fH^\fHB\fHD\fHj\fH{\fHT\fIl\fH^\fIl4U5h5e4I5h5e5k4\\4K4N4B4]4U4C4C4K5h5e5k4\\5k4Y5d4]4V5f4]5o4K5j5d5h4K4D5f5j4U4]4Z4\\5h5o5k5j4K5f5d5i5n4K5h4U5h5f4K5j4K5h5o5j4A4F5e5n4D5h5d4A4E4K4B4]5m5n4[4U4D4C4]5o5j4I4\\4K5o5i4K4K4A4C4I5h4K5m5f5k4D4U4Z5o5f5m4D4A4G5d5i5j5d5k5d4O5j4K4@4C4K5h5k4K4_5h5i4U5j4C5h5f4_4U4D4]4Y5h5e5i5j4\\4D5k4K4O5j5k5i4G5h5o5j4F4K5h4K4A5f4G5i4Y4]4X4]4A4A5d5h5d5m5f4K4\\4K5h5o5h5i4]4E4K5j4F4K5h5m4O4D5d4B4K4Y4O5j4F4K5j5k4K5h5f4U4Z5d5d5n4C4K4D5j4B5f4]4D5j4F5h5o5i4X4K4M5d5k5f4K4D5d5n4Y4Y5d5i4K4]5n5i4O4A4C5j4A5j4U4C5i4]4O5f4K4A4E5o4F4D4C5d5j5f4@4D5i5j5k4F4A4F4@5k4E4_5j4E5f4F5i5o4]4E4V4^4E5j5m4_4D5f4F5h5h5k5h5j4K4F5h5o5n5h4D5h5i4K4U5j5k4O5d5h4X5f4M5j5d4]4O5i4K5m5f5o4D5o5h4\\4K4F4]4F4D4D4O5j5k5i4_4K5j5o4D5f4U5m5n4C4A4_5j5h5k5i4X4U4]4O5k5h4X5k4]5n4[4]4[5h4Dsqlejofpfquj`fgfebvowkjnpfoegfwbjop`lmwfmwpvsslqwpwbqwfgnfppbdfpv``fppebpkjlm?wjwof=`lvmwqzb``lvmw`qfbwfgpwlqjfpqfpvowpqvmmjmdsql`fpptqjwjmdlaif`wpujpjaoftfo`lnfbqwj`ofvmhmltmmfwtlqh`lnsbmzgzmbnj`aqltpfqsqjub`zsqlaofnPfquj`fqfpsf`wgjpsobzqfrvfpwqfpfquftfapjwfkjpwlqzeqjfmgplswjlmptlqhjmdufqpjlmnjoojlm`kbmmfotjmglt-bggqfppujpjwfgtfbwkfq`lqqf`wsqlgv`wfgjqf`welqtbqgzlv#`bmqfnlufgpvaif`w`lmwqlobq`kjuf`vqqfmwqfbgjmdojaqbqzojnjwfgnbmbdfqevqwkfqpvnnbqznb`kjmfnjmvwfpsqjubwf`lmwf{wsqldqbnpl`jfwzmvnafqptqjwwfmfmbaofgwqjddfqplvq`fpolbgjmdfofnfmwsbqwmfqejmboozsfqef`wnfbmjmdpzpwfnphffsjmd`vowvqf%rvlw8/ilvqmbosqlif`wpvqeb`fp%rvlw8f{sjqfpqfujftpabobm`fFmdojpk@lmwfmwwkqlvdkSofbpf#lsjmjlm`lmwb`wbufqbdfsqjnbqzujoobdfPsbmjpkdboofqzgf`ojmfnffwjmdnjppjlmslsvobqrvbojwznfbpvqfdfmfqbopsf`jfppfppjlmpf`wjlmtqjwfqp`lvmwfqjmjwjboqfslqwpejdvqfpnfnafqpklogjmdgjpsvwffbqojfqf{sqfppgjdjwbosj`wvqfBmlwkfqnbqqjfgwqbeej`ofbgjmd`kbmdfg`fmwqbouj`wlqzjnbdfp,qfbplmppwvgjfpefbwvqfojpwjmdnvpw#afp`kllopUfqpjlmvpvboozfsjplgfsobzjmddqltjmdlaujlvplufqobzsqfpfmwb`wjlmp?,vo=\x0E\ttqbssfqboqfbgz`fqwbjmqfbojwzpwlqbdfbmlwkfqgfphwlsleefqfgsbwwfqmvmvpvboGjdjwbo`bsjwboTfapjwfebjovqf`lmmf`wqfgv`fgBmgqljggf`bgfpqfdvobq#%bns8#bmjnbopqfofbpfBvwlnbwdfwwjmdnfwklgpmlwkjmdSlsvobq`bswjlmofwwfqp`bswvqfp`jfm`foj`fmpf`kbmdfpFmdobmg>2%bns8Kjpwlqz#>#mft#@fmwqbovsgbwfgPsf`jboMfwtlqhqfrvjqf`lnnfmwtbqmjmd@loofdfwlloabqqfnbjmpaf`bvpffof`wfgGfvwp`kejmbm`ftlqhfqprvj`hozafwtffmf{b`wozpfwwjmdgjpfbpfPl`jfwztfbslmpf{kjajw%ow8\"..@lmwqlo`obppfp`lufqfglvwojmfbwwb`hpgfuj`fp+tjmgltsvqslpfwjwof>!Nlajof#hjoojmdpkltjmdJwbojbmgqlssfgkfbujozfeef`wp.2$^*8\t`lmejqn@vqqfmwbgubm`fpkbqjmdlsfmjmdgqbtjmdajoojlmlqgfqfgDfqnbmzqfobwfg?,elqn=jm`ovgftkfwkfqgfejmfgP`jfm`f`bwboldBqwj`ofavwwlmpobqdfpwvmjelqnilvqmfzpjgfabq@kj`bdlklojgbzDfmfqbosbppbdf/%rvlw8bmjnbwfeffojmdbqqjufgsbppjmdmbwvqboqlvdkoz-\t\tWkf#avw#mlwgfmpjwzAqjwbjm@kjmfpfob`h#lewqjavwfJqfobmg!#gbwb.eb`wlqpqf`fjufwkbw#jpOjaqbqzkvpabmgjm#eb`wbeebjqp@kbqofpqbgj`boaqlvdkwejmgjmdobmgjmd9obmd>!qfwvqm#ofbgfqpsobmmfgsqfnjvnsb`hbdfBnfqj`bFgjwjlm^%rvlw8Nfppbdfmffg#wlubovf>!`lnsof{ollhjmdpwbwjlmafojfufpnboofq.nlajofqf`lqgptbmw#wlhjmg#leEjqfel{zlv#bqfpjnjobqpwvgjfgnb{jnvnkfbgjmdqbsjgoz`ojnbwfhjmdglnfnfqdfgbnlvmwpelvmgfgsjlmffqelqnvobgzmbpwzklt#wl#Pvsslqwqfufmvff`lmlnzQfpvowpaqlwkfqplogjfqobqdfoz`boojmd-%rvlw8B``lvmwFgtbqg#pfdnfmwQlafqw#feelqwpSb`jej`ofbqmfgvs#tjwkkfjdkw9tf#kbufBmdfofpmbwjlmp\\pfbq`kbssojfgb`rvjqfnbppjufdqbmwfg9#ebopfwqfbwfgajddfpwafmfejwgqjujmdPwvgjfpnjmjnvnsfqkbspnlqmjmdpfoojmdjp#vpfgqfufqpfubqjbmw#qlof>!njppjmdb`kjfufsqlnlwfpwvgfmwplnflmff{wqfnfqfpwlqfalwwln9fuloufgboo#wkfpjwfnbsfmdojpktbz#wl##Bvdvpwpznalop@lnsbmznbwwfqpnvpj`bobdbjmpwpfqujmd~*+*8\x0E\tsbznfmwwqlvaof`lm`fsw`lnsbqfsbqfmwpsobzfqpqfdjlmpnlmjwlq#$$Wkf#tjmmjmdf{solqfbgbswfgDboofqzsqlgv`fbajojwzfmkbm`f`bqffqp*-#Wkf#`loof`wPfbq`k#bm`jfmwf{jpwfgellwfq#kbmgofqsqjmwfg`lmplofFbpwfqmf{slqwptjmgltp@kbmmfojoofdbomfvwqbopvddfpw\\kfbgfqpjdmjmd-kwno!=pfwwofgtfpwfqm`bvpjmd.tfahjw`objnfgIvpwj`f`kbswfquj`wjnpWklnbp#nlyjoobsqlnjpfsbqwjfpfgjwjlmlvwpjgf9ebopf/kvmgqfgLoznsj`\\avwwlmbvwklqpqfb`kfg`kqlmj`gfnbmgppf`lmgpsqlwf`wbglswfgsqfsbqfmfjwkfqdqfbwozdqfbwfqlufqboojnsqluf`lnnbmgpsf`jbopfbq`k-tlqpkjsevmgjmdwklvdkwkjdkfpwjmpwfbgvwjojwzrvbqwfq@vowvqfwfpwjmd`ofbqozf{slpfgAqltpfqojafqbo~#`bw`kSqlif`wf{bnsofkjgf+*8EolqjgbbmptfqpbooltfgFnsfqlqgfefmpfpfqjlvpeqffglnPfufqbo.avwwlmEvqwkfqlvw#le#\">#mvoowqbjmfgGfmnbqhuljg+3*,boo-ipsqfufmwQfrvfpwPwfskfm\t\tTkfm#lapfquf?,k1=\x0E\tNlgfqm#sqlujgf!#bow>!alqgfqp-\t\tElq#\t\tNbmz#bqwjpwpsltfqfgsfqelqnej`wjlmwzsf#lenfgj`bowj`hfwplsslpfg@lvm`jotjwmfppivpwj`fDflqdf#Afodjvn---?,b=wtjwwfqmlwbaoztbjwjmdtbqebqf#Lwkfq#qbmhjmdskqbpfpnfmwjlmpvqujufp`klobq?,s=\x0E\t#@lvmwqzjdmlqfgolpp#leivpw#bpDflqdjbpwqbmdf?kfbg=?pwlssfg2$^*8\x0E\tjpobmgpmlwbaofalqgfq9ojpw#le`bqqjfg233/333?,k0=\t#pfufqboaf`lnfppfof`w#tfggjmd33-kwnonlmbq`klee#wkfwfb`kfqkjdkoz#ajloldzojef#lelq#fufmqjpf#le%qbrvl8sovplmfkvmwjmd+wklvdkGlvdobpiljmjmd`jq`ofpElq#wkfBm`jfmwUjfwmbnufkj`ofpv`k#bp`qzpwboubovf#>Tjmgltpfmilzfgb#pnboobppvnfg?b#jg>!elqfjdm#Boo#qjklt#wkfGjpsobzqfwjqfgkltfufqkjggfm8abwwofppffhjmd`bajmfwtbp#mlwollh#bw`lmgv`wdfw#wkfIbmvbqzkbssfmpwvqmjmdb9klufqLmojmf#Eqfm`k#ob`hjmdwzsj`bof{wqb`wfmfnjfpfufm#jedfmfqbwgf`jgfgbqf#mlw,pfbq`kafojfep.jnbdf9ol`bwfgpwbwj`-oldjm!=`lmufqwujlofmwfmwfqfgejqpw!=`jq`vjwEjmobmg`kfnjpwpkf#tbp23s{8!=bp#pv`kgjujgfg?,psbm=tjoo#afojmf#leb#dqfbwnzpwfqz,jmgf{-eboojmdgvf#wl#qbjotbz`loofdfnlmpwfqgfp`fmwjw#tjwkmv`ofbqIftjpk#sqlwfpwAqjwjpkeoltfqpsqfgj`wqfelqnpavwwlm#tkl#tbpof`wvqfjmpwbmwpvj`jgfdfmfqj`sfqjlgpnbqhfwpPl`jbo#ejpkjmd`lnajmfdqbskj`tjmmfqp?aq#,=?az#wkf#MbwvqboSqjub`z`llhjfplvw`lnfqfploufPtfgjpkaqjfeozSfqpjbmpl#nv`k@fmwvqzgfsj`wp`lovnmpklvpjmdp`qjswpmf{w#wlafbqjmdnbssjmdqfujpfgiRvfqz+.tjgwk9wjwof!=wllowjsPf`wjlmgfpjdmpWvqhjpkzlvmdfq-nbw`k+~*+*8\t\tavqmjmdlsfqbwfgfdqffpplvq`f>Qj`kbqg`olpfozsobpwj`fmwqjfp?,wq=\x0E\t`lolq9 vo#jg>!slppfppqloojmdskzpj`pebjojmdf{f`vwf`lmwfpwojmh#wlGfebvow?aq#,=\t9#wqvf/`kbqwfqwlvqjpn`obppj`sql`ffgf{sobjm?,k2=\x0E\tlmojmf-<{no#ufkfosjmdgjbnlmgvpf#wkfbjqojmffmg#..=*-bwwq+qfbgfqpklpwjmd eeeeeeqfbojyfUjm`fmwpjdmbop#pq`>!,Sqlgv`wgfpsjwfgjufqpfwfoojmdSvaoj`#kfog#jmIlpfsk#wkfbwqfbeef`wp?pwzof=b#obqdfglfpm$wobwfq/#Fofnfmwebuj`lm`qfbwlqKvmdbqzBjqslqwpff#wkfpl#wkbwNj`kbfoPzpwfnpSqldqbnp/#bmg##tjgwk>f%rvlw8wqbgjmdofew!=\tsfqplmpDlogfm#Beebjqpdqbnnbqelqnjmdgfpwqlzjgfb#le`bpf#lelogfpw#wkjp#jp-pq`#>#`bqwllmqfdjpwq@lnnlmpNvpojnpTkbw#jpjm#nbmznbqhjmdqfufbopJmgffg/frvbooz,pklt\\blvwgllqfp`bsf+Bvpwqjbdfmfwj`pzpwfn/Jm#wkf#pjwwjmdKf#boplJpobmgpB`bgfnz\t\n\n?\"..Gbmjfo#ajmgjmdaol`h!=jnslpfgvwjojyfBaqbkbn+f{`fswxtjgwk9svwwjmd*-kwno+\x7F\x7F#X^8\tGBWBX#)hjw`kfmnlvmwfgb`wvbo#gjbof`wnbjmoz#\\aobmh$jmpwboof{sfqwpje+wzsfJw#bopl%`lsz8#!=Wfqnpalqm#jmLswjlmpfbpwfqmwbohjmd`lm`fqmdbjmfg#lmdljmdivpwjez`qjwj`peb`wlqzjwp#ltmbppbvowjmujwfgobpwjmdkjp#ltmkqfe>!,!#qfo>!gfufols`lm`fqwgjbdqbngloobqp`ovpwfqsks<jg>bo`lklo*8~*+*8vpjmd#b=?psbm=ufppfopqfujuboBggqfppbnbwfvqbmgqljgboofdfgjoomfpptbohjmd`fmwfqprvbojeznbw`kfpvmjejfgf{wjm`wGfefmpfgjfg#jm\t\n?\"..#`vpwlnpojmhjmdOjwwof#Allh#lefufmjmdnjm-ip<bqf#wkfhlmwbhwwlgbz$p-kwno!#wbqdfw>tfbqjmdBoo#Qjd8\t~*+*8qbjpjmd#Bopl/#`qv`jbobalvw!=gf`obqf..=\t?p`ejqfel{bp#nv`kbssojfpjmgf{/#p/#avw#wzsf#>#\t\x0E\t?\"..wltbqgpQf`lqgpSqjubwfElqfjdmSqfnjfq`klj`fpUjqwvboqfwvqmp@lnnfmwSltfqfgjmojmf8slufqwz`kbnafqOjujmd#ulovnfpBmwklmzoldjm!#QfobwfgF`lmlnzqfb`kfp`vwwjmddqbujwzojef#jm@kbswfq.pkbgltMlwbaof?,wg=\x0E\t#qfwvqmpwbgjvntjgdfwpubqzjmdwqbufopkfog#aztkl#bqftlqh#jmeb`vowzbmdvobqtkl#kbgbjqslqwwltm#le\t\tPlnf#$`oj`h$`kbqdfphfztlqgjw#tjoo`jwz#le+wkjp*8Bmgqft#vmjrvf#`kf`hfglq#nlqf033s{8#qfwvqm8qpjlm>!sovdjmptjwkjm#kfqpfoePwbwjlmEfgfqboufmwvqfsvaojpkpfmw#wlwfmpjlmb`wqfpp`lnf#wlejmdfqpGvhf#lesflsof/f{soljwtkbw#jpkbqnlmzb#nbilq!9!kwwsjm#kjp#nfmv!=\tnlmwkozleej`fq`lvm`jodbjmjmdfufm#jmPvnnbqzgbwf#leolzbowzejwmfppbmg#tbpfnsfqlqpvsqfnfPf`lmg#kfbqjmdQvppjbmolmdfpwBoafqwbobwfqbopfw#le#pnboo!=-bssfmggl#tjwkefgfqboabmh#leafmfbwkGfpsjwf@bsjwbodqlvmgp*/#bmg#sfq`fmwjw#eqln`olpjmd`lmwbjmJmpwfbgejewffmbp#tfoo-zbkll-qfpslmgejdkwfqlap`vqfqfeof`wlqdbmj`>#Nbwk-fgjwjmdlmojmf#sbggjmdb#tkloflmfqqlqzfbq#lefmg#le#abqqjfqtkfm#jwkfbgfq#klnf#leqfpvnfgqfmbnfgpwqlmd=kfbwjmdqfwbjmp`olvgeqtbz#le#Nbq`k#2hmltjmdjm#sbqwAfwtffmofpplmp`olpfpwujqwvboojmhp!=`qlppfgFMG#..=ebnlvp#btbqgfgOj`fmpfKfbowk#ebjqoz#tfbowkznjmjnboBeqj`bm`lnsfwfobafo!=pjmdjmdebqnfqpAqbpjo*gjp`vppqfsob`fDqfdlqzelmw#`lsvqpvfgbssfbqpnbhf#vsqlvmgfgalwk#leaol`hfgpbt#wkfleej`fp`lolvqpje+gl`vtkfm#kffmelq`fsvpk+evBvdvpw#VWE.;!=Ebmwbpzjm#nlpwjmivqfgVpvboozebqnjmd`olpvqflaif`w#gfefm`fvpf#le#Nfgj`bo?algz=\tfujgfmwaf#vpfghfz@lgfpj{wffmJpobnj` 333333fmwjqf#tjgfoz#b`wjuf#+wzsflelmf#`bm`lolq#>psfbhfqf{wfmgpSkzpj`pwfqqbjm?walgz=evmfqboujftjmdnjggof#`qj`hfwsqlskfwpkjewfggl`wlqpQvppfoo#wbqdfw`lnsb`wbodfaqbpl`jbo.avoh#lenbm#bmg?,wg=\t#kf#ofew*-ubo+*ebopf*8oldj`boabmhjmdklnf#wlmbnjmd#Bqjylmb`qfgjwp*8\t~*8\telvmgfqjm#wvqm@loojmpafelqf#Avw#wkf`kbqdfgWjwof!=@bswbjmpsfoofgdlggfppWbd#..=Bggjmd9avw#tbpQf`fmw#sbwjfmwab`h#jm>ebopf%Ojm`lomtf#hmlt@lvmwfqIvgbjpnp`qjsw#bowfqfg$^*8\t##kbp#wkfvm`ofbqFufmw$/alwk#jmmlw#boo\t\t?\"..#sob`jmdkbqg#wl#`fmwfqplqw#le`ojfmwppwqffwpAfqmbqgbppfqwpwfmg#wlebmwbpzgltm#jmkbqalvqEqffglniftfoqz,balvw--pfbq`kofdfmgpjp#nbgfnlgfqm#lmoz#lmlmoz#wljnbdf!#ojmfbq#sbjmwfqbmg#mlwqbqfoz#b`qlmzngfojufqpklqwfq33%bns8bp#nbmztjgwk>!,)#?\"X@wjwof#>le#wkf#oltfpw#sj`hfg#fp`bsfgvpfp#lesflsofp#Svaoj`Nbwwkftwb`wj`pgbnbdfgtbz#elqobtp#lefbpz#wl#tjmgltpwqlmd##pjnsof~`bw`k+pfufmwkjmelal{tfmw#wlsbjmwfg`jwjyfmJ#glm$wqfwqfbw-#Plnf#tt-!*8\talnajmdnbjowl9nbgf#jm-#Nbmz#`bqqjfp\x7F\x7Fx~8tjtlqh#lepzmlmzngfefbwpebulqfglswj`bosbdfWqbvmofpp#pfmgjmdofew!=?`lnP`lqBoo#wkfiRvfqz-wlvqjpw@obppj`ebopf!#Tjokfonpvavqapdfmvjmfajpklsp-psojw+dolabo#elooltpalgz#lemlnjmbo@lmwb`wpf`vobqofew#wl`kjfeoz.kjggfm.abmmfq?,oj=\t\t-#Tkfm#jm#alwkgjpnjppF{solqfbotbzp#ujb#wkfpsb/]lotfoebqfqvojmd#bqqbmdf`bswbjmkjp#plmqvof#lekf#wllhjwpfoe/>3%bns8+`boofgpbnsofpwl#nbhf`ln,sbdNbqwjm#Hfmmfgzb``fswpevoo#lekbmgofgAfpjgfp,,..=?,baof#wlwbqdfwpfppfm`fkjn#wl#jwp#az#`lnnlm-njmfqbowl#wbhftbzp#wlp-lqd,obgujpfgsfmbowzpjnsof9je#wkfzOfwwfqpb#pklqwKfqafqwpwqjhfp#dqlvsp-ofmdwkeojdkwplufqobspoltoz#ofppfq#pl`jbo#?,s=\t\n\njw#jmwlqbmhfg#qbwf#levo=\x0E\t##bwwfnswsbjq#lenbhf#jwHlmwbhwBmwlmjlkbujmd#qbwjmdp#b`wjufpwqfbnpwqbssfg!*-`pp+klpwjofofbg#wlojwwof#dqlvsp/Sj`wvqf..=\x0E\t\x0E\t#qltp>!#laif`wjmufqpf?ellwfq@vpwlnU=?_,p`qploujmd@kbnafqpobufqztlvmgfgtkfqfbp\">#$vmgelq#boosbqwoz#.qjdkw9Bqbajbmab`hfg#`fmwvqzvmjw#lenlajof.Fvqlsf/jp#klnfqjph#legfpjqfg@ojmwlm`lpw#lebdf#le#af`lnf#mlmf#les%rvlw8Njggof#fbg$*X3@qjwj`ppwvgjlp=%`lsz8dqlvs!=bppfnaonbhjmd#sqfppfgtjgdfw-sp9!#<#qfavjowaz#plnfElqnfq#fgjwlqpgfobzfg@bmlmj`kbg#wkfsvpkjmd`obpp>!avw#bqfsbqwjboAbazolmalwwln#`bqqjfq@lnnbmgjwp#vpfBp#tjwk`lvqpfpb#wkjqggfmlwfpbopl#jmKlvpwlm13s{8!=b``vpfgglvaof#dlbo#leEbnlvp#*-ajmg+sqjfpwp#Lmojmfjm#Ivozpw#(#!d`lmpvowgf`jnbokfosevoqfujufgjp#ufqzq$($jswolpjmd#efnbofpjp#boplpwqjmdpgbzp#lebqqjuboevwvqf#?laif`welq`jmdPwqjmd+!#,=\t\n\nkfqf#jpfm`lgfg-##Wkf#aboollmglmf#az,`lnnlmad`lolqobt#le#Jmgjbmbbuljgfgavw#wkf1s{#0s{irvfqz-bewfq#bsloj`z-nfm#bmgellwfq.>#wqvf8elq#vpfp`qffm-Jmgjbm#jnbdf#>ebnjoz/kwws9,,#%maps8gqjufqpfwfqmbopbnf#bpmlwj`fgujftfqp~*+*8\t#jp#nlqfpfbplmpelqnfq#wkf#mftjp#ivpw`lmpfmw#Pfbq`ktbp#wkftkz#wkfpkjssfgaq=?aq=tjgwk9#kfjdkw>nbgf#le`vjpjmfjp#wkbwb#ufqz#Bgnjqbo#ej{fg8mlqnbo#NjppjlmSqfpp/#lmwbqjl`kbqpfwwqz#wl#jmubgfg>!wqvf!psb`jmdjp#nlpwb#nlqf#wlwboozeboo#le~*8\x0E\t##jnnfmpfwjnf#jmpfw#lvwpbwjpezwl#ejmggltm#wlolw#le#Sobzfqpjm#Ivmfrvbmwvnmlw#wkfwjnf#wlgjpwbmwEjmmjpkpq`#>#+pjmdof#kfos#leDfqnbm#obt#bmgobafofgelqfpwp`llhjmdpsb`f!=kfbgfq.tfoo#bpPwbmofzaqjgdfp,dolabo@qlbwjb#Balvw#X3^8\t##jw/#bmgdqlvsfgafjmd#b*xwkqltkf#nbgfojdkwfqfwkj`boEEEEEE!alwwln!ojhf#b#fnsolzpojuf#jmbp#pffmsqjmwfqnlpw#leva.ojmhqfif`wpbmg#vpfjnbdf!=pv``ffgeffgjmdMv`ofbqjmelqnbwl#kfosTlnfm$pMfjwkfqNf{j`bmsqlwfjm?wbaof#az#nbmzkfbowkzobtpvjwgfujpfg-svpk+xpfoofqppjnsoz#Wkqlvdk-`llhjf#Jnbdf+logfq!=vp-ip!=#Pjm`f#vmjufqpobqdfq#lsfm#wl\"..#fmgojfp#jm$^*8\x0E\t##nbqhfwtkl#jp#+!GLN@lnbmbdfglmf#elqwzsfle#Hjmdglnsqlejwpsqlslpfwl#pklt`fmwfq8nbgf#jwgqfppfgtfqf#jmnj{wvqfsqf`jpfbqjpjmdpq`#>#$nbhf#b#pf`vqfgAbswjpwulwjmd#\t\n\nubq#Nbq`k#1dqft#vs@ojnbwf-qfnlufphjoofgtbz#wkf?,kfbg=eb`f#leb`wjmd#qjdkw!=wl#tlqhqfgv`fpkbp#kbgfqf`wfgpklt+*8b`wjlm>allh#lebm#bqfb>>#!kww?kfbgfq\t?kwno=`lmelqneb`jmd#`llhjf-qfoz#lmklpwfg#-`vpwlnkf#tfmwavw#elqpsqfbg#Ebnjoz#b#nfbmplvw#wkfelqvnp-ellwbdf!=Nlajo@ofnfmwp!#jg>!bp#kjdkjmwfmpf..=?\"..efnbof#jp#pffmjnsojfgpfw#wkfb#pwbwfbmg#kjpebpwfpwafpjgfpavwwlm\\alvmgfg!=?jnd#Jmelal{fufmwp/b#zlvmdbmg#bqfMbwjuf#`kfbsfqWjnflvwbmg#kbpfmdjmfptlm#wkf+nlpwozqjdkw9#ejmg#b#.alwwlnSqjm`f#bqfb#lenlqf#lepfbq`k\\mbwvqf/ofdboozsfqjlg/obmg#lelq#tjwkjmgv`fgsqlujmdnjppjofol`boozBdbjmpwwkf#tbzh%rvlw8s{8!=\x0E\tsvpkfg#babmglmmvnfqbo@fqwbjmJm#wkjpnlqf#jmlq#plnfmbnf#jpbmg/#jm`qltmfgJPAM#3.`qfbwfpL`wlafqnbz#mlw`fmwfq#obwf#jmGfefm`ffmb`wfgtjpk#wlaqlbgoz`llojmdlmolbg>jw-#Wkfqf`lufqNfnafqpkfjdkw#bppvnfp?kwno=\tsflsof-jm#lmf#>tjmgltellwfq\\b#dllg#qfhobnblwkfqp/wl#wkjp\\`llhjfsbmfo!=Olmglm/gfejmfp`qvpkfgabswjpn`lbpwbopwbwvp#wjwof!#nluf#wlolpw#jmafwwfq#jnsojfpqjuboqzpfqufqp#PzpwfnSfqkbspfp#bmg#`lmwfmgeoltjmdobpwfg#qjpf#jmDfmfpjpujft#leqjpjmd#pffn#wlavw#jm#ab`hjmdkf#tjoodjufm#bdjujmd#`jwjfp-eolt#le#Obwfq#boo#avwKjdktbzlmoz#azpjdm#lekf#glfpgjeefqpabwwfqz%bns8obpjmdofpwkqfbwpjmwfdfqwbhf#lmqfevpfg`boofg#>VP%bnsPff#wkfmbwjufpaz#wkjppzpwfn-kfbg#le9klufq/ofpajbmpvqmbnfbmg#boo`lnnlm,kfbgfq\\\\sbqbnpKbqubqg,sj{fo-qfnlubopl#olmdqlof#leiljmwozphzp`qbVmj`lgfaq#,=\x0E\tBwobmwbmv`ofvp@lvmwz/svqfoz#`lvmw!=fbpjoz#avjog#blm`oj`hb#djufmsljmwfqk%rvlw8fufmwp#fopf#x\tgjwjlmpmlt#wkf/#tjwk#nbm#tkllqd,Tfalmf#bmg`buboqzKf#gjfgpfbwwof33/333#xtjmgltkbuf#wlje+tjmgbmg#jwpplofoz#n%rvlw8qfmftfgGfwqljwbnlmdpwfjwkfq#wkfn#jmPfmbwlqVp?,b=?Hjmd#leEqbm`jp.sqlgv`kf#vpfgbqw#bmgkjn#bmgvpfg#azp`lqjmdbw#klnfwl#kbufqfobwfpjajojwzeb`wjlmAveebolojmh!=?tkbw#kfeqff#wl@jwz#le`lnf#jmpf`wlqp`lvmwfglmf#gbzmfqulvpprvbqf#~8je+dljm#tkbwjnd!#bojp#lmozpfbq`k,wvfpgbzollpfozPlolnlmpf{vbo#.#?b#kqnfgjvn!GL#MLW#Eqbm`f/tjwk#b#tbq#bmgpf`lmg#wbhf#b#=\x0E\t\x0E\t\x0E\tnbqhfw-kjdktbzglmf#jm`wjujwz!obpw!=laojdfgqjpf#wl!vmgfejnbgf#wl#Fbqoz#sqbjpfgjm#jwp#elq#kjpbwkofwfIvsjwfqZbkll\"#wfqnfg#pl#nbmzqfbooz#p-#Wkf#b#tlnbm<ubovf>gjqf`w#qjdkw!#aj`z`ofb`jmd>!gbz#bmgpwbwjmdQbwkfq/kjdkfq#Leej`f#bqf#mltwjnfp/#tkfm#b#sbz#elqlm#wkjp.ojmh!=8alqgfqbqlvmg#bmmvbo#wkf#Mftsvw#wkf-`ln!#wbhjm#wlb#aqjfe+jm#wkfdqlvsp-8#tjgwkfmyznfppjnsof#jm#obwfxqfwvqmwkfqbszb#sljmwabmmjmdjmhp!=\t+*8!#qfb#sob`f_v330@bbalvw#bwq=\x0E\t\n\n``lvmw#djufp#b?P@QJSWQbjotbzwkfnfp,wlloal{AzJg+!{kvnbmp/tbw`kfpjm#plnf#je#+tj`lnjmd#elqnbwp#Vmgfq#avw#kbpkbmgfg#nbgf#azwkbm#jmefbq#legfmlwfg,jeqbnfofew#jmulowbdfjm#fb`kb%rvlw8abpf#leJm#nbmzvmgfqdlqfdjnfpb`wjlm#?,s=\x0E\t?vpwlnUb8%dw8?,jnslqwplq#wkbwnlpwoz#%bns8qf#pjyf>!?,b=?,kb#`obppsbppjufKlpw#>#TkfwkfqefqwjofUbqjlvp>X^8+ev`bnfqbp,=?,wg=b`wp#bpJm#plnf=\x0E\t\x0E\t?\"lqdbmjp#?aq#,=Afjijmd`bwbo/Lgfvwp`kfvqlsfvfvphbqbdbfjodfpufmphbfpsb/]bnfmpbifvpvbqjlwqbabiln/E{j`ls/Mdjmbpjfnsqfpjpwfnbl`wvaqfgvqbmwfb/]bgjqfnsqfpbnlnfmwlmvfpwqlsqjnfqbwqbu/Epdqb`jbpmvfpwqbsql`fplfpwbglp`bojgbgsfqplmbm/Vnfqlb`vfqgln/Vpj`bnjfnaqllefqwbpbodvmlpsb/Apfpfifnsolgfqf`klbgfn/Mpsqjubglbdqfdbqfmob`fpslpjaofklwfofppfujoobsqjnfql/Vowjnlfufmwlpbq`kjul`vowvqbnvifqfpfmwqbgbbmvm`jlfnabqdlnfq`bgldqbmgfpfpwvgjlnfilqfpefaqfqlgjpf/]lwvqjpnl`/_gjdlslqwbgbfpsb`jlebnjojbbmwlmjlsfqnjwfdvbqgbqbodvmbpsqf`jlpbodvjfmpfmwjglujpjwbpw/Awvol`lml`fqpfdvmgl`lmpfileqbm`jbnjmvwlppfdvmgbwfmfnlpfef`wlpn/Mobdbpfpj/_mqfujpwbdqbmbgb`lnsqbqjmdqfpldbq`/Abb``j/_mf`vbglqrvjfmfpjm`ovplgfafq/Mnbwfqjbklnaqfpnvfpwqbslgq/Abnb/]bmb/Vowjnbfpwbnlplej`jbowbnajfmmjmd/Vmpbovglpslgfnlpnfilqbqslpjwjlmavpjmfppklnfsbdfpf`vqjwzobmdvbdfpwbmgbqg`bnsbjdmefbwvqfp`bwfdlqzf{wfqmbo`kjogqfmqfpfqufgqfpfbq`kf{`kbmdfebulqjwfwfnsobwfnjojwbqzjmgvpwqzpfquj`fpnbwfqjbosqlgv`wpy.jmgf{9`lnnfmwpplewtbqf`lnsofwf`bofmgbqsobwelqnbqwj`ofpqfrvjqfgnlufnfmwrvfpwjlmavjogjmdslojwj`pslppjaofqfojdjlmskzpj`boeffgab`hqfdjpwfqsj`wvqfpgjpbaofgsqlwl`lobvgjfm`fpfwwjmdpb`wjujwzfofnfmwpofbqmjmdbmzwkjmdbapwqb`wsqldqfpplufqujftnbdbyjmff`lmlnj`wqbjmjmdsqfppvqfubqjlvp#?pwqlmd=sqlsfqwzpklssjmdwldfwkfqbgubm`fgafkbujlqgltmolbgefbwvqfgellwaboopfof`wfgObmdvbdfgjpwbm`fqfnfnafqwqb`hjmdsbpptlqgnlgjejfgpwvgfmwpgjqf`wozejdkwjmdmlqwkfqmgbwbabpfefpwjuboaqfbhjmdol`bwjlmjmwfqmfwgqlsgltmsqb`wj`ffujgfm`fevm`wjlmnbqqjbdfqfpslmpfsqlaofnpmfdbwjufsqldqbnpbmbozpjpqfofbpfgabmmfq!=svq`kbpfsloj`jfpqfdjlmbo`qfbwjufbqdvnfmwallhnbqhqfefqqfq`kfnj`bogjujpjlm`booab`hpfsbqbwfsqlif`wp`lmeoj`wkbqgtbqfjmwfqfpwgfojufqznlvmwbjmlawbjmfg>#ebopf8elq+ubq#b``fswfg`bsb`jwz`lnsvwfqjgfmwjwzbjq`qbewfnsolzfgsqlslpfgglnfpwj`jm`ovgfpsqlujgfgklpsjwboufqwj`bo`loobspfbssqlb`ksbqwmfqpoldl!=?bgbvdkwfqbvwklq!#`vowvqboebnjojfp,jnbdfp,bppfnaozsltfqevowfb`kjmdejmjpkfggjpwqj`w`qjwj`bo`dj.ajm,svqslpfpqfrvjqfpfof`wjlmaf`lnjmdsqlujgfpb`bgfnj`f{fq`jpfb`wvbooznfgj`jmf`lmpwbmwb``jgfmwNbdbyjmfgl`vnfmwpwbqwjmdalwwln!=lapfqufg9#%rvlw8f{wfmgfgsqfujlvpPlewtbqf`vpwlnfqgf`jpjlmpwqfmdwkgfwbjofgpojdkwozsobmmjmdwf{wbqfb`vqqfm`zfufqzlmfpwqbjdkwwqbmpefqslpjwjufsqlgv`fgkfqjwbdfpkjssjmdbaplovwfqf`fjufgqfofubmwavwwlm!#ujlofm`fbmztkfqfafmfejwpobvm`kfgqf`fmwozboojbm`felooltfgnvowjsofavoofwjmjm`ovgfgl``vqqfgjmwfqmbo'+wkjp*-qfsvaoj`=?wq=?wg`lmdqfppqf`lqgfgvowjnbwfplovwjlm?vo#jg>!gjp`lufqKlnf?,b=tfapjwfpmfwtlqhpbowklvdkfmwjqfoznfnlqjbonfppbdfp`lmwjmvfb`wjuf!=plnftkbwuj`wlqjbTfpwfqm##wjwof>!Ol`bwjlm`lmwqb`wujpjwlqpGltmolbgtjwklvw#qjdkw!=\tnfbpvqfptjgwk#>#ubqjbaofjmuloufgujqdjmjbmlqnboozkbssfmfgb``lvmwppwbmgjmdmbwjlmboQfdjpwfqsqfsbqfg`lmwqlopb``vqbwfajqwkgbzpwqbwfdzleej`jbodqbskj`p`qjnjmboslppjaoz`lmpvnfqSfqplmbopsfbhjmdubojgbwfb`kjfufg-isd!#,=nb`kjmfp?,k1=\t##hfztlqgpeqjfmgozaqlwkfqp`lnajmfglqjdjmbo`lnslpfgf{sf`wfgbgfrvbwfsbhjpwbmeloolt!#ubovbaof?,obafo=qfobwjufaqjmdjmdjm`qfbpfdlufqmlqsovdjmp,Ojpw#le#Kfbgfq!=!#mbnf>!#+%rvlw8dqbgvbwf?,kfbg=\t`lnnfq`fnbobzpjbgjqf`wlqnbjmwbjm8kfjdkw9p`kfgvof`kbmdjmdab`h#wl#`bwkloj`sbwwfqmp`lolq9# dqfbwfpwpvssojfpqfojbaof?,vo=\t\n\n?pfof`w#`jwjyfmp`olwkjmdtbw`kjmd?oj#jg>!psf`jej``bqqzjmdpfmwfm`f?`fmwfq=`lmwqbpwwkjmhjmd`bw`k+f*plvwkfqmNj`kbfo#nfq`kbmw`bqlvpfosbggjmd9jmwfqjlq-psojw+!ojybwjlmL`wlafq#*xqfwvqmjnsqlufg..%dw8\t\t`lufqbdf`kbjqnbm-smd!#,=pvaif`wpQj`kbqg#tkbwfufqsqlabaozqf`lufqzabpfabooivgdnfmw`lmmf`w--`pp!#,=#tfapjwfqfslqwfggfebvow!,=?,b=\x0E\tfof`wqj`p`lwobmg`qfbwjlmrvbmwjwz-#JPAM#3gjg#mlw#jmpwbm`f.pfbq`k.!#obmd>!psfbhfqp@lnsvwfq`lmwbjmpbq`kjufpnjmjpwfqqfb`wjlmgjp`lvmwJwbojbml`qjwfqjbpwqlmdoz9#$kwws9$p`qjsw$`lufqjmdleefqjmdbssfbqfgAqjwjpk#jgfmwjezEb`fallhmvnfqlvpufkj`ofp`lm`fqmpBnfqj`bmkbmgojmdgju#jg>!Tjoojbn#sqlujgfq\\`lmwfmwb``vqb`zpf`wjlm#bmgfqplmeof{jaof@bwfdlqzobtqfm`f?p`qjsw=obzlvw>!bssqlufg#nb{jnvnkfbgfq!=?,wbaof=Pfquj`fpkbnjowlm`vqqfmw#`bmbgjbm`kbmmfop,wkfnfp,,bqwj`oflswjlmboslqwvdboubovf>!!jmwfqubotjqfofppfmwjwofgbdfm`jfpPfbq`k!#nfbpvqfgwklvpbmgpsfmgjmd%kfoojs8mft#Gbwf!#pjyf>!sbdfMbnfnjggof!#!#,=?,b=kjggfm!=pfrvfm`fsfqplmbolufqeoltlsjmjlmpjoojmljpojmhp!=\t\n?wjwof=ufqpjlmppbwvqgbzwfqnjmbojwfnsqlsfmdjmffqpf`wjlmpgfpjdmfqsqlslpbo>!ebopf!Fpsb/]loqfofbpfppvanjw!#fq%rvlw8bggjwjlmpznswlnplqjfmwfgqfplvq`fqjdkw!=?sofbpvqfpwbwjlmpkjpwlqz-ofbujmd##alqgfq>`lmwfmwp`fmwfq!=-\t\tPlnf#gjqf`wfgpvjwbaofavodbqjb-pklt+*8gfpjdmfgDfmfqbo#`lm`fswpF{bnsofptjoojbnpLqjdjmbo!=?psbm=pfbq`k!=lsfqbwlqqfrvfpwpb#%rvlw8booltjmdGl`vnfmwqfujpjlm-#\t\tWkf#zlvqpfoe@lmwb`w#nj`kjdbmFmdojpk#`lovnajbsqjlqjwzsqjmwjmdgqjmhjmdeb`jojwzqfwvqmfg@lmwfmw#leej`fqpQvppjbm#dfmfqbwf.;;6:.2!jmgj`bwfebnjojbq#rvbojwznbqdjm93#`lmwfmwujftslqw`lmwb`wp.wjwof!=slqwbaof-ofmdwk#fojdjaofjmuloufpbwobmwj`lmolbg>!gfebvow-pvssojfgsbznfmwpdolppbqz\t\tBewfq#dvjgbm`f?,wg=?wgfm`lgjmdnjggof!=`bnf#wl#gjpsobzpp`lwwjpkilmbwkbmnbilqjwztjgdfwp-`ojmj`bowkbjobmgwfb`kfqp?kfbg=\t\nbeef`wfgpvsslqwpsljmwfq8wlPwqjmd?,pnboo=lhobklnbtjoo#af#jmufpwlq3!#bow>!klojgbzpQfplvq`foj`fmpfg#+tkj`k#-#Bewfq#`lmpjgfqujpjwjmdf{solqfqsqjnbqz#pfbq`k!#bmgqljg!rvj`hoz#nffwjmdpfpwjnbwf8qfwvqm#8`lolq9 #kfjdkw>bssqlubo/#%rvlw8#`kf`hfg-njm-ip!nbdmfwj`=?,b=?,kelqf`bpw-#Tkjof#wkvqpgbzgufqwjpf%fb`vwf8kbp@obppfubovbwflqgfqjmdf{jpwjmdsbwjfmwp#Lmojmf#`lolqbglLswjlmp!`bnsafoo?\"..#fmg?,psbm=??aq#,=\x0E\t\\slsvsp\x7Fp`jfm`fp/%rvlw8#rvbojwz#Tjmgltp#bppjdmfgkfjdkw9#?a#`obppof%rvlw8#ubovf>!#@lnsbmzf{bnsofp?jeqbnf#afojfufpsqfpfmwpnbqpkboosbqw#le#sqlsfqoz*-\t\tWkf#wb{lmlnznv`k#le#?,psbm=\t!#gbwb.pqwvdv/Fpp`qlooWl#sqlif`w?kfbg=\x0E\tbwwlqmfzfnskbpjppslmplqpebm`zal{tlqog$p#tjogojef`kf`hfg>pfppjlmpsqldqbnns{8elmw.#Sqlif`wilvqmbopafojfufgub`bwjlmwklnsplmojdkwjmdbmg#wkf#psf`jbo#alqgfq>3`kf`hjmd?,walgz=?avwwlm#@lnsofwf`ofbqej{\t?kfbg=\tbqwj`of#?pf`wjlmejmgjmdpqlof#jm#slsvobq##L`wlafqtfapjwf#f{slpvqfvpfg#wl##`kbmdfplsfqbwfg`oj`hjmdfmwfqjmd`lnnbmgpjmelqnfg#mvnafqp##?,gju=`qfbwjmdlmPvanjwnbqzobmg`loofdfpbmbozwj`ojpwjmdp`lmwb`w-olddfgJmbgujplqzpjaojmdp`lmwfmw!p%rvlw8*p-#Wkjp#sb`hbdfp`kf`hal{pvddfpwpsqfdmbmwwlnlqqltpsb`jmd>j`lm-smdibsbmfpf`lgfabpfavwwlm!=dbnaojmdpv`k#bp#/#tkjof#?,psbm=#njpplvqjpslqwjmdwls92s{#-?,psbm=wfmpjlmptjgwk>!1obyzolbgmlufnafqvpfg#jm#kfjdkw>!`qjsw!=\t%maps8?,?wq=?wg#kfjdkw91,sqlgv`w`lvmwqz#jm`ovgf#ellwfq!#%ow8\"..#wjwof!=?,irvfqz-?,elqn=\t+\x0BBl\bQ\x7F*+\x0BUm\x05Gx*kqubwphjjwbojbmlqln/Nm(ow/Pqh/Kf4K4]4C5dwbnaj/Emmlwj`jbpnfmpbifpsfqplmbpgfqf`klpmb`jlmbopfquj`jl`lmwb`wlvpvbqjlpsqldqbnbdlajfqmlfnsqfpbpbmvm`jlpubofm`jb`lolnajbgfpsv/Epgfslqwfpsqlzf`wlsqlgv`wls/Vaoj`lmlplwqlpkjpwlqjbsqfpfmwfnjoolmfpnfgjbmwfsqfdvmwbbmwfqjlqqf`vqplpsqlaofnbpbmwjbdlmvfpwqlplsjmj/_mjnsqjnjqnjfmwqbpbn/Eqj`bufmgfglqpl`jfgbgqfpsf`wlqfbojybqqfdjpwqlsbobaqbpjmwfq/Epfmwlm`fpfpsf`jbonjfnaqlpqfbojgbg`/_qglabybqbdlybs/Mdjmbppl`jbofpaolrvfbqdfpwj/_mborvjofqpjpwfnbp`jfm`jbp`lnsofwlufqpj/_m`lnsofwbfpwvgjlps/Vaoj`blaifwjulboj`bmwfavp`bglq`bmwjgbgfmwqbgbpb``jlmfpbq`kjulppvsfqjlqnbzlq/Abbofnbmjbevm`j/_m/Vowjnlpkb`jfmglbrvfoolpfgj`j/_mefqmbmglbnajfmwfeb`fallhmvfpwqbp`ojfmwfpsql`fplpabpwbmwfsqfpfmwbqfslqwbq`lmdqfplsvaoj`bq`lnfq`jl`lmwqbwli/_ufmfpgjpwqjwlw/E`mj`b`lmivmwlfmfqd/Abwqbabibqbpwvqjbpqf`jfmwfvwjojybqalofw/Ampboubglq`lqqf`wbwqbabilpsqjnfqlpmfdl`jlpojafqwbggfwboofpsbmwboobsq/_{jnlbonfq/Abbmjnbofprvj/Emfp`lqby/_mpf``j/_mavp`bmglls`jlmfpf{wfqjlq`lm`fswlwlgbu/Abdbofq/Abfp`qjajqnfgj`jmboj`fm`jb`lmpvowbbpsf`wlp`q/Awj`bg/_obqfpivpwj`jbgfafq/Mmsfq/Alglmf`fpjwbnbmwfmfqsfrvf/]lqf`jajgbwqjavmbowfmfqjef`bm`j/_m`bmbqjbpgfp`bqdbgjufqplpnboolq`bqfrvjfqfw/E`mj`lgfafq/Abujujfmgbejmbmybpbgfobmwfevm`jlmb`lmpfilpgje/A`jo`jvgbgfpbmwjdvbpbubmybgbw/Eqnjmlvmjgbgfpp/Mm`kfy`bnsb/]bplewlmj`qfujpwbp`lmwjfmfpf`wlqfpnlnfmwlpeb`vowbg`q/Egjwlgjufqpbppvsvfpwleb`wlqfppfdvmglpsfrvf/]b<_<R<X<\\<Y=m<W<T<Y=m=n=`<]=g<W<R<]=g=n=`=a=n<R<P<y=m<W<T=n<R<_<R<P<Y<Q=c<^=m<Y=i=a=n<R<U<X<\\<Z<Y<]=g<W<T<_<R<X=o<X<Y<Q=`=a=n<R=n<]=g<W<\\=m<Y<]=c<R<X<T<Q=m<Y<]<Y<Q<\\<X<R=m<\\<U=n=h<R=n<R<Q<Y<_<R=m<^<R<T=m<^<R<U<T<_=l=g=n<R<Z<Y<^=m<Y<P=m<^<R=b<W<T=d=`=a=n<T=i<S<R<V<\\<X<Q<Y<U<X<R<P<\\<P<T=l<\\<W<T<]<R=n<Y<P=o=i<R=n=c<X<^=o=i=m<Y=n<T<W=b<X<T<X<Y<W<R<P<T=l<Y=n<Y<]=c=m<^<R<Y<^<T<X<Y=k<Y<_<R=a=n<T<P=m=k<Y=n=n<Y<P=g=j<Y<Q=g=m=n<\\<W<^<Y<X=`=n<Y<P<Y<^<R<X=g=n<Y<]<Y<^=g=d<Y<Q<\\<P<T=n<T<S<\\=n<R<P=o<S=l<\\<^<W<T=j<\\<R<X<Q<\\<_<R<X=g<[<Q<\\=b<P<R<_=o<X=l=o<_<^=m<Y<U<T<X<Y=n<V<T<Q<R<R<X<Q<R<X<Y<W<\\<X<Y<W<Y=m=l<R<V<T=b<Q=c<^<Y=m=`<y=m=n=`=l<\\<[<\\<Q<\\=d<T4K5h5h5k4K5h4F5f4@5i5f4U4B4K4Y4E4K5h4\\5f4U5h5f5k4@4C5f4C4K5h4N5j4K5h4]4C4F4A5o5i4Y5m4A4E5o4K5j4F4K5h5h5f5f5o5d5j4X4D5o4E5m5f5k4K4D5j4K4F4A5d4K4M4O5o4G4]4B5h4K5h4K5h4A4D4C5h5f5h4C4]5d4_4K4Z4V4[4F5o5d5j5k5j4K5o4_4K4A4E5j4K4C5f4K5h4[4D4U5h5f5o4X5o4]4K5f5i5o5j5i5j5k4K4X4]5o4E4]4J5f4_5j4X5f4[5i4K4\\4K4K5h5m5j4X4D4K4D4F4U4D4]4]4A5i4E5o4K5m4E5f5n5d5h5i4]5o4^5o5h5i4E4O4A5i4C5n5h4D5f5f4U5j5f4Y5d4]4E4[4]5f5n4X4K4]5o4@5d4K5h4O4B4]5e5i4U5j4K4K4D4A4G4U4]5d4Z4D4X5o5h5i4_4@5h4D5j4K5j4B4K5h4C5o4F4K4D5o5h5f4E4D4C5d5j4O5f4Z4K5f5d4@4C5m4]5f5n5o4F4D4F4O5m4Z5h5i4[4D4B4K5o4G4]4D4K4]5o4K5m4Z5h4K4A5h5e5j5m4_5k4O5f4K5i4]4C5d4C4O5j5k4K4C5f5j4K4K5h4K5j5i4U4]4Z4F4U5h5i4C4K4B5h5i5i5o5j\x03\x03\x03\x03\x03\x03\x03\x03\x02\x03\x02\x03\x02\x03\x02\x03\x01\x03\x01\x03\x01\x03\x01\x03\x07\x03\x07\x03\x07\x03\x07\x03\x03\x02\x01\0\x07\x06\x05\x04\x04\x05\x06\x07\0\x01\x02\x03\x0B\n\t\b\x0F\x0E\r\f\f\r\x0E\x0F\b\t\n\x0B\x13\x12\x11\x10\x17\x16\x15\x14\x14\x15\x16\x17\x10\x11\x12\x13\x1B\x1A\x19\x18\x1F\x1E\x1D\x1C\x1C\x1D\x1E\x1F\x18\x19\x1A\x1B\x13\x13\x13\x13\x03\x03\x03\x03\x03\x03\x03\x03\x13\x13\x13\x13\x02\x03\x03\x03\x01\x03\x03\x03\x01\x03\x03\x03\x02\x03\x03\x03\x02\x03\x03\x03\0\x03\x03\x03\x13\x13\x03\x02\x03\x03\x03\x02\x03\x03\x13\x13\x03\x02\x03\x03\x03\x0B\x03\x0B\x03\x0B\x03\x0B\x03\x03\x03\x02\x03\x01\x03\0\x03\x07\x03\x06\x03\x05\x03\x04qfplvq`fp`lvmwqjfprvfpwjlmpfrvjsnfmw`lnnvmjwzbubjobaofkjdkojdkwGWG,{kwnonbqhfwjmdhmltofgdfplnfwkjmd`lmwbjmfqgjqf`wjlmpvap`qjafbgufqwjpf`kbqb`wfq!#ubovf>!?,pfof`w=Bvpwqbojb!#`obpp>!pjwvbwjlmbvwklqjwzelooltjmdsqjnbqjozlsfqbwjlm`kboofmdfgfufolsfgbmlmznlvpevm`wjlm#evm`wjlmp`lnsbmjfppwqv`wvqfbdqffnfmw!#wjwof>!slwfmwjbofgv`bwjlmbqdvnfmwppf`lmgbqz`lszqjdkwobmdvbdfpf{`ovpjuf`lmgjwjlm?,elqn=\x0E\tpwbwfnfmwbwwfmwjlmAjldqbskz~#fopf#x\tplovwjlmptkfm#wkf#Bmbozwj`pwfnsobwfpgbmdfqlvppbwfoojwfgl`vnfmwpsvaojpkfqjnslqwbmwsqlwlwzsfjmeovfm`f%qbrvl8?,feef`wjufdfmfqboozwqbmpelqnafbvwjevowqbmpslqwlqdbmjyfgsvaojpkfgsqlnjmfmwvmwjo#wkfwkvnambjoMbwjlmbo#-el`vp+*8lufq#wkf#njdqbwjlmbmmlvm`fgellwfq!=\tf{`fswjlmofpp#wkbmf{sfmpjufelqnbwjlmeqbnftlqhwfqqjwlqzmgj`bwjlm`vqqfmwoz`obppMbnf`qjwj`jpnwqbgjwjlmfopftkfqfBof{bmgfqbssljmwfgnbwfqjbopaqlbg`bpwnfmwjlmfgbeejojbwf?,lswjlm=wqfbwnfmwgjeefqfmw,gfebvow-Sqfpjgfmwlm`oj`h>!ajldqbskzlwkfqtjpfsfqnbmfmwEqbm/KbjpKlooztllgf{sbmpjlmpwbmgbqgp?,pwzof=\tqfgv`wjlmGf`fnafq#sqfefqqfg@bnaqjgdflsslmfmwpAvpjmfpp#`lmevpjlm=\t?wjwof=sqfpfmwfgf{sobjmfgglfp#mlw#tlqogtjgfjmwfqeb`fslpjwjlmpmftpsbsfq?,wbaof=\tnlvmwbjmpojhf#wkf#fppfmwjboejmbm`jbopfof`wjlmb`wjlm>!,babmglmfgFgv`bwjlmsbqpfJmw+pwbajojwzvmbaof#wl?,wjwof=\tqfobwjlmpMlwf#wkbwfeej`jfmwsfqelqnfgwtl#zfbqpPjm`f#wkfwkfqfelqftqbssfq!=bowfqmbwfjm`qfbpfgAbwwof#lesfq`fjufgwqzjmd#wlmf`fppbqzslqwqbzfgfof`wjlmpFojybafwk?,jeqbnf=gjp`lufqzjmpvqbm`fp-ofmdwk8ofdfmgbqzDfldqbskz`bmgjgbwf`lqslqbwfplnfwjnfppfquj`fp-jmkfqjwfg?,pwqlmd=@lnnvmjwzqfojdjlvpol`bwjlmp@lnnjwwffavjogjmdpwkf#tlqogml#olmdfqafdjmmjmdqfefqfm`f`bmmlw#afeqfrvfm`zwzsj`boozjmwl#wkf#qfobwjuf8qf`lqgjmdsqfpjgfmwjmjwjboozwf`kmjrvfwkf#lwkfqjw#`bm#aff{jpwfm`fvmgfqojmfwkjp#wjnfwfofsklmfjwfnp`lsfsqb`wj`fpbgubmwbdf*8qfwvqm#Elq#lwkfqsqlujgjmdgfnl`qb`zalwk#wkf#f{wfmpjufpveefqjmdpvsslqwfg`lnsvwfqp#evm`wjlmsqb`wj`bopbjg#wkbwjw#nbz#afFmdojpk?,eqln#wkf#p`kfgvofggltmolbgp?,obafo=\tpvpsf`wfgnbqdjm9#3psjqjwvbo?,kfbg=\t\tnj`qlplewdqbgvboozgjp`vppfgkf#af`bnff{f`vwjufirvfqz-ipklvpfklog`lmejqnfgsvq`kbpfgojwfqboozgfpwqlzfgvs#wl#wkfubqjbwjlmqfnbjmjmdjw#jp#mlw`fmwvqjfpIbsbmfpf#bnlmd#wkf`lnsofwfgbodlqjwknjmwfqfpwpqfafoojlmvmgfejmfgfm`lvqbdfqfpjybaofjmuloujmdpfmpjwjufvmjufqpbosqlujpjlm+bowklvdkefbwvqjmd`lmgv`wfg*/#tkj`k#`lmwjmvfg.kfbgfq!=Efaqvbqz#mvnfqlvp#lufqeolt9`lnslmfmweqbdnfmwpf{`foofmw`lopsbm>!wf`kmj`bomfbq#wkf#Bgubm`fg#plvq`f#lef{sqfppfgKlmd#Hlmd#Eb`fallhnvowjsof#nf`kbmjpnfofubwjlmleefmpjuf?,elqn=\t\npslmplqfggl`vnfmw-lq#%rvlw8wkfqf#bqfwklpf#tklnlufnfmwpsql`fppfpgjeej`vowpvanjwwfgqf`lnnfmg`lmujm`fgsqlnlwjmd!#tjgwk>!-qfsob`f+`obppj`bo`lbojwjlmkjp#ejqpwgf`jpjlmpbppjpwbmwjmgj`bwfgfulovwjlm.tqbssfq!fmlvdk#wlbolmd#wkfgfojufqfg..=\x0E\t?\"..Bnfqj`bm#sqlwf`wfgMlufnafq#?,pwzof=?evqmjwvqfJmwfqmfw##lmaovq>!pvpsfmgfgqf`jsjfmwabpfg#lm#Nlqflufq/balojpkfg`loof`wfgtfqf#nbgffnlwjlmbofnfqdfm`zmbqqbwjufbgul`bwfps{8alqgfq`lnnjwwfggjq>!owq!fnsolzffpqfpfbq`k-#pfof`wfgpv``fpplq`vpwlnfqpgjpsobzfgPfswfnafqbgg@obpp+Eb`fallh#pvddfpwfgbmg#obwfqlsfqbwjmdfobalqbwfPlnfwjnfpJmpwjwvwf`fqwbjmozjmpwboofgelooltfqpIfqvpbofnwkfz#kbuf`lnsvwjmddfmfqbwfgsqlujm`fpdvbqbmwffbqajwqbqzqf`ldmjyftbmwfg#wls{8tjgwk9wkflqz#leafkbujlvqTkjof#wkffpwjnbwfgafdbm#wl#jw#af`bnfnbdmjwvgfnvpw#kbufnlqf#wkbmGjqf`wlqzf{wfmpjlmpf`qfwbqzmbwvqboozl``vqqjmdubqjbaofpdjufm#wkfsobwelqn-?,obafo=?ebjofg#wl`lnslvmgphjmgp#le#pl`jfwjfpbolmdpjgf#..%dw8\t\tplvwktfpwwkf#qjdkwqbgjbwjlmnbz#kbuf#vmfp`bsf+pslhfm#jm!#kqfe>!,sqldqbnnflmoz#wkf#`lnf#eqlngjqf`wlqzavqjfg#jmb#pjnjobqwkfz#tfqf?,elmw=?,Mlqtfdjbmpsf`jejfgsqlgv`jmdsbppfmdfq+mft#Gbwfwfnslqbqzej`wjlmboBewfq#wkffrvbwjlmpgltmolbg-qfdvobqozgfufolsfqbaluf#wkfojmhfg#wlskfmlnfmbsfqjlg#lewllowjs!=pvapwbm`fbvwlnbwj`bpsf`w#leBnlmd#wkf`lmmf`wfgfpwjnbwfpBjq#Elq`fpzpwfn#lelaif`wjufjnnfgjbwfnbhjmd#jwsbjmwjmdp`lmrvfqfgbqf#pwjoosql`fgvqfdqltwk#lekfbgfg#azFvqlsfbm#gjujpjlmpnlof`vofpeqbm`kjpfjmwfmwjlmbwwqb`wfg`kjogkllgbopl#vpfggfgj`bwfgpjmdbslqfgfdqff#leebwkfq#le`lmeoj`wp?,b=?,s=\t`bnf#eqlntfqf#vpfgmlwf#wkbwqf`fjujmdF{f`vwjuffufm#nlqfb``fpp#wl`lnnbmgfqSlojwj`bonvpj`jbmpgfoj`jlvpsqjplmfqpbgufmw#leVWE.;!#,=?\"X@GBWBX!=@lmwb`wPlvwkfqm#ad`lolq>!pfqjfp#le-#Jw#tbp#jm#Fvqlsfsfqnjwwfgubojgbwf-bssfbqjmdleej`jboppfqjlvpoz.obmdvbdfjmjwjbwfgf{wfmgjmdolmd.wfqnjmeobwjlmpv`k#wkbwdfw@llhjfnbqhfg#az?,avwwlm=jnsofnfmwavw#jw#jpjm`qfbpfpgltm#wkf#qfrvjqjmdgfsfmgfmw..=\t?\"..#jmwfqujftTjwk#wkf#`lsjfp#le`lmpfmpvptbp#avjowUfmfyvfob+elqnfqozwkf#pwbwfsfqplmmfopwqbwfdj`ebulvq#lejmufmwjlmTjhjsfgjb`lmwjmfmwujqwvbooztkj`k#tbpsqjm`jsof@lnsofwf#jgfmwj`bopklt#wkbwsqjnjwjufbtbz#eqlnnlof`vobqsqf`jpfozgjpploufgVmgfq#wkfufqpjlm>!=%maps8?,Jw#jp#wkf#Wkjp#jp#tjoo#kbuflqdbmjpnpplnf#wjnfEqjfgqj`ktbp#ejqpwwkf#lmoz#eb`w#wkbwelqn#jg>!sqf`fgjmdWf`kmj`boskzpj`jpwl``vqp#jmmbujdbwlqpf`wjlm!=psbm#jg>!plvdkw#wlafolt#wkfpvqujujmd~?,pwzof=kjp#gfbwkbp#jm#wkf`bvpfg#azsbqwjboozf{jpwjmd#vpjmd#wkftbp#djufmb#ojpw#leofufop#lemlwjlm#leLeej`jbo#gjpnjppfgp`jfmwjpwqfpfnaofpgvsoj`bwff{solpjufqf`lufqfgboo#lwkfqdboofqjfpxsbggjmd9sflsof#leqfdjlm#lebggqfppfpbppl`jbwfjnd#bow>!jm#nlgfqmpklvog#afnfwklg#leqfslqwjmdwjnfpwbnsmffgfg#wlwkf#Dqfbwqfdbqgjmdpffnfg#wlujftfg#bpjnsb`w#lmjgfb#wkbwwkf#Tlqogkfjdkw#lef{sbmgjmdWkfpf#bqf`vqqfmw!=`bqfevooznbjmwbjmp`kbqdf#le@obppj`bobggqfppfgsqfgj`wfgltmfqpkjs?gju#jg>!qjdkw!=\x0E\tqfpjgfm`fofbuf#wkf`lmwfmw!=bqf#lewfm##~*+*8\x0E\tsqlabaoz#Sqlefpplq.avwwlm!#qfpslmgfgpbzp#wkbwkbg#wl#afsob`fg#jmKvmdbqjbmpwbwvp#lepfqufp#bpVmjufqpbof{f`vwjlmbddqfdbwfelq#tkj`kjmef`wjlmbdqffg#wlkltfufq/#slsvobq!=sob`fg#lm`lmpwqv`wfof`wlqbopznalo#lejm`ovgjmdqfwvqm#wlbq`kjwf`w@kqjpwjbmsqfujlvp#ojujmd#jmfbpjfq#wlsqlefpplq\t%ow8\"..#feef`w#lebmbozwj`ptbp#wbhfmtkfqf#wkfwllh#lufqafojfe#jmBeqjhbbmpbp#ebq#bpsqfufmwfgtlqh#tjwkb#psf`jbo?ejfogpfw@kqjpwnbpQfwqjfufg\t\tJm#wkf#ab`h#jmwlmlqwkfbpwnbdbyjmfp=?pwqlmd=`lnnjwwffdlufqmjmddqlvsp#lepwlqfg#jmfpwbaojpkb#dfmfqbojwp#ejqpwwkfjq#ltmslsvobwfgbm#laif`w@bqjaafbmboolt#wkfgjpwqj`wptjp`lmpjmol`bwjlm-8#tjgwk9#jmkbajwfgPl`jbojpwIbmvbqz#2?,ellwfq=pjnjobqoz`klj`f#lewkf#pbnf#psf`jej`#avpjmfpp#Wkf#ejqpw-ofmdwk8#gfpjqf#wlgfbo#tjwkpjm`f#wkfvpfqBdfmw`lm`fjufgjmgf{-sksbp#%rvlw8fmdbdf#jmqf`fmwoz/eft#zfbqptfqf#bopl\t?kfbg=\t?fgjwfg#azbqf#hmltm`jwjfp#jmb``fpphfz`lmgfnmfgbopl#kbufpfquj`fp/ebnjoz#leP`kllo#le`lmufqwfgmbwvqf#le#obmdvbdfnjmjpwfqp?,laif`w=wkfqf#jp#b#slsvobqpfrvfm`fpbgul`bwfgWkfz#tfqfbmz#lwkfqol`bwjlm>fmwfq#wkfnv`k#nlqfqfeof`wfgtbp#mbnfglqjdjmbo#b#wzsj`botkfm#wkfzfmdjmffqp`lvog#mlwqfpjgfmwptfgmfpgbzwkf#wkjqg#sqlgv`wpIbmvbqz#1tkbw#wkfzb#`fqwbjmqfb`wjlmpsql`fpplqbewfq#kjpwkf#obpw#`lmwbjmfg!=?,gju=\t?,b=?,wg=gfsfmg#lmpfbq`k!=\tsjf`fp#le`lnsfwjmdQfefqfm`fwfmmfppfftkj`k#kbp#ufqpjlm>?,psbm=#??,kfbgfq=djufp#wkfkjpwlqjbmubovf>!!=sbggjmd93ujft#wkbwwldfwkfq/wkf#nlpw#tbp#elvmgpvapfw#lebwwb`h#lm`kjogqfm/sljmwp#lesfqplmbo#slpjwjlm9boofdfgoz@ofufobmgtbp#obwfqbmg#bewfqbqf#djufmtbp#pwjoop`qloojmdgfpjdm#lenbhfp#wkfnv`k#ofppBnfqj`bmp-\t\tBewfq#/#avw#wkfNvpfvn#leolvjpjbmb+eqln#wkfnjmmfplwbsbqwj`ofpb#sql`fppGlnjmj`bmulovnf#leqfwvqmjmdgfefmpjuf33s{\x7Fqjdknbgf#eqlnnlvpflufq!#pwzof>!pwbwfp#le+tkj`k#jp`lmwjmvfpEqbm`jp`lavjogjmd#tjwklvw#btjwk#plnftkl#tlvogb#elqn#leb#sbqw#leafelqf#jwhmltm#bp##Pfquj`fpol`bwjlm#bmg#lewfmnfbpvqjmdbmg#jw#jpsbsfqab`hubovfp#le\x0E\t?wjwof=>#tjmglt-gfwfqnjmffq%rvlw8#sobzfg#azbmg#fbqoz?,`fmwfq=eqln#wkjpwkf#wkqffsltfq#bmgle#%rvlw8jmmfqKWNO?b#kqfe>!z9jmojmf8@kvq`k#lewkf#fufmwufqz#kjdkleej`jbo#.kfjdkw9#`lmwfmw>!,`dj.ajm,wl#`qfbwfbeqjhbbmpfpsfqbmwleqbm/Kbjpobwujf)Mvojfwvuj)_(`f)Mwjmb(af)Mwjmb\fUh\fT{\fTN\n{I\np@\x04Fr\x0BBl\bQ\x7F\tA{\x0BUm\x05Gx\tA{\x01yp\x06YA\0zX\bTV\bWl\bUd\x04BM\x0BB{\npV\x0B@x\x04B\\\np@\x04Db\x04Gz\tal\npa\tfM\tuD\bV~\x04mx\x0BQ}\ndS\tp\\\bVK\bS]\bU|\x05oD\tkV\x0Bed\x0BHR\nb~\x04M`\nJp\x05oD\x04|Q\nLP\x04Sw\bTl\nAI\nxC\bWt\tBq\x05F`\x04Cm\x0BLm\tKx\t}t\bPv\ny\\\naB\tV\x7F\nZd\x04XU\x04li\tfr\ti@\tBH\x04BD\x04BV\t`V\n[]\tp_\tTn\n~A\nxR\tuD\t`{\bV@\tTn\tHK\tAJ\x0Bxs\x04Zf\nqI\x04Zf\x0BBM\x0B|j\t}t\bSM\nmC\x0BQ}pfquj`jlpbqw/A`volbqdfmwjmbabq`folmb`vborvjfqsvaoj`bglsqlgv`wlpslo/Awj`bqfpsvfpwbtjhjsfgjbpjdvjfmwfa/Vprvfgb`lnvmjgbgpfdvqjgbgsqjm`jsbosqfdvmwbp`lmwfmjglqfpslmgfqufmfyvfobsqlaofnbpgj`jfnaqfqfob`j/_mmlujfnaqfpjnjobqfpsqlzf`wlpsqldqbnbpjmpwjwvwlb`wjujgbgfm`vfmwqbf`lmln/Abjn/Mdfmfp`lmwb`wbqgfp`bqdbqmf`fpbqjlbwfm`j/_mwfo/Eelml`lnjpj/_m`bm`jlmfp`bsb`jgbgfm`lmwqbqbm/Mojpjpebulqjwlpw/Eqnjmlpsqlujm`jbfwjrvfwbpfofnfmwlpevm`jlmfpqfpvowbgl`bq/M`wfqsqlsjfgbgsqjm`jsjlmf`fpjgbgnvmj`jsbo`qfb`j/_mgfp`bqdbpsqfpfm`jb`lnfq`jbolsjmjlmfpfifq`j`jlfgjwlqjbopbobnbm`bdlmy/Mofygl`vnfmwlsfo/A`vobqf`jfmwfpdfmfqbofpwbqqbdlmbsq/M`wj`bmlufgbgfpsqlsvfpwbsb`jfmwfpw/E`mj`bplaifwjulp`lmwb`wlp\fHB\fIk\fHn\fH^\fHS\fHc\fHU\fId\fHn\fH{\fHC\fHR\fHT\fHR\fHI\fHc\fHY\fHn\fH\\\fHU\fIk\fHy\fIg\fHd\fHy\fIm\fHw\fH\\\fHU\fHR\fH@\fHR\fHJ\fHy\fHU\fHR\fHT\fHA\fIl\fHU\fIm\fHc\fH\\\fHU\fIl\fHB\fId\fHn\fHJ\fHS\fHD\fH@\fHR\fHHgjsolgl`p\fHT\fHB\fHC\fH\\\fIn\fHF\fHD\fHR\fHB\fHF\fHH\fHR\fHG\fHS\fH\\\fHx\fHT\fHH\fHH\fH\\\fHU\fH^\fIg\fH{\fHU\fIm\fHj\fH@\fHR\fH\\\fHJ\fIk\fHZ\fHU\fIm\fHd\fHz\fIk\fH^\fHC\fHJ\fHS\fHy\fHR\fHB\fHY\fIk\fH@\fHH\fIl\fHD\fH@\fIl\fHv\fHB\fI`\fHH\fHT\fHR\fH^\fH^\fIk\fHz\fHp\fIe\fH@\fHB\fHJ\fHJ\fHH\fHI\fHR\fHD\fHU\fIl\fHZ\fHU\fH\\\fHi\fH^\fH{\fHy\fHA\fIl\fHD\fH{\fH\\\fHF\fHR\fHT\fH\\\fHR\fHH\fHy\fHS\fHc\fHe\fHT\fIk\fH{\fHC\fIl\fHU\fIn\fHm\fHj\fH{\fIk\fHs\fIl\fHB\fHz\fIg\fHp\fHy\fHR\fH\\\fHi\fHA\fIl\fH{\fHC\fIk\fHH\fIm\fHB\fHY\fIg\fHs\fHJ\fIk\fHn\fHi\fH{\fH\\\fH|\fHT\fIk\fHB\fIk\fH^\fH^\fH{\fHR\fHU\fHR\fH^\fHf\fHF\fH\\\fHv\fHR\fH\\\fH|\fHT\fHR\fHJ\fIk\fH\\\fHp\fHS\fHT\fHJ\fHS\fH^\fH@\fHn\fHJ\fH@\fHD\fHR\fHU\fIn\fHn\fH^\fHR\fHz\fHp\fIl\fHH\fH@\fHs\fHD\fHB\fHS\fH^\fHk\fHT\fIk\fHj\fHD\fIk\fHD\fHC\fHR\fHy\fIm\fH^\fH^\fIe\fH{\fHA\fHR\fH{\fH\\\fIk\fH^\fHp\fH{\fHU\fH\\\fHR\fHB\fH^\fH{\fIk\fHF\fIk\fHp\fHU\fHR\fHI\fHk\fHT\fIl\fHT\fHU\fIl\fHy\fH^\fHR\fHL\fIl\fHy\fHU\fHR\fHm\fHJ\fIn\fH\\\fHH\fHU\fHH\fHT\fHR\fHH\fHC\fHR\fHJ\fHj\fHC\fHR\fHF\fHR\fHy\fHy\fI`\fHD\fHZ\fHR\fHB\fHJ\fIk\fHz\fHC\fHU\fIl\fH\\\fHR\fHC\fHz\fIm\fHJ\fH^\fH{\fIl`bwfdlqjfpf{sfqjfm`f?,wjwof=\x0E\t@lszqjdkw#ibubp`qjsw`lmgjwjlmpfufqzwkjmd?s#`obpp>!wf`kmloldzab`hdqlvmg?b#`obpp>!nbmbdfnfmw%`lsz8#132ibubP`qjsw`kbqb`wfqpaqfbg`qvnawkfnpfoufpklqjylmwbodlufqmnfmw@bojelqmjbb`wjujwjfpgjp`lufqfgMbujdbwjlmwqbmpjwjlm`lmmf`wjlmmbujdbwjlmbssfbqbm`f?,wjwof=?n`kf`hal{!#wf`kmjrvfpsqlwf`wjlmbssbqfmwozbp#tfoo#bpvmw$/#$VB.qfplovwjlmlsfqbwjlmpwfofujpjlmwqbmpobwfgTbpkjmdwlmmbujdbwlq-#>#tjmglt-jnsqfppjlm%ow8aq%dw8ojwfqbwvqfslsvobwjlmad`lolq>! fpsf`jbooz#`lmwfmw>!sqlgv`wjlmmftpofwwfqsqlsfqwjfpgfejmjwjlmofbgfqpkjsWf`kmloldzSbqojbnfmw`lnsbqjplmvo#`obpp>!-jmgf{Le+!`lm`ovpjlmgjp`vppjlm`lnslmfmwpajloldj`boQfulovwjlm\\`lmwbjmfqvmgfqpwllgmlp`qjsw=?sfqnjppjlmfb`k#lwkfqbwnlpskfqf#lmel`vp>!?elqn#jg>!sql`fppjmdwkjp-ubovfdfmfqbwjlm@lmefqfm`fpvapfrvfmwtfoo.hmltmubqjbwjlmpqfsvwbwjlmskfmlnfmlmgjp`jsojmfoldl-smd!#+gl`vnfmw/alvmgbqjfpf{sqfppjlmpfwwofnfmwAb`hdqlvmglvw#le#wkffmwfqsqjpf+!kwwsp9!#vmfp`bsf+!sbpptlqg!#gfnl`qbwj`?b#kqfe>!,tqbssfq!=\tnfnafqpkjsojmdvjpwj`s{8sbggjmdskjolplskzbppjpwbm`fvmjufqpjwzeb`jojwjfpqf`ldmjyfgsqfefqfm`fje#+wzsflenbjmwbjmfgul`bavobqzkzslwkfpjp-pvanjw+*8%bns8maps8bmmlwbwjlmafkjmg#wkfElvmgbwjlmsvaojpkfq!bppvnswjlmjmwqlgv`fg`lqqvswjlmp`jfmwjpwpf{soj`jwozjmpwfbg#legjnfmpjlmp#lm@oj`h>!`lmpjgfqfggfsbqwnfmwl``vsbwjlmpllm#bewfqjmufpwnfmwsqlmlvm`fgjgfmwjejfgf{sfqjnfmwNbmbdfnfmwdfldqbskj`!#kfjdkw>!ojmh#qfo>!-qfsob`f+,gfsqfppjlm`lmefqfm`fsvmjpknfmwfojnjmbwfgqfpjpwbm`fbgbswbwjlmlsslpjwjlmtfoo#hmltmpvssofnfmwgfwfqnjmfgk2#`obpp>!3s{8nbqdjmnf`kbmj`bopwbwjpwj`p`fofaqbwfgDlufqmnfmw\t\tGvqjmd#wgfufolsfqpbqwjej`jbofrvjubofmwlqjdjmbwfg@lnnjppjlmbwwb`knfmw?psbm#jg>!wkfqf#tfqfMfgfqobmgpafzlmg#wkfqfdjpwfqfgilvqmbojpweqfrvfmwozboo#le#wkfobmd>!fm!#?,pwzof=\x0E\tbaplovwf8#pvsslqwjmdf{wqfnfoz#nbjmpwqfbn?,pwqlmd=#slsvobqjwzfnsolznfmw?,wbaof=\x0E\t#`lopsbm>!?,elqn=\t##`lmufqpjlmbalvw#wkf#?,s=?,gju=jmwfdqbwfg!#obmd>!fmSlqwvdvfpfpvapwjwvwfjmgjujgvbojnslppjaofnvowjnfgjbbonlpw#boos{#plojg# bsbqw#eqlnpvaif`w#wljm#Fmdojpk`qjwj`jyfgf{`fsw#elqdvjgfojmfplqjdjmboozqfnbqhbaofwkf#pf`lmgk1#`obpp>!?b#wjwof>!+jm`ovgjmdsbqbnfwfqpsqlkjajwfg>#!kwws9,,gj`wjlmbqzsfq`fswjlmqfulovwjlmelvmgbwjlms{8kfjdkw9pv``fppevopvsslqwfqpnjoofmmjvnkjp#ebwkfqwkf#%rvlw8ml.qfsfbw8`lnnfq`jbojmgvpwqjbofm`lvqbdfgbnlvmw#le#vmleej`jbofeej`jfm`zQfefqfm`fp`llqgjmbwfgjp`objnfqf{sfgjwjlmgfufolsjmd`bo`vobwfgpjnsojejfgofdjwjnbwfpvapwqjmd+3!#`obpp>!`lnsofwfozjoovpwqbwfejuf#zfbqpjmpwqvnfmwSvaojpkjmd2!#`obpp>!spz`kloldz`lmejgfm`fmvnafq#le#bapfm`f#leel`vpfg#lmiljmfg#wkfpwqv`wvqfpsqfujlvpoz=?,jeqbnf=lm`f#bdbjmavw#qbwkfqjnnjdqbmwple#`lvqpf/b#dqlvs#leOjwfqbwvqfVmojhf#wkf?,b=%maps8\tevm`wjlm#jw#tbp#wkf@lmufmwjlmbvwlnlajofSqlwfpwbmwbddqfppjufbewfq#wkf#Pjnjobqoz/!#,=?,gju=`loof`wjlm\x0E\tevm`wjlmujpjajojwzwkf#vpf#leulovmwffqpbwwqb`wjlmvmgfq#wkf#wkqfbwfmfg)?\"X@GBWBXjnslqwbm`fjm#dfmfqbowkf#obwwfq?,elqn=\t?,-jmgf{Le+$j#>#38#j#?gjeefqfm`fgfulwfg#wlwqbgjwjlmppfbq`k#elqvowjnbwfozwlvqmbnfmwbwwqjavwfppl.`boofg#~\t?,pwzof=fubovbwjlmfnskbpjyfgb``fppjaof?,pf`wjlm=pv``fppjlmbolmd#tjwkNfbmtkjof/jmgvpwqjfp?,b=?aq#,=kbp#af`lnfbpsf`wp#leWfofujpjlmpveej`jfmwabphfwabooalwk#pjgfp`lmwjmvjmdbm#bqwj`of?jnd#bow>!bgufmwvqfpkjp#nlwkfqnbm`kfpwfqsqjm`jsofpsbqwj`vobq`lnnfmwbqzfeef`wp#legf`jgfg#wl!=?pwqlmd=svaojpkfqpIlvqmbo#legjeej`vowzeb`jojwbwfb``fswbaofpwzof-`pp!\nevm`wjlm#jmmlubwjlm=@lszqjdkwpjwvbwjlmptlvog#kbufavpjmfppfpGj`wjlmbqzpwbwfnfmwplewfm#vpfgsfqpjpwfmwjm#Ibmvbqz`lnsqjpjmd?,wjwof=\t\ngjsolnbwj``lmwbjmjmdsfqelqnjmdf{wfmpjlmpnbz#mlw#af`lm`fsw#le#lm`oj`h>!Jw#jp#boplejmbm`jbo#nbhjmd#wkfOv{fnalvqdbggjwjlmbobqf#`boofgfmdbdfg#jm!p`qjsw!*8avw#jw#tbpfof`wqlmj`lmpvanjw>!\t?\"..#Fmg#fof`wqj`boleej`jboozpvddfpwjlmwls#le#wkfvmojhf#wkfBvpwqbojbmLqjdjmboozqfefqfm`fp\t?,kfbg=\x0E\tqf`ldmjpfgjmjwjbojyfojnjwfg#wlBof{bmgqjbqfwjqfnfmwBgufmwvqfpelvq#zfbqp\t\t%ow8\"..#jm`qfbpjmdgf`lqbwjlmk0#`obpp>!lqjdjmp#lelaojdbwjlmqfdvobwjlm`obppjejfg+evm`wjlm+bgubmwbdfpafjmd#wkf#kjpwlqjbmp?abpf#kqfeqfsfbwfgoztjoojmd#wl`lnsbqbaofgfpjdmbwfgmlnjmbwjlmevm`wjlmbojmpjgf#wkfqfufobwjlmfmg#le#wkfp#elq#wkf#bvwklqjyfgqfevpfg#wlwbhf#sob`fbvwlmlnlvp`lnsqlnjpfslojwj`bo#qfpwbvqbmwwtl#le#wkfEfaqvbqz#1rvbojwz#leptelaif`w-vmgfqpwbmgmfbqoz#bootqjwwfm#azjmwfqujftp!#tjgwk>!2tjwkgqbtboeolbw9ofewjp#vpvbooz`bmgjgbwfpmftpsbsfqpnzpwfqjlvpGfsbqwnfmwafpw#hmltmsbqojbnfmwpvssqfppfg`lmufmjfmwqfnfnafqfggjeefqfmw#pzpwfnbwj`kbp#ofg#wlsqlsbdbmgb`lmwqloofgjmeovfm`fp`fqfnlmjbosql`objnfgSqlwf`wjlmoj#`obpp>!P`jfmwjej``obpp>!ml.wqbgfnbqhpnlqf#wkbm#tjgfpsqfbgOjafqbwjlmwllh#sob`fgbz#le#wkfbp#olmd#bpjnsqjplmfgBggjwjlmbo\t?kfbg=\t?nObalqbwlqzMlufnafq#1f{`fswjlmpJmgvpwqjboubqjfwz#leeolbw9#ofeGvqjmd#wkfbppfppnfmwkbuf#affm#gfbop#tjwkPwbwjpwj`pl``vqqfm`f,vo=?,gju=`ofbqej{!=wkf#svaoj`nbmz#zfbqptkj`k#tfqflufq#wjnf/pzmlmznlvp`lmwfmw!=\tsqfpvnbaozkjp#ebnjozvpfqBdfmw-vmf{sf`wfgjm`ovgjmd#`kboofmdfgb#njmlqjwzvmgfejmfg!afolmdp#wlwbhfm#eqlnjm#L`wlafqslpjwjlm9#pbjg#wl#afqfojdjlvp#Efgfqbwjlm#qltpsbm>!lmoz#b#eftnfbmw#wkbwofg#wl#wkf..=\x0E\t?gju#?ejfogpfw=Bq`kajpkls#`obpp>!mlafjmd#vpfgbssqlb`kfpsqjujofdfpmlp`qjsw=\tqfpvowp#jmnbz#af#wkfFbpwfq#fddnf`kbmjpnpqfbplmbaofSlsvobwjlm@loof`wjlmpfof`wfg!=mlp`qjsw=\x0E,jmgf{-sksbqqjubo#le.ippgh$**8nbmbdfg#wljm`lnsofwf`bpvbowjfp`lnsofwjlm@kqjpwjbmpPfswfnafq#bqjwknfwj`sql`fgvqfpnjdkw#kbufSqlgv`wjlmjw#bssfbqpSkjolplskzeqjfmgpkjsofbgjmd#wldjujmd#wkfwltbqg#wkfdvbqbmwffggl`vnfmwfg`lolq9 333ujgfl#dbnf`lnnjppjlmqfeof`wjmd`kbmdf#wkfbppl`jbwfgpbmp.pfqjelmhfzsqfpp8#sbggjmd9Kf#tbp#wkfvmgfqozjmdwzsj`booz#/#bmg#wkf#pq`Fofnfmwpv``fppjufpjm`f#wkf#pklvog#af#mfwtlqhjmdb``lvmwjmdvpf#le#wkfoltfq#wkbmpkltp#wkbw?,psbm=\t\n\n`lnsobjmwp`lmwjmvlvprvbmwjwjfpbpwqlmlnfqkf#gjg#mlwgvf#wl#jwpbssojfg#wlbm#bufqbdffeelqwp#wlwkf#evwvqfbwwfnsw#wlWkfqfelqf/`bsbajojwzQfsvaoj`bmtbp#elqnfgFof`wqlmj`hjolnfwfqp`kboofmdfpsvaojpkjmdwkf#elqnfqjmgjdfmlvpgjqf`wjlmppvapjgjbqz`lmpsjqb`zgfwbjop#lebmg#jm#wkfbeelqgbaofpvapwbm`fpqfbplm#elq`lmufmwjlmjwfnwzsf>!baplovwfozpvsslpfgozqfnbjmfg#bbwwqb`wjufwqbufoojmdpfsbqbwfozel`vpfp#lmfofnfmwbqzbssoj`baofelvmg#wkbwpwzofpkffwnbmvp`qjswpwbmgp#elq#ml.qfsfbw+plnfwjnfp@lnnfq`jbojm#Bnfqj`bvmgfqwbhfmrvbqwfq#lebm#f{bnsofsfqplmboozjmgf{-sks<?,avwwlm=\tsfq`fmwbdfafpw.hmltm`qfbwjmd#b!#gjq>!owqOjfvwfmbmw\t?gju#jg>!wkfz#tlvogbajojwz#lenbgf#vs#lemlwfg#wkbw`ofbq#wkbwbqdvf#wkbwwl#bmlwkfq`kjogqfm$psvqslpf#leelqnvobwfgabpfg#vslmwkf#qfdjlmpvaif`w#lesbppfmdfqpslppfppjlm-\t\tJm#wkf#Afelqf#wkfbewfqtbqgp`vqqfmwoz#b`qlpp#wkfp`jfmwjej``lnnvmjwz-`bsjwbojpnjm#Dfqnbmzqjdkw.tjmdwkf#pzpwfnPl`jfwz#leslojwj`jbmgjqf`wjlm9tfmw#lm#wlqfnlubo#le#Mft#Zlqh#bsbqwnfmwpjmgj`bwjlmgvqjmd#wkfvmofpp#wkfkjpwlqj`bokbg#affm#bgfejmjwjufjmdqfgjfmwbwwfmgbm`f@fmwfq#elqsqlnjmfm`fqfbgzPwbwfpwqbwfdjfpavw#jm#wkfbp#sbqw#le`lmpwjwvwf`objn#wkbwobalqbwlqz`lnsbwjaofebjovqf#le/#pv`k#bp#afdbm#tjwkvpjmd#wkf#wl#sqlujgfefbwvqf#leeqln#tkj`k,!#`obpp>!dfloldj`bopfufqbo#legfojafqbwfjnslqwbmw#klogp#wkbwjmd%rvlw8#ubojdm>wlswkf#Dfqnbmlvwpjgf#lemfdlwjbwfgkjp#`bqffqpfsbqbwjlmjg>!pfbq`ktbp#`boofgwkf#elvqwkqf`qfbwjlmlwkfq#wkbmsqfufmwjlmtkjof#wkf#fgv`bwjlm/`lmmf`wjmdb``vqbwfoztfqf#avjowtbp#hjoofgbdqffnfmwpnv`k#nlqf#Gvf#wl#wkftjgwk9#233plnf#lwkfqHjmdgln#lewkf#fmwjqfebnlvp#elqwl#`lmmf`wlaif`wjufpwkf#Eqfm`ksflsof#bmgefbwvqfg!=jp#pbjg#wlpwqv`wvqboqfefqfmgvnnlpw#lewfmb#pfsbqbwf.=\t?gju#jg#Leej`jbo#tlqogtjgf-bqjb.obafowkf#sobmfwbmg#jw#tbpg!#ubovf>!ollhjmd#bwafmfej`jbobqf#jm#wkfnlmjwlqjmdqfslqwfgozwkf#nlgfqmtlqhjmd#lmbooltfg#wltkfqf#wkf#jmmlubwjuf?,b=?,gju=plvmgwqb`hpfbq`kElqnwfmg#wl#afjmsvw#jg>!lsfmjmd#leqfpwqj`wfgbglswfg#azbggqfppjmdwkfloldjbmnfwklgp#leubqjbmw#le@kqjpwjbm#ufqz#obqdfbvwlnlwjufaz#ebq#wkfqbmdf#eqlnsvqpvjw#leeloolt#wkfaqlvdkw#wljm#Fmdobmgbdqff#wkbwb``vpfg#le`lnfp#eqlnsqfufmwjmdgju#pwzof>kjp#lq#kfqwqfnfmglvpeqffgln#le`lm`fqmjmd3#2fn#2fn8Abphfwaboo,pwzof-`ppbm#fbqojfqfufm#bewfq,!#wjwof>!-`ln,jmgf{wbhjmd#wkfsjwwpavqdk`lmwfmw!=\x0E?p`qjsw=+ewvqmfg#lvwkbujmd#wkf?,psbm=\x0E\t#l``bpjlmboaf`bvpf#jwpwbqwfg#wlskzpj`booz=?,gju=\t##`qfbwfg#az@vqqfmwoz/#ad`lolq>!wbajmgf{>!gjpbpwqlvpBmbozwj`p#bopl#kbp#b=?gju#jg>!?,pwzof=\t?`boofg#elqpjmdfq#bmg-pq`#>#!,,ujlobwjlmpwkjp#sljmw`lmpwbmwozjp#ol`bwfgqf`lqgjmdpg#eqln#wkfmfgfqobmgpslqwvdv/Fp;N;};D;u;F5m4K4]4_7`gfpbqqlool`lnfmwbqjlfgv`b`j/_mpfswjfnaqfqfdjpwqbglgjqf``j/_mvaj`b`j/_msvaoj`jgbgqfpsvfpwbpqfpvowbglpjnslqwbmwfqfpfqubglpbqw/A`volpgjefqfmwfppjdvjfmwfpqfs/Vaoj`bpjwvb`j/_mnjmjpwfqjlsqjub`jgbggjqf`wlqjlelqnb`j/_mslaob`j/_msqfpjgfmwf`lmw", "fmjglpb``fplqjlpwf`kmlqbwjsfqplmbofp`bwfdlq/Abfpsf`jbofpgjpslmjaofb`wvbojgbgqfefqfm`jbuboobglojgajaojlwf`bqfob`jlmfp`bofmgbqjlslo/Awj`bpbmwfqjlqfpgl`vnfmwlpmbwvqbofybnbwfqjbofpgjefqfm`jbf`lm/_nj`bwqbmpslqwfqlgq/Advfysbqwj`jsbqfm`vfmwqbmgjp`vpj/_mfpwqv`wvqbevmgb`j/_meqf`vfmwfpsfqnbmfmwfwlwbonfmwf<P<R<Z<Q<R<]=o<X<Y=n<P<R<Z<Y=n<^=l<Y<P=c=n<\\<V<Z<Y=k=n<R<]=g<]<R<W<Y<Y<R=k<Y<Q=`=a=n<R<_<R<V<R<_<X<\\<S<R=m<W<Y<^=m<Y<_<R=m<\\<U=n<Y=k<Y=l<Y<[<P<R<_=o=n=m<\\<U=n<\\<Z<T<[<Q<T<P<Y<Z<X=o<]=o<X=o=n<s<R<T=m<V<[<X<Y=m=`<^<T<X<Y<R=m<^=c<[<T<Q=o<Z<Q<R=m<^<R<Y<U<W=b<X<Y<U<S<R=l<Q<R<P<Q<R<_<R<X<Y=n<Y<U=m<^<R<T=i<S=l<\\<^<\\=n<\\<V<R<U<P<Y=m=n<R<T<P<Y<Y=n<Z<T<[<Q=`<R<X<Q<R<U<W=o=k=d<Y<S<Y=l<Y<X=k<\\=m=n<T=k<\\=m=n=`=l<\\<]<R=n<Q<R<^=g=i<S=l<\\<^<R=m<R<]<R<U<S<R=n<R<P<P<Y<Q<Y<Y=k<T=m<W<Y<Q<R<^=g<Y=o=m<W=o<_<R<V<R<W<R<Q<\\<[<\\<X=n<\\<V<R<Y=n<R<_<X<\\<S<R=k=n<T<s<R=m<W<Y=n<\\<V<T<Y<Q<R<^=g<U=m=n<R<T=n=n<\\<V<T=i=m=l<\\<[=o<M<\\<Q<V=n=h<R=l=o<P<v<R<_<X<\\<V<Q<T<_<T=m<W<R<^<\\<Q<\\=d<Y<U<Q<\\<U=n<T=m<^<R<T<P=m<^=c<[=`<W=b<]<R<U=k<\\=m=n<R=m=l<Y<X<T<v=l<R<P<Y<H<R=l=o<P=l=g<Q<V<Y=m=n<\\<W<T<S<R<T=m<V=n=g=m=c=k<P<Y=m=c=j=j<Y<Q=n=l=n=l=o<X<\\=m<\\<P=g=i=l=g<Q<V<\\<q<R<^=g<U=k<\\=m<R<^<P<Y=m=n<\\=h<T<W=`<P<P<\\=l=n<\\=m=n=l<\\<Q<P<Y=m=n<Y=n<Y<V=m=n<Q<\\=d<T=i<P<T<Q=o=n<T<P<Y<Q<T<T<P<Y=b=n<Q<R<P<Y=l<_<R=l<R<X=m<\\<P<R<P=a=n<R<P=o<V<R<Q=j<Y=m<^<R<Y<P<V<\\<V<R<U<|=l=i<T<^5i5j4F4C5e4I4]4_4K5h4]4_4K5h4E4K5h4U4K5i5o4F4D5k4K4D4]4K5i4@4K5h5f5d5i4K5h4Y5d4]4@4C5f4C4E4K5h4U4Z5d4I4Z4K5m4E4K5h5n4_5i4K5h4U4K4D4F4A5i5f5h5i5h5m4K4F5i5h4F5n5e4F4U4C5f5h4K5h4X4U4]4O4B4D4K4]4F4[5d5f4]4U5h5f5o5i4I4]5m4K5n4[5h4D4K4F4K5h5h4V4E4F4]4F5f4D4K5h5j4K4_4K5h4X5f4B5i5j4F4C5f4K5h4U4]4D4K5h5n4Y4Y4K5m5h4K5i4U5h5f5k4K4F4A4C5f4G4K5h5h5k5i4K5h4U5i5h5i5o4F4D4E5f5i5o5j5o4K5h4[5m5h5m5f4C5f5d4I4C4K4]4E4F4K4]5f4B4K5h4Y4A4E4F4_4@5f5h4K5h5d5n4F4U5j4C5i4K5i4C5f5j4E4F4Y5i5f5i4O4]4X5f5m4K5h4\\5f5j4U4]4D5f4E4D5d4K4D4E4O5h4U4K4D4K5h4_5m4]5i4X4K5o5h4F4U4K5h5e4K5h4O5d5h4K5h4_5j4E4@4K5i4U4E4K5h4Y4A5m4K5h4C5f5j5o5h5i4K4F4K5h4B4K4Y4K5h5i5h5m4O4U4Z4K4M5o4F4K4D4E4K5h4B5f4]4]4_4K4J5h4K5h5n5h4D4K5h4O4C4D5i5n4K4[4U5i4]4K4_5h5i5j4[5n4E4K5h5o4F4D4K5h4]4@5h4K4X4F4]5o4K5h5n4C5i5f4U4[5f5opAzWbdMbnf+-isd!#bow>!2s{#plojg# -dje!#bow>!wqbmpsbqfmwjmelqnbwjlmbssoj`bwjlm!#lm`oj`h>!fpwbaojpkfgbgufqwjpjmd-smd!#bow>!fmujqlmnfmwsfqelqnbm`fbssqlsqjbwf%bns8ngbpk8jnnfgjbwfoz?,pwqlmd=?,qbwkfq#wkbmwfnsfqbwvqfgfufolsnfmw`lnsfwjwjlmsob`fklogfqujpjajojwz9`lszqjdkw!=3!#kfjdkw>!fufm#wklvdkqfsob`fnfmwgfpwjmbwjlm@lqslqbwjlm?vo#`obpp>!Bppl`jbwjlmjmgjujgvbopsfqpsf`wjufpfwWjnflvw+vqo+kwws9,,nbwkfnbwj`pnbqdjm.wls9fufmwvbooz#gfp`qjswjlm*#ml.qfsfbw`loof`wjlmp-ISD\x7Fwkvna\x7Fsbqwj`jsbwf,kfbg=?algzeolbw9ofew8?oj#`obpp>!kvmgqfgp#le\t\tKltfufq/#`lnslpjwjlm`ofbq9alwk8`llsfqbwjlmtjwkjm#wkf#obafo#elq>!alqgfq.wls9Mft#Yfbobmgqf`lnnfmgfgsklwldqbskzjmwfqfpwjmd%ow8pvs%dw8`lmwqlufqpzMfwkfqobmgpbowfqmbwjufnb{ofmdwk>!ptjwyfqobmgGfufolsnfmwfppfmwjbooz\t\tBowklvdk#?,wf{wbqfb=wkvmgfqajqgqfsqfpfmwfg%bns8mgbpk8psf`vobwjlm`lnnvmjwjfpofdjpobwjlmfof`wqlmj`p\t\n?gju#jg>!joovpwqbwfgfmdjmffqjmdwfqqjwlqjfpbvwklqjwjfpgjpwqjavwfg5!#kfjdkw>!pbmp.pfqje8`bsbaof#le#gjpbssfbqfgjmwfqb`wjufollhjmd#elqjw#tlvog#afBedkbmjpwbmtbp#`qfbwfgNbwk-eollq+pvqqlvmgjmd`bm#bopl#aflapfqubwjlmnbjmwfmbm`ffm`lvmwfqfg?k1#`obpp>!nlqf#qf`fmwjw#kbp#affmjmubpjlm#le*-dfwWjnf+*evmgbnfmwboGfpsjwf#wkf!=?gju#jg>!jmpsjqbwjlmf{bnjmbwjlmsqfsbqbwjlmf{sobmbwjlm?jmsvw#jg>!?,b=?,psbm=ufqpjlmp#lejmpwqvnfmwpafelqf#wkf##>#$kwws9,,Gfp`qjswjlmqfobwjufoz#-pvapwqjmd+fb`k#le#wkff{sfqjnfmwpjmeovfmwjbojmwfdqbwjlmnbmz#sflsofgvf#wl#wkf#`lnajmbwjlmgl#mlw#kbufNjggof#Fbpw?mlp`qjsw=?`lszqjdkw!#sfqkbsp#wkfjmpwjwvwjlmjm#Gf`fnafqbqqbmdfnfmwnlpw#ebnlvpsfqplmbojwz`qfbwjlm#leojnjwbwjlmpf{`ovpjufozplufqfjdmwz.`lmwfmw!=\t?wg#`obpp>!vmgfqdqlvmgsbqboofo#wlgl`wqjmf#lel``vsjfg#azwfqnjmloldzQfmbjppbm`fb#mvnafq#lepvsslqw#elqf{solqbwjlmqf`ldmjwjlmsqfgf`fpplq?jnd#pq`>!,?k2#`obpp>!svaoj`bwjlmnbz#bopl#afpsf`jbojyfg?,ejfogpfw=sqldqfppjufnjoojlmp#lepwbwfp#wkbwfmelq`fnfmwbqlvmg#wkf#lmf#bmlwkfq-sbqfmwMlgfbdqj`vowvqfBowfqmbwjufqfpfbq`kfqpwltbqgp#wkfNlpw#le#wkfnbmz#lwkfq#+fpsf`jbooz?wg#tjgwk>!8tjgwk9233&jmgfsfmgfmw?k0#`obpp>!#lm`kbmdf>!*-bgg@obpp+jmwfqb`wjlmLmf#le#wkf#gbvdkwfq#leb``fpplqjfpaqbm`kfp#le\x0E\t?gju#jg>!wkf#obqdfpwgf`obqbwjlmqfdvobwjlmpJmelqnbwjlmwqbmpobwjlmgl`vnfmwbqzjm#lqgfq#wl!=\t?kfbg=\t?!#kfjdkw>!2b`qlpp#wkf#lqjfmwbwjlm*8?,p`qjsw=jnsofnfmwfg`bm#af#pffmwkfqf#tbp#bgfnlmpwqbwf`lmwbjmfq!=`lmmf`wjlmpwkf#Aqjwjpktbp#tqjwwfm\"jnslqwbmw8s{8#nbqdjm.elooltfg#azbajojwz#wl#`lnsoj`bwfggvqjmd#wkf#jnnjdqbwjlmbopl#`boofg?k7#`obpp>!gjpwjm`wjlmqfsob`fg#azdlufqmnfmwpol`bwjlm#lejm#Mlufnafqtkfwkfq#wkf?,s=\t?,gju=b`rvjpjwjlm`boofg#wkf#sfqpf`vwjlmgfpjdmbwjlmxelmw.pjyf9bssfbqfg#jmjmufpwjdbwff{sfqjfm`fgnlpw#ojhfoztjgfoz#vpfggjp`vppjlmpsqfpfm`f#le#+gl`vnfmw-f{wfmpjufozJw#kbp#affmjw#glfp#mlw`lmwqbqz#wljmkbajwbmwpjnsqlufnfmwp`klobqpkjs`lmpvnswjlmjmpwqv`wjlmelq#f{bnsoflmf#lq#nlqfs{8#sbggjmdwkf#`vqqfmwb#pfqjfp#lebqf#vpvboozqlof#jm#wkfsqfujlvpoz#gfqjubwjufpfujgfm`f#lef{sfqjfm`fp`lolqp`kfnfpwbwfg#wkbw`fqwjej`bwf?,b=?,gju=\t#pfof`wfg>!kjdk#p`klloqfpslmpf#wl`lnelqwbaofbglswjlm#lewkqff#zfbqpwkf#`lvmwqzjm#Efaqvbqzpl#wkbw#wkfsflsof#tkl#sqlujgfg#az?sbqbn#mbnfbeef`wfg#azjm#wfqnp#lebssljmwnfmwJPL.;;6:.2!tbp#alqm#jmkjpwlqj`bo#qfdbqgfg#bpnfbpvqfnfmwjp#abpfg#lm#bmg#lwkfq#9#evm`wjlm+pjdmjej`bmw`fofaqbwjlmwqbmpnjwwfg,ip,irvfqz-jp#hmltm#bpwkflqfwj`bo#wbajmgf{>!jw#`lvog#af?mlp`qjsw=\tkbujmd#affm\x0E\t?kfbg=\x0E\t?#%rvlw8Wkf#`lnsjobwjlmkf#kbg#affmsqlgv`fg#azskjolplskfq`lmpwqv`wfgjmwfmgfg#wlbnlmd#lwkfq`lnsbqfg#wlwl#pbz#wkbwFmdjmffqjmdb#gjeefqfmwqfefqqfg#wlgjeefqfm`fpafojfe#wkbwsklwldqbskpjgfmwjezjmdKjpwlqz#le#Qfsvaoj`#lemf`fppbqjozsqlabajojwzwf`kmj`boozofbujmd#wkfpsf`wb`vobqeqb`wjlm#lefof`wqj`jwzkfbg#le#wkfqfpwbvqbmwpsbqwmfqpkjsfnskbpjp#lmnlpw#qf`fmwpkbqf#tjwk#pbzjmd#wkbwejoofg#tjwkgfpjdmfg#wljw#jp#lewfm!=?,jeqbnf=bp#elooltp9nfqdfg#tjwkwkqlvdk#wkf`lnnfq`jbo#sljmwfg#lvwlsslqwvmjwzujft#le#wkfqfrvjqfnfmwgjujpjlm#lesqldqbnnjmdkf#qf`fjufgpfwJmwfqubo!=?,psbm=?,jm#Mft#Zlqhbggjwjlmbo#`lnsqfppjlm\t\t?gju#jg>!jm`lqslqbwf8?,p`qjsw=?bwwb`kFufmwaf`bnf#wkf#!#wbqdfw>!\\`bqqjfg#lvwPlnf#le#wkfp`jfm`f#bmgwkf#wjnf#le@lmwbjmfq!=nbjmwbjmjmd@kqjpwlskfqNv`k#le#wkftqjwjmdp#le!#kfjdkw>!1pjyf#le#wkfufqpjlm#le#nj{wvqf#le#afwtffm#wkfF{bnsofp#lefgv`bwjlmbo`lnsfwjwjuf#lmpvanjw>!gjqf`wlq#legjpwjm`wjuf,GWG#[KWNO#qfobwjmd#wlwfmgfm`z#wlsqlujm`f#letkj`k#tlvoggfpsjwf#wkfp`jfmwjej`#ofdjpobwvqf-jmmfqKWNO#boofdbwjlmpBdqj`vowvqftbp#vpfg#jmbssqlb`k#wljmwfoojdfmwzfbqp#obwfq/pbmp.pfqjegfwfqnjmjmdSfqelqnbm`fbssfbqbm`fp/#tkj`k#jp#elvmgbwjlmpbaaqfujbwfgkjdkfq#wkbmp#eqln#wkf#jmgjujgvbo#`lnslpfg#lepvsslpfg#wl`objnp#wkbwbwwqjavwjlmelmw.pjyf92fofnfmwp#leKjpwlqj`bo#kjp#aqlwkfqbw#wkf#wjnfbmmjufqpbqzdlufqmfg#azqfobwfg#wl#vowjnbwfoz#jmmlubwjlmpjw#jp#pwjoo`bm#lmoz#afgfejmjwjlmpwlDNWPwqjmdB#mvnafq#lejnd#`obpp>!Fufmwvbooz/tbp#`kbmdfgl``vqqfg#jmmfjdkalqjmdgjpwjmdvjpktkfm#kf#tbpjmwqlgv`jmdwfqqfpwqjboNbmz#le#wkfbqdvfp#wkbwbm#Bnfqj`bm`lmrvfpw#letjgfpsqfbg#tfqf#hjoofgp`qffm#bmg#Jm#lqgfq#wlf{sf`wfg#wlgfp`fmgbmwpbqf#ol`bwfgofdjpobwjufdfmfqbwjlmp#ab`hdqlvmgnlpw#sflsofzfbqp#bewfqwkfqf#jp#mlwkf#kjdkfpweqfrvfmwoz#wkfz#gl#mlwbqdvfg#wkbwpkltfg#wkbwsqfglnjmbmwwkfloldj`boaz#wkf#wjnf`lmpjgfqjmdpklqw.ojufg?,psbm=?,b=`bm#af#vpfgufqz#ojwwoflmf#le#wkf#kbg#boqfbgzjmwfqsqfwfg`lnnvmj`bwfefbwvqfp#ledlufqmnfmw/?,mlp`qjsw=fmwfqfg#wkf!#kfjdkw>!0Jmgfsfmgfmwslsvobwjlmpobqdf.p`bof-#Bowklvdk#vpfg#jm#wkfgfpwqv`wjlmslppjajojwzpwbqwjmd#jmwtl#lq#nlqff{sqfppjlmppvalqgjmbwfobqdfq#wkbmkjpwlqz#bmg?,lswjlm=\x0E\t@lmwjmfmwbofojnjmbwjmdtjoo#mlw#afsqb`wj`f#lejm#eqlmw#lepjwf#le#wkffmpvqf#wkbwwl#`qfbwf#bnjppjppjssjslwfmwjboozlvwpwbmgjmdafwwfq#wkbmtkbw#jp#mltpjwvbwfg#jmnfwb#mbnf>!WqbgjwjlmbopvddfpwjlmpWqbmpobwjlmwkf#elqn#lebwnlpskfqj`jgfloldj`bofmwfqsqjpfp`bo`vobwjmdfbpw#le#wkfqfnmbmwp#lesovdjmpsbdf,jmgf{-sks<qfnbjmfg#jmwqbmpelqnfgKf#tbp#bopltbp#boqfbgzpwbwjpwj`bojm#ebulq#leNjmjpwqz#lenlufnfmw#leelqnvobwjlmjp#qfrvjqfg?ojmh#qfo>!Wkjp#jp#wkf#?b#kqfe>!,slsvobqjyfgjmuloufg#jmbqf#vpfg#wlbmg#pfufqbonbgf#az#wkfpffnp#wl#afojhfoz#wkbwSbofpwjmjbmmbnfg#bewfqjw#kbg#affmnlpw#`lnnlmwl#qfefq#wlavw#wkjp#jp`lmpf`vwjufwfnslqbqjozJm#dfmfqbo/`lmufmwjlmpwbhfp#sob`fpvagjujpjlmwfqqjwlqjbolsfqbwjlmbosfqnbmfmwoztbp#obqdfozlvwaqfbh#lejm#wkf#sbpwelooltjmd#b#{nomp9ld>!=?b#`obpp>!`obpp>!wf{w@lmufqpjlm#nbz#af#vpfgnbmveb`wvqfbewfq#afjmd`ofbqej{!=\trvfpwjlm#letbp#fof`wfgwl#af`lnf#baf`bvpf#le#plnf#sflsofjmpsjqfg#azpv``fppevo#b#wjnf#tkfmnlqf#`lnnlmbnlmdpw#wkfbm#leej`jbotjgwk9233&8wf`kmloldz/tbp#bglswfgwl#hffs#wkfpfwwofnfmwpojuf#ajqwkpjmgf{-kwno!@lmmf`wj`vwbppjdmfg#wl%bns8wjnfp8b``lvmw#elqbojdm>qjdkwwkf#`lnsbmzbotbzp#affmqfwvqmfg#wljmuloufnfmwAf`bvpf#wkfwkjp#sfqjlg!#mbnf>!r!#`lmejmfg#wlb#qfpvow#leubovf>!!#,=jp#b`wvboozFmujqlmnfmw\x0E\t?,kfbg=\x0E\t@lmufqpfoz/=\t?gju#jg>!3!#tjgwk>!2jp#sqlabaozkbuf#af`lnf`lmwqloojmdwkf#sqlaofn`jwjyfmp#leslojwj`jbmpqfb`kfg#wkfbp#fbqoz#bp9mlmf8#lufq?wbaof#`fooubojgjwz#legjqf`woz#wllmnlvpfgltmtkfqf#jw#jptkfm#jw#tbpnfnafqp#le#qfobwjlm#wlb``lnnlgbwfbolmd#tjwk#Jm#wkf#obwfwkf#Fmdojpkgfoj`jlvp!=wkjp#jp#mlwwkf#sqfpfmwje#wkfz#bqfbmg#ejmboozb#nbwwfq#le\x0E\t\n?,gju=\x0E\t\x0E\t?,p`qjsw=ebpwfq#wkbmnbilqjwz#lebewfq#tkj`k`lnsbqbwjufwl#nbjmwbjmjnsqluf#wkfbtbqgfg#wkffq!#`obpp>!eqbnfalqgfqqfpwlqbwjlmjm#wkf#pbnfbmbozpjp#lewkfjq#ejqpwGvqjmd#wkf#`lmwjmfmwbopfrvfm`f#leevm`wjlm+*xelmw.pjyf9#tlqh#lm#wkf?,p`qjsw=\t?afdjmp#tjwkibubp`qjsw9`lmpwjwvfmwtbp#elvmgfgfrvjojaqjvnbppvnf#wkbwjp#djufm#azmffgp#wl#af`llqgjmbwfpwkf#ubqjlvpbqf#sbqw#lelmoz#jm#wkfpf`wjlmp#lejp#b#`lnnlmwkflqjfp#legjp`lufqjfpbppl`jbwjlmfgdf#le#wkfpwqfmdwk#leslpjwjlm#jmsqfpfmw.gbzvmjufqpboozwl#elqn#wkfavw#jmpwfbg`lqslqbwjlmbwwb`kfg#wljp#`lnnlmozqfbplmp#elq#%rvlw8wkf#`bm#af#nbgftbp#baof#wltkj`k#nfbmpavw#gjg#mlwlmNlvpfLufqbp#slppjaoflsfqbwfg#az`lnjmd#eqlnwkf#sqjnbqzbggjwjlm#leelq#pfufqbowqbmpefqqfgb#sfqjlg#lebqf#baof#wlkltfufq/#jwpklvog#kbufnv`k#obqdfq\t\n?,p`qjsw=bglswfg#wkfsqlsfqwz#legjqf`wfg#azfeef`wjufoztbp#aqlvdkw`kjogqfm#leSqldqbnnjmdolmdfq#wkbmnbmvp`qjswptbq#bdbjmpwaz#nfbmp#lebmg#nlpw#lepjnjobq#wl#sqlsqjfwbqzlqjdjmbwjmdsqfpwjdjlvpdqbnnbwj`bof{sfqjfm`f-wl#nbhf#wkfJw#tbp#bopljp#elvmg#jm`lnsfwjwlqpjm#wkf#V-P-qfsob`f#wkfaqlvdkw#wkf`bo`vobwjlmeboo#le#wkfwkf#dfmfqbosqb`wj`boozjm#klmlq#leqfofbpfg#jmqfpjgfmwjbobmg#plnf#lehjmd#le#wkfqfb`wjlm#wl2pw#Fbqo#le`vowvqf#bmgsqjm`jsbooz?,wjwof=\t##wkfz#`bm#afab`h#wl#wkfplnf#le#kjpf{slpvqf#wlbqf#pjnjobqelqn#le#wkfbggEbulqjwf`jwjyfmpkjssbqw#jm#wkfsflsof#tjwkjm#sqb`wj`fwl#`lmwjmvf%bns8njmvp8bssqlufg#az#wkf#ejqpw#booltfg#wkfbmg#elq#wkfevm`wjlmjmdsobzjmd#wkfplovwjlm#wlkfjdkw>!3!#jm#kjp#allhnlqf#wkbm#belooltp#wkf`qfbwfg#wkfsqfpfm`f#jm%maps8?,wg=mbwjlmbojpwwkf#jgfb#leb#`kbqb`wfqtfqf#elq`fg#`obpp>!awmgbzp#le#wkfefbwvqfg#jmpkltjmd#wkfjmwfqfpw#jmjm#sob`f#lewvqm#le#wkfwkf#kfbg#leOlqg#le#wkfslojwj`boozkbp#jwp#ltmFgv`bwjlmbobssqlubo#leplnf#le#wkffb`k#lwkfq/afkbujlq#lebmg#af`bvpfbmg#bmlwkfqbssfbqfg#lmqf`lqgfg#jmaob`h%rvlw8nbz#jm`ovgfwkf#tlqog$p`bm#ofbg#wlqfefqp#wl#balqgfq>!3!#dlufqmnfmw#tjmmjmd#wkfqfpvowfg#jm#tkjof#wkf#Tbpkjmdwlm/wkf#pvaif`w`jwz#jm#wkf=?,gju=\x0E\t\n\nqfeof`w#wkfwl#`lnsofwfaf`bnf#nlqfqbgjlb`wjufqfif`wfg#aztjwklvw#bmzkjp#ebwkfq/tkj`k#`lvog`lsz#le#wkfwl#jmgj`bwfb#slojwj`bob``lvmwp#le`lmpwjwvwfptlqhfg#tjwkfq?,b=?,oj=le#kjp#ojefb``lnsbmjfg`ojfmwTjgwksqfufmw#wkfOfdjpobwjufgjeefqfmwozwldfwkfq#jmkbp#pfufqboelq#bmlwkfqwf{w#le#wkfelvmgfg#wkff#tjwk#wkf#jp#vpfg#elq`kbmdfg#wkfvpvbooz#wkfsob`f#tkfqftkfqfbp#wkf=#?b#kqfe>!!=?b#kqfe>!wkfnpfoufp/bowklvdk#kfwkbw#`bm#afwqbgjwjlmboqlof#le#wkfbp#b#qfpvowqfnluf@kjoggfpjdmfg#aztfpw#le#wkfPlnf#sflsofsqlgv`wjlm/pjgf#le#wkfmftpofwwfqpvpfg#az#wkfgltm#wl#wkfb``fswfg#azojuf#jm#wkfbwwfnswp#wllvwpjgf#wkfeqfrvfm`jfpKltfufq/#jmsqldqbnnfqpbw#ofbpw#jmbssql{jnbwfbowklvdk#jwtbp#sbqw#lebmg#ubqjlvpDlufqmlq#lewkf#bqwj`ofwvqmfg#jmwl=?b#kqfe>!,wkf#f`lmlnzjp#wkf#nlpwnlpw#tjgfoztlvog#obwfqbmg#sfqkbspqjpf#wl#wkfl``vqp#tkfmvmgfq#tkj`k`lmgjwjlmp-wkf#tfpwfqmwkflqz#wkbwjp#sqlgv`fgwkf#`jwz#lejm#tkj`k#kfpffm#jm#wkfwkf#`fmwqboavjogjmd#lenbmz#le#kjpbqfb#le#wkfjp#wkf#lmoznlpw#le#wkfnbmz#le#wkfwkf#TfpwfqmWkfqf#jp#mlf{wfmgfg#wlPwbwjpwj`bo`lopsbm>1#\x7Fpklqw#pwlqzslppjaof#wlwlsloldj`bo`qjwj`bo#leqfslqwfg#wlb#@kqjpwjbmgf`jpjlm#wljp#frvbo#wlsqlaofnp#leWkjp#`bm#afnfq`kbmgjpfelq#nlpw#leml#fujgfm`ffgjwjlmp#lefofnfmwp#jm%rvlw8-#Wkf`ln,jnbdfp,tkj`k#nbhfpwkf#sql`fppqfnbjmp#wkfojwfqbwvqf/jp#b#nfnafqwkf#slsvobqwkf#bm`jfmwsqlaofnp#jmwjnf#le#wkfgfefbwfg#azalgz#le#wkfb#eft#zfbqpnv`k#le#wkfwkf#tlqh#le@bojelqmjb/pfqufg#bp#bdlufqmnfmw-`lm`fswp#lenlufnfmw#jm\n\n?gju#jg>!jw!#ubovf>!obmdvbdf#lebp#wkfz#bqfsqlgv`fg#jmjp#wkbw#wkff{sobjm#wkfgju=?,gju=\tKltfufq#wkfofbg#wl#wkf\n?b#kqfe>!,tbp#dqbmwfgsflsof#kbuf`lmwjmvbooztbp#pffm#bpbmg#qfobwfgwkf#qlof#lesqlslpfg#azle#wkf#afpwfb`k#lwkfq-@lmpwbmwjmfsflsof#eqlngjbof`wp#lewl#qfujpjlmtbp#qfmbnfgb#plvq`f#lewkf#jmjwjboobvm`kfg#jmsqlujgf#wkfwl#wkf#tfpwtkfqf#wkfqfbmg#pjnjobqafwtffm#wtljp#bopl#wkfFmdojpk#bmg`lmgjwjlmp/wkbw#jw#tbpfmwjwofg#wlwkfnpfoufp-rvbmwjwz#leqbmpsbqfm`zwkf#pbnf#bpwl#iljm#wkf`lvmwqz#bmgwkjp#jp#wkfWkjp#ofg#wlb#pwbwfnfmw`lmwqbpw#wlobpwJmgf{Lewkqlvdk#kjpjp#gfpjdmfgwkf#wfqn#jpjp#sqlujgfgsqlwf`w#wkfmd?,b=?,oj=Wkf#`vqqfmwwkf#pjwf#lepvapwbmwjbof{sfqjfm`f/jm#wkf#Tfpwwkfz#pklvogpolufm(ajmb`lnfmwbqjlpvmjufqpjgbg`lmgj`jlmfpb`wjujgbgfpf{sfqjfm`jbwf`mlold/Absqlgv``j/_msvmwvb`j/_mbsoj`b`j/_m`lmwqbpf/]b`bwfdlq/Abpqfdjpwqbqpfsqlefpjlmbowqbwbnjfmwlqfd/Apwqbwfpf`qfwbq/Absqjm`jsbofpsqlwf``j/_mjnslqwbmwfpjnslqwbm`jbslpjajojgbgjmwfqfpbmwf`qf`jnjfmwlmf`fpjgbgfppvp`qjajqpfbpl`jb`j/_mgjpslmjaofpfubovb`j/_mfpwvgjbmwfpqfpslmpbaofqfplov`j/_mdvbgbobibqbqfdjpwqbglplslqwvmjgbg`lnfq`jbofpelwldqbe/Abbvwlqjgbgfpjmdfmjfq/Abwfofujpj/_m`lnsfwfm`jblsfqb`jlmfpfpwbaof`jglpjnsofnfmwfb`wvbonfmwfmbufdb`j/_m`lmelqnjgbgojmf.kfjdkw9elmw.ebnjoz9!#9#!kwws9,,bssoj`bwjlmpojmh!#kqfe>!psf`jej`booz,,?\"X@GBWBX\tLqdbmjybwjlmgjpwqjavwjlm3s{8#kfjdkw9qfobwjlmpkjsgfuj`f.tjgwk?gju#`obpp>!?obafo#elq>!qfdjpwqbwjlm?,mlp`qjsw=\t,jmgf{-kwno!tjmglt-lsfm+#\"jnslqwbmw8bssoj`bwjlm,jmgfsfmgfm`f,,ttt-dlldoflqdbmjybwjlmbvwl`lnsofwfqfrvjqfnfmwp`lmpfqubwjuf?elqn#mbnf>!jmwfoof`wvbonbqdjm.ofew92;wk#`fmwvqzbm#jnslqwbmwjmpwjwvwjlmpbaaqfujbwjlm?jnd#`obpp>!lqdbmjpbwjlm`jujojybwjlm2:wk#`fmwvqzbq`kjwf`wvqfjm`lqslqbwfg13wk#`fmwvqz.`lmwbjmfq!=nlpw#mlwbaoz,=?,b=?,gju=mlwjej`bwjlm$vmgfejmfg$*Evqwkfqnlqf/afojfuf#wkbwjmmfqKWNO#>#sqjlq#wl#wkfgqbnbwj`boozqfefqqjmd#wlmfdlwjbwjlmpkfbgrvbqwfqpPlvwk#Beqj`bvmpv``fppevoSfmmpzoubmjbBp#b#qfpvow/?kwno#obmd>!%ow8,pvs%dw8gfbojmd#tjwkskjobgfoskjbkjpwlqj`booz*8?,p`qjsw=\tsbggjmd.wls9f{sfqjnfmwbodfwBwwqjavwfjmpwqv`wjlmpwf`kmloldjfpsbqw#le#wkf#>evm`wjlm+*xpvap`qjswjlmo-gwg!=\x0E\t?kwdfldqbskj`bo@lmpwjwvwjlm$/#evm`wjlm+pvsslqwfg#azbdqj`vowvqbo`lmpwqv`wjlmsvaoj`bwjlmpelmw.pjyf9#2b#ubqjfwz#le?gju#pwzof>!Fm`z`olsfgjbjeqbnf#pq`>!gfnlmpwqbwfgb``lnsojpkfgvmjufqpjwjfpGfnldqbskj`p*8?,p`qjsw=?gfgj`bwfg#wlhmltofgdf#lepbwjpeb`wjlmsbqwj`vobqoz?,gju=?,gju=Fmdojpk#+VP*bssfmg@kjog+wqbmpnjppjlmp-#Kltfufq/#jmwfoojdfm`f!#wbajmgf{>!eolbw9qjdkw8@lnnlmtfbowkqbmdjmd#eqlnjm#tkj`k#wkfbw#ofbpw#lmfqfsqlgv`wjlmfm`z`olsfgjb8elmw.pjyf92ivqjpgj`wjlmbw#wkbw#wjnf!=?b#`obpp>!Jm#bggjwjlm/gfp`qjswjlm(`lmufqpbwjlm`lmwb`w#tjwkjp#dfmfqboozq!#`lmwfmw>!qfsqfpfmwjmd%ow8nbwk%dw8sqfpfmwbwjlml``bpjlmbooz?jnd#tjgwk>!mbujdbwjlm!=`lnsfmpbwjlm`kbnsjlmpkjsnfgjb>!boo!#ujlobwjlm#leqfefqfm`f#wlqfwvqm#wqvf8Pwqj`w,,FM!#wqbmpb`wjlmpjmwfqufmwjlmufqjej`bwjlmJmelqnbwjlm#gjeej`vowjfp@kbnsjlmpkjs`bsbajojwjfp?\"Xfmgje^..=~\t?,p`qjsw=\t@kqjpwjbmjwzelq#f{bnsof/Sqlefppjlmboqfpwqj`wjlmppvddfpw#wkbwtbp#qfofbpfg+pv`k#bp#wkfqfnluf@obpp+vmfnsolznfmwwkf#Bnfqj`bmpwqv`wvqf#le,jmgf{-kwno#svaojpkfg#jmpsbm#`obpp>!!=?b#kqfe>!,jmwqlgv`wjlmafolmdjmd#wl`objnfg#wkbw`lmpfrvfm`fp?nfwb#mbnf>!Dvjgf#wl#wkflufqtkfonjmdbdbjmpw#wkf#`lm`fmwqbwfg/\t-mlmwlv`k#lapfqubwjlmp?,b=\t?,gju=\te#+gl`vnfmw-alqgfq9#2s{#xelmw.pjyf92wqfbwnfmw#le3!#kfjdkw>!2nlgjej`bwjlmJmgfsfmgfm`fgjujgfg#jmwldqfbwfq#wkbmb`kjfufnfmwpfpwbaojpkjmdIbubP`qjsw!#mfufqwkfofpppjdmjej`bm`fAqlbg`bpwjmd=%maps8?,wg=`lmwbjmfq!=\tpv`k#bp#wkf#jmeovfm`f#leb#sbqwj`vobqpq`>$kwws9,,mbujdbwjlm!#kboe#le#wkf#pvapwbmwjbo#%maps8?,gju=bgubmwbdf#legjp`lufqz#leevmgbnfmwbo#nfwqlslojwbmwkf#lsslpjwf!#{no9obmd>!gfojafqbwfozbojdm>`fmwfqfulovwjlm#lesqfpfqubwjlmjnsqlufnfmwpafdjmmjmd#jmIfpvp#@kqjpwSvaoj`bwjlmpgjpbdqffnfmwwf{w.bojdm9q/#evm`wjlm+*pjnjobqjwjfpalgz=?,kwno=jp#`vqqfmwozboskbafwj`bojp#plnfwjnfpwzsf>!jnbdf,nbmz#le#wkf#eolt9kjggfm8bubjobaof#jmgfp`qjaf#wkff{jpwfm`f#leboo#lufq#wkfwkf#Jmwfqmfw\n?vo#`obpp>!jmpwboobwjlmmfjdkalqkllgbqnfg#elq`fpqfgv`jmd#wkf`lmwjmvfp#wlMlmfwkfofpp/wfnsfqbwvqfp\t\n\n?b#kqfe>!`olpf#wl#wkff{bnsofp#le#jp#balvw#wkf+pff#afolt*-!#jg>!pfbq`ksqlefppjlmbojp#bubjobaofwkf#leej`jbo\n\n?,p`qjsw=\t\t\n\n?gju#jg>!b``fofqbwjlmwkqlvdk#wkf#Kboo#le#Ebnfgfp`qjswjlmpwqbmpobwjlmpjmwfqefqfm`f#wzsf>$wf{w,qf`fmw#zfbqpjm#wkf#tlqogufqz#slsvobqxab`hdqlvmg9wqbgjwjlmbo#plnf#le#wkf#`lmmf`wfg#wlf{soljwbwjlmfnfqdfm`f#le`lmpwjwvwjlmB#Kjpwlqz#lepjdmjej`bmw#nbmveb`wvqfgf{sf`wbwjlmp=?mlp`qjsw=?`bm#af#elvmgaf`bvpf#wkf#kbp#mlw#affmmfjdkalvqjmdtjwklvw#wkf#bggfg#wl#wkf\n?oj#`obpp>!jmpwqvnfmwboPlujfw#Vmjlmb`hmltofgdfgtkj`k#`bm#afmbnf#elq#wkfbwwfmwjlm#wlbwwfnswp#wl#gfufolsnfmwpJm#eb`w/#wkf?oj#`obpp>!bjnsoj`bwjlmppvjwbaof#elqnv`k#le#wkf#`lolmjybwjlmsqfpjgfmwjbo`bm`foAvaaof#Jmelqnbwjlmnlpw#le#wkf#jp#gfp`qjafgqfpw#le#wkf#nlqf#lq#ofppjm#PfswfnafqJmwfoojdfm`fpq`>!kwws9,,s{8#kfjdkw9#bubjobaof#wlnbmveb`wvqfqkvnbm#qjdkwpojmh#kqfe>!,bubjobajojwzsqlslqwjlmbolvwpjgf#wkf#bpwqlmlnj`bokvnbm#afjmdpmbnf#le#wkf#bqf#elvmg#jmbqf#abpfg#lmpnboofq#wkbmb#sfqplm#tklf{sbmpjlm#lebqdvjmd#wkbwmlt#hmltm#bpJm#wkf#fbqozjmwfqnfgjbwfgfqjufg#eqlnP`bmgjmbujbm?,b=?,gju=\x0E\t`lmpjgfq#wkfbm#fpwjnbwfgwkf#Mbwjlmbo?gju#jg>!sbdqfpvowjmd#jm`lnnjppjlmfgbmboldlvp#wlbqf#qfrvjqfg,vo=\t?,gju=\ttbp#abpfg#lmbmg#af`bnf#b%maps8%maps8w!#ubovf>!!#tbp#`bswvqfgml#nlqf#wkbmqfpsf`wjufoz`lmwjmvf#wl#=\x0E\t?kfbg=\x0E\t?tfqf#`qfbwfgnlqf#dfmfqbojmelqnbwjlm#vpfg#elq#wkfjmgfsfmgfmw#wkf#Jnsfqjbo`lnslmfmw#lewl#wkf#mlqwkjm`ovgf#wkf#@lmpwqv`wjlmpjgf#le#wkf#tlvog#mlw#afelq#jmpwbm`fjmufmwjlm#lenlqf#`lnsof{`loof`wjufozab`hdqlvmg9#wf{w.bojdm9#jwp#lqjdjmbojmwl#b``lvmwwkjp#sql`fppbm#f{wfmpjufkltfufq/#wkfwkfz#bqf#mlwqfif`wfg#wkf`qjwj`jpn#legvqjmd#tkj`ksqlabaoz#wkfwkjp#bqwj`of+evm`wjlm+*xJw#pklvog#afbm#bdqffnfmwb``jgfmwboozgjeefqp#eqlnBq`kjwf`wvqfafwwfq#hmltmbqqbmdfnfmwpjmeovfm`f#lmbwwfmgfg#wkfjgfmwj`bo#wlplvwk#le#wkfsbpp#wkqlvdk{no!#wjwof>!tfjdkw9alog8`qfbwjmd#wkfgjpsobz9mlmfqfsob`fg#wkf?jnd#pq`>!,jkwwsp9,,ttt-Tlqog#Tbq#JJwfpwjnlmjbopelvmg#jm#wkfqfrvjqfg#wl#bmg#wkbw#wkfafwtffm#wkf#tbp#gfpjdmfg`lmpjpwp#le#`lmpjgfqbaozsvaojpkfg#azwkf#obmdvbdf@lmpfqubwjlm`lmpjpwfg#leqfefq#wl#wkfab`h#wl#wkf#`pp!#nfgjb>!Sflsof#eqln#bubjobaof#lmsqlufg#wl#afpvddfpwjlmp!tbp#hmltm#bpubqjfwjfp#leojhfoz#wl#af`lnsqjpfg#lepvsslqw#wkf#kbmgp#le#wkf`lvsofg#tjwk`lmmf`w#bmg#alqgfq9mlmf8sfqelqnbm`fpafelqf#afjmdobwfq#af`bnf`bo`vobwjlmplewfm#`boofgqfpjgfmwp#lenfbmjmd#wkbw=?oj#`obpp>!fujgfm`f#elqf{sobmbwjlmpfmujqlmnfmwp!=?,b=?,gju=tkj`k#booltpJmwqlgv`wjlmgfufolsfg#azb#tjgf#qbmdflm#afkboe#leubojdm>!wls!sqjm`jsof#lebw#wkf#wjnf/?,mlp`qjsw=\x0Epbjg#wl#kbufjm#wkf#ejqpwtkjof#lwkfqpkzslwkfwj`boskjolplskfqpsltfq#le#wkf`lmwbjmfg#jmsfqelqnfg#azjmbajojwz#wltfqf#tqjwwfmpsbm#pwzof>!jmsvw#mbnf>!wkf#rvfpwjlmjmwfmgfg#elqqfif`wjlm#lejnsojfp#wkbwjmufmwfg#wkfwkf#pwbmgbqgtbp#sqlabaozojmh#afwtffmsqlefpplq#lejmwfqb`wjlmp`kbmdjmd#wkfJmgjbm#L`fbm#`obpp>!obpwtlqhjmd#tjwk$kwws9,,ttt-zfbqp#afelqfWkjp#tbp#wkfqf`qfbwjlmbofmwfqjmd#wkfnfbpvqfnfmwpbm#f{wqfnfozubovf#le#wkfpwbqw#le#wkf\t?,p`qjsw=\t\tbm#feelqw#wljm`qfbpf#wkfwl#wkf#plvwkpsb`jmd>!3!=pveej`jfmwozwkf#Fvqlsfbm`lmufqwfg#wl`ofbqWjnflvwgjg#mlw#kbuf`lmpfrvfmwozelq#wkf#mf{wf{wfmpjlm#lef`lmlnj`#bmgbowklvdk#wkfbqf#sqlgv`fgbmg#tjwk#wkfjmpveej`jfmwdjufm#az#wkfpwbwjmd#wkbwf{sfmgjwvqfp?,psbm=?,b=\twklvdkw#wkbwlm#wkf#abpjp`foosbggjmd>jnbdf#le#wkfqfwvqmjmd#wljmelqnbwjlm/pfsbqbwfg#azbppbppjmbwfgp!#`lmwfmw>!bvwklqjwz#lemlqwktfpwfqm?,gju=\t?gju#!=?,gju=\x0E\t##`lmpvowbwjlm`lnnvmjwz#lewkf#mbwjlmbojw#pklvog#afsbqwj`jsbmwp#bojdm>!ofewwkf#dqfbwfpwpfof`wjlm#lepvsfqmbwvqbogfsfmgfmw#lmjp#nfmwjlmfgbooltjmd#wkftbp#jmufmwfgb``lnsbmzjmdkjp#sfqplmbobubjobaof#bwpwvgz#le#wkflm#wkf#lwkfqf{f`vwjlm#leKvnbm#Qjdkwpwfqnp#le#wkfbppl`jbwjlmpqfpfbq`k#bmgpv``ffgfg#azgfefbwfg#wkfbmg#eqln#wkfavw#wkfz#bqf`lnnbmgfq#lepwbwf#le#wkfzfbqp#le#bdfwkf#pwvgz#le?vo#`obpp>!psob`f#jm#wkftkfqf#kf#tbp?oj#`obpp>!ewkfqf#bqf#mltkj`k#af`bnfkf#svaojpkfgf{sqfppfg#jmwl#tkj`k#wkf`lnnjppjlmfqelmw.tfjdkw9wfqqjwlqz#lef{wfmpjlmp!=Qlnbm#Fnsjqffrvbo#wl#wkfJm#`lmwqbpw/kltfufq/#bmgjp#wzsj`boozbmg#kjp#tjef+bopl#`boofg=?vo#`obpp>!feef`wjufoz#fuloufg#jmwlpffn#wl#kbuftkj`k#jp#wkfwkfqf#tbp#mlbm#f{`foofmwboo#le#wkfpfgfp`qjafg#azJm#sqb`wj`f/aqlbg`bpwjmd`kbqdfg#tjwkqfeof`wfg#jmpvaif`wfg#wlnjojwbqz#bmgwl#wkf#sljmwf`lmlnj`boozpfwWbqdfwjmdbqf#b`wvboozuj`wlqz#lufq+*8?,p`qjsw=`lmwjmvlvpozqfrvjqfg#elqfulovwjlmbqzbm#feef`wjufmlqwk#le#wkf/#tkj`k#tbp#eqlmw#le#wkflq#lwkfqtjpfplnf#elqn#lekbg#mlw#affmdfmfqbwfg#azjmelqnbwjlm-sfqnjwwfg#wljm`ovgfp#wkfgfufolsnfmw/fmwfqfg#jmwlwkf#sqfujlvp`lmpjpwfmwozbqf#hmltm#bpwkf#ejfog#lewkjp#wzsf#ledjufm#wl#wkfwkf#wjwof#le`lmwbjmp#wkfjmpwbm`fp#lejm#wkf#mlqwkgvf#wl#wkfjqbqf#gfpjdmfg`lqslqbwjlmptbp#wkbw#wkflmf#le#wkfpfnlqf#slsvobqpv``ffgfg#jmpvsslqw#eqlnjm#gjeefqfmwglnjmbwfg#azgfpjdmfg#elqltmfqpkjs#lebmg#slppjaozpwbmgbqgjyfgqfpslmpfWf{wtbp#jmwfmgfgqf`fjufg#wkfbppvnfg#wkbwbqfbp#le#wkfsqjnbqjoz#jmwkf#abpjp#lejm#wkf#pfmpfb``lvmwp#elqgfpwqlzfg#azbw#ofbpw#wtltbp#gf`obqfg`lvog#mlw#afPf`qfwbqz#lebssfbq#wl#afnbqdjm.wls92,]_p(\x7F_p(',df*xwkqlt#f~8wkf#pwbqw#lewtl#pfsbqbwfobmdvbdf#bmgtkl#kbg#affmlsfqbwjlm#legfbwk#le#wkfqfbo#mvnafqp\n?ojmh#qfo>!sqlujgfg#wkfwkf#pwlqz#le`lnsfwjwjlmpfmdojpk#+VH*fmdojpk#+VP*<p<R<Q<_<R<W<M=l<S=m<V<T=m=l<S=m<V<T=m=l<S=m<V<R5h4U4]4D5f4E\nAO\x05Gx\bTA\nzk\x0BBl\bQ\x7F\bTA\nzk\x0BUm\bQ\x7F\bTA\nzk\npe\x05u|\ti@\tcT\bVV\n\\}\nxS\tVp\x05tS\x05k`\t[X\t[X\x0BHR\bPv\bTW\bUe\n\x7Fa\bQp\x0B_W\x0BWs\nxS\x0BAz\n_y\x04Khjmelqnb`j/_mkfqqbnjfmwbpfof`wq/_mj`lgfp`qjs`j/_m`obpjej`bglp`lml`jnjfmwlsvaoj`b`j/_mqfob`jlmbgbpjmelqn/Mwj`bqfob`jlmbglpgfsbqwbnfmwlwqbabibglqfpgjqf`wbnfmwfbzvmwbnjfmwlnfq`bglOjaqf`lmw/M`wfmlpkbajwb`jlmfp`vnsojnjfmwlqfpwbvqbmwfpgjpslpj`j/_m`lmpf`vfm`jbfof`wq/_mj`bbsoj`b`jlmfpgfp`lmf`wbgljmpwbob`j/_mqfbojyb`j/_mvwjojyb`j/_mfm`j`olsfgjbfmefqnfgbgfpjmpwqvnfmwlpf{sfqjfm`jbpjmpwjwv`j/_msbqwj`vobqfppva`bwfdlqjb=n<R<W=`<V<R<L<R=m=m<T<T=l<\\<]<R=n=g<]<R<W=`=d<Y<S=l<R=m=n<R<P<R<Z<Y=n<Y<X=l=o<_<T=i=m<W=o=k<\\<Y=m<Y<U=k<\\=m<^=m<Y<_<X<\\<L<R=m=m<T=c<p<R=m<V<^<Y<X=l=o<_<T<Y<_<R=l<R<X<\\<^<R<S=l<R=m<X<\\<Q<Q=g=i<X<R<W<Z<Q=g<T<P<Y<Q<Q<R<p<R=m<V<^=g=l=o<]<W<Y<U<p<R=m<V<^<\\=m=n=l<\\<Q=g<Q<T=k<Y<_<R=l<\\<]<R=n<Y<X<R<W<Z<Y<Q=o=m<W=o<_<T=n<Y<S<Y=l=`<r<X<Q<\\<V<R<S<R=n<R<P=o=l<\\<]<R=n=o<\\<S=l<Y<W=c<^<R<R<]=e<Y<R<X<Q<R<_<R=m<^<R<Y<_<R=m=n<\\=n=`<T<X=l=o<_<R<U=h<R=l=o<P<Y=i<R=l<R=d<R<S=l<R=n<T<^=m=m=g<W<V<\\<V<\\<Z<X=g<U<^<W<\\=m=n<T<_=l=o<S<S=g<^<P<Y=m=n<Y=l<\\<]<R=n<\\=m<V<\\<[<\\<W<S<Y=l<^=g<U<X<Y<W<\\=n=`<X<Y<Q=`<_<T<S<Y=l<T<R<X<]<T<[<Q<Y=m<R=m<Q<R<^<Y<P<R<P<Y<Q=n<V=o<S<T=n=`<X<R<W<Z<Q<\\=l<\\<P<V<\\=i<Q<\\=k<\\<W<R<L<\\<]<R=n<\\<N<R<W=`<V<R=m<R<^=m<Y<P<^=n<R=l<R<U<Q<\\=k<\\<W<\\=m<S<T=m<R<V=m<W=o<Z<]=g=m<T=m=n<Y<P<S<Y=k<\\=n<T<Q<R<^<R<_<R<S<R<P<R=e<T=m<\\<U=n<R<^<S<R=k<Y<P=o<S<R<P<R=e=`<X<R<W<Z<Q<R=m=m=g<W<V<T<]=g=m=n=l<R<X<\\<Q<Q=g<Y<P<Q<R<_<T<Y<S=l<R<Y<V=n<M<Y<U=k<\\=m<P<R<X<Y<W<T=n<\\<V<R<_<R<R<Q<W<\\<U<Q<_<R=l<R<X<Y<^<Y=l=m<T=c=m=n=l<\\<Q<Y=h<T<W=`<P=g=o=l<R<^<Q=c=l<\\<[<Q=g=i<T=m<V<\\=n=`<Q<Y<X<Y<W=b=c<Q<^<\\=l=c<P<Y<Q=`=d<Y<P<Q<R<_<T=i<X<\\<Q<Q<R<U<[<Q<\\=k<T=n<Q<Y<W=`<[=c=h<R=l=o<P<\\<N<Y<S<Y=l=`<P<Y=m=c=j<\\<[<\\=e<T=n=g<w=o=k=d<T<Y\fHD\fHU\fIl\fHn\fHy\fH\\\fHD\fIk\fHi\fHF\fHD\fIk\fHy\fHS\fHC\fHR\fHy\fH\\\fIk\fHn\fHi\fHD\fIa\fHC\fHy\fIa\fHC\fHR\fH{\fHR\fHk\fHM\fH@\fHR\fH\\\fIk\fHy\fHS\fHT\fIl\fHJ\fHS\fHC\fHR\fHF\fHU\fH^\fIk\fHT\fHS\fHn\fHU\fHA\fHR\fH\\\fHH\fHi\fHF\fHD\fIl\fHY\fHR\fH^\fIk\fHT\fIk\fHY\fHR\fHy\fH\\\fHH\fIk\fHB\fIk\fH\\\fIk\fHU\fIg\fHD\fIk\fHT\fHy\fHH\fIk\fH@\fHU\fIm\fHH\fHT\fHR\fHk\fHs\fHU\fIg\fH{\fHR\fHp\fHR\fHD\fIk\fHB\fHS\fHD\fHs\fHy\fH\\\fHH\fHR\fHy\fH\\\fHD\fHR\fHe\fHD\fHy\fIk\fHC\fHU\fHR\fHm\fHT\fH@\fHT\fIk\fHA\fHR\fH[\fHR\fHj\fHF\fHy\fIk\fH^\fHS\fHC\fIk\fHZ\fIm\fH\\\fIn\fHk\fHT\fHy\fIk\fHt\fHn\fHs\fIk\fHB\fIk\fH\\\fIl\fHT\fHy\fHH\fHR\fHB\fIk\fH\\\fHR\fH^\fIk\fHy\fH\\\fHi\fHK\fHS\fHy\fHi\fHF\fHD\fHR\fHT\fHB\fHR\fHp\fHB\fIm\fHq\fIk\fHy\fHR\fH\\\fHO\fHU\fIg\fHH\fHR\fHy\fHM\fHP\fIl\fHC\fHU\fHR\fHn\fHU\fIg\fHs\fH^\fHZ\fH@\fIa\fHJ\fH^\fHS\fHC\fHR\fHp\fIl\fHY\fHD\fHp\fHR\fHH\fHR\fHy\fId\fHT\fIk\fHj\fHF\fHy\fHR\fHY\fHR\fH^\fIl\fHJ\fIk\fHD\fIk\fHF\fIn\fH\\\fIl\fHF\fHR\fHD\fIl\fHe\fHT\fHy\fIk\fHU\fIg\fH{\fIl\fH@\fId\fHL\fHy\fHj\fHF\fHy\fIl\fHY\fH\\\fIa\fH[\fH{\fHR\fHn\fHY\fHj\fHF\fHy\fIg\fHp\fHS\fH^\fHR\fHp\fHR\fHD\fHR\fHT\fHU\fHB\fHH\fHU\fHB\fIk\fHn\fHe\fHD\fHy\fIl\fHC\fHR\fHU\fIn\fHJ\fH\\\fIa\fHp\fHT\fIn\fHv\fIl\fHF\fHT\fHn\fHJ\fHT\fHY\fHR\fH^\fHU\fIg\fHD\fHR\fHU\fIg\fHH\fIl\fHp\fId\fHT\fIk\fHY\fHR\fHF\fHT\fHp\fHD\fHH\fHR\fHD\fIk\fHH\fHR\fHp\fHR\fH\\\fIl\fHt\fHR\fHC\fH^\fHp\fHS\fH^\fIk\fHD\fIl\fHv\fIk\fHp\fHR\fHn\fHv\fHF\fHH\fIa\fH\\\fH{\fIn\fH{\fH^\fHp\fHR\fHH\fIk\fH@\fHR\fHU\fH\\\fHj\fHF\fHD\fIk\fHY\fHR\fHU\fHD\fHk\fHT\fHy\fHR\fHT\fIm\fH@\fHU\fH\\\fHU\fHD\fIk\fHk\fHT\fHT\fIk\fHT\fHU\fHS\fHH\fH@\fHM\fHP\fIk\fHt\fHs\fHD\fHR\fHH\fH^\fHR\fHZ\fHF\fHR\fHn\fHv\fHZ\fIa\fH\\\fIl\fH@\fHM\fHP\fIl\fHU\fIg\fHH\fIk\fHT\fHR\fHd\fHs\fHZ\fHR\fHC\fHJ\fHT\fHy\fHH\fIl\fHp\fHR\fHH\fIl\fHY\fHR\fH^\fHR\fHU\fHp\fHR\fH\\\fHF\fHs\fHD\fHR\fH\\\fHz\fHD\fIk\fHT\fHM\fHP\fHy\fHB\fHS\fH^\fHR\fHe\fHT\fHy\fIl\fHy\fIk\fHY\fH^\fH^\fH{\fHH\fHR\fHz\fHR\fHD\fHR\fHi\fH\\\fIa\fHI\fHp\fHU\fHR\fHn\fHJ\fIk\fHz\fHR\fHF\fHU\fH^\fIl\fHD\fHS\fHC\fHB\fH@\fHS\fHD\fHR\fH@\fId\fHn\fHy\fHy\fHU\fIl\fHn\fHy\fHU\fHD\fHR\fHJ\fIk\fHH\fHR\fHU\fHB\fH^\fIk\fHy\fHR\fHG\fIl\fHp\fH@\fHy\fHS\fHH\fIm\fH\\\fHH\fHB\fHR\fHn\fH{\fHY\fHU\fIl\fHn\fH\\\fIg\fHp\fHP\fHB\fHS\fH^\fIl\fHj\fH\\\fIg\fHF\fHT\fIk\fHD\fHR\fHC\fHR\fHJ\fHY\fH^\fIk\fHD\fIk\fHz\fHR\fHH\fHR\fHy\fH\\\fIl\fH@\fHe\fHD\fHy\fHR\fHp\fHY\fHR\fH@\fHF\fIn\fH\\\fHR\fH@\fHM\fHP\fHR\fHT\fI`\fHJ\fHR\fHZ\fIk\fHC\fH\\\fHy\fHS\fHC\fIk\fHy\fHU\fHR\fHn\fHi\fHy\fHT\fH\\\fH@\fHD\fHR\fHc\fHY\fHU\fHR\fHn\fHT\fIa\fHI\fH^\fHB\fHS\fH^\fIk\fH^\fIk\fHz\fHy\fHY\fHS\fH[\fHC\fHy\fIa\fH\\\fHn\fHT\fHB\fIn\fHU\fHI\fHR\fHD\fHR4F4_4F4[5f4U5i4X4K4]5o4E4D5d4K4_4[4E4K5h4Y5m4A4E5i5d4K4Z5f4U4K5h4B4K4Y4E4K5h5i4^5f4C4K5h4U4K5i4E4K5h5o4K4F4D4K5h4]4C5d4C4D4]5j4K5i4@4K5h4C5d5h4E4K5h4U4K5h5i4K5h5i5d5n4U4K5h4U4]4D5f4K5h4_4]5f4U4K5h4@5d4K5h4K5h4\\5k4K4D4K5h4A5f4K4E4K5h4A5n5d5n4K5h5o4]5f5i4K5h4U4]4K5n5i4A5m5d4T4E4K5h4G4K5j5f5i4X4K5k4C4E4K5h5i4]4O4E4K5h5n4]4N5j4K5h4X4D4K4D4K5h4A5d4K4]4K5h4@4C5f4C4K5h4O4_4]4E4K5h4U5h5d5i5i4@5i5d4U4E4K5h4]4A5i5j4K5h5j5n4K4[5m5h4_4[5f5j4K5h5o5d5f4F4K5h4C5j5f4K4D4]5o4K4F5k4K5h4]5f4K4Z4F4A5f4K4F5f4D4F5d5n5f4F4K5h4O5d5h5e4K5h4D4]5f4C4K5h5o5h4K5i4K5h4]4K4D4[4K5h4X4B4Y5f4_5f4K4]4K4F4K5h4G4K5h4G4K5h4Y5h4K4E4K5h4A4C5f4G4K5h4^5d4K4]4K5h4B5h5f4@4K5h4@5i5f4U4K5h4U4K5i5k4K5h4@5i4K5h4K5h4_4K4U4E5i4X4K5k4C5k4K5h4]4J5f4_4K5h4C4B5d5h4K5h5m5j5f4E4K5h5o4F4K4D4K5h4C5d4]5f4K5h4C4]5d4_4K4_4F4V4]5n4F4Y4K5i5f5i4K5h4D5j4K4F4K5h4U4T5f5ifmwfqwbjmnfmwvmgfqpwbmgjmd#>#evm`wjlm+*-isd!#tjgwk>!`lmejdvqbwjlm-smd!#tjgwk>!?algz#`obpp>!Nbwk-qbmgln+*`lmwfnslqbqz#Vmjwfg#Pwbwfp`jq`vnpwbm`fp-bssfmg@kjog+lqdbmjybwjlmp?psbm#`obpp>!!=?jnd#pq`>!,gjpwjmdvjpkfgwklvpbmgp#le#`lnnvmj`bwjlm`ofbq!=?,gju=jmufpwjdbwjlmebuj`lm-j`l!#nbqdjm.qjdkw9abpfg#lm#wkf#Nbppb`kvpfwwpwbaof#alqgfq>jmwfqmbwjlmbobopl#hmltm#bpsqlmvm`jbwjlmab`hdqlvmg9 esbggjmd.ofew9Elq#f{bnsof/#njp`foobmflvp%ow8,nbwk%dw8spz`kloldj`bojm#sbqwj`vobqfbq`k!#wzsf>!elqn#nfwklg>!bp#lsslpfg#wlPvsqfnf#@lvqwl``bpjlmbooz#Bggjwjlmbooz/Mlqwk#Bnfqj`bs{8ab`hdqlvmglsslqwvmjwjfpFmwfqwbjmnfmw-wlOltfq@bpf+nbmveb`wvqjmdsqlefppjlmbo#`lnajmfg#tjwkElq#jmpwbm`f/`lmpjpwjmd#le!#nb{ofmdwk>!qfwvqm#ebopf8`lmp`jlvpmfppNfgjwfqqbmfbmf{wqblqgjmbqzbppbppjmbwjlmpvapfrvfmwoz#avwwlm#wzsf>!wkf#mvnafq#lewkf#lqjdjmbo#`lnsqfkfmpjufqfefqp#wl#wkf?,vo=\t?,gju=\tskjolplskj`bool`bwjlm-kqfetbp#svaojpkfgPbm#Eqbm`jp`l+evm`wjlm+*x\t?gju#jg>!nbjmplskjpwj`bwfgnbwkfnbwj`bo#,kfbg=\x0E\t?algzpvddfpwp#wkbwgl`vnfmwbwjlm`lm`fmwqbwjlmqfobwjlmpkjspnbz#kbuf#affm+elq#f{bnsof/Wkjp#bqwj`of#jm#plnf#`bpfpsbqwp#le#wkf#gfejmjwjlm#leDqfbw#Aqjwbjm#`foosbggjmd>frvjubofmw#wlsob`fklogfq>!8#elmw.pjyf9#ivpwjej`bwjlmafojfufg#wkbwpveefqfg#eqlnbwwfnswfg#wl#ofbgfq#le#wkf`qjsw!#pq`>!,+evm`wjlm+*#xbqf#bubjobaof\t\n?ojmh#qfo>!#pq`>$kwws9,,jmwfqfpwfg#jm`lmufmwjlmbo#!#bow>!!#,=?,bqf#dfmfqboozkbp#bopl#affmnlpw#slsvobq#`lqqfpslmgjmd`qfgjwfg#tjwkwzof>!alqgfq9?,b=?,psbm=?,-dje!#tjgwk>!?jeqbnf#pq`>!wbaof#`obpp>!jmojmf.aol`h8b``lqgjmd#wl#wldfwkfq#tjwkbssql{jnbwfozsbqojbnfmwbqznlqf#bmg#nlqfgjpsobz9mlmf8wqbgjwjlmboozsqfglnjmbmwoz%maps8\x7F%maps8%maps8?,psbm=#`foopsb`jmd>?jmsvw#mbnf>!lq!#`lmwfmw>!`lmwqlufqpjbosqlsfqwz>!ld9,{.pkl`htbuf.gfnlmpwqbwjlmpvqqlvmgfg#azMfufqwkfofpp/tbp#wkf#ejqpw`lmpjgfqbaof#Bowklvdk#wkf#`loobalqbwjlmpklvog#mlw#afsqlslqwjlm#le?psbm#pwzof>!hmltm#bp#wkf#pklqwoz#bewfqelq#jmpwbm`f/gfp`qjafg#bp#,kfbg=\t?algz#pwbqwjmd#tjwkjm`qfbpjmdoz#wkf#eb`w#wkbwgjp`vppjlm#lenjggof#le#wkfbm#jmgjujgvbogjeej`vow#wl#sljmw#le#ujftklnlpf{vbojwzb``fswbm`f#le?,psbm=?,gju=nbmveb`wvqfqplqjdjm#le#wkf`lnnlmoz#vpfgjnslqwbm`f#legfmlnjmbwjlmpab`hdqlvmg9# ofmdwk#le#wkfgfwfqnjmbwjlmb#pjdmjej`bmw!#alqgfq>!3!=qfulovwjlmbqzsqjm`jsofp#lejp#`lmpjgfqfgtbp#gfufolsfgJmgl.Fvqlsfbmuvomfqbaof#wlsqlslmfmwp#lebqf#plnfwjnfp`olpfq#wl#wkfMft#Zlqh#@jwz#mbnf>!pfbq`kbwwqjavwfg#wl`lvqpf#le#wkfnbwkfnbwj`jbmaz#wkf#fmg#lebw#wkf#fmg#le!#alqgfq>!3!#wf`kmloldj`bo-qfnluf@obpp+aqbm`k#le#wkffujgfm`f#wkbw\"Xfmgje^..=\x0E\tJmpwjwvwf#le#jmwl#b#pjmdofqfpsf`wjufoz-bmg#wkfqfelqfsqlsfqwjfp#lejp#ol`bwfg#jmplnf#le#tkj`kWkfqf#jp#bopl`lmwjmvfg#wl#bssfbqbm`f#le#%bns8mgbpk8#gfp`qjafp#wkf`lmpjgfqbwjlmbvwklq#le#wkfjmgfsfmgfmwozfrvjssfg#tjwkglfp#mlw#kbuf?,b=?b#kqfe>!`lmevpfg#tjwk?ojmh#kqfe>!,bw#wkf#bdf#lebssfbq#jm#wkfWkfpf#jm`ovgfqfdbqgofpp#le`lvog#af#vpfg#pwzof>%rvlw8pfufqbo#wjnfpqfsqfpfmw#wkfalgz=\t?,kwno=wklvdkw#wl#afslsvobwjlm#leslppjajojwjfpsfq`fmwbdf#leb``fpp#wl#wkfbm#bwwfnsw#wlsqlgv`wjlm#leirvfqz,irvfqzwtl#gjeefqfmwafolmd#wl#wkffpwbaojpknfmwqfsob`jmd#wkfgfp`qjswjlm!#gfwfqnjmf#wkfbubjobaof#elqB``lqgjmd#wl#tjgf#qbmdf#le\n?gju#`obpp>!nlqf#`lnnlmozlqdbmjpbwjlmpevm`wjlmbojwztbp#`lnsofwfg#%bns8ngbpk8#sbqwj`jsbwjlmwkf#`kbqb`wfqbm#bggjwjlmbobssfbqp#wl#afeb`w#wkbw#wkfbm#f{bnsof#lepjdmjej`bmwozlmnlvpflufq>!af`bvpf#wkfz#bpzm`#>#wqvf8sqlaofnp#tjwkpffnp#wl#kbufwkf#qfpvow#le#pq`>!kwws9,,ebnjojbq#tjwkslppfppjlm#leevm`wjlm#+*#xwllh#sob`f#jmbmg#plnfwjnfppvapwbmwjbooz?psbm=?,psbm=jp#lewfm#vpfgjm#bm#bwwfnswdqfbw#gfbo#leFmujqlmnfmwbopv``fppevooz#ujqwvbooz#boo13wk#`fmwvqz/sqlefppjlmbopmf`fppbqz#wl#gfwfqnjmfg#az`lnsbwjajojwzaf`bvpf#jw#jpGj`wjlmbqz#lenlgjej`bwjlmpWkf#elooltjmdnbz#qfefq#wl9@lmpfrvfmwoz/Jmwfqmbwjlmbobowklvdk#plnfwkbw#tlvog#aftlqog$p#ejqpw`obppjejfg#bpalwwln#le#wkf+sbqwj`vobqozbojdm>!ofew!#nlpw#`lnnlmozabpjp#elq#wkfelvmgbwjlm#le`lmwqjavwjlmpslsvobqjwz#le`fmwfq#le#wkfwl#qfgv`f#wkfivqjpgj`wjlmpbssql{jnbwjlm#lmnlvpflvw>!Mft#Wfpwbnfmw`loof`wjlm#le?,psbm=?,b=?,jm#wkf#Vmjwfgejon#gjqf`wlq.pwqj`w-gwg!=kbp#affm#vpfgqfwvqm#wl#wkfbowklvdk#wkjp`kbmdf#jm#wkfpfufqbo#lwkfqavw#wkfqf#bqfvmsqf`fgfmwfgjp#pjnjobq#wlfpsf`jbooz#jmtfjdkw9#alog8jp#`boofg#wkf`lnsvwbwjlmbojmgj`bwf#wkbwqfpwqj`wfg#wl\n?nfwb#mbnf>!bqf#wzsj`booz`lmeoj`w#tjwkKltfufq/#wkf#Bm#f{bnsof#le`lnsbqfg#tjwkrvbmwjwjfp#leqbwkfq#wkbm#b`lmpwfoobwjlmmf`fppbqz#elqqfslqwfg#wkbwpsf`jej`bwjlmslojwj`bo#bmg%maps8%maps8?qfefqfm`fp#wlwkf#pbnf#zfbqDlufqmnfmw#ledfmfqbwjlm#lekbuf#mlw#affmpfufqbo#zfbqp`lnnjwnfmw#wl\n\n?vo#`obpp>!ujpvbojybwjlm2:wk#`fmwvqz/sqb`wjwjlmfqpwkbw#kf#tlvogbmg#`lmwjmvfgl``vsbwjlm#lejp#gfejmfg#bp`fmwqf#le#wkfwkf#bnlvmw#le=?gju#pwzof>!frvjubofmw#legjeefqfmwjbwfaqlvdkw#balvwnbqdjm.ofew9#bvwlnbwj`boozwklvdkw#le#bpPlnf#le#wkfpf\t?gju#`obpp>!jmsvw#`obpp>!qfsob`fg#tjwkjp#lmf#le#wkffgv`bwjlm#bmgjmeovfm`fg#azqfsvwbwjlm#bp\t?nfwb#mbnf>!b``lnnlgbwjlm?,gju=\t?,gju=obqdf#sbqw#leJmpwjwvwf#elqwkf#pl.`boofg#bdbjmpw#wkf#Jm#wkjp#`bpf/tbp#bssljmwfg`objnfg#wl#afKltfufq/#wkjpGfsbqwnfmw#lewkf#qfnbjmjmdfeef`w#lm#wkfsbqwj`vobqoz#gfbo#tjwk#wkf\t?gju#pwzof>!bonlpw#botbzpbqf#`vqqfmwozf{sqfppjlm#leskjolplskz#leelq#nlqf#wkbm`jujojybwjlmplm#wkf#jpobmgpfof`wfgJmgf{`bm#qfpvow#jm!#ubovf>!!#,=wkf#pwqv`wvqf#,=?,b=?,gju=Nbmz#le#wkfpf`bvpfg#az#wkfle#wkf#Vmjwfgpsbm#`obpp>!n`bm#af#wqb`fgjp#qfobwfg#wlaf`bnf#lmf#lejp#eqfrvfmwozojujmd#jm#wkfwkflqfwj`boozElooltjmd#wkfQfulovwjlmbqzdlufqmnfmw#jmjp#gfwfqnjmfgwkf#slojwj`bojmwqlgv`fg#jmpveej`jfmw#wlgfp`qjswjlm!=pklqw#pwlqjfppfsbqbwjlm#lebp#wl#tkfwkfqhmltm#elq#jwptbp#jmjwjboozgjpsobz9aol`hjp#bm#f{bnsofwkf#sqjm`jsbo`lmpjpwp#le#bqf`ldmjyfg#bp,algz=?,kwno=b#pvapwbmwjboqf`lmpwqv`wfgkfbg#le#pwbwfqfpjpwbm`f#wlvmgfqdqbgvbwfWkfqf#bqf#wtldqbujwbwjlmbobqf#gfp`qjafgjmwfmwjlmboozpfqufg#bp#wkf`obpp>!kfbgfqlsslpjwjlm#wlevmgbnfmwboozglnjmbwfg#wkfbmg#wkf#lwkfqboojbm`f#tjwktbp#elq`fg#wlqfpsf`wjufoz/bmg#slojwj`bojm#pvsslqw#lesflsof#jm#wkf13wk#`fmwvqz-bmg#svaojpkfgolbg@kbqwafbwwl#vmgfqpwbmgnfnafq#pwbwfpfmujqlmnfmwboejqpw#kboe#le`lvmwqjfp#bmgbq`kjwf`wvqboaf#`lmpjgfqfg`kbqb`wfqjyfg`ofbqJmwfqubobvwklqjwbwjufEfgfqbwjlm#letbp#pv``ffgfgbmg#wkfqf#bqfb#`lmpfrvfm`fwkf#Sqfpjgfmwbopl#jm`ovgfgeqff#plewtbqfpv``fppjlm#legfufolsfg#wkftbp#gfpwqlzfgbtbz#eqln#wkf8\t?,p`qjsw=\t?bowklvdk#wkfzelooltfg#az#bnlqf#sltfqevoqfpvowfg#jm#bVmjufqpjwz#leKltfufq/#nbmzwkf#sqfpjgfmwKltfufq/#plnfjp#wklvdkw#wlvmwjo#wkf#fmgtbp#bmmlvm`fgbqf#jnslqwbmwbopl#jm`ovgfp=?jmsvw#wzsf>wkf#`fmwfq#le#GL#MLW#BOWFQvpfg#wl#qfefqwkfnfp,<plqw>wkbw#kbg#affmwkf#abpjp#elqkbp#gfufolsfgjm#wkf#pvnnfq`lnsbqbwjufozgfp`qjafg#wkfpv`k#bp#wklpfwkf#qfpvowjmdjp#jnslppjaofubqjlvp#lwkfqPlvwk#Beqj`bmkbuf#wkf#pbnffeef`wjufmfppjm#tkj`k#`bpf8#wf{w.bojdm9pwqv`wvqf#bmg8#ab`hdqlvmg9qfdbqgjmd#wkfpvsslqwfg#wkfjp#bopl#hmltmpwzof>!nbqdjmjm`ovgjmd#wkfabkbpb#Nfobzvmlqph#alhn/Iomlqph#mzmlqphpolufm)M(ajmbjmwfqmb`jlmbo`bojej`b`j/_m`lnvmj`b`j/_m`lmpwqv``j/_m!=?gju#`obpp>!gjpbnajdvbwjlmGlnbjmMbnf$/#$bgnjmjpwqbwjlmpjnvowbmflvpozwqbmpslqwbwjlmJmwfqmbwjlmbo#nbqdjm.alwwln9qfpslmpjajojwz?\"Xfmgje^..=\t?,=?nfwb#mbnf>!jnsofnfmwbwjlmjmeqbpwqv`wvqfqfsqfpfmwbwjlmalqgfq.alwwln9?,kfbg=\t?algz=>kwws&0B&1E&1E?elqn#nfwklg>!nfwklg>!slpw!#,ebuj`lm-j`l!#~*8\t?,p`qjsw=\t-pfwBwwqjavwf+Bgnjmjpwqbwjlm>#mft#Bqqbz+*8?\"Xfmgje^..=\x0E\tgjpsobz9aol`h8Vmelqwvmbwfoz/!=%maps8?,gju=,ebuj`lm-j`l!=>$pwzofpkffw$#jgfmwjej`bwjlm/#elq#f{bnsof/?oj=?b#kqfe>!,bm#bowfqmbwjufbp#b#qfpvow#lesw!=?,p`qjsw=\twzsf>!pvanjw!#\t+evm`wjlm+*#xqf`lnnfmgbwjlmelqn#b`wjlm>!,wqbmpelqnbwjlmqf`lmpwqv`wjlm-pwzof-gjpsobz#B``lqgjmd#wl#kjggfm!#mbnf>!bolmd#tjwk#wkfgl`vnfmw-algz-bssql{jnbwfoz#@lnnvmj`bwjlmpslpw!#b`wjlm>!nfbmjmd#%rvlw8..?\"Xfmgje^..=Sqjnf#Njmjpwfq`kbqb`wfqjpwj`?,b=#?b#`obpp>wkf#kjpwlqz#le#lmnlvpflufq>!wkf#dlufqmnfmwkqfe>!kwwsp9,,tbp#lqjdjmbooztbp#jmwqlgv`fg`obppjej`bwjlmqfsqfpfmwbwjufbqf#`lmpjgfqfg?\"Xfmgje^..=\t\tgfsfmgp#lm#wkfVmjufqpjwz#le#jm#`lmwqbpw#wl#sob`fklogfq>!jm#wkf#`bpf#lejmwfqmbwjlmbo#`lmpwjwvwjlmbopwzof>!alqgfq.9#evm`wjlm+*#xAf`bvpf#le#wkf.pwqj`w-gwg!=\t?wbaof#`obpp>!b``lnsbmjfg#azb``lvmw#le#wkf?p`qjsw#pq`>!,mbwvqf#le#wkf#wkf#sflsof#jm#jm#bggjwjlm#wlp*8#ip-jg#>#jg!#tjgwk>!233&!qfdbqgjmd#wkf#Qlnbm#@bwkloj`bm#jmgfsfmgfmwelooltjmd#wkf#-dje!#tjgwk>!2wkf#elooltjmd#gjp`qjnjmbwjlmbq`kbfloldj`bosqjnf#njmjpwfq-ip!=?,p`qjsw=`lnajmbwjlm#le#nbqdjmtjgwk>!`qfbwfFofnfmw+t-bwwb`kFufmw+?,b=?,wg=?,wq=pq`>!kwwsp9,,bJm#sbqwj`vobq/#bojdm>!ofew!#@yf`k#Qfsvaoj`Vmjwfg#Hjmdgln`lqqfpslmgfm`f`lm`ovgfg#wkbw-kwno!#wjwof>!+evm`wjlm#+*#x`lnfp#eqln#wkfbssoj`bwjlm#le?psbm#`obpp>!pafojfufg#wl#affnfmw+$p`qjsw$?,b=\t?,oj=\t?ojufqz#gjeefqfmw=?psbm#`obpp>!lswjlm#ubovf>!+bopl#hmltm#bp\n?oj=?b#kqfe>!=?jmsvw#mbnf>!pfsbqbwfg#eqlnqfefqqfg#wl#bp#ubojdm>!wls!=elvmgfq#le#wkfbwwfnswjmd#wl#`bqalm#gjl{jgf\t\t?gju#`obpp>!`obpp>!pfbq`k.,algz=\t?,kwno=lsslqwvmjwz#wl`lnnvmj`bwjlmp?,kfbg=\x0E\t?algz#pwzof>!tjgwk9Wj\rVSmd#Uj\rWkw`kbmdfp#jm#wkfalqgfq.`lolq9 3!#alqgfq>!3!#?,psbm=?,gju=?tbp#gjp`lufqfg!#wzsf>!wf{w!#*8\t?,p`qjsw=\t\tGfsbqwnfmw#le#f``ofpjbpwj`bowkfqf#kbp#affmqfpvowjmd#eqln?,algz=?,kwno=kbp#mfufq#affmwkf#ejqpw#wjnfjm#qfpslmpf#wlbvwlnbwj`booz#?,gju=\t\t?gju#jtbp#`lmpjgfqfgsfq`fmw#le#wkf!#,=?,b=?,gju=`loof`wjlm#le#gfp`fmgfg#eqlnpf`wjlm#le#wkfb``fsw.`kbqpfwwl#af#`lmevpfgnfnafq#le#wkf#sbggjmd.qjdkw9wqbmpobwjlm#lejmwfqsqfwbwjlm#kqfe>$kwws9,,tkfwkfq#lq#mlwWkfqf#bqf#boplwkfqf#bqf#nbmzb#pnboo#mvnafqlwkfq#sbqwp#lejnslppjaof#wl##`obpp>!avwwlmol`bwfg#jm#wkf-#Kltfufq/#wkfbmg#fufmwvboozBw#wkf#fmg#le#af`bvpf#le#jwpqfsqfpfmwp#wkf?elqn#b`wjlm>!#nfwklg>!slpw!jw#jp#slppjaofnlqf#ojhfoz#wlbm#jm`qfbpf#jmkbuf#bopl#affm`lqqfpslmgp#wlbmmlvm`fg#wkbwbojdm>!qjdkw!=nbmz#`lvmwqjfpelq#nbmz#zfbqpfbqojfpw#hmltmaf`bvpf#jw#tbpsw!=?,p`qjsw=\x0E#ubojdm>!wls!#jmkbajwbmwp#leelooltjmd#zfbq\x0E\t?gju#`obpp>!njoojlm#sflsof`lmwqlufqpjbo#`lm`fqmjmd#wkfbqdvf#wkbw#wkfdlufqmnfmw#bmgb#qfefqfm`f#wlwqbmpefqqfg#wlgfp`qjajmd#wkf#pwzof>!`lolq9bowklvdk#wkfqfafpw#hmltm#elqpvanjw!#mbnf>!nvowjsoj`bwjlmnlqf#wkbm#lmf#qf`ldmjwjlm#le@lvm`jo#le#wkffgjwjlm#le#wkf##?nfwb#mbnf>!Fmwfqwbjmnfmw#btbz#eqln#wkf#8nbqdjm.qjdkw9bw#wkf#wjnf#lejmufpwjdbwjlmp`lmmf`wfg#tjwkbmg#nbmz#lwkfqbowklvdk#jw#jpafdjmmjmd#tjwk#?psbm#`obpp>!gfp`fmgbmwp#le?psbm#`obpp>!j#bojdm>!qjdkw!?,kfbg=\t?algz#bpsf`wp#le#wkfkbp#pjm`f#affmFvqlsfbm#Vmjlmqfnjmjp`fmw#lenlqf#gjeej`vowUj`f#Sqfpjgfmw`lnslpjwjlm#lesbppfg#wkqlvdknlqf#jnslqwbmwelmw.pjyf922s{f{sobmbwjlm#lewkf#`lm`fsw#letqjwwfm#jm#wkf\n?psbm#`obpp>!jp#lmf#le#wkf#qfpfnaobm`f#wllm#wkf#dqlvmgptkj`k#`lmwbjmpjm`ovgjmd#wkf#gfejmfg#az#wkfsvaoj`bwjlm#lenfbmp#wkbw#wkflvwpjgf#le#wkfpvsslqw#le#wkf?jmsvw#`obpp>!?psbm#`obpp>!w+Nbwk-qbmgln+*nlpw#sqlnjmfmwgfp`qjswjlm#le@lmpwbmwjmlsoftfqf#svaojpkfg?gju#`obpp>!pfbssfbqp#jm#wkf2!#kfjdkw>!2!#nlpw#jnslqwbmwtkj`k#jm`ovgfptkj`k#kbg#affmgfpwqv`wjlm#lewkf#slsvobwjlm\t\n?gju#`obpp>!slppjajojwz#leplnfwjnfp#vpfgbssfbq#wl#kbufpv``fpp#le#wkfjmwfmgfg#wl#afsqfpfmw#jm#wkfpwzof>!`ofbq9a\x0E\t?,p`qjsw=\x0E\t?tbp#elvmgfg#jmjmwfqujft#tjwk\\jg!#`lmwfmw>!`bsjwbo#le#wkf\x0E\t?ojmh#qfo>!pqfofbpf#le#wkfsljmw#lvw#wkbw{NOKwwsQfrvfpwbmg#pvapfrvfmwpf`lmg#obqdfpwufqz#jnslqwbmwpsf`jej`bwjlmppvqeb`f#le#wkfbssojfg#wl#wkfelqfjdm#sloj`z\\pfwGlnbjmMbnffpwbaojpkfg#jmjp#afojfufg#wlJm#bggjwjlm#wlnfbmjmd#le#wkfjp#mbnfg#bewfqwl#sqlwf`w#wkfjp#qfsqfpfmwfgGf`obqbwjlm#lenlqf#feej`jfmw@obppjej`bwjlmlwkfq#elqnp#lekf#qfwvqmfg#wl?psbm#`obpp>!`sfqelqnbm`f#le+evm`wjlm+*#x\x0Eje#bmg#lmoz#jeqfdjlmp#le#wkfofbgjmd#wl#wkfqfobwjlmp#tjwkVmjwfg#Mbwjlmppwzof>!kfjdkw9lwkfq#wkbm#wkfzsf!#`lmwfmw>!Bppl`jbwjlm#le\t?,kfbg=\t?algzol`bwfg#lm#wkfjp#qfefqqfg#wl+jm`ovgjmd#wkf`lm`fmwqbwjlmpwkf#jmgjujgvbobnlmd#wkf#nlpwwkbm#bmz#lwkfq,=\t?ojmh#qfo>!#qfwvqm#ebopf8wkf#svqslpf#lewkf#bajojwz#wl8`lolq9 eee~\t-\t?psbm#`obpp>!wkf#pvaif`w#legfejmjwjlmp#le=\x0E\t?ojmh#qfo>!`objn#wkbw#wkfkbuf#gfufolsfg?wbaof#tjgwk>!`fofaqbwjlm#leElooltjmd#wkf#wl#gjpwjmdvjpk?psbm#`obpp>!awbhfp#sob`f#jmvmgfq#wkf#mbnfmlwfg#wkbw#wkf=?\"Xfmgje^..=\tpwzof>!nbqdjm.jmpwfbg#le#wkfjmwqlgv`fg#wkfwkf#sql`fpp#lejm`qfbpjmd#wkfgjeefqfm`fp#jmfpwjnbwfg#wkbwfpsf`jbooz#wkf,gju=?gju#jg>!tbp#fufmwvboozwkqlvdklvw#kjpwkf#gjeefqfm`fplnfwkjmd#wkbwpsbm=?,psbm=?,pjdmjej`bmwoz#=?,p`qjsw=\x0E\t\x0E\tfmujqlmnfmwbo#wl#sqfufmw#wkfkbuf#affm#vpfgfpsf`jbooz#elqvmgfqpwbmg#wkfjp#fppfmwjbooztfqf#wkf#ejqpwjp#wkf#obqdfpwkbuf#affm#nbgf!#pq`>!kwws9,,jmwfqsqfwfg#bppf`lmg#kboe#le`qloojmd>!ml!#jp#`lnslpfg#leJJ/#Kloz#Qlnbmjp#f{sf`wfg#wlkbuf#wkfjq#ltmgfejmfg#bp#wkfwqbgjwjlmbooz#kbuf#gjeefqfmwbqf#lewfm#vpfgwl#fmpvqf#wkbwbdqffnfmw#tjwk`lmwbjmjmd#wkfbqf#eqfrvfmwozjmelqnbwjlm#lmf{bnsof#jp#wkfqfpvowjmd#jm#b?,b=?,oj=?,vo=#`obpp>!ellwfqbmg#fpsf`jboozwzsf>!avwwlm!#?,psbm=?,psbm=tkj`k#jm`ovgfg=\t?nfwb#mbnf>!`lmpjgfqfg#wkf`bqqjfg#lvw#azKltfufq/#jw#jpaf`bnf#sbqw#lejm#qfobwjlm#wlslsvobq#jm#wkfwkf#`bsjwbo#letbp#leej`jbooztkj`k#kbp#affmwkf#Kjpwlqz#lebowfqmbwjuf#wlgjeefqfmw#eqlnwl#pvsslqw#wkfpvddfpwfg#wkbwjm#wkf#sql`fpp##?gju#`obpp>!wkf#elvmgbwjlmaf`bvpf#le#kjp`lm`fqmfg#tjwkwkf#vmjufqpjwzlsslpfg#wl#wkfwkf#`lmwf{w#le?psbm#`obpp>!swf{w!#mbnf>!r!\n\n?gju#`obpp>!wkf#p`jfmwjej`qfsqfpfmwfg#aznbwkfnbwj`jbmpfof`wfg#az#wkfwkbw#kbuf#affm=?gju#`obpp>!`gju#jg>!kfbgfqjm#sbqwj`vobq/`lmufqwfg#jmwl*8\t?,p`qjsw=\t?skjolplskj`bo#pqsphlkqubwphjwj\rVSmd#Uj\rWkw<L=o=m=m<V<T<U=l=o=m=m<V<T<Ujmufpwjdb`j/_msbqwj`jsb`j/_m<V<R=n<R=l=g<Y<R<]<W<\\=m=n<T<V<R=n<R=l=g<U=k<Y<W<R<^<Y<V=m<T=m=n<Y<P=g<q<R<^<R=m=n<T<V<R=n<R=l=g=i<R<]<W<\\=m=n=`<^=l<Y<P<Y<Q<T<V<R=n<R=l<\\=c=m<Y<_<R<X<Q=c=m<V<\\=k<\\=n=`<Q<R<^<R=m=n<T<O<V=l<\\<T<Q=g<^<R<S=l<R=m=g<V<R=n<R=l<R<U=m<X<Y<W<\\=n=`<S<R<P<R=e=`=b=m=l<Y<X=m=n<^<R<]=l<\\<[<R<P=m=n<R=l<R<Q=g=o=k<\\=m=n<T<Y=n<Y=k<Y<Q<T<Y<\x7F<W<\\<^<Q<\\=c<T=m=n<R=l<T<T=m<T=m=n<Y<P<\\=l<Y=d<Y<Q<T=c<M<V<\\=k<\\=n=`<S<R=a=n<R<P=o=m<W<Y<X=o<Y=n=m<V<\\<[<\\=n=`=n<R<^<\\=l<R<^<V<R<Q<Y=k<Q<R=l<Y=d<Y<Q<T<Y<V<R=n<R=l<R<Y<R=l<_<\\<Q<R<^<V<R=n<R=l<R<P<L<Y<V<W<\\<P<\\4K5h5i5j4F4C5e5i5j4F4C5f4K4F4K5h5i5d4Z5d4U4K5h4D4]4K5i4@4K5h5i5d4K5n4U4K5h4]4_4K4J5h5i4X4K4]5o4K4F4K5h4O4U4Z4K4M4K5h4]5f4K4Z4E4K5h4F4Y5i5f5i4K5h4K4U4Z4K4M4K5h5j4F4K4J4@4K5h4O5h4U4K4D4K5h4F4_4@5f5h4K5h4O5n4_4K5i4K5h4Z4V4[4K4F4K5h5m5f4C5f5d4K5h4F4]4A5f4D4K5h4@4C5f4C4E4K5h4F4U5h5f5i4K5h4O4B4D4K4]4K5h4K5m5h4K5i4K5h4O5m5h4K5i4K5h4F4K4]5f4B4K5h4F5n5j5f4E4K5h4K5h4U4K4D4K5h4B5d4K4[4]4K5h5i4@4F5i4U4K5h4C5f5o5d4]4K5h4_5f4K4A4E4U4D4C4K5h5h5k4K5h4F4]4D5f4E4K5h4]5d4K4D4[4K5h4O4C4D5f4E4K5h4K4B4D4K4]4K5h5i4F4A4C4E4K5h4K4V4K5j5f`vqplq9sljmwfq8?,wjwof=\t?nfwb#!#kqfe>!kwws9,,!=?psbm#`obpp>!nfnafqp#le#wkf#tjmglt-ol`bwjlmufqwj`bo.bojdm9,b=#\x7F#?b#kqfe>!?\"gl`wzsf#kwno=nfgjb>!p`qffm!#?lswjlm#ubovf>!ebuj`lm-j`l!#,=\t\n\n?gju#`obpp>!`kbqb`wfqjpwj`p!#nfwklg>!dfw!#,algz=\t?,kwno=\tpklqw`vw#j`lm!#gl`vnfmw-tqjwf+sbggjmd.alwwln9qfsqfpfmwbwjufppvanjw!#ubovf>!bojdm>!`fmwfq!#wkqlvdklvw#wkf#p`jfm`f#ej`wjlm\t##?gju#`obpp>!pvanjw!#`obpp>!lmf#le#wkf#nlpw#ubojdm>!wls!=?tbp#fpwbaojpkfg*8\x0E\t?,p`qjsw=\x0E\tqfwvqm#ebopf8!=*-pwzof-gjpsobzaf`bvpf#le#wkf#gl`vnfmw-`llhjf?elqn#b`wjlm>!,~algzxnbqdjm938Fm`z`olsfgjb#leufqpjlm#le#wkf#-`qfbwfFofnfmw+mbnf!#`lmwfmw>!?,gju=\t?,gju=\t\tbgnjmjpwqbwjuf#?,algz=\t?,kwno=kjpwlqz#le#wkf#!=?jmsvw#wzsf>!slqwjlm#le#wkf#bp#sbqw#le#wkf#%maps8?b#kqfe>!lwkfq#`lvmwqjfp!=\t?gju#`obpp>!?,psbm=?,psbm=?Jm#lwkfq#tlqgp/gjpsobz9#aol`h8`lmwqlo#le#wkf#jmwqlgv`wjlm#le,=\t?nfwb#mbnf>!bp#tfoo#bp#wkf#jm#qf`fmw#zfbqp\x0E\t\n?gju#`obpp>!?,gju=\t\n?,gju=\tjmpsjqfg#az#wkfwkf#fmg#le#wkf#`lnsbwjaof#tjwkaf`bnf#hmltm#bp#pwzof>!nbqdjm9-ip!=?,p`qjsw=?#Jmwfqmbwjlmbo#wkfqf#kbuf#affmDfqnbm#obmdvbdf#pwzof>!`lolq9 @lnnvmjpw#Sbqwz`lmpjpwfmw#tjwkalqgfq>!3!#`foo#nbqdjmkfjdkw>!wkf#nbilqjwz#le!#bojdm>!`fmwfqqfobwfg#wl#wkf#nbmz#gjeefqfmw#Lqwklgl{#@kvq`kpjnjobq#wl#wkf#,=\t?ojmh#qfo>!ptbp#lmf#le#wkf#vmwjo#kjp#gfbwk~*+*8\t?,p`qjsw=lwkfq#obmdvbdfp`lnsbqfg#wl#wkfslqwjlmp#le#wkfwkf#Mfwkfqobmgpwkf#nlpw#`lnnlmab`hdqlvmg9vqo+bqdvfg#wkbw#wkfp`qloojmd>!ml!#jm`ovgfg#jm#wkfMlqwk#Bnfqj`bm#wkf#mbnf#le#wkfjmwfqsqfwbwjlmpwkf#wqbgjwjlmbogfufolsnfmw#le#eqfrvfmwoz#vpfgb#`loof`wjlm#leufqz#pjnjobq#wlpvqqlvmgjmd#wkff{bnsof#le#wkjpbojdm>!`fmwfq!=tlvog#kbuf#affmjnbdf\\`bswjlm#>bwwb`kfg#wl#wkfpvddfpwjmd#wkbwjm#wkf#elqn#le#jmuloufg#jm#wkfjp#gfqjufg#eqlnmbnfg#bewfq#wkfJmwqlgv`wjlm#wlqfpwqj`wjlmp#lm#pwzof>!tjgwk9#`bm#af#vpfg#wl#wkf#`qfbwjlm#lenlpw#jnslqwbmw#jmelqnbwjlm#bmgqfpvowfg#jm#wkf`loobspf#le#wkfWkjp#nfbmp#wkbwfofnfmwp#le#wkftbp#qfsob`fg#azbmbozpjp#le#wkfjmpsjqbwjlm#elqqfdbqgfg#bp#wkfnlpw#pv``fppevohmltm#bp#%rvlw8b#`lnsqfkfmpjufKjpwlqz#le#wkf#tfqf#`lmpjgfqfgqfwvqmfg#wl#wkfbqf#qfefqqfg#wlVmplvq`fg#jnbdf=\t\n?gju#`obpp>!`lmpjpwp#le#wkfpwlsSqlsbdbwjlmjmwfqfpw#jm#wkfbubjobajojwz#lebssfbqp#wl#kbuffof`wqlnbdmfwj`fmbaofPfquj`fp+evm`wjlm#le#wkfJw#jp#jnslqwbmw?,p`qjsw=?,gju=evm`wjlm+*xubq#qfobwjuf#wl#wkfbp#b#qfpvow#le#wkf#slpjwjlm#leElq#f{bnsof/#jm#nfwklg>!slpw!#tbp#elooltfg#az%bns8ngbpk8#wkfwkf#bssoj`bwjlmip!=?,p`qjsw=\x0E\tvo=?,gju=?,gju=bewfq#wkf#gfbwktjwk#qfpsf`w#wlpwzof>!sbggjmd9jp#sbqwj`vobqozgjpsobz9jmojmf8#wzsf>!pvanjw!#jp#gjujgfg#jmwl\bTA\nzk#+\x0BBl\bQ\x7F*qfpslmpbajojgbgbgnjmjpwqb`j/_mjmwfqmb`jlmbofp`lqqfpslmgjfmwf\fHe\fHF\fHC\fIg\fH{\fHF\fIn\fH\\\fIa\fHY\fHU\fHB\fHR\fH\\\fIk\fH^\fIg\fH{\fIg\fHn\fHv\fIm\fHD\fHR\fHY\fH^\fIk\fHy\fHS\fHD\fHT\fH\\\fHy\fHR\fH\\\fHF\fIm\fH^\fHS\fHT\fHz\fIg\fHp\fIk\fHn\fHv\fHR\fHU\fHS\fHc\fHA\fIk\fHp\fIk\fHn\fHZ\fHR\fHB\fHS\fH^\fHU\fHB\fHR\fH\\\fIl\fHp\fHR\fH{\fH\\\fHO\fH@\fHD\fHR\fHD\fIk\fHy\fIm\fHB\fHR\fH\\\fH@\fIa\fH^\fIe\fH{\fHB\fHR\fH^\fHS\fHy\fHB\fHU\fHS\fH^\fHR\fHF\fIo\fH[\fIa\fHL\fH@\fHN\fHP\fHH\fIk\fHA\fHR\fHp\fHF\fHR\fHy\fIa\fH^\fHS\fHy\fHs\fIa\fH\\\fIk\fHD\fHz\fHS\fH^\fHR\fHG\fHJ\fI`\fH\\\fHR\fHD\fHB\fHR\fHB\fH^\fIk\fHB\fHH\fHJ\fHR\fHD\fH@\fHR\fHp\fHR\fH\\\fHY\fHS\fHy\fHR\fHT\fHy\fIa\fHC\fIg\fHn\fHv\fHR\fHU\fHH\fIk\fHF\fHU\fIm\fHm\fHv\fH@\fHH\fHR\fHC\fHR\fHT\fHn\fHY\fHR\fHJ\fHJ\fIk\fHz\fHD\fIk\fHF\fHS\fHw\fH^\fIk\fHY\fHS\fHZ\fIk\fH[\fH\\\fHR\fHp\fIa\fHC\fHe\fHH\fIa\fHH\fH\\\fHB\fIm\fHn\fH@\fHd\fHJ\fIg\fHD\fIg\fHn\fHe\fHF\fHy\fH\\\fHO\fHF\fHN\fHP\fIk\fHn\fHT\fIa\fHI\fHS\fHH\fHG\fHS\fH^\fIa\fHB\fHB\fIm\fHz\fIa\fHC\fHi\fHv\fIa\fHw\fHR\fHw\fIn\fHs\fHH\fIl\fHT\fHn\fH{\fIl\fHH\fHp\fHR\fHc\fH{\fHR\fHY\fHS\fHA\fHR\fH{\fHt\fHO\fIa\fHs\fIk\fHJ\fIn\fHT\fH\\\fIk\fHJ\fHS\fHD\fIg\fHn\fHU\fHH\fIa\fHC\fHR\fHT\fIk\fHy\fIa\fHT\fH{\fHR\fHn\fHK\fIl\fHY\fHS\fHZ\fIa\fHY\fH\\\fHR\fHH\fIk\fHn\fHJ\fId\fHs\fIa\fHT\fHD\fHy\fIa\fHZ\fHR\fHT\fHR\fHB\fHD\fIk\fHi\fHJ\fHR\fH^\fHH\fH@\fHS\fHp\fH^\fIl\fHF\fIm\fH\\\fIn\fH[\fHU\fHS\fHn\fHJ\fIl\fHB\fHS\fHH\fIa\fH\\\fHy\fHY\fHS\fHH\fHR\fH\\\fIm\fHF\fHC\fIk\fHT\fIa\fHI\fHR\fHD\fHy\fH\\\fIg\fHM\fHP\fHB\fIm\fHy\fIa\fHH\fHC\fIg\fHp\fHD\fHR\fHy\fIo\fHF\fHC\fHR\fHF\fIg\fHT\fIa\fHs\fHt\fH\\\fIk\fH^\fIn\fHy\fHR\fH\\\fIa\fHC\fHY\fHS\fHv\fHR\fH\\\fHT\fIn\fHv\fHD\fHR\fHB\fIn\fH^\fIa\fHC\fHJ\fIk\fHz\fIk\fHn\fHU\fHB\fIk\fHZ\fHR\fHT\fIa\fHy\fIn\fH^\fHB\fId\fHn\fHD\fIk\fHH\fId\fHC\fHR\fH\\\fHp\fHS\fHT\fHy\fIkqpp({no!#wjwof>!.wzsf!#`lmwfmw>!wjwof!#`lmwfmw>!bw#wkf#pbnf#wjnf-ip!=?,p`qjsw=\t?!#nfwklg>!slpw!#?,psbm=?,b=?,oj=ufqwj`bo.bojdm9w,irvfqz-njm-ip!=-`oj`h+evm`wjlm+#pwzof>!sbggjmd.~*+*8\t?,p`qjsw=\t?,psbm=?b#kqfe>!?b#kqfe>!kwws9,,*8#qfwvqm#ebopf8wf{w.gf`lqbwjlm9#p`qloojmd>!ml!#alqgfq.`loobspf9bppl`jbwfg#tjwk#Abkbpb#JmglmfpjbFmdojpk#obmdvbdf?wf{w#{no9psb`f>-dje!#alqgfq>!3!?,algz=\t?,kwno=\tlufqeolt9kjggfm8jnd#pq`>!kwws9,,bggFufmwOjpwfmfqqfpslmpjaof#elq#p-ip!=?,p`qjsw=\t,ebuj`lm-j`l!#,=lsfqbwjmd#pzpwfn!#pwzof>!tjgwk92wbqdfw>!\\aobmh!=Pwbwf#Vmjufqpjwzwf{w.bojdm9ofew8\tgl`vnfmw-tqjwf+/#jm`ovgjmd#wkf#bqlvmg#wkf#tlqog*8\x0E\t?,p`qjsw=\x0E\t?!#pwzof>!kfjdkw98lufqeolt9kjggfmnlqf#jmelqnbwjlmbm#jmwfqmbwjlmbob#nfnafq#le#wkf#lmf#le#wkf#ejqpw`bm#af#elvmg#jm#?,gju=\t\n\n?,gju=\tgjpsobz9#mlmf8!=!#,=\t?ojmh#qfo>!\t##+evm`wjlm+*#xwkf#26wk#`fmwvqz-sqfufmwGfebvow+obqdf#mvnafq#le#Azybmwjmf#Fnsjqf-isd\x7Fwkvna\x7Fofew\x7Fubpw#nbilqjwz#lenbilqjwz#le#wkf##bojdm>!`fmwfq!=Vmjufqpjwz#Sqfppglnjmbwfg#az#wkfPf`lmg#Tlqog#Tbqgjpwqjavwjlm#le#pwzof>!slpjwjlm9wkf#qfpw#le#wkf#`kbqb`wfqjyfg#az#qfo>!mleloolt!=gfqjufp#eqln#wkfqbwkfq#wkbm#wkf#b#`lnajmbwjlm#lepwzof>!tjgwk9233Fmdojpk.psfbhjmd`lnsvwfq#p`jfm`falqgfq>!3!#bow>!wkf#f{jpwfm`f#leGfnl`qbwj`#Sbqwz!#pwzof>!nbqdjm.Elq#wkjp#qfbplm/-ip!=?,p`qjsw=\t\npAzWbdMbnf+p*X3^ip!=?,p`qjsw=\x0E\t?-ip!=?,p`qjsw=\x0E\tojmh#qfo>!j`lm!#$#bow>$$#`obpp>$elqnbwjlm#le#wkfufqpjlmp#le#wkf#?,b=?,gju=?,gju=,sbdf=\t##?sbdf=\t?gju#`obpp>!`lmwaf`bnf#wkf#ejqpwabkbpb#Jmglmfpjbfmdojpk#+pjnsof*\"y\"W\"W\"[\"Q\"U\"V\"@=i=l<^<\\=n=m<V<T<V<R<P<S<\\<Q<T<T=c<^<W=c<Y=n=m=c<x<R<]<\\<^<T=n=`=k<Y<W<R<^<Y<V<\\=l<\\<[<^<T=n<T=c<t<Q=n<Y=l<Q<Y=n<r=n<^<Y=n<T=n=`<Q<\\<S=l<T<P<Y=l<T<Q=n<Y=l<Q<Y=n<V<R=n<R=l<R<_<R=m=n=l<\\<Q<T=j=g<V<\\=k<Y=m=n<^<Y=o=m<W<R<^<T=c=i<S=l<R<]<W<Y<P=g<S<R<W=o=k<T=n=`=c<^<W=c=b=n=m=c<Q<\\<T<]<R<W<Y<Y<V<R<P<S<\\<Q<T=c<^<Q<T<P<\\<Q<T<Y=m=l<Y<X=m=n<^<\\4K5h5i5d4K4Z5f4U4K5h4]4J5f4_5f4E4K5h4K5j4F5n4K5h5i4X4K4]5o4K4F5o4K5h4_5f4K4]4K4F4K5h5i5o4F5d4D4E4K5h4_4U5d4C5f4E4K4A4Y4K4J5f4K4F4K5h4U4K5h5i5f4E4K5h4Y5d4F5f4K4F4K5h4K5j4F4]5j4F4K5h4F4Y4K5i5f5i4K5h4I4_5h4K5i5f4K5h5i4X4K4]5o4E4K5h5i4]4J5f4K4Fqlalwp!#`lmwfmw>!?gju#jg>!ellwfq!=wkf#Vmjwfg#Pwbwfp?jnd#pq`>!kwws9,,-isd\x7Fqjdkw\x7Fwkvna\x7F-ip!=?,p`qjsw=\x0E\t?ol`bwjlm-sqlwl`loeqbnfalqgfq>!3!#p!#,=\t?nfwb#mbnf>!?,b=?,gju=?,gju=?elmw.tfjdkw9alog8%rvlw8#bmg#%rvlw8gfsfmgjmd#lm#wkf#nbqdjm938sbggjmd9!#qfo>!mleloolt!#Sqfpjgfmw#le#wkf#wtfmwjfwk#`fmwvqzfujpjlm=\t##?,sbdfJmwfqmfw#F{solqfqb-bpzm`#>#wqvf8\x0E\tjmelqnbwjlm#balvw?gju#jg>!kfbgfq!=!#b`wjlm>!kwws9,,?b#kqfe>!kwwsp9,,?gju#jg>!`lmwfmw!?,gju=\x0E\t?,gju=\x0E\t?gfqjufg#eqln#wkf#?jnd#pq`>$kwws9,,b``lqgjmd#wl#wkf#\t?,algz=\t?,kwno=\tpwzof>!elmw.pjyf9p`qjsw#obmdvbdf>!Bqjbo/#Kfoufwj`b/?,b=?psbm#`obpp>!?,p`qjsw=?p`qjsw#slojwj`bo#sbqwjfpwg=?,wq=?,wbaof=?kqfe>!kwws9,,ttt-jmwfqsqfwbwjlm#leqfo>!pwzofpkffw!#gl`vnfmw-tqjwf+$?`kbqpfw>!vwe.;!=\tafdjmmjmd#le#wkf#qfufbofg#wkbw#wkfwfofujpjlm#pfqjfp!#qfo>!mleloolt!=#wbqdfw>!\\aobmh!=`objnjmd#wkbw#wkfkwws&0B&1E&1Ettt-nbmjefpwbwjlmp#leSqjnf#Njmjpwfq#lejmeovfm`fg#az#wkf`obpp>!`ofbqej{!=,gju=\x0E\t?,gju=\x0E\t\x0E\twkqff.gjnfmpjlmbo@kvq`k#le#Fmdobmgle#Mlqwk#@bqlojmbprvbqf#hjolnfwqfp-bggFufmwOjpwfmfqgjpwjm`w#eqln#wkf`lnnlmoz#hmltm#bpSklmfwj`#Boskbafwgf`obqfg#wkbw#wkf`lmwqloofg#az#wkfAfmibnjm#Eqbmhojmqlof.sobzjmd#dbnfwkf#Vmjufqpjwz#lejm#Tfpwfqm#Fvqlsfsfqplmbo#`lnsvwfqSqlif`w#Dvwfmafqdqfdbqgofpp#le#wkfkbp#affm#sqlslpfgwldfwkfq#tjwk#wkf=?,oj=?oj#`obpp>!jm#plnf#`lvmwqjfpnjm-ip!=?,p`qjsw=le#wkf#slsvobwjlmleej`jbo#obmdvbdf?jnd#pq`>!jnbdfp,jgfmwjejfg#az#wkfmbwvqbo#qfplvq`fp`obppjej`bwjlm#le`bm#af#`lmpjgfqfgrvbmwvn#nf`kbmj`pMfufqwkfofpp/#wkfnjoojlm#zfbqp#bdl?,algz=\x0E\t?,kwno=\x0E\"y\"W\"W\"[\"Q\"U\"V\"@\twbhf#bgubmwbdf#lebmg/#b``lqgjmd#wlbwwqjavwfg#wl#wkfNj`qlplew#Tjmgltpwkf#ejqpw#`fmwvqzvmgfq#wkf#`lmwqlogju#`obpp>!kfbgfqpklqwoz#bewfq#wkfmlwbaof#f{`fswjlmwfmp#le#wklvpbmgppfufqbo#gjeefqfmwbqlvmg#wkf#tlqog-qfb`kjmd#njojwbqzjplobwfg#eqln#wkflsslpjwjlm#wl#wkfwkf#Log#WfpwbnfmwBeqj`bm#Bnfqj`bmpjmpfqwfg#jmwl#wkfpfsbqbwf#eqln#wkfnfwqlslojwbm#bqfbnbhfp#jw#slppjaofb`hmltofgdfg#wkbwbqdvbaoz#wkf#nlpwwzsf>!wf{w,`pp!=\twkf#JmwfqmbwjlmboB``lqgjmd#wl#wkf#sf>!wf{w,`pp!#,=\t`ljm`jgf#tjwk#wkfwtl.wkjqgp#le#wkfGvqjmd#wkjp#wjnf/gvqjmd#wkf#sfqjlgbmmlvm`fg#wkbw#kfwkf#jmwfqmbwjlmbobmg#nlqf#qf`fmwozafojfufg#wkbw#wkf`lmp`jlvpmfpp#bmgelqnfqoz#hmltm#bppvqqlvmgfg#az#wkfejqpw#bssfbqfg#jml``bpjlmbooz#vpfgslpjwjlm9baplovwf8!#wbqdfw>!\\aobmh!#slpjwjlm9qfobwjuf8wf{w.bojdm9`fmwfq8ib{,ojap,irvfqz,2-ab`hdqlvmg.`lolq9 wzsf>!bssoj`bwjlm,bmdvbdf!#`lmwfmw>!?nfwb#kwws.frvju>!Sqjub`z#Sloj`z?,b=f+!&0@p`qjsw#pq`>$!#wbqdfw>!\\aobmh!=Lm#wkf#lwkfq#kbmg/-isd\x7Fwkvna\x7Fqjdkw\x7F1?,gju=?gju#`obpp>!?gju#pwzof>!eolbw9mjmfwffmwk#`fmwvqz?,algz=\x0E\t?,kwno=\x0E\t?jnd#pq`>!kwws9,,p8wf{w.bojdm9`fmwfqelmw.tfjdkw9#alog8#B``lqgjmd#wl#wkf#gjeefqfm`f#afwtffm!#eqbnfalqgfq>!3!#!#pwzof>!slpjwjlm9ojmh#kqfe>!kwws9,,kwno7,ollpf-gwg!=\tgvqjmd#wkjp#sfqjlg?,wg=?,wq=?,wbaof=`olpfoz#qfobwfg#wlelq#wkf#ejqpw#wjnf8elmw.tfjdkw9alog8jmsvw#wzsf>!wf{w!#?psbm#pwzof>!elmw.lmqfbgzpwbwf`kbmdf\n?gju#`obpp>!`ofbqgl`vnfmw-ol`bwjlm-#Elq#f{bnsof/#wkf#b#tjgf#ubqjfwz#le#?\"GL@WZSF#kwno=\x0E\t?%maps8%maps8%maps8!=?b#kqfe>!kwws9,,pwzof>!eolbw9ofew8`lm`fqmfg#tjwk#wkf>kwws&0B&1E&1Ettt-jm#slsvobq#`vowvqfwzsf>!wf{w,`pp!#,=jw#jp#slppjaof#wl#Kbqubqg#Vmjufqpjwzwzofpkffw!#kqfe>!,wkf#nbjm#`kbqb`wfqL{elqg#Vmjufqpjwz##mbnf>!hfztlqgp!#`pwzof>!wf{w.bojdm9wkf#Vmjwfg#Hjmdglnefgfqbo#dlufqmnfmw?gju#pwzof>!nbqdjm#gfsfmgjmd#lm#wkf#gfp`qjswjlm#le#wkf?gju#`obpp>!kfbgfq-njm-ip!=?,p`qjsw=gfpwqv`wjlm#le#wkfpojdkwoz#gjeefqfmwjm#b``lqgbm`f#tjwkwfof`lnnvmj`bwjlmpjmgj`bwfp#wkbw#wkfpklqwoz#wkfqfbewfqfpsf`jbooz#jm#wkf#Fvqlsfbm#`lvmwqjfpKltfufq/#wkfqf#bqfpq`>!kwws9,,pwbwj`pvddfpwfg#wkbw#wkf!#pq`>!kwws9,,ttt-b#obqdf#mvnafq#le#Wfof`lnnvmj`bwjlmp!#qfo>!mleloolt!#wKloz#Qlnbm#Fnsfqlqbonlpw#f{`ovpjufoz!#alqgfq>!3!#bow>!Pf`qfwbqz#le#Pwbwf`vonjmbwjmd#jm#wkf@JB#Tlqog#Eb`wallhwkf#nlpw#jnslqwbmwbmmjufqpbqz#le#wkfpwzof>!ab`hdqlvmg.?oj=?fn=?b#kqfe>!,wkf#Bwobmwj`#L`fbmpwqj`woz#psfbhjmd/pklqwoz#afelqf#wkfgjeefqfmw#wzsfp#lewkf#Lwwlnbm#Fnsjqf=?jnd#pq`>!kwws9,,Bm#Jmwqlgv`wjlm#wl`lmpfrvfm`f#le#wkfgfsbqwvqf#eqln#wkf@lmefgfqbwf#Pwbwfpjmgjdfmlvp#sflsofpSql`ffgjmdp#le#wkfjmelqnbwjlm#lm#wkfwkflqjfp#kbuf#affmjmuloufnfmw#jm#wkfgjujgfg#jmwl#wkqffbgib`fmw#`lvmwqjfpjp#qfpslmpjaof#elqgjpplovwjlm#le#wkf`loobalqbwjlm#tjwktjgfoz#qfdbqgfg#bpkjp#`lmwfnslqbqjfpelvmgjmd#nfnafq#leGlnjmj`bm#Qfsvaoj`dfmfqbooz#b``fswfgwkf#slppjajojwz#lebqf#bopl#bubjobaofvmgfq#`lmpwqv`wjlmqfpwlqbwjlm#le#wkfwkf#dfmfqbo#svaoj`jp#bonlpw#fmwjqfozsbppfp#wkqlvdk#wkfkbp#affm#pvddfpwfg`lnsvwfq#bmg#ujgflDfqnbmj`#obmdvbdfp#b``lqgjmd#wl#wkf#gjeefqfmw#eqln#wkfpklqwoz#bewfqtbqgpkqfe>!kwwsp9,,ttt-qf`fmw#gfufolsnfmwAlbqg#le#Gjqf`wlqp?gju#`obpp>!pfbq`k\x7F#?b#kqfe>!kwws9,,Jm#sbqwj`vobq/#wkfNvowjsof#ellwmlwfplq#lwkfq#pvapwbm`fwklvpbmgp#le#zfbqpwqbmpobwjlm#le#wkf?,gju=\x0E\t?,gju=\x0E\t\x0E\t?b#kqfe>!jmgf{-skstbp#fpwbaojpkfg#jmnjm-ip!=?,p`qjsw=\tsbqwj`jsbwf#jm#wkfb#pwqlmd#jmeovfm`fpwzof>!nbqdjm.wls9qfsqfpfmwfg#az#wkfdqbgvbwfg#eqln#wkfWqbgjwjlmbooz/#wkfFofnfmw+!p`qjsw!*8Kltfufq/#pjm`f#wkf,gju=\t?,gju=\t?gju#ofew8#nbqdjm.ofew9sqlwf`wjlm#bdbjmpw38#ufqwj`bo.bojdm9Vmelqwvmbwfoz/#wkfwzsf>!jnbdf,{.j`lm,gju=\t?gju#`obpp>!#`obpp>!`ofbqej{!=?gju#`obpp>!ellwfq\n\n?,gju=\t\n\n?,gju=\twkf#nlwjlm#sj`wvqf<}=f<W<_<\\=l=m<V<T<]=f<W<_<\\=l=m<V<T<H<Y<X<Y=l<\\=j<T<T<Q<Y=m<V<R<W=`<V<R=m<R<R<]=e<Y<Q<T<Y=m<R<R<]=e<Y<Q<T=c<S=l<R<_=l<\\<P<P=g<r=n<S=l<\\<^<T=n=`<]<Y=m<S<W<\\=n<Q<R<P<\\=n<Y=l<T<\\<W=g<S<R<[<^<R<W=c<Y=n<S<R=m<W<Y<X<Q<T<Y=l<\\<[<W<T=k<Q=g=i<S=l<R<X=o<V=j<T<T<S=l<R<_=l<\\<P<P<\\<S<R<W<Q<R=m=n=`=b<Q<\\=i<R<X<T=n=m=c<T<[<]=l<\\<Q<Q<R<Y<Q<\\=m<Y<W<Y<Q<T=c<T<[<P<Y<Q<Y<Q<T=c<V<\\=n<Y<_<R=l<T<T<|<W<Y<V=m<\\<Q<X=l\fHJ\fIa\fHY\fHR\fH\\\fHR\fHB\fId\fHD\fIm\fHi\fH^\fHF\fIa\fH\\\fHJ\fHR\fHD\fHA\fHR\fH\\\fHH\fIl\fHC\fHi\fHD\fIm\fHJ\fIk\fHZ\fHU\fHS\fHD\fIa\fHJ\fIl\fHk\fHn\fHM\fHS\fHC\fHR\fHJ\fHS\fH^\fIa\fH^\fIl\fHi\fHK\fHS\fHy\fHR\fH\\\fHY\fIl\fHM\fHS\fHC\fIg\fHv\fHS\fHs\fIa\fHL\fIk\fHT\fHB\fHR\fHv\fHR\fH\\\fHp\fHn\fHy\fIa\fHZ\fHD\fHJ\fIm\fHD\fHS\fHC\fHR\fHF\fIa\fH\\\fHC\fIg\fH{\fHi\fHD\fIm\fHT\fHR\fH\\\fH}\fHD\fH^\fHR\fHk\fHD\fHF\fHR\fH\\\fIa\fHs\fIl\fHZ\fH\\\fIa\fHH\fIg\fHn\fH^\fIg\fHy\fHT\fHA\fHR\fHG\fHP\fIa\fH^\fId\fHZ\fHZ\fH\\\fIa\fHH\fIk\fHn\fHF\fIa\fH\\\fHJ\fIk\fHZ\fHF\fIa\fH^\fIk\fHC\fH\\\fHy\fIk\fHn\fHJ\fIa\fH\\\fHT\fIa\fHI\fHS\fHH\fHS\fHe\fHH\fIa\fHF\fHR\fHJ\fHe\fHD\fIa\fHU\fIk\fHn\fHv\fHS\fHs\fIa\fHL\fHR\fHC\fHR\fHH\fIa\fH\\\fHR\fHp\fIa\fHC\fHR\fHJ\fHR\fHF\fIm\fH\\\fHR\fHD\fIk\fHp\fIg\fHM\fHP\fIk\fHn\fHi\fHD\fIm\fHY\fHR\fHJ\fHZ\fIa\fH\\\fIk\fHO\fIl\fHZ\fHS\fHy\fIa\fH[\fHR\fHT\fH\\\fHy\fHR\fH\\\fIl\fHT\fHn\fH{\fIa\fH\\\fHU\fHF\fH\\\fHS\fHO\fHR\fHB\fH@\fIa\fH\\\fHR\fHn\fHM\fH@\fHv\fIa\fHv\fIg\fHn\fHe\fHF\fH^\fH@\fIa\fHK\fHB\fHn\fHH\fIa\fH\\\fIl\fHT\fHn\fHF\fH\\\fIa\fHy\fHe\fHB\fIa\fHB\fIl\fHJ\fHB\fHR\fHK\fIa\fHC\fHB\fHT\fHU\fHR\fHC\fHH\fHR\fHZ\fH@\fIa\fHJ\fIg\fHn\fHB\fIl\fHM\fHS\fHC\fHR\fHj\fHd\fHF\fIl\fHc\fH^\fHB\fIg\fH@\fHR\fHk\fH^\fHT\fHn\fHz\fIa\fHC\fHR\fHj\fHF\fH\\\fIk\fHZ\fHD\fHi\fHD\fIm\fH@\fHn\fHK\fH@\fHR\fHp\fHP\fHR\fH\\\fHD\fHY\fIl\fHD\fHH\fHB\fHF\fIa\fH\\\fHB\fIm\fHz\fHF\fIa\fH\\\fHZ\fIa\fHD\fHF\fH\\\fHS\fHY\fHR\fH\\\fHD\fIm\fHy\fHT\fHR\fHD\fHT\fHB\fH\\\fIa\fHI\fHD\fHj\fHC\fIg\fHp\fHS\fHH\fHT\fIg\fHB\fHY\fHR\fH\\4K5h5i4X4K4]5o4K4F4K5h5i5j4F4C5f4K4F4K5h5o5i4D5f5d4F4]4K5h5i4X4K5k4C4K4F4U4C4C4K5h4^5d4K4]4U4C4C4K5h4]4C5d4C4K5h4I4_5h4K5i5f4E4K5h5m5d4F5d4X5d4D4K5h5i4_4K4D5n4K4F4K5h5i4U5h5d5i4K4F4K5h5i4_5h4_5h4K4F4K5h4@4]4K5m5f5o4_4K5h4K4_5h4K5i5f4E4K5h4K4F4Y4K5h4K4Fhfztlqgp!#`lmwfmw>!t0-lqd,2:::,{kwno!=?b#wbqdfw>!\\aobmh!#wf{w,kwno8#`kbqpfw>!#wbqdfw>!\\aobmh!=?wbaof#`foosbggjmd>!bvwl`lnsofwf>!lee!#wf{w.bojdm9#`fmwfq8wl#obpw#ufqpjlm#az#ab`hdqlvmg.`lolq9# !#kqfe>!kwws9,,ttt-,gju=?,gju=?gju#jg>?b#kqfe>! !#`obpp>!!=?jnd#pq`>!kwws9,,`qjsw!#pq`>!kwws9,,\t?p`qjsw#obmdvbdf>!,,FM!#!kwws9,,ttt-tfm`lgfVQJ@lnslmfmw+!#kqfe>!ibubp`qjsw9?gju#`obpp>!`lmwfmwgl`vnfmw-tqjwf+$?p`slpjwjlm9#baplovwf8p`qjsw#pq`>!kwws9,,#pwzof>!nbqdjm.wls9-njm-ip!=?,p`qjsw=\t?,gju=\t?gju#`obpp>!t0-lqd,2:::,{kwno!#\t\x0E\t?,algz=\x0E\t?,kwno=gjpwjm`wjlm#afwtffm,!#wbqdfw>!\\aobmh!=?ojmh#kqfe>!kwws9,,fm`lgjmd>!vwe.;!<=\tt-bggFufmwOjpwfmfq<b`wjlm>!kwws9,,ttt-j`lm!#kqfe>!kwws9,,#pwzof>!ab`hdqlvmg9wzsf>!wf{w,`pp!#,=\tnfwb#sqlsfqwz>!ld9w?jmsvw#wzsf>!wf{w!##pwzof>!wf{w.bojdm9wkf#gfufolsnfmw#le#wzofpkffw!#wzsf>!wfkwno8#`kbqpfw>vwe.;jp#`lmpjgfqfg#wl#afwbaof#tjgwk>!233&!#Jm#bggjwjlm#wl#wkf#`lmwqjavwfg#wl#wkf#gjeefqfm`fp#afwtffmgfufolsnfmw#le#wkf#Jw#jp#jnslqwbmw#wl#?,p`qjsw=\t\t?p`qjsw##pwzof>!elmw.pjyf92=?,psbm=?psbm#jg>daOjaqbqz#le#@lmdqfpp?jnd#pq`>!kwws9,,jnFmdojpk#wqbmpobwjlmB`bgfnz#le#P`jfm`fpgju#pwzof>!gjpsobz9`lmpwqv`wjlm#le#wkf-dfwFofnfmwAzJg+jg*jm#`lmivm`wjlm#tjwkFofnfmw+$p`qjsw$*8#?nfwb#sqlsfqwz>!ld9<}=f<W<_<\\=l=m<V<T\t#wzsf>!wf{w!#mbnf>!=Sqjub`z#Sloj`z?,b=bgnjmjpwfqfg#az#wkffmbaofPjmdofQfrvfpwpwzof>%rvlw8nbqdjm9?,gju=?,gju=?,gju=?=?jnd#pq`>!kwws9,,j#pwzof>%rvlw8eolbw9qfefqqfg#wl#bp#wkf#wlwbo#slsvobwjlm#lejm#Tbpkjmdwlm/#G-@-#pwzof>!ab`hdqlvmg.bnlmd#lwkfq#wkjmdp/lqdbmjybwjlm#le#wkfsbqwj`jsbwfg#jm#wkfwkf#jmwqlgv`wjlm#lejgfmwjejfg#tjwk#wkfej`wjlmbo#`kbqb`wfq#L{elqg#Vmjufqpjwz#njpvmgfqpwbmgjmd#leWkfqf#bqf/#kltfufq/pwzofpkffw!#kqfe>!,@lovnajb#Vmjufqpjwzf{sbmgfg#wl#jm`ovgfvpvbooz#qfefqqfg#wljmgj`bwjmd#wkbw#wkfkbuf#pvddfpwfg#wkbwbeejojbwfg#tjwk#wkf`lqqfobwjlm#afwtffmmvnafq#le#gjeefqfmw=?,wg=?,wq=?,wbaof=Qfsvaoj`#le#Jqfobmg\t?,p`qjsw=\t?p`qjsw#vmgfq#wkf#jmeovfm`f`lmwqjavwjlm#wl#wkfLeej`jbo#tfapjwf#lekfbgrvbqwfqp#le#wkf`fmwfqfg#bqlvmg#wkfjnsoj`bwjlmp#le#wkfkbuf#affm#gfufolsfgEfgfqbo#Qfsvaoj`#leaf`bnf#jm`qfbpjmdoz`lmwjmvbwjlm#le#wkfMlwf/#kltfufq/#wkbwpjnjobq#wl#wkbw#le#`bsbajojwjfp#le#wkfb``lqgbm`f#tjwk#wkfsbqwj`jsbmwp#jm#wkfevqwkfq#gfufolsnfmwvmgfq#wkf#gjqf`wjlmjp#lewfm#`lmpjgfqfgkjp#zlvmdfq#aqlwkfq?,wg=?,wq=?,wbaof=?b#kwws.frvju>![.VB.skzpj`bo#sqlsfqwjfple#Aqjwjpk#@lovnajbkbp#affm#`qjwj`jyfg+tjwk#wkf#f{`fswjlmrvfpwjlmp#balvw#wkfsbppjmd#wkqlvdk#wkf3!#`foosbggjmd>!3!#wklvpbmgp#le#sflsofqfgjqf`wp#kfqf-#Elqkbuf#`kjogqfm#vmgfq&0F&0@,p`qjsw&0F!**8?b#kqfe>!kwws9,,ttt-?oj=?b#kqfe>!kwws9,,pjwf\\mbnf!#`lmwfmw>!wf{w.gf`lqbwjlm9mlmfpwzof>!gjpsobz9#mlmf?nfwb#kwws.frvju>![.mft#Gbwf+*-dfwWjnf+*#wzsf>!jnbdf,{.j`lm!?,psbm=?psbm#`obpp>!obmdvbdf>!ibubp`qjswtjmglt-ol`bwjlm-kqfe?b#kqfe>!ibubp`qjsw9..=\x0E\t?p`qjsw#wzsf>!w?b#kqfe>$kwws9,,ttt-klqw`vw#j`lm!#kqfe>!?,gju=\x0E\t?gju#`obpp>!?p`qjsw#pq`>!kwws9,,!#qfo>!pwzofpkffw!#w?,gju=\t?p`qjsw#wzsf>,b=#?b#kqfe>!kwws9,,#booltWqbmpsbqfm`z>![.VB.@lnsbwjaof!#`lmqfobwjlmpkjs#afwtffm\t?,p`qjsw=\x0E\t?p`qjsw#?,b=?,oj=?,vo=?,gju=bppl`jbwfg#tjwk#wkf#sqldqbnnjmd#obmdvbdf?,b=?b#kqfe>!kwws9,,?,b=?,oj=?oj#`obpp>!elqn#b`wjlm>!kwws9,,?gju#pwzof>!gjpsobz9wzsf>!wf{w!#mbnf>!r!?wbaof#tjgwk>!233&!#ab`hdqlvmg.slpjwjlm9!#alqgfq>!3!#tjgwk>!qfo>!pklqw`vw#j`lm!#k5=?vo=?oj=?b#kqfe>!##?nfwb#kwws.frvju>!`pp!#nfgjb>!p`qffm!#qfpslmpjaof#elq#wkf#!#wzsf>!bssoj`bwjlm,!#pwzof>!ab`hdqlvmg.kwno8#`kbqpfw>vwe.;!#booltwqbmpsbqfm`z>!pwzofpkffw!#wzsf>!wf\x0E\t?nfwb#kwws.frvju>!=?,psbm=?psbm#`obpp>!3!#`foopsb`jmd>!3!=8\t?,p`qjsw=\t?p`qjsw#plnfwjnfp#`boofg#wkfglfp#mlw#mf`fppbqjozElq#nlqf#jmelqnbwjlmbw#wkf#afdjmmjmd#le#?\"GL@WZSF#kwno=?kwnosbqwj`vobqoz#jm#wkf#wzsf>!kjggfm!#mbnf>!ibubp`qjsw9uljg+3*8!feef`wjufmfpp#le#wkf#bvwl`lnsofwf>!lee!#dfmfqbooz#`lmpjgfqfg=?jmsvw#wzsf>!wf{w!#!=?,p`qjsw=\x0E\t?p`qjswwkqlvdklvw#wkf#tlqog`lnnlm#njp`lm`fswjlmbppl`jbwjlm#tjwk#wkf?,gju=\t?,gju=\t?gju#`gvqjmd#kjp#ojefwjnf/`lqqfpslmgjmd#wl#wkfwzsf>!jnbdf,{.j`lm!#bm#jm`qfbpjmd#mvnafqgjsolnbwj`#qfobwjlmpbqf#lewfm#`lmpjgfqfgnfwb#`kbqpfw>!vwe.;!#?jmsvw#wzsf>!wf{w!#f{bnsofp#jm`ovgf#wkf!=?jnd#pq`>!kwws9,,jsbqwj`jsbwjlm#jm#wkfwkf#fpwbaojpknfmw#le\t?,gju=\t?gju#`obpp>!%bns8maps8%bns8maps8wl#gfwfqnjmf#tkfwkfqrvjwf#gjeefqfmw#eqlnnbqhfg#wkf#afdjmmjmdgjpwbm`f#afwtffm#wkf`lmwqjavwjlmp#wl#wkf`lmeoj`w#afwtffm#wkftjgfoz#`lmpjgfqfg#wltbp#lmf#le#wkf#ejqpwtjwk#ubqzjmd#gfdqffpkbuf#psf`vobwfg#wkbw+gl`vnfmw-dfwFofnfmwsbqwj`jsbwjmd#jm#wkflqjdjmbooz#gfufolsfgfwb#`kbqpfw>!vwe.;!=#wzsf>!wf{w,`pp!#,=\tjmwfq`kbmdfbaoz#tjwknlqf#`olpfoz#qfobwfgpl`jbo#bmg#slojwj`bowkbw#tlvog#lwkfqtjpfsfqsfmgj`vobq#wl#wkfpwzof#wzsf>!wf{w,`ppwzsf>!pvanjw!#mbnf>!ebnjojfp#qfpjgjmd#jmgfufolsjmd#`lvmwqjfp`lnsvwfq#sqldqbnnjmdf`lmlnj`#gfufolsnfmwgfwfqnjmbwjlm#le#wkfelq#nlqf#jmelqnbwjlmlm#pfufqbo#l``bpjlmpslqwvdv/Fp#+Fvqlsfv*<O<V=l<\\={<Q=m=`<V<\\=o<V=l<\\={<Q=m=`<V<\\<L<R=m=m<T<U=m<V<R<U<P<\\=n<Y=l<T<\\<W<R<^<T<Q=h<R=l<P<\\=j<T<T=o<S=l<\\<^<W<Y<Q<T=c<Q<Y<R<]=i<R<X<T<P<R<T<Q=h<R=l<P<\\=j<T=c<t<Q=h<R=l<P<\\=j<T=c<L<Y=m<S=o<]<W<T<V<T<V<R<W<T=k<Y=m=n<^<R<T<Q=h<R=l<P<\\=j<T=b=n<Y=l=l<T=n<R=l<T<T<X<R=m=n<\\=n<R=k<Q<R4K5h5i4F5d4K4@4C5d5j4K5h4K4X4F4]4K5o4K4F4K5h4K5n4F4]4K4A4K4Fkwno8#`kbqpfw>VWE.;!#pfwWjnflvw+evm`wjlm+*gjpsobz9jmojmf.aol`h8?jmsvw#wzsf>!pvanjw!#wzsf#>#$wf{w,ibubp`qj?jnd#pq`>!kwws9,,ttt-!#!kwws9,,ttt-t0-lqd,pklqw`vw#j`lm!#kqfe>!!#bvwl`lnsofwf>!lee!#?,b=?,gju=?gju#`obpp>?,b=?,oj=\t?oj#`obpp>!`pp!#wzsf>!wf{w,`pp!#?elqn#b`wjlm>!kwws9,,{w,`pp!#kqfe>!kwws9,,ojmh#qfo>!bowfqmbwf!#\x0E\t?p`qjsw#wzsf>!wf{w,#lm`oj`h>!ibubp`qjsw9+mft#Gbwf*-dfwWjnf+*~kfjdkw>!2!#tjgwk>!2!#Sflsof$p#Qfsvaoj`#le##?b#kqfe>!kwws9,,ttt-wf{w.gf`lqbwjlm9vmgfqwkf#afdjmmjmd#le#wkf#?,gju=\t?,gju=\t?,gju=\tfpwbaojpknfmw#le#wkf#?,gju=?,gju=?,gju=?,g ujftslqwxnjm.kfjdkw9\t?p`qjsw#pq`>!kwws9,,lswjlm=?lswjlm#ubovf>lewfm#qfefqqfg#wl#bp#,lswjlm=\t?lswjlm#ubov?\"GL@WZSF#kwno=\t?\"..XJmwfqmbwjlmbo#Bjqslqw=\t?b#kqfe>!kwws9,,ttt?,b=?b#kqfe>!kwws9,,t\fTL\fT^\fTE\fT^\fUh\fT{\fTN\roI\ro|\roL\ro{\roO\rov\rot\nAO\x05Gx\bTA\nzk#+\x0BUm\x05Gx*\fHD\fHS\fH\\\fIa\fHJ\fIk\fHZ\fHM\fHR\fHe\fHD\fH^\fIg\fHM\fHy\fIa\fH[\fIk\fHH\fIa\fH\\\fHp\fHR\fHD\fHy\fHR\fH\\\fIl\fHT\fHn\fH@\fHn\fHK\fHS\fHH\fHT\fIa\fHI\fHR\fHF\fHD\fHR\fHT\fIa\fHY\fIl\fHy\fHR\fH\\\fHT\fHn\fHT\fIa\fHy\fH\\\fHO\fHT\fHR\fHB\fH{\fIa\fH\\\fIl\fHv\fHS\fHs\fIa\fHL\fIg\fHn\fHY\fHS\fHp\fIa\fHr\fHR\fHD\fHi\fHB\fIk\fH\\\fHS\fHy\fHR\fHY\fHS\fHA\fHS\fHD\fIa\fHD\fH{\fHR\fHM\fHS\fHC\fHR\fHm\fHy\fIa\fHC\fIg\fHn\fHy\fHS\fHT\fIm\fH\\\fHy\fIa\fH[\fHR\fHF\fHU\fIm\fHm\fHv\fHH\fIl\fHF\fIa\fH\\\fH@\fHn\fHK\fHD\fHs\fHS\fHF\fIa\fHF\fHO\fIl\fHy\fIa\fH\\\fHS\fHy\fIk\fHs\fHF\fIa\fH\\\fHR\fH\\\fHn\fHA\fHF\fIa\fH\\\fHR\fHF\fIa\fHH\fHB\fHR\fH^\fHS\fHy\fIg\fHn\fH\\\fHG\fHP\fIa\fHH\fHR\fH\\\fHD\fHS\fH\\\fIa\fHB\fHR\fHO\fH^\fHS\fHB\fHS\fHs\fIk\fHMgfp`qjswjlm!#`lmwfmw>!gl`vnfmw-ol`bwjlm-sqlw-dfwFofnfmwpAzWbdMbnf+?\"GL@WZSF#kwno=\t?kwno#?nfwb#`kbqpfw>!vwe.;!=9vqo!#`lmwfmw>!kwws9,,-`pp!#qfo>!pwzofpkffw!pwzof#wzsf>!wf{w,`pp!=wzsf>!wf{w,`pp!#kqfe>!t0-lqd,2:::,{kwno!#{nowzsf>!wf{w,ibubp`qjsw!#nfwklg>!dfw!#b`wjlm>!ojmh#qfo>!pwzofpkffw!##>#gl`vnfmw-dfwFofnfmwwzsf>!jnbdf,{.j`lm!#,=`foosbggjmd>!3!#`foops-`pp!#wzsf>!wf{w,`pp!#?,b=?,oj=?oj=?b#kqfe>!!#tjgwk>!2!#kfjdkw>!2!!=?b#kqfe>!kwws9,,ttt-pwzof>!gjpsobz9mlmf8!=bowfqmbwf!#wzsf>!bssoj.,,T0@,,GWG#[KWNO#2-3#foopsb`jmd>!3!#`foosbg#wzsf>!kjggfm!#ubovf>!,b=%maps8?psbm#qlof>!p\t?jmsvw#wzsf>!kjggfm!#obmdvbdf>!IbubP`qjsw!##gl`vnfmw-dfwFofnfmwpAd>!3!#`foopsb`jmd>!3!#zsf>!wf{w,`pp!#nfgjb>!wzsf>$wf{w,ibubp`qjsw$tjwk#wkf#f{`fswjlm#le#zsf>!wf{w,`pp!#qfo>!pw#kfjdkw>!2!#tjgwk>!2!#>$(fm`lgfVQJ@lnslmfmw+?ojmh#qfo>!bowfqmbwf!#\talgz/#wq/#jmsvw/#wf{wnfwb#mbnf>!qlalwp!#`lmnfwklg>!slpw!#b`wjlm>!=\t?b#kqfe>!kwws9,,ttt-`pp!#qfo>!pwzofpkffw!#?,gju=?,gju=?gju#`obppobmdvbdf>!ibubp`qjsw!=bqjb.kjggfm>!wqvf!=.[?qjsw!#wzsf>!wf{w,ibubpo>38~*+*8\t+evm`wjlm+*xab`hdqlvmg.jnbdf9#vqo+,b=?,oj=?oj=?b#kqfe>!k\n\n?oj=?b#kqfe>!kwws9,,bwlq!#bqjb.kjggfm>!wqv=#?b#kqfe>!kwws9,,ttt-obmdvbdf>!ibubp`qjsw!#,lswjlm=\t?lswjlm#ubovf,gju=?,gju=?gju#`obpp>qbwlq!#bqjb.kjggfm>!wqf>+mft#Gbwf*-dfwWjnf+*slqwvdv/Fp#+gl#Aqbpjo*<R=l<_<\\<Q<T<[<\\=j<T<T<^<R<[<P<R<Z<Q<R=m=n=`<R<]=l<\\<[<R<^<\\<Q<T=c=l<Y<_<T=m=n=l<\\=j<T<T<^<R<[<P<R<Z<Q<R=m=n<T<R<]=c<[<\\=n<Y<W=`<Q<\\?\"GL@WZSF#kwno#SVAOJ@#!mw.Wzsf!#`lmwfmw>!wf{w,?nfwb#kwws.frvju>!@lmwfqbmpjwjlmbo,,FM!#!kwws9?kwno#{nomp>!kwws9,,ttt.,,T0@,,GWG#[KWNO#2-3#WGWG,{kwno2.wqbmpjwjlmbo,,ttt-t0-lqd,WQ,{kwno2,sf#>#$wf{w,ibubp`qjsw$8?nfwb#mbnf>!gfp`qjswjlmsbqfmwMlgf-jmpfqwAfelqf?jmsvw#wzsf>!kjggfm!#mbip!#wzsf>!wf{w,ibubp`qj+gl`vnfmw*-qfbgz+evm`wjp`qjsw#wzsf>!wf{w,ibubpjnbdf!#`lmwfmw>!kwws9,,VB.@lnsbwjaof!#`lmwfmw>wno8#`kbqpfw>vwe.;!#,=\tojmh#qfo>!pklqw`vw#j`lm?ojmh#qfo>!pwzofpkffw!#?,p`qjsw=\t?p`qjsw#wzsf>>#gl`vnfmw-`qfbwfFofnfm?b#wbqdfw>!\\aobmh!#kqfe>#gl`vnfmw-dfwFofnfmwpAjmsvw#wzsf>!wf{w!#mbnf>b-wzsf#>#$wf{w,ibubp`qjmsvw#wzsf>!kjggfm!#mbnfkwno8#`kbqpfw>vwe.;!#,=gwg!=\t?kwno#{nomp>!kwws.,,T0@,,GWG#KWNO#7-32#WfmwpAzWbdMbnf+$p`qjsw$*jmsvw#wzsf>!kjggfm!#mbn?p`qjsw#wzsf>!wf{w,ibubp!#pwzof>!gjpsobz9mlmf8!=gl`vnfmw-dfwFofnfmwAzJg+>gl`vnfmw-`qfbwfFofnfmw+$#wzsf>$wf{w,ibubp`qjsw$jmsvw#wzsf>!wf{w!#mbnf>!g-dfwFofnfmwpAzWbdMbnf+pmj`bo!#kqfe>!kwws9,,ttt-@,,GWG#KWNO#7-32#Wqbmpjw?pwzof#wzsf>!wf{w,`pp!=\t\t?pwzof#wzsf>!wf{w,`pp!=jlmbo-gwg!=\t?kwno#{nomp>kwws.frvju>!@lmwfmw.Wzsfgjmd>!3!#`foopsb`jmd>!3!kwno8#`kbqpfw>vwe.;!#,=\t#pwzof>!gjpsobz9mlmf8!=??oj=?b#kqfe>!kwws9,,ttt-#wzsf>$wf{w,ibubp`qjsw$=<X<Y=c=n<Y<W=`<Q<R=m=n<T=m<R<R=n<^<Y=n=m=n<^<T<T<S=l<R<T<[<^<R<X=m=n<^<\\<]<Y<[<R<S<\\=m<Q<R=m=n<T\fHF\fIm\fHT\fIa\fHH\fHS\fHy\fHR\fHy\fHR\fHn\fH{\fIa\fH\\\fIk\fHT\fHe\fHD\fIa\fHU\fIg\fHn\fHD\fIk\fHY\fHS\fHK\fHR\fHD\fHT\fHA\fHR\fHG\fHS\fHy\fIa\fHT\fHS\fHn\fH{\fHT\fIm\fH\\\fHy\fIa\fH[\fHS\fHH\fHy\fIe\fHF\fIl\fH\\\fHR\fHk\fHs\fHY\fHS\fHp\fIa\fHr\fHR\fHF\fHD\fHy\fHR\fH\\\fIa\fH\\\fHY\fHR\fHd\fHT\fHy\fIa\fH\\\fHS\fHC\fHH\fHR", "\u06F7%\u018C'T%\x85'W%\xD7%O%g%\xA6&\u0193%\u01E5&>&*&'&^&\x88\u0178\u0C3E&\u01AD&\u0192&)&^&%&'&\x82&P&1&\xB1&3&]&m&u&E&t&C&\xCF&V&V&/&>&6&\u0F76\u177Co&p&@&E&M&P&x&@&F&e&\xCC&7&:&(&D&0&C&)&.&F&-&1&(&L&F&1\u025E*\u03EA\u21F3&\u1372&K&;&)&E&H&P&0&?&9&V&\x81&-&v&a&,&E&)&?&=&'&'&B&\u0D2E&\u0503&\u0316*&*8&%&%&&&%,)&\x9A&>&\x86&7&]&F&2&>&J&6&n&2&%&?&\x8E&2&6&J&g&-&0&,&*&J&*&O&)&6&(&<&B&N&.&P&@&2&.&W&M&%\u053C\x84(,(<&,&\u03DA&\u18C7&-&,(%&(&%&(\u013B0&X&D&\x81&j&'&J&(&.&B&3&Z&R&h&3&E&E&<\xC6-\u0360\u1EF3&%8?&@&,&Z&@&0&J&,&^&x&_&6&C&6&C\u072C\u2A25&f&-&-&-&-&,&J&2&8&z&8&C&Y&8&-&d&\u1E78\xCC-&7&1&F&7&t&W&7&I&.&.&^&=\u0F9C\u19D3&8(>&/&/&\u077B')'\u1065')'%@/&0&%\u043E\u09C0*&*@&C\u053D\u05D4\u0274\u05EB4\u0DD7\u071A\u04D16\u0D84&/\u0178\u0303Z&*%\u0246\u03FF&\u0134&1\xA8\u04B4\u0174", dictionarySizeBits, "AAAAKKLLKKKKKJJIHHIHHGGFF");
9390
+ setData(dictionaryData, dictionarySizeBits);
9391
+ function InputStream(data) {
9392
+ this.data = new Int8Array(0);
9393
+ this.offset = 0;
9394
+ this.data = data;
9395
+ }
9396
+ function readInput(s, dst, offset, length) {
9397
+ if (s.input === null) {
9398
+ return -1;
9399
+ }
9400
+ const src = s.input;
9401
+ const end = Math.min(src.offset + length, src.data.length);
9402
+ const bytesRead = end - src.offset;
9403
+ dst.set(src.data.subarray(src.offset, end), offset);
9404
+ src.offset += bytesRead;
9405
+ return bytesRead;
9406
+ }
9407
+ function closeInput(s) {
9408
+ s.input = new InputStream(new Int8Array(0));
9409
+ }
9410
+ function toUsAsciiBytes(src) {
9411
+ const n = src.length;
9412
+ const result = new Int8Array(n);
9413
+ for (let i = 0; i < n; ++i) {
9414
+ result[i] = src.charCodeAt(i);
9415
+ }
9416
+ return result;
9417
+ }
9418
+ function toUtf8Runes(src) {
9419
+ const n = src.length;
9420
+ const result = new Int32Array(n);
9421
+ for (let i = 0; i < n; ++i) {
9422
+ result[i] = src.charCodeAt(i);
9423
+ }
9424
+ return result;
9425
+ }
9426
+ function makeError(s, code) {
9427
+ if (code >= 0) {
9428
+ return code;
9429
+ }
9430
+ if (s.runningState >= 0) {
9431
+ s.runningState = code;
9432
+ }
9433
+ throw new Error("Brotli error code: " + code);
9434
+ }
9435
+ let ByteBuffer;
9436
+ function decode(bytes, options) {
9437
+ let s = new State();
9438
+ s.input = new InputStream(bytes);
9439
+ initState(s);
9440
+ if (options) {
9441
+ let customDictionary = options["customDictionary"];
9442
+ if (customDictionary) attachDictionaryChunk(s, customDictionary);
9443
+ }
9444
+ let totalOutput = 0;
9445
+ let chunks = [];
9446
+ while (true) {
9447
+ let chunk = new Int8Array(16384);
9448
+ chunks.push(chunk);
9449
+ s.output = chunk;
9450
+ s.outputOffset = 0;
9451
+ s.outputLength = 16384;
9452
+ s.outputUsed = 0;
9453
+ decompress(s);
9454
+ totalOutput += s.outputUsed;
9455
+ if (s.outputUsed < 16384) break;
9456
+ }
9457
+ close(s);
9458
+ closeInput(s);
9459
+ let result = new Int8Array(totalOutput);
9460
+ let offset = 0;
9461
+ for (let i = 0; i < chunks.length; ++i) {
9462
+ let chunk = chunks[i];
9463
+ let end = Math.min(totalOutput, offset + 16384);
9464
+ let len = end - offset;
9465
+ if (len < 16384) {
9466
+ result.set(chunk.subarray(0, len), offset);
9467
+ } else {
9468
+ result.set(chunk, offset);
9469
+ }
9470
+ offset += len;
9471
+ }
9472
+ return result;
9473
+ }
9474
+ return decode;
9475
+ };
9476
+ let BrotliDecode = makeBrotliDecode();
9477
+ ;// ./src/core/brotli_stream.js
9478
+
9479
+
9480
+
9481
+ class BrotliStream extends DecodeStream {
9482
+ #isAsync = true;
9483
+ constructor(stream, maybeLength) {
9484
+ super(maybeLength);
9485
+ this.stream = stream;
9486
+ this.dict = stream.dict;
9487
+ }
9488
+ readBlock() {
9489
+ const bytes = this.stream.getBytes();
9490
+ const decodedData = BrotliDecode(new Int8Array(bytes.buffer, bytes.byteOffset, bytes.length));
9491
+ this.buffer = new Uint8Array(decodedData.buffer, decodedData.byteOffset, decodedData.length);
9492
+ this.bufferLength = this.buffer.length;
9493
+ this.eof = true;
9494
+ }
9495
+ async getImageData(length, _decoderOptions) {
9496
+ const data = await this.asyncGetBytes();
9497
+ if (!data) {
9498
+ return this.getBytes(length);
9499
+ }
9500
+ if (data.length <= length) {
9501
+ return data;
9502
+ }
9503
+ return data.subarray(0, length);
9504
+ }
9505
+ async asyncGetBytes() {
9506
+ const {
9507
+ decompressed,
9508
+ compressed
9509
+ } = await this.asyncGetBytesFromDecompressionStream("brotli");
9510
+ if (decompressed) {
9511
+ return decompressed;
9512
+ }
9513
+ this.#isAsync = false;
9514
+ this.stream = new Stream(compressed, 0, compressed.length, this.stream.dict);
9515
+ this.reset();
9516
+ return null;
9517
+ }
9518
+ get isAsync() {
9519
+ return this.#isAsync;
9520
+ }
9521
+ }
9522
+
7492
9523
  ;// ./src/core/ccitt.js
7493
9524
 
7494
9525
  const ccittEOL = -2;
@@ -7509,19 +9540,29 @@ const blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1
7509
9540
  const blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];
7510
9541
  const blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];
7511
9542
  class CCITTFaxDecoder {
7512
- constructor(source, options = {}) {
9543
+ constructor(source, options = {
9544
+ K: 0,
9545
+ EndOfLine: false,
9546
+ EncodedByteAlign: false,
9547
+ Columns: 1728,
9548
+ Rows: 0,
9549
+ EndOfBlock: true,
9550
+ BlackIs1: false
9551
+ }) {
7513
9552
  if (typeof source?.next !== "function") {
7514
9553
  throw new Error('CCITTFaxDecoder - invalid "source" parameter.');
7515
9554
  }
7516
9555
  this.source = source;
7517
9556
  this.eof = false;
7518
- this.encoding = options.K || 0;
7519
- this.eoline = options.EndOfLine || false;
7520
- this.byteAlign = options.EncodedByteAlign || false;
7521
- this.columns = options.Columns || 1728;
7522
- this.rows = options.Rows || 0;
7523
- this.eoblock = options.EndOfBlock ?? true;
7524
- this.black = options.BlackIs1 || false;
9557
+ ({
9558
+ K: this.encoding,
9559
+ EndOfLine: this.eoline,
9560
+ EncodedByteAlign: this.byteAlign,
9561
+ Columns: this.columns,
9562
+ Rows: this.rows,
9563
+ EndOfBlock: this.eoblock,
9564
+ BlackIs1: this.black
9565
+ } = options);
7525
9566
  this.codingLine = new Uint32Array(this.columns + 1);
7526
9567
  this.refLine = new Uint32Array(this.columns + 2);
7527
9568
  this.codingLine[0] = this.columns;
@@ -8003,42 +10044,91 @@ class CCITTFaxDecoder {
8003
10044
 
8004
10045
 
8005
10046
 
10047
+
10048
+
8006
10049
  class CCITTFaxStream extends DecodeStream {
8007
10050
  constructor(str, maybeLength, params) {
8008
10051
  super(maybeLength);
8009
10052
  this.stream = str;
10053
+ this.maybeLength = maybeLength;
8010
10054
  this.dict = str.dict;
8011
10055
  if (!(params instanceof Dict)) {
8012
10056
  params = Dict.empty;
8013
10057
  }
10058
+ this.params = {
10059
+ K: params.get("K") || 0,
10060
+ EndOfLine: !!params.get("EndOfLine"),
10061
+ EncodedByteAlign: !!params.get("EncodedByteAlign"),
10062
+ Columns: params.get("Columns") || 1728,
10063
+ Rows: params.get("Rows") || 0,
10064
+ EndOfBlock: !!(params.get("EndOfBlock") ?? true),
10065
+ BlackIs1: !!params.get("BlackIs1")
10066
+ };
10067
+ }
10068
+ get bytes() {
10069
+ return shadow(this, "bytes", this.stream.getBytes(this.maybeLength));
10070
+ }
10071
+ readBlock() {
10072
+ this.decodeImageFallback();
10073
+ }
10074
+ get isImageStream() {
10075
+ return true;
10076
+ }
10077
+ get isAsyncDecoder() {
10078
+ return true;
10079
+ }
10080
+ async decodeImage(bytes, length, _decoderOptions) {
10081
+ if (this.eof) {
10082
+ return this.buffer;
10083
+ }
10084
+ if (!bytes) {
10085
+ bytes = this.stream.isAsync ? (await this.stream.asyncGetBytes()) || this.bytes : this.bytes;
10086
+ }
10087
+ try {
10088
+ this.buffer = await JBig2CCITTFaxWasmImage.decode(bytes, this.dict.get("W", "Width"), this.dict.get("H", "Height"), null, this.params);
10089
+ } catch {
10090
+ warn("CCITTFaxStream: Falling back to JS CCITTFax decoder.");
10091
+ return this.decodeImageFallback(bytes, length);
10092
+ }
10093
+ this.bufferLength = this.buffer.length;
10094
+ this.eof = true;
10095
+ return this.buffer;
10096
+ }
10097
+ decodeImageFallback(bytes, length) {
10098
+ if (this.eof) {
10099
+ return this.buffer;
10100
+ }
10101
+ const {
10102
+ params
10103
+ } = this;
10104
+ if (!bytes) {
10105
+ this.stream.reset();
10106
+ bytes = this.bytes;
10107
+ }
10108
+ let pos = 0;
8014
10109
  const source = {
8015
10110
  next() {
8016
- return str.getByte();
10111
+ return bytes[pos++] ?? -1;
8017
10112
  }
8018
10113
  };
8019
- this.ccittFaxDecoder = new CCITTFaxDecoder(source, {
8020
- K: params.get("K"),
8021
- EndOfLine: params.get("EndOfLine"),
8022
- EncodedByteAlign: params.get("EncodedByteAlign"),
8023
- Columns: params.get("Columns"),
8024
- Rows: params.get("Rows"),
8025
- EndOfBlock: params.get("EndOfBlock"),
8026
- BlackIs1: params.get("BlackIs1")
8027
- });
8028
- }
8029
- readBlock() {
10114
+ if (length && this.buffer.byteLength < length) {
10115
+ this.buffer = new Uint8Array(length);
10116
+ }
10117
+ this.ccittFaxDecoder = new CCITTFaxDecoder(source, params);
10118
+ let outPos = 0;
8030
10119
  while (!this.eof) {
8031
10120
  const c = this.ccittFaxDecoder.readNextChar();
8032
10121
  if (c === -1) {
8033
10122
  this.eof = true;
8034
- return;
10123
+ break;
8035
10124
  }
8036
- this.ensureBuffer(this.bufferLength + 1);
8037
- this.buffer[this.bufferLength++] = c;
10125
+ if (!length) {
10126
+ this.ensureBuffer(outPos + 1);
10127
+ }
10128
+ this.buffer[outPos++] = c;
8038
10129
  }
8039
- }
8040
- get isImageStream() {
8041
- return true;
10130
+ this.bufferLength = this.buffer.length;
10131
+ return this.buffer.subarray(0, length || this.bufferLength);
8042
10132
  }
8043
10133
  }
8044
10134
 
@@ -8085,38 +10175,17 @@ class FlateStream extends DecodeStream {
8085
10175
  return data.subarray(0, length);
8086
10176
  }
8087
10177
  async asyncGetBytes() {
8088
- this.stream.reset();
8089
- const bytes = this.stream.isAsync ? await this.stream.asyncGetBytes() : this.stream.getBytes();
8090
- try {
8091
- const {
8092
- readable,
8093
- writable
8094
- } = new DecompressionStream("deflate");
8095
- const writer = writable.getWriter();
8096
- await writer.ready;
8097
- writer.write(bytes).then(async () => {
8098
- await writer.ready;
8099
- await writer.close();
8100
- }).catch(() => {});
8101
- const chunks = [];
8102
- let totalLength = 0;
8103
- for await (const chunk of readable) {
8104
- chunks.push(chunk);
8105
- totalLength += chunk.byteLength;
8106
- }
8107
- const data = new Uint8Array(totalLength);
8108
- let offset = 0;
8109
- for (const chunk of chunks) {
8110
- data.set(chunk, offset);
8111
- offset += chunk.byteLength;
8112
- }
8113
- return data;
8114
- } catch {
8115
- this.#isAsync = false;
8116
- this.stream = new Stream(bytes, 2, bytes.length, this.stream.dict);
8117
- this.reset();
8118
- return null;
8119
- }
10178
+ const {
10179
+ decompressed,
10180
+ compressed
10181
+ } = await this.asyncGetBytesFromDecompressionStream("deflate");
10182
+ if (decompressed) {
10183
+ return decompressed;
10184
+ }
10185
+ this.#isAsync = false;
10186
+ this.stream = new Stream(compressed, 2, compressed.length, this.stream.dict);
10187
+ this.reset();
10188
+ return null;
8120
10189
  }
8121
10190
  get isAsync() {
8122
10191
  return this.#isAsync;
@@ -10428,7 +12497,7 @@ class Jbig2Stream extends DecodeStream {
10428
12497
  }
10429
12498
  ensureBuffer(requested) {}
10430
12499
  readBlock() {
10431
- this.decodeImage();
12500
+ this.decodeImageFallback();
10432
12501
  }
10433
12502
  get isAsyncDecoder() {
10434
12503
  return true;
@@ -10436,7 +12505,7 @@ class Jbig2Stream extends DecodeStream {
10436
12505
  get isImageStream() {
10437
12506
  return true;
10438
12507
  }
10439
- async decodeImage(bytes, _decoderOptions) {
12508
+ async decodeImage(bytes, length, _decoderOptions) {
10440
12509
  if (this.eof) {
10441
12510
  return this.buffer;
10442
12511
  }
@@ -10449,16 +12518,16 @@ class Jbig2Stream extends DecodeStream {
10449
12518
  globals = globalsStream.getBytes();
10450
12519
  }
10451
12520
  }
10452
- this.buffer = await JBig2WasmImage.decode(bytes, this.dict.get("Width"), this.dict.get("Height"), globals);
12521
+ this.buffer = await JBig2CCITTFaxWasmImage.decode(bytes, this.dict.get("Width"), this.dict.get("Height"), globals);
10453
12522
  } catch {
10454
12523
  warn("Jbig2Stream: Falling back to JS JBIG2 decoder.");
10455
- return this.decodeImageFallback(bytes);
12524
+ return this.decodeImageFallback(bytes, length);
10456
12525
  }
10457
12526
  this.bufferLength = this.buffer.length;
10458
12527
  this.eof = true;
10459
12528
  return this.buffer;
10460
12529
  }
10461
- async decodeImageFallback(bytes) {
12530
+ decodeImageFallback(bytes, _length) {
10462
12531
  if (this.eof) {
10463
12532
  return this.buffer;
10464
12533
  }
@@ -10518,7 +12587,7 @@ class JpxStream extends DecodeStream {
10518
12587
  get isAsyncDecoder() {
10519
12588
  return true;
10520
12589
  }
10521
- async decodeImage(bytes, decoderOptions) {
12590
+ async decodeImage(bytes, _length, decoderOptions) {
10522
12591
  if (this.eof) {
10523
12592
  return this.buffer;
10524
12593
  }
@@ -10576,7 +12645,6 @@ class LZWStream extends DecodeStream {
10576
12645
  }
10577
12646
  this.bitsCached = bitsCached -= n;
10578
12647
  this.cachedData = cachedData;
10579
- this.lastCode = null;
10580
12648
  return cachedData >>> bitsCached & (1 << n) - 1;
10581
12649
  }
10582
12650
  readBlock() {
@@ -10890,6 +12958,7 @@ class RunLengthStream extends DecodeStream {
10890
12958
 
10891
12959
 
10892
12960
 
12961
+
10893
12962
  const MAX_LENGTH_TO_CACHE = 1000;
10894
12963
  function getInlineImageCacheKey(bytes) {
10895
12964
  const strBuf = [],
@@ -11481,6 +13550,8 @@ class Parser {
11481
13550
  return new RunLengthStream(stream, maybeLength);
11482
13551
  case "JBIG2Decode":
11483
13552
  return new Jbig2Stream(stream, maybeLength, params);
13553
+ case "BrotliDecode":
13554
+ return new BrotliStream(stream, maybeLength);
11484
13555
  }
11485
13556
  warn(`Filter "${name}" is not supported.`);
11486
13557
  return stream;
@@ -11520,7 +13591,6 @@ class Lexer {
11520
13591
  }
11521
13592
  getNumber() {
11522
13593
  let ch = this.currentChar;
11523
- let eNotation = false;
11524
13594
  let divideBy = 0;
11525
13595
  let sign = 1;
11526
13596
  if (ch === 0x2d) {
@@ -11550,19 +13620,13 @@ class Lexer {
11550
13620
  throw new FormatError(msg);
11551
13621
  }
11552
13622
  let baseValue = ch - 0x30;
11553
- let powerValue = 0;
11554
- let powerValueSign = 1;
11555
13623
  while ((ch = this.nextChar()) >= 0) {
11556
13624
  if (ch >= 0x30 && ch <= 0x39) {
11557
13625
  const currentDigit = ch - 0x30;
11558
- if (eNotation) {
11559
- powerValue = powerValue * 10 + currentDigit;
11560
- } else {
11561
- if (divideBy !== 0) {
11562
- divideBy *= 10;
11563
- }
11564
- baseValue = baseValue * 10 + currentDigit;
13626
+ if (divideBy !== 0) {
13627
+ divideBy *= 10;
11565
13628
  }
13629
+ baseValue = baseValue * 10 + currentDigit;
11566
13630
  } else if (ch === 0x2e) {
11567
13631
  if (divideBy === 0) {
11568
13632
  divideBy = 1;
@@ -11571,15 +13635,6 @@ class Lexer {
11571
13635
  }
11572
13636
  } else if (ch === 0x2d) {
11573
13637
  warn("Badly formatted number: minus sign in the middle");
11574
- } else if (ch === 0x45 || ch === 0x65) {
11575
- ch = this.peekChar();
11576
- if (ch === 0x2b || ch === 0x2d) {
11577
- powerValueSign = ch === 0x2d ? -1 : 1;
11578
- this.nextChar();
11579
- } else if (ch < 0x30 || ch > 0x39) {
11580
- break;
11581
- }
11582
- eNotation = true;
11583
13638
  } else {
11584
13639
  break;
11585
13640
  }
@@ -11587,9 +13642,6 @@ class Lexer {
11587
13642
  if (divideBy !== 0) {
11588
13643
  baseValue /= divideBy;
11589
13644
  }
11590
- if (eNotation) {
11591
- baseValue *= 10 ** (powerValueSign * powerValue);
11592
- }
11593
13645
  return sign * baseValue;
11594
13646
  }
11595
13647
  getString() {
@@ -18140,20 +20192,18 @@ class CFFParser {
18140
20192
  }
18141
20193
  }
18142
20194
  class CFF {
18143
- constructor() {
18144
- this.header = null;
18145
- this.names = [];
18146
- this.topDict = null;
18147
- this.strings = new CFFStrings();
18148
- this.globalSubrIndex = null;
18149
- this.encoding = null;
18150
- this.charset = null;
18151
- this.charStrings = null;
18152
- this.fdArray = [];
18153
- this.fdSelect = null;
18154
- this.isCIDFont = false;
18155
- this.charStringCount = 0;
18156
- }
20195
+ header = null;
20196
+ names = [];
20197
+ topDict = null;
20198
+ strings = new CFFStrings();
20199
+ globalSubrIndex = null;
20200
+ encoding = null;
20201
+ charset = null;
20202
+ charStrings = null;
20203
+ fdArray = [];
20204
+ fdSelect = null;
20205
+ isCIDFont = false;
20206
+ charStringCount = 0;
18157
20207
  duplicateFirstGlyph() {
18158
20208
  if (this.charStrings.count >= 65535) {
18159
20209
  warn("Not enough space in charstrings to duplicate first glyph.");
@@ -18182,9 +20232,7 @@ class CFFHeader {
18182
20232
  }
18183
20233
  }
18184
20234
  class CFFStrings {
18185
- constructor() {
18186
- this.strings = [];
18187
- }
20235
+ strings = [];
18188
20236
  get(index) {
18189
20237
  if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {
18190
20238
  return CFFStandardStrings[index];
@@ -18213,10 +20261,8 @@ class CFFStrings {
18213
20261
  }
18214
20262
  }
18215
20263
  class CFFIndex {
18216
- constructor() {
18217
- this.objects = [];
18218
- this.length = 0;
18219
- }
20264
+ objects = [];
20265
+ length = 0;
18220
20266
  add(data) {
18221
20267
  this.length += data.length;
18222
20268
  this.objects.push(data);
@@ -18360,9 +20406,7 @@ class CFFFDSelect {
18360
20406
  }
18361
20407
  }
18362
20408
  class CFFOffsetTracker {
18363
- constructor() {
18364
- this.offsets = Object.create(null);
18365
- }
20409
+ offsets = Object.create(null);
18366
20410
  isTracking(key) {
18367
20411
  return key in this.offsets;
18368
20412
  }
@@ -24355,13 +26399,11 @@ const COMMAND_MAP = {
24355
26399
  hvcurveto: [31]
24356
26400
  };
24357
26401
  class Type1CharString {
24358
- constructor() {
24359
- this.width = 0;
24360
- this.lsb = 0;
24361
- this.flexing = false;
24362
- this.output = [];
24363
- this.stack = [];
24364
- }
26402
+ width = 0;
26403
+ lsb = 0;
26404
+ flexing = false;
26405
+ output = [];
26406
+ stack = [];
24365
26407
  convert(encoded, subrs, seacAnalysisEnabled) {
24366
26408
  const count = encoded.length;
24367
26409
  let error = false;
@@ -25778,7 +27820,7 @@ class Font {
25778
27820
  nonStdFontMap = getNonStdFontMap(),
25779
27821
  serifFonts = getSerifFonts();
25780
27822
  for (const namePart of name.split("+")) {
25781
- let fontName = namePart.replaceAll(/[,_]/g, "-");
27823
+ let fontName = normalizeFontName(namePart);
25782
27824
  fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;
25783
27825
  fontName = fontName.split("-", 1)[0];
25784
27826
  if (serifFonts[fontName]) {
@@ -29964,19 +32006,17 @@ function toNumberArray(arr) {
29964
32006
  }
29965
32007
  class PDFFunction {
29966
32008
  static getSampleArray(size, outputSize, bps, stream) {
29967
- let i, ii;
29968
- let length = 1;
29969
- for (i = 0, ii = size.length; i < ii; i++) {
29970
- length *= size[i];
32009
+ let length = outputSize;
32010
+ for (const s of size) {
32011
+ length *= s;
29971
32012
  }
29972
- length *= outputSize;
29973
32013
  const array = new Array(length);
29974
32014
  let codeSize = 0;
29975
32015
  let codeBuf = 0;
29976
32016
  const sampleMul = 1.0 / (2.0 ** bps - 1);
29977
32017
  const strBytes = stream.getBytes((length * bps + 7) / 8);
29978
32018
  let strIdx = 0;
29979
- for (i = 0; i < length; i++) {
32019
+ for (let i = 0; i < length; i++) {
29980
32020
  while (codeSize < bps) {
29981
32021
  codeBuf <<= 8;
29982
32022
  codeBuf |= strBytes[strIdx++];
@@ -30144,14 +32184,8 @@ class PDFFunction {
30144
32184
  break;
30145
32185
  }
30146
32186
  }
30147
- let dmin = domain[0];
30148
- if (i > 0) {
30149
- dmin = bounds[i - 1];
30150
- }
30151
- let dmax = domain[1];
30152
- if (i < bounds.length) {
30153
- dmax = bounds[i];
30154
- }
32187
+ const dmin = i > 0 ? bounds[i - 1] : domain[0];
32188
+ const dmax = i < length ? bounds[i] : domain[1];
30155
32189
  const rmin = encode[2 * i];
30156
32190
  const rmax = encode[2 * i + 1];
30157
32191
  tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);
@@ -30202,17 +32236,7 @@ class PDFFunction {
30202
32236
  const stack = evaluator.execute(input);
30203
32237
  const stackIndex = stack.length - numOutputs;
30204
32238
  for (i = 0; i < numOutputs; i++) {
30205
- value = stack[stackIndex + i];
30206
- let bound = range[i * 2];
30207
- if (value < bound) {
30208
- value = bound;
30209
- } else {
30210
- bound = range[i * 2 + 1];
30211
- if (value > bound) {
30212
- value = bound;
30213
- }
30214
- }
30215
- output[i] = value;
32239
+ output[i] = MathClamp(stack[stackIndex + i], range[i * 2], range[i * 2 + 1]);
30216
32240
  }
30217
32241
  if (cache_available > 0) {
30218
32242
  cache_available--;
@@ -30592,9 +32616,7 @@ class AstVariableDefinition extends AstNode {
30592
32616
  }
30593
32617
  }
30594
32618
  class ExpressionBuilderVisitor {
30595
- constructor() {
30596
- this.parts = [];
30597
- }
32619
+ parts = [];
30598
32620
  visitArgument(arg) {
30599
32621
  this.parts.push("Math.max(", arg.min, ", Math.min(", arg.max, ", src[srcOffset + ", arg.index, "]))");
30600
32622
  }
@@ -32874,6 +34896,9 @@ class PartialEvaluator {
32874
34896
  let transferArray;
32875
34897
  if (Array.isArray(tr)) {
32876
34898
  transferArray = tr;
34899
+ if (tr.length > 1 && tr.every(map => map === tr[0])) {
34900
+ transferArray = [tr[0]];
34901
+ }
32877
34902
  } else if (isPDFFunction(tr)) {
32878
34903
  transferArray = [tr];
32879
34904
  } else {
@@ -34054,7 +36079,7 @@ class PartialEvaluator {
34054
36079
  const emptyXObjectCache = new LocalImageCache();
34055
36080
  const emptyGStateCache = new LocalGStateCache();
34056
36081
  const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);
34057
- let textState;
36082
+ let textState, currentTextState;
34058
36083
  function pushWhitespace({
34059
36084
  width = 0,
34060
36085
  height = 0,
@@ -34222,7 +36247,7 @@ class PartialEvaluator {
34222
36247
  if (textState.font.vertical) {
34223
36248
  const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;
34224
36249
  const advanceX = posX - lastPosX;
34225
- const textOrientation = Math.sign(textContentItem.height);
36250
+ const textOrientation = Math.sign(textContentItem.height || textContentItem.totalHeight);
34226
36251
  if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {
34227
36252
  if (Math.abs(advanceX) > 0.5 * textContentItem.width) {
34228
36253
  appendEOL();
@@ -34266,7 +36291,7 @@ class PartialEvaluator {
34266
36291
  }
34267
36292
  const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;
34268
36293
  const advanceY = posY - lastPosY;
34269
- const textOrientation = Math.sign(textContentItem.width);
36294
+ const textOrientation = Math.sign(textContentItem.width || textContentItem.totalWidth);
34270
36295
  if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {
34271
36296
  if (Math.abs(advanceY) > 0.5 * textContentItem.height) {
34272
36297
  appendEOL();
@@ -34312,6 +36337,10 @@ class PartialEvaluator {
34312
36337
  chars,
34313
36338
  extraSpacing
34314
36339
  }) {
36340
+ if (currentTextState !== textState && (currentTextState.fontName !== textState.fontName || currentTextState.fontSize !== textState.fontSize)) {
36341
+ flushTextContentItem();
36342
+ currentTextState = textState.clone();
36343
+ }
34315
36344
  const font = textState.font;
34316
36345
  if (!chars) {
34317
36346
  const charSpacing = textState.charSpacing + extraSpacing;
@@ -34494,8 +36523,8 @@ class PartialEvaluator {
34494
36523
  if (!preprocessor.read(operation)) {
34495
36524
  break;
34496
36525
  }
34497
- const previousState = textState;
34498
36526
  textState = stateManager.state;
36527
+ currentTextState ||= textState.clone();
34499
36528
  const fn = operation.fn;
34500
36529
  args = operation.args;
34501
36530
  switch (fn | 0) {
@@ -34505,7 +36534,6 @@ class PartialEvaluator {
34505
36534
  if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {
34506
36535
  break;
34507
36536
  }
34508
- flushTextContentItem();
34509
36537
  textState.fontName = fontNameArg;
34510
36538
  textState.fontSize = fontSizeArg;
34511
36539
  next(handleSetFont(fontNameArg, null));
@@ -34778,9 +36806,10 @@ class PartialEvaluator {
34778
36806
  }
34779
36807
  break;
34780
36808
  case OPS.restore:
34781
- if (previousState && (previousState.font !== textState.font || previousState.fontSize !== textState.fontSize || previousState.fontName !== textState.fontName)) {
34782
- flushTextContentItem();
34783
- }
36809
+ stateManager.restore();
36810
+ break;
36811
+ case OPS.save:
36812
+ stateManager.save();
34784
36813
  break;
34785
36814
  }
34786
36815
  if (textContent.items.length >= (sink?.desiredSize ?? 1)) {
@@ -35255,13 +37284,11 @@ class PartialEvaluator {
35255
37284
  let defaultWidth = 0;
35256
37285
  let widths = Object.create(null);
35257
37286
  let monospace = false;
37287
+ let fontName = normalizeFontName(name);
35258
37288
  const stdFontMap = getStdFontMap();
35259
- let lookupName = stdFontMap[name] || name;
37289
+ fontName = stdFontMap[fontName] || fontName;
35260
37290
  const Metrics = getMetrics();
35261
- if (!(lookupName in Metrics)) {
35262
- lookupName = this.isSerifFont(name) ? "Times-Roman" : "Helvetica";
35263
- }
35264
- const glyphWidths = Metrics[lookupName];
37291
+ const glyphWidths = Metrics[fontName] ?? Metrics[this.isSerifFont(name) ? "Times-Roman" : "Helvetica"];
35265
37292
  if (typeof glyphWidths === "number") {
35266
37293
  defaultWidth = glyphWidths;
35267
37294
  monospace = true;
@@ -35431,7 +37458,7 @@ class PartialEvaluator {
35431
37458
  if (!(baseFontName instanceof Name)) {
35432
37459
  throw new FormatError("Base font is not specified");
35433
37460
  }
35434
- baseFontName = baseFontName.name.replaceAll(/[,_]/g, "-");
37461
+ baseFontName = normalizeFontName(baseFontName.name);
35435
37462
  const metrics = this.getBaseFontMetrics(baseFontName);
35436
37463
  const fontNameWoStyle = baseFontName.split("-", 1)[0];
35437
37464
  const flags = (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) | (metrics.monospace ? FontFlags.FixedPitch : 0) | (getSymbolsFonts()[fontNameWoStyle] ? FontFlags.Symbolic : FontFlags.Nonsymbolic);
@@ -35866,21 +37893,19 @@ class StateManager {
35866
37893
  }
35867
37894
  }
35868
37895
  class TextState {
35869
- constructor() {
35870
- this.ctm = new Float32Array(IDENTITY_MATRIX);
35871
- this.fontName = null;
35872
- this.fontSize = 0;
35873
- this.loadedName = null;
35874
- this.font = null;
35875
- this.fontMatrix = FONT_IDENTITY_MATRIX;
35876
- this.textMatrix = IDENTITY_MATRIX.slice();
35877
- this.textLineMatrix = IDENTITY_MATRIX.slice();
35878
- this.charSpacing = 0;
35879
- this.wordSpacing = 0;
35880
- this.leading = 0;
35881
- this.textHScale = 1;
35882
- this.textRise = 0;
35883
- }
37896
+ ctm = new Float32Array(IDENTITY_MATRIX);
37897
+ fontName = null;
37898
+ fontSize = 0;
37899
+ loadedName = null;
37900
+ font = null;
37901
+ fontMatrix = FONT_IDENTITY_MATRIX;
37902
+ textMatrix = IDENTITY_MATRIX.slice();
37903
+ textLineMatrix = IDENTITY_MATRIX.slice();
37904
+ charSpacing = 0;
37905
+ wordSpacing = 0;
37906
+ leading = 0;
37907
+ textHScale = 1;
37908
+ textRise = 0;
35884
37909
  setTextMatrix(a, b, c, d, e, f) {
35885
37910
  const m = this.textMatrix;
35886
37911
  m[0] = a;
@@ -35914,7 +37939,7 @@ class TextState {
35914
37939
  this.textMatrix = this.textLineMatrix.slice();
35915
37940
  }
35916
37941
  clone() {
35917
- const clone = Object.create(this);
37942
+ const clone = Object.assign(Object.create(this), this);
35918
37943
  clone.textMatrix = this.textMatrix.slice();
35919
37944
  clone.textLineMatrix = this.textLineMatrix.slice();
35920
37945
  clone.fontMatrix = this.fontMatrix.slice();
@@ -35922,17 +37947,17 @@ class TextState {
35922
37947
  }
35923
37948
  }
35924
37949
  class EvalState {
35925
- constructor() {
35926
- this.ctm = new Float32Array(IDENTITY_MATRIX);
35927
- this.font = null;
35928
- this.textRenderingMode = TextRenderingMode.FILL;
35929
- this._fillColorSpace = this._strokeColorSpace = ColorSpaceUtils.gray;
35930
- this.patternFillColorSpace = null;
35931
- this.patternStrokeColorSpace = null;
35932
- this.currentPointX = this.currentPointY = 0;
35933
- this.pathMinMax = new Float32Array([Infinity, Infinity, -Infinity, -Infinity]);
35934
- this.pathBuffer = [];
35935
- }
37950
+ ctm = new Float32Array(IDENTITY_MATRIX);
37951
+ font = null;
37952
+ textRenderingMode = TextRenderingMode.FILL;
37953
+ _fillColorSpace = ColorSpaceUtils.gray;
37954
+ _strokeColorSpace = ColorSpaceUtils.gray;
37955
+ patternFillColorSpace = null;
37956
+ patternStrokeColorSpace = null;
37957
+ currentPointX = 0;
37958
+ currentPointY = 0;
37959
+ pathMinMax = new Float32Array([Infinity, Infinity, -Infinity, -Infinity]);
37960
+ pathBuffer = [];
35936
37961
  get fillColorSpace() {
35937
37962
  return this._fillColorSpace;
35938
37963
  }
@@ -36663,7 +38688,7 @@ class FakeUnicodeFont {
36663
38688
  descendantFont.set("FontDescriptor", this.fontDescriptorRef);
36664
38689
  descendantFont.set("DW", 1000);
36665
38690
  const widths = [];
36666
- const chars = [...this.widths.entries()].sort();
38691
+ const chars = [...this.widths].sort();
36667
38692
  let currentChar = null;
36668
38693
  let currentWidths = null;
36669
38694
  for (const [char, width] of chars) {
@@ -37026,9 +39051,6 @@ function pickPlatformItem(dict) {
37026
39051
  }
37027
39052
  return null;
37028
39053
  }
37029
- function stripPath(str) {
37030
- return str.substring(str.lastIndexOf("/") + 1);
37031
- }
37032
39054
  class FileSpec {
37033
39055
  #contentAvailable = false;
37034
39056
  constructor(root, skipContent = false) {
@@ -37996,12 +40018,7 @@ class StructTreeRoot {
37996
40018
  for (const element of elements) {
37997
40019
  if (element.structTreeParentId) {
37998
40020
  const id = parseInt(element.structTreeParentId.split("_mc")[1], 10);
37999
- let elems = idToElements.get(id);
38000
- if (!elems) {
38001
- elems = [];
38002
- idToElements.set(id, elems);
38003
- }
38004
- elems.push(element);
40021
+ idToElements.getOrInsertComputed(id, makeArr).push(element);
38005
40022
  }
38006
40023
  }
38007
40024
  const id = pageDict.get("StructParents");
@@ -40334,14 +42351,8 @@ class FontFinder {
40334
42351
  addPdfFont(pdfFont) {
40335
42352
  const cssFontInfo = pdfFont.cssFontInfo;
40336
42353
  const name = cssFontInfo.fontFamily;
40337
- let font = this.fonts.get(name);
40338
- if (!font) {
40339
- font = Object.create(null);
40340
- this.fonts.set(name, font);
40341
- if (!this.defaultFont) {
40342
- this.defaultFont = font;
40343
- }
40344
- }
42354
+ const font = this.fonts.getOrInsertComputed(name, makeObj);
42355
+ this.defaultFont ??= font;
40345
42356
  let property = "";
40346
42357
  const fontWeight = parseFloat(cssFontInfo.fontWeight);
40347
42358
  if (parseFloat(cssFontInfo.italicAngle) !== 0) {
@@ -40379,13 +42390,13 @@ class FontFinder {
40379
42390
  }
40380
42391
  name = name.toLowerCase();
40381
42392
  const maybe = [];
40382
- for (const [family, pdfFont] of this.fonts.entries()) {
42393
+ for (const [family, pdfFont] of this.fonts) {
40383
42394
  if (family.replaceAll(pattern, "").toLowerCase().startsWith(name)) {
40384
42395
  maybe.push(pdfFont);
40385
42396
  }
40386
42397
  }
40387
42398
  if (maybe.length === 0) {
40388
- for (const [, pdfFont] of this.fonts.entries()) {
42399
+ for (const pdfFont of this.fonts.values()) {
40389
42400
  if (pdfFont.regular.name?.replaceAll(pattern, "").toLowerCase().startsWith(name)) {
40390
42401
  maybe.push(pdfFont);
40391
42402
  }
@@ -40393,7 +42404,7 @@ class FontFinder {
40393
42404
  }
40394
42405
  if (maybe.length === 0) {
40395
42406
  name = name.replaceAll(/psmt|mt/gi, "");
40396
- for (const [family, pdfFont] of this.fonts.entries()) {
42407
+ for (const [family, pdfFont] of this.fonts) {
40397
42408
  if (family.replaceAll(pattern, "").toLowerCase().startsWith(name)) {
40398
42409
  maybe.push(pdfFont);
40399
42410
  }
@@ -40792,11 +42803,7 @@ function searchNode(root, container, expr, dotDotAllowed = true, useCache = true
40792
42803
  }
40793
42804
  let children, cached;
40794
42805
  if (useCache) {
40795
- cached = somCache.get(node);
40796
- if (!cached) {
40797
- cached = new Map();
40798
- somCache.set(node, cached);
40799
- }
42806
+ cached = somCache.getOrInsertComputed(node, makeMap);
40800
42807
  children = cached.get(cacheName);
40801
42808
  }
40802
42809
  if (!children) {
@@ -41493,7 +43500,7 @@ class XmlObject extends XFAObject {
41493
43500
  const utf8TagName = utf8StringToString(tagName);
41494
43501
  const prefix = this[$namespaceId] === NS_DATASETS ? "xfa:" : "";
41495
43502
  buf.push(`<${prefix}${utf8TagName}`);
41496
- for (const [name, value] of this[_attributes].entries()) {
43503
+ for (const [name, value] of this[_attributes]) {
41497
43504
  const utf8Name = utf8StringToString(name);
41498
43505
  buf.push(` ${utf8Name}="${encodeToXmlString(value[$content])}"`);
41499
43506
  }
@@ -50315,12 +52322,7 @@ class Builder {
50315
52322
  value
50316
52323
  } of prefixes) {
50317
52324
  const namespace = this._searchNamespace(value);
50318
- let prefixStack = this._namespacePrefixes.get(prefix);
50319
- if (!prefixStack) {
50320
- prefixStack = [];
50321
- this._namespacePrefixes.set(prefix, prefixStack);
50322
- }
50323
- prefixStack.push(namespace);
52325
+ this._namespacePrefixes.getOrInsertComputed(prefix, makeArr).push(namespace);
50324
52326
  }
50325
52327
  }
50326
52328
  _getNamespaceToUse(prefix) {
@@ -50666,7 +52668,7 @@ class AnnotationFactory {
50666
52668
  }
50667
52669
  let subtype = dict.get("Subtype");
50668
52670
  subtype = subtype instanceof Name ? subtype.name : null;
50669
- if (collectByType && !collectByType.has(AnnotationType[subtype.toUpperCase()])) {
52671
+ if (collectByType && !collectByType.has(AnnotationType[subtype?.toUpperCase()])) {
50670
52672
  return null;
50671
52673
  }
50672
52674
  const {
@@ -50998,11 +53000,12 @@ function getTransformMatrix(rect, bbox, matrix) {
50998
53000
  class Annotation {
50999
53001
  constructor(params) {
51000
53002
  const {
51001
- dict,
51002
- xref,
51003
53003
  annotationGlobals,
53004
+ dict,
53005
+ orphanFields,
51004
53006
  ref,
51005
- orphanFields
53007
+ subtype,
53008
+ xref
51006
53009
  } = params;
51007
53010
  const parentRef = orphanFields?.get(ref);
51008
53011
  if (parentRef) {
@@ -51028,6 +53031,7 @@ class Annotation {
51028
53031
  const isLocked = !!(this.flags & AnnotationFlag.LOCKED);
51029
53032
  const isContentLocked = !!(this.flags & AnnotationFlag.LOCKEDCONTENTS);
51030
53033
  this.data = {
53034
+ annotationType: AnnotationType[subtype?.toUpperCase()],
51031
53035
  annotationFlags: this.flags,
51032
53036
  borderStyle: this.borderStyle,
51033
53037
  color: this.color,
@@ -51039,7 +53043,7 @@ class Annotation {
51039
53043
  id: params.id,
51040
53044
  modificationDate: this.modificationDate,
51041
53045
  rect: this.rectangle,
51042
- subtype: params.subtype,
53046
+ subtype,
51043
53047
  hasOwnCanvas: false,
51044
53048
  noRotate: !!(this.flags & AnnotationFlag.NOROTATE),
51045
53049
  noHTML: isLocked && isContentLocked,
@@ -51493,14 +53497,12 @@ class Annotation {
51493
53497
  }
51494
53498
  }
51495
53499
  class AnnotationBorderStyle {
51496
- constructor() {
51497
- this.width = 1;
51498
- this.rawWidth = 1;
51499
- this.style = AnnotationBorderStyleType.SOLID;
51500
- this.dashArray = [3];
51501
- this.horizontalCornerRadius = 0;
51502
- this.verticalCornerRadius = 0;
51503
- }
53500
+ width = 1;
53501
+ rawWidth = 1;
53502
+ style = AnnotationBorderStyleType.SOLID;
53503
+ dashArray = [3];
53504
+ horizontalCornerRadius = 0;
53505
+ verticalCornerRadius = 0;
51504
53506
  setWidth(width, rect = [0, 0, 0, 0]) {
51505
53507
  if (width instanceof Name) {
51506
53508
  this.width = 0;
@@ -51760,7 +53762,6 @@ class WidgetAnnotation extends Annotation {
51760
53762
  } = params;
51761
53763
  const data = this.data;
51762
53764
  this._needAppearances = params.needAppearances;
51763
- data.annotationType = AnnotationType.WIDGET;
51764
53765
  if (data.fieldName === undefined) {
51765
53766
  data.fieldName = this._constructFieldName(dict);
51766
53767
  }
@@ -53089,7 +55090,6 @@ class TextAnnotation extends MarkupAnnotation {
53089
55090
  const {
53090
55091
  dict
53091
55092
  } = params;
53092
- this.data.annotationType = AnnotationType.TEXT;
53093
55093
  if (this.data.hasAppearance) {
53094
55094
  this.data.name = "NoIcon";
53095
55095
  } else {
@@ -53113,7 +55113,6 @@ class LinkAnnotation extends Annotation {
53113
55113
  dict,
53114
55114
  annotationGlobals
53115
55115
  } = params;
53116
- this.data.annotationType = AnnotationType.LINK;
53117
55116
  this.data.noHTML = false;
53118
55117
  const quadPoints = getQuadPoints(dict, this.rectangle);
53119
55118
  if (quadPoints) {
@@ -53137,7 +55136,6 @@ class PopupAnnotation extends Annotation {
53137
55136
  const {
53138
55137
  dict
53139
55138
  } = params;
53140
- this.data.annotationType = AnnotationType.POPUP;
53141
55139
  this.data.noHTML = false;
53142
55140
  if (this.width === 0 || this.height === 0) {
53143
55141
  this.data.rect = null;
@@ -53209,7 +55207,6 @@ class FreeTextAnnotation extends MarkupAnnotation {
53209
55207
  evaluatorOptions,
53210
55208
  xref
53211
55209
  } = params;
53212
- this.data.annotationType = AnnotationType.FREETEXT;
53213
55210
  this.setDefaultAppearance(params);
53214
55211
  this._hasAppearance = !!this.appearance;
53215
55212
  if (this._hasAppearance) {
@@ -53404,7 +55401,6 @@ class LineAnnotation extends MarkupAnnotation {
53404
55401
  dict,
53405
55402
  xref
53406
55403
  } = params;
53407
- this.data.annotationType = AnnotationType.LINE;
53408
55404
  this.data.hasOwnCanvas = this.data.noRotate;
53409
55405
  this.data.noHTML = false;
53410
55406
  const lineCoordinates = lookupRect(dict.getArray("L"), [0, 0, 0, 0]);
@@ -53445,7 +55441,6 @@ class SquareAnnotation extends MarkupAnnotation {
53445
55441
  dict,
53446
55442
  xref
53447
55443
  } = params;
53448
- this.data.annotationType = AnnotationType.SQUARE;
53449
55444
  this.data.hasOwnCanvas = this.data.noRotate;
53450
55445
  this.data.noHTML = false;
53451
55446
  if (!this.appearance) {
@@ -53488,7 +55483,6 @@ class CircleAnnotation extends MarkupAnnotation {
53488
55483
  dict,
53489
55484
  xref
53490
55485
  } = params;
53491
- this.data.annotationType = AnnotationType.CIRCLE;
53492
55486
  if (!this.appearance) {
53493
55487
  const strokeColor = getPdfColorArray(this.color, [0, 0, 0]);
53494
55488
  const strokeAlpha = dict.get("CA");
@@ -53534,7 +55528,6 @@ class PolylineAnnotation extends MarkupAnnotation {
53534
55528
  dict,
53535
55529
  xref
53536
55530
  } = params;
53537
- this.data.annotationType = AnnotationType.POLYLINE;
53538
55531
  this.data.hasOwnCanvas = this.data.noRotate;
53539
55532
  this.data.noHTML = false;
53540
55533
  this.data.vertices = null;
@@ -53591,18 +55584,8 @@ class PolylineAnnotation extends MarkupAnnotation {
53591
55584
  }
53592
55585
  }
53593
55586
  }
53594
- class PolygonAnnotation extends PolylineAnnotation {
53595
- constructor(params) {
53596
- super(params);
53597
- this.data.annotationType = AnnotationType.POLYGON;
53598
- }
53599
- }
53600
- class CaretAnnotation extends MarkupAnnotation {
53601
- constructor(params) {
53602
- super(params);
53603
- this.data.annotationType = AnnotationType.CARET;
53604
- }
53605
- }
55587
+ class PolygonAnnotation extends PolylineAnnotation {}
55588
+ class CaretAnnotation extends MarkupAnnotation {}
53606
55589
  class InkAnnotation extends MarkupAnnotation {
53607
55590
  constructor(params) {
53608
55591
  super(params);
@@ -53612,7 +55595,6 @@ class InkAnnotation extends MarkupAnnotation {
53612
55595
  dict,
53613
55596
  xref
53614
55597
  } = params;
53615
- this.data.annotationType = AnnotationType.INK;
53616
55598
  this.data.inkLists = [];
53617
55599
  this.data.isEditable = !this.data.noHTML;
53618
55600
  this.data.noHTML = false;
@@ -53816,7 +55798,6 @@ class HighlightAnnotation extends MarkupAnnotation {
53816
55798
  dict,
53817
55799
  xref
53818
55800
  } = params;
53819
- this.data.annotationType = AnnotationType.HIGHLIGHT;
53820
55801
  this.data.isEditable = !this.data.noHTML;
53821
55802
  this.data.noHTML = false;
53822
55803
  this.data.opacity = dict.get("CA") || 1;
@@ -53932,7 +55913,6 @@ class UnderlineAnnotation extends MarkupAnnotation {
53932
55913
  dict,
53933
55914
  xref
53934
55915
  } = params;
53935
- this.data.annotationType = AnnotationType.UNDERLINE;
53936
55916
  const quadPoints = this.data.quadPoints = getQuadPoints(dict, null);
53937
55917
  if (quadPoints) {
53938
55918
  if (!this.appearance) {
@@ -53964,7 +55944,6 @@ class SquigglyAnnotation extends MarkupAnnotation {
53964
55944
  dict,
53965
55945
  xref
53966
55946
  } = params;
53967
- this.data.annotationType = AnnotationType.SQUIGGLY;
53968
55947
  const quadPoints = this.data.quadPoints = getQuadPoints(dict, null);
53969
55948
  if (quadPoints) {
53970
55949
  if (!this.appearance) {
@@ -54007,7 +55986,6 @@ class StrikeOutAnnotation extends MarkupAnnotation {
54007
55986
  dict,
54008
55987
  xref
54009
55988
  } = params;
54010
- this.data.annotationType = AnnotationType.STRIKEOUT;
54011
55989
  const quadPoints = this.data.quadPoints = getQuadPoints(dict, null);
54012
55990
  if (quadPoints) {
54013
55991
  if (!this.appearance) {
@@ -54036,7 +56014,6 @@ class StampAnnotation extends MarkupAnnotation {
54036
56014
  #savedHasOwnCanvas = null;
54037
56015
  constructor(params) {
54038
56016
  super(params);
54039
- this.data.annotationType = AnnotationType.STAMP;
54040
56017
  this.data.hasOwnCanvas = this.data.noRotate;
54041
56018
  this.data.isEditable = !this.data.noHTML;
54042
56019
  this.data.noHTML = false;
@@ -54225,7 +56202,6 @@ class FileAttachmentAnnotation extends MarkupAnnotation {
54225
56202
  dict
54226
56203
  } = params;
54227
56204
  const file = new FileSpec(dict.get("FS"));
54228
- this.data.annotationType = AnnotationType.FILEATTACHMENT;
54229
56205
  this.data.hasOwnCanvas = this.data.noRotate;
54230
56206
  this.data.noHTML = false;
54231
56207
  this.data.file = file.serializable;
@@ -54326,10 +56302,7 @@ function decodeString(str) {
54326
56302
  }
54327
56303
  }
54328
56304
  class DatasetXMLParser extends SimpleXMLParser {
54329
- constructor(options) {
54330
- super(options);
54331
- this.node = null;
54332
- }
56305
+ node = null;
54333
56306
  onEndElement(name) {
54334
56307
  const node = super.onEndElement(name);
54335
56308
  if (node && name === "xfa:datasets") {
@@ -54945,9 +56918,9 @@ class DecryptStream extends DecodeStream {
54945
56918
 
54946
56919
 
54947
56920
  class ARCFourCipher {
56921
+ a = 0;
56922
+ b = 0;
54948
56923
  constructor(key) {
54949
- this.a = 0;
54950
- this.b = 0;
54951
56924
  const s = new Uint8Array(256);
54952
56925
  const keyLength = key.length;
54953
56926
  for (let i = 0; i < 256; ++i) {
@@ -56202,10 +58175,10 @@ class XRef {
56202
58175
  }
56203
58176
  if (!trailerDicts.length) {
56204
58177
  for (const num in this.entries) {
56205
- if (!Object.hasOwn(this.entries, num)) {
58178
+ const entry = this.entries[num];
58179
+ if (!entry) {
56206
58180
  continue;
56207
58181
  }
56208
- const entry = this.entries[num];
56209
58182
  const ref = Ref.get(parseInt(num), entry.gen);
56210
58183
  let obj;
56211
58184
  try {
@@ -56528,11 +58501,11 @@ class Page {
56528
58501
  }
56529
58502
  };
56530
58503
  }
56531
- #createPartialEvaluator(handler) {
58504
+ #createPartialEvaluator(handler, pageIndex = this.pageIndex) {
56532
58505
  return new PartialEvaluator({
56533
58506
  xref: this.xref,
56534
58507
  handler,
56535
- pageIndex: this.pageIndex,
58508
+ pageIndex,
56536
58509
  idFactory: this._localIdFactory,
56537
58510
  fontCache: this.fontCache,
56538
58511
  builtInCMapCache: this.builtInCMapCache,
@@ -56760,14 +58733,13 @@ class Page {
56760
58733
  task,
56761
58734
  intent,
56762
58735
  cacheKey,
56763
- pageId = this.pageIndex,
56764
58736
  pageIndex = this.pageIndex,
56765
58737
  annotationStorage = null,
56766
58738
  modifiedIds = null
56767
58739
  }) {
56768
58740
  const contentStreamPromise = this.getContentStream();
56769
58741
  const resourcesPromise = this.loadResources(RESOURCES_KEYS_OPERATOR_LIST);
56770
- const partialEvaluator = this.#createPartialEvaluator(handler);
58742
+ const partialEvaluator = this.#createPartialEvaluator(handler, pageIndex);
56771
58743
  const newAnnotsByPage = !this.xfaFactory ? getNewAnnotationsMap(annotationStorage) : null;
56772
58744
  const newAnnots = newAnnotsByPage?.get(this.pageIndex);
56773
58745
  let newAnnotationsPromise = Promise.resolve(null);
@@ -57809,10 +59781,7 @@ class PDFDocument {
57809
59781
  if (parentRef && !field.has("Parent") && isName(field.get("Subtype"), "Widget")) {
57810
59782
  orphanFields.put(fieldRef, parentRef);
57811
59783
  }
57812
- if (!promises.has(name)) {
57813
- promises.set(name, []);
57814
- }
57815
- promises.get(name).push(AnnotationFactory.create(xref, fieldRef, annotationGlobals, null, true, orphanFields, null, null).then(annotation => annotation?.getFieldObject()).catch(function (reason) {
59784
+ promises.getOrInsertComputed(name, makeArr).push(AnnotationFactory.create(xref, fieldRef, annotationGlobals, null, true, orphanFields, null, null).then(annotation => annotation?.getFieldObject()).catch(function (reason) {
57816
59785
  warn(`#collectFieldObjects: "${reason}".`);
57817
59786
  return null;
57818
59787
  }));
@@ -57942,7 +59911,7 @@ class BasePdfManager {
57942
59911
  JpxImage.setOptions(options);
57943
59912
  IccColorSpace.setOptions(options);
57944
59913
  CmykICCBasedCS.setOptions(options);
57945
- JBig2WasmImage.setOptions(options);
59914
+ JBig2CCITTFaxWasmImage.setOptions(options);
57946
59915
  }
57947
59916
  get docId() {
57948
59917
  return this._docId;
@@ -58918,37 +60887,37 @@ class XRefWrapper {
58918
60887
  }
58919
60888
  }
58920
60889
  class PDFEditor {
60890
+ hasSingleFile = false;
60891
+ currentDocument = null;
60892
+ oldPages = [];
60893
+ newPages = [];
60894
+ xref = [null];
60895
+ xrefWrapper = new XRefWrapper(this.xref);
60896
+ newRefCount = 1;
60897
+ namesDict = null;
60898
+ version = "1.7";
60899
+ pageLabels = null;
60900
+ namedDestinations = new Map();
60901
+ parentTree = new Map();
60902
+ structTreeKids = [];
60903
+ idTree = new Map();
60904
+ classMap = new Dict();
60905
+ roleMap = new Dict();
60906
+ namespaces = new Map();
60907
+ structTreeAF = [];
60908
+ structTreePronunciationLexicon = [];
58921
60909
  constructor({
58922
60910
  useObjectStreams = true,
58923
60911
  title = "",
58924
60912
  author = ""
58925
60913
  } = {}) {
58926
- this.hasSingleFile = false;
58927
- this.currentDocument = null;
58928
- this.oldPages = [];
58929
- this.newPages = [];
58930
- this.xref = [null];
58931
- this.xrefWrapper = new XRefWrapper(this.xref);
58932
- this.newRefCount = 1;
58933
60914
  [this.rootRef, this.rootDict] = this.newDict;
58934
60915
  [this.infoRef, this.infoDict] = this.newDict;
58935
60916
  [this.pagesRef, this.pagesDict] = this.newDict;
58936
- this.namesDict = null;
58937
60917
  this.useObjectStreams = useObjectStreams;
58938
60918
  this.objStreamRefs = useObjectStreams ? new Set() : null;
58939
- this.version = "1.7";
58940
60919
  this.title = title;
58941
60920
  this.author = author;
58942
- this.pageLabels = null;
58943
- this.namedDestinations = new Map();
58944
- this.parentTree = new Map();
58945
- this.structTreeKids = [];
58946
- this.idTree = new Map();
58947
- this.classMap = new Dict();
58948
- this.roleMap = new Dict();
58949
- this.namespaces = new Map();
58950
- this.structTreeAF = [];
58951
- this.structTreePronunciationLexicon = [];
58952
60921
  }
58953
60922
  get newRef() {
58954
60923
  const ref = Ref.get(this.newRefCount++, 0);
@@ -60234,6 +62203,12 @@ class BasePDFStreamReader {
60234
62203
  constructor(stream) {
60235
62204
  this._stream = stream;
60236
62205
  }
62206
+ _callOnProgress() {
62207
+ this.onProgress?.({
62208
+ loaded: this._loaded,
62209
+ total: this._contentLength
62210
+ });
62211
+ }
60237
62212
  get headersReady() {
60238
62213
  return this._headersCapability.promise;
60239
62214
  }
@@ -60409,7 +62384,7 @@ class WorkerMessageHandler {
60409
62384
  docId,
60410
62385
  apiVersion
60411
62386
  } = docParams;
60412
- const workerVersion = "5.4.624";
62387
+ const workerVersion = "5.5.207";
60413
62388
  if (apiVersion !== workerVersion) {
60414
62389
  throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`);
60415
62390
  }
@@ -60563,7 +62538,9 @@ class WorkerMessageHandler {
60563
62538
  });
60564
62539
  }
60565
62540
  function onFailure(ex) {
60566
- ensureNotTerminated();
62541
+ if (terminated) {
62542
+ return;
62543
+ }
60567
62544
  if (ex instanceof PasswordException) {
60568
62545
  const task = new WorkerTask(`PasswordException: response ${ex.code}`);
60569
62546
  startWorkerTask(task);