@augurworks/augur 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/CANVAS.md +858 -0
  2. package/INSTALL.md +603 -0
  3. package/LICENSE +27 -0
  4. package/README.md +150 -0
  5. package/TRADEMARKS.md +72 -0
  6. package/agents/README.md +65 -0
  7. package/agents/canon-extract.md +117 -0
  8. package/agents/canon.md +151 -0
  9. package/agents/canvas.md +88 -0
  10. package/agents/currency.md +74 -0
  11. package/agents/drafts.md +92 -0
  12. package/agents/identity.md +148 -0
  13. package/agents/prototype-contract.md +69 -0
  14. package/agents/publishing.md +324 -0
  15. package/agents/review-feedback.md +76 -0
  16. package/agents/space-json.md +132 -0
  17. package/agents/ui-skill.md +101 -0
  18. package/agents/working-marks.md +86 -0
  19. package/brand/augur-eye.svg +3 -0
  20. package/brand/augur-icon.svg +41 -0
  21. package/brand/augur-mark.svg +5 -0
  22. package/brand/lentianova-bulky.otf +0 -0
  23. package/brand/lentianova-median.otf +0 -0
  24. package/brand/lentianova.woff2 +0 -0
  25. package/build.js +8409 -0
  26. package/changelog.md +133 -0
  27. package/fonts/inter-latin-wght-normal.woff2 +0 -0
  28. package/package.json +57 -0
  29. package/pitis/PETS.md +121 -0
  30. package/pitis/README.md +117 -0
  31. package/pitis/index.html +266 -0
  32. package/pitis/piti.build.js +81 -0
  33. package/pitis/piti.js +929 -0
  34. package/pitis/roast-agent.md +185 -0
  35. package/realtime/src/index.js +119 -0
  36. package/realtime/wrangler.example.toml +44 -0
  37. package/scripts/adopt.mjs +106 -0
  38. package/scripts/board-snapshot.mjs +197 -0
  39. package/scripts/build-seed-pack.mjs +33 -0
  40. package/scripts/bundle-rekey.mjs +112 -0
  41. package/scripts/bundle-tenancy-rehearsal.mjs +781 -0
  42. package/scripts/canon-extract.mjs +578 -0
  43. package/scripts/canon.mjs +599 -0
  44. package/scripts/canvas-screen.mjs +333 -0
  45. package/scripts/check-local.mjs +136 -0
  46. package/scripts/clawd-art.mjs +75 -0
  47. package/scripts/clawd-canvas.mjs +741 -0
  48. package/scripts/cli.mjs +100 -0
  49. package/scripts/clone.mjs +422 -0
  50. package/scripts/close.mjs +30 -0
  51. package/scripts/connect.mjs +103 -0
  52. package/scripts/deploy.mjs +157 -0
  53. package/scripts/dev.mjs +54 -0
  54. package/scripts/doc-lint.mjs +143 -0
  55. package/scripts/export.mjs +300 -0
  56. package/scripts/fork.mjs +64 -0
  57. package/scripts/freeze.mjs +74 -0
  58. package/scripts/frontdoor-parity.mjs +180 -0
  59. package/scripts/hook.mjs +67 -0
  60. package/scripts/identity-rekey.mjs +112 -0
  61. package/scripts/init.mjs +122 -0
  62. package/scripts/land.mjs +40 -0
  63. package/scripts/lib/adapters.mjs +156 -0
  64. package/scripts/lib/board-snapshot.mjs +511 -0
  65. package/scripts/lib/draft.mjs +385 -0
  66. package/scripts/lib/graduate.mjs +276 -0
  67. package/scripts/lib/instance.mjs +74 -0
  68. package/scripts/lib/marks.mjs +107 -0
  69. package/scripts/lib/materialize.mjs +138 -0
  70. package/scripts/lib/merge3.mjs +124 -0
  71. package/scripts/lib/offline-posture.mjs +120 -0
  72. package/scripts/lib/offline-respawn.mjs +18 -0
  73. package/scripts/lib/offline-wrangler.mjs +78 -0
  74. package/scripts/lib/publish-compose.mjs +12 -0
  75. package/scripts/lib/publish-conflict.mjs +78 -0
  76. package/scripts/lib/publish-evidence.mjs +144 -0
  77. package/scripts/lib/refine-compare.mjs +140 -0
  78. package/scripts/lib/refine-ledger.mjs +150 -0
  79. package/scripts/lib/refine-png.mjs +149 -0
  80. package/scripts/lib/seed-pack-build.mjs +141 -0
  81. package/scripts/lib/state-compare.mjs +68 -0
  82. package/scripts/lib/store.mjs +122 -0
  83. package/scripts/login.mjs +84 -0
  84. package/scripts/mark.mjs +112 -0
  85. package/scripts/migrate-board-keys.mjs +164 -0
  86. package/scripts/migrate.mjs +265 -0
  87. package/scripts/no-foreign-vocabulary.mjs +216 -0
  88. package/scripts/no-product-names.mjs +157 -0
  89. package/scripts/no-tenant-globals.mjs +1134 -0
  90. package/scripts/offline.mjs +247 -0
  91. package/scripts/og.mjs +170 -0
  92. package/scripts/one-tenant-resolver.mjs +146 -0
  93. package/scripts/open.mjs +63 -0
  94. package/scripts/publish.mjs +1041 -0
  95. package/scripts/read.mjs +31 -0
  96. package/scripts/refine.mjs +455 -0
  97. package/scripts/release-drift.mjs +138 -0
  98. package/scripts/restore.mjs +322 -0
  99. package/scripts/review.mjs +125 -0
  100. package/scripts/save.mjs +21 -0
  101. package/scripts/shell-lint.mjs +189 -0
  102. package/scripts/ship.mjs +460 -0
  103. package/scripts/shoot.mjs +264 -0
  104. package/scripts/smoke-invite.mjs +113 -0
  105. package/scripts/state-inventory.mjs +223 -0
  106. package/scripts/status.mjs +177 -0
  107. package/scripts/sync.mjs +27 -0
  108. package/scripts/tenant-do-rehearsal.mjs +1314 -0
  109. package/scripts/ui-copy-lint.mjs +202 -0
  110. package/scripts/watch.mjs +32 -0
  111. package/scripts/wrangler-preflight.mjs +246 -0
  112. package/seed/CANON.md +43 -0
  113. package/seed/README.md +119 -0
  114. package/seed/prototype-status.json +9 -0
  115. package/seed/registry.json +88 -0
  116. package/seed/skills/starter-ui/SKILL.md +52 -0
  117. package/seed/skills/starter-ui/skill.json +11 -0
  118. package/seed/skills/starter-ui/starter-tokens.css +73 -0
  119. package/seed/skills/starter-ui/starter-ui.css +318 -0
  120. package/seed/skills/starter-ui/starter-ui.js +50 -0
  121. package/seed/space.json +5 -0
  122. package/seed/start-here/prototypes/connect-your-terminal/index.html +428 -0
  123. package/seed/start-here/prototypes/connect-your-terminal/preview.webp +0 -0
  124. package/seed/start-here/prototypes/sample-with-comments/index.html +172 -0
  125. package/seed/start-here/prototypes/sample-with-comments/preview.webp +0 -0
  126. package/seed/start-here/prototypes/set-up-your-design-system/index.html +353 -0
  127. package/seed/start-here/prototypes/set-up-your-design-system/preview.webp +0 -0
  128. package/seed/threads.json +52 -0
  129. package/seed/worked-examples/prototypes/field-readings/index.html +273 -0
  130. package/seed/worked-examples/prototypes/field-readings/preview.webp +0 -0
  131. package/seed/worked-examples/prototypes/slide-deck/index.html +214 -0
  132. package/seed/worked-examples/prototypes/slide-deck/preview.webp +0 -0
  133. package/seed/worked-examples/prototypes/specimen-viewer/index.html +203 -0
  134. package/seed/worked-examples/prototypes/specimen-viewer/preview.webp +0 -0
  135. package/src/_worker.js +12668 -0
  136. package/src/board-key.mjs +57 -0
  137. package/src/board-room.mjs +881 -0
  138. package/src/bundle-keys.mjs +138 -0
  139. package/src/canon/collect-in-browser.js +215 -0
  140. package/src/canon/emit.mjs +232 -0
  141. package/src/canon/observe.mjs +260 -0
  142. package/src/canon/schema.mjs +451 -0
  143. package/src/canvas/DSEG-LICENSE.txt +95 -0
  144. package/src/canvas/DSEG7Classic-Bold.woff2 +0 -0
  145. package/src/canvas/canvas.css +885 -0
  146. package/src/canvas/canvas.js +5780 -0
  147. package/src/canvas/capture.js +485 -0
  148. package/src/chrome/appchrome.mjs +568 -0
  149. package/src/currency.mjs +203 -0
  150. package/src/delete-confirmation.mjs +254 -0
  151. package/src/drafts/drafts.js +326 -0
  152. package/src/entry.js +58 -0
  153. package/src/galleries.mjs +400 -0
  154. package/src/health-cron.mjs +173 -0
  155. package/src/identity.json +1 -0
  156. package/src/kv-codec.mjs +135 -0
  157. package/src/kv-identity.mjs +259 -0
  158. package/src/mail.mjs +599 -0
  159. package/src/provenance.mjs +74 -0
  160. package/src/publish-compose.mjs +363 -0
  161. package/src/publish-fork.mjs +221 -0
  162. package/src/publish-units.mjs +44 -0
  163. package/src/purge.mjs +81 -0
  164. package/src/review/COMMENTING-UX.md +306 -0
  165. package/src/review/cat.png +0 -0
  166. package/src/review/comment-cursor.svg +7 -0
  167. package/src/review/comments.js +1738 -0
  168. package/src/room-ticket.mjs +96 -0
  169. package/src/roster-chip.mjs +32 -0
  170. package/src/seed-pack.mjs +261 -0
  171. package/src/state-inventory.mjs +249 -0
  172. package/src/sw-logic.mjs +48 -0
  173. package/src/tenant-cache.mjs +141 -0
  174. package/src/tenant-context.mjs +386 -0
  175. package/src/tenant-do.js +2940 -0
  176. package/src/tenant-host.mjs +144 -0
  177. package/src/tenant-quotas.mjs +140 -0
  178. package/src/unit-core.mjs +103 -0
  179. package/src/unit-object.mjs +338 -0
  180. package/templates/README.md +67 -0
  181. package/templates/shell/deploy.yml +145 -0
  182. package/templates/shell/engine-bump.yml +142 -0
  183. package/templates/shell/health.yml +233 -0
  184. package/templates/shell/kv-backup.yml +201 -0
  185. package/templates/shell/roster-update.yml +110 -0
  186. package/templates/shell/space-preflight.yml +35 -0
  187. package/templates/shell/space-rebake.yml +79 -0
  188. package/templates/shell/store-backup.yml +152 -0
  189. package/templates/shell/wrangler.example.toml +266 -0
  190. package/templates/space/publish.yml +91 -0
package/pitis/piti.js ADDED
@@ -0,0 +1,929 @@
1
+ /* ============================================================
2
+ Piti — a tiny companion that trails your cursor.
3
+ One source of truth, used by:
4
+ • pitis/index.html (adopt / customize page)
5
+ • the prototypes-site shell (build.js injects this file)
6
+ The cat art is TRACED (potrace) from the real Piti resting
7
+ pose — a loose, hand-drawn doodle, not regularised vector
8
+ geometry. The traced silhouette + outline are recoloured per
9
+ palette so the same iconic cat repaints into any hue.
10
+ Exposes window.Piti =
11
+ { PALETTE, HATS, svg, loadConfig, saveConfig, mount, auto, reveal, hide }.
12
+ ============================================================ */
13
+ (function () {
14
+ const OUT = "#241d29"; // outline (warm near-black) — stays dark in every palette
15
+
16
+ // Custom pointer (dark arrow, white outline) shown site-wide while the piti
17
+ // is active (Shift+Ñ on). Hotspot at the tip. Built as a cursor data-URI.
18
+ const CURSOR_SVG = '<svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 912 892"><g transform="translate(0.000000,892.000000) scale(0.100000,-0.100000)"><path d="M2604 7445 c-38 -17 -89 -66 -111 -109 -19 -36 -20 -144 -4 -351 6 -71 16 -186 21 -255 5 -69 14 -181 20 -250 5 -69 21 -267 35 -440 32 -400 72 -900 85 -1055 5 -66 14 -181 20 -255 6 -74 15 -193 20 -265 6 -71 15 -188 20 -260 6 -71 15 -184 20 -250 5 -66 14 -183 20 -260 6 -77 15 -187 20 -245 6 -58 14 -168 20 -245 6 -77 15 -194 21 -260 5 -66 16 -201 24 -300 8 -99 19 -236 25 -305 6 -69 15 -183 20 -255 5 -71 15 -191 21 -265 6 -74 14 -180 18 -235 9 -117 26 -161 84 -210 64 -55 159 -71 235 -40 63 27 67 31 227 280 18 28 99 156 180 285 204 324 374 593 465 735 42 66 128 201 190 300 180 287 200 315 290 405 166 168 374 283 595 329 59 12 295 27 670 41 149 6 376 15 505 20 129 5 366 15 525 20 490 19 576 25 621 48 105 54 152 186 105 294 -24 55 -47 75 -216 192 -77 52 -207 142 -290 199 -82 57 -332 229 -555 382 -223 153 -443 305 -490 337 -47 32 -152 105 -235 161 -149 103 -421 290 -1063 732 -183 127 -393 271 -465 320 -73 50 -206 142 -297 205 -91 62 -235 161 -320 220 -85 59 -229 158 -320 220 -91 63 -228 157 -305 210 -77 53 -160 110 -185 129 -25 18 -60 39 -79 47 -42 18 -146 17 -187 -1z" fill="#0d0d0d" stroke="#ffffff" stroke-width="620" stroke-linejoin="round" stroke-linecap="round" paint-order="stroke"/></g></svg>';
19
+ const CURSOR_URI = "data:image/svg+xml," + encodeURIComponent(CURSOR_SVG);
20
+
21
+ /* ---- traced paths (potrace, viewBox 0 0 1744 720, transform below) ----
22
+ sil = full body silhouette (recoloured = fur)
23
+ outMain = the hand-drawn outline + ear/tail/body line
24
+ eyeL/eyeR= the two closed sleepy-eye arcs
25
+ nose = the little nose
26
+ Lighter belly, inner-ears, haunch stripes, heart-brow & blush are drawn
27
+ as recolourable overlays clipped to the silhouette (the source has no hard
28
+ belly edge — it's a single soft fur tone — so those are positioned shapes). */
29
+ const P = {
30
+ sil: "M3936 7022 c-45 -2 -66 -9 -87 -27 -16 -13 -42 -26 -59 -30 -16 -4 -42 -21 -57 -40 -16 -18 -53 -48 -83 -68 -61 -39 -121 -105 -143 -158 -8 -19 -36 -54 -62 -76 -25 -23 -44 -47 -40 -53 11 -18 -14 -75 -50 -110 -19 -18 -42 -55 -50 -81 -9 -27 -27 -63 -39 -82 -13 -19 -29 -50 -35 -70 -7 -20 -22 -51 -34 -69 -13 -18 -31 -54 -41 -80 -9 -26 -22 -50 -27 -53 -5 -4 -9 -19 -9 -34 0 -33 -34 -135 -55 -168 -8 -12 -15 -31 -15 -42 0 -24 -42 -171 -69 -246 -10 -27 -22 -77 -26 -110 -4 -33 -18 -93 -31 -133 -13 -40 -21 -79 -18 -86 3 -8 0 -34 -7 -57 -6 -24 -15 -87 -20 -139 -13 -138 -25 -221 -38 -254 -6 -16 -9 -36 -6 -45 3 -9 -2 -43 -10 -74 -8 -32 -15 -90 -15 -128 0 -51 -7 -88 -24 -132 -31 -78 -37 -191 -39 -742 -1 -389 5 -510 32 -578 6 -16 11 -42 11 -60 0 -42 19 -143 36 -190 19 -51 0 -98 -47 -117 -19 -8 -48 -26 -66 -41 -17 -15 -48 -33 -69 -39 -76 -25 -171 -100 -321 -251 -112 -114 -153 -162 -158 -186 -3 -18 -18 -49 -31 -69 -38 -55 -87 -166 -85 -190 1 -12 -5 -49 -13 -82 -37 -139 10 -348 110 -500 55 -82 265 -288 302 -297 16 -3 51 -19 76 -36 27 -17 60 -29 79 -29 18 0 59 -7 90 -15 80 -21 364 -21 444 0 31 8 80 15 108 15 34 0 66 8 100 26 34 17 59 23 78 20 29 -6 85 17 137 56 15 11 58 24 101 30 46 6 82 18 94 29 11 10 40 25 65 34 48 17 122 61 185 110 22 18 75 53 118 78 43 26 102 72 132 102 78 80 129 93 214 55 24 -11 57 -20 73 -20 52 0 201 -30 282 -56 61 -21 89 -25 127 -20 26 4 67 2 91 -4 50 -12 298 -29 588 -39 123 -5 222 -13 247 -22 37 -11 49 -11 90 4 61 21 535 27 572 7 26 -14 51 -67 51 -108 0 -16 7 -36 17 -43 9 -8 26 -36 38 -64 13 -27 32 -58 43 -69 12 -10 27 -35 33 -55 19 -58 55 -107 96 -132 47 -28 110 -80 171 -140 40 -40 54 -48 95 -52 26 -2 76 -18 110 -34 80 -38 175 -53 341 -53 l133 0 99 35 c54 19 115 35 135 35 21 0 47 9 62 20 34 27 101 50 146 50 24 0 49 9 71 25 18 13 49 30 69 36 43 14 107 52 162 96 21 17 56 37 77 44 20 6 75 37 122 67 46 31 105 64 131 73 26 10 68 31 94 48 25 16 70 35 98 41 29 7 59 19 67 26 31 26 94 46 159 48 43 1 75 8 93 20 77 51 473 54 606 6 20 -7 54 -10 82 -7 27 3 64 2 82 -4 18 -5 89 -12 158 -15 69 -3 138 -10 154 -15 16 -5 47 -9 70 -9 55 0 231 -62 264 -93 15 -13 51 -32 81 -42 29 -10 61 -25 71 -35 10 -10 32 -21 49 -25 17 -3 45 -16 63 -29 58 -38 179 -95 193 -89 19 7 138 -34 169 -58 13 -11 40 -19 60 -19 37 0 131 -33 156 -55 15 -13 55 -19 230 -34 52 -5 115 -16 140 -26 74 -29 158 -36 502 -41 l327 -5 30 22 c20 14 53 24 103 30 119 14 218 35 293 63 39 14 86 26 106 26 22 0 51 10 75 26 21 15 56 33 77 40 21 7 51 23 67 34 16 11 47 27 70 35 23 8 54 24 70 35 16 11 46 27 67 34 46 17 147 77 183 109 14 13 59 43 100 67 83 48 296 248 356 335 37 52 67 93 147 196 27 34 55 83 63 109 8 26 23 55 33 65 11 9 27 39 36 66 9 26 25 59 35 72 11 13 29 49 40 80 12 31 26 59 31 62 5 4 9 21 9 38 0 55 29 188 50 226 26 50 31 93 36 352 l5 226 -21 59 c-12 32 -26 91 -31 129 -18 138 -26 175 -41 192 -9 10 -26 42 -38 72 -11 30 -29 65 -40 78 -10 13 -24 41 -31 61 -6 20 -23 57 -38 82 -14 25 -33 57 -41 71 -35 61 -81 118 -176 218 -88 92 -103 112 -112 155 -6 27 -8 55 -5 62 3 8 -7 37 -21 66 -14 28 -26 69 -26 89 0 21 -5 50 -11 65 -5 16 -12 60 -14 98 -2 47 -10 84 -24 111 -12 21 -21 56 -21 77 0 26 -15 66 -45 124 -29 55 -45 98 -45 121 0 34 -76 209 -106 243 -7 9 -20 36 -29 60 -17 49 -66 131 -101 170 -12 14 -45 62 -72 108 -28 45 -63 97 -79 116 -15 19 -43 59 -61 90 -20 34 -46 63 -65 72 -18 9 -82 64 -144 123 -201 189 -236 218 -293 240 -34 13 -74 40 -110 74 -36 35 -70 58 -97 66 -23 6 -55 22 -70 35 -15 13 -51 31 -79 40 -29 9 -60 26 -69 36 -10 11 -23 20 -29 20 -6 0 -36 12 -66 27 -30 14 -61 25 -68 24 -21 -3 -124 29 -158 50 -17 10 -43 19 -56 19 -35 0 -138 37 -171 61 -23 17 -37 19 -76 14 -31 -4 -69 -1 -108 9 -107 28 -793 12 -844 -20 -15 -9 -112 -22 -294 -38 -92 -8 -164 -19 -187 -29 -21 -10 -57 -17 -80 -17 -24 0 -68 -7 -98 -15 -30 -8 -87 -15 -126 -15 -50 0 -85 -6 -117 -20 -25 -11 -65 -21 -89 -21 -23 -1 -68 -7 -99 -15 -31 -8 -85 -14 -120 -14 -44 0 -82 -8 -128 -26 -53 -22 -76 -25 -123 -21 -31 3 -74 0 -95 -5 -80 -21 -747 -49 -788 -32 -41 16 -90 70 -114 125 -12 26 -28 53 -38 60 -9 8 -27 39 -41 69 -45 102 -92 168 -142 199 -26 16 -57 43 -69 59 -12 18 -34 33 -53 37 -17 4 -51 25 -75 48 -50 46 -44 45 -281 53 l-163 6 -38 -27 c-25 -16 -63 -30 -107 -37 -38 -6 -85 -22 -104 -34 -19 -13 -50 -29 -68 -35 -89 -31 -179 -98 -316 -236 -169 -170 -222 -234 -239 -286 -9 -27 -29 -63 -45 -81 -16 -19 -43 -69 -61 -112 -18 -44 -36 -89 -41 -102 -24 -55 -123 -62 -230 -14 -39 17 -106 26 -315 43 -304 25 -547 10 -683 -40 -140 -52 -211 -36 -247 54 -11 28 -30 66 -42 85 -11 19 -26 54 -32 76 -6 23 -19 48 -28 55 -9 8 -25 34 -36 58 -10 24 -36 60 -56 80 -20 20 -49 60 -66 89 -45 79 -63 101 -104 122 -21 10 -44 26 -51 35 -8 9 -34 27 -59 40 -25 13 -66 44 -90 69 -29 29 -62 51 -92 61 -26 9 -60 25 -74 37 -16 12 -50 23 -89 28 -62 8 -88 17 -136 51 -26 18 -211 29 -354 21z",
31
+ outMain: "M3975 7030 c-16 -5 -39 -7 -51 -4 -13 3 -46 -8 -88 -30 -37 -20 -74 -36 -81 -36 -8 0 -23 -13 -34 -29 -12 -16 -43 -43 -69 -59 -69 -43 -140 -117 -153 -162 -7 -21 -29 -56 -50 -76 -32 -32 -39 -45 -39 -78 0 -34 -6 -45 -49 -85 -52 -49 -71 -78 -71 -109 0 -11 -13 -36 -30 -57 -16 -21 -35 -56 -41 -79 -6 -22 -19 -50 -29 -61 -25 -27 -73 -154 -65 -173 3 -9 -10 -48 -30 -87 -20 -39 -40 -95 -44 -125 -5 -30 -18 -73 -30 -95 -11 -21 -21 -54 -21 -72 0 -18 -12 -66 -26 -106 -27 -75 -49 -182 -63 -302 -4 -39 -14 -82 -21 -95 -8 -14 -20 -95 -27 -180 -20 -229 -27 -281 -46 -324 -10 -22 -17 -65 -17 -100 0 -33 -7 -88 -15 -121 -8 -34 -14 -110 -15 -173 0 -69 -5 -122 -12 -135 -42 -76 -47 -699 -7 -852 13 -50 25 -138 38 -278 7 -75 16 -121 30 -148 33 -63 20 -90 -48 -103 -18 -3 -51 -22 -72 -41 -22 -19 -45 -35 -52 -35 -75 -1 -474 -367 -496 -455 -6 -24 -21 -56 -34 -72 -29 -34 -66 -145 -65 -194 0 -20 -10 -55 -22 -79 -24 -46 -24 -37 0 -200 12 -79 57 -219 84 -260 13 -19 33 -51 44 -70 12 -19 72 -85 134 -147 l113 -112 90 -36 c144 -58 186 -65 420 -65 147 0 231 5 280 15 38 8 83 15 98 15 16 0 41 8 55 19 16 11 53 20 91 24 50 4 73 12 108 37 34 25 60 34 113 41 46 5 82 17 107 33 21 14 53 31 72 37 41 15 157 83 191 114 14 12 61 43 105 70 44 26 110 76 147 111 74 72 94 77 198 49 30 -8 73 -15 95 -15 22 0 62 -9 90 -19 65 -25 165 -42 290 -50 55 -3 106 -10 114 -15 7 -5 34 -10 60 -12 250 -19 331 -22 494 -23 139 -1 203 -5 242 -17 l54 -15 52 15 c42 13 106 16 304 16 l252 0 20 -22 c12 -14 23 -42 26 -70 3 -31 14 -61 31 -83 15 -19 32 -50 38 -68 6 -17 23 -45 37 -62 15 -16 43 -61 62 -99 23 -47 44 -75 63 -85 16 -9 46 -31 66 -49 21 -17 41 -32 45 -32 5 0 32 -23 61 -50 43 -41 58 -49 78 -44 16 4 39 -2 68 -19 54 -31 144 -61 163 -53 8 3 30 -1 49 -9 57 -24 338 -21 394 5 23 10 79 24 125 30 59 8 94 19 127 40 28 17 66 30 100 34 71 9 301 121 370 181 14 12 44 27 67 34 23 6 55 22 70 35 44 36 159 106 175 106 8 0 36 14 63 31 27 17 85 44 129 61 45 16 104 38 131 49 28 10 72 18 99 19 36 0 60 7 85 24 l36 25 155 6 c91 4 202 1 270 -5 63 -6 158 -15 210 -18 52 -4 101 -11 109 -16 16 -11 127 -24 266 -31 170 -9 271 -39 343 -101 21 -18 58 -37 83 -44 24 -6 55 -22 69 -35 14 -12 48 -30 77 -39 28 -10 57 -23 63 -31 18 -21 136 -65 177 -65 20 0 44 -6 52 -14 26 -23 119 -56 158 -56 20 0 44 -6 52 -14 26 -24 123 -56 167 -56 23 0 63 -9 89 -21 29 -13 85 -24 148 -30 156 -14 239 -26 275 -39 19 -7 56 -10 84 -8 29 3 75 -1 106 -9 107 -28 447 -6 512 33 26 16 58 23 125 27 63 4 109 13 153 30 34 14 104 32 156 41 66 10 104 22 131 40 20 14 51 30 69 34 17 5 48 21 69 35 21 14 54 31 74 38 20 6 57 25 82 40 25 16 51 29 59 29 17 0 121 62 177 106 22 17 76 53 120 80 55 34 114 85 196 169 165 170 176 184 284 342 19 28 39 54 44 58 5 3 17 29 25 58 9 30 25 62 36 72 11 10 27 41 35 69 8 27 24 59 34 70 26 28 61 123 61 166 0 32 10 68 61 220 10 30 16 65 13 76 -3 12 2 38 10 59 13 30 16 80 16 264 l0 226 -21 45 c-15 32 -24 78 -29 158 -6 87 -13 120 -29 145 -22 35 -30 50 -60 117 -11 25 -27 56 -35 70 -8 14 -24 45 -36 70 -11 25 -27 56 -35 70 -8 14 -22 41 -30 60 -27 61 -82 131 -179 230 -100 100 -116 126 -116 192 0 25 -8 51 -22 71 -17 24 -25 53 -30 112 -16 181 -24 224 -43 245 -13 15 -21 43 -26 89 -4 52 -13 78 -36 112 -21 31 -33 64 -40 114 -8 49 -20 86 -42 120 -17 27 -31 56 -31 64 0 9 -14 36 -30 61 -16 25 -35 61 -41 80 -14 41 -52 106 -94 159 -17 21 -51 71 -75 112 -24 41 -58 92 -75 114 -17 22 -48 68 -69 102 -21 35 -46 65 -59 69 -12 4 -72 56 -133 115 -62 60 -116 109 -120 109 -5 0 -39 29 -76 64 -50 47 -79 66 -113 75 -32 8 -61 26 -98 62 -54 53 -84 72 -129 83 -14 3 -39 17 -55 30 -15 12 -51 31 -79 40 -29 9 -59 25 -68 35 -21 23 -142 65 -163 57 -9 -4 -32 3 -51 15 -53 31 -133 59 -169 59 -17 0 -49 10 -70 22 -68 41 -123 55 -191 50 -49 -3 -73 0 -113 17 l-51 22 -231 -6 c-128 -3 -262 -5 -299 -5 -36 0 -79 -5 -95 -11 -36 -14 -123 -27 -308 -45 -241 -23 -288 -30 -327 -47 -22 -10 -63 -17 -100 -17 -35 0 -90 -7 -123 -15 -33 -8 -80 -15 -105 -15 -25 0 -65 -9 -89 -20 -25 -12 -65 -20 -95 -20 -28 0 -78 -5 -111 -11 -33 -6 -89 -14 -125 -18 -36 -5 -79 -15 -95 -23 -20 -10 -75 -17 -160 -21 -71 -3 -146 -11 -165 -17 -19 -5 -85 -10 -146 -10 -77 0 -123 -5 -147 -15 -28 -11 -78 -15 -209 -15 l-172 0 -49 53 c-27 28 -58 72 -68 96 -11 24 -33 59 -48 77 -16 18 -33 43 -37 56 -13 42 -88 160 -113 177 -13 9 -44 35 -70 58 -26 23 -60 45 -76 48 -17 4 -48 25 -70 45 -46 44 -53 45 -305 59 l-155 9 -39 -25 c-24 -16 -62 -28 -101 -33 -60 -7 -94 -19 -125 -45 -8 -6 -35 -19 -60 -28 -25 -10 -70 -34 -101 -55 -31 -20 -76 -50 -100 -67 -59 -39 -197 -173 -216 -209 -8 -16 -43 -59 -78 -96 -43 -46 -64 -77 -69 -103 -4 -20 -22 -54 -41 -77 -19 -23 -37 -58 -41 -78 -4 -20 -12 -44 -19 -52 -7 -8 -24 -40 -38 -71 -31 -71 -33 -71 -158 -43 -57 13 -126 23 -152 24 -28 0 -65 9 -90 21 l-42 22 -315 1 -315 1 -95 -34 c-173 -61 -263 -50 -290 36 -7 21 -23 56 -37 77 -14 22 -28 58 -30 80 -4 28 -16 52 -38 76 -18 19 -35 47 -39 62 -3 15 -22 42 -41 59 -19 18 -55 64 -79 103 -47 75 -148 166 -215 193 -20 8 -58 37 -86 63 -55 54 -145 96 -279 131 -43 11 -90 28 -104 37 -18 12 -58 19 -127 24 -55 3 -118 9 -140 12 -22 3 -53 1 -70 -4z m203 -389 c23 -5 59 -20 80 -34 20 -14 55 -30 78 -36 22 -6 49 -20 59 -31 10 -11 41 -27 68 -35 48 -14 106 -60 227 -179 72 -70 149 -185 176 -259 7 -21 23 -52 36 -69 12 -17 25 -53 29 -80 6 -37 25 -75 74 -148 79 -117 76 -115 140 -125 106 -18 356 3 388 32 37 35 63 43 130 43 35 0 86 7 113 15 63 19 214 19 277 0 29 -9 88 -14 145 -14 107 0 164 -10 234 -41 26 -11 83 -25 128 -31 45 -5 115 -23 156 -39 94 -38 116 -37 184 3 43 26 58 42 70 74 9 23 25 52 37 65 23 25 53 119 53 166 0 16 9 41 20 55 11 14 27 45 36 69 8 23 23 52 33 63 10 11 42 59 70 106 64 107 216 254 306 295 22 10 53 29 68 41 15 12 44 25 65 28 20 3 67 21 103 40 59 31 76 35 140 35 78 0 83 -2 170 -68 68 -52 219 -260 219 -302 0 -9 11 -31 25 -50 14 -19 34 -59 46 -89 11 -31 26 -63 34 -71 30 -35 55 -101 55 -148 0 -35 6 -57 24 -80 16 -22 26 -53 30 -96 5 -45 16 -75 37 -107 16 -24 29 -48 29 -54 0 -5 14 -38 32 -72 47 -93 117 -120 218 -85 l55 19 37 74 c44 86 47 121 13 171 -14 21 -29 62 -35 102 -6 36 -15 78 -21 93 -26 70 24 105 150 103 121 -2 513 19 545 30 16 6 46 10 67 10 20 0 61 9 91 20 35 13 102 23 198 30 214 16 242 20 275 44 25 18 50 22 155 28 190 10 241 18 273 42 24 18 49 22 150 28 141 7 259 22 278 34 51 32 643 56 794 33 39 -6 91 -12 117 -14 28 -2 60 -12 77 -24 42 -30 106 -51 156 -51 29 0 47 -6 59 -19 23 -26 99 -51 151 -51 29 0 47 -6 60 -20 10 -11 42 -27 71 -36 41 -12 63 -26 96 -63 46 -51 93 -81 127 -81 11 0 32 -11 47 -25 15 -14 51 -32 80 -42 48 -15 70 -34 221 -188 92 -94 178 -186 190 -205 53 -83 92 -136 112 -154 11 -11 21 -27 21 -37 0 -9 16 -36 35 -59 19 -23 35 -48 35 -55 0 -7 15 -33 33 -57 89 -121 100 -140 104 -192 6 -77 10 -90 41 -129 24 -29 31 -51 36 -107 6 -55 13 -77 34 -102 24 -28 28 -43 34 -127 4 -68 14 -116 34 -166 16 -42 30 -102 34 -150 5 -65 12 -89 38 -129 17 -27 37 -65 43 -84 21 -62 42 -90 214 -280 41 -46 75 -89 75 -96 0 -7 9 -21 20 -31 11 -10 28 -41 39 -70 11 -29 31 -69 45 -89 15 -23 27 -58 31 -94 4 -31 20 -90 36 -130 l29 -74 0 -240 0 -241 -41 -121 c-23 -67 -42 -142 -44 -168 -1 -29 -10 -57 -24 -74 -11 -14 -26 -45 -32 -67 -7 -25 -27 -56 -54 -83 -40 -38 -43 -46 -38 -77 4 -29 1 -40 -20 -59 -95 -88 -151 -145 -171 -174 -12 -18 -35 -43 -49 -55 -15 -11 -37 -39 -48 -61 -11 -22 -34 -47 -51 -56 -17 -9 -63 -46 -102 -81 -80 -72 -192 -147 -251 -169 -22 -9 -55 -26 -73 -40 -20 -14 -55 -27 -87 -31 -32 -5 -66 -17 -87 -32 -18 -14 -59 -31 -91 -38 -33 -7 -71 -24 -89 -39 -28 -24 -43 -28 -127 -33 -72 -5 -115 -14 -171 -37 l-76 -30 -154 -7 c-89 -4 -249 -2 -375 5 l-220 11 -55 25 c-35 16 -80 27 -123 30 -38 2 -77 9 -87 14 -10 6 -35 10 -55 10 -24 0 -47 8 -65 24 -21 17 -46 25 -96 30 -51 5 -77 14 -102 33 -25 18 -53 28 -108 34 -58 8 -85 17 -115 39 -22 16 -55 32 -72 35 -18 4 -43 17 -57 30 -14 12 -48 30 -75 39 -36 12 -67 32 -105 72 -41 41 -68 59 -106 70 -68 20 -378 315 -395 376 -5 21 -28 58 -49 84 -22 25 -40 53 -40 63 0 9 -11 32 -25 51 -13 18 -30 49 -36 69 -7 20 -24 54 -40 76 -19 28 -29 58 -34 102 -5 45 -15 75 -37 109 l-31 46 7 141 6 141 27 34 c43 56 160 172 174 172 8 0 39 16 71 35 62 39 166 55 260 41 71 -11 251 -159 279 -230 7 -17 21 -44 32 -59 10 -15 27 -51 38 -79 10 -28 28 -61 39 -73 14 -15 24 -45 30 -85 5 -34 10 -64 12 -65 171 -182 255 -257 304 -271 28 -8 60 -24 69 -34 10 -11 41 -27 69 -35 27 -8 59 -24 71 -35 26 -25 127 -60 172 -60 19 0 47 -10 63 -22 18 -13 55 -25 92 -30 35 -5 90 -13 123 -17 33 -5 87 -18 119 -30 l60 -22 195 5 c236 6 312 15 341 41 15 13 43 21 91 26 55 5 79 12 112 36 29 21 59 32 96 36 40 5 62 14 82 33 29 28 70 54 150 98 57 31 166 157 175 202 3 18 22 48 45 70 34 34 39 44 39 85 0 31 8 61 21 84 17 28 23 59 27 129 6 118 -11 180 -84 303 l-55 92 -50 16 -50 17 -61 -18 c-48 -15 -66 -26 -85 -54 -13 -19 -35 -50 -48 -69 -37 -50 -34 -65 21 -150 24 -36 37 -137 25 -193 -13 -58 -185 -258 -222 -258 -9 0 -34 -12 -55 -27 -92 -62 -309 -127 -419 -125 -135 3 -262 12 -312 22 -32 7 -83 10 -114 6 -48 -5 -61 -2 -84 15 -37 30 -118 59 -164 59 -23 0 -48 8 -64 21 -15 11 -46 27 -71 35 -24 8 -52 24 -62 35 -10 11 -41 26 -70 35 -72 21 -150 114 -189 225 -9 24 -22 51 -31 60 -8 9 -24 40 -35 69 -11 29 -31 67 -44 85 -15 18 -25 45 -25 64 0 50 -20 78 -127 182 -67 66 -110 99 -131 104 -18 4 -45 17 -60 30 -15 12 -47 29 -72 36 -25 7 -56 20 -70 28 -19 13 -64 17 -218 19 l-194 4 -36 -25 c-25 -16 -59 -26 -102 -30 -42 -5 -76 -15 -100 -31 -19 -13 -51 -33 -71 -44 -33 -20 -76 -64 -171 -175 -20 -23 -40 -56 -44 -72 -4 -17 -17 -43 -30 -58 -29 -35 -66 -151 -58 -182 3 -12 -1 -36 -9 -51 -11 -21 -16 -72 -18 -179 l-4 -150 23 -31 c16 -21 26 -53 32 -98 6 -47 16 -79 35 -106 18 -26 29 -59 35 -103 9 -71 48 -146 140 -267 79 -104 89 -147 44 -195 -30 -33 -79 -32 -156 4 -56 25 -231 32 -283 12 -20 -8 -77 -11 -170 -9 l-140 3 -29 -22 c-16 -13 -41 -23 -56 -23 -15 0 -49 -7 -76 -15 -27 -8 -66 -15 -87 -15 -22 0 -51 -8 -65 -18 -15 -11 -42 -24 -60 -30 -18 -6 -45 -20 -61 -31 -15 -11 -49 -28 -77 -39 -27 -10 -67 -31 -88 -45 -21 -15 -47 -27 -56 -27 -9 0 -35 -12 -56 -26 -21 -15 -56 -33 -78 -41 -22 -7 -61 -27 -86 -43 -26 -17 -53 -30 -60 -30 -16 0 -111 -53 -178 -101 -36 -25 -69 -39 -102 -44 -27 -4 -60 -15 -72 -25 -47 -36 -108 -60 -153 -60 -34 0 -55 -7 -79 -25 l-33 -25 -165 0 -165 0 -44 30 c-24 16 -61 35 -83 41 -106 29 -297 312 -299 444 0 45 40 134 81 178 15 15 33 47 42 69 10 29 29 52 60 74 25 18 65 50 90 72 25 22 70 52 100 66 30 14 62 30 70 35 8 5 33 18 55 29 22 10 58 28 80 40 22 12 60 30 85 41 25 12 59 32 75 45 l30 24 -2 75 c-1 86 -10 106 -59 143 -72 55 -242 42 -343 -26 -28 -19 -57 -30 -78 -30 -36 0 -103 -26 -103 -40 0 -4 -44 -34 -97 -66 -140 -85 -327 -272 -355 -355 -21 -62 -63 -108 -101 -110 -95 -5 -125 -9 -147 -17 -14 -5 -101 -7 -194 -5 l-168 4 -63 -22 -62 -23 -54 21 -54 21 -161 -6 c-111 -3 -172 -1 -195 7 -19 6 -106 14 -194 17 -88 2 -176 9 -195 14 -19 6 -54 10 -78 10 -24 0 -61 9 -84 21 -23 12 -76 25 -122 30 -171 19 -214 27 -242 42 -36 20 -144 47 -189 47 -19 0 -37 5 -41 11 -13 21 -109 59 -152 59 -28 0 -55 8 -80 24 -20 13 -53 29 -73 35 -19 6 -53 29 -74 51 -33 34 -45 40 -80 40 -35 0 -46 6 -91 52 -76 80 -151 136 -195 148 -35 10 -46 21 -89 88 -27 42 -76 109 -109 147 -81 93 -85 101 -100 165 -6 30 -24 74 -40 97 -18 27 -30 61 -34 96 -4 30 -16 76 -28 102 -12 26 -22 64 -24 84 -2 20 -8 90 -14 156 -13 149 -13 472 1 665 5 80 11 183 12 230 2 62 9 97 24 130 14 28 22 65 22 100 0 30 7 86 15 125 8 38 15 105 15 148 0 60 5 87 22 120 17 34 22 68 28 187 6 122 12 156 34 215 26 68 41 138 54 265 5 42 15 76 29 95 25 34 57 140 48 155 -4 6 4 27 17 48 34 54 66 135 93 236 20 75 31 97 65 131 33 33 40 48 40 79 0 34 7 44 54 88 44 40 57 59 66 98 6 27 20 56 31 66 11 10 29 33 40 51 66 106 208 161 347 134z m-1134 -4292 c14 -11 33 -33 40 -47 8 -15 87 -99 175 -187 148 -146 198 -187 301 -244 19 -10 44 -28 54 -40 11 -12 38 -26 60 -32 23 -6 61 -24 85 -40 25 -16 52 -29 62 -29 33 0 73 -44 66 -72 -7 -27 -108 -93 -175 -116 -19 -7 -49 -25 -67 -40 -19 -17 -50 -32 -74 -36 -24 -3 -54 -15 -69 -26 -47 -34 -202 -91 -296 -108 -110 -21 -380 -22 -476 -4 -110 22 -220 100 -248 175 -12 30 -32 70 -45 90 -49 72 -47 231 4 304 16 23 29 46 29 51 0 6 17 32 38 59 20 26 45 60 55 76 10 15 37 41 60 57 23 16 49 36 57 43 8 8 33 26 55 39 22 14 47 33 55 43 8 9 37 28 65 42 27 13 66 33 85 43 45 25 71 25 104 -1z",
32
+ eyeL: "M5070 3576 c-84 -53 -148 -97 -196 -138 -90 -76 -244 -86 -327 -23 -25 19 -54 35 -65 35 -27 0 -108 57 -138 96 -50 65 -147 72 -236 17 -68 -42 -74 -51 -84 -121 l-6 -51 42 -66 c60 -96 203 -232 258 -246 23 -6 58 -24 77 -39 l34 -27 118 -7 c65 -3 177 -2 249 2 l131 9 64 38 c35 21 93 67 129 101 36 35 77 68 93 73 15 6 32 23 38 38 6 16 25 43 42 61 28 29 32 39 31 90 -1 78 -10 109 -34 117 -11 3 -38 22 -61 41 -53 44 -88 44 -159 0z",
33
+ eyeR: "M7335 3567 c-73 -43 -101 -64 -180 -129 -75 -61 -228 -86 -297 -48 -18 10 -64 34 -103 53 -39 19 -93 56 -121 85 -41 40 -62 52 -106 62 l-55 13 -67 -38 c-75 -42 -82 -51 -91 -121 -9 -68 26 -127 153 -256 80 -81 102 -98 141 -108 25 -6 59 -23 74 -38 l28 -27 202 -7 c111 -4 225 -4 252 -1 64 7 157 63 242 143 35 33 74 66 88 72 14 6 36 31 50 55 14 23 30 43 34 43 17 0 34 62 32 117 -1 76 -6 88 -44 112 -18 12 -45 30 -62 41 -47 31 -91 25 -170 -23z",
34
+ nose: "M5730 2681 c-118 -6 -140 -13 -176 -53 -49 -53 -39 -108 29 -155 l40 -28 131 -3 c174 -5 196 2 236 76 30 56 34 102 8 102 -6 0 -32 13 -57 29 -58 37 -70 39 -211 32z",
35
+ };
36
+ // shared trace transform (potrace y-flip) — maps the path data into the 1744x720 frame
37
+ const TT = 'transform="translate(0,720) scale(0.1,-0.1)"';
38
+
39
+
40
+ /* ---- MASTIFF paths (TRACED — layered potrace from a local-only reference image,
41
+ a clean flat-tone illustration of a Spanish mastiff curled
42
+ asleep). Shared potrace frame 3024x2136, transform MTT below. Three traced layers
43
+ (silhouette / dark-brown mask+ears / chunky outline) plus positioned salmon-blush
44
+ overlays. Fixed "Fawn" look (ignores the recolour palette). The grass oval in the
45
+ reference is dropped (the stage draws its own).
46
+ sil = full body silhouette (fur) — TRACED, drawn under MTT
47
+ brown = the dark-brown mask over the muzzle + droopy ears + brow ridge +
48
+ faint haunch stripe ticks — TRACED, drawn under MTT, clipped to sil
49
+ outline= the chunky near-black hand-drawn line: body contour, face features
50
+ (closed-eye arcs, nose, brow furrow), the black harness strap + loop,
51
+ paw lines — TRACED, drawn under MTT on top of everything
52
+ blush = two salmon cheek ovals (positioned, no hard edge in the source) */
53
+ const MASTIFF_P = {
54
+ sil: "M16150 17094 c-159 -30 -207 -47 -295 -104 -99 -64 -126 -68 -625 -74 -478 -6 -582 -16 -682 -67 -86 -44 -291 -66 -718 -79 -317 -9 -356 -14 -526 -65 -123 -37 -261 -59 -470 -75 -188 -14 -236 -25 -329 -75 -86 -47 -136 -59 -305 -74 l-105 -10 -90 -45 c-119 -60 -249 -86 -432 -86 -31 0 -86 -10 -126 -24 -204 -68 -342 -100 -555 -131 -168 -24 -191 -32 -334 -111 -31 -17 -78 -31 -145 -40 -128 -19 -179 -36 -247 -85 -43 -31 -77 -45 -144 -60 -154 -36 -162 -39 -216 -88 -55 -50 -58 -51 -181 -67 -63 -8 -79 -17 -136 -69 -47 -44 -75 -56 -172 -75 -43 -9 -73 -24 -120 -59 -116 -89 -255 -118 -621 -131 -324 -12 -410 -20 -666 -65 -237 -41 -259 -44 -435 -54 -152 -8 -167 -13 -235 -78 -28 -26 -54 -37 -120 -53 -165 -40 -202 -53 -248 -92 -32 -26 -77 -48 -150 -72 -70 -24 -118 -47 -148 -71 -24 -20 -71 -47 -104 -60 -67 -26 -113 -53 -178 -102 -24 -18 -48 -33 -52 -33 -32 0 -131 -50 -192 -96 -102 -77 -133 -84 -393 -90 -247 -6 -264 -10 -337 -65 -55 -41 -85 -54 -203 -88 -44 -12 -91 -35 -124 -60 -30 -22 -75 -48 -100 -57 -25 -9 -59 -21 -76 -27 -16 -6 -53 -32 -80 -58 -32 -30 -85 -64 -145 -92 -52 -24 -104 -54 -115 -67 -11 -12 -49 -37 -85 -55 -36 -18 -90 -55 -121 -82 -58 -51 -83 -64 -159 -83 -41 -11 -130 -86 -130 -110 0 -4 -24 -20 -52 -35 -29 -16 -73 -48 -98 -71 -55 -50 -76 -62 -154 -83 l-60 -16 -44 -58 c-29 -38 -61 -66 -92 -82 -27 -14 -64 -43 -82 -66 -21 -26 -60 -55 -111 -81 -43 -23 -99 -58 -123 -78 -25 -20 -70 -46 -101 -56 -41 -14 -73 -35 -117 -78 -34 -32 -95 -78 -136 -102 -65 -38 -79 -51 -104 -100 -16 -31 -62 -92 -102 -135 -56 -61 -77 -92 -93 -139 -11 -34 -36 -83 -56 -110 -48 -65 -72 -123 -89 -212 -8 -41 -36 -137 -63 -214 l-48 -139 1 -95 c0 -120 19 -219 54 -290 31 -62 41 -104 71 -275 17 -101 27 -133 64 -201 26 -48 54 -120 69 -177 14 -54 46 -138 75 -194 31 -60 59 -133 72 -188 41 -173 62 -236 92 -273 50 -64 66 -107 78 -208 11 -98 28 -149 74 -209 68 -91 79 -208 70 -785 -8 -587 3 -678 90 -744 18 -14 47 -51 65 -83 36 -64 41 -69 85 -82 17 -5 86 -25 155 -46 261 -78 280 -79 504 -20 72 19 139 35 148 35 44 0 130 44 192 99 131 116 231 110 267 -17 6 -23 28 -61 49 -85 50 -57 59 -76 75 -163 17 -85 24 -102 72 -161 39 -48 53 -88 53 -158 l0 -50 -62 -61 c-35 -34 -99 -101 -143 -148 -44 -47 -108 -114 -141 -148 -42 -43 -64 -74 -69 -98 -10 -48 -32 -88 -71 -132 -52 -58 -80 -124 -97 -230 -9 -54 -35 -145 -58 -205 -43 -112 -79 -280 -79 -367 0 -27 -5 -98 -11 -156 l-12 -105 51 -140 c28 -77 60 -178 71 -225 27 -112 72 -226 117 -294 20 -30 53 -97 73 -148 l37 -93 55 -36 c30 -20 67 -55 83 -77 15 -22 44 -51 65 -65 20 -14 66 -50 102 -81 35 -31 93 -72 129 -91 36 -19 82 -52 102 -74 21 -23 64 -54 97 -70 32 -17 80 -48 105 -70 34 -30 69 -47 131 -66 73 -22 92 -33 139 -79 l54 -54 79 -16 c110 -24 141 -35 198 -66 28 -16 93 -43 145 -61 52 -17 115 -40 140 -51 24 -11 78 -26 119 -34 42 -7 107 -29 146 -47 82 -39 129 -51 279 -72 97 -13 118 -20 177 -56 88 -53 133 -66 298 -84 161 -19 222 -33 316 -73 99 -41 181 -59 330 -72 163 -13 280 -34 360 -64 93 -35 202 -55 370 -67 189 -13 1223 -17 1490 -5 l200 9 54 -23 c30 -13 80 -47 112 -74 32 -28 80 -62 106 -76 26 -14 73 -41 103 -61 30 -20 100 -60 155 -88 55 -29 125 -68 155 -87 30 -19 100 -49 155 -66 55 -17 144 -53 197 -80 89 -45 210 -77 294 -78 5 0 39 -17 75 -39 83 -50 172 -77 284 -86 138 -11 219 -31 298 -74 77 -43 171 -64 337 -76 47 -3 171 -15 275 -26 521 -53 819 -53 1310 1 417 47 413 46 502 97 43 24 110 53 148 65 88 26 119 42 175 89 25 20 82 56 128 78 45 23 99 56 120 74 20 18 56 45 79 60 28 17 54 47 74 82 41 74 60 85 137 85 l63 0 24 -55 c14 -30 32 -85 42 -123 17 -71 21 -76 155 -193 81 -71 87 -72 255 -77 194 -6 264 6 368 62 57 31 109 50 180 65 71 15 130 36 210 75 97 49 123 57 223 71 140 20 209 38 292 75 81 36 138 47 318 60 79 6 196 18 260 27 275 40 1230 2 1562 -62 47 -9 164 -32 260 -50 96 -19 243 -39 325 -45 154 -12 260 -33 465 -94 93 -27 145 -36 275 -46 177 -13 262 -27 408 -71 181 -53 282 -65 662 -79 550 -21 1304 -8 1505 25 47 8 143 33 214 55 95 30 172 46 290 61 195 24 224 31 301 74 39 21 91 39 145 49 133 25 225 53 300 91 42 21 121 47 202 66 87 20 166 46 228 76 52 24 156 65 230 90 138 46 204 75 215 93 11 17 96 56 170 79 51 15 85 33 124 66 29 25 85 60 125 79 39 18 98 53 131 78 33 25 85 58 115 73 30 15 71 42 91 60 19 17 72 51 117 75 45 24 103 61 129 83 26 21 67 50 92 64 26 15 69 47 96 73 28 26 71 61 96 78 39 26 192 177 571 561 35 35 74 81 88 102 14 20 47 56 73 79 26 24 57 61 69 83 11 22 42 63 68 91 31 33 63 84 89 141 23 50 58 113 77 141 20 29 49 91 65 139 16 48 41 101 55 118 29 35 66 105 84 162 7 22 32 66 55 97 44 59 59 92 94 214 12 40 35 89 54 115 52 68 65 99 80 196 16 94 40 155 76 187 33 30 59 138 71 286 11 155 55 464 96 685 24 129 44 375 51 605 8 323 -11 556 -106 1255 -16 121 -34 289 -40 374 -13 179 -30 253 -77 337 -40 72 -60 154 -70 279 -8 108 -22 151 -70 217 -44 60 -70 137 -79 243 -9 101 -22 131 -77 186 l-45 44 -13 75 c-13 82 -44 161 -85 214 -14 18 -39 75 -55 125 -16 49 -53 136 -81 192 -32 66 -61 143 -80 216 -33 128 -52 170 -103 232 -20 23 -42 64 -50 90 -21 73 -51 123 -90 154 -24 18 -49 56 -76 112 -22 47 -54 99 -71 116 -17 17 -45 64 -64 104 -21 47 -44 81 -65 96 -18 13 -59 62 -91 109 -33 47 -74 105 -93 129 -18 24 -41 66 -51 93 -12 35 -32 61 -67 91 -28 23 -59 60 -70 82 -11 21 -44 64 -73 95 -28 30 -71 80 -94 110 -23 30 -168 184 -322 341 -154 158 -293 305 -309 328 -17 23 -35 41 -40 41 -6 0 -47 35 -93 78 -45 43 -102 91 -126 107 -25 17 -73 56 -107 87 -35 31 -88 69 -119 83 -30 15 -66 41 -80 59 -13 18 -53 47 -89 65 -35 17 -89 54 -119 80 -31 27 -82 65 -114 84 -33 20 -78 58 -100 85 -32 37 -55 54 -100 70 -32 12 -77 37 -98 55 -22 19 -74 51 -115 72 -48 24 -92 55 -121 87 -35 38 -60 55 -114 74 -38 14 -89 40 -114 58 -62 45 -93 60 -191 92 -91 29 -160 61 -200 94 -14 11 -69 34 -124 51 -80 25 -107 39 -145 73 -58 55 -74 63 -158 80 -95 20 -113 28 -167 75 -26 23 -57 43 -69 46 -182 40 -226 55 -291 99 -66 45 -100 58 -244 90 -53 11 -90 28 -136 60 -69 47 -88 52 -371 97 -100 16 -153 31 -230 64 -127 54 -191 72 -285 80 -99 9 -181 30 -250 65 -78 40 -145 56 -295 75 -171 21 -203 30 -310 81 l-90 44 -220 15 c-262 18 -291 24 -419 82 l-98 44 -122 9 c-66 5 -202 14 -301 20 -226 13 -364 34 -480 70 -181 57 -267 63 -1106 80 -544 11 -583 14 -674 62 -166 86 -250 98 -675 103 -195 2 -366 1 -380 -1z",
55
+ brown: "M16280 17159 c-187 -8 -375 -62 -475 -135 -92 -67 -144 -74 -635 -80 -462 -5 -525 -11 -755 -70 -133 -35 -306 -54 -565 -64 -227 -9 -589 -42 -612 -56 -8 -5 -146 -35 -288 -63 -52 -11 -153 -25 -225 -31 -129 -12 -221 -35 -282 -70 -46 -27 -166 -57 -256 -65 -84 -7 -143 -23 -300 -80 -79 -28 -127 -38 -241 -49 -153 -15 -344 -57 -681 -150 -49 -14 -112 -28 -140 -31 -82 -10 -227 -55 -277 -86 -60 -36 -146 -65 -218 -73 -86 -9 -151 -32 -218 -77 -47 -32 -84 -47 -163 -65 -106 -25 -149 -46 -186 -87 -19 -23 -126 -57 -178 -57 -21 0 -113 -47 -147 -75 -15 -13 -49 -31 -75 -40 -26 -9 -57 -21 -68 -25 -11 -5 -35 -13 -54 -19 -18 -6 -54 -24 -80 -39 -152 -94 -266 -118 -581 -125 -378 -9 -617 -31 -785 -74 -77 -19 -194 -41 -260 -49 -214 -25 -242 -31 -301 -66 -96 -57 -137 -75 -199 -88 -104 -21 -159 -42 -211 -81 -43 -33 -153 -79 -188 -79 -19 0 -89 -41 -131 -77 -22 -18 -51 -37 -65 -40 -35 -9 -135 -62 -197 -105 -29 -20 -74 -44 -100 -52 -27 -9 -79 -39 -118 -66 -38 -27 -88 -59 -109 -71 l-40 -21 -231 -9 c-253 -9 -304 -20 -390 -78 -52 -35 -120 -66 -166 -76 -47 -10 -138 -52 -169 -78 -14 -12 -46 -30 -70 -41 -25 -10 -61 -26 -80 -34 -19 -8 -61 -37 -93 -63 -32 -27 -63 -49 -69 -49 -18 0 -153 -72 -178 -95 -14 -12 -50 -38 -80 -56 -30 -18 -82 -54 -115 -79 -60 -47 -155 -100 -179 -100 -7 0 -42 -28 -78 -62 -36 -35 -99 -85 -139 -111 -41 -26 -92 -61 -114 -77 -22 -16 -58 -33 -80 -39 -45 -11 -91 -51 -117 -100 -12 -21 -33 -39 -65 -53 -27 -11 -66 -37 -88 -59 -22 -21 -76 -57 -120 -80 -44 -23 -105 -60 -135 -84 -30 -23 -80 -54 -110 -68 -30 -14 -80 -49 -110 -77 -59 -55 -118 -97 -162 -117 -16 -7 -40 -34 -58 -66 -17 -30 -62 -90 -100 -133 -38 -44 -81 -103 -96 -132 -15 -29 -39 -70 -54 -90 -33 -46 -69 -128 -108 -247 -17 -49 -41 -123 -55 -163 -76 -216 -73 -499 8 -697 21 -50 48 -144 61 -212 26 -131 38 -169 89 -278 18 -38 47 -108 63 -155 59 -166 74 -206 103 -263 30 -60 51 -123 74 -217 17 -69 50 -143 71 -160 25 -22 42 -61 54 -130 23 -133 44 -207 82 -283 72 -144 80 -297 52 -975 -4 -106 -2 -175 11 -270 23 -167 41 -214 110 -281 31 -30 58 -64 61 -76 10 -41 103 -88 329 -167 l90 -32 130 1 c110 1 142 5 210 26 252 80 349 127 411 197 42 46 86 66 118 54 22 -8 63 -75 70 -113 3 -19 22 -58 41 -85 34 -51 67 -131 80 -195 4 -19 23 -64 41 -100 19 -36 37 -89 40 -118 l6 -52 -53 -58 c-30 -31 -81 -85 -115 -118 -33 -34 -71 -77 -84 -96 -13 -19 -41 -49 -63 -68 -24 -21 -53 -63 -74 -108 -20 -40 -46 -84 -59 -99 -13 -14 -31 -37 -39 -52 -8 -15 -19 -34 -24 -42 -24 -37 -44 -91 -66 -170 -12 -47 -39 -131 -58 -187 -37 -105 -48 -164 -72 -391 -11 -109 -19 -145 -45 -201 -35 -76 -36 -67 15 -206 18 -49 39 -119 45 -155 7 -36 17 -89 22 -118 6 -35 22 -68 46 -100 20 -26 45 -78 58 -118 29 -94 39 -111 94 -164 36 -34 51 -58 64 -100 17 -61 45 -94 93 -110 21 -8 37 -23 48 -48 27 -62 30 -66 77 -97 25 -16 56 -45 69 -64 33 -48 58 -71 95 -87 18 -7 45 -25 62 -39 16 -14 47 -33 68 -43 22 -10 57 -29 79 -43 22 -14 61 -33 86 -42 29 -11 50 -27 57 -42 16 -34 44 -50 157 -85 88 -28 105 -37 140 -77 l40 -44 97 -23 c90 -21 113 -32 193 -90 11 -8 74 -31 139 -51 85 -26 130 -45 154 -66 43 -38 64 -46 175 -65 55 -9 115 -28 149 -45 40 -20 85 -33 141 -40 71 -9 141 -30 237 -71 73 -31 144 -50 220 -58 55 -5 113 -20 163 -40 107 -43 177 -56 417 -81 180 -18 212 -24 265 -49 76 -36 149 -55 295 -74 110 -15 220 -22 775 -47 307 -14 916 -4 1055 17 176 26 259 13 294 -46 9 -17 32 -37 49 -47 37 -18 77 -47 164 -119 38 -30 84 -57 117 -67 30 -10 74 -34 97 -53 49 -41 138 -88 219 -116 30 -10 71 -29 90 -43 64 -44 171 -80 335 -114 61 -13 117 -33 175 -64 75 -39 97 -45 190 -56 201 -22 286 -41 335 -72 73 -46 157 -67 363 -89 153 -16 209 -27 271 -50 43 -15 105 -34 137 -40 92 -17 634 -28 957 -19 307 8 358 15 462 63 62 28 82 32 260 51 166 17 213 32 270 84 44 41 47 42 135 62 85 19 135 44 166 83 20 25 44 41 75 50 78 23 107 44 192 132 45 46 87 84 93 84 7 0 38 -15 69 -32 49 -28 60 -40 76 -82 20 -53 47 -87 94 -116 16 -10 38 -34 49 -54 25 -46 69 -63 198 -75 99 -9 378 0 458 15 105 19 198 55 213 80 10 17 85 39 197 58 47 8 117 27 155 41 143 55 183 67 300 89 208 41 297 55 410 66 61 6 146 18 190 26 168 31 272 43 319 37 26 -3 166 -6 310 -7 254 -1 674 -34 846 -67 85 -16 178 -27 385 -44 153 -13 231 -26 400 -65 116 -27 259 -54 319 -60 61 -6 113 -13 117 -16 4 -2 70 -8 147 -14 94 -6 157 -15 193 -29 30 -10 79 -28 109 -39 81 -30 240 -49 547 -67 150 -8 337 -22 415 -30 79 -9 184 -20 233 -25 185 -20 588 -4 770 30 28 5 154 14 280 20 346 15 533 45 640 100 21 11 58 20 81 20 165 0 429 69 540 140 17 11 109 40 205 65 120 31 203 59 268 91 51 25 132 59 178 75 47 17 115 50 152 74 42 28 91 50 135 61 40 10 87 31 115 50 63 45 115 71 184 90 40 11 76 31 117 65 35 29 94 64 142 84 49 21 99 51 123 73 22 21 63 47 90 57 79 28 124 54 168 95 23 21 72 51 108 68 43 19 76 43 95 66 16 20 54 51 85 67 31 17 87 63 128 105 39 41 91 83 116 95 29 14 57 39 80 71 20 27 50 57 68 66 18 9 55 41 82 71 28 29 67 64 87 77 21 13 45 39 54 56 9 18 41 58 72 88 32 31 68 75 82 99 14 24 56 78 93 119 38 40 79 97 91 124 18 41 31 55 67 72 39 19 47 28 70 86 15 38 40 79 62 100 44 43 132 247 143 330 4 30 19 80 34 110 15 30 33 73 40 95 7 22 30 63 50 90 49 65 55 78 86 177 14 45 43 113 64 149 48 81 75 150 84 210 10 66 37 135 79 198 26 39 38 69 42 110 3 31 10 76 16 101 5 25 16 92 23 150 8 58 28 159 45 225 17 66 31 140 31 165 0 25 7 81 15 125 64 348 80 973 37 1415 -40 416 -60 565 -96 730 -14 63 -30 165 -36 225 -6 61 -15 130 -20 155 -5 25 -14 74 -20 109 -7 35 -15 71 -20 80 -45 82 -86 215 -95 306 -9 87 -37 170 -85 255 -29 50 -41 88 -54 165 -23 132 -32 160 -67 200 -36 40 -56 87 -81 185 -10 41 -40 120 -68 175 -43 89 -85 186 -126 297 -7 20 -27 65 -44 100 -17 34 -45 106 -62 158 -36 113 -61 165 -97 205 -35 39 -71 101 -71 124 0 21 -40 83 -81 127 -28 29 -88 137 -89 159 0 6 -24 37 -53 70 -30 34 -58 78 -65 100 -6 22 -33 65 -60 95 -27 30 -73 91 -102 135 -30 44 -64 93 -77 109 -13 16 -35 51 -49 77 -13 27 -41 63 -61 81 -57 52 -83 81 -89 103 -7 23 -60 91 -118 152 -21 23 -51 59 -65 80 -15 21 -62 74 -105 118 -43 44 -82 85 -87 90 -14 16 -105 110 -254 261 -77 79 -156 160 -176 181 -19 21 -51 49 -70 62 -19 13 -47 41 -64 61 -16 20 -53 51 -81 69 -28 17 -64 44 -80 59 -51 48 -117 98 -176 131 -32 18 -68 45 -80 61 -13 16 -54 47 -92 70 -37 23 -92 61 -122 85 -29 24 -75 56 -101 71 -26 15 -73 51 -103 79 -30 29 -77 63 -105 76 -27 13 -70 40 -95 60 -25 19 -75 50 -112 68 -37 17 -91 53 -120 80 -31 27 -82 59 -122 76 -38 16 -84 43 -103 61 -30 29 -100 64 -183 93 -19 7 -93 41 -165 76 -71 36 -166 77 -210 92 -48 16 -94 40 -116 60 -38 35 -112 72 -142 73 -33 0 -128 39 -158 65 -49 40 -82 54 -194 79 -78 18 -114 31 -142 54 -47 37 -153 80 -219 88 -27 4 -59 13 -71 20 -12 8 -28 14 -35 14 -7 0 -36 15 -64 34 -28 19 -70 39 -95 46 -24 6 -66 18 -94 25 -27 7 -68 16 -90 20 -22 3 -87 20 -145 37 -58 17 -118 34 -135 39 -16 4 -77 24 -134 43 -58 20 -161 45 -230 57 -69 11 -138 27 -152 35 -57 29 -215 75 -307 89 -163 26 -251 45 -310 70 -106 43 -196 64 -307 71 -193 11 -363 40 -438 74 -98 44 -185 60 -432 75 -203 14 -382 37 -483 64 -147 40 -325 62 -567 71 -975 36 -1255 53 -1305 80 -12 6 -83 31 -157 56 -226 73 -500 99 -863 83z m655 -124 c72 -13 95 -21 123 -47 97 -84 122 -87 939 -98 750 -10 798 -13 846 -58 33 -31 84 -49 172 -61 96 -13 416 -31 575 -31 136 -1 258 -19 291 -43 13 -10 39 -28 57 -42 47 -34 103 -44 312 -55 356 -18 346 -16 417 -81 51 -47 87 -57 233 -64 214 -11 271 -25 325 -77 40 -39 105 -56 264 -69 170 -13 214 -24 254 -62 69 -65 97 -72 346 -91 192 -16 249 -32 306 -86 39 -38 102 -59 195 -66 102 -8 134 -19 165 -60 36 -47 93 -74 191 -89 141 -23 204 -50 204 -86 0 -19 75 -49 170 -68 90 -17 108 -24 128 -48 13 -15 31 -38 41 -50 10 -12 49 -30 92 -43 92 -27 124 -44 171 -86 38 -34 91 -53 208 -75 55 -11 71 -19 108 -55 44 -44 119 -76 212 -90 47 -8 74 -29 102 -82 12 -22 35 -40 80 -60 35 -16 78 -45 96 -65 39 -44 91 -72 152 -82 61 -9 82 -25 105 -75 16 -37 28 -47 82 -71 49 -22 66 -35 81 -66 17 -31 36 -46 113 -86 57 -30 108 -64 129 -88 25 -29 53 -46 99 -62 57 -19 68 -27 91 -66 19 -34 40 -52 85 -75 38 -20 69 -45 85 -69 14 -20 41 -47 60 -58 39 -24 190 -173 234 -232 16 -20 50 -53 76 -72 25 -19 59 -54 74 -77 15 -24 50 -59 76 -78 27 -19 59 -52 70 -72 12 -21 39 -48 61 -62 23 -13 58 -48 78 -77 21 -30 56 -66 78 -81 27 -19 49 -45 66 -82 20 -41 36 -59 68 -77 43 -24 56 -41 84 -112 11 -29 24 -42 59 -58 39 -17 47 -25 56 -62 25 -97 52 -148 103 -190 30 -25 61 -64 78 -99 16 -32 37 -59 49 -63 42 -13 78 -54 85 -98 9 -54 28 -91 76 -149 22 -26 52 -75 68 -108 36 -76 55 -97 92 -105 36 -8 44 -23 59 -105 16 -92 41 -141 88 -178 48 -39 48 -36 66 -179 21 -156 31 -186 81 -243 57 -64 61 -73 70 -145 10 -85 29 -124 81 -170 48 -42 63 -81 64 -159 0 -81 49 -166 95 -166 26 0 45 -43 45 -100 0 -92 19 -230 37 -263 9 -18 38 -52 65 -78 l48 -45 0 -75 c1 -202 31 -338 86 -390 41 -38 54 -107 64 -334 24 -568 56 -907 95 -1015 53 -147 59 -635 9 -832 -8 -32 -20 -84 -28 -115 -35 -139 -47 -269 -76 -800 -12 -204 -22 -244 -78 -308 -46 -52 -61 -96 -69 -207 -7 -97 -19 -125 -69 -163 -46 -36 -70 -91 -79 -185 l-7 -74 -49 -46 c-52 -48 -83 -107 -94 -180 -10 -61 -19 -76 -66 -105 -39 -25 -47 -38 -88 -144 -12 -30 -39 -78 -60 -105 -21 -28 -49 -82 -61 -121 -33 -100 -57 -145 -105 -190 -31 -29 -47 -55 -58 -95 l-16 -55 -48 -25 c-35 -19 -55 -39 -79 -81 -25 -42 -43 -60 -74 -74 -32 -14 -47 -30 -66 -68 -18 -35 -39 -57 -75 -79 -30 -19 -61 -50 -79 -79 -19 -31 -44 -56 -71 -69 -22 -12 -48 -35 -57 -52 -29 -52 -63 -88 -103 -108 -21 -11 -44 -30 -50 -43 -21 -41 -53 -69 -107 -93 -36 -16 -58 -34 -73 -59 -17 -28 -41 -45 -105 -77 -55 -26 -100 -57 -131 -89 -34 -35 -66 -56 -113 -74 -41 -16 -80 -39 -101 -61 -19 -20 -70 -53 -115 -74 -54 -25 -98 -55 -132 -88 -37 -37 -66 -55 -107 -68 -41 -13 -66 -30 -98 -64 -39 -42 -52 -49 -128 -69 -136 -36 -148 -41 -195 -82 -59 -51 -99 -67 -209 -85 -120 -19 -151 -30 -211 -70 -67 -45 -143 -70 -254 -83 -103 -13 -141 -26 -203 -70 -57 -41 -139 -68 -233 -76 -99 -8 -161 -27 -215 -67 -68 -49 -102 -58 -280 -73 -258 -22 -293 -29 -391 -80 -131 -67 -147 -68 -988 -68 -839 0 -884 3 -1022 62 -144 61 -217 73 -556 91 -192 10 -250 22 -268 52 -29 49 -136 71 -419 88 -234 14 -283 24 -373 70 -93 48 -136 55 -432 70 -292 15 -448 28 -620 51 -95 13 -229 22 -385 26 l-240 5 -165 -31 c-110 -22 -234 -37 -375 -47 -223 -15 -281 -27 -350 -74 -59 -40 -116 -57 -241 -69 -151 -15 -200 -31 -249 -81 -43 -44 -109 -70 -180 -70 -61 0 -155 -27 -192 -56 -92 -70 -225 -96 -370 -73 l-78 12 -48 53 c-36 39 -59 55 -92 63 -54 14 -61 26 -70 121 -8 89 -48 268 -70 310 -26 50 -47 54 -91 17 -22 -18 -55 -44 -74 -57 -67 -45 -110 -94 -131 -149 -27 -72 -31 -77 -92 -97 -30 -10 -70 -34 -97 -60 -26 -24 -78 -58 -116 -75 -50 -22 -84 -47 -124 -89 l-55 -58 -60 -6 c-99 -11 -163 -34 -205 -72 -24 -22 -60 -41 -92 -50 -147 -41 -1123 -58 -1695 -30 -366 19 -407 26 -483 87 -51 41 -121 57 -289 65 -170 8 -197 14 -258 64 -60 50 -138 75 -263 85 -111 8 -122 13 -175 72 -35 38 -48 45 -100 55 -127 23 -193 47 -241 89 -52 45 -87 63 -150 79 -23 6 -69 32 -103 59 -59 48 -93 64 -191 93 -34 10 -51 23 -73 56 -31 47 -72 71 -160 97 l-58 17 -371 -11 c-397 -12 -1201 -6 -1358 10 -79 8 -108 16 -175 49 -100 49 -191 65 -455 80 -206 12 -228 17 -327 81 -50 32 -125 48 -278 60 -212 16 -218 17 -276 54 -114 72 -151 85 -286 100 -143 15 -168 22 -221 65 -55 43 -102 60 -205 69 -102 10 -181 36 -250 82 -48 32 -141 62 -242 79 -158 27 -195 40 -219 79 -32 49 -42 56 -111 76 -57 17 -89 35 -168 98 -19 15 -65 37 -103 50 l-69 22 -23 43 c-18 32 -38 50 -81 72 -32 16 -72 44 -89 64 -17 19 -63 58 -104 87 -40 28 -98 75 -128 105 -30 29 -75 62 -100 72 l-45 19 -34 122 c-26 93 -44 135 -73 177 -56 78 -75 127 -88 229 -18 139 -38 204 -83 274 l-42 65 -3 163 c-4 185 6 235 64 340 44 79 61 150 73 298 12 146 12 148 68 187 49 33 77 83 88 158 10 73 24 98 60 110 37 12 70 44 80 80 11 37 23 49 78 76 41 21 52 33 69 75 18 42 29 54 69 74 70 36 79 54 79 158 0 110 -13 143 -78 189 l-50 37 -7 68 c-13 141 -29 178 -87 207 -30 15 -48 52 -48 99 0 60 -12 74 -73 81 -112 14 -246 -35 -297 -109 -37 -53 -56 -60 -225 -75 -66 -6 -154 -15 -195 -20 -119 -14 -423 30 -510 75 -16 9 -32 31 -43 63 -11 29 -40 75 -71 109 -29 32 -61 73 -70 91 l-17 34 0 562 c2 720 -6 802 -82 846 -45 27 -55 51 -62 157 -10 135 -36 211 -90 264 -50 48 -56 68 -75 244 -14 134 -26 169 -71 210 -56 50 -67 73 -74 150 -10 106 -31 171 -70 214 -42 46 -68 142 -84 301 -11 119 -41 228 -76 280 -36 52 -40 186 -7 227 53 67 75 145 87 308 9 107 23 142 75 184 40 32 62 82 75 171 8 52 25 75 78 102 30 15 44 32 63 74 30 69 136 174 212 211 39 19 58 36 73 64 24 48 51 66 115 78 80 15 106 29 159 84 29 30 67 58 90 66 50 17 72 36 96 84 11 21 30 42 42 46 12 5 37 15 56 22 26 10 39 24 57 65 25 58 23 57 158 82 73 14 104 34 122 78 12 27 28 41 78 65 61 29 75 43 95 101 11 29 44 43 132 53 69 7 108 31 145 86 33 48 43 54 100 69 40 10 56 20 144 87 23 18 68 42 99 53 66 25 88 43 106 86 16 39 34 49 100 58 99 14 145 35 178 82 33 48 57 59 152 69 83 9 137 35 164 78 30 49 29 49 296 57 356 11 366 14 461 124 12 14 39 29 60 34 22 5 62 14 89 21 59 14 95 38 113 74 16 33 49 51 122 66 60 13 78 23 156 87 41 33 68 46 125 58 70 17 159 59 159 77 0 19 100 58 179 69 118 16 144 30 175 92 20 39 53 48 181 48 66 0 235 9 375 20 140 10 327 24 415 30 501 32 539 36 596 63 30 14 81 30 114 36 33 6 91 16 130 22 53 9 75 18 92 38 83 93 72 87 165 99 105 13 145 32 163 76 21 50 37 58 138 68 109 11 162 34 198 87 l27 38 108 17 c150 23 196 40 241 88 53 56 62 59 187 69 142 11 202 31 266 85 63 54 46 50 300 69 283 21 359 37 417 86 52 46 95 59 194 59 41 0 136 5 210 11 155 12 209 30 234 79 22 42 40 47 223 60 189 12 233 24 324 86 l69 48 137 7 c541 31 532 30 622 85 87 54 149 61 555 68 498 8 610 22 690 86 63 50 84 52 615 60 400 6 505 10 547 23 56 16 123 53 123 68 0 17 46 39 111 53 96 21 744 22 864 1z M16508 16666 c-117 -35 -128 -50 -153 -202 -19 -118 -69 -323 -88 -362 -8 -15 -22 -58 -33 -97 -16 -61 -26 -78 -79 -132 -33 -34 -80 -84 -105 -112 -48 -55 -61 -61 -265 -113 -183 -47 -387 41 -630 273 -49 47 -121 106 -160 131 -38 26 -83 61 -100 78 -16 18 -54 48 -82 66 -29 19 -71 59 -93 89 -23 31 -50 61 -62 68 -12 6 -51 31 -87 55 -119 78 -202 80 -383 8 l-118 -46 -88 0 c-48 0 -128 -9 -177 -19 -50 -10 -152 -22 -228 -26 -137 -6 -215 -21 -252 -49 l-20 -15 29 -30 c17 -17 41 -52 55 -78 19 -34 41 -56 79 -78 29 -17 81 -60 116 -95 34 -36 100 -96 146 -135 47 -38 105 -92 130 -118 25 -27 130 -135 234 -240 104 -106 199 -209 212 -229 13 -20 43 -50 67 -66 43 -30 97 -97 97 -120 0 -7 15 -29 34 -49 18 -21 43 -57 55 -81 34 -67 91 -153 133 -201 24 -28 44 -65 54 -100 9 -31 40 -108 69 -171 39 -85 60 -147 80 -240 66 -313 66 -313 195 -442 75 -75 127 -118 167 -137 32 -16 69 -41 82 -55 14 -15 48 -37 77 -50 29 -14 78 -50 111 -83 32 -32 104 -98 161 -148 57 -49 112 -103 122 -121 11 -17 33 -48 50 -69 17 -22 47 -69 66 -107 20 -37 47 -74 60 -82 36 -25 73 -97 90 -177 25 -124 109 -267 177 -302 l38 -19 91 32 c51 17 121 47 157 65 95 47 162 65 281 75 119 10 187 30 220 65 l23 24 -6 78 c-4 56 -14 99 -37 152 -18 41 -50 147 -72 235 -27 110 -49 176 -69 210 -17 27 -44 102 -63 170 -23 84 -56 168 -108 276 -42 85 -88 182 -102 215 -15 33 -31 67 -36 75 -34 53 -70 134 -83 187 -9 34 -31 85 -50 115 -49 77 -93 167 -107 218 -6 25 -27 70 -45 101 -48 78 -53 190 -13 259 15 25 36 69 47 97 11 29 49 97 85 150 35 54 71 114 80 133 10 19 50 67 89 106 98 97 165 185 193 254 13 32 52 119 88 193 35 75 78 181 95 236 17 55 47 136 65 181 l34 80 -15 64 c-27 119 -85 156 -283 181 -69 9 -134 18 -145 20 -11 2 -55 -7 -97 -19z M15765 16649 c-81 -13 -93 -18 -129 -49 -59 -52 -92 -60 -243 -60 -155 0 -174 -6 -199 -66 -20 -49 -17 -73 14 -112 15 -19 43 -62 62 -96 31 -53 43 -65 98 -91 34 -16 83 -51 109 -77 124 -122 331 -108 425 28 15 22 36 74 47 117 16 66 27 86 64 126 l45 47 -10 60 c-19 126 -35 147 -136 170 -63 15 -75 15 -147 3z m80 -200 l27 -22 -6 -46 c-17 -126 -13 -117 -92 -181 -84 -68 -86 -69 -150 -35 -26 14 -52 25 -59 25 -30 0 -109 65 -159 133 -84 111 -75 127 76 128 51 0 111 4 133 8 86 18 200 13 230 -10z M17544 16622 c-73 -26 -101 -47 -135 -99 -32 -52 -33 -57 -48 -234 -12 -143 -19 -168 -63 -218 -43 -48 -65 -104 -74 -181 -8 -79 -31 -126 -78 -163 -29 -22 -40 -41 -56 -100 -12 -39 -26 -89 -32 -110 -6 -21 -37 -67 -68 -102 -46 -52 -61 -78 -76 -132 -16 -56 -25 -71 -54 -90 -53 -33 -76 -59 -89 -102 -8 -27 -26 -52 -58 -78 -58 -48 -73 -84 -73 -174 l0 -72 59 -57 58 -57 12 -68 c17 -94 30 -122 88 -181 l50 -51 13 -84 c14 -97 39 -153 79 -173 38 -20 47 -46 72 -221 23 -161 46 -238 85 -284 34 -41 53 -100 69 -222 15 -114 31 -164 71 -216 36 -47 52 -90 73 -197 20 -100 37 -140 70 -170 50 -46 59 -74 70 -241 18 -251 35 -322 92 -381 40 -41 49 -103 49 -345 0 -227 -9 -275 -65 -329 -51 -50 -69 -117 -55 -205 23 -141 70 -179 167 -136 105 48 159 131 182 281 13 83 27 111 78 153 37 32 61 74 88 155 13 41 27 60 58 83 47 34 57 48 81 112 15 40 25 51 64 70 37 17 52 32 72 72 16 32 40 60 69 79 24 16 56 49 72 74 16 26 49 58 73 74 25 15 59 50 77 77 22 33 48 57 78 73 32 16 53 36 70 66 16 30 35 48 60 59 78 33 86 39 102 82 19 52 37 67 90 76 28 5 57 22 96 56 67 58 120 85 196 100 74 13 119 32 159 68 51 44 84 57 207 81 129 24 175 40 211 75 37 36 92 55 189 66 121 14 157 25 201 65 63 57 125 75 285 84 186 11 256 24 341 66 134 65 171 69 619 68 441 -1 437 0 571 -66 83 -40 125 -50 351 -79 109 -14 112 -17 123 -106 11 -85 3 -100 -57 -109 -69 -10 -724 15 -813 32 -97 18 -190 20 -265 6 -79 -15 -330 -32 -481 -32 -252 0 -375 -21 -476 -81 -77 -47 -150 -69 -228 -69 -143 0 -316 -41 -406 -95 -32 -20 -83 -43 -114 -51 -112 -33 -142 -47 -178 -84 -21 -22 -61 -48 -92 -60 -105 -41 -118 -50 -141 -97 -22 -45 -32 -53 -105 -72 -25 -7 -69 -34 -111 -69 -38 -32 -94 -75 -124 -96 -30 -21 -69 -58 -87 -82 -18 -24 -50 -53 -72 -64 -21 -11 -47 -32 -57 -47 -10 -15 -53 -62 -95 -104 -43 -42 -78 -81 -78 -87 0 -5 -34 -48 -75 -97 -49 -57 -79 -101 -86 -128 -22 -81 -31 -95 -80 -125 -40 -25 -54 -43 -80 -97 -20 -44 -40 -70 -59 -80 -39 -20 -67 -69 -85 -150 -20 -85 -37 -118 -74 -144 -39 -28 -57 -71 -70 -164 -11 -81 -24 -113 -72 -183 -26 -38 -47 -109 -79 -269 -4 -22 -11 -98 -14 -170 -10 -189 -12 -199 -60 -255 -86 -101 -90 -150 -90 -1045 1 -906 6 -973 85 -1106 47 -79 54 -117 69 -364 13 -223 34 -324 94 -441 38 -75 48 -105 60 -194 25 -178 34 -209 76 -254 43 -48 70 -96 70 -127 0 -12 5 -52 11 -88 l12 -66 53 -52 c43 -42 54 -59 58 -95 37 -268 47 -305 102 -371 32 -38 30 -58 -8 -111 -18 -25 -41 -56 -50 -69 -33 -48 -72 -57 -245 -57 -421 -1 -668 -26 -735 -76 -58 -42 -101 -56 -213 -70 -132 -15 -182 -32 -249 -83 -69 -52 -65 -50 -163 -67 -105 -19 -148 -37 -170 -74 -19 -33 -70 -63 -131 -80 -27 -7 -63 -29 -96 -59 -39 -35 -73 -55 -122 -71 -87 -29 -99 -37 -137 -96 l-32 -48 -63 -13 c-98 -20 -145 -45 -180 -96 -22 -30 -45 -50 -74 -62 -58 -23 -85 -49 -119 -120 -16 -33 -41 -76 -55 -95 l-26 -35 4 -81 3 -81 32 -36 c37 -43 49 -79 62 -199 18 -158 44 -184 182 -181 125 2 152 15 184 88 24 54 57 75 116 75 47 0 107 34 159 89 45 48 65 62 111 75 34 9 79 34 114 61 32 25 91 61 132 81 53 27 79 46 95 73 30 49 45 58 103 67 101 14 137 30 185 85 l46 51 92 14 c107 16 146 33 167 74 22 43 58 57 170 65 212 14 373 45 459 87 166 84 903 114 2116 88 512 -11 793 -25 934 -45 65 -10 180 -15 328 -15 176 0 246 -4 301 -16 59 -14 82 -15 132 -5 33 6 139 16 235 22 96 5 240 16 319 24 79 8 199 15 266 15 311 0 467 25 535 85 54 48 61 50 254 65 141 11 187 21 227 47 15 10 44 30 66 44 47 32 122 59 163 59 83 0 134 21 185 76 46 49 58 56 128 75 65 18 85 29 128 70 36 34 68 54 113 69 70 23 87 37 110 93 18 44 36 52 136 61 82 8 172 43 188 73 6 10 51 43 101 73 56 33 106 71 128 98 20 24 60 59 89 78 29 18 65 53 81 76 16 24 50 55 78 71 31 18 61 46 80 75 17 25 50 61 74 80 24 18 57 53 72 77 15 24 46 56 69 70 25 16 54 49 78 88 20 34 51 75 67 92 52 51 76 93 101 175 21 67 31 85 64 111 46 37 76 94 86 164 9 64 25 96 68 132 44 37 64 78 81 169 15 78 38 134 55 134 20 0 69 93 80 149 14 74 40 163 52 179 19 23 125 16 142 -10 30 -46 37 -109 28 -257 l-8 -143 -52 -45 c-57 -49 -66 -71 -81 -193 -10 -78 -19 -93 -65 -115 -42 -20 -52 -38 -81 -152 l-25 -98 -45 -40 c-32 -30 -52 -60 -75 -117 -20 -48 -49 -97 -76 -127 -27 -30 -52 -72 -64 -107 -24 -68 -33 -80 -81 -105 -26 -13 -46 -35 -65 -70 -19 -33 -40 -57 -64 -69 -42 -21 -75 -56 -85 -88 -4 -13 -31 -39 -62 -59 -35 -22 -66 -53 -85 -83 -20 -32 -43 -54 -68 -65 -44 -20 -65 -40 -95 -92 -16 -29 -32 -40 -80 -57 -48 -17 -65 -29 -87 -63 -20 -28 -40 -45 -66 -53 -72 -23 -152 -73 -187 -116 -26 -31 -48 -47 -78 -55 -116 -32 -141 -43 -197 -93 -32 -28 -81 -60 -110 -71 -41 -15 -61 -31 -85 -65 l-32 -45 -88 -22 c-102 -27 -129 -42 -156 -88 -25 -41 -50 -51 -172 -65 -114 -12 -152 -26 -221 -79 -67 -51 -91 -57 -351 -82 -172 -16 -235 -26 -290 -46 -38 -14 -92 -33 -120 -43 -94 -34 -210 -51 -405 -61 -300 -14 -463 -30 -680 -69 -254 -45 -710 -53 -875 -15 -334 78 -489 87 -1500 88 -943 1 -1198 -13 -1315 -73 -71 -36 -211 -69 -340 -79 -156 -13 -221 -32 -266 -76 -36 -36 -60 -45 -193 -70 -98 -19 -124 -31 -168 -77 -22 -24 -50 -40 -95 -53 -90 -26 -135 -51 -152 -83 -28 -54 -58 -72 -148 -86 -102 -17 -133 -31 -175 -84 -23 -29 -46 -44 -85 -56 -66 -22 -124 -59 -162 -103 -16 -19 -53 -48 -83 -65 -34 -19 -69 -50 -93 -84 -22 -29 -57 -62 -78 -74 -21 -12 -50 -41 -66 -66 -15 -24 -51 -64 -80 -89 -39 -33 -66 -70 -105 -142 -28 -54 -63 -118 -77 -142 -67 -122 0 -185 201 -186 139 0 167 8 229 65 60 53 60 53 236 75 155 20 188 28 231 60 101 74 125 77 879 135 74 5 191 15 260 21 155 14 557 6 730 -15 69 -9 202 -18 295 -21 592 -19 969 -57 1105 -110 118 -46 225 -63 464 -75 226 -12 260 -18 371 -71 107 -52 205 -65 570 -78 305 -11 427 -22 536 -46 198 -44 408 -42 714 5 140 22 254 33 435 41 320 13 392 25 474 78 70 46 150 66 307 75 110 7 242 37 279 65 64 47 110 60 328 97 137 23 179 36 267 88 22 13 91 36 154 51 93 23 126 36 177 71 35 24 104 58 154 75 78 27 96 38 126 75 32 38 46 47 122 70 100 30 118 41 152 91 15 22 48 48 85 67 46 24 65 41 84 74 25 46 34 52 123 77 43 11 73 29 120 71 35 31 95 71 135 89 42 19 79 44 89 60 9 14 40 38 67 52 63 31 181 150 221 222 18 32 49 67 75 85 30 21 52 49 70 85 21 45 35 59 76 80 40 21 55 36 75 76 20 40 35 55 75 75 36 18 56 37 74 69 13 24 44 57 68 75 29 20 55 51 75 88 17 32 41 64 54 73 40 26 61 54 99 133 20 42 51 93 69 113 18 19 45 67 59 105 16 40 45 90 70 119 68 79 84 107 102 175 20 77 37 112 81 166 46 56 61 97 79 211 l16 98 32 27 c63 54 75 69 86 113 6 24 11 66 11 93 0 74 24 143 65 182 47 45 63 104 75 265 17 233 25 278 75 435 34 104 43 195 50 495 10 391 -12 715 -55 831 -32 88 -51 211 -65 438 -16 245 -31 318 -75 380 -43 59 -60 122 -70 259 -17 211 -26 244 -82 303 l-49 52 -15 139 c-18 175 -25 197 -85 258 l-49 51 -15 129 c-16 139 -46 224 -84 244 -32 18 -57 78 -70 171 -23 158 -39 204 -92 265 -26 30 -53 72 -58 93 -6 20 -17 63 -26 95 -12 42 -28 72 -64 111 -28 31 -55 74 -65 102 -19 56 -38 82 -83 113 -24 16 -36 36 -48 78 -25 85 -59 146 -100 177 -21 17 -45 49 -59 81 -23 51 -33 61 -105 108 l-35 22 -12 71 c-17 104 -22 113 -84 174 -46 44 -61 66 -73 111 -12 39 -27 65 -54 90 -21 19 -62 75 -91 124 -34 57 -66 99 -88 113 -18 12 -48 47 -65 78 -23 39 -46 65 -79 85 -32 19 -55 45 -74 79 -18 34 -40 57 -64 69 -44 22 -64 44 -86 92 -12 25 -32 45 -68 64 -28 15 -58 41 -67 58 -25 47 -61 87 -78 87 -19 0 -72 55 -95 97 -10 19 -35 41 -63 56 -34 17 -54 36 -73 72 -21 37 -40 55 -86 79 -34 18 -70 47 -85 69 -14 20 -61 59 -103 85 -43 27 -96 68 -119 90 -25 26 -57 46 -83 53 -80 22 -96 32 -131 81 -39 53 -55 62 -165 89 -41 10 -76 22 -78 26 -20 58 -51 90 -112 114 -54 21 -68 32 -82 61 -22 46 -41 59 -142 99 -52 20 -92 43 -111 64 -34 36 -74 59 -125 70 -21 5 -55 28 -90 60 -53 50 -124 85 -174 85 -34 1 -104 37 -139 71 -48 48 -103 68 -249 89 l-133 19 -40 45 c-46 52 -85 71 -170 81 -69 9 -119 31 -155 70 -37 40 -71 54 -179 75 -117 22 -166 41 -206 80 -42 41 -90 58 -189 69 -96 11 -147 31 -170 66 -24 37 -93 63 -231 86 -124 20 -149 29 -239 83 -40 25 -113 39 -281 55 -116 12 -321 61 -397 96 -95 43 -341 75 -579 75 -129 0 -183 12 -256 57 -99 61 -185 75 -578 92 -212 10 -299 25 -325 56 -45 55 -187 71 -685 80 -382 6 -617 25 -705 56 -115 41 -146 49 -209 54 -49 4 -79 1 -117 -13z m271 -172 c83 -5 188 -16 234 -24 l84 -15 41 -40 42 -41 86 0 c48 0 117 -7 155 -16 37 -9 96 -20 131 -24 l64 -8 64 30 c88 41 155 45 354 19 91 -11 249 -25 351 -31 195 -10 294 -26 370 -58 76 -33 255 -60 539 -82 169 -13 226 -24 320 -62 49 -19 135 -39 251 -59 210 -34 249 -47 305 -98 51 -48 122 -71 217 -71 78 0 198 -28 279 -65 34 -16 90 -29 144 -36 59 -7 123 -23 189 -49 55 -21 123 -43 152 -50 36 -8 71 -27 119 -65 37 -30 97 -66 133 -80 35 -15 76 -35 89 -46 14 -11 40 -19 61 -19 20 0 68 -6 106 -14 39 -8 102 -19 140 -25 136 -20 171 -31 211 -67 48 -42 84 -60 165 -79 119 -28 168 -46 196 -69 34 -28 74 -49 146 -76 30 -11 80 -38 111 -60 73 -51 120 -75 176 -90 54 -14 160 -70 209 -111 20 -16 65 -38 101 -49 47 -14 82 -33 124 -69 32 -27 91 -65 130 -85 46 -22 83 -48 104 -75 23 -29 48 -46 93 -62 34 -13 81 -40 107 -64 26 -23 76 -59 112 -80 36 -21 88 -60 115 -86 28 -26 73 -60 100 -76 33 -20 58 -44 74 -72 15 -27 43 -55 76 -77 29 -18 66 -49 81 -67 16 -19 44 -42 63 -52 18 -9 62 -42 97 -73 101 -91 198 -171 230 -191 51 -33 219 -214 356 -384 13 -16 49 -57 82 -90 32 -34 68 -82 81 -107 13 -25 40 -60 60 -79 20 -18 44 -49 52 -69 8 -19 38 -60 67 -91 58 -62 108 -146 125 -208 6 -22 27 -56 46 -76 23 -24 35 -46 35 -64 0 -93 33 -147 97 -159 36 -7 51 -29 94 -136 11 -29 40 -73 63 -98 35 -37 44 -55 49 -96 8 -68 46 -150 93 -200 29 -30 48 -66 72 -135 38 -108 45 -120 88 -142 24 -12 40 -36 74 -114 44 -98 68 -140 102 -177 17 -19 38 -76 38 -103 0 -43 55 -177 89 -219 35 -42 41 -58 56 -143 32 -188 50 -243 105 -311 14 -17 27 -63 41 -144 30 -178 47 -243 85 -331 26 -59 40 -112 54 -205 10 -69 38 -226 63 -350 65 -324 78 -432 113 -929 35 -480 -11 -1155 -99 -1476 -20 -71 -47 -189 -61 -262 -25 -130 -49 -196 -81 -223 -27 -22 -46 -69 -71 -168 -16 -63 -33 -106 -51 -129 -49 -62 -63 -89 -89 -179 -21 -73 -34 -97 -69 -135 -23 -25 -52 -67 -64 -94 -29 -65 -45 -82 -89 -90 -52 -9 -79 -29 -100 -73 -27 -59 -93 -52 -128 14 -19 36 -94 93 -155 118 -29 12 -68 15 -175 12 -153 -4 -311 17 -404 54 -82 32 -168 28 -233 -13 -28 -18 -61 -37 -72 -43 -11 -6 -37 -42 -58 -80 l-39 -69 12 -85 c15 -101 36 -147 101 -218 37 -40 53 -69 69 -121 11 -38 28 -79 39 -92 10 -13 28 -46 40 -74 14 -31 45 -71 83 -108 l62 -57 -31 -28 c-65 -57 -71 -168 -11 -210 21 -15 24 -45 6 -59 -26 -21 -106 -24 -117 -5 -6 9 -11 12 -11 7 0 -6 4 -15 9 -20 5 -6 11 -34 14 -63 l6 -53 -32 -19 c-17 -11 -45 -22 -62 -26 -41 -9 -52 -19 -66 -62 -17 -53 -34 -69 -89 -82 -56 -13 -64 -21 -82 -75 l-13 -39 -55 -17 c-83 -25 -171 -74 -205 -113 -23 -27 -44 -39 -90 -51 -62 -16 -79 -28 -117 -84 -24 -36 -48 -46 -180 -77 -42 -9 -96 -33 -145 -63 -99 -60 -96 -59 -231 -86 -92 -19 -121 -29 -152 -54 -50 -40 -94 -56 -215 -81 -120 -25 -189 -56 -193 -88 -6 -42 -34 -47 -242 -47 -207 0 -241 5 -220 30 7 8 20 15 30 15 9 0 34 14 55 30 21 17 45 30 53 30 25 0 122 52 132 71 7 12 6 30 -3 56 l-12 38 -90 5 c-50 3 -97 9 -105 15 -8 5 -42 8 -75 7 -49 -3 -66 1 -87 17 -14 12 -36 21 -47 21 -12 0 -29 9 -38 20 -24 28 -53 26 -53 -3 0 -15 -14 -35 -38 -54 l-37 -30 -102 -5 c-72 -3 -108 -1 -124 8 -13 7 -43 13 -66 14 -45 0 -47 2 -43 55 2 33 15 46 37 38 7 -3 25 3 41 13 28 19 133 22 140 3 6 -14 29 -10 36 6 3 9 19 15 41 15 57 0 41 40 -55 135 -11 12 -20 33 -20 48 0 21 -5 27 -21 27 -12 0 -35 11 -51 25 l-30 26 -92 -7 c-50 -3 -104 -10 -121 -15 -16 -4 -140 -9 -275 -10 -135 0 -303 -2 -375 -2 -71 -1 -195 4 -275 12 -98 9 -199 11 -310 7 -91 -4 -448 -5 -795 -4 -913 4 -1007 3 -1095 -18 -172 -39 -340 -24 -340 31 -1 55 -80 89 -234 99 -64 5 -86 2 -122 -13 l-44 -20 0 -34 c0 -43 -30 -83 -54 -74 -9 4 -24 24 -32 44 -38 95 -61 115 -154 134 -30 6 -72 15 -92 21 -29 9 -47 8 -76 -1 -21 -7 -63 -14 -93 -14 l-54 -2 2 21 c4 41 -102 114 -167 114 -43 0 -60 15 -60 51 0 15 -6 30 -12 32 -21 9 12 26 62 33 25 3 99 19 165 34 113 28 158 35 384 60 136 16 712 13 926 -4 99 -8 227 -18 285 -21 58 -3 137 -10 175 -15 463 -62 1537 -64 1980 -4 61 8 162 21 226 29 63 8 149 25 190 38 68 23 239 58 444 92 110 18 156 31 260 75 54 23 122 43 170 50 105 16 162 35 208 71 48 39 87 54 192 79 102 24 136 40 191 91 28 25 63 44 107 57 37 11 92 39 128 64 72 51 125 79 184 98 22 7 63 29 90 50 28 21 91 61 142 89 52 29 102 65 114 82 13 19 47 42 84 59 43 19 73 42 100 74 21 25 56 54 79 64 94 42 504 433 637 608 29 38 73 92 97 119 25 28 58 77 73 111 15 34 39 74 52 90 32 38 102 169 117 219 7 22 23 54 35 70 36 48 81 144 104 221 11 39 39 99 62 135 60 92 67 121 83 322 28 349 -1 417 -178 417 -138 0 -178 -27 -216 -145 -12 -38 -36 -93 -52 -122 -20 -36 -37 -91 -54 -180 -14 -70 -30 -134 -37 -142 -6 -9 -23 -30 -38 -48 -15 -17 -46 -80 -69 -139 -23 -60 -58 -127 -76 -150 -19 -22 -54 -85 -79 -138 -25 -53 -60 -113 -79 -134 -18 -20 -46 -57 -61 -82 -54 -86 -131 -175 -311 -354 -237 -237 -284 -281 -375 -349 -42 -31 -82 -64 -90 -73 -7 -8 -31 -25 -53 -36 -23 -11 -74 -45 -115 -74 -45 -33 -96 -61 -130 -70 -80 -23 -110 -41 -161 -93 -33 -34 -67 -55 -127 -80 -46 -18 -102 -50 -127 -72 -24 -22 -72 -49 -110 -62 -36 -14 -105 -47 -154 -74 -67 -39 -107 -54 -174 -67 -95 -18 -189 -48 -223 -70 -36 -24 -154 -54 -250 -66 -49 -5 -151 -25 -225 -44 -166 -42 -273 -60 -505 -86 -329 -37 -417 -42 -835 -45 -452 -3 -574 3 -665 35 -44 15 -95 22 -195 26 -80 4 -170 14 -219 26 -223 52 -1295 81 -1856 51 -222 -12 -378 -35 -505 -74 -36 -11 -114 -27 -175 -35 -247 -32 -336 -53 -430 -99 -75 -37 -106 -46 -185 -55 -133 -15 -186 -32 -270 -89 -43 -30 -89 -52 -114 -56 -75 -13 -176 -54 -216 -88 -21 -18 -64 -41 -94 -51 -31 -9 -91 -41 -134 -71 -42 -30 -110 -70 -151 -90 -41 -19 -104 -59 -140 -88 -36 -29 -93 -71 -126 -92 -33 -21 -72 -52 -86 -67 -15 -15 -56 -41 -92 -57 -50 -22 -72 -40 -93 -70 -31 -48 -53 -57 -92 -37 -31 16 -44 41 -93 181 -87 251 -64 327 141 470 30 21 69 55 87 75 22 25 52 44 94 60 38 14 80 39 108 65 51 47 98 73 181 100 37 12 69 32 97 61 23 23 53 45 65 49 75 22 189 71 226 97 28 19 80 40 152 58 60 16 153 48 207 70 117 50 118 50 353 95 200 39 301 50 510 60 236 11 287 20 402 74 141 66 156 86 173 231 8 67 -22 211 -65 310 -16 36 -38 102 -49 146 -28 108 -86 258 -120 309 -32 46 -58 123 -96 280 -15 61 -44 146 -65 190 -54 110 -57 121 -75 232 -17 105 -39 184 -61 220 -37 59 -63 172 -79 343 -21 230 -39 335 -76 434 l-31 81 -15 260 c-16 283 -11 874 8 1038 6 48 26 133 45 189 38 114 69 263 79 383 8 105 29 178 69 245 40 65 50 96 71 215 12 69 28 114 69 195 51 101 116 271 116 305 0 9 20 37 44 63 24 26 67 92 96 147 29 55 68 116 86 135 18 19 43 60 57 90 14 34 38 66 60 83 20 15 50 54 68 87 20 37 45 68 66 81 18 12 41 35 50 52 21 41 209 230 250 250 17 9 48 37 69 63 21 25 58 56 83 69 25 13 62 40 81 60 19 20 61 50 92 66 31 16 72 42 90 57 58 50 94 71 171 101 41 16 117 54 169 84 72 43 119 62 211 87 64 17 159 51 210 75 l92 44 170 26 c191 29 234 39 287 66 149 76 912 102 1378 48 47 -6 125 -24 174 -41 166 -57 300 -22 377 100 l29 46 0 85 c0 147 -35 190 -185 230 -44 12 -108 35 -141 52 -139 67 -337 83 -969 77 -524 -6 -583 -11 -778 -73 -62 -20 -177 -51 -257 -69 -80 -19 -206 -54 -280 -79 -74 -25 -171 -58 -215 -72 -161 -53 -221 -77 -274 -107 -30 -17 -103 -47 -163 -68 -64 -23 -128 -53 -159 -75 -28 -21 -83 -51 -122 -67 -47 -19 -88 -45 -117 -73 -25 -24 -66 -53 -91 -63 -41 -18 -99 -71 -99 -92 0 -4 -32 -26 -70 -49 -39 -23 -103 -74 -144 -114 -41 -40 -122 -117 -180 -172 -58 -55 -124 -125 -148 -155 -23 -30 -71 -85 -105 -122 -35 -37 -73 -87 -84 -112 -13 -30 -35 -56 -64 -76 -35 -24 -48 -42 -62 -82 -10 -28 -37 -72 -61 -99 -47 -53 -74 -106 -97 -194 -18 -70 -27 -82 -46 -59 -11 14 -15 85 -20 348 -8 414 -20 491 -94 633 -25 47 -34 79 -39 140 -15 181 -44 295 -89 355 -26 34 -56 127 -77 233 -7 33 -40 137 -75 230 -35 94 -75 211 -90 260 -15 50 -33 111 -41 137 -8 26 -27 68 -44 95 -16 26 -39 86 -50 132 -29 115 -47 158 -91 216 -25 33 -43 73 -54 119 -26 102 -42 136 -90 186 -57 60 -101 206 -92 303 7 75 51 162 114 228 28 29 49 63 59 94 10 36 28 62 68 99 43 41 60 68 87 134 19 46 49 101 67 123 18 21 51 80 73 131 22 51 57 122 78 158 48 80 72 154 111 333 36 169 69 248 113 270 38 19 42 19 232 7z m8763 -11484 c8 -42 -60 -76 -73 -36 -8 24 0 39 29 50 28 11 40 7 44 -14z m-8305 -587 l37 -10 0 -39 c0 -33 -3 -40 -20 -40 -10 0 -31 -12 -45 -27 l-26 -28 -20 25 c-11 14 -28 37 -39 51 l-19 26 37 26 c44 30 46 30 95 16z m2057 -488 c0 -13 -21 -27 -59 -39 -43 -15 -55 -7 -35 24 16 24 94 37 94 15z m-1854 -112 c3 -6 2 -14 -2 -19 -11 -10 -247 -15 -294 -6 -75 15 -81 17 -75 26 9 14 362 13 371 -1z m377 -11 c12 -6 56 -15 97 -20 41 -4 104 -13 140 -19 85 -15 444 -20 540 -8 41 5 100 12 130 16 116 14 374 0 400 -22 8 -7 29 -16 47 -20 17 -3 37 -13 44 -21 6 -8 22 -14 35 -14 13 0 32 -9 41 -20 10 -11 24 -20 31 -20 8 0 27 -9 43 -21 23 -16 42 -20 103 -18 58 1 78 -2 91 -15 10 -10 33 -16 60 -16 54 0 95 -23 134 -76 43 -61 99 -100 152 -108 26 -4 55 -13 65 -21 11 -8 32 -15 48 -15 77 -1 3 -11 -137 -20 -258 -15 -375 7 -406 78 l-15 32 -60 0 c-180 0 -684 32 -721 46 -8 3 -15 15 -17 27 -5 35 -59 63 -135 71 -69 7 -254 19 -553 35 -172 10 -220 20 -220 46 0 8 -11 33 -25 55 -32 51 -32 55 8 68 44 14 55 14 80 0z m3254 -53 c-3 -30 -8 -58 -11 -63 -8 -13 -67 0 -95 20 l-24 17 29 30 c16 17 37 31 46 31 9 0 20 5 23 10 3 6 13 10 22 10 13 0 15 -9 10 -55z m-556 -221 c71 -32 74 -47 13 -74 -65 -28 -179 -28 -228 1 -37 22 -45 42 -23 56 10 6 137 37 171 42 5 0 35 -11 67 -25z m2064 -114 c48 -53 -74 -92 -139 -44 l-19 14 17 19 c16 18 40 25 102 29 11 1 29 -7 39 -18z M25949 11991 c-36 -36 -37 -65 -4 -87 l26 -17 24 23 c24 23 32 60 19 94 -9 24 -32 19 -65 -13z M24875 4641 c-3 -5 2 -17 11 -25 30 -31 129 -12 103 20 -13 16 -104 20 -114 5z M23815 4198 l-40 -21 45 -13 c25 -8 53 -11 63 -8 23 7 22 41 -2 54 -24 12 -18 13 -66 -12z M12348 16204 c-36 -8 -108 -29 -160 -48 -129 -47 -221 -63 -448 -81 -263 -21 -305 -30 -375 -80 -51 -37 -114 -56 -219 -65 -167 -15 -235 -36 -273 -83 -30 -39 -72 -54 -173 -62 -187 -13 -271 -37 -320 -90 -14 -15 -48 -42 -76 -61 -91 -60 -107 -129 -41 -177 45 -34 112 -54 258 -76 69 -10 135 -23 145 -29 45 -24 228 -64 359 -78 77 -8 160 -18 184 -20 36 -5 54 -15 95 -55 52 -51 94 -71 189 -89 50 -10 65 -19 110 -65 46 -46 60 -54 113 -64 139 -26 161 -33 209 -66 l50 -34 110 -11 c61 -6 157 -17 215 -25 58 -8 173 -19 256 -25 176 -12 238 -28 279 -69 35 -38 90 -56 229 -76 111 -16 141 -28 229 -90 56 -40 84 -49 222 -69 106 -16 98 -11 162 -94 13 -18 45 -37 80 -50 32 -12 81 -40 108 -63 51 -43 97 -66 174 -90 34 -11 52 -25 76 -59 22 -32 48 -53 92 -75 33 -16 79 -43 101 -58 l40 -28 41 11 c55 15 102 57 131 119 l23 51 -20 23 c-36 39 -52 83 -68 183 -19 116 -31 142 -83 178 -41 28 -48 40 -77 132 -8 28 -27 61 -40 74 -27 26 -105 150 -105 168 0 16 -60 82 -74 82 -18 0 -46 33 -76 88 -18 33 -38 52 -70 68 -35 18 -49 33 -70 76 -21 44 -35 58 -80 83 -34 19 -60 42 -69 60 -19 42 -41 65 -76 79 -33 14 -69 53 -97 105 -11 19 -32 37 -58 47 -28 12 -54 33 -80 70 -28 36 -58 62 -99 84 -32 18 -72 48 -89 69 -32 39 -71 60 -167 86 -44 13 -70 27 -96 55 -54 57 -79 69 -167 85 -93 16 -106 22 -147 65 -39 42 -70 57 -130 65 -28 3 -59 8 -70 9 -11 2 -50 -2 -87 -10z m151 -165 c80 -12 151 -42 214 -87 26 -19 74 -42 105 -52 97 -31 175 -71 223 -115 25 -24 66 -51 90 -62 25 -11 61 -33 80 -50 18 -16 72 -56 118 -88 47 -33 144 -117 215 -188 72 -70 150 -140 173 -153 23 -14 45 -34 48 -45 4 -12 35 -51 69 -87 34 -37 86 -101 116 -142 29 -41 70 -93 91 -115 21 -22 48 -67 60 -99 12 -33 39 -78 59 -100 32 -35 120 -205 120 -233 0 -5 11 -24 25 -43 48 -66 17 -120 -69 -120 -39 0 -178 71 -218 111 -24 25 -55 43 -88 53 -64 19 -110 47 -176 107 -44 40 -62 49 -126 63 -53 12 -94 29 -141 60 -73 48 -81 51 -222 95 -55 17 -119 44 -143 60 -56 39 -157 71 -377 121 -387 88 -442 98 -615 105 -207 9 -285 25 -347 72 -56 43 -92 59 -181 78 -93 22 -116 32 -140 64 -28 39 -93 67 -198 86 -53 10 -124 32 -175 56 -68 31 -117 44 -232 63 -199 34 -287 60 -287 86 0 15 110 114 143 129 18 7 76 19 130 27 87 12 288 72 346 104 12 6 58 15 103 20 45 5 111 21 147 35 36 13 132 36 212 49 80 14 186 39 235 56 66 23 140 37 284 56 107 13 200 26 205 28 18 8 59 6 124 -5z M9257 15179 c-131 -4 -282 -12 -335 -18 -53 -6 -157 -15 -230 -21 -84 -7 -175 -21 -246 -40 -138 -35 -318 -60 -446 -60 -211 -1 -342 -22 -401 -65 -19 -13 -44 -32 -57 -41 -14 -11 -73 -25 -150 -36 -138 -21 -219 -51 -246 -93 -23 -35 -60 -51 -144 -64 -90 -14 -137 -37 -179 -90 -28 -33 -42 -41 -90 -51 -124 -23 -146 -33 -204 -86 -39 -35 -72 -56 -101 -64 -79 -20 -122 -44 -188 -105 -36 -33 -82 -71 -102 -83 -27 -17 -49 -46 -80 -103 -49 -90 -43 -87 -168 -65 -41 8 -129 24 -195 36 -132 25 -166 23 -357 -21 -73 -17 -96 -28 -140 -64 -29 -24 -84 -56 -122 -71 -38 -15 -98 -51 -135 -80 -37 -30 -95 -65 -131 -79 -42 -16 -78 -39 -101 -63 -21 -23 -52 -43 -80 -51 -65 -20 -154 -67 -197 -105 -20 -18 -57 -40 -81 -50 -53 -21 -116 -63 -156 -106 -16 -18 -59 -47 -95 -65 -40 -20 -78 -49 -99 -75 -23 -28 -54 -51 -96 -70 -41 -18 -72 -41 -91 -65 -19 -25 -54 -50 -108 -76 -47 -23 -102 -61 -135 -92 -34 -32 -76 -60 -106 -71 -27 -11 -72 -40 -100 -65 -27 -26 -77 -60 -109 -76 -93 -47 -283 -230 -413 -398 -18 -23 -44 -73 -59 -110 -14 -37 -36 -80 -49 -95 -72 -86 -85 -162 -85 -497 0 -323 6 -370 66 -495 41 -87 72 -182 109 -331 16 -64 30 -99 61 -149 11 -19 36 -73 53 -120 40 -104 54 -131 97 -195 22 -33 49 -102 80 -200 25 -82 56 -166 69 -185 41 -64 63 -150 79 -310 21 -207 39 -732 30 -900 -7 -146 -3 -170 45 -300 16 -41 32 -93 36 -114 35 -201 225 -236 528 -96 69 32 200 151 255 232 18 26 50 62 72 79 41 33 72 93 90 175 14 62 30 86 75 114 32 20 75 83 75 109 0 31 47 128 80 166 46 53 56 84 64 195 6 71 13 98 46 165 47 96 81 253 105 485 9 85 31 220 50 300 39 171 47 278 70 947 20 555 44 755 125 1017 16 53 40 173 54 267 l26 172 38 51 c49 65 70 105 96 186 l21 65 85 42 c60 29 88 39 97 32 24 -21 36 -82 31 -163 -7 -107 -23 -155 -69 -211 -46 -56 -65 -114 -74 -227 -9 -112 -19 -147 -71 -253 -64 -130 -78 -298 -89 -1045 -7 -474 -32 -778 -75 -930 -38 -132 -66 -370 -79 -659 l-8 -194 -47 -44 c-55 -51 -71 -85 -81 -168 -12 -109 -33 -163 -81 -215 -67 -72 -74 -104 -74 -359 1 -294 20 -398 85 -449 33 -26 53 -76 60 -149 13 -125 27 -151 116 -213 18 -13 24 -33 36 -119 15 -113 28 -147 78 -202 17 -19 46 -71 64 -115 31 -76 47 -96 121 -152 17 -13 41 -45 53 -70 16 -33 35 -54 67 -72 32 -19 52 -40 70 -75 19 -38 37 -56 72 -75 29 -16 59 -44 80 -75 23 -35 49 -57 88 -77 39 -20 62 -39 78 -68 20 -35 38 -47 135 -94 l111 -54 56 25 c101 44 150 111 150 205 0 29 7 94 15 143 8 50 19 169 25 265 15 265 18 285 55 338 66 96 78 135 95 300 12 118 23 152 56 183 38 35 59 82 87 194 35 137 42 154 86 195 25 23 47 58 64 105 15 39 36 83 46 99 23 35 136 85 154 67 20 -20 9 -160 -18 -219 -13 -29 -36 -100 -51 -159 -36 -144 -53 -192 -108 -298 l-46 -90 -21 -145 c-21 -146 -28 -168 -98 -299 -31 -58 -43 -107 -66 -281 -63 -464 -67 -578 -27 -781 17 -85 36 -188 42 -229 18 -122 37 -174 80 -226 26 -31 49 -76 66 -126 15 -45 36 -87 50 -100 14 -13 57 -68 97 -123 86 -120 88 -123 202 -180 50 -25 111 -57 138 -72 l47 -26 147 -6 c163 -7 202 1 263 48 19 15 51 37 71 49 59 36 186 183 215 249 16 36 45 77 77 108 29 28 75 86 102 129 28 44 60 95 73 115 12 20 29 59 38 88 10 35 32 71 68 111 37 42 64 86 87 143 26 64 44 90 77 118 24 20 56 59 72 88 18 31 47 64 75 83 25 17 54 49 65 70 11 21 42 58 70 82 29 25 71 77 99 123 104 172 116 215 102 354 -6 53 -15 153 -21 223 -19 222 -51 310 -146 399 -52 48 -84 62 -231 103 -113 31 -129 39 -170 86 -18 21 -58 52 -88 69 -32 18 -65 47 -79 69 -13 20 -46 60 -73 87 l-48 50 -37 120 c-20 66 -42 134 -49 152 -21 52 14 155 97 284 l43 68 163 81 c188 93 230 105 428 122 178 15 668 15 806 1 114 -13 200 -46 274 -107 25 -20 67 -51 94 -69 l49 -32 28 -79 c33 -92 37 -178 15 -311 -14 -89 -32 -129 -86 -195 -42 -50 -61 -83 -89 -152 -17 -41 -28 -51 -83 -79 -35 -17 -85 -52 -113 -77 -28 -25 -90 -64 -141 -88 -70 -33 -108 -59 -162 -111 -89 -86 -96 -110 -90 -293 3 -74 1 -164 -4 -200 -16 -122 47 -371 108 -420 9 -8 31 -37 49 -66 19 -29 53 -66 78 -82 24 -17 62 -58 83 -91 21 -32 51 -67 67 -76 16 -9 44 -41 63 -71 19 -29 46 -61 60 -71 66 -46 84 -67 98 -111 11 -31 33 -64 62 -93 25 -24 61 -75 81 -112 20 -38 62 -97 94 -133 32 -35 65 -77 73 -93 9 -16 37 -47 63 -67 27 -21 64 -55 83 -75 35 -37 117 -79 193 -100 27 -7 57 -28 91 -63 l51 -52 165 -57 c197 -67 305 -79 357 -41 47 35 105 61 161 73 84 18 116 35 163 91 24 28 64 67 89 85 28 21 57 55 75 87 15 29 46 77 67 106 55 73 74 121 118 290 21 81 46 172 55 202 37 118 28 483 -15 615 -11 33 -35 144 -54 247 l-34 188 -44 82 c-25 46 -55 115 -67 153 -12 39 -27 86 -33 105 -6 19 -25 56 -43 81 -45 64 -62 99 -86 176 -12 37 -34 90 -50 118 -32 58 -98 236 -130 357 -17 63 -20 93 -14 152 7 83 19 100 76 111 46 8 58 -6 69 -82 11 -81 37 -139 75 -171 45 -38 61 -68 75 -137 16 -76 32 -109 86 -167 24 -25 45 -57 48 -70 3 -12 10 -52 16 -88 15 -82 32 -115 85 -165 l42 -40 16 -125 c23 -169 31 -193 87 -254 53 -59 52 -57 66 -266 3 -52 12 -125 19 -161 16 -81 108 -286 140 -316 63 -56 182 -32 226 47 l24 42 90 29 c104 34 113 39 148 96 17 27 45 51 79 70 40 21 58 38 73 70 24 51 52 83 91 104 17 9 46 44 69 83 22 38 52 78 67 91 42 36 76 91 83 138 10 57 25 84 79 136 46 45 61 79 86 187 10 46 17 55 59 82 52 32 60 47 100 187 16 56 26 74 50 88 43 25 69 88 77 187 7 92 19 130 64 200 87 135 89 466 4 590 -22 32 -50 113 -85 245 -8 32 -27 65 -51 91 -25 27 -52 75 -76 135 l-37 94 -43 23 c-55 30 -58 39 -71 197 -13 159 -22 190 -66 246 -56 69 -65 116 -80 397 -19 352 -46 541 -91 651 -45 112 -61 211 -74 447 -11 200 -28 277 -80 353 -40 59 -50 96 -60 226 -16 215 -19 226 -88 297 l-45 47 -7 89 c-9 109 -22 138 -78 175 -53 36 -58 45 -71 141 -12 87 -32 128 -70 147 -63 32 -71 46 -71 134 0 114 9 125 107 125 l75 0 40 -42 c21 -24 61 -65 87 -93 27 -27 60 -77 75 -109 14 -33 44 -78 65 -102 44 -47 70 -94 96 -172 9 -29 34 -73 55 -97 48 -56 64 -108 94 -322 14 -92 34 -197 46 -233 11 -36 25 -101 31 -145 5 -44 21 -142 35 -218 14 -78 29 -215 34 -315 10 -177 25 -264 74 -442 33 -120 53 -234 65 -380 10 -113 43 -233 91 -330 22 -45 36 -103 55 -231 21 -143 38 -194 85 -263 23 -34 51 -94 65 -140 25 -82 34 -99 93 -177 18 -23 39 -66 47 -93 7 -28 21 -76 29 -107 9 -32 32 -77 55 -105 21 -27 53 -76 71 -109 18 -33 52 -80 75 -105 23 -25 52 -59 63 -76 12 -18 44 -46 71 -63 27 -18 61 -47 74 -65 16 -20 55 -47 103 -70 43 -21 97 -55 120 -76 23 -21 59 -44 80 -51 58 -18 261 -23 345 -9 l72 12 86 90 c47 49 91 97 96 106 6 10 13 202 17 482 7 483 10 534 52 737 34 164 50 225 97 372 39 123 57 164 116 271 17 30 41 98 53 150 26 114 30 123 86 180 36 37 46 57 60 115 26 110 43 152 79 195 42 50 60 105 80 250 9 63 28 148 41 189 l24 74 -10 96 c-5 53 -19 137 -30 186 -11 50 -24 140 -30 200 -13 142 -31 201 -75 252 -19 23 -51 74 -71 113 -25 51 -44 76 -67 88 -35 18 -91 73 -120 116 -10 14 -49 42 -87 61 -38 19 -93 56 -122 81 -29 26 -82 61 -118 77 -36 16 -81 42 -100 57 -19 15 -69 44 -110 65 -41 20 -97 53 -125 73 -27 20 -84 50 -126 67 -42 18 -97 47 -124 66 -84 60 -99 69 -165 90 -75 25 -120 50 -171 94 -20 18 -58 40 -85 50 -101 35 -124 49 -166 95 -35 37 -60 53 -128 79 -54 20 -98 45 -120 66 -20 20 -74 51 -127 74 -50 21 -113 55 -139 75 -32 25 -80 47 -148 68 -56 17 -144 52 -196 79 -72 37 -130 57 -242 83 -81 20 -185 51 -231 70 -122 50 -187 65 -349 76 -137 10 -378 1 -420 -15 -9 -4 -34 3 -57 14 -22 12 -46 21 -53 21 -52 0 -90 23 -107 63 -24 54 -43 71 -113 97 -38 14 -65 32 -84 57 -29 38 -85 67 -149 78 -96 16 -186 49 -225 82 -55 48 -102 60 -287 73 l-158 11 -105 49 c-132 61 -184 69 -485 80 -269 10 -422 10 -768 -1z m648 -149 c164 -12 371 -39 614 -80 96 -17 186 -30 200 -30 14 -1 42 -7 61 -14 137 -53 220 -78 325 -96 l120 -22 33 -33 c23 -23 66 -46 144 -76 l111 -43 34 -47 c25 -36 46 -52 81 -65 32 -11 63 -34 97 -71 28 -30 73 -66 100 -81 36 -20 55 -38 69 -67 10 -22 36 -68 58 -102 22 -34 54 -99 72 -145 41 -105 60 -140 107 -206 21 -30 45 -76 54 -103 10 -28 36 -71 63 -100 l47 -52 0 -156 c1 -186 8 -214 79 -303 34 -42 57 -83 65 -114 29 -112 43 -142 76 -172 38 -35 51 -74 84 -257 13 -66 40 -172 61 -235 33 -101 51 -170 106 -425 7 -33 19 -105 25 -160 6 -55 22 -145 36 -200 49 -194 62 -262 93 -470 17 -115 42 -250 57 -300 42 -144 62 -251 73 -390 14 -174 35 -267 77 -344 23 -44 41 -96 53 -160 23 -121 33 -146 75 -192 43 -48 58 -76 85 -167 12 -39 33 -88 46 -107 87 -129 146 -395 125 -565 -26 -214 -59 -355 -109 -470 -27 -63 -53 -133 -56 -155 -7 -40 -37 -99 -89 -173 -16 -22 -42 -73 -58 -114 -17 -40 -43 -86 -59 -103 -16 -16 -51 -77 -79 -135 -33 -71 -63 -118 -91 -145 -23 -22 -52 -60 -65 -85 -13 -25 -37 -58 -55 -75 -18 -16 -53 -57 -78 -90 -61 -80 -169 -191 -212 -217 -19 -12 -55 -38 -80 -58 -25 -20 -66 -49 -92 -63 -25 -15 -62 -45 -82 -68 -22 -27 -40 -39 -50 -36 -16 6 -56 132 -75 232 -6 33 -26 98 -45 145 -22 55 -40 124 -51 195 -21 141 -39 207 -76 272 -16 29 -40 100 -54 157 -26 112 -70 219 -111 273 -14 19 -38 71 -54 116 -40 116 -54 146 -93 197 -18 25 -53 85 -76 134 -23 50 -60 113 -82 142 -22 29 -45 68 -50 88 -14 51 -51 90 -109 115 l-50 21 2 61 c1 51 5 62 24 72 12 7 51 49 88 94 78 97 99 112 193 147 71 25 107 43 188 91 22 13 62 29 90 36 160 37 241 99 378 289 25 36 67 85 92 110 26 26 53 65 63 93 l18 47 -23 128 c-36 201 -44 296 -31 388 l11 80 -27 125 c-15 68 -37 167 -49 219 -23 107 -40 147 -87 205 -18 22 -52 79 -75 127 -47 94 -160 230 -225 270 -36 22 -107 84 -254 219 -46 42 -110 92 -143 112 -34 21 -72 52 -87 71 -15 21 -55 48 -101 71 -42 21 -92 51 -113 67 -53 43 -100 65 -189 89 -43 12 -98 32 -123 45 -175 91 -457 130 -692 95 l-88 -13 -59 -52 c-33 -28 -80 -63 -105 -78 -28 -17 -57 -45 -75 -75 -17 -27 -44 -59 -61 -71 -34 -25 -48 -53 -111 -212 -86 -218 -104 -384 -79 -710 12 -148 23 -212 61 -345 15 -55 35 -129 43 -166 23 -100 54 -175 92 -220 19 -22 55 -82 81 -133 36 -70 65 -108 121 -163 62 -60 73 -76 67 -95 -8 -29 -49 -66 -82 -74 -28 -7 -204 27 -291 57 -37 13 -83 19 -141 19 -47 0 -153 7 -236 15 -190 19 -371 18 -505 0 -58 -8 -163 -21 -235 -29 -71 -8 -142 -19 -156 -24 -14 -6 -72 -22 -130 -37 -62 -16 -126 -40 -159 -60 -31 -18 -104 -52 -164 -74 -60 -23 -125 -54 -144 -69 -82 -66 -130 -77 -212 -49 -44 15 -49 39 -15 87 14 21 32 58 40 83 15 50 48 118 76 159 26 35 92 205 128 325 16 54 43 136 60 183 28 80 72 333 102 593 9 80 -7 266 -26 297 -2 4 -18 89 -35 190 -34 201 -34 200 -96 277 -24 29 -51 67 -60 84 -21 42 -119 148 -166 180 -99 70 -262 83 -538 45 l-115 -16 -130 -64 c-71 -35 -146 -69 -165 -76 -19 -7 -60 -32 -90 -55 -30 -23 -86 -61 -125 -85 -38 -23 -90 -59 -115 -80 -25 -20 -72 -54 -105 -75 -115 -73 -337 -283 -385 -365 -18 -30 -51 -71 -74 -92 -29 -25 -50 -55 -65 -95 -12 -32 -41 -89 -65 -128 -51 -84 -53 -88 -110 -285 -72 -250 -81 -370 -46 -600 12 -73 23 -137 25 -141 3 -4 13 -49 24 -101 20 -99 61 -200 109 -270 16 -24 41 -64 56 -90 27 -48 132 -145 189 -174 17 -9 68 -26 113 -38 47 -13 111 -40 150 -64 85 -51 186 -88 293 -106 154 -27 198 -82 194 -243 -2 -69 -7 -102 -22 -131 -11 -22 -25 -61 -32 -88 -17 -70 -35 -102 -94 -166 -37 -40 -63 -81 -89 -144 -20 -49 -43 -95 -50 -104 -23 -27 -84 -182 -111 -284 -15 -54 -42 -135 -62 -180 -41 -96 -58 -166 -73 -301 -17 -158 -49 -324 -76 -400 -16 -46 -31 -125 -43 -233 -23 -207 -39 -226 -124 -153 -18 15 -59 45 -92 67 -47 30 -200 169 -270 245 -5 6 -48 50 -95 98 -47 47 -103 113 -125 145 -22 32 -57 78 -77 101 -21 23 -50 73 -66 111 -15 38 -44 94 -64 124 -44 66 -62 107 -82 181 -9 31 -32 79 -51 105 -58 82 -72 115 -95 229 -13 66 -37 144 -60 195 -20 47 -40 94 -44 104 -14 41 -25 205 -19 281 l6 79 40 36 c50 45 69 83 97 197 12 52 32 106 46 125 38 51 74 179 85 303 13 144 32 239 63 310 30 67 40 122 61 345 8 91 24 239 35 330 26 219 52 602 44 662 -4 27 -2 97 4 156 6 59 16 177 22 262 28 380 66 603 156 910 40 138 94 347 94 369 0 7 16 49 35 92 30 65 39 104 56 226 l19 148 49 85 c26 47 61 116 77 154 22 51 41 78 78 109 35 30 57 60 80 111 18 40 58 100 90 136 31 36 68 85 83 110 14 25 42 63 63 85 20 22 47 59 60 82 17 31 39 50 82 73 32 17 76 49 96 70 21 22 55 46 77 54 89 32 141 61 186 103 39 37 61 48 122 64 102 26 142 44 185 85 20 19 53 39 72 44 195 52 228 64 264 92 44 36 96 53 186 62 104 11 179 26 270 52 180 53 382 77 850 104 172 10 408 32 675 64 137 17 405 19 590 6z m506 -4398 c24 -16 50 -36 58 -46 17 -21 69 -48 144 -76 39 -15 65 -34 95 -69 l42 -49 112 -38 c62 -20 138 -50 169 -66 117 -60 285 -61 400 -3 36 19 128 52 204 74 77 22 151 50 165 61 146 117 174 129 211 89 34 -37 35 -39 10 -128 -28 -99 -32 -105 -124 -149 -46 -22 -114 -60 -150 -86 -37 -25 -90 -52 -117 -60 -28 -8 -85 -31 -128 -50 -193 -87 -511 -88 -665 -2 -35 20 -101 45 -147 57 -108 26 -121 34 -227 124 -170 146 -203 199 -203 324 l0 80 26 20 c36 28 72 26 125 -7z m-2694 -164 c15 -18 -9 -166 -33 -204 -10 -16 -44 -59 -75 -95 -31 -36 -70 -86 -86 -110 -24 -34 -51 -55 -122 -93 -51 -26 -108 -65 -128 -87 -43 -47 -67 -55 -208 -69 -321 -32 -364 -31 -649 5 -119 16 -177 37 -190 70 -3 8 -53 38 -111 66 -90 44 -111 59 -132 93 -14 23 -47 64 -73 91 -40 41 -50 60 -60 107 -16 81 -7 93 75 102 81 8 109 -3 148 -61 16 -24 49 -55 75 -69 26 -15 73 -44 104 -66 71 -48 139 -72 277 -97 205 -38 233 -37 477 18 117 26 131 32 201 81 32 22 77 53 100 68 23 15 96 80 162 145 153 150 196 168 248 105z M7895 13610 c-13 -21 18 -30 109 -30 100 0 107 8 19 21 -32 4 -72 11 -89 15 -20 4 -34 2 -39 -6z M16954 12234 c-51 -24 -97 -35 -319 -74 -157 -28 -163 -30 -280 -104 -132 -83 -138 -94 -138 -270 -1 -186 18 -226 148 -301 l47 -28 72 6 c51 5 111 20 195 52 67 25 170 57 229 71 137 32 137 32 225 103 97 79 102 92 102 271 l0 145 -22 36 c-26 40 -149 119 -185 118 -13 0 -46 -11 -74 -25z M15928 11193 c-29 -32 -49 -65 -58 -97 -10 -37 -22 -55 -54 -78 -57 -41 -73 -72 -86 -158 -17 -116 -18 -120 -61 -159 -55 -49 -66 -73 -79 -176 -16 -131 -48 -257 -71 -281 -56 -59 -69 -207 -73 -819 -2 -274 -8 -511 -14 -551 -14 -88 -51 -174 -84 -196 -14 -9 -60 -48 -101 -87 -98 -91 -116 -99 -282 -130 -158 -29 -276 -32 -351 -8 -27 8 -96 26 -154 38 l-105 23 -40 43 c-22 24 -64 54 -92 68 -39 18 -57 33 -72 63 -41 80 -96 100 -178 63 -77 -36 -150 -213 -177 -431 -19 -160 -41 -224 -88 -262 -31 -24 -42 -43 -59 -99 -15 -50 -34 -85 -66 -122 -54 -61 -79 -113 -88 -182 -6 -42 -15 -57 -55 -95 -56 -53 -92 -109 -121 -185 -11 -30 -24 -55 -29 -55 -35 0 -110 -105 -110 -155 0 -93 46 -116 199 -97 108 14 145 32 172 84 24 47 50 55 209 62 136 6 287 26 390 52 57 13 73 14 130 2 l65 -14 20 -37 20 -37 -20 -19 c-13 -14 -45 -24 -95 -32 -88 -13 -127 -28 -195 -74 -52 -36 -174 -65 -269 -65 -67 0 -153 -27 -214 -68 -81 -54 -105 -62 -207 -73 -110 -13 -168 -36 -189 -78 -22 -41 -34 -46 -151 -65 -55 -9 -116 -20 -136 -26 -40 -11 -119 -64 -119 -80 0 -21 -67 -42 -159 -51 -141 -13 -219 -35 -309 -87 -44 -26 -94 -54 -110 -64 -23 -12 -36 -32 -53 -79 -15 -41 -40 -82 -71 -116 -44 -49 -78 -124 -78 -174 0 -54 -44 -153 -90 -204 -27 -30 -54 -71 -59 -92 -15 -54 -24 -64 -73 -87 -32 -16 -50 -33 -71 -72 -23 -45 -35 -55 -82 -74 -37 -15 -66 -36 -90 -66 -32 -38 -46 -47 -123 -70 -110 -34 -141 -49 -172 -86 -47 -55 -211 -79 -408 -59 l-74 7 -44 47 c-51 55 -70 63 -179 83 l-80 14 -52 56 -52 57 -84 -5 c-97 -6 -134 -23 -169 -75 -14 -21 -49 -64 -77 -96 -58 -66 -85 -114 -95 -170 -4 -21 -30 -107 -57 -190 -77 -233 -78 -315 -7 -494 16 -40 38 -123 49 -184 20 -116 42 -170 79 -204 12 -11 44 -63 71 -117 39 -77 57 -102 91 -125 24 -16 60 -54 81 -86 21 -32 52 -64 70 -73 17 -9 59 -44 92 -79 50 -52 74 -68 142 -96 50 -20 85 -40 88 -51 13 -38 64 -66 162 -88 148 -33 162 -39 178 -71 23 -43 77 -65 205 -84 176 -25 192 -31 233 -79 40 -49 75 -61 197 -71 104 -9 137 -19 209 -65 82 -53 144 -68 331 -80 196 -12 274 -26 308 -55 76 -63 132 -71 567 -86 622 -22 988 5 1055 76 33 35 90 53 202 64 110 11 144 25 186 79 23 29 44 42 89 56 86 27 145 62 173 103 16 23 43 44 76 59 53 23 83 53 103 102 8 20 30 38 66 57 44 22 58 35 77 76 15 32 40 62 73 87 65 49 77 89 73 242 -4 127 -12 148 -65 177 -37 20 -30 21 -226 -46 -157 -54 -181 -66 -209 -106 -32 -48 -53 -54 -206 -64 -163 -10 -279 -2 -292 19 -15 24 11 52 62 66 24 8 65 32 90 54 58 51 81 59 205 76 123 16 152 30 192 88 32 47 40 50 141 61 153 17 230 74 264 193 22 80 23 76 -44 143 -32 33 -69 79 -82 101 -14 26 -40 52 -67 68 -25 14 -59 46 -76 70 -17 25 -57 63 -87 85 -31 22 -68 55 -83 73 -48 57 -95 73 -280 92 -148 16 -185 25 -270 66 -92 45 -155 54 -384 54 -204 0 -269 -11 -357 -60 -61 -34 -128 -47 -290 -56 -183 -10 -210 9 -202 141 l3 49 65 38 c36 20 81 56 100 78 49 57 57 58 520 66 417 7 718 -5 750 -28 10 -7 40 -32 68 -55 44 -35 62 -43 124 -53 110 -17 130 -26 185 -79 48 -48 79 -62 184 -85 25 -5 33 -13 102 -88 41 -45 94 -61 202 -61 113 -1 176 26 239 98 26 31 65 64 86 75 21 11 51 39 67 62 22 33 39 46 73 57 111 34 136 47 188 94 30 27 79 60 108 73 38 17 61 35 79 63 25 41 57 63 109 75 41 10 83 42 101 76 11 22 30 33 82 50 113 38 140 55 167 109 22 42 32 50 78 67 l53 19 30 62 c18 37 46 76 69 95 46 38 62 73 72 158 8 74 27 118 78 178 57 69 61 106 61 547 0 420 -6 486 -51 548 -57 79 -75 118 -88 193 -20 110 -27 125 -86 174 -28 23 -62 64 -75 91 -15 29 -41 58 -67 76 -28 19 -51 45 -65 76 -18 36 -33 52 -71 71 -73 37 -73 38 -72 367 0 323 12 547 34 629 8 30 24 90 36 133 49 178 43 433 -13 597 -43 123 -44 136 -58 580 -10 354 -23 463 -60 533 -63 118 -90 175 -99 208 -14 51 -50 83 -123 109 -34 12 -76 31 -93 41 -43 26 -45 25 -96 -28z m147 -157 c30 -8 59 -17 64 -20 19 -12 51 -117 70 -226 11 -63 32 -164 46 -225 14 -60 32 -139 41 -175 8 -39 18 -171 24 -335 6 -148 14 -351 19 -450 6 -109 6 -253 0 -365 -5 -102 -13 -288 -18 -415 -7 -153 -19 -292 -37 -414 l-26 -183 21 -47 c11 -25 26 -68 32 -96 16 -69 34 -102 88 -161 25 -29 64 -78 86 -110 22 -32 62 -82 88 -112 27 -30 61 -82 77 -117 15 -34 39 -79 52 -101 159 -253 165 -1095 9 -1348 -11 -17 -31 -60 -44 -96 -60 -156 -83 -196 -133 -225 -25 -15 -69 -48 -98 -74 -50 -45 -82 -64 -187 -109 -31 -13 -56 -33 -75 -62 -24 -35 -39 -46 -86 -60 -67 -21 -129 -56 -178 -100 -19 -18 -63 -45 -97 -61 -34 -16 -77 -42 -95 -57 -18 -16 -72 -54 -119 -84 -47 -30 -103 -77 -124 -103 -22 -26 -62 -60 -90 -76 -28 -15 -66 -44 -85 -64 -46 -47 -78 -47 -133 3 -23 22 -78 61 -122 87 -44 26 -100 65 -125 86 -25 21 -87 57 -138 79 -52 23 -126 59 -165 80 -79 42 -178 70 -332 94 -55 8 -143 25 -195 36 -116 26 -336 28 -487 5 -54 -9 -177 -25 -273 -36 -245 -28 -340 -55 -413 -119 -23 -20 -61 -49 -84 -64 -65 -40 -90 -86 -97 -180 -10 -129 18 -165 184 -237 l93 -40 50 21 c166 72 765 107 1132 66 175 -19 203 -27 269 -73 27 -19 78 -46 115 -60 97 -36 111 -47 111 -88 0 -59 -26 -75 -122 -75 -115 0 -253 -18 -318 -42 -30 -10 -84 -29 -120 -40 -102 -33 -153 -84 -134 -133 19 -50 246 -64 395 -26 41 11 109 29 153 40 56 15 100 35 154 71 88 59 81 58 134 20 22 -17 49 -30 59 -30 68 0 98 -48 74 -121 -27 -85 -37 -91 -232 -139 -23 -6 -65 -29 -95 -51 -74 -56 -105 -67 -221 -79 -153 -14 -197 -30 -262 -97 -114 -117 -109 -245 13 -307 66 -33 161 -66 192 -66 14 0 66 11 115 25 50 14 133 35 185 46 106 24 176 55 234 105 65 56 117 39 128 -41 l7 -50 -42 -86 c-36 -75 -48 -89 -87 -111 -27 -15 -60 -46 -83 -79 -32 -45 -52 -61 -130 -101 -50 -26 -100 -59 -110 -72 -24 -34 -74 -62 -122 -71 -22 -4 -80 -29 -130 -56 -79 -42 -104 -50 -195 -63 -58 -9 -168 -29 -245 -45 -255 -54 -581 -73 -805 -46 -69 8 -163 19 -210 25 -627 73 -670 79 -746 110 -90 36 -164 54 -350 85 -94 15 -158 31 -190 48 -27 13 -71 36 -99 51 -30 15 -94 33 -163 45 -90 16 -122 27 -158 52 -56 38 -150 81 -226 103 -52 15 -213 112 -323 196 -22 16 -65 46 -95 66 -30 20 -76 57 -101 83 -25 25 -66 63 -91 83 -25 21 -60 62 -77 92 -17 30 -40 60 -52 66 -11 7 -30 33 -41 58 -11 26 -47 102 -79 170 -87 183 -93 212 -94 442 0 251 4 271 69 367 29 43 70 110 89 150 20 39 44 74 54 77 10 3 43 12 74 21 l55 15 90 -33 c49 -18 110 -49 135 -68 25 -19 69 -45 98 -58 96 -41 381 -51 581 -21 86 13 375 157 425 211 19 21 54 52 80 70 25 18 57 52 71 76 14 24 43 55 64 68 28 18 49 44 70 86 21 41 42 67 66 81 41 24 53 46 88 159 14 47 38 103 52 125 15 21 33 59 42 84 34 107 75 199 90 206 10 3 70 21 134 39 79 21 139 45 185 73 52 31 99 49 192 72 139 35 153 40 197 82 26 24 51 34 144 53 97 21 122 31 193 76 64 40 97 54 156 65 185 35 232 46 321 80 52 19 142 44 200 55 150 27 309 68 352 90 41 21 107 102 132 162 l15 37 -16 81 c-27 137 -61 161 -227 162 -158 1 -328 -26 -387 -62 -65 -40 -126 -58 -257 -76 -63 -8 -123 -20 -134 -26 -27 -15 -48 10 -48 58 0 26 11 43 58 90 44 44 64 76 87 133 17 41 46 93 66 117 23 25 45 68 59 109 27 85 62 153 90 179 34 30 45 59 78 192 17 67 40 136 51 152 26 36 47 93 67 181 16 71 46 130 67 130 7 0 46 -34 87 -76 76 -77 113 -101 185 -124 22 -7 78 -31 125 -55 114 -57 170 -69 330 -69 156 0 230 15 325 69 34 19 87 44 119 56 48 17 77 40 157 119 l99 98 29 111 c16 62 39 128 54 149 49 73 50 84 52 622 2 406 5 525 18 605 21 130 50 243 77 296 12 23 44 108 70 188 56 171 111 298 151 354 16 22 29 45 29 51 0 19 30 56 45 56 8 0 39 -7 70 -14z M17100 11175 c-64 -27 -144 -43 -278 -54 -77 -6 -96 -12 -118 -32 l-26 -24 6 -80 c14 -182 45 -380 70 -440 14 -34 35 -121 47 -195 l22 -135 -2 -330 c-2 -192 -7 -349 -13 -375 -6 -25 -10 -126 -9 -231 2 -196 -5 -260 -44 -399 -19 -67 -26 -130 -36 -302 l-12 -217 18 -63 c9 -34 30 -85 45 -113 15 -27 33 -68 40 -90 29 -94 65 -116 143 -89 114 39 115 40 167 534 12 109 33 207 55 250 22 44 37 189 45 440 5 135 13 263 19 285 6 22 11 106 11 187 l0 147 28 78 28 78 -2 380 -3 380 -22 50 c-16 36 -25 79 -30 155 -8 125 -41 224 -74 227 -11 0 -45 -9 -75 -22z M17228 7750 c-102 -84 -114 -103 -139 -215 -17 -73 -17 -555 0 -797 9 -137 8 -181 -9 -345 -11 -103 -20 -202 -20 -220 0 -35 -38 -123 -69 -163 -26 -33 -39 -147 -21 -189 16 -39 76 -68 160 -77 76 -7 118 2 247 57 134 57 192 70 333 73 268 7 310 33 310 194 0 96 -13 130 -63 161 -41 25 -55 53 -67 142 -21 148 -40 200 -91 254 -42 44 -56 89 -64 195 -14 202 -36 279 -90 314 -36 24 -41 42 -54 206 -35 437 -58 490 -208 490 l-60 0 -95 -80z m142 -175 c70 -114 107 -213 120 -321 17 -152 218 -756 282 -846 10 -15 32 -65 47 -110 15 -46 38 -102 49 -124 18 -35 20 -47 10 -80 -30 -110 -48 -120 -238 -127 -153 -6 -298 -31 -388 -66 -29 -12 -61 -21 -71 -21 -24 0 -67 51 -75 87 -6 26 35 171 93 334 11 31 30 105 42 165 l22 109 -17 190 c-10 105 -22 228 -27 275 -5 47 -14 129 -20 184 l-10 98 30 84 c49 136 88 204 117 204 7 0 22 -16 34 -35z M4845 7125 c-52 -14 -78 -37 -148 -136 -21 -30 -53 -73 -72 -97 -20 -25 -43 -71 -55 -112 -17 -59 -27 -75 -66 -106 -60 -49 -70 -71 -83 -181 -6 -51 -20 -121 -31 -155 -59 -182 -62 -291 -14 -481 20 -79 39 -188 44 -247 12 -136 31 -197 81 -257 22 -26 54 -76 71 -111 21 -45 41 -70 68 -87 38 -24 49 -37 93 -104 12 -20 44 -46 71 -60 31 -16 62 -43 81 -71 22 -31 52 -56 99 -82 36 -20 89 -57 117 -82 38 -34 69 -51 119 -66 60 -18 71 -25 106 -72 41 -55 52 -61 181 -98 60 -17 74 -25 91 -54 23 -39 72 -58 192 -77 79 -12 133 -38 151 -71 16 -29 83 -55 179 -68 84 -11 154 -33 279 -85 87 -37 219 -63 381 -75 233 -18 268 -26 313 -66 70 -64 140 -79 397 -90 163 -6 251 -23 285 -54 70 -65 158 -77 645 -90 201 -5 426 -16 500 -24 171 -19 687 -24 746 -8 79 23 143 135 98 173 -30 25 -53 86 -73 204 -15 82 -31 138 -50 175 -16 30 -41 78 -56 107 l-26 52 -6 153 c-7 193 8 272 66 359 22 32 42 73 46 89 10 46 -13 127 -47 166 l-30 34 -68 0 c-49 0 -86 -7 -136 -27 l-69 -26 -235 -1 c-254 0 -283 5 -340 58 -52 49 -124 70 -270 82 l-85 6 -55 59 c-47 50 -60 59 -90 59 -57 0 -106 -18 -157 -58 -26 -21 -76 -57 -111 -80 -34 -23 -80 -60 -102 -82 -25 -25 -55 -43 -82 -50 -83 -21 -127 -41 -171 -80 -65 -57 -78 -60 -285 -59 -265 1 -278 4 -317 59 -28 40 -43 50 -135 87 -57 23 -107 49 -112 57 -22 39 -65 79 -108 101 -43 22 -52 33 -90 110 -27 55 -55 96 -77 113 -34 27 -73 88 -73 115 0 45 -35 122 -80 173 -39 44 -51 68 -60 112 -27 133 -33 153 -52 177 -11 14 -43 41 -71 59 -29 18 -76 53 -105 78 -33 29 -71 50 -100 58 -100 26 -117 34 -172 85 -55 51 -98 73 -188 95 -32 8 -48 19 -60 42 -31 55 -54 79 -98 99 -31 15 -52 35 -73 70 -19 31 -45 56 -70 68 -28 15 -48 36 -68 73 -20 37 -41 60 -73 78 -31 18 -53 41 -72 75 -39 71 -59 85 -127 84 -31 0 -78 -6 -106 -14z m152 -152 c9 -16 37 -51 62 -78 26 -28 69 -79 96 -114 67 -85 107 -123 188 -177 37 -25 78 -60 92 -78 14 -18 53 -49 89 -70 35 -20 74 -49 87 -63 13 -14 53 -39 88 -55 35 -16 82 -45 104 -65 22 -20 82 -55 133 -79 69 -32 100 -53 121 -81 15 -21 46 -56 69 -79 35 -35 43 -50 54 -110 17 -94 45 -165 81 -211 17 -21 55 -86 85 -145 35 -70 65 -115 85 -130 17 -13 39 -39 49 -58 22 -42 51 -69 106 -99 22 -13 48 -35 57 -49 26 -44 63 -74 130 -102 35 -15 88 -45 118 -68 94 -71 206 -94 459 -93 219 0 361 30 437 93 22 19 80 49 127 67 68 26 97 43 136 82 36 36 68 56 120 75 l71 27 47 -21 c334 -150 452 -177 762 -172 421 6 398 6 416 -11 l16 -17 -16 -78 c-63 -323 -23 -783 80 -921 31 -41 62 -168 48 -191 -22 -34 -258 -40 -834 -22 -380 12 -475 21 -563 55 -36 13 -94 29 -128 34 -212 33 -291 42 -439 51 -190 11 -235 20 -306 60 -64 37 -186 66 -334 80 -136 13 -219 33 -276 66 -23 14 -113 43 -200 65 -88 22 -247 71 -354 108 -107 38 -222 74 -255 80 -33 6 -71 20 -85 31 -42 34 -151 86 -226 108 -44 14 -103 43 -154 77 -46 30 -107 62 -137 70 -42 12 -58 23 -79 54 -18 28 -45 48 -97 74 -40 19 -87 51 -104 70 -18 19 -66 60 -107 91 -57 43 -90 79 -142 153 -37 54 -80 113 -95 132 -37 46 -132 348 -164 520 -49 268 65 761 210 905 19 19 47 60 61 90 22 47 36 62 97 100 85 53 91 55 114 19z M9052 6710 c-89 -34 -107 -50 -140 -118 -15 -32 -44 -69 -73 -94 -26 -22 -60 -59 -75 -81 -15 -23 -49 -65 -75 -93 -62 -65 -170 -222 -208 -301 -18 -37 -53 -85 -87 -119 l-56 -57 4 -46 c12 -120 65 -160 276 -211 75 -18 161 -43 191 -56 96 -43 195 -57 369 -52 l157 4 105 36 c58 19 176 52 263 73 152 36 217 65 217 96 0 32 -109 231 -154 280 -28 30 -71 95 -96 144 -25 49 -56 103 -70 120 -14 16 -41 53 -59 81 -19 28 -50 61 -69 75 -19 13 -51 49 -70 79 -20 30 -53 70 -74 88 -21 19 -52 54 -69 78 -31 45 -102 105 -123 103 -6 -1 -44 -14 -84 -29z",
56
+ outline: "M16150 17094 c-159 -30 -207 -47 -295 -104 -99 -64 -126 -68 -625 -74 -478 -6 -582 -16 -682 -67 -86 -44 -291 -66 -718 -79 -317 -9 -356 -14 -526 -65 -123 -37 -261 -59 -470 -75 -188 -14 -236 -25 -329 -75 -86 -47 -136 -59 -305 -74 l-105 -10 -90 -45 c-119 -60 -249 -86 -432 -86 -31 0 -86 -10 -126 -24 -204 -68 -342 -100 -555 -131 -168 -24 -191 -32 -334 -111 -31 -17 -78 -31 -145 -40 -128 -19 -179 -36 -247 -85 -43 -31 -77 -45 -144 -60 -154 -36 -162 -39 -216 -88 -55 -50 -58 -51 -181 -67 -63 -8 -79 -17 -136 -69 -47 -44 -75 -56 -172 -75 -43 -9 -73 -24 -120 -59 -116 -89 -255 -118 -621 -131 -324 -12 -410 -20 -666 -65 -237 -41 -259 -44 -435 -54 -152 -8 -167 -13 -235 -78 -28 -26 -54 -37 -120 -53 -165 -40 -202 -53 -248 -92 -32 -26 -77 -48 -150 -72 -70 -24 -118 -47 -148 -71 -24 -20 -71 -47 -104 -60 -67 -26 -113 -53 -178 -102 -24 -18 -48 -33 -52 -33 -32 0 -131 -50 -192 -96 -102 -77 -133 -84 -393 -90 -247 -6 -264 -10 -337 -65 -55 -41 -85 -54 -203 -88 -44 -12 -91 -35 -124 -60 -30 -22 -75 -48 -100 -57 -25 -9 -59 -21 -76 -27 -16 -6 -53 -32 -80 -58 -32 -30 -85 -64 -145 -92 -52 -24 -104 -54 -115 -67 -11 -12 -49 -37 -85 -55 -36 -18 -90 -55 -121 -82 -58 -51 -83 -64 -159 -83 -41 -11 -130 -86 -130 -110 0 -4 -24 -20 -52 -35 -29 -16 -73 -48 -98 -71 -55 -50 -76 -62 -154 -83 l-60 -16 -44 -58 c-29 -38 -61 -66 -92 -82 -27 -14 -64 -43 -82 -66 -21 -26 -60 -55 -111 -81 -43 -23 -99 -58 -123 -78 -25 -20 -70 -46 -101 -56 -41 -14 -73 -35 -117 -78 -34 -32 -95 -78 -136 -102 -65 -38 -79 -51 -104 -100 -16 -31 -62 -92 -102 -135 -56 -61 -77 -92 -93 -139 -11 -34 -36 -83 -56 -110 -48 -65 -72 -123 -89 -212 -8 -41 -36 -137 -63 -214 l-48 -139 1 -95 c0 -120 19 -219 54 -290 31 -62 41 -104 71 -275 17 -101 27 -133 64 -201 26 -48 54 -120 69 -177 14 -54 46 -138 75 -194 31 -60 59 -133 72 -188 41 -173 62 -236 92 -273 50 -64 66 -107 78 -208 11 -98 28 -149 74 -209 68 -91 79 -208 70 -785 -8 -587 3 -678 90 -744 18 -14 47 -51 65 -83 36 -64 41 -69 85 -82 17 -5 86 -25 155 -46 261 -78 280 -79 504 -20 72 19 139 35 148 35 44 0 130 44 192 99 131 116 231 110 267 -17 6 -23 28 -61 49 -85 50 -57 59 -76 75 -163 17 -85 24 -102 72 -161 39 -48 53 -88 53 -158 l0 -50 -62 -61 c-35 -34 -99 -101 -143 -148 -44 -47 -108 -114 -141 -148 -42 -43 -64 -74 -69 -98 -10 -48 -32 -88 -71 -132 -52 -58 -80 -124 -97 -230 -9 -54 -35 -145 -58 -205 -43 -112 -79 -280 -79 -367 0 -27 -5 -98 -11 -156 l-12 -105 51 -140 c28 -77 60 -178 71 -225 27 -112 72 -226 117 -294 20 -30 53 -97 73 -148 l37 -93 55 -36 c30 -20 67 -55 83 -77 15 -22 44 -51 65 -65 20 -14 66 -50 102 -81 35 -31 93 -72 129 -91 36 -19 82 -52 102 -74 21 -23 64 -54 97 -70 32 -17 80 -48 105 -70 34 -30 69 -47 131 -66 73 -22 92 -33 139 -79 l54 -54 79 -16 c110 -24 141 -35 198 -66 28 -16 93 -43 145 -61 52 -17 115 -40 140 -51 24 -11 78 -26 119 -34 42 -7 107 -29 146 -47 82 -39 129 -51 279 -72 97 -13 118 -20 177 -56 88 -53 133 -66 298 -84 161 -19 222 -33 316 -73 99 -41 181 -59 330 -72 163 -13 280 -34 360 -64 93 -35 202 -55 370 -67 189 -13 1223 -17 1490 -5 l200 9 54 -23 c30 -13 80 -47 112 -74 32 -28 80 -62 106 -76 26 -14 73 -41 103 -61 30 -20 100 -60 155 -88 55 -29 125 -68 155 -87 30 -19 100 -49 155 -66 55 -17 144 -53 197 -80 89 -45 210 -77 294 -78 5 0 39 -17 75 -39 83 -50 172 -77 284 -86 138 -11 219 -31 298 -74 77 -43 171 -64 337 -76 47 -3 171 -15 275 -26 521 -53 819 -53 1310 1 417 47 413 46 502 97 43 24 110 53 148 65 88 26 119 42 175 89 25 20 82 56 128 78 45 23 99 56 120 74 20 18 56 45 79 60 28 17 54 47 74 82 41 74 60 85 137 85 l63 0 24 -55 c14 -30 32 -85 42 -123 17 -71 21 -76 155 -193 81 -71 87 -72 255 -77 194 -6 264 6 368 62 57 31 109 50 180 65 71 15 130 36 210 75 97 49 123 57 223 71 140 20 209 38 292 75 81 36 138 47 318 60 79 6 196 18 260 27 275 40 1230 2 1562 -62 47 -9 164 -32 260 -50 96 -19 243 -39 325 -45 154 -12 260 -33 465 -94 93 -27 145 -36 275 -46 177 -13 262 -27 408 -71 181 -53 282 -65 662 -79 550 -21 1304 -8 1505 25 47 8 143 33 214 55 95 30 172 46 290 61 195 24 224 31 301 74 39 21 91 39 145 49 133 25 225 53 300 91 42 21 121 47 202 66 87 20 166 46 228 76 52 24 156 65 230 90 138 46 204 75 215 93 11 17 96 56 170 79 51 15 85 33 124 66 29 25 85 60 125 79 39 18 98 53 131 78 33 25 85 58 115 73 30 15 71 42 91 60 19 17 72 51 117 75 45 24 103 61 129 83 26 21 67 50 92 64 26 15 69 47 96 73 28 26 71 61 96 78 39 26 192 177 571 561 35 35 74 81 88 102 14 20 47 56 73 79 26 24 57 61 69 83 11 22 42 63 68 91 31 33 63 84 89 141 23 50 58 113 77 141 20 29 49 91 65 139 16 48 41 101 55 118 29 35 66 105 84 162 7 22 32 66 55 97 44 59 59 92 94 214 12 40 35 89 54 115 52 68 65 99 80 196 16 94 40 155 76 187 33 30 59 138 71 286 11 155 55 464 96 685 24 129 44 375 51 605 8 323 -11 556 -106 1255 -16 121 -34 289 -40 374 -13 179 -30 253 -77 337 -40 72 -60 154 -70 279 -8 108 -22 151 -70 217 -44 60 -70 137 -79 243 -9 101 -22 131 -77 186 l-45 44 -13 75 c-13 82 -44 161 -85 214 -14 18 -39 75 -55 125 -16 49 -53 136 -81 192 -32 66 -61 143 -80 216 -33 128 -52 170 -103 232 -20 23 -42 64 -50 90 -21 73 -51 123 -90 154 -24 18 -49 56 -76 112 -22 47 -54 99 -71 116 -17 17 -45 64 -64 104 -21 47 -44 81 -65 96 -18 13 -59 62 -91 109 -33 47 -74 105 -93 129 -18 24 -41 66 -51 93 -12 35 -32 61 -67 91 -28 23 -59 60 -70 82 -11 21 -44 64 -73 95 -28 30 -71 80 -94 110 -23 30 -168 184 -322 341 -154 158 -293 305 -309 328 -17 23 -35 41 -40 41 -6 0 -47 35 -93 78 -45 43 -102 91 -126 107 -25 17 -73 56 -107 87 -35 31 -88 69 -119 83 -30 15 -66 41 -80 59 -13 18 -53 47 -89 65 -35 17 -89 54 -119 80 -31 27 -82 65 -114 84 -33 20 -78 58 -100 85 -32 37 -55 54 -100 70 -32 12 -77 37 -98 55 -22 19 -74 51 -115 72 -48 24 -92 55 -121 87 -35 38 -60 55 -114 74 -38 14 -89 40 -114 58 -62 45 -93 60 -191 92 -91 29 -160 61 -200 94 -14 11 -69 34 -124 51 -80 25 -107 39 -145 73 -58 55 -74 63 -158 80 -95 20 -113 28 -167 75 -26 23 -57 43 -69 46 -182 40 -226 55 -291 99 -66 45 -100 58 -244 90 -53 11 -90 28 -136 60 -69 47 -88 52 -371 97 -100 16 -153 31 -230 64 -127 54 -191 72 -285 80 -99 9 -181 30 -250 65 -78 40 -145 56 -295 75 -171 21 -203 30 -310 81 l-90 44 -220 15 c-262 18 -291 24 -419 82 l-98 44 -122 9 c-66 5 -202 14 -301 20 -226 13 -364 34 -480 70 -181 57 -267 63 -1106 80 -544 11 -583 14 -674 62 -166 86 -250 98 -675 103 -195 2 -366 1 -380 -1z m-256 -549 c15 -14 36 -44 46 -68 l19 -43 -26 -79 c-48 -152 -76 -191 -177 -259 -68 -45 -112 -32 -297 90 -95 62 -122 91 -168 182 -44 86 5 122 178 133 65 3 138 14 166 23 152 52 220 58 259 21z m1881 -20 c264 -37 484 -54 755 -60 326 -7 482 -23 627 -65 105 -30 195 -42 454 -60 186 -13 302 -33 409 -69 121 -42 218 -59 403 -71 177 -12 260 -26 400 -69 50 -16 130 -36 177 -46 47 -9 146 -32 220 -50 74 -19 162 -39 195 -45 75 -15 213 -54 282 -80 29 -11 101 -28 161 -39 85 -15 128 -29 201 -66 54 -27 140 -58 204 -75 77 -20 127 -40 162 -64 79 -53 106 -64 204 -80 76 -12 105 -22 169 -60 47 -27 117 -56 182 -75 73 -21 122 -42 160 -69 79 -55 87 -59 191 -82 131 -28 663 -287 780 -380 27 -21 66 -44 86 -51 66 -21 116 -50 164 -94 26 -24 69 -55 97 -69 27 -14 67 -46 87 -70 30 -37 51 -51 112 -73 51 -19 94 -45 136 -80 34 -29 91 -68 127 -87 36 -19 76 -47 90 -61 14 -15 50 -43 80 -62 30 -20 82 -61 115 -91 33 -30 84 -71 114 -90 30 -19 82 -63 116 -96 33 -34 72 -70 85 -82 14 -11 44 -40 66 -65 23 -24 83 -82 134 -129 50 -47 106 -100 123 -119 287 -307 429 -475 490 -576 17 -27 49 -70 72 -95 22 -25 53 -70 67 -100 15 -30 45 -77 67 -103 36 -43 81 -138 81 -170 0 -25 41 -77 80 -103 29 -19 51 -46 72 -88 17 -34 45 -79 62 -101 44 -56 59 -81 86 -150 14 -36 43 -80 71 -110 27 -28 57 -74 69 -105 12 -30 34 -75 49 -100 74 -121 233 -464 257 -557 27 -101 48 -149 93 -218 41 -61 50 -88 66 -195 17 -116 24 -134 69 -200 45 -65 63 -122 79 -251 12 -92 20 -118 66 -210 42 -85 53 -119 62 -189 23 -189 41 -274 78 -377 50 -141 57 -180 76 -418 9 -110 22 -243 30 -295 68 -450 68 -976 0 -1405 -8 -49 -21 -164 -30 -255 -17 -166 -21 -183 -89 -356 -28 -72 -66 -236 -66 -286 0 -4 -22 -32 -49 -62 -51 -57 -60 -76 -86 -197 -12 -59 -25 -89 -59 -135 -27 -37 -56 -95 -76 -154 -18 -52 -44 -108 -57 -125 -13 -16 -44 -61 -70 -100 -25 -38 -69 -101 -98 -140 -28 -38 -73 -111 -99 -161 -26 -50 -70 -117 -97 -149 -28 -32 -59 -74 -69 -95 -10 -20 -35 -49 -54 -63 -19 -15 -49 -51 -67 -81 -19 -32 -48 -63 -72 -77 -21 -13 -56 -49 -76 -79 -20 -30 -55 -67 -79 -83 -23 -16 -58 -53 -76 -82 -19 -29 -55 -67 -79 -84 -25 -17 -55 -48 -68 -68 -32 -54 -162 -177 -240 -228 -37 -24 -70 -49 -74 -55 -4 -7 -51 -40 -104 -74 -53 -34 -112 -77 -131 -95 -19 -18 -67 -48 -105 -65 -50 -23 -81 -46 -104 -75 -18 -23 -54 -53 -80 -66 -25 -13 -69 -43 -96 -67 -28 -24 -71 -52 -95 -62 -127 -54 -151 -67 -188 -101 -28 -25 -63 -43 -109 -57 -37 -11 -117 -44 -178 -73 -60 -30 -166 -70 -235 -90 -69 -20 -169 -54 -223 -76 -54 -21 -173 -57 -264 -79 -105 -25 -199 -55 -253 -80 -74 -34 -102 -41 -220 -55 -201 -23 -245 -33 -347 -76 -112 -48 -148 -55 -385 -68 -101 -6 -264 -17 -363 -23 -221 -15 -629 -15 -870 1 -99 6 -283 16 -410 21 -268 11 -325 19 -460 65 -122 42 -235 61 -426 75 -176 12 -279 30 -386 70 -74 26 -189 47 -368 65 -114 11 -440 55 -555 75 -63 10 -162 22 -220 25 -58 3 -170 13 -250 23 -114 13 -233 17 -550 17 -475 0 -712 -17 -995 -71 -99 -18 -245 -43 -324 -54 -152 -22 -194 -35 -249 -77 -44 -33 -98 -49 -233 -68 -115 -16 -170 -33 -204 -65 -70 -66 -221 -84 -269 -31 l-16 17 16 75 c8 41 27 94 41 119 55 95 304 349 428 437 44 31 97 71 117 89 21 19 66 48 100 65 35 17 84 51 109 75 36 33 64 48 120 64 108 31 134 44 169 89 27 34 46 45 114 67 101 33 131 48 180 90 30 26 58 37 135 54 130 29 153 37 250 83 70 33 104 43 195 54 198 25 287 41 504 87 280 61 323 64 817 72 659 11 1077 -10 1530 -76 438 -64 1018 -53 1585 30 113 16 255 34 315 39 173 15 444 68 725 141 41 10 125 29 185 40 165 32 212 48 274 91 45 32 74 43 151 59 121 24 136 30 189 74 55 46 67 52 154 82 49 17 83 37 118 69 26 24 72 56 102 69 30 13 80 40 110 59 31 20 98 56 150 82 51 25 117 65 146 90 28 24 83 61 121 81 38 20 81 51 95 70 14 19 45 44 68 55 84 43 648 596 699 686 16 28 46 71 67 95 20 23 52 78 71 120 18 43 51 99 73 125 48 58 58 79 88 171 13 42 37 89 55 110 43 51 68 104 89 190 12 51 28 87 51 115 62 78 67 92 78 250 11 170 0 283 -32 326 l-19 26 -83 3 c-112 4 -123 -7 -164 -158 -10 -36 -35 -97 -57 -136 -21 -39 -49 -111 -62 -160 -25 -92 -48 -148 -67 -159 -21 -13 -59 -83 -86 -160 -15 -43 -43 -99 -61 -124 -19 -25 -57 -93 -85 -151 -28 -58 -63 -119 -79 -135 -16 -17 -45 -58 -66 -93 -41 -68 -348 -400 -453 -490 -36 -31 -95 -83 -131 -117 -120 -109 -190 -165 -231 -186 -23 -12 -70 -43 -104 -69 -45 -34 -80 -52 -130 -65 -123 -31 -130 -34 -176 -88 -39 -45 -61 -60 -136 -91 -55 -23 -102 -51 -123 -72 -19 -20 -54 -40 -83 -50 -28 -9 -87 -40 -132 -70 l-80 -54 -136 -34 c-100 -24 -151 -43 -196 -70 -65 -39 -145 -59 -287 -72 -53 -4 -132 -23 -231 -55 -167 -53 -227 -65 -384 -74 -58 -3 -179 -13 -270 -21 -393 -35 -1196 -40 -1360 -8 -41 8 -147 19 -235 24 -88 5 -218 13 -290 19 -127 11 -387 23 -870 42 -419 16 -1183 -19 -1425 -66 -41 -8 -115 -19 -164 -25 -129 -16 -216 -36 -282 -65 -75 -33 -196 -62 -299 -70 -86 -8 -155 -32 -195 -69 -34 -32 -71 -49 -168 -76 -56 -16 -102 -36 -144 -66 -34 -24 -96 -55 -140 -70 -60 -20 -91 -37 -132 -75 -31 -28 -86 -64 -130 -84 -42 -19 -100 -52 -129 -74 -28 -21 -70 -48 -92 -59 -22 -11 -73 -47 -114 -80 -47 -38 -96 -67 -138 -82 -58 -21 -133 -83 -133 -112 0 -23 -65 -40 -128 -33 -95 10 -118 35 -127 141 -4 43 -18 108 -32 144 -15 41 -26 96 -30 150 l-5 85 39 75 c32 63 48 83 103 122 36 26 92 70 124 98 37 30 86 60 130 76 52 20 84 41 121 78 35 35 67 57 105 70 81 28 129 54 166 90 18 18 63 44 100 59 36 15 92 45 123 66 62 42 106 59 226 91 44 12 112 39 152 61 52 29 101 46 169 60 53 10 162 37 243 58 203 54 230 59 456 70 416 22 395 20 460 51 88 42 109 65 130 143 l18 67 -20 57 c-11 32 -37 94 -56 138 -21 47 -41 111 -47 155 -16 105 -27 137 -68 199 -21 31 -55 106 -78 175 -23 67 -58 161 -78 209 -20 49 -46 127 -57 175 -23 99 -63 233 -120 407 -37 115 -69 278 -69 359 0 79 -32 253 -60 326 -62 161 -76 278 -85 750 -7 336 8 928 25 1030 6 36 23 92 36 125 59 139 73 192 84 311 14 149 32 228 69 302 16 31 36 92 45 135 8 43 20 85 25 95 5 9 25 67 45 127 20 61 54 139 75 175 22 36 44 83 51 105 18 57 46 109 86 162 20 26 49 72 65 104 16 32 46 72 68 90 24 19 54 59 77 103 20 39 52 87 70 106 19 20 46 54 61 77 50 74 231 270 320 346 49 41 97 84 107 96 10 11 42 35 70 53 28 17 70 49 93 69 22 21 65 50 93 64 29 15 76 50 104 78 41 40 69 58 129 80 41 15 99 44 128 64 67 46 129 73 266 116 61 19 141 49 179 65 38 16 103 35 144 42 198 32 284 51 342 75 163 69 171 70 725 100 211 12 310 13 395 5 62 -5 199 -14 304 -19 105 -6 241 -18 303 -27 92 -13 127 -14 189 -5 l77 11 33 37 c29 32 32 43 32 97 0 137 -26 165 -170 190 -101 17 -141 28 -255 71 -138 53 -180 57 -610 62 -535 7 -624 -2 -844 -82 -45 -16 -120 -32 -191 -40 -173 -21 -249 -41 -325 -86 -46 -28 -88 -44 -143 -55 -125 -23 -215 -51 -306 -93 -47 -22 -111 -47 -143 -56 -85 -24 -179 -62 -258 -104 -38 -21 -113 -55 -165 -76 -60 -24 -110 -52 -135 -75 -22 -21 -64 -50 -94 -66 -30 -16 -70 -48 -90 -72 -20 -24 -58 -59 -86 -76 -65 -43 -465 -434 -511 -502 -20 -29 -54 -67 -75 -84 -22 -17 -54 -56 -71 -86 -16 -30 -46 -67 -65 -81 -21 -16 -49 -55 -70 -97 -19 -39 -52 -94 -73 -121 -48 -65 -72 -114 -98 -200 -27 -89 -38 -103 -119 -160 -92 -64 -90 -64 -114 -11 -25 58 -19 93 23 132 58 55 61 74 66 355 5 296 -3 366 -55 489 -47 114 -71 213 -82 345 -10 126 -25 174 -80 271 -27 47 -50 107 -70 185 -16 64 -43 143 -60 176 -16 34 -44 114 -60 179 -33 128 -73 254 -114 349 -14 33 -37 110 -52 170 -34 141 -40 157 -91 235 -24 36 -52 98 -64 140 -27 91 -41 120 -90 185 -21 28 -50 86 -65 130 -15 44 -40 98 -56 119 -40 55 -42 155 -5 207 14 19 41 61 60 95 20 33 54 77 76 97 23 20 52 61 65 92 14 30 42 74 64 98 41 44 78 112 111 199 11 29 36 78 55 108 45 69 90 163 105 219 6 24 34 87 61 140 51 100 50 99 87 370 14 98 36 123 147 162 27 10 59 16 70 14 11 -3 70 -11 130 -20z m-5276 -405 c40 -11 96 -32 124 -47 29 -14 88 -39 132 -55 44 -15 98 -41 121 -58 23 -16 84 -50 135 -75 103 -50 281 -169 344 -230 22 -21 59 -51 82 -65 23 -15 60 -50 82 -77 22 -28 57 -63 78 -79 22 -15 50 -42 63 -61 14 -18 49 -50 79 -70 29 -21 69 -62 88 -91 20 -29 51 -65 70 -79 19 -15 48 -46 64 -69 16 -24 53 -68 82 -99 30 -31 71 -89 92 -132 21 -41 51 -91 67 -109 16 -18 43 -61 60 -96 16 -35 48 -86 70 -115 45 -59 69 -128 88 -257 l14 -89 -32 -28 c-18 -16 -43 -29 -55 -29 -44 0 -151 50 -192 89 -22 22 -69 53 -105 71 -35 18 -80 45 -100 61 -19 15 -70 44 -113 64 -48 22 -101 57 -136 89 l-58 54 -94 21 c-62 15 -120 37 -176 67 -88 48 -174 81 -282 109 -36 9 -90 30 -122 46 -88 44 -211 76 -365 94 -76 9 -193 29 -259 45 -66 16 -176 34 -245 40 -170 14 -329 58 -419 117 -36 24 -103 55 -148 70 -52 17 -104 43 -140 70 -67 50 -108 65 -258 94 -60 11 -157 36 -215 54 -58 19 -183 48 -279 65 -177 31 -265 59 -281 90 -7 14 6 31 69 88 94 85 137 104 301 132 88 14 142 30 198 56 115 53 143 62 280 85 73 12 171 37 234 60 92 33 161 47 465 95 197 31 390 67 428 79 88 29 77 29 164 5z m-2554 -1000 c210 -10 278 -21 518 -83 76 -20 177 -39 225 -43 131 -10 217 -30 286 -69 38 -21 104 -45 171 -61 114 -27 149 -41 200 -80 17 -12 69 -40 115 -62 68 -31 95 -50 130 -91 30 -36 60 -60 98 -77 30 -13 74 -42 98 -64 48 -44 33 -44 208 -8 149 31 246 22 348 -31 61 -32 102 -45 193 -61 188 -33 212 -40 251 -71 48 -38 108 -64 178 -79 64 -13 169 -54 206 -79 35 -25 217 -107 268 -122 26 -8 51 -23 63 -40 11 -15 36 -33 55 -39 82 -27 166 -72 214 -115 28 -24 63 -47 78 -51 15 -3 52 -14 82 -24 30 -10 70 -21 88 -25 24 -5 37 -16 51 -44 26 -51 36 -57 135 -91 69 -23 99 -40 140 -78 32 -28 77 -57 111 -70 31 -12 75 -37 98 -56 23 -18 83 -54 132 -79 50 -25 101 -57 115 -72 37 -39 72 -55 195 -85 l110 -27 17 -34 c20 -43 32 -53 83 -69 78 -25 141 -63 205 -125 36 -34 79 -69 96 -78 33 -17 69 -95 97 -212 8 -33 29 -100 46 -149 25 -71 31 -102 30 -160 0 -39 6 -102 16 -141 33 -138 2 -481 -49 -534 -31 -32 -49 -82 -65 -181 -20 -119 -30 -149 -63 -178 -37 -33 -69 -96 -93 -182 -22 -82 -36 -109 -78 -151 -32 -32 -46 -64 -76 -176 -6 -22 -28 -62 -49 -87 -57 -69 -98 -194 -118 -362 -12 -98 -25 -160 -44 -209 -51 -130 -76 -342 -73 -625 3 -362 2 -471 -7 -510 -6 -29 -37 -44 -107 -55 -43 -7 -106 -24 -140 -38 l-61 -25 -34 24 c-18 13 -56 27 -83 30 -61 8 -181 67 -189 92 -9 27 -59 72 -113 101 -37 20 -51 35 -63 67 -21 58 -69 123 -102 140 -31 16 -69 70 -87 126 -11 34 -62 90 -91 100 -7 2 -20 47 -31 101 -22 118 -40 158 -85 189 -37 25 -42 37 -75 192 -13 61 -36 124 -69 191 l-50 100 0 72 c0 89 -45 273 -87 353 -7 14 -13 43 -13 65 -1 22 -7 78 -15 125 -8 47 -23 150 -35 229 -11 80 -34 227 -50 327 -17 100 -30 202 -30 227 0 63 -18 143 -45 197 -17 34 -28 91 -44 225 -42 353 -50 394 -91 471 -27 51 -42 98 -55 170 -28 157 -33 171 -74 211 -41 40 -91 148 -91 197 0 52 -25 92 -68 109 -35 14 -41 21 -47 56 -3 22 -19 60 -35 84 -28 44 -51 60 -195 138 l-60 32 -68 -12 c-89 -15 -101 -22 -128 -77 -18 -39 -22 -63 -21 -141 1 -105 11 -130 79 -194 33 -31 42 -49 57 -115 23 -100 36 -124 85 -163 46 -37 47 -40 65 -158 10 -64 24 -111 55 -173 43 -90 61 -154 85 -315 8 -55 32 -156 54 -225 42 -132 52 -186 77 -395 19 -154 74 -468 116 -650 41 -184 47 -218 64 -420 21 -249 28 -284 75 -376 45 -89 65 -159 75 -264 7 -76 24 -111 79 -164 25 -24 47 -63 71 -126 20 -50 53 -114 74 -143 29 -39 44 -72 61 -144 13 -51 34 -122 47 -158 70 -183 69 -251 -7 -510 -16 -58 -37 -148 -46 -200 -18 -105 -21 -113 -69 -176 -19 -24 -45 -80 -60 -129 -21 -66 -38 -97 -72 -135 -27 -30 -58 -81 -77 -128 -18 -43 -51 -103 -74 -133 -22 -30 -57 -90 -77 -134 -20 -44 -49 -93 -64 -110 -16 -16 -44 -53 -62 -82 -42 -63 -212 -265 -258 -307 -19 -17 -65 -59 -103 -93 -49 -44 -87 -69 -131 -85 -47 -17 -75 -36 -123 -85 -71 -72 -82 -75 -128 -31 -27 26 -43 58 -74 153 -22 66 -47 140 -56 163 -15 39 -26 99 -55 301 -7 43 -26 96 -60 165 -40 78 -56 124 -71 203 -19 103 -44 166 -86 216 -13 15 -37 70 -52 120 -31 99 -61 164 -98 212 -13 17 -39 70 -60 118 -20 48 -60 123 -89 166 -28 44 -58 100 -65 125 -7 26 -25 60 -40 76 l-28 30 -89 0 c-156 0 -188 -35 -181 -203 6 -127 27 -196 82 -268 24 -31 40 -70 55 -134 29 -118 45 -148 91 -179 41 -27 43 -33 81 -181 17 -66 31 -99 55 -125 36 -40 68 -122 90 -224 20 -100 43 -163 74 -213 52 -82 63 -282 48 -908 -5 -215 -9 -235 -57 -260 -55 -28 -78 -68 -86 -147 l-7 -73 -39 -42 c-22 -24 -39 -49 -39 -56 0 -28 -62 -96 -108 -118 -26 -13 -58 -36 -72 -51 -21 -22 -45 -32 -115 -47 l-90 -20 -181 14 c-209 15 -242 25 -275 84 -23 41 -26 43 -126 70 -30 8 -53 25 -80 56 -20 25 -46 48 -58 51 -11 4 -51 37 -90 75 -38 38 -83 82 -99 97 -16 15 -37 45 -46 68 -10 22 -37 56 -60 74 -24 19 -50 52 -61 77 -12 27 -30 50 -50 61 -57 31 -75 50 -87 91 -15 49 -52 94 -90 110 -18 8 -38 30 -55 64 -15 29 -48 77 -72 107 -64 77 -115 152 -115 168 0 7 -23 37 -50 66 -65 69 -108 158 -132 276 l-20 95 17 61 c16 58 11 151 -10 184 -3 5 -2 46 1 90 l7 82 30 28 c17 15 48 38 69 51 22 13 59 40 83 59 25 20 62 42 82 49 46 16 69 35 99 82 14 22 41 46 70 59 39 20 50 31 71 79 14 32 45 75 71 101 31 30 55 66 71 105 13 33 43 94 66 135 61 107 67 131 57 231 -9 85 -25 128 -67 185 -13 16 -30 47 -39 68 -36 86 -227 246 -294 246 -7 0 -36 21 -63 47 l-51 48 -256 12 c-219 11 -286 11 -457 -2 -277 -21 -310 -27 -521 -95 -102 -33 -187 -60 -189 -60 -2 0 -22 -16 -45 -35 -23 -19 -47 -35 -54 -35 -29 0 -103 -59 -121 -96 -10 -22 -37 -60 -60 -86 -38 -42 -46 -60 -70 -158 -18 -71 -25 -122 -21 -143 46 -235 65 -290 110 -306 20 -8 94 -95 122 -145 11 -19 23 -28 131 -105 26 -19 65 -54 86 -78 27 -29 56 -49 96 -64 32 -11 80 -36 107 -55 26 -19 53 -34 60 -34 21 0 158 -65 171 -81 25 -31 35 -112 43 -359 12 -335 2 -400 -64 -450 -18 -13 -42 -39 -52 -57 -75 -127 -108 -174 -132 -192 -16 -11 -43 -47 -61 -81 -24 -44 -43 -66 -67 -77 -34 -17 -74 -80 -74 -117 0 -10 -24 -43 -54 -74 -52 -55 -116 -158 -116 -188 0 -7 -20 -36 -44 -63 -25 -28 -51 -71 -61 -102 -13 -38 -34 -69 -81 -116 -59 -59 -104 -141 -104 -188 0 -7 -25 -35 -55 -61 -30 -25 -64 -63 -76 -83 -18 -32 -33 -42 -112 -73 l-92 -35 -90 8 c-49 5 -106 7 -126 3 -65 -10 -206 40 -254 90 -22 23 -59 57 -82 75 -23 18 -54 54 -69 80 -15 28 -45 62 -70 80 -49 34 -48 32 -94 181 -17 58 -43 121 -56 140 -67 100 -96 449 -69 855 17 268 25 307 72 376 34 51 40 69 99 323 14 61 27 89 56 125 21 25 43 64 49 86 21 83 62 185 81 202 35 32 88 169 88 229 0 47 32 125 65 159 41 41 47 88 15 128 -12 15 -28 66 -40 122 l-20 97 25 30 c14 16 28 42 31 56 3 15 8 33 10 41 6 18 -22 61 -40 61 -20 0 -44 -31 -58 -75 -12 -36 -18 -41 -57 -51 -31 -7 -54 -22 -80 -51 -20 -22 -57 -55 -82 -71 -40 -27 -51 -42 -78 -109 -31 -76 -56 -120 -125 -215 -19 -26 -49 -91 -67 -145 -17 -53 -49 -129 -69 -167 -45 -85 -63 -141 -85 -261 -10 -54 -32 -125 -56 -178 -51 -115 -65 -176 -84 -384 -10 -117 -25 -210 -46 -290 -16 -65 -34 -156 -40 -203 l-9 -85 -45 -42 c-24 -24 -53 -43 -65 -43 -34 0 -137 57 -193 108 -28 26 -68 58 -87 71 -30 21 -124 109 -202 189 -13 13 -55 55 -94 95 -38 40 -81 88 -94 107 -13 19 -45 59 -72 87 -30 33 -64 85 -89 139 -21 48 -55 108 -73 133 -35 47 -59 107 -71 176 -11 56 -31 94 -77 141 l-40 42 -29 118 c-20 80 -45 151 -79 219 l-50 100 -11 125 c-13 146 -6 328 15 368 8 15 28 40 45 56 35 34 58 91 91 224 16 65 33 109 57 144 51 73 62 116 74 277 5 80 21 200 35 266 14 66 34 161 44 210 51 239 78 574 90 1115 10 445 22 639 44 749 8 36 17 89 21 116 3 28 24 118 45 200 22 83 46 191 53 241 11 63 26 112 51 163 38 75 76 205 95 326 6 39 15 98 20 133 11 71 3 104 -31 125 -63 40 -147 28 -205 -31 -21 -20 -53 -44 -73 -53 -38 -17 -53 -40 -70 -108 -8 -29 -28 -61 -61 -96 -58 -62 -74 -102 -99 -257 -15 -95 -25 -131 -54 -181 -47 -84 -72 -181 -96 -367 -21 -154 -34 -210 -51 -210 -32 0 -46 -63 -53 -228 -4 -92 -11 -216 -17 -275 -5 -60 -14 -267 -19 -460 -10 -370 -15 -411 -69 -562 -18 -50 -21 -82 -21 -210 0 -119 -5 -178 -25 -279 -13 -70 -27 -166 -30 -214 -10 -129 -65 -337 -111 -419 -13 -22 -33 -80 -44 -128 -24 -104 -40 -137 -80 -165 -34 -24 -55 -61 -76 -130 -8 -27 -26 -59 -40 -72 -14 -12 -39 -42 -55 -66 -62 -87 -246 -258 -352 -326 -55 -36 -173 -57 -245 -45 -133 23 -135 31 -139 799 -3 619 -3 614 -59 681 -19 22 -34 48 -34 57 0 154 -53 385 -95 415 -33 25 -51 60 -60 122 -10 73 -36 134 -82 196 -62 82 -84 134 -100 232 -16 101 -28 129 -71 171 -37 35 -43 50 -82 199 -19 72 -46 149 -73 199 l-42 81 1 161 c1 247 10 310 45 351 19 22 43 73 68 150 40 124 50 140 99 167 19 10 40 35 54 65 17 36 37 57 81 86 31 21 57 44 57 51 0 24 41 66 88 90 30 16 56 39 71 64 14 23 36 46 50 52 15 7 40 19 56 27 17 7 42 32 55 55 21 35 41 48 135 93 61 29 123 67 139 84 16 17 55 40 85 52 63 23 94 48 111 90 9 21 24 32 64 45 54 18 102 47 178 111 26 21 65 45 85 52 43 15 88 54 108 92 10 18 41 38 112 68 61 27 113 58 138 81 22 21 65 48 95 60 31 12 75 40 100 65 52 50 77 63 183 98 42 15 94 40 115 56 20 17 87 48 147 71 86 31 117 48 141 75 l32 36 84 6 c54 4 104 1 137 -7 l52 -12 29 -52 c17 -28 32 -67 35 -86 9 -54 47 -120 73 -127 30 -7 36 0 56 68 21 74 52 117 106 149 34 20 56 44 91 103 26 43 60 95 77 116 48 60 221 186 314 229 47 22 111 58 141 81 33 26 85 52 133 67 94 31 121 44 179 89 27 20 81 45 142 64 54 17 116 42 138 56 84 52 142 74 242 89 101 16 132 25 268 84 62 27 89 32 225 42 85 6 274 22 420 35 146 14 308 27 360 31 52 3 138 14 190 24 261 50 651 68 1035 50z m6166 -4007 l54 -18 27 -55 c16 -30 40 -93 54 -140 14 -47 39 -124 55 -173 35 -107 56 -296 64 -593 4 -115 15 -288 26 -385 24 -222 24 -389 -1 -654 -10 -115 -26 -359 -35 -540 -20 -439 -10 -505 91 -582 19 -14 42 -39 50 -55 9 -17 39 -55 67 -87 161 -178 181 -213 262 -454 77 -229 95 -343 95 -617 0 -243 -18 -349 -90 -515 -12 -27 -34 -93 -49 -145 -21 -72 -39 -111 -74 -159 -26 -35 -47 -68 -47 -73 0 -21 -44 -70 -84 -95 -22 -14 -63 -48 -91 -77 -39 -40 -70 -59 -142 -89 -70 -29 -98 -47 -119 -74 -17 -23 -50 -46 -91 -64 -35 -16 -80 -45 -101 -64 -48 -43 -233 -162 -334 -215 -42 -22 -105 -66 -140 -98 -260 -241 -344 -262 -501 -128 -29 24 -86 61 -127 81 -41 21 -88 48 -105 60 -38 29 -118 69 -170 85 -22 6 -90 36 -151 66 -119 59 -140 64 -372 84 -162 14 -353 14 -617 0 -354 -18 -360 -19 -415 -48 -79 -43 -250 -163 -266 -187 -18 -28 -9 -151 13 -176 20 -24 133 -72 168 -73 61 -1 354 36 480 61 139 27 386 33 520 14 208 -30 400 -64 460 -82 136 -40 289 -140 351 -230 16 -23 51 -59 79 -79 58 -43 165 -169 165 -195 0 -9 -7 -42 -16 -73 -25 -85 -61 -116 -159 -137 -124 -26 -143 -34 -196 -81 -54 -48 -93 -62 -250 -89 -176 -30 -338 -152 -308 -232 25 -68 151 -92 357 -68 157 17 206 33 264 84 62 54 142 84 241 89 74 4 91 2 107 -13 55 -50 40 -198 -27 -268 -22 -23 -53 -61 -67 -85 -15 -24 -47 -57 -72 -75 -25 -17 -63 -55 -84 -83 -24 -32 -60 -63 -97 -84 -31 -18 -85 -55 -118 -81 -33 -28 -90 -61 -128 -75 -38 -15 -88 -43 -112 -64 -51 -44 -50 -44 -175 -65 -99 -16 -246 -57 -292 -81 -75 -39 -180 -47 -583 -48 -450 -1 -546 7 -775 64 -166 42 -226 53 -390 70 -123 13 -212 34 -257 60 -47 28 -144 55 -258 74 -153 25 -152 25 -203 65 -68 54 -78 58 -183 75 -124 20 -181 41 -257 92 -34 24 -81 48 -105 54 -103 27 -161 52 -215 93 -31 25 -84 59 -117 75 -164 83 -409 328 -496 495 -23 45 -55 102 -71 127 -16 25 -37 74 -48 110 -124 425 -79 748 143 1039 44 56 67 70 154 91 l53 12 31 -27 c43 -35 90 -58 175 -83 41 -13 90 -37 117 -57 90 -68 114 -75 292 -75 234 0 301 14 385 80 19 15 73 41 120 58 67 23 100 42 154 88 112 97 283 269 301 305 10 19 37 54 60 79 29 30 49 63 60 100 46 150 61 188 92 243 19 32 50 91 68 130 41 90 53 101 156 136 46 16 118 45 159 64 41 19 111 42 155 51 111 23 201 54 233 81 48 40 105 63 200 80 91 17 102 22 192 95 17 13 74 30 170 50 113 23 162 38 225 70 70 36 102 45 245 69 124 21 190 38 265 68 55 22 113 43 130 47 35 9 115 88 115 114 0 42 -34 127 -61 155 l-30 29 -117 -4 c-95 -4 -135 -11 -212 -36 -140 -45 -204 -60 -315 -73 -119 -13 -152 -25 -195 -73 l-33 -36 -80 0 c-114 0 -148 32 -87 83 28 24 35 36 76 137 11 25 39 67 63 95 24 27 68 98 98 160 29 60 64 125 77 143 14 18 41 73 61 122 21 50 50 101 67 117 44 41 55 68 88 216 16 74 45 175 64 223 19 49 42 110 51 136 22 65 56 111 87 122 l27 10 64 -65 c135 -137 186 -171 296 -199 46 -12 115 -37 152 -56 145 -73 283 -54 631 84 14 6 71 52 126 103 l100 92 20 71 c85 296 96 403 79 725 -16 307 9 561 87 882 54 220 63 246 109 322 24 39 43 90 57 152 l21 93 50 57 c27 31 59 75 70 98 44 86 64 92 190 50z m1277 -3412 c89 -46 125 -140 157 -410 13 -109 20 -136 59 -220 50 -107 60 -142 76 -251 16 -104 33 -157 100 -295 32 -66 65 -151 74 -189 20 -81 35 -113 77 -161 l31 -35 -7 -74 c-11 -117 -42 -134 -265 -146 -179 -10 -330 -40 -433 -87 l-79 -35 -44 17 c-83 32 -103 115 -61 250 14 44 29 98 32 120 4 22 22 104 41 183 45 189 49 216 35 310 -11 77 -29 251 -52 513 -19 223 51 441 165 510 39 24 48 24 94 0z m-12396 -623 c8 -7 25 -29 38 -48 13 -19 52 -64 87 -100 34 -36 102 -107 150 -159 49 -51 112 -108 141 -127 28 -19 52 -38 52 -42 0 -20 79 -86 128 -108 30 -13 70 -36 90 -52 43 -33 178 -114 272 -162 192 -98 244 -157 291 -331 13 -48 36 -102 57 -133 19 -28 56 -98 83 -155 27 -57 65 -121 84 -142 19 -21 49 -64 66 -94 22 -39 48 -67 88 -94 31 -22 72 -59 92 -83 29 -34 52 -49 115 -73 48 -18 95 -44 119 -66 61 -55 98 -70 209 -81 236 -24 471 5 544 67 15 13 75 46 133 73 65 30 126 67 163 100 61 53 210 132 250 132 13 0 31 -9 41 -20 36 -40 85 -61 183 -80 62 -11 124 -31 163 -51 156 -78 346 -97 685 -69 l152 13 41 -24 c70 -39 74 -53 41 -150 -80 -234 -65 -571 33 -787 25 -53 48 -113 52 -132 4 -19 18 -73 32 -119 l24 -84 -28 -30 c-51 -54 -68 -57 -357 -57 -146 0 -332 4 -413 10 -82 5 -276 14 -433 20 -321 11 -459 28 -566 71 -82 33 -205 54 -405 69 -154 11 -210 26 -324 81 l-80 39 -171 19 c-146 17 -190 26 -290 61 -66 23 -216 66 -336 96 -176 44 -234 63 -310 102 -51 26 -128 56 -170 65 -43 10 -92 29 -110 42 -57 41 -120 72 -197 95 -57 17 -84 32 -121 66 -26 25 -76 58 -111 75 -35 17 -80 46 -99 64 -19 19 -66 51 -104 72 -191 108 -401 334 -502 540 l-68 138 -23 135 c-13 74 -28 160 -33 190 -19 107 -12 317 15 477 33 190 47 234 86 282 18 21 51 72 73 114 98 182 210 312 291 339 62 21 67 21 87 6z m4173 -470 c9 -13 26 -39 38 -58 12 -19 41 -47 64 -62 30 -20 46 -42 63 -82 15 -38 36 -67 67 -92 28 -23 55 -58 69 -88 36 -78 72 -135 100 -159 13 -12 39 -51 57 -87 29 -59 46 -76 113 -116 26 -15 34 -143 10 -163 -40 -34 -389 -73 -646 -72 -237 0 -509 43 -561 88 -9 7 -28 35 -42 61 l-25 47 13 33 c8 18 41 58 74 90 61 60 106 122 117 166 3 14 24 40 46 57 21 17 50 53 63 80 14 26 44 66 66 88 23 22 69 84 103 138 52 83 69 102 111 125 61 34 79 35 100 6z M10270 10758 c-131 -65 -168 -122 -170 -257 l0 -54 44 -41 c32 -30 51 -60 71 -115 l28 -73 46 -20 c25 -11 64 -40 86 -64 35 -37 55 -48 149 -79 70 -23 122 -47 143 -65 44 -39 86 -60 153 -76 88 -22 830 -65 935 -55 l60 6 31 62 c16 34 55 89 85 121 116 127 159 191 159 238 0 8 14 49 30 91 24 59 30 90 30 149 0 95 -17 116 -109 132 -74 13 -84 10 -154 -55 -26 -24 -64 -51 -85 -60 -20 -8 -59 -33 -85 -55 -100 -84 -416 -122 -692 -83 -131 19 -185 41 -250 104 -35 34 -69 56 -113 72 -50 17 -69 30 -87 58 -33 53 -50 65 -153 109 l-93 40 -59 -30z M7580 10570 c-30 -11 -56 -20 -58 -20 -3 0 -44 -39 -92 -87 -157 -158 -202 -192 -284 -212 -26 -6 -85 -30 -130 -51 -170 -81 -473 -83 -616 -2 -30 17 -90 45 -133 63 -64 26 -87 42 -123 85 -52 61 -90 78 -208 95 l-79 11 -26 -20 c-51 -37 -71 -88 -71 -180 0 -101 15 -139 77 -190 24 -20 55 -56 69 -80 19 -32 40 -50 87 -73 34 -18 86 -49 115 -70 59 -42 141 -72 242 -89 87 -15 165 -37 220 -63 69 -33 235 -31 345 5 44 14 141 36 215 48 152 25 196 41 260 94 24 21 74 53 110 71 52 26 74 45 103 87 20 29 57 78 82 108 70 86 123 201 137 296 l12 81 -23 32 c-48 68 -144 93 -231 61z M9020 9851 c-39 -6 -33 -7 49 -14 167 -13 288 -7 275 14 -6 10 -253 10 -324 0z",
57
+ // positioned salmon blush ovals (3024x2136 frame, UPRIGHT — no y-flip), cheek centres
58
+ blushL: { cx: 545, cy: 1255, rx: 95, ry: 62 },
59
+ blushR: { cx: 1130, cy: 1255, rx: 95, ry: 62 },
60
+ // open-eye centres for the awake state (over the closed-arc positions)
61
+ eyeL: { cx: 470, cy: 1095, rx: 52, ry: 58, hl: 20 },
62
+ eyeR: { cx: 815, cy: 1080, rx: 52, ry: 58, hl: 20 },
63
+ };
64
+ // mastiff trace transform (potrace y-flip) — shared by all three traced layers
65
+ const MTT = 'transform="translate(0,2136) scale(0.1,-0.1)"';
66
+
67
+ /* ---- palette: per-colour fills (real-art anchored) ----
68
+ fur = the main body (recolours the traced silhouette)
69
+ dark = inner-ears / haunch stripes / brow-heart (a deeper shade of fur)
70
+ belly = the soft lighter chest/muzzle patch
71
+ cheek = the blush */
72
+ const PALETTE = [
73
+ { name: "Blossom", fur: "#F9D6EE", dark: "#EF9BDA", belly: "#FEF5FB", cheek: "#EE7FC0" }, // pink (default)
74
+ { name: "Sunset", fur: "#E79A41", dark: "#CE7E2A", belly: "#F6D7AE", cheek: "#E8632F" }, // orange (corgi anchor)
75
+ { name: "Ink", fur: "#4F4A57", dark: "#6B6575", belly: "#827C8C", cheek: "#EE7FC0" }, // black (warm grey)
76
+ { name: "Sunbeam", fur: "#F1D86D", dark: "#E0C047", belly: "#FBF1C4", cheek: "#EFA84E" }, // yellow
77
+ { name: "Meadow", fur: "#A9C173", dark: "#8BA653", belly: "#E0EAC6", cheek: "#D88BC0" }, // olive
78
+ { name: "Sky", fur: "#A6CADC", dark: "#82B0C8", belly: "#DCEDF4", cheek: "#EE7FC0" }, // blue
79
+ { name: "Iris", fur: "#C39AE0", dark: "#A87BCC", belly: "#EBDDF6", cheek: "#E07BC4" }, // purple
80
+ { name: "Bubblegum",fur: "#E797D2", dark: "#D070B8", belly: "#F8E0F1", cheek: "#E0588F" }, // magenta
81
+ { name: "Pebble", fur: "#B7B7B7", dark: "#999999", belly: "#E2E2E2", cheek: "#EE9CBE" }, // gray
82
+ // Ginger-&-white bicolor, modelled on the maintainer's cat: white fur + ginger patches,
83
+ // tabby ticks on the orange, pink nose. swatch shows the two tones.
84
+ { name: "Ginger & white", fur: "#F7F2EA", dark: "#E3DCCF", belly: "#FFFFFF", cheek: "#EFA59B",
85
+ pattern: "bicolor", patch: "#E89A4E", patchDark: "#CB7A2C", noseFill: "#E98DA1",
86
+ swatch: "linear-gradient(135deg,#F7F2EA 0 47%,#E89A4E 53% 100%)" },
87
+ // Brown-&-white mackerel tabby, re-anchored off a clean flat-tone reference:
88
+ // warm milk-chocolate base (#A2805A), dark-espresso mackerel stripes (#48331C), a
89
+ // WHITE face mask + white chest/bib + white front paws + white tail-tip, tabby
90
+ // forehead "M", dark tail rings, mauve-pink nose, rosy blush. Cat-only pattern.
91
+ // swatch = brown base · espresso stripe band · white corner.
92
+ { name: "Tabby", fur: "#A2805A", dark: "#48331C", belly: "#FCFBF7", cheek: "#EFA6AF",
93
+ pattern: "tabby", stripe: "#48331C", noseFill: "#C97F88",
94
+ swatch: "linear-gradient(135deg,#A2805A 0 30%,#48331C 36% 50%,#A2805A 56% 72%,#FCFBF7 80% 100%)" },
95
+ // Fawn Spanish-mastiff look — hues sampled off the
96
+ // local-only reference image: fawn body, dark-brown mask+ears, salmon blush, the
97
+ // chunky near-black line. A fixed mastiff-only colour (the mastiff ignores the
98
+ // recolour palette and always uses this). The traced layers read fur/mask/cheek/ear:
99
+ // fur=silhouette mask=dark-brown layer cheek=blush ear=outline line.
100
+ { name: "Fawn", fur: "#CE9D66", dark: "#5F4F40", belly: "#E2C68C", cheek: "#E4AC93",
101
+ saddle: "#5F4F40", mask: "#5F4F40", ear: "#241d29", noseFill: "#1E1812",
102
+ species: "mastiff",
103
+ swatch: "linear-gradient(135deg,#5F4F40 0 30%,#CE9D66 38% 100%)" },
104
+ ];
105
+
106
+ /* ---- hats (optional, selectable). Drawn in the 1744x720 trace frame, sitting
107
+ on the cat's head (the head is low-left in the resting pose). All are loose
108
+ doodles matching the real Piti hat set; outline = OUT, stroke chunky. */
109
+ const HATS = [
110
+ { id: "none", label: "None" },
111
+ { id: "sprout", label: "Sprout" },
112
+ { id: "tophat", label: "Top hat" },
113
+ { id: "wizard", label: "Wizard" },
114
+ { id: "beanie", label: "Beanie" },
115
+ { id: "party", label: "Party" },
116
+ ];
117
+ // Per-species hat transform. Hats are authored around centre x430 / brim ~y250,
118
+ // then shifted onto the real crown:
119
+ // • CAT (1744x720 frame): ear-tips ~x380 & ~x690, dip ~y150 → translate(140,-82)
120
+ // Hats sit bigger now (~1.3×), scaled about the brim-centre (430,250) so they grow
121
+ // up/out while staying seated on the crown. translate = crownPoint − 430*s , −··· − 250*s.
122
+ const HAT_T_CAT = 'transform="translate(11,-157) scale(1.3)"'; // cat crown (570,168)
123
+ // mastiff TRACED frame 3024x2136; the head crown (top of the dome, between the ears)
124
+ // sits at ~(789,658) measured off a coordinate-grid render (viewBox ~(22,18) ÷ fit).
125
+ // Hats authored around (430,250) scaled 1.5 to the big head. translate = crown − 430*s , − 250*s.
126
+ const HAT_T_MASTIFF = 'transform="translate(144,360) scale(1.5)"'; // mastiff crown (789,658)
127
+ function hatSVG(id, species) {
128
+ if (!id || id === "none") return "";
129
+ const S = 'stroke="' + OUT + '" stroke-width="28" stroke-linejoin="round" stroke-linecap="round"';
130
+ const HAT_T = species === "mastiff" ? HAT_T_MASTIFF : HAT_T_CAT;
131
+ let inner = "";
132
+ if (id === "sprout") {
133
+ // a hand-drawn seedling — two leaves + stem on the crown (traced from the snail pal)
134
+ inner = '<g ' + S + '>' +
135
+ '<path d="M430 262 C 424 224 426 196 432 176" fill="none" stroke="#3C7E34" stroke-width="22"/>' +
136
+ '<path d="M432 198 C 470 184 500 150 502 108 C 462 124 436 158 430 196 Z" fill="#62B852"/>' +
137
+ '<path d="M430 214 C 396 198 364 170 360 132 C 398 150 424 182 432 214 Z" fill="#62B852"/>' +
138
+ '</g>' +
139
+ '<path d="M444 176 C 470 158 488 132 494 116" fill="none" stroke="#3C7E34" stroke-width="9"/>' +
140
+ '<path d="M420 196 C 396 178 378 156 368 140" fill="none" stroke="#3C7E34" stroke-width="9"/>';
141
+ } else if (id === "tophat") {
142
+ inner = '<g ' + S + '>' +
143
+ '<path d="M236 250 Q236 232 430 228 Q624 232 624 250 Q624 270 430 274 Q236 270 236 250 Z" fill="#2A2730"/>' +
144
+ '<path d="M300 250 Q296 120 312 48 Q430 22 548 50 Q564 122 560 250 Q430 266 300 250 Z" fill="#2A2730"/>' +
145
+ '<rect x="302" y="138" width="258" height="50" rx="8" fill="#D24A3F" stroke="none"/>' +
146
+ '</g>';
147
+ } else if (id === "wizard") {
148
+ inner = '<g ' + S + '>' +
149
+ '<path d="M236 258 Q236 238 430 234 Q624 238 624 258 Q624 278 430 282 Q236 278 236 258 Z" fill="#6E4FAE"/>' +
150
+ '<path d="M430 14 Q510 140 572 252 Q430 268 288 252 Q350 140 430 14 Z" fill="#7B5CC0"/>' +
151
+ '<path d="M404 104 l16 32 34 6 -25 24 6 35 -31 -17 -31 17 6 -35 -25 -24 34 -6z" fill="#F1D86D" stroke="none"/>' +
152
+ '</g>';
153
+ } else if (id === "beanie") {
154
+ inner = '<g ' + S + '>' +
155
+ '<path d="M278 222 Q286 86 430 82 Q574 86 582 222 Q430 238 278 222 Z" fill="#C0504A"/>' +
156
+ '<path d="M252 256 Q252 208 430 204 Q608 208 608 256 Q608 284 430 286 Q252 284 252 256 Z" fill="#E8E2DA"/>' +
157
+ '<circle cx="430" cy="64" r="30" fill="#E8E2DA"/>' +
158
+ '</g>';
159
+ } else if (id === "party") {
160
+ inner = '<g ' + S + '>' +
161
+ '<path d="M430 8 Q516 150 574 256 Q430 272 286 256 Q344 150 430 8 Z" fill="#C36ED0"/>' +
162
+ '<path d="M384 118 q46 14 92 0 M360 178 q70 18 140 0" fill="none" stroke="#F1D86D" stroke-width="22"/>' +
163
+ '<circle cx="430" cy="10" r="28" fill="#F1D86D"/>' +
164
+ '</g>';
165
+ } else { return ""; }
166
+ return '<g ' + HAT_T + '>' + inner + '</g>';
167
+ }
168
+
169
+ /* ---- body markings, drawn inside the silhouette clip (1744x720 frame) ---- */
170
+ // Default markings: soft belly, dark inner-ears, haunch stripes, heart brow, blush.
171
+ function normalMarks(c) {
172
+ return (
173
+ '<ellipse cx="430" cy="500" rx="180" ry="120" fill="' + c.belly + '" opacity=".6"/>' +
174
+ '<path d="M298 150 Q345 35 425 110 Q360 130 320 175 Z" fill="' + c.dark + '"/>' +
175
+ '<path d="M548 150 Q600 35 660 122 Q600 130 565 170 Z" fill="' + c.dark + '"/>' +
176
+ '<g fill="none" stroke="' + c.dark + '" stroke-width="30" stroke-linecap="round" opacity=".85">' +
177
+ '<path d="M1070 460 Q1035 530 1070 600"/>' +
178
+ '<path d="M1145 450 Q1110 525 1145 595"/>' +
179
+ '<path d="M1218 462 Q1188 525 1218 590"/>' +
180
+ '</g>' +
181
+ '<path transform="translate(516,205) scale(6.2)" d="M0 4 C-3 -1 -9 0 -9 5 C-9 9.5 -4 13 0 16 C4 13 9 9.5 9 5 C9 0 3 -1 0 4 Z" fill="' + c.dark + '"/>' +
182
+ '<ellipse cx="368" cy="432" rx="62" ry="38" fill="' + c.cheek + '" opacity=".5"/>' +
183
+ '<ellipse cx="602" cy="432" rx="62" ry="38" fill="' + c.cheek + '" opacity=".5"/>'
184
+ );
185
+ }
186
+ // Bicolor (ginger-&-white) markings modelled on the maintainer's cat: white base fur with
187
+ // ginger patches over the head-cap+ears, the back/saddle, and the tail; subtle
188
+ // tabby ticks on the orange; faint blush. Ellipses bleed past the silhouette so
189
+ // the clip trims them flush to the outline (no white rim along the back).
190
+ function bicolorMarks(c) {
191
+ return (
192
+ // mostly WHITE body with discrete ginger patches (white-dominant):
193
+ '<ellipse cx="470" cy="150" rx="205" ry="170" fill="' + c.patch + '"/>' + // ginger head cap + ears (white muzzle/chin below)
194
+ '<ellipse cx="452" cy="250" rx="46" ry="118" fill="' + (c.belly || "#fff") + '"/>' + // white forehead blaze splitting the cap
195
+ '<ellipse cx="770" cy="300" rx="165" ry="150" fill="' + c.patch + '"/>' + // shoulder patch
196
+ '<ellipse cx="1245" cy="335" rx="255" ry="240" fill="' + c.patch + '"/>' + // rump patch
197
+ '<ellipse cx="1520" cy="430" rx="235" ry="185" fill="' + c.patch + '"/>' + // ginger tail
198
+ '<g fill="none" stroke="' + c.patchDark + '" stroke-width="26" stroke-linecap="round" opacity=".6">' +
199
+ '<path d="M1150 215 Q1120 300 1150 385"/>' + // tabby ticks on the rump
200
+ '<path d="M1260 205 Q1230 295 1260 385"/>' +
201
+ '<path d="M1370 215 Q1340 300 1370 385"/>' +
202
+ '<path d="M470 55 Q452 115 470 180"/>' + // a couple on the head cap
203
+ '<path d="M548 70 Q530 128 548 196"/>' +
204
+ '</g>' +
205
+ '<ellipse cx="372" cy="430" rx="56" ry="33" fill="' + c.cheek + '" opacity=".5"/>' +
206
+ '<ellipse cx="600" cy="430" rx="56" ry="33" fill="' + c.cheek + '" opacity=".5"/>'
207
+ );
208
+ }
209
+ // Brown-&-white mackerel tabby, re-anchored off a clean flat-tone reference.
210
+ // Base fur is the warm milk-chocolate brown; clipped to the silhouette we lay, in
211
+ // order: a solid WHITE face-mask (muzzle + chin + cheeks + a blaze poking up into the
212
+ // brown cap) + white chest/bib + white front paws + a white tail-tip; espresso
213
+ // mackerel stripes ribbing the back/flank; dark tail rings; the tabby forehead "M" +
214
+ // a couple of cap bars on the brown crown; dark inner-ears with a faint pink; and a
215
+ // rosy blush on each white cheek. Shapes bleed past the outline so the clip trims them.
216
+ function tabbyMarks(c) {
217
+ const st = c.stripe || c.dark;
218
+ const W = c.belly || "#fff";
219
+ return (
220
+ // --- WHITE markings (face mask, chest, paws, tail tip) ---
221
+ '<g fill="' + W + '">' +
222
+ '<ellipse cx="510" cy="478" rx="245" ry="150"/>' + // muzzle / lower-face mask
223
+ '<ellipse cx="560" cy="330" rx="74" ry="150"/>' + // blaze poking up between the eyes
224
+ '<ellipse cx="455" cy="565" rx="240" ry="135"/>' + // chest / bib
225
+ '<ellipse cx="275" cy="600" rx="140" ry="98"/>' + // left front paw (toe tuck)
226
+ '<ellipse cx="650" cy="605" rx="140" ry="90"/>' + // right front paw
227
+ '<ellipse cx="1320" cy="470" rx="95" ry="105"/>' + // white tail tip
228
+ '</g>' +
229
+ // --- espresso mackerel stripes ribbing the back + flank (vertical ribs sweeping
230
+ // with the spine, denser toward the rump), drawn on the brown ---
231
+ '<g fill="none" stroke="' + st + '" stroke-width="44" stroke-linecap="round" opacity=".9">' +
232
+ '<path d="M745 140 Q732 320 778 470"/>' +
233
+ '<path d="M850 120 Q838 322 892 482"/>' +
234
+ '<path d="M955 112 Q945 330 1008 492"/>' +
235
+ '<path d="M1062 118 Q1056 336 1126 496"/>' +
236
+ '<path d="M1168 132 Q1166 346 1238 500"/>' +
237
+ '<path d="M1272 158 Q1282 360 1348 498"/>' +
238
+ '<path d="M1372 200 Q1392 358 1450 478"/>' +
239
+ '</g>' +
240
+ // --- dark tail rings on the curled tail (~x1150-1450), white tip drawn above ---
241
+ '<g fill="none" stroke="' + st + '" stroke-width="48" stroke-linecap="round" opacity=".92">' +
242
+ '<path d="M1185 408 Q1232 478 1198 548"/>' +
243
+ '<path d="M1262 402 Q1312 476 1278 550"/>' +
244
+ '<path d="M1342 410 Q1392 476 1356 548"/>' +
245
+ '</g>' +
246
+ '<ellipse cx="1322" cy="470" rx="92" ry="102" fill="' + W + '"/>' + // white tail tip on top of the last ring
247
+ // --- tidy tabby head striping framing the blaze (two thin strokes each side,
248
+ // flowing up the brown cap toward the ears — the classic forehead "M") ---
249
+ '<g fill="none" stroke="' + st + '" stroke-width="20" stroke-linecap="round" opacity=".82">' +
250
+ '<path d="M432 270 Q452 202 470 152"/>' + // left inner
251
+ '<path d="M374 262 Q394 192 416 140"/>' + // left outer (toward ear)
252
+ '<path d="M662 270 Q640 202 622 152"/>' + // right inner
253
+ '<path d="M720 262 Q700 192 678 140"/>' + // right outer (toward ear)
254
+ '</g>' +
255
+ // --- dark inner-ears with a faint pink, on the brown cap ---
256
+ '<path d="M300 150 Q350 32 432 112 Q368 132 326 178 Z" fill="' + st + '"/>' +
257
+ '<path d="M576 150 Q636 30 700 124 Q636 134 600 172 Z" fill="' + st + '"/>' +
258
+ '<path d="M340 140 Q372 78 418 124 Q374 138 350 168 Z" fill="#E6A6AD" opacity=".75"/>' +
259
+ '<path d="M608 140 Q644 80 686 128 Q642 140 620 166 Z" fill="#E6A6AD" opacity=".75"/>' +
260
+ // --- rosy blush on each white cheek ---
261
+ '<ellipse cx="400" cy="468" rx="62" ry="36" fill="' + c.cheek + '" opacity=".7"/>' +
262
+ '<ellipse cx="652" cy="470" rx="62" ry="36" fill="' + c.cheek + '" opacity=".7"/>'
263
+ );
264
+ }
265
+
266
+
267
+ /* Build the resting pet in its species trace frame.
268
+ awake → open round eyes (over the muzzle); else the traced sleepy arcs.
269
+ species 'cat' (1744x720, TT) or 'mastiff' (its own bespoke build below). */
270
+ // Build the mastiff — three TRACED layers (3024x2136 potrace frame, MTT):
271
+ // silhouette (fawn fur) → clipped dark-brown mask+ears+brow+stripes → positioned
272
+ // salmon blush → chunky near-black outline+harness+features on top.
273
+ // Always uses the Fawn palette colours (passed in c), ignoring the recolour hues.
274
+ function mastiffBody(c, awake, hat) {
275
+ const cid = "fpM" + (++clipSeq);
276
+ const fur = c.fur || "#CE9D66", brown = c.mask || "#5F4F40",
277
+ cheek = c.cheek || "#E4AC93", line = c.ear || OUT;
278
+ const M = MASTIFF_P;
279
+ // awake: draw open eyes over the closed-arc positions (the closed arcs live in the
280
+ // traced outline layer, so when awake we paint fawn lids over them, then round eyes).
281
+ const eye = awake
282
+ ? '<g ' + MTT + ' fill="' + fur + '"><circle cx="' + (M.eyeL.cx*10) + '" cy="' + ((2136-M.eyeL.cy)*10) + '" r="120"/><circle cx="' + (M.eyeR.cx*10) + '" cy="' + ((2136-M.eyeR.cy)*10) + '" r="120"/></g>' +
283
+ '<ellipse cx="' + M.eyeL.cx + '" cy="' + M.eyeL.cy + '" rx="' + M.eyeL.rx + '" ry="' + M.eyeL.ry + '" fill="' + OUT + '"/>' +
284
+ '<circle cx="' + (M.eyeL.cx + 16) + '" cy="' + (M.eyeL.cy - 22) + '" r="' + M.eyeL.hl + '" fill="#fff"/>' +
285
+ '<ellipse cx="' + M.eyeR.cx + '" cy="' + M.eyeR.cy + '" rx="' + M.eyeR.rx + '" ry="' + M.eyeR.ry + '" fill="' + OUT + '"/>' +
286
+ '<circle cx="' + (M.eyeR.cx + 16) + '" cy="' + (M.eyeR.cy - 22) + '" r="' + M.eyeR.hl + '" fill="#fff"/>'
287
+ : ""; // sleepy closed-eye arcs are baked into the traced outline layer
288
+ return (
289
+ // 1. traced body silhouette → fawn fur (drawn under the potrace y-flip transform)
290
+ '<g ' + MTT + '><path d="' + M.sil + '" fill="' + fur + '"/></g>' +
291
+ // 2. clip to the silhouette; CLIP GOTCHA: transform on the <path>, never a <g>.
292
+ '<clipPath id="' + cid + '"><path ' + MTT + ' d="' + M.sil + '"/></clipPath>' +
293
+ '<g clip-path="url(#' + cid + ')">' +
294
+ // dark-brown mask + droopy ears + brow ridge + haunch stripe ticks (traced)
295
+ '<g ' + MTT + '><path d="' + M.brown + '" fill="' + brown + '"/></g>' +
296
+ // salmon blush ovals on the cheeks (positioned, upright frame)
297
+ '<ellipse cx="' + M.blushL.cx + '" cy="' + M.blushL.cy + '" rx="' + M.blushL.rx + '" ry="' + M.blushL.ry + '" fill="' + cheek + '" opacity=".75"/>' +
298
+ '<ellipse cx="' + M.blushR.cx + '" cy="' + M.blushR.cy + '" rx="' + M.blushR.rx + '" ry="' + M.blushR.ry + '" fill="' + cheek + '" opacity=".75"/>' +
299
+ '</g>' +
300
+ // 3. chunky near-black outline + harness + face features (traced), on top
301
+ eye +
302
+ '<g ' + MTT + '><path d="' + M.outline + '" fill="' + line + '"/></g>' +
303
+ hatSVG(hat, "mastiff")
304
+ );
305
+ }
306
+
307
+ let clipSeq = 0;
308
+ function petBody(species, c, awake, hat) {
309
+ if (species === "mastiff") return mastiffBody(c, awake, hat);
310
+ const cid = "fpBody" + (++clipSeq);
311
+ const A = P; // cat path set
312
+ const T = TT; // trace transform
313
+ // open-eye centres (measured off the traced muzzle):
314
+ const eyeGeo = { lx: 460, rx: 660, ey: 385, rx_: 34, ry_: 40, hl: 11 };
315
+ const eyes = awake
316
+ ? '<g ' + T + '><path d="' + A.eyeL + '" fill="' + c.fur + '"/><path d="' + A.eyeR + '" fill="' + c.fur + '"/></g>' +
317
+ '<ellipse cx="' + eyeGeo.lx + '" cy="' + eyeGeo.ey + '" rx="' + eyeGeo.rx_ + '" ry="' + eyeGeo.ry_ + '" fill="' + OUT + '"/><circle cx="' + (eyeGeo.lx + 12) + '" cy="' + (eyeGeo.ey - 17) + '" r="' + eyeGeo.hl + '" fill="#fff"/>' +
318
+ '<ellipse cx="' + eyeGeo.rx + '" cy="' + eyeGeo.ey + '" rx="' + eyeGeo.rx_ + '" ry="' + eyeGeo.ry_ + '" fill="' + OUT + '"/><circle cx="' + (eyeGeo.rx + 12) + '" cy="' + (eyeGeo.ey - 17) + '" r="' + eyeGeo.hl + '" fill="#fff"/>'
319
+ : '<g ' + T + '><path d="' + A.eyeL + '" fill="' + OUT + '"/><path d="' + A.eyeR + '" fill="' + OUT + '"/></g>';
320
+
321
+ const marks = c.pattern === "bicolor" ? bicolorMarks(c)
322
+ : (c.pattern === "tabby" ? tabbyMarks(c) : normalMarks(c));
323
+
324
+ return (
325
+ // silhouette (fur)
326
+ '<g ' + T + '><path d="' + A.sil + '" fill="' + c.fur + '"/></g>' +
327
+ // recolourable overlays, clipped to the body
328
+ '<clipPath id="' + cid + '"><path ' + T + ' d="' + A.sil + '"/></clipPath>' +
329
+ '<g clip-path="url(#' + cid + ')">' + marks + '</g>' +
330
+ // outline on top (closed-eye arcs swapped for open when awake); nose can be tinted
331
+ '<g ' + T + '><path d="' + A.outMain + '" fill="' + OUT + '"/><path d="' + A.nose + '" fill="' + (c.noseFill || OUT) + '"/></g>' +
332
+ eyes +
333
+ // hat last, perched on the head (per-species crown offset)
334
+ hatSVG(hat, species)
335
+ );
336
+ }
337
+
338
+ /* Build a full <svg> string. config: {name, furIdx, hat}. state: {awake:bool}
339
+ The cat only exists in the resting pose (the iconic Piti) — there is no
340
+ separate sitting pose; "awake" just opens the eyes. Faces LEFT (flip scaleX). */
341
+ function svg(config, state) {
342
+ let species = (config && config.species) || "cat";
343
+ if (species !== "mastiff") species = "cat";
344
+ // the mastiff is a fixed look — always use its own palette entry.
345
+ let c;
346
+ if (species === "mastiff") {
347
+ c = PALETTE.find(function (p) { return p.species === "mastiff"; }) || PALETTE[0];
348
+ } else {
349
+ c = PALETTE[(config && config.furIdx) || 0] || PALETTE[0];
350
+ }
351
+ const hat = (config && config.hat) || "none";
352
+ state = state || {};
353
+ // Fit the traced art into a 100x100 viewBox, vertically centred with hat headroom
354
+ // (overflow:visible lets a tall hat spill). Each species has its own trace frame,
355
+ // so each gets its own scale + offset chosen so the BODY lands at the same on-screen
356
+ // size + baseline (the cat and the bigger mastiff share one on-screen footprint).
357
+ let inner, fit;
358
+ if (species === "mastiff") {
359
+ // mastiff TRACED frame 3024x2136; the body silhouette occupies ~x0..2697 /
360
+ // ~y523..2136 (bbox 2697x1613), centre ~(1348,1330). This curl is roughly square.
361
+ // The mastiff is a BIG dog — render it ~1.35x the cat's on-screen footprint (≥30%).
362
+ const scale = (100 / 2697) * 1.35; // fit the body width, then ≥30% larger
363
+ const tx = 50 - 1348 * scale; // centre the body bbox on x50
364
+ // rest on the cat's baseline: place the body bottom (~y2136 → frame bottom) low.
365
+ const ty = 92 - 2136 * scale; // bottom of body ≈ y92 on screen
366
+ fit = 'transform="translate(' + tx.toFixed(2) + ',' + ty.toFixed(2) + ') scale(' + scale.toFixed(5) + ')"';
367
+ } else {
368
+ const scale = 100 / 1744; // ~0.05734
369
+ const ty = (100 - 720 * scale) / 2 + 6; // nudge down a touch; hats overflow up
370
+ fit = 'transform="translate(0,' + ty.toFixed(2) + ') scale(' + scale.toFixed(5) + ')"';
371
+ }
372
+ return '<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" overflow="visible">' +
373
+ '<ellipse class="pt-shadow" cx="50" cy="84" rx="30" ry="5" fill="rgba(60,30,55,.16)"/>' +
374
+ '<g ' + fit + '>' +
375
+ petBody(species, c, !!state.awake, hat) +
376
+ '</g>' +
377
+ '</svg>';
378
+ }
379
+
380
+ // ---- config persistence ----
381
+ function loadConfig() {
382
+ const def = { name: "Pal", furIdx: 0, hat: "none", species: "cat" };
383
+ let cfg;
384
+ try { cfg = Object.assign(def, JSON.parse(localStorage.getItem("piti-config")) || {}); }
385
+ catch (e) { cfg = Object.assign({}, def); }
386
+ // Saved configs may carry the retired 'dog' species id — map it to the mastiff.
387
+ if (cfg.species === "dog") cfg.species = "mastiff";
388
+ return cfg;
389
+ }
390
+ function saveConfig(cfg) { try { localStorage.setItem("piti-config", JSON.stringify(cfg)); } catch (e) {} }
391
+
392
+ /* ----------------------------------------------------------
393
+ mount(): create the trailing companion overlay on a page.
394
+ opts.size (px), opts.start {x,y}. Returns a control handle.
395
+ pointer-events are OFF so it never blocks the UI.
396
+ ---------------------------------------------------------- */
397
+ const LIVE_SIZE = 55; // cursor-sized companion (the live pal). Portrait passes its own.
398
+
399
+ // little blue sweat-drop shown near the head when the pal is hustling to keep up
400
+ const SWEAT_SVG =
401
+ '<svg viewBox="0 0 12 16" width="100%" height="100%">' +
402
+ '<path d="M6 0 C9 6 11 9 11 11 a5 5 0 0 1-10 0 C1 9 3 6 6 0 Z" fill="#8FD0FF" stroke="#3F90D0" stroke-width="0.7"/>' +
403
+ '<ellipse cx="4.4" cy="9.5" rx="1.3" ry="2" fill="#CDEBFF" opacity=".8"/></svg>';
404
+
405
+ function mount(opts) {
406
+ opts = opts || {};
407
+ const cfg = loadConfig();
408
+ const size = opts.size || LIVE_SIZE;
409
+
410
+ const el = document.createElement("div");
411
+ el.className = "piti-companion";
412
+ el.setAttribute("aria-hidden", "true");
413
+ el.style.cssText =
414
+ "position:fixed;left:0;top:0;width:" + size + "px;height:" + size + "px;z-index:2147483600;" +
415
+ "pointer-events:none;will-change:transform;";
416
+ // pt-inner carries the pop-in / hop motion; inside it, two stacked sprites
417
+ // (resting sleepy eyes / awake open eyes) crossfade, plus a sweat-drop emote.
418
+ el.innerHTML =
419
+ '<div class="pt-inner">' +
420
+ '<div class="pt-sprite pt-rest" style="opacity:1">' + svg(cfg, {}) + '</div>' +
421
+ '<div class="pt-sprite pt-awake" style="opacity:0">' + svg(cfg, { awake: true }) + '</div>' +
422
+ '<div class="pt-sweat" aria-hidden="true">' + SWEAT_SVG + '</div>' +
423
+ '</div>' +
424
+ '<div class="pt-zzz" aria-hidden="true">z</div>';
425
+ document.body.appendChild(el);
426
+ document.documentElement.classList.add("piti-cursor"); // custom arrow cursor while active
427
+
428
+ // styles (once)
429
+ if (!document.getElementById("piti-style")) {
430
+ const st = document.createElement("style");
431
+ st.id = "piti-style";
432
+ st.textContent =
433
+ ".piti-companion .pt-inner{position:absolute;inset:0;transform-origin:50% 82%}" +
434
+ ".piti-companion .pt-sprite{position:absolute;inset:0;transition:opacity .18s ease}" +
435
+ ".piti-companion svg{width:100%;height:100%;display:block;overflow:visible;transform-origin:50% 80%}" +
436
+ ".piti-companion .pt-shadow{transition:rx .3s,opacity .3s}" +
437
+ // gentle glide bob while travelling — a soft lift + slight squash, no hard steps (it's a curled cat)
438
+ ".piti-companion.walk .pt-rest svg,.piti-companion.walk .pt-awake svg{animation:pt-glide .9s ease-in-out infinite}" +
439
+ ".piti-companion.run .pt-rest svg,.piti-companion.run .pt-awake svg{animation-duration:.5s}" +
440
+ "@keyframes pt-glide{" +
441
+ "0%{transform:translateY(0) scaleY(1)}" +
442
+ "50%{transform:translateY(-7%) scaleY(1.02)}" +
443
+ "100%{transform:translateY(0) scaleY(1)}}" +
444
+ // pop-in when summoned, and a startled hop on surprise
445
+ ".piti-companion .pt-inner.pin{animation:pt-pop .46s cubic-bezier(.2,.9,.3,1.5)}" +
446
+ "@keyframes pt-pop{0%{transform:scale(.2);opacity:0}55%{opacity:1}100%{transform:scale(1)}}" +
447
+ ".piti-companion .pt-inner.hop{animation:pt-hop .52s cubic-bezier(.2,.9,.25,1.4)}" +
448
+ "@keyframes pt-hop{0%{transform:translateY(0) scale(1,1)}20%{transform:translateY(6%) scale(1.14,.84)}52%{transform:translateY(-32%) scale(.9,1.12)}100%{transform:translateY(0) scale(1,1)}}" +
449
+ // sweat-drop near the head when hustling to keep up
450
+ ".piti-companion .pt-sweat{position:absolute;left:9%;top:6%;width:17%;height:21%;opacity:0}" +
451
+ ".piti-companion.run .pt-sweat{animation:pt-sweat .85s ease-in-out infinite}" +
452
+ "@keyframes pt-sweat{0%{opacity:0;transform:translateY(-8%) scale(.85)}35%{opacity:.95}100%{opacity:0;transform:translateY(40%) scale(1)}}" +
453
+ ".piti-companion .pt-zzz{position:absolute;top:-4px;right:-2px;font:700 13px ui-rounded,system-ui,sans-serif;color:#9a8fb0;opacity:0}" +
454
+ ".piti-companion.sleep .pt-zzz{animation:pt-zzz 2.6s ease-out infinite}" +
455
+ "@keyframes pt-zzz{0%{opacity:0;transform:translate(0,4px) scale(.6)}30%{opacity:.9}100%{opacity:0;transform:translate(8px,-16px) scale(1.1)}}" +
456
+ ".piti-bubble{position:fixed;z-index:2147483601;pointer-events:none;font-size:16px;opacity:0}" +
457
+ ".piti-bubble.go{animation:pt-float 1.1s ease-out forwards}" +
458
+ ".piti-bubble.pop{font-size:19px}" +
459
+ ".piti-bubble.pop.go{animation:pt-bpop .8s cubic-bezier(.2,.9,.3,1.4) forwards}" +
460
+ "@keyframes pt-float{0%{opacity:0;transform:translateY(0) scale(.4)}25%{opacity:1;transform:translateY(-10px) scale(1)}100%{opacity:0;transform:translateY(-44px) scale(.9)}}" +
461
+ "@keyframes pt-bpop{0%{opacity:0;transform:translateY(0) scale(.2)}30%{opacity:1;transform:translateY(-12px) scale(1.15)}70%{opacity:1;transform:translateY(-16px) scale(1)}100%{opacity:0;transform:translateY(-22px) scale(.95)}}" +
462
+ // wingman speech bubble — a real worded remark the cat delivers when it travels
463
+ // to an issue and dwells there. Anchored above the cat (flips below near the top),
464
+ // with a little tail pointing down at it. JS controls its lifetime (the dwell).
465
+ ".piti-says{position:fixed;z-index:2147483602;pointer-events:none;max-width:248px;" +
466
+ "background:#fff;color:#241d29;font:500 13px/1.42 ui-rounded,system-ui,-apple-system,'Inter',sans-serif;" +
467
+ "padding:9px 12px;border-radius:14px;border:1px solid rgba(36,29,41,.10);letter-spacing:-.01em;" +
468
+ "box-shadow:0 12px 30px -12px rgba(16,24,40,.38),0 2px 6px rgba(16,24,40,.07);" +
469
+ "opacity:0;transform:translateY(4px) scale(.96);transform-origin:var(--tail,50%) 100%;" +
470
+ "transition:opacity .22s ease,transform .24s cubic-bezier(.2,.9,.3,1.35)}" +
471
+ ".piti-says.in{opacity:1;transform:translateY(0) scale(1)}" +
472
+ ".piti-says::after{content:'';position:absolute;left:var(--tail,50%);bottom:-6px;width:11px;height:11px;" +
473
+ "margin-left:-6px;background:#fff;border-right:1px solid rgba(36,29,41,.10);border-bottom:1px solid rgba(36,29,41,.10);transform:rotate(45deg)}" +
474
+ ".piti-says.below{transform-origin:var(--tail,50%) 0}" +
475
+ ".piti-says.below::after{bottom:auto;top:-6px;border:0;border-left:1px solid rgba(36,29,41,.10);border-top:1px solid rgba(36,29,41,.10)}" +
476
+ ".piti-says.k-a11y{box-shadow:0 12px 30px -12px rgba(180,35,24,.30),0 2px 6px rgba(16,24,40,.07)}" +
477
+ // motion after-image: faint ghost copies dropped behind while moving fast
478
+ ".piti-echo{position:fixed;left:0;top:0;pointer-events:none;z-index:2147483598;opacity:.4}" +
479
+ ".piti-echo svg{width:100%;height:100%;display:block;overflow:visible}" +
480
+ ".piti-echo.go{animation:pt-echo .34s ease-out forwards}" +
481
+ "@keyframes pt-echo{0%{opacity:.4}100%{opacity:0}}" +
482
+ // (the customizer-modal CSS lives in ensureModalStyle(), injected by openModal()
483
+ // so the paw works even when the pal was never summoned)
484
+ // custom arrow cursor while the piti is active (text fields keep the I-beam)
485
+ "html.piti-cursor,html.piti-cursor *{cursor:url('" + CURSOR_URI + "') 5 3,auto !important}" +
486
+ "html.piti-cursor input,html.piti-cursor textarea,html.piti-cursor [contenteditable]{cursor:text !important}" +
487
+ "@media (prefers-reduced-motion: reduce){" +
488
+ ".piti-companion.walk .pt-rest svg,.piti-companion.walk .pt-awake svg{animation:none}" +
489
+ ".piti-companion .pt-inner.pin,.piti-companion .pt-inner.hop{animation:none}" +
490
+ ".piti-companion.run .pt-sweat{animation:none;opacity:.9}" +
491
+ ".piti-says{transition:opacity .15s ease;transform:none}.piti-says.in{transform:none}" +
492
+ ".piti-companion.sleep .pt-zzz{animation:none;opacity:.8}}";
493
+ document.head.appendChild(st);
494
+ }
495
+
496
+ const rest = el.querySelector(".pt-rest");
497
+ const awake = el.querySelector(".pt-awake");
498
+ const inner = el.querySelector(".pt-inner");
499
+
500
+ const pos = { x: (opts.start && opts.start.x) || innerWidth * 0.5,
501
+ y: (opts.start && opts.start.y) || innerHeight * 0.72 };
502
+ const mouse = { x: pos.x, y: pos.y };
503
+ // facing: target ±1 (deadzoned); facingNow eases toward it for a smooth flip.
504
+ let facing = 1, facingNow = 1, walking = false, lastFlip = 0, runningHard = false;
505
+ let lastMove = now(), lastT = now(), raf = 0, running = true, parked = false;
506
+ let emoteUntil = 0, lastSurprise = 0, lastEcho = 0;
507
+ const reduceMotion = (() => { try { return matchMedia("(prefers-reduced-motion: reduce)").matches; } catch (e) { return false; } })();
508
+
509
+ // --- live "wingman" comments (agent → cat). Only on prototype/playground pages. ---
510
+ // The agent posts short UX/a11y remarks to /__piti; the cat travels to the named
511
+ // element, speaks once it arrives, hovers ~3-5s as if waiting for you to read+act,
512
+ // then returns to following the cursor. See pitis/wingman-agent.md.
513
+ const sayQueue = []; // pending remarks waiting their turn
514
+ let commentMode = null; // {phase:'travel'|'speak', target:{x,y}, node, text, kind, dwellMs, dwellUntil}
515
+ let saysEl = null; // the live speech-bubble element
516
+ let lastRemarkId = -1; // -1 = not yet synced; then highest id consumed (id = server Date.now())
517
+ let pollTimer = 0, viewTimer = 0, viewObs = null;
518
+
519
+ function now() { return performance.now(); }
520
+
521
+ function onMove(e) { mouse.x = e.clientX; mouse.y = e.clientY; lastMove = now(); wake(); }
522
+ addEventListener("pointermove", onMove, { passive: true });
523
+
524
+ // motion after-image: drop a faint, fading ghost of the current sprite at the
525
+ // current spot; as the pal speeds on, the ghosts trail behind it.
526
+ function dropEcho() {
527
+ const e = document.createElement("div");
528
+ e.className = "piti-echo";
529
+ e.style.width = e.style.height = size + "px";
530
+ e.style.transform = "translate(" + (pos.x - size / 2) + "px," + (pos.y - size / 2) + "px) scaleX(" + facingNow + ")";
531
+ e.innerHTML = awake.innerHTML; // current art (running → awake pose)
532
+ document.body.appendChild(e);
533
+ requestAnimationFrame(() => e.classList.add("go"));
534
+ setTimeout(() => e.remove(), 360);
535
+ }
536
+
537
+ function bubble(glyph, cls) {
538
+ const b = document.createElement("div");
539
+ b.className = "piti-bubble" + (cls ? " " + cls : "");
540
+ b.textContent = glyph;
541
+ b.style.left = (pos.x + size * 0.30) + "px";
542
+ b.style.top = (pos.y - size * (cls === "pop" ? 0.30 : 0.10)) + "px";
543
+ document.body.appendChild(b);
544
+ requestAnimationFrame(() => b.classList.add("go"));
545
+ setTimeout(() => b.remove(), 1200);
546
+ }
547
+ function heartBubble() { bubble(["💕", "💗", "✨", "🩷"][Math.floor((now() / 137) % 4)]); }
548
+ let nextHeart = now() + 6000;
549
+
550
+ // startled "pop": a little hop + an exclaim bubble + eyes briefly open. Fired by
551
+ // clicks on links/cards (a spiritual port of the Piti detach-component surprise).
552
+ function surprise() {
553
+ emoteUntil = now() + 750;
554
+ inner.classList.remove("hop"); void inner.offsetWidth; inner.classList.add("hop");
555
+ bubble("❗", "pop");
556
+ }
557
+ function onDown(e) {
558
+ if (!el || (e.target && el.contains(e.target))) return;
559
+ const hit = e.target && e.target.closest &&
560
+ e.target.closest("a,button,[role=button],summary,.card-opp,.card-proto,.status-chip,.side-pin,.preview-link,.piti-paw");
561
+ if (!hit) return;
562
+ const t = now();
563
+ if (t - lastSurprise < 850) return;
564
+ lastSurprise = t; surprise(); wake();
565
+ }
566
+ addEventListener("pointerdown", onDown, true);
567
+
568
+ // pop-in when it first appears
569
+ requestAnimationFrame(function () { inner.classList.add("pin"); setTimeout(function () { inner.classList.remove("pin"); }, 540); });
570
+
571
+ /* ---- wingman channel: publish what we're viewing, poll for remarks ---- */
572
+ // A "talkable" page = a prototype or a playground project. The build flattens
573
+ // <opportunity>/prototypes/<name>/ to /<opportunity>/<name>/ (no "/prototypes/" in
574
+ // the live URL), so match by SHAPE: ≥2 path segments whose first segment isn't the
575
+ // library / system chrome. New opportunities work automatically; the index pages
576
+ // (single segment) and the /pages//components/ library demos stay quiet.
577
+ const PITI_SKIP_ROOTS = { pages: 1, components: 1, primitives: 1, pitis: 1, skills: 1, fonts: 1, "__review": 1 };
578
+ function isCommentable() {
579
+ const segs = location.pathname.split("/").filter(Boolean);
580
+ return segs.length >= 2 && !PITI_SKIP_ROOTS[segs[0]];
581
+ }
582
+ let lastViewKey = "";
583
+ function publishView(force) {
584
+ const screen = (document.body && document.body.dataset && document.body.dataset.gvScreen) || "";
585
+ const key = location.pathname + "|" + screen;
586
+ if (!force && key === lastViewKey) return;
587
+ lastViewKey = key;
588
+ try {
589
+ fetch("/__piti", {
590
+ method: "POST", headers: { "Content-Type": "application/json" }, keepalive: true,
591
+ body: JSON.stringify({ type: "view", path: location.pathname, screen: screen, w: innerWidth, h: innerHeight }),
592
+ }).catch(function () {});
593
+ } catch (e) {}
594
+ }
595
+ function pollRemarks() {
596
+ fetch("/__piti?type=remarks&path=" + encodeURIComponent(location.pathname) + "&since=" + Math.max(0, lastRemarkId),
597
+ { cache: "no-store" })
598
+ .then(function (r) { return r.json(); })
599
+ .then(function (d) {
600
+ const list = (d && d.remarks) || [];
601
+ const firstSync = lastRemarkId < 0; // first response: skip any backlog, don't replay old quips
602
+ let maxId = firstSync ? 0 : lastRemarkId;
603
+ const fresh = Date.now() - 90000;
604
+ for (let i = 0; i < list.length; i++) {
605
+ const r = list[i];
606
+ if (r.id > maxId) maxId = r.id;
607
+ if (!firstSync && r.id > lastRemarkId && (!r.ts || r.ts >= fresh)) sayQueue.push(r);
608
+ }
609
+ lastRemarkId = maxId; // after the first poll this is >= 0
610
+ maybePump();
611
+ })
612
+ .catch(function () {});
613
+ }
614
+
615
+ /* ---- the speech bubble (worded, dwell-controlled) ---- */
616
+ function showSays(text, kind) {
617
+ hideSays();
618
+ saysEl = document.createElement("div");
619
+ saysEl.className = "piti-says" + (kind ? " k-" + kind : "");
620
+ saysEl.setAttribute("aria-hidden", "true");
621
+ saysEl.textContent = text;
622
+ document.body.appendChild(saysEl);
623
+ positionSays();
624
+ requestAnimationFrame(function () { if (saysEl) saysEl.classList.add("in"); });
625
+ }
626
+ function positionSays() {
627
+ if (!saysEl) return;
628
+ const bw = saysEl.offsetWidth || 200, bh = saysEl.offsetHeight || 40;
629
+ let bx = pos.x - bw * 0.5;
630
+ let by = pos.y - size * 0.45 - bh; // above the cat's head
631
+ let below = false;
632
+ if (by < 8) { by = pos.y + size * 0.45; below = true; }
633
+ bx = Math.max(8, Math.min(innerWidth - bw - 8, bx));
634
+ saysEl.style.left = bx + "px";
635
+ saysEl.style.top = by + "px";
636
+ saysEl.classList.toggle("below", below);
637
+ saysEl.style.setProperty("--tail", Math.max(12, Math.min(bw - 12, pos.x - bx)) + "px");
638
+ }
639
+ function hideSays() { if (saysEl) { saysEl.remove(); saysEl = null; } }
640
+
641
+ /* ---- start delivering one remark: resolve its target, switch to travel ---- */
642
+ function startComment(r) {
643
+ let target = null, node = null;
644
+ if (r.sel) {
645
+ try { node = document.querySelector(r.sel); } catch (e) { node = null; }
646
+ if (node) {
647
+ try { node.scrollIntoView({ behavior: "smooth", block: "center", inline: "nearest" }); }
648
+ catch (e) { try { node.scrollIntoView(); } catch (_) {} }
649
+ const rc = node.getBoundingClientRect();
650
+ target = { x: rc.left + rc.width / 2, y: rc.top + rc.height / 2 };
651
+ }
652
+ }
653
+ if (!target && r.x != null && r.y != null) { // fallback: viewport coords from the agent's screenshot, rescaled
654
+ const sx = r.w > 0 ? innerWidth / r.w : 1, sy = r.h > 0 ? innerHeight / r.h : 1;
655
+ target = { x: r.x * sx, y: r.y * sy };
656
+ }
657
+ if (!target) target = { x: innerWidth * 0.5, y: innerHeight * 0.42 };
658
+ commentMode = {
659
+ phase: "travel", target: target, node: node, text: r.text, kind: r.kind || "ux",
660
+ dwellMs: 3000 + Math.random() * 2000, dwellUntil: 0,
661
+ };
662
+ }
663
+ // Pull the next queued remark when the cat is free, and make sure the loop is awake.
664
+ function maybePump() {
665
+ if (!commentMode && sayQueue.length) startComment(sayQueue.shift());
666
+ wake();
667
+ }
668
+
669
+ // Crossfade between the two stacked sprites (resting eyes vs open eyes).
670
+ let curPose = "rest";
671
+ function setPose(p) {
672
+ if (p === curPose) return;
673
+ curPose = p;
674
+ const isSleep = p === "rest" || p === "sleep";
675
+ rest.style.opacity = (p === "awake") ? "0" : "1";
676
+ awake.style.opacity = (p === "awake") ? "1" : "0";
677
+ el.classList.toggle("sleep", p === "sleep");
678
+ }
679
+
680
+ function frame() {
681
+ if (!running) return;
682
+ const t = now();
683
+ // dt normalised to 60fps so the lerp feels identical on any refresh rate.
684
+ const dt = Math.min(3, (t - lastT) / 16.667); lastT = t;
685
+ const idle = t - lastMove;
686
+
687
+ // Target: trail behind & a little below the cursor so it reads as "coming over".
688
+ // After a short pause, lock the target so it settles cleanly (no rubber-band wobble).
689
+ // While delivering a remark, the cursor is ignored — the cat heads to the issue.
690
+ let tx, ty;
691
+ if (commentMode) {
692
+ if (commentMode.node) { // re-measure so it tracks the element as the page scrolls into place
693
+ const rc = commentMode.node.getBoundingClientRect();
694
+ commentMode.target.x = rc.left + rc.width / 2;
695
+ commentMode.target.y = rc.top + rc.height / 2;
696
+ }
697
+ tx = commentMode.target.x; // sit just below the spot so the bubble (above) frames it, not covers it
698
+ ty = commentMode.target.y + size * 0.5;
699
+ } else if (idle > 650) {
700
+ tx = pos.x; ty = pos.y;
701
+ } else {
702
+ tx = mouse.x - facing * size * 0.62;
703
+ ty = mouse.y + size * 0.30;
704
+ }
705
+ tx = Math.max(size * 0.5, Math.min(innerWidth - size * 0.5, tx));
706
+ ty = Math.max(size * 0.5, Math.min(innerHeight - size * 0.4, ty));
707
+
708
+ const dx = tx - pos.x, dy = ty - pos.y;
709
+ const dist = Math.hypot(dx, dy);
710
+
711
+ // Time-based exponential ease toward the target (frame-rate independent).
712
+ // Catch up a little faster the further behind it is, so a fast flick of the
713
+ // cursor doesn't leave it crawling — but it still arrives and settles smoothly.
714
+ const kBase = 0.15 + Math.min(0.13, dist / 1400);
715
+ const k = 1 - Math.pow(1 - kBase, dt);
716
+ pos.x += dx * k;
717
+ pos.y += dy * (k * 1.18);
718
+
719
+ // Walk hysteresis: only start gliding past a clear distance; only stop once arrived.
720
+ if (!walking && dist > 14) walking = true;
721
+ else if (walking && dist < 4) walking = false;
722
+ el.classList.toggle("walk", walking);
723
+
724
+ // Running hard (sweat) when it's lagging well behind the cursor; clears once close.
725
+ if (!runningHard && dist > 64) runningHard = true;
726
+ else if (runningHard && dist < 26) runningHard = false;
727
+ el.classList.toggle("run", runningHard && walking);
728
+
729
+ // Wingman delivery state machine: travel to the issue → arrive → speak + dwell → return.
730
+ if (commentMode) {
731
+ if (commentMode.phase === "travel" && dist < 12) {
732
+ commentMode.phase = "speak";
733
+ commentMode.dwellUntil = t + commentMode.dwellMs;
734
+ showSays(commentMode.text, commentMode.kind);
735
+ }
736
+ if (commentMode.phase === "speak") {
737
+ positionSays(); // keep the bubble pinned to the cat while it hovers
738
+ if (t > commentMode.dwellUntil) { hideSays(); commentMode = null; maybePump(); }
739
+ }
740
+ }
741
+
742
+ // After-image trail — only on BIG fast moves (cursor yanked far away), so it
743
+ // rarely triggers in normal use. Skipped under reduced-motion.
744
+ if (walking && !reduceMotion && dist > 165 && t - lastEcho > 40) { dropEcho(); lastEcho = t; }
745
+
746
+ // Facing follows horizontal motion with a deadzone + a short commit window (≥320ms
747
+ // between flips) so it can't dither. facingNow eases toward the target for a smooth flip.
748
+ const wantFacing = dx > 0 ? 1 : -1;
749
+ if (walking && Math.abs(dx) > 10 && wantFacing !== facing && (t - lastFlip) > 320) {
750
+ facing = wantFacing; lastFlip = t;
751
+ }
752
+ facingNow += (facing - facingNow) * (1 - Math.pow(1 - 0.34, dt));
753
+ if (Math.abs(facingNow - facing) < 0.02) facingNow = facing;
754
+
755
+ // state machine: surprised → eyes open (held); travelling → eyes open;
756
+ // settled → resting; long idle → sleep w/ zzz
757
+ if (commentMode) {
758
+ setPose("awake"); // alert while travelling to / waiting at the issue
759
+ } else if (t < emoteUntil) {
760
+ setPose("awake");
761
+ } else if (walking) {
762
+ setPose("awake");
763
+ } else if (idle > 11000) {
764
+ setPose("sleep");
765
+ } else {
766
+ setPose("rest");
767
+ if (t > nextHeart && idle > 1500 && idle < 10000) { heartBubble(); nextHeart = t + 7000 + Math.random() * 6000; }
768
+ }
769
+
770
+ el.style.transform =
771
+ "translate(" + (pos.x - size / 2) + "px, " + (pos.y - size / 2) + "px) scaleX(" + facingNow + ")";
772
+ // Park the 60fps loop once fully asleep and settled — re-writing an identical
773
+ // transform every frame is wasted main-thread work. pointermove/clicks wake it.
774
+ if (curPose === "sleep" && !walking && dist < 0.5 && t >= emoteUntil) { parked = true; raf = 0; return; }
775
+ raf = requestAnimationFrame(frame);
776
+ }
777
+ // Restart the loop after it parks (called from pointermove / click handlers).
778
+ function wake() { if (running && parked) { parked = false; lastT = now(); raf = requestAnimationFrame(frame); } }
779
+ raf = requestAnimationFrame(frame);
780
+
781
+ // Wingman channel — only on prototype / playground pages, and never in a preview
782
+ // iframe (auto() already skips those). Publishes the current screen and polls for
783
+ // remarks every 4s; an observer catches SPA screen swaps that don't change the URL.
784
+ function onVis() { if (document.visibilityState === "visible") { publishView(true); pollRemarks(); } }
785
+ if (isCommentable()) {
786
+ publishView(true);
787
+ pollRemarks();
788
+ // Slow and visible-only: each poll is a KV READ on the instance's daily quota,
789
+ // and a forgotten background tab at the old 4s cadence burned ~21k reads/day
790
+ // doing nothing (part of the 2026-08-20 quota outage). onVis() below polls
791
+ // the instant the tab is foregrounded, so a returning user never waits.
792
+ pollTimer = setInterval(function () {
793
+ if (document.visibilityState === "visible") pollRemarks();
794
+ }, 30000);
795
+ // Heartbeat refreshes view.ts so the agent knows you're still here — but it's a KV
796
+ // WRITE, so keep it slow and only while the tab is visible (mind the write quota).
797
+ // Screen changes still publish instantly via the observer below.
798
+ viewTimer = setInterval(function () {
799
+ if (document.visibilityState === "visible") publishView(true);
800
+ }, 60000);
801
+ try {
802
+ viewObs = new MutationObserver(function () { publishView(false); });
803
+ viewObs.observe(document.body, { attributes: true, attributeFilter: ["data-gv-screen"] });
804
+ } catch (e) {}
805
+ addEventListener("visibilitychange", onVis);
806
+ }
807
+
808
+ return {
809
+ el,
810
+ destroy() {
811
+ running = false; cancelAnimationFrame(raf);
812
+ removeEventListener("pointermove", onMove); removeEventListener("pointerdown", onDown, true);
813
+ clearInterval(pollTimer); clearInterval(viewTimer);
814
+ if (viewObs) { try { viewObs.disconnect(); } catch (e) {} viewObs = null; }
815
+ removeEventListener("visibilitychange", onVis);
816
+ hideSays(); commentMode = null;
817
+ el.remove(); document.documentElement.classList.remove("piti-cursor");
818
+ },
819
+ // refresh(override) re-skins the live pal; pass a config for instant preview,
820
+ // or omit to re-read whatever was last saved.
821
+ refresh(override) { const ncfg = override || loadConfig();
822
+ rest.innerHTML = svg(ncfg, {});
823
+ awake.innerHTML = svg(ncfg, { awake: true }); },
824
+ };
825
+ }
826
+
827
+ /* ----------------------------------------------------------
828
+ auto(): the site-wide manager. Mounts ONE companion when
829
+ revealed, and wires a global hotkey — Shift + Ñ — to summon
830
+ or dismiss the pal from ANY page, instantly, no reload.
831
+ Skips inside iframes so prototype PREVIEWS never spawn a pal
832
+ (only the real top-level prototype view does).
833
+ ---------------------------------------------------------- */
834
+ let live = null, autoWired = false, autoOpts = {};
835
+
836
+ function inIframe() { try { return window.top !== window.self; } catch (e) { return true; } }
837
+ function isRevealed() { try { return localStorage.getItem("piti-revealed") === "1"; } catch (e) { return false; } }
838
+ function ensureMounted() { if (!live) live = mount(autoOpts); return live; }
839
+
840
+ function reveal() { try { localStorage.setItem("piti-revealed", "1"); } catch (e) {} ensureMounted(); }
841
+ function hide() {
842
+ try { localStorage.removeItem("piti-revealed"); } catch (e) {}
843
+ if (live) { live.destroy(); live = null; }
844
+ }
845
+ function toggle() { isRevealed() ? hide() : reveal(); }
846
+ // re-skin the live companion (if any) — pass a config for instant preview, else re-read saved
847
+ function refreshLive(override) { if (live) live.refresh(override); }
848
+
849
+ // ---- the customizer as a real overlay modal (the site stays visible, dimmed) ----
850
+ // The backdrop/frame CSS used to live only in mount()'s <style> block, so the
851
+ // paw opened an unstyled, undimmed iframe whenever the pal hadn't been summoned.
852
+ // Inject it on demand (idempotent) so openModal() never depends on mount().
853
+ function ensureModalStyle() {
854
+ if (document.getElementById("piti-modal-style")) return;
855
+ const st = document.createElement("style");
856
+ st.id = "piti-modal-style";
857
+ st.textContent =
858
+ ".piti-modal-backdrop{position:fixed;inset:0;z-index:2147483640;background:rgba(34,27,38,.55);display:grid;place-items:center;padding:20px;animation:pt-fade .2s ease both}" +
859
+ "@keyframes pt-fade{from{opacity:0}to{opacity:1}}" +
860
+ ".piti-modal-frame{width:480px;max-width:100%;height:600px;max-height:92vh;border:none;background:transparent;border-radius:20px}";
861
+ document.head.appendChild(st);
862
+ }
863
+ let modalEl = null;
864
+ function openModal() {
865
+ if (modalEl) return;
866
+ ensureModalStyle();
867
+ modalEl = document.createElement("div");
868
+ modalEl.className = "piti-modal-backdrop";
869
+ modalEl.innerHTML = '<iframe class="piti-modal-frame" src="/pitis/" title="Customize your Piti"></iframe>';
870
+ modalEl.addEventListener("click", function (e) { if (e.target === modalEl) closeModal(); });
871
+ document.body.appendChild(modalEl);
872
+ }
873
+ function closeModal() { if (modalEl) { modalEl.remove(); modalEl = null; } if (isRevealed()) ensureMounted(); refreshLive(); }
874
+
875
+ // The pal is the OPERATOR's toy, not a site feature: only an admin may summon one.
876
+ // Asked once per page via /__me (same identity source as the profile chip and the
877
+ // admin-gated paw). Two ways in: a signed-in admin, or an instance with no user
878
+ // accounts at all (accounts:false — nobody to hide it from). Everyone else — signed-in
879
+ // teammates, signed-out visitors on public prototypes — gets nothing, hotkey included.
880
+ // Fail CLOSED: a failed /__me means no pal.
881
+ function allowed() {
882
+ return fetch("/__me", { headers: { Accept: "application/json" } })
883
+ .then(function (r) { return r.json(); })
884
+ .then(function (d) { return !!(d && ((d.user && d.user.admin) || d.accounts === false)); })
885
+ .catch(function () { return false; });
886
+ }
887
+
888
+ // Shift + Ñ toggles the pal. Don't hijack it while typing in a field. The key must
889
+ // really be ñ: matching e.code "Semicolon" as a fallback meant that on a US/AZERTY
890
+ // layout — where that physical key is ; — anyone typing a colon summoned a pal.
891
+ function wireHotkey() {
892
+ addEventListener("keydown", function (e) {
893
+ const t = e.target;
894
+ if (t && (t.tagName === "INPUT" || t.tagName === "TEXTAREA" || t.isContentEditable)) return;
895
+ if (!(e.shiftKey && (e.key === "Ñ" || e.key === "ñ"))) return;
896
+ e.preventDefault();
897
+ if (isRevealed()) { hide(); return; } // dismissing needs no permission
898
+ allowed().then(function (ok) { if (ok) reveal(); });
899
+ });
900
+ }
901
+
902
+ function auto(opts) {
903
+ autoOpts = opts || {};
904
+ if (inIframe()) return; // never run inside preview iframes
905
+ if (autoWired) return; autoWired = true;
906
+ addEventListener("keydown", function (e) { if (e.key === "Escape" && modalEl) closeModal(); });
907
+ // Identity is asked for only when it can change something — when a pal is already
908
+ // summoned here (below) or when someone presses the combo. A public prototype
909
+ // viewed by a customer costs no extra request.
910
+ // A non-admin who summoned one before this gate existed (or on a shared machine)
911
+ // loses the saved flag too, so it can't come back on the next page.
912
+ if (isRevealed()) allowed().then(function (ok) { ok ? ensureMounted() : hide(); });
913
+ wireHotkey();
914
+ // The footer paw opens the customizer as an overlay instead of navigating away.
915
+ addEventListener("click", function (e) {
916
+ const paw = e.target && e.target.closest && e.target.closest(".piti-paw");
917
+ if (paw) { e.preventDefault(); openModal(); }
918
+ });
919
+ // Messages from the customizer iframe (close / saved → refresh the live companion).
920
+ addEventListener("message", function (e) {
921
+ const d = e.data;
922
+ if (!d || typeof d.piti === "undefined") return;
923
+ if (d.piti === "close") closeModal();
924
+ else if (d.piti === "saved") { if (isRevealed()) ensureMounted(); refreshLive(); }
925
+ });
926
+ }
927
+
928
+ window.Piti = { PALETTE, HATS, svg, loadConfig, saveConfig, mount, auto, reveal, hide, toggle, refreshLive };
929
+ })();