@univerjs/engine-render 0.24.0 → 0.25.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 (172) hide show
  1. package/lib/cjs/index.js +664 -214
  2. package/lib/es/index.js +664 -214
  3. package/lib/types/basics/index.d.ts +1 -0
  4. package/lib/types/basics/tools.d.ts +1 -0
  5. package/lib/types/basics/zoom.d.ts +17 -0
  6. package/lib/types/components/docs/doc-background.d.ts +6 -0
  7. package/lib/types/components/docs/doc-component.d.ts +4 -0
  8. package/lib/types/components/docs/document.d.ts +6 -0
  9. package/lib/types/components/docs/layout/block/paragraph/language-ruler.d.ts +4 -0
  10. package/lib/types/components/docs/layout/model/page.d.ts +1 -0
  11. package/lib/types/components/docs/table-render-viewport.d.ts +23 -0
  12. package/lib/types/index.d.ts +2 -0
  13. package/lib/types/render-manager/render-unit.d.ts +3 -1
  14. package/lib/umd/index.js +2 -2
  15. package/package.json +5 -5
  16. package/lib/cjs/en-us-Br9JW6Nt.js +0 -45
  17. package/lib/cjs/en-us-DKyh_RpA.js +0 -3
  18. package/lib/es/en-us-ClVoWMyT.js +0 -57
  19. /package/lib/cjs/{af-Bsj1JSBP.js → af-B2UUzO69.js} +0 -0
  20. /package/lib/cjs/{as-s7lqjieq.js → as-DbZDYp6O.js} +0 -0
  21. /package/lib/cjs/{be-L5eMFm5U.js → be-BBx0lyG-.js} +0 -0
  22. /package/lib/cjs/{bg-DPu8oywG.js → bg-DeX16RKi.js} +0 -0
  23. /package/lib/cjs/{bn-CIWO--x0.js → bn-3fjitMC3.js} +0 -0
  24. /package/lib/cjs/{ca-C4gmkbL6.js → ca-BxC8Zblv.js} +0 -0
  25. /package/lib/cjs/{cop-BYQt2Eln.js → cop-TvdaSBlz.js} +0 -0
  26. /package/lib/cjs/{cs-psn0RDcR.js → cs-MSNfJH-L.js} +0 -0
  27. /package/lib/cjs/{cu-CI412h46.js → cu-7FYbjEBr.js} +0 -0
  28. /package/lib/cjs/{cy-u9h1j59b.js → cy-CPuxVqb_.js} +0 -0
  29. /package/lib/cjs/{da-BQ70NE2J.js → da-BWsE849b.js} +0 -0
  30. /package/lib/cjs/{de-1901-C5Xgq4-z.js → de-1901-BYSTp3Fp.js} +0 -0
  31. /package/lib/cjs/{de-1996-BmpXhD5R.js → de-1996-DWtCfm_A.js} +0 -0
  32. /package/lib/cjs/{de-ch-1901-mUpubovn.js → de-ch-1901-rWVcF3cs.js} +0 -0
  33. /package/lib/cjs/{el-monoton-1KLys64v.js → el-monoton-BEUGM9Fi.js} +0 -0
  34. /package/lib/cjs/{el-polyton-C8sv-vqz.js → el-polyton-Bvh6HAfD.js} +0 -0
  35. /package/lib/cjs/{en-gb-DidBtNJX.js → en-gb-Dcrai7kY.js} +0 -0
  36. /package/lib/cjs/{es-C1gCT0OW.js → es-CVNdGI0L.js} +0 -0
  37. /package/lib/cjs/{et-UwA1uq3o.js → et-7Rdfp2-O.js} +0 -0
  38. /package/lib/cjs/{eu-pizKbeo6.js → eu-DyEtVwHo.js} +0 -0
  39. /package/lib/cjs/{fi-bkmcjeIB.js → fi-DzRES2Ke.js} +0 -0
  40. /package/lib/cjs/{fr-DTRdyReV.js → fr-DJMVMLCz.js} +0 -0
  41. /package/lib/cjs/{fur-CzaEPYy4.js → fur-CzhK3vxZ.js} +0 -0
  42. /package/lib/cjs/{ga-DfpmmLL7.js → ga-HXzOFdlG.js} +0 -0
  43. /package/lib/cjs/{gl-BvPLj87g.js → gl-C5TM79ih.js} +0 -0
  44. /package/lib/cjs/{grc-CWjbj1rE.js → grc-CPQF-xFI.js} +0 -0
  45. /package/lib/cjs/{gu-B9b71pv0.js → gu-AqCkEYxo.js} +0 -0
  46. /package/lib/cjs/{hi-B0PM9Naw.js → hi-DugLLbv4.js} +0 -0
  47. /package/lib/cjs/{hr-hhdjugdi.js → hr-LSMYFsyP.js} +0 -0
  48. /package/lib/cjs/{hsb-CUC0Vhy0.js → hsb-BlnRYHkg.js} +0 -0
  49. /package/lib/cjs/{hu-DNqLSdxp.js → hu-Dwvtkpy7.js} +0 -0
  50. /package/lib/cjs/{hy-Cr37-HYR.js → hy-BsG06_IV.js} +0 -0
  51. /package/lib/cjs/{ia-_xcaTvlU.js → ia-BMOUZLGD.js} +0 -0
  52. /package/lib/cjs/{id-DTTt6JOe.js → id-DhSs0vqq.js} +0 -0
  53. /package/lib/cjs/{is-BlJOUdIf.js → is-iJhrS7Aw.js} +0 -0
  54. /package/lib/cjs/{it-1kO7pboy.js → it-Aam-BmsV.js} +0 -0
  55. /package/lib/cjs/{ka-06TLrBSU.js → ka-CfLSYpVb.js} +0 -0
  56. /package/lib/cjs/{kmr-CqLLMgB-.js → kmr-DYCscIsi.js} +0 -0
  57. /package/lib/cjs/{kn-DsgCykwv.js → kn-OCEDIM_O.js} +0 -0
  58. /package/lib/cjs/{la-BtfI1L1Y.js → la-DFS3RPxE.js} +0 -0
  59. /package/lib/cjs/{la-x-classic-Csxxqk4A.js → la-x-classic-BocVpbl6.js} +0 -0
  60. /package/lib/cjs/{la-x-liturgic-DP4lkHMh.js → la-x-liturgic-CpZYm3b6.js} +0 -0
  61. /package/lib/cjs/{lt-BLnhu8cj.js → lt-NC6HHzxn.js} +0 -0
  62. /package/lib/cjs/{lv-BWU1ykNC.js → lv-BMFTm6cB.js} +0 -0
  63. /package/lib/cjs/{ml-DCPEVUGQ.js → ml-DDWi25Fi.js} +0 -0
  64. /package/lib/cjs/{mn-cyrl-R4Uzk2PR.js → mn-cyrl-TCUeX7is.js} +0 -0
  65. /package/lib/cjs/{mn-cyrl-x-lmc-DcrbbdVO.js → mn-cyrl-x-lmc-BCmp3Ybn.js} +0 -0
  66. /package/lib/cjs/{mr-a95kT02n.js → mr-1gjg-u15.js} +0 -0
  67. /package/lib/cjs/{mul-ethi-Ha-646Ih.js → mul-ethi-B9a4BMM6.js} +0 -0
  68. /package/lib/cjs/{nb-DVDq5SId.js → nb-DS_J6lre.js} +0 -0
  69. /package/lib/cjs/{nl-xvtaATgd.js → nl-CBtSVLcv.js} +0 -0
  70. /package/lib/cjs/{nn-Dd3GYfsu.js → nn-DYJOn4Sh.js} +0 -0
  71. /package/lib/cjs/{no-Ccuz1dXv.js → no-C20NyT1P.js} +0 -0
  72. /package/lib/cjs/{oc-DMNrvVUu.js → oc-CrKqER_F.js} +0 -0
  73. /package/lib/cjs/{or-BBnbptii.js → or-ZqEtsnaq.js} +0 -0
  74. /package/lib/cjs/{pa-Bpqjl4TY.js → pa-BD3r0Teo.js} +0 -0
  75. /package/lib/cjs/{pi-Dw9S8R8a.js → pi-CQUwMUvz.js} +0 -0
  76. /package/lib/cjs/{pl-BxIw_3q_.js → pl-CawofTLo.js} +0 -0
  77. /package/lib/cjs/{pms-ts8oJNTo.js → pms-DMqDXwo-.js} +0 -0
  78. /package/lib/cjs/{pt-INYdw9le.js → pt-BIiUaINZ.js} +0 -0
  79. /package/lib/cjs/{rm-SrIsmyuH.js → rm-B_-8T7Y1.js} +0 -0
  80. /package/lib/cjs/{ro--lDLf93Z.js → ro-B2Xhfkgx.js} +0 -0
  81. /package/lib/cjs/{ru-CnviOn4F.js → ru-lj-rTTpe.js} +0 -0
  82. /package/lib/cjs/{sa--YzUfT9m.js → sa-D3h-cY2Z.js} +0 -0
  83. /package/lib/cjs/{sh-cyrl-C-Y7f9iS.js → sh-cyrl-0o7p_z-7.js} +0 -0
  84. /package/lib/cjs/{sh-latn-DE0Oa7St.js → sh-latn-BTi9p-0q.js} +0 -0
  85. /package/lib/cjs/{sk-CL5uDe3A.js → sk-D6mOX2KK.js} +0 -0
  86. /package/lib/cjs/{sl-D8ckCfPR.js → sl-Bzz3gkvn.js} +0 -0
  87. /package/lib/cjs/{sr-cyrl-CZdv8WGY.js → sr-cyrl-V07WO3rb.js} +0 -0
  88. /package/lib/cjs/{sv-DYQd48Sm.js → sv-CyQXUuzx.js} +0 -0
  89. /package/lib/cjs/{ta-DOa0x7zq.js → ta-Brwz0zYf.js} +0 -0
  90. /package/lib/cjs/{te-BtexCVtn.js → te-CgvirCa4.js} +0 -0
  91. /package/lib/cjs/{th-BJUX68-0.js → th-PlSNhaza.js} +0 -0
  92. /package/lib/cjs/{tk-CEs8UQxA.js → tk-O54r2ybT.js} +0 -0
  93. /package/lib/cjs/{tr-BMiKDMrF.js → tr-Dh1h3Dno.js} +0 -0
  94. /package/lib/cjs/{uk-B8pzUYbn.js → uk-E2mCrVCU.js} +0 -0
  95. /package/lib/cjs/{zh-latn-pinyin-s8_52NaR.js → zh-latn-pinyin-C2RfFfDl.js} +0 -0
  96. /package/lib/es/{af-I8XQee0A.js → af-DK_CjRn6.js} +0 -0
  97. /package/lib/es/{as-DPw4kbfa.js → as-BPtSu6VN.js} +0 -0
  98. /package/lib/es/{be-hSu5_2AE.js → be-CrQ0smca.js} +0 -0
  99. /package/lib/es/{bg-eIV91Ges.js → bg-CrQqGwni.js} +0 -0
  100. /package/lib/es/{bn-CF0YbkEW.js → bn-NCLZcWHi.js} +0 -0
  101. /package/lib/es/{ca-D0fayQwW.js → ca-SUf6Y2Om.js} +0 -0
  102. /package/lib/es/{cop-gnNw8zDV.js → cop-C3sk0IUo.js} +0 -0
  103. /package/lib/es/{cs-cUOdqXi9.js → cs-CmAteokq.js} +0 -0
  104. /package/lib/es/{cu-CJJk_6p3.js → cu-CBUlrW6Y.js} +0 -0
  105. /package/lib/es/{cy-he1_O-US.js → cy-BBPa6z2x.js} +0 -0
  106. /package/lib/es/{da-C_Tc6C75.js → da-CCDXfXtG.js} +0 -0
  107. /package/lib/es/{de-1901-D9yvXEO8.js → de-1901-CWoAOigE.js} +0 -0
  108. /package/lib/es/{de-1996-DIBM3qkD.js → de-1996-BL6awyxG.js} +0 -0
  109. /package/lib/es/{de-ch-1901-BEDgpl3-.js → de-ch-1901-hVThVHVb.js} +0 -0
  110. /package/lib/es/{el-monoton-BvjPOyvW.js → el-monoton-D3aKqTz2.js} +0 -0
  111. /package/lib/es/{el-polyton-DfJ9Eeih.js → el-polyton-ogVWcTzh.js} +0 -0
  112. /package/lib/es/{en-gb-DYXoK50H.js → en-gb-B7Al27b_.js} +0 -0
  113. /package/lib/es/{es-48latgZ8.js → es-DcaaHPU_.js} +0 -0
  114. /package/lib/es/{et-UzX1rSXY.js → et-B_spaleu.js} +0 -0
  115. /package/lib/es/{eu-ijD7H63T.js → eu-Ctv_kq9Z.js} +0 -0
  116. /package/lib/es/{fi-DDuxAHu5.js → fi-RW5VB8Yp.js} +0 -0
  117. /package/lib/es/{fr-6wTrAsbK.js → fr-BC2onEz9.js} +0 -0
  118. /package/lib/es/{fur-CcIOY8A9.js → fur-AC12wySk.js} +0 -0
  119. /package/lib/es/{ga-B4Qvh5qS.js → ga-Cn6LkudM.js} +0 -0
  120. /package/lib/es/{gl-D8H7uN6B.js → gl-DZGc-K_G.js} +0 -0
  121. /package/lib/es/{grc-DFNi6G6p.js → grc-DOlGgO8T.js} +0 -0
  122. /package/lib/es/{gu-0EahmEdu.js → gu-Bjl0l-cf.js} +0 -0
  123. /package/lib/es/{hi-C2ih9xmB.js → hi-DsAaTPCC.js} +0 -0
  124. /package/lib/es/{hr-CSbbBNUu.js → hr-DT1SBBes.js} +0 -0
  125. /package/lib/es/{hsb-hKsDwaW_.js → hsb-DC_ITc1e.js} +0 -0
  126. /package/lib/es/{hu-BPixuxjf.js → hu-DVk7Y_ka.js} +0 -0
  127. /package/lib/es/{hy-CTtThTdl.js → hy-e995ysyO.js} +0 -0
  128. /package/lib/es/{ia-CYCjbabb.js → ia-Cr4TJH0c.js} +0 -0
  129. /package/lib/es/{id-Cgsp-bEu.js → id-DifDyWg9.js} +0 -0
  130. /package/lib/es/{is-D_Awtowh.js → is-BT8UVRze.js} +0 -0
  131. /package/lib/es/{it-C2qJSkm3.js → it-Bt_Meacx.js} +0 -0
  132. /package/lib/es/{ka-DpGw5nvd.js → ka-jyoLzyDE.js} +0 -0
  133. /package/lib/es/{kmr-CCdNyB20.js → kmr-Cfwhwuff.js} +0 -0
  134. /package/lib/es/{kn-B4tAUtFU.js → kn-C6Lov-DP.js} +0 -0
  135. /package/lib/es/{la-DIUYl8Yo.js → la-DuvHjUWw.js} +0 -0
  136. /package/lib/es/{la-x-classic-DsbLrq-C.js → la-x-classic-yTyAOQEt.js} +0 -0
  137. /package/lib/es/{la-x-liturgic-Ggenbcb5.js → la-x-liturgic-CXeQb4FY.js} +0 -0
  138. /package/lib/es/{lt-BcizI7gZ.js → lt-BBe8DlDF.js} +0 -0
  139. /package/lib/es/{lv-BOgrbf6v.js → lv-Q2BBHnzp.js} +0 -0
  140. /package/lib/es/{ml-CTD7giel.js → ml-2xLVYkVY.js} +0 -0
  141. /package/lib/es/{mn-cyrl-CDxGttkw.js → mn-cyrl-lHM4n0oC.js} +0 -0
  142. /package/lib/es/{mn-cyrl-x-lmc-kjrnm3ii.js → mn-cyrl-x-lmc-3aetruI8.js} +0 -0
  143. /package/lib/es/{mr-DttMNydl.js → mr-CjWJPVmH.js} +0 -0
  144. /package/lib/es/{mul-ethi-mmW8ZEm0.js → mul-ethi-D_CMSMEq.js} +0 -0
  145. /package/lib/es/{nb-DCiD6jLz.js → nb-DI8u59ch.js} +0 -0
  146. /package/lib/es/{nl-BKWsn_4x.js → nl-BHQJ6Gvn.js} +0 -0
  147. /package/lib/es/{nn-b0W3mz5j.js → nn-ntZvarUK.js} +0 -0
  148. /package/lib/es/{no-B3l46gib.js → no-B8ItS0F3.js} +0 -0
  149. /package/lib/es/{oc-zkqkXjNo.js → oc-P_i3-xLA.js} +0 -0
  150. /package/lib/es/{or-DEnI_Cls.js → or-50rxpoq4.js} +0 -0
  151. /package/lib/es/{pa-Sh-QSMIs.js → pa-C54UG8eN.js} +0 -0
  152. /package/lib/es/{pi-DxMx4Uwd.js → pi-B9cgjyG1.js} +0 -0
  153. /package/lib/es/{pl-CISKU0vg.js → pl-9fg-ESVt.js} +0 -0
  154. /package/lib/es/{pms-DUga94hR.js → pms-BRGfm5gS.js} +0 -0
  155. /package/lib/es/{pt-CzW61i2q.js → pt-Cum2_NUC.js} +0 -0
  156. /package/lib/es/{rm-C1U6i4AB.js → rm-C0MIK9N4.js} +0 -0
  157. /package/lib/es/{ro-DSU53KfM.js → ro-0fmdH0HA.js} +0 -0
  158. /package/lib/es/{ru-gduZDLhv.js → ru-v4l-ayaq.js} +0 -0
  159. /package/lib/es/{sa-Bney0xbB.js → sa-CKY9c_Vq.js} +0 -0
  160. /package/lib/es/{sh-cyrl-CCByyO89.js → sh-cyrl-BpCRFOmq.js} +0 -0
  161. /package/lib/es/{sh-latn-CTIiTfzt.js → sh-latn-sRy4Tuaj.js} +0 -0
  162. /package/lib/es/{sk-DK-iy-nO.js → sk-_iOeDNrQ.js} +0 -0
  163. /package/lib/es/{sl-BvzIjkCq.js → sl-DpiklF-D.js} +0 -0
  164. /package/lib/es/{sr-cyrl-7T4T5Th1.js → sr-cyrl-Dpzrbd0W.js} +0 -0
  165. /package/lib/es/{sv-BynygC4t.js → sv-CFm5y56M.js} +0 -0
  166. /package/lib/es/{ta-CglfOvwm.js → ta-BcghgTbD.js} +0 -0
  167. /package/lib/es/{te-Bec4xJud.js → te-B5Spl2Jk.js} +0 -0
  168. /package/lib/es/{th-B67OcLue.js → th-DWX5iPSo.js} +0 -0
  169. /package/lib/es/{tk-CYfVPVLR.js → tk-BMbKB10q.js} +0 -0
  170. /package/lib/es/{tr-BxhGLs2f.js → tr-CIHIuzqc.js} +0 -0
  171. /package/lib/es/{uk-CnWqKnI0.js → uk-Dir3oxLs.js} +0 -0
  172. /package/lib/es/{zh-latn-pinyin-CKxTJrac.js → zh-latn-pinyin-BdYb-Ey_.js} +0 -0
package/lib/cjs/index.js CHANGED
@@ -6,6 +6,19 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __exportAll = (all, no_symbols) => {
10
+ let target = {};
11
+ for (var name in all) {
12
+ __defProp(target, name, {
13
+ get: all[name],
14
+ enumerable: true
15
+ });
16
+ }
17
+ if (!no_symbols) {
18
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
19
+ }
20
+ return target;
21
+ };
9
22
  var __copyProps = (to, from, except, desc) => {
10
23
  if (from && typeof from === "object" || typeof from === "function") {
11
24
  for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
@@ -26,7 +39,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
39
  }) : target, mod));
27
40
 
28
41
  //#endregion
29
- const require_en_us = require('./en-us-Br9JW6Nt.js');
30
42
  let _univerjs_core = require("@univerjs/core");
31
43
  let cjk_regex = require("cjk-regex");
32
44
  cjk_regex = __toESM(cjk_regex);
@@ -309,14 +321,7 @@ function getFontStyleString(textStyle) {
309
321
  let originFontSize = defaultFontSize;
310
322
  if (textStyle.fs) originFontSize = Math.ceil(textStyle.fs);
311
323
  let fontSize = originFontSize;
312
- let fontFamilyResult = defaultFont;
313
- if (textStyle.ff) {
314
- let fontFamily = textStyle.ff;
315
- fontFamily = fontFamily.replace(/"/g, "").replace(/'/g, "");
316
- if (fontFamily.indexOf(" ") > -1) fontFamily = `"${fontFamily}"`;
317
- if (fontFamily == null) fontFamily = defaultFont;
318
- fontFamilyResult = fontFamily;
319
- }
324
+ const fontFamilyResult = normalizeFontFamily(textStyle.ff, defaultFont);
320
325
  const { va: baselineOffset } = textStyle;
321
326
  if (baselineOffset === _univerjs_core.BaselineOffset.SUBSCRIPT || baselineOffset === _univerjs_core.BaselineOffset.SUPERSCRIPT) {
322
327
  const { sbr, spr } = FontCache.getBaselineOffsetInfo(fontFamilyResult, fontSize);
@@ -331,6 +336,13 @@ function getFontStyleString(textStyle) {
331
336
  fontFamily: fontFamilyResult
332
337
  };
333
338
  }
339
+ function normalizeFontFamily(fontFamily, defaultFont) {
340
+ if (!(fontFamily === null || fontFamily === void 0 ? void 0 : fontFamily.trim())) return defaultFont;
341
+ return fontFamily.split(",").map((item) => {
342
+ const family = item.trim().replace(/^['"]|['"]$/g, "");
343
+ return family.includes(" ") ? `"${family}"` : family;
344
+ }).filter(Boolean).join(", ");
345
+ }
334
346
  const CJK_LETTER_REG = cjk_regex.letters().toRegExp();
335
347
  function hasCJKText(text) {
336
348
  return CJK_LETTER_REG.test(text);
@@ -384,6 +396,9 @@ function hasArabic(text) {
384
396
  function hasTibetan(text) {
385
397
  return /[\u0180-\u024F]/gi.test(text);
386
398
  }
399
+ function hasThai(text) {
400
+ return /[\u0E00-\u0E7F]/.test(text);
401
+ }
387
402
  function hasSpace(text) {
388
403
  return /\s+/g.test(text);
389
404
  }
@@ -650,7 +665,7 @@ function getSystemHighlightColor() {
650
665
  }
651
666
 
652
667
  //#endregion
653
- //#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
668
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/typeof.js
654
669
  function _typeof(o) {
655
670
  "@babel/helpers - typeof";
656
671
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
@@ -661,7 +676,7 @@ function _typeof(o) {
661
676
  }
662
677
 
663
678
  //#endregion
664
- //#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
679
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPrimitive.js
665
680
  function toPrimitive(t, r) {
666
681
  if ("object" != _typeof(t) || !t) return t;
667
682
  var e = t[Symbol.toPrimitive];
@@ -674,14 +689,14 @@ function toPrimitive(t, r) {
674
689
  }
675
690
 
676
691
  //#endregion
677
- //#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
692
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/toPropertyKey.js
678
693
  function toPropertyKey(t) {
679
694
  var i = toPrimitive(t, "string");
680
695
  return "symbol" == _typeof(i) ? i : i + "";
681
696
  }
682
697
 
683
698
  //#endregion
684
- //#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
699
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/defineProperty.js
685
700
  function _defineProperty(e, r, t) {
686
701
  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
687
702
  value: t,
@@ -1697,7 +1712,9 @@ var Vector2 = class Vector2 {
1697
1712
  function getDevicePixelRatio() {
1698
1713
  let _pixelRatio = 1;
1699
1714
  const context = createCanvasElement().getContext("2d");
1700
- _pixelRatio = (window.devicePixelRatio || 1) / (context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1);
1715
+ _pixelRatio = (() => {
1716
+ return (window.devicePixelRatio || 1) / (context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1);
1717
+ })();
1701
1718
  if (_pixelRatio < 1) return 1;
1702
1719
  return _pixelRatio;
1703
1720
  }
@@ -2952,6 +2969,37 @@ var Transform = class Transform {
2952
2969
  }
2953
2970
  };
2954
2971
 
2972
+ //#endregion
2973
+ //#region src/basics/zoom.ts
2974
+ const MIN_ZOOM_RATIO = .1;
2975
+ const MAX_ZOOM_RATIO = 4;
2976
+ const PIXEL_DELTA_TO_ZOOM_RATIO = .008;
2977
+ const MAX_WHEEL_ZOOM_STEP = .14;
2978
+ const MAX_WHEEL_ZOOM_STEP_BELOW_ONE = .07;
2979
+ const LINE_DELTA_PIXEL_SIZE = 16;
2980
+ const PAGE_DELTA_PIXEL_SIZE = 800;
2981
+ const ZOOM_RATIO_PRECISION = 100;
2982
+ function clamp(value, min, max) {
2983
+ return Math.min(max, Math.max(min, value));
2984
+ }
2985
+ function normalizeWheelDelta(event) {
2986
+ const deltaY = Number.isFinite(event.deltaY) ? event.deltaY : 0;
2987
+ const deltaX = Number.isFinite(event.deltaX) ? event.deltaX : 0;
2988
+ let delta = Math.abs(deltaY) >= Math.abs(deltaX) ? deltaY : deltaX;
2989
+ if (delta === 0 && typeof event.wheelDelta === "number") delta = -event.wheelDelta / 3;
2990
+ if (event.deltaMode === EventConstants.DOM_DELTA_LINE) delta *= LINE_DELTA_PIXEL_SIZE;
2991
+ else if (event.deltaMode === EventConstants.DOM_DELTA_PAGE) delta *= PAGE_DELTA_PIXEL_SIZE;
2992
+ return delta;
2993
+ }
2994
+ function getNextWheelZoomRatio(currentRatio, event) {
2995
+ const validCurrentRatio = Number.isFinite(currentRatio) ? currentRatio : 1;
2996
+ const normalizedDelta = normalizeWheelDelta(event);
2997
+ if (normalizedDelta === 0) return clamp(validCurrentRatio, MIN_ZOOM_RATIO, MAX_ZOOM_RATIO);
2998
+ const maxStep = validCurrentRatio < 1 ? MAX_WHEEL_ZOOM_STEP_BELOW_ONE : MAX_WHEEL_ZOOM_STEP;
2999
+ const ratioDelta = clamp(-normalizedDelta * PIXEL_DELTA_TO_ZOOM_RATIO, -maxStep, maxStep);
3000
+ return clamp(Math.round((validCurrentRatio + ratioDelta) * ZOOM_RATIO_PRECISION) / ZOOM_RATIO_PRECISION, MIN_ZOOM_RATIO, MAX_ZOOM_RATIO);
3001
+ }
3002
+
2955
3003
  //#endregion
2956
3004
  //#region src/base-object.ts
2957
3005
  const BASE_OBJECT_ARRAY = [
@@ -11083,12 +11131,12 @@ length_base[28] = 258;
11083
11131
  const SHIFT_1 = 11;
11084
11132
  const SHIFT_2 = 5;
11085
11133
  const SHIFT_1_2 = SHIFT_1 - SHIFT_2;
11086
- const OMITTED_BMP_INDEX_1_LENGTH = 65536 >> SHIFT_1;
11134
+ const OMITTED_BMP_INDEX_1_LENGTH = 32;
11087
11135
  const INDEX_2_MASK = (1 << SHIFT_1_2) - 1;
11088
11136
  const INDEX_SHIFT = 2;
11089
11137
  const DATA_MASK = (1 << SHIFT_2) - 1;
11090
- const LSCP_INDEX_2_OFFSET = 65536 >> SHIFT_2;
11091
- const INDEX_1_OFFSET = LSCP_INDEX_2_OFFSET + (1024 >> SHIFT_2) + 32;
11138
+ const LSCP_INDEX_2_OFFSET = 2048;
11139
+ const INDEX_1_OFFSET = 2112;
11092
11140
  const DATA_GRANULARITY = 1 << INDEX_SHIFT;
11093
11141
  var UnicodeTrie = class {
11094
11142
  constructor(data) {
@@ -12053,6 +12101,17 @@ var Liquid = class {
12053
12101
  }
12054
12102
  };
12055
12103
 
12104
+ //#endregion
12105
+ //#region src/components/docs/table-render-viewport.ts
12106
+ let docsTableRenderViewportProvider = null;
12107
+ function setDocsTableRenderViewportProvider(provider) {
12108
+ docsTableRenderViewportProvider = provider;
12109
+ }
12110
+ function getDocsTableRenderViewport(unitId, tableId) {
12111
+ var _docsTableRenderViewp;
12112
+ return (_docsTableRenderViewp = docsTableRenderViewportProvider === null || docsTableRenderViewportProvider === void 0 ? void 0 : docsTableRenderViewportProvider(unitId, tableId)) !== null && _docsTableRenderViewp !== void 0 ? _docsTableRenderViewp : null;
12113
+ }
12114
+
12056
12115
  //#endregion
12057
12116
  //#region src/components/docs/view-model/data-stream-tree-node.ts
12058
12117
  var DataStreamTreeNode = class DataStreamTreeNode {
@@ -12221,6 +12280,17 @@ function parseDataStreamToTree(dataStream, tables) {
12221
12280
  const tableRowList = [];
12222
12281
  const tableCellList = [];
12223
12282
  const currentBlocks = [];
12283
+ const getParagraphList = () => tableCellList.length > 0 ? cellParagraphList : paragraphList;
12284
+ const appendToPreviousParagraph = (char) => {
12285
+ const tempParagraphList = getParagraphList();
12286
+ const lastParagraph = tempParagraphList[tempParagraphList.length - 1];
12287
+ if (lastParagraph) {
12288
+ var _lastParagraph$conten;
12289
+ lastParagraph.content = `${(_lastParagraph$conten = lastParagraph.content) !== null && _lastParagraph$conten !== void 0 ? _lastParagraph$conten : ""}${char}`;
12290
+ return true;
12291
+ }
12292
+ return false;
12293
+ };
12224
12294
  for (let i = 0; i < dataStreamLen; i++) {
12225
12295
  const char = dataStream[i];
12226
12296
  if (char === _univerjs_core.DataStreamTreeTokenType.PARAGRAPH) {
@@ -12281,6 +12351,9 @@ function parseDataStreamToTree(dataStream, tables) {
12281
12351
  const cellNode = tableCellList.pop();
12282
12352
  const lastRow = tableRowList[tableRowList.length - 1];
12283
12353
  batchParent(lastRow, [cellNode], _univerjs_core.DataStreamTreeNodeType.TABLE_ROW);
12354
+ } else if (char === _univerjs_core.DataStreamTreeTokenType.BLOCK_START) content += char;
12355
+ else if (char === _univerjs_core.DataStreamTreeTokenType.BLOCK_END) {
12356
+ if (content.length > 0 || !appendToPreviousParagraph(char)) content += char;
12284
12357
  } else if (char === _univerjs_core.DataStreamTreeTokenType.CUSTOM_BLOCK) {
12285
12358
  currentBlocks.push(i);
12286
12359
  content += char;
@@ -12597,6 +12670,8 @@ function _createSkeletonWordOrLetter(glyphType, content, config, glyphWidth, gly
12597
12670
  _univerjs_core.DataStreamTreeTokenType.TABLE_ROW_END,
12598
12671
  _univerjs_core.DataStreamTreeTokenType.TABLE_CELL_START,
12599
12672
  _univerjs_core.DataStreamTreeTokenType.TABLE_CELL_END,
12673
+ _univerjs_core.DataStreamTreeTokenType.BLOCK_START,
12674
+ _univerjs_core.DataStreamTreeTokenType.BLOCK_END,
12600
12675
  _univerjs_core.DataStreamTreeTokenType.CUSTOM_RANGE_START,
12601
12676
  _univerjs_core.DataStreamTreeTokenType.CUSTOM_RANGE_END,
12602
12677
  _univerjs_core.DataStreamTreeTokenType.COLUMN_BREAK,
@@ -13106,7 +13181,16 @@ function createTableSkeleton(ctx, curPage, viewModel, tableNode, sectionBreakCon
13106
13181
  let left = 0;
13107
13182
  let rowHeight = 0;
13108
13183
  for (const cellNode of cellNodes) {
13109
- const cellPageSkeleton = createSkeletonCellPages(ctx, viewModel, cellNode, sectionBreakConfig, table, row, cellNodes.indexOf(cellNode))[0];
13184
+ const col = cellNodes.indexOf(cellNode);
13185
+ const cellConfig = rowSource.tableCells[col];
13186
+ if (isCoveredTableCell(cellConfig)) {
13187
+ const cellPageSkeleton = createMergedCoveredCellPage(ctx, sectionBreakConfig, table, row, col, rowSkeleton);
13188
+ cellPageSkeleton.left = left;
13189
+ if (shouldAdvanceTableCellLeft(table, row, col)) left += cellPageSkeleton.pageWidth;
13190
+ rowSkeleton.cells.push(cellPageSkeleton);
13191
+ continue;
13192
+ }
13193
+ const cellPageSkeleton = createSkeletonCellPages(ctx, viewModel, cellNode, sectionBreakConfig, table, row, col)[0];
13110
13194
  const { marginTop = 0, marginBottom = 0 } = cellPageSkeleton;
13111
13195
  const pageHeight = cellPageSkeleton.height + marginTop + marginBottom;
13112
13196
  cellPageSkeleton.left = left;
@@ -13116,7 +13200,7 @@ function createTableSkeleton(ctx, curPage, viewModel, tableNode, sectionBreakCon
13116
13200
  rowHeight = Math.max(rowHeight, pageHeight);
13117
13201
  }
13118
13202
  if (hRule === _univerjs_core.TableRowHeightRule.AT_LEAST) rowHeight = Math.max(rowHeight, val.v);
13119
- else if (hRule === _univerjs_core.TableRowHeightRule.EXACT) rowHeight = val.v;
13203
+ else if (hRule === _univerjs_core.TableRowHeightRule.EXACT) rowHeight = Math.max(rowHeight, val.v);
13120
13204
  for (const cellPageSkeleton of rowSkeleton.cells) cellPageSkeleton.pageHeight = rowHeight;
13121
13205
  const rowConfig = table.tableRows[row];
13122
13206
  for (let i = 0; i < rowConfig.tableCells.length; i++) {
@@ -13147,6 +13231,7 @@ function createTableSkeleton(ctx, curPage, viewModel, tableNode, sectionBreakCon
13147
13231
  }
13148
13232
  tableSkeleton.width = tableWidth;
13149
13233
  tableSkeleton.height = rowTop;
13234
+ applyMergedCellSpanHeights(tableSkeleton);
13150
13235
  const { pageWidth, marginLeft = 0, marginRight = 0 } = curPage;
13151
13236
  tableSkeleton.left = _getTableLeft(pageWidth - marginLeft - marginRight, tableWidth, table.align, table.indent);
13152
13237
  return tableSkeleton;
@@ -13170,14 +13255,14 @@ function createTableSkeletons(ctx, curPage, viewModel, tableNode, sectionBreakCo
13170
13255
  fromCurrentPage: false
13171
13256
  };
13172
13257
  }
13173
- const needRepeatHeader = table.tableRows[0].repeatHeaderRow === _univerjs_core.BooleanNumber.TRUE;
13258
+ const repeatRows = getLeadingRepeatHeaderRows(table, rowNodes);
13174
13259
  const curTableSkeleton = getNullTableSkeleton(startIndex, endIndex, table);
13175
13260
  const createCache = {
13176
13261
  rowTop: 0,
13177
13262
  tableWidth: 0,
13178
13263
  remainHeight: availableHeight,
13179
- repeatRow: needRepeatHeader ? rowNodes[0] : null,
13180
- repeatRowHeight: 0
13264
+ repeatRows,
13265
+ repeatRowsHeight: 0
13181
13266
  };
13182
13267
  skeTables.push(curTableSkeleton);
13183
13268
  for (const rowNode of rowNodes) dealWithTableRow(ctx, curPage, skeTables, viewModel, sectionBreakConfig, rowNode, rowNodes.indexOf(rowNode), table, createCache);
@@ -13193,6 +13278,7 @@ function updateTableSkeletonsPosition(cache, curPage, skeTables, table) {
13193
13278
  const tableLeft = _getTableLeft(pageWidth - marginLeft - marginRight, tableWidth, table.align, table.indent);
13194
13279
  let tableIndex = 0;
13195
13280
  for (const tableSkeleton of skeTables) {
13281
+ applyMergedCellSpanHeights(tableSkeleton);
13196
13282
  tableSkeleton.width = tableWidth;
13197
13283
  tableSkeleton.left = tableLeft;
13198
13284
  tableSkeleton.st = tableSkeleton.rows[0].st - 1;
@@ -13209,7 +13295,7 @@ function getCurTableSkeleton(skeTables) {
13209
13295
  function getAvailableHeight(curPage, cache, hasRepeatHeader) {
13210
13296
  const { marginTop, marginBottom, pageHeight } = curPage;
13211
13297
  let pageContentHeight = pageHeight - marginTop - marginBottom;
13212
- if (hasRepeatHeader) pageContentHeight -= cache.repeatRowHeight;
13298
+ if (hasRepeatHeader) pageContentHeight -= cache.repeatRowsHeight;
13213
13299
  return pageContentHeight;
13214
13300
  }
13215
13301
  function dealWithTableRow(ctx, curPage, skeTables, viewModel, sectionBreakConfig, rowNode, row, table, cache, isRepeatRow = false) {
@@ -13227,17 +13313,13 @@ function dealWithTableRow(ctx, curPage, skeTables, viewModel, sectionBreakConfig
13227
13313
  const rowHeights = [0];
13228
13314
  for (const cellNode of cellNodes) {
13229
13315
  const col = cellNodes.indexOf(cellNode);
13230
- const cellPageSkeletons = createSkeletonCellPages(ctx, viewModel, cellNode, sectionBreakConfig, table, row, col, canRowSplit && !needOpenNewTable ? cache.remainHeight : availableHeight, pageContentHeight);
13231
- while (rowSkeletons.length < cellPageSkeletons.length) {
13232
- const rowSkeleton = _getNullTableRowSkeleton(startIndex, endIndex, row, rowSource, isRepeatRow);
13233
- const colCount = cellNodes.length;
13234
- rowSkeleton.cells = [...new Array(colCount)].map((_, i) => {
13235
- const cellSkeleton = createNullCellPage(ctx, sectionBreakConfig, table, row, i).page;
13236
- cellSkeleton.parent = rowSkeleton;
13237
- return cellSkeleton;
13238
- });
13239
- rowSkeletons.push(rowSkeleton);
13316
+ const cellConfig = rowSource.tableCells[col];
13317
+ if (isCoveredTableCell(cellConfig)) {
13318
+ if (rowSkeletons.length === 0) rowSkeletons.push(createNullRowSkeletonWithCells(ctx, sectionBreakConfig, table, row, startIndex, endIndex, rowSource, isRepeatRow));
13319
+ continue;
13240
13320
  }
13321
+ const cellPageSkeletons = createSkeletonCellPages(ctx, viewModel, cellNode, sectionBreakConfig, table, row, col, canRowSplit && !needOpenNewTable ? cache.remainHeight : availableHeight, pageContentHeight);
13322
+ while (rowSkeletons.length < cellPageSkeletons.length) rowSkeletons.push(createNullRowSkeletonWithCells(ctx, sectionBreakConfig, table, row, startIndex, endIndex, rowSource, isRepeatRow));
13241
13323
  while (rowHeights.length < cellPageSkeletons.length) rowHeights.push(0);
13242
13324
  for (const cellPageSkeleton of cellPageSkeletons) {
13243
13325
  const { marginTop: cellMarginTop = 0, marginBottom: cellMarginBottom = 0 } = cellPageSkeleton;
@@ -13252,18 +13334,20 @@ function dealWithTableRow(ctx, curPage, skeTables, viewModel, sectionBreakConfig
13252
13334
  for (const rowSke of rowSkeletons) {
13253
13335
  const rowIndex = rowSkeletons.indexOf(rowSke);
13254
13336
  if (hRule === _univerjs_core.TableRowHeightRule.AT_LEAST) rowHeights[rowIndex] = Math.max(rowHeights[rowIndex], val.v);
13255
- else if (hRule === _univerjs_core.TableRowHeightRule.EXACT) rowHeights[rowIndex] = val.v;
13337
+ else if (hRule === _univerjs_core.TableRowHeightRule.EXACT) rowHeights[rowIndex] = Math.max(rowHeights[rowIndex], val.v);
13256
13338
  rowHeights[rowIndex] = Math.min(rowHeights[rowIndex], pageContentHeight);
13257
13339
  let left = 0;
13258
- for (const cellPageSkeleton of rowSke.cells) {
13340
+ for (let col = 0; col < rowSke.cells.length; col++) {
13341
+ const cellPageSkeleton = rowSke.cells[col];
13342
+ if (cellPageSkeleton == null) continue;
13259
13343
  cellPageSkeleton.left = left;
13260
13344
  cellPageSkeleton.pageHeight = rowHeights[rowIndex];
13261
- left += cellPageSkeleton.pageWidth;
13345
+ if (shouldAdvanceTableCellLeft(table, rowSke.index, col)) left += cellPageSkeleton.pageWidth;
13262
13346
  cache.tableWidth = Math.max(cache.tableWidth, left);
13263
13347
  }
13264
13348
  rowSke.height = rowHeights[rowIndex];
13265
13349
  }
13266
- if (row === 0 && cache.repeatRow) cache.repeatRowHeight = rowHeights[rowHeights.length - 1];
13350
+ if (!isRepeatRow && row < cache.repeatRows.length) cache.repeatRowsHeight += rowHeights.reduce((total, height) => total + height, 0);
13267
13351
  for (const rowSkeleton of rowSkeletons) _verticalAlignInCell(rowSkeleton, rowSource);
13268
13352
  while (rowSkeletons.length > 0) {
13269
13353
  const rowSkeleton = rowSkeletons.shift();
@@ -13274,10 +13358,11 @@ function dealWithTableRow(ctx, curPage, skeTables, viewModel, sectionBreakConfig
13274
13358
  if (curTableSkeleton.rows.length > 0) {
13275
13359
  curTableSkeleton = getNullTableSkeleton(startIndex, endIndex, table);
13276
13360
  skeTables.push(curTableSkeleton);
13277
- if (cache.repeatRow && isRepeatRow === false && row !== 0 && rowSkeleton.index !== lastRow.index) {
13278
- const FIRST_ROW_INDEX = 0;
13361
+ if (cache.repeatRows.length > 0 && isRepeatRow === false && row >= cache.repeatRows.length && rowSkeleton.index !== lastRow.index) {
13279
13362
  cache.remainHeight = getAvailableHeight(curPage, cache, false);
13280
- dealWithTableRow(ctx, curPage, skeTables, viewModel, sectionBreakConfig, cache.repeatRow, FIRST_ROW_INDEX, table, cache, true);
13363
+ cache.repeatRows.forEach((repeatRow, repeatRowIndex) => {
13364
+ dealWithTableRow(ctx, curPage, skeTables, viewModel, sectionBreakConfig, repeatRow, repeatRowIndex, table, cache, true);
13365
+ });
13281
13366
  }
13282
13367
  }
13283
13368
  }
@@ -13290,6 +13375,15 @@ function dealWithTableRow(ctx, curPage, skeTables, viewModel, sectionBreakConfig
13290
13375
  cache.rowTop += rowSkeleton.height;
13291
13376
  }
13292
13377
  }
13378
+ function getLeadingRepeatHeaderRows(table, rowNodes) {
13379
+ const repeatRows = [];
13380
+ for (let index = 0; index < rowNodes.length; index++) {
13381
+ var _table$tableRows$inde;
13382
+ if (((_table$tableRows$inde = table.tableRows[index]) === null || _table$tableRows$inde === void 0 ? void 0 : _table$tableRows$inde.repeatHeaderRow) !== _univerjs_core.BooleanNumber.TRUE) break;
13383
+ repeatRows.push(rowNodes[index]);
13384
+ }
13385
+ return repeatRows;
13386
+ }
13293
13387
  function _verticalAlignInCell(rowSkeleton, rowSource) {
13294
13388
  for (let i = 0; i < rowSource.tableCells.length; i++) {
13295
13389
  const cellConfig = rowSource.tableCells[i];
@@ -13314,6 +13408,75 @@ function _verticalAlignInCell(rowSkeleton, rowSource) {
13314
13408
  cellPageSkeleton.marginTop = marginTop;
13315
13409
  }
13316
13410
  }
13411
+ function createNullRowSkeletonWithCells(ctx, sectionBreakConfig, table, row, startIndex, endIndex, rowSource, isRepeatRow = false) {
13412
+ const rowSkeleton = _getNullTableRowSkeleton(startIndex, endIndex, row, rowSource, isRepeatRow);
13413
+ const colCount = rowSource.tableCells.length;
13414
+ rowSkeleton.cells = Array.from({ length: colCount }, (_, col) => createMergedAwareNullCellPage(ctx, sectionBreakConfig, table, row, col, rowSkeleton));
13415
+ return rowSkeleton;
13416
+ }
13417
+ function createMergedCoveredCellPage(ctx, sectionBreakConfig, table, row, col, rowSkeleton) {
13418
+ return createMergedAwareNullCellPage(ctx, sectionBreakConfig, table, row, col, rowSkeleton);
13419
+ }
13420
+ function applyMergedCellSpanHeights(tableSkeleton) {
13421
+ var _tableSkeleton$tableS, _tableSkeleton$tableS2;
13422
+ const tableRows = (_tableSkeleton$tableS = (_tableSkeleton$tableS2 = tableSkeleton.tableSource) === null || _tableSkeleton$tableS2 === void 0 ? void 0 : _tableSkeleton$tableS2.tableRows) !== null && _tableSkeleton$tableS !== void 0 ? _tableSkeleton$tableS : [];
13423
+ if (tableRows.length === 0) return;
13424
+ const skeletonRowsByIndex = new Map(tableSkeleton.rows.map((row) => [row.index, row]));
13425
+ tableRows.forEach((rowSource, rowIndex) => {
13426
+ rowSource.tableCells.forEach((cellConfig, columnIndex) => {
13427
+ var _cellConfig$rowSpan, _cellConfig$columnSpa;
13428
+ const rowSpan = (_cellConfig$rowSpan = cellConfig.rowSpan) !== null && _cellConfig$rowSpan !== void 0 ? _cellConfig$rowSpan : 1;
13429
+ const columnSpan = (_cellConfig$columnSpa = cellConfig.columnSpan) !== null && _cellConfig$columnSpa !== void 0 ? _cellConfig$columnSpa : 1;
13430
+ if (rowSpan <= 1 && columnSpan <= 1) return;
13431
+ const masterRow = skeletonRowsByIndex.get(rowIndex);
13432
+ const masterCell = masterRow === null || masterRow === void 0 ? void 0 : masterRow.cells[columnIndex];
13433
+ if (!masterCell || masterCell.isMergedCellCovered) return;
13434
+ let pageHeight = 0;
13435
+ for (let row = rowIndex; row < rowIndex + rowSpan; row++) {
13436
+ var _skeletonRowsByIndex$, _skeletonRowsByIndex$2;
13437
+ pageHeight += (_skeletonRowsByIndex$ = (_skeletonRowsByIndex$2 = skeletonRowsByIndex.get(row)) === null || _skeletonRowsByIndex$2 === void 0 ? void 0 : _skeletonRowsByIndex$2.height) !== null && _skeletonRowsByIndex$ !== void 0 ? _skeletonRowsByIndex$ : 0;
13438
+ }
13439
+ if (pageHeight > 0) masterCell.pageHeight = pageHeight;
13440
+ });
13441
+ });
13442
+ }
13443
+ function createMergedAwareNullCellPage(ctx, sectionBreakConfig, table, row, col, rowSkeleton) {
13444
+ const cellSkeleton = createNullCellPage(ctx, sectionBreakConfig, table, row, col).page;
13445
+ cellSkeleton.parent = rowSkeleton;
13446
+ if (isCoveredTableCell(table.tableRows[row].tableCells[col])) Object.assign(cellSkeleton, { isMergedCellCovered: true });
13447
+ return cellSkeleton;
13448
+ }
13449
+ function shouldAdvanceTableCellLeft(table, row, col) {
13450
+ var _table$tableRows$row;
13451
+ if (!isCoveredTableCell((_table$tableRows$row = table.tableRows[row]) === null || _table$tableRows$row === void 0 ? void 0 : _table$tableRows$row.tableCells[col])) return true;
13452
+ const masterCell = findMergedMasterCell(table, row, col);
13453
+ if (masterCell == null) return true;
13454
+ return masterCell.row !== row;
13455
+ }
13456
+ function findMergedMasterCell(table, row, col) {
13457
+ for (let rowIndex = 0; rowIndex <= row; rowIndex++) {
13458
+ const rowSource = table.tableRows[rowIndex];
13459
+ if (rowSource == null) continue;
13460
+ for (let columnIndex = 0; columnIndex < rowSource.tableCells.length; columnIndex++) {
13461
+ var _cellConfig$rowSpan2, _cellConfig$columnSpa2;
13462
+ const cellConfig = rowSource.tableCells[columnIndex];
13463
+ if (isCoveredTableCell(cellConfig)) continue;
13464
+ const rowSpan = Math.max(1, (_cellConfig$rowSpan2 = cellConfig.rowSpan) !== null && _cellConfig$rowSpan2 !== void 0 ? _cellConfig$rowSpan2 : 1);
13465
+ const columnSpan = Math.max(1, (_cellConfig$columnSpa2 = cellConfig.columnSpan) !== null && _cellConfig$columnSpa2 !== void 0 ? _cellConfig$columnSpa2 : 1);
13466
+ if (rowSpan <= 1 && columnSpan <= 1) continue;
13467
+ const containsRow = row >= rowIndex && row < rowIndex + rowSpan;
13468
+ const containsColumn = col >= columnIndex && col < columnIndex + columnSpan;
13469
+ if (containsRow && containsColumn) return {
13470
+ row: rowIndex,
13471
+ col: columnIndex
13472
+ };
13473
+ }
13474
+ }
13475
+ return null;
13476
+ }
13477
+ function isCoveredTableCell(cellConfig) {
13478
+ return (cellConfig === null || cellConfig === void 0 ? void 0 : cellConfig.rowSpan) === 0 || (cellConfig === null || cellConfig === void 0 ? void 0 : cellConfig.columnSpan) === 0;
13479
+ }
13317
13480
  function _getTableLeft(pageWidth, tableWidth, align, indent = { v: 0 }) {
13318
13481
  switch (align) {
13319
13482
  case _univerjs_core.TableAlignmentType.START: return indent.v;
@@ -14419,13 +14582,13 @@ const DEFAULT_PAGE_SIZE = {
14419
14582
  const DEFAULT_MODERN_DOCUMENT_STYLE = {
14420
14583
  pageNumberStart: 1,
14421
14584
  pageSize: {
14422
- width: ptToPixel(595),
14585
+ width: _univerjs_core.MODERN_DOCUMENT_WIDTH[_univerjs_core.ModernDocumentWidthMode.MEDIUM],
14423
14586
  height: Number.POSITIVE_INFINITY
14424
14587
  },
14425
- marginTop: ptToPixel(50),
14426
- marginBottom: ptToPixel(50),
14427
- marginRight: ptToPixel(50),
14428
- marginLeft: ptToPixel(50),
14588
+ marginTop: _univerjs_core.MODERN_DOCUMENT_DEFAULT_MARGIN,
14589
+ marginBottom: _univerjs_core.MODERN_DOCUMENT_DEFAULT_MARGIN,
14590
+ marginRight: _univerjs_core.MODERN_DOCUMENT_DEFAULT_MARGIN,
14591
+ marginLeft: _univerjs_core.MODERN_DOCUMENT_DEFAULT_MARGIN,
14429
14592
  renderConfig: {
14430
14593
  vertexAngle: 0,
14431
14594
  centerAngle: 0,
@@ -14455,8 +14618,13 @@ function prepareSectionBreakConfig(ctx, nodeIndex) {
14455
14618
  const { documentFlavor } = documentStyle;
14456
14619
  let sectionBreak = viewModel.getSectionBreak(sectionNode.endIndex) || DEFAULT_SECTION_BREAK;
14457
14620
  if (documentFlavor === _univerjs_core.DocumentFlavor.MODERN) {
14621
+ var _documentStyle$pageSi, _documentStyle$pageSi2;
14622
+ const modernPageWidth = (_documentStyle$pageSi = (_documentStyle$pageSi2 = documentStyle.pageSize) === null || _documentStyle$pageSi2 === void 0 ? void 0 : _documentStyle$pageSi2.width) !== null && _documentStyle$pageSi !== void 0 ? _documentStyle$pageSi : DEFAULT_MODERN_DOCUMENT_STYLE.pageSize.width;
14458
14623
  sectionBreak = Object.assign({}, sectionBreak, DEFAULT_MODERN_SECTION_BREAK);
14459
- documentStyle = Object.assign({}, documentStyle, DEFAULT_MODERN_DOCUMENT_STYLE);
14624
+ documentStyle = Object.assign({}, documentStyle, DEFAULT_MODERN_DOCUMENT_STYLE, { pageSize: {
14625
+ ...DEFAULT_MODERN_DOCUMENT_STYLE.pageSize,
14626
+ width: modernPageWidth
14627
+ } });
14460
14628
  }
14461
14629
  const { pageNumberStart: global_pageNumberStart = 1, pageSize: global_pageSize = DEFAULT_PAGE_SIZE, pageOrient: global_pageOrient = _univerjs_core.PageOrientType.PORTRAIT, defaultHeaderId: global_defaultHeaderId, defaultFooterId: global_defaultFooterId, evenPageHeaderId: global_evenPageHeaderId, evenPageFooterId: global_evenPageFooterId, firstPageHeaderId: global_firstPageHeaderId, firstPageFooterId: global_firstPageFooterId, useFirstPageHeaderFooter: global_useFirstPageHeaderFooter, evenAndOddHeaders: global_evenAndOddHeaders, marginTop: global_marginTop = 0, marginBottom: global_marginBottom = 0, marginRight: global_marginRight = 0, marginLeft: global_marginLeft = 0, marginHeader: global_marginHeader = 0, marginFooter: global_marginFooter = 0, autoHyphenation = _univerjs_core.BooleanNumber.FALSE, doNotHyphenateCaps = _univerjs_core.BooleanNumber.FALSE, consecutiveHyphenLimit = Number.POSITIVE_INFINITY, hyphenationZone, renderConfig: global_renderConfig = {
14462
14630
  horizontalAlign: _univerjs_core.HorizontalAlign.LEFT,
@@ -14693,12 +14861,14 @@ function _createSkeletonHeaderFooter(ctx, headerOrFooterViewModel, sectionBreakC
14693
14861
  return page;
14694
14862
  }
14695
14863
  function createNullCellPage(ctx, sectionBreakConfig, tableConfig, row, col, availableHeight = Number.POSITIVE_INFINITY, maxCellPageHeight = Number.POSITIVE_INFINITY) {
14696
- var _ref, _cellConfig$margin;
14864
+ var _ref, _cellConfig$margin, _cellConfig$columnSpa;
14697
14865
  const { lists, footerTreeMap, headerTreeMap, localeService, drawings } = sectionBreakConfig;
14698
14866
  const { skeletonResourceReference } = ctx;
14699
14867
  const { cellMargin, tableRows, tableColumns, tableId } = tableConfig;
14700
- const { start = { v: 10 }, end = { v: 10 }, top = { v: 5 }, bottom = { v: 5 } } = (_ref = (_cellConfig$margin = tableRows[row].tableCells[col].margin) !== null && _cellConfig$margin !== void 0 ? _cellConfig$margin : cellMargin) !== null && _ref !== void 0 ? _ref : {};
14701
- const pageWidth = tableColumns[col].size.width.v;
14868
+ const cellConfig = tableRows[row].tableCells[col];
14869
+ const { start = { v: 10 }, end = { v: 10 }, top = { v: 5 }, bottom = { v: 5 } } = (_ref = (_cellConfig$margin = cellConfig.margin) !== null && _cellConfig$margin !== void 0 ? _cellConfig$margin : cellMargin) !== null && _ref !== void 0 ? _ref : {};
14870
+ const columnSpan = Math.max(1, (_cellConfig$columnSpa = cellConfig.columnSpan) !== null && _cellConfig$columnSpa !== void 0 ? _cellConfig$columnSpa : 1);
14871
+ const pageWidth = tableColumns.slice(col, col + columnSpan).reduce((sum, column) => sum + column.size.width.v, 0);
14702
14872
  const pageHeight = maxCellPageHeight;
14703
14873
  const cellSectionBreakConfig = {
14704
14874
  lists,
@@ -14727,6 +14897,7 @@ function createNullCellPage(ctx, sectionBreakConfig, tableConfig, row, col, avai
14727
14897
  };
14728
14898
  }
14729
14899
  function createSkeletonCellPages(ctx, viewModel, cellNode, sectionBreakConfig, tableConfig, row, col, availableHeight = Number.POSITIVE_INFINITY, maxCellPageHeight = Number.POSITIVE_INFINITY) {
14900
+ var _ctx$dataModel, _ctx$dataModel$getBod;
14730
14901
  const sectionNode = cellNode.children[0];
14731
14902
  const { page: areaPage, sectionBreakConfig: cellSectionBreakConfig } = createNullCellPage(ctx, sectionBreakConfig, tableConfig, row, col, availableHeight, maxCellPageHeight);
14732
14903
  const { pages } = dealWithSection(ctx, viewModel, sectionNode, areaPage, cellSectionBreakConfig);
@@ -14735,9 +14906,36 @@ function createSkeletonCellPages(ctx, viewModel, cellNode, sectionBreakConfig, t
14735
14906
  p.segmentId = tableConfig.tableId;
14736
14907
  }
14737
14908
  updateBlockIndex(pages, cellNode.startIndex);
14909
+ applyTrailingCellBlockRangeSpaceBelow(pages, (_ctx$dataModel = ctx.dataModel) === null || _ctx$dataModel === void 0 || (_ctx$dataModel$getBod = _ctx$dataModel.getBody) === null || _ctx$dataModel$getBod === void 0 ? void 0 : _ctx$dataModel$getBod.call(_ctx$dataModel), cellNode.endIndex);
14738
14910
  updateInlineDrawingCoordsAndBorder(ctx, pages);
14911
+ expandCellPageHeightForInlineDrawings(pages);
14739
14912
  return pages;
14740
14913
  }
14914
+ function expandCellPageHeightForInlineDrawings(pages) {
14915
+ for (const page of pages) {
14916
+ var _page$skeDrawings;
14917
+ (_page$skeDrawings = page.skeDrawings) === null || _page$skeDrawings === void 0 || _page$skeDrawings.forEach((drawing) => {
14918
+ var _drawing$drawingOrigi, _drawing$aTop, _drawing$height;
14919
+ if (((_drawing$drawingOrigi = drawing.drawingOrigin) === null || _drawing$drawingOrigi === void 0 ? void 0 : _drawing$drawingOrigi.layoutType) !== _univerjs_core.PositionedObjectLayoutType.INLINE) return;
14920
+ const drawingBottom = ((_drawing$aTop = drawing.aTop) !== null && _drawing$aTop !== void 0 ? _drawing$aTop : 0) + ((_drawing$height = drawing.height) !== null && _drawing$height !== void 0 ? _drawing$height : 0);
14921
+ if (drawingBottom > page.height) page.height = drawingBottom;
14922
+ });
14923
+ }
14924
+ }
14925
+ function applyTrailingCellBlockRangeSpaceBelow(pages, body, cellEndIndex) {
14926
+ const blockRanges = body === null || body === void 0 ? void 0 : body.blockRanges;
14927
+ const trailingBlockRangeSpace = 28;
14928
+ if (!(blockRanges === null || blockRanges === void 0 ? void 0 : blockRanges.length)) return;
14929
+ for (const page of pages) {
14930
+ var _page$sections$at, _body$paragraphs;
14931
+ const lastLine = (_page$sections$at = page.sections.at(-1)) === null || _page$sections$at === void 0 || (_page$sections$at = _page$sections$at.columns.at(-1)) === null || _page$sections$at === void 0 ? void 0 : _page$sections$at.lines.at(-1);
14932
+ if (!lastLine) continue;
14933
+ const paragraphIndex = lastLine.paragraphIndex;
14934
+ if (!blockRanges.some((range) => range.startIndex < paragraphIndex && paragraphIndex < range.endIndex)) continue;
14935
+ if (body === null || body === void 0 || (_body$paragraphs = body.paragraphs) === null || _body$paragraphs === void 0 ? void 0 : _body$paragraphs.some((paragraph) => paragraph.startIndex > paragraphIndex && paragraph.startIndex < cellEndIndex)) continue;
14936
+ page.height += lastLine.spaceBelowApply || trailingBlockRangeSpace;
14937
+ }
14938
+ }
14741
14939
  function _getVerticalMargin(marginTB, headerOrFooter, pageHeight) {
14742
14940
  if (!headerOrFooter || headerOrFooter.sections[0].columns[0].lines.length === 0) return marginTB;
14743
14941
  const HeaderFooterPageHeight = headerOrFooter.height + headerOrFooter.marginTop + headerOrFooter.marginBottom;
@@ -15144,6 +15342,11 @@ function ___getLevelAndSuffix(levelAndSuffixPre) {
15144
15342
 
15145
15343
  //#endregion
15146
15344
  //#region src/components/docs/layout/block/paragraph/linebreaking.ts
15345
+ const BLOCK_LAYOUT_OUTER_SPACING_MAP = new Map([
15346
+ ["callout", 34],
15347
+ ["code", 32],
15348
+ ["quote", 24]
15349
+ ]);
15147
15350
  function _getListLevelAncestors(bullet, listLevel) {
15148
15351
  if (!bullet || !listLevel) return;
15149
15352
  const { listId, nestingLevel } = bullet;
@@ -15170,6 +15373,57 @@ function _updateListLevelAncestors(paragraph, bullet, bulletSkeleton, listLevel)
15170
15373
  cacheItem.splice(nestingLevel + 1);
15171
15374
  listLevel === null || listLevel === void 0 || listLevel.set(listId, cacheItem);
15172
15375
  }
15376
+ function _withMinSpacing(style, key, value) {
15377
+ var _current$v;
15378
+ const current = style[key];
15379
+ const nextValue = Math.max((_current$v = current === null || current === void 0 ? void 0 : current.v) !== null && _current$v !== void 0 ? _current$v : 0, value);
15380
+ style[key] = {
15381
+ ...current,
15382
+ v: nextValue
15383
+ };
15384
+ }
15385
+ function _getNextAdjacentBlockRange(blockRanges, blockRange) {
15386
+ return blockRanges === null || blockRanges === void 0 ? void 0 : blockRanges.filter((range) => range.startIndex > blockRange.endIndex).sort((left, right) => left.startIndex - right.startIndex)[0];
15387
+ }
15388
+ function _hasNextAdjacentLayoutBlockRange(blockRanges, blockRange) {
15389
+ const nextBlockRange = _getNextAdjacentBlockRange(blockRanges, blockRange);
15390
+ return nextBlockRange != null && BLOCK_LAYOUT_OUTER_SPACING_MAP.has(nextBlockRange.blockType) && nextBlockRange.startIndex === blockRange.endIndex + 1;
15391
+ }
15392
+ function _applyDefaultLayoutParagraphStyle(style, hasBlockRange) {
15393
+ if (style.lineSpacing == null) style.lineSpacing = _univerjs_core.DEFAULT_DOCUMENT_PARAGRAPH_LINE_SPACING;
15394
+ if (hasBlockRange) return;
15395
+ if (style.spaceAbove == null) style.spaceAbove = { v: _univerjs_core.DEFAULT_DOCUMENT_PARAGRAPH_SPACE_ABOVE };
15396
+ if (style.spaceBelow == null) style.spaceBelow = { v: _univerjs_core.DEFAULT_DOCUMENT_PARAGRAPH_SPACE_BELOW };
15397
+ }
15398
+ function _applyBlockRangeLayoutParagraphStyle(body, paragraph, paragraphStyle, shouldApplyDocumentDefaults) {
15399
+ var _body$paragraphs, _BLOCK_LAYOUT_OUTER_S;
15400
+ const style = _univerjs_core.Tools.deepClone(paragraphStyle);
15401
+ const blockRanges = body === null || body === void 0 ? void 0 : body.blockRanges;
15402
+ if (!(blockRanges === null || blockRanges === void 0 ? void 0 : blockRanges.length)) {
15403
+ if (shouldApplyDocumentDefaults) _applyDefaultLayoutParagraphStyle(style, false);
15404
+ return style;
15405
+ }
15406
+ const blockRange = blockRanges.find((range) => BLOCK_LAYOUT_OUTER_SPACING_MAP.has(range.blockType) && paragraph.startIndex > range.startIndex && paragraph.startIndex < range.endIndex);
15407
+ if (!blockRange) {
15408
+ if (shouldApplyDocumentDefaults) _applyDefaultLayoutParagraphStyle(style, false);
15409
+ return style;
15410
+ }
15411
+ _applyDefaultLayoutParagraphStyle(style, true);
15412
+ const blockParagraphs = ((_body$paragraphs = body === null || body === void 0 ? void 0 : body.paragraphs) !== null && _body$paragraphs !== void 0 ? _body$paragraphs : []).filter((item) => item.startIndex > blockRange.startIndex && item.startIndex < blockRange.endIndex).sort((left, right) => left.startIndex - right.startIndex);
15413
+ const firstParagraph = blockParagraphs[0];
15414
+ const lastParagraph = blockParagraphs[blockParagraphs.length - 1];
15415
+ const outerSpacing = (_BLOCK_LAYOUT_OUTER_S = BLOCK_LAYOUT_OUTER_SPACING_MAP.get(blockRange.blockType)) !== null && _BLOCK_LAYOUT_OUTER_S !== void 0 ? _BLOCK_LAYOUT_OUTER_S : 0;
15416
+ if ((firstParagraph === null || firstParagraph === void 0 ? void 0 : firstParagraph.startIndex) === paragraph.startIndex) _withMinSpacing(style, "spaceAbove", outerSpacing);
15417
+ if ((lastParagraph === null || lastParagraph === void 0 ? void 0 : lastParagraph.startIndex) === paragraph.startIndex && !_hasNextAdjacentLayoutBlockRange(blockRanges, blockRange)) _withMinSpacing(style, "spaceBelow", outerSpacing);
15418
+ return style;
15419
+ }
15420
+ function _shouldApplyDocumentDefaultParagraphStyle(viewModel) {
15421
+ var _viewModel$getSnapsho;
15422
+ const snapshot = (_viewModel$getSnapsho = viewModel.getSnapshot) === null || _viewModel$getSnapsho === void 0 ? void 0 : _viewModel$getSnapsho.call(viewModel);
15423
+ const documentFlavor = snapshot === null || snapshot === void 0 ? void 0 : snapshot.documentStyle.documentFlavor;
15424
+ if (snapshot == null) return true;
15425
+ return documentFlavor != null && documentFlavor !== _univerjs_core.DocumentFlavor.UNSPECIFIED;
15426
+ }
15173
15427
  function _getDrawingSkeletonFormat(drawingOrigin) {
15174
15428
  const { drawingId } = drawingOrigin;
15175
15429
  return {
@@ -15192,6 +15446,7 @@ function _getNextPageNumber(lastPage) {
15192
15446
  return lastPage.pageNumber + 1;
15193
15447
  }
15194
15448
  function lineBreaking(ctx, viewModel, shapedTextList, curPage, paragraphNode, sectionBreakConfig, tableSkeleton) {
15449
+ var _viewModel$getBody, _viewModel$getBody2;
15195
15450
  const { skeletonResourceReference } = ctx;
15196
15451
  const { lists, drawings = {}, localeService } = sectionBreakConfig;
15197
15452
  const { endIndex, blocks = [], children } = paragraphNode;
@@ -15208,7 +15463,7 @@ function lineBreaking(ctx, viewModel, shapedTextList, curPage, paragraphNode, se
15208
15463
  }
15209
15464
  const paragraphConfig = {
15210
15465
  paragraphIndex: endIndex,
15211
- paragraphStyle: _univerjs_core.Tools.deepClone(paragraphStyle),
15466
+ paragraphStyle: _applyBlockRangeLayoutParagraphStyle((_viewModel$getBody = (_viewModel$getBody2 = viewModel.getBody) === null || _viewModel$getBody2 === void 0 ? void 0 : _viewModel$getBody2.call(viewModel)) !== null && _viewModel$getBody !== void 0 ? _viewModel$getBody : null, paragraph, paragraphStyle, _shouldApplyDocumentDefaultParagraphStyle(viewModel)),
15212
15467
  paragraphNonInlineSkeDrawings,
15213
15468
  paragraphInlineSkeDrawings,
15214
15469
  skeTablesInParagraph: tableSkeleton ? [{
@@ -15768,6 +16023,22 @@ function TibetanHandler(index, charArray, viewModel, paragraphNode, sectionBreak
15768
16023
  glyphGroup: [createSkeletonWordGlyph(glyph.join(""), config)]
15769
16024
  };
15770
16025
  }
16026
+ function ThaiHandler(index, charArray, viewModel, paragraphNode, sectionBreakConfig, paragraph) {
16027
+ const config = getFontCreateConfig(index, viewModel, paragraphNode, sectionBreakConfig, paragraph);
16028
+ const glyph = [];
16029
+ let step = 0;
16030
+ for (let i = 0; i < charArray.length; i++) {
16031
+ const newChar = charArray[i];
16032
+ if (hasThai(newChar)) {
16033
+ glyph.push(newChar);
16034
+ step++;
16035
+ } else break;
16036
+ }
16037
+ return {
16038
+ step,
16039
+ glyphGroup: [createSkeletonWordGlyph(glyph.join(""), config)]
16040
+ };
16041
+ }
15771
16042
 
15772
16043
  //#endregion
15773
16044
  //#region src/components/docs/layout/block/paragraph/shaping.ts
@@ -15913,6 +16184,11 @@ function shaping(ctx, content, viewModel, paragraphNode, sectionBreakConfig, use
15913
16184
  shapedGlyphs.push(...glyphGroup);
15914
16185
  i += step;
15915
16186
  src = src.substring(step);
16187
+ } else if (hasThai(char)) {
16188
+ const { step, glyphGroup } = ThaiHandler(i, src, viewModel, paragraphNode, sectionBreakConfig, paragraph);
16189
+ shapedGlyphs.push(...glyphGroup);
16190
+ i += step;
16191
+ src = src.substring(step);
15916
16192
  } else {
15917
16193
  const { step, glyphGroup } = otherHandler(i, src, viewModel, paragraphNode, sectionBreakConfig, paragraph);
15918
16194
  shapedGlyphs.push(...glyphGroup);
@@ -16036,86 +16312,125 @@ function _pushPage(allCurrentSkeletonPages, blockSkeletonPages) {
16036
16312
  //#endregion
16037
16313
  //#region src/components/docs/layout/hyphenation/pattern-loaders.gen.ts
16038
16314
  const PATTERN_LOADERS = {
16039
- ["af"]: () => Promise.resolve().then(() => require("./af-Bsj1JSBP.js")),
16040
- ["as"]: () => Promise.resolve().then(() => require("./as-s7lqjieq.js")),
16041
- ["be"]: () => Promise.resolve().then(() => require("./be-L5eMFm5U.js")),
16042
- ["bg"]: () => Promise.resolve().then(() => require("./bg-DPu8oywG.js")),
16043
- ["bn"]: () => Promise.resolve().then(() => require("./bn-CIWO--x0.js")),
16044
- ["ca"]: () => Promise.resolve().then(() => require("./ca-C4gmkbL6.js")),
16045
- ["cop"]: () => Promise.resolve().then(() => require("./cop-BYQt2Eln.js")),
16046
- ["cs"]: () => Promise.resolve().then(() => require("./cs-psn0RDcR.js")),
16047
- ["cu"]: () => Promise.resolve().then(() => require("./cu-CI412h46.js")),
16048
- ["cy"]: () => Promise.resolve().then(() => require("./cy-u9h1j59b.js")),
16049
- ["da"]: () => Promise.resolve().then(() => require("./da-BQ70NE2J.js")),
16050
- ["de-1901"]: () => Promise.resolve().then(() => require("./de-1901-C5Xgq4-z.js")),
16051
- ["de-1996"]: () => Promise.resolve().then(() => require("./de-1996-BmpXhD5R.js")),
16052
- ["de-ch-1901"]: () => Promise.resolve().then(() => require("./de-ch-1901-mUpubovn.js")),
16053
- ["el-monoton"]: () => Promise.resolve().then(() => require("./el-monoton-1KLys64v.js")),
16054
- ["el-polyton"]: () => Promise.resolve().then(() => require("./el-polyton-C8sv-vqz.js")),
16055
- ["en-gb"]: () => Promise.resolve().then(() => require("./en-gb-DidBtNJX.js")),
16056
- ["en-us"]: () => Promise.resolve().then(() => require("./en-us-DKyh_RpA.js")),
16057
- ["es"]: () => Promise.resolve().then(() => require("./es-C1gCT0OW.js")),
16058
- ["et"]: () => Promise.resolve().then(() => require("./et-UwA1uq3o.js")),
16059
- ["eu"]: () => Promise.resolve().then(() => require("./eu-pizKbeo6.js")),
16060
- ["fi"]: () => Promise.resolve().then(() => require("./fi-bkmcjeIB.js")),
16061
- ["fr"]: () => Promise.resolve().then(() => require("./fr-DTRdyReV.js")),
16062
- ["fur"]: () => Promise.resolve().then(() => require("./fur-CzaEPYy4.js")),
16063
- ["ga"]: () => Promise.resolve().then(() => require("./ga-DfpmmLL7.js")),
16064
- ["gl"]: () => Promise.resolve().then(() => require("./gl-BvPLj87g.js")),
16065
- ["grc"]: () => Promise.resolve().then(() => require("./grc-CWjbj1rE.js")),
16066
- ["gu"]: () => Promise.resolve().then(() => require("./gu-B9b71pv0.js")),
16067
- ["hi"]: () => Promise.resolve().then(() => require("./hi-B0PM9Naw.js")),
16068
- ["hr"]: () => Promise.resolve().then(() => require("./hr-hhdjugdi.js")),
16069
- ["hsb"]: () => Promise.resolve().then(() => require("./hsb-CUC0Vhy0.js")),
16070
- ["hu"]: () => Promise.resolve().then(() => require("./hu-DNqLSdxp.js")),
16071
- ["hy"]: () => Promise.resolve().then(() => require("./hy-Cr37-HYR.js")),
16072
- ["ia"]: () => Promise.resolve().then(() => require("./ia-_xcaTvlU.js")),
16073
- ["id"]: () => Promise.resolve().then(() => require("./id-DTTt6JOe.js")),
16074
- ["is"]: () => Promise.resolve().then(() => require("./is-BlJOUdIf.js")),
16075
- ["it"]: () => Promise.resolve().then(() => require("./it-1kO7pboy.js")),
16076
- ["ka"]: () => Promise.resolve().then(() => require("./ka-06TLrBSU.js")),
16077
- ["kmr"]: () => Promise.resolve().then(() => require("./kmr-CqLLMgB-.js")),
16078
- ["kn"]: () => Promise.resolve().then(() => require("./kn-DsgCykwv.js")),
16079
- ["la"]: () => Promise.resolve().then(() => require("./la-BtfI1L1Y.js")),
16080
- ["la-x-classic"]: () => Promise.resolve().then(() => require("./la-x-classic-Csxxqk4A.js")),
16081
- ["la-x-liturgic"]: () => Promise.resolve().then(() => require("./la-x-liturgic-DP4lkHMh.js")),
16082
- ["lt"]: () => Promise.resolve().then(() => require("./lt-BLnhu8cj.js")),
16083
- ["lv"]: () => Promise.resolve().then(() => require("./lv-BWU1ykNC.js")),
16084
- ["ml"]: () => Promise.resolve().then(() => require("./ml-DCPEVUGQ.js")),
16085
- ["mn-cyrl"]: () => Promise.resolve().then(() => require("./mn-cyrl-R4Uzk2PR.js")),
16086
- ["mn-cyrl-x-lmc"]: () => Promise.resolve().then(() => require("./mn-cyrl-x-lmc-DcrbbdVO.js")),
16087
- ["mr"]: () => Promise.resolve().then(() => require("./mr-a95kT02n.js")),
16088
- ["mul-ethi"]: () => Promise.resolve().then(() => require("./mul-ethi-Ha-646Ih.js")),
16089
- ["nb"]: () => Promise.resolve().then(() => require("./nb-DVDq5SId.js")),
16090
- ["nl"]: () => Promise.resolve().then(() => require("./nl-xvtaATgd.js")),
16091
- ["nn"]: () => Promise.resolve().then(() => require("./nn-Dd3GYfsu.js")),
16092
- ["no"]: () => Promise.resolve().then(() => require("./no-Ccuz1dXv.js")),
16093
- ["oc"]: () => Promise.resolve().then(() => require("./oc-DMNrvVUu.js")),
16094
- ["or"]: () => Promise.resolve().then(() => require("./or-BBnbptii.js")),
16095
- ["pa"]: () => Promise.resolve().then(() => require("./pa-Bpqjl4TY.js")),
16096
- ["pi"]: () => Promise.resolve().then(() => require("./pi-Dw9S8R8a.js")),
16097
- ["pl"]: () => Promise.resolve().then(() => require("./pl-BxIw_3q_.js")),
16098
- ["pms"]: () => Promise.resolve().then(() => require("./pms-ts8oJNTo.js")),
16099
- ["pt"]: () => Promise.resolve().then(() => require("./pt-INYdw9le.js")),
16100
- ["rm"]: () => Promise.resolve().then(() => require("./rm-SrIsmyuH.js")),
16101
- ["ro"]: () => Promise.resolve().then(() => require("./ro--lDLf93Z.js")),
16102
- ["ru"]: () => Promise.resolve().then(() => require("./ru-CnviOn4F.js")),
16103
- ["sa"]: () => Promise.resolve().then(() => require("./sa--YzUfT9m.js")),
16104
- ["sh-cyrl"]: () => Promise.resolve().then(() => require("./sh-cyrl-C-Y7f9iS.js")),
16105
- ["sh-latn"]: () => Promise.resolve().then(() => require("./sh-latn-DE0Oa7St.js")),
16106
- ["sk"]: () => Promise.resolve().then(() => require("./sk-CL5uDe3A.js")),
16107
- ["sl"]: () => Promise.resolve().then(() => require("./sl-D8ckCfPR.js")),
16108
- ["sr-cyrl"]: () => Promise.resolve().then(() => require("./sr-cyrl-CZdv8WGY.js")),
16109
- ["sv"]: () => Promise.resolve().then(() => require("./sv-DYQd48Sm.js")),
16110
- ["ta"]: () => Promise.resolve().then(() => require("./ta-DOa0x7zq.js")),
16111
- ["te"]: () => Promise.resolve().then(() => require("./te-BtexCVtn.js")),
16112
- ["th"]: () => Promise.resolve().then(() => require("./th-BJUX68-0.js")),
16113
- ["tk"]: () => Promise.resolve().then(() => require("./tk-CEs8UQxA.js")),
16114
- ["tr"]: () => Promise.resolve().then(() => require("./tr-BMiKDMrF.js")),
16115
- ["uk"]: () => Promise.resolve().then(() => require("./uk-B8pzUYbn.js")),
16116
- ["zh-latn-pinyin"]: () => Promise.resolve().then(() => require("./zh-latn-pinyin-s8_52NaR.js"))
16315
+ ["af"]: () => Promise.resolve().then(() => require("./af-B2UUzO69.js")),
16316
+ ["as"]: () => Promise.resolve().then(() => require("./as-DbZDYp6O.js")),
16317
+ ["be"]: () => Promise.resolve().then(() => require("./be-BBx0lyG-.js")),
16318
+ ["bg"]: () => Promise.resolve().then(() => require("./bg-DeX16RKi.js")),
16319
+ ["bn"]: () => Promise.resolve().then(() => require("./bn-3fjitMC3.js")),
16320
+ ["ca"]: () => Promise.resolve().then(() => require("./ca-BxC8Zblv.js")),
16321
+ ["cop"]: () => Promise.resolve().then(() => require("./cop-TvdaSBlz.js")),
16322
+ ["cs"]: () => Promise.resolve().then(() => require("./cs-MSNfJH-L.js")),
16323
+ ["cu"]: () => Promise.resolve().then(() => require("./cu-7FYbjEBr.js")),
16324
+ ["cy"]: () => Promise.resolve().then(() => require("./cy-CPuxVqb_.js")),
16325
+ ["da"]: () => Promise.resolve().then(() => require("./da-BWsE849b.js")),
16326
+ ["de-1901"]: () => Promise.resolve().then(() => require("./de-1901-BYSTp3Fp.js")),
16327
+ ["de-1996"]: () => Promise.resolve().then(() => require("./de-1996-DWtCfm_A.js")),
16328
+ ["de-ch-1901"]: () => Promise.resolve().then(() => require("./de-ch-1901-rWVcF3cs.js")),
16329
+ ["el-monoton"]: () => Promise.resolve().then(() => require("./el-monoton-BEUGM9Fi.js")),
16330
+ ["el-polyton"]: () => Promise.resolve().then(() => require("./el-polyton-Bvh6HAfD.js")),
16331
+ ["en-gb"]: () => Promise.resolve().then(() => require("./en-gb-Dcrai7kY.js")),
16332
+ ["en-us"]: () => Promise.resolve().then(() => en_us_exports),
16333
+ ["es"]: () => Promise.resolve().then(() => require("./es-CVNdGI0L.js")),
16334
+ ["et"]: () => Promise.resolve().then(() => require("./et-7Rdfp2-O.js")),
16335
+ ["eu"]: () => Promise.resolve().then(() => require("./eu-DyEtVwHo.js")),
16336
+ ["fi"]: () => Promise.resolve().then(() => require("./fi-DzRES2Ke.js")),
16337
+ ["fr"]: () => Promise.resolve().then(() => require("./fr-DJMVMLCz.js")),
16338
+ ["fur"]: () => Promise.resolve().then(() => require("./fur-CzhK3vxZ.js")),
16339
+ ["ga"]: () => Promise.resolve().then(() => require("./ga-HXzOFdlG.js")),
16340
+ ["gl"]: () => Promise.resolve().then(() => require("./gl-C5TM79ih.js")),
16341
+ ["grc"]: () => Promise.resolve().then(() => require("./grc-CPQF-xFI.js")),
16342
+ ["gu"]: () => Promise.resolve().then(() => require("./gu-AqCkEYxo.js")),
16343
+ ["hi"]: () => Promise.resolve().then(() => require("./hi-DugLLbv4.js")),
16344
+ ["hr"]: () => Promise.resolve().then(() => require("./hr-LSMYFsyP.js")),
16345
+ ["hsb"]: () => Promise.resolve().then(() => require("./hsb-BlnRYHkg.js")),
16346
+ ["hu"]: () => Promise.resolve().then(() => require("./hu-Dwvtkpy7.js")),
16347
+ ["hy"]: () => Promise.resolve().then(() => require("./hy-BsG06_IV.js")),
16348
+ ["ia"]: () => Promise.resolve().then(() => require("./ia-BMOUZLGD.js")),
16349
+ ["id"]: () => Promise.resolve().then(() => require("./id-DhSs0vqq.js")),
16350
+ ["is"]: () => Promise.resolve().then(() => require("./is-iJhrS7Aw.js")),
16351
+ ["it"]: () => Promise.resolve().then(() => require("./it-Aam-BmsV.js")),
16352
+ ["ka"]: () => Promise.resolve().then(() => require("./ka-CfLSYpVb.js")),
16353
+ ["kmr"]: () => Promise.resolve().then(() => require("./kmr-DYCscIsi.js")),
16354
+ ["kn"]: () => Promise.resolve().then(() => require("./kn-OCEDIM_O.js")),
16355
+ ["la"]: () => Promise.resolve().then(() => require("./la-DFS3RPxE.js")),
16356
+ ["la-x-classic"]: () => Promise.resolve().then(() => require("./la-x-classic-BocVpbl6.js")),
16357
+ ["la-x-liturgic"]: () => Promise.resolve().then(() => require("./la-x-liturgic-CpZYm3b6.js")),
16358
+ ["lt"]: () => Promise.resolve().then(() => require("./lt-NC6HHzxn.js")),
16359
+ ["lv"]: () => Promise.resolve().then(() => require("./lv-BMFTm6cB.js")),
16360
+ ["ml"]: () => Promise.resolve().then(() => require("./ml-DDWi25Fi.js")),
16361
+ ["mn-cyrl"]: () => Promise.resolve().then(() => require("./mn-cyrl-TCUeX7is.js")),
16362
+ ["mn-cyrl-x-lmc"]: () => Promise.resolve().then(() => require("./mn-cyrl-x-lmc-BCmp3Ybn.js")),
16363
+ ["mr"]: () => Promise.resolve().then(() => require("./mr-1gjg-u15.js")),
16364
+ ["mul-ethi"]: () => Promise.resolve().then(() => require("./mul-ethi-B9a4BMM6.js")),
16365
+ ["nb"]: () => Promise.resolve().then(() => require("./nb-DS_J6lre.js")),
16366
+ ["nl"]: () => Promise.resolve().then(() => require("./nl-CBtSVLcv.js")),
16367
+ ["nn"]: () => Promise.resolve().then(() => require("./nn-DYJOn4Sh.js")),
16368
+ ["no"]: () => Promise.resolve().then(() => require("./no-C20NyT1P.js")),
16369
+ ["oc"]: () => Promise.resolve().then(() => require("./oc-CrKqER_F.js")),
16370
+ ["or"]: () => Promise.resolve().then(() => require("./or-ZqEtsnaq.js")),
16371
+ ["pa"]: () => Promise.resolve().then(() => require("./pa-BD3r0Teo.js")),
16372
+ ["pi"]: () => Promise.resolve().then(() => require("./pi-CQUwMUvz.js")),
16373
+ ["pl"]: () => Promise.resolve().then(() => require("./pl-CawofTLo.js")),
16374
+ ["pms"]: () => Promise.resolve().then(() => require("./pms-DMqDXwo-.js")),
16375
+ ["pt"]: () => Promise.resolve().then(() => require("./pt-BIiUaINZ.js")),
16376
+ ["rm"]: () => Promise.resolve().then(() => require("./rm-B_-8T7Y1.js")),
16377
+ ["ro"]: () => Promise.resolve().then(() => require("./ro-B2Xhfkgx.js")),
16378
+ ["ru"]: () => Promise.resolve().then(() => require("./ru-lj-rTTpe.js")),
16379
+ ["sa"]: () => Promise.resolve().then(() => require("./sa-D3h-cY2Z.js")),
16380
+ ["sh-cyrl"]: () => Promise.resolve().then(() => require("./sh-cyrl-0o7p_z-7.js")),
16381
+ ["sh-latn"]: () => Promise.resolve().then(() => require("./sh-latn-BTi9p-0q.js")),
16382
+ ["sk"]: () => Promise.resolve().then(() => require("./sk-D6mOX2KK.js")),
16383
+ ["sl"]: () => Promise.resolve().then(() => require("./sl-Bzz3gkvn.js")),
16384
+ ["sr-cyrl"]: () => Promise.resolve().then(() => require("./sr-cyrl-V07WO3rb.js")),
16385
+ ["sv"]: () => Promise.resolve().then(() => require("./sv-CyQXUuzx.js")),
16386
+ ["ta"]: () => Promise.resolve().then(() => require("./ta-Brwz0zYf.js")),
16387
+ ["te"]: () => Promise.resolve().then(() => require("./te-CgvirCa4.js")),
16388
+ ["th"]: () => Promise.resolve().then(() => require("./th-PlSNhaza.js")),
16389
+ ["tk"]: () => Promise.resolve().then(() => require("./tk-O54r2ybT.js")),
16390
+ ["tr"]: () => Promise.resolve().then(() => require("./tr-Dh1h3Dno.js")),
16391
+ ["uk"]: () => Promise.resolve().then(() => require("./uk-E2mCrVCU.js")),
16392
+ ["zh-latn-pinyin"]: () => Promise.resolve().then(() => require("./zh-latn-pinyin-C2RfFfDl.js"))
16117
16393
  };
16118
16394
 
16395
+ //#endregion
16396
+ //#region src/components/docs/layout/hyphenation/patterns/en-us.ts
16397
+ var en_us_exports = /* @__PURE__ */ __exportAll({ EnUs: () => EnUs });
16398
+ /**
16399
+ * Copyright 2023-present DreamNum Co., Ltd.
16400
+ *
16401
+ * Licensed under the Apache License, Version 2.0 (the "License");
16402
+ * you may not use this file except in compliance with the License.
16403
+ * You may obtain a copy of the License at
16404
+ *
16405
+ * http://www.apache.org/licenses/LICENSE-2.0
16406
+ *
16407
+ * Unless required by applicable law or agreed to in writing, software
16408
+ * distributed under the License is distributed on an "AS IS" BASIS,
16409
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16410
+ * See the License for the specific language governing permissions and
16411
+ * limitations under the License.
16412
+ */
16413
+ const EnUs = [
16414
+ "0004,004,001,003,005,0005,00005,000005,0002,002,0000005,0003,00003,00505,00034,0001,00055,00004,4,05,0055,04,42,03,02,2,404,3,044,01,0505,55,5,045,041,0033,000004,22,00504,5504,0042,1,21,41,402,405,4004,43,23,000054,303,3005,022,5004,000003,252,45,25,2004,000505,054,403,401,3002,0025,144,432,00054,34,12,234,0022,014,0304,012,143,503,0403,101,052,414,212,011,043,00002,0041,0024,05005,03003,00102,0404,04303,01004,0034,025,0044,00404,00025,0103,042,0205,412,104,54,344,433,5005,253,055,0402,3004,0043,204,505,454,0000004,00303,04004,552,201,4005,0255,52,444,14,44,02004,033,05004,00045,00013,0021,0405,00044,0054,50055,000303,00001,304,0204,11,301,232,122,00305,504,000043,0104,00052,000045,50004,0023,00033,00032,00202,5003,202,0401,0000505,214,102,032,000161,004101,00501,00301,0036,0052,00023,006101,006,00401,000521,0014,0063,00012,000501,000006,000604,000601,005001,005005,0010305,00006,003012,003005,0003011,0061,013,000021,000022,000105,00211,00062,00051,000112,006013,000011,0200306,1021,0050001,003003,2102,305,000015,01030005,000035,001011,00021,16330001,0234,030006,5020001,000001,00016,0031,021,21431,002305,0350014,0000012,000063,00101,106,105,00435,00063,0300061,00041,100306,003602,023,0503,0010011,10003,1005,30011,00031,0001001,0000061,0030003,30305,001201,0301,5000101,500101,00015,000401,000065,000016,0000402,0500002,000205,030201,500301,00014,5001,000002,00030011,01034,0300006,030213,00400304,050001,05003,000311,0634,00061,0006,00000604,00050013,00213,0030001,100003,000033,30002,00003632,0003004,050003,0000021,006303,0000006,00005005,30451,03001,00231,00056,00011,6,001001,00500001,03005,503005,0000010001,1002,003001,001065,300001,32011,32,0000003,0213001,0500053,021005,10001,0000011,0001041,0020016,100032,50011,0606,5002,3001,03002,0015001,0102,00003001,000000033,0000001,300101,300015,0101003,00000101,0100501,0101,0010033,00000362,000014,0005001,031",
16415
+ "{\".\":[{\"a\":[{\"c\":[{\"h\":0}],\"d\":[{\"d\":[{\"e\":[{\"r\":1}]}]}],\"f\":[{\"t\":2}],\"l\":[{\"t\":3}],\"m\":[{\"a\":[{\"t\":4}]}],\"n\":[{\"c\":4,\"g\":0,\"i\":[{\"m\":5}],\"t\":[{\"e\":3,\"i\":[{\"s\":6}]},0]}],\"r\":[{\"s\":4,\"t\":[{\"i\":[{\"e\":1}],\"y\":1}]}],\"s\":[{\"c\":3,\"p\":2,\"s\":2,\"t\":[{\"e\":[{\"r\":7}]}]}],\"t\":[{\"o\":[{\"m\":6}]}],\"u\":[{\"d\":2}],\"v\":[{\"i\":1}],\"w\":[{\"n\":0}]}],\"b\":[{\"a\":[{\"g\":1,\"n\":[{\"a\":4}],\"s\":[{\"e\":0}]}],\"e\":[{\"r\":[{\"a\":4},0],\"s\":[{\"m\":3,\"t\":[{\"o\":4}]}]}],\"r\":[{\"i\":8}],\"u\":[{\"t\":[{\"t\":[{\"i\":0}]}]}]}],\"c\":[{\"a\":[{\"m\":[{\"p\":[{\"e\":0}]}],\"n\":[{\"c\":5}],\"p\":[{\"a\":[{\"b\":6}]}],\"r\":[{\"o\":[{\"l\":5}]}],\"t\":1}],\"e\":[{\"l\":[{\"a\":1}]}],\"h\":[{\"i\":[{\"l\":[{\"l\":[{\"i\":7}]}]}]},1],\"i\":[{\"t\":[{\"r\":5}]},9],\"o\":[{\"e\":3,\"r\":[{\"n\":[{\"e\":[{\"r\":5}]}]},1],\"n\":[{\"g\":[{\"r\":5}]}]}]}],\"d\":[{\"e\":[{\"m\":[{\"o\":[{\"i\":1}]}],\"o\":3,\"r\":[{\"a\":3,\"i\":[{\"v\":[{\"a\":4}]},3]}],\"s\":[{\"c\":0}]}],\"i\":[{\"c\":[{\"t\":[{\"i\":[{\"o\":10}]}]}]}],\"o\":[{\"t\":1}],\"u\":[{\"c\":1,\"m\":[{\"b\":6}]}],\"r\":[{\"i\":[{\"v\":67}]}]}],\"e\":[{\"a\":[{\"r\":[{\"t\":[{\"h\":7}]}],\"s\":[{\"i\":11}]}],\"b\":1,\"e\":[{\"r\":0}],\"g\":9,\"l\":[{\"d\":4,\"e\":[{\"m\":3}]}],\"n\":[{\"a\":[{\"m\":12}],\"g\":3,\"s\":3}],\"q\":[{\"u\":[{\"i\":[{\"t\":13}]}]}],\"r\":[{\"r\":[{\"i\":1}]}],\"s\":3,\"u\":[{\"l\":[{\"e\":[{\"r\":1}]}]},3],\"y\":[{\"e\":5}],\"t\":[{\"h\":[{\"y\":[{\"l\":162}]}]}],\"v\":[{\"e\":[{\"r\":[{\"s\":[{\"i\":[{\"b\":158}]}]}]}]},9]}],\"f\":[{\"e\":[{\"s\":11}],\"o\":[{\"r\":[{\"m\":[{\"e\":[{\"r\":5}]}]}]}]}],\"g\":[{\"a\":[{\"s\":[{\"o\":[{\"m\":163}]}]},9],\"e\":[{\"n\":[{\"t\":14}],\"o\":[{\"g\":4,\"m\":[{\"e\":1}],\"t\":164}]},9],\"i\":[{\"a\":4,\"b\":1}],\"o\":[{\"r\":1}]}],\"h\":[{\"a\":[{\"n\":[{\"d\":[{\"i\":6}],\"k\":5}]}],\"e\":[{\"r\":[{\"o\":[{\"i\":6,\"e\":3}]}],\"s\":11,\"t\":11,\"m\":[{\"o\":165}],\"p\":[{\"a\":166}]},9],\"i\":[{\"b\":3,\"e\":[{\"r\":3}]}],\"o\":[{\"n\":[{\"e\":[{\"y\":5}],\"o\":11}],\"v\":5}]}],\"i\":[{\"d\":[{\"l\":1,\"o\":[{\"l\":12}]}],\"m\":[{\"m\":3,\"p\":[{\"i\":[{\"n\":4}]}]}],\"n\":[{\"c\":[{\"i\":3}],\"e\":8,\"k\":9,\"s\":3,\"u\":[{\"t\":167}]},2],\"r\":[{\"r\":4}],\"s\":[{\"i\":1}]}],\"j\":[{\"u\":[{\"r\":3}]}],\"l\":[{\"a\":[{\"c\":[{\"y\":1}],\"m\":1,\"t\":[{\"e\":[{\"r\":5}],\"h\":6}]}],\"e\":[{\"g\":[{\"e\":5}],\"n\":0,\"p\":5,\"v\":15,\"i\":[{\"c\":[{\"e\":[{\"s\":170}]}]}]},9],\"i\":[{\"g\":[{\"a\":5},1],\"n\":9,\"o\":3,\"t\":1}]}],\"m\":[{\"a\":[{\"g\":[{\"a\":16}],\"l\":[{\"o\":5}],\"n\":[{\"a\":5}],\"r\":[{\"t\":[{\"i\":5}]}]}],\"e\":[{\"r\":[{\"c\":11}],\"t\":[{\"e\":[{\"r\":4}],\"a\":[{\"l\":[{\"a\":0}]}]}],\"g\":[{\"a\":[{\"l\":171}]}]},9],\"i\":[{\"s\":[{\"t\":[{\"i\":6}],\"e\":[{\"r\":[{\"s\":173}]}]},15],\"m\":[{\"i\":[{\"c\":172}]}]}],\"o\":[{\"n\":[{\"e\":11}],\"r\":[{\"o\":3}]}],\"u\":[{\"t\":[{\"a\":[{\"b\":6},4]}]}]}],\"n\":[{\"i\":[{\"c\":1}],\"e\":[{\"o\":[{\"f\":174}]}],\"o\":[{\"e\":[{\"t\":[{\"h\":15}]}],\"n\":[{\"e\":[{\"m\":175}]}]}]}],\"o\":[{\"d\":[{\"d\":5},9],\"f\":[{\"t\":[{\"e\":4}]}],\"r\":[{\"a\":[{\"t\":[{\"o\":4}]}],\"c\":3,\"d\":2,\"t\":3}],\"s\":[{\"t\":[{\"l\":1}]},3],\"t\":[{\"h\":11}],\"u\":[{\"t\":11}]}],\"p\":[{\"e\":[{\"d\":[{\"a\":[{\"l\":5}]}],\"t\":[{\"e\":4,\"i\":[{\"t\":4}]}]}],\"i\":[{\"e\":1,\"o\":[{\"n\":5}],\"t\":9}],\"r\":[{\"e\":[{\"m\":11,\"a\":[{\"m\":15}]}]}],\"o\":[{\"l\":[{\"y\":[{\"s\":137}]}],\"s\":[{\"t\":[{\"a\":[{\"m\":137}]}]}]}]}],\"r\":[{\"a\":[{\"c\":1,\"n\":[{\"t\":0}],\"t\":[{\"i\":[{\"o\":[{\"n\":[{\"a\":7}]}]}]}],\"v\":[{\"e\":[{\"n\":[{\"o\":176}]}]}]}],\"e\":[{\"e\":[{\"c\":173},8],\"m\":[{\"i\":[{\"t\":4}]}],\"s\":[{\"t\":[{\"a\":[{\"t\":4}]}]},8]}],\"i\":[{\"g\":1,\"t\":[{\"u\":5}]}],\"o\":[{\"q\":1,\"s\":[{\"t\":5}],\"w\":[{\"d\":5}]}],\"u\":[{\"d\":1}]}],\"s\":[{\"c\":[{\"i\":[{\"e\":11}]}],\"e\":[{\"l\":[{\"f\":6,\"l\":6}],\"n\":9,\"r\":[{\"i\":[{\"e\":4}]}],\"m\":[{\"i\":[{\"c\":0,\"d\":177,\"p\":36,\"r\":36,\"s\":178,\"v\":36},6]}]}],\"h\":9,\"i\":[{\"n\":[{\"g\":17}]},9],\"t\":[{\"a\":[{\"b\":[{\"l\":5}]}]},1],\"y\":9,\"p\":[{\"h\":[{\"i\":[{\"n\":179}]}],\"i\":[{\"n\":[{\"o\":137}]}]}]}],\"t\":[{\"a\":[{\"p\":[{\"e\":[{\"s\":[{\"t\":[{\"r\":180}]}]}]}]},1],\"e\":[{\"n\":[{\"a\":[{\"n\":5}]}],\"l\":[{\"e\":[{\"g\":[{\"r\":3}]}]}]},1],\"h\":9,\"i\":[{\"l\":0,\"m\":[{\"o\":16}],\"n\":[{\"g\":17,\"k\":5}]},9],\"o\":[{\"n\":[{\"a\":0}],\"p\":[{\"i\":5,\"o\":[{\"g\":170}]},1],\"u\":[{\"s\":5}],\"q\":9}],\"r\":[{\"i\":[{\"b\":[{\"u\":[{\"t\":6}]}]}]}]}],\"u\":[{\"n\":[{\"a\":[{\"t\":[{\"t\":144}]},2],\"c\":[{\"e\":3}],\"d\":[{\"e\":[{\"r\":7}]}],\"e\":[{\"r\":[{\"r\":181}]},2],\"k\":4,\"o\":4,\"u\":3}],\"p\":3,\"r\":[{\"e\":11}],\"s\":[{\"a\":4}]}],\"v\":[{\"e\":[{\"n\":[{\"d\":[{\"e\":0}]}],\"r\":[{\"a\":4}]}],\"i\":[{\"c\":[{\"a\":[{\"r\":151}]}]}]}],\"w\":[{\"i\":[{\"l\":[{\"i\":5}]}],\"e\":[{\"b\":[{\"l\":131}]}]}],\"y\":[{\"e\":1}],\"k\":[{\"i\":[{\"l\":[{\"n\":[{\"i\":168}]}]}],\"o\":[{\"r\":[{\"t\":[{\"e\":169}]}]}]}]}],\"a\":[{\"b\":[{\".\":18,\"a\":[{\"l\":19,\"n\":19}],\"e\":[{\"r\":[{\"d\":4}]},8],\"i\":[{\"a\":5,\"t\":[{\"a\":[{\"b\":13}]}]}],\"l\":[{\"a\":[{\"t\":4}]}],\"o\":[{\"l\":[{\"i\":[{\"z\":20,\"c\":19}]}]}],\"r\":[{\"o\":[{\"g\":4}]},18],\"u\":[{\"l\":3}]}],\"c\":[{\"a\":[{\"r\":[{\"d\":4,\"o\":4},21],\"b\":[{\"l\":24}]}],\"e\":[{\"o\":[{\"u\":19}],\"r\":2}],\"h\":[{\"e\":[{\"t\":19}]}],\"i\":[{\"e\":23,\"n\":2,\"o\":23},22],\"r\":[{\"o\":[{\"b\":4}]}],\"t\":[{\"i\":[{\"f\":5}]}],\"u\":[{\"l\":3,\"m\":1}]}],\"d\":[{\"d\":[{\"i\":[{\"n\":1}]}],\"e\":[{\"r\":[{\".\":4}]}],\"i\":[{\"a\":23,\"c\":[{\"a\":3}],\"e\":[{\"r\":0}],\"o\":23,\"t\":23,\"u\":19},25],\"l\":[{\"e\":1}],\"o\":[{\"w\":3}],\"r\":[{\"a\":[{\"n\":4}]}],\"s\":[{\"u\":1}],\"u\":[{\"c\":23,\"m\":4},18]},24],\"e\":[{\"r\":[{\"i\":[{\"e\":17}]},1]}],\"f\":[{\"f\":[{\"i\":[{\"s\":[{\"h\":170}]}]},0]},24],\"g\":[{\"a\":[{\"b\":21,\"n\":0}],\"e\":[{\"l\":[{\"l\":4}],\"o\":0,\"u\":18}],\"i\":2,\"l\":26,\"n\":2,\"o\":[{\"g\":27,\"n\":[{\"i\":3}]},24],\"u\":[{\"e\":[{\"r\":19}],\"l\":4}],\"y\":21}],\"h\":[{\"a\":23,\"e\":23,\"l\":1,\"o\":23}],\"i\":[{\"a\":19,\"c\":[{\".\":23}],\"l\":[{\"y\":4}],\"n\":[{\"i\":[{\"n\":5}],\"o\":5},28],\"t\":[{\"e\":[{\"n\":5}]}]},9],\"j\":29,\"k\":[{\"e\":[{\"n\":2}]}],\"l\":[{\"a\":[{\"b\":4,\"d\":3,\"r\":21}],\"d\":[{\"i\":18}],\"e\":[{\"n\":[{\"d\":3,\"t\":[{\"i\":21}]}],\"o\":30},25],\"i\":[{\"a\":[{\".\":1}],\"e\":0},2],\"l\":[{\"e\":[{\"v\":4}],\"i\":[{\"c\":18}]}],\"m\":18,\"o\":[{\"g\":[{\".\":19}]}],\"y\":[{\".\":21,\"s\":[{\"t\":31},18],\"t\":32,\"z\":27}]}],\"m\":[{\"a\":[{\"b\":4,\"g\":3,\"r\":[{\"a\":5}],\"s\":[{\"c\":4}],\"t\":[{\"i\":[{\"s\":21}],\"o\":33}]},18],\"e\":[{\"r\":[{\"a\":4}],\"n\":[{\"t\":[{\"a\":[{\"b\":182}]}]}]}],\"i\":[{\"c\":3,\"f\":4,\"l\":[{\"y\":4}],\"n\":[{\"o\":0},2]}],\"o\":[{\"n\":19,\"r\":[{\"i\":6}]},24],\"p\":[{\"e\":[{\"n\":5}]}]}],\"n\":[{\"a\":[{\"g\":[{\"e\":3}],\"l\":[{\"y\":[{\"s\":183},27]}],\"r\":[{\"c\":3,\"i\":17},23],\"t\":[{\"i\":23}]}],\"d\":[{\"e\":[{\"s\":17}],\"i\":[{\"s\":3}],\"l\":2,\"o\":[{\"w\":1}]},18],\"e\":[{\"e\":19,\"n\":23,\"s\":[{\"t\":[{\".\":4}]}],\"u\":23}],\"g\":[{\"i\":[{\"e\":5}],\"l\":2},25],\"i\":[{\"c\":34,\"e\":[{\"s\":23}],\"f\":35,\"m\":[{\"e\":1,\"i\":19}],\"n\":[{\"e\":19}],\"o\":3,\"p\":23,\"s\":[{\"h\":3}],\"t\":3,\"u\":23}],\"k\":[{\"l\":[{\"i\":1}]}],\"n\":[{\"i\":[{\"z\":32}]}],\"o\":[{\"t\":[{\"h\":7},4],\"a\":[{\"c\":148}]},0],\"s\":[{\"a\":9,\"c\":[{\"o\":1}],\"n\":1,\"p\":[{\"o\":11},9],\"t\":1,\"u\":[{\"r\":1}],\"g\":[{\"r\":5}],\"v\":11}],\"t\":[{\"a\":[{\"l\":36}],\"i\":[{\"e\":1,\"d\":137,\"n\":184,\"r\":[{\"e\":137}]}],\"o\":18,\"r\":9,\"w\":1}],\"u\":[{\"a\":3,\"l\":3,\"r\":19}]},24],\"o\":18,\"p\":[{\"a\":[{\"r\":17,\"t\":4}],\"e\":[{\"r\":[{\"o\":4}],\"a\":[{\"b\":[{\"l\":[{\"e\":132}]}]}]}],\"h\":[{\"e\":[{\"r\":23}],\"i\":18}],\"i\":[{\"l\":[{\"l\":[{\"a\":[{\"r\":4},21]}]}],\"n\":3,\"t\":[{\"a\":3,\"u\":23}]}],\"l\":24,\"o\":[{\"c\":6,\"l\":[{\"a\":4}],\"r\":[{\"i\":6}],\"s\":[{\"t\":12}]}],\"s\":[{\"e\":[{\"s\":5}]}],\"u\":23}],\"q\":[{\"u\":[{\"e\":6}]}],\"r\":[{\"a\":[{\"c\":[{\"t\":3}],\"d\":[{\"e\":19,\"i\":[{\"s\":4}]}],\"l\":3,\"m\":[{\"e\":[{\"t\":[{\"e\":19}]}]}],\"n\":[{\"g\":17}],\"p\":11,\"t\":[{\"i\":[{\"o\":19,\"v\":4}]},1],\"u\":19,\"v\":38,\"w\":17}],\"b\":[{\"a\":[{\"l\":36}]}],\"c\":[{\"h\":[{\"a\":[{\"n\":1}],\"e\":[{\"t\":185}]}]}],\"d\":[{\"i\":[{\"n\":[{\"e\":4}]}],\"r\":1}],\"e\":[{\"a\":[{\"s\":4}],\"e\":23,\"n\":[{\"t\":3}],\"s\":[{\"s\":19}]}],\"f\":[{\"i\":1,\"l\":1}],\"i\":[{\"a\":[{\"l\":4,\"n\":3}],\"e\":[{\"t\":23}],\"m\":1,\"n\":[{\"a\":[{\"t\":4}]}],\"o\":3,\"z\":9},2],\"m\":[{\"i\":9}],\"o\":[{\"d\":20,\"n\":[{\"i\":19}],\"o\":23}],\"p\":9,\"q\":3,\"r\":[{\"e\":17,\"a\":[{\"n\":[{\"g\":[{\"e\":9}]}]}]}],\"s\":[{\"a\":1,\"h\":9}]},37],\"s\":[{\".\":18,\"a\":[{\"b\":1,\"n\":[{\"t\":3}]}],\"h\":[{\"i\":17}],\"i\":[{\"a\":[{\".\":19}],\"b\":23,\"c\":23,\"t\":39}],\"k\":[{\"i\":11}],\"l\":1,\"o\":[{\"c\":21}],\"p\":[{\"h\":4}],\"s\":[{\"h\":1}],\"t\":[{\"e\":[{\"n\":3}],\"r\":2}],\"u\":[{\"r\":[{\"a\":6}]}],\"y\":[{\"m\":[{\"p\":[{\"t\":[{\"o\":[{\"t\":4}]}]}]}]}]}],\"t\":[{\"a\":[{\"b\":[{\"l\":3}],\"c\":4,\"l\":[{\"o\":3}],\"p\":4},24],\"e\":[{\"c\":[{\"h\":4},5],\"g\":[{\"o\":3}],\"n\":[{\".\":3}],\"r\":[{\"a\":3,\"n\":[{\"a\":19},6]}],\"s\":[{\"t\":3}],\"v\":4}],\"h\":[{\"e\":[{\"m\":5,\"n\":19,\"r\":[{\"o\":[{\"s\":186}]}]}],\"o\":[{\"m\":5},1]},18],\"i\":[{\".\":18,\"a\":19,\"b\":20,\"c\":2,\"f\":3,\"o\":[{\"n\":[{\"a\":[{\"r\":7}]}]}],\"t\":[{\"u\":3}]}],\"o\":[{\"g\":21,\"m\":[{\"i\":[{\"z\":4}]},24],\"p\":21,\"s\":21}],\"r\":[{\"o\":[{\"p\":4}]},29],\"s\":[{\"k\":1}],\"t\":[{\"a\":[{\"g\":1}],\"e\":[{\"s\":[{\".\":170}]},4],\"h\":1}],\"u\":[{\"a\":4,\"e\":4,\"l\":3,\"r\":[{\"a\":3}]},24],\"y\":24}],\"u\":[{\"b\":1,\"g\":[{\"h\":[{\"t\":[{\"l\":17}]},12],\"u\":3}],\"l\":[{\"i\":[{\"f\":13}]},40],\"n\":[{\"d\":5}],\"r\":3,\"s\":[{\"i\":[{\"b\":4}]}],\"t\":[{\"e\":[{\"n\":5}],\"h\":2}]}],\"v\":[{\"a\":[{\"g\":3,\"n\":19},24],\"e\":[{\"n\":[{\"o\":0}],\"r\":[{\"a\":3,\"n\":4,\"y\":4}]}],\"i\":[{\"e\":[{\"r\":0}],\"g\":3,\"o\":[{\"u\":3}]},2],\"o\":[{\"c\":4,\"r\":29}]}],\"w\":[{\"a\":[{\"y\":27}],\"i\":3,\"l\":[{\"y\":1}],\"s\":0}],\"x\":[{\"i\":[{\"c\":1,\"d\":1}]}],\"y\":[{\"a\":[{\"l\":4}],\"e\":0,\"s\":0}],\"z\":[{\"i\":[{\"e\":[{\"r\":0}]}],\"z\":[{\"i\":5}]}]}],\"b\":[{\"a\":[{\".\":32,\"d\":[{\"g\":[{\"e\":[{\"r\":5}]}]}],\"g\":[{\"e\":1}],\"l\":[{\"a\":15}],\"n\":[{\"d\":[{\"a\":[{\"g\":5}]}],\"e\":0,\"i\":11}],\"r\":[{\"b\":[{\"i\":7}],\"i\":[{\"a\":17}],\"o\":[{\"n\":[{\"i\":[{\"e\":187}]}]}]}],\"s\":[{\"s\":[{\"i\":0}]}],\"t\":[{\"h\":[{\"y\":2}]},41],\"z\":1,\"c\":[{\"k\":[{\"e\":[{\"r\":[{\".\":84}]}]}]}]}],\"b\":[{\"e\":[{\"r\":23},24],\"i\":[{\"n\":[{\"a\":0}],\"t\":0}]},42],\"d\":43,\"e\":[{\".\":18,\"a\":[{\"k\":17,\"t\":12}],\"d\":[{\"a\":3,\"e\":3,\"i\":3},44],\"g\":[{\"i\":3,\"u\":4}],\"l\":[{\"i\":2,\"o\":3},41],\"m\":45,\"n\":[{\"i\":[{\"g\":4}],\"u\":4}],\"s\":[{\"p\":3,\"t\":[{\"r\":4}]},46],\"t\":[{\"i\":[{\"z\":5}],\"r\":4,\"w\":3},27],\"w\":3,\"y\":[{\"o\":4}],\"v\":[{\"i\":[{\"e\":9}]}]}],\"f\":25,\"h\":47,\"i\":[{\"b\":9,\"d\":[{\"i\":[{\"f\":167}]},1],\"e\":[{\"n\":4,\"r\":1},27],\"f\":48,\"l\":[{\"i\":[{\"z\":3}],\"l\":[{\"a\":[{\"b\":8}]}]},41],\"n\":[{\"a\":[{\"r\":49}],\"d\":0,\"e\":[{\"t\":4}]}],\"o\":[{\"g\":[{\"r\":3}],\"u\":4,\"m\":5,\"r\":[{\"b\":2,\"h\":15}]}],\"t\":[{\"i\":[{\"o\":50,\"v\":[{\"e\":188}]}],\"r\":3,\"u\":[{\"a\":51}],\"z\":19},9]}],\"j\":29,\"k\":1,\"l\":[{\"a\":[{\"t\":[{\"h\":7}],\"n\":[{\"d\":189}]}],\"e\":[{\".\":21,\"n\":17,\"s\":[{\"p\":32}]}],\"i\":[{\"s\":23,\"n\":[{\"d\":189}]}],\"o\":[{\"n\":[{\"d\":190}]},21],\"u\":[{\"n\":[{\"t\":17}]}]},52],\"m\":43,\"n\":[{\"e\":[{\"g\":5}]},47],\"o\":[{\"d\":[{\"i\":11},27],\"e\":1,\"l\":[{\"i\":[{\"c\":11}]}],\"m\":[{\"b\":[{\"i\":0}]}],\"n\":[{\"a\":[{\"t\":5},0]}],\"o\":27,\"r\":[{\".\":32,\"a\":43,\"d\":5,\"e\":32,\"i\":32,\"n\":[{\"o\":191}]}],\"s\":53,\"t\":[{\"a\":19,\"h\":6,\"o\":1,\"u\":[{\"l\":192}]}],\"u\":[{\"n\":[{\"d\":54}]}]}],\"p\":18,\"r\":[{\"i\":[{\"t\":18}],\"o\":[{\"t\":[{\"h\":54}]}],\"u\":[{\"s\":[{\"q\":17}]}]}],\"s\":[{\"o\":[{\"r\":17}]},55],\"t\":[{\"l\":1,\"o\":21,\"r\":23},25],\"u\":[{\"f\":[{\"f\":[{\"e\":[{\"r\":0}]}]}],\"g\":[{\"a\":1}],\"l\":[{\"i\":3}],\"m\":[{\"i\":17}],\"n\":[{\"t\":[{\"i\":17}]},1],\"r\":[{\"e\":3}],\"s\":[{\"i\":[{\"e\":[{\"r\":193,\"s\":193},5]}],\"s\":[{\"e\":17,\"i\":[{\"n\":[{\"g\":17}]}]}],\"t\":32}],\"t\":[{\"a\":18,\"i\":[{\"o\":27}],\"o\":19,\"e\":[{\"d\":[{\".\":8}]}],\"t\":[{\"e\":[{\"d\":0}]}]}]}],\"v\":29,\"w\":56,\"y\":[{\".\":32,\"s\":0}]}],\"c\":[{\"a\":[{\"b\":[{\"i\":[{\"n\":11}],\"l\":2}],\"c\":[{\"h\":17}],\"d\":[{\"e\":[{\"n\":4,\"m\":194}]}],\"g\":46,\"h\":57,\"l\":[{\"a\":[{\"t\":3}],\"l\":[{\"a\":0,\"i\":[{\"n\":6}]}],\"o\":18}],\"n\":[{\"d\":5,\"e\":0,\"i\":[{\"c\":0,\"s\":5,\"z\":11}],\"t\":[{\"y\":0}],\"y\":17}],\"p\":[{\"e\":[{\"r\":4}]}],\"r\":[{\"o\":[{\"m\":5}]}],\"s\":[{\"t\":[{\"e\":[{\"r\":6}],\"i\":[{\"g\":5}]}],\"y\":18}],\"t\":[{\"h\":1,\"i\":[{\"v\":18}],\"a\":[{\"s\":195}]}],\"v\":[{\"a\":[{\"l\":5}]}]},41],\"c\":[{\"h\":[{\"a\":6}],\"i\":[{\"a\":0}],\"o\":[{\"m\":[{\"p\":[{\"a\":10}]}],\"n\":17,\"u\":[{\"t\":12}]}]},23],\"e\":[{\".\":25,\"d\":[{\".\":18,\"e\":[{\"n\":18}]}],\"i\":27,\"l\":[{\".\":32,\"l\":27}],\"n\":[{\"c\":27,\"e\":58,\"i\":18,\"t\":27},41],\"p\":27,\"r\":[{\"a\":[{\"m\":4}]}],\"s\":[{\"a\":18,\"s\":[{\"i\":[{\"b\":59},27]}],\"t\":5}],\"t\":[{\"a\":60},0],\"w\":0}],\"h\":[{\".\":18,\"a\":[{\"b\":61,\"n\":[{\"i\":[{\"c\":32,\"s\":20}]}]}],\"e\":[{\"a\":[{\"p\":54}],\"d\":18,\"l\":[{\"o\":5}],\"m\":[{\"i\":27}],\"n\":[{\"e\":4}],\"r\":[{\".\":3,\"s\":3}]},8],\"i\":[{\"n\":[{\"e\":[{\".\":32,\"s\":[{\"s\":4}]}],\"i\":32},62],\"o\":32,\"t\":27,\"z\":8,\"e\":[{\"v\":[{\"o\":6}]}]}],\"o\":63,\"t\":[{\"i\":1}],\"s\":[{\".\":18,\"h\":[{\"u\":11}]}]},25],\"i\":[{\"a\":[{\"b\":64,\"r\":5},27],\"c\":4,\"e\":[{\"r\":18}],\"f\":[{\"i\":[{\"c\":[{\".\":32}]}]}],\"i\":18,\"l\":[{\"a\":1,\"i\":27}],\"m\":25,\"n\":[{\"a\":[{\"t\":27},21],\"e\":[{\"m\":11}],\"g\":[{\".\":19},29],\"o\":32,\"q\":8},25],\"o\":[{\"n\":17}],\"p\":[{\"e\":18,\"h\":3,\"i\":[{\"c\":18}]}],\"s\":[{\"t\":[{\"a\":18,\"i\":18}]}],\"t\":[{\"i\":[{\"z\":11}]},42],\"z\":32,\"g\":[{\"a\":[{\"r\":152}]}]},41],\"k\":[{\"i\":3},2],\"l\":[{\"a\":[{\"r\":[{\"a\":[{\"t\":[{\"i\":[{\"o\":19}]}]}],\"e\":32},18]}],\"e\":[{\"m\":0,\"a\":[{\"r\":0}]}],\"i\":[{\"c\":18,\"m\":17}],\"y\":0},65],\"n\":19,\"o\":[{\"a\":[{\"g\":4}],\"e\":8,\"g\":[{\"r\":1},25],\"i\":[{\"n\":[{\"c\":3}]},0],\"l\":[{\"i\":5,\"o\":[{\"r\":11},32]}],\"m\":[{\"e\":[{\"r\":5}]}],\"n\":[{\"a\":0,\"e\":21,\"g\":11,\"t\":5}],\"p\":[{\"a\":3,\"i\":[{\"c\":11}],\"l\":1,\"h\":[{\"o\":[{\"n\":196}]}]}],\"r\":[{\"b\":18,\"o\":[{\"n\":12}]}],\"s\":[{\"e\":0}],\"v\":[{\"e\":17},15],\"w\":[{\"a\":5}],\"z\":[{\"e\":5,\"i\":4}],\"u\":[{\"s\":[{\"t\":[{\"i\":84}]}]}]},41],\"q\":29,\"r\":[{\"a\":[{\"s\":[{\"t\":6}],\"t\":[{\".\":32,\"i\":[{\"c\":32}]}]}],\"e\":[{\"a\":[{\"t\":11}],\"d\":32,\"t\":[{\"a\":47}],\"v\":0}],\"i\":[{\"f\":5,\"n\":21,\"s\":17,\"t\":[{\"i\":[{\"e\":11},32]}]},8],\"o\":[{\"p\":[{\"l\":0,\"o\":6}],\"s\":[{\"e\":17}],\"c\":[{\"o\":[{\"d\":197}]}],\"e\":[{\"c\":[{\"o\":148}]}]}],\"u\":[{\"d\":0}]}],\"s\":66,\"t\":[{\"a\":[{\"b\":0,\"n\":[{\"g\":4,\"t\":19}]}],\"e\":[{\"r\":23},24],\"i\":[{\"c\":[{\"u\":21}],\"m\":[{\"i\":12}]}],\"u\":[{\"r\":0}],\"w\":21,\"r\":[{\"o\":[{\"m\":[{\"e\":[{\"c\":198}]}]}]}]},42],\"u\":[{\"d\":5,\"f\":21,\"i\":[{\"t\":[{\"y\":4}]},21],\"l\":[{\"i\":32,\"t\":[{\"i\":[{\"s\":0}],\"u\":27}]}],\"m\":[{\"a\":9,\"e\":23,\"i\":1}],\"n\":27,\"p\":[{\"i\":3,\"y\":4}],\"r\":[{\"a\":[{\"b\":67,\"n\":[{\"c\":[{\"e\":199}]}]}],\"i\":[{\"a\":4}]}],\"s\":[{\"s\":[{\"i\":17}]},41],\"t\":[{\"i\":[{\"e\":1,\"v\":56}],\"r\":18},68]}],\"y\":41,\"z\":[{\"e\":0}]}],\"d\":[{\"a\":[{\".\":32,\"b\":70,\"c\":[{\"h\":17}],\"f\":18,\"g\":25,\"m\":71,\"n\":[{\"g\":11}],\"r\":[{\"d\":6,\"k\":6,\"y\":18}],\"t\":[{\"i\":[{\"v\":18}],\"o\":18,\"a\":[{\"b\":137}]},27],\"v\":[{\"e\":5},53],\"y\":32,\"l\":[{\"o\":[{\"n\":[{\"e\":48}]}]}]},69],\"b\":29,\"c\":19,\"d\":[{\"a\":[{\"b\":20}],\"i\":[{\"b\":94}]},72],\"e\":[{\".\":25,\"a\":[{\"f\":6,\"l\":[{\"s\":[{\".\":1}]}]}],\"b\":[{\"i\":[{\"t\":5}],\"o\":[{\"n\":1}]}],\"c\":[{\"a\":[{\"n\":36}],\"i\":[{\"l\":1}],\"o\":[{\"m\":4}],\"l\":[{\"a\":[{\"r\":200}],\"i\":[{\"n\":[{\"a\":64}]}]}]}],\"d\":42,\"e\":[{\".\":18}],\"i\":[{\"f\":4}],\"l\":[{\"i\":[{\"e\":17,\"q\":16}],\"o\":4}],\"m\":[{\".\":32,\"i\":[{\"c\":[{\".\":5},27],\"l\":4}],\"o\":[{\"n\":[{\"s\":1}],\"r\":7,\"s\":9}]},21],\"n\":[{\"a\":[{\"r\":1}],\"o\":3,\"t\":[{\"i\":[{\"f\":7}]}],\"u\":3},41],\"p\":[{\"a\":3,\"i\":17,\"u\":9},2],\"q\":23,\"r\":[{\"h\":21,\"m\":32,\"n\":[{\"i\":[{\"z\":6}]}],\"s\":5}],\"s\":[{\".\":24,\"c\":2,\"o\":64,\"t\":[{\"i\":11,\"r\":3}],\"u\":1,\"i\":[{\"c\":11}]},8],\"t\":[{\"o\":9,\"i\":[{\"c\":9}]},2],\"v\":[{\"i\":[{\"l\":11}]},2],\"y\":18,\"f\":[{\"i\":[{\"n\":[{\"i\":[{\"t\":[{\"i\":201}]}]}]}]}]}],\"f\":43,\"g\":[{\"a\":21,\"e\":[{\"t\":73}],\"i\":2,\"y\":24}],\"h\":74,\"i\":[{\".\":32,\"a\":[{\"b\":5},75],\"c\":[{\"a\":[{\"m\":1,\"i\":[{\"d\":15}]}],\"e\":21,\"t\":27}],\"d\":27,\"e\":[{\"n\":76}],\"f\":[{\"f\":[{\"r\":[{\"a\":5}]}]},29],\"g\":[{\"e\":3}],\"l\":[{\"a\":[{\"t\":[{\"o\":1}]}]}],\"n\":[{\"a\":41,\"e\":[{\".\":27}],\"i\":[{\"z\":4},32]},29],\"o\":[{\"g\":5},41],\"p\":[{\"l\":1}],\"r\":[{\"e\":[{\"n\":9,\"r\":9},2],\"t\":[{\"i\":6}]},8],\"s\":[{\"i\":32,\"t\":77},15],\"t\":[{\"i\":24}],\"v\":78,\"m\":[{\"e\":[{\"t\":[{\"h\":[{\"y\":141}]}]}]}]}],\"j\":29,\"k\":79,\"l\":[{\"a\":56,\"e\":[{\".\":27,\"d\":27,\"s\":[{\".\":27,\"s\":18}],\"a\":[{\"d\":42}]}],\"o\":48,\"u\":56,\"y\":25,\"i\":[{\"e\":202}]}],\"m\":29,\"n\":80,\"o\":[{\".\":27,\"d\":[{\"e\":4}],\"e\":32,\"f\":57,\"g\":21,\"l\":[{\"a\":1,\"i\":17,\"o\":[{\"r\":4}]}],\"m\":[{\"i\":[{\"z\":5}]}],\"n\":[{\"a\":[{\"t\":3}],\"i\":17}],\"o\":[{\"d\":11}],\"p\":[{\"p\":0}],\"r\":21,\"s\":27,\"u\":[{\"t\":56}],\"v\":1,\"x\":27,\"w\":[{\"o\":[{\"r\":[{\"d\":203}]}]}]},41],\"p\":29,\"r\":[{\"a\":[{\"g\":[{\"o\":[{\"n\":6}]}],\"i\":18}],\"e\":[{\"a\":[{\"r\":6}],\"n\":[{\"a\":[{\"l\":204}]},32]},0],\"i\":[{\"b\":0,\"l\":17,\"f\":[{\"t\":[{\"a\":189}]}],\"p\":[{\"l\":[{\"e\":[{\"g\":205}]}]}]}],\"o\":[{\"p\":0,\"w\":18,\"m\":[{\"e\":[{\"d\":206}]}]}],\"u\":[{\"p\":[{\"l\":[{\"i\":32}]}]}],\"y\":18},41],\"s\":[{\"p\":1,\"w\":21,\"y\":21},81],\"t\":[{\"h\":24,\"a\":[{\"b\":23}]}],\"u\":[{\"a\":[{\"l\":[{\".\":9}]},82],\"c\":[{\"a\":29,\"e\":[{\"r\":5}],\"t\":[{\".\":18,\"s\":18}]},9],\"e\":[{\"l\":4}],\"g\":1,\"l\":[{\"e\":23}],\"m\":[{\"b\":[{\"e\":0}]}],\"n\":1,\"p\":[{\"e\":1},18],\"o\":[{\"p\":[{\"o\":[{\"l\":207}]}]}]},41],\"v\":29,\"w\":29,\"y\":[{\"n\":32,\"s\":[{\"e\":1,\"p\":5}]},24]}],\"e\":[{\"a\":[{\"b\":72,\"c\":[{\"t\":23}],\"d\":[{\"i\":[{\"e\":5}]},15],\"g\":[{\"e\":[{\"r\":4},1]}],\"l\":[{\"e\":[{\"r\":5}],\"o\":[{\"u\":11}]},1],\"m\":[{\"e\":[{\"r\":11}]}],\"n\":[{\"d\":19,\"i\":[{\"e\":[{\"s\":111}]}]}],\"r\":[{\"a\":11,\"c\":0,\"e\":[{\"s\":5}],\"i\":[{\"c\":0,\"l\":0}],\"k\":5,\"t\":[{\"e\":12},8]}],\"s\":[{\"p\":4,\"s\":23,\"t\":12}],\"t\":[{\"e\":[{\"n\":5}],\"h\":[{\"i\":12}],\"i\":[{\"f\":19}],\"u\":83},9],\"v\":[{\"e\":[{\"n\":11}],\"i\":5,\"o\":5},9]}],\"b\":[{\"e\":[{\"l\":[{\".\":21,\"s\":21}],\"n\":21}],\"i\":[{\"t\":21}],\"r\":23},42],\"c\":[{\"a\":[{\"d\":21,\"n\":[{\"c\":6}]}],\"c\":[{\"a\":6}],\"e\":[{\"s\":[{\"s\":[{\"a\":4}]}]},29],\"i\":[{\"b\":21,\"f\":[{\"i\":[{\"c\":[{\"a\":[{\"t\":4}]}],\"e\":4}],\"y\":4}],\"m\":3,\"t\":[{\"e\":19},0]},9],\"l\":[{\"a\":[{\"m\":21}],\"u\":[{\"s\":21}]}],\"o\":[{\"l\":24,\"m\":[{\"m\":21,\"p\":[{\"e\":21}]}],\"n\":[{\"c\":21}],\"r\":[{\"a\":3,\"o\":5},24]}],\"r\":[{\"e\":[{\"m\":21}]},29],\"t\":[{\"a\":[{\"n\":1}],\"e\":1}],\"u\":[{\"l\":[{\"a\":3},21]},29],\"h\":[{\"a\":[{\"s\":23}]}]}],\"d\":[{\"a\":37,\"d\":61,\"e\":[{\"r\":34,\"s\":0}],\"i\":[{\"a\":23,\"b\":3,\"c\":[{\"a\":3}],\"m\":3,\"t\":2,\"z\":5},18],\"o\":[{\"l\":21,\"n\":84},18],\"r\":[{\"i\":21}],\"u\":[{\"l\":[{\"o\":4,\"i\":[{\"n\":[{\"g\":2}]}]},21]}],\"g\":[{\"l\":15}]}],\"e\":[{\"c\":9,\"d\":[{\"i\":11}],\"f\":9,\"l\":[{\"i\":11,\"y\":1}],\"m\":9,\"n\":[{\"a\":1}],\"p\":85,\"s\":[{\"t\":17},86],\"t\":[{\"y\":1}],\"x\":19}],\"f\":[{\"e\":[{\"r\":[{\"e\":83}]}],\"f\":41,\"i\":[{\"c\":[{\"i\":32},21],\"l\":17,\"n\":[{\"e\":23,\"i\":[{\"t\":[{\"e\":20}]}]}],\"t\":27}],\"o\":[{\"r\":[{\"e\":[{\"s\":6}]}]}],\"u\":[{\"s\":[{\"e\":[{\".\":21}]}]}]},29],\"g\":[{\"a\":[{\"l\":18}],\"e\":[{\"r\":17}],\"i\":[{\"b\":4,\"c\":1,\"n\":[{\"g\":4}],\"t\":87}],\"n\":4,\"o\":[{\".\":21,\"s\":21}],\"u\":[{\"l\":2,\"r\":19}],\"y\":32}],\"h\":[{\"e\":[{\"r\":17}]},72],\"i\":[{\"c\":19,\"d\":4,\"g\":[{\"l\":4},8],\"m\":[{\"b\":23}],\"n\":[{\"f\":23,\"g\":29,\"s\":[{\"t\":19}]}],\"r\":[{\"d\":0}],\"t\":[{\"e\":11,\"h\":3,\"y\":19}]},9],\"j\":[{\"u\":[{\"d\":[{\"i\":4},21]}]},29],\"k\":[{\"i\":[{\"n\":0}],\"l\":[{\"a\":1}]}],\"l\":[{\"a\":[{\".\":21,\"c\":21,\"n\":[{\"d\":17}],\"t\":[{\"i\":[{\"v\":4}]}],\"w\":21,\"x\":[{\"a\":36}]},29],\"e\":[{\"a\":23,\"b\":[{\"r\":[{\"a\":4}]}],\"c\":32,\"d\":21,\"g\":[{\"a\":3}],\"n\":19,\"r\":34,\"s\":29}],\"f\":9,\"i\":[{\"b\":[{\"e\":23}],\"c\":[{\".\":33,\"a\":3}],\"e\":[{\"r\":23}],\"g\":[{\"i\":[{\"b\":4}]}],\"m\":19,\"n\":[{\"g\":83}],\"o\":23,\"s\":[{\"h\":4},24],\"v\":88,\"t\":[{\"i\":[{\"s\":208}]}]},9],\"l\":[{\"a\":[{\"b\":1},18],\"o\":17}],\"o\":[{\"c\":19,\"g\":4,\"p\":[{\".\":3}],\"a\":29}],\"s\":[{\"h\":9}],\"t\":[{\"a\":1}],\"u\":[{\"d\":19,\"g\":4}]}],\"m\":[{\"a\":[{\"c\":21,\"g\":21,\"n\":[{\"a\":4},19]}],\"b\":4,\"e\":[{\"l\":24,\"t\":21},29],\"i\":[{\"c\":[{\"a\":3}],\"e\":0,\"g\":[{\"r\":[{\"a\":4}]}],\"n\":[{\"e\":4,\"i\":35},89],\"s\":[{\"h\":4,\"s\":19},21],\"z\":3}],\"n\":[{\"i\":[{\"z\":32}]}],\"o\":[{\"g\":0,\"n\":[{\"i\":[{\"o\":7}]}]}],\"p\":[{\"i\":3}],\"u\":[{\"l\":[{\"a\":4},21],\"n\":11}],\"y\":23}],\"n\":[{\"a\":[{\"m\":[{\"o\":4}],\"n\":[{\"t\":21}]}],\"c\":[{\"h\":[{\"e\":[{\"r\":17}]}]}],\"d\":[{\"i\":[{\"c\":3,\"x\":2}]}],\"e\":[{\"a\":19,\"e\":19,\"m\":3,\"r\":[{\"o\":4}],\"s\":[{\"i\":4,\"t\":4}],\"t\":[{\"r\":3}],\"w\":23}],\"i\":[{\"c\":[{\"s\":4}],\"e\":19,\"l\":19,\"o\":23,\"s\":[{\"h\":3}],\"t\":3,\"u\":19,\"z\":32}],\"n\":18,\"o\":[{\"g\":0,\"s\":21,\"v\":3},18],\"s\":[{\"w\":1}],\"t\":[{\"a\":[{\"g\":[{\"e\":5}]}],\"h\":[{\"e\":[{\"s\":18}]}]}],\"u\":[{\"a\":3,\"f\":4}],\"y\":[{\".\":23}],\"z\":61}],\"o\":[{\"f\":19,\"g\":[{\"r\":[{\"a\":[{\"p\":3}]}]},9],\"i\":90,\"l\":23,\"p\":[{\"a\":[{\"r\":11}]}],\"r\":[{\"e\":3,\"o\":[{\"l\":4}]},29],\"s\":0,\"t\":[{\"o\":1},21],\"u\":[{\"t\":19}],\"w\":19}],\"p\":[{\"a\":[{\"i\":23,\"n\":[{\"c\":4}]},24],\"e\":[{\"l\":19,\"n\":[{\"t\":23}],\"t\":[{\"i\":[{\"t\":[{\"i\":[{\"o\":4}]}]}]}]}],\"h\":[{\"e\":17}],\"l\":[{\"i\":21}],\"o\":29,\"r\":[{\"e\":[{\"c\":[{\"a\":4},21],\"d\":21,\"h\":3}],\"o\":[{\"b\":21},23]}],\"s\":[{\"h\":1}],\"t\":[{\"i\":[{\"b\":13}]}],\"u\":[{\"t\":[{\"a\":4},21]}],\"i\":[{\"n\":[{\"e\":[{\"p\":[{\"h\":209}]}]}]}]}],\"q\":[{\"u\":[{\"i\":[{\"l\":12,\"s\":91}]}]},29],\"r\":[{\"a\":[{\"b\":0,\"n\":[{\"d\":18}],\"r\":3,\"t\":[{\"i\":[{\".\":18}]}]},2],\"b\":[{\"l\":1},25],\"c\":[{\"h\":[{\"e\":1},3]}],\"e\":[{\".\":25,\"a\":[{\"l\":23}],\"c\":[{\"o\":5}],\"i\":[{\"n\":11}],\"l\":[{\".\":4}],\"m\":[{\"o\":3}],\"n\":[{\"a\":4,\"c\":[{\"e\":4}],\"e\":18,\"t\":3}],\"q\":0,\"s\":[{\"s\":4,\"t\":3}],\"t\":17}],\"h\":2,\"i\":[{\"a\":[{\"n\":[{\".\":210}]},92],\"c\":[{\"k\":32}],\"e\":[{\"n\":23,\"r\":0}],\"n\":[{\"e\":3}],\"o\":29,\"t\":18,\"u\":1,\"v\":[{\"a\":21},0]},2],\"m\":93,\"n\":[{\"i\":[{\"s\":1,\"t\":18,\"z\":32}],\"o\":3}],\"o\":[{\"b\":4,\"c\":19,\"r\":0,\"u\":2},25],\"s\":[{\"e\":[{\"t\":3}]},2],\"t\":[{\"e\":[{\"r\":11}],\"l\":18,\"w\":3}],\"u\":[{\"t\":0},18],\"w\":[{\"a\":[{\"u\":32}]}]}],\"s\":[{\"a\":[{\"g\":[{\"e\":[{\".\":21,\"s\":21}]}]},72],\"c\":[{\"a\":[{\"n\":4},24],\"r\":23,\"u\":4},9],\"e\":[{\"c\":[{\"r\":4},24],\"n\":[{\"c\":4}],\"r\":[{\"t\":[{\".\":21,\"s\":21}],\"v\":[{\"a\":21}]}]},74],\"h\":[{\"a\":23,\"e\":[{\"n\":5}]},18],\"i\":[{\"c\":24,\"d\":[{\"e\":[{\"n\":4}]},24],\"g\":[{\"n\":[{\"a\":4}]}],\"m\":94,\"n\":95,\"s\":[{\"t\":[{\"e\":17}]}],\"u\":0},29],\"k\":[{\"i\":[{\"n\":19}]}],\"m\":[{\"i\":1}],\"o\":[{\"l\":[{\"u\":3},24],\"n\":[{\"a\":4},24]}],\"p\":[{\"e\":[{\"r\":3}],\"i\":[{\"r\":[{\"a\":4}]}],\"r\":[{\"e\":1}],\"a\":[{\"c\":[{\"i\":211}]}]},29],\"s\":[{\"i\":[{\"b\":96}]},25],\"t\":[{\"a\":[{\"n\":36}],\"i\":[{\"g\":3,\"m\":4}],\"o\":[{\"n\":23},44],\"r\":[{\"o\":19,\"u\":[{\"c\":10}]},25]}],\"u\":[{\"r\":[{\"r\":4},24]}],\"w\":1}],\"t\":[{\"a\":[{\"b\":0}],\"e\":[{\"n\":[{\"d\":17}],\"o\":23}],\"h\":[{\"o\":[{\"d\":54}],\"y\":[{\"l\":[{\"e\":[{\"n\":[{\"e\":162}]}]}]}]}],\"i\":[{\"c\":2,\"d\":[{\"e\":19}],\"n\":[{\"o\":0},17],\"r\":19,\"t\":[{\"i\":[{\"o\":19,\"v\":4}]}]}],\"n\":18,\"o\":[{\"n\":[{\"a\":4}]}],\"r\":[{\"a\":23,\"e\":23,\"i\":[{\"c\":3,\"f\":4}],\"o\":[{\"g\":3,\"s\":4}]}],\"u\":[{\"a\":3}],\"y\":[{\"m\":4}],\"z\":4}],\"u\":[{\"n\":19,\"p\":23,\"r\":[{\"o\":3}],\"s\":0,\"t\":[{\"e\":17,\"i\":[{\"l\":6}],\"r\":4}],\"c\":[{\"l\":[{\"i\":[{\"d\":212}]}]}]},18],\"v\":[{\"a\":[{\"p\":97,\"s\":[{\"t\":4},24]}],\"e\":[{\"a\":19,\"l\":[{\"l\":3,\"o\":12}],\"n\":[{\"g\":19,\"i\":17}],\"r\":[{\"b\":19},2]}],\"i\":[{\"d\":3,\"l\":0,\"n\":21,\"v\":0},29],\"o\":[{\"c\":19}],\"u\":19}],\"w\":[{\"a\":[{\"g\":21},29],\"e\":[{\"e\":19}],\"h\":23,\"i\":[{\"l\":6,\"n\":[{\"g\":3}],\"t\":23}]}],\"x\":[{\"p\":41}],\"y\":[{\"c\":32,\"e\":[{\".\":32}],\"s\":0}]}],\"f\":[{\"a\":[{\"b\":[{\"l\":3,\"r\":11}],\"c\":[{\"e\":1}],\"g\":18,\"i\":[{\"n\":17}],\"l\":[{\"l\":[{\"e\":6}]}],\"m\":[{\"a\":26,\"i\":[{\"s\":5}]}],\"r\":[{\"t\":[{\"h\":5}]},32],\"t\":[{\"a\":3,\"h\":[{\"e\":3}],\"o\":18}],\"u\":[{\"l\":[{\"t\":7}]}]},41],\"b\":56,\"d\":18,\"e\":[{\".\":18,\"a\":[{\"s\":17,\"t\":[{\"h\":54}]}],\"b\":[{\"r\":[{\"u\":[{\"a\":15}]}]},1],\"c\":[{\"a\":18,\"t\":32}],\"d\":25,\"l\":[{\"i\":3}],\"m\":[{\"o\":1}],\"n\":[{\"d\":[{\"e\":6},8]}],\"r\":[{\"r\":32,\"m\":[{\"i\":[{\"o\":213}]}]},15],\"v\":0}],\"f\":[{\"e\":[{\"s\":21}],\"i\":[{\"e\":21,\"n\":[{\".\":19}],\"s\":94}],\"l\":[{\"y\":21}],\"y\":24},43],\"h\":18,\"i\":[{\"a\":3,\"c\":[{\".\":48,\"a\":[{\"l\":47,\"n\":23,\"t\":[{\"e\":18}]}],\"e\":[{\"n\":23,\"r\":3}],\"i\":[{\"a\":32,\"e\":32},0],\"s\":18,\"u\":3,\"h\":27}],\"d\":[{\"e\":[{\"l\":4}]}],\"g\":[{\"h\":[{\"t\":7}]}],\"l\":[{\"i\":5,\"l\":[{\"i\":[{\"n\":6}]}],\"y\":18}],\"n\":[{\"a\":32,\"d\":97,\"e\":9,\"g\":98,\"n\":0},25],\"s\":[{\"t\":[{\"i\":0}]}],\"t\":[{\"t\":[{\"e\":[{\"d\":[{\".\":5}]}]}]}]},41],\"l\":[{\"e\":[{\"s\":[{\"s\":19}]}],\"i\":[{\"n\":17}],\"o\":[{\"r\":[{\"e\":11}],\"w\":[{\"e\":[{\"r\":[{\".\":84}]}]}]}],\"y\":100,\"a\":[{\"g\":[{\"e\":[{\"l\":214}]}]}],\"u\":[{\"o\":[{\"r\":27}]}]},99],\"m\":18,\"n\":18,\"o\":[{\"n\":[{\"d\":[{\"e\":0}],\"t\":0},32],\"r\":[{\"a\":[{\"t\":4,\"y\":5}],\"e\":[{\"t\":6}],\"i\":0,\"t\":[{\"a\":6}]},9],\"s\":5},41],\"p\":56,\"r\":[{\"a\":[{\"t\":0}],\"e\":[{\"a\":19,\"s\":[{\"c\":6}]}],\"i\":[{\"l\":17},8],\"o\":[{\"l\":6}]}],\"s\":48,\"t\":[{\"o\":21,\"y\":24},25],\"u\":[{\"e\":[{\"l\":4}],\"g\":18,\"m\":[{\"i\":[{\"n\":1}]}],\"n\":[{\"e\":4}],\"r\":[{\"i\":3}],\"s\":[{\"i\":17,\"s\":0}],\"t\":[{\"a\":18}]},27],\"y\":41}],\"g\":[{\"a\":[{\"f\":0,\"l\":[{\".\":32,\"i\":27,\"o\":3}],\"m\":[{\"e\":[{\"t\":4}],\"o\":19},25],\"n\":[{\"i\":[{\"s\":5,\"z\":[{\"a\":6},3]}],\"o\":18}],\"r\":[{\"n\":67}],\"s\":[{\"s\":17}],\"t\":[{\"h\":12,\"i\":[{\"v\":18}]}],\"z\":18},41],\"b\":23,\"d\":1,\"e\":[{\".\":25,\"d\":25,\"e\":[{\"z\":17}],\"l\":[{\"i\":[{\"n\":0,\"s\":4,\"z\":4}],\"y\":18}],\"n\":[{\"a\":[{\"t\":1}],\"i\":[{\"z\":4}],\"o\":18,\"y\":18,\"c\":[{\"y\":[{\".\":8}]}]},41],\"o\":[{\"m\":3,\"d\":215},41],\"r\":[{\"y\":21}],\"s\":[{\"i\":32}],\"t\":[{\"h\":6,\"o\":18,\"y\":1,\"i\":[{\"c\":[{\".\":8}]}]}],\"v\":1}],\"g\":[{\"e\":[{\"r\":23},24],\"l\":[{\"u\":6}],\"o\":0},101],\"h\":[{\"i\":[{\"n\":3}],\"o\":[{\"u\":[{\"t\":4}]}],\"t\":[{\"o\":1,\"w\":[{\"e\":15}]}]}],\"i\":[{\".\":32,\"a\":[{\"r\":5},102],\"c\":[{\"i\":[{\"a\":32}],\"o\":21},29],\"e\":[{\"n\":6,\"s\":[{\".\":32}]}],\"l\":0,\"m\":[{\"e\":[{\"n\":23}]}],\"n\":[{\".\":68,\"g\":[{\"e\":5}],\"s\":103}],\"o\":32,\"r\":[{\"l\":0},27],\"s\":[{\"l\":23}],\"u\":1,\"v\":32,\"z\":27}],\"l\":[{\"a\":[{\"d\":[{\"i\":6}],\"s\":32},0],\"e\":[{\"a\":[{\"d\":29}]},41],\"i\":[{\"b\":0,\"g\":23,\"s\":[{\"h\":43}]}],\"o\":[{\"r\":11,\"b\":[{\"i\":[{\"n\":106}]}]},27]},9],\"m\":[{\"y\":21},29],\"n\":[{\"a\":[{\".\":21,\"c\":69},1],\"e\":[{\"t\":[{\"t\":17,\"i\":[{\"s\":[{\"m\":137}]}]}]}],\"i\":[{\"n\":24,\"o\":21},29],\"o\":[{\"n\":21,\"m\":[{\"o\":5}],\"r\":[{\".\":216,\"e\":[{\"s\":[{\"p\":24}]}]}]},29]}],\"o\":[{\".\":27,\"b\":5,\"e\":32,\"g\":104,\"i\":[{\"s\":3}],\"n\":[{\"a\":105,\"d\":[{\"o\":7}],\"i\":[{\"z\":[{\"a\":217}]},3]},8],\"o\":32,\"r\":[{\"i\":[{\"z\":4}],\"o\":[{\"u\":5}]}],\"s\":[{\".\":32}],\"v\":15},41],\"p\":23,\"r\":[{\"a\":[{\"d\":[{\"a\":18}],\"i\":21,\"n\":84,\"p\":[{\"h\":[{\".\":32,\"e\":[{\"r\":[{\".\":7},19]}],\"i\":[{\"c\":32}],\"y\":18}]}],\"y\":18}],\"e\":[{\"n\":0,\"s\":[{\"s\":[{\".\":18}]}]}],\"i\":[{\"t\":18,\"e\":[{\"v\":213}]}],\"o\":21,\"u\":[{\"f\":17}]},41],\"s\":[{\"t\":[{\"e\":19}]},9],\"t\":[{\"h\":11}],\"u\":[{\"a\":[{\"r\":[{\"d\":27}]},1],\"e\":25,\"i\":[{\"t\":106}],\"n\":27,\"s\":27,\"t\":[{\"a\":[{\"n\":29}]},26]}],\"w\":23,\"y\":[{\"n\":107,\"r\":[{\"a\":4}]},41]}],\"h\":[{\"a\":[{\"b\":[{\"l\":73}],\"c\":[{\"h\":17}],\"e\":[{\"m\":0,\"t\":0}],\"g\":[{\"u\":19}],\"l\":[{\"a\":[{\"m\":12},3]}],\"m\":1,\"n\":[{\"c\":[{\"i\":0,\"y\":0}],\"d\":[{\".\":32}],\"g\":[{\"e\":[{\"r\":6}],\"o\":6},0],\"i\":[{\"z\":108}],\"k\":0,\"t\":[{\"e\":0}]}],\"p\":[{\"l\":11,\"t\":5,\"a\":[{\"r\":[{\"r\":218}]}]}],\"r\":[{\"a\":[{\"n\":3,\"s\":4}],\"d\":[{\"e\":12},8],\"l\":[{\"e\":0}],\"p\":[{\"e\":[{\"n\":6}]}],\"t\":[{\"e\":[{\"r\":5}]}]}],\"s\":[{\"s\":5}],\"u\":[{\"n\":17}],\"z\":[{\"a\":11},32],\"i\":[{\"r\":[{\"s\":137}]}],\"t\":[{\"c\":[{\"h\":213}]}]}],\"b\":29,\"e\":[{\"a\":[{\"d\":41,\"r\":27}],\"c\":[{\"a\":[{\"n\":1,\"t\":19}]}],\"d\":[{\"o\":13},21],\"l\":[{\"i\":93,\"l\":[{\"i\":[{\"s\":0}],\"y\":0}],\"o\":19}],\"m\":[{\"p\":0}],\"n\":[{\"a\":[{\"t\":5},17]},9],\"o\":[{\"r\":5}],\"p\":5,\"r\":[{\"a\":[{\"p\":12},21],\"b\":[{\"a\":0}],\"e\":[{\"a\":6}],\"n\":23,\"o\":[{\"u\":19}],\"y\":23}],\"s\":[{\"p\":64},29],\"t\":[{\"e\":[{\"d\":0}]},1],\"u\":0,\"x\":[{\"a\":168}]}],\"f\":29,\"h\":29,\"i\":[{\"a\":[{\"n\":4}],\"c\":[{\"o\":1}],\"g\":[{\"h\":6}],\"l\":109,\"m\":[{\"e\":[{\"r\":36}]}],\"n\":[{\"a\":21}],\"o\":[{\"n\":[{\"e\":17}]}],\"p\":[{\"e\":[{\"l\":[{\"a\":219}]}]},1],\"r\":[{\"l\":0,\"o\":3,\"p\":0,\"r\":0}],\"s\":[{\"e\":[{\"l\":11}],\"s\":0}],\"t\":[{\"h\":[{\"e\":[{\"r\":6}]}],\"e\":[{\"s\":[{\"i\":[{\"d\":12}]}]}]}],\"v\":9}],\"k\":18,\"l\":[{\"a\":[{\"n\":17}],\"o\":[{\"r\":[{\"i\":11}]},24]},80],\"m\":[{\"e\":[{\"t\":17}]},43],\"n\":[{\"a\":[{\"u\":[{\"z\":12}]}]},42],\"o\":[{\"d\":[{\"i\":[{\"z\":19}],\"s\":19}],\"g\":[{\"e\":17},1],\"l\":[{\"a\":[{\"r\":5}],\"e\":110}],\"m\":[{\"a\":1,\"e\":12}],\"n\":[{\"a\":0,\"y\":4}],\"o\":[{\"d\":27,\"n\":17}],\"r\":[{\"a\":[{\"t\":5}],\"i\":[{\"s\":4,\"c\":[{\".\":187}]}],\"t\":[{\"e\":12}],\"u\":4}],\"s\":[{\"e\":[{\"n\":4},0],\"p\":15}],\"u\":[{\"s\":[{\"e\":54},41]}],\"v\":[{\"e\":[{\"l\":5}]}]}],\"p\":56,\"r\":[{\"e\":[{\"e\":6}],\"o\":[{\"n\":[{\"i\":[{\"z\":5}]}],\"p\":[{\"o\":11}]}]},26],\"s\":[{\"h\":21},101],\"t\":[{\"a\":[{\"r\":21}],\"e\":[{\"n\":2,\"s\":4,\"o\":[{\"u\":216}]}],\"y\":21}],\"u\":[{\"g\":1,\"m\":[{\"i\":[{\"n\":1}]}],\"n\":[{\"k\":[{\"e\":5}],\"t\":0}],\"s\":[{\"t\":14}],\"t\":1}],\"w\":[{\"a\":[{\"r\":[{\"t\":21}]}]},29],\"y\":[{\"p\":[{\"e\":3,\"h\":3,\"o\":[{\"t\":[{\"h\":[{\"a\":137}]}]}]}],\"s\":9}]}],\"i\":[{\"a\":[{\"l\":24,\"m\":[{\"e\":[{\"t\":[{\"e\":5}]}]},0],\"n\":[{\"c\":18,\"i\":11,\"t\":46},24],\"p\":[{\"e\":4}],\"s\":[{\"s\":17}],\"t\":[{\"i\":[{\"v\":21}],\"r\":[{\"i\":[{\"c\":1}]}],\"u\":21}]},42],\"b\":[{\"e\":[{\"r\":[{\"a\":3,\"t\":4}]},0],\"i\":[{\"a\":4,\"n\":3,\"t\":[{\".\":4,\"e\":4}]}],\"l\":[{\"i\":3},29],\"o\":19,\"r\":[{\"i\":94},29],\"u\":[{\"n\":19}]}],\"c\":[{\"a\":[{\"m\":18,\"p\":32,\"r\":[{\".\":21,\"a\":21},18],\"s\":6,\"y\":21}],\"c\":[{\"u\":17}],\"e\":[{\"o\":18}],\"h\":18,\"i\":[{\"d\":19,\"n\":[{\"a\":4}],\"p\":[{\"a\":3},24]},25],\"l\":[{\"y\":21}],\"o\":[{\"c\":94}],\"r\":[{\"a\":32,\"y\":21},43],\"t\":[{\"e\":1,\"u\":[{\"a\":111},84]}],\"u\":[{\"l\":[{\"a\":3}],\"m\":1,\"o\":4,\"r\":23}]}],\"d\":[{\"a\":[{\"i\":21,\"n\":[{\"c\":4}]}],\"d\":4,\"e\":[{\"a\":[{\"l\":11}],\"s\":0}],\"i\":[{\"a\":[{\"n\":4,\"r\":0}],\"e\":19,\"o\":[{\"u\":5,\"s\":1},3],\"t\":2,\"u\":4},24],\"l\":[{\"e\":23}],\"o\":[{\"m\":21,\"w\":3}],\"r\":21,\"u\":[{\"o\":4},24]},25],\"e\":[{\"d\":[{\"e\":0}],\"g\":[{\"a\":113}],\"l\":[{\"d\":12}],\"n\":[{\"a\":67,\"e\":0,\"n\":19,\"t\":[{\"i\":23}]}],\"r\":[{\".\":29}],\"s\":[{\"c\":23,\"t\":29}],\"t\":23},112],\"f\":[{\".\":18,\"e\":[{\"r\":[{\"o\":4}]}],\"f\":[{\"e\":[{\"n\":5}],\"r\":1}],\"i\":[{\"c\":[{\".\":18}],\"e\":23}],\"l\":23,\"t\":18,\"a\":[{\"c\":[{\"e\":[{\"t\":137}]}]}]}],\"g\":[{\"a\":[{\"b\":5}],\"e\":[{\"r\":[{\"a\":3}]}],\"h\":[{\"t\":[{\"i\":12}]}],\"i\":[{\"b\":23,\"l\":3,\"n\":3,\"t\":3},18],\"l\":28,\"o\":[{\"r\":3,\"t\":4},24],\"r\":[{\"e\":19}],\"u\":[{\"i\":5,\"r\":2}],\"n\":[{\"i\":[{\"t\":[{\"e\":[{\"r\":213}]},0]}]}]},25],\"h\":23,\"i\":114,\"j\":[{\"k\":21},23],\"k\":18,\"l\":[{\"a\":[{\"b\":93,\"d\":[{\"e\":21}],\"m\":94,\"r\":[{\"a\":5}]},29],\"e\":[{\"g\":23,\"r\":2,\"v\":17}],\"f\":4,\"i\":[{\"a\":3,\"b\":9,\"o\":3,\"s\":[{\"t\":1}],\"t\":25,\"z\":9},2],\"l\":[{\"a\":[{\"b\":5}]}],\"n\":18,\"o\":[{\"q\":3}],\"t\":[{\"y\":1}],\"u\":[{\"r\":4}],\"v\":3}],\"m\":[{\"a\":[{\"g\":[{\"e\":3},21],\"r\":[{\"y\":5}]}],\"e\":[{\"n\":[{\"t\":[{\"a\":[{\"r\":10}]}]}],\"t\":18}],\"i\":[{\"d\":[{\"a\":4}],\"l\":[{\"e\":5}],\"n\":[{\"i\":19}],\"t\":18},2],\"n\":[{\"i\":1}],\"o\":[{\"n\":23}],\"u\":[{\"l\":[{\"a\":3}]},24],\"p\":[{\"e\":[{\"d\":[{\"a\":201}]}]}]}],\"n\":[{\".\":25,\"a\":[{\"u\":83,\"v\":18}],\"c\":[{\"e\":[{\"l\":36,\"r\":3}]}],\"d\":[{\"l\":[{\"i\":[{\"n\":[{\"g\":4}]}]}]},18],\"e\":[{\"e\":23,\"r\":[{\"a\":[{\"r\":17}]}],\"s\":[{\"s\":19}]},25],\"g\":[{\"a\":18,\"e\":[{\"n\":4},18],\"i\":18,\"l\":[{\"i\":[{\"n\":[{\"g\":4}]}]}],\"o\":18,\"u\":18}],\"i\":[{\".\":19,\"a\":21,\"o\":3,\"s\":2,\"t\":[{\"e\":[{\".\":19,\"l\":[{\"y\":[{\".\":19}]}]}],\"i\":[{\"o\":32}],\"y\":3}]},25],\"k\":18,\"l\":18,\"n\":25,\"o\":[{\"c\":90,\"s\":0,\"t\":21},42],\"s\":[{\"e\":3,\"u\":[{\"r\":[{\"a\":7}]}]},25],\"t\":[{\".\":25,\"h\":112}],\"u\":[{\"s\":19},2],\"y\":18,\"f\":[{\"r\":[{\"a\":[{\"s\":220}]}]}]}],\"o\":[{\".\":18,\"g\":[{\"e\":17,\"r\":9}],\"l\":29,\"m\":1,\"n\":[{\"a\":[{\"t\":11}],\"e\":[{\"r\":[{\"y\":0}]}],\"i\":11}],\"p\":[{\"h\":4}],\"r\":[{\"i\":11}],\"s\":21,\"t\":[{\"h\":4,\"i\":19,\"o\":1}],\"u\":[{\"r\":21}]},25],\"p\":[{\"e\":0,\"h\":[{\"r\":[{\"a\":[{\"s\":115}]}]}],\"i\":[{\"c\":1},3],\"r\":[{\"e\":96}],\"u\":[{\"l\":3}]},25],\"q\":[{\"u\":[{\"a\":23,\"e\":[{\"f\":4}],\"i\":[{\"d\":3,\"t\":116}]}]}],\"r\":[{\"a\":[{\"b\":0,\"c\":21},29],\"d\":[{\"e\":5}],\"e\":[{\"d\":[{\"e\":0}],\"f\":21,\"l\":117,\"s\":21}],\"g\":[{\"i\":4}],\"i\":[{\"d\":[{\"e\":5}],\"s\":1,\"t\":[{\"u\":11}],\"z\":118},2],\"m\":[{\"i\":[{\"n\":1}]}],\"o\":[{\"g\":0,\"n\":[{\".\":32}]}],\"u\":[{\"l\":4}],\"r\":[{\"e\":[{\"v\":[{\"o\":[{\"c\":221}]}]}]}]},18],\"s\":[{\".\":25,\"a\":[{\"g\":4,\"r\":3,\"s\":6}],\"c\":[{\"h\":3},119],\"e\":[{\"r\":3},18],\"f\":27,\"h\":[{\"a\":[{\"n\":4}],\"o\":[{\"n\":3,\"p\":5}]}],\"i\":[{\"b\":3,\"d\":0,\"s\":19,\"t\":[{\"i\":[{\"v\":4}]}]}],\"k\":26,\"l\":[{\"a\":[{\"n\":36}]}],\"m\":[{\"s\":18}],\"o\":[{\"m\":[{\"e\":[{\"r\":5}]}]},24],\"p\":[{\"i\":9,\"y\":1},2],\"s\":[{\"a\":[{\"l\":1}],\"e\":[{\"n\":36,\"s\":1}]},62],\"t\":[{\"a\":[{\".\":1}],\"e\":2,\"i\":2,\"l\":[{\"y\":0}],\"r\":[{\"a\":[{\"l\":18}]}]}],\"u\":[{\"s\":4},24]}],\"t\":[{\"a\":[{\".\":18,\"b\":[{\"i\":0}],\"g\":21,\"m\":120,\"n\":23,\"t\":23}],\"e\":[{\"r\":[{\"a\":3,\"i\":19}],\"s\":[{\"i\":[{\"m\":[{\"a\":29}]}]},1]},25],\"h\":[{\"i\":[{\"l\":148}]},25],\"i\":[{\"a\":18,\"c\":[{\"a\":3,\"k\":31},22],\"g\":3,\"l\":[{\"l\":4}],\"m\":24,\"o\":25,\"s\":[{\"m\":21},18],\"n\":[{\"e\":[{\"r\":[{\"a\":[{\"r\":158}]}]}]}]},29],\"o\":[{\"m\":121,\"n\":18}],\"r\":[{\"a\":[{\"m\":21}],\"y\":4}],\"t\":18,\"u\":[{\"a\":[{\"t\":3}],\"d\":19,\"l\":3}],\"z\":[{\".\":18}]}],\"u\":29,\"v\":[{\"e\":[{\"l\":[{\"l\":3}],\"n\":[{\".\":3}],\"r\":[{\".\":83,\"s\":[{\".\":21}]}]}],\"i\":[{\"l\":[{\".\":4}],\"o\":4,\"t\":2}],\"o\":[{\"r\":[{\"e\":19,\"o\":35}],\"t\":83}]},25],\"w\":56,\"x\":[{\"o\":1}],\"y\":18,\"z\":[{\"a\":[{\"r\":18}],\"i\":0,\"o\":[{\"n\":[{\"t\":32}]}]}]}],\"j\":[{\"a\":[{\"c\":[{\"q\":0}],\"p\":[{\"a\":[{\"n\":[{\"e\":[{\"s\":220}]}]}]},1],\"n\":[{\"u\":[{\"a\":12}]}]},32],\"e\":[{\"r\":[{\"s\":5,\"e\":[{\"m\":222}]}],\"s\":[{\"t\":[{\"i\":[{\"e\":18}],\"y\":18}]}],\"w\":11},41],\"o\":[{\"p\":1}],\"u\":[{\"d\":[{\"g\":32}]}]}],\"k\":[{\"a\":[{\".\":27,\"b\":23,\"g\":19,\"i\":[{\"s\":17}],\"l\":0}],\"b\":29,\"e\":[{\"d\":24,\"e\":41,\"g\":1,\"l\":[{\"i\":[{\"n\":[{\"g\":223}]},4]}],\"n\":[{\"d\":73}],\"r\":29,\"s\":[{\"t\":[{\".\":23}]},0],\"t\":[{\"y\":1}]}],\"f\":23,\"h\":1,\"i\":[{\".\":32,\"c\":122,\"l\":[{\"l\":21,\"o\":6}],\"m\":21,\"n\":[{\".\":21,\"d\":[{\"e\":0}],\"e\":[{\"s\":[{\"s\":19}],\"t\":[{\"i\":[{\"c\":224}]}]}],\"g\":0}],\"p\":1,\"s\":[{\"h\":19},0]},29],\"k\":1,\"l\":[{\"e\":[{\"y\":18}],\"y\":18},29],\"m\":29,\"n\":[{\"e\":[{\"s\":19}],\"o\":69}],\"o\":[{\"r\":4,\"s\":[{\"h\":17}],\"u\":23,\"v\":[{\"i\":[{\"a\":[{\"n\":41}]}]}]}],\"r\":[{\"o\":[{\"n\":5}]}],\"s\":[{\"c\":21,\"l\":1,\"y\":21,\"h\":[{\"a\":23}]},101],\"t\":19,\"w\":29}],\"l\":[{\"a\":[{\"b\":[{\"i\":[{\"c\":11}],\"o\":21}],\"c\":[{\"i\":[{\"e\":225},17]}],\"d\":[{\"e\":21,\"y\":3}],\"g\":[{\"n\":0}],\"m\":[{\"o\":11}],\"n\":[{\"d\":[{\"l\":0},27],\"e\":[{\"t\":5}],\"t\":[{\"e\":0}]}],\"r\":[{\"g\":0,\"i\":11,\"c\":[{\"e\":[{\"n\":176}]}]}],\"s\":[{\"e\":0}],\"t\":[{\"a\":[{\"n\":4}],\"e\":[{\"l\":[{\"i\":18}]}],\"i\":[{\"v\":18}]}],\"v\":[{\"a\":95},18],\"i\":[{\"n\":[{\"e\":[{\"s\":[{\"s\":226}]}]}]}]}],\"b\":[{\"i\":[{\"n\":17}]},42],\"c\":[{\"e\":0,\"i\":23,\"h\":[{\"a\":[{\"i\":23}],\"i\":[{\"l\":[{\"d\":227}]}]}]},101],\"d\":[{\"e\":[{\"r\":[{\"e\":1,\"i\":1}]},24],\"i\":[{\"s\":4},0],\"r\":[{\"i\":21},23]},25],\"e\":[{\"a\":[{\"d\":[{\"e\":[{\"r\":[{\".\":183}]}]}],\"s\":[{\"a\":228}]},9],\"b\":[{\"i\":1}],\"f\":[{\"t\":6}],\"g\":[{\".\":32,\"g\":32,\"e\":[{\"n\":[{\"d\":[{\"r\":[{\"e\":230}]}]}]}]}],\"m\":[{\"a\":[{\"t\":[{\"i\":[{\"c\":5}]},1]}]}],\"n\":[{\".\":18,\"c\":27,\"e\":[{\".\":32}],\"t\":41,\"o\":[{\"i\":[{\"d\":78}]}]}],\"p\":[{\"h\":3,\"r\":1}],\"r\":[{\"a\":[{\"b\":6}],\"e\":0,\"g\":27,\"i\":68,\"o\":21}],\"s\":[{\"c\":[{\"o\":4}],\"q\":32,\"s\":[{\".\":32},27]},8],\"v\":[{\"a\":23,\"e\":[{\"r\":[{\".\":0,\"a\":0,\"s\":0}]}]}],\"y\":[{\"e\":18},27],\"c\":[{\"t\":[{\"a\":[{\"b\":229}]}]}]}],\"f\":[{\"r\":19},25],\"g\":[{\"a\":[{\"r\":12},19],\"e\":[{\"s\":21}],\"o\":11},80],\"h\":48,\"i\":[{\"a\":[{\"g\":1,\"m\":9,\"r\":[{\"i\":[{\"z\":6}]}],\"s\":1,\"t\":[{\"o\":1}]}],\"b\":[{\"i\":4}],\"c\":[{\"i\":[{\"o\":32}],\"o\":[{\"r\":1}],\"s\":18,\"t\":[{\".\":18}],\"u\":21,\"y\":23}],\"d\":[{\"a\":23,\"e\":[{\"r\":5}],\"i\":27}],\"f\":[{\"e\":[{\"r\":11}],\"f\":21,\"l\":1}],\"g\":[{\"a\":[{\"t\":[{\"e\":32}]}],\"h\":27,\"r\":[{\"a\":1}]}],\"k\":27,\"l\":123,\"m\":[{\"b\":[{\"l\":0}],\"i\":11,\"o\":1,\"p\":90}],\"n\":[{\"a\":21,\"e\":[{\"a\":11},124],\"i\":11,\"k\":[{\"e\":[{\"r\":6}]}]}],\"o\":[{\"g\":4}],\"q\":125,\"s\":[{\"p\":0}],\"t\":[{\".\":24,\"i\":[{\"c\":[{\"a\":32,\"s\":108}]}],\"h\":[{\"o\":[{\"g\":204}]}]},29],\"v\":[{\"e\":[{\"r\":11}]}],\"z\":29}],\"j\":18,\"k\":[{\"a\":[{\"l\":23,\"t\":0},11]}],\"l\":[{\"a\":[{\"w\":21}],\"e\":[{\"a\":19,\"c\":23,\"g\":23,\"l\":23,\"n\":73,\"t\":73},24],\"i\":[{\"n\":[{\"a\":19},126],\"s\":[{\"h\":231}]},9],\"o\":[{\"q\":[{\"u\":[{\"i\":10}]}],\"u\":[{\"t\":4}],\"w\":19},1],\"f\":[{\"l\":2}]},29],\"m\":[{\"e\":[{\"t\":19}],\"i\":[{\"n\":[{\"g\":3}]}],\"o\":[{\"d\":21,\"n\":[{\"e\":[{\"l\":[{\"l\":232}]}]},17]}]},25],\"n\":81,\"o\":[{\".\":27,\"b\":[{\"a\":[{\"l\":5}],\"o\":[{\"t\":[{\"o\":233}]}]}],\"c\":[{\"i\":1}],\"f\":18,\"g\":[{\"i\":[{\"c\":27}],\"o\":19,\"u\":27,\"e\":[{\"s\":[{\".\":9}]}]}],\"m\":[{\"e\":[{\"r\":11}]}],\"n\":[{\"g\":32,\"i\":[{\"z\":127},0]}],\"o\":[{\"d\":6}],\"p\":[{\"e\":[{\".\":32}],\"i\":11,\"m\":23}],\"r\":[{\"a\":[{\"t\":[{\"o\":1}]},17],\"i\":[{\"e\":4}],\"o\":[{\"u\":5}]}],\"s\":[{\".\":32,\"e\":[{\"t\":5}],\"o\":[{\"p\":[{\"h\":[{\"i\":[{\"z\":32}],\"y\":32}]}]}],\"t\":0}],\"t\":[{\"a\":1}],\"u\":[{\"n\":[{\"d\":6}],\"t\":25}],\"v\":18,\"a\":[{\"d\":[{\"e\":[{\"d\":[{\".\":17}],\"r\":[{\".\":183}]}]}]}]}],\"p\":[{\"a\":[{\"b\":5}],\"h\":[{\"a\":23,\"i\":19}],\"i\":[{\"n\":[{\"g\":4}],\"t\":23}],\"l\":21,\"r\":19},25],\"r\":43,\"s\":[{\"c\":21,\"e\":24,\"i\":[{\"e\":21}]},81],\"t\":[{\"a\":[{\"g\":4,\"n\":[{\"e\":7}]}],\"e\":[{\"n\":17,\"r\":[{\"a\":36}],\"a\":23},29],\"h\":[{\"i\":[{\"l\":[{\"y\":148}]},11]}],\"i\":[{\"e\":[{\"s\":[{\".\":19}]}],\"s\":17}],\"r\":29,\"u\":[{\"r\":[{\"a\":12}]},8]},18],\"u\":[{\"a\":4,\"b\":[{\"r\":3}],\"c\":[{\"h\":17,\"i\":3}],\"e\":[{\"n\":3,\"p\":15}],\"f\":0,\"i\":[{\"d\":4}],\"m\":[{\"a\":1,\"i\":32,\"n\":[{\".\":19,\"i\":[{\"a\":32}]}],\"b\":[{\"i\":[{\"a\":[{\".\":235}]}]}]}],\"o\":[{\"r\":11},3],\"p\":18,\"s\":[{\"s\":17,\"t\":[{\"e\":11}]}],\"t\":41,\"n\":[{\"k\":[{\"e\":[{\"r\":234}]}]}]}],\"v\":[{\"e\":[{\"n\":19,\"t\":128}]}],\"w\":42,\"y\":[{\"a\":18,\"b\":18,\"m\":[{\"e\":4}],\"n\":[{\"o\":3}],\"s\":[{\"e\":19,\"t\":[{\"y\":[{\"r\":4}]}]},58],\"g\":[{\"a\":[{\"m\":[{\"i\":236}]}]}]},41]}],\"m\":[{\"a\":[{\"b\":25,\"c\":[{\"a\":9,\"h\":[{\"i\":[{\"n\":[{\"e\":4}]}]}],\"l\":1}],\"g\":[{\"i\":[{\"n\":5}],\"n\":32}],\"h\":25,\"i\":[{\"d\":6}],\"l\":[{\"d\":18,\"i\":[{\"g\":3,\"n\":4}],\"l\":[{\"i\":0}],\"t\":[{\"y\":0}],\"a\":[{\"p\":222}]}],\"n\":[{\"i\":[{\"a\":32,\"s\":5,\"z\":11}],\".\":24,\"u\":[{\"s\":[{\"c\":237}]}]}],\"p\":[{\"h\":[{\"r\":[{\"o\":244}]}]},18],\"r\":[{\"i\":[{\"n\":[{\"e\":[{\".\":4}]}],\"z\":4}],\"l\":[{\"y\":0}],\"v\":11,\"g\":[{\"i\":[{\"n\":238}]}]}],\"s\":[{\"c\":[{\"e\":4}],\"e\":0,\"t\":15}],\"t\":[{\"e\":32,\"h\":12,\"i\":[{\"s\":3,\"z\":[{\"a\":18}]}]}]},41],\"b\":[{\"a\":[{\"t\":129}],\"i\":[{\"l\":19,\"n\":[{\"g\":83}],\"v\":0}]},43],\"c\":56,\"e\":[{\".\":18,\"d\":[{\".\":18,\"i\":[{\"a\":32,\"e\":3,\"c\":[{\"i\":[{\"n\":152}]},84],\"o\":[{\"c\":239}]}],\"y\":108},25],\"g\":[{\"r\":[{\"a\":[{\"n\":240}]}]},9],\"l\":[{\"o\":[{\"n\":5}],\"t\":0}],\"m\":[{\"o\":130},9],\"n\":[{\"a\":[{\"c\":5},0],\"d\":[{\"e\":0}],\"e\":18,\"i\":0,\"s\":[{\"u\":7},17],\"t\":[{\"e\":0},27],\".\":24},41],\"o\":[{\"n\":4}],\"r\":[{\"s\":[{\"a\":19}]}],\"s\":[{\"t\":[{\"i\":27}]},25],\"t\":[{\"a\":[{\"l\":11},1],\"e\":2,\"h\":[{\"i\":4}],\"r\":[{\"i\":[{\"c\":32,\"e\":4}],\"y\":3},21]}],\"v\":1}],\"f\":43,\"h\":25,\"i\":[{\".\":32,\"a\":3,\"d\":[{\"a\":[{\"b\":241},0],\"g\":0}],\"g\":0,\"l\":[{\"i\":[{\"a\":27,\"e\":108,\"t\":[{\"a\":27}]}],\"l\":[{\"a\":[{\"g\":208}],\"i\":[{\"l\":[{\"i\":59}]}]},21]}],\"n\":[{\"a\":0,\"d\":27,\"e\":[{\"e\":19}],\"g\":[{\"l\":[{\"i\":5,\"y\":19},21]}],\"t\":0,\"u\":[{\"t\":[{\"e\":[{\"r\":242,\"s\":[{\"t\":242}]}]}]},21],\"i\":[{\"s\":[{\".\":174}]}]}],\"o\":[{\"t\":17}],\"s\":[{\"e\":[{\"r\":[{\".\":0}]}],\"l\":5,\"t\":[{\"i\":0,\"r\":[{\"y\":19}]}]},24],\"t\":[{\"h\":18}],\"z\":24}],\"k\":18,\"l\":43,\"m\":[{\"a\":[{\"r\":[{\"y\":5}],\"b\":243}]},29],\"n\":[{\"a\":1,\"i\":[{\"n\":21}],\"o\":1},43],\"o\":[{\"c\":[{\"r\":[{\"a\":[{\"t\":[{\"i\":[{\"z\":32}]},245]}]},18]}],\"d\":131,\"g\":[{\"o\":1}],\"i\":[{\"s\":[{\"e\":5},84]}],\"k\":18,\"l\":[{\"e\":[{\"s\":[{\"t\":4}],\"c\":246}]}],\"m\":[{\"e\":3}],\"n\":[{\"e\":[{\"t\":5,\"y\":[{\"l\":247}]}],\"g\":[{\"e\":5}],\"i\":[{\"a\":12,\"s\":[{\"m\":0,\"t\":0}],\"z\":3}],\"o\":[{\"l\":36,\"c\":[{\"h\":12}],\"e\":[{\"n\":171}],\"s\":249}],\"y\":[{\".\":3}]}],\"r\":[{\"a\":[{\".\":18}],\"o\":[{\"n\":[{\"i\":[{\"s\":248}]}]}]},9],\"s\":[{\"e\":[{\"y\":4}],\"p\":3},8],\"t\":[{\"h\":[{\"e\":[{\"t\":250}]},12]}],\"u\":[{\"f\":19,\"s\":[{\"i\":[{\"n\":98}]},27]}],\"v\":9,\"e\":[{\"l\":[{\"a\":[{\"s\":167}]}]}]},41],\"p\":[{\"a\":[{\"r\":[{\"a\":[{\"b\":5},7],\"i\":6}]}],\"e\":[{\"t\":23}],\"h\":[{\"a\":[{\"s\":36}]}],\"i\":[{\"a\":0,\"e\":[{\"s\":4}],\"n\":34,\"r\":19,\"s\":4},24],\"o\":[{\"r\":[{\"i\":11}],\"s\":[{\"i\":[{\"t\":[{\"e\":6}]}]}],\"u\":[{\"s\":21}],\"v\":6}],\"t\":[{\"r\":1}],\"y\":24},43],\"r\":47,\"s\":[{\"h\":[{\"a\":[{\"c\":[{\"k\":251}]}]},21],\"i\":19},101],\"t\":18,\"u\":[{\"l\":[{\"a\":[{\"r\":49}],\"t\":[{\"i\":[{\"u\":252},54]},32]}],\"m\":27,\"n\":8,\"p\":18,\"u\":1,\"d\":[{\"r\":[{\"o\":9}]}]},41],\"w\":18}],\"n\":[{\"a\":[{\"b\":[{\"u\":21},81],\"c\":[{\".\":18,\"a\":1,\"t\":19}],\"g\":[{\"e\":[{\"r\":[{\".\":5}]}]}],\"k\":0,\"l\":[{\"i\":[{\"a\":4},1],\"t\":18}],\"m\":[{\"i\":[{\"t\":4}]}],\"n\":[{\"c\":[{\"i\":36}],\"i\":[{\"t\":0}],\"k\":17},24],\"r\":[{\"c\":[{\"h\":[{\"s\":[{\".\":73}]}]},11],\"e\":18,\"i\":11,\"l\":0,\"m\":19}],\"s\":[{\"c\":0,\"t\":[{\"i\":5}]},21],\"t\":[{\"a\":[{\"l\":3}],\"o\":[{\"m\":[{\"i\":[{\"z\":6}]}]}]},24],\"u\":[{\"s\":[{\"e\":11}],\"t\":27},24],\"v\":[{\"e\":0}]},41],\"b\":80,\"c\":[{\"a\":[{\"r\":6}],\"e\":[{\"s\":[{\".\":21}]}],\"h\":[{\"a\":23,\"e\":[{\"o\":19,\"s\":[{\"t\":253}]}],\"i\":[{\"l\":19,\"s\":23}]}],\"i\":[{\"n\":2,\"t\":1}],\"o\":[{\"u\":[{\"r\":[{\"a\":7}]}]}],\"r\":29,\"u\":29}],\"d\":[{\"a\":[{\"i\":21,\"n\":19}],\"e\":[{\"s\":[{\"t\":[{\".\":4}]}]},29],\"i\":[{\"b\":0,\"f\":79,\"t\":29,\"z\":23,\"e\":[{\"c\":[{\"k\":29}]}]}],\"u\":[{\"c\":19,\"r\":0}],\"w\":[{\"e\":9}],\"t\":[{\"h\":[{\"r\":3}]}]}],\"e\":[{\".\":25,\"a\":[{\"r\":23}],\"b\":[{\"u\":11,\"a\":[{\"c\":[{\"k\":3}]}]},9],\"c\":[{\"k\":32},9],\"d\":25,\"g\":[{\"a\":[{\"t\":[{\"i\":[{\"v\":5}]},1]}],\"e\":32}],\"l\":[{\"a\":1,\"i\":[{\"z\":5}]}],\"m\":[{\"i\":4,\"o\":1}],\"n\":[{\"e\":18},41],\"o\":27,\"p\":[{\"o\":1}],\"q\":9,\"r\":[{\"a\":[{\"b\":6,\"r\":21}],\"e\":24,\"i\":132,\"r\":0},29],\"s\":[{\".\":25,\"p\":18,\"t\":25,\"w\":18,\"k\":[{\"i\":119}]},41],\"t\":[{\"i\":[{\"c\":27}]}],\"v\":[{\"e\":19},1],\"w\":1}],\"f\":[{\"i\":[{\"n\":[{\"i\":[{\"t\":[{\"e\":[{\"s\":226}]}]}]}]}]},23],\"g\":[{\"a\":[{\"b\":21}],\"e\":[{\"l\":23,\"n\":[{\"e\":[{\"s\":5},133]}],\"r\":[{\"e\":19,\"i\":23}]}],\"h\":[{\"a\":4,\"o\":2}],\"i\":[{\"b\":23,\"n\":2,\"t\":19}],\"l\":[{\"a\":21}],\"o\":[{\"v\":17}],\"s\":[{\"h\":4,\"p\":[{\"r\":2}]}],\"u\":[{\"m\":21},29],\"y\":24}],\"h\":[{\"a\":[{\"b\":12},0],\"e\":0},80],\"i\":[{\"a\":[{\"n\":[{\".\":114},3],\"p\":1},68],\"b\":[{\"a\":3,\"l\":1}],\"d\":[{\"i\":4},1],\"e\":[{\"r\":1}],\"f\":[{\"i\":[{\"c\":[{\"a\":[{\"t\":4}]}]},9]}],\"g\":[{\"r\":19}],\"k\":0,\"m\":[{\"i\":[{\"z\":3}]},29],\"n\":[{\"e\":[{\".\":32}],\"g\":0},29],\"o\":1,\"s\":[{\".\":32,\"t\":[{\"a\":0}]}],\"t\":[{\"h\":21,\"i\":[{\"o\":27}],\"o\":[{\"r\":23}],\"r\":3},24]}],\"j\":29,\"k\":[{\"e\":[{\"r\":[{\"o\":19}],\"t\":23}],\"i\":[{\"n\":3}],\"l\":29,\"r\":[{\"u\":[{\"p\":3}]}]},44],\"l\":[{\"e\":[{\"s\":[{\"s\":19}]}]},43],\"m\":[{\"e\":[{\"t\":17},0]},19],\"n\":[{\"e\":0,\"i\":[{\"a\":[{\"l\":11}],\"v\":0}]},101],\"o\":[{\"b\":[{\"l\":[{\"e\":3},0]}],\"c\":[{\"l\":19,\"e\":[{\"r\":[{\"o\":[{\"s\":254}]}]}]}],\"d\":66,\"e\":27,\"g\":[{\"e\":17},18],\"i\":[{\"s\":[{\"i\":6}]}],\"l\":[{\"i\":134,\"o\":[{\"g\":[{\"i\":[{\"s\":32}]}]}]}],\"m\":[{\"i\":[{\"c\":27,\"z\":108,\"s\":[{\"t\":82}]}],\"o\":1,\"y\":3,\"a\":[{\"l\":214}],\"e\":[{\"n\":[{\"o\":194}]}]}],\"n\":[{\"a\":[{\"g\":0}],\"i\":[{\"z\":19,\"s\":[{\"o\":255}]},5],\"e\":[{\"q\":15}]},1],\"p\":[{\"o\":[{\"l\":[{\"i\":135,\"y\":[{\".\":256}]}]}]},18],\"r\":[{\"a\":[{\"b\":5,\"r\":[{\"y\":1}]}]}],\"s\":[{\"c\":18,\"e\":0,\"t\":5}],\"t\":[{\"a\":4}],\"u\":[{\"n\":27},41],\"v\":[{\"e\":[{\"l\":136,\"m\":[{\"b\":2}]}]}],\"w\":[{\"l\":12}]}],\"p\":[{\"i\":0,\"r\":[{\"e\":[{\"c\":17}]}]},72],\"q\":29,\"r\":[{\"u\":0},29],\"s\":[{\"a\":[{\"b\":4,\"t\":[{\"i\":36}]}],\"c\":[{\"e\":[{\"i\":[{\"v\":4}]}]},1],\"e\":[{\"s\":83},24],\"i\":[{\"d\":137,\"g\":17}],\"l\":24,\"m\":[{\"o\":[{\"o\":1}]},3],\"o\":[{\"c\":21}],\"p\":[{\"e\":1,\"i\":19}],\"t\":[{\"a\":[{\"b\":[{\"l\":6}]}]}]},81],\"t\":[{\"a\":[{\"b\":0}],\"e\":[{\"r\":[{\"s\":12}]}],\"i\":[{\"b\":19,\"e\":[{\"r\":0}],\"f\":8,\"n\":[{\"e\":23,\"g\":83}],\"p\":0},9],\"r\":[{\"o\":[{\"l\":[{\"l\":[{\"i\":7}]}]}],\"e\":[{\"p\":137}]}],\"s\":1,\"u\":[{\"m\":[{\"e\":11}]}]},29],\"u\":[{\"a\":2,\"d\":1,\"e\":[{\"n\":4}],\"f\":[{\"f\":[{\"e\":0}]}],\"i\":[{\"n\":23,\"t\":50}],\"m\":[{\"e\":2,\"i\":19},21],\"n\":138,\"o\":23,\"t\":[{\"r\":3}]}],\"v\":74,\"w\":72,\"y\":[{\"m\":0,\"p\":0}],\"z\":[{\"a\":23},18]}],\"o\":[{\"a\":[{\"d\":11,\"l\":[{\"e\":[{\"s\":108}]}],\"r\":[{\"d\":12}],\"s\":[{\"e\":0,\"t\":[{\"e\":6}]}],\"t\":[{\"i\":5}]},18],\"b\":[{\"a\":[{\"b\":35,\"r\":19}],\"e\":[{\"l\":0}],\"i\":[{\"n\":[{\"g\":4},24]},29],\"r\":23,\"u\":[{\"l\":3}],\"l\":[{\"i\":[{\"g\":189}]}]}],\"c\":[{\"e\":29,\"h\":[{\"e\":[{\"t\":23}],\"a\":[{\"s\":23}]},0],\"i\":[{\"f\":12,\"l\":21}],\"l\":[{\"a\":[{\"m\":21}]}],\"o\":[{\"d\":21}],\"r\":[{\"a\":[{\"c\":3,\"t\":[{\"i\":[{\"z\":4}]}]}],\"e\":12,\"i\":[{\"t\":32}]}],\"t\":[{\"o\":[{\"r\":[{\"a\":7}]}]}],\"u\":[{\"l\":[{\"a\":3}],\"r\":[{\"e\":19}]}]}],\"d\":[{\"d\":[{\"e\":[{\"d\":4}]}],\"i\":[{\"c\":3,\"o\":11,\"t\":[{\"i\":[{\"c\":137}]}]}],\"o\":[{\"r\":12},139],\"u\":[{\"c\":[{\"t\":[{\".\":4,\"s\":4}]}]}],\"e\":[{\"l\":[{\"l\":[{\"i\":12}]}]}]}],\"e\":[{\"l\":21,\"n\":[{\"g\":19}],\"r\":[{\"s\":[{\"t\":257}]},23],\"t\":[{\"a\":1}],\"v\":23}],\"f\":[{\"i\":[{\"t\":[{\"e\":4,\"t\":17}]},24]}],\"g\":[{\"a\":[{\"r\":121,\"t\":[{\"i\":[{\"v\":4}],\"o\":21}]}],\"e\":[{\"n\":[{\"e\":19}],\"o\":19,\"r\":21},29],\"i\":[{\"e\":23,\"s\":140,\"t\":3}],\"l\":[{\"y\":79},21],\"n\":[{\"i\":[{\"z\":27}]}],\"r\":[{\"o\":21}],\"u\":[{\"i\":5}],\"y\":[{\"n\":25},41]}],\"h\":[{\"a\":[{\"b\":6}]},74],\"i\":[{\"c\":[{\"e\":[{\"s\":11}]}],\"d\":[{\"e\":[{\"r\":3}]}],\"f\":[{\"f\":17}],\"g\":0,\"l\":[{\"e\":[{\"t\":4}]}],\"n\":[{\"g\":23,\"t\":[{\"e\":[{\"r\":6}]}]}],\"s\":[{\"m\":19,\"o\":[{\"n\":4}],\"t\":[{\"e\":[{\"n\":6}]}]}],\"t\":[{\"e\":[{\"r\":3}]}]},9],\"j\":19,\"k\":[{\"e\":[{\"n\":23,\"s\":[{\"t\":15}]}],\"i\":[{\"e\":4}]},25],\"l\":[{\"a\":[{\"n\":21,\"s\":[{\"s\":36}]},29],\"d\":[{\"e\":15},9],\"e\":[{\"r\":3,\"s\":[{\"c\":23,\"t\":[{\"e\":[{\"r\":88}]}]}],\"t\":23}],\"f\":[{\"i\":1}],\"i\":[{\"a\":23,\"c\":[{\"e\":23}],\"d\":[{\".\":4}],\"f\":73,\"l\":19,\"n\":[{\"g\":3}],\"o\":19,\"s\":[{\".\":19,\"h\":3}],\"t\":[{\"e\":19,\"i\":[{\"o\":19}]}],\"v\":19,\"g\":[{\"o\":[{\"p\":[{\"o\":258}]}]}]},9],\"l\":[{\"i\":[{\"e\":17}]}],\"o\":[{\"g\":[{\"i\":[{\"z\":4}]}],\"r\":0,\"n\":[{\"o\":[{\"m\":259}]}]}],\"p\":[{\"l\":4}],\"t\":9,\"u\":[{\"b\":3,\"m\":[{\"e\":3}],\"n\":3,\"s\":19}],\"v\":9,\"y\":24}],\"m\":[{\"a\":[{\"h\":4,\"l\":5,\"t\":[{\"i\":[{\"z\":4}]}]}],\"b\":[{\"e\":9,\"l\":1}],\"e\":[{\"n\":[{\"a\":3}],\"r\":[{\"s\":[{\"e\":4}]}],\"t\":[{\"r\":[{\"y\":4}]},21],\"c\":[{\"h\":[{\"a\":260}]}]},24],\"i\":[{\"a\":23,\"c\":[{\".\":3,\"a\":3}],\"d\":19,\"n\":[{\"i\":19},2]}],\"m\":[{\"e\":[{\"n\":[{\"d\":32}]}]}],\"o\":[{\"g\":[{\"e\":0}],\"n\":21}],\"p\":[{\"i\":3,\"r\":[{\"o\":7}]}]}],\"n\":[{\"a\":[{\"c\":1,\"n\":23},2],\"c\":[{\"i\":[{\"l\":27}]},2],\"d\":[{\"o\":4},25],\"e\":[{\"n\":23,\"s\":[{\"t\":4}]}],\"g\":[{\"u\":1}],\"i\":[{\"c\":2,\"o\":23,\"s\":2,\"u\":19}],\"k\":[{\"e\":[{\"y\":3}]}],\"o\":[{\"d\":[{\"i\":1}],\"m\":[{\"y\":3,\"i\":[{\"c\":137}]}],\"r\":[{\"m\":[{\"a\":23}]}],\"t\":[{\"o\":[{\"n\":261}]}],\"u\":23}],\"s\":[{\"p\":[{\"i\":[{\"r\":[{\"a\":10}]},36]}],\"u\":17},3],\"t\":[{\"e\":[{\"n\":36}],\"i\":[{\"f\":7},93]}],\"u\":[{\"m\":4}],\"v\":[{\"a\":6}]},24],\"o\":[{\"d\":[{\"e\":5,\"i\":5}],\"k\":1,\"p\":[{\"i\":11}],\"r\":[{\"d\":23}],\"s\":[{\"t\":6}]},9],\"p\":[{\"a\":24,\"e\":[{\"d\":5,\"r\":[{\"a\":[{\"g\":18},27]},2]}],\"h\":[{\"a\":[{\"n\":19}],\"e\":[{\"r\":19}]},25],\"i\":[{\"n\":[{\"g\":3}],\"t\":23,\"s\":[{\"m\":[{\".\":2}]}]}],\"o\":[{\"n\":19,\"s\":[{\"i\":21}]}],\"r\":29,\"u\":2,\"y\":5}],\"q\":29,\"r\":[{\"a\":[{\".\":19,\"g\":83,\"l\":[{\"i\":[{\"z\":4}]}],\"n\":[{\"g\":[{\"e\":4}]}]},29],\"e\":[{\"a\":[{\"l\":19},5],\"i\":3,\"s\":[{\"h\":5,\"t\":[{\".\":4}]}],\"w\":17}],\"g\":[{\"u\":1}],\"i\":[{\"a\":56,\"c\":[{\"a\":3}],\"l\":19,\"n\":2,\"o\":29,\"t\":[{\"y\":3}],\"u\":23}],\"m\":[{\"i\":9}],\"n\":[{\"e\":8}],\"o\":[{\"f\":19,\"u\":[{\"g\":3}]}],\"p\":[{\"e\":4}],\"r\":[{\"h\":27}],\"s\":[{\"e\":[{\"n\":5},1],\"t\":17}],\"t\":[{\"h\":[{\"i\":3,\"y\":3,\"o\":[{\"n\":[{\"i\":[{\"t\":262}]}]}],\"r\":[{\"i\":137}]}],\"y\":1,\"i\":[{\"v\":[{\"e\":[{\"l\":[{\"y\":4}]}]}]}]}],\"u\":[{\"m\":19}],\"y\":29}],\"s\":[{\"a\":[{\"l\":3}],\"c\":[{\"e\":1,\"o\":[{\"p\":[{\"i\":18},23]}],\"r\":19},9],\"i\":[{\"e\":95,\"t\":[{\"i\":[{\"v\":4}],\"o\":3,\"y\":3}],\"u\":0}],\"l\":1,\"o\":24,\"p\":[{\"a\":1,\"o\":1,\"h\":[{\"e\":[{\"r\":83}]}]}],\"t\":[{\"a\":[{\"t\":[{\"i\":19}]},9],\"i\":[{\"l\":4,\"t\":4}]}]}],\"t\":[{\"a\":[{\"n\":21}],\"e\":[{\"l\":[{\"e\":[{\"g\":36}]}],\"r\":[{\".\":3,\"s\":4}],\"s\":[{\"t\":[{\"e\":[{\"r\":263}],\"o\":[{\"r\":264}]}]},21]}],\"h\":[{\"e\":[{\"s\":[{\"i\":5}],\"o\":[{\"s\":265}]}],\"i\":14},18],\"i\":[{\"c\":[{\".\":3,\"a\":4,\"e\":23}],\"f\":23,\"s\":23}],\"o\":[{\"s\":5}]}],\"u\":[{\"b\":[{\"l\":3,\"a\":[{\"d\":[{\"o\":116}]}]}],\"c\":[{\"h\":[{\"i\":6}]}],\"e\":[{\"t\":4}],\"l\":1,\"n\":[{\"c\":[{\"e\":[{\"r\":6}]}],\"d\":8}],\"v\":4},9],\"v\":[{\"e\":[{\"n\":1,\"r\":[{\"n\":[{\"e\":17}],\"s\":12,\"t\":1}]}],\"i\":[{\"s\":23,\"t\":[{\"i\":36}],\"a\":[{\"n\":[{\".\":266}]}]}],\"o\":[{\"l\":60}]}],\"w\":[{\"d\":[{\"e\":[{\"r\":3}]}],\"e\":[{\"l\":3,\"s\":[{\"t\":4}]}],\"i\":2,\"n\":[{\"i\":5}],\"o\":21}],\"y\":[{\"a\":2}],\"x\":[{\"i\":[{\"d\":[{\"i\":[{\"c\":267}]}]}]}]}],\"p\":[{\"a\":[{\"c\":[{\"a\":1,\"e\":1,\"t\":0}],\"d\":21,\"g\":[{\"a\":[{\"n\":32,\"t\":23}]}],\"i\":[{\"n\":17},21],\"l\":[{\"m\":[{\"a\":[{\"t\":268}]}]},21],\"n\":[{\"a\":0,\"e\":[{\"l\":11}],\"t\":[{\"y\":0}],\"y\":3}],\"p\":[{\"u\":1},2],\"r\":[{\"a\":[{\"b\":[{\"l\":6}],\"g\":[{\"e\":5,\"r\":[{\"a\":269}]}],\"l\":[{\"e\":228}],\"m\":[{\"e\":12},36]}],\"d\":[{\"i\":5}],\"e\":[{\"l\":5},27],\"i\":[{\"s\":0},28]}],\"t\":[{\"e\":[{\"r\":4},9],\"h\":[{\"i\":[{\"c\":32}],\"y\":4}],\"r\":[{\"i\":[{\"c\":1}]}]}],\"v\":0,\"y\":27},41],\"b\":43,\"d\":1,\"e\":[{\".\":18,\"a\":[{\"r\":[{\"l\":17}]},138],\"c\":9,\"d\":[{\"e\":27,\"i\":[{\"a\":36,\"c\":0},27]},37],\"e\":[{\"d\":0,\"v\":208},21],\"k\":0,\"l\":[{\"a\":1,\"i\":[{\"e\":17}]}],\"n\":[{\"a\":[{\"n\":1}],\"c\":21,\"t\":[{\"h\":0}]}],\"o\":[{\"n\":4}],\"r\":[{\"a\":[{\".\":21,\"b\":[{\"l\":6}],\"g\":21}],\"i\":[{\"s\":[{\"t\":6}]},21],\"m\":[{\"a\":[{\"l\":0}],\"e\":7}],\"n\":21,\"o\":11,\"t\":[{\"i\":11}],\"u\":4,\"v\":15}],\"t\":[{\"e\":[{\"n\":4}],\"i\":[{\"z\":4}]},9]}],\"f\":18,\"g\":18,\"h\":[{\".\":18,\"a\":[{\"r\":[{\"i\":6}]}],\"e\":[{\"n\":[{\"o\":11}],\"r\":1,\"s\":[{\".\":1}]}],\"i\":[{\"c\":2,\"e\":32,\"n\":[{\"g\":4}],\"s\":[{\"t\":[{\"i\":32}]}],\"z\":27,\"l\":[{\"a\":[{\"n\":[{\"t\":168}],\"t\":[{\"e\":[{\"l\":270}]}]}]}]}],\"l\":9,\"o\":[{\"b\":27,\"n\":[{\"e\":27,\"i\":32}],\"r\":0}],\"s\":18,\"t\":3,\"u\":32,\"y\":41}],\"i\":[{\"a\":[{\"n\":17},3],\"c\":[{\"i\":[{\"e\":1}],\"y\":1,\"a\":[{\"d\":271}]}],\"d\":[{\"a\":19,\"e\":3,\"i\":32},21],\"e\":[{\"c\":27,\"n\":3}],\"g\":[{\"r\":[{\"a\":[{\"p\":1}]}]}],\"l\":[{\"o\":3}],\"n\":[{\".\":21,\"d\":17,\"o\":21},9],\"o\":[{\"n\":17},141],\"t\":[{\"h\":[{\"a\":4},23],\"u\":9}]}],\"k\":142,\"l\":[{\"a\":[{\"n\":27,\"s\":[{\"t\":6}]}],\"i\":[{\"a\":11,\"e\":[{\"r\":5}],\"g\":18,\"n\":[{\"a\":[{\"r\":5}]},0],\"c\":[{\"a\":[{\"b\":208}]}]}],\"o\":[{\"i\":17}],\"u\":[{\"m\":[{\"b\":17},0]}]},143],\"m\":43,\"n\":48,\"o\":[{\"c\":1,\"d\":[{\".\":32}],\"e\":[{\"m\":4,\"t\":144}],\"g\":145,\"i\":[{\"n\":[{\"t\":32,\"c\":[{\"a\":12}]},84]}],\"l\":[{\"y\":[{\"t\":6,\"e\":137,\"p\":[{\"h\":[{\"o\":[{\"n\":[{\"o\":272}]}]}]}]}],\"e\":[{\".\":41}]}],\"n\":[{\"i\":1}],\"p\":1,\"r\":[{\"y\":1},124],\"s\":[{\"s\":15},41],\"t\":[{\"a\":1},21],\"u\":[{\"n\":32}]}],\"p\":[{\"a\":[{\"r\":[{\"a\":5}]}],\"e\":[{\"d\":21,\"l\":19,\"n\":23,\"r\":23,\"t\":23},24],\"o\":[{\"s\":[{\"i\":[{\"t\":[{\"e\":5}]}]}]}]},43],\"r\":[{\"a\":[{\"y\":[{\"e\":17}]}],\"e\":[{\"c\":[{\"i\":32,\"o\":5}],\"e\":[{\"m\":11}],\"f\":[{\"a\":[{\"c\":6}]}],\"l\":[{\"a\":0}],\"r\":11,\"s\":[{\"e\":23,\"s\":27,\"p\":[{\"l\":[{\"i\":84}]}]}],\"t\":[{\"e\":[{\"n\":5}]}],\"v\":11,\"m\":[{\"a\":[{\"c\":273}]}],\"n\":[{\"e\":[{\"u\":15}]}]}],\"i\":[{\"e\":53,\"n\":[{\"t\":146}],\"s\":[{\"o\":12},0]}],\"o\":[{\"c\":[{\"a\":23,\"e\":[{\"s\":[{\"s\":8}]}],\"i\":[{\"t\":[{\"y\":[{\".\":274}]}]}]}],\"f\":[{\"i\":[{\"t\":6}]}],\"l\":11,\"s\":[{\"e\":12}],\"t\":15,\"g\":[{\"e\":208}]}]},9],\"s\":[{\"e\":[{\"u\":[{\"d\":[{\"o\":[{\"d\":276,\"f\":276}]},275]}]},24],\"h\":1,\"i\":[{\"b\":21}]},81],\"t\":[{\"a\":[{\"b\":134}],\"e\":24,\"h\":24,\"i\":[{\"m\":11}],\"u\":[{\"r\":0}],\"w\":21,\"o\":[{\"m\":[{\"a\":[{\"t\":277}]}]}],\"r\":[{\"o\":[{\"l\":278}]}]},42],\"u\":[{\"b\":[{\"e\":[{\"s\":[{\"c\":181}]}]},11],\"e\":0,\"f\":0,\"l\":[{\"c\":11}],\"m\":1,\"n\":9,\"r\":[{\"r\":0}],\"s\":32,\"t\":[{\"e\":[{\"r\":11},32],\"r\":3,\"t\":[{\"e\":[{\"d\":0}],\"i\":[{\"n\":0}]}]},9]}],\"w\":23}],\"q\":[{\"u\":[{\"a\":[{\"v\":5,\"i\":[{\"n\":[{\"t\":[{\"e\":279}]}]}],\"s\":[{\"i\":[{\"r\":281,\"s\":281},280]}]}],\"e\":[{\".\":25,\"r\":27,\"t\":27}],\"i\":[{\"n\":[{\"t\":[{\"e\":[{\"s\":[{\"s\":282}]}]}]}],\"v\":[{\"a\":[{\"r\":14}]}]}]},9]}],\"r\":[{\"a\":[{\"b\":[{\"i\":3,\"o\":[{\"l\":[{\"i\":[{\"c\":29}],\"o\":[{\"i\":236}]}]}]},25],\"c\":[{\"h\":[{\"e\":17,\"u\":3}],\"l\":19}],\"f\":[{\"f\":[{\"i\":5}],\"t\":0}],\"i\":24,\"l\":[{\"o\":1}],\"m\":[{\"e\":[{\"t\":[{\"r\":[{\"i\":[{\"z\":283}]}]},11],\"n\":24}],\"i\":24,\"o\":[{\"u\":3}]}],\"n\":[{\"e\":[{\"o\":6}],\"g\":[{\"e\":0}],\"i\":21,\"o\":4,\"h\":[{\"a\":[{\"s\":167}]}]}],\"p\":[{\"e\":[{\"r\":11}],\"h\":[{\"y\":27}]}],\"r\":[{\"c\":5,\"e\":[{\"f\":5},17],\"i\":[{\"l\":18}]}],\"s\":24,\"t\":[{\"i\":[{\"o\":[{\"n\":115}]}]}],\"u\":[{\"t\":0}],\"v\":[{\"a\":[{\"i\":4}],\"e\":[{\"l\":11}]}],\"z\":[{\"i\":[{\"e\":4}]}],\"d\":[{\"i\":[{\"g\":127,\"o\":[{\"g\":249}]}]}],\"o\":[{\"r\":2}]}],\"b\":[{\"a\":[{\"b\":21,\"g\":21}],\"i\":[{\"f\":0,\"n\":[{\"e\":19,\"g\":[{\".\":4,\"e\":284}]},24]},8],\"o\":1},29],\"c\":[{\"e\":[{\"n\":17},24],\"h\":[{\"a\":23,\"e\":[{\"r\":0}]}],\"i\":[{\"b\":90,\"t\":1}],\"u\":[{\"m\":12}]},29],\"d\":[{\"a\":[{\"l\":21}],\"i\":[{\"a\":0,\"e\":[{\"r\":0}],\"n\":[{\"g\":3},17]},9]}],\"e\":[{\".\":25,\"a\":[{\"l\":2,\"n\":3,\"r\":[{\"r\":4}],\"v\":32,\"w\":1}],\"b\":[{\"r\":[{\"a\":[{\"t\":19}]}]}],\"c\":[{\"o\":[{\"l\":[{\"l\":5}],\"m\":[{\"p\":[{\"e\":5}]}]}],\"r\":[{\"e\":1}],\"i\":[{\"p\":[{\"r\":285}]}],\"t\":[{\"a\":[{\"n\":[{\"g\":286}]}]}]}],\"d\":[{\"e\":2,\"i\":[{\"s\":3,\"t\":5}]},37],\"f\":[{\"a\":[{\"c\":1}],\"e\":[{\"r\":[{\".\":4}]},9],\"i\":3,\"y\":1}],\"g\":[{\"i\":[{\"s\":11}]}],\"i\":[{\"t\":4}],\"l\":[{\"i\":2,\"u\":4}],\"n\":[{\"t\":[{\"a\":90,\"e\":0}]}],\"o\":2,\"p\":[{\"i\":[{\"n\":4}],\"o\":[{\"s\":[{\"i\":1}]}],\"u\":2}],\"r\":[{\"i\":21,\"o\":17,\"u\":4},147],\"s\":[{\".\":21,\"p\":[{\"i\":1}],\"s\":[{\"i\":[{\"b\":6}]}],\"t\":[{\"a\":[{\"l\":4}],\"r\":3},8]}],\"t\":[{\"e\":[{\"r\":1}],\"i\":[{\"z\":96}],\"r\":[{\"i\":[{\"b\":[{\"u\":85}]},3]}]}],\"u\":[{\"t\":[{\"i\":4}]},8],\"v\":[{\"a\":[{\"l\":1}],\"e\":[{\"l\":11,\"r\":[{\".\":30,\"s\":4,\"t\":4}]}],\"i\":[{\"l\":4}],\"o\":[{\"l\":[{\"u\":5}]}]},8],\"w\":[{\"h\":1}]}],\"f\":[{\"u\":0,\"y\":21},29],\"g\":[{\"e\":[{\"r\":3,\"t\":23}],\"i\":[{\"c\":23,\"n\":[{\"g\":3},0],\"s\":19,\"t\":19}],\"l\":29,\"o\":[{\"n\":0}],\"u\":23},9],\"h\":[{\".\":18,\"a\":[{\"l\":18}]},1],\"i\":[{\"a\":[{\"b\":0,\"g\":1,\"l\":[{\".\":23}]},3],\"b\":[{\"a\":11},21],\"c\":[{\"a\":[{\"s\":5}],\"e\":21,\"i\":[{\"d\":32,\"e\":1},18],\"o\":21}],\"d\":[{\"e\":[{\"r\":5}]}],\"e\":[{\"n\":[{\"c\":3,\"t\":3}],\"r\":2,\"t\":4}],\"g\":[{\"a\":[{\"n\":5}],\"i\":32}],\"l\":[{\"i\":[{\"z\":11}]}],\"m\":[{\"a\":[{\"n\":32}],\"i\":5,\"o\":27,\"p\":[{\"e\":0}]}],\"n\":[{\"a\":[{\".\":32},24],\"d\":0,\"e\":0,\"g\":0}],\"o\":2,\"p\":[{\"h\":[{\"e\":6},32],\"l\":[{\"i\":[{\"c\":5}]},9]}],\"q\":21,\"s\":[{\".\":21,\"c\":0,\"h\":23,\"p\":0},24],\"t\":[{\"a\":[{\"b\":116}],\"e\":[{\"d\":[{\".\":19}],\"r\":[{\".\":5,\"s\":5}]}],\"i\":[{\"c\":11}],\"u\":[{\"r\":5},9]}],\"v\":[{\"e\":[{\"l\":5,\"t\":11}],\"i\":11,\"o\":[{\"l\":287}]}]}],\"j\":23,\"k\":[{\"e\":[{\"t\":23}],\"l\":[{\"e\":1,\"i\":[{\"n\":1}]}],\".\":288,\"h\":[{\"o\":2}],\"r\":[{\"a\":[{\"u\":29}]}],\"s\":[{\".\":288}]}],\"l\":[{\"e\":[{\"d\":24,\"q\":[{\"u\":30}]},0],\"i\":[{\"g\":21,\"s\":[{\"h\":4},21]}],\"o\":73},29],\"m\":[{\"a\":[{\"c\":5}],\"e\":[{\"n\":23,\"r\":[{\"s\":4}]},24],\"i\":[{\"n\":[{\"g\":[{\".\":21},3]}],\"o\":21,\"t\":23}],\"y\":21},29],\"n\":[{\"a\":[{\"r\":21}],\"e\":[{\"l\":23,\"r\":21,\"t\":19,\"y\":23}],\"i\":[{\"c\":19,\"s\":92,\"t\":23,\"v\":23}],\"o\":[{\"u\":21},0],\"u\":23}],\"o\":[{\"b\":[{\"l\":11,\"o\":[{\"t\":289}]}],\"c\":[{\"r\":3},24],\"e\":[{\"l\":[{\"a\":[{\"s\":167}]}],\"p\":[{\"i\":[{\"d\":[{\"e\":290}]}]}]},1],\"f\":[{\"e\":2,\"i\":[{\"l\":4}]}],\"k\":[{\"e\":[{\"r\":4}]},8],\"l\":[{\"e\":[{\".\":32}]}],\"m\":[{\"e\":[{\"t\":[{\"e\":5}],\"s\":[{\"h\":3}]}],\"i\":0,\"p\":0}],\"n\":[{\"a\":[{\"l\":0}],\"e\":0,\"i\":[{\"s\":134}],\"t\":[{\"a\":0}]}],\"o\":[{\"m\":41,\"t\":32}],\"p\":[{\"e\":[{\"l\":3}],\"i\":[{\"c\":11}]}],\"r\":[{\"i\":11,\"o\":4}],\"s\":[{\"p\":[{\"e\":[{\"r\":5}]}],\"s\":0}],\"t\":[{\"h\":[{\"e\":1}],\"y\":1,\"r\":[{\"o\":[{\"n\":2}]}]}],\"v\":[{\"a\":1,\"e\":[{\"l\":5}]}],\"x\":5}],\"p\":[{\"e\":[{\"a\":21,\"n\":[{\"t\":19}],\"r\":[{\".\":4}],\"t\":23}],\"h\":95,\"i\":[{\"n\":[{\"g\":3}]}],\"o\":23,\"a\":[{\"u\":[{\"l\":[{\"i\":291}]}]}]},29],\"r\":[{\"e\":[{\"c\":0,\"f\":0,\"o\":21,\"s\":[{\"t\":0}]}],\"i\":[{\"o\":0,\"v\":0}],\"o\":[{\"n\":17,\"s\":17}],\"y\":[{\"s\":17}]},72],\"s\":[{\"a\":[{\"t\":[{\"i\":5}]},29],\"c\":1,\"e\":[{\"c\":[{\"r\":0},23],\"r\":[{\".\":4,\"a\":[{\"d\":[{\"i\":238}]}]}],\"s\":3,\"v\":148},24],\"h\":[{\"a\":19},29],\"i\":[{\"b\":90},29],\"o\":[{\"n\":12}],\"p\":29,\"w\":19},44],\"t\":[{\"a\":[{\"c\":[{\"h\":36}],\"g\":21}],\"e\":[{\"b\":23,\"n\":[{\"d\":17}],\"o\":5}],\"i\":[{\"b\":4,\"d\":0,\"e\":[{\"r\":21}],\"g\":23,\"l\":[{\"i\":12,\"l\":17,\"y\":21}],\"s\":[{\"t\":21}],\"v\":21},29],\"r\":[{\"i\":23,\"o\":[{\"p\":[{\"h\":115}]}],\"e\":[{\"u\":29}]}],\"s\":[{\"h\":1}],\"h\":[{\"o\":[{\"u\":29}]}]}],\"u\":[{\"a\":3,\"e\":[{\"l\":93,\"n\":3}],\"g\":[{\"l\":1}],\"i\":[{\"n\":3}],\"m\":[{\"p\":[{\"l\":11}]}],\"n\":[{\"k\":6,\"t\":[{\"y\":0}]},9],\"s\":[{\"c\":19}],\"t\":[{\"i\":[{\"n\":6}]}]}],\"v\":[{\"e\":[{\"l\":[{\"i\":17}],\"n\":23,\"r\":[{\".\":4}],\"s\":[{\"t\":19}],\"y\":23,\"i\":[{\"l\":29}]},1],\"i\":[{\"c\":23,\"v\":0}],\"o\":23}],\"w\":29,\"y\":[{\"c\":1,\"n\":[{\"g\":[{\"e\":32}]}],\"t\":3}],\"z\":[{\"s\":[{\"c\":2}]}]}],\"s\":[{\"a\":[{\"b\":42,\"c\":[{\"k\":32,\"r\":[{\"i\":11}],\"t\":23}],\"i\":32,\"l\":[{\"a\":[{\"r\":36}],\"m\":0,\"o\":4,\"t\":0,\"e\":[{\"s\":[{\"c\":54,\"w\":7}]}]}],\"n\":[{\"c\":27,\"d\":[{\"e\":0}]}],\"p\":[{\"a\":[{\"r\":[{\"i\":[{\"l\":292}]}]}]},29],\"t\":[{\"a\":4,\"i\":[{\"o\":76}],\"u\":11}],\"u\":0,\"v\":[{\"o\":[{\"r\":4}]}],\"w\":32},9],\"b\":56,\"c\":[{\"a\":[{\"n\":[{\"t\":149}],\"p\":[{\"e\":[{\"r\":267}]},0],\"v\":6,\"t\":[{\"o\":[{\"l\":208}]}]}],\"e\":[{\"d\":21,\"i\":18,\"s\":21}],\"h\":[{\"o\":21,\"i\":[{\"t\":[{\"z\":21}]}],\"r\":[{\"o\":[{\"d\":[{\"i\":[{\"n\":[{\"g\":293}]}]}]}]}]},8],\"i\":[{\"e\":68,\"n\":[{\"d\":150}],\"u\":[{\"t\":[{\"t\":294}]}]}],\"l\":[{\"e\":6,\"i\":21}],\"o\":[{\"f\":17,\"p\":[{\"y\":18}],\"u\":[{\"r\":[{\"a\":7}]}]}],\"u\":29,\"r\":[{\"a\":[{\"p\":[{\"e\":[{\"r\":[{\".\":36}]}]}]}]}],\"y\":[{\"t\":[{\"h\":247}]}]}],\"d\":56,\"e\":[{\".\":18,\"a\":[{\"s\":17,\"w\":5},1],\"c\":[{\"o\":151,\"t\":27}],\"d\":[{\"e\":95,\"l\":19},125],\"g\":[{\"r\":11},9],\"i\":32,\"l\":[{\"e\":2,\"f\":32,\"v\":32}],\"m\":[{\"e\":[{\"s\":[{\"t\":295}]},18],\"o\":[{\"l\":1}],\"a\":[{\"p\":[{\"h\":287}]}],\"i\":[{\"t\":[{\"i\":[{\"c\":296}]}]}]}],\"n\":[{\"a\":[{\"t\":5}],\"c\":18,\"d\":0,\"e\":[{\"d\":19}],\"g\":5,\"i\":[{\"n\":19}],\"t\":[{\"d\":18,\"l\":18}]}],\"p\":[{\"a\":152,\"t\":[{\"e\":[{\"m\":[{\"b\":11}]}]}]}],\"r\":[{\".\":43,\"l\":21,\"o\":0,\"v\":[{\"o\":18}]}],\"s\":[{\"h\":4,\"t\":5},72],\"u\":[{\"m\":113}],\"v\":[{\"e\":[{\"n\":11}]},32],\"w\":[{\"i\":0}],\"x\":32}],\"f\":47,\"g\":48,\"h\":[{\".\":25,\"e\":[{\"r\":2,\"v\":32}],\"i\":[{\"n\":2,\"o\":3,\"p\":27,\"v\":6}],\"o\":[{\"l\":[{\"d\":4}],\"n\":12,\"r\":[{\"t\":7},17],\"e\":[{\"s\":[{\"t\":137}]}]},0],\"w\":18},24],\"i\":[{\"b\":2,\"c\":[{\"c\":19}],\"d\":[{\"e\":[{\".\":27,\"s\":[{\"t\":6,\"w\":6},32],\"d\":[{\".\":8}]}],\"i\":[{\"z\":4},32]}],\"g\":[{\"n\":[{\"a\":18}]}],\"l\":[{\"e\":0,\"y\":18}],\"n\":[{\"a\":24,\"e\":[{\".\":32}],\"g\":23},42],\"o\":[{\"n\":[{\"a\":6},32]},41],\"r\":[{\"a\":5,\"e\":[{\"s\":[{\"i\":[{\"d\":4}]}]}]},9],\"s\":41,\"t\":[{\"i\":[{\"o\":27}]}],\"u\":32,\"v\":41,\"z\":32}],\"k\":[{\"e\":[{\"t\":23},18],\"i\":[{\"n\":[{\"e\":4,\"g\":4}]}],\"y\":[{\"s\":[{\"c\":15}]}]},9],\"l\":[{\"a\":[{\"t\":23}],\"e\":24,\"i\":[{\"t\":[{\"h\":7}]}],\"o\":[{\"v\":[{\"a\":[{\"k\":[{\"i\":[{\"a\":297}]}]}]}]}]},74],\"m\":[{\"a\":[{\"l\":[{\"l\":54}],\"n\":12},23],\"e\":[{\"l\":17,\"n\":19}],\"i\":[{\"t\":[{\"h\":32}]}],\"o\":[{\"l\":[{\"d\":49}]}]},42],\"n\":72,\"o\":[{\"c\":[{\"e\":1}],\"f\":[{\"t\":12}],\"l\":[{\"a\":[{\"b\":1}],\"d\":153,\"i\":[{\"c\":3}],\"v\":32,\"u\":[{\"t\":[{\"e\":9}]}]}],\"m\":27,\"n\":[{\".\":68,\"a\":17,\"g\":0}],\"p\":[{\"h\":[{\"i\":[{\"c\":32,\"z\":19}],\"y\":19}]},21],\"r\":[{\"c\":5,\"d\":5}],\"v\":[{\"i\":4},18],\"g\":[{\"a\":[{\"m\":[{\"y\":298}]}]}]},41],\"p\":[{\"a\":[{\"i\":32,\"n\":0,\"c\":[{\"e\":299,\"i\":[{\"n\":69}]}]},25],\"e\":[{\"n\":[{\"d\":17}],\"o\":57,\"r\":25,\"c\":[{\"i\":[{\"o\":11}]}]}],\"h\":[{\"e\":[{\"r\":[{\"o\":213},27]},24],\"o\":6}],\"i\":[{\"l\":17,\"n\":[{\"g\":4}],\"o\":18,\"c\":[{\"i\":[{\"l\":208}]}]}],\"l\":[{\"y\":21}],\"o\":[{\"n\":21,\"r\":[{\"t\":[{\"s\":[{\"c\":300,\"w\":300}]}]},17],\"t\":18,\"k\":[{\"e\":[{\"s\":[{\"w\":10}]}]}]}]}],\"q\":[{\"u\":[{\"a\":[{\"l\":[{\"l\":36}]}],\"i\":[{\"t\":[{\"o\":88}]}]}]}],\"r\":29,\"s\":[{\"a\":[{\"s\":12,\"c\":[{\"h\":[{\"u\":301}]}]},29],\"c\":94,\"e\":[{\"l\":23,\"n\":[{\"g\":19}],\"s\":[{\".\":21}],\"t\":19}],\"i\":[{\"e\":[{\"r\":0},21],\"l\":[{\"y\":4}],\"a\":[{\"n\":[{\".\":210}]}],\"g\":[{\"n\":[{\"a\":[{\"b\":302}]}]}]},29],\"l\":[{\"i\":1},21],\"n\":21,\"p\":[{\"e\":[{\"n\":[{\"d\":115}]}]}],\"t\":9,\"u\":[{\"r\":[{\"a\":6}]}],\"w\":4,\"h\":[{\"a\":[{\"t\":3}]}]},25],\"t\":[{\".\":25,\"a\":[{\"g\":24,\"l\":24,\"m\":[{\"i\":17,\"p\":69}],\"n\":[{\"d\":32,\"t\":[{\"s\":[{\"h\":[{\"i\":303}]}]}]}],\"p\":90,\"t\":[{\".\":32,\"i\":15}],\"r\":[{\"t\":[{\"l\":[{\"i\":12}]}]}]}],\"e\":[{\"d\":21,\"r\":[{\"n\":[{\"i\":7}],\"o\":19}],\"w\":[{\"a\":6},8]}],\"h\":[{\"e\":23}],\"i\":[{\".\":21,\"a\":19,\"c\":[{\"k\":32},29],\"e\":21,\"f\":23,\"n\":[{\"g\":3}],\"r\":32},9],\"l\":[{\"e\":29}],\"o\":[{\"c\":[{\"k\":32}],\"m\":[{\"a\":12}],\"n\":[{\"e\":32}],\"p\":21,\"r\":[{\"e\":27,\"a\":[{\"b\":304}]}]}],\"r\":[{\"a\":[{\"d\":21,\"t\":[{\"u\":32,\"a\":[{\"g\":305}]}],\"y\":21}],\"i\":[{\"d\":21,\"b\":[{\"u\":[{\"t\":7}]}]}],\"y\":18},1],\"w\":61,\"y\":[{\"l\":[{\"i\":[{\"s\":137}]}]},24],\"b\":4,\"s\":[{\"c\":[{\"r\":4}]}],\"u\":[{\"p\":[{\"i\":[{\"d\":306}]}]}]}],\"u\":[{\"a\":[{\"l\":2}],\"b\":111,\"g\":151,\"i\":[{\"s\":4,\"t\":12}],\"l\":21,\"m\":[{\"i\":11},9],\"n\":9,\"r\":9,\"p\":[{\"e\":[{\"r\":[{\"e\":307}]}]}]},41],\"v\":18,\"w\":[{\"o\":18,\"i\":[{\"m\":[{\"m\":177}]}]},9],\"y\":[{\"c\":18,\"l\":27,\"n\":[{\"o\":5,\"c\":41}],\"r\":[{\"i\":[{\"n\":4}]}],\"t\":[{\"h\":[{\"i\":308}]}]},21]}],\"t\":[{\"a\":[{\".\":27,\"b\":[{\"l\":[{\"e\":[{\"s\":4}]}],\"o\":[{\"l\":[{\"i\":[{\"z\":32,\"s\":[{\"m\":309}]}]}]}]},25],\"c\":[{\"i\":18}],\"d\":[{\"o\":4}],\"f\":46,\"i\":[{\"l\":[{\"o\":5}]}],\"l\":[{\"a\":4,\"e\":[{\"n\":5}],\"i\":11,\"k\":[{\"a\":204},18],\"l\":[{\"i\":[{\"s\":0}]}],\"o\":[{\"g\":4}]},9],\"m\":[{\"o\":4,\"i\":[{\"n\":82}]}],\"n\":[{\"d\":[{\"e\":0}],\"t\":[{\"a\":54}]}],\"p\":[{\"e\":[{\"r\":4}],\"l\":4,\"a\":[{\"t\":[{\"h\":310}]}]}],\"r\":[{\"a\":0,\"c\":18,\"e\":18,\"i\":[{\"z\":3}],\"r\":[{\"h\":311}]}],\"s\":[{\"e\":0,\"y\":4}],\"t\":[{\"i\":[{\"c\":18}],\"u\":[{\"r\":1}]}],\"u\":[{\"n\":17}],\"v\":0,\"w\":25,\"x\":[{\"i\":[{\"s\":0}]}],\"g\":[{\"o\":[{\"n\":[{\".\":3}]}]}]},41],\"b\":42,\"c\":[{\"h\":[{\"e\":[{\"t\":5}],\"c\":15,\"i\":[{\"e\":[{\"r\":237}]}]},21],\"r\":29},18],\"d\":43,\"e\":[{\".\":18,\"a\":[{\"d\":[{\"i\":17}],\"t\":18,\"c\":[{\"h\":[{\"e\":[{\"r\":[{\".\":36}]}]}]}]}],\"c\":[{\"e\":17,\"t\":32}],\"d\":[{\"i\":4},42],\"e\":41,\"g\":[{\"e\":[{\"r\":4}],\"i\":4},0],\"l\":[{\".\":27,\"i\":17,\"s\":32,\"e\":[{\"g\":84,\"r\":[{\"o\":249}]}]}],\"m\":[{\"a\":[{\"t\":11},154]}],\"n\":[{\"a\":[{\"n\":27}],\"c\":27,\"d\":27,\"e\":[{\"s\":18}],\"t\":[{\"a\":[{\"g\":0}]},41]}],\"o\":41,\"p\":[{\"e\":4},1],\"r\":[{\"c\":11,\"d\":155,\"i\":[{\"e\":[{\"s\":5}],\"s\":11,\"z\":[{\"a\":6}],\"c\":[{\".\":8}]},41],\"n\":[{\"i\":[{\"t\":32}]}],\"v\":5,\"g\":[{\"e\":[{\"i\":312}]}]}],\"s\":[{\".\":18,\"s\":[{\".\":23,\"e\":[{\"s\":313}]},18]}],\"t\":[{\"h\":[{\"e\":6}]}],\"u\":27,\"x\":27,\"y\":18}],\"f\":42,\"g\":43,\"h\":[{\".\":25,\"a\":[{\"n\":17,\"l\":[{\"a\":[{\"m\":228}]}]}],\"e\":[{\"a\":[{\"s\":3,\"t\":5},18],\"i\":[{\"s\":11}],\"t\":27},9],\"i\":[{\"c\":[{\".\":4,\"a\":4}],\"l\":18,\"n\":[{\"k\":32}]}],\"l\":18,\"o\":[{\"d\":[{\"e\":4,\"i\":[{\"c\":32}],\"o\":[{\"n\":11}]}],\"o\":18,\"r\":[{\"i\":[{\"t\":6,\"z\":5}]}],\"g\":[{\"e\":[{\"n\":[{\"i\":314}]}]}],\"k\":[{\"e\":[{\"r\":175}]}]}],\"s\":25,\"y\":[{\"l\":[{\"a\":[{\"n\":228}]}],\"s\":[{\"c\":11}]}]}],\"i\":[{\"a\":[{\"b\":1,\"t\":[{\"o\":1}],\"n\":[{\".\":70}]},41],\"b\":156,\"c\":[{\"k\":18,\"o\":21,\"u\":157}],\"d\":[{\"i\":32}],\"e\":[{\"n\":27}],\"f\":[{\"y\":4},8],\"g\":[{\"u\":32},25],\"l\":[{\"l\":[{\"i\":[{\"n\":6}]}]}],\"m\":[{\"p\":18,\"u\":[{\"l\":5}]},41],\"n\":[{\"a\":24,\"e\":[{\".\":27}],\"i\":27,\"o\":[{\"m\":285}]},42],\"o\":[{\"c\":4,\"n\":[{\"e\":[{\"e\":6}]}]},41],\"q\":32,\"s\":[{\"a\":3,\"e\":27,\"m\":0,\"o\":4,\"p\":0,\"t\":[{\"i\":[{\"c\":[{\"a\":32}]}]}]}],\"t\":[{\"l\":3}],\"u\":1,\"v\":[{\"a\":0},41],\"z\":[{\"a\":3,\"e\":[{\"n\":3}]},41]}],\"l\":[{\"a\":[{\"n\":17},19],\"e\":[{\".\":27,\"d\":27,\"s\":[{\".\":27}],\"t\":[{\".\":19}]}],\"o\":19,\"i\":[{\"e\":[{\"r\":315}]}]},25],\"m\":[{\"e\":0},43],\"n\":81,\"o\":[{\"b\":3,\"c\":[{\"r\":[{\"a\":[{\"t\":4}]}]}],\"d\":[{\"o\":18}],\"f\":25,\"g\":[{\"r\":9}],\"i\":[{\"c\":4}],\"m\":[{\"a\":9,\"b\":0,\"y\":3}],\"n\":[{\"a\":[{\"l\":[{\"i\":0}],\"t\":3}],\"o\":18,\"y\":18}],\"r\":[{\"a\":9,\"i\":[{\"e\":3,\"z\":5}]}],\"s\":8,\"u\":[{\"r\":32,\"t\":18}],\"w\":[{\"a\":[{\"r\":3}]}],\"l\":[{\"o\":[{\"g\":[{\"y\":84}]}]}],\"t\":[{\"i\":[{\"c\":11}]}]},41],\"p\":43,\"r\":[{\"a\":[{\"b\":11,\"c\":[{\"h\":5,\"i\":[{\"t\":17},36],\"t\":[{\"e\":17}]}],\"s\":17,\"v\":[{\"e\":[{\"n\":5,\"s\":158,\"r\":[{\"s\":[{\"a\":[{\"b\":317}]},15]}]}]}],\"i\":[{\"t\":[{\"o\":[{\"r\":316}]}]}]},41],\"e\":[{\"f\":5,\"m\":[{\"i\":6},0],\"a\":[{\"c\":[{\"h\":[{\"e\":318}]}]}]}],\"i\":[{\"a\":[{\"l\":[{\".\":1}]},32],\"c\":[{\"e\":[{\"s\":5}],\"i\":[{\"a\":32}],\"s\":18}],\"m\":25,\"v\":0}],\"o\":[{\"m\":[{\"i\":5}],\"n\":[{\"i\":6,\"y\":18}],\"p\":[{\"h\":[{\"e\":5}],\"i\":[{\"s\":175}],\"o\":[{\"l\":[{\"e\":[{\"s\":320}],\"i\":[{\"s\":320,\"t\":321}]}]}]}],\"s\":[{\"p\":11}],\"v\":11,\"l\":[{\"e\":[{\"u\":[{\"m\":319}]}]}],\"f\":[{\"i\":[{\"c\":[{\".\":17}],\"t\":11}]}]}],\"u\":[{\"i\":5,\"s\":17}]}],\"s\":[{\"c\":[{\"h\":[{\"i\":[{\"e\":12}]}]},21],\"h\":0,\"w\":21},101],\"t\":[{\"e\":[{\"s\":21}],\"o\":19,\"u\":0,\"r\":[{\"i\":[{\"b\":[{\"u\":[{\"t\":322}]}]}]}]},66],\"u\":[{\"a\":[{\"r\":3},2],\"b\":[{\"i\":1}],\"d\":8,\"e\":18,\"f\":46,\"i\":76,\"m\":27,\"n\":[{\"i\":[{\"s\":1}]}],\"p\":[{\".\":48}],\"r\":[{\"e\":27,\"i\":[{\"s\":11},32],\"o\":5,\"y\":4,\"n\":[{\"a\":[{\"r\":12}]}]}],\"s\":27},41],\"v\":18,\"w\":[{\"a\":43,\"i\":[{\"s\":17}],\"o\":18,\"h\":29},1],\"y\":[{\"a\":18,\"l\":25,\"p\":[{\"e\":12,\"h\":4,\"a\":[{\"l\":64}]}]},41],\"z\":[{\"e\":1},18]}],\"u\":[{\"a\":[{\"b\":18,\"c\":0,\"n\":[{\"a\":4,\"i\":0}],\"r\":[{\"a\":[{\"n\":[{\"t\":5}]}],\"d\":8,\"i\":11,\"t\":11}],\"t\":29,\"v\":0,\"d\":[{\"r\":[{\"a\":[{\"t\":[{\"i\":3,\"u\":15}]}]}]}]}],\"b\":[{\"e\":[{\"l\":21,\"r\":[{\"o\":21},23]},1],\"i\":[{\"n\":[{\"g\":33}]},72],\"l\":[{\"e\":[{\".\":23}]}]}],\"c\":[{\"a\":23,\"i\":[{\"b\":0,\"t\":1}],\"l\":[{\"e\":12}],\"r\":23,\"u\":23,\"y\":21}],\"d\":[{\"d\":4,\"e\":[{\"r\":3,\"s\":[{\"t\":4}],\"v\":17}],\"i\":[{\"c\":29,\"e\":[{\"d\":3,\"s\":3}],\"s\":4,\"t\":19}],\"o\":[{\"n\":[{\"y\":232},21]}],\"s\":[{\"i\":1}],\"u\":21}],\"e\":[{\"n\":[{\"e\":21,\"s\":17,\"t\":[{\"e\":0}]}],\"r\":[{\"i\":[{\"l\":0}]}],\"a\":[{\"m\":15}]}],\"f\":[{\"a\":27,\"l\":23}],\"g\":[{\"h\":[{\"e\":[{\"n\":11}]}],\"i\":[{\"n\":4}]}],\"i\":[{\"l\":[{\"i\":[{\"z\":5}]}],\"n\":[{\"g\":29},1],\"r\":[{\"m\":0}],\"t\":[{\"a\":17}],\"v\":[{\"e\":[{\"r\":[{\".\":0}]}]},11]},156],\"j\":19,\"k\":18,\"l\":[{\"a\":[{\"b\":5,\"t\":[{\"i\":19}]},29],\"c\":[{\"h\":[{\"e\":32},17]}],\"d\":[{\"e\":[{\"r\":3}]}],\"e\":[{\"n\":29},1],\"g\":[{\"i\":1}],\"i\":[{\"a\":19,\"n\":[{\"g\":3}],\"s\":[{\"h\":4}]},9],\"l\":[{\"a\":[{\"r\":1}],\"i\":[{\"b\":96,\"s\":1}]}],\"m\":61,\"o\":72,\"s\":[{\"e\":[{\"s\":5}]},18],\"t\":[{\"i\":2,\"r\":[{\"a\":54}],\"u\":18}],\"u\":[{\"l\":4},23],\"v\":4}],\"m\":[{\"a\":[{\"b\":4}],\"b\":[{\"i\":1,\"l\":[{\"y\":1}]}],\"i\":[{\"n\":[{\"g\":83}]},29],\"o\":[{\"r\":[{\"o\":6}]}],\"p\":9}],\"n\":[{\"a\":[{\"t\":17}],\"e\":[{\"r\":1},24],\"i\":[{\"m\":1,\"n\":24,\"s\":[{\"h\":4}],\"v\":11},29],\"s\":[{\"w\":1},93],\"t\":[{\"a\":[{\"b\":11}],\"e\":[{\"r\":[{\".\":1}],\"s\":1}]}],\"u\":0,\"y\":4,\"z\":4}],\"o\":[{\"r\":[{\"s\":21}],\"s\":19,\"u\":29}],\"p\":[{\"e\":[{\"r\":[{\"s\":6}]},29],\"i\":[{\"a\":19,\"n\":[{\"g\":3}]}],\"l\":23,\"p\":[{\"o\":[{\"r\":[{\"t\":10}]}]},3],\"t\":[{\"i\":[{\"b\":5}],\"u\":17}]}],\"r\":[{\"a\":[{\".\":18,\"g\":21,\"s\":21,\"l\":[{\".\":216}]},29],\"b\":[{\"e\":1}],\"c\":0,\"d\":2,\"e\":[{\"a\":[{\"t\":5}]}],\"f\":[{\"e\":[{\"r\":1}],\"r\":1}],\"i\":[{\"f\":[{\"i\":[{\"c\":0}]},23],\"n\":2,\"o\":23,\"t\":29,\"z\":3,\"a\":[{\"l\":[{\".\":0}]}]}],\"l\":[{\"i\":[{\"n\":[{\"g\":[{\".\":5}]}]}]},9],\"n\":[{\"o\":1}],\"o\":[{\"s\":17}],\"p\":[{\"e\":1,\"i\":1}],\"s\":[{\"e\":[{\"r\":5}]}],\"t\":[{\"e\":[{\"s\":4}],\"h\":[{\"e\":3}],\"i\":[{\"e\":1},17]}],\"u\":23}],\"s\":[{\"a\":[{\"d\":19,\"n\":19,\"p\":1}],\"c\":[{\"i\":3},8],\"e\":[{\"a\":5,\"r\":[{\".\":9}]}],\"i\":[{\"a\":19,\"c\":23}],\"l\":[{\"i\":[{\"n\":1}]}],\"p\":2,\"s\":[{\"l\":4}],\"t\":[{\"e\":[{\"r\":[{\"e\":4}]}],\"r\":2}],\"u\":[{\"r\":17},24]},25],\"t\":[{\"a\":[{\"b\":0,\"t\":23}],\"e\":[{\".\":18,\"l\":18,\"n\":[{\"i\":17},18]}],\"i\":[{\"l\":[{\"i\":[{\"z\":5}]}],\"n\":[{\"e\":23,\"g\":3}],\"o\":[{\"n\":[{\"a\":7}]}],\"s\":21,\"z\":31},101],\"l\":34,\"o\":[{\"f\":4,\"g\":5,\"m\":[{\"a\":[{\"t\":[{\"i\":[{\"c\":5}]}]}]}],\"n\":19,\"u\":21}],\"s\":0}],\"u\":[{\"m\":1},23],\"v\":74,\"x\":[{\"u\":11}],\"z\":[{\"e\":1}]}],\"v\":[{\"a\":[{\".\":32,\"b\":159,\"c\":[{\"i\":[{\"l\":5}],\"u\":11}],\"g\":[{\"e\":1,\"u\":[{\"e\":[{\"r\":170}]}]},0],\"l\":[{\"i\":[{\"e\":4}],\"o\":5,\"u\":15}],\"m\":[{\"o\":4}],\"n\":[{\"i\":[{\"z\":4}]}],\"p\":[{\"i\":4}],\"r\":[{\"i\":[{\"e\":[{\"d\":5}]}]}],\"t\":[{\"i\":[{\"v\":29}]},27],\"u\":[{\"d\":[{\"e\":[{\"v\":54}]}]}]},41],\"e\":[{\".\":18,\"d\":18,\"g\":11,\"l\":[{\".\":23,\"l\":[{\"i\":11}],\"o\":1,\"y\":21}],\"n\":[{\"o\":[{\"m\":11}],\"u\":[{\"e\":19}]}],\"r\":[{\"d\":21,\"e\":[{\".\":32,\"l\":[{\"y\":[{\".\":41}]},21],\"n\":[{\"c\":5},23],\"s\":21,\"i\":[{\"g\":324}]}],\"i\":[{\"e\":11}],\"m\":[{\"i\":[{\"n\":36}]}],\"s\":[{\"e\":27}],\"t\":[{\"h\":11}]}],\"s\":[{\".\":18,\"t\":[{\"e\":0,\"i\":[{\"t\":[{\"e\":15}]}]}]},99],\"t\":[{\"e\":[{\"r\":11},1],\"y\":1}]}],\"i\":[{\"a\":[{\"l\":[{\"i\":4}],\"n\":32}],\"d\":[{\"e\":[{\".\":32,\"d\":32,\"n\":47,\"s\":32}],\"i\":32}],\"f\":23,\"g\":[{\"n\":4}],\"k\":0,\"l\":[{\"i\":[{\"t\":32,\"z\":127}]},25],\"n\":[{\"a\":26,\"c\":24,\"d\":5,\"g\":18},29],\"o\":[{\"l\":11,\"r\":73,\"u\":2}],\"p\":1,\"r\":[{\"o\":4}],\"s\":[{\"i\":[{\"t\":11}],\"o\":3,\"u\":3}],\"t\":[{\"i\":18,\"r\":11,\"y\":18}],\"v\":[{\"i\":[{\"p\":[{\"a\":[{\"r\":325}]}]}]},27]}],\"o\":[{\".\":32,\"i\":[{\"r\":[{\"d\":[{\"u\":323}]}],\"c\":[{\"e\":[{\"p\":213}]}]},0],\"k\":27,\"l\":[{\"a\":1,\"e\":19,\"t\":32,\"v\":27}],\"m\":[{\"i\":5}],\"r\":[{\"a\":[{\"b\":5}],\"i\":17,\"y\":1}],\"t\":[{\"a\":1,\"e\":[{\"e\":18}]}]}],\"v\":26,\"y\":21}],\"w\":[{\"a\":[{\"b\":[{\"l\":19}],\"c\":25,\"g\":[{\"e\":[{\"r\":4}],\"o\":5}],\"i\":[{\"t\":6}],\"l\":[{\".\":19}],\"m\":0,\"r\":[{\"t\":0}],\"s\":[{\"t\":[{\"e\":[{\"w\":[{\"a\":326}]}]},0]}],\"t\":[{\"e\":2}],\"v\":[{\"e\":[{\"r\":4,\"g\":327}]}]}],\"b\":29,\"e\":[{\"a\":[{\"r\":[{\"i\":[{\"e\":5}]}],\"t\":[{\"h\":54}]}],\"d\":[{\"n\":0}],\"e\":[{\"t\":12,\"v\":5,\"k\":[{\"n\":137}]}],\"l\":[{\"l\":0}],\"r\":29,\"s\":[{\"t\":12}],\"v\":23}],\"h\":[{\"i\":0}],\"i\":[{\"l\":[{\"l\":[{\"i\":[{\"n\":6}]}]},8],\"n\":[{\"d\":[{\"e\":0}],\"g\":0}],\"r\":0,\"s\":[{\"e\":27}],\"t\":[{\"h\":12}],\"z\":5,\"d\":[{\"e\":[{\"s\":[{\"p\":6}]}]}]},9],\"k\":21,\"l\":[{\"e\":[{\"s\":1}],\"i\":[{\"n\":3}]}],\"n\":[{\"o\":21}],\"o\":[{\"m\":15,\"v\":[{\"e\":[{\"n\":4}]}],\"k\":[{\"e\":[{\"n\":85}]}]},160],\"p\":19,\"r\":[{\"a\":[{\"p\":[{\"a\":[{\"r\":[{\"o\":12}]}]}]},0],\"i\":[{\"t\":[{\"a\":36,\"e\":[{\"r\":[{\".\":183}]}]}]},0]}],\"s\":[{\"h\":23,\"l\":1,\"p\":[{\"e\":1}],\"t\":60}],\"t\":18,\"y\":1,\"c\":23}],\"x\":[{\"a\":[{\"c\":[{\"e\":5}],\"g\":[{\"o\":21}],\"m\":11,\"p\":21,\"s\":5},29],\"c\":161,\"e\":[{\"c\":[{\"u\":[{\"t\":[{\"o\":1}]}]}],\"d\":24,\"r\":[{\"i\":0,\"o\":4}]},29],\"h\":[{\"i\":[{\"l\":6},8],\"u\":0},29],\"i\":[{\"a\":4,\"c\":4,\"d\":[{\"i\":4}],\"m\":[{\"e\":21,\"i\":[{\"z\":4}]}]},23],\"o\":[{\"b\":21},23],\"p\":[{\"a\":[{\"n\":[{\"d\":17}]}],\"e\":[{\"c\":[{\"t\":[{\"o\":10}]}],\"d\":11}]},23],\"t\":[{\"i\":23},74],\"u\":[{\"a\":3},29],\"x\":1,\"q\":[{\"u\":[{\"i\":[{\"s\":54}]}]},29]}],\"y\":[{\"a\":[{\"c\":19,\"r\":110,\"t\":19}],\"b\":29,\"c\":[{\"e\":[{\"r\":4},24],\"h\":[{\"e\":[{\"d\":264},0]},23],\"o\":[{\"m\":17,\"t\":17}]},29],\"d\":29,\"e\":[{\"e\":19,\"r\":[{\"f\":21},29],\"s\":[{\"t\":[{\"e\":[{\"r\":[{\"y\":328}]}]}]},0],\"t\":1}],\"g\":[{\"i\":19}],\"h\":47,\"i\":29,\"l\":[{\"a\":23,\"l\":[{\"a\":[{\"b\":[{\"l\":6}]}]}],\"o\":23,\"u\":19}],\"m\":[{\"b\":[{\"o\":[{\"l\":7}]}],\"e\":[{\"t\":[{\"r\":[{\"y\":20}]}]},0],\"p\":[{\"a\":12}]}],\"n\":[{\"c\":[{\"h\":[{\"r\":3}]}],\"d\":4,\"g\":4,\"i\":[{\"c\":4}],\"x\":32}],\"o\":[{\"d\":4,\"g\":33,\"m\":0,\"n\":[{\"e\":[{\"t\":4}],\"s\":21}],\"s\":21},72],\"p\":[{\"e\":[{\"d\":21,\"r\":6}],\"i\":3,\"o\":[{\"c\":21},23],\"t\":[{\"a\":9}],\"u\":19}],\"r\":[{\"a\":[{\"m\":5}],\"i\":[{\"a\":4}],\"o\":23,\"r\":1}],\"s\":[{\"c\":1,\"e\":161,\"i\":[{\"c\":[{\"a\":3}],\"o\":3,\"s\":27}],\"o\":21,\"s\":0,\"t\":[{\"a\":3,\"r\":[{\"o\":29}]},2],\"u\":[{\"r\":17}]}],\"t\":[{\"h\":[{\"i\":[{\"n\":23}]}],\"i\":[{\"c\":3}]}],\"w\":29}],\"z\":[{\"a\":[{\"b\":79,\"r\":8},2],\"b\":18,\"e\":[{\"n\":1,\"p\":1,\"r\":[{\"o\":3},29],\"t\":0},25],\"i\":[{\"l\":21,\"s\":21,\"a\":[{\"n\":[{\".\":23}]}]},42],\"l\":32,\"m\":18,\"o\":[{\"m\":1,\"o\":[{\"l\":4}],\"p\":[{\"h\":[{\"r\":329}]}]},41],\"t\":[{\"e\":0}],\"z\":[{\"y\":21,\"w\":231},101]}]}",
16416
+ [
16417
+ "as-so-ciate",
16418
+ "as-so-ciates",
16419
+ "dec-li-na-tion",
16420
+ "oblig-a-tory",
16421
+ "phil-an-thropic",
16422
+ "present",
16423
+ "presents",
16424
+ "project",
16425
+ "projects",
16426
+ "reci-procity",
16427
+ "re-cog-ni-zance",
16428
+ "ref-or-ma-tion",
16429
+ "ret-ri-bu-tion",
16430
+ "ta-ble"
16431
+ ]
16432
+ ];
16433
+
16119
16434
  //#endregion
16120
16435
  //#region src/components/docs/layout/hyphenation/tools.ts
16121
16436
  function parsePattern(pattern) {
@@ -16166,8 +16481,8 @@ var Hyphen = class Hyphen {
16166
16481
  this.loadPattern("en-gb");
16167
16482
  }
16168
16483
  _preloadPatterns() {
16169
- this._patterns.set("en-us", parsePattern(require_en_us.EnUs));
16170
- this._loadExceptionsToCache("en-us", require_en_us.EnUs);
16484
+ this._patterns.set("en-us", parsePattern(EnUs));
16485
+ this._loadExceptionsToCache("en-us", EnUs);
16171
16486
  }
16172
16487
  _loadExceptionsToCache(lang, pattern) {
16173
16488
  if (pattern.length < 3) return;
@@ -16768,28 +17083,45 @@ var DocumentSkeleton = class DocumentSkeleton extends _univerjs_core.Skeleton {
16768
17083
  }
16769
17084
  }
16770
17085
  let exactMatch = null;
16771
- if (skeTables.size > 0) for (const table of skeTables.values()) {
16772
- var _this$_findLiquid, _this$_findLiquid2, _this$_findLiquid9;
16773
- const { top: tableTop, left: tableLeft, rows } = table;
16774
- (_this$_findLiquid = this._findLiquid) === null || _this$_findLiquid === void 0 || _this$_findLiquid.translateSave();
16775
- (_this$_findLiquid2 = this._findLiquid) === null || _this$_findLiquid2 === void 0 || _this$_findLiquid2.translate(tableLeft, tableTop);
16776
- for (const row of rows) {
16777
- var _this$_findLiquid3, _this$_findLiquid4, _this$_findLiquid8;
16778
- const { top: rowTop, cells, isRepeatRow } = row;
16779
- if (isRepeatRow) continue;
16780
- (_this$_findLiquid3 = this._findLiquid) === null || _this$_findLiquid3 === void 0 || _this$_findLiquid3.translateSave();
16781
- (_this$_findLiquid4 = this._findLiquid) === null || _this$_findLiquid4 === void 0 || _this$_findLiquid4.translate(0, rowTop);
16782
- for (const cell of cells) {
16783
- var _this$_findLiquid5, _this$_findLiquid6, _exactMatch3, _this$_findLiquid7;
16784
- const { left: cellLeft } = cell;
17086
+ if (skeTables.size > 0) {
17087
+ var _this$_docViewModel$g, _this$_docViewModel$g2, _this$_docViewModel$g3;
17088
+ const unitId = (_this$_docViewModel$g = (_this$_docViewModel$g2 = (_this$_docViewModel$g3 = this._docViewModel.getDataModel()).getUnitId) === null || _this$_docViewModel$g2 === void 0 ? void 0 : _this$_docViewModel$g2.call(_this$_docViewModel$g3)) !== null && _this$_docViewModel$g !== void 0 ? _this$_docViewModel$g : "";
17089
+ for (const table of skeTables.values()) {
17090
+ var _this$_findLiquid, _this$_findLiquid2, _this$_findLiquid11;
17091
+ const { top: tableTop, left: tableLeft, rows } = table;
17092
+ const sourceTableId = getTableIdAndSliceIndex(table.tableId).tableId;
17093
+ const viewport = getDocsTableRenderViewport(unitId, sourceTableId);
17094
+ (_this$_findLiquid = this._findLiquid) === null || _this$_findLiquid === void 0 || _this$_findLiquid.translateSave();
17095
+ (_this$_findLiquid2 = this._findLiquid) === null || _this$_findLiquid2 === void 0 || _this$_findLiquid2.translate(tableLeft, tableTop);
17096
+ if (viewport && viewport.contentWidth > viewport.viewportWidth) {
17097
+ var _this$_findLiquid4;
17098
+ const visibleLeft = this._findLiquid.x;
17099
+ const visibleRight = visibleLeft + viewport.viewportWidth;
17100
+ if (x < visibleLeft || x > visibleRight) {
17101
+ var _this$_findLiquid3;
17102
+ (_this$_findLiquid3 = this._findLiquid) === null || _this$_findLiquid3 === void 0 || _this$_findLiquid3.translateRestore();
17103
+ continue;
17104
+ }
17105
+ (_this$_findLiquid4 = this._findLiquid) === null || _this$_findLiquid4 === void 0 || _this$_findLiquid4.translate(-viewport.scrollLeft, 0);
17106
+ }
17107
+ for (const row of rows) {
17108
+ var _this$_findLiquid5, _this$_findLiquid6, _this$_findLiquid10;
17109
+ const { top: rowTop, cells, isRepeatRow } = row;
17110
+ if (isRepeatRow) continue;
16785
17111
  (_this$_findLiquid5 = this._findLiquid) === null || _this$_findLiquid5 === void 0 || _this$_findLiquid5.translateSave();
16786
- (_this$_findLiquid6 = this._findLiquid) === null || _this$_findLiquid6 === void 0 || _this$_findLiquid6.translate(cellLeft, 0);
16787
- exactMatch = (_exactMatch3 = exactMatch) !== null && _exactMatch3 !== void 0 ? _exactMatch3 : this._collectNearestNode(cell, 3, cell, segmentId, pi, cache, x, y, pageLength, nestLevel + 1);
16788
- (_this$_findLiquid7 = this._findLiquid) === null || _this$_findLiquid7 === void 0 || _this$_findLiquid7.translateRestore();
17112
+ (_this$_findLiquid6 = this._findLiquid) === null || _this$_findLiquid6 === void 0 || _this$_findLiquid6.translate(0, rowTop);
17113
+ for (const cell of cells) {
17114
+ var _this$_findLiquid7, _this$_findLiquid8, _exactMatch3, _this$_findLiquid9;
17115
+ const { left: cellLeft } = cell;
17116
+ (_this$_findLiquid7 = this._findLiquid) === null || _this$_findLiquid7 === void 0 || _this$_findLiquid7.translateSave();
17117
+ (_this$_findLiquid8 = this._findLiquid) === null || _this$_findLiquid8 === void 0 || _this$_findLiquid8.translate(cellLeft, 0);
17118
+ exactMatch = (_exactMatch3 = exactMatch) !== null && _exactMatch3 !== void 0 ? _exactMatch3 : this._collectNearestNode(cell, 3, cell, segmentId, pi, cache, x, y, pageLength, nestLevel + 1);
17119
+ (_this$_findLiquid9 = this._findLiquid) === null || _this$_findLiquid9 === void 0 || _this$_findLiquid9.translateRestore();
17120
+ }
17121
+ (_this$_findLiquid10 = this._findLiquid) === null || _this$_findLiquid10 === void 0 || _this$_findLiquid10.translateRestore();
16789
17122
  }
16790
- (_this$_findLiquid8 = this._findLiquid) === null || _this$_findLiquid8 === void 0 || _this$_findLiquid8.translateRestore();
17123
+ (_this$_findLiquid11 = this._findLiquid) === null || _this$_findLiquid11 === void 0 || _this$_findLiquid11.translateRestore();
16791
17124
  }
16792
- (_this$_findLiquid9 = this._findLiquid) === null || _this$_findLiquid9 === void 0 || _this$_findLiquid9.translateRestore();
16793
17125
  }
16794
17126
  if (exactMatch) {
16795
17127
  this._findLiquid.translateRestore();
@@ -17074,10 +17406,12 @@ function createDocumentModelWithStyle(content, textStyle, config = {}) {
17074
17406
  width: Number.POSITIVE_INFINITY,
17075
17407
  height: Number.POSITIVE_INFINITY
17076
17408
  },
17409
+ documentFlavor: _univerjs_core.DocumentFlavor.UNSPECIFIED,
17077
17410
  marginTop,
17078
17411
  marginBottom,
17079
17412
  marginRight,
17080
17413
  marginLeft,
17414
+ paragraphLineGapDefault: 0,
17081
17415
  renderConfig: {
17082
17416
  horizontalAlign,
17083
17417
  verticalAlign,
@@ -17119,7 +17453,7 @@ function getFontFormat(format) {
17119
17453
  }
17120
17454
 
17121
17455
  //#endregion
17122
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
17456
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorateParam.js
17123
17457
  function __decorateParam(paramIndex, decorator) {
17124
17458
  return function(target, key) {
17125
17459
  decorator(target, key, paramIndex);
@@ -17127,7 +17461,7 @@ function __decorateParam(paramIndex, decorator) {
17127
17461
  }
17128
17462
 
17129
17463
  //#endregion
17130
- //#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
17464
+ //#region \0@oxc-project+runtime@0.133.0/helpers/esm/decorate.js
17131
17465
  function __decorate(decorators, target, key, desc) {
17132
17466
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17133
17467
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -21543,7 +21877,8 @@ DocumentsSpanAndLineExtensionRegistry.add(new Line());
21543
21877
 
21544
21878
  //#endregion
21545
21879
  //#region src/components/docs/document.ts
21546
- const DEFAULT_BORDER_COLOR = { color: { rgb: "#dee0e3" } };
21880
+ const DEFAULT_BORDER_COLOR = { color: { rgb: "#c7c9cc" } };
21881
+ const TABLE_VIEWPORT_BORDER_CLIP_PADDING = 2;
21547
21882
  var Documents = class Documents extends DocComponent {
21548
21883
  constructor(oKey, documentSkeleton, config) {
21549
21884
  super(oKey, documentSkeleton, config);
@@ -21726,29 +22061,62 @@ var Documents = class Documents extends DocComponent {
21726
22061
  }
21727
22062
  }
21728
22063
  _drawTable(ctx, page, skeTables, extensions, backgroundExtension, glyphExtensionsExcludeBackground, alignOffsetNoAngle, centerAngle, vertexAngle, renderConfig, parentScale) {
21729
- for (const [_tableId, tableSkeleton] of skeTables) {
21730
- var _this$_drawLiquid, _this$_drawLiquid2, _this$_drawLiquid9;
22064
+ const drawLiquid = this._drawLiquid;
22065
+ if (drawLiquid == null) return;
22066
+ const renderUnitId = this._getRenderUnitId();
22067
+ for (const [tableId, tableSkeleton] of skeTables) {
21731
22068
  const { top: tableTop, left: tableLeft, rows } = tableSkeleton;
21732
- (_this$_drawLiquid = this._drawLiquid) === null || _this$_drawLiquid === void 0 || _this$_drawLiquid.translateSave();
21733
- (_this$_drawLiquid2 = this._drawLiquid) === null || _this$_drawLiquid2 === void 0 || _this$_drawLiquid2.translate(tableLeft, tableTop);
22069
+ const sourceTableId = getTableIdAndSliceIndex(tableId).tableId;
22070
+ const viewport = this._getTableViewport(page, tableSkeleton, renderUnitId, sourceTableId);
22071
+ drawLiquid.translateSave();
22072
+ drawLiquid.translate(tableLeft, tableTop);
22073
+ if (viewport && viewport.contentWidth > viewport.viewportWidth) {
22074
+ const { x, y } = drawLiquid;
22075
+ ctx.save();
22076
+ ctx.beginPath();
22077
+ ctx.rectByPrecision(x + page.marginLeft - TABLE_VIEWPORT_BORDER_CLIP_PADDING, y + page.marginTop - TABLE_VIEWPORT_BORDER_CLIP_PADDING, viewport.viewportWidth + TABLE_VIEWPORT_BORDER_CLIP_PADDING * 2, tableSkeleton.height + TABLE_VIEWPORT_BORDER_CLIP_PADDING * 2);
22078
+ ctx.closePath();
22079
+ ctx.clip();
22080
+ drawLiquid.translate(-viewport.scrollLeft, 0);
22081
+ }
21734
22082
  for (const row of rows) {
21735
- var _this$_drawLiquid3, _this$_drawLiquid4, _this$_drawLiquid8;
21736
22083
  const { top: rowTop, cells } = row;
21737
- (_this$_drawLiquid3 = this._drawLiquid) === null || _this$_drawLiquid3 === void 0 || _this$_drawLiquid3.translateSave();
21738
- (_this$_drawLiquid4 = this._drawLiquid) === null || _this$_drawLiquid4 === void 0 || _this$_drawLiquid4.translate(0, rowTop);
22084
+ drawLiquid.translateSave();
22085
+ drawLiquid.translate(0, rowTop);
21739
22086
  for (const cell of cells) {
21740
- var _this$_drawLiquid5, _this$_drawLiquid6, _this$_drawLiquid7;
22087
+ if (cell.isMergedCellCovered) continue;
21741
22088
  const { left: cellLeft } = cell;
21742
- (_this$_drawLiquid5 = this._drawLiquid) === null || _this$_drawLiquid5 === void 0 || _this$_drawLiquid5.translateSave();
21743
- (_this$_drawLiquid6 = this._drawLiquid) === null || _this$_drawLiquid6 === void 0 || _this$_drawLiquid6.translate(cellLeft, 0);
22089
+ drawLiquid.translateSave();
22090
+ drawLiquid.translate(cellLeft, 0);
21744
22091
  this._drawTableCell(ctx, page, cell, extensions, backgroundExtension, glyphExtensionsExcludeBackground, alignOffsetNoAngle, centerAngle, vertexAngle, renderConfig, parentScale);
21745
- (_this$_drawLiquid7 = this._drawLiquid) === null || _this$_drawLiquid7 === void 0 || _this$_drawLiquid7.translateRestore();
22092
+ drawLiquid.translateRestore();
21746
22093
  }
21747
- (_this$_drawLiquid8 = this._drawLiquid) === null || _this$_drawLiquid8 === void 0 || _this$_drawLiquid8.translateRestore();
22094
+ drawLiquid.translateRestore();
21748
22095
  }
21749
- (_this$_drawLiquid9 = this._drawLiquid) === null || _this$_drawLiquid9 === void 0 || _this$_drawLiquid9.translateRestore();
22096
+ if (viewport && viewport.contentWidth > viewport.viewportWidth) ctx.restore();
22097
+ drawLiquid.translateRestore();
21750
22098
  }
21751
22099
  }
22100
+ _getTableViewport(page, tableSkeleton, unitId, tableId) {
22101
+ const viewport = getDocsTableRenderViewport(unitId, tableId);
22102
+ if (viewport) return viewport;
22103
+ const { pageWidth, marginLeft = 0, marginRight = 0 } = page;
22104
+ if (!Number.isFinite(pageWidth)) return null;
22105
+ const viewportWidth = Math.max(0, pageWidth - marginLeft - marginRight - tableSkeleton.left);
22106
+ if (viewportWidth <= 0 || tableSkeleton.width <= viewportWidth) return null;
22107
+ return {
22108
+ contentWidth: tableSkeleton.width,
22109
+ scrollLeft: 0,
22110
+ viewportWidth
22111
+ };
22112
+ }
22113
+ _getRenderUnitId() {
22114
+ var _skeleton$getViewMode, _viewModel$getDataMod, _dataModel$getUnitId, _dataModel$getUnitId2;
22115
+ const skeleton = this.getSkeleton();
22116
+ const viewModel = skeleton === null || skeleton === void 0 || (_skeleton$getViewMode = skeleton.getViewModel) === null || _skeleton$getViewMode === void 0 ? void 0 : _skeleton$getViewMode.call(skeleton);
22117
+ const dataModel = viewModel === null || viewModel === void 0 || (_viewModel$getDataMod = viewModel.getDataModel) === null || _viewModel$getDataMod === void 0 ? void 0 : _viewModel$getDataMod.call(viewModel);
22118
+ return (_dataModel$getUnitId = dataModel === null || dataModel === void 0 || (_dataModel$getUnitId2 = dataModel.getUnitId) === null || _dataModel$getUnitId2 === void 0 ? void 0 : _dataModel$getUnitId2.call(dataModel)) !== null && _dataModel$getUnitId !== void 0 ? _dataModel$getUnitId : this.oKey;
22119
+ }
21752
22120
  _drawBorderBottom(ctx, page, line, left = 0, top = 0) {
21753
22121
  var _line$borderBottom$pa, _line$borderBottom, _line$borderBottom$co, _line$borderBottom2;
21754
22122
  if (this._drawLiquid == null) return;
@@ -21858,60 +22226,68 @@ var Documents = class Documents extends DocComponent {
21858
22226
  ctx.restore();
21859
22227
  }
21860
22228
  _drawTableCellBordersAndBg(ctx, page, cell) {
21861
- var _borderLeft$color$rgb, _borderTop$color$rgb, _borderRight$color$rg, _borderBottom$color$r;
22229
+ var _rowSke$index, _cellSource$backgroun;
21862
22230
  const { marginLeft, marginTop } = page;
21863
22231
  const { pageWidth, pageHeight } = cell;
21864
22232
  const rowSke = cell.parent;
21865
22233
  const index = rowSke.cells.indexOf(cell);
21866
- const { borderTop = DEFAULT_BORDER_COLOR, borderBottom = DEFAULT_BORDER_COLOR, borderLeft = DEFAULT_BORDER_COLOR, borderRight = DEFAULT_BORDER_COLOR, backgroundColor } = rowSke.rowSource.tableCells[index];
22234
+ if (index < 0) return;
22235
+ const cellSource = rowSke.rowSource.tableCells[index];
22236
+ const tableSke = rowSke.parent;
22237
+ const rowIndexInTable = tableSke === null || tableSke === void 0 ? void 0 : tableSke.rows.indexOf(rowSke);
22238
+ const rowIndex = rowIndexInTable == null || rowIndexInTable < 0 ? (_rowSke$index = rowSke.index) !== null && _rowSke$index !== void 0 ? _rowSke$index : 0 : rowIndexInTable;
22239
+ if (!cellSource || cellSource.rowSpan === 0 || cellSource.columnSpan === 0) return;
21867
22240
  if (this._drawLiquid == null) return;
21868
22241
  let { x, y } = this._drawLiquid;
21869
22242
  x += marginLeft;
21870
22243
  y += marginTop;
21871
- if (backgroundColor && backgroundColor.rgb) {
22244
+ if ((_cellSource$backgroun = cellSource.backgroundColor) === null || _cellSource$backgroun === void 0 ? void 0 : _cellSource$backgroun.rgb) {
21872
22245
  ctx.save();
21873
- ctx.fillStyle = backgroundColor.rgb;
22246
+ ctx.fillStyle = cellSource.backgroundColor.rgb;
21874
22247
  ctx.fillRectByPrecision(x, y, pageWidth, pageHeight);
21875
22248
  ctx.restore();
21876
22249
  }
21877
- ctx.save();
21878
- ctx.setLineWidthByPrecision(1);
21879
- ctx.save();
21880
- ctx.strokeStyle = (_borderLeft$color$rgb = borderLeft.color.rgb) !== null && _borderLeft$color$rgb !== void 0 ? _borderLeft$color$rgb : DEFAULT_BORDER_COLOR.color.rgb;
21881
- drawLineByBorderType(ctx, "l", 0, {
21882
- startX: x,
21883
- startY: y,
21884
- endX: x + pageWidth,
21885
- endY: y + pageHeight
21886
- });
21887
- ctx.restore();
21888
- ctx.save();
21889
- ctx.strokeStyle = (_borderTop$color$rgb = borderTop.color.rgb) !== null && _borderTop$color$rgb !== void 0 ? _borderTop$color$rgb : DEFAULT_BORDER_COLOR.color.rgb;
21890
- drawLineByBorderType(ctx, "t", 0, {
22250
+ const position = {
21891
22251
  startX: x,
21892
22252
  startY: y,
21893
22253
  endX: x + pageWidth,
21894
22254
  endY: y + pageHeight
21895
- });
21896
- ctx.restore();
21897
- ctx.save();
21898
- ctx.strokeStyle = (_borderRight$color$rg = borderRight.color.rgb) !== null && _borderRight$color$rg !== void 0 ? _borderRight$color$rg : DEFAULT_BORDER_COLOR.color.rgb;
21899
- drawLineByBorderType(ctx, "r", 0, {
21900
- startX: x,
21901
- startY: y,
21902
- endX: x + pageWidth,
21903
- endY: y + pageHeight
21904
- });
21905
- ctx.restore();
22255
+ };
22256
+ const rightCellSource = this._getTableCellSource(rowSke, index + 1);
22257
+ const bottomCellSource = tableSke ? this._getTableCellSource(tableSke.rows[rowIndex + 1], index) : void 0;
22258
+ this._drawTableCellBorder(ctx, this._resolveTableCellBorder(cellSource.borderRight, rightCellSource === null || rightCellSource === void 0 ? void 0 : rightCellSource.borderLeft), "r", position);
22259
+ this._drawTableCellBorder(ctx, this._resolveTableCellBorder(cellSource.borderBottom, bottomCellSource === null || bottomCellSource === void 0 ? void 0 : bottomCellSource.borderTop), "b", position);
22260
+ if (rowIndex <= 0) this._drawTableCellBorder(ctx, this._resolveTableCellBorder(cellSource.borderTop), "t", position);
22261
+ if (index <= 0) this._drawTableCellBorder(ctx, this._resolveTableCellBorder(cellSource.borderLeft), "l", position);
22262
+ }
22263
+ _getTableCellSource(row, column) {
22264
+ var _row$rowSource$tableC;
22265
+ return (_row$rowSource$tableC = row === null || row === void 0 ? void 0 : row.rowSource.tableCells[column]) !== null && _row$rowSource$tableC !== void 0 ? _row$rowSource$tableC : null;
22266
+ }
22267
+ _resolveTableCellBorder(primary, secondary) {
22268
+ if (this._isDrawableTableCellBorder(primary)) return primary;
22269
+ if (this._isDrawableTableCellBorder(secondary)) return secondary;
22270
+ if (primary || secondary) return null;
22271
+ return DEFAULT_BORDER_COLOR;
22272
+ }
22273
+ _isDrawableTableCellBorder(border) {
22274
+ var _border$width$v, _border$width, _border$color$rgb, _border$color;
22275
+ if (!border) return false;
22276
+ const lineWidth = (_border$width$v = (_border$width = border.width) === null || _border$width === void 0 ? void 0 : _border$width.v) !== null && _border$width$v !== void 0 ? _border$width$v : 1;
22277
+ const color = (_border$color$rgb = (_border$color = border.color) === null || _border$color === void 0 ? void 0 : _border$color.rgb) !== null && _border$color$rgb !== void 0 ? _border$color$rgb : DEFAULT_BORDER_COLOR.color.rgb;
22278
+ return lineWidth > 0 && color !== "transparent";
22279
+ }
22280
+ _drawTableCellBorder(ctx, border, type, position) {
22281
+ var _border$width$v2, _border$width2, _border$color$rgb2, _border$color2;
22282
+ if (!border) return;
22283
+ const lineWidth = (_border$width$v2 = (_border$width2 = border.width) === null || _border$width2 === void 0 ? void 0 : _border$width2.v) !== null && _border$width$v2 !== void 0 ? _border$width$v2 : 1;
22284
+ const color = (_border$color$rgb2 = (_border$color2 = border.color) === null || _border$color2 === void 0 ? void 0 : _border$color2.rgb) !== null && _border$color$rgb2 !== void 0 ? _border$color$rgb2 : DEFAULT_BORDER_COLOR.color.rgb;
22285
+ if (lineWidth <= 0 || color === "transparent") return;
21906
22286
  ctx.save();
21907
- ctx.strokeStyle = (_borderBottom$color$r = borderBottom.color.rgb) !== null && _borderBottom$color$r !== void 0 ? _borderBottom$color$r : DEFAULT_BORDER_COLOR.color.rgb;
21908
- drawLineByBorderType(ctx, "b", 0, {
21909
- startX: x,
21910
- startY: y,
21911
- endX: x + pageWidth,
21912
- endY: y + pageHeight
21913
- });
21914
- ctx.restore();
22287
+ ctx.setLineWidthByPrecision(lineWidth);
22288
+ setTableCellBorderDash(ctx, border.dashStyle);
22289
+ ctx.strokeStyle = color;
22290
+ drawLineByBorderType(ctx, type, 0, position);
21915
22291
  ctx.restore();
21916
22292
  }
21917
22293
  _drawHeaderFooter(page, ctx, extensions, backgroundExtension, glyphExtensionsExcludeBackground, alignOffsetNoAngle, centerAngle, vertexAngle, renderConfig, parentScale, parentPage, isHeader = true) {
@@ -22042,6 +22418,17 @@ var Documents = class Documents extends DocComponent {
22042
22418
  });
22043
22419
  }
22044
22420
  };
22421
+ function setTableCellBorderDash(ctx, dashStyle) {
22422
+ if (dashStyle === _univerjs_core.DashStyleType.DOT) {
22423
+ ctx.setLineDash([2]);
22424
+ return;
22425
+ }
22426
+ if (dashStyle === _univerjs_core.DashStyleType.DASH) {
22427
+ ctx.setLineDash([6]);
22428
+ return;
22429
+ }
22430
+ ctx.setLineDash([0]);
22431
+ }
22045
22432
 
22046
22433
  //#endregion
22047
22434
  //#region src/components/sheets/spreadsheet.ts
@@ -22225,8 +22612,10 @@ var Spreadsheet = class extends SheetComponent {
22225
22612
  cacheCtx.save();
22226
22613
  const isForceDirty = isViewportForceDirty || this.isForceDirty();
22227
22614
  const isDirty = isViewportDirty || this.isDirty();
22228
- if (diffBounds.length === 0 || diffX === 0 && diffY === 0 || isForceDirty || isDirty) {
22229
- if (isDirty || isForceDirty) {
22615
+ const isScrollJumpOutsideCache = Math.abs(diffX) * scaleX >= cacheCanvas.getWidth() || Math.abs(diffY) * scaleY >= cacheCanvas.getHeight();
22616
+ const shouldRefreshCache = isDirty || isForceDirty || isScrollJumpOutsideCache;
22617
+ if (diffBounds.length === 0 || diffX === 0 && diffY === 0 || shouldRefreshCache) {
22618
+ if (shouldRefreshCache) {
22230
22619
  this.addRenderTagToScene("scrolling", false);
22231
22620
  this.refreshCacheCanvas(viewportInfo, {
22232
22621
  cacheCanvas,
@@ -23242,29 +23631,49 @@ var Slide = class extends SceneViewer {
23242
23631
  //#region src/components/docs/doc-background.ts
23243
23632
  const PAGE_STROKE_COLOR = "rgba(198, 198, 198, 1)";
23244
23633
  const PAGE_FILL_COLOR = "rgba(255, 255, 255, 1)";
23634
+ const DOCS_WORKSPACE_FILL_COLOR = "#fafafa";
23245
23635
  const MARGIN_STROKE_COLOR = "rgba(158, 158, 158, 1)";
23246
23636
  var DocBackground = class DocBackground extends DocComponent {
23247
23637
  constructor(oKey, documentSkeleton, config) {
23248
23638
  super(oKey, documentSkeleton, config);
23249
23639
  _defineProperty(this, "_drawLiquid", void 0);
23640
+ _defineProperty(this, "_backgroundFillColor", void 0);
23641
+ _defineProperty(this, "_pageFillColor", void 0);
23642
+ _defineProperty(this, "_pageStrokeColor", void 0);
23643
+ _defineProperty(this, "_marginStrokeColor", void 0);
23250
23644
  this._drawLiquid = new Liquid();
23645
+ this._backgroundFillColor = config === null || config === void 0 ? void 0 : config.backgroundFillColor;
23646
+ this._pageFillColor = config === null || config === void 0 ? void 0 : config.pageFillColor;
23647
+ this._pageStrokeColor = config === null || config === void 0 ? void 0 : config.pageStrokeColor;
23648
+ this._marginStrokeColor = config === null || config === void 0 ? void 0 : config.marginStrokeColor;
23251
23649
  this.makeDirty(true);
23252
23650
  }
23253
23651
  static create(oKey, documentSkeleton, config) {
23254
23652
  return new DocBackground(oKey, documentSkeleton, config);
23255
23653
  }
23654
+ setFillColors(backgroundFillColor, pageFillColor, pageStrokeColor, marginStrokeColor) {
23655
+ if (this._backgroundFillColor === backgroundFillColor && this._pageFillColor === pageFillColor && this._pageStrokeColor === pageStrokeColor && this._marginStrokeColor === marginStrokeColor) return;
23656
+ this._backgroundFillColor = backgroundFillColor;
23657
+ this._pageFillColor = pageFillColor;
23658
+ this._pageStrokeColor = pageStrokeColor;
23659
+ this._marginStrokeColor = marginStrokeColor;
23660
+ this.makeDirty(true);
23661
+ }
23256
23662
  draw(ctx, bounds) {
23257
- var _this$getSkeleton, _this$getSkeleton2;
23663
+ var _this$getSkeleton, _this$getSkeleton2, _this$_backgroundFill;
23258
23664
  const skeletonData = (_this$getSkeleton = this.getSkeleton()) === null || _this$getSkeleton === void 0 ? void 0 : _this$getSkeleton.getSkeletonData();
23259
23665
  const docDataModel = (_this$getSkeleton2 = this.getSkeleton()) === null || _this$getSkeleton2 === void 0 ? void 0 : _this$getSkeleton2.getViewModel().getDataModel();
23260
23666
  if (skeletonData == null || docDataModel == null) return;
23261
23667
  const { documentFlavor } = docDataModel.getSnapshot().documentStyle;
23262
- if (documentFlavor !== _univerjs_core.DocumentFlavor.TRADITIONAL) return;
23668
+ const workspaceFill = (_this$_backgroundFill = this._backgroundFillColor) !== null && _this$_backgroundFill !== void 0 ? _this$_backgroundFill : documentFlavor === _univerjs_core.DocumentFlavor.MODERN ? PAGE_FILL_COLOR : DOCS_WORKSPACE_FILL_COLOR;
23669
+ this._drawWorkspaceBackground(ctx, workspaceFill, bounds);
23670
+ if (documentFlavor === _univerjs_core.DocumentFlavor.MODERN) return;
23263
23671
  this._drawLiquid.reset();
23264
23672
  const { pages } = skeletonData;
23265
23673
  let pageTop = 0;
23266
23674
  let pageLeft = 0;
23267
23675
  for (let i = 0, len = pages.length; i < len; i++) {
23676
+ var _this$_pageStrokeColo, _this$_pageFillColor, _this$_marginStrokeCo;
23268
23677
  const page = pages[i];
23269
23678
  if (this.isSkipByDiffBounds(page, pageTop, pageLeft, bounds)) {
23270
23679
  const { x, y } = this._drawLiquid.translatePage(page, this.pageLayoutType, this.pageMarginLeft, this.pageMarginTop);
@@ -23279,8 +23688,8 @@ var DocBackground = class DocBackground extends DocComponent {
23279
23688
  width: pageWidth !== null && pageWidth !== void 0 ? pageWidth : width,
23280
23689
  height: pageHeight !== null && pageHeight !== void 0 ? pageHeight : height,
23281
23690
  strokeWidth: 1,
23282
- stroke: PAGE_STROKE_COLOR,
23283
- fill: PAGE_FILL_COLOR,
23691
+ stroke: (_this$_pageStrokeColo = this._pageStrokeColor) !== null && _this$_pageStrokeColo !== void 0 ? _this$_pageStrokeColo : PAGE_STROKE_COLOR,
23692
+ fill: (_this$_pageFillColor = this._pageFillColor) !== null && _this$_pageFillColor !== void 0 ? _this$_pageFillColor : PAGE_FILL_COLOR,
23284
23693
  zIndex: 3
23285
23694
  };
23286
23695
  Rect.drawWith(ctx, backgroundOptions);
@@ -23337,7 +23746,7 @@ var DocBackground = class DocBackground extends DocComponent {
23337
23746
  }
23338
23747
  ],
23339
23748
  strokeWidth: 1.5,
23340
- stroke: MARGIN_STROKE_COLOR
23749
+ stroke: (_this$_marginStrokeCo = this._marginStrokeColor) !== null && _this$_marginStrokeCo !== void 0 ? _this$_marginStrokeCo : MARGIN_STROKE_COLOR
23341
23750
  };
23342
23751
  Path.drawWith(ctx, marginIdentification);
23343
23752
  ctx.restore();
@@ -23346,6 +23755,24 @@ var DocBackground = class DocBackground extends DocComponent {
23346
23755
  pageTop += y;
23347
23756
  }
23348
23757
  }
23758
+ _drawWorkspaceBackground(ctx, fill, bounds) {
23759
+ var _bounds$cacheBound, _visibleBound$left, _visibleBound$top;
23760
+ const visibleBound = (_bounds$cacheBound = bounds === null || bounds === void 0 ? void 0 : bounds.cacheBound) !== null && _bounds$cacheBound !== void 0 ? _bounds$cacheBound : bounds === null || bounds === void 0 ? void 0 : bounds.viewBound;
23761
+ const left = (_visibleBound$left = visibleBound === null || visibleBound === void 0 ? void 0 : visibleBound.left) !== null && _visibleBound$left !== void 0 ? _visibleBound$left : 0;
23762
+ const top = (_visibleBound$top = visibleBound === null || visibleBound === void 0 ? void 0 : visibleBound.top) !== null && _visibleBound$top !== void 0 ? _visibleBound$top : 0;
23763
+ const width = visibleBound == null ? this.width : visibleBound.right - visibleBound.left;
23764
+ const height = visibleBound == null ? this.height : visibleBound.bottom - visibleBound.top;
23765
+ if (width <= 0 || height <= 0) return;
23766
+ ctx.save();
23767
+ ctx.translate(left, top);
23768
+ Rect.drawWith(ctx, {
23769
+ width,
23770
+ height,
23771
+ fill,
23772
+ zIndex: 0
23773
+ });
23774
+ ctx.restore();
23775
+ }
23349
23776
  changeSkeleton(newSkeleton) {
23350
23777
  this.setSkeleton(newSkeleton);
23351
23778
  return this;
@@ -23863,7 +24290,10 @@ let Engine = class Engine extends _univerjs_core.Disposable {
23863
24290
  sub.unsubscribe();
23864
24291
  this._rect$ = null;
23865
24292
  };
23866
- })).pipe((0, rxjs.shareReplay)(1));
24293
+ })).pipe((0, rxjs.shareReplay)({
24294
+ bufferSize: 1,
24295
+ refCount: true
24296
+ }));
23867
24297
  }
23868
24298
  get unitId() {
23869
24299
  return this._unitId;
@@ -24495,7 +24925,7 @@ Engine = __decorate([__decorateParam(2, ICanvasColorService)], Engine);
24495
24925
  //#endregion
24496
24926
  //#region package.json
24497
24927
  var name = "@univerjs/engine-render";
24498
- var version = "0.24.0";
24928
+ var version = "0.25.0";
24499
24929
 
24500
24930
  //#endregion
24501
24931
  //#region src/config/config.ts
@@ -27234,6 +27664,9 @@ let RenderUnit = class RenderUnit extends _univerjs_core.Disposable {
27234
27664
  this._renderContext.unit = null;
27235
27665
  this._renderContext.components.clear();
27236
27666
  }
27667
+ isDisposed() {
27668
+ return this._disposed;
27669
+ }
27237
27670
  /**
27238
27671
  * Get a dependency from the RenderUnit's injector.
27239
27672
  */
@@ -27579,6 +28012,7 @@ function subtractViewportRange(range1, range2) {
27579
28012
  //#endregion
27580
28013
  //#region src/viewport.ts
27581
28014
  const MOUSE_WHEEL_SPEED_SMOOTHING_FACTOR = 3;
28015
+ const WHEEL_CROSS_AXIS_LOCK_RATIO = 2;
27582
28016
  var Viewport = class {
27583
28017
  constructor(viewportKey, scene, props) {
27584
28018
  var _this$scene$getEngine;
@@ -28222,11 +28656,22 @@ var Viewport = class {
28222
28656
  let offsetX = 0;
28223
28657
  let offsetY = 0;
28224
28658
  const allWidth = this._scene.width;
28225
- offsetX = (this.width || 1) / allWidth * evt.deltaX;
28659
+ const viewWidth = this.width || 1;
28660
+ const scaleX = Math.abs(this._scene.scaleX) || 1;
28661
+ const scaleY = Math.abs(this._scene.scaleY) || 1;
28662
+ const rawOffsetX = evt.deltaX / scaleX;
28663
+ const rawOffsetY = evt.deltaY / scaleY;
28664
+ offsetX = viewWidth / allWidth * rawOffsetX;
28226
28665
  const allHeight = this._scene.height;
28227
28666
  const viewHeight = this.height || 1;
28228
- if (evt.shiftKey) offsetX = viewHeight / allHeight * evt.deltaY * MOUSE_WHEEL_SPEED_SMOOTHING_FACTOR;
28229
- else offsetY = viewHeight / allHeight * evt.deltaY;
28667
+ if (evt.shiftKey) offsetX = viewHeight / allHeight * evt.deltaY * MOUSE_WHEEL_SPEED_SMOOTHING_FACTOR / scaleX;
28668
+ else {
28669
+ offsetY = viewHeight / allHeight * rawOffsetY;
28670
+ const absOffsetX = Math.abs(rawOffsetX);
28671
+ const absOffsetY = Math.abs(rawOffsetY);
28672
+ if (absOffsetY >= absOffsetX * WHEEL_CROSS_AXIS_LOCK_RATIO) offsetX = 0;
28673
+ else if (absOffsetX >= absOffsetY * WHEEL_CROSS_AXIS_LOCK_RATIO) offsetY = 0;
28674
+ }
28230
28675
  const isLimitedStore = this.scrollByBarDeltaValue({
28231
28676
  x: offsetX,
28232
28677
  y: offsetY
@@ -28553,6 +28998,7 @@ var Viewport = class {
28553
28998
  }
28554
28999
  _calcDiffCacheBound(prevBound, currBound) {
28555
29000
  if (!prevBound) return [currBound];
29001
+ if (prevBound.right <= currBound.left || currBound.right <= prevBound.left || prevBound.bottom <= currBound.top || currBound.bottom <= prevBound.top) return [currBound];
28556
29002
  const additionalAreas = [];
28557
29003
  if (currBound.left < prevBound.left) additionalAreas.push({
28558
29004
  top: currBound.top,
@@ -28809,6 +29255,7 @@ exports.getCurrentTypeOfRenderer = getCurrentTypeOfRenderer;
28809
29255
  exports.getDPI = getDPI;
28810
29256
  exports.getDevicePixelRatio = getDevicePixelRatio;
28811
29257
  exports.getDocsSkeletonPageSize = getDocsSkeletonPageSize;
29258
+ exports.getDocsTableRenderViewport = getDocsTableRenderViewport;
28812
29259
  exports.getDrawingGroupState = getDrawingGroupState;
28813
29260
  exports.getFirstGrapheme = getFirstGrapheme;
28814
29261
  exports.getFontStyleString = getFontStyleString;
@@ -28818,6 +29265,7 @@ exports.getLastLine = getLastLine;
28818
29265
  exports.getLineOffset = getLineOffset;
28819
29266
  exports.getLineWidth = getLineWidth;
28820
29267
  exports.getLineWith = getLineWith;
29268
+ exports.getNextWheelZoomRatio = getNextWheelZoomRatio;
28821
29269
  exports.getNumberUnitValue = getNumberUnitValue;
28822
29270
  exports.getOffsetRectForDom = getOffsetRectForDom;
28823
29271
  exports.getPageFromPath = getPageFromPath;
@@ -28845,6 +29293,7 @@ exports.hasLatinExtendedB = hasLatinExtendedB;
28845
29293
  exports.hasLatinOneSupplement = hasLatinOneSupplement;
28846
29294
  exports.hasListGlyph = hasListGlyph;
28847
29295
  exports.hasSpace = hasSpace;
29296
+ exports.hasThai = hasThai;
28848
29297
  exports.hasTibetan = hasTibetan;
28849
29298
  exports.hasUnMergedCellInRow = hasUnMergedCellInRow;
28850
29299
  exports.inViewRanges = inViewRanges;
@@ -28883,6 +29332,7 @@ exports.renderTextWatermark = renderTextWatermark;
28883
29332
  exports.renderUserInfoWatermark = renderUserInfoWatermark;
28884
29333
  exports.renderWatermark = renderWatermark;
28885
29334
  exports.requestNewFrame = requestNewFrame;
29335
+ exports.setDocsTableRenderViewportProvider = setDocsTableRenderViewportProvider;
28886
29336
  exports.setLineType = setLineType;
28887
29337
  exports.sheetContentViewportKeys = sheetContentViewportKeys;
28888
29338
  exports.sheetHeaderViewportKeys = sheetHeaderViewportKeys;