flo-mat 3.0.1 → 3.0.3

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 (819) hide show
  1. package/.mocharc.cjs +1 -1
  2. package/README.md +7 -7
  3. package/browser/index.min.js +1 -1
  4. package/newdocs/README.md +41 -0
  5. package/newdocs/babel.config.js +3 -0
  6. package/newdocs/blog/2019-05-28-first-blog-post.md +12 -0
  7. package/newdocs/blog/2019-05-29-long-blog-post.md +44 -0
  8. package/newdocs/blog/2021-08-01-mdx-blog-post.mdx +20 -0
  9. package/newdocs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  10. package/newdocs/blog/2021-08-26-welcome/index.md +25 -0
  11. package/newdocs/blog/authors.yml +17 -0
  12. package/newdocs/docs/Introduction.md +78 -0
  13. package/newdocs/docs/aaa.md +23 -0
  14. package/newdocs/docusaurus.config.js +139 -0
  15. package/newdocs/package-lock.json +12697 -0
  16. package/newdocs/package.json +46 -0
  17. package/newdocs/sidebars.js +33 -0
  18. package/newdocs/src/components/HomepageFeatures/index.tsx +46 -0
  19. package/newdocs/src/components/HomepageFeatures/styles.module.css +11 -0
  20. package/newdocs/src/css/custom.css +30 -0
  21. package/newdocs/src/pages/index.module.css +23 -0
  22. package/newdocs/src/pages/index.tsx +43 -0
  23. package/newdocs/src/pages/markdown-page.md +7 -0
  24. package/newdocs/static/.nojekyll +0 -0
  25. package/newdocs/static/img/docusaurus-social-card.jpg +0 -0
  26. package/newdocs/static/img/docusaurus.png +0 -0
  27. package/newdocs/static/img/favicon.ico +0 -0
  28. package/newdocs/static/img/favicon1.ico +0 -0
  29. package/newdocs/static/img/favicon_io/android-chrome-192x192.png +0 -0
  30. package/newdocs/static/img/favicon_io/android-chrome-512x512.png +0 -0
  31. package/newdocs/static/img/favicon_io/apple-touch-icon.png +0 -0
  32. package/newdocs/static/img/favicon_io/favicon-16x16.png +0 -0
  33. package/newdocs/static/img/favicon_io/favicon-32x32.png +0 -0
  34. package/newdocs/static/img/favicon_io/favicon.ico +0 -0
  35. package/newdocs/static/img/favicon_io/site.webmanifest +1 -0
  36. package/newdocs/static/img/favicon_io.zip +0 -0
  37. package/newdocs/static/img/logo.png +0 -0
  38. package/newdocs/static/img/logo.svg +1 -0
  39. package/newdocs/static/img/undraw_books_re_8gea.svg +1 -0
  40. package/newdocs/static/img/undraw_docusaurus_mountain.svg +171 -0
  41. package/newdocs/static/img/undraw_docusaurus_react.svg +170 -0
  42. package/newdocs/static/img/undraw_docusaurus_tree.svg +40 -0
  43. package/newdocs/tsconfig.json +7 -0
  44. package/node/add-n-prong.ts/join-spokes.d.ts +4 -0
  45. package/node/add-n-prong.ts/join-spokes.js +24 -0
  46. package/node/add-n-prong.ts/join-spokes.js.map +1 -0
  47. package/node/bezier/fit-quads-to-cubic.d.ts +19 -0
  48. package/node/bezier/fit-quads-to-cubic.js +83 -0
  49. package/node/bezier/fit-quads-to-cubic.js.map +1 -0
  50. package/node/bezier/total-curvature.d.ts +2 -0
  51. package/node/bezier/total-curvature.js +5 -0
  52. package/node/bezier/total-curvature.js.map +1 -0
  53. package/node/bezier/total-length.d.ts +2 -0
  54. package/node/bezier/total-length.js +5 -0
  55. package/node/bezier/total-length.js.map +1 -0
  56. package/node/closest-boundary-point/cull-bezier-pieces.d.ts +2 -2
  57. package/node/closest-boundary-point/cull-bezier-pieces.js.map +1 -1
  58. package/node/closest-boundary-point/cull-by-loose-bounding-box.d.ts +2 -2
  59. package/node/closest-boundary-point/cull-by-loose-bounding-box.js +2 -2
  60. package/node/closest-boundary-point/cull-by-loose-bounding-box.js.map +1 -1
  61. package/node/closest-boundary-point/cull-by-tight-boundary-box.d.ts +2 -2
  62. package/node/closest-boundary-point/cull-by-tight-boundary-box.js.map +1 -1
  63. package/node/closest-boundary-point/dd-deflate-with-running-error.js.map +1 -1
  64. package/node/closest-boundary-point/foot-and-endpoint-info.d.ts +1 -1
  65. package/node/closest-boundary-point/get-best-distance-squared.d.ts +2 -2
  66. package/node/closest-boundary-point/get-best-distance-squared.js.map +1 -1
  67. package/node/closest-boundary-point/get-close-boundary-points-certified.d.ts +6 -3
  68. package/node/closest-boundary-point/get-close-boundary-points-certified.js +6 -3
  69. package/node/closest-boundary-point/get-close-boundary-points-certified.js.map +1 -1
  70. package/node/closest-boundary-point/get-potential-closest-points-on-curve-certified.d.ts +5 -1
  71. package/node/closest-boundary-point/get-potential-closest-points-on-curve-certified.js +22 -5
  72. package/node/closest-boundary-point/get-potential-closest-points-on-curve-certified.js.map +1 -1
  73. package/node/closest-boundary-point/root-interval-to-distance-squared-interval.d.ts +1 -1
  74. package/node/closest-boundary-point/root-interval-to-distance-squared-interval.js +13 -8
  75. package/node/closest-boundary-point/root-interval-to-distance-squared-interval.js.map +1 -1
  76. package/node/contact-point/contact-point.js.map +1 -1
  77. package/node/corner/compare-curvatures-at-interface.js +37 -54
  78. package/node/corner/compare-curvatures-at-interface.js.map +1 -1
  79. package/node/corner/corner.d.ts +0 -1
  80. package/node/corner/get-corner.d.ts +1 -1
  81. package/node/corner/get-corner.js +9 -21
  82. package/node/corner/get-corner.js.map +1 -1
  83. package/node/corner/get-interface-ccw.d.ts +6 -7
  84. package/node/corner/get-interface-ccw.js +63 -46
  85. package/node/corner/get-interface-ccw.js.map +1 -1
  86. package/node/cp-node/cp-node-fs.d.ts +225 -0
  87. package/node/cp-node/cp-node-fs.js +228 -0
  88. package/node/cp-node/cp-node-fs.js.map +1 -0
  89. package/node/cp-node/cp-node.d.ts +22 -128
  90. package/node/cp-node/cp-node.js +1 -248
  91. package/node/cp-node/cp-node.js.map +1 -1
  92. package/node/cp-node/{clone.d.ts → fs/clone.d.ts} +1 -1
  93. package/node/cp-node/{clone.js → fs/clone.js} +14 -5
  94. package/node/cp-node/fs/clone.js.map +1 -0
  95. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.d.ts +3 -0
  96. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.js +6 -0
  97. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.js.map +1 -0
  98. package/node/cp-node/{enhance-cp-node.d.ts → fs/enhance-cp-node.d.ts} +14 -4
  99. package/node/cp-node/{enhance-cp-node.js → fs/enhance-cp-node.js} +8 -1
  100. package/node/cp-node/fs/enhance-cp-node.js.map +1 -0
  101. package/node/cp-node/fs/find-first.d.ts +3 -0
  102. package/node/cp-node/fs/find-first.js +16 -0
  103. package/node/cp-node/fs/find-first.js.map +1 -0
  104. package/node/cp-node/fs/get-all-between.d.ts +17 -0
  105. package/node/cp-node/fs/get-all-between.js +31 -0
  106. package/node/cp-node/fs/get-all-between.js.map +1 -0
  107. package/node/cp-node/fs/get-all-on-circle.d.ts +3 -0
  108. package/node/cp-node/fs/get-all-on-circle.js +14 -0
  109. package/node/cp-node/fs/get-all-on-circle.js.map +1 -0
  110. package/node/cp-node/fs/get-all-on-loop.d.ts +3 -0
  111. package/node/cp-node/fs/get-all-on-loop.js +12 -0
  112. package/node/cp-node/fs/get-all-on-loop.js.map +1 -0
  113. package/node/cp-node/fs/get-all-vertices.d.ts +3 -0
  114. package/node/cp-node/fs/get-all-vertices.js +10 -0
  115. package/node/cp-node/fs/get-all-vertices.js.map +1 -0
  116. package/node/cp-node/fs/get-angle-between-mat-curves.d.ts +9 -0
  117. package/node/cp-node/fs/get-angle-between-mat-curves.js +18 -0
  118. package/node/cp-node/fs/get-angle-between-mat-curves.js.map +1 -0
  119. package/node/cp-node/{get-boundary-bezier-parts-to-next.d.ts → fs/get-boundary-bezier-parts-to-next.d.ts} +1 -6
  120. package/node/cp-node/{get-boundary-bezier-parts-to-next.js → fs/get-boundary-bezier-parts-to-next.js} +0 -5
  121. package/node/cp-node/fs/get-boundary-bezier-parts-to-next.js.map +1 -0
  122. package/node/cp-node/fs/get-boundary-beziers-between.d.ts +17 -0
  123. package/node/cp-node/fs/get-boundary-beziers-between.js +22 -0
  124. package/node/cp-node/fs/get-boundary-beziers-between.js.map +1 -0
  125. package/node/cp-node/fs/get-boundary-beziers-to-next.d.ts +3 -0
  126. package/node/cp-node/{get-boundary-beziers-to-next.js → fs/get-boundary-beziers-to-next.js} +2 -7
  127. package/node/cp-node/fs/get-boundary-beziers-to-next.js.map +1 -0
  128. package/node/cp-node/fs/get-branch-beziers.d.ts +8 -0
  129. package/node/cp-node/fs/get-branch-beziers.js +12 -0
  130. package/node/cp-node/fs/get-branch-beziers.js.map +1 -0
  131. package/node/cp-node/fs/get-branch.d.ts +10 -0
  132. package/node/cp-node/fs/get-branch.js +33 -0
  133. package/node/cp-node/fs/get-branch.js.map +1 -0
  134. package/node/cp-node/fs/get-children.d.ts +3 -0
  135. package/node/cp-node/fs/get-children.js +12 -0
  136. package/node/cp-node/fs/get-children.js.map +1 -0
  137. package/node/cp-node/{get-cp-node-ordering.d.ts → fs/get-cp-node-ordering.d.ts} +5 -1
  138. package/node/cp-node/{get-cp-node-ordering.js → fs/get-cp-node-ordering.js} +4 -0
  139. package/node/cp-node/fs/get-cp-node-ordering.js.map +1 -0
  140. package/node/cp-node/fs/get-distance-to-next.d.ts +4 -0
  141. package/node/cp-node/fs/get-distance-to-next.js +11 -0
  142. package/node/cp-node/fs/get-distance-to-next.js.map +1 -0
  143. package/node/cp-node/fs/get-edge-direction.d.ts +3 -0
  144. package/node/{get-curve → cp-node/fs}/get-edge-direction.js +1 -7
  145. package/node/cp-node/fs/get-edge-direction.js.map +1 -0
  146. package/node/cp-node/fs/get-first-exit.d.ts +3 -0
  147. package/node/cp-node/fs/get-first-exit.js +15 -0
  148. package/node/cp-node/fs/get-first-exit.js.map +1 -0
  149. package/node/cp-node/fs/get-hole-closers.d.ts +3 -0
  150. package/node/cp-node/fs/get-hole-closers.js +7 -0
  151. package/node/cp-node/fs/get-hole-closers.js.map +1 -0
  152. package/node/cp-node/fs/get-implied-boundary-bezier-between.d.ts +3 -0
  153. package/node/cp-node/fs/get-implied-boundary-bezier-between.js +58 -0
  154. package/node/cp-node/fs/get-implied-boundary-bezier-between.js.map +1 -0
  155. package/node/cp-node/fs/get-mat-curve-between.d.ts +3 -0
  156. package/node/{get-curve/get-curve-between.js → cp-node/fs/get-mat-curve-between.js} +3 -9
  157. package/node/cp-node/fs/get-mat-curve-between.js.map +1 -0
  158. package/node/cp-node/fs/get-mat-curve-to-next.d.ts +4 -0
  159. package/node/cp-node/fs/get-mat-curve-to-next.js +8 -0
  160. package/node/cp-node/fs/get-mat-curve-to-next.js.map +1 -0
  161. package/node/cp-node/fs/get-mat-curves-between.d.ts +3 -0
  162. package/node/cp-node/fs/get-mat-curves-between.js +13 -0
  163. package/node/cp-node/fs/get-mat-curves-between.js.map +1 -0
  164. package/node/cp-node/fs/get-non-terminating-on-circle.d.ts +3 -0
  165. package/node/cp-node/fs/get-non-terminating-on-circle.js +15 -0
  166. package/node/cp-node/fs/get-non-terminating-on-circle.js.map +1 -0
  167. package/node/cp-node/fs/get-prong-count.d.ts +3 -0
  168. package/node/cp-node/fs/get-prong-count.js +12 -0
  169. package/node/cp-node/fs/get-prong-count.js.map +1 -0
  170. package/node/cp-node/fs/get-real-prong-count.d.ts +3 -0
  171. package/node/cp-node/fs/get-real-prong-count.js +9 -0
  172. package/node/cp-node/fs/get-real-prong-count.js.map +1 -0
  173. package/node/cp-node/fs/get-salience.d.ts +7 -0
  174. package/node/cp-node/fs/get-salience.js +20 -0
  175. package/node/cp-node/fs/get-salience.js.map +1 -0
  176. package/node/cp-node/fs/get-smoothed-speed.d.ts +3 -0
  177. package/node/cp-node/fs/get-smoothed-speed.js +75 -0
  178. package/node/cp-node/fs/get-smoothed-speed.js.map +1 -0
  179. package/node/cp-node/fs/get-speed.d.ts +4 -0
  180. package/node/cp-node/fs/get-speed.js +40 -0
  181. package/node/cp-node/fs/get-speed.js.map +1 -0
  182. package/node/cp-node/fs/get-vertex-forward-children.d.ts +3 -0
  183. package/node/cp-node/fs/get-vertex-forward-children.js +15 -0
  184. package/node/cp-node/fs/get-vertex-forward-children.js.map +1 -0
  185. package/node/cp-node/fs/insert-cp-node.d.ts +5 -0
  186. package/node/cp-node/fs/insert-cp-node.js +21 -0
  187. package/node/cp-node/fs/insert-cp-node.js.map +1 -0
  188. package/node/cp-node/fs/is-fully-terminating.d.ts +3 -0
  189. package/node/cp-node/fs/is-fully-terminating.js +8 -0
  190. package/node/cp-node/fs/is-fully-terminating.js.map +1 -0
  191. package/node/cp-node/fs/is-on-same-circle.d.ts +3 -0
  192. package/node/cp-node/fs/is-on-same-circle.js +8 -0
  193. package/node/cp-node/fs/is-on-same-circle.js.map +1 -0
  194. package/node/cp-node/fs/is-one-prong.d.ts +3 -0
  195. package/node/cp-node/fs/is-one-prong.js +13 -0
  196. package/node/cp-node/fs/is-one-prong.js.map +1 -0
  197. package/node/cp-node/fs/is-order-correct.d.ts +5 -0
  198. package/node/cp-node/fs/is-order-correct.js +26 -0
  199. package/node/cp-node/fs/is-order-correct.js.map +1 -0
  200. package/node/cp-node/fs/is-sharp.d.ts +3 -0
  201. package/node/cp-node/fs/is-sharp.js +5 -0
  202. package/node/cp-node/fs/is-sharp.js.map +1 -0
  203. package/node/cp-node/fs/is-special.d.ts +3 -0
  204. package/node/cp-node/fs/is-special.js +9 -0
  205. package/node/cp-node/fs/is-special.js.map +1 -0
  206. package/node/cp-node/fs/is-terminating.d.ts +3 -0
  207. package/node/cp-node/fs/is-terminating.js +5 -0
  208. package/node/cp-node/fs/is-terminating.js.map +1 -0
  209. package/node/cp-node/fs/is-trivial.d.ts +6 -0
  210. package/node/cp-node/fs/is-trivial.js +10 -0
  211. package/node/cp-node/fs/is-trivial.js.map +1 -0
  212. package/node/cp-node/fs/is-two-prong.d.ts +3 -0
  213. package/node/cp-node/fs/is-two-prong.js +6 -0
  214. package/node/cp-node/fs/is-two-prong.js.map +1 -0
  215. package/node/cp-node/fs/is-vertex-special.d.ts +2 -0
  216. package/node/cp-node/fs/is-vertex-special.js +5 -0
  217. package/node/cp-node/fs/is-vertex-special.js.map +1 -0
  218. package/node/cp-node/fs/is-vertex.d.ts +3 -0
  219. package/node/cp-node/fs/is-vertex.js +6 -0
  220. package/node/cp-node/fs/is-vertex.js.map +1 -0
  221. package/node/cp-node/fs/remove-cp-node.d.ts +5 -0
  222. package/node/cp-node/fs/remove-cp-node.js +10 -0
  223. package/node/cp-node/fs/remove-cp-node.js.map +1 -0
  224. package/node/cp-node/fs/traverse-cp.d.ts +3 -0
  225. package/node/cp-node/{traverse-cp.js → fs/traverse-cp.js} +2 -10
  226. package/node/cp-node/fs/traverse-cp.js.map +1 -0
  227. package/node/cp-node/fs/traverse-edges.d.ts +5 -0
  228. package/node/cp-node/fs/traverse-edges.js +47 -0
  229. package/node/cp-node/fs/traverse-edges.js.map +1 -0
  230. package/node/cp-node/fs/traverse-vertices.d.ts +3 -0
  231. package/node/cp-node/fs/traverse-vertices.js +21 -0
  232. package/node/cp-node/fs/traverse-vertices.js.map +1 -0
  233. package/node/curve/curve.d.ts +1 -8
  234. package/node/curve/curve.js +1 -13
  235. package/node/curve/curve.js.map +1 -1
  236. package/node/debug/debug-elem-types.d.ts +24 -29
  237. package/node/debug/debug-elem-types.js +22 -1
  238. package/node/debug/debug-elem-types.js.map +1 -1
  239. package/node/debug/debug.d.ts +4 -8
  240. package/node/debug/debug.js +16 -17
  241. package/node/debug/debug.js.map +1 -1
  242. package/node/debug/functions/draw/draw-beziers-as-single-path.d.ts +2 -0
  243. package/node/debug/functions/draw/draw-beziers-as-single-path.js +30 -0
  244. package/node/debug/functions/draw/draw-beziers-as-single-path.js.map +1 -0
  245. package/node/debug/functions/draw/xmlns.d.ts +2 -0
  246. package/node/debug/functions/draw/xmlns.js +3 -0
  247. package/node/debug/functions/draw/xmlns.js.map +1 -0
  248. package/node/debug/functions/draw-elem/draw-branch.d.ts +4 -0
  249. package/node/debug/functions/draw-elem/draw-branch.js +26 -0
  250. package/node/debug/functions/draw-elem/draw-branch.js.map +1 -0
  251. package/node/debug/functions/draw-elem/draw-cp-node.d.ts +4 -0
  252. package/node/debug/functions/draw-elem/draw-cp-node.js +26 -0
  253. package/node/debug/functions/draw-elem/draw-cp-node.js.map +1 -0
  254. package/node/debug/functions/draw-elem/draw-cull.d.ts +3 -0
  255. package/node/debug/functions/draw-elem/draw-cull.js +9 -0
  256. package/node/debug/functions/draw-elem/draw-cull.js.map +1 -0
  257. package/node/debug/functions/draw-elem/{dull-corner.js → draw-dull-corner.js} +1 -1
  258. package/node/debug/functions/draw-elem/draw-dull-corner.js.map +1 -0
  259. package/node/debug/functions/draw-elem/draw-elem.d.ts +7 -5
  260. package/node/debug/functions/draw-elem/draw-elem.js +33 -36
  261. package/node/debug/functions/draw-elem/draw-elem.js.map +1 -1
  262. package/node/debug/functions/draw-elem/draw-leaves.d.ts +4 -0
  263. package/node/debug/functions/draw-elem/draw-leaves.js +34 -0
  264. package/node/debug/functions/draw-elem/draw-leaves.js.map +1 -0
  265. package/node/debug/functions/draw-elem/{loop.js → draw-loop.js} +1 -1
  266. package/node/debug/functions/draw-elem/draw-loop.js.map +1 -0
  267. package/node/debug/functions/draw-elem/{loops.js → draw-loops.js} +1 -1
  268. package/node/debug/functions/draw-elem/draw-loops.js.map +1 -0
  269. package/node/debug/functions/draw-elem/{loose-bounding-box.js → draw-loose-bounding-box.js} +1 -1
  270. package/node/debug/functions/draw-elem/draw-loose-bounding-box.js.map +1 -0
  271. package/node/debug/functions/draw-elem/draw-mat.d.ts +4 -0
  272. package/node/debug/functions/draw-elem/draw-mat.js +38 -0
  273. package/node/debug/functions/draw-elem/draw-mat.js.map +1 -0
  274. package/node/debug/functions/draw-elem/{max-vertex.js → draw-max-vertex.js} +1 -1
  275. package/node/debug/functions/draw-elem/draw-max-vertex.js.map +1 -0
  276. package/node/debug/functions/draw-elem/{min-y.js → draw-min-y.js} +1 -1
  277. package/node/debug/functions/draw-elem/draw-min-y.js.map +1 -0
  278. package/node/debug/functions/draw-elem/{one-prong-at-dull-corner.js → draw-one-prong-at-dull-corner.js} +1 -1
  279. package/node/debug/functions/draw-elem/draw-one-prong-at-dull-corner.js.map +1 -0
  280. package/node/debug/functions/draw-elem/{one-prong.js → draw-one-prong.js} +1 -1
  281. package/node/debug/functions/draw-elem/draw-one-prong.js.map +1 -0
  282. package/node/debug/functions/draw-elem/{sharp-corner.js → draw-sharp-corner.js} +1 -1
  283. package/node/debug/functions/draw-elem/draw-sharp-corner.js.map +1 -0
  284. package/node/debug/functions/draw-elem/draw-speed.d.ts +4 -0
  285. package/node/debug/functions/draw-elem/draw-speed.js +21 -0
  286. package/node/debug/functions/draw-elem/draw-speed.js.map +1 -0
  287. package/node/debug/functions/draw-elem/draw-three-prong.d.ts +4 -0
  288. package/node/debug/functions/draw-elem/draw-three-prong.js +26 -0
  289. package/node/debug/functions/draw-elem/draw-three-prong.js.map +1 -0
  290. package/node/debug/functions/draw-elem/{tight-bounding-box.js → draw-tight-bounding-box.js} +1 -1
  291. package/node/debug/functions/draw-elem/draw-tight-bounding-box.js.map +1 -0
  292. package/node/debug/functions/draw-elem/draw-two-prong.d.ts +4 -0
  293. package/node/debug/functions/draw-elem/draw-two-prong.js +48 -0
  294. package/node/debug/functions/draw-elem/draw-two-prong.js.map +1 -0
  295. package/node/debug/functions/draw-elem/{vertex.d.ts → draw-vertex.d.ts} +1 -2
  296. package/node/debug/functions/draw-elem/draw-vertex.js +15 -0
  297. package/node/debug/functions/draw-elem/draw-vertex.js.map +1 -0
  298. package/node/find-2-prong/add-1-prong.d.ts +3 -5
  299. package/node/find-2-prong/add-1-prong.js +15 -16
  300. package/node/find-2-prong/add-1-prong.js.map +1 -1
  301. package/node/find-2-prong/add-2-prong.d.ts +6 -6
  302. package/node/find-2-prong/add-2-prong.js +45 -124
  303. package/node/find-2-prong/add-2-prong.js.map +1 -1
  304. package/node/find-2-prong/calc-seperation-tolerance.d.ts +2 -0
  305. package/node/find-2-prong/calc-seperation-tolerance.js +86 -0
  306. package/node/find-2-prong/calc-seperation-tolerance.js.map +1 -0
  307. package/node/find-2-prong/cull-bezier-pieces.d.ts +2 -2
  308. package/node/find-2-prong/cull-bezier-pieces.js +2 -2
  309. package/node/find-2-prong/cull-bezier-pieces.js.map +1 -1
  310. package/node/find-2-prong/find-2-prong.d.ts +4 -6
  311. package/node/find-2-prong/find-2-prong.js +69 -54
  312. package/node/find-2-prong/find-2-prong.js.map +1 -1
  313. package/node/find-2-prong/find-and-add-2-prong.d.ts +11 -0
  314. package/node/find-2-prong/find-and-add-2-prong.js +19 -0
  315. package/node/find-2-prong/find-and-add-2-prong.js.map +1 -0
  316. package/node/find-2-prong/find-and-add-2-prongs-on-all-loops.d.ts +14 -0
  317. package/node/find-2-prong/find-and-add-2-prongs-on-all-loops.js +21 -0
  318. package/node/find-2-prong/find-and-add-2-prongs-on-all-loops.js.map +1 -0
  319. package/node/find-2-prong/find-and-add-2-prongs.d.ts +5 -9
  320. package/node/find-2-prong/find-and-add-2-prongs.js +17 -21
  321. package/node/find-2-prong/find-and-add-2-prongs.js.map +1 -1
  322. package/node/find-2-prong/find-and-add-hole-closing-2-prongs.d.ts +3 -4
  323. package/node/find-2-prong/find-and-add-hole-closing-2-prongs.js +8 -8
  324. package/node/find-2-prong/find-and-add-hole-closing-2-prongs.js.map +1 -1
  325. package/node/find-2-prong/find-equidistant-point-on-line-dd.js.map +1 -1
  326. package/node/find-2-prong/get-initial-bezier-pieces.d.ts +2 -8
  327. package/node/find-2-prong/get-initial-bezier-pieces.js +13 -21
  328. package/node/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
  329. package/node/find-2-prong/reduce-radius.d.ts +2 -2
  330. package/node/find-2-prong/reduce-radius.js +10 -19
  331. package/node/find-2-prong/reduce-radius.js.map +1 -1
  332. package/node/find-3-prong.ts/calc-better-x.d.ts +3 -3
  333. package/node/find-3-prong.ts/calc-better-x.js +4 -4
  334. package/node/find-3-prong.ts/calc-better-x.js.map +1 -1
  335. package/node/find-3-prong.ts/calc-initial-3-prong-center.d.ts +2 -2
  336. package/node/find-3-prong.ts/calc-initial-3-prong-center.js +6 -3
  337. package/node/find-3-prong.ts/calc-initial-3-prong-center.js.map +1 -1
  338. package/node/find-3-prong.ts/find-3-prong-for-delta3s.d.ts +4 -4
  339. package/node/find-3-prong.ts/find-3-prong-for-delta3s.js +24 -33
  340. package/node/find-3-prong.ts/find-3-prong-for-delta3s.js.map +1 -1
  341. package/node/find-3-prong.ts/find-3-prong.d.ts +1 -1
  342. package/node/find-3-prong.ts/find-3-prong.js +2 -61
  343. package/node/find-3-prong.ts/find-3-prong.js.map +1 -1
  344. package/node/find-3-prong.ts/find-and-add-3-prong.d.ts +15 -0
  345. package/node/find-3-prong.ts/find-and-add-3-prong.js +43 -0
  346. package/node/find-3-prong.ts/find-and-add-3-prong.js.map +1 -0
  347. package/node/find-3-prong.ts/find-and-add-3-prongs-on-loop.d.ts +11 -0
  348. package/node/find-3-prong.ts/find-and-add-3-prongs-on-loop.js +63 -0
  349. package/node/find-3-prong.ts/find-and-add-3-prongs-on-loop.js.map +1 -0
  350. package/node/find-3-prong.ts/find-and-add-3-prongs.d.ts +22 -3
  351. package/node/find-3-prong.ts/find-and-add-3-prongs.js +28 -55
  352. package/node/find-3-prong.ts/find-and-add-3-prongs.js.map +1 -1
  353. package/node/find-3-prong.ts/get-closest-points.d.ts +2 -2
  354. package/node/find-3-prong.ts/get-closest-points.js +2 -1
  355. package/node/find-3-prong.ts/get-closest-points.js.map +1 -1
  356. package/node/find-mat/clip-options.d.ts +3 -0
  357. package/node/find-mat/clip-options.js +32 -0
  358. package/node/find-mat/clip-options.js.map +1 -0
  359. package/node/find-mat/{create-initial-cp-graph.d.ts → create-initial-cp-tree.d.ts} +5 -2
  360. package/node/find-mat/{create-initial-cp-graph.js → create-initial-cp-tree.js} +11 -10
  361. package/node/find-mat/create-initial-cp-tree.js.map +1 -0
  362. package/node/find-mat/find-mat.d.ts +7 -2
  363. package/node/find-mat/find-mat.js +34 -22
  364. package/node/find-mat/find-mat.js.map +1 -1
  365. package/node/find-mat/find-mats.d.ts +4 -2
  366. package/node/find-mat/find-mats.js +27 -10
  367. package/node/find-mat/find-mats.js.map +1 -1
  368. package/node/find-mat/{get-dull-corners.js → get-dull-corners-on-loop.js} +3 -3
  369. package/node/find-mat/get-dull-corners-on-loop.js.map +1 -0
  370. package/node/find-mat/get-for-1-prongs-on-loop.js +15 -5
  371. package/node/find-mat/get-for-1-prongs-on-loop.js.map +1 -1
  372. package/node/find-mat/get-for-2-prongs-on-loop.js +14 -10
  373. package/node/find-mat/get-for-2-prongs-on-loop.js.map +1 -1
  374. package/node/find-mat/get-meta.d.ts +11 -0
  375. package/node/find-mat/get-meta.js +82 -0
  376. package/node/find-mat/get-meta.js.map +1 -0
  377. package/node/find-mat/get-sharp-corners.js +3 -2
  378. package/node/find-mat/get-sharp-corners.js.map +1 -1
  379. package/node/find-mat/mat-options.d.ts +88 -0
  380. package/node/find-mat/mat-options.js +36 -0
  381. package/node/find-mat/mat-options.js.map +1 -0
  382. package/node/floyd-warshall/floyd-warshall.d.ts +7 -0
  383. package/node/floyd-warshall/floyd-warshall.js +67 -0
  384. package/node/floyd-warshall/floyd-warshall.js.map +1 -0
  385. package/node/floyd-warshall/get-graph.d.ts +3 -0
  386. package/node/floyd-warshall/get-graph.js +54 -0
  387. package/node/floyd-warshall/get-graph.js.map +1 -0
  388. package/node/floyd-warshall/get-hole-closer-pairs.d.ts +3 -0
  389. package/node/floyd-warshall/get-hole-closer-pairs.js +19 -0
  390. package/node/floyd-warshall/get-hole-closer-pairs.js.map +1 -0
  391. package/node/geometry/circle.js.map +1 -1
  392. package/node/geometry/get-bounding-box-.d.ts +2 -2
  393. package/node/geometry/get-bounding-box-.js +2 -2
  394. package/node/geometry/get-bounding-box-.js.map +1 -1
  395. package/node/geometry/get-closest-square-distance-to-rect.js.map +1 -1
  396. package/node/geometry/get-closest-squared-distance-to-rotated-rect.js.map +1 -1
  397. package/node/index.d.ts +50 -40
  398. package/node/index.js +34 -37
  399. package/node/index.js.map +1 -1
  400. package/node/loop/get-max-coordinate.js.map +1 -1
  401. package/node/mat/{add-to-cp-graph.d.ts → add-to-cp-tree.d.ts} +6 -4
  402. package/node/mat/add-to-cp-tree.js +34 -0
  403. package/node/mat/add-to-cp-tree.js.map +1 -0
  404. package/node/mat/connect-hole-closers.d.ts +3 -0
  405. package/node/mat/connect-hole-closers.js +5 -0
  406. package/node/mat/connect-hole-closers.js.map +1 -0
  407. package/node/mat/create-new-cp-tree.d.ts +1 -1
  408. package/node/mat/create-new-cp-tree.js +2 -1
  409. package/node/mat/create-new-cp-tree.js.map +1 -1
  410. package/node/mat/{bezier-piece.d.ts → curve-piece.d.ts} +2 -2
  411. package/node/mat/curve-piece.js +2 -0
  412. package/node/mat/curve-piece.js.map +1 -0
  413. package/node/mat/get-boundary-piece-beziers.d.ts +3 -2
  414. package/node/mat/get-boundary-piece-beziers.js +2 -3
  415. package/node/mat/get-boundary-piece-beziers.js.map +1 -1
  416. package/node/mat/get-branches.d.ts +1 -10
  417. package/node/mat/get-branches.js +23 -60
  418. package/node/mat/get-branches.js.map +1 -1
  419. package/node/mat/get-closeby-cp-if-exist.d.ts +17 -0
  420. package/node/mat/{is-another-cp-closeby.js → get-closeby-cp-if-exist.js} +17 -13
  421. package/node/mat/get-closeby-cp-if-exist.js.map +1 -0
  422. package/node/mat/get-cp-node-to-left-or-same.d.ts +18 -0
  423. package/node/mat/get-cp-node-to-left-or-same.js +29 -0
  424. package/node/mat/get-cp-node-to-left-or-same.js.map +1 -0
  425. package/node/mat/get-largest-vertex.d.ts +1 -1
  426. package/node/mat/get-largest-vertex.js +3 -1
  427. package/node/mat/get-largest-vertex.js.map +1 -1
  428. package/node/mat/mat-meta.d.ts +24 -0
  429. package/node/mat/mat-meta.js +2 -0
  430. package/node/mat/mat-meta.js.map +1 -0
  431. package/node/mat/mat.d.ts +6 -6
  432. package/node/mat/simplify-mat.d.ts +2 -2
  433. package/node/mat/simplify-mat.js +31 -20
  434. package/node/mat/simplify-mat.js.map +1 -1
  435. package/node/mat/trim-mat.js +8 -2
  436. package/node/mat/trim-mat.js.map +1 -1
  437. package/node/memoize-primitive.d.ts +11 -0
  438. package/node/memoize-primitive.js +25 -0
  439. package/node/memoize-primitive.js.map +1 -0
  440. package/node/point-on-shape/calc-pos-order.js +1 -2
  441. package/node/point-on-shape/calc-pos-order.js.map +1 -1
  442. package/node/point-on-shape/compare-poss.js.map +1 -1
  443. package/node/point-on-shape/create-pos.d.ts +1 -1
  444. package/node/point-on-shape/create-pos.js +2 -3
  445. package/node/point-on-shape/create-pos.js.map +1 -1
  446. package/node/point-on-shape/get-osculating-circle.d.ts +3 -1
  447. package/node/point-on-shape/get-osculating-circle.js +6 -2
  448. package/node/point-on-shape/get-osculating-circle.js.map +1 -1
  449. package/node/point-on-shape/get-pos-corner.js +4 -2
  450. package/node/point-on-shape/get-pos-corner.js.map +1 -1
  451. package/node/point-on-shape/is-pos-quite-sharp-corner.js.map +1 -1
  452. package/node/point-on-shape/is-pos-sharp-corner.js.map +1 -1
  453. package/node/point-on-shape/point-on-shape.d.ts +1 -1
  454. package/node/sat/add-debug-info.d.ts +1 -2
  455. package/node/sat/add-debug-info.js +1 -2
  456. package/node/sat/add-debug-info.js.map +1 -1
  457. package/node/sat/cull-non-cycles.js +2 -2
  458. package/node/sat/cull-non-cycles.js.map +1 -1
  459. package/node/sat/cull.d.ts +2 -2
  460. package/node/sat/cull.js +44 -29
  461. package/node/sat/cull.js.map +1 -1
  462. package/node/sat/get-leaves.js +4 -2
  463. package/node/sat/get-leaves.js.map +1 -1
  464. package/node/sat/get-sat-culls.d.ts +4 -0
  465. package/node/sat/get-sat-culls.js +33 -0
  466. package/node/sat/get-sat-culls.js.map +1 -0
  467. package/node/sat/to-scale-axis.js +13 -44
  468. package/node/sat/to-scale-axis.js.map +1 -1
  469. package/node/svg/get-loop-bounds.js.map +1 -1
  470. package/node/svg/get-min-y-pos.d.ts +1 -1
  471. package/node/svg/get-shape-bounds.js.map +1 -1
  472. package/node/sweep-line/sweep-line.js.map +1 -1
  473. package/node/utils/dual-set.d.ts +27 -0
  474. package/node/utils/dual-set.js +55 -0
  475. package/node/utils/dual-set.js.map +1 -0
  476. package/node/utils/sleep.d.ts +2 -0
  477. package/node/utils/sleep.js +5 -0
  478. package/node/utils/sleep.js.map +1 -0
  479. package/node/utils/sum.d.ts +2 -0
  480. package/node/utils/sum.js +9 -0
  481. package/node/utils/sum.js.map +1 -0
  482. package/node/utils/tri-map.d.ts +27 -0
  483. package/node/utils/tri-map.js +49 -0
  484. package/node/utils/tri-map.js.map +1 -0
  485. package/node/vertex/remove-vertex.d.ts +5 -0
  486. package/node/vertex/remove-vertex.js +12 -0
  487. package/node/vertex/remove-vertex.js.map +1 -0
  488. package/package.json +21 -25
  489. package/src/add-n-prong.ts/join-spokes.ts +39 -0
  490. package/src/bezier/fit-quads-to-cubic.ts +103 -0
  491. package/src/bezier/total-curvature.ts +8 -0
  492. package/src/bezier/total-length.ts +8 -0
  493. package/src/closest-boundary-point/closest-points-on-curve-precise.ts +62 -62
  494. package/src/closest-boundary-point/cull-bezier-pieces.ts +2 -2
  495. package/src/closest-boundary-point/cull-by-loose-bounding-box.ts +4 -4
  496. package/src/closest-boundary-point/cull-by-tight-boundary-box.ts +2 -2
  497. package/src/closest-boundary-point/foot-and-endpoint-info.ts +2 -2
  498. package/src/closest-boundary-point/get-best-distance-squared.ts +2 -2
  499. package/src/closest-boundary-point/get-close-boundary-points-certified.ts +8 -3
  500. package/src/closest-boundary-point/get-closest-boundary-point-certified.ts +56 -56
  501. package/src/closest-boundary-point/get-potential-closest-points-on-curve-certified.ts +24 -6
  502. package/src/closest-boundary-point/root-interval-to-distance-squared-interval.ts +12 -6
  503. package/src/corner/compare-curvatures-at-interface.ts +49 -69
  504. package/src/corner/corner.ts +1 -1
  505. package/src/corner/get-corner.ts +9 -23
  506. package/src/corner/get-interface-ccw.ts +96 -60
  507. package/src/cp-node/cp-node-fs.ts +234 -0
  508. package/src/cp-node/cp-node.ts +27 -348
  509. package/src/cp-node/fs/add-distance-from.ts +50 -0
  510. package/src/cp-node/{clone.ts → fs/clone.ts} +27 -17
  511. package/src/cp-node/fs/cp-nodes-to-boundary-beziers.ts +10 -0
  512. package/src/cp-node/fs/create-cp-node.ts +21 -0
  513. package/src/cp-node/{enhance-cp-node.ts → fs/enhance-cp-node.ts} +10 -4
  514. package/src/cp-node/fs/find-first.ts +25 -0
  515. package/src/cp-node/fs/get-all-between.ts +44 -0
  516. package/src/cp-node/fs/get-all-on-circle.ts +23 -0
  517. package/src/cp-node/fs/get-all-on-loop.ts +18 -0
  518. package/src/cp-node/fs/get-all-vertices.ts +17 -0
  519. package/src/cp-node/fs/get-angle-between-mat-curves.ts +33 -0
  520. package/src/cp-node/fs/get-avg-speed.ts +31 -0
  521. package/src/cp-node/{get-boundary-bezier-parts-to-next.ts → fs/get-boundary-bezier-parts-to-next.ts} +2 -9
  522. package/src/cp-node/fs/get-boundary-beziers-between.ts +31 -0
  523. package/src/cp-node/{get-boundary-beziers-to-next.ts → fs/get-boundary-beziers-to-next.ts} +5 -10
  524. package/src/cp-node/fs/get-boundary-distance-to-next.ts +16 -0
  525. package/src/cp-node/fs/get-branch-beziers.ts +18 -0
  526. package/src/cp-node/fs/get-branch.ts +43 -0
  527. package/src/cp-node/fs/get-children.ts +18 -0
  528. package/src/cp-node/{get-cp-node-ordering.ts → fs/get-cp-node-ordering.ts} +5 -1
  529. package/src/cp-node/fs/get-distance-between.ts +16 -0
  530. package/src/cp-node/fs/get-distance-to-next.ts +19 -0
  531. package/src/cp-node/fs/get-edge-direction.ts +64 -0
  532. package/src/cp-node/fs/get-first-exit.ts +22 -0
  533. package/src/cp-node/fs/get-hole-closers.ts +13 -0
  534. package/src/cp-node/fs/get-implied-boundary-bezier-between.ts +78 -0
  535. package/src/cp-node/fs/get-mat-curve-between.ts +74 -0
  536. package/src/cp-node/fs/get-mat-curve-to-next.ts +13 -0
  537. package/src/cp-node/fs/get-mat-curves-between.ts +22 -0
  538. package/src/cp-node/fs/get-non-terminating-on-circle.ts +24 -0
  539. package/src/cp-node/fs/get-prong-count.ts +18 -0
  540. package/src/cp-node/fs/get-real-prong-count.ts +14 -0
  541. package/src/cp-node/fs/get-salience.ts +28 -0
  542. package/src/cp-node/fs/get-smoothed-speed.ts +97 -0
  543. package/src/cp-node/fs/get-smoothed.ts +62 -0
  544. package/src/cp-node/fs/get-speed.ts +61 -0
  545. package/src/cp-node/fs/get-terminating-on-circle.ts +24 -0
  546. package/src/cp-node/fs/get-vertex-forward-children.ts +22 -0
  547. package/src/cp-node/fs/insert-cp-node.ts +40 -0
  548. package/src/cp-node/fs/is-fully-terminating.ts +13 -0
  549. package/src/cp-node/fs/is-on-same-circle.ts +16 -0
  550. package/src/cp-node/fs/is-one-prong.ts +21 -0
  551. package/src/cp-node/fs/is-order-correct.ts +36 -0
  552. package/src/cp-node/fs/is-sharp.ts +9 -0
  553. package/src/cp-node/fs/is-single-3-prong.ts +15 -0
  554. package/src/cp-node/fs/is-special.ts +16 -0
  555. package/src/cp-node/fs/is-terminating.ts +9 -0
  556. package/src/cp-node/fs/is-trivial.ts +16 -0
  557. package/src/cp-node/fs/is-two-prong.ts +10 -0
  558. package/src/cp-node/fs/is-vertex-special.ts +8 -0
  559. package/src/cp-node/fs/is-vertex.ts +12 -0
  560. package/src/cp-node/fs/iterate-all-on-loop.ts +15 -0
  561. package/src/cp-node/fs/remove-cp-node.ts +20 -0
  562. package/src/cp-node/fs/traverse-all-forward.ts +24 -0
  563. package/src/cp-node/{traverse-cp.ts → fs/traverse-cp.ts} +3 -11
  564. package/src/cp-node/fs/traverse-edges.ts +71 -0
  565. package/src/cp-node/fs/traverse-vertices.ts +32 -0
  566. package/src/curve/curve.ts +1 -16
  567. package/src/dbscan/dbscan.ts +91 -0
  568. package/src/debug/debug-elem-types.ts +37 -29
  569. package/src/debug/debug.ts +20 -25
  570. package/src/debug/functions/check-ordering.ts +97 -0
  571. package/src/debug/functions/cmp-cp-on-delta.ts +54 -0
  572. package/src/debug/functions/draw/draw-bezier-pieces.ts +35 -0
  573. package/src/debug/functions/draw/draw-beziers-as-single-path.ts +40 -0
  574. package/src/debug/functions/draw/draw-disk.ts +34 -0
  575. package/src/debug/functions/draw/xmlns.ts +5 -0
  576. package/src/debug/functions/draw-elem/branch.ts +0 -1
  577. package/src/debug/functions/draw-elem/draw-branch.ts +39 -0
  578. package/src/debug/functions/draw-elem/draw-cp-node.ts +47 -0
  579. package/src/debug/functions/draw-elem/draw-cull.ts +21 -0
  580. package/src/debug/functions/draw-elem/draw-dull-corner.ts +21 -0
  581. package/src/debug/functions/draw-elem/draw-elem.ts +51 -48
  582. package/src/debug/functions/draw-elem/draw-leaves.ts +51 -0
  583. package/src/debug/functions/draw-elem/draw-loop.ts +16 -0
  584. package/src/debug/functions/draw-elem/draw-loops.ts +10 -0
  585. package/src/debug/functions/draw-elem/draw-loose-bounding-box.ts +21 -0
  586. package/src/debug/functions/draw-elem/draw-mat.ts +53 -0
  587. package/src/debug/functions/draw-elem/draw-max-vertex.ts +15 -0
  588. package/src/debug/functions/draw-elem/draw-min-y.ts +18 -0
  589. package/src/debug/functions/draw-elem/draw-one-prong-at-dull-corner.ts +26 -0
  590. package/src/debug/functions/draw-elem/draw-one-prong.ts +23 -0
  591. package/src/debug/functions/draw-elem/draw-sharp-corner.ts +20 -0
  592. package/src/debug/functions/draw-elem/draw-speed.ts +35 -0
  593. package/src/debug/functions/draw-elem/draw-three-prong.ts +44 -0
  594. package/src/debug/functions/draw-elem/draw-tight-bounding-box.ts +18 -0
  595. package/src/debug/functions/draw-elem/draw-two-prong.ts +67 -0
  596. package/src/debug/functions/draw-elem/draw-vertex.ts +30 -0
  597. package/src/debug/two-prong-for-debugging.ts +2 -2
  598. package/src/dijkstra/dijkstra.ts +418 -0
  599. package/src/find-2-prong/add-1-prong.ts +15 -22
  600. package/src/find-2-prong/add-2-prong.ts +68 -173
  601. package/src/find-2-prong/add-debug-info.ts +21 -25
  602. package/src/find-2-prong/calc-seperation-tolerance.ts +121 -0
  603. package/src/find-2-prong/cull-bezier-pieces.ts +4 -4
  604. package/src/find-2-prong/find-2-prong.ts +86 -65
  605. package/src/find-2-prong/find-and-add-2-prong.ts +30 -0
  606. package/src/find-2-prong/find-and-add-2-prongs-on-all-loops.ts +37 -0
  607. package/src/find-2-prong/find-and-add-2-prongs.ts +20 -33
  608. package/src/find-2-prong/find-and-add-hole-closing-2-prongs.ts +13 -14
  609. package/src/find-2-prong/get-initial-bezier-pieces.ts +23 -31
  610. package/src/find-2-prong/reduce-radius.ts +13 -24
  611. package/src/find-3-prong.ts/array-set.ts +47 -0
  612. package/src/find-3-prong.ts/calc-better-x.ts +7 -7
  613. package/src/find-3-prong.ts/calc-initial-3-prong-center.ts +8 -3
  614. package/src/find-3-prong.ts/find-3-prong-for-delta3s.ts +28 -42
  615. package/src/find-3-prong.ts/find-3-prong.ts +7 -107
  616. package/src/find-3-prong.ts/find-and-add-3-prong.ts +61 -0
  617. package/src/find-3-prong.ts/find-and-add-3-prongs-on-loop.ts +89 -0
  618. package/src/find-3-prong.ts/find-and-add-3-prongs.ts +31 -81
  619. package/src/find-3-prong.ts/get-closest-points.ts +3 -3
  620. package/src/find-mat/add-2-prongs-by-error.ts +122 -0
  621. package/src/find-mat/clip-options.ts +38 -0
  622. package/src/find-mat/cp-node-for-insertion.ts +13 -0
  623. package/src/find-mat/create-initial-cp-tree.ts +59 -0
  624. package/src/find-mat/find-mat.ts +50 -38
  625. package/src/find-mat/find-mats.ts +39 -22
  626. package/src/find-mat/get-dull-corners-on-loop.ts +34 -0
  627. package/src/find-mat/get-for-1-prongs-on-loop.ts +25 -6
  628. package/src/find-mat/get-for-2-prongs-on-loop.ts +16 -8
  629. package/src/find-mat/get-half-angles.ts +95 -0
  630. package/src/find-mat/get-meta.ts +115 -0
  631. package/src/find-mat/get-sharp-corners.ts +3 -2
  632. package/src/find-mat/get-total-by.ts +5 -5
  633. package/src/find-mat/mat-options.ts +140 -0
  634. package/src/floyd-warshall/floyd-warshall.ts +89 -0
  635. package/src/floyd-warshall/get-graph.ts +73 -0
  636. package/src/floyd-warshall/get-hole-closer-pairs.ts +27 -0
  637. package/src/geometry/get-bounding-box-.ts +3 -2
  638. package/src/heap/heap.ts +96 -0
  639. package/src/index.ts +52 -133
  640. package/src/mat/add-to-cp-tree.ts +56 -0
  641. package/src/mat/clone-mat.ts +14 -0
  642. package/src/mat/clone-meta.ts +17 -0
  643. package/src/mat/connect-hole-closers.ts +9 -0
  644. package/src/mat/create-new-cp-tree.ts +4 -1
  645. package/src/mat/{bezier-piece.ts → curve-piece.ts} +2 -2
  646. package/src/mat/get-boundary-piece-beziers.ts +10 -11
  647. package/src/mat/get-branches.ts +25 -75
  648. package/src/mat/get-closeby-cp-if-exist.ts +75 -0
  649. package/src/mat/get-cp-node-to-left-or-same.ts +43 -0
  650. package/src/mat/get-edges-as-array.ts +12 -12
  651. package/src/mat/get-largest-3-prong.ts +21 -0
  652. package/src/mat/get-largest-vertex.ts +4 -1
  653. package/src/mat/mat-meta.ts +31 -0
  654. package/src/mat/mat.ts +7 -7
  655. package/src/mat/simplify-mat.ts +39 -23
  656. package/src/mat/trim-mat.ts +8 -2
  657. package/src/memoize-primitive.ts +31 -0
  658. package/src/point-on-shape/calc-pos-order.ts +1 -2
  659. package/src/point-on-shape/create-pos.ts +2 -3
  660. package/src/point-on-shape/get-osculating-circle.ts +4 -1
  661. package/src/point-on-shape/get-pos-corner.ts +10 -6
  662. package/src/point-on-shape/is-pos-dull-corner.ts +6 -4
  663. package/src/point-on-shape/point-on-shape.ts +1 -1
  664. package/src/sat/add-debug-info.ts +0 -4
  665. package/src/sat/cull-by-salience.ts +115 -0
  666. package/src/sat/cull-non-cycles.ts +4 -2
  667. package/src/sat/cull.ts +53 -33
  668. package/src/sat/get-leaves.ts +7 -2
  669. package/src/sat/get-sat-culls.ts +46 -0
  670. package/src/sat/to-scale-axis.ts +13 -57
  671. package/src/svg/get-extreme.ts +1 -1
  672. package/src/utils/bezier-piece-to-bezier.ts +13 -0
  673. package/src/utils/deg-to-rad.ts +7 -0
  674. package/src/utils/dual-map.ts +55 -0
  675. package/src/utils/dual-set.ts +82 -0
  676. package/src/utils/rad-to-deg.ts +7 -0
  677. package/src/utils/rotate.ts +17 -0
  678. package/src/utils/sleep.ts +7 -0
  679. package/src/utils/sum.ts +12 -0
  680. package/src/utils/tri-map.ts +76 -0
  681. package/src/vertex/remove-vertex.ts +22 -0
  682. package/webpack.config.cjs +38 -36
  683. package/browser/index.js +0 -33589
  684. package/node/closest-boundary-point/get-closest-boundary-point-certified.d.ts +0 -15
  685. package/node/closest-boundary-point/get-closest-boundary-point-certified.js +0 -42
  686. package/node/closest-boundary-point/get-closest-boundary-point-certified.js.map +0 -1
  687. package/node/cp-node/clone.js.map +0 -1
  688. package/node/cp-node/create-cp-node.d.ts +0 -4
  689. package/node/cp-node/create-cp-node.js +0 -8
  690. package/node/cp-node/create-cp-node.js.map +0 -1
  691. package/node/cp-node/enhance-cp-node.js.map +0 -1
  692. package/node/cp-node/get-boundary-bezier-parts-to-next.js.map +0 -1
  693. package/node/cp-node/get-boundary-beziers-to-next.d.ts +0 -8
  694. package/node/cp-node/get-boundary-beziers-to-next.js.map +0 -1
  695. package/node/cp-node/get-cp-node-ordering.js.map +0 -1
  696. package/node/cp-node/get-curve-to-next.d.ts +0 -9
  697. package/node/cp-node/get-curve-to-next.js +0 -12
  698. package/node/cp-node/get-curve-to-next.js.map +0 -1
  699. package/node/cp-node/remove.d.ts +0 -9
  700. package/node/cp-node/remove.js +0 -20
  701. package/node/cp-node/remove.js.map +0 -1
  702. package/node/cp-node/traverse-cp.d.ts +0 -12
  703. package/node/cp-node/traverse-cp.js.map +0 -1
  704. package/node/cp-node/traverse-edges.d.ts +0 -10
  705. package/node/cp-node/traverse-edges.js +0 -23
  706. package/node/cp-node/traverse-edges.js.map +0 -1
  707. package/node/cp-node/traverse-vertices.d.ts +0 -12
  708. package/node/cp-node/traverse-vertices.js +0 -29
  709. package/node/cp-node/traverse-vertices.js.map +0 -1
  710. package/node/debug/functions/draw-elem/branch.d.ts +0 -4
  711. package/node/debug/functions/draw-elem/branch.js +0 -24
  712. package/node/debug/functions/draw-elem/branch.js.map +0 -1
  713. package/node/debug/functions/draw-elem/culls.d.ts +0 -4
  714. package/node/debug/functions/draw-elem/culls.js +0 -22
  715. package/node/debug/functions/draw-elem/culls.js.map +0 -1
  716. package/node/debug/functions/draw-elem/dull-corner.js.map +0 -1
  717. package/node/debug/functions/draw-elem/leaves.d.ts +0 -4
  718. package/node/debug/functions/draw-elem/leaves.js +0 -13
  719. package/node/debug/functions/draw-elem/leaves.js.map +0 -1
  720. package/node/debug/functions/draw-elem/loop.js.map +0 -1
  721. package/node/debug/functions/draw-elem/loops.js.map +0 -1
  722. package/node/debug/functions/draw-elem/loose-bounding-box.js.map +0 -1
  723. package/node/debug/functions/draw-elem/mat.d.ts +0 -4
  724. package/node/debug/functions/draw-elem/mat.js +0 -33
  725. package/node/debug/functions/draw-elem/mat.js.map +0 -1
  726. package/node/debug/functions/draw-elem/max-vertex.js.map +0 -1
  727. package/node/debug/functions/draw-elem/min-y.js.map +0 -1
  728. package/node/debug/functions/draw-elem/one-prong-at-dull-corner.js.map +0 -1
  729. package/node/debug/functions/draw-elem/one-prong.js.map +0 -1
  730. package/node/debug/functions/draw-elem/sharp-corner.js.map +0 -1
  731. package/node/debug/functions/draw-elem/three-prong.d.ts +0 -4
  732. package/node/debug/functions/draw-elem/three-prong.js +0 -15
  733. package/node/debug/functions/draw-elem/three-prong.js.map +0 -1
  734. package/node/debug/functions/draw-elem/tight-bounding-box.js.map +0 -1
  735. package/node/debug/functions/draw-elem/two-prong.d.ts +0 -4
  736. package/node/debug/functions/draw-elem/two-prong.js +0 -36
  737. package/node/debug/functions/draw-elem/two-prong.js.map +0 -1
  738. package/node/debug/functions/draw-elem/vertex.js +0 -30
  739. package/node/debug/functions/draw-elem/vertex.js.map +0 -1
  740. package/node/debug/functions/three-prong.d.ts +0 -11
  741. package/node/debug/functions/three-prong.js +0 -182
  742. package/node/debug/functions/three-prong.js.map +0 -1
  743. package/node/debug/functions/two-prong.d.ts +0 -24
  744. package/node/debug/functions/two-prong.js +0 -116
  745. package/node/debug/functions/two-prong.js.map +0 -1
  746. package/node/debug/three-prong-for-debugging.d.ts +0 -31
  747. package/node/debug/three-prong-for-debugging.js +0 -21
  748. package/node/debug/three-prong-for-debugging.js.map +0 -1
  749. package/node/debug/two-prong-for-debugging.d.ts +0 -26
  750. package/node/debug/two-prong-for-debugging.js +0 -2
  751. package/node/debug/two-prong-for-debugging.js.map +0 -1
  752. package/node/find-2-prong/add-debug-info.d.ts +0 -8
  753. package/node/find-2-prong/add-debug-info.js +0 -23
  754. package/node/find-2-prong/add-debug-info.js.map +0 -1
  755. package/node/find-2-prong/find-and-add-2-prongs-on-all-paths.d.ts +0 -15
  756. package/node/find-2-prong/find-and-add-2-prongs-on-all-paths.js +0 -22
  757. package/node/find-2-prong/find-and-add-2-prongs-on-all-paths.js.map +0 -1
  758. package/node/find-2-prong/x-for-debugging.d.ts +0 -9
  759. package/node/find-2-prong/x-for-debugging.js +0 -2
  760. package/node/find-2-prong/x-for-debugging.js.map +0 -1
  761. package/node/find-3-prong.ts/add-3-prong.d.ts +0 -24
  762. package/node/find-3-prong.ts/add-3-prong.js +0 -82
  763. package/node/find-3-prong.ts/add-3-prong.js.map +0 -1
  764. package/node/find-3-prong.ts/find-and-add-all-3-prongs.d.ts +0 -13
  765. package/node/find-3-prong.ts/find-and-add-all-3-prongs.js +0 -66
  766. package/node/find-3-prong.ts/find-and-add-all-3-prongs.js.map +0 -1
  767. package/node/find-mat/add-debug-info.d.ts +0 -9
  768. package/node/find-mat/add-debug-info.js +0 -68
  769. package/node/find-mat/add-debug-info.js.map +0 -1
  770. package/node/find-mat/create-initial-cp-graph.js.map +0 -1
  771. package/node/find-mat/fix-ordering.d.ts +0 -8
  772. package/node/find-mat/fix-ordering.js +0 -59
  773. package/node/find-mat/fix-ordering.js.map +0 -1
  774. package/node/find-mat/get-dull-corners.js.map +0 -1
  775. package/node/find-mat/get-size-params.d.ts +0 -7
  776. package/node/find-mat/get-size-params.js +0 -33
  777. package/node/find-mat/get-size-params.js.map +0 -1
  778. package/node/get-curve/get-curve-between.d.ts +0 -9
  779. package/node/get-curve/get-curve-between.js.map +0 -1
  780. package/node/get-curve/get-edge-direction.d.ts +0 -9
  781. package/node/get-curve/get-edge-direction.js.map +0 -1
  782. package/node/mat/add-to-cp-graph.js +0 -33
  783. package/node/mat/add-to-cp-graph.js.map +0 -1
  784. package/node/mat/bezier-piece.js +0 -2
  785. package/node/mat/bezier-piece.js.map +0 -1
  786. package/node/mat/elem-type-two-prong.d.ts +0 -3
  787. package/node/mat/elem-type-two-prong.js +0 -2
  788. package/node/mat/elem-type-two-prong.js.map +0 -1
  789. package/node/mat/get-neighboring-cps.d.ts +0 -16
  790. package/node/mat/get-neighboring-cps.js +0 -33
  791. package/node/mat/get-neighboring-cps.js.map +0 -1
  792. package/node/mat/get-two-prong-type.d.ts +0 -5
  793. package/node/mat/get-two-prong-type.js +0 -9
  794. package/node/mat/get-two-prong-type.js.map +0 -1
  795. package/node/mat/is-another-cp-closeby.d.ts +0 -21
  796. package/node/mat/is-another-cp-closeby.js.map +0 -1
  797. package/node/mat/simplify-mat-map-only.d.ts +0 -23
  798. package/node/mat/simplify-mat-map-only.js +0 -82
  799. package/node/mat/simplify-mat-map-only.js.map +0 -1
  800. package/node/point-on-shape/is-pos-dull-corner.d.ts +0 -6
  801. package/node/point-on-shape/is-pos-dull-corner.js +0 -14
  802. package/node/point-on-shape/is-pos-dull-corner.js.map +0 -1
  803. package/src/cp-node/create-cp-node.ts +0 -21
  804. package/src/cp-node/get-curve-to-next.ts +0 -16
  805. package/src/cp-node/remove.ts +0 -27
  806. package/src/cp-node/traverse-edges.ts +0 -29
  807. package/src/cp-node/traverse-vertices.ts +0 -37
  808. /package/{test → __tests__}/lib-load.spec.ts +0 -0
  809. /package/node/debug/functions/draw-elem/{dull-corner.d.ts → draw-dull-corner.d.ts} +0 -0
  810. /package/node/debug/functions/draw-elem/{loop.d.ts → draw-loop.d.ts} +0 -0
  811. /package/node/debug/functions/draw-elem/{loops.d.ts → draw-loops.d.ts} +0 -0
  812. /package/node/debug/functions/draw-elem/{loose-bounding-box.d.ts → draw-loose-bounding-box.d.ts} +0 -0
  813. /package/node/debug/functions/draw-elem/{max-vertex.d.ts → draw-max-vertex.d.ts} +0 -0
  814. /package/node/debug/functions/draw-elem/{min-y.d.ts → draw-min-y.d.ts} +0 -0
  815. /package/node/debug/functions/draw-elem/{one-prong-at-dull-corner.d.ts → draw-one-prong-at-dull-corner.d.ts} +0 -0
  816. /package/node/debug/functions/draw-elem/{one-prong.d.ts → draw-one-prong.d.ts} +0 -0
  817. /package/node/debug/functions/draw-elem/{sharp-corner.d.ts → draw-sharp-corner.d.ts} +0 -0
  818. /package/node/debug/functions/draw-elem/{tight-bounding-box.d.ts → draw-tight-bounding-box.d.ts} +0 -0
  819. /package/node/find-mat/{get-dull-corners.d.ts → get-dull-corners-on-loop.d.ts} +0 -0
@@ -1 +1 @@
1
- var t={d:(n,e)=>{for(var r in e)t.o(e,r)&&!t.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:e[r]})},o:(t,n)=>Object.prototype.hasOwnProperty.call(t,n)},n={};function e(t){let n="";for(let e=0;e<t.length;e++){const r=t[e];0===e&&(n="M "+r[0][0].toString()+" "+r[0][1].toString()+"\n"),4===r.length?n+="C "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "+r[3][0].toString()+" "+r[3][1].toString()+" \n":3===r.length?n+="Q "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" \n":2===r.length&&(n+="L "+r[1][0].toString()+" "+r[1][1].toString()+" \n")}return n+" z\n"}t.d(n,{A3:()=>e,bz:()=>wn,Ev:()=>Sn,$d:()=>Se,zh:()=>Dm,Ls:()=>km,CU:()=>Ym,gM:()=>Lm,xD:()=>Dn,SQ:()=>Kv,f4:()=>Tn,BG:()=>Qm,Ij:()=>qm,tQ:()=>Hd,C_:()=>pm,G:()=>Mn,bx:()=>Xm,DZ:()=>Ad,yc:()=>Cn,wH:()=>In,N0:()=>Nn,EC:()=>Bn,Jt:()=>l,DC:()=>Fn,PF:()=>Vn,tO:()=>_g,Sl:()=>yn,ZN:()=>zn,MY:()=>On,bA:()=>Yn,p8:()=>An,bQ:()=>Ca,WN:()=>En,r0:()=>kn,UW:()=>ib,_T:()=>ub,Dw:()=>ab,xs:()=>hm,vU:()=>Xn,y9:()=>fm,Fw:()=>lm,QE:()=>om,pI:()=>Pn});class r{constructor(){this.initialPoint=void 0,this.vals=void 0,this.prev2ndCubicControlPoint=void 0,this.prev2ndQuadraticControlPoint=void 0,this.p=[0,0]}}function o(t){const n=[t.p,t.initialPoint];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n}function i(t){t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0;const n=(e=t.p,t.vals[0],t.vals[1],t.vals[2],t.vals[3],t.vals[4],[[e,[t.vals[5],t.vals[6]]]]);var e;const r=n[n.length-1];return t.p=r[r.length-1],n}const s={c:function(t){const n=[t.p,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]],[t.vals[4],t.vals[5]]];return t.prev2ndCubicControlPoint=n[2],t.prev2ndQuadraticControlPoint=void 0,n},h:function(t){const n=[t.p,[t.vals[0],t.p[1]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},l:function(t){const n=[t.p,t.vals];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},q:function(t){const n=[t.vals[0],t.vals[1]],e=[t.vals[2],t.vals[3]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},s:function(t){const n=t.prev2ndCubicControlPoint?[t.p[0]-t.prev2ndCubicControlPoint[0]+t.p[0],t.p[1]-t.prev2ndCubicControlPoint[1]+t.p[1]]:t.p,e=[t.p,n,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]]];return t.prev2ndCubicControlPoint=e[2],t.prev2ndQuadraticControlPoint=void 0,e},t:function(t){const n=t.prev2ndQuadraticControlPoint?[t.p[0]-t.prev2ndQuadraticControlPoint[0]+t.p[0],t.p[1]-t.prev2ndQuadraticControlPoint[1]+t.p[1]]:t.p,e=[t.vals[0],t.vals[1]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},v:function(t){const n=[t.p,[t.p[0],t.vals[0]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},z:o};function c(t){let n=0,e=0,r=1,o=0,i=1,s=1;const c=t._currentIndex;if(t._skipOptionalSpaces(),t._currentIndex<t._endIndex&&"+"===t._string[t._currentIndex]?t._currentIndex+=1:t._currentIndex<t._endIndex&&"-"===t._string[t._currentIndex]&&(t._currentIndex+=1,i=-1),t._currentIndex===t._endIndex||(t._string[t._currentIndex]<"0"||t._string[t._currentIndex]>"9")&&"."!==t._string[t._currentIndex])throw new Error("The first character of a number must be one of [0-9+-.].");const u=t._currentIndex;for(;t._currentIndex<t._endIndex&&t._string[t._currentIndex]>="0"&&t._string[t._currentIndex]<="9";)t._currentIndex+=1;if(t._currentIndex!==u){let n=t._currentIndex-1,r=1;for(;n>=u;)e+=r*(Number(t._string[n])-0),n-=1,r*=10}if(t._currentIndex<t._endIndex&&"."===t._string[t._currentIndex]){if(t._currentIndex+=1,t._currentIndex>=t._endIndex||t._string[t._currentIndex]<"0"||t._string[t._currentIndex]>"9")throw new Error("There must be a least one digit following the .");for(;t._currentIndex<t._endIndex&&t._string[t._currentIndex]>="0"&&t._string[t._currentIndex]<="9";)r*=10,o+=Number(t._string.charAt(t._currentIndex))/r,t._currentIndex+=1}if(t._currentIndex!==c&&t._currentIndex+1<t._endIndex&&("e"===t._string[t._currentIndex]||"E"===t._string[t._currentIndex])&&"x"!==t._string[t._currentIndex+1]&&"m"!==t._string[t._currentIndex+1]){if(t._currentIndex+=1,"+"===t._string[t._currentIndex]?t._currentIndex+=1:"-"===t._string[t._currentIndex]&&(t._currentIndex+=1,s=-1),t._currentIndex>=t._endIndex||t._string[t._currentIndex]<"0"||t._string[t._currentIndex]>"9")throw new Error("There must be an exponent.");for(;t._currentIndex<t._endIndex&&t._string[t._currentIndex]>="0"&&t._string[t._currentIndex]<="9";)n*=10,n+=Number(t._string[t._currentIndex]),t._currentIndex+=1}let f=e+o;if(f*=i,n&&(f*=Math.pow(10,s*n)),c===t._currentIndex)throw new Error("Internal error: startIndex === source._currentIndex");return t._skipOptionalSpacesOrDelimiter(),f}const u={Z:"Z",M:"M",L:"L",C:"C",Q:"Q",A:"A",H:"H",V:"V",S:"S",T:"T",z:"Z",m:"m",l:"l",c:"c",q:"q",a:"a",h:"h",v:"v",s:"s",t:"t"};class f{constructor(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._prevCommand=void 0,this._skipOptionalSpaces()}parseSegment(){const t=this._string[this._currentIndex];let n,e=u[t];if(void 0===e){if(void 0===this._prevCommand)throw new Error("Implicit command not allowed for first commands.");if(!("+"===t||"-"===t||"."===t||t>="0"&&t<="9")||"Z"===this._prevCommand)throw new Error("Remaining coordinates not found for implicit command");e="M"===this._prevCommand?"L":"m"===this._prevCommand?"l":this._prevCommand}else this._currentIndex+=1;this._prevCommand=e;const r=e.toUpperCase();if("H"===r||"V"===r?n=[c(this)]:"M"===r||"L"===r||"T"===r?n=[c(this),c(this)]:"S"===r||"Q"===r?n=[c(this),c(this),c(this),c(this)]:"C"===r?n=[c(this),c(this),c(this),c(this),c(this),c(this)]:"A"===r?n=[c(this),c(this),c(this),this._parseArcFlag(),this._parseArcFlag(),c(this),c(this)]:"Z"===r&&(this._skipOptionalSpaces(),n=[]),void 0===n)throw new Error("Unknown command");return{type:e,values:n}}hasMoreData(){return this._currentIndex<this._endIndex}initialCommandIsMoveTo(){if(!this.hasMoreData())return!0;const t=u[this._string[this._currentIndex]];return"M"===t||"m"===t}_isCurrentSpace(){const t=this._string[this._currentIndex];return t<=" "&&(" "===t||"\n"===t||"\t"===t||"\r"===t||"\f"===t)}_skipOptionalSpaces(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex+=1;return this._currentIndex<this._endIndex}_skipOptionalSpacesOrDelimiter(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!==this._string[this._currentIndex])&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","===this._string[this._currentIndex]&&(this._currentIndex+=1,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)}_parseArcFlag(){if(this._currentIndex>=this._endIndex)throw new Error("Unable to parse arc flag");let t;const n=this._string[this._currentIndex];if(this._currentIndex+=1,"0"===n)t=0;else{if("1"!==n)throw new Error("Unable to parse arc flag - arc flag must be 0 or 1");t=1}return this._skipOptionalSpacesOrDelimiter(),t}}function l(t){return function(t){if(0===t.length)return[];if("m"!==t[0].type.toLowerCase())throw new Error("Invalid SVG - every new path must start with an M or m.");const n=new r,e=[];let c,u=[];for(let r=0;r<t.length;r++){const f=t[r],l=f.type.toLowerCase();if(n.vals=f.values,f.type===l)if("v"===l)n.vals[0]+=n.p[1];else if("a"===l)n.vals[5]+=n.p[0],n.vals[6]+=n.p[1];else for(let t=0;t<n.vals.length;t++)n.vals[t]+=n.p[t%2];if("m"!==l){if("a"===l)u.push(...i(n));else{const t=s[l];if(!t)throw new Error("Invalid SVG - command not recognized.");const e=t(n);n.p=e[e.length-1],u.push(e)}c=l}else u.length&&("z"!==c&&u.push(o(n)),e.push(u),u=[]),n.initialPoint=n.p=n.vals,c=l}return u.length>0&&("z"!==c&&u.push(o(n)),e.push(u)),e}(function(t){if(!t.length)return[];const n=new f(t),e=[];if(!n.initialCommandIsMoveTo())throw new Error("Path must start with m or M");for(;n.hasMoreData();)e.push(n.parseSegment());return e}(t))}function h(t,n){let e=function(t,n){let e;return e=t.curve.idx-n.curve.idx,0!==e||(e=t.t-n.t),e}(t.pointOnShape,n.pointOnShape);return 0!==e?e:(e=t.order-n.order,0!==e?e:t.order2-n.order2)}function a(t,n){const[[e,r],[o,i]]=t,[[s,c],[u,f]]=n,l=o-e,h=i-r,a=u-s,p=f-c,d=a*h-p*l;if(0===d)return;const g=((c-r)*l-(s-e)*h)/d;return[s+g*a,c+g*p]}function p(t,n){const e=n[0]-t[0],r=n[1]-t[1];return e*e+r*r}function d(t,n){return[n[0]-t[0],n[1]-t[1]]}function g(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function v(t,n){return t[0]===n[0]&&t[1]===n[1]}function m(t,n,e){let r,o=Number.POSITIVE_INFINITY;for(let i=0;i<n.length;i++){const s=n[i],c=p(t,e(s));c<o&&(r=s,o=c)}return r}function b(t,n){return t[0]*n[0]+t[1]*n[1]}function x(t){return[-t[1],t[0]]}function _(t,n){return t[0]*n[1]-t[1]*n[0]}function I(t,n){function e(n){return[t[0]+n[0],t[1]+n[1]]}return void 0===n?e:e(n)}function N(t){const n=1/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]*n,t[1]*n]}function S(t,n,e){function r(e){return[e[0]*n-e[1]*t,e[0]*t+e[1]*n]}return void 0===e?r:r(e)}function E(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+t[r];return e}function w(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[3*(c-n+3*(r-i)),6*(i+n-2*r),3*(r-n)],[3*(u-e+3*(o-s)),6*(s+e-2*o),3*(o-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,s]]=t;return[[2*(i+n-2*r),2*(r-n)],[2*(s+e-2*o),2*(o-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n],[o-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function M(t,n){const[e,r]=w(t);return[E(e,n),E(r,n)]}function P(t){const n=new WeakMap;return function(e){let r=n.get(e);return void 0!==r||(r=t(e),n.set(e,r)),r}}function T(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function y(t){return t[t.length-1]}function C(t){const n=new ArrayBuffer(8);return new DataView(n).setFloat64(0,t,!1),Array.from(new Uint8Array(n))}function O(t){return C(t).map(A).join("")}function A(t){let n=t.toString(2);for(;n.length<8;n="0"+n);return n}function z(t){const n=C(t),e=n[0],r=n[1],o=e>>7,i=((127&e)<<4)+((240&r)>>4),s=0===i?0:16,c=0===i?i-1022:i-1023,u=n.slice(1);return u[0]=(15&r)+s,{sign:o,exponent:c,significand:u}}function B(t){return z(t).significand}function Y(t){return Math.log2(t&-t)}function F(t){if(0===t||!Number.isFinite(t))return NaN;const n=B(t),e=n.length;for(let t=e-1;t>=0;t--){if(0===n[t])continue;const r=Y(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function V(t){return t>=128?7:t>=64?6:t>=32?5:t>=16?4:t>=8?3:t>=4?2:t>=2?1:t>=1?0:NaN}function k(t){if(0===t||!Number.isFinite(t))return NaN;const n=B(t),e=n.length;for(let t=0;t<e;t++){const r=V(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function L(t){return z(t).exponent}function D(t){if(0===t||!Number.isFinite(t))return NaN;const n=L(t);return k(t)-52+n}function X(t){const n=t.slice(),e=n.length;if(1===e)return n;let r=n[e-1],o=e;for(let t=e-2;t>=0;--t){const e=r,i=n[t];r=e+i;const s=i-(r-e);s&&(n[--o]=r,r=s)}let i=0;for(let t=o;t<e;++t){const e=n[t],o=r;r=e+o;const s=o-(r-e);s&&(n[i++]=s)}return n[i++]=r,n.length=i,n}function q(t,n){const e=(2**(53-n)+1)*t;return e-(e-t)}const Q=y,$=X;function G(t,n){if(t=$(t),0===Q(t))return[0];const e=D(t[t.length-1]);let r=e,o=t.length-1;for(;o>0;){const i=D(t[o-1]);if(e-i>n)break;r=i,o--}const i=Math.min(n-(e-r),53);let s=t[o];s=q(s,i);const c=t.slice(o);return c[0]=s,c}function H(t){let n=t[0];for(let e=1;e<t.length;e++)n+=t[e];return n}function R(t,n){const e=t.length,r=n.length;let o=0,i=0;const s=[];for(;o<e&&i<r;)0!==t[o]?0!==n[i]?Math.abs(t[o])<=Math.abs(n[i])?(s.push(t[o]),o++):(s.push(n[i]),i++):i++:o++;for(;o<e;)s.push(t[o]),o++;for(;i<r;)s.push(n[i]),i++;if(0===s.length)return[0];const c=s.length;if(1===c)return s;const u=[],f=s[1],l=s[0];let h=f+l;const a=l-(h-f);0!==a&&u.push(a),i=0;for(let t=2;t<c;t++){const n=s[t],e=h+n,r=e-h,o=h-(e-r)+(n-r);0!==o&&u.push(o),h=e}return 0===h&&0!==u.length||u.push(h),u}const U=134217729;function Z(t,n){const e=t.length;let r;const o=t[0];let i=o*n;const s=U*o,c=s-(s-o),u=o-c,f=U*n,l=f-(f-n),h=n-l,a=[],p=u*h-(i-c*l-u*l-c*h);0!==p&&a.push(p);for(let o=1;o<e;o++){const e=t[o],s=e*n,c=U*e,u=c-(c-e),f=e-u,l=U*n,h=l-(l-n),p=n-h,d=f*p-(s-u*h-f*h-u*p),g=i+d,v=g-i,m=i-(g-v)+(d-v);0!==m&&a.push(m),r=g;const b=s+r,x=r-(b-s);0!==x&&a.push(x),i=b}return 0===i&&0!==a.length||a.push(i),a}function j(t,n){const e=n.length;let r;const o=n[0];let i=o*t;const s=U*o,c=s-(s-o),u=o-c,f=U*t,l=f-(f-t),h=t-l,a=[],p=u*h-(i-c*l-u*l-c*h);0!==p&&a.push(p);for(let o=1;o<e;o++){const e=n[o],s=e*t,c=U*e,u=c-(c-e),f=e-u,l=U*t,h=l-(l-t),p=t-h,d=f*p-(s-u*h-f*h-u*p),g=i+d,v=g-i,m=i-(g-v)+(d-v);0!==m&&a.push(m),r=g;const b=s+r,x=r-(b-s);0!==x&&a.push(x),i=b}return 0===i&&0!==a.length||a.push(i),a}const W=Z,J=R;function K(t,n){let e=[0];for(let r=0;r<t.length;r++)e=J(e,W(n,t[r]));return e}function tt(t){const n=t.length,e=new Array(n);for(let r=0;r<n;r++)e[r]=-t[r];return e}const nt=tt,et=R;function rt(t,n){const e=nt(n);return et(t,e)}function ot(t){return 0===t?0:k(t)-F(t)+1}function it(t){const n=X(t);if(0===y(n))return 0;const e=n[n.length-1],r=n[0];return L(e)-L(r)+(53-F(r))}const st=K,ct=G,ut=it,ft=rt,lt=H;function ht(t,n,e){let r=n,o=t,i=!1,s=0;e||(s=ut(o)-ut(r)+1,e=s/53+1,i=!0);let c=[1/lt(r)],u=1;for(;;){if(o=st(o,c),u>e)return i?(o=ct(o,s),o):o.slice(o.length-e,o.length);r=st(r,c),c=ft([2],r),u*=2}}function at(t,n){const e=t.length;let r=n;const o=[];for(let n=0;n<e;n++){const e=t[n],i=r+e,s=i-r,c=r-(i-s)+(e-s);0!==c&&o.push(c),r=i}return 0===r&&0!==o.length||o.push(r),o}function pt(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}const dt=pt,gt=at,vt=R;function mt(t){let n=[0];for(let e=0;e<t.length;e++){const r=t[e];n=1===r.length?1===n.length?dt(n[0],r[0]):gt(n,r[0]):1===n.length?gt(r,n[0]):vt(n,r)}return n}const bt=tt,xt=R,_t=X,It=at,Nt=mt,St=Z,Et=rt,wt=Math.sign;function Mt(t,n){t=_t(t);const e=(n=_t(n))[n.length-1];if(1===n.length){if(0===e)throw new Error("division by zero");if(1===e)return{div:t,rem:[0]};if(-1===e)return{div:bt(t),rem:[0]}}const r=wt(t[t.length-1]);if(0===r)return{div:[0],rem:[0]};const o=wt(e),i=[];let s=0;for(;;){const r=[];for(let o=t.length-1;o>=0;o--){const s=t[o],c=Math.round((s-s%e)/e);if(r.push(St(n,c)),0===c)break;i.push(c)}if(t=_t(Et(t,Nt(r))),s===i.length)break;s=i.length}let c=t,u=[0];for(let t=0;t<i.length;t++)u=It(u,i[t]);u=_t(u);const f=wt(c[c.length-1]);return 0!==f&&f!==r&&(r>0?o>0?(u=It(u,-1),c=xt(c,n)):(u=It(u,1),c=xt(c,bt(n))):r<0&&(o>0?(u=It(u,1),c=xt(c,bt(n))):(u=It(u,-1),c=xt(c,n)))),{div:u,rem:c}}const Pt=Mt,Tt=Mt;function yt(t,n){return y(rt(t,n))}const Ct=tt;function Ot(t){return t[t.length-1]<0?Ct(t):t}function At(t){const n=[];for(let e=0;e<t.length;e++)n.push(2*t[e]);return n}function zt(t){const n=[];for(let e=0;e<t.length;e++)n.push(-2*t[e]);return n}function Bt(t){const n=[];for(let e=0;e<t.length;e++)n.push(.5*t[e]);return n}const Yt=134217729;function Ft(t,n){const e=t*n,r=Yt*t,o=r-(r-t),i=t-o,s=Yt*n,c=s-(s-n),u=n-c;return[i*u-(e-o*c-i*c-o*u),e]}const Vt=K,kt=Ft,Lt=Z,Dt=pt,Xt=at,qt=R,Qt=K,$t=Ft,Gt=Z,Ht=X;function Rt(t){let n=t[0];for(let e=1;e<t.length;e++){const r=t[e];n=1==r.length?1===n.length?$t(n[0],r[0]):Gt(n,r[0]):1===n.length?Gt(r,n[0]):Qt(r,n)}return Ht(n)}const Ut=K,Zt=Rt,jt=X;function Wt(t){const n=(t=jt(t)).length;return 2===n?t:1===n?[0,t[0]]:[t[n-2],t[n-1]]}const Jt=3330669073875472e-31,Kt=2220446049250315e-31,tn=1109335647967049e-46,nn=3330669073875471e-31;function en(t,n,e){const r=(t[0]-e[0])*(n[1]-e[1]),o=(t[1]-e[1])*(n[0]-e[0]),i=r-o;let s;if(r>0){if(o<=0)return i;s=r+o}else{if(!(r<0))return i;if(o>=0)return i;s=-r-o}return Math.abs(i)>=Jt*s?i:function(t,n,e,r){const o=t[0]-e[0],i=n[0]-e[0],s=t[1]-e[1],c=n[1]-e[1],u=rt(Ft(o,c),Ft(s,i));let f=H(u);if(Math.abs(f)>=Kt*r)return f;const l=T(t[0],e[0])[0],h=T(n[0],e[0])[0],a=T(t[1],e[1])[0],p=T(n[1],e[1])[0];if(0===l&&0===a&&0===h&&0===p)return f;const d=tn*r+nn*Math.abs(f);if(f+=o*p+c*l-(s*h+i*a),Math.abs(f)>=d)return f;const g=R(u,rt(Ft(l,c),Ft(a,i))),v=R(g,rt(Ft(o,p),Ft(s,h)));let m=R(v,rt(Ft(l,p),Ft(a,h)));return m=X(m),m[m.length-1]}(t,n,e,s)}function rn(t,n){return!function(t,n){if(0===t||0===n)return!0;Math.abs(n)>Math.abs(t)&&([t,n]=[n,t]);const e=F(t),r=k(n);return e+(L(t)-L(n))>r}(t,n)}const on=R,sn=K,cn=j,un={fastTwoDiff:function(t,n){const e=t-n;return[t-e-n,e]},fastTwoSum:function(t,n){const e=t+n;return[n-(e-t),e]},split:function(t){const n=134217729*t,e=n-(n-t);return[e,t-e]},twoDiff:T,twoProduct:Ft,twoSum:pt,reduceSignificand:q,fastExpansionSum:R,eAdd:on,growExpansion:at,eAddDouble:at,expansionProduct:K,eMult:sn,scaleExpansion:Z,eMultDouble1:Z,scaleExpansion2:j,eMultDouble2:cn,eDiv:ht,eLongDivide:Mt,eIntDiv:function(t,n){return Pt(t,n).div},eRem:function(t,n){return Tt(t,n).rem},eCompress:X,eEstimate:H,eDiff:rt,eNegativeOf:tt,eMultBy2:At,eMultByNeg2:zt,eDivBy2:Bt,eSign:y,eCompare:yt,eAbs:Ot,eToBitlength:G,eIntPow:function(t,n){if(0===n)return[1];if(1===n)return t;if(2===n)return Ut(t,t);const e=[];for(let r=0;r<n;r++)e.push(t);return Zt(e)},eCalculate:function(t){let n=[0];for(let e=0;e<t.length;e++){const r=t[e];let o=r[0];for(let t=1;t<r.length;t++){const n=r[t];o=1==n.length?1===o.length?kt(o[0],n[0]):Lt(o,n[0]):1===o.length?Lt(n,o[0]):Vt(n,o)}n=1===o.length?1===n.length?Dt(n[0],o[0]):Xt(n,o[0]):1===n.length?Xt(o,n[0]):qt(n,o)}return n},eSum:mt,eProduct:Rt,eToDd:Wt,parseDouble:z,parseDoubleDetailed:function(t){const n=O(t),[,e,r,o]=n.match(/^(.)(.{11})(.{52})$/),i=0===parseInt(r,2)?"0":"1";return{full:e+r+i+o,sign:e,exponent:r,hidden:i,significand:o}},isBitAligned:function(t,n,e){if(0===t)return!0;const r=L(t),o=k(t)-52+r;return F(t)-52+r>=e&&o<=n-1+e},msbExponent:D,lsbExponent:function(t){if(0===t||!Number.isFinite(t))return NaN;const n=L(t);return F(t)-52+n},bitLength:ot,expBitLength:it,doubleToBinaryString:O,doubleToOctets:C,getHighestSetBit:k,getLowestSetBit:F,exponent:L,significand:B,orient2d:en,isAdjacent:function(t,n){return rn(t,n)||rn(t,2*n)||rn(2*t,n)},isNonOverlappingAll:function(t){for(let n=1;n<t.length;n++)if(rn(t[n-1],t[n]))return!1;return!0},eIsInteger:function(t){t=X(t);for(let n=0;n<t.length;n++)if(t[n]%1!=0)return!1;return!0}};function fn(t){if(4===t.length){const[[n,e],[r,o]]=t;return[3*(r-n),3*(o-e)]}if(3===t.length){const[[n,e],[r,o]]=t;return[2*(r-n),2*(o-e)]}if(2===t.length){const[[n,e],[r,o]]=t;return[r-n,o-e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}function ln(t){if(4===t.length){const[[n,e],[r,o],[i,s]]=t;return[6*(i+n-2*r),6*(s+e-2*o)]}if(3===t.length){const[[n,e],[r,o],[i,s]]=t;return[2*(i+n-2*r),2*(s+e-2*o)]}if(t.length<=2)return[0,0];throw new Error("The given bezier curve must be of order <= 3")}function hn(t){if(4===t.length){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[6*(c-n+3*(r-i))],[6*(u-e+3*(o-s))]]}if(t.length<=3)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}const an=.0698;function pn(t,n){const e=function(t,n){const e=t[t.length-2],r=n[0],o=n[1],i=[r[0]-e[0],r[1]-e[1]],s=[o[0]-r[0],o[1]-r[1]],c=function(t,n,e){const r=T(t[0],e[0]),o=T(n[1],e[1]),i=T(t[1],e[1]),s=T(n[0],e[0]),c=sn(r,o),u=sn(i,s);return H(on(c,tt(u)))}(e,r,o);return 0!==c?c:b(i,s)>0?0:function(t,n){const[e,r]=fn(t),[o,i]=ln(t),[s,c]=fn(n),[u,f]=ln(n),l=rt(Ft(e,i),Ft(r,o)),h=rt(Ft(s,f),Ft(c,u)),a=y(l),p=y(h);if(a!==p)return a-p;const d=R(Ft(s,s),Ft(c,c)),g=R(Ft(e,e),Ft(r,r)),v=K(d,d),m=K(v,d),b=K(g,g),x=K(b,g);if(0!==a||0!==p){const t=K(l,l),n=K(h,h),e=y(rt(K(t,m),K(n,x)));if(0!==e)return a>0?e:-e}const[[_],[I]]=hn(t),[[N],[S]]=hn(n),E=rt(Ft(e,I),Ft(r,_)),w=R(Ft(e,o),Ft(r,i)),M=rt(Ft(s,S),Ft(c,N)),P=R(Ft(s,u),Ft(c,f)),T=rt(K(g,E),Z(K(l,w),3)),C=rt(K(d,M),Z(K(h,P),3)),O=y(T),A=y(C);if(a!==p)return O-A;if(0===O&&0===A)return 0;const z=K(T,T),B=K(v,m),Y=K(C,C),F=K(b,x),V=y(rt(K(z,B),K(Y,F)));return O>0?V:-V}(t.slice().reverse(),n)}(t,n),r=e<0,o=e>0,i=t[t.length-2],s=t[t.length-1],c=[s[0]-i[0],s[1]-i[1]],u=n[0],f=n[1],l=[f[0]-u[0],f[1]-u[1]],h=[N(c),N(l)],a=_(h[0],h[1]);let p,d;return b(c,l)>0?(p=a<-an,d=a>+an):(p=r,d=o),{tangents:h,crossTangents:a,isSharp:r,isDull:o,isQuiteSharp:p,isQuiteDull:d}}const dn=P((function(t){return pn(t.ps,t.next.ps)}));function gn(t){return dn(1===t.t?t.curve:t.curve.prev)}function vn(t){return 0===t.t||1===t.t}const mn=P((t=>!!vn(t)&&gn(t).isSharp));function bn(t){const n=t.cp.circle.center,e=t,r=t.nextOnCircle,o=e.cp.pointOnShape,i=r.cp.pointOnShape,s=o.p,c=i.p;let u;if(mn(o)){let t,n;0===o.t?(t=o.curve,n=o.curve.prev):1===o.t&&(t=o.curve.next,n=o.curve);const e=N(M(t.ps,0)),r=[-(f=N(M(n.ps,1)))[0],-f[1]],i=b(e,r),s=Math.sqrt((1+i)/2);u=S(Math.sqrt((1-i)/2),s,r)}else u=s[0]===c[0]&&s[1]===c[1]?d(s,n):x(d(s,c));var f;return[n,I(N(u),n)]}const xn=.01,_n=1e-4;function In(t,n){const e=t.cp.circle.center,r=bn(t),o=n.cp.circle.center,i=bn(n.prevOnCircle),s=a(r,i),c=d(e,o);let u;if(s){const t=d(e,s),n=d(o,s);u=b(t,c)<0||b(n,c)>0}else u=!0;if(!u)return[e,s,o];const f=x(c),l=d(r[0],r[1]),h=d(i[0],i[1]),p=Math.abs(_(c,l))/9,v=Math.abs(_(c,h))/9;if(p>xn||v>xn)return[e,o];if(p>_n||v>_n){const t=g(e,o,1/3),n=g(e,o,2/3),s=I(f,t),c=[n,I(f,n)];return[e,a(r,[t,s]),a(i,c),o]}return[e,o]}function Nn(t){return In(t,t.next)}function Sn(t,n,e,r=void 0,o=void 0,i=void 0,s=void 0){return{cp:t,isHoleClosing:n,isIntersection:e,prev:r,next:o,prevOnCircle:i,nextOnCircle:s}}function En(t){return Nn(t)}const wn=(t,n)=>h(t.cp,n.cp);function Mn(t){const n=[],e=t.next;let r=e;do{n.push(r),r=r.nextOnCircle}while(r.nextOnCircle!==e);return n}function Pn(t){if(An(t))return[];const n=[];let e=t;for(;e!==t.prevOnCircle;)An(e)||n.push(e.next),e=e.nextOnCircle;return n}function Tn(t){const n=t,e=[n];let r=t.next;for(;r!==n;)e.push(r),r=r.next;return e}function yn(t,n,e,r,o){const i=Sn(r,t,n);let s,c;return"undefined"!=typeof _debug_&&_debug_.generated.elems.cpNode.push({generated:_debug_.generated,cpNode:i}),o?(s=o,c=s.next):(s=i,c=i),c.prev=i,s.next=i,i.prev=s,i.next=c,e.insert(i),i}function Cn(t,n=!1){const e=t;let r=e;const o=[];do{n?n=!1:o.push(r),r=r.nextOnCircle}while(r!==e);return o}function On(t,n){return Cn(t,!0).indexOf(n)>=0}function An(t){return t===t.next.prevOnCircle}function zn(t){return Cn(t.prevOnCircle,!0).every((t=>An(t)))}function Bn(t){const n=t;let e=n;for(;e.next===e.prevOnCircle;)if(e=e.next,e===n)return;return e}function Yn(t){return 0===t.cp.circle.radius}function Fn(t){const n=t;let e=n,r=0;do{r++,e=e.nextOnCircle}while(e!==n);return r}function Vn(t){return function(t){const n=t;if(0===n.cp.circle.radius)return!0;const e=n.nextOnCircle,r=n.cp.pointOnShape.p,o=e.cp.pointOnShape.p;return r[0]===o[0]&&r[1]===o[1]}(t)?1:Fn(t)}function kn(t,n){const e=t.prev,r=t.next;e.next=r,r.prev=e;const o=r.prevOnCircle,i=e.nextOnCircle;o.next=i,i.prev=o,n&&n.remove(t,!1)}function Ln(t){const n=t.cp,e=n.pointOnShape;return{idx:e.curve.idx,t:e.t,order:n.order,order2:n.order2}}function Dn(t){const n=t.cp.pointOnShape.curve;return{...t,isTerminating:An(t),isFullyTerminating:zn(t),isSharp:Yn(t),prongCount:Fn(t),getRealProngCount:Vn(t),ordering:Ln(t),curve:n,loop:n.loop}}function Xn(t){let n=t;if(n===n.next.prevOnCircle)return[n];const e=[];do{e.push(n);const t=n.next.prevOnCircle;n=n=n===t?n.next.next:t}while(n!==t);return e}function qn(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],s=r-i,c=s-r,u=e-o,f=u-e,l=r-(s-c)+(-i-c)+u,h=s+l,a=e-(u-f)+(-o-f)+(l-(h-s)),p=h+a;return[a-(p-h),p]}const Qn=qn,$n=qn;Number.EPSILON;const Gn=2**27+1;const Hn=134217729,Rn=134217729;function Un(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],s=r/i,c=i*s,u=Rn*i,f=u-(u-i),l=i-f,h=Rn*s,a=h-(h-s),p=s-a,d=o*s,g=c+d,v=d-(g-c)+(l*p-(c-f*a-l*a-f*p)),m=g+v,b=(r-m+(e-(v-(m-g))))/i,x=s+b;return[b-(x-s),x]}const Zn=134217729,jn=Un,Wn=Number.EPSILON/2,Jn=Wn*Wn,Kn=Number.EPSILON/2,te=function(t,n){const e=n[0],r=n[1],o=r*t,i=Hn*r,s=i-(i-r),c=r-s,u=Hn*t,f=u-(u-t),l=t-f,h=c*l-(o-s*f-c*f-s*l)+e*t,a=o+h;return[h-(a-o),a]},ne=function(t){const n=t[0],e=t[1];if(0===e)return[0,0];const r=Math.sqrt(e),o=r*r,i=134217729*r,s=i-(i-r),c=r-s,u=.5*(e-o-(c*c-(o-s*s-s*c*2))+n)/r;return[u-(r+u-r),r+u]},ee=function(t,n){if(t-n<=0){const e=t>0?Math.sqrt(t):0;return{est:e,err:Math.max(Math.sqrt(t+n)-e,e)}}const e=Math.sqrt(t),r=Math.sqrt(t-n),o=Math.sqrt(t+n);return{est:e,err:Math.max(Math.abs(r-e),Math.abs(o-e))}},re=function(t,n){const e=t[0],r=t[1],o=r+n,i=o-r,s=e+(r-(o-i)+(n-i)),c=o+s;return[s-(c-o),c]},oe=function(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],s=r+i,c=s-r,u=e+o,f=u-e,l=r-(s-c)+(i-c)+u,h=s+l,a=e-(u-f)+(o-f)+(l-(h-s)),p=h+a;return[a-(p-h),p]},ie=qn,se=function(t,n){const e=n[0],r=n[1],o=r*t,i=Hn*r,s=i-(i-r),c=r-s,u=Hn*t,f=u-(u-t),l=t-f,h=e*t,a=o+h,p=h-(a-o)+(c*l-(o-s*f-c*f-s*l)),d=a+p;return[p-(d-a),d]},ce=function(t){return[2*t[0],2*t[1]]},ue=function(t){return[4*t[0],4*t[1]]},fe=function(t){return[-2*t[0],-2*t[1]]},le=function(t,n){const e=t[1],r=n[1],o=e*r,i=Gn*e,s=i-(i-e),c=e-s,u=Gn*r,f=u-(u-r),l=r-f,h=c*l-(o-s*f-c*f-s*l)+(e*n[0]+t[0]*r),a=o+h;return[h-(a-o),a]},he=Un,ae=function(t){return[-t[0],-t[1]]},pe=function(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]},de=function(t,n){const e=t*n,r=Zn*t,o=r-(r-t),i=t-o,s=Zn*n,c=s-(s-n),u=n-c;return[i*u-(e-o*c-i*c-o*u),e]},ge=function(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]},ve=function(t,n,e,r){const o=t/n,i=Math.abs(t),s=Math.abs(n),c=s-r;return c<=0?{est:o,err:Number.POSITIVE_INFINITY}:{est:o,err:(s*e+i*r)/c**2+Kn*Math.abs(i/s)}},me=le,be=oe,xe=ie,_e=pe,Ie=re;function Ne(t,n){if(0===n[0]&&0===n[1])return t[0].map((t=>[0,t]));if(0===n[0]&&1===n[1])return t[t.length-1].map((t=>[0,t]));if(4===t.length){const[[e,r],[o,i],[s,c],[u,f]]=t,l=Ie(me(_e(o,e),n),e),h=Ie(me(_e(s,o),n),o),a=Ie(me(_e(u,s),n),s),p=be(l,me(xe(h,l),n)),d=be(h,me(xe(a,h),n)),g=be(p,me(xe(d,p),n)),v=Ie(me(_e(i,r),n),r),m=Ie(me(_e(c,i),n),i),b=Ie(me(_e(f,c),n),c),x=be(v,me(xe(m,v),n)),_=be(m,me(xe(b,m),n));return[g,be(x,me(xe(_,x),n))]}if(3===t.length){const[[e,r],[o,i],[s,c]]=t,u=be([0,e],me(_e(o,e),n)),f=be([0,o],me(_e(s,o),n)),l=be(u,me(xe(f,u),n)),h=be([0,r],me(_e(i,r),n)),a=be([0,i],me(_e(c,i),n));return[l,be(h,me(xe(a,h),n))]}if(2===t.length){const[[e,r],[o,i]]=t;return[Ie(me(_e(o,e),n),e),Ie(me(_e(i,r),n),r)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}function Se(t,n,e){return{curve:t,t:n,p:Ne(t.ps,[0,n]).map((t=>t[1])),source:e}}const Ee=Number.EPSILON/2,we=Ee*Ee,Me=te,Pe=H,Te=function(t){const n=3*we;return n/(1-n)}(),ye=Z,Ce=pt,Oe=Ft,Ae=Math.abs,ze=Number.EPSILON/2;function Be(t,n){let e=t[0],r=.5*Ae(e);for(let o=1;o<t.length;o++)e=e*n+t[o],r=r*Ae(n)+Ae(e);return r=ze*(2*r-Ae(e)),[e,r]}const Ye=Math.abs,Fe=function(t){const n=t*Ee;return n/(1-n)},Ve=Be,ke=E,Le=Fe(1),De=Fe(2);function Xe(t,n,e=void 0,r=1){const o=Math.abs(n),i=t[0],[s,c]=Ve(i,n),u=De*function(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+Ye(t[r]);return e}(i,o),f=void 0!==e?ke(e,o):0;if((c+u+f)*r<Math.abs(s))return s;const l=function(t,n){const e=[],r=[];let o,i=t[0];for(let s=1;s<t.length;s++){const[c,u]=Oe(i,n);[o,i]=Ce(u,t[s]),e.push(c),r.push(o)}return{r̂:i,pπ:e,pσ:r}}(i,n),{pπ:h,pσ:a}=l;let{r̂:p}=l;const[d,g]=Ve(h,n),[v,m]=Ve(a,n),[b,x]=Ve(t[1],n);let _=g+m+x+f;return p=d+v+b+p,_+=Le*p,_*r<Math.abs(p)?p:0}const qe=R,Qe=Z;function $e(t,n){let e=[0];for(let r=0;r<t.length;r++)e=qe(t[r],Qe(e,n));return e}const Ge=Xe,He=$e,Re=H,Ue=Xe,Ze=$e,je=H,We=Number.EPSILON,Je=Math.abs,Ke=Math.max;function tr(t){const n=[];for(let e=0;e<t.length;e++)n.push(-t[e]);return n}const nr=tr,er=function(t){return n=>1/t(function(t){return t.slice().reverse()}(n))};function rr(t){const n=t.length-1;if(n<1)return 0;t[0]<0&&(t=nr(t));const e=[];for(let t=0;t<n;t++)e.push(1);let r=0;for(let o=0;o<=n;o++){if(t[o]>=0)continue;let n=Number.POSITIVE_INFINITY,i=!1;for(let r=0;r<o;r++){if(t[r]<=0)continue;const s=(-t[o]/(t[r]/2**e[r]))**(1/(o-r));e[r]++,n>s&&(n=s),i=!0}i&&r<n&&(r=n)}return r}er(rr);const or=(Ir=rr,t=>-Ir(function(t){const n=t.length-1;if(n<0)return[];const e=t.slice();for(let t=0;t<n+1;t++)t%2&&(e[t]=-e[t]);return e}(t))),ir=(er(or),function(t){const{p:n,pE:e}=t,r=[],o=[],i=n.length-1;for(let t=0;t<i;t++){const s=i-t,c=Me(s,n[t]);r.push(c);const u=0==(s&s-1)?0:Te,f=Pe(c);o.push(s*e[t]+Math.abs(f)*u)}return{p:r,pE:o}}),sr=Xe,cr=$e,ur=function(t){const n=t[0].length,e=[];for(let r=0;r<n;r++){const o=[];for(let e=0;e<t.length;e++)o.push(t[e][n-(r+1)]);e.push(o)}return e},fr=function(t,n,e,r){const o=Ge(t,e,n,4);return 0!==o?o:Re(He(r(),e))},lr=function(t,n,e,r,o,i,s,c){let u=e,f=r,l=u,h=o,a=f-u,p=a;for(;;){let d;Je(h)<Je(i)&&(u=f,f=l,l=u,o=i,i=h,h=o);const g=Ke(Je(u),Je(f));d=g<=1?We:We*2**Math.ceil(Math.log2(g));const v=.5*(l-f);if(Je(v)<=d)return f<l?[f,l]:[l,f];if(Je(a)<d||Je(o)<=Je(i))a=v,p=a;else{let t,n,e=i/o;if(u===l)t=2*v*e,n=1-e;else{n=o/h;const r=i/h;t=e*(2*v*n*(n-r)-(f-u)*(r-1)),n=(n-1)*(r-1)*(e-1)}0<t?n=-n:t=-t,e=a,a=p,2*t<3*v*n-Je(d*n)&&t<Je(.5*e*n)?p=t/n:(a=v,p=a)}if(u=f,o=i,d<Je(p)?f+=p:0<v?f+=d:f-=d,0===(i=c?je(Ze(s(),f)):Ue(t,f,n))){if(c)return[f,f];const o=Math.max(e,f-d),u=Math.min(r,f+d);if(Ue(t,o,n)*Ue(t,u,n)!=0)return[o,u];if(c=!0,0===(i=je(Ze(s(),f))))return[f,f]}(0<i&&0<h||i<=0&&h<=0)&&(l=u,h=o,a=f-u,p=a)}},hr=or,ar=rr,pr=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(ye(t[r],e-r));return n},dr=H,gr=Be,vr=y,mr=Math.max,br=Math.min,xr=Math.abs,_r=1+Number.EPSILON;var Ir;function Nr(t,n=0,e=1,r,o,i){o||(o=()=>t),r=r||new Array(t.length).fill(0);let s,c,u=0;for(;t.length>0&&xr(t[0][1])<=r[0]&&(c=c||o(),0===vr(c[0]));)(t=t.slice()).shift(),(r=r.slice()).shift(),c.shift();if(0===t.length)return i?void 0:[];if(1===t.length)return[];if(n===Number.NEGATIVE_INFINITY||e===Number.POSITIVE_INFINITY){const r=t.map((t=>t[1]));n===Number.NEGATIVE_INFINITY&&(n=hr(r)),e===Number.POSITIVE_INFINITY&&(e=ar(r))}const f=ur(t);let l,h;const a=t.length-1;let p,d;l=0,h=!1;do{if(p=h?dr(cr(_(),n)):sr(f,n,r),0===p){if(l++,l>=3&&!h){h=!0;continue}n-=2*Number.EPSILON*mr(1,xr(n))}}while(0===p);l=0,h=!1;do{if(d=h?dr(cr(_(),e)):sr(f,e,r),0===d){if(l++,l>=3&&!h){h=!0;continue}e+=2*Number.EPSILON*mr(1,xr(e))}}while(0===d);const g=[{p:t,pE:r}],v=[ur(t)];for(let t=1;t<=a;t++){const n=ir(g[t-1]);g.push(n),v.push(ur(n.p))}let m,b,x=[];for(u=a-1;u>=0;u--)m=g[u].pE,b=v[u],x=I();function _(){if(void 0!==s)return s[u];let t=c||o();for(s=[t];t.length>1;)t=pr(t),s.push(t);return s[u]}return x;function I(){const t=[],r=fr(b,m,n,_);if(!x.length){const t=fr(b,m,e,_);if(r*t>=0)return[];const[o,i]=lr(b,m,n,e,r,t,_);return[{tS:o,tE:i,multiplicity:1}]}let o=x[0].tS,i=fr(b,m,o,_);if(r*i>0);else if(r*i<0){const[e,s]=lr(b,m,n,o,r,i,_);t.push({tS:e,tE:s,multiplicity:1})}let s,c=n,f=r,l=o,h=i;for(let n=0;n<x.length;n++){const r=x[n+1];s=x[n],o=l,c=x[n].tE,l=r?r.tS:e;const u=f;if(i=h,f=fr(b,m,c,_),h=fr(b,m,l,_),i*f>0)if(f*h>0)c!==o&&s.multiplicity%2==1&&p();else if(f*h<0){c!==o&&s.multiplicity%2==1&&p();const[n,e]=lr(b,m,c,l,f,h,_);t.push({tS:n,tE:e,multiplicity:1})}else c!==o&&s.multiplicity%2==1&&p();else if(i*f<0){if(t.push({tS:s.tS,tE:s.tE,multiplicity:3}),f*h<0){const[n,e]=lr(b,m,c,l,f,h,_);t.push({tS:n,tE:e,multiplicity:1})}}else if(0===f)0===i?t.push({tS:s.tS,tE:s.tE,multiplicity:s.multiplicity+1}):i*h>0?t.push({tS:s.tS,tE:s.tE,multiplicity:2}):t.push({tS:s.tS,tE:s.tE,multiplicity:3});else{if(f*h<0){const[n,e]=lr(b,m,c,l,f,h,_);t.push({tS:n,tE:e,multiplicity:1})}u*f>0?t.push({tS:s.tS,tE:s.tE,multiplicity:2}):t.push({tS:s.tS,tE:s.tE,multiplicity:3})}}for(let n=0;n<t.length-1;n++){const e=t[n],r=t[n+1];if(e.tE>=r.tS)return Sr(t)}return t;function p(){const n=(c-o)*_r;let e=1,r=0;for(let t=u+2;t<=a;t++){const i=v[t][0],s=gr(i,o);r+=(xr(s[0])+s[1])*e,e*=n*_r}const l=f>0?br(i,f):mr(i,f),h=2*Number.EPSILON*mr(1,xr(c)),p=r*(2*h);(l+(f>0?2*-p*h:2*p*h))*f<0&&t.push({tS:s.tS,tE:s.tE,multiplicity:2})}}}function Sr(t){const n=[],e=t[0];let r={tS:e.tS,tE:e.tE,multiplicity:e.multiplicity};for(let e=0;e<t.length-1;e++){const o=t[e],i=t[e+1];o.tE<i.tS?(n.push(r),r={tS:i.tS,tE:i.tE,multiplicity:i.multiplicity}):(r.tE=i.tE,r.multiplicity=o.multiplicity+i.multiplicity)}return n.push(r),n}function Er(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY,r){return Nr(t.map((t=>[0,t])),n,e,void 0,void 0,r)}function wr(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[3*(c-n+3*(r-i)),6*(i+n-2*r),3*(r-n)],[3*(u-e+3*(o-s)),6*(s+e-2*o),3*(o-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,s]]=t;return[[2*(i+n-2*r),2*(r-n)],[2*(s+e-2*o),2*(o-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n],[o-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function Mr(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,r],[o,i],[s,c],[u,f]]=t,l=e+(o-e)*n,h=o+(s-o)*n,a=l+(h-l)*n,p=r+(i-r)*n,d=i+(c-i)*n,g=p+(d-p)*n;return[a+(h+(s+(u-s)*n-h)*n-a)*n,g+(d+(c+(f-c)*n-d)*n-g)*n]}if(3===t.length){const[[e,r],[o,i],[s,c]]=t,u=e+(o-e)*n,f=r+(i-r)*n;return[u+(o+(s-o)*n-u)*n,f+(i+(c-i)*n-f)*n]}if(2===t.length){const[[e,r],[o,i]]=t;return[e+(o-e)*n,r+(i-r)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}const Pr=Math.abs;function Tr(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=Pr(n[1]);if(4===t.length){const[[n,r],[o,i],[s,c],[u,f]]=t,l=Pr(n),h=Pr(r),a=Pr(o),p=Pr(i),d=Pr(s),g=Pr(c),v=l+(a+l)*e,m=a+(d+a)*e,b=v+(m+v)*e,x=h+(p+h)*e,_=p+(g+p)*e,I=x+(_+x)*e;return[b+(m+(d+(Pr(u)+d)*e+m)*e+b)*e,I+(_+(g+(Pr(f)+g)*e+_)*e+I)*e]}if(3===t.length){const[[n,r],[o,i],[s,c]]=t,u=Pr(n),f=Pr(r),l=Pr(o),h=Pr(i),a=u+(l+u)*e,p=f+(h+f)*e;return[a+(l+(Pr(s)+l)*e+a)*e,p+(h+(Pr(c)+h)*e+p)*e]}if(2===t.length){const[[n,r],[o,i]]=t,s=Pr(n),c=Pr(r);return[s+(Pr(o)+s)*e,c+(Pr(i)+c)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const yr=Number.EPSILON/2,Cr=yr*yr;function Or(t){const n=t*yr;return n/(1-n)}function Ar(t){const n=t*Cr;return n/(1-n)}Or(1),Ar(3);const zr=Math.abs,Br=[[0,0],[0,0],[0,0],[0,0]];const Yr=Math.abs,Fr=[[0,0],[0,0],[0,0]];const Vr=Math.abs,kr=[[0,0],[0,0]];const Lr=Number.EPSILON/2,Dr=Or(1);function Xr(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:Br}:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],d=s-n*(s-u),g=u-n*(u-l),v=d-n*(d-g),m=v-n*(v-(g-n*(g-(l-n*(l-a))))),b=c-n*(c-f),x=f-n*(f-h),_=b-n*(b-x),I=_-n*(_-(x-n*(x-(h-n*(h-p))))),N=zr(n),S=zr(s),E=zr(u),w=zr(l),M=zr(a),P=zr(c),T=zr(f),y=zr(h),C=S+N*(S+E),O=E+N*(E+w),A=C+N*(C+O),z=P+N*(P+T),B=T+N*(T+y),Y=z+N*(z+B);return{ps:[[s,c],[d,b],[v,_],[m,I]],_ps:[[0,0],[C,z],[A,Y],[A+N*(A+(O+N*(O+(w+N*(w+M))))),Y+N*(Y+(B+N*(B+(y+N*(y+zr(p))))))]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],d=s-n*(s-u),g=u-n*(u-l),v=l-n*(l-a),m=d-n*(d-g),b=g-n*(g-v),x=m-n*(m-b),_=c-n*(c-f),I=f-n*(f-h),N=h-n*(h-p),S=_-n*(_-I),E=I-n*(I-N),w=S-n*(S-E),M=zr(n),P=zr(s),T=zr(u),y=zr(l),C=zr(a),O=zr(c),A=zr(f),z=zr(h),B=P+M*(P+T),Y=T+M*(T+y),F=y+M*(y+C),V=B+M*(B+Y),k=Y+M*(Y+F),L=O+M*(O+A),D=A+M*(A+z),X=z+M*(z+zr(p)),q=L+M*(L+D),Q=D+M*(D+X);return{ps:[[x,w],[b,E],[v,N],[a,p]],_ps:[[V+M*(V+k),q+M*(q+Q)],[k,Q],[F,X],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],s=t[3],c=r[0],u=r[1],f=o[0],l=o[1],h=i[0],a=i[1],p=n*n,d=n*p,g=e*e,v=e*g,m=n*e,b=c-f,x=h-f,_=s[0]-c,I=b+x,N=n*b,S=e*b,E=_-3*x,w=u-l,M=a-l,P=s[1]-u,T=w+M,y=n*w,C=e*w,O=P-3*M,A=d*E+(3*n*(n*I-b)+c),z=m*(n*E+2*I)+(p*I+c-(S+2*N)),B=m*(e*E+2*I)+(g*I+c-(2*S+N)),Y=v*E+(3*e*(e*I-b)+c),F=d*O+(3*n*(n*T-w)+u),V=m*(n*O+2*T)+(p*T+u-(C+2*y)),k=m*(e*O+2*T)+(g*T+u-(2*C+y)),L=v*O+(3*e*(e*T-w)+u),D=zr(n),X=zr(e),q=zr(m),Q=zr(d),$=zr(v),G=zr(c),H=zr(f),R=G+H,U=zr(h)+H,Z=R+U,j=D*R,W=X*R,J=zr(_)+3*U,K=zr(u),tt=zr(l),nt=K+tt,et=zr(a)+tt,rt=nt+et,ot=D*nt,it=X*nt,st=zr(P)+3*et;return{ps:[[A,F],[z,V],[B,k],[Y,L]],_ps:[[Q*J+(3*D*(D*Z+R)+G),Q*st+(3*D*(D*rt+nt)+K)],[q*(D*J+2*Z)+(p*Z+G+(W+2*j)),q*(D*st+2*rt)+(p*rt+K+(it+2*ot))],[q*(X*J+2*Z)+(g*Z+G+(2*W+j)),q*(X*st+2*rt)+(g*rt+K+(2*it+ot))],[$*J+(3*X*(X*Z+R)+G),$*st+(3*X*(X*rt+nt)+K)]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],s=e[2][0],c=e[3][0],u=9*Lr*r[0][0],f=9*Lr*r[1][0],l=9*Lr*r[2][0],h=9*Lr*r[3][0],a=e[0][1],p=e[1][1],d=e[2][1],g=e[3][1],v=9*Lr*r[0][1],m=9*Lr*r[1][1],b=9*Lr*r[2][1],x=9*Lr*r[3][1],_=Math.min(o-u,i-f,s-l,c-h),I=Math.max(o+u,i+f,s+l,c+h);return[[_,Math.min(a-v,p-m,d-b,g-x)],[I,Math.max(a+v,p+m,d+b,g+x)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:Fr}:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=o[0],l=o[1],h=n*n,a=i-c,p=s-u,d=[[i,s],[-n*a+i,-n*p+s],[h*(a+(f-c))-(2*n*a-i),h*(p+(l-u))-(2*n*p-s)]],g=Yr(n),v=Yr(i),m=Yr(c),b=Yr(f),x=v+m,_=Yr(s),I=Yr(u),N=_+I;return{ps:d,_ps:[[0,0],[g*x+v,g*N+_],[h*(x+(b+m))+(2*g*x+v),h*(N+(Yr(l)+I))+(2*g*N+_)]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=o[0],l=o[1],h=n*n,a=i-c,p=f-c,d=s-u,g=l-u,v=[[h*(a+p)-(2*n*a-i),h*(d+g)-(2*n*d-s)],[n*p+c,n*g+u],[f,l]],m=Yr(n),b=Yr(i),x=Yr(c),_=b+x,I=Yr(f)+x,N=Yr(s),S=Yr(u),E=N+S;return{ps:v,_ps:[[h*(_+I)+(2*m*_+b),h*(E+(Yr(l)+S))+(2*m*E+N)],[m*I+x,0],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],s=r[0],c=r[1],u=o[0],f=o[1],l=i[0],h=i[1],a=n*n,p=e*e,d=n*e,g=s-u,v=g+(l-u),m=c-f,b=m+(h-f),x=a*v-(2*n*g-s),_=d*v-(g*(e+n)-s),I=p*v-(2*e*g-s),N=a*b-(2*n*m-c),S=d*b-(m*(e+n)-c),E=p*b-(2*e*m-c),w=Yr(n),M=Yr(e),P=Yr(d),T=Yr(s),y=Yr(u),C=T+y,O=C+Yr(l)+y,A=Yr(c),z=Yr(f),B=A+z,Y=B+Yr(h)+z;return{ps:[[x,N],[_,S],[I,E]],_ps:[[a*O+(2*w*C+T),a*Y+(2*w*B+A)],[P*O+(C*(M+w)+T),P*b+(B*(M+w)+A)],[p*O+(2*M*C+T),p*Y+(2*M*B+A)]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],s=e[2][0],c=5*Lr*r[0][0],u=5*Lr*r[1][0],f=5*Lr*r[2][0],l=e[0][1],h=e[1][1],a=e[2][1],p=5*Lr*r[0][1],d=5*Lr*r[1][1],g=5*Lr*r[2][1],v=Math.min(o-c,i-u,s-f),m=Math.max(o+c,i+u,s+f);return[[v,Math.min(l-p,h-d,a-g)],[m,Math.max(l+p,h+d,a+g)]]}(t,n):function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:kr}:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1],u=[[o,i],[n*(s-o)+o,n*(c-i)+i]],f=Vr(n),l=Vr(o),h=Vr(s),a=Vr(i);return{ps:u,_ps:[[0,0],[f*(h+l)+l,f*(Vr(c)+a)+a]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1],u=[[n*(s-o)+o,n*(c-i)+i],[s,c]],f=Vr(n),l=Vr(o),h=Vr(s),a=Vr(i);return{ps:u,_ps:[[f*(h+l)+l,f*(Vr(c)+a)+a],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],s=r[1],c=o[0],u=o[1],f=[[n*(c-i)+i,n*(u-s)+s],[e*(c-i)+i,e*(u-s)+s]],l=Vr(n),h=Vr(e),a=Vr(i),p=Vr(c),d=Vr(s),g=Vr(u);return{ps:f,_ps:[[l*(p+a)+a,l*(g+d)+d],[h*(p+a)+a,h*(g+d)+d]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],s=3*Lr*r[0][0],c=3*Lr*r[1][0],u=e[0][1],f=e[1][1],l=3*Lr*r[0][1],h=3*Lr*r[1][1],a=Math.min(o-s,i-c),p=Math.max(o+s,i+c);return[[a,Math.min(u-l,f-h)],[p,Math.max(u+l,f+h)]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n)return[e,e];if(1===n)return[r,r];const o=Mr(t,n);let i;if(4===t.length)i=Tr(t,[0,n]).map((t=>8*Dr*t));else if(3===t.length)i=Tr(t,[0,n]).map((t=>5*Dr*t));else if(2===t.length)i=Tr(t,[0,n]).map((t=>2*Dr*t));else if(1===t.length)return[o,o];return[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]]}(t,n[0])}function qr(t){const n=t[0],e=t[t.length-1];let r,o;if(n[1]<e[1]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minY:r,maxY:o};const[,i]=wr(t),s=Er(i,0,1);for(let n=0;n<s.length;n++){const e=s[n],i=[e.tS,e.tE],c=Xr(t,i);c[0][1]<r.box[0][1]&&(r={ts:i,box:c}),c[1][1]>o.box[0][1]&&(o={ts:i,box:c})}return{minY:r,maxY:o}}function Qr(t){const n=function(t){const n=t[0],e=t[t.length-1];let r,o;if(n[0]<e[0]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minX:r,maxX:o};const[i]=wr(t),s=Er(i,0,1);for(let n=0;n<s.length;n++){const e=s[n],i=[e.tS,e.tE],c=Xr(t,i);c[0][0]<r.box[0][0]&&(r={ts:i,box:c}),c[1][0]>o.box[0][0]&&(o={ts:i,box:c})}return{minX:r,maxX:o}}(t),e=qr(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}function $r(t,n){const e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}function Gr(t){const[n,e]=t[0],[r,o]=t[t.length-1];let i,s;const c=function(t){let n=0;for(let e=0;e<t.length-1;e++)n+=$r(t[e],t[e+1]);return n}(t);if(256*p(t[0],t[t.length-1])<c*c){const[r,o]=Mr(t,.5),c=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/c,s=(r-n)/c}else{const t=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/t,s=(r-n)/t}const u=function(t,n,e){const r=I(t[0].map((t=>-t)));return Qr(t.map((t=>S(-n,e,r(t)))))}(t,i,s),[[f,l],[h,a]]=u,d=[u[0],[h,l],u[1],[f,a]],g=S(i,s);return d.map((n=>I(t[0],g(n))))}function Hr(t,n,e){if(n===e)return;const r=t[n];t[n]=t[e],t[e]=r}function Rr(t,n=!1){if(!t.length)return;function e(t,e,r){const o=en(t,e,r);return n?o<0:o<=0}const r=t.slice(),o=r.length,i=function(t){let n,e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY];for(let r=0;r<t.length;r++){const o=t[r][1];(o<e[1]||o===e[1]&&t[r][0]<e[0])&&(n=r,e=t[r])}return n}(r),[s]=r.splice(i,1);r.sort(((t,n)=>{let e=-en(s,t,n);return 0!==e?e:(e=t[1]-n[1],0!==e?e:t[0]-n[0])})),r.unshift(s);let c=1;for(let t=2;t<o;t++){for(;e(r[c-1],r[c],r[t]);)if(c>1)c-=1;else{if(t===o-1){c-=1;break}t+=1}c+=1,Hr(r,c,t)}return r.slice(0,c+1)}const Ur=Rr,Zr=pe,jr=oe,Wr=te,Jr=le,Kr=ce,to=ue,no=ie,eo=pe,ro=oe,oo=te,io=le,so=ce,co=ie,uo=ue,fo=de,lo=oe,ho=fe,ao=ie,po=T,go=sn,vo=j,mo=At,bo=zt,xo=on,_o=rt,Io=T,No=sn,So=j,Eo=At,wo=on,Mo=rt;function Po(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const To=T,yo=sn,Co=zt,Oo=on,Ao=rt,zo=Math.abs;function Bo(t){return(t.tS+t.tE)/2}function Yo(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}const Fo=H,Vo=T,ko=sn,Lo=on,Do=Number.EPSILON,{sqrt:Xo}=Math,qo=Ar(6);function Qo(t,n){const e=t.length-1;let r;if(3===e)r=Nr(function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],[d,g]=n,v=Zr(s,d),m=Zr(u,d),b=Zr(l,d),x=Zr(a,d),_=Zr(c,g),I=Zr(f,g),N=Zr(h,g),S=Zr(p,g),E=Jr(v,v),w=Wr(6,Jr(v,m)),M=Wr(6,Jr(v,b)),P=Kr(Jr(v,x)),T=Wr(9,Jr(m,m)),y=Wr(18,Jr(m,b)),C=Wr(6,Jr(m,x)),O=Wr(9,Jr(b,b)),A=Wr(6,Jr(b,x)),z=Jr(x,x),B=Jr(_,_),Y=Wr(6,Jr(_,I)),F=Wr(6,Jr(_,N)),V=Kr(Jr(_,S)),k=Wr(9,Jr(I,I)),L=Wr(18,Jr(I,N)),D=Wr(6,Jr(I,S)),X=Wr(9,Jr(N,N)),q=Wr(6,Jr(N,S)),Q=Jr(S,S),$=jr(C,O),G=jr(P,y),H=jr(M,T),R=jr(D,X),U=jr(V,L),Z=jr(F,k);return[Wr(6,jr(jr(jr(jr(no(z,A),no(E,w)),$),no(H,G)),jr(jr(jr(no(Q,q),no(B,Y)),R),no(Z,U)))),Wr(5,jr(no(jr(jr(A,Wr(5,w)),Wr(3,G)),Kr(jr(jr($,Kr(H)),Wr(3,E)))),no(jr(jr(q,Wr(5,Y)),Wr(3,U)),Kr(jr(jr(R,Kr(Z)),Wr(3,B)))))),to(jr(no(no($,Wr(3,no(G,Kr(H)))),Wr(5,no(Kr(w),Wr(3,E)))),no(no(R,Wr(3,no(U,Kr(Z)))),Wr(5,no(Kr(Y),Wr(3,B)))))),Wr(3,jr(no(G,Kr(no(Kr(H),Wr(5,no(w,Kr(E)))))),no(U,Kr(no(Kr(Z),Wr(5,no(Y,Kr(B)))))))),Kr(jr(no(H,Wr(5,no(w,Wr(3,E)))),no(Z,Wr(5,no(Y,Wr(3,B)))))),jr(no(w,Wr(6,E)),no(Y,Wr(6,B)))]}(t,n),0,1,function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=zo(e[0]),c=zo(e[1]),u=zo(r[0]),f=zo(r[1]),l=zo(o[0]),h=zo(o[1]),a=zo(i[0]),p=zo(i[1]),d=zo(n[0]),g=zo(n[1]),v=s+d,m=u+d,b=l+d,x=a+d,_=c+g,I=f+g,N=h+g,S=p+g,E=v*v,w=6*v*m,M=6*b*x,P=_*_,T=6*_*I,y=6*N*S,C=6*m*x+9*b*b,O=2*v*x+18*m*b,A=6*v*b+9*m*m,z=6*I*S+9*N*N,B=2*_*S+18*I*N,Y=6*_*N+9*I*I;return[6*(x*x+M+(E+w)+C+(A+O)+(S*S+y+(P+T)+z+(Y+B))),5*(M+5*w+3*O+2*(C+2*A+3*E)+(y+5*T+3*B+2*(z+2*Y+3*P))),4*(C+3*(O+2*A)+5*(2*w+3*E)+(z+3*(B+2*Y)+5*(2*T+3*P))),3*(O+2*(2*A+5*(w+2*E))+(B+2*(2*Y+5*(T+2*P)))),2*(A+5*(w+3*E)+(Y+5*(T+3*P))),w+6*E+(T+6*P)]}(t,n).map((t=>10*qo*t)),(()=>function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],[d,g]=n,v=po(s,d),m=po(u,d),b=po(l,d),x=po(a,d),_=po(c,g),I=po(f,g),N=po(h,g),S=po(p,g),E=go(v,v),w=vo(6,go(v,m)),M=vo(6,go(v,b)),P=mo(go(v,x)),T=vo(9,go(m,m)),y=vo(18,go(m,b)),C=vo(6,go(m,x)),O=vo(9,go(b,b)),A=vo(6,go(b,x)),z=go(x,x),B=go(_,_),Y=vo(6,go(_,I)),F=vo(6,go(_,N)),V=mo(go(_,S)),k=vo(9,go(I,I)),L=vo(18,go(I,N)),D=vo(6,go(I,S)),X=vo(9,go(N,N)),q=vo(6,go(N,S)),Q=go(S,S),$=xo(C,O),G=xo(P,y),H=xo(M,T),R=xo(D,X),U=xo(V,L),Z=xo(F,k),j=_o(xo(xo(z,E),xo($,H)),xo(xo(G,A),w)),W=_o(xo(xo(Q,B),xo(R,Z)),xo(xo(U,q),Y)),J=vo(6,xo(j,W)),K=xo(bo(xo(xo($,mo(H)),vo(3,E))),xo(xo(A,vo(3,G)),vo(5,w))),tt=xo(bo(xo(xo(R,mo(Z)),vo(3,B))),xo(xo(q,vo(3,U)),vo(5,Y))),nt=vo(5,xo(K,tt)),et=xo(xo($,vo(3,_o(mo(H),G))),vo(5,_o(vo(3,E),mo(w)))),rt=xo(xo(R,vo(3,_o(mo(Z),U))),vo(5,_o(vo(3,B),mo(Y)))),ot=vo(4,xo(et,rt)),it=_o(G,mo(_o(mo(H),vo(5,_o(w,mo(E)))))),st=_o(U,mo(_o(mo(Z),vo(5,_o(Y,mo(B)))))),ct=vo(3,xo(it,st)),ut=_o(H,vo(5,_o(w,vo(3,E)))),ft=_o(Z,vo(5,_o(Y,vo(3,B)))),lt=mo(xo(ut,ft)),ht=_o(w,vo(6,E)),at=_o(Y,vo(6,B));return[J,nt,ot,ct,lt,xo(ht,at)]}(t,n)));else if(2===e)r=Nr(function(t,n){const[[e,r],[o,i],[s,c]]=t,[u,f]=n,l=eo(e,u),h=eo(o,u),a=eo(s,u),p=eo(r,f),d=eo(i,f),g=eo(c,f),v=io(l,l),m=io(l,h),b=io(l,a),x=io(h,h),_=io(h,a),I=io(a,a),N=io(p,p),S=io(p,d),E=io(p,g),w=io(d,d),M=io(d,g),P=io(g,g),T=ro(E,so(w)),y=ro(b,so(x));return[ro(co(ro(ro(P,N),so(T)),uo(ro(M,S))),co(ro(ro(I,v),so(y)),uo(ro(_,m)))),oo(3,ro(ro(co(M,T),co(oo(3,S),N)),ro(co(_,y),co(oo(3,m),v)))),ro(co(T,oo(3,co(so(S),N))),co(y,oo(3,co(so(m),v)))),ro(co(S,N),co(m,v))]}(t,n),0,1,function(t,n){const e=t[0],r=t[1],o=t[2],i=zo(e[0]),s=zo(e[1]),c=zo(r[0]),u=zo(r[1]),f=zo(o[0]),l=zo(o[1]),h=zo(n[0]),a=zo(n[1]),p=i+h,d=c+h,g=f+h,v=s+a,m=u+a,b=l+a,x=p*p,_=p*d,I=d*g,N=v*v,S=v*m,E=m*b,w=v*b+m*m*2,M=p*g+d*d*2;return[b*b+N+2*w+4*(E+S)+(g*g+x+2*M+4*(I+_)),3*(E+w+(3*S+N)+(I+M+(3*_+x))),w+3*(2*S+N)+(M+3*(2*_+x)),S+N+(_+x)]}(t,n).map((t=>8*qo*t)),(()=>function(t,n){const[[e,r],[o,i],[s,c]]=t,[u,f]=n,l=Io(e,u),h=Io(o,u),a=Io(s,u),p=Io(r,f),d=Io(i,f),g=Io(c,f),v=No(l,l),m=No(l,h),b=No(l,a),x=No(h,h),_=No(h,a),I=No(a,a),N=No(p,p),S=No(p,d),E=No(p,g),w=No(d,d),M=No(d,g),P=No(g,g),T=wo(E,Eo(w)),y=wo(b,Eo(x)),C=wo(Mo(wo(I,Eo(y)),Po(wo(_,m))),v),O=wo(Mo(wo(P,Eo(T)),Po(wo(M,S))),N),A=wo(C,O),z=wo(Mo(_,y),Mo(So(3,m),v)),B=wo(Mo(M,T),Mo(So(3,S),N)),Y=So(3,wo(z,B)),F=Mo(T,So(3,Mo(Eo(S),N))),V=Mo(y,So(3,Mo(Eo(m),v))),k=wo(F,V),L=Mo(S,N),D=Mo(m,v);return[A,Y,k,wo(L,D)]}(t,n)));else{if(1!==e){if(0===e)return[];throw new Error("The given bezier curve must be of order <= 3")}r=Nr(function(t,n){const[[e,r],[o,i]]=t,[s,c]=n,u=e-s,f=o-s,l=r-c,h=i-c,a=fo(u,u),p=fo(u,f),d=fo(f,f),g=fo(l,l),v=fo(l,h),m=fo(h,h),b=lo(p,v),x=lo(g,a);return[lo(lo(d,m),lo(x,ho(b))),ao(b,x)]}(t,n),0,1,function(t,n){const e=t[0],r=t[1],o=zo(e[0]),i=zo(e[1]),s=zo(r[0]),c=zo(r[1]),u=zo(n[0]),f=zo(n[1]),l=o+u,h=s+u,a=i+f,p=c+f,d=l*h+a*p,g=a*a+l*l;return[h*h+p*p+2*d+g,d+g]}(t,n).map((t=>6*qo*t)),(()=>function(t,n){const[[e,r],[o,i]]=t,[s,c]=n,u=To(e,s),f=To(o,s),l=To(r,c),h=To(i,c),a=yo(u,u),p=yo(u,f),d=yo(f,f),g=yo(l,l),v=yo(l,h),m=yo(h,h),b=Oo(p,v),x=Oo(g,a);return[Oo(Oo(d,m),Oo(Co(b),x)),Ao(b,x)]}(t,n)))}r.push({tS:0,tE:0,multiplicity:1}),r.push({tS:1,tE:1,multiplicity:1});const o=r.map((e=>{const r=Xr(t,[e.tS,e.tE]),o=function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1],u=n[0],f=n[1];let l=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY;for(const[t,n]of[[o,i],[o,c],[s,i],[s,c]]){const e=Vo(t,u),r=Vo(n,f),o=Lo(ko(e,e),ko(r,r)),i=Fo(o),s=i*(1-Do),c=i*(1+Do);s<=l&&(l=s),c>=h&&(h=c)}return[l,h]}(r,n);return{p:Yo(r),t:Bo(e),d:(Xo(o[0])+Xo(o[1]))/2,dSquaredI:o,box:r,ri:e}}));let i=Number.POSITIVE_INFINITY;for(let t=0;t<o.length;t++){const n=o[t].dSquaredI[1];n<i&&(i=n)}const s=[];for(let t=0;t<o.length;t++){const n=o[t];n.dSquaredI[0]<=i&&s.push(n)}return s}const $o=function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=s-n*(s-u),p=u-n*(u-l),d=a-n*(a-p),g=c-n*(c-f),v=f-n*(f-h),m=g-n*(g-v);return[[s,c],[a,g],[d,m],[d-n*(d-(p-n*(p-(l-n*(l-i[0]))))),m-n*(m-(v-n*(v-(h-n*(h-i[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],d=s-n*(s-u),g=u-n*(u-l),v=l-n*(l-a),m=d-n*(d-g),b=g-n*(g-v),x=c-n*(c-f),_=f-n*(f-h),I=h-n*(h-p),N=x-n*(x-_),S=_-n*(_-I);return[[m-n*(m-b),N-n*(N-S)],[b,S],[v,I],[a,p]]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],s=t[3],c=r[0],u=r[1],f=o[0],l=o[1],h=i[0],a=i[1],p=n*n,d=n*p,g=e*e,v=e*g,m=n*e,b=c-f,x=h-f,_=b+x,I=n*b,N=e*b,S=s[0]-c-3*x,E=u-l,w=a-l,M=E+w,P=n*E,T=e*E,y=s[1]-u-3*w;return[[d*S+(3*n*(n*_-b)+c),d*y+(3*n*(n*M-E)+u)],[m*(n*S+2*_)+(p*_+c-(N+2*I)),m*(n*y+2*M)+(p*M+u-(T+2*P))],[m*(e*S+2*_)+(g*_+c-(2*N+I)),m*(e*y+2*M)+(g*M+u-(2*T+P))],[v*S+(3*e*(e*_-b)+c),v*y+(3*e*(e*M-E)+u)]]}(t,n,e)},Go=function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=n*n,l=i-c,h=s-u;return[[i,s],[-n*l+i,-n*h+s],[f*(l+(o[0]-c))-(2*n*l-i),f*(h+(o[1]-u))-(2*n*h-s)]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=o[0],l=o[1],h=n*n,a=i-c,p=f-c,d=s-u,g=l-u;return[[h*(a+p)-(2*n*a-i),h*(d+g)-(2*n*d-s)],[n*p+c,n*g+u],[f,l]]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],s=r[0],c=r[1],u=o[0],f=o[1],l=n*n,h=e*e,a=n*e,p=s-u,d=p+(i[0]-u),g=c-f,v=g+(i[1]-f);return[[l*d-(2*n*p-s),l*v-(2*n*g-c)],[a*d-(p*(e+n)-s),a*v-(g*(e+n)-c)],[h*d-(2*e*p-s),h*v-(2*e*g-c)]]}(t,n,e)},Ho=function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[[o,i],[n*(r[0]-o)+o,n*(r[1]-i)+i]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1];return[[n*(s-o)+o,n*(c-i)+i],[s,c]]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],s=r[1],c=o[0],u=o[1];return[[n*(c-i)+i,n*(u-s)+s],[e*(c-i)+i,e*(u-s)+s]]}(t,n,e)};function Ro(t,n,e){if(4===t.length)return $o(t,n,e);if(3===t.length)return Go(t,n,e);if(2===t.length)return Ho(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function Uo(t,n){const e=n.xs;return e.length<=2&&7!==e[0].x.kind}function Zo(t,n,e,r,o){const i=function(t,n,e){return(r,o,i)=>{n.has(r)||r.orientation||(r.orientation=o*t.orientation,r.parent=i,r.windingNum=i.windingNum+r.orientation,e.push(r))}}(e,o,r);let s,c,u=0,f=1,l=n;for(;l=1===e.orientation?l.nextAround:l.prevAround,l!==n;)u=f,f-=l.dir,-1!==l.dir&&(c?1===u&&0===f?i(l,1,e.parent):0===u&&-1===f&&i(l,-1,e.parent):0===f?c=l:1===f&&i(l,1,e));return Uo(0,n.container)||(s=[n.p,c.p]),{out_:c,additionalBezier:s}}function jo(t,n){const e=n.next,r=e._x_.curve,o=e._x_.x.ri.tS;let i=n._x_.curve,s=n._x_.x.ri.tS;Uo(0,n.container)||(s=Bo(Qo(i.ps,n.p)[0].ri));const c=[];let u;for(;;){if(i===r&&(s<o||s===o&&c.length))return u=Ro(i.ps,s,o),{beziers:c,in_:e,inBez:u};{const t=Ro(i.ps,s,1);c.push(t)}s=0,i=i.next}}function Wo(t,n,e){const r=[],o=[];let i,s=e;do{n.add(s);const{beziers:t,in_:c,inBez:u}=jo(0,s);if(o.push(...t),({out_:s,additionalBezier:i}=Zo(0,c,e,r,n)),i){const t=Ro(u,0,Bo(Qo(u,i[0])[0].ri));o.push(t),o.push(i)}else o.push(u)}while(s!==e);return{beziers:o,additionalOutsToCheck:r}}function Jo(t,n,e,r){const o=[n];for(;o.length;){const t=o.pop();if(e.add(t._x_.curve.loop),r.has(t))continue;t.children=new Set;const{beziers:n,additionalOutsToCheck:i}=Wo(0,r,t);t.beziers=n,t.parent.children=t.parent.children||new Set,t.parent.children.add(t),o.push(...i)}}function Ko(t){let n=0;for(let e=0;e<=t.length-1&&0===t[e];e++)n++;return 0!==n&&(t=t.slice(n)),t}const ti=Ko;function ni(t,n){const e=t.length-1,r=n.length-1;if(e<0||r<0)return[];const o=e+r,i=new Array(o+1).fill(0);for(let s=0;s<e+1;s++)for(let c=0;c<r+1;c++)i[o-(s+c)]+=t[e-s]*n[r-c];return ti(i)}const ei=ni;function ri(t){let n=[1];for(let e=0;e<t.length;e++)n=ei(n,[1,-t[e]]);return n}const oi=123456789,ii=4294967296;function si(t){return function(n,e,r,o,i=oi,s=0){const c=[];for(let u=0;u<n;u++){const n=t(e,r,o,i,s),u=n.p;i=n.seed,c.push(u)}return c}}function ci(t){return(134775813*t+1)%ii}function ui(t,n,e,r,o=0){let i=[];for(let s=0;s<t;s++)r=fi(r=ci(r),i,r/ii*(e-n)+n,o);return i=i.slice(0,t),{vs:i,seed:r}}function fi(t,n,e,r){return t=ci(t),n.push(e),t/ii<r&&(t=fi(t,n,e,r)),t}function li(t,n=-1,e=1,r=oi){const o=ui(t,n,e,r);return r=o.seed,{p:o.vs,seed:r}}function hi(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push((e-r)*t[r]);return n}si((function(t,n=0,e=1,r=oi,o=0){const i=ui(t,n,e,r,o);return r=i.seed,{p:ri(i.vs),seed:r}})),si(li);const ai=E,pi=Number.EPSILON/2,di=Math.abs,gi=Math.max,vi=hi,mi=E,bi=function(t,n,e,r=ai(t,n),o=ai(t,e)){let i=n,s=e,c=i,u=r,f=s-i,l=f;for(;;){di(u)<di(o)&&(i=s,s=c,c=i,r=o,o=u,u=r);const n=2*pi*gi(1,di(i),di(s)),e=.5*(c-s);if(di(e)<=n)return s;if(di(f)<n||di(r)<=di(o))f=e,l=f;else{let t,h,a=o/r;if(i===c)t=2*e*a,h=1-a;else{h=r/u;const n=o/u;t=a*(2*e*h*(h-n)-(s-i)*(n-1)),h=(h-1)*(n-1)*(a-1)}0<t?h=-h:t=-t,a=f,f=l,2*t<3*e*h-di(n*h)&&t<di(.5*a*h)?l=t/h:(f=e,l=f)}if(i=s,r=o,n<di(l)?s+=l:0<e?s+=n:s-=n,0===(o=ai(t,s)))return s;o*u>0&&(c=i,u=r,f=s-i,l=f)}},xi=or,_i=rr,Ii=Ko;function Ni(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY){t=Ii(t);let r=0;for(;0===t[t.length-1];)t=t.slice(0,-1),r++;if(t.length<=1){const t=[];for(let n=0;n<r;n++)t.push(0);return t}n===Number.NEGATIVE_INFINITY&&(n=xi(t)),e===Number.POSITIVE_INFINITY&&(e=_i(t));const o=[t];for(let n=1;n<=t.length-1;n++)o.push(vi(o[n-1]));let i=[];for(let r=t.length-2;r>=0;r--){const t=o[r],s=[];let c=n,u=mi(t,c);0===u&&0===r&&s.push(n);for(let n=0;n<i.length;n++){const e=i[n],r=mi(t,e);0===r?s.push(e):u*r<0&&s.push(bi(t,c,e,u,r)),c=e,u=r}const f=mi(t,e);u*f<0&&s.push(bi(t,c,e,u,f)),0===f&&0===r&&s.push(e),i=s}if(r>0&&n<=0&&e>=0){const t=[];let n=!1;for(let e=0;e<i.length;e++){if(!n&&i[e]>=0){for(let n=0;n<r;n++)t.push(0);n=!0}t.push(i[e])}return t}return i}function Si(t){if(4===t.length)return Ei(t);if(3===t.length)return wi(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n,n],[o-e,e]]}(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[n],[e]]}(t);throw new Error("The given bezier curve must be of order <= 3.")}function Ei(t){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[c-n+3*(r-i),3*(i+n-2*r),3*(r-n),n],[u-e+3*(o-s),3*(s+e-2*o),3*(o-e),e]]}function wi(t){const[[n,e],[r,o],[i,s]]=t;return[[i+n-2*r,2*(r-n),n],[s+e-2*o,2*(o-e),e]]}function Mi(t,n){const[e,r]=wr(t);return[E(e,n),E(r,n)]}const Pi=P(Qr),Ti=P((function(t){const n=wr(t),e=Ni(n[0],0,1),r=Ni(n[1],0,1);e.push(0,1),r.push(0,1);let o,i,s,c,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY;for(let n=0;n<e.length;n++){const r=e[n],[s]=Mr(t,r);s<u&&(u=s,o=r),s>f&&(f=s,i=r)}for(let n=0;n<r.length;n++){const e=r[n],[,o]=Mr(t,e);o<l&&(l=o,s=e),o>h&&(h=o,c=e)}return{ts:[[o,s],[i,c]],box:[[u,l],[f,h]]}})),yi=1e-6;function Ci(t){const n=t.map((t=>Ti(t)));return{minX:Math.min(...n.map((t=>t.box[0][0]))),maxX:Math.max(...n.map((t=>t.box[1][0]))),minY:Math.min(...n.map((t=>t.box[0][1]))),maxY:Math.max(...n.map((t=>t.box[1][1])))}}function Oi(t,n){let e;const r=[t];for(;r.length;)o(r.pop());return e;function o(o){if(o===t||function(t,n){let e=0,r=1231;do{e++;const i=li(1,0,1,r),s=i.p[0];r=i.seed;const c=li(1,0,t.length,r),u=Math.floor(c.p[0]);r=c.seed;const f=o(t,n,Mr(t[u],s));if(void 0!==f)return f}while(e<100);return;function o(t,n,e){if(function(t,n){const e=[t,n].map(Ci);return e[0].minX<e[1].minX||e[0].maxX>e[1].maxX||e[0].minY<e[1].minY||e[0].maxY>e[1].maxY}(t,n))return!1;const r=function(t,n,e){const[r,o]=n;let i=0;for(let e=0;e<t.length;e++){const s=t[e],[[c,u],[f,l]]=Pi(s);let h=u>o||l<o||!1;if(h=h||c>r||!1,h)continue;const a=[];let p,d,g;const v=!0;p=t=>Si(t)[1],d=[0,-o],g=0;const m=s.map(I(d)),b=Ni(p(m),0-yi,1+yi);for(let t=0;t<b.length;t++){const e=b[t];if(Math.abs(e)<yi||Math.abs(e-1)<yi)return;const r=Mr(m,e);(v&&n[g]>=r[g]||!v&&n[g]<=r[g])&&a.push(e)}if(1===a.length||3===a.length)for(const t of a){const n=N(Mi(s,t));if(Math.abs(n[1])<yi)return}i+=a.length}return i}(n,e);return void 0!==r?r%2!=0:void 0}}(n.beziers,o.beziers)){e=o;for(const t of o.children)r.push(t)}}}function Ai(t,n){return zi(t)-zi(n)}function zi(t){let n=Number.POSITIVE_INFINITY;for(const e of t){const t=Ti(e).box[0][1];t<n&&(n=t)}return n}function Bi(t){const n=[t],e=Array.from(t.children);for(;e.length;){const t=e.pop();0===t.windingNum&&n.push(t);for(const n of t.children)e.push(n)}return n}function Yi(t,n,e){let[[r,o],[i,s]]=n,[[c,u],[f,l]]=e;o>s&&([o,s]=[s,o]),u>l&&([u,l]=[l,u]),r>i&&([r,i]=[i,r]),c>f&&([c,f]=[f,c]);const h=t||r===i&&c===f,a=t||o===s&&u===l;return(h?r<=f:r<f)&&(h?i>=c:i>c)&&(a?u<=s:u<s)&&(a?l>=o:l>o)}function Fi(t,n){return Yi(!0,t.box,n.box)}function Vi(t,n){for(let e=0;e<n.length;e++){const r=n[e];ki(t,[r.a,r.b])}}function ki(t,n){const[e,r]=n;let o=t.get(e);o||(o=[],t.set(e,o));let i=t.get(r);i||(i=[],t.set(r,i)),o.push(r),i.push(e)}function Li(t,n,e,r){e.add(n),r.push(n);const o=t.get(n);for(let n=0;n<o.length;n++){const i=o[n];e.has(i)||Li(t,i,e,r)}}function Di(t){const n=[],e=new Set;for(const r of t){const o=r[0];e.has(o)||(n.push([]),Li(t,o,e,n[n.length-1]))}return n}function Xi(t,n){const e=new Set;for(const t of n)for(const n of t)e.add(n);const r=[];for(let n=0;n<t.length;n++){const o=t[n];e.has(o)||r.push(o)}return r}function qi(t){const n=[];for(const e of t){let t=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;const s=[];for(const n of e){const[[e,c],[u,f]]=n.box;e<t&&(t=e),c<r&&(r=c),u>o&&(o=u),f>i&&(i=f),s.push(...n.xs)}const c={box:[[t,r],[o,i]],xs:s,inOuts:void 0};n.push(c)}return n}function Qi(t){return{tS:[0,t.tS],tE:[0,t.tE],multiplicity:t.multiplicity}}const $i=K,Gi=R,Hi=j,Ri=function(t,n,e){const r=t.length-1;if(r<0)return[];const o=[];for(let t=0;t<r+1;t++)o.push(new Array(r+1).fill([0]));o[0][0]=[1];for(let t=1;t<=r;t++){o[0][t]=Hi(e,o[0][t-1]);for(let r=1;r<=t;r++)o[r][t]=Gi(Hi(e,o[r][t-1]),Hi(n,o[r-1][t-1]))}const i=new Array(r+1).fill([0]);for(let n=0;n<=r;n++){i[r-n]=[0];for(let e=n;e<=r;e++){const s=$i(o[n][e],t[r-e]);i[r-n]=Gi(i[r-n],s)}}return i},Ui=Nr,Zi=Wt,ji=pt,Wi=Number.EPSILON;function Ji(t,n){const e=t.tS,r=t.tE-e;if(0===r)return[{tS:[0,e],tE:[0,e],multiplicity:t.multiplicity}];const o=Ri(n,r,e),i=o.map(Zi),s=i.map((t=>Wi*Wi*t[1])),c=Ui(i,0,1,s,(()=>o)),u=[];for(const t of c)u.push({tS:ji(e,t.tS*r),tE:ji(e,t.tE*r),multiplicity:t.multiplicity});return u}const Ki=pe,ts=te,ns=oe,es=re,rs=Math.abs;function os(t){const[[n,e],[r,o],[i,s],[c,u]]=t,f=Ki(c,n),l=Ki(r,i),h=3*(r-i),a=ts(3,l),p=rs(h),d=ns(f,a),g=p+rs(c-n+h),v=Ki(i,2*r),m=es(v,n),b=rs(i-2*r+n),x=ts(3,m),_=6*b,I=Ki(r,n),N=ts(3,I),S=rs(3*(r-n)),E=Ki(u,e),w=Ki(o,s),M=3*(o-s),P=ts(3,w),T=rs(M),y=ns(E,P),C=T+rs(u-e+M),O=Ki(s,2*o),A=es(O,e),z=rs(s-2*o+e),B=ts(3,A),Y=6*z,F=Ki(o,e);return{coeffs:[[d,x,N,[0,n]],[y,B,ts(3,F),[0,e]]],errorBound:[[g,_,S,0],[C,Y,rs(3*(o-e)),0]]}}function is(t){const[[n,e],[r,o],[i,s]]=t,c=i-2*r,u=Ki(i,2*r),f=es(u,n),l=rs(c+n),h=Ki(2*r,2*n),a=s-2*o,p=Ki(s,2*o),d=es(p,e),g=rs(a+e);return{coeffs:[[f,h,[0,n]],[d,Ki(2*o,2*e),[0,e]]],errorBound:[[l,0,0],[g,0,0]]}}function ss(t){const[[n,e],[r,o]]=t;return[[Ki(r,n),[0,n]],[Ki(o,e),[0,e]]]}const cs=ie,us=te,fs=tt,ls=Math.abs;function hs(t){const[[n,[,e]],[r,[,o]]]=ss(t),i=fs(r),s=n,c=us(o,n),u=ls(c[1]),f=us(e,r),l=ls(f[1]),h=cs(f,c);return{coeffs:{vₓ:i,vᵧ:s,v:h},errorBound:{v_:u+l+ls(h[1])}}}const as=oe,ps=te,ds=le,gs=Math.abs,vs=Ar(3),ms=ae,bs=ce,xs=te,_s=le,Is=ie,Ns=Math.abs;function Ss(t){const{coeffs:[[n,e,[,r]],[o,i,[,s]]],errorBound:[[c],[u]]}=is(t),f=n[1],l=e[1],h=o[1],a=i[1],p=Ns(r),d=Ns(l),g=Ns(f),v=Ns(s),m=Ns(a),b=Ns(h),x=_s(n,i),_=c*m+2*Ns(f*a),I=_s(e,o),N=d*u+2*Ns(l*h),S=xs(s,n),E=v*c+Ns(s*f),w=xs(r,o),M=p*u+Ns(r*h),P=xs(s,e),T=Ns(s*l),y=xs(r,i),C=Ns(r*a),O=_s(n,n),A=2*(c*g+Ns(f*f)),z=_s(n,o),B=c*b+g*u+2*Ns(f*h),Y=_s(o,o),F=2*(u*b+Ns(h*h)),V=f*a-l*h,k=f*s-r*h,L=l*s-r*a,D=Is(x,I),X=Ns(V),q=_+N+Ns(V),Q=Is(S,w),$=Ns(k),G=E+M+Ns(k),H=Is(P,y),R=Ns(L),U=T+C+Ns(L),Z=ms(Y),j=F,W=bs(z),J=B,K=ms(O),tt=A,nt=a*V,et=_s(i,D),rt=m*q+2*Ns(nt),ot=2*k*h,it=bs(_s(o,Q)),st=2*(u*$+b*G+2*Ns(ot)),ct=nt-ot,ut=Is(et,it),ft=rt+st+Ns(ct),lt=2*f*k,ht=bs(_s(n,Q)),at=2*(c*$+g*G+2*Ns(lt)),pt=l*V,dt=_s(e,D),gt=d*q+2*Ns(pt),vt=lt-pt,mt=Is(ht,dt),bt=at+gt+Ns(vt),xt=V*L,_t=_s(D,H),It=q*R+X*U+2*Ns(xt),Nt=k*k,St=_s(Q,Q),Et=2*(G*$+Ns(Nt)),wt=xt-Nt;return{coeffs:{vₓₓ:Z,vₓᵧ:W,vᵧᵧ:K,vₓ:ut,vᵧ:mt,v:Is(_t,St)},errorBound:{vₓₓ_:j,vₓᵧ_:J,vᵧᵧ_:tt,vₓ_:ft,vᵧ_:bt,v_:It+Et+Ns(wt)}}}const Es=de,ws=ce,Ms=te,Ps=le,Ts=oe,ys=Math.abs,Cs=Ar(3),Os=Math.abs,As=ae,zs=ce,Bs=function(t){return[t[0]/2,t[1]/2]},Ys=te,Fs=le,Vs=ie,ks=oe;function Ls(t){const{coeffs:[[n,e,r,[,o]],[i,s,c,[,u]]],errorBound:[[f,l,h],[a,p,d]]}=os(t),g=r[1],v=e[1],m=n[1],b=c[1],x=s[1],_=i[1],I=Os(o),N=Os(g),S=Os(v),E=Os(m),w=Os(u),M=Os(b),P=Os(x),T=Os(_),y=Fs(n,c),C=m*b,O=f*M+E*d+2*Os(C),A=Fs(r,i),z=g*_,B=h*T+N*a+2*Os(z),Y=Fs(n,s),F=m*x,V=f*P+E*p+2*Os(F),k=Fs(e,s),L=v*x,D=l*P+S*p+2*Os(L),X=Fs(e,i),q=v*_,Q=l*T+S*a+2*Os(q),$=Fs(n,n),G=m*m,H=Os(G),R=f*E+E*f+2*Os(G),U=Fs(s,s),Z=x*x,j=p*P+P*p+2*Os(Z),W=Fs(i,i),J=_*_,K=Os(J),tt=a*T+T*a+2*Os(J),nt=Fs(r,n),et=g*m,rt=h*E+N*f+2*Os(et),ot=Fs(e,e),it=v*v,st=l*S+S*l+2*Os(it),ct=Fs(c,i),ut=b*_,ft=d*T+M*a+2*Os(ut),lt=Fs(s,i),ht=Os(x*_),at=p*T+P*a+2*ht,pt=Fs(e,n),dt=Os(v*m),gt=l*E+S*f+2*dt,vt=Fs(n,i),mt=Os(m*_),bt=f*T+E*a+2*mt,xt=Ys(u,n),_t=m*u,It=f*w+Os(_t),Nt=Ys(o,i),St=o*_,Et=I*a+Os(St),wt=Ys(u,e),Mt=v*u,Pt=l*w+Os(Mt),Tt=Ys(o,s),yt=o*x,Ct=I*p+Os(yt),Ot=Fs(e,c),At=v*b,zt=l*M+S*d+2*Os(At),Bt=Fs(r,s),Yt=g*x,Ft=h*P+N*p+2*Os(Yt),Vt=Ys(u,r),kt=g*u,Lt=h*w+Os(kt),Dt=Ys(o,c),Xt=o*b,qt=I*d+Os(Xt),Qt=Vs(xt,Nt),$t=It+Et+Os(_t-St),Gt=Vs(y,A),Ht=O+B+Os(C-z),Rt=Vs(Y,X),Ut=V+Q+Os(F-q),Zt=Vs(wt,Tt),jt=Pt+Ct+Os(Mt-yt),Wt=Vs(Ot,Bt),Jt=zt+Ft+Os(At-Yt),Kt=Vs(Vt,Dt),tn=Lt+qt+Os(kt-Xt),nn=Os(ut-Z),en=Vs(ct,U),rn=ft+j+nn,on=Os(et-it),sn=Vs(nt,ot),cn=rt+st+Os(et-it),un=Os(q+F),fn=ks(X,Y),ln=Q+V+Os(q+F),hn=z+C,an=Os(hn),pn=ks(A,y),dn=B+O+an,gn=zs(Gt),vn=2*Ht,mn=_t-St,bn=C-z,xn=F-q,_n=Mt-yt,In=At-Yt,Nn=kt-Xt,Sn=Os(mn),En=Os(bn),wn=Os(xn),Mn=Os(_n),Pn=Os(In),Tn=Os(Nn),yn=2*En,Cn=Fs(Qt,Qt),On=Fs(Qt,Gt),An=Fs(Qt,Rt),zn=Fs(Qt,Wt),Bn=Fs(Gt,Gt),Yn=Fs(gn,Zt),Fn=Fs(Rt,Zt),Vn=Fs(Rt,Wt),kn=Fs(Rt,Kt),Ln=$t*Sn+Sn*$t+2*Os(Cn[1]),Dn=$t*En+Sn*Ht+2*Os(On[1]),Xn=$t*wn+Sn*Ut+2*Os(An[1]),qn=$t*Pn+Sn*Jt+2*Os(zn[1]),Qn=Ht*En+En*Ht+2*Os(Bn[1]),$n=vn*Mn+yn*jt+2*Os(Yn[1]),Gn=Ut*Mn+wn*jt+2*Os(Fn[1]),Hn=Ut*Pn+wn*Jt+2*Os(Vn[1]),Rn=Ut*Tn+wn*tn+2*Os(Fn[1]),Un=Fs(As(i),W),Zn=a*K+T*tt+2*Os(Un[1]),jn=3*E,Wn=Ys(3,n),Jn=3*f+jn,Kn=Fs(Wn,W),te=Jn*K+jn*tt+2*Os(Kn[1]),ne=3*T,ee=Ys(-3,i),re=3*a+ne,oe=Fs(ee,$),ie=re*H+ne*R+2*Os(oe[1]),se=Fs(n,$),ce=f*H+E*R+2*Os(se[1]),ue=-3*mn,fe=3*Sn,le=Ys(-3,Qt),he=3*$t+fe,ae=Vs(le,Wt),pe=Os(ue-In),de=he+Jt+pe,ge=Fs(ae,W),ve=de*K+pe*tt+2*Os(ge[1]),me=Fs(Rt,en),be=Ut*nn+wn*rn+2*Os(me[1]),xe=ks(ge,me),_e=ve+be+Os(xe[1]),Ie=Fs(gn,lt),Ne=vn*ht+yn*at+2*Os(Ie[1]),Se=ks(xe,Ie),Ee=_e+Ne+Os(Se[1]),we=Fs(ae,$),Me=de*H+pe*R+2*Os(we[1]),Pe=Fs(Rt,sn),Te=Ut*on+wn*cn+2*Os(Pe[1]),ye=ks(we,Pe),Ce=Me+Te+Os(ye[1]),Oe=Fs(gn,pt),Ae=vn*dt+yn*gt+2*Os(Oe[1]),ze=ks(ye,Oe),Be=Ce+Ae+Os(ze[1]),Ye=Os(L-hn/2),Fe=Vs(k,Bs(pn)),Ve=D+dn/2+Os(Fe[1]),ke=Fs(ae,vt),Le=de*mt+pe*bt+2*Os(ke[1]),De=Fs(Gt,fn),Xe=Ht*un+En*ln+2*Os(De[1]),qe=ks(ke,De),Qe=Le+Xe+Os(qe[1]),$e=Fs(Rt,Fe),Ge=Ut*Ye+wn*Ve+2*Os($e[1]),He=zs(Vs($e,qe)),Re=2*(Ge+Qe)+Os(He[1]),Ue=Ys(-3,Cn),Ze=3*Ln+Os(Ue[1]),je=Vs(Ue,zs(zn)),We=Ze+2*qn+Os(je[1]),Je=ks(Yn,kn),Ke=$n+Rn+Os(Je[1]),tr=ks(je,Je),nr=Os(tr[1]),er=We+Ke+nr,rr=zs(Vs(On,Fn)),or=Os(rr[1]),ir=2*(Dn+Gn)+or,sr=Vs(An,Bn),cr=Xn+Qn+Os(sr[1]),ur=ks(sr,Vn),fr=Os(ur[1]),lr=cr+Hn+fr,hr=Fs(i,tr),ar=a*nr+T*er+2*Os(hr[1]),pr=Fs(s,rr),dr=p*or+P*ir+2*Os(pr[1]),gr=Fs(c,ur),vr=d*fr+M*lr+2*Os(gr[1]),mr=ks(pr,gr),br=dr+vr+Os(mr[1]),xr=ks(hr,mr),_r=ar+br+Os(xr[1]),Ir=Fs(n,tr),Nr=f*nr+E*er+2*Os(Ir[1]),Sr=Fs(e,rr),Er=l*or+S*ir+2*Os(Sr[1]),wr=Fs(r,ur),Mr=h*fr+N*lr+2*Os(wr[1]),Pr=ks(Sr,wr),Tr=Er+Mr+Os(Pr[1]),yr=As(ks(Ir,Pr)),Cr=Nr+Tr+Os(yr[1]),Or=Vs(Yn,Cn),Ar=Vs(Or,zn),zr=Os(Ar[1]),Br=Fs(ur,Kt),Yr=Fs(Fn,Zt),Fr=Vs(Br,Yr),Vr=lr*Os(Kt[1])+2*Os(Br[1])+Gn*Os(Zt[1])+2*Os(Yr[1])+Os(Fr[1]),kr=Fs(Qt,Ar),Lr=$t*zr+Sn*$n+Ln+Os(Or[1])+qn+zr+2*Os(kr[1]),Dr=ks(kr,Fr);return{coeffs:{vₓₓₓ:Un,vₓₓᵧ:Kn,vₓᵧᵧ:oe,vᵧᵧᵧ:se,vₓₓ:Se,vₓᵧ:He,vᵧᵧ:ze,vₓ:xr,vᵧ:yr,v:Dr},errorBound:{vₓₓₓ_:Zn,vₓₓᵧ_:te,vₓᵧᵧ_:ie,vᵧᵧᵧ_:ce,vₓₓ_:Ee,vₓᵧ_:Re,vᵧᵧ_:Be,vₓ_:_r,vᵧ_:Cr,v_:Lr+Vr+Os(Dr[1])}}}const Ds=de,Xs=ce,qs=te,Qs=le,$s=oe,Gs=Math.abs,Hs=Ar(3),Rs=oe,Us=te,Zs=le,js=Math.abs,Ws=Ar(3),Js=de,Ks=ce,tc=te,nc=le,ec=oe,rc=Math.abs,oc=Ar(3),ic=de,sc=ce,cc=te,uc=le,fc=oe,lc=Math.abs,hc=Ar(3),ac=oe,pc=te,dc=le,gc=Math.abs,vc=Ar(3),mc=de,bc=ce,xc=te,_c=le,Ic=oe,Nc=Math.abs,Sc=Ar(3),Ec=de,wc=ce,Mc=te,Pc=le,Tc=oe,yc=Math.abs,Cc=Ar(3),Oc=T,Ac=pt,zc=j,Bc=at,Yc=on;function Fc(t){if(4===t.length)return Vc(t);if(3===t.length)return kc(t);if(2===t.length)return Lc(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[n]],[[e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}function Vc(t){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[Yc(Oc(c,n),zc(3,Oc(r,i))),zc(3,Bc(Ac(i,n),-2*r)),zc(3,Oc(r,n)),[n]],[Yc(Oc(u,e),zc(3,Oc(o,s))),zc(3,Bc(Ac(s,e),-2*o)),zc(3,Oc(o,e)),[e]]]}function kc(t){const[[n,e],[r,o],[i,s]]=t;return[[Bc(Ac(i,n),-2*r),Oc(2*r,2*n),[n]],[Bc(Ac(s,e),-2*o),Oc(2*o,2*e),[e]]]}function Lc(t){const[[n,e],[r,o]]=t;return[[Oc(r,n),[n]],[Oc(o,e),[e]]]}const Dc=j,Xc=rt,qc=tt,Qc=y;function $c(t){const[[n,[e]],[r,[o]]]=t;if(0!==Qc(n)||0!==Qc(r))return{vₓ:qc(r),vᵧ:n,v:Xc(Dc(e,r),Dc(o,n))}}const Gc=j,Hc=K,Rc=R;function Uc(t,n){const e=Lc(t),[[r,[o]],[i,[s]]]=Lc(n),{vₓ:c,vᵧ:u,v:f}=$c(e),l=Hc(r,c),h=Hc(i,u),a=Rc(l,h),p=Gc(o,c),d=Gc(s,u),g=Rc(p,d);return[a,Rc(g,f)]}const Zc=j,jc=At,Wc=rt,Jc=K,Kc=tt;function tu(t){const[[n,e,[r]],[o,i,[s]]]=t;if(0===y(n)&&0===y(o))return $c([[e,[r]],[i,[s]]]);const c=Jc(n,i),u=Jc(e,o),f=Zc(s,n),l=Zc(r,o),h=Zc(s,e),a=Zc(r,i),p=Jc(n,n),d=Jc(n,o),g=Jc(o,o),v=Wc(c,u),m=Wc(f,l),b=Wc(h,a),x=Kc(g),_=jc(d),I=Kc(p),N=Jc(i,v),S=jc(Jc(o,m)),E=Wc(N,S),w=jc(Jc(n,m)),M=Jc(e,v),P=Wc(w,M),T=Jc(v,b),C=Jc(m,m);return{vₓₓ:x,vₓᵧ:_,vᵧᵧ:I,vₓ:E,vᵧ:P,v:Wc(T,C)}}const nu=Ft,eu=j,ru=K,ou=R,iu=At,su=y;function cu(t,n){const e=kc(t);if(0===su(e[0][0])&&0===su(e[1][0]))return Uc([t[0],t[2]],n);const[[r,[o]],[i,[s]]]=Lc(n),{vₓₓ:c,vₓᵧ:u,vᵧᵧ:f,vₓ:l,vᵧ:h,v:a}=tu(e),p=nu(o,o),d=eu(o,r),g=nu(o,s),v=eu(o,i),m=ru(r,r),b=eu(s,r),x=ru(r,i),_=nu(s,s),I=eu(s,i),N=ru(i,i),S=ru(m,c),E=ru(N,f),w=ru(x,u),M=ou(S,E),P=ou(M,w),T=ru(d,c),y=ru(I,f),C=ou(v,b),O=ru(C,u),A=iu(ou(T,y)),z=ou(A,O),B=ru(r,l),Y=ru(i,h),F=ou(B,Y),V=ou(z,F),k=ru(p,c),L=ru(g,u),D=ru(_,f),X=ou(k,L),q=ou(X,D),Q=eu(o,l),$=eu(s,h),G=ou(Q,$),H=ou(q,G);return[P,V,ou(H,a)]}const uu=K,fu=T,lu=rt,hu=y,au=H,pu=Z,du=pt;function gu(t,n=!1){if(!n){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[n,e],[au(lu(pu(du(r/4,i/4),3),du(n/4,c/4))),au(lu(pu(du(o/4,s/4),3),du(e/4,u/4)))],[c,u]]}const[e,r,o,i]=t,s=function(t,n){const[[e,r],[o,i]]=t,[[s,c],[u,f]]=n,l=fu(o,e),h=fu(i,r),a=fu(u,s),p=fu(f,c),d=lu(uu(a,h),uu(p,l));if(0===hu(d))return;const g=fu(s,e),v=fu(c,r),m=lu(uu(v,l),uu(g,h)),b=au(m)/au(d);return[s+b*au(a),c+b*au(p)]}([e,r],[i,o]);if(void 0!==s)return[e,s,i]}const vu=j,mu=K,bu=R,xu=rt,_u=tt,Iu=At,Nu=Bt,Su=y;function Eu(t){const[[n,e,r,[o]],[i,s,c,[u]]]=t;if(0===Su(n)&&0===Su(i))return tu([[e,r,[o]],[s,c,[u]]]);const f=mu(n,c),l=mu(r,i),h=mu(n,s),a=mu(e,s),p=mu(e,i),d=mu(n,n),g=mu(s,s),v=mu(i,i),m=mu(r,n),b=mu(e,e),x=mu(c,i),_=mu(s,i),I=mu(e,n),N=mu(n,i),S=vu(u,n),E=vu(o,i),w=vu(u,e),M=vu(o,s),P=mu(e,c),T=mu(r,s),y=vu(u,r),C=vu(o,c),O=xu(S,E),A=xu(f,l),z=xu(h,p),B=xu(w,M),Y=xu(P,T),F=xu(y,C),V=xu(x,g),k=xu(m,b),L=bu(p,h),D=bu(l,f),X=Iu(A),q=mu(O,O),Q=mu(O,A),$=mu(O,z),G=mu(O,Y),H=mu(A,A),R=mu(X,B),U=mu(z,B),Z=mu(z,Y),j=mu(z,F),W=mu(_u(i),v),J=mu(vu(3,n),v),K=mu(vu(-3,i),d),tt=mu(n,d),nt=xu(vu(-3,O),Y),et=mu(nt,v),rt=mu(z,V),ot=bu(et,rt),it=mu(X,_),st=bu(ot,it),ct=mu(nt,d),ut=mu(z,k),ft=bu(ct,ut),lt=mu(X,I),ht=bu(ft,lt),at=xu(a,Nu(D)),pt=mu(nt,N),dt=mu(A,L),gt=bu(pt,dt),vt=mu(z,at),mt=Iu(xu(vt,gt)),bt=vu(-3,q),xt=xu(bt,Iu(G)),_t=bu(R,j),It=bu(xt,_t),Nt=Iu(xu(Q,U)),St=xu($,H),Et=bu(St,Z),wt=mu(i,It),Mt=mu(s,Nt),Pt=mu(c,Et),Tt=bu(Mt,Pt),yt=bu(wt,Tt),Ct=mu(n,It),Ot=mu(e,Nt),At=mu(r,Et),zt=bu(Ot,At),Bt=_u(bu(Ct,zt)),Yt=xu(R,q),Ft=xu(Yt,G),Vt=mu(Et,F),kt=mu(U,B),Lt=xu(Vt,kt),Dt=mu(O,Ft);return{vₓₓₓ:W,vₓₓᵧ:J,vₓᵧᵧ:K,vᵧᵧᵧ:tt,vₓₓ:st,vₓᵧ:mt,vᵧᵧ:ht,vₓ:yt,vᵧ:Bt,v:bu(Dt,Lt)}}const wu=Ft,Mu=j,Pu=K,Tu=R,yu=At,Cu=y;function Ou(t,n){const e=Vc(t);if(0===Cu(e[0][0])&&0===Cu(e[1][0]))return cu(gu(t),n);const[[r,[o]],[i,[s]]]=Lc(n),{vₓₓₓ:c,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:h,vₓᵧ:a,vᵧᵧ:p,vₓ:d,vᵧ:g,v}=Eu(e),m=wu(o,o),b=Mu(o,r),x=wu(o,s),_=Mu(o,i),I=Pu(r,r),N=Mu(s,r),S=Pu(r,i),E=wu(s,s),w=Mu(s,i),M=Pu(i,i),P=Mu(o,c),T=Pu(wu(3,o),c),y=Mu(o,u),C=Mu(s,u),O=Mu(o,f),A=Mu(s,f),z=Mu(s,l),B=Pu(wu(3,s),l),Y=Pu(r,c),F=Pu(r,f),V=Pu(i,u),k=Pu(i,l),L=Tu(Y,V),D=Tu(F,k),X=Pu(I,L),q=Pu(M,D),Q=Tu(X,q),$=Tu(T,C),G=yu(Tu(y,A)),H=Tu(O,B),R=Tu($,h),U=Tu(G,a),Z=Tu(H,p),j=Pu(I,R),W=Pu(S,U),J=Pu(M,Z),K=Tu(j,W),tt=Tu(K,J),nt=yu(Tu(C,h)),et=yu(Tu(O,p)),rt=Tu(T,nt),ot=Tu(B,et),it=Tu(y,a),st=Tu(A,a),ct=Pu(b,rt),ut=Pu(w,ot),ft=Pu(_,it),lt=Pu(N,st),ht=Pu(r,d),at=Pu(i,g),pt=Tu(ct,ut),dt=Tu(ft,lt),gt=Tu(pt,dt),vt=Tu(ht,at),mt=Tu(gt,vt),bt=Tu(P,C),xt=Tu(z,O),_t=Tu(bt,h),It=Tu(xt,p),Nt=Pu(m,_t),St=Pu(E,It),Et=Pu(x,a),wt=Tu(Nt,St),Mt=Tu(wt,Et),Pt=Mu(o,d),Tt=Mu(s,g),yt=Tu(Pt,Tt),Ct=Tu(Mt,yt);return[Q,tt,mt,Tu(Ct,v)]}const Au=j,zu=K,Bu=R,Yu=y;function Fu(t,n){const e=Lc(t),[[r,o,[i]],[s,c,[u]]]=kc(n);if(0===Yu(r)&&0===Yu(s))return Uc(t,[n[0],n[2]]);const{vₓ:f,vᵧ:l,v:h}=$c(e),a=zu(r,f),p=zu(s,l),d=Bu(a,p),g=zu(o,f),v=zu(c,l),m=Bu(g,v),b=Au(i,f),x=Au(u,l),_=Bu(b,x);return[d,m,Bu(_,h)]}const Vu=Ft,ku=j,Lu=K,Du=R,Xu=At,qu=y;function Qu(t,n){const e=kc(t);if(0===qu(e[0][0])&&0===qu(e[1][0]))return Fu([t[0],t[2]],n);const[[r,o,[i]],[s,c,[u]]]=kc(n);if(0===qu(r)&&0===qu(s))return cu(t,[n[0],n[2]]);const{vₓₓ:f,vₓᵧ:l,vᵧᵧ:h,vₓ:a,vᵧ:p,v:d}=tu(e),g=Vu(i,i),v=ku(i,o),m=ku(i,r),b=Vu(i,u),x=ku(i,c),_=ku(i,s),I=Lu(o,o),N=Lu(o,r),S=ku(u,o),E=Lu(o,c),w=Lu(o,s),M=Lu(r,c),P=Lu(r,r),T=ku(u,r),y=Lu(r,s),C=Vu(u,u),O=ku(u,c),A=ku(u,s),z=Lu(c,c),B=Lu(c,s),Y=Lu(s,s),F=Lu(P,f),V=Lu(y,l),k=Lu(Y,h),L=Du(F,V),D=Du(L,k),X=Lu(N,f),q=Lu(B,h),Q=Du(w,M),$=Lu(Q,l),G=Xu(Du(X,q)),H=Du(G,$),R=Du(Xu(m),I),U=Du(Xu(A),z),Z=Du(_,E),j=Du(Z,T),W=Lu(R,f),J=Lu(U,h),K=Lu(j,l),tt=Lu(r,a),nt=Lu(s,p),et=Du(W,J),rt=Du(et,K),ot=Du(tt,nt),it=Du(rt,ot),st=Lu(v,f),ct=Lu(O,h),ut=Du(x,S),ft=Lu(ut,l),lt=Xu(Du(st,ct)),ht=Lu(o,a),at=Lu(c,p),pt=Du(lt,ft),dt=Du(ht,at),gt=Du(pt,dt),vt=Lu(g,f),mt=Lu(b,l),bt=Lu(C,h),xt=ku(i,a),_t=ku(u,p),It=Du(vt,mt),Nt=Du(It,bt),St=Du(xt,_t),Et=Du(Nt,St);return[D,H,it,gt,Du(Et,d)]}const $u=Ft,Gu=j,Hu=K,Ru=R,Uu=At,Zu=y;function ju(t,n){const e=Vc(t);if(0===Zu(e[0][0])&&0===Zu(e[1][0]))return Qu(gu(t),n);const[[r,o,[i]],[s,c,[u]]]=kc(n);if(0===Zu(r)&&0===Zu(s))return Ou(t,[n[0],n[2]]);const{vₓₓₓ:f,vₓₓᵧ:l,vₓᵧᵧ:h,vᵧᵧᵧ:a,vₓₓ:p,vₓᵧ:d,vᵧᵧ:g,vₓ:v,vᵧ:m,v:b}=Eu(e),x=$u(i,i),_=Gu(i,o),I=Gu(i,r),N=$u(i,u),S=Gu(i,c),E=Gu(i,s),w=Hu(o,o),M=Hu(o,r),P=Gu(u,o),T=Hu(o,c),y=Hu(o,s),C=Hu(r,c),O=Hu(r,r),A=Gu(u,r),z=Hu(r,s),B=$u(u,u),Y=Gu(u,c),F=Gu(u,s),V=Hu(c,c),k=Hu(c,s),L=Hu(s,s),D=Hu(r,f),X=Hu(r,h),q=Hu(s,l),Q=Hu(s,a),$=Ru(D,q),G=Ru(X,Q),H=Hu(O,$),R=Hu(L,G),U=Ru(H,R),Z=Ru(I,w),j=Ru(F,V),W=Ru(Uu(I),w),J=Ru(Uu(F),V),K=Ru(Uu(T),A),tt=Ru(Uu(T),E),nt=Ru(Uu(A),T),et=Ru(Gu(6,I),w),rt=Ru(Gu(6,F),V),ot=Ru(y,C),it=Ru(E,A),st=Ru(Uu(P),S),ct=Ru(Uu(S),P),ut=Ru(E,T),ft=Ru(ut,A),lt=Gu(3,O),ht=Gu(3,L),at=Hu(lt,f),pt=Hu(O,l),dt=Uu(Hu(z,l)),gt=Uu(Hu(z,h)),vt=Hu(L,h),mt=Hu(ht,a),bt=Ru(at,dt),xt=Ru(pt,gt),_t=Ru(bt,vt),It=Ru(xt,mt),Nt=Hu(o,_t),St=Hu(c,It),Et=Ru(Nt,St),wt=Hu(s,W),Mt=Hu(s,tt),Pt=Hu(r,K),Tt=Hu(r,J),yt=Hu(Gu(3,r),Z),Ct=Hu(Gu(3,s),j),Ot=Ru(wt,Pt),At=Ru(Mt,Tt),zt=Hu(yt,f),Bt=Hu(Ct,a),Yt=Hu(Ot,l),Ft=Hu(At,h),Vt=Ru(zt,Bt),kt=Ru(Yt,Ft),Lt=Hu(O,p),Dt=Hu(L,g),Xt=Hu(z,d),qt=Ru(Lt,Dt),Qt=Ru(Vt,kt),$t=Ru(qt,Xt),Gt=Ru(Qt,$t),Ht=Hu(o,et),Rt=Hu(c,rt),Ut=Gu(2*i,ot),Zt=Hu(Uu(c),it),jt=Hu(o,nt),Wt=Hu(o,J),Jt=Ru(Ut,jt),Kt=Ru(Zt,Wt),tn=Hu(k,g),nn=Hu(M,p),en=Hu(ot,d),rn=Ru(tn,nn),on=Hu(Ht,f),sn=Hu(Jt,l),cn=Hu(Rt,a),un=Hu(Kt,h),fn=Ru(on,cn),ln=Ru(sn,un),hn=Ru(fn,ln),an=Ru(Uu(rn),en),pn=Ru(hn,an),dn=Hu($u(3,i),Z),gn=Hu($u(3,u),j),vn=Gu(i,tt),mn=Gu(i,J),bn=Gu(u,W),xn=Gu(u,K),_n=Ru(vn,bn),In=Ru(mn,xn),Nn=Hu(dn,f),Sn=Hu(gn,a),En=Hu(_n,l),wn=Hu(In,h),Mn=Hu(W,p),Pn=Hu(J,g),Tn=Hu(ft,d),yn=Hu(r,v),Cn=Hu(s,m),On=Ru(Nn,Sn),An=Ru(En,wn),zn=Ru(Mn,Pn),Bn=Ru(On,An),Yn=Ru(zn,Tn),Fn=Ru(yn,Cn),Vn=Ru(Bn,Yn),kn=Ru(Vn,Fn),Ln=Hu($u(3,i),_),Dn=Hu($u(3,u),Y),Xn=Gu(i,st),qn=Gu(u,ct),Qn=Hu(_,p),$n=Hu(Y,g),Gn=Hu(S,d),Hn=Hu(P,d),Rn=Uu(Ru(Qn,$n)),Un=Ru(Gn,Hn),Zn=Hu(o,v),jn=Hu(c,m),Wn=Hu(Ln,f),Jn=Hu(Dn,a),Kn=Hu(Xn,l),te=Hu(qn,h),ne=Ru(Wn,Jn),ee=Ru(Kn,te),re=Ru(ne,ee),oe=Ru(Rn,Un),ie=Ru(Zn,jn),se=Ru(re,oe),ce=Ru(se,ie),ue=Gu(i,f),fe=Gu(i,h),le=Gu(u,l),he=Gu(u,a),ae=Ru(ue,le),pe=Ru(fe,he),de=Ru(ae,p),ge=Ru(pe,g),ve=Hu(x,de),me=Hu(B,ge),be=Hu(N,d),xe=Gu(i,v),_e=Gu(u,m),Ie=Ru(ve,me),Ne=Ru(Ie,be),Se=Ru(xe,_e),Ee=Ru(Ne,Se);return[U,Et,Gt,pn,kn,ce,Ru(Ee,b)]}const Wu=j,Ju=K,Ku=R,tf=y;function nf(t,n){const e=Lc(t),[[r,o,i,[s]],[c,u,f,[l]]]=Vc(n);if(0===tf(r)&&0===tf(c))return Fu(t,gu(n));const{vₓ:h,vᵧ:a,v:p}=$c(e),d=Ju(r,h),g=Ju(c,a),v=Ku(d,g),m=Ju(o,h),b=Ju(u,a),x=Ku(m,b),_=Ju(i,h),I=Ju(f,a),N=Ku(_,I),S=Wu(s,h),E=Wu(l,a),w=Ku(S,E);return[v,x,N,Ku(w,p)]}const ef=Ft,rf=j,of=K,sf=R,cf=At,uf=y;function ff(t,n){const e=kc(t);if(0===uf(e[0][0])&&0===uf(e[1][0]))return nf([t[0],t[2]],n);const[[r,o,i,[s]],[c,u,f,[l]]]=Vc(n);if(0===uf(r)&&0===uf(c))return Qu(t,gu(n));const{vₓₓ:h,vₓᵧ:a,vᵧᵧ:p,vₓ:d,vᵧ:g,v}=tu(e),m=ef(s,s),b=rf(s,i),x=rf(s,o),_=rf(s,r),I=ef(s,l),N=rf(s,f),S=rf(s,u),E=rf(s,c),w=of(i,i),M=of(i,o),P=of(i,r),T=rf(l,i),y=of(i,f),C=of(i,u),O=of(i,c),A=of(o,f),z=of(o,o),B=of(o,r),Y=rf(l,o),F=of(o,u),V=of(o,c),k=of(r,r),L=rf(l,r),D=of(r,f),X=of(r,u),q=of(r,c),Q=ef(l,l),$=rf(l,f),G=rf(l,u),H=rf(l,c),R=of(f,f),U=of(f,u),Z=of(c,c),j=of(u,u),W=of(u,c),J=of(f,c),K=of(k,h),tt=of(q,a),nt=of(Z,p),et=sf(K,tt),rt=sf(et,nt),ot=of(B,h),it=of(W,p),st=sf(ot,it),ct=sf(V,X),ut=of(ct,a),ft=sf(cf(st),ut),lt=sf(cf(P),z),ht=sf(cf(J),j),at=sf(O,F),pt=sf(at,D),dt=of(lt,h),gt=of(ht,p),vt=sf(dt,gt),mt=of(pt,a),bt=sf(vt,mt),xt=sf(_,M),_t=sf(H,U),It=sf(E,C),Nt=sf(A,L),St=sf(It,Nt),Et=of(xt,h),wt=of(_t,p),Mt=cf(sf(Et,wt)),Pt=of(St,a),Tt=of(r,d),yt=of(c,g),Ct=sf(Tt,yt),Ot=sf(Mt,Pt),At=sf(Ot,Ct),zt=sf(cf(x),w),Bt=sf(cf(G),R),Yt=sf(S,y),Ft=sf(Yt,Y),Vt=of(zt,h),kt=of(Bt,p),Lt=of(Ft,a),Dt=sf(Vt,kt),Xt=sf(Dt,Lt),qt=of(o,d),Qt=of(u,g),$t=sf(qt,Qt),Gt=sf(Xt,$t),Ht=of(b,h),Rt=of($,p),Ut=sf(N,T),Zt=of(Ut,a),jt=cf(sf(Ht,Rt)),Wt=sf(jt,Zt),Jt=of(i,d),Kt=of(f,g),tn=sf(Jt,Kt),nn=sf(Wt,tn),en=of(m,h),rn=of(I,a),on=of(Q,p),sn=rf(s,d),cn=rf(l,g),un=sf(en,rn),fn=sf(un,on),ln=sf(sn,cn),hn=sf(fn,ln);return[rt,ft,bt,At,Gt,nn,sf(hn,v)]}const lf=Ft,hf=j,af=K,pf=R,df=At,gf=y,vf=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=hs(t),[[s,[,c]],[u,[,f]]]=ss(n),l=s[1],h=u[1],a=e[1],p=r[1],d=o[1],g=l*a,v=2*gs(g),m=ds(s,e),b=h*p,x=2*gs(b),_=ds(u,r),I=g+b,N=as(m,_),S=v+x+gs(I),E=c*a,w=ps(c,e),M=gs(E),P=f*p,T=ps(f,r),y=gs(P),C=E+P,O=as(w,T),A=M+y+gs(C),z=as(O,o),B=A+i+gs(C+d);return{coeffs:[N,z],errBound:[vs*S,vs*B]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=hs(t),{coeffs:[[s,c,[,u]],[f,l,[,h]]],errorBound:[[a],[p]]}=is(n),d=e[1],g=r[1],v=o[1],m=js(d),b=js(g),x=(js(v),c[1]),_=s[1],I=l[1],N=f[1],S=_*d,E=Zs(s,e),w=a*m+2*js(S),M=N*g,P=Zs(f,r),T=p*b+2*js(M),y=S+M,C=Rs(E,P),O=w+T+js(y),A=x*d,z=Zs(c,e),B=2*js(A),Y=I*g,F=Zs(l,r),V=2*js(Y),k=A+Y,L=Rs(z,F),D=B+V+js(k),X=Us(u,e),q=u*d,Q=js(q),$=Us(h,r),G=h*g,H=js(G),R=q+G,U=Rs(X,$),Z=Q+H+js(R),j=R+v,W=Rs(U,o),J=Z+i+js(j);return{coeffs:[C,L,W],errBound:[Ws*O,Ws*D,Ws*J]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=hs(t),{coeffs:[[s,c,u,[,f]],[l,h,a,[,p]]],errorBound:[[d,g,v],[m,b,x]]}=os(n),_=gc(e[1]),I=gc(r[1]),N=dc(s,e),S=d*_+2*gc(N[1]),E=dc(l,r),w=m*I+2*gc(E[1]),M=ac(N,E),P=S+w+gc(M[1]),T=dc(c,e),y=g*_+2*gc(T[1]),C=dc(h,r),O=b*I+2*gc(C[1]),A=ac(T,C),z=y+O+gc(A[1]),B=dc(u,e),Y=v*_+2*gc(B[1]),F=dc(a,r),V=x*I+2*gc(F[1]),k=ac(B,F),L=Y+V+gc(k[1]),D=pc(f,e),X=gc(D[1]),q=pc(p,r),Q=gc(q[1]),$=ac(D,q),G=X+Q+gc($[1]),H=ac($,o),R=G+i+gc(H[1]);return{coeffs:[M,A,k,H],errBound:[vc*P,vc*z,vc*L,vc*R]}}],[function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:s,v:c},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:h,vᵧ_:a,v_:p}}=Ss(t),[[d,[,g]],[v,[,m]]]=ss(n),b=e[1],x=r[1],_=o[1],I=i[1],N=s[1],S=c[1],E=ys(b),w=ys(x),M=ys(_),P=d[1],T=v[1],y=ys(g),C=ys(P),O=ys(m),A=ys(T),z=g*g,B=g*P,Y=g*m,F=g*T,V=P*P,k=P*m,L=P*T,D=m*m,X=m*T,q=T*T,Q=Es(g,g),$=Ms(g,d),G=ys(B),H=Es(g,m),R=Ms(g,v),U=ys(F),Z=ys(V),j=Ps(d,d),W=2*Z,J=Ms(m,d),K=ys(k),tt=ys(L),nt=Ps(d,v),et=2*tt,rt=Es(m,m),ot=Ms(m,v),it=ys(X),st=ys(q),ct=Ps(v,v),ut=2*st,ft=V*b,lt=Ps(j,e),ht=W*E*Z*u+2*ys(ft),at=q*_,pt=Ps(ct,o),dt=ut*M*st*l+2*ys(at),gt=L*x,vt=Ps(nt,r),mt=et*w*tt*f+2*ys(gt),bt=ft+at,xt=Ts(lt,pt),_t=ht+dt+ys(bt),It=bt+gt,Nt=Ts(xt,vt),St=_t+mt+ys(It),Et=B*b,wt=Ps($,e),Mt=G*(E+u)+2*ys(Et),Pt=X*_,Tt=Ps(ot,o),yt=it*(M+l)+2*ys(Pt),Ct=F+k,Ot=Ts(R,J),At=U+K+ys(Ct),zt=Ct*x,Bt=Ps(Ot,r),Yt=At*w+ys(Ct)*f+2*ys(zt),Ft=2*(Et+Pt),Vt=ws(Ts(wt,Tt)),kt=2*(Mt+yt)+ys(Ft),Lt=Ft+zt,Dt=Ts(Vt,Bt),Xt=kt+Yt+ys(Lt),qt=P*I,Qt=Ps(d,i),$t=C*h+2*ys(qt),Gt=T*N,Ht=Ps(v,s),Rt=A*a+2*ys(Gt),Ut=qt+Gt,Zt=Ts(Qt,Ht),jt=$t+Rt+ys(Ut),Wt=Lt+Ut,Jt=Ts(Dt,Zt),Kt=Xt+jt+ys(Wt),tn=z*b,nn=Ps(Q,e),en=2*ys(tn),rn=Y*x,on=Ps(H,r),sn=2*ys(rn),cn=D*_,un=Ps(rt,o),fn=2*ys(cn),ln=tn+rn,hn=Ts(nn,on),an=en+sn+ys(ln),pn=ln+cn,dn=Ts(hn,un),gn=an+fn+ys(pn),vn=g*I,mn=Ms(g,i),bn=y*h+ys(vn),xn=m*N,_n=Ms(m,s),In=O*a+ys(xn),Nn=vn+xn,Sn=Ts(mn,_n),En=bn+In+ys(Nn),wn=pn+Nn,Mn=Ts(dn,Sn),Pn=gn+En+ys(wn),Tn=wn+S,yn=Ts(Mn,c),Cn=Pn+p+ys(Tn);return{coeffs:[Nt,Jt,yn],errBound:[Cs*St,Cs*Kt,Cs*Cn]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:s,v:c},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:h,vᵧ_:a,v_:p}}=Ss(t),{coeffs:[[d,g,[,v]],[m,b,[,x]]],errorBound:[[_],[I]]}=is(n),N=e[1],S=r[1],E=o[1],w=i[1],M=s[1],P=c[1],T=rc(N),y=rc(S),C=rc(E),O=rc(w),A=rc(M),z=g[1],B=d[1],Y=b[1],F=m[1],V=rc(v),k=rc(z),L=rc(B),D=rc(x),X=rc(Y),q=rc(F),Q=v*v,$=v*z,G=v*B,H=v*x,R=v*Y,U=v*F,Z=z*z,j=z*B,W=z*x,J=z*Y,K=z*F,tt=B*Y,nt=B*B,et=B*x,rt=B*F,ot=x*x,it=x*Y,st=x*F,ct=Y*Y,ut=Y*F,ft=F*F,lt=rc(Q),ht=rc(H),at=rc(ot),pt=Js(v,v),dt=tc(v,g),gt=rc($),vt=tc(v,d),mt=rc(G),bt=Js(v,x),xt=tc(v,b),_t=rc(R),It=tc(v,m),Nt=rc(U),St=nc(g,g),Et=2*rc(Z),wt=nc(g,d),Mt=rc(j),Pt=k*_+2*Mt,Tt=tc(x,g),yt=rc(W),Ct=nc(g,b),Ot=2*rc(J),At=nc(g,m),zt=k*I+2*rc(K),Bt=nc(d,b),Yt=_*X+2*rc(tt),Ft=nc(d,d),Vt=rc(nt),kt=2*(_*L+Vt),Lt=tc(x,d),Dt=rc(et),Xt=nc(d,m),qt=rc(rt),Qt=_*q+L*I+2*qt,$t=Js(x,x),Gt=tc(x,b),Ht=rc(it),Rt=tc(x,m),Ut=rc(st),Zt=nc(b,b),jt=2*rc(ct),Wt=nc(b,m),Jt=rc(ut),Kt=X*I+2*Jt,tn=nc(m,m),nn=rc(ft),en=2*(I*q+nn),rn=nt*N,on=nc(Ft,e),sn=kt*T+Vt*u+2*rc(rn),cn=rt*S,un=nc(Xt,r),fn=Qt*y+qt*f+2*rc(cn),ln=ft*E,hn=nc(tn,o),an=en*C+nn*l+2*rc(ln),pn=rn+cn,dn=ec(on,un),gn=sn+fn+rc(pn),vn=pn+ln,mn=ec(dn,hn),bn=gn+an+rc(vn),xn=j*N,_n=nc(wt,e),In=Pt*T+Mt*u+2*rc(xn),Nn=ut*E,Sn=nc(Wt,o),En=Kt*C+Jt*l+2*rc(Nn),wn=K+tt,Mn=ec(At,Bt),Pn=rc(wn),Tn=zt+Yt+Pn,yn=wn*S,Cn=nc(Mn,r),On=Tn*y+Pn*f+2*rc(yn),An=2*(xn+Nn),zn=Ks(ec(_n,Sn)),Bn=2*(In+En)+rc(An),Yn=An+yn,Fn=ec(zn,Cn),Vn=Bn+On+rc(Yn),kn=2*G+Z,Ln=rc(kn),Dn=ec(Ks(vt),St),Xn=2*mt+Et+rc(kn),qn=2*st+ct,Qn=rc(qn),$n=ec(Ks(Rt),Zt),Gn=2*Ut+jt+rc(qn),Hn=U+J,Rn=(rc(Hn),ec(It,Ct)),Un=Nt+Ot+rc(Hn),Zn=Hn+et,jn=ec(Rn,Lt),Wn=rc(Zn),Jn=Un+Dt+Wn,Kn=kn*N,te=nc(Dn,e),ne=Xn*T+Ln*u+2*rc(Kn),ee=qn*E,re=nc($n,o),oe=Gn*C+Qn*l+2*rc(ee),ie=Zn*S,se=nc(jn,r),ce=Jn*y+Wn*f+2*rc(ie),ue=B*w,fe=nc(d,i),le=_*O+L*h+rc(ue),he=F*M,ae=nc(m,s),pe=I*A+q*a+rc(he),de=Kn+ee,ge=ec(te,re),ve=ne+oe+rc(de),me=de+ie,be=ec(ge,se),xe=ve+ce+rc(me),_e=ue+he,Ie=ec(fe,ae),Ne=le+pe+rc(_e),Se=me+_e,Ee=ec(be,Ie),we=xe+Ne+rc(Se),Me=$*N,Pe=nc(dt,e),Te=gt*(T+u)+2*rc(Me),ye=it*E,Ce=nc(Gt,o),Oe=Ht*(C+l)+2*rc(ye),Ae=R+W,ze=ec(xt,Tt),Be=rc(Ae),Ye=_t+yt+Be,Fe=Ae*S,Ve=nc(ze,r),ke=Ye*y+Be*f+2*rc(Fe),Le=2*(Me+ye),De=Ks(ec(Pe,Ce)),Xe=2*(Te+Oe)+rc(Le),qe=z*w,Qe=nc(g,i),$e=k*h+2*rc(qe),Ge=Y*M,He=nc(b,s),Re=X*a+2*rc(Ge),Ue=Le+Fe,Ze=ec(De,Ve),je=Xe+ke+rc(Ue),We=qe+Ge,Je=ec(Qe,He),Ke=$e+Re+rc(We),tr=Ue+We,nr=ec(Ze,Je),er=je+Ke+rc(tr),rr=Q*N,or=nc(pt,e),ir=lt*u+2*rc(rr),sr=H*S,cr=nc(bt,r),ur=ht*f+2*rc(sr),fr=ot*E,lr=nc($t,o),hr=at*l+2*rc(fr),ar=v*w,pr=tc(v,i),dr=V*h+rc(ar),gr=x*M,vr=tc(x,s),mr=D*a+rc(gr),br=rr+sr,xr=ec(or,cr),_r=ir+ur+rc(br),Ir=br+fr,Nr=ec(xr,lr),Sr=_r+hr+rc(Ir),Er=ar+gr,wr=ec(pr,vr),Mr=dr+mr+rc(Er),Pr=Ir+Er,Tr=ec(Nr,wr),yr=Sr+Mr+rc(Pr),Cr=Pr+P,Or=ec(Tr,c),Ar=yr+p+rc(Cr);return{coeffs:[mn,Fn,Ee,nr,Or],errBound:[oc*bn,oc*Vn,oc*we,oc*er,oc*Ar]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:s,v:c},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:h,vᵧ_:a,v_:p}}=Ss(t),{coeffs:[[d,g,v,[,m]],[b,x,_,[,I]]],errorBound:[[N,S,E],[w,M,P]]}=os(n),T=e[1],y=r[1],C=o[1],O=i[1],A=s[1],z=c[1],B=Nc(T),Y=Nc(y),F=Nc(C),V=Nc(O),k=Nc(A),L=v[1],D=g[1],X=d[1],q=_[1],Q=x[1],$=b[1],G=Nc(m),H=Nc(L),R=Nc(D),U=Nc(X),Z=Nc(I),j=Nc(q),W=Nc(Q),J=Nc($),K=m*m,tt=m*L,nt=m*D,et=m*X,rt=m*I,ot=m*q,it=m*Q,st=m*$,ct=L*L,ut=L*D,ft=L*X,lt=L*I,ht=L*q,at=L*Q,pt=L*$,dt=D*q,gt=D*D,vt=D*X,mt=D*I,bt=D*Q,xt=D*$,_t=X*X,It=X*I,Nt=X*q,St=X*Q,Et=X*$,wt=I*I,Mt=I*q,Pt=I*Q,Tt=I*$,yt=q*q,Ct=q*Q,Ot=$*$,At=Q*Q,zt=Q*$,Bt=q*$,Yt=mc(m,m),Ft=Nc(K),Vt=xc(m,v),kt=Nc(tt),Lt=G*E+kt,Dt=xc(m,g),Xt=G*S+Nc(nt),qt=xc(m,d),Qt=G*N+Nc(et),$t=mc(m,I),Gt=Nc(rt),Ht=xc(m,_),Rt=G*P+Nc(ot),Ut=xc(m,x),Zt=G*M+Nc(it),jt=xc(m,b),Wt=G*w+Nc(st),Jt=_c(v,v),Kt=E*H+H*E+2*Nc(ct),tn=_c(v,g),nn=E*R+H*S+2*Nc(ut),en=_c(v,d),rn=E*U+H*N+2*Nc(ft),on=xc(I,v),sn=Z*E+Nc(lt),cn=_c(v,_),un=E*j+H*P+2*Nc(ht),fn=_c(v,x),ln=E*W+H*M+2*Nc(at),hn=_c(v,b),an=E*J+H*w+2*Nc(pt),pn=_c(g,_),dn=S*j+R*P+2*Nc(dt),gn=_c(g,g),vn=S*R+R*S+2*Nc(gt),mn=_c(g,d),bn=Nc(vt),xn=S*U+R*N+2*bn,_n=xc(I,g),In=Z*S+Nc(mt),Nn=_c(g,x),Sn=S*W+R*M+2*Nc(bt),En=_c(g,b),wn=S*J+R*w+2*Nc(xt),Mn=_c(d,d),Pn=Nc(_t),Tn=N*U+U*N+2*Pn,yn=xc(I,d),Cn=Z*N+Nc(It),On=_c(d,_),An=N*j+U*P+2*Nc(Nt),zn=_c(d,x),Bn=N*W+U*M+2*Nc(St),Yn=_c(d,b),Fn=Nc(Et),Vn=N*J+U*w+2*Fn,kn=mc(I,I),Ln=Nc(wt),Dn=xc(I,_),Xn=Nc(Mt),qn=Z*P+Xn,Qn=xc(I,x),$n=Z*M+Nc(Pt),Gn=xc(I,b),Hn=Z*w+Nc(Tt),Rn=_c(_,_),Un=P*j+j*P+2*Nc(yt),Zn=_c(_,x),jn=P*W+j*M+2*Nc(Ct),Wn=_c(b,b),Jn=Nc(Ot),Kn=w*J+J*w+2*Jn,te=_c(x,x),ne=M*W+W*M+2*Nc(At),ee=_c(x,b),re=Nc(zt),oe=M*J+W*w+2*re,ie=_c(_,b),se=P*J+j*w+2*Nc(Bt),ce=_t*T,ue=_c(Mn,e),fe=Tn*B+Pn*u+2*Nc(ce),le=Et*y,he=_c(Yn,r),ae=Vn*Y+Fn*f+2*Nc(le),pe=Ot*C,de=_c(Wn,o),ge=Kn*F+Jn*l+2*Nc(pe),ve=ce+le,me=Ic(ue,he),be=fe+ae+Nc(ve),xe=ve+pe,_e=Ic(me,de),Ie=be+ge+Nc(xe),Ne=vt*T,Se=_c(mn,e),Ee=xn*B+bn*u+2*Nc(Ne),we=zt*C,Me=_c(ee,o),Pe=oe*F+re*l+2*Nc(we),Te=Ne+we,ye=Ic(Se,Me),Ce=Ee+Pe+Nc(Te),Oe=xt+St,Ae=Ic(En,zn),ze=Nc(Oe),Be=wn+Bn+ze,Ye=Oe*y,Fe=_c(Ae,r),Ve=Be*Y+ze*f+2*Nc(Ye),ke=2*Te+Ye,Le=Ic(bc(ye),Fe),De=2*Ce+Ve+Nc(ke),Xe=2*ft+gt,qe=Ic(bc(en),gn),Qe=Nc(Xe),$e=2*rn+vn+Nc(Xe),Ge=2*Bt+At,He=Ic(bc(ie),te),Re=Nc(Ge),Ue=2*se+ne+Nc(Ge),Ze=pt+bt,je=Ic(hn,Nn),We=an+Sn+Nc(Ze),Je=Ze+Nt,Ke=Ic(je,On),tr=Nc(Je),nr=We+An+tr,er=Xe*T,rr=_c(qe,e),or=$e*B+Qe*u+2*Nc(er),ir=Ge*C,sr=_c(He,o),cr=Ue*F+Re*l+2*Nc(ir),ur=er+ir,fr=Ic(rr,sr),lr=or+cr+Nc(ur),hr=Je*y,ar=_c(Ke,r),pr=nr*Y+tr*f+2*Nc(hr),dr=ur+hr,gr=Ic(fr,ar),vr=lr+pr+Nc(dr),mr=et+ut,br=Ic(qt,tn),xr=Nc(mr),_r=Qt+nn+xr,Ir=Tt+Ct,Nr=Ic(Gn,Zn),Sr=Nc(Ir),Er=Hn+jn+Sr,wr=st+at,Mr=Ic(jt,fn),Pr=Wt+ln+Nc(wr),Tr=dt+It,yr=Ic(pn,yn),Cr=dn+Cn+Nc(Tr),Or=wr+Tr,Ar=Ic(Mr,yr),zr=Nc(Or),Br=Pr+Cr+zr,Yr=mr*T,Fr=_c(br,e),Vr=_r*B+xr*u+2*Nc(Yr),kr=Ir*C,Lr=_c(Nr,o),Dr=Er*F+Sr*l+2*Nc(kr),Xr=2*(Yr+kr),qr=bc(Ic(Fr,Lr)),Qr=2*(Vr+Dr)+Nc(Xr),$r=Or*y,Gr=_c(Ar,r),Hr=Br*Y+zr*f+2*Nc($r),Rr=X*O,Ur=_c(d,i),Zr=N*V+U*h+2*Nc(Rr),jr=$*A,Wr=_c(b,s),Jr=w*k+J*a+2*Nc(jr),Kr=Rr+jr,to=Ic(Ur,Wr),no=Zr+Jr+Nc(Kr),eo=Xr+$r,ro=Ic(qr,Gr),oo=Qr+Hr+Nc(eo),io=eo+Kr,so=Ic(ro,to),co=oo+no+Nc(io),uo=2*nt+ct,fo=Ic(bc(Dt),Jt),lo=Nc(uo),ho=2*Xt+Kt+lo,ao=2*Pt+yt,po=Ic(bc(Qn),Rn),go=Nc(ao),vo=2*$n+Un+go,mo=it+ht,bo=Ic(Ut,cn),xo=Zt+un+Nc(mo),_o=mo+mt,Io=Ic(bo,_n),No=Nc(_o),So=xo+In+No,Eo=uo*T,wo=_c(fo,e),Mo=ho*B+lo*u+2*Nc(Eo),Po=ao*C,To=_c(po,o),yo=vo*F+go*l+2*Nc(Po),Co=_o*y,Oo=_c(Io,r),Ao=So*Y+No*f+2*Nc(Co),zo=Eo+Po,Bo=Ic(wo,To),Yo=Mo+yo+Nc(zo),Fo=zo+Co,Vo=Ic(Bo,Oo),ko=Yo+Ao+Nc(Fo),Lo=D*O,Do=_c(g,i),Xo=S*V+R*h+2*Nc(Lo),qo=Q*A,Qo=_c(x,s),$o=M*k+W*a+2*Nc(qo),Go=Lo+qo,Ho=Ic(Do,Qo),Ro=Xo+$o+Nc(Go),Uo=Fo+Go,Zo=Ic(Vo,Ho),jo=ko+Ro+Nc(Uo),Wo=tt*T,Jo=_c(Vt,e),Ko=Lt*B+kt*u+2*Nc(Wo),ti=Mt*C,ni=_c(Dn,o),ei=qn*F+Xn*l+2*Nc(ti),ri=ot+lt,oi=Ic(Ht,on),ii=Nc(ri),si=Rt+sn+ii,ci=ri*y,ui=_c(oi,r),fi=si*Y+ii*f+2*Nc(ci),li=2*(Wo+ti),hi=bc(Ic(Jo,ni)),ai=2*(Ko+ei)+Nc(li),pi=li+ci,di=Ic(hi,ui),gi=ai+fi+Nc(pi),vi=L*O,mi=_c(v,i),bi=E*V+H*h+2*Nc(vi),xi=q*A,_i=_c(_,s),Ii=P*k+j*a+2*Nc(xi),Ni=vi+xi,Si=Ic(mi,_i),Ei=bi+Ii+Nc(Ni),wi=pi+Ni,Mi=Ic(di,Si),Pi=gi+Ei+Nc(wi),Ti=K*T,yi=_c(Yt,e),Ci=Ft*u+2*Nc(Ti),Oi=rt*y,Ai=_c($t,r),zi=Gt*f+2*Nc(Oi),Bi=wt*C,Yi=_c(kn,o),Fi=Ln*l+2*Nc(Bi),Vi=m*O,ki=xc(m,i),Li=G*h+Nc(Vi),Di=I*A,Xi=xc(I,s),qi=Z*a+Nc(Di),Qi=Ti+Oi,$i=Ic(yi,Ai),Gi=Ci+zi+Nc(Qi),Hi=Qi+Bi,Ri=Ic($i,Yi),Ui=Gi+Fi+Nc(Hi),Zi=Vi+Di,ji=Ic(ki,Xi),Wi=Li+qi+Nc(Zi),Ji=Hi+Zi,Ki=Ic(Ri,ji),ts=Ui+Wi+Nc(Ji),ns=Ji+z,es=Ic(Ki,c),rs=ts+p+Nc(ns);return{coeffs:[_e,Le,gr,so,Zo,Mi,es],errBound:[Sc*Ie,Sc*De,Sc*vr,Sc*co,Sc*jo,Sc*Pi,Sc*rs]}}],[function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:s,vₓᵧ:c,vᵧᵧ:u,vₓ:f,vᵧ:l,v:h},errorBound:{vₓₓₓ_:a,vₓₓᵧ_:p,vₓᵧᵧ_:d,vᵧᵧᵧ_:g,vₓₓ_:v,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:_,v_:I}}=Ls(t),[[N,[,S]],[E,[,w]]]=ss(n),M=e[1],P=r[1],T=o[1],y=i[1],C=s[1],O=c[1],A=u[1],z=f[1],B=l[1],Y=h[1],F=N[1],V=E[1],k=Gs(S),L=Gs(F),D=Gs(w),X=Gs(V),q=S*S,Q=S*F,$=S*w,G=S*V,H=F*F,R=F*w,U=F*V,Z=w*w,j=w*V,W=V*V,J=Ds(S,S),K=qs(S,N),tt=Gs(Q),nt=Ds(S,w),et=qs(S,E),rt=Gs(G),ot=Qs(N,N),it=2*Gs(H),st=qs(w,N),ct=Gs(R),ut=Qs(N,E),ft=2*Gs(U),lt=Ds(w,w),ht=qs(w,E),at=Gs(j),pt=Qs(E,E),dt=2*Gs(W),gt=Gs(q),vt=Gs(Q),mt=Gs($),bt=Gs(G),xt=Gs(H),_t=Gs(R),It=Gs(U),Nt=Gs(Z),St=Gs(j),Et=Gs(W),wt=S*M,Mt=qs(S,e),Pt=k*a+Gs(wt),Tt=3*S,yt=Ds(3,S),Ct=Gs(Tt),Ot=Tt*M,At=Qs(yt,e),zt=Ct*a+2*Gs(Ot),Bt=S*P,Yt=qs(S,r),Ft=k*p+Gs(Bt),Vt=w*P,kt=qs(w,r),Lt=D*p+Gs(Vt),Dt=S*T,Xt=qs(S,o),qt=k*d+Gs(Dt),Qt=w*T,$t=qs(w,o),Gt=D*d+Gs(Qt),Ht=w*y,Rt=qs(w,i),Ut=D*g+Gs(Ht),Zt=3*w,jt=Ds(3,w),Wt=Gs(Zt),Jt=Zt*y,Kt=Qs(jt,i),tn=Wt*g+2*Gs(Jt),nn=F*M,en=Qs(N,e),rn=L*a+2*Gs(nn),on=F*T,sn=Qs(N,o),cn=L*d+2*Gs(on),un=V*P,fn=Qs(E,r),ln=X*p+2*Gs(un),hn=V*y,an=Qs(E,i),pn=X*g+2*Gs(hn),dn=nn+un,gn=$s(en,fn),vn=Gs(dn),mn=rn+ln+vn,bn=on+hn,xn=$s(sn,an),_n=Gs(bn),In=cn+pn+_n,Nn=H*dn,Sn=Qs(ot,gn),En=it*vn+xt*mn+2*Gs(Nn),wn=W*bn,Mn=Qs(pt,xn),Pn=dt*_n+Et*In+2*Gs(wn),Tn=Nn+wn,yn=$s(Sn,Mn),Cn=En+Pn+Gs(Tn),On=Ot+Vt,An=$s(At,kt),zn=zt+Lt+Gs(On),Bn=2*(Bt+Qt),Yn=Xs($s(Yt,$t)),Fn=2*(Ft+Gt)+Gs(Bn),Vn=Dt+Jt,kn=$s(Xt,Kt),Ln=qt+tn+Gs(Vn),Dn=On+C,Xn=$s(An,s),qn=Gs(Dn),Qn=zn+v+qn,$n=Bn+O,Gn=$s(Yn,c),Hn=Gs($n),Rn=Fn+m+Hn,Un=Vn+A,Zn=$s(kn,u),jn=Gs(Un),Wn=Ln+b+jn,Jn=H*Dn,Kn=Qs(ot,Xn),te=it*qn+xt*Qn+2*Gs(Jn),ne=U*$n,ee=Qs(ut,Gn),re=ft*Hn+It*Rn+2*Gs(ne),oe=W*Un,ie=Qs(pt,Zn),se=dt*jn+Et*Wn+2*Gs(oe),ce=Jn+ne,ue=$s(Kn,ee),fe=te+re+Gs(ce),le=ce+oe,he=$s(ue,ie),ae=fe+se+Gs(le),pe=2*(Vt+C),de=Xs($s(kt,s)),ge=2*(Lt+v)+Gs(pe),ve=2*(Dt+A),me=Xs($s(Xt,u)),be=2*(qt+b)+Gs(ve),xe=Ot+pe,_e=$s(At,de),Ie=Gs(xe),Ne=zt+ge+Ie,Se=Jt+ve,Ee=$s(Kt,me),we=Gs(Se),Me=tn+be+we,Pe=Bt+O,Te=$s(Yt,c),ye=Gs(Pe),Ce=Ft+m+ye,Oe=Qt+O,Ae=$s($t,c),ze=Gs(Oe),Be=Gt+m+ze,Ye=Q*xe,Fe=Qs(K,_e),Ve=tt*Ie+vt*Ne+2*Gs(Ye),ke=j*Se,Le=Qs(ht,Ee),De=at*we+St*Me+2*Gs(ke),Xe=G*Pe,qe=Qs(et,Te),Qe=rt*ye+bt*Ce+2*Gs(Xe),$e=R*Oe,Ge=Qs(st,Ae),He=ct*ze+_t*Be+2*Gs($e),Re=F*z,Ue=Qs(N,f),Ze=L*x+2*Gs(Re),je=V*B,We=Qs(E,l),Je=X*_+2*Gs(je),Ke=Ye+ke,tr=$s(Fe,Le),nr=Ve+De+Gs(Ke),er=Xe+$e,rr=$s(qe,Ge),or=Qe+He+Gs(er),ir=Ke+er,sr=$s(tr,rr),cr=nr+or+Gs(ir),ur=Re+je,fr=$s(Ue,We),lr=Ze+Je+Gs(ur),hr=ir+ur,ar=$s(sr,fr),pr=cr+lr+Gs(hr),dr=wt+Vt,gr=$s(Mt,kt),vr=Pt+Lt+Gs(dr),mr=Ht+Dt,br=$s(Rt,Xt),xr=Ut+qt+Gs(mr),_r=dr+C,Ir=$s(gr,s),Nr=vr+v+Gs(_r),Sr=mr+A,Er=$s(br,u),wr=xr+b+Gs(Sr),Mr=q*_r,Pr=Qs(J,Ir),Tr=gt*Nr+2*Gs(Mr),yr=Z*Sr,Cr=Qs(lt,Er),Or=Nt*wr+2*Gs(yr),Ar=$*O,zr=Qs(nt,c),Br=mt*m+2*Gs(Ar),Yr=Mr+yr,Fr=$s(Pr,Cr),Vr=Tr+Or+Gs(Yr),kr=Yr+Ar,Lr=$s(Fr,zr),Dr=Vr+Br+Gs(kr),Xr=S*z,qr=qs(S,f),Qr=k*x+Gs(Xr),$r=w*B,Gr=qs(w,l),Hr=D*_+Gs($r),Rr=Xr+$r,Ur=$s(qr,Gr),Zr=Qr+Hr+Gs(Rr),jr=kr+Rr,Wr=$s(Lr,Ur),Jr=Dr+Zr+Gs(jr),Kr=jr+Y,to=$s(Wr,h),no=Jr+I+Gs(Kr);return{coeffs:[yn,he,ar,to],errBound:[Hs*Cn,Hs*ae,Hs*pr,Hs*no]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:s,vₓᵧ:c,vᵧᵧ:u,vₓ:f,vᵧ:l,v:h},errorBound:{vₓₓₓ_:a,vₓₓᵧ_:p,vₓᵧᵧ_:d,vᵧᵧᵧ_:g,vₓₓ_:v,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:_,v_:I}}=Ls(t),{coeffs:[[N,S,[,E]],[w,M,[,P]]],errorBound:[[T],[y]]}=is(n),C=e[1],O=r[1],A=o[1],z=i[1],B=s[1],Y=c[1],F=u[1],V=f[1],k=l[1],L=h[1],D=lc(C),X=lc(O),q=lc(A),Q=lc(z),$=lc(B),G=lc(F),H=lc(Y),R=lc(V),U=lc(k),Z=S[1],j=N[1],W=M[1],J=w[1],K=lc(E),tt=lc(Z),nt=lc(j),et=lc(P),rt=lc(W),ot=lc(J),it=E*E,st=E*Z,ct=E*j,ut=E*P,ft=E*W,lt=E*J,ht=Z*Z,at=Z*j,pt=Z*P,dt=Z*W,gt=Z*J,vt=j*W,mt=j*j,bt=j*P,xt=j*J,_t=P*P,It=P*W,Nt=P*J,St=W*W,Et=W*J,wt=J*J,Mt=ic(E,E),Pt=cc(E,S),Tt=lc(st),yt=cc(E,N),Ct=K*T+lc(ct),Ot=ic(E,P),At=cc(E,M),zt=lc(ft),Bt=cc(E,w),Yt=K*y+lc(lt),Ft=uc(S,S),Vt=2*lc(ht),kt=uc(S,N),Lt=tt*T+2*lc(at),Dt=cc(P,S),Xt=lc(pt),qt=uc(S,M),Qt=2*lc(dt),$t=uc(S,w),Gt=tt*y+2*lc(gt),Ht=uc(N,M),Rt=T*rt+2*lc(vt),Ut=uc(N,N),Zt=2*(T*nt+lc(mt)),jt=cc(P,N),Wt=et*T+lc(bt),Jt=uc(N,w),Kt=T*ot+nt*y+2*lc(xt),tn=ic(P,P),nn=cc(P,M),en=lc(It),rn=cc(P,w),on=et*y+lc(Nt),sn=uc(M,M),cn=2*lc(St),un=uc(M,w),fn=rt*y+2*lc(Et),ln=uc(w,w),hn=2*(y*ot+lc(wt)),an=lc(it),pn=lc(st),dn=lc(ut),gn=lc(ft),vn=lc(at),mn=lc(mt),bn=lc(xt),xn=lc(pt),_n=lc(_t),In=lc(It),Nn=lc(Et),Sn=lc(wt),En=uc(N,e),wn=j*C,Mn=T*D+nt*a+2*lc(wn),Pn=uc(N,o),Tn=j*A,yn=T*q+nt*d+2*lc(Tn),Cn=uc(w,r),On=J*O,An=y*X+ot*p+2*lc(On),zn=uc(w,i),Bn=J*z,Yn=y*Q+ot*g+2*lc(Bn),Fn=wn+On,Vn=fc(En,Cn),kn=lc(Fn),Ln=Mn+An+kn,Dn=Tn+Bn,Xn=fc(Pn,zn),qn=lc(Dn),Qn=yn+Yn+qn,$n=mt*Fn,Gn=uc(Ut,Vn),Hn=Zt*kn+mn*Ln+2*lc($n),Rn=wt*Dn,Un=uc(ln,Xn),Zn=hn*qn+Sn*Qn+2*lc(Rn),jn=$n+Rn,Wn=fc(Gn,Un),Jn=Hn+Zn+lc(jn),Kn=ct+ht,te=fc(yt,Ft),ne=lc(Kn),ee=Ct+Vt+ne,re=Nt+St,oe=fc(rn,sn),ie=lc(re),se=on+cn+ie,ce=2*ct+ht,ue=lc(ce),fe=fc(sc(yt),Ft),le=2*Ct+Vt+ue,he=2*Nt+St,ae=fc(sc(rn),sn),pe=lc(he),de=2*on+cn+pe,ge=2*dt+bt,ve=fc(sc(qt),jt),me=lc(ge),be=2*Qt+Wt+me,xe=2*dt+lt,_e=fc(sc(qt),Bt),Ie=lc(xe),Ne=2*Qt+Yt+Ie,Se=2*bt+dt,Ee=fc(sc(jt),qt),we=2*Wt+Qt+lc(Se),Me=6*ct+ht,Pe=6*ct,Te=cc(6,yt),ye=6*Ct+lc(Pe),Ce=fc(Te,Ft),Oe=ye+Vt+lc(Pe+ht),Ae=6*Nt+St,ze=6*Nt,Be=cc(6,rn),Ye=6*on+lc(ze),Fe=fc(Be,sn),Ve=Ye+cn+lc(ze+St),ke=gt+vt,Le=fc($t,Ht),De=lc(ke),Xe=Gt+Rt+De,qe=lt+bt,Qe=fc(Bt,jt),$e=Yt+Wt+lc(qe),Ge=2*pt+ft,He=fc(sc(Dt),At),Re=2*Xt+zt+lc(Ge),Ue=2*ft+pt,Ze=fc(sc(At),Dt),je=2*zt+Xt+lc(Ue),We=lt+dt,Je=fc(Bt,qt),Ke=Yt+Qt+lc(We),tr=We+bt,nr=fc(Je,jt),er=lc(tr),rr=Ke+Wt+er,or=3*mt,ir=cc(3,Ut),sr=3*Zt+lc(or),cr=lc(or),ur=3*wt,fr=cc(3,ln),lr=3*hn+lc(ur),hr=lc(ur),ar=or*C,pr=uc(ir,e),dr=sr*D+cr*a+2*lc(ar),gr=mt*O,vr=uc(Ut,r),mr=Zt*X+mn*p+2*lc(gr),br=2*xt*O,xr=sc(uc(Jt,r)),_r=2*(Kt*X+bn*p+lc(br)),Ir=2*xt*A,Nr=sc(uc(Jt,o)),Sr=2*(Kt*q+bn*d+lc(Ir)),Er=wt*A,wr=uc(ln,o),Mr=hn*q+Sn*d+2*lc(Er),Pr=ur*z,Tr=uc(fr,i),yr=lr*Q+hr*g+2*lc(Pr),Cr=ar+br,Or=fc(pr,xr),Ar=dr+_r+lc(Cr),zr=gr+Ir,Br=fc(vr,Nr),Yr=mr+Sr+lc(zr),Fr=Cr+Er,Vr=fc(Or,wr),kr=Ar+Mr+lc(Fr),Lr=zr+Pr,Dr=fc(Br,Tr),Xr=Yr+yr+lc(Lr),qr=Z*Fr,Qr=uc(S,Vr),$r=tt*kr+lc(qr),Gr=W*Lr,Hr=uc(M,Dr),Rr=rt*Xr+lc(Gr),Ur=qr+Gr,Zr=fc(Qr,Hr),jr=$r+Rr+lc(Ur),Wr=J*ce,Jr=uc(w,fe),Kr=y*ue+ot*le+2*lc(Wr),to=J*xe,no=uc(w,_e),eo=y*Ie+ot*Ne+2*lc(to),ro=j*ge,oo=uc(N,ve),io=T*me+nt*be+2*lc(ro),so=j*he,co=uc(N,ae),uo=T*pe+nt*de+2*lc(so),fo=3*j,lo=cc(3,N),ho=lc(fo),ao=3*T+ho,po=fo*Kn,go=uc(lo,te),vo=lc(po),mo=ao*ne+ho*ee+vo,bo=3*J,xo=cc(3,w),_o=lc(bo),Io=3*y+_o,No=bo*re,So=uc(xo,oe),Eo=lc(No),wo=Io*ie+_o*se+Eo,Mo=Wr+ro,Po=fc(Jr,oo),To=lc(Mo),yo=Kr+io+To,Co=to+so,Oo=fc(no,co),Ao=lc(Co),zo=eo+uo+Ao,Bo=po*C,Yo=uc(go,e),Fo=mo*D+vo*a+2*lc(Bo),Vo=No*z,ko=uc(So,i),Lo=wo*Q+Eo*g+2*lc(Vo),Do=Mo*O,Xo=uc(Po,r),qo=yo*X+To*p+2*lc(Do),Qo=Co*A,$o=uc(Oo,o),Go=zo*q+Ao*d+2*lc(Qo),Ho=Bo+Vo,Ro=fc(Yo,ko),Uo=Fo+Lo+lc(Ho),Zo=Do+Qo,jo=fc(Xo,$o),Wo=qo+Go+lc(Zo),Jo=mt*B,Ko=uc(Ut,s),ti=Zt*$+mn*v+2*lc(Jo),ni=wt*F,ei=uc(ln,u),ri=hn*G+Sn*b+2*lc(ni),oi=xt*Y,ii=uc(Jt,c),si=Kt*H+bn*m+2*lc(oi),ci=Jo+ni,ui=fc(Ko,ei),fi=ti+ri+lc(ci),li=Ho+Zo,hi=fc(Ro,jo),ai=Uo+Wo+lc(li),pi=ci+oi,di=fc(ui,ii),gi=fi+si+lc(pi),vi=li+pi,mi=fc(hi,di),bi=ai+gi+lc(vi),xi=Z*Me,_i=uc(S,Ce),Ii=tt*Oe+2*lc(xi),Ni=2*Ii,Si=W*Ae,Ei=uc(M,Fe),wi=rt*Ve+2*lc(Si),Mi=2*wi,Pi=2*E*ke,Ti=cc(2*E,Le),yi=2*K*Xe+lc(Pi),Ci=2*W*qe,Oi=uc(sc(M),Qe),Ai=2*rt*$e+2*lc(Ci),zi=Z*Se,Bi=uc(S,Ee),Yi=tt*we+2*lc(zi),Fi=Z*he,Vi=uc(S,ae),ki=tt*de+2*lc(Fi),Li=Pi+zi,Di=fc(Ti,Bi),Xi=yi+Yi+lc(Li),qi=yi+Yi+Xi,Qi=Ci+Fi,$i=fc(Oi,Vi),Gi=Ai+ki+lc(Qi),Hi=Ai+ki+Gi,Ri=Et*F,Ui=uc(un,u),Zi=fn*G+Nn*b+2*lc(Ri),ji=at*B,Wi=uc(kt,s),Ji=Lt*$+vn*v+2*lc(ji),Ki=ke*Y,ts=uc(Le,c),ns=Xe*H+De*m+2*lc(Ki),es=Ri+ji,rs=fc(Ui,Wi),os=Zi+Ji+lc(es),ss=xi*C,cs=uc(_i,e),us=Ni*D+Ii*a+2*lc(ss),fs=Li*O,ls=uc(Di,r),hs=qi*X+Xi*p+2*lc(fs),as=Si*z,ps=uc(Ei,i),ds=Mi*Q+wi*g+2*lc(as),gs=Qi*A,vs=uc($i,o),ms=Hi*q+Gi*d+2*lc(gs),bs=ss+as,xs=fc(cs,ps),_s=us+ds+lc(bs),Is=fs+gs,Ns=fc(ls,vs),Ss=hs+ms+lc(Is),Es=bs+Is,ws=fc(xs,Ns),Ms=_s+Ss+lc(Es),Ps=2*es+Ki,Ts=fc(sc(rs),ts),ys=2*os+ns+lc(Ps),Cs=Es+Ps,Os=fc(ws,Ts),As=Ms+ys+lc(Cs),zs=3*E,Bs=lc(zs),Ys=ic(3,E),Fs=zs*Kn,Vs=uc(Ys,te),ks=lc(Fs),Ds=Bs*ee+2*lc(Fs),Xs=3*P,qs=lc(Xs),Qs=ic(3,P),$s=Xs*re,Gs=uc(Qs,oe),Hs=lc($s),Rs=qs*se+2*lc($s),Us=E*xe,Zs=cc(E,_e),js=K*Ne+lc(Us),Ws=E*he,Js=cc(E,ae),Ks=K*de+lc(Ws),tc=P*ce,nc=cc(P,fe),ec=et*le+lc(tc),rc=P*ge,oc=cc(P,ve),ac=et*be+lc(rc),pc=Us+tc,dc=fc(Zs,nc),gc=lc(pc),vc=js+ec+gc,mc=Ws+rc,bc=fc(Js,oc),xc=lc(mc),_c=Ks+ac+xc,Ic=Fs*C,Nc=uc(Vs,e),Sc=Ds*D+ks*a+2*lc(Ic),Ec=$s*z,wc=uc(Gs,i),Mc=Rs*Q+Hs*g+2*lc(Ec),Pc=pc*O,Tc=uc(dc,r),yc=vc*X+gc*p+2*lc(Pc),Cc=mc*A,Oc=uc(bc,o),Ac=_c*q+xc*d+2*lc(Cc),zc=ce*B,Bc=uc(fe,s),Yc=le*$+ue*v+2*lc(zc),Fc=he*F,Vc=uc(ae,u),kc=de*G+pe*b+2*lc(Fc),Lc=tr*Y,Dc=uc(nr,c),Xc=rr*H+er*m+2*lc(Lc),qc=j*V,Qc=uc(N,f),$c=T*R+nt*x+2*lc(qc),Gc=J*k,Hc=uc(w,l),Rc=y*U+ot*_+2*lc(Gc),Uc=Ic+Ec,Zc=fc(Nc,wc),jc=Sc+Mc+lc(Uc),Wc=Pc+Cc,Jc=fc(Tc,Oc),Kc=yc+Ac+lc(Wc),tu=zc+Fc,nu=fc(Bc,Vc),eu=Yc+kc+lc(tu),ru=Uc+Wc,ou=fc(Zc,Jc),iu=jc+Kc+lc(ru),su=tu+Lc,cu=fc(nu,Dc),uu=eu+Xc+lc(su),fu=qc+Gc,lu=fc(Qc,Hc),hu=$c+Rc+lc(fu),au=ru+su,pu=fc(ou,cu),du=iu+uu+lc(au),gu=au+fu,vu=fc(pu,lu),mu=du+hu+lc(gu),bu=zs*st,xu=uc(Ys,Pt),_u=lc(bu),Iu=Bs*Tt+2*_u,Nu=Xs*It,Su=uc(Qs,nn),Eu=lc(Nu),wu=qs*en+2*Eu,Mu=E*Ge,Pu=cc(E,He),Tu=lc(Mu),yu=K*Re+lc(Mu),Cu=P*Ue,Ou=cc(P,Ze),Au=lc(Cu),zu=et*je+lc(Cu),Bu=st*B,Yu=uc(Pt,s),Fu=Tt*$+pn*v+2*lc(Bu),Vu=It*F,ku=uc(nn,u),Lu=en*G+In*b+2*lc(Vu),Du=ft*Y,Xu=uc(At,c),qu=zt*H+gn*m+2*lc(Du),Qu=pt*Y,$u=uc(Dt,c),Gu=Xt*H+xn*m+2*lc(Qu),Hu=2*(Bu+Vu),Ru=sc(fc(Yu,ku)),Uu=2*(Fu+Lu)+lc(Hu),Zu=Du+Qu,ju=fc(Xu,$u),Wu=qu+Gu+lc(Zu),Ju=Z*V,Ku=uc(S,f),tf=tt*x+2*lc(Ju),nf=W*k,ef=uc(M,l),rf=rt*_+2*lc(nf),of=bu*C,sf=uc(xu,e),cf=Iu*D+_u*a+2*lc(of),uf=Nu*z,ff=uc(Su,i),lf=wu*Q+Eu*g+2*lc(uf),hf=Mu*O,af=uc(Pu,r),pf=yu*X+Tu*p+2*lc(hf),df=Cu*A,gf=uc(Ou,o),vf=zu*q+Au*d+2*lc(df),mf=of+uf,bf=fc(sf,ff),xf=cf+lf+lc(mf),_f=hf+df,If=fc(af,gf),Nf=pf+vf+lc(_f),Sf=mf+_f,Ef=fc(bf,If),wf=xf+Nf+lc(Sf),Mf=Hu+Zu,Pf=fc(Ru,ju),Tf=Uu+Wu+lc(Mf),yf=Ju+nf,Cf=fc(Ku,ef),Of=tf+rf+lc(yf),Af=Sf+Mf,zf=fc(Ef,Pf),Bf=wf+Tf+lc(Af),Yf=Af+yf,Ff=fc(zf,Cf),Vf=Bf+Of+lc(Yf),kf=E*C,Lf=cc(E,e),Df=K*a+lc(kf),Xf=E*A,qf=cc(E,o),Qf=K*d+lc(Xf),$f=P*O,Gf=cc(P,r),Hf=et*p+lc($f),Rf=P*z,Uf=cc(P,i),Zf=et*g+lc(Rf),jf=kf+$f,Wf=fc(Lf,Gf),Jf=Df+Hf+lc(jf),Kf=Xf+Rf,tl=fc(qf,Uf),nl=Qf+Zf+lc(Kf),el=jf+B,rl=fc(Wf,s),ol=Jf+v+lc(el),il=Kf+F,sl=fc(tl,u),cl=nl+b+lc(il),ul=it*el,fl=uc(Mt,rl),ll=an*ol+2*lc(ul),hl=_t*il,al=uc(tn,sl),pl=_n*cl+2*lc(hl),dl=ut*Y,gl=uc(Ot,c),vl=dn*m+2*lc(dl),ml=E*V,bl=cc(E,f),xl=K*x+lc(ml),_l=P*k,Il=cc(P,l),Nl=et*_+lc(_l),Sl=ul+hl,El=fc(fl,al),wl=ll+pl+lc(Sl),Ml=Sl+dl,Pl=fc(El,gl),Tl=wl+vl+lc(Ml),yl=ml+_l,Cl=fc(bl,Il),Ol=xl+Nl+lc(yl),Al=Ml+yl,zl=fc(Pl,Cl),Bl=Tl+Ol+lc(Al),Yl=Al+L,Fl=fc(zl,h),Vl=Bl+I+lc(Yl);return{coeffs:[Wn,Zr,mi,Os,vu,Ff,Fl],errBound:[hc*Jn,hc*jr,hc*bi,hc*As,hc*mu,hc*Vf,hc*Vl]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:s,vₓᵧ:c,vᵧᵧ:u,vₓ:f,vᵧ:l,v:h},errorBound:{vₓₓₓ_:a,vₓₓᵧ_:p,vₓᵧᵧ_:d,vᵧᵧᵧ_:g,vₓₓ_:v,vₓᵧ_:m,vᵧᵧ_:b,vₓ_:x,vᵧ_:_,v_:I}}=Ls(t),{coeffs:[[N,S,E,[,w]],[M,P,T,[,y]]],errorBound:[[C,O,A],[z,B,Y]]}=os(n),F=e[1],V=r[1],k=o[1],L=i[1],D=s[1],X=c[1],q=u[1],Q=f[1],$=l[1],G=h[1],H=yc(F),R=yc(V),U=yc(k),Z=yc(L),j=yc(D),W=yc(X),J=yc(q),K=yc(Q),tt=yc($),nt=(yc(G),E[1]),et=S[1],rt=N[1],ot=T[1],it=P[1],st=M[1],ct=yc(w),ut=yc(nt),ft=yc(et),lt=yc(rt),ht=yc(y),at=yc(ot),pt=yc(it),dt=yc(st),gt=w*w,vt=w*nt,mt=w*et,bt=w*rt,xt=w*y,_t=w*ot,It=w*it,Nt=w*st,St=nt*nt,Et=nt*et,wt=nt*rt,Mt=nt*y,Pt=nt*ot,Tt=nt*it,yt=nt*st,Ct=et*ot,Ot=et*et,At=et*rt,zt=et*y,Bt=et*it,Yt=et*st,Ft=rt*rt,Vt=rt*y,kt=rt*ot,Lt=rt*it,Dt=rt*st,Xt=y*y,qt=y*ot,Qt=y*it,$t=y*st,Gt=ot*ot,Ht=ot*it,Rt=st*st,Ut=it*it,Zt=it*st,jt=ot*st,Wt=Ec(w,w),Jt=Mc(w,E),Kt=ct*A+yc(vt),tn=Mc(w,S),nn=ct*O+yc(mt),en=Mc(w,N),rn=ct*C+yc(bt),on=Ec(w,y),sn=Mc(w,T),cn=ct*Y+yc(_t),un=Mc(w,P),fn=ct*B+yc(It),ln=Mc(w,M),hn=ct*z+yc(Nt),an=Pc(E,E),pn=yc(St),dn=2*(A*ut+pn),gn=Pc(E,S),vn=A*ft+ut*O+2*yc(Et),mn=Pc(E,N),bn=A*lt+ut*C+2*yc(wt),xn=Mc(y,E),_n=ht*A+yc(Mt),In=Pc(E,T),Nn=A*at+ut*Y+2*yc(Pt),Sn=Pc(E,P),En=A*pt+ut*B+2*yc(Tt),wn=Pc(E,M),Mn=A*dt+ut*z+2*yc(yt),Pn=Pc(S,T),Tn=O*at+ft*Y+2*yc(Ct),yn=Pc(S,S),Cn=yc(Ot),On=2*(O*ft+Cn),An=Pc(S,N),zn=O*lt+ft*C+2*yc(At),Bn=Mc(y,S),Yn=ht*O+yc(zt),Fn=Pc(S,P),Vn=O*pt+ft*B+2*yc(Bt),kn=Pc(S,M),Ln=O*dt+ft*z+2*yc(Yt),Dn=Pc(N,N),Xn=2*(C*lt+yc(Ft)),qn=Mc(y,N),Qn=ht*C+yc(Vt),$n=Pc(N,T),Gn=C*at+lt*Y+2*yc(kt),Hn=Pc(N,P),Rn=yc(Lt),Un=C*pt+lt*B+2*Rn,Zn=Pc(N,M),jn=C*dt+lt*z+2*yc(Dt),Wn=Ec(y,y),Jn=Mc(y,T),Kn=ht*Y+yc(qt),te=Mc(y,P),ne=ht*B+yc(Qt),ee=Mc(y,M),re=ht*z+yc($t),oe=Pc(T,T),ie=yc(Gt),se=2*(Y*at+ie),ce=Pc(T,P),ue=Y*pt+at*B+2*yc(Ht),fe=Pc(M,M),le=2*(z*dt+yc(Rt)),he=Pc(P,P),ae=yc(Ut),pe=2*(B*pt+ae),de=Pc(P,M),ge=B*dt+pt*z+2*yc(Zt),ve=Pc(T,M),me=yc(jt),be=Y*dt+at*z+2*me,xe=yc(gt),_e=yc(vt),Ie=yc(At),Ne=yc(Ft),Se=yc(Dt),Ee=yc(xt),we=yc(Xt),Me=yc(qt),Pe=yc(Zt),Te=yc(Rt),ye=rt*Ft,Ce=Pc(N,Dn),Oe=lt*Ne,Ae=C*Ne+lt*Xn+2*Oe,ze=rt*Rt,Be=Pc(N,fe),Ye=lt*Te,Fe=C*Te+lt*le+2*Ye,Ve=st*Ft,ke=Pc(M,Dn),Le=dt*Ne,De=z*Ne+dt*Xn+2*Le,Xe=st*Rt,qe=Pc(M,fe),Qe=dt*Te,$e=z*Te+dt*le+2*Qe,Ge=ye*F,He=Pc(Ce,e),Re=Ae*H+Oe*a+2*yc(Ge),Ue=ze*k,Ze=Pc(Be,o),je=Fe*U+Ye*d+2*yc(Ue),We=Ve*V,Je=Pc(ke,r),Ke=De*R+Le*p+2*yc(We),tr=Xe*L,nr=Pc(qe,i),er=$e*Z+Qe*g+2*yc(tr),rr=Ge+Ue,or=Tc(He,Ze),ir=Re+je+yc(rr),sr=We+tr,cr=Tc(Je,nr),ur=Ke+er+yc(sr),fr=rr+sr,lr=Tc(or,cr),hr=ir+ur+yc(fr),ar=2*Yt+Lt,pr=yc(ar),dr=Tc(wc(kn),Hn),gr=2*Ln+Un+pr,vr=2*Lt+Yt,mr=yc(vr),br=Tc(wc(Hn),kn),xr=2*Un+Ln+yc(vr),_r=rt*ar,Ir=yc(_r),Nr=Pc(N,dr),Sr=C*pr+lt*gr+2*Ir,Er=st*vr,wr=yc(Er),Mr=Pc(M,br),Pr=z*mr+dt*xr+2*wr,Tr=et*Ft,yr=yc(Tr),Cr=Pc(S,Dn),Or=O*Ne+ft*Xn+2*yr,Ar=it*Rt,zr=yc(Ar),Br=Pc(P,fe),Yr=B*Te+pt*le+2*zr,Fr=F*Tr,Vr=Pc(e,Cr),kr=Or*H+H*Or+2*yc(Fr),Lr=L*Ar,Dr=Pc(i,Br),Xr=Yr*Z+Z*Yr+2*yc(Lr),qr=V*_r,Qr=Pc(r,Nr),$r=Sr*R+R*Sr+2*yc(qr),Gr=k*Er,Hr=Pc(o,Mr),Rr=Pr*U+U*Pr+2*yc(Gr),Ur=qr+Gr,Zr=Tc(Qr,Hr),jr=$r+Rr+yc(Ur),Wr=3*(Fr+Lr),Jr=Mc(3,Tc(Vr,Dr)),Kr=3*(kr+Xr)+2*yc(Wr),to=Ur+Wr,no=Tc(Zr,Jr),eo=jr+Kr+yc(to),ro=nt*Dt,oo=Pc(E,Zn),io=A*Se+ut*jn+2*yc(ro),so=ot*Ft,co=Pc(T,Dn),uo=Y*Ne+at*Xn+2*yc(so),fo=et*Zt,lo=Pc(S,de),ho=O*Pe+ft*ge+2*yc(fo),ao=nt*Rt,po=Pc(E,fe),go=A*Te+ut*le+2*yc(ao),vo=et*Lt,mo=Pc(S,Hn),bo=O*Rn+ft*Un+2*yc(vo),xo=st*Ot,_o=Pc(M,yn),Io=z*Cn+dt*On+2*yc(xo),No=rt*jt,So=Pc(N,ve),Eo=C*me+lt*be+2*yc(No),wo=it*Lt,Mo=Pc(P,Hn),Po=B*Rn+pt*Un+2*yc(wo),To=ro+vo,yo=Tc(oo,mo),Co=io+bo+yc(To),Oo=so+xo,Ao=Tc(co,_o),zo=uo+Io+yc(Oo),Bo=fo+No,Yo=Tc(lo,So),Fo=ho+Eo+yc(Bo),Vo=ao+wo,ko=Tc(po,Mo),Lo=go+Po+yc(Vo),Do=wt+Ot,Xo=Tc(mn,yn),qo=yc(Do),Qo=bn+On+qo,$o=jt+Ut,Go=yc($o),Ho=Tc(ve,he),Ro=be+pe+Go,Uo=2*To+Oo,Zo=Tc(wc(yo),Ao),jo=yc(Uo),Wo=2*Co+zo+jo,Jo=2*Bo+Vo,Ko=Tc(wc(Yo),ko),ti=yc(Jo),ni=2*Fo+Lo+ti,ei=V*Uo,ri=Pc(r,Zo),oi=p*jo+R*Wo+2*yc(ei),ii=k*Jo,si=Pc(o,Ko),ci=d*ti+U*ni+2*yc(ii),ui=rt*Do,fi=Pc(N,Xo),li=yc(ui),hi=C*qo+lt*Qo+2*li,ai=st*$o,pi=Pc(M,Ho),di=yc(ai),gi=z*Go+dt*Ro+2*di,vi=F*ui,mi=Pc(e,fi),bi=a*li+H*hi+2*yc(vi),xi=L*ai,_i=Pc(i,pi),Ii=g*di+Z*gi+2*yc(xi),Ni=ei+ii,Si=Tc(ri,si),Ei=oi+ci+yc(Ni),wi=3*(vi+xi),Mi=Mc(3,Tc(mi,_i)),Pi=3*(bi+Ii)+2*yc(wi),Ti=Ni+wi,yi=Tc(Si,Mi),Ci=Ei+Pi+yc(Ti),Oi=Yt+Lt,Ai=Tc(kn,Hn),zi=yc(Oi),Bi=Ln+Un+zi,Yi=it*Ot,Fi=Pc(P,yn),Vi=B*Cn+pt*On+2*yc(Yi),ki=2*nt*Oi,Li=wc(Pc(E,Ai)),Di=2*(A*zi+ut*Bi+2*yc(ki)),Xi=Yi+ki,qi=Tc(Fi,Li),Qi=Vi+Di+yc(Xi),$i=2*(Nt+Ct),Gi=wc(Tc(ln,Pn)),Hi=2*(hn+Tn)+yc($i),Ri=$i+Vt,Ui=yc(Ri),Zi=Tc(Gi,qn),ji=Hi+Qn+Ui,Wi=rt*Ri,Ji=Pc(N,Zi),Ki=C*Ui+lt*ji+2*yc(Wi),ts=Xi+Wi,ns=Tc(qi,Ji),es=yc(ts),rs=Qi+Ki+es,is=et*Ut,ss=Pc(S,he),cs=O*ae+ft*pe+2*yc(is),us=2*ot*Oi,fs=wc(Pc(T,Ai)),ls=2*(Y*zi+at*Bi+yc(us)),hs=is+us,as=Tc(ss,fs),ps=cs+ls+yc(hs),ds=2*(Tt+Vt),gs=wc(Tc(Sn,qn)),vs=2*(En+Qn)+yc(ds),ms=ds+Nt,bs=Tc(gs,ln),xs=yc(ms),_s=vs+hn+xs,Is=st*ms,Ns=Pc(M,bs),Ss=z*xs+dt*_s+2*yc(Is),Es=hs+Is,ws=Tc(as,Ns),Ms=yc(Es),Ps=ps+Ss+Ms,Ts=et*Ot,ys=Pc(S,yn),Cs=O*Cn+ft*On+2*yc(Ts),Os=2*Et+bt,As=Tc(wc(gn),en),zs=yc(Os),Bs=2*vn+rn+zs,Ys=3*rt,Fs=Mc(3,N),Vs=yc(Ys),ks=3*C+Vs,Ds=Ys*Os,Xs=Pc(Fs,As),qs=ks*zs+Vs*Bs+2*yc(Ds),Qs=Ts+Ds,$s=Tc(ys,Xs),Gs=yc(Qs),Hs=Cs+qs+Gs,Rs=it*Ut,Us=Pc(P,he),Zs=B*ae+pt*pe+2*yc(Rs),js=2*Ht+$t,Ws=Tc(wc(ce),ee),Js=yc(js),Ks=2*ue+re+Js,tc=3*st,nc=Mc(3,M),ec=yc(tc),rc=3*z+ec,oc=tc*js,ic=Pc(nc,Ws),sc=rc*Js+ec*Ks+2*yc(oc),cc=Rs+oc,uc=Tc(Us,ic),fc=yc(cc),lc=Zs+sc+fc,hc=V*ts,ac=Pc(r,ns),pc=p*es+R*rs+2*yc(hc),dc=k*Es,gc=Pc(o,ws),vc=d*Ms+U*Ps+2*yc(dc),mc=hc+dc,bc=Tc(ac,gc),xc=pc+vc+yc(mc),_c=F*Qs,Ic=Pc(e,$s),Nc=a*Gs+H*Hs+2*yc(_c),Sc=L*cc,Oc=Pc(i,uc),Ac=g*fc+Z*lc+2*yc(Sc),zc=_c+Sc,Bc=Tc(Ic,Oc),Yc=Nc+Ac+yc(zc),Fc=D*Ft,Vc=Pc(Dn,s),kc=Xn*j+Ne*v+2*yc(Fc),Lc=q*Rt,Dc=Pc(fe,u),Xc=le*J+Te*b+2*yc(Lc),qc=Fc+Lc,Qc=Tc(Vc,Dc),$c=kc+Xc+yc(qc),Gc=X*Dt,Hc=Pc(Zn,c),Rc=jn*W+Se*m+2*yc(Gc),Uc=mc+zc,Zc=Tc(bc,Bc),jc=xc+Yc+yc(Uc),Wc=qc+Gc,Jc=Tc(Qc,Hc),Kc=$c+Rc+yc(Wc),tu=Uc+Wc,nu=Tc(Zc,Jc),eu=jc+Kc+yc(tu),ru=Bt+kt,ou=Tc(Fn,$n),iu=yc(ru),su=Vn+Gn+iu,cu=yt+Bt,uu=Tc(wn,Fn),fu=yc(cu),lu=Mn+Vn+fu,hu=w*Oi,au=Mc(w,Ai),pu=ct*Bi+yc(hu),du=y*Oi,gu=Mc(y,Ai),vu=ht*Bi+yc(du),mu=nt*ru,bu=Pc(E,ou),xu=A*iu+ut*su+2*yc(mu),_u=ot*cu,Iu=Pc(T,uu),Nu=Y*fu+at*lu+2*yc(_u),Su=2*Vt+Ct,Eu=Tc(wc(qn),Pn),wu=yc(Su),Mu=2*Qn+Tn+wu,Pu=2*Nt+Tt,Tu=Tc(wc(ln),Sn),yu=yc(Pu),Cu=2*hn+En+yu,Ou=st*St,Au=Pc(M,an),zu=z*pn+dt*dn+2*yc(Ou),Bu=rt*Gt,Yu=Pc(N,oe),Fu=C*ie+lt*se+2*yc(Bu),Vu=et*Su,ku=Pc(S,Eu),Lu=O*wu+ft*Mu+2*yc(Vu),Du=it*Pu,Xu=Pc(P,Tu),qu=B*yu+pt*Cu+2*yc(Du),Qu=2*(hu+mu),$u=wc(Tc(au,bu)),Gu=2*(pu+xu)+yc(Qu),Hu=2*(du+_u),Ru=wc(Tc(gu,Iu)),Uu=2*(vu+Nu)+yc(Hu),Zu=2*w*At,ju=wc(Mc(w,An)),Wu=2*ct*zn+yc(Zu),Ju=2*y*Zt,Ku=wc(Mc(y,de)),tf=2*ht*ge+yc(Ju),nf=nt*Do,ef=Pc(E,Xo),rf=A*qo+ut*Qo+2*yc(nf),of=ot*$o,sf=Pc(T,Ho),cf=Y*Go+at*Ro+2*yc(of),uf=D*At,ff=Pc(An,s),lf=zn*j+Ie*v+2*yc(uf),hf=q*Zt,af=Pc(de,u),pf=ge*J+Pe*b+2*yc(hf),df=Qu+Ou,gf=Tc($u,Au),vf=yc(df),mf=Gu+zu+vf,bf=Hu+Bu,xf=Tc(Ru,Yu),_f=yc(bf),If=Uu+Fu+_f,Nf=df+Vu,Sf=Tc(gf,ku),Ef=yc(Nf),wf=mf+Lu+Ef,Mf=bf+Du,Pf=Tc(xf,Xu),Tf=yc(Mf),yf=If+qu+Tf,Cf=Zu+nf,Of=Tc(ju,ef),Af=yc(Cf),zf=Wu+rf+Af,Bf=Ju+of,Yf=Tc(Ku,sf),Ff=yc(Bf),Vf=tf+cf+Ff,kf=2*(uf+hf),Lf=wc(Tc(ff,af)),Df=2*(lf+pf)+yc(kf),Xf=V*Nf,qf=Pc(r,Sf),Qf=p*Ef+R*wf+2*yc(Xf),$f=k*Mf,Gf=Pc(o,Pf),Hf=d*Tf+U*yf+2*yc($f),Rf=F*Cf,Uf=Pc(e,Of),Zf=a*Af+H*zf+2*yc(Rf),jf=L*Bf,Wf=Pc(i,Yf),Jf=g*Ff+Z*Vf+2*yc(jf),Kf=Xf+$f,tl=Tc(qf,Gf),nl=Qf+Hf+yc(Kf),el=3*(Rf+jf),rl=Mc(3,Tc(Uf,Wf)),ol=3*(Zf+Jf)+2*yc(el),il=X*Oi,sl=Pc(c,Ai),cl=m*zi+W*Bi+2*yc(il),ul=Kf+el,fl=Tc(tl,rl),ll=nl+ol+yc(ul),hl=il+kf,al=Tc(sl,Lf),pl=cl+Df+yc(hl),dl=ul+hl,gl=Tc(fl,al),vl=ll+pl+yc(dl),ml=yt+ru,bl=Tc(wn,ou),xl=yc(ml),_l=Mn+su+xl,Il=2*wt+Ot,Nl=Tc(wc(mn),yn),Sl=yc(Il),El=2*bn+On+Sl,wl=2*jt+Ut,Ml=Tc(wc(ve),he),Pl=yc(wl),Tl=2*be+pe+Pl,yl=2*w*ml,Cl=Mc(2*w,bl),Ol=2*ct*_l+yc(yl),Al=2*y*ml,zl=Mc(2*y,bl),Bl=2*ht*_l+yc(Al),Yl=Tt+2*Ct,Fl=Tc(Sn,wc(Pn)),Vl=yc(Yl),kl=En+2*Tn+Vl,Ll=Ct+2*Tt,Dl=Tc(Pn,wc(Sn)),Xl=yc(Ll),ql=Tn+2*En+Xl,Ql=y*Il,$l=Mc(y,Nl),Gl=ht*El+yc(Ql),Hl=w*wl,Rl=Mc(w,Ml),Ul=ct*Tl+yc(Hl),Zl=nt*Yl,jl=Pc(E,Fl),Wl=A*Vl+ut*kl+2*yc(Zl),Jl=ot*Ll,Kl=Pc(T,Dl),th=Y*Xl+at*ql+2*yc(Jl),nh=w*Il,eh=Mc(w,Nl),rh=ct*El+yc(nh),oh=y*wl,ih=Mc(y,Ml),sh=ht*Tl+yc(oh),ch=et*St,uh=Pc(S,an),fh=O*pn+ft*dn+2*yc(ch),lh=it*Gt,hh=Pc(P,oe),ah=B*ie+pt*se+2*yc(lh),ph=yl+Ql,dh=Tc(Cl,$l),gh=Ol+Gl+yc(ph),vh=Al+Hl,mh=Tc(zl,Rl),bh=Bl+Ul+yc(vh),xh=ph+Zl,_h=Tc(dh,jl),Ih=yc(xh),Nh=gh+Wl+Ih,Sh=vh+Jl,Eh=Tc(mh,Kl),wh=yc(Sh),Mh=bh+th+wh,Ph=nh+ch,Th=Tc(eh,uh),yh=yc(Ph),Ch=rh+fh+yh,Oh=oh+lh,Ah=Tc(ih,hh),zh=yc(Oh),Bh=sh+ah+zh,Yh=V*xh,Fh=Pc(r,_h),Vh=p*Ih+R*Nh+2*yc(Yh),kh=k*Sh,Lh=Pc(o,Eh),Dh=d*wh+U*Mh+2*yc(kh),Xh=F*Ph,qh=Pc(e,Th),Qh=a*yh+H*Ch+2*yc(Xh),$h=L*Oh,Gh=Pc(i,Ah),Hh=g*zh+Z*Bh+2*yc($h),Rh=Xh+$h,Uh=yc(Rh),Zh=Tc(qh,Gh),jh=Qh+Hh+Uh,Wh=Yh+kh,Jh=Tc(Fh,Lh),Kh=Vh+Dh+yc(Wh),ta=Wh+3*Rh,na=Tc(Jh,Mc(3,Zh)),ea=Kh+3*(jh+Uh)+yc(ta),ra=X*ml,oa=Pc(c,bl),ia=m*xl+W*_l+2*yc(ra),sa=D*Il,ca=Pc(s,Nl),ua=v*Sl+j*El+2*yc(sa),fa=ra+sa,la=Tc(oa,ca),ha=ia+ua+yc(fa),aa=q*wl,pa=Pc(u,Ml),da=b*Pl+J*Tl+2*yc(aa),ga=fa+aa,va=Tc(la,pa),ma=ha+da+yc(ga),ba=ta+ga,xa=Tc(na,va),_a=ea+ma+yc(ba),Ia=Tt+Ct,Na=Tc(Sn,Pn),Sa=En+Tn+yc(Ia),Ea=Vt+Nt,wa=Tc(qn,ln),Ma=Qn+hn+yc(Ea),Pa=Et+bt,Ta=Tc(gn,en),ya=vn+rn+yc(Pa),Ca=yc(Pa),Oa=Ht+$t,Aa=Tc(ce,ee),za=ue+re+yc(Oa),Ba=yc(Oa),Ya=2*Ia+Vt,Fa=Tc(wc(Na),qn),Va=2*Sa+Qn+yc(Ya),ka=2*Ia+Nt,La=Tc(wc(Na),ln),Da=2*Sa+hn+yc(ka),Xa=2*zt+Pt,qa=Tc(wc(Bn),In),Qa=yc(Xa),$a=2*Yn+Nn+Qa,Ga=2*It+Pt,Ha=Tc(wc(un),In),Ra=yc(Ga),Ua=2*fn+Nn+Ra,Za=Pa+Et,ja=Tc(Ta,gn),Wa=ya+vn+yc(Za),Ja=Oa+Ht,Ka=Tc(Aa,ce),tp=za+ue+yc(Ja),np=3*w,ep=Ec(3,w),rp=np*Za,op=Pc(ep,ja),ip=yc(np)*Wa+2*yc(rp),sp=3*y,cp=Ec(3,y),up=sp*Ja,fp=Pc(cp,Ka),lp=yc(sp)*tp+2*yc(up),hp=nt*St,ap=Pc(E,an),pp=A*pn+ut*dn+2*yc(hp),dp=ot*Gt,gp=Pc(T,oe),vp=Y*ie+at*se+2*yc(dp),mp=D*Pa,bp=Pc(s,Ta),xp=v*Ca+j*ya+yc(mp),_p=q*Oa,Ip=Pc(u,Aa),Np=b*Ba+J*za+yc(_p),Sp=Ya+Ea,Ep=Tc(Fa,wa),wp=Va+Ma+yc(Sp),Mp=ka+Ea,Pp=Tc(La,wa),Tp=Da+Ma+yc(Mp),yp=w*Sp,Cp=Mc(w,Ep),Op=ct*wp+yc(yp),Ap=y*Mp,zp=Mc(y,Pp),Bp=ht*Tp+yc(Ap),Yp=nt*Xa,Fp=Pc(E,qa),Vp=A*Qa+ut*$a+2*yc(Yp),kp=ot*Ga,Lp=Pc(T,Ha),Dp=Y*Ra+at*Ua+2*yc(kp),Xp=rt*Q,qp=Pc(N,f),Qp=C*K+lt*x+2*yc(Xp),$p=st*$,Gp=Pc(M,l),Hp=z*tt+dt*_+2*yc($p),Rp=yp+Yp,Up=Tc(Cp,Fp),Zp=yc(Rp),jp=Op+Vp+Zp,Wp=Ap+kp,Jp=Tc(zp,Lp),Kp=yc(Wp),td=Bp+Dp+Kp,nd=rp+hp,ed=Tc(op,ap),rd=yc(nd),od=ip+pp+rd,id=up+dp,sd=Tc(fp,gp),cd=yc(id),ud=lp+vp+cd,fd=Ea+Ia,ld=Tc(wa,Na),hd=yc(fd),ad=Ma+Sa+hd,pd=2*(mp+_p),dd=wc(Tc(bp,Ip)),gd=2*(xp+Np)+yc(pd),vd=V*Rp,md=Pc(r,Up),bd=p*Zp+R*jp+2*yc(vd),xd=k*Wp,_d=Pc(o,Jp),Id=d*Kp+U*td+2*yc(xd),Nd=F*nd,Sd=Pc(e,ed),Ed=a*rd+H*od+2*yc(Nd),wd=L*id,Md=Pc(i,sd),Pd=g*cd+Z*ud+2*yc(wd),Td=X*fd,yd=Pc(c,ld),Cd=m*hd+W*ad+2*yc(Td),Od=vd+xd,Ad=Tc(md,_d),zd=bd+Id+yc(Od),Bd=Nd+wd,Yd=Tc(Sd,Md),Fd=Ed+Pd+yc(Bd),Vd=Td+pd,kd=Tc(yd,dd),Ld=Cd+gd+yc(Vd),Dd=Xp+$p,Xd=Tc(qp,Gp),qd=Qp+Hp+yc(Dd),Qd=Od+Bd,$d=Tc(Ad,Yd),Gd=zd+Fd+yc(Qd),Hd=Vd+Dd,Rd=Tc(kd,Xd),Ud=Ld+qd+yc(Hd),Zd=Qd+Hd,jd=Tc($d,Rd),Wd=Gd+Ud+yc(Zd),Jd=Pt+zt,Kd=Tc(In,Bn),tg=Nn+Yn+yc(Jd),ng=Pt+It,eg=Tc(In,un),rg=Nn+fn+yc(ng),og=2*Jd+It,ig=Tc(wc(Kd),un),sg=2*tg+fn+yc(og),cg=2*ng+zt,ug=Tc(wc(eg),Bn),fg=2*rg+Yn+yc(cg),lg=w*og,hg=Mc(w,ig),ag=ct*sg+yc(lg),pg=y*St,dg=Mc(y,an),gg=ht*dn+yc(pg),vg=y*cg,mg=Mc(y,ug),bg=ht*fg+yc(vg),xg=w*Gt,_g=Mc(w,oe),Ig=ct*se+yc(xg),Ng=w*St,Sg=Mc(w,an),Eg=ct*dn+yc(Ng),wg=et*gt,Mg=Pc(S,Wt),Pg=O*xe+2*yc(wg),Tg=y*Gt,yg=Mc(y,oe),Cg=ht*se+yc(Tg),Og=it*Xt,Ag=Pc(P,Wn),zg=B*we+2*yc(Og),Bg=lg+pg,Yg=Tc(hg,dg),Fg=ag+gg+yc(Bg),Vg=ag+gg+Fg,kg=vg+xg,Lg=Tc(mg,_g),Dg=bg+Ig+yc(kg),Xg=bg+Ig+Dg,qg=Ng+wg,Qg=Tc(Sg,Mg),$g=yc(qg),Gg=Eg+Pg+$g,Hg=Tg+Og,Rg=Tc(yg,Ag),Ug=yc(Hg),Zg=Cg+zg+Ug,jg=F*qg,Wg=Pc(e,Qg),Jg=a*$g+H*Gg+2*yc(jg),Kg=L*Hg,tv=Pc(i,Rg),nv=g*Ug+Z*Zg+2*yc(Kg),ev=3*(jg+Kg),rv=Mc(3,Tc(Wg,tv)),ov=3*(Jg+nv)+2*yc(ev),iv=Jd+It,sv=Tc(Kd,un),cv=yc(iv),uv=tg+fn+cv,fv=2*mt+St,lv=Tc(wc(tn),an),hv=yc(fv),av=2*nn+dn+hv,pv=2*Qt+Gt,dv=Tc(wc(te),oe),gv=yc(pv),vv=2*ne+se+gv,mv=V*Bg,bv=Pc(r,Yg),xv=p*Fg+R*Vg+2*yc(mv),_v=k*kg,Iv=Pc(o,Lg),Nv=d*Dg+U*Xg+2*yc(_v),Sv=X*iv,Ev=Pc(c,sv),wv=m*cv+W*uv+2*yc(Sv),Mv=D*fv,Pv=Pc(s,lv),Tv=v*hv+j*av+2*yc(Mv),yv=q*pv,Cv=Pc(u,dv),Ov=b*gv+J*vv+2*yc(yv),Av=et*Q,zv=Pc(S,f),Bv=O*K+ft*x+yc(Av),Yv=it*$,Fv=Pc(P,l),Vv=B*tt+pt*_+yc(Yv),kv=Av+Yv,Lv=Tc(zv,Fv),Dv=Bv+Vv+yc(kv),Xv=mv+_v,qv=Tc(bv,Iv),Qv=xv+Nv+yc(Xv),$v=ev+Sv,Gv=Tc(rv,Ev),Hv=ov+wv+yc($v),Rv=Mv+yv,Uv=Tc(Pv,Cv),Zv=Tv+Ov+yc(Rv),jv=Xv+$v,Wv=Tc(qv,Gv),Jv=Qv+Hv+yc(jv),Kv=Rv+kv,tm=Tc(Uv,Lv),nm=Zv+Dv+yc(Kv),em=jv+Kv,rm=Tc(Wv,tm),om=Jv+nm+yc(em),im=Mt+_t,sm=Tc(xn,sn),cm=yc(im),um=_n+cn+cm,fm=w*V,lm=Mc(w,r),hm=yc(fm),am=ct*p+hm,pm=y*k,dm=Mc(y,o),gm=yc(pm),vm=ht*d+gm,mm=im+Mt,bm=Tc(sm,xn),xm=yc(mm),_m=um+_n+xm,Im=im+_t,Nm=Tc(sm,sn),Sm=yc(Im),Em=um+cn+Sm,wm=nt*gt,Mm=Pc(E,Wt),Pm=yc(wm),Tm=A*xe+2*Pm,ym=wm*F,Cm=Pc(Mm,e),Om=Tm*H+Pm*a+2*yc(ym),Am=ot*Xt,zm=Pc(T,Wn),Bm=yc(Am),Ym=Y*we+2*Bm,Fm=Am*L,Vm=Pc(zm,i),km=Ym*Z+Bm*g+2*yc(Fm),Lm=X*im,Dm=Pc(c,sm),Xm=m*cm+W*um+2*yc(Lm),qm=vt*D,Qm=Pc(Jt,s),$m=Kt*j+_e*v+2*yc(qm),Gm=qt*q,Hm=Pc(Jn,u),Rm=Kn*J+Me*b+2*yc(Gm),Um=qm+Gm,Zm=Tc(Qm,Hm),jm=$m+Rm+yc(Um),Wm=nt*Q,Jm=Pc(E,f),Km=A*K+ut*x+yc(Wm),tb=ot*$,nb=Pc(T,l),eb=Y*tt+at*_+yc(tb),rb=Wm+tb,ob=Tc(Jm,nb),ib=Km+eb+yc(rb),sb=fm*mm,cb=Pc(lm,bm),ub=am*xm+hm*_m+2*yc(sb),fb=pm*Im,lb=Pc(dm,Nm),hb=vm*Sm+gm*Em+2*yc(fb),ab=sb+fb,pb=Tc(cb,lb),db=ub+hb+yc(ab),gb=3*(ym+Fm),vb=Mc(3,Tc(Cm,Vm)),mb=3*(Om+km)+2*yc(gb),bb=Lm+2*Um,xb=Tc(Dm,wc(Zm)),_b=Xm+2*jm+yc(bb),Ib=ab+gb,Nb=Tc(pb,vb),Sb=db+mb+yc(Ib),Eb=bb+rb,wb=Tc(xb,ob),Mb=_b+ib+yc(Eb),Pb=Ib+Eb,Tb=Tc(Nb,wb),yb=Sb+Mb+yc(Pb),Cb=w*F,Ob=Mc(w,e),Ab=ct*a+yc(Cb),zb=y*V,Bb=Mc(y,r),Yb=ht*p+yc(zb),Fb=Cb+zb,Vb=Tc(Ob,Bb),kb=Ab+Yb+yc(Fb),Lb=w*k,Db=Mc(w,o),Xb=ct*d+yc(Lb),qb=y*L,Qb=Mc(y,i),$b=ht*g+yc(qb),Gb=Lb+qb,Hb=Tc(Db,Qb),Rb=Xb+$b+yc(Gb),Ub=Fb+D,Zb=Tc(Vb,s),jb=kb+v+yc(Ub),Wb=Gb+q,Jb=Tc(Hb,u),Kb=Rb+b+yc(Wb),tx=gt*Ub,nx=Pc(Wt,Zb),ex=xe*jb+2*yc(tx),rx=Xt*Wb,ox=Pc(Wn,Jb),ix=we*Kb+2*yc(rx),sx=tx+rx,cx=Tc(nx,ox),ux=ex+ix+yc(sx),fx=xt*X,lx=Pc(on,c),hx=Ee*m+yc(fx),ax=sx+fx,px=Tc(cx,lx),dx=ux+hx+yc(ax),gx=w*Q,vx=Mc(w,f),mx=ct*x+yc(gx),bx=y*$,xx=Mc(y,l),_x=ht*_+yc(bx),Ix=gx+bx,Nx=Tc(vx,xx),Sx=mx+_x+yc(Ix),Ex=ax+Ix,wx=Tc(px,Nx),Mx=dx+Sx+yc(Ex),Px=Ex+G,Tx=Tc(wx,h),yx=Mx+I+yc(Px);return{coeffs:[lr,no,yi,nu,gl,xa,jd,rm,Tb,Tx],errBound:[Cc*hr,Cc*eo,Cc*Ci,Cc*eu,Cc*vl,Cc*_a,Cc*Wd,Cc*om,Cc*yb,Cc*yx]}}]],mf=[[Uc,Fu,nf],[cu,Qu,ff],[Ou,ju,function(t,n){const e=Vc(t);if(0===gf(e[0][0])&&0===gf(e[1][0]))return ff(gu(t),n);const[[r,o,i,[s]],[c,u,f,[l]]]=Vc(n);if(0===gf(r)&&0===gf(c))return ju(t,gu(n));const{vₓₓₓ:h,vₓₓᵧ:a,vₓᵧᵧ:p,vᵧᵧᵧ:d,vₓₓ:g,vₓᵧ:v,vᵧᵧ:m,vₓ:b,vᵧ:x,v:_}=Eu(e),I=lf(s,s),N=hf(s,i),S=hf(s,o),E=hf(s,r),w=lf(s,l),M=hf(s,f),P=hf(s,u),T=hf(s,c),y=af(i,i),C=af(i,o),O=af(i,r),A=hf(l,i),z=af(i,f),B=af(i,u),Y=af(i,c),F=af(o,f),V=af(o,o),k=af(o,r),L=hf(l,o),D=af(o,u),X=af(o,c),q=af(r,r),Q=hf(l,r),$=af(r,f),G=af(r,u),H=af(r,c),R=lf(l,l),U=hf(l,f),Z=hf(l,u),j=hf(l,c),W=af(f,f),J=af(f,u),K=af(c,c),tt=af(u,u),nt=af(u,c),et=af(f,c),rt=af(r,q),ot=af(r,K),it=af(c,q),st=af(c,K),ct=af(rt,h),ut=af(ot,p),ft=af(it,a),lt=af(st,d),ht=pf(ct,ut),at=pf(ft,lt),pt=pf(ht,at),dt=pf(df(X),G),gt=pf(df(G),X),vt=af(r,dt),mt=af(c,gt),bt=af(o,q),xt=af(u,K),_t=af(h,bt),It=af(d,xt),Nt=af(a,vt),St=af(p,mt),Et=pf(Nt,St),wt=hf(3,pf(_t,It)),Mt=pf(Et,wt),Pt=af(i,H),Tt=af(f,q),yt=af(o,nt),Ct=af(i,K),Ot=af(o,G),At=af(c,V),zt=af(r,et),Bt=af(u,G),Yt=pf(Pt,Ot),Ft=pf(Tt,At),Vt=pf(yt,zt),kt=pf(Ct,Bt),Lt=pf(O,V),Dt=pf(et,tt),Xt=pf(df(Yt),Ft),qt=pf(df(Vt),kt),Qt=af(a,Xt),$t=af(p,qt),Gt=af(r,Lt),Ht=af(c,Dt),Rt=af(h,Gt),Ut=af(d,Ht),Zt=pf(Qt,$t),jt=hf(3,pf(Rt,Ut)),Wt=pf(Zt,jt),Jt=pf(X,G),Kt=af(u,V),tn=df(af(i,Jt)),nn=pf(Kt,tn),en=df(pf(T,F)),rn=pf(en,Q),on=af(r,rn),sn=pf(nn,on),cn=af(o,tt),un=df(af(f,Jt)),fn=pf(cn,un),ln=df(pf(B,Q)),hn=pf(ln,T),an=af(c,hn),pn=pf(fn,an),dn=af(o,V),gn=pf(df(C),E),vn=af(hf(3,r),gn),mn=pf(dn,vn),bn=af(u,tt),xn=pf(df(J),j),_n=af(hf(3,c),xn),In=pf(bn,_n),Nn=af(a,sn),Sn=af(p,pn),En=pf(Nn,Sn),wn=af(h,mn),Mn=af(d,In),Pn=pf(wn,Mn),Tn=af(q,g),yn=af(K,m),Cn=pf(Tn,yn),On=af(H,v),An=pf(En,Pn),zn=pf(Cn,On),Bn=pf(An,zn),Yn=pf(D,$),Fn=pf(Y,D),Vn=hf(s,Jt),kn=hf(l,Jt),Ln=af(i,Yn),Dn=af(f,Fn),Xn=pf(df(Q),F),qn=pf(df(T),B),Qn=af(c,y),$n=af(r,W),Gn=af(o,Xn),Hn=af(u,qn),Rn=df(pf(Vn,Ln)),Un=df(pf(kn,Dn)),Zn=df(hf(s,k)),jn=df(hf(l,nt)),Wn=af(i,Lt),Jn=af(f,Dt),Kn=af(k,g),te=af(nt,m),ne=pf(Rn,Qn),ee=pf(Un,$n),re=pf(ne,Gn),oe=pf(ee,Hn),ie=pf(Zn,Wn),se=pf(jn,Jn),ce=df(pf(Kn,te)),ue=af(a,re),fe=af(p,oe),le=af(h,ie),he=af(d,se),ae=pf(ue,fe),pe=hf(3,pf(le,he)),de=af(v,Jt),ge=pf(ae,pe),ve=pf(de,ce),me=pf(ge,ve),be=pf(Y,Yn),xe=pf(df(O),V),_e=pf(df(et),tt),Ie=hf(2*s,be),Ne=hf(2*l,be),Se=pf(B,df(F)),Ee=pf(F,df(B)),we=hf(l,xe),Me=hf(s,_e),Pe=af(i,Se),Te=af(f,Ee),ye=hf(s,xe),Ce=hf(l,_e),Oe=af(o,y),Ae=af(u,W),ze=pf(Ie,we),Be=pf(Ne,Me),Ye=pf(ze,Pe),Fe=pf(Be,Te),Ve=pf(ye,Oe),ke=pf(Ce,Ae),Le=af(a,Ye),De=af(p,Fe),Xe=af(h,Ve),qe=af(d,ke),Qe=pf(Xe,qe),$e=pf(Le,De),Ge=pf($e,hf(3,Qe)),He=af(v,be),Re=af(g,xe),Ue=pf(He,Re),Ze=af(m,_e),je=pf(Ue,Ze),We=pf(Ge,je),Je=pf(B,F),Ke=pf(Q,T),tr=pf(C,E),nr=pf(J,j),er=pf(df(Je),Q),rr=pf(df(Je),T),or=pf(df(L),z),ir=pf(df(P),z),sr=pf(tr,C),cr=pf(nr,J),ur=af(lf(3,s),sr),fr=af(lf(3,l),cr),lr=af(i,y),hr=af(f,W),ar=af(g,tr),pr=af(m,nr),dr=pf(er,Ke),gr=pf(rr,Ke),vr=hf(s,dr),mr=hf(l,gr),br=af(i,or),xr=af(f,ir),_r=af(r,b),Ir=af(c,x),Nr=pf(vr,br),Sr=pf(mr,xr),Er=pf(ur,lr),wr=pf(fr,hr),Mr=pf(Ke,Je),Pr=df(pf(ar,pr)),Tr=af(a,Nr),yr=af(p,Sr),Cr=af(h,Er),Or=af(d,wr),Ar=af(v,Mr),zr=pf(Tr,yr),Br=pf(Cr,Or),Yr=pf(Ar,Pr),Fr=pf(_r,Ir),Vr=pf(zr,Br),kr=pf(Yr,Fr),Lr=pf(Vr,kr),Dr=pf(z,L),Xr=pf(z,P),qr=pf(df(Dr),P),Qr=pf(df(Xr),L),$r=hf(s,qr),Gr=hf(l,y),Hr=hf(l,Qr),Rr=hf(s,W),Ur=hf(s,y),Zr=af(o,I),jr=hf(l,W),Wr=af(u,R),Jr=pf($r,Gr),Kr=pf(Hr,Rr),to=pf(Ur,Zr),no=pf(jr,Wr),eo=af(h,to),ro=af(d,no),oo=hf(3,pf(eo,ro)),io=pf(Dr,P),so=pf(df(S),y),co=pf(df(Z),W),uo=af(a,Jr),fo=af(p,Kr),lo=af(v,io),ho=af(g,so),ao=af(m,co),po=af(o,b),go=af(u,x),vo=pf(po,go),mo=pf(uo,fo),bo=pf(oo,lo),xo=pf(ho,ao),_o=pf(mo,bo),Io=pf(xo,vo),No=pf(_o,Io),So=pf(A,M),Eo=hf(s,a),wo=hf(l,p),Mo=pf(So,A),Po=pf(So,M),To=af(i,I),yo=af(To,h),Co=af(f,R),Oo=af(Co,d),Ao=af(v,So),zo=af(N,g),Bo=af(U,m),Yo=pf(zo,Bo),Fo=af(i,b),Vo=af(f,x),ko=pf(Fo,Vo),Lo=af(Eo,Mo),Do=af(wo,Po),Xo=pf(Lo,Do),qo=hf(3,pf(yo,Oo)),Qo=pf(Ao,df(Yo)),$o=pf(Xo,qo),Go=pf(Qo,ko),Ho=pf($o,Go),Ro=hf(s,h),Uo=hf(l,a),Zo=pf(Ro,Uo),jo=hf(s,p),Wo=hf(l,d),Jo=pf(jo,Wo),Ko=pf(Zo,g),ti=pf(Jo,m),ni=af(I,Ko),ei=af(R,ti),ri=pf(ni,ei),oi=af(w,v),ii=pf(ri,oi),si=hf(s,b),ci=hf(l,x),ui=pf(si,ci),fi=pf(ii,ui);return[pt,Mt,Wt,Bn,me,We,Lr,No,Ho,pf(fi,_)]}]];function bf(t,n){const{coeffs:e,errBound:r}=vf[t.length-2][n.length-2](t,n);return{coeffs:e,errBound:r,getPExact:()=>mf[t.length-2][n.length-2](t,n)}}const xf=le,_f=oe,If=ie,Nf=pe,Sf=re,Ef=ie,wf=function(t,n,e,r){const o=t[0],i=t[1],s=n[0],c=n[1],u=jn(t,n),f=Math.abs(o+i),l=Math.abs(s+c),h=l-Wn*l-r;return h<=0?{est:u,err:Number.POSITIVE_INFINITY}:{est:u,err:(l*e+f*r)/h**2+9*Jn*Math.abs(f/l)}},Mf=re,Pf=le,Tf=te,yf=oe,Cf=ce,Of=function(t,n){return Qn(t,n)[1]>0?n:t},Af=function(t,n){return $n(t,n)[1]>0?t:n},zf=Number.EPSILON/2,Bf=zf*zf,Yf=Math.abs,Ff=Ef,Vf=[0,1],kf=Mf,Lf=yf,Df=Pf,Xf=Tf,qf=Cf,Qf=wf,$f=Of,Gf=Af,Hf=Ar(3);function Rf(t,n){return n[0][0]!==n[1][0]||n[0][1]!==n[1][1]?4===t.length?function([[t,n],[e,r],[o,i],[s,c]],[u,f]){const l=Ff(f,u),h=3*Bf*Yf(l[1]),a=Ff(Vf,u),p=3*Bf*Yf(a[1]),d=Qf(l,a,h,p);f=kf(d.est,d.err);const g=Ff(Vf,u),v=Df(u,u),m=Df(u,g),b=Df(g,g),x=Df(v,u),_=Df(v,g),I=Df(b,u),N=Df(b,g),S=Ff(Vf,f),E=Df(f,f),w=Df(f,S),M=Df(S,S),P=Df(E,f),T=Df(E,S),y=Df(M,f),C=Df(M,S),O=Yf(u[1]),A=Yf(g[1]),z=Yf(v[1]),B=Yf(m[1]),Y=Yf(b[1]),F=Yf(x[1]),V=Yf(_[1]),k=Yf(I[1]),L=Yf(N[1]),D=Yf(f[1]),X=Yf(S[1]),q=Yf(E[1]),Q=Yf(w[1]),$=Yf(M[1]),G=Yf(P[1]),H=Yf(T[1]),R=Yf(y[1]),U=Yf(C[1]);let Z=Yf(t),j=Yf(n),W=Yf(e),J=Yf(r),K=Yf(o),tt=Yf(i),nt=Yf(s),et=Yf(c);const rt=Lf(Xf(s,u),Xf(o,g)),ot=Lf(Lf(Xf(s,v),Xf(2*o,m)),Xf(e,b)),it=Lf(Lf(Xf(s,x),Xf(t,N)),Xf(3,Lf(Xf(o,_),Xf(e,I)))),st=Lf(Df(ot,f),Df(it,S)),ct=Lf(Lf(Df(rt,E),Df(it,M)),Df(qf(ot),w)),ut=Lf(Lf(Xf(s,P),Df(it,C)),Xf(3,Lf(Df(rt,T),Df(ot,y)))),ft=Yf(it[1]),lt=nt*O+K*A,ht=nt*z+2*K*B+W*Y;Z=nt*F+Z*L+3*(K*V+W*k),W=ht*D+ft*X,K=lt*q+ft*$+2*ht*Q,nt=nt*G+ft*U+3*(lt*H+ht*R),Z*=11*Bf,W*=15*Bf,K*=20*Bf,nt*=22*Bf;const at=Lf(Xf(c,u),Xf(i,g)),pt=Lf(Lf(Xf(c,v),Xf(2*i,m)),Xf(r,b)),dt=Lf(Lf(Xf(c,x),Xf(n,N)),Xf(3,Lf(Xf(i,_),Xf(r,I)))),gt=Lf(Df(pt,f),Df(dt,S)),vt=Lf(Lf(Df(at,E),Df(dt,M)),Df(qf(pt),w)),mt=Lf(Lf(Xf(c,P),Df(dt,C)),Xf(3,Lf(Df(at,T),Df(pt,y)))),bt=Yf(dt[1]),xt=et*O+tt*A,_t=et*z+2*tt*B+J*Y;j=et*F+j*L+3*(tt*V+J*k),J=_t*D+bt*X,tt=xt*q+bt*$+2*_t*Q,et=et*G+bt*U+3*(xt*H+_t*R),j*=11*Bf,J*=15*Bf,tt*=20*Bf,et*=22*Bf;const It=$f($f(kf(it,-Z),kf(st,-W)),$f(kf(ct,-K),kf(ut,-nt))),Nt=Gf(Gf(kf(it,+Z),kf(st,+W)),Gf(kf(ct,+K),kf(ut,+nt)));return[[It,$f($f(kf(dt,-j),kf(gt,-J)),$f(kf(vt,-tt),kf(mt,-et)))],[Nt,Gf(Gf(kf(dt,+j),kf(gt,+J)),Gf(kf(vt,+tt),kf(mt,+et)))]]}(t,n):3===t.length?function([[t,n],[e,r],[o,i]],[s,c]){const u=Ff(c,s),f=3*Bf*Yf(u[1]),l=Ff(Vf,s),h=3*Bf*Yf(l[1]),a=Qf(u,l,f,h);c=kf(a.est,a.err);const p=Ff(Vf,s),d=Df(s,s),g=Df(s,p),v=Df(p,p),m=Ff(Vf,c),b=Df(c,c),x=Df(c,m),_=Df(m,m),I=Yf(s[1]),N=Yf(p[1]),S=Yf(d[1]),E=Yf(g[1]),w=Yf(v[1]),M=Yf(c[1]),P=Yf(m[1]),T=Yf(b[1]),y=Yf(x[1]),C=Yf(_[1]);let O=Yf(t),A=Yf(n),z=Yf(e),B=Yf(r),Y=Yf(o),F=Yf(i);const V=Lf(Lf(Xf(o,d),Xf(2*e,g)),Xf(t,v)),k=Lf(Xf(o,s),Xf(e,p)),L=V,D=Lf(Df(c,k),Df(m,V)),X=Lf(Lf(Xf(o,b),Df(qf(x),k)),Df(_,V)),q=Y*S+2*z*E+O*w,Q=Y*I+z*N;O=q,z=M*Q+P*q,Y=T*o+2*y*Q+C*q,O*=7*Bf,z*=11*Bf,Y*=14*Bf;const $=Lf(Lf(Xf(i,d),Xf(2*r,g)),Xf(n,v)),G=Lf(Xf(i,s),Xf(r,p)),H=$,R=Lf(Df(c,G),Df(m,$)),U=Lf(Lf(Xf(i,b),Df(qf(x),G)),Df(_,$)),Z=F*S+2*B*E+A*w,j=F*I+B*N;A=Z,B=M*j+P*Z,F=T*i+2*y*j+C*Z,A*=7*Bf,B*=11*Bf,F*=14*Bf;const W=$f($f(kf(L,-O),kf(D,-z)),kf(X,-Y)),J=Gf(Gf(kf(L,+O),kf(D,+z)),kf(X,+Y));return[[W,$f($f(kf(H,-A),kf(R,-B)),kf(U,-F))],[J,Gf(Gf(kf(H,+A),kf(R,+B)),kf(U,+F))]]}(t,n):function([[t,n],[e,r]],[o,i]){const s=Ff(i,o),c=3*Bf*Yf(s[1]),u=Ff(Vf,o),f=3*Bf*Yf(u[1]),l=Qf(s,u,c,f);i=kf(l.est,l.err);const h=Ff(Vf,o),a=Ff(Vf,i),p=Yf(o[1]),d=Yf(h[1]),g=Yf(i[1]),v=Yf(a[1]);let m=Yf(t),b=Yf(n),x=Yf(e),_=Yf(r);const I=Lf(Xf(e,o),Xf(t,h)),N=Lf(Xf(e,i),Df(I,a));m=x*p+m*d,x=x*g+m*v,m*=3*zf,x*=7*zf;const S=Lf(Xf(r,o),Xf(n,h)),E=Lf(Xf(r,i),Df(S,a));b=_*p+b*d,_=_*g+b*v,b*=3*zf,_*=7*zf;const w=$f(kf(I,-m),kf(N,-x)),M=Gf(kf(I,+m),kf(N,+x));return[[w,$f(kf(S,-b),kf(E,-_))],[M,Gf(kf(S,+b),kf(E,+_))]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n[0]&&0===n[1]){const t=[0,e[0]],n=[0,e[1]];return[[t,n],[t,n]]}if(0===n[0]&&1===n[1]){const t=[0,r[0]],n=[0,r[1]];return[[t,n],[t,n]]}const o=function(t,n){if(0===n[0]&&0===n[1])return t[0].map((t=>[t]));if(0===n[0]&&1===n[1])return t[t.length-1].map((t=>[t]));if(4===t.length){const[[e,r],[o,i],[s,c],[u,f]]=t,l=Sf(xf(Nf(o,e),n),e),h=Sf(xf(Nf(s,o),n),o),a=Sf(xf(Nf(u,s),n),s),p=_f(l,xf(If(h,l),n)),d=_f(h,xf(If(a,h),n)),g=_f(p,xf(If(d,p),n)),v=Sf(xf(Nf(i,r),n),r),m=Sf(xf(Nf(c,i),n),i),b=Sf(xf(Nf(f,c),n),c),x=_f(v,xf(If(m,v),n)),_=_f(m,xf(If(b,m),n));return[g,_f(x,xf(If(_,x),n))]}if(3===t.length){const[[e,r],[o,i],[s,c]]=t,u=_f([0,e],xf(Nf(o,e),n)),f=_f([0,o],xf(Nf(s,o),n)),l=_f(u,xf(If(f,u),n)),h=_f([0,r],xf(Nf(i,r),n)),a=_f([0,i],xf(Nf(c,i),n));return[l,_f(h,xf(If(a,h),n))]}if(2===t.length){const[[e,r],[o,i]]=t;return[Sf(xf(Nf(o,e),n),e),Sf(xf(Nf(i,r),n),r)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}(t,n);let i;if(4===t.length)i=Tr(t,n).map((t=>16*Hf*t));else if(3===t.length)i=Tr(t,n).map((t=>10*Hf*t));else if(2===t.length)i=Tr(t,n).map((t=>4*Hf*t));else if(1===t.length)return[o,o];return[[kf(o[0],-i[0]),kf(o[1],-i[1])],[kf(o[0],+i[0]),kf(o[1],+i[1])]]}(t,n[0])}function Uf(t){return(n,e)=>{let[[r,o],[i,s]]=n,[[c,u],[f,l]]=e;return(o[1]>s[1]||o[1]===s[1]&&o[0]>s[0])&&([o,s]=[s,o]),(u[1]>l[1]||u[1]===l[1]&&u[0]>l[0])&&([u,l]=[l,u]),(r[1]>i[1]||r[1]===i[1]&&r[0]>i[0])&&([r,i]=[i,r]),(c[1]>f[1]||c[1]===f[1]&&c[0]>f[0])&&([c,f]=[f,c]),t?(r[1]<f[1]||r[1]===f[1]&&r[0]<=f[0])&&(i[1]>c[1]||i[1]===c[1]&&i[0]>=c[0])&&(u[1]<s[1]||u[1]===s[1]&&u[0]<=s[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>=o[0]):(r[1]<f[1]||r[1]===f[1]&&r[0]<f[0])&&(i[1]>c[1]||i[1]===c[1]&&i[0]>c[0])&&(u[1]<s[1]||u[1]===s[1]&&u[0]<s[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>o[0])}}function Zf(t){return[(t.x.box[0][0]+t.x.box[1][0])/2,(t.x.box[0][1]+t.x.box[1][1])/2]}function jf(t,n){const e=bf(t,n);if(void 0===e)return;const{coeffs:r,errBound:o,getPExact:i}=e,s=Nr(r,0,1,o,i);return 0!==s.length?{ris:s.map(Qi),getPExact:i}:void 0}function Wf(t){return{tS:H(t.tS),tE:H(t.tE),multiplicity:t.multiplicity}}function Jf(t,n){const e=jf(t,n);if(void 0===e)return[];const{getPExact:r}=e;let o,{ris:i}=e;const s=jf(n,t);if(void 0===s)return[];let{ris:c}=s;const{getPExact:u}=s;let f,l;l=1;let h,a=0;t:for(;a<l;){h=c.map((n=>Rf(t,[n.tS,n.tE])));for(let t=0;t<c.length;t++){const n=h[t];for(let e=t+1;e<c.length;e++){const t=h[e];if(Uf(!0)(n,t)){const t=[];for(const n of c)t.push(...Ji({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},(f=f||u(),f)));c=t,a++;continue t}}}break t}l=1;let p,d=0;t:for(;d<l;){p=i.map((t=>Rf(n,[t.tS,t.tE])));for(let t=0;t<i.length;t++){const n=p[t];for(let e=t+1;e<i.length;e++){const t=p[e];if(Uf(!0)(n,t)){const t=[];for(const n of i)t.push(...Ji({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},(o=o||r(),o)));i=t,d++;continue t}}}break t}const g=[];for(let t=0;t<c.length;t++){const n=h[t];for(let e=0;e<i.length;e++){const o=p[e];if(Uf(!0)(n,o)){const s={compensated:a,ri:Wf(c[t]),riExp:a?c[t]:void 0,getPExact:a?void 0:u,kind:1,box:Kf(n)},f={compensated:d,ri:Wf(i[e]),riExp:d?i[e]:void 0,getPExact:d?void 0:r,kind:1,box:Kf(o)};g.push({psX:s,sideX:f})}}}return g}function Kf(t){return t.map((t=>t.map(H)))}function tl(t,n){const e=t.xs,r=[],o=new Map;for(const t of e){const n=t.curve,e=o.get(n);e?e.push(t):o.set(n,[t])}const i=function(t){const[[n,e],[r,o]]=t.box,i=[[[r,e],[n,e]],[[n,e],[n,o]],[[n,o],[r,o]],[[r,o],[r,e]]];return(n,e,r)=>{const o=n.ps,s=e.slice();for(let t=0;t<i.length;t++){const n=Jf(o,i[t]);for(const{psX:e,sideX:r}of n)s.push({x:e,side:t,sideX:r,curve:void 0})}s.sort(((t,n)=>t.x.ri.tS-n.x.ri.tS));const c=[],u=[];let f,l;for(const n of s)void 0!==n.side?(!0===l&&u.push({dir:1,p:Zf(n),_x_:f,container:t,idx:++r,side:n.side,sideX:n.sideX}),l=!1):(!1===l&&(c.push({dir:-1,p:Zf(f),_x_:n,container:t,idx:++r,side:f.side,sideX:f.sideX}),n.in_=c[c.length-1]),l=!0),f=n;return{ins:c,outs:u,ioIdx:r}}}(t);for(const t of o){const[e,o]=t;let s,c;({ins:s,outs:c,ioIdx:n}=i(e,o,n)),r.push(...s),r.push(...c)}return{inOuts:r,ioIdx:n}}function nl(t){if(4===t.length){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[3*(r-n),3*(o-e)],[3*(i-r),3*(s-o)],[3*(c-i),3*(u-s)]]}if(3===t.length){const[[n,e],[r,o],[i,s]]=t;return[[2*(r-n),2*(o-e)],[2*(i-r),2*(s-o)]]}if(2===t.length){const[[n,e],[r,o]]=t;return[[r-n,o-e]]}throw new Error("The given bezier curve must be of order 1, 2 or 3.")}function el(t,n){const e=t.xs;return 2===e.length&&1===e[0].x.kind&&1===e[1].x.kind&&e[0].x.ri.multiplicity%2==1&&e[1].x.ri.multiplicity%2==1?function(t,n){const e=t.xs,r=[],o=e[0],i=e[1],s=o.curve.ps,c=i.curve.ps,u=Mr(s,o.x.ri.tS),f=o.x.ri.tS,l=o.x.ri.tE,h=i.x.ri.tS,a=i.x.ri.tE;let p,d,g;p=4===s.length||3===s.length?Xr(nl(s),[f,l]):nl(s),d=4===c.length||3===c.length?Xr(nl(c),[h,a]):nl(c);for(let e=0;e<p.length;e++)for(let r=0;r<d.length;r++){const o=Math.sign(en(p[e],d[r],[0,0]));if(0===o)return tl(t,n);if(void 0!==g){if(g!==o)return tl(t,n)}else g=o}return g>0?(r.push({dir:-1,p:u,_x_:o,container:t}),r.push({dir:1,p:u,_x_:i,container:t}),r.push({dir:1,p:u,_x_:o,container:t}),r.push({dir:-1,p:u,_x_:i,container:t}),o.in_=r[0],i.in_=r[3]):(r.push({dir:-1,p:u,_x_:o,container:t}),r.push({dir:-1,p:u,_x_:i,container:t}),r.push({dir:1,p:u,_x_:o,container:t}),r.push({dir:1,p:u,_x_:i,container:t}),o.in_=r[0],i.in_=r[1]),{inOuts:r,ioIdx:n}}(t,n):tl(t,n)}const rl=-1,ol=1;function il(t,n,e,r){const o=[];for(const r of t)o.push({type:rl,item:r,x:n(r)}),o.push({type:ol,item:r,x:e(r)});o.sort(sl);const i=new Set,s=[];for(const t of o){const n=t.item;if(t.type===rl){for(const t of i.values()){const e=r(n,t);e&&s.push({a:n,b:t,u:e})}i.add(n)}else t.type===ol&&i.delete(t.item)}return s}function sl(t,n){const e=t.x-n.x;return 0!==e?e:t.type}const cl=oe,ul=K,fl=R,ll=y,hl=H,al=le,pl=Wt,dl=Math.abs,gl=Ar(3);const vl=Math.abs;const ml=Math.abs,bl=le,xl=oe,_l=K,Il=R,Nl=y,Sl=H,El=Wt,wl=Math.abs,Ml=Or(1),Pl=Ar(3);function Tl(t,n){const[e,r]=n,o=e.length,i=r.length,s=e[o-1],c=r[i-1],u=1===o&&1===i;{const{vₓₓ:n,vₓᵧ:e,vᵧᵧ:r,vₓ:o,vᵧ:i,v:f}=function(t){const[[n,e,r],[o,i,s]]=wi(t),c=n*i-e*o,u=n*s-r*o;return{vₓₓ:-o*o,vₓᵧ:2*n*o,vᵧᵧ:-n*n,vₓ:i*c-2*o*u,vᵧ:2*n*u-e*c,v:c*(e*s-r*i)-u*u}}(t),{vₓₓ_:l,vₓᵧ_:h,vᵧᵧ_:a,vₓ_:p,vᵧ_:d,v_:g}=function(t){const[n,e]=t[0],[[r,o],[i,s]]=function(t){const[[n,e],[r,o],[i,s]]=t,c=vl(n),u=vl(r),f=vl(i),l=vl(e),h=vl(o);return[[f+c+2*u,2*(u+c),0],[vl(s)+l+2*h,2*(h+l),0]]}(t),c=ml(n),u=ml(e),f=r*s+o*i,l=r*u+c*i;return{vₓₓ_:i*i,vₓᵧ_:2*r*i,vᵧᵧ_:r*r,vₓ_:s*f+2*i*l,vᵧ_:2*r*l+o*f,v_:f*(o*u+c*s)+l*l}}(t),v=u?0:1,m=wl(s),b=wl(c);if((v+12)*Ml*(l*(m*m)+h*(m*b)+a*(b*b)+(p*m+d*b)+g)<wl(n*s*s+e*s*c+r*c*c+(o*s+i*c)+f))return!1}{const{coeffs:{vₓₓ:n,vₓᵧ:o,vᵧᵧ:i,vₓ:u,vᵧ:f,v:l},errorBound:{vₓₓ_:h,vₓᵧ_:a,vᵧᵧ_:p,vₓ_:d,vᵧ_:g,v_:v}}=Ss(t),m=El(e),b=El(r),x=wl(s),_=wl(c),I=x/3,N=_/3,S=bl(m,m),E=S[1],w=2*(x*I+E),M=bl(b,b),P=M[1],T=2*(_*N+P),y=bl(m,b),C=wl(y[1]),O=x*N+I*_+2*C,A=bl(n,S),z=wl(n[1])*w+h*E+2*wl(A[1]),B=bl(o,y),Y=wl(o[1])*O+a*C+2*wl(B[1]),F=bl(i,M),V=wl(i[1])*T+p*P+2*wl(F[1]),k=bl(m,u),L=wl(u[1])*I+d*x+2*wl(k[1]),D=bl(b,f),X=wl(f[1])*N+g*_+2*wl(D[1]),q=xl(A,B),Q=z+Y+wl(q[1]),$=xl(q,F),G=Q+V+wl($[1]),H=xl(k,D),R=L+X+wl(H[1]),U=xl($,H),Z=G+R+wl(U[1]),j=xl(U,l),W=Z+v+wl(j[1]);if(Pl*W<wl(Sl(j)))return!1}{const n=function(t){return tu(kc(t))}(t);if(void 0===n)return u&&s===t[0][0]&&c===t[0][1];n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓ:o,vₓᵧ:i,vᵧᵧ:f,vₓ:l,vᵧ:h,v:a}=n,p=Il(Il(Il(_l(o,_l(e,e)),_l(i,_l(e,r))),_l(f,_l(r,r))),Il(Il(_l(e,l),_l(r,h)),a));return 0===Nl(p)}}const yl=Math.abs,Cl=le,Ol=oe,Al=K,zl=R,Bl=y,Yl=H,Fl=Wt,Vl=Math.abs,kl=Or(1),Ll=Ar(3);function Dl(t,n){const[e,r]=n,o=e.length,i=r.length,s=e[o-1],c=r[i-1],u=1===o&&1===i;{const{vₓₓₓ:n,vₓₓᵧ:e,vₓᵧᵧ:r,vᵧᵧᵧ:o,vₓₓ:i,vₓᵧ:f,vᵧᵧ:l,vₓ:h,vᵧ:a,v:p}=function(t){const[[n,e,r,o],[i,s,c,u]]=Ei(t),f=n*c,l=r*i,h=n*s,a=e*i,p=n*n,d=i*i,g=n*u-o*i,v=f-l,m=h-a,b=e*u-o*s,x=e*c-r*s,_=r*u-o*c,I=2*v,N=g*g,S=g*x,E=I*b,w=m*b,M=-3*g-x,P=-3*N-2*S+(E+m*_),T=2*(g*v-w),y=g*m-v*v+m*x;return{vₓₓₓ:-i*d,vₓₓᵧ:3*n*d,vₓᵧᵧ:-3*i*p,vᵧᵧᵧ:n*p,vₓₓ:M*d+m*(c*i-s*s)+I*s*i,vₓᵧ:2*(m*(e*s-(l+f)/2)-(M*n*i+v*(a+h))),vᵧᵧ:M*p+m*(r*n-e*e)+I*e*n,vₓ:i*P+(s*T+c*y),vᵧ:-n*P-(e*T+r*y),v:g*(E-N-S)+(y*_-w*b)}}(t),{vₓₓₓ_:d,vₓₓᵧ_:g,vₓᵧᵧ_:v,vᵧᵧᵧ_:m,vₓₓ_:b,vₓᵧ_:x,vᵧᵧ_:_,vₓ_:I,vᵧ_:N,v_:S}=function(t){const[n,e]=t[0],[[r,o,i],[s,c,u]]=function(t){const[[n,e],[r,o],[i,s],[c,u]]=t,f=vl(n),l=vl(r),h=vl(i),a=vl(c),p=vl(e),d=vl(o),g=vl(s);return[[a+f+3*(l+h),3*(h+f+2*l),3*(l+f),0],[vl(u)+p+3*(d+g),3*(g+p+2*d),3*(d+p),0]]}(t),f=yl(n),l=yl(e),h=r*u,a=i*s,p=r*c,d=o*s,g=r*r,v=s*s,m=r*l+f*s,b=h+a,x=p+d,_=o*l+f*c,I=o*u+i*c,N=i*l+f*u,S=2*b,E=m*m,w=m*I,M=S*_,P=x*_,T=3*m+I,y=3*E+2*w+(M+x*N),C=2*(m*b+P),O=m*x+b*b+x*I;return{vₓₓₓ_:s*v,vₓₓᵧ_:3*r*v,vₓᵧᵧ_:3*s*g,vᵧᵧᵧ_:r*g,vₓₓ_:T*v+x*(u*s+c*c)+S*c*s,vₓᵧ_:2*(x*(o*c+(a+h)/2)+(T*r*s+b*(d+p))),vᵧᵧ_:T*g+x*(i*r+o*o)+S*o*r,vₓ_:s*y+(c*C+u*O),vᵧ_:r*y+(o*C+i*O),v_:m*(M+E+w)+(O*N+P*_)}}(t),E=s*s,w=c*c,M=n*(E*s)+e*(E*c)+(r*(s*w)+o*(w*c))+(i*E+f*(s*c)+l*w)+(h*s+a*c+p),P=u?0:1,T=Vl(s),y=Vl(c),C=T*T,O=y*y;if((P+26)*kl*(d*(C*T)+g*(C*y)+(v*(T*O)+m*(O*y))+(b*C+x*(T*y)+_*O)+(I*T+N*y+S))<Vl(M))return!1}{const{coeffs:{vₓₓₓ:n,vₓₓᵧ:o,vₓᵧᵧ:i,vᵧᵧᵧ:u,vₓₓ:f,vₓᵧ:l,vᵧᵧ:h,vₓ:a,vᵧ:p,v:d},errorBound:{vₓₓₓ_:g,vₓₓᵧ_:v,vₓᵧᵧ_:m,vᵧᵧᵧ_:b,vₓₓ_:x,vₓᵧ_:_,vᵧᵧ_:I,vₓ_:N,vᵧ_:S,v_:E}}=Ls(t),w=Vl(n[1]),M=Vl(o[1]),P=Vl(i[1]),T=Vl(u[1]),y=Fl(e),C=Fl(r),O=Vl(s),A=Vl(c),z=O/3,B=A/3,Y=Cl(y,y),F=Y[1],V=2*(O*z+F),k=Cl(y,Y),L=Vl(k[1]),D=O*V+z*F+2*L,X=Cl(C,C),q=X[1],Q=2*(A*B+q),$=Cl(C,X),G=Vl($[1]),H=A*Q+B*q+2*G,R=Cl(C,Y),U=Vl(R[1]),Z=A*V+B*F+2*U,j=Cl(y,X),W=Vl(j[1]),J=O*Q+z*q+2*W,K=Cl(y,C),tt=Vl(K[1]),nt=O*B+z*A+2*tt,et=Cl(n,k),rt=w*D+g*L+2*Vl(et[1]),ot=Cl(o,R),it=M*Z+v*U+2*Vl(ot[1]),st=Cl(i,j),ct=P*J+m*W+2*Vl(st[1]),ut=Cl(u,$),ft=T*H+b*G+2*Vl(ut[1]),lt=Cl(f,Y),ht=Vl(f[1])*V+x*F+2*Vl(lt[1]),at=Cl(l,K),pt=Vl(l[1])*nt+_*tt+2*Vl(at[1]),dt=Cl(h,X),gt=Vl(h[1])*Q+I*q+2*Vl(dt[1]),vt=Cl(y,a),mt=Vl(a[1])*z+N*O+2*Vl(vt[1]),bt=Cl(C,p),xt=Vl(p[1])*B+S*A+2*Vl(bt[1]),_t=Ol(et,ot),It=rt+it+Vl(_t[1]),Nt=Ol(st,ut),St=ct+ft+Vl(Nt[1]),Et=Ol(_t,Nt),wt=It+St+Vl(Et[1]),Mt=Ol(lt,at),Pt=ht+pt+Vl(Mt[1]),Tt=Ol(Mt,dt),yt=Pt+gt+Vl(Tt[1]),Ct=Ol(Et,Tt),Ot=wt+yt+Vl(Ct[1]),At=Ol(vt,bt),zt=mt+xt+Vl(At[1]),Bt=Ol(At,d),Yt=zt+E+Vl(Bt[1]),Ft=Ol(Ct,Bt),Vt=Ot+Yt+Vl(Ft[1]);if(Ll*Vt<Vl(Yl(Ft)))return!1}{const n=function(t){return Eu(Vc(t))}(t);if(void 0===n)return u&&s===t[0][0]&&c===t[0][1];n.hasOwnProperty("vₓₓₓ")||(n.vₓₓₓ=[0],n.vₓₓᵧ=[0],n.vₓᵧᵧ=[0],n.vᵧᵧᵧ=[0]),n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓₓ:o,vₓₓᵧ:i,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:h,vₓᵧ:a,vᵧᵧ:p,vₓ:d,vᵧ:g,v}=n,m=Al(e,e),b=Al(e,m),x=Al(r,r),_=Al(r,x),I=Al(r,m),N=Al(e,x),S=Al(e,r),E=Al(o,b),w=Al(i,I),M=Al(f,N),P=Al(l,_),T=Al(h,m),y=Al(a,S),C=Al(p,x),O=Al(e,d),A=Al(r,g),z=zl(E,w),B=zl(M,P),Y=zl(z,B),F=zl(T,y),V=zl(F,C),k=zl(Y,V),L=zl(O,A),D=zl(L,v),X=zl(k,D);return 0===Bl(X)}}function Xl(t,n){const{coeffs:e,errBound:r,getPExact:o}=bf(t,n);return Nr(e,0,1,r,o,!0)}const ql=Math.min,Ql=Math.max;function $l(t,n){let[[e,r],[o,i]]=t,[[s,c],[u,f]]=n;if(e>o&&([e,o]=[o,e]),s>u&&([s,u]=[u,s]),r>i&&([r,i]=[i,r]),c>f&&([c,f]=[f,c]),e<=u&&o>=s&&c<=i&&f>=r)return[[Ql(e,s),Ql(r,c)],[ql(o,u),ql(i,f)]]}function Gl(t,n,e){if(void 0===e)return;if(0===e.length)return[];const r=Xl(n,t);if(void 0===r)return;if(0===r.length)return[];const o=r.map((n=>Xr(t,[n.tS,n.tE]))),i=e.map((t=>Xr(n,[t.tS,t.tE]))),s=[];for(let t=0;t<r.length;t++){const n=o[t];for(let o=0;o<e.length;o++){const c=$l(n,i[o]);if(void 0!==c){const n={ri:r[t],box:c,kind:1},i={ri:e[o],box:c,kind:1};s.push([n,i])}}}return s}function Hl(t,n,e){for(const r of[t,n]){const o=r.length;for(let i=1;i<o+1;i++){const s=r[i-1],c=r[i%o],u=[c[1]-s[1],s[0]-c[0]];let f=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let n=0;n<t.length;n++){const e=u[0]*t[n][0]+u[1]*t[n][1];e<f&&(f=e),e>l&&(l=e)}let h=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(let t=0;t<n.length;t++){const e=u[0]*n[t][0]+u[1]*n[t][1];e<h&&(h=e),e>a&&(a=e)}if(e&&(l<h||a<f))return!1;if(!e&&(l<=h||a<=f))return!1}}return!0}const Rl=Ft,Ul=R,Zl=y,jl=rt,Wl=Number.EPSILON/2,Jl=Math.abs;function Kl(t){const[[n,e],[r,o],[i,s],[c,u]]=t,f=c+3*r,l=n+3*i,h=f-l,a=Jl(3*r)+Jl(f)+(Jl(3*i)+Jl(l))+Jl(h);if(Jl(h)-Wl*a>0)return!1;const p=u+3*o,d=e+3*s,g=p-d,v=Jl(3*o)+Jl(p)+(Jl(3*s)+Jl(d))+Jl(g);return!(Jl(g)-Wl*v>0)&&0===Zl(jl(Ul([c],Rl(3,r)),Ul([n],Rl(3,i))))&&0===Zl(jl(Ul([u],Rl(3,o)),Ul([e],Rl(3,s))))}const th=rt,nh=y,eh=pt,{abs:rh}=Math;function oh(t){const n=t[0][0],e=t[0][1];for(let r=1;r<t.length;r++)if(n!==t[r][0]||e!==t[r][1])return!1;return!0}function ih(t){return 4===t.length&&Kl(t)&&(t=gu(t)),3===t.length&&function(t){const[[n,e],[r,o],[i,s]]=t,c=n+i,u=c-2*r,f=rh(c)+rh(u);if(rh(u)-f>0)return!1;const l=e+s,h=l-2*o,a=rh(l)+rh(h);return!(rh(h)-a>0)&&0===nh(th(eh(n,i),[2*r]))&&0===nh(th(eh(e,s),[2*o]))}(t)&&(t=[t[0],t[2]]),2===t.length&&oh(t)&&(t=[t[0]]),t}const sh=Number.EPSILON,ch=sh/2;function uh(t,n){return n<0?t<1?t:1-ch:0===n?1:t>1?t:1+sh}function fh(t){return H(ht(t[0],t[1],2))}function lh(t){return y(t[0])*y(t[1])}function hh(t){return(n,e)=>{const r=Fc(n),o=Fc(e),i=Fc(n.slice().reverse()),s=Fc(e.slice().reverse()),c=t(r,o),u=t(i,o),f=t(r,s),l=t(i,s),h=-lh(u),a=-lh(l),p=fh(c),d=fh(f);return[uh(p,h),uh(d,a)]}}const ah=hh((function(t,n){const e=0===y(t[0][0])?1:0;return function(t,n){const[e,r]=t,[,o]=n;return[rt(o,r),e]}(t[e],n[e])}));function ph(t,n){return yt(sn(t[0],n[1]),sn(t[1],n[0]))*y(t[1])*y(n[1])}const dh=L,gh=ot,vh=0n;function mh(t){let n=-1024;for(let e=0;e<t.length;e++){const r=t[e];for(let t=0;t<r.length;t++){const e=r[t];if(0===e)continue;const o=-dh(e)+gh(e)-1;o>n&&(n=o)}}return 0===n?t.map((t=>t.map((t=>BigInt(t))))):n>0?t.map((t=>t.map((t=>{if(0===t)return vh;const e=-dh(t)+gh(t)-1;return BigInt(t*2**e)*2n**BigInt(n-e)})))):t.map((t=>t.map((t=>BigInt(t*2**n)))))}function bh(t,n){if(n=n<0n?-n:n,0n===(t=t<0n?-t:t))return n;if(0n===n)return t;for(;0n!==n;){const e=n;n=t%n,t=e}return t}const xh=BigInt(2**53);function _h(t){if(0n===t)return[0];const n=[];let e=0,r=t;for(;0n!==r;){r=t/xh;const o=t%xh;n.push(Number(o)*2**(53*e)),t=r,e++}return X(n)}const{round:Ih,sqrt:Nh}=Math;function Sh(t){if(t<=1n){if(t<0n)throw new Error("square root of negative numbers are not allowed");return t}let n=BigInt(Ih(Nh(Number(t))));for(;;){const e=n+t/n>>1n;if(e===n)return n;n=e}}function Eh(t){return t<0n?-t:t}function wh(t){let n=0n;for(let e=0;e<t.length;e++)n+=t[e];return n}function Mh(t,n){const[e,r]=Ph(t[0],n[0]),[o,i]=Ph(t[1],n[1]);if(0===ph(e,o)||0===ph(e,i))return e;if(0===ph(r,o)||0===ph(r,i))return r;throw new Error("An unexpected error occured.")}function Ph(t,n){const[e,r]=t,[o,i]=n,[s,c]=function(t){const[n,e]=mh(t).map(wh),r=bh(n,e);return[_h(Sh(Eh(n/r))),_h(Sh(Eh(e/r)))]}([o,e]);return[[rt(sn(i,c),sn(r,s)),sn(s,At(e))],[rt(sn(i,tt(c)),sn(r,s)),sn(s,At(e))]].sort(ph)}function Th(t,n){const e=Fc(t),r=0===y(e[0][0])?0:0===y(e[1][0])?1:-1;if(-1!==r){const e=t[0][r],o=t[2][r],i=n[0][r],s=n[2][r];return ah([[e,e],[o,o]],[[i,i],[s,s]])}return hh(Mh)(t,n)}const{round:yh,cbrt:Ch}=Math;function Oh(t){const n=(e=t)>0n?1n:e<0n?-1n:0n;var e;if((t=Eh(t))<=1n)return n*t;let r=BigInt(yh(Ch(Number(t))));for(;;){const e=(2n*r+t/(r*r))/3n;if(e===r)return n*r;r=e}}function Ah(t){return sn(t,t)}const zh=hh((function(t,n){const e=0===y(t[0][0])?1:0;return function(t,n){const[e,r]=t,[o,i]=n,s=function(t){const[n,e]=mh(t).map(wh),r=bh(n,e);return[_h(Oh(n/r)),_h(Oh(e/r))]}([o,e]),c=Ah(s[0]);return[rt(sn(i,Ah(s[1])),sn(r,c)),sn(j(3,e),c)]}(t[e],n[e])})),{EPSILON:Bh}=Number,Yh=Bh/2+Bh**2/2;function Fh(t){return t>0?t-t*Yh:t+t*Yh}const{EPSILON:Vh}=Number,kh=Vh/2+Vh**2/2;function Lh(t){return t>0?t+t*kh:t-t*kh}function Dh(t){if(0===t||1===t)return[t,t];const n=Fh(Fh(t)),e=function(t){return Lh(Lh(t))}(t);return[n,e]}function Xh(t,n,e,r){const o=t.ps,i=n.ps,s=[];let c=Xl(o,i);if(void 0===c){const r=2**(e-47),c=function(t,n,e=!1){e||(t=ih(t),n=ih(n));const r=[,,ah,Th,zh],[o,i]=r[t.length](t,n),[s,c]=r[t.length](n,t),u=[{tA:o,tB:0,bez:"B",start:!0},{tA:i,tB:1,bez:"B",start:!1},{tA:0,tB:s,bez:"A",start:!0},{tA:1,tB:c,bez:"A",start:!1}].sort(((t,n)=>t.tA-n.tA));if(u[1].tA===u[2].tA){const n=u[1],e=n.tA,r=n.tB,o=Xr(t,[e,e]);return[{p:o[0],kind:4,box:o,t1:e,ri1:{tS:e,tE:e,multiplicity:1},t2:r,ri2:{tS:r,tE:r,multiplicity:1}}]}if(u[0].bez===u[1].bez)return[];const f=u[1],l=u[2],[h,a]=Dh(f.tA),[p,d]=Dh(f.tB),[g,v]=Dh(l.tA),[m,b]=Dh(l.tB),x=Xr(t,[h,a]),_=Xr(n,[p,d]),I=Xr(t,[g,v]),N=Xr(n,[m,b]),S=$l(x,_),E=$l(I,N),w={tS:h,tE:a,multiplicity:1},M={tS:p,tE:d,multiplicity:1},P={tS:g,tE:v,multiplicity:1},T={tS:m,tE:b,multiplicity:1};return[{p:Yo(S),kind:5,box:S,t1:Bo(w),ri1:w,t2:Bo(M),ri2:M},{p:Yo(E),kind:5,box:E,t1:Bo(P),ri1:P,t2:Bo(T),ri2:T}]}(o,i);for(const e of c){const i=Mr(o,e.ri1.tS),c=[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]],u={x:{ri:e.ri1,kind:5,box:c},curve:t},f={x:{ri:e.ri2,kind:5,box:c},curve:n};s.push([u,f])}return s}if(r&&(c=c.filter((t=>t.tS>0))),0===c.length)return[];const u=Gl(o,i,c);if(void 0===u||0===u.length)return[];for(const e of u){const r={x:e[0],curve:t},o={x:e[1],curve:n};s.push([r,o])}return s}const qh=Mr,Qh=Tr,$h=Or(1);function Gh(t,n,e){const r=n.ps;if(0===t)return r[0],{x:{ri:{tS:t,tE:t,multiplicity:1},box:[r[0],r[0]],kind:e},curve:n};if(1===t){const o=r[r.length-1];return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[o,o],kind:e},curve:n}}const{p:o,pE:i}=function(t,n){const e=qh(t,n),r=Qh(t,[0,n]);if(4===t.length)return{p:e,pE:r.map((t=>9*$h*t))};if(3===t.length)return{p:e,pE:r.map((t=>6*$h*t))};if(2===t.length)return{p:e,pE:r.map((t=>3*$h*t))};if(1===t.length)return{p:t[0],pE:[0,0]};throw new Error("The given bezier curve must be of order <= 3.")}(r,t);return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]],kind:e},curve:n}}function Hh(t,n){if(n.next===t){if(t.next===n)return;[t,n]=[n,t]}const e=t.ps,r=n.ps;if(function(t,n){if(4===t.length)return Dl(t,n);if(3===t.length)return Tl(t,n);if(2===t.length)return function(t,n){const[e,r]=n,o=e.length,i=r.length,s=e[o-1],c=r[i-1],u=1===o&&1===i;{const{coeffs:{vₓ:n,vᵧ:o,v:i},errorBound:{v_:u}}=hs(t),f=pl(e),l=pl(r),h=dl(s),a=dl(c),p=dl(n[1]),d=dl(o[1]),g=h/3,v=a/3,m=n[1]*s,b=al(f,n),x=p*g+2*dl(m),_=o[1]*c,I=al(l,o),N=d*v+2*dl(_),S=cl(b,I),E=x+N+dl(S[1]),w=cl(S,i),M=E+u+dl(w[1]);if(gl*M<dl(hl(w)))return!1}{const n=function(t){return $c(Lc(t))}(t);if(void 0===n)return u&&s===t[0][0]&&c===t[0][1];const{vₓ:o,vᵧ:i,v:f}=n,l=ul(e,o),h=ul(r,i),a=fl(fl(l,h),f);return 0===ll(a)}}(t,n);if(1===t.length){const e=X(n[0]),r=X(n[1]);return 1===e.length&&1===r.length&&e[0]===t[0][0]&&r[0]===t[0][1]}throw new Error("The given bezier curve must be of order <= 3")}(e,r[r.length-1].map((t=>[t])))){const i=Gl(e,r,[(o=1,{tS:o,tE:o,multiplicity:1})]);if(void 0===i||0===i.length)return;return[[{x:i[0][0],curve:t},Gh(1,n,1)]]}var o}const Rh=Math.abs;const Uh=Math.abs,Zh=Or(1),jh=K,Wh=R,Jh=rt,Kh=rt,ta=K,na=j,ea=pe,ra=ge,oa=ae,ia=oe,sa=ce,ca=he,ua=R,fa=at,la=2*Number.EPSILON,ha=Math.abs,aa=Or(1);function pa(t,n=!0){if(t.length<4)return[];const{coeffs:[e,r,o],errBound:[i,s,c]}=function(t){const{coeffs:[[n,e,r],[o,i,s]],errorBound:[[c,u],[f,l]]}=function(t){const[[n,e],[r,o],[i,s],[c,u]]=t,f=c-n,l=r-i,h=f+3*l,a=i+n,p=a-2*r,d=r-n,g=u-e,v=o-s,m=g+3*v,b=s+e,x=b-2*o,_=o-e;return{coeffs:[[h,3*p,3*d,n],[m,3*x,3*_,e]],errorBound:[[Rh(f)+6*Rh(l)+Rh(h),6*(Rh(a)+Rh(p)),6*Rh(d),0],[Rh(g)+6*Rh(v)+Rh(m),6*(Rh(b)+Rh(x)),6*Rh(_),0]]}}(t),h=Uh(n),a=Uh(e),p=Uh(r),d=Uh(o),g=Uh(i),v=Uh(s),m=e*o,b=n*i,x=n*s,_=r*o,I=e*s,N=r*i,S=u*d+a*f+Uh(m),E=c*g+h*l+Uh(b),w=c*v+Uh(x),M=p*f+Uh(_),P=u*v+Uh(I),T=p*l+Uh(N),y=m-b,C=Uh(y),O=S+E+C,A=_-x,z=Uh(A),B=M+w+z,Y=I-N,F=Uh(Y),V=P+T+F,k=y*y,L=y*A,D=Y*y,X=A*A,q=D+X;return{coeffs:[k,L,q],errBound:[2*O*C+Uh(k),O*z+C*B+Uh(L),V*C+F*O+Uh(D)+(2*z*B+Uh(X))+Uh(q)].map((t=>Zh*t))}}(t);if(ha(e)<=i){const[[n,e],[r,o],[i,s],[c,u]]=t,f=ua(ea(c,n),na(3,ea(r,i))),l=fa(ra(i,n),-2*r),h=ua(ea(u,e),na(3,ea(o,s))),a=fa(ra(s,e),-2*o);if(0===yt(ta(l,h),ta(f,a)))return[]}const u=r*r,f=4*e*o,l=u-f,h=2*s*ha(r)+aa*u+(4*(i*ha(o)+ha(e)*c)+aa*ha(f))+aa*ha(l);if(l<-h)return[];if(l>h){const{est:t,err:u}=ee(l,h);let f;f=r>=0?-r-t:-r+t;const a=s+u+aa*ha(f),{est:p,err:d}=ve(f,2*e,a,2*i),{est:g,err:v}=ve(2*o,f,2*c,a);if(n){if(p+d<0||p-d>1||g+v<0||g-v>1)return[]}else if((p+d<0||p-d>1)&&(g+v<0||g-v>1))return[]}let[a,p,d]=function(t){const[[n,e,r],[o,i,s]]=Vc(t),c=jh(e,o),u=jh(n,i),f=jh(n,s),l=jh(r,o),h=jh(e,s),a=jh(r,i),p=Jh(c,u),d=Jh(l,f),g=Jh(h,a),v=jh(p,p),m=jh(p,d),b=jh(p,g),x=jh(d,d);return[v,m,Wh(b,x)]}(t);const g=Kh(ta(p,p),na(4,ta(a,d))),v=y(g);if(v<0)return[];if(v>0){const t=ne(Wt(g));let e;a=Wt(a),p=Wt(p),d=Wt(d),e=y(p)>=0?oa(ia(p,t)):ia(oa(p),t);let r=H(ca(e,sa(a))),o=H(ca(sa(d),e));if(n){if(r<-la||r>1+la||o<-la||o>1+la)return[]}else if((r<-la||r>1+la)&&(o<-la||o>1+la))return[];return[r,o]=r<o?[r,o]:[o,r],r>=0-la&&r<=1+la?o>=0-la&&o<=1+la?[r,o]:[r]:o>=0-la&&o<=1+la?[o]:[]}const m=zt(a);if(y(p)*y(m)<0)return[];if(yt(Ot(p),Ot(m))>0)return[];const b=Wt(p),x=Wt(m),_=ca(b,x),I=_[1]+_[0];return[I,I]}const da=Number.EPSILON;function ga(t){if(4===t.length){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[6*(c-n+3*(r-i)),6*(i+n-2*r)],[6*(u-e+3*(o-s)),6*(s+e-2*o)]]}if(3===t.length){const[[n,e],[r,o],[i,s]]=t;return[[2*(i-2*r+n)],[2*(s-2*o+e)]]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}const{orient2d:va}=un;function ma(t){if(4===t.length)return 0===va(t[0],t[1],t[2])&&0===va(t[1],t[2],t[3])&&0===va(t[0],t[2],t[3]);if(3===t.length)return 0===va(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}function ba(t){if(ma(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&Kl(t)&&(t=gu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,s]]=t,c=i-r,u=c-(r-n),f=s-o,l=f-(o-e);return[u*u+l*l,-(n*(u-r)-r*(c-r)+e*(l-o)-o*(f-o))]}(t);return{minima:[],maxima:Ni(n,0,1),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,s]]=wr(t),[[c,u],[f,l]]=ga(t),[h,a]=function(t){if(4===t.length){const[[n,e],[r,o],[i,s],[c,u]]=t;return[6*(c-n+3*(r-i)),6*(u-e+3*(o-s))]}if(t.length<=3)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}(t),p=h*i,d=a*e,g=u*s,v=u*i,m=f*f,b=c*s,x=l*r,_=l*e,I=f*r,N=r*e,S=r*n,E=r*o,w=e*e,M=e*n,P=e*i,T=n*s,y=n*o,C=n*n,O=s*i,A=s*o,z=i*i,B=i*o,Y=o*o,F=h*s-a*r,V=u*r+l*s,k=g-x,L=r*r+s*s,D=P+T,X=A+z,q=S+w,Q=e*o+n*i,$=C-Y,G=M-B,H=N-O,R=r*i+e*s,U=A+X,Z=S+q,j=E+D,W=P+D,J=Z-U,K=D+T,tt=E+P+T,nt=2*_+I;return{inflectionPoly:[c*o-f*n,u*o+c*i-l*n-f*e,v+b-_-I,g-x],otherExtremaPoly:[C*(p-3*d)+Y*(3*p-d)+2*(y*(h*e-a*i+3*(l*f-u*c))+3*c*f*G)+3*(Q*(m-c*c)+$*(u*f+l*c)),h*(o*(Z+3*X)+n*W)-a*(r*(3*C+Y)+e*(3*M+2*B)+n*U)+3*(u*(l*$-u*y+2*(f*G-c*Q))+c*(2*l*G+f*(2*(S-A)+(w-z))-c*tt)+l*(l*y+2*f*Q)+m*j),h*(2*r*Q+e*K+i*(4*A+U))-a*(2*r*(3*M+B)+e*(w+2*A)+i*K)+3*(u*(2*(l*G-c*tt)+f*J-u*Q)+c*(2*f*H-c*R)+l*(l*Q+2*f*j+c*J)+m*R),h*(r*(E+2*D)+s*(w+3*X))-a*(r*(3*q+U)+s*W)+3*(u*(l*J-u*j+2*(f*H-c*R))+c*(r*(nt-c*s)-s*(2*l*i+f*s))+l*(l*D+r*(2*f*i+l*o))+f*s*nt),L*(p-d)+2*(N+O)*F-3*(V*(v+b-_-I)+(u*e+c*r+l*i+f*s)*k),F*L-3*V*k]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=Ni(r,0,1),i=hi(r),s=[],c=[];for(let t=0;t<o.length;t++){const n=o[t],r=E(i,n);E(e,n)*r>=0?s.push(n):c.push(n)}return{minima:s,maxima:c,inflections:Ni(e,0,1)}}function xa(t,n){const[e,r]=wr(t),[o,i]=ga(t),s=E(e,n),c=E(r,n),u=E(o,n);return(s*E(i,n)-c*u)/Math.sqrt((s*s+c*c)**3)}const{abs:_a}=Math,Ia=P((function(t){const n=t.curves;let e=qr(n[0].ps).minY,r=n[0];for(let o=1;o<n.length;o++){const n=qr(t.curves[o].ps).minY,i=n.box[0][1],s=e.box[0][1];(i<s||i===s&&n.ts[0]>e.ts[0])&&(e=n,r=t.curves[o])}return{curve:r,y:e}}));function Na(t){const{curve:n,y:e}=Ia(t),r=e.ts;return r[0]<=0?[Gh(0,n,0),Gh(1,n.prev,0)]:r[1]>=1?[Gh(1,n,0),Gh(0,n.next,0)]:[{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n},{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n}]}function Sa(t,n,e){const r=e-(n-Math.floor(Math.log2(Math.abs(t))))+1;return r<=0?0:e>=53?t:q(t,r)}const{abs:Ea}=Math;function wa(t,n){let e=t.side-n.side;if(0!==e)return e;const r=t.sideX,o=n.sideX;e=r.ri.tS-o.ri.tS;const i=8*Number.EPSILON;return Ea(e)>=i?e:(r.compensated||(r.compensated=1,r.riExp=Ji(r.ri,r.getPExact())[0]),o.compensated||(o.compensated=1,o.riExp=Ji(o.ri,o.getPExact())[0]),e=yt(r.riExp.tS,o.riExp.tS),0!==e?e:(e=n.dir-t.dir,0!==e?e:1===t.dir?t.idx-n.idx:n.idx-t.idx))}function Ma(t,n,e){const r=function(t,n){const e=[];for(const n of t)for(const t of n.curves)e.push(t);const r=il(e,(t=>Pi(t.ps)[0][0]),(t=>Pi(t.ps)[1][0]),function(t){return(n,e)=>{const r=n.ps,o=e.ps;if(2===r.length&&2===o.length)return function(t,n,e){let r=t.ps,o=n.ps;const i=Pi(r),s=Pi(o);if(t.next!==n&&n.next!==t){if(Yi(!0,i,s)){const r=Xh(t,n,e,!1);return r.length?r:void 0}return}if(n.next===t&&([t,n]=[n,t],[r,o]=[o,r]),0!==en(r[0],r[1],o[1]))return;if(!Yi(!1,i,s))return;let c;return c=p(r[0],r[1])>p(o[0],o[1])?[Bo(Qo(r,o[1])[0].ri),1]:[0,Bo(Qo(o,r[0])[0].ri)],[[Gh(1,t,5),Gh(0,n,5)],[Gh(c[0],t,5),Gh(c[1],n,5)]]}(n,e,t);if(n.next===e||e.next===n)return Yi(!1,Pi(r),Pi(o))&&Hl(Ur(r),Ur(o),!1)?e.next===n?Xh(e,n,t,!0):Xh(n,e,t,!0):Hh(n,e);let i=Yi(!0,Pi(r),Pi(o));return i?(i=Hl(Ur(r),Ur(o),!0),i?Xh(n,e,t,!1):void 0):void 0}}(n)),o=[];for(const t of r)for(const n of t.u)o.push(n);return o}(t,e),o=function(t){const n=[];for(const e of t)for(const t of e.curves){const e=t.ps,r=pa(e);if(0===r.length)continue;const o=r[0]===r[1]?3:2,i=r[0]-da,s=r[0]+da,c=r[1]-da,u=r[1]+da,f=Xr(e,[i,s]),l=Xr(e,[c,u]);n.push([{x:{ri:{tS:i,tE:s,multiplicity:1},box:f,kind:o},curve:t},{x:{ri:{tS:c,tE:u,multiplicity:1},box:l,kind:o},curve:t}])}return n}(t),i=function(t){const n=[];for(const e of t)for(const t of e.curves)n.push([Gh(1,t,4),Gh(0,t.next,4)]);return n}(t),{extremes:s,xs:c}=function(t){const n=new Map,e=[];for(const r of t){const t=Na(r);e.push(t),n.set(r,t)}return{extremes:n,xs:e}}(t),u=function(t,n){const e=[];for(const r of n)for(const n of r.curves){const r=n.ps,o=ba(r),{minima:i,maxima:s}=o,c=[0,1,...i,...s];for(let o of c)_a(xa(r,o))>1e7*2**-t&&e.push([Gh(o,n,7),Gh(o,n,7)])}return e}(e,t);let f=[...r,...o,...i,...c,...u];if("undefined"!=typeof _debug_){for(const t of r)_debug_.generated.elems.intersection.push(...t);for(const t of o)_debug_.generated.elems.intersection.push(...t);for(const t of i)_debug_.generated.elems.intersection.push(...t);for(const t of c)_debug_.generated.elems.intersection.push(...t);for(const t of u)_debug_.generated.elems.intersection.push(...t)}let l=f.map((t=>({xs:t,box:[[t[0].x.box[0][0]-n,t[0].x.box[0][1]-n],[t[0].x.box[1][0]+n,t[0].x.box[1][1]+n]],inOuts:void 0})));for(;;){const t=il(l,Pa,Ta,Fi);if(!t.length)break;const n=new Map;Vi(n,t);const e=Di(n),r=Xi(l,e);l=[...qi(e),...r]}l=function(t){return t.filter((t=>{const n=t.xs;if(2===t.xs.length){const t=n[0];if(1===t.x.kind&&t.x.ri.multiplicity%2==0)return!1}for(const n of t.xs)if(4!==n.x.kind)return!0;return!1}))}(l),l=function(t,n,e){const r=Math.log2(e)-3;return t.map((t=>{const e=t.box.map((t=>t.map((t=>Sa(t,n,n-r)))));return{...t,box:e}}))}(l,e,n),"undefined"!=typeof _debug_&&(_debug_.generated.elems.container=l);let h=0;for(const t of l){for(const n of t.xs)n.container=t;let n;({inOuts:n,ioIdx:h}=el(t,h)),t.inOuts=n}f=f.filter((t=>void 0!==t[0].container)),function(t){const n=new Map;for(const e of t)for(const t of e){const e=t.curve.loop,r=n.get(e)||[];r.length||n.set(e,r),r.push(t)}for(const t of n){const n=t[1];if(!n||!n.length)continue;n.sort(((t,n)=>{let e=t.curve.idx-n.curve.idx;return 0!==e?e:(e=t.x.ri.tS-n.x.ri.tS,0!==e?e:void 0!==t.in_?-1:1)}));const e=n.length;for(let t=0;t<e;t++)n[t].next=n[(t+1)%e]}}(f);for(const t of l)for(const n of t.inOuts){if(-1===n.dir)continue;let t=n._x_;for(;t=t.next,void 0===t.in_;);n.next=t.in_,n.idx=n.next.idx}for(const t of l)t.inOuts.sort(wa);for(const t of l){const n=t.inOuts;let e=n[n.length-1];for(let t=0;t<n.length;t++){const r=n[t];r.prevAround=e,e.nextAround=r,e=r}}return{extremes:s,containers:l}}function Pa(t){return t.box[0][0]}function Ta(t){return t.box[1][0]}function ya(t){const n=t.inOuts,e=n[0],r=n[n.length-1];return 1===e.dir?(e.orientation=-1,e):(r.orientation=1,r)}function Ca(t=[],n){const e=[],r={beziers:t,curves:e,idx:n};if(!t.length)return r;let o,i=0;for(let n=0;n<t.length;n++){if(2===(s=t[n]).length?s[0][0]===s[1][0]&&s[0][1]===s[1][1]:3===s.length?s[0][0]===s[1][0]&&s[0][1]===s[1][1]&&s[1][1]===s[2][1]&&s[1][1]===s[2][1]:s[0][0]===s[1][0]&&s[0][1]===s[1][1]&&s[1][1]===s[2][1]&&s[1][1]===s[2][1]&&s[2][1]===s[3][1]&&s[2][1]===s[3][1])continue;const c={loop:r,ps:t[n],prev:o,next:void 0,idx:i};o&&(o.next=c),o=c,e.push(c),i++}var s;const c=e[e.length-1];return e[0].prev=c,c.next=e[0],c.ps[c.ps.length-1]=e[0].ps[0],r}function Oa(t){if(!ma(t))return!1;const n=t.map((t=>t[0])),e=t.map((t=>t[1]));return!(Aa(n)&&Aa(e))}function Aa(t){return function(t){for(let n=1;n<t.length;n++)if(t[n-1]>t[n])return!1;return!0}(t)||function(t){for(let n=1;n<t.length;n++)if(t[n-1]<t[n])return!1;return!0}(t)}function za(t,n){const e=n/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[e*t[0],e*t[1]]}function Ba(t){for(let n=0;n<t.length-1;n++)for(let e=n+1;e<t.length;e++)if(t[n][0]===t[e][0]&&t[n][1]===t[e][1])return!1;return!0}const{abs:Ya}=Math;function Fa(t,n,e){if(void 0!==t&&!oh(t)){if(2===t.length)return t;if(3===t.length){if(Ba(t))return ma(t)?[t[0],t[2]]:t;if(ka(t[0],t[2]))return;return[t[0],t[2]]}if(Ba(t)){const r=Va(t);if(void 0===r)return;return function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e][0]!==n[e][0]||t[e][1]!==n[e][1])return!1;return!0}(r,t)?t:Fa(r,n,e)}if(ka(t[0],t[3])){if(ma(t))return;return t}if(ma(t))return[t[0],t[3]];if(ka(t[0],t[1])&&ka(t[1],t[2])||ka(t[1],t[2])&&ka(t[2],t[3])||ka(t[0],t[1])&&ka(t[2],t[3]))return Fa([t[0],t[t.length-1]],n,e);if(ka(t[0],t[2])||ka(t[1],t[3])||ka(t[1],t[2]))return t;if(ka(t[0],t[1])){if(p(t[1],t[2])<4*n)return[t[0],t[2],t[2],t[3]];{const r=za(d(t[1],t[2]),2*n),o=I(t[1],r);return Va([t[0],e(o),t[2],t[3]])}}if(ka(t[2],t[3])){if(p(t[2],t[1])<4*n)return[t[0],t[1],t[1],t[3]];{const r=za(d(t[2],t[1]),2*n),o=I(t[2],r);return Va([t[0],t[1],e(o),t[3]])}}}}function Va(t){return ma(t)?[t[0],t[3]]:Kl(t)?gu(t):t}function ka(t,n){return t[0]===n[0]&&t[1]===n[1]}function La(t){return t}function Da(t,n,e,r=!1,o=!0){const i=function(t,n,e=!0){const r=2**t*2**-n,o=e?function(t,n){return e=>[Sa(e[0],t,n),Sa(e[1],t,n)]}(t,n):La;return t=>{const n=[];for(let e=0;e<t.length;e++){let i=t[e].slice();const s=n[n.length-1],c=s?s[s.length-1]:o(t[0][0]);i[0]=c,i=i.map((t=>o(t))),Oa(i)&&(i=[i[0],i[i.length-1]]),i=Fa(i,r,o),void 0!==i&&n.push(i)}const e=n.length;if(!e)return[];const i=n[e-1];return i[i.length-1]=n[0][0],n}}(e,n,o);let s=t.slice();return s=r?function(t,n,e,r=.02){const o=[];for(const i of t){const t=[];for(const o of i){const i=o.map((t=>t.map((t=>{let o,i=0,s=0,c=0;for(;!(++s>10);){i=(t+Math.random())*(1+(Math.random()-.7)*r),i=Sa(i,e,n);const s=ot(i);s>c&&(c=s,o=i)}return o}))));t.push(i)}o.push(t)}return o}(s,n,e,1):s,s=s.map(i),s=s.filter((t=>t.length>0)),s}const Xa=P((t=>{let n=0;for(const e of t)for(const t of e)for(const e of t)for(const t of e){const e=Math.abs(t);e>n&&(n=e)}return n}));function qa(t,n){const e=[],r=t.length-1;for(let n=0;n<r+1;n++)e.push(t[n]/(r+1-n));return e.push(n),e}const Qa=Ko;function $a(t,n){const e=t.length-1,r=n.length-1,o=e-r,i=o<0?+o:0,s=o>0?-o:0,c=Math.max(e,r),u=[];for(let e=0;e<c+1;e++){const r=t[e+i]||0,o=n[e+s]||0;u.push(r+o)}return Qa(u)}function Ga(t){let n=0;for(const e of t.curves){const t=e.ps,[r,o]=Si(t),[i,s]=wr(t);n+=E(qa($a(ni(r,s),tr(ni(o,i))),0),1)}return-n/2}function Ha(t){return[t[1],-t[0]]}const Ra=P((t=>!!vn(t)&&gn(t).isDull));function Ua(t,n){return vn(n)&&Ra(n)?-b(Ha(gn(n).tangents[0]),N(d(n.p,t.center))):0}const Za=function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=s-n*(s-u),p=u-n*(u-l),d=a-n*(a-p),g=c-n*(c-f),v=f-n*(f-h),m=g-n*(g-v);return[[s,c],[a,g],[d,m],[d-n*(d-(p-n*(p-(l-n*(l-i[0]))))),m-n*(m-(v-n*(v-(h-n*(h-i[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],d=s-n*(s-u),g=u-n*(u-l),v=l-n*(l-a),m=d-n*(d-g),b=g-n*(g-v),x=c-n*(c-f),_=f-n*(f-h),I=h-n*(h-p),N=x-n*(x-_),S=_-n*(_-I);return[[m-n*(m-b),N-n*(N-S)],[b,S],[v,I],[a,p]]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],s=t[3],c=r[0],u=r[1],f=o[0],l=o[1],h=i[0],a=i[1],p=n*n,d=n*p,g=e*e,v=e*g,m=n*e,b=c-f,x=h-f,_=b+x,I=n*b,N=e*b,S=s[0]-c-3*x,E=u-l,w=a-l,M=E+w,P=n*E,T=e*E,y=s[1]-u-3*w;return[[d*S+(3*n*(n*_-b)+c),d*y+(3*n*(n*M-E)+u)],[m*(n*S+2*_)+(p*_+c-(N+2*I)),m*(n*y+2*M)+(p*M+u-(T+2*P))],[m*(e*S+2*_)+(g*_+c-(2*N+I)),m*(e*y+2*M)+(g*M+u-(2*T+P))],[v*S+(3*e*(e*_-b)+c),v*y+(3*e*(e*M-E)+u)]]}(t,n,e)},ja=function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=n*n,l=i-c,h=s-u;return[[i,s],[-n*l+i,-n*h+s],[f*(l+(o[0]-c))-(2*n*l-i),f*(h+(o[1]-u))-(2*n*h-s)]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=o[0],l=o[1],h=n*n,a=i-c,p=f-c,d=s-u,g=l-u;return[[h*(a+p)-(2*n*a-i),h*(d+g)-(2*n*d-s)],[n*p+c,n*g+u],[f,l]]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],s=r[0],c=r[1],u=o[0],f=o[1],l=n*n,h=e*e,a=n*e,p=s-u,d=p+(i[0]-u),g=c-f,v=g+(i[1]-f);return[[l*d-(2*n*p-s),l*v-(2*n*g-c)],[a*d-(p*(e+n)-s),a*v-(g*(e+n)-c)],[h*d-(2*e*p-s),h*v-(2*e*g-c)]]}(t,n,e)},Wa=function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[[o,i],[n*(r[0]-o)+o,n*(r[1]-i)+i]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1];return[[n*(s-o)+o,n*(c-i)+i],[s,c]]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],s=r[1],c=o[0],u=o[1];return[[n*(c-i)+i,n*(u-s)+s],[e*(c-i)+i,e*(u-s)+s]]}(t,n,e)};function Ja(t,n,e){if(4===t.length)return Za(t,n,e);if(3===t.length)return ja(t,n,e);if(2===t.length)return Wa(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function Ka(t){return t[0]*t[0]+t[1]*t[1]}function tp(t,n,e){return t[0]*(n[1]*e[2]-n[2]*e[1])-t[1]*(n[0]*e[2]-n[2]*e[0])+t[2]*(n[0]*e[1]-n[1]*e[0])}function np(t){const n=t[0],e=t[1],r=t[2],o=Ka,i=.5*tp([o(n),n[1],1],[o(e),e[1],1],[o(r),r[1],1]),s=.5*tp([n[0],o(n),1],[e[0],o(e),1],[r[0],o(r),1]),c=tp([n[0],n[1],1],[e[0],e[1],1],[r[0],r[1],1]);return[i/c,s/c]}function ep(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}const rp=pe,op=oe,ip=te,sp=le,cp=ce,up=ue,fp=ie;function lp(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],[d,g]=n,v=rp(s,d),m=rp(u,d),b=rp(l,d),x=rp(a,d),_=rp(c,g),I=rp(f,g),N=rp(h,g),S=rp(p,g),E=sp(v,v),w=ip(6,sp(v,m)),M=ip(6,sp(v,b)),P=cp(sp(v,x)),T=ip(9,sp(m,m)),y=ip(18,sp(m,b)),C=ip(6,sp(m,x)),O=ip(9,sp(b,b)),A=ip(6,sp(b,x)),z=sp(x,x),B=sp(_,_),Y=ip(6,sp(_,I)),F=ip(6,sp(_,N)),V=cp(sp(_,S)),k=ip(9,sp(I,I)),L=ip(18,sp(I,N)),D=ip(6,sp(I,S)),X=ip(9,sp(N,N)),q=ip(6,sp(N,S)),Q=sp(S,S),$=op(C,O),G=op(P,y),H=op(M,T),R=op(D,X),U=op(V,L),Z=op(F,k);return[ip(6,op(op(op(op(fp(z,A),fp(E,w)),$),fp(H,G)),op(op(op(fp(Q,q),fp(B,Y)),R),fp(Z,U)))),ip(5,op(fp(op(op(A,ip(5,w)),ip(3,G)),cp(op(op($,cp(H)),ip(3,E)))),fp(op(op(q,ip(5,Y)),ip(3,U)),cp(op(op(R,cp(Z)),ip(3,B)))))),up(op(fp(fp($,ip(3,fp(G,cp(H)))),ip(5,fp(cp(w),ip(3,E)))),fp(fp(R,ip(3,fp(U,cp(Z)))),ip(5,fp(cp(Y),ip(3,B)))))),ip(3,op(fp(G,cp(fp(cp(H),ip(5,fp(w,cp(E)))))),fp(U,cp(fp(cp(Z),ip(5,fp(Y,cp(B)))))))),cp(op(fp(H,ip(5,fp(w,ip(3,E)))),fp(Z,ip(5,fp(Y,ip(3,B)))))),op(fp(w,ip(6,E)),fp(Y,ip(6,B)))]}const hp=pe,ap=oe,pp=te,dp=le,gp=ce,vp=ie,mp=ue;function bp(t,n){const[[e,r],[o,i],[s,c]]=t,[u,f]=n,l=hp(e,u),h=hp(o,u),a=hp(s,u),p=hp(r,f),d=hp(i,f),g=hp(c,f),v=dp(l,l),m=dp(l,h),b=dp(l,a),x=dp(h,h),_=dp(h,a),I=dp(a,a),N=dp(p,p),S=dp(p,d),E=dp(p,g),w=dp(d,d),M=dp(d,g),P=dp(g,g),T=ap(E,gp(w)),y=ap(b,gp(x));return[ap(vp(ap(ap(P,N),gp(T)),mp(ap(M,S))),vp(ap(ap(I,v),gp(y)),mp(ap(_,m)))),pp(3,ap(ap(vp(M,T),vp(pp(3,S),N)),ap(vp(_,y),vp(pp(3,m),v)))),ap(vp(T,pp(3,vp(gp(S),N))),vp(y,pp(3,vp(gp(m),v)))),ap(vp(S,N),vp(m,v))]}const xp=de,_p=oe,Ip=fe,Np=ie;function Sp(t,n){const[[e,r],[o,i]]=t,[s,c]=n,u=e-s,f=o-s,l=r-c,h=i-c,a=xp(u,u),p=xp(u,f),d=xp(f,f),g=xp(l,l),v=xp(l,h),m=xp(h,h),b=_p(p,v),x=_p(g,a);return[_p(_p(d,m),_p(x,Ip(b))),Np(b,x)]}const Ep=T,wp=sn,Mp=j,Pp=At,Tp=zt,yp=on,Cp=rt,Op=T,Ap=sn,zp=j,Bp=At,Yp=on,Fp=rt;function Vp(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const kp=T,Lp=sn,Dp=zt,Xp=on,qp=rt,Qp=Math.abs;function $p(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=Qp(e[0]),c=Qp(e[1]),u=Qp(r[0]),f=Qp(r[1]),l=Qp(o[0]),h=Qp(o[1]),a=Qp(i[0]),p=Qp(i[1]),d=Qp(n[0]),g=Qp(n[1]),v=s+d,m=u+d,b=l+d,x=a+d,_=c+g,I=f+g,N=h+g,S=p+g,E=v*v,w=6*v*m,M=6*b*x,P=_*_,T=6*_*I,y=6*N*S,C=6*m*x+9*b*b,O=2*v*x+18*m*b,A=6*v*b+9*m*m,z=6*I*S+9*N*N,B=2*_*S+18*I*N,Y=6*_*N+9*I*I;return[6*(x*x+M+(E+w)+C+(A+O)+(S*S+y+(P+T)+z+(Y+B))),5*(M+5*w+3*O+2*(C+2*A+3*E)+(y+5*T+3*B+2*(z+2*Y+3*P))),4*(C+3*(O+2*A)+5*(2*w+3*E)+(z+3*(B+2*Y)+5*(2*T+3*P))),3*(O+2*(2*A+5*(w+2*E))+(B+2*(2*Y+5*(T+2*P)))),2*(A+5*(w+3*E)+(Y+5*(T+3*P))),w+6*E+(T+6*P)]}function Gp(t,n){const e=t[0],r=t[1],o=t[2],i=Qp(e[0]),s=Qp(e[1]),c=Qp(r[0]),u=Qp(r[1]),f=Qp(o[0]),l=Qp(o[1]),h=Qp(n[0]),a=Qp(n[1]),p=i+h,d=c+h,g=f+h,v=s+a,m=u+a,b=l+a,x=p*p,_=p*d,I=d*g,N=v*v,S=v*m,E=m*b,w=v*b+m*m*2,M=p*g+d*d*2;return[b*b+N+2*w+4*(E+S)+(g*g+x+2*M+4*(I+_)),3*(E+w+(3*S+N)+(I+M+(3*_+x))),w+3*(2*S+N)+(M+3*(2*_+x)),S+N+(_+x)]}function Hp(t,n){const e=t[0],r=t[1],o=Qp(e[0]),i=Qp(e[1]),s=Qp(r[0]),c=Qp(r[1]),u=Qp(n[0]),f=Qp(n[1]),l=o+u,h=s+u,a=i+f,p=c+f,d=l*h+a*p,g=a*a+l*l;return[h*h+p*p+2*d+g,d+g]}const Rp=Number.EPSILON/2,Up=Rp*Rp;function Zp(t){const n=t*Rp;return n/(1-n)}function jp(t){const n=t*Up;return n/(1-n)}Zp(1),jp(3);const Wp=jp(6);function Jp(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,r],[o,i],[s,c],[u,f]]=t,l=e+(o-e)*n,h=o+(s-o)*n,a=l+(h-l)*n,p=r+(i-r)*n,d=i+(c-i)*n,g=p+(d-p)*n;return[a+(h+(s+(u-s)*n-h)*n-a)*n,g+(d+(c+(f-c)*n-d)*n-g)*n]}if(3===t.length){const[[e,r],[o,i],[s,c]]=t,u=e+(o-e)*n,f=r+(i-r)*n;return[u+(o+(s-o)*n-u)*n,f+(i+(c-i)*n-f)*n]}if(2===t.length){const[[e,r],[o,i]]=t;return[e+(o-e)*n,r+(i-r)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}const Kp=Math.abs;function td(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=Kp(n[1]);if(4===t.length){const[[n,r],[o,i],[s,c],[u,f]]=t,l=Kp(n),h=Kp(r),a=Kp(o),p=Kp(i),d=Kp(s),g=Kp(c),v=l+(a+l)*e,m=a+(d+a)*e,b=v+(m+v)*e,x=h+(p+h)*e,_=p+(g+p)*e,I=x+(_+x)*e;return[b+(m+(d+(Kp(u)+d)*e+m)*e+b)*e,I+(_+(g+(Kp(f)+g)*e+_)*e+I)*e]}if(3===t.length){const[[n,r],[o,i],[s,c]]=t,u=Kp(n),f=Kp(r),l=Kp(o),h=Kp(i),a=u+(l+u)*e,p=f+(h+f)*e;return[a+(l+(Kp(s)+l)*e+a)*e,p+(h+(Kp(c)+h)*e+p)*e]}if(2===t.length){const[[n,r],[o,i]]=t,s=Kp(n),c=Kp(r);return[s+(Kp(o)+s)*e,c+(Kp(i)+c)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const nd=Math.abs,ed=[[0,0],[0,0],[0,0],[0,0]];function rd(t,n,e){return 0===n?1===e?{ps:t,_ps:ed}:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],d=s-n*(s-u),g=u-n*(u-l),v=d-n*(d-g),m=v-n*(v-(g-n*(g-(l-n*(l-a))))),b=c-n*(c-f),x=f-n*(f-h),_=b-n*(b-x),I=_-n*(_-(x-n*(x-(h-n*(h-p))))),N=nd(n),S=nd(s),E=nd(u),w=nd(l),M=nd(a),P=nd(c),T=nd(f),y=nd(h),C=S+N*(S+E),O=E+N*(E+w),A=C+N*(C+O),z=P+N*(P+T),B=T+N*(T+y),Y=z+N*(z+B);return{ps:[[s,c],[d,b],[v,_],[m,I]],_ps:[[0,0],[C,z],[A,Y],[A+N*(A+(O+N*(O+(w+N*(w+M))))),Y+N*(Y+(B+N*(B+(y+N*(y+nd(p))))))]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],d=s-n*(s-u),g=u-n*(u-l),v=l-n*(l-a),m=d-n*(d-g),b=g-n*(g-v),x=m-n*(m-b),_=c-n*(c-f),I=f-n*(f-h),N=h-n*(h-p),S=_-n*(_-I),E=I-n*(I-N),w=S-n*(S-E),M=nd(n),P=nd(s),T=nd(u),y=nd(l),C=nd(a),O=nd(c),A=nd(f),z=nd(h),B=P+M*(P+T),Y=T+M*(T+y),F=y+M*(y+C),V=B+M*(B+Y),k=Y+M*(Y+F),L=O+M*(O+A),D=A+M*(A+z),X=z+M*(z+nd(p)),q=L+M*(L+D),Q=D+M*(D+X);return{ps:[[x,w],[b,E],[v,N],[a,p]],_ps:[[V+M*(V+k),q+M*(q+Q)],[k,Q],[F,X],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],s=t[3],c=r[0],u=r[1],f=o[0],l=o[1],h=i[0],a=i[1],p=n*n,d=n*p,g=e*e,v=e*g,m=n*e,b=c-f,x=h-f,_=s[0]-c,I=b+x,N=n*b,S=e*b,E=_-3*x,w=u-l,M=a-l,P=s[1]-u,T=w+M,y=n*w,C=e*w,O=P-3*M,A=d*E+(3*n*(n*I-b)+c),z=m*(n*E+2*I)+(p*I+c-(S+2*N)),B=m*(e*E+2*I)+(g*I+c-(2*S+N)),Y=v*E+(3*e*(e*I-b)+c),F=d*O+(3*n*(n*T-w)+u),V=m*(n*O+2*T)+(p*T+u-(C+2*y)),k=m*(e*O+2*T)+(g*T+u-(2*C+y)),L=v*O+(3*e*(e*T-w)+u),D=nd(n),X=nd(e),q=nd(m),Q=nd(d),$=nd(v),G=nd(c),H=nd(f),R=G+H,U=nd(h)+H,Z=R+U,j=D*R,W=X*R,J=nd(_)+3*U,K=nd(u),tt=nd(l),nt=K+tt,et=nd(a)+tt,rt=nt+et,ot=D*nt,it=X*nt,st=nd(P)+3*et;return{ps:[[A,F],[z,V],[B,k],[Y,L]],_ps:[[Q*J+(3*D*(D*Z+R)+G),Q*st+(3*D*(D*rt+nt)+K)],[q*(D*J+2*Z)+(p*Z+G+(W+2*j)),q*(D*st+2*rt)+(p*rt+K+(it+2*ot))],[q*(X*J+2*Z)+(g*Z+G+(2*W+j)),q*(X*st+2*rt)+(g*rt+K+(2*it+ot))],[$*J+(3*X*(X*Z+R)+G),$*st+(3*X*(X*rt+nt)+K)]]}}(t,n,e)}const od=Math.abs,id=[[0,0],[0,0],[0,0]];function sd(t,n,e){return 0===n?1===e?{ps:t,_ps:id}:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=o[0],l=o[1],h=n*n,a=i-c,p=s-u,d=[[i,s],[-n*a+i,-n*p+s],[h*(a+(f-c))-(2*n*a-i),h*(p+(l-u))-(2*n*p-s)]],g=od(n),v=od(i),m=od(c),b=od(f),x=v+m,_=od(s),I=od(u),N=_+I;return{ps:d,_ps:[[0,0],[g*x+v,g*N+_],[h*(x+(b+m))+(2*g*x+v),h*(N+(od(l)+I))+(2*g*N+_)]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=o[0],l=o[1],h=n*n,a=i-c,p=f-c,d=s-u,g=l-u,v=[[h*(a+p)-(2*n*a-i),h*(d+g)-(2*n*d-s)],[n*p+c,n*g+u],[f,l]],m=od(n),b=od(i),x=od(c),_=b+x,I=od(f)+x,N=od(s),S=od(u),E=N+S;return{ps:v,_ps:[[h*(_+I)+(2*m*_+b),h*(E+(od(l)+S))+(2*m*E+N)],[m*I+x,0],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],s=r[0],c=r[1],u=o[0],f=o[1],l=i[0],h=i[1],a=n*n,p=e*e,d=n*e,g=s-u,v=g+(l-u),m=c-f,b=m+(h-f),x=a*v-(2*n*g-s),_=d*v-(g*(e+n)-s),I=p*v-(2*e*g-s),N=a*b-(2*n*m-c),S=d*b-(m*(e+n)-c),E=p*b-(2*e*m-c),w=od(n),M=od(e),P=od(d),T=od(s),y=od(u),C=T+y,O=C+od(l)+y,A=od(c),z=od(f),B=A+z,Y=B+od(h)+z;return{ps:[[x,N],[_,S],[I,E]],_ps:[[a*O+(2*w*C+T),a*Y+(2*w*B+A)],[P*O+(C*(M+w)+T),P*b+(B*(M+w)+A)],[p*O+(2*M*C+T),p*Y+(2*M*B+A)]]}}(t,n,e)}const cd=Math.abs,ud=[[0,0],[0,0]];const fd=Number.EPSILON/2,ld=Zp(1);function hd(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:r}=rd(t,n[0],n[1]),o=e[0][0],i=e[1][0],s=e[2][0],c=e[3][0],u=9*fd*r[0][0],f=9*fd*r[1][0],l=9*fd*r[2][0],h=9*fd*r[3][0],a=e[0][1],p=e[1][1],d=e[2][1],g=e[3][1],v=9*fd*r[0][1],m=9*fd*r[1][1],b=9*fd*r[2][1],x=9*fd*r[3][1],_=Math.min(o-u,i-f,s-l,c-h),I=Math.max(o+u,i+f,s+l,c+h);return[[_,Math.min(a-v,p-m,d-b,g-x)],[I,Math.max(a+v,p+m,d+b,g+x)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:r}=sd(t,n[0],n[1]),o=e[0][0],i=e[1][0],s=e[2][0],c=5*fd*r[0][0],u=5*fd*r[1][0],f=5*fd*r[2][0],l=e[0][1],h=e[1][1],a=e[2][1],p=5*fd*r[0][1],d=5*fd*r[1][1],g=5*fd*r[2][1],v=Math.min(o-c,i-u,s-f),m=Math.max(o+c,i+u,s+f);return[[v,Math.min(l-p,h-d,a-g)],[m,Math.max(l+p,h+d,a+g)]]}(t,n):function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:ud}:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1],u=[[o,i],[n*(s-o)+o,n*(c-i)+i]],f=cd(n),l=cd(o),h=cd(s),a=cd(i);return{ps:u,_ps:[[0,0],[f*(h+l)+l,f*(cd(c)+a)+a]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1],u=[[n*(s-o)+o,n*(c-i)+i],[s,c]],f=cd(n),l=cd(o),h=cd(s),a=cd(i);return{ps:u,_ps:[[f*(h+l)+l,f*(cd(c)+a)+a],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],s=r[1],c=o[0],u=o[1],f=[[n*(c-i)+i,n*(u-s)+s],[e*(c-i)+i,e*(u-s)+s]],l=cd(n),h=cd(e),a=cd(i),p=cd(c),d=cd(s),g=cd(u);return{ps:f,_ps:[[l*(p+a)+a,l*(g+d)+d],[h*(p+a)+a,h*(g+d)+d]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],s=3*fd*r[0][0],c=3*fd*r[1][0],u=e[0][1],f=e[1][1],l=3*fd*r[0][1],h=3*fd*r[1][1],a=Math.min(o-s,i-c),p=Math.max(o+s,i+c);return[[a,Math.min(u-l,f-h)],[p,Math.max(u+l,f+h)]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n)return[e,e];if(1===n)return[r,r];const o=Jp(t,n);let i;if(4===t.length)i=td(t,[0,n]).map((t=>8*ld*t));else if(3===t.length)i=td(t,[0,n]).map((t=>5*ld*t));else if(2===t.length)i=td(t,[0,n]).map((t=>2*ld*t));else if(1===t.length)return[o,o];return[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]]}(t,n[0])}const ad=Number.EPSILON/2,pd=ad*ad;function dd(t){const n=t*pd;return n/(1-n)}const gd=te,vd=oe,{abs:md}=Math,bd=dd(3);function xd(t,n,e){const r=t.length-1,o=[t[0]];let i=n[0];const s=[i];for(let c=1;c<r;c++){const r=o[c-1],u=e*r[1],f=md(e)*i+md(u),l=t[c];i=n[c]+f+md(l[1]+u);const h=vd(l,gd(e,r));o.push(h),s.push(i)}return{coeffs:o,errBound:s.map((t=>bd*t))}}const _d=cn,Id=on;function Nd(t,n){const e=t.length-1,r=[t[0]];for(let o=1;o<e;o++)r.push(Id(t[o],_d(n,r[o-1])));return r}const Sd=H,Ed=T,wd=sn,Md=on,Pd=Number.EPSILON,Td=dd(3),{sqrt:yd}=Math;function Cd(t,n,[e,r]=[0,1],o=void 0,i=void 0,s=!1,c=0){const u=t.ps,f=0===c&&t===o;let{polyDd:l,polyE:h,getPolyExact:a}=function(t,n){const e=t.length-1;if(3===e)return{polyDd:lp(t,n),polyE:$p(t,n).map((t=>10*Wp*t)),getPolyExact:()=>function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],[d,g]=n,v=Ep(s,d),m=Ep(u,d),b=Ep(l,d),x=Ep(a,d),_=Ep(c,g),I=Ep(f,g),N=Ep(h,g),S=Ep(p,g),E=wp(v,v),w=Mp(6,wp(v,m)),M=Mp(6,wp(v,b)),P=Pp(wp(v,x)),T=Mp(9,wp(m,m)),y=Mp(18,wp(m,b)),C=Mp(6,wp(m,x)),O=Mp(9,wp(b,b)),A=Mp(6,wp(b,x)),z=wp(x,x),B=wp(_,_),Y=Mp(6,wp(_,I)),F=Mp(6,wp(_,N)),V=Pp(wp(_,S)),k=Mp(9,wp(I,I)),L=Mp(18,wp(I,N)),D=Mp(6,wp(I,S)),X=Mp(9,wp(N,N)),q=Mp(6,wp(N,S)),Q=wp(S,S),$=yp(C,O),G=yp(P,y),H=yp(M,T),R=yp(D,X),U=yp(V,L),Z=yp(F,k),j=Cp(yp(yp(z,E),yp($,H)),yp(yp(G,A),w)),W=Cp(yp(yp(Q,B),yp(R,Z)),yp(yp(U,q),Y)),J=Mp(6,yp(j,W)),K=yp(Tp(yp(yp($,Pp(H)),Mp(3,E))),yp(yp(A,Mp(3,G)),Mp(5,w))),tt=yp(Tp(yp(yp(R,Pp(Z)),Mp(3,B))),yp(yp(q,Mp(3,U)),Mp(5,Y))),nt=Mp(5,yp(K,tt)),et=yp(yp($,Mp(3,Cp(Pp(H),G))),Mp(5,Cp(Mp(3,E),Pp(w)))),rt=yp(yp(R,Mp(3,Cp(Pp(Z),U))),Mp(5,Cp(Mp(3,B),Pp(Y)))),ot=Mp(4,yp(et,rt)),it=Cp(G,Pp(Cp(Pp(H),Mp(5,Cp(w,Pp(E)))))),st=Cp(U,Pp(Cp(Pp(Z),Mp(5,Cp(Y,Pp(B)))))),ct=Mp(3,yp(it,st)),ut=Cp(H,Mp(5,Cp(w,Mp(3,E)))),ft=Cp(Z,Mp(5,Cp(Y,Mp(3,B)))),lt=Pp(yp(ut,ft)),ht=Cp(w,Mp(6,E)),at=Cp(Y,Mp(6,B));return[J,nt,ot,ct,lt,yp(ht,at)]}(t,n)};if(2===e)return{polyDd:bp(t,n),polyE:Gp(t,n).map((t=>8*Wp*t)),getPolyExact:()=>function(t,n){const[[e,r],[o,i],[s,c]]=t,[u,f]=n,l=Op(e,u),h=Op(o,u),a=Op(s,u),p=Op(r,f),d=Op(i,f),g=Op(c,f),v=Ap(l,l),m=Ap(l,h),b=Ap(l,a),x=Ap(h,h),_=Ap(h,a),I=Ap(a,a),N=Ap(p,p),S=Ap(p,d),E=Ap(p,g),w=Ap(d,d),M=Ap(d,g),P=Ap(g,g),T=Yp(E,Bp(w)),y=Yp(b,Bp(x)),C=Yp(Fp(Yp(I,Bp(y)),Vp(Yp(_,m))),v),O=Yp(Fp(Yp(P,Bp(T)),Vp(Yp(M,S))),N),A=Yp(C,O),z=Yp(Fp(_,y),Fp(zp(3,m),v)),B=Yp(Fp(M,T),Fp(zp(3,S),N)),Y=zp(3,Yp(z,B)),F=Fp(T,zp(3,Fp(Bp(S),N))),V=Fp(y,zp(3,Fp(Bp(m),v))),k=Yp(F,V),L=Fp(S,N),D=Fp(m,v);return[A,Y,k,Yp(L,D)]}(t,n)};if(1===e)return{polyDd:Sp(t,n),polyE:Hp(t,n).map((t=>6*Wp*t)),getPolyExact:()=>function(t,n){const[[e,r],[o,i]]=t,[s,c]=n,u=kp(e,s),f=kp(o,s),l=kp(r,c),h=kp(i,c),a=Lp(u,u),p=Lp(u,f),d=Lp(f,f),g=Lp(l,l),v=Lp(l,h),m=Lp(h,h),b=Xp(p,v),x=Xp(g,a);return[Xp(Xp(d,m),Xp(Dp(b),x)),qp(b,x)]}(t,n)};if(0===e)return{polyDd:[[0,1]],polyE:[0],getPolyExact:()=>[[1]]};throw new Error("The given bezier curve must be of order <= 3")}(u,n);const p=f?xd(l,h.map((t=>t/Td)),i):void 0,d=s&&f?xd(p.coeffs,p.errBound.map((t=>t/Td)),i):void 0,g=s&&f?xd(d.coeffs,d.errBound.map((t=>t/Td)),i):void 0,{polyDd:v,polyE:m,getPolyExact:b}=void 0!==g?{polyDd:g.coeffs,polyE:g.errBound.map((t=>t/Td)),getPolyExact:()=>Nd(Nd(Nd(a(),i),i),i)}:void 0!==p?{polyDd:p.coeffs,polyE:p.errBound.map((t=>t/Td)),getPolyExact:()=>Nd(a(),i)}:{polyDd:l,polyE:h,getPolyExact:a},x=Nr(v,e,r,m,b),_=1===i&&t===o.next||0===i&&t===o,I=0===i&&t===o.prev||1===i&&t===o;0===e?_||x.push({tS:0,tE:0,multiplicity:1}):1===e?I||x.push({tS:1,tE:1,multiplicity:1}):x.push({tS:e,tE:e,multiplicity:1}),0===r?_||x.push({tS:0,tE:0,multiplicity:1}):1===r?I||x.push({tS:1,tE:1,multiplicity:1}):x.push({tS:r,tE:r,multiplicity:1});const N=x.map((o=>{const{tS:i,tE:s}=o;if(s<e||i>r)return;const c=(i+s)/2,f=c<0?0:c>1?1:c,l=hd(u,[i,s]),h=function(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}(l),a=function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1],u=n[0],f=n[1];let l=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY;for(const[t,n]of[[o,i],[o,c],[s,i],[s,c]]){const e=Ed(t,u),r=Ed(n,f),o=Md(wd(e,e),wd(r,r)),i=Sd(o),s=i*(1-Pd),c=i*(1+Pd);s<=l&&(l=s),c>=h&&(h=c)}return[l,h]}(l,n),p=0===f?1:f;return{curve:0===f?t.prev:t,p:h,t:p,d:(yd(a[0])+yd(a[1]))/2,dSquaredI:a,box:l}}));return N.filter((t=>void 0!==t))}const Od=p;function Ad(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],s=r[0],c=r[1],u=n[0],f=n[1];return u<o?f<i?Od(t[0],n):f>c?Od([o,c],n):(o-u)**2:u>s?f<i?Od([s,i],n):f>c?Od(t[1],n):(u-s)**2:f<i?(i-f)**2:f>c?(f-c)**2:0}function zd(t){const n=function(t){const n=t[0],e=t[t.length-1];let r,o;if(n[0]<e[0]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minX:r,maxX:o};const[i]=w(t),s=Er(i,0,1);for(let n=0;n<s.length;n++){const e=s[n],i=[e.tS,e.tE],c=hd(t,i);c[0][0]<r.box[0][0]&&(r={ts:i,box:c}),c[1][0]>o.box[0][0]&&(o={ts:i,box:c})}return{minX:r,maxX:o}}(t),e=function(t){const n=t[0],e=t[t.length-1];let r,o;if(n[1]<e[1]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minY:r,maxY:o};const[,i]=w(t),s=Er(i,0,1);for(let n=0;n<s.length;n++){const e=s[n],i=[e.tS,e.tE],c=hd(t,i);c[0][1]<r.box[0][1]&&(r={ts:i,box:c}),c[1][1]>o.box[0][1]&&(o={ts:i,box:c})}return{minY:r,maxY:o}}(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}const Bd=P(zd);function Yd(t){let n=0;for(let e=0;e<t.length-1;e++)n+=$r(t[e],t[e+1]);return n}function Fd(t){const[n,e]=t[0],[r,o]=t[t.length-1];let i,s;const c=Yd(t);if(256*p(t[0],t[t.length-1])<c*c){const[r,o]=Jp(t,.5),c=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/c,s=(r-n)/c}else{const t=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/t,s=(r-n)/t}const u=function(t,n,e){const r=I(t[0].map((t=>-t)));return zd(t.map((t=>S(-n,e,r(t)))))}(t,i,s),[[f,l],[h,a]]=u,d=[u[0],[h,l],u[1],[f,a]],g=S(i,s);return d.map((n=>I(t[0],g(n))))}function Vd(t,n){const e=[0,1,2,3].map((e=>function(t,n){const e=p,r=n[0],o=n[1],i=e(r,o);if(0==i)return e(t,r);let s=((t[0]-r[0])*(o[0]-r[0])+(t[1]-r[1])*(o[1]-r[1]))/i;return s=Math.max(0,Math.min(1,s)),e(t,[r[0]+s*(o[0]-r[0]),r[1]+s*(o[1]-r[1])])}(n,[t[e],t[(e+1)%4]]))),r=p(t[0],t[1]),o=p(t[0],t[3]);return e[0]<=o&&e[2]<=o&&e[1]<=r&&e[3]<=r?0:Math.min(...e)}const kd=P(Fd);function Ld(t,n){const e=function(t,n){let e=Number.POSITIVE_INFINITY;for(let r=0;r<t.length;r++){const o=t[r],i=o.curve.ps,s=Jp(i,o.ts[0]),c=Jp(i,o.ts[1]),u=Math.min(p(n,s),p(n,c));u<e&&(e=u)}return(1+2**-10)*e}(t,n);return t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],s=i.curve.ps;Ad(Bd(s),n)<=e&&r.push(i)}return r}(t,n,e),t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],s=i.curve.ps;Vd(kd(s),n)<=e&&r.push(i)}return r}(t,n,e),t}function Dd(t,n,e=void 0,r=void 0,o=!1,i=0){t=Ld(t,n);const s=[];for(let c=0;c<t.length;c++){const u=t[c],f=Cd(u.curve,n,u.ts,e,r,o,i);s.push(...f)}let c=Number.POSITIVE_INFINITY;for(let t=0;t<s.length;t++){const n=s[t].dSquaredI[1];n<c&&(c=n)}const u=[];for(let t=0;t<s.length;t++){const n=s[t];n.dSquaredI[0]<=c&&u.push(n)}return u.map((t=>Se(t.curve,t.t,!1)))}function Xd(t,n){return n.map((n=>Dd(n,t)[0]))}function qd(t,n,e){const r=ep(e);let o,i,s,c,u=1,f=0;do{i=I([(h=u)*(l=e)[0],h*l[1]],n),s=Xd(i,t),c=ep(d(i,np(s.map((t=>t.p))))),o=c<r,u/=2,f++}while(!o&&f<3);var l,h;return{newX:i,newV:c,newPs:s}}const Qd=d;function $d(t,n,e,r,o){const i=2**-32*o,s=[t[0],t[n],t[t.length-1]],c=[r[0],r[n],r[t.length-1]],u=[[s[0],s[1],s[2]],[s[1],s[2],s[0]],[s[2],s[0],s[1]]][e],f=[[c[0],c[1],c[2]],[c[1],c[2],c[0]],[c[2],c[0],c[1]]][e];if(Yn(u[0][0]))return;let l,h,a=0,p=function(t,n){const e=t[0][0].cp.circle.center,r=Dd(n[1],e)[0];return np([t[0][0].cp.pointOnShape.p,r.p,t[2][1].cp.pointOnShape.p])}(u,f);if("undefined"!=typeof _debug_){const t=_debug_.generated.elems.threeProng,n=t[t.length-1];n.traces[n.traces.length-1].push(p)}let g=Number.POSITIVE_INFINITY;for(;g>i&&a<10;){if(a++,l=Xd(p,f),!Number.isFinite(p[0])||!Number.isFinite(p[1]))return;h=np(l.map((t=>t.p)));const t=Qd(p,h);if(!Number.isFinite(t[0])||!Number.isFinite(t[1]))return;const n=qd(f,p,t);if(p=n.newX,l=n.newPs,"undefined"!=typeof _debug_){const t=_debug_.generated.elems.threeProng,n=t[t.length-1];n.traces[n.traces.length-1].push(p)}const e=ep(t);g=Math.abs(e-n.newV)}const v=($r(p,l[0].p)+$r(p,l[1].p)+$r(p,l[2].p))/3,m={center:p,radius:v};let b=0;for(let t=0;t<3;t++){const n=l[t],e=N(d(n.p,p)),r=x(e);if(Ra(n)){const t=dn(n.curve).tangents.map(x),r=Math.asin(_(t[0],e)),o=Math.asin(_(e,t[1]));let i=0;r>0&&(i+=r),o>0&&(i+=o),b+=i}else{const t=N(M(n.curve.ps,n.t));b+=Math.abs(Math.asin(_(r,t)))}}const I=[];for(let t=0;t<r.length;t++){const n=Dd(r[t],p)[0];I.push($r(n.p,p))}const S=Math.min(...I);return{ps:l,circle:m,error:1*Math.abs(v-S)+1*b,δ3s:u}}const Gd=P((t=>!!vn(t)&&gn(t).isQuiteSharp));function Hd(t){let n=t[0];const e=t[1],r=[];let o=!0;do{if(!o){o=!0,n=n.prevOnCircle;continue}o=!1;const t=n.cp.pointOnShape,e=n.next.cp.pointOnShape;e.curve===t.curve&&Gd(t)&&Gd(e)||(e.curve===t.curve&&h(n.next.cp,n.cp)>0?r.push({curve:t.curve,ts:[t.t,e.t]}):(r.push({curve:t.curve,ts:[t.t,1]}),n.cp.pointOnShape.curve.loop===n.next.cp.pointOnShape.curve.loop&&Rd(r,t.curve,e.curve,e.t))),n=n.next}while(n!==e);return r}function Rd(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push({curve:o,ts:[0,n]})}while(o!==e)}function Ud(){if("undefined"!=typeof _debug_){const t=_debug_.generated.elems.threeProng,n=[];t[t.length-1].traces.push(n)}}function Zd(t,n,e){"undefined"!=typeof _debug_&&t.push({circle:n,ps:e})}function jd(t,n,e,r){const o=t.findBounds(Sn({pointOnShape:n,circle:void 0,order:e,order2:r},!1,!1));return o[0]||o[1]?o[0]&&o[1]?[o[0].datum,o[1].datum]:[t.max(t.root),t.min(t.root)]:[void 0,void 0]}function Wd(t,n,e,r,o){const i=r.map(((r,i)=>{const s=e.get(r.curve.loop);return yn(!1,!1,s,{pointOnShape:r,circle:t,order:n[i],order2:0},(o?o[i]:jd(s,r,n[i],0))[0])})),s=r.length;for(let t=0;t<s;t++){const n=0===t?s-1:t-1,e=t===s-1?0:t+1;i[t].prevOnCircle=i[n],i[t].nextOnCircle=i[e]}return i}const Jd=Math.cos(Math.PI/180*3);function Kd(t,n,e,r,o,i){const s=2e-14*i,c=.02*s,u=jd(t.get(n.curve.loop),n,r,o);if(!u[0])return;const{p:f,t:l}=n;for(const t of u){const n=t.cp.pointOnShape.p,r=$r(f,n);if(!(r>s)&&(b(N(d(n,t.cp.circle.center)),N(d(f,e.center)))>Jd||r<c&&0!==l&&1!==l))return t}}let tg=0;function ng(t,n,e){let r;do{if(r=Xn(n),r.length>2){const n=eg(t,r,e);1===n.length&&n[0],tg++}if("undefined"!=typeof _debug_&&tg===_debug_.directives.stopAfterThreeProngsNum)return}while(r.length>2);return r}function eg(t,n,e){const r=[];for(const t of n)r.push([t,t.next]);const o=function(t,n){const e=t.map(Hd);!function(t){if("undefined"!=typeof _debug_){const n=_debug_.generated.elems.threeProng;n.push({generated:void 0,circle:void 0,poss:void 0,cp3ss:void 0,cpss:void 0,bestIndx:void 0,candidateThreeProngs:void 0,visitedCps:void 0,boundaries:void 0,traces:void 0});const e=n[n.length-1];e.boundaries=[];for(const n of t){const t=[];e.boundaries.push(t);for(const e of n){const n=Ja(e.curve.ps,e.ts[0],e.ts[1]);t.push(n)}}e.traces=[]}}(e);const r=[];let o,i,s=Number.POSITIVE_INFINITY;for(let c=1;c<t.length-1;c++)for(let u=0;u<3;u++){Ud();const f=$d(t,c,u,e,n);if(!f)continue;const{circle:l,ps:h,error:a,δ3s:p}=f;Zd(r,l,h),a<s&&(s=a,i=c-1,o={circle:l,ps:h,δ3s:p})}return function(t,n,e,r){if("undefined"!=typeof _debug_){const o=_debug_.generated.elems.threeProng,i=o[o.length-1];i.generated=_debug_.generated,void 0!==t&&(i.circle=t.circle,i.poss=t.ps,i.cp3ss=t.δ3s),i.cpss=n,i.bestIndx=e,i.candidateThreeProngs=r}}(o,t,i,r),o}(r,e),i=[];for(let t=0;t<3;t++)i.push(Ua(o.circle,o.ps[t]));const s=function(t,n,e){const{circle:r,ps:o,δ3s:i}=e;return Kd(t,o[0],r,n[0],0,1e3),Kd(t,o[1],r,n[1],0,1e3),Kd(t,o[2],r,n[2],0,1e3),Wd(r,n,t,o,i)}(t,i,o);return"undefined"!=typeof _debug_&&3===s.length&&function(t,n){const e=_debug_.generated.elems.threeProng,r=e[e.length-1];r.visitedCps=n,r.circle=t}(s[0].cp.circle,n),s}function rg(t,n,e){function r(n,e){let r=t.get(n);r||(r=new Set,t.set(n,r)),r.add(e)}void 0!==n&&(r(n,e),r(e,n))}function og(t,n,e){let r;r=t.get(n);const o=r&&r.has(e);r=t.get(e);const i=r&&r.has(n);return o||i}const ig=-1,sg=1,cg=0;class ug{constructor(t){this.datum=t,this.color=cg}}function fg(t){return!!t&&t.color===cg}class lg{constructor(t,n=!0,e){if(this.compare=t,this.duplicatesAllowed=n,this.getMinNode=this.getMinOrMaxNode(ig),this.getMaxNode=this.getMinOrMaxNode(sg),this.root=void 0,this.nodeCount=0,this.valueCount=0,e)for(const t of e)this.insert(t)}isEmpty(){return!this.root}find(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return e;e=e[r>0?sg:ig]}}toArrayInOrder(){const t=[];return function n(e){e&&(n(e[ig]),t.push(e.datum),void 0!==e.extras&&t.push(...e.extras),n(e[sg]))}(this.root),t}insertMulti(t){const n=this;for(const e of t)n.insert(e)}insert(t){const n=this;n.root=function t(e,r){if(void 0===e)return n.valueCount++,n.nodeCount++,new ug(r);const o=n.compare(r,e.datum);if(0===o&&(n.duplicatesAllowed?(n.valueCount++,void 0===e.extras?e.extras=[r]:e.extras.push(r)):e.datum=r),0!==o){const n=o>0?sg:ig;e[n]=t(e[n],r),e[n].parent=e}return fg(e[sg])&&!fg(e[ig])&&(e=hg(ig,e)),fg(e[ig])&&fg(e[ig][ig])&&(e=hg(sg,e)),fg(e[ig])&&fg(e[sg])&&pg(e),e}(n.root,t),n.root.color=1,n.root.parent=void 0}remove(t,n=!1,e){const r=this;if(void 0===r.root)return;let o;const i=function t(i,s){const c=r.duplicatesAllowed&&void 0!==i.extras;let u=r.compare(s,i.datum);if(u<0&&!i[ig]||u>0&&!i[sg])return i;if(u<0){fg(i[ig])||fg(i[ig][ig])||(i=dg(i));const n=t(i[ig],s);return null===n?null:(i[ig]=n,i[ig]&&(i[ig].parent=i),gg(i))}if(fg(i[ig])&&(i=hg(sg,i),u=r.compare(s,i.datum)),0===u&&!i[sg]){if(c&&!n){if(void 0===e||!0===e(s,i.datum))return o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0),i;{const t=i.extras;for(let n=0;n<t.length;n++)if(!0===e(s,t[n]))return o=t.splice(n,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),i;return null}}return void 0===e||!0===e(s,i.datum)?(o=i.datum,r.valueCount-=1+(c?i.extras.length:0),void r.nodeCount--):null}if(fg(i[sg])||fg(i[sg][ig])||(i=function(t){return pg(t),fg(t[ig][ig])&&pg(t=hg(sg,t)),t}(i),u=r.compare(s,i.datum)),0===u)if(c&&!n)if(void 0===e||!0===e(s,i.datum))o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0);else{const t=i.extras;let n=!1;for(let c=0;c<t.length;c++)if(!0===e(s,t[c])){o=t.splice(c,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),n=!0;break}if(!n)return null}else{if(void 0!==e&&!0!==e(s,i.datum))return null;{r.valueCount-=1+(c?i.extras.length:0),o=i.datum;const t=r.getMinNode(i[sg]);i.datum=t?.datum,r.duplicatesAllowed&&(i.extras=t?.extras),i[sg]=ag(i[sg]),r.nodeCount--}}else{const n=t(i[sg],s);if(null===n)return null;i[sg]=n}return i[sg]&&(i[sg].parent=i),gg(i)}(r.root,t);return null!==i?(r.root=i,void 0!==r.root&&(r.root.color=1,r.root.parent=void 0),o):void 0}findBounds(t){const n=this;let e=n.root;const r=[void 0,void 0];if(void 0===e)return r;for(;e;){const o=n.compare(t,e.datum);o>=0?r[0]=e:r[1]=e,e=e[o>=0?sg:ig]}return r}findBoundsExcl(t){const n=this,e=n.root,r=[void 0,void 0];return void 0===e||function e(o){for(;o;){const i=n.compare(t,o.datum);if(0===i)return e(o[ig]),void e(o[sg]);i>0?r[0]=o:i<0&&(r[1]=o),o=o[i>0?sg:ig]}}(e),r}findAll(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return[e.datum,...e.extras?e.extras:[]];e=e[r>0?sg:ig]}return[]}getMinOrMaxNode(t){return n=>{if(void 0===n&&(n=this.root),n){for(;n[t];)n=n[t];return n}}}min(t){void 0===t&&(t=this.root);const n=this.getMinNode(t);if(void 0!==n)return n.datum}max(t){void 0===t&&(t=this.root);const n=this.getMaxNode(t);if(void 0!==n)return n.datum}}function hg(t,n){const e=n[-t];return n[-t]=e[t],e[t]&&(e[t].parent=n),e[t]=n,n.parent=e,e.color=n.color,n.color=cg,e}function ag(t){if(t[ig])return fg(t[ig])||fg(t[ig][ig])||(t=dg(t)),t[ig]=ag(t[ig]),t[ig]&&(t[ig].parent=t),gg(t)}function pg(t){t.color=(t.color+1)%2,t[ig].color=(t[ig].color+1)%2,t[sg].color=(t[sg].color+1)%2}function dg(t){if(pg(t),fg(t[sg][ig])){const n=hg(sg,t[sg]);t[sg]=n,n.parent=t,pg(t=hg(ig,t))}return t}function gg(t){return fg(t[sg])&&(t=hg(ig,t)),fg(t[ig])&&fg(t[ig][ig])&&(t=hg(sg,t)),fg(t[ig])&&fg(t[sg])&&pg(t),t}const vg=Rr;let mg;const bg=Number.POSITIVE_INFINITY,xg=P((function(t){const n=[[{bezier:void 0,t:void 0,val:bg},{bezier:void 0,t:void 0,val:bg}],[{bezier:void 0,t:void 0,val:-bg},{bezier:void 0,t:void 0,val:-bg}]];return t.curves.forEach((function(t){const e=function(t){const n=w(t),e=Ni(n[0],0,1),r=Ni(n[1],0,1);e.push(0,1),r.push(0,1);let o,i,s,c,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY;for(let n=0;n<e.length;n++){const r=e[n],[s]=Jp(t,r);s<u&&(u=s,o=r),s>f&&(f=s,i=r)}for(let n=0;n<r.length;n++){const e=r[n],[,o]=Jp(t,e);o<l&&(l=o,s=e),o>h&&(h=o,c=e)}return{ts:[[o,s],[i,c]],box:[[u,l],[f,h]]}}(t.ps);{const r=e.box[0][0],o=n[0][0].val;(r<o||r===o&&e.ts[0][0]>n[0][0].t)&&(n[0][0]={bezier:t,t:e.ts[0][0],val:r})}{const r=e.box[0][1],o=n[0][1].val;(r<o||r===o&&e.ts[0][1]>n[0][1].t)&&(n[0][1]={bezier:t,t:e.ts[0][1],val:r})}{const r=e.box[1][0],o=n[1][0].val;(r>o||r===o&&e.ts[1][0]>n[1][0].t)&&(n[1][0]={bezier:t,t:e.ts[1][0],val:r})}{const r=e.box[1][1],o=n[1][1].val;(r>o||r===o&&e.ts[1][1]>n[1][1].t)&&(n[1][1]={bezier:t,t:e.ts[1][1],val:r})}})),{minY:Se(n[0][1].bezier,n[0][1].t,!0),minX:Se(n[0][0].bezier,n[0][0].t,!0),maxX:Se(n[1][0].bezier,n[1][0].t,!0),maxY:Se(n[1][1].bezier,n[1][1].t,!0)}})),_g=P((function(t){let n,e,r,o,i=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,c=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(const f of t){const t=xg(f);t.minX.p[0]<i&&(n=t.minX,i=t.minX.p[0]),t.maxX.p[0]>s&&(e=t.maxX,s=t.maxX.p[0]),t.minY.p[1]<c&&(r=t.minY,c=t.minY.p[1]),t.maxY.p[1]>u&&(o=t.maxY,u=t.maxY.p[1])}return{minX:n,minY:r,maxX:e,maxY:o}})),Ig=oe,Ng=te;function Sg(t,n){let e=[0,0];for(let r=0;r<t.length;r++)e=Ig(t[r],Ng(n,e));return e}Sg([[0,1],[0,1],[0,-2],[0,3]],.25);const Eg=ge,wg=pe,Mg=te,Pg=oe,Tg=re;function yg(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[Mg(3,Pg(wg(c,n),Mg(3,wg(r,i)))),Mg(6,Tg(Eg(i,n),-2*r)),Mg(3,wg(r,n))],[Mg(3,Pg(wg(u,e),Mg(3,wg(o,s)))),Mg(6,Tg(Eg(s,e),-2*o)),Mg(3,wg(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,s]]=t;return[[Tg(Eg(2*i,2*n),-4*r),wg(2*r,2*n)],[Tg(Eg(2*s,2*e),-4*o),wg(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[wg(r,n)],[wg(o,e)]]}(t);if(1===t.length)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const Cg=pe,Og=oe,Ag=te,zg=re;function Bg(t){if(4===t.length){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[Ag(6,Og(Cg(c,n),Ag(3,Cg(r,i)))),Ag(6,zg(Cg(i,2*r),n))],[Ag(6,Og(Cg(u,e),Ag(3,Cg(o,s)))),Ag(6,zg(Cg(s,2*o),e))]]}if(3===t.length){const[[n,e],[r,o],[i,s]]=t;return[[zg(Cg(2*i,4*r),2*n)],[zg(Cg(2*s,4*o),2*e)]]}if(t.length<=2)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const Yg=le,Fg=oe,Vg=ie,kg=T,Lg=pt,Dg=j,Xg=on,qg=at;function Qg(t,n,e=!1){const r=n.curve.ps,{p:o,t:i}=n;let s=-function(t,n){const[e,r]=yg(t),[o,i]=Bg(t),s=Sg(e,n),c=Sg(r,n),u=Sg(o,n),f=Sg(i,n),l=Vg(Yg(s,f),Yg(c,u)),h=Fg(Yg(s,s),Yg(c,c)),a=Yg(h,Yg(h,h)),p=Math.sqrt(a[1]);return l[1]/p}(r,i);(s<t||e)&&(s=t);const c=function(t,n){const[e,r]=function(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[Dg(3,Xg(kg(c,n),Dg(3,kg(r,i)))),Dg(6,qg(Lg(i,n),-2*r)),Dg(3,kg(r,n))],[Dg(3,Xg(kg(u,e),Dg(3,kg(o,s)))),Dg(6,qg(Lg(s,e),-2*o)),Dg(3,kg(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,s]]=t;return[[qg(Lg(2*i,2*n),-4*r),kg(2*r,2*n)],[qg(Lg(2*s,2*e),-4*o),kg(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[kg(r,n)],[kg(o,e)]]}(t);if(1===t.length)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t);return[$e(e,n),$e(r,n)]}(r,i).map((t=>t[t.length-1])),u=[-c[1],c[0]],f=Math.sqrt(u[0]**2+u[1]**2);return{center:[o[0]-u[0]/(s*f),o[1]-u[1]/(s*f)],radius:1/s}}function $g(t){return t.holeClosing?"twoProng_holeClosing":"twoProng_regular"}const{abs:Gg}=Math,Hg=pe,Rg=de;function Ug(t,n,e){const r=Gg(t[1]-n[1])>Gg(t[0]-n[0]);let o,i,s,c,u,f;r?(o=t[1],i=t[0],s=n[1],c=n[0],u=e[1],f=e[0]):(o=t[0],i=t[1],s=n[0],c=n[1],u=e[0],f=e[1]);const l=he(Hg(i,c),Hg(o,s)),h=ie([0,c],se(s,l)),a=oe(ie(oe(Rg(s,s),Rg(c,c)),oe(Rg(u,u),Rg(f,f))),ce(le(h,Hg(f,c)))),p=oe(Hg(s,u),le(l,Hg(c,f))),d=he(a,ce(p)),g=oe(le(l,d),h);return r?[g[1],d[1]]:[d[1],g[1]]}function Zg(t,n,e,r){const o=(2**-14*t)**2;if(p(n,r)<o)return;const i=[(n[0]+r[0])/2,(n[1]+r[1])/2],s=[r[0]-n[0],r[1]-n[1]],c=[-s[1],s[0]],u=a([n,e],[i,[i[0]+c[0],i[1]+c[1]]]);return u?b([u[0]-n[0],u[1]-n[1]],[e[0]-n[0],e[1]-n[1]])<0?void 0:u:void 0}function jg(t,n){const[e,r]=t,[o,i]=n,s=pe(e,o),c=pe(r,i),u=le(s,s),f=le(c,c);return oe(u,f)[1]}function Wg(t,n,e){if(t.length<=1)return t;const r=[];for(const o of t){const t=o.curve.ps;Ad(Bd(t),n)<=1.0009765625*e&&r.push(o)}return r}function Jg(t,n,e,r){if(Ra(r))return;const o={radius:t,center:n};if(Kd(e,r,o,Ua(o,r),0,1e3))return;const i=Wd(o,[-.5,.5],e,[r,r]);"undefined"!=typeof _debug_&&_debug_.generated.elems.oneProng.push(i)}const{sqrt:Kg,abs:tv,sin:nv,cos:ev}=Math;function rv(t,n,e,r,o,i,s,c,u){const f=(2**-21*e)**2,l=2**-46*e,h=Kg(r),a=1/h;let v;const m=i.p;let b;if(s)v=[m[0],m[1]-h],b=h;else if(0===t)({center:v,radius:b}=Qg(a,i));else{({center:v,radius:b}=Qg(a,i,!0));const n=d(i.p,v),e=S(nv(t),ev(t))(n);v=I(i.p)(e)}const{bezierPieces:x,δ:_}=function(t,n,e,r,o,i,s){if(n){const t=[];for(let n=0;n<e;n++){const e=r[n].curves.map((t=>({curve:t,ts:[0,1]})));t.push(...e)}return{bezierPieces:t,δ:void 0}}let c;const u=Ra(i)?1===i.t&&0===t?-1:0===i.t?1:Ua(s,i):0,f=r[e],l=jd(o.get(f),i,u,0)[0],h=[l,l];return c=l&&l!==l.next.next?Hd(h):f.curves.map((t=>({curve:t,ts:[0,1]}))),{bezierPieces:c,δ:h}}(t,s,c,n,o,i,{center:v,radius:b});let N=v;const E=Kg(function(t,n,e,r){let o,i=Number.POSITIVE_INFINITY;for(let s=0;s<n.length;s++){const c=n[s],u=c.curve.ps;let f=Number.POSITIVE_INFINITY;const l=Jp(u,c.ts[0]);if(!o||o[0]!==l[0]||o[1]!==l[1]){const n=Zg(t,e,r,l);n&&(f=p(e,n))}let h=Number.POSITIVE_INFINITY;const a=Jp(u,c.ts[1]),d=Zg(t,e,r,a);d&&(h=p(e,d)),o=a;const g=Math.min(f,h);g<i&&(i=g)}return(1+2**-10)*i}(e,x,m,v));b>E&&(N=g(m,v,E/b));const w=[];let M,P,T=x,y=0;for(;y<25;){const n=jg(N,i.p);if(y<5&&(T=Wg(T,N,n)),M=Dd(T,N,i.curve,i.t,u&&0==y&&b!==1/a,t).map((t=>Se(t.curve,t.t,!1))),P=M[0],void 0===P)return void ov(s);const e=jg(N,P.p),r=jg(i.p,P.p);if(0===y&&b<(1-2**-6)*Kg(e))return void Jg(b,v,o,i);if("undefined"!=typeof _debug_&&w.push({x:N,y:i,z:Se(P.curve,P.t,!1),t:i.t}),!s&&r<=f)return;if(N=Ug(N,i.p,P.p),tv(Kg(n)-Kg(e))<l)break;if(y++,25===y)return void("undefined"!=typeof _debug_&&console.log("failed (slow): max iterations reached"))}const C={center:N,radius:$r(N,P.p)};return"undefined"!=typeof _debug_&&function(t,n,e,r,o,i,s,c,u){c.push({x:e,y:r,z:o,t:r.t});const f={generated:_debug_.generated,bezierPieces:t,pos:r,δ:s,z:o?o.p:void 0,circle:i,xs:c,failed:!1,holeClosing:u,notAdded:!1,deleted:!1,cpNode:void 0},l=$g(f);_debug_.generated.elems[l].push(f)}(x,0,N,i,P,C,_,w,s),{circle:C,zs:[P]}}function ov(t){if("undefined"!=typeof _debug_){const n=_debug_.generated.elems,e=t?n.twoProng_holeClosing:n.twoProng_regular,r=t?"hole-closing: "+e.length:"regular: "+e.length;console.log("failed: no closest point - "+r)}}function iv(t,n,e,r,o,i){let s=e.t;0===s&&(s=1,e=Se(e.curve.prev,s,!0));const c=Ua(n,e),u=r.map((t=>Ua(n,t)));let f=!1;for(let e=0;e<r.length;e++){const o=r[e],s=u[e];if(Kd(t,o,n,s,0,i)){f=!0;break}}if(Kd(t,e,n,c,0,i)||f)return void("undefined"!=typeof _debug_&&(o?_debug_.generated.elems.twoProng_holeClosing.pop():_debug_.generated.elems.twoProng_regular.pop()));const l=[],h=[],a=[],p=[],d=[];for(let e=0;e<r.length;e++){const i=r[e],s=u[e],c={pointOnShape:i,circle:n,order:s,order2:0};h.push(c);const f=i.curve.loop;d.push(f);const g=t.get(f);a.push(g);const v=jd(g,i,s,0);p.push(v),l.push(yn(o,!1,g,c,v[0]))}const g={pointOnShape:e,circle:n,order:c,order2:0},v=e.curve.loop,m=t.get(v),b=yn(o,!1,m,g,jd(m,e,c,0)[0]);if(1===l.length)b.prevOnCircle=l[0],b.nextOnCircle=l[0],l[0].prevOnCircle=b,l[0].nextOnCircle=b;else{const t=l.slice();t.push(b),t.sort(function(t){const n=t.center;return function(t,e){let r=t.cp.pointOnShape.p,o=e.cp.pointOnShape.p;r=[r[0]-n[0],r[1]-n[1]],o=[o[0]-n[0],o[1]-n[1]];const i=Math.atan2(r[1],r[0]);return Math.atan2(o[1],o[0])-i}}(n));for(let n=0;n<t.length;n++){const e=n+1===t.length?0:n+1,r=0===n?t.length-1:n-1,o=t[n],i=t[e],s=t[r];o.nextOnCircle=i,o.prevOnCircle=s}}if(o){const t={pointOnShape:r[0],circle:n,order:h[0].order,order2:1},o=yn(!0,!1,a[0],t,l[0]),i=yn(!0,!1,m,{pointOnShape:e,circle:n,order:g.order,order2:-1},b.prev);i.prevOnCircle=o,i.nextOnCircle=o,o.prevOnCircle=i,o.nextOnCircle=i,l[0].next=b,b.prev=l[0],i.next=o,o.prev=i}if("undefined"!=typeof _debug_){let t;t=o?_debug_.generated.elems.twoProng_holeClosing:_debug_.generated.elems.twoProng_regular;const n=t[t.length-1];b||console.log("asas"),n.cpNode=b}return b}const{PI:sv,atan2:cv}=Math,uv=15*sv/180;function fv(t,n,e,r,o,i){let s;const c=_g(t),u=(c.maxX.p[0]-c.minX.p[0])**2+(c.maxY.p[1]-c.minY.p[1])**2;for(let c=0;c<r.length;c++){let f=[0];const l=r[c];if(1===l.t){const{curve:t}=l,n=pn(t.ps,t.next.ps);if(n.isQuiteDull){const t=Ha(n.tangents[0]),e=Ha(n.tangents[1]),r=(cv(t[1],t[0])+2*sv)%(2*sv),o=((cv(e[1],e[0])+2*sv)%(2*sv)-r+2*sv)%(2*sv);let i=uv;for(;i<=o-uv/2;)f.push(i),i+=uv}}for(let r of f){const f=rv(r,t,o,u,n,l,!1,e,i);if(f){const{circle:t,zs:e}=f,r=iv(n,t,l,e,!1,o);s=s||r}if("undefined"!=typeof _debug_&&c+1===_debug_.directives.stopAfterTwoProngsNum)return}}return s}function lv(t,n,e,r,o,i){for(let s=0;s<r.length;s++){const c=fv(n,e,s,r[s],o,i);t=t||c}return t}const hv=de,av=oe,pv=ie,{atan2:dv}=Math;function gv(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],s=pv(hv(i,e),hv(o,r))[1],c=av(hv(o,e),hv(i,r))[1];return dv(s,c)}const{abs:vv}=Math;function mv(t){const n=[];for(let e=0;e<t.length-1;e++){const r=[t[e+1][0]-t[e][0],t[e+1][1]-t[e][1]];0!==(0!==r[0]||r[1])&&n.push(r)}const e=n.length;let r=0;for(let t=0;t<e-1;t++)r+=vv(gv(n[t],n[t+1]));return r}function bv(t,n=.4,e=10,r=2**-16){const o={r:[0,1]};let i=o;for(;void 0!==i;){const o=i.r,s=Ja(t,o[0],o[1]);if(Yd(s)<=e&&mv(s)<=n||o[1]-o[0]<=r){i=i.next;continue}const c=(o[0]+o[1])/2,u=[o[0],c],f=[c,o[1]];i.r=u,i.next={r:f,next:i.next}}i=o;const s=[];for(;void 0!==i;)s.push(i.r[0]),void 0===i.next&&s.push(i.r[1]),i=i.next;return s}const xv=te,_v=pe,Iv=oe,Nv=te,Sv=ce,Ev=ue,wv=te,Mv=le,Pv=oe,Tv=ie;const{orient2d:yv}=un,Cv=Ft,Ov=R,Av=y,zv=rt,Bv=Number.EPSILON/2,Yv=Math.abs,Fv=K,Vv=T,kv=rt,Lv=y,Dv=H,Xv=Z,qv=pt;const Qv=pe,$v=te,Gv=le,Hv=oe,Rv=ie;function Uv(t){if(function(t){if(4===t.length)return 0===yv(t[0],t[1],t[2])&&0===yv(t[1],t[2],t[3])&&0===yv(t[0],t[2],t[3]);if(3===t.length)return 0===yv(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&function(t){const[[n,e],[r,o],[i,s],[c,u]]=t,f=c+3*r,l=n+3*i,h=f-l,a=Yv(3*r)+Yv(f)+(Yv(3*i)+Yv(l))+Yv(h);if(Yv(h)-Bv*a>0)return!1;const p=u+3*o,d=e+3*s,g=p-d,v=Yv(3*o)+Yv(p)+(Yv(3*s)+Yv(d))+Yv(g);return!(Yv(g)-Bv*v>0)&&0===Av(zv(Ov([c],Cv(3,r)),Ov([n],Cv(3,i))))&&0===Av(zv(Ov([u],Cv(3,o)),Ov([e],Cv(3,s))))}(t)&&(t=function(t,n=!1){if(!n){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[n,e],[Dv(kv(Xv(qv(r/4,i/4),3),qv(n/4,c/4))),Dv(kv(Xv(qv(o/4,s/4),3),qv(e/4,u/4)))],[c,u]]}const[e,r,o,i]=t,s=function(t,n){const[[e,r],[o,i]]=t,[[s,c],[u,f]]=n,l=Vv(o,e),h=Vv(i,r),a=Vv(u,s),p=Vv(f,c),d=kv(Fv(a,h),Fv(p,l));if(0===Lv(d))return;const g=Vv(s,e),v=Vv(c,r),m=kv(Fv(v,l),Fv(g,h)),b=Dv(m)/Dv(d);return[s+b*Dv(a),c+b*Dv(p)]}([e,r],[i,o]);if(void 0!==s)return[e,s,i]}(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,s]]=t,c=Qv(r,n),u=Qv(i,r),f=Rv(u,c),l=Qv(o,e),h=Qv(s,o),a=Rv(h,l),p=Hv(Rv($v(n,Rv(f,[0,-r])),$v(r,Rv(u,[0,-r]))),Rv($v(e,Rv(a,[0,-o])),$v(o,Rv(h,[0,-o]))));return[Hv(Gv(f,f),Gv(a,a)),ae(p)]}(t);return{minima:[],maxima:Nr(n,0,1).map((t=>(t.tS+t.tE)/2)),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,s]]=yg(t),[[c,u],[f,l]]=Bg(t),[[h],[a]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,s],[c,u]]=t;return[[Nv(6,Iv(_v(c,n),Nv(3,_v(r,i))))],[Nv(6,Iv(_v(u,e),Nv(3,_v(o,s))))]]}if(t.length<=3)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t),p=Mv(h,i),d=Mv(a,e),g=Mv(u,s),v=Mv(u,i),m=Mv(f,f),b=Mv(c,s),x=Mv(l,r),_=Mv(l,e),I=Mv(f,r),N=Mv(r,e),S=Mv(r,n),E=Mv(r,o),w=Mv(e,e),M=Mv(e,n),P=Mv(e,i),T=Mv(n,s),y=Mv(n,o),C=Mv(n,n),O=Mv(s,i),A=Mv(s,o),z=Mv(i,i),B=Mv(i,o),Y=Mv(o,o),F=Tv(Mv(h,s),Mv(a,r)),V=Tv(p,d),k=Pv(Mv(u,r),Mv(l,s)),L=Pv(Pv(Mv(u,e),Mv(c,r)),Pv(Mv(l,i),Mv(f,s))),D=Tv(g,x),X=Tv(Pv(v,b),Pv(_,I)),q=Pv(Mv(r,r),Mv(s,s)),Q=Pv(N,O),$=Pv(P,T),G=Pv(A,z),H=Pv(S,w),R=Pv(Mv(e,o),Mv(n,i)),U=Tv(C,Y),Z=Tv(M,B),j=Pv(E,P),W=Tv(N,O),J=Pv(Mv(r,i),Mv(e,s)),K=Pv(A,G),tt=Pv(S,H),nt=Pv(E,$),et=Pv(P,$),rt=Tv(tt,K),ot=Pv($,T),it=Pv(j,T),st=Pv(ce(_),I),ct=Mv(C,Tv(p,wv(3,d))),ut=Mv(Y,Tv(wv(3,p),d)),ft=ce(Pv(Mv(y,Pv(Tv(Mv(h,e),Mv(a,i)),wv(3,Tv(Mv(l,f),Mv(u,c))))),wv(3,Mv(Mv(c,f),Z)))),lt=wv(3,Pv(Mv(R,Tv(m,Mv(c,c))),Mv(U,Pv(Mv(u,f),Mv(l,c))))),ht=Pv(Pv(ct,ut),Pv(ft,lt)),at=Mv(h,Pv(Mv(o,Pv(tt,wv(3,G))),Mv(n,et))),pt=Mv(a,Pv(Pv(Mv(r,Pv(wv(3,C),Y)),Mv(e,Pv(wv(3,M),Sv(B)))),Mv(n,K))),dt=wv(3,Pv(Pv(Mv(u,Pv(Tv(Mv(l,U),Mv(u,y)),Sv(Tv(Mv(f,Z),Mv(c,R))))),Mv(c,Tv(Pv(Sv(Mv(l,Z)),Mv(f,Pv(Sv(Tv(S,A)),Tv(w,z)))),Mv(c,it)))),Pv(Mv(l,Pv(Mv(l,y),Sv(Mv(f,R)))),Mv(m,nt)))),gt=Pv(Tv(at,pt),dt),vt=Mv(h,Pv(Pv(Sv(Mv(r,R)),Mv(e,ot)),Mv(i,Pv(Ev(A),K)))),mt=Mv(a,Pv(Pv(Sv(Mv(r,Pv(wv(3,M),B))),Mv(e,Pv(w,Sv(A)))),Mv(i,ot))),bt=wv(3,Pv(Pv(Mv(u,Tv(Pv(Sv(Tv(Mv(l,Z),Mv(c,it))),Mv(f,rt)),Mv(u,R))),Mv(c,Tv(Sv(Mv(f,W)),Mv(c,J)))),Pv(Mv(l,Pv(Pv(Mv(l,R),Sv(Mv(f,nt))),Mv(c,rt))),Mv(m,J)))),xt=Pv(Tv(vt,mt),bt),_t=Mv(h,Pv(Mv(r,Pv(E,Sv($))),Mv(s,Pv(w,wv(3,G))))),It=Mv(a,Pv(Mv(r,Pv(wv(3,H),K)),Mv(s,et))),Nt=wv(3,Pv(Pv(Mv(u,Pv(Tv(Mv(l,rt),Mv(u,nt)),Sv(Tv(Mv(f,W),Mv(c,J))))),Mv(c,Tv(Mv(r,Tv(st,Mv(c,s))),Mv(s,Pv(Sv(Mv(l,i)),Mv(f,s)))))),Pv(Mv(l,Pv(Mv(l,$),Mv(r,Pv(Sv(Mv(f,i)),Mv(l,o))))),Mv(f,Mv(s,st))))),St=Pv(Tv(_t,It),Nt),Et=Tv(Pv(Mv(q,V),Sv(Mv(Q,F))),wv(3,Pv(Mv(k,X),Mv(L,D)))),wt=Tv(Mv(F,q),wv(3,Mv(k,D)));return{inflectionPoly:[Tv(Mv(c,o),Mv(f,n)),Tv(Pv(Mv(u,o),Mv(c,i)),Pv(Mv(l,n),Mv(f,e))),Tv(Pv(v,b),Pv(_,I)),Tv(g,x)],otherExtremaPoly:[ht,gt,xt,St,Et,wt]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=Nr(r,0,1),i=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(xv(e-r,t[r]));return n}(r),s=[],c=[];for(let t=0;t<o.length;t++){const n=(o[t].tS+o[t].tE)/2,r=$e(i,n),u=$e(e,n);y(sn(u,r))>=0?s.push(n):c.push(n)}return{minima:s,maxima:c,inflections:Nr(e,0,1).map((t=>(t.tS+t.tE)/2))}}function Zv(t){return xg(t).minY}function jv(t,n,e,r,o){!function(t){if("undefined"==typeof _debug_)return;mg=performance.now();for(const n of t)_debug_.fs.nameObj(n,"l|");const n=_debug_.generated;for(const e of t){let t=0;e.curves.forEach((function(e){const r=e.ps,o=vg(r);n.elems.boundingHull.push(o);const i=Bd(r);n.elems.looseBoundingBox.push(i);const s=Fd(r);n.elems.tightBoundingBox.push(s);const c=dn(e);c.isQuiteSharp?n.elems.sharpCorner.push(e):c.isQuiteDull&&n.elems.dullCorner.push(e),t++}))}}(t);const i=function(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];Yd(o.ps)<t||dn(o).isQuiteSharp&&e.push(Se(o,1,!0))}return e}}(n),s=function(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];Yd(o.ps)<t||dn(o).isQuiteDull&&(e.push(Se(o,1,!0)),e.push(Se(o.next,0,!0)))}return e}}(n),c=t.map(i),u=t.map(s),f=new Map;if(function(t,n,e){let r;for(let o=0;o<e.length;o++){const i=e[o],s=new lg(wn,!1);let c,u;for(const t of i){t.curve.next.ps;const n={center:t.p,radius:0},e={pointOnShape:t,circle:n,order:1,order2:0};c=yn(!1,!1,s,{pointOnShape:t,circle:n,order:-1,order2:0},u),u=yn(!1,!1,s,e,c),c.prevOnCircle=u,u.prevOnCircle=c,c.nextOnCircle=u,u.nextOnCircle=c}r||(r=c);const f=t[o];n.set(f,s)}}(t,f,c),function(t,n,e){const r=_g(t),o=(r.maxX.p[0]-r.minX.p[0])**2+(r.maxY.p[1]-r.minY.p[1])**2,i=t.map(Zv);for(let r=1;r<i.length;r++){const s=i[r],c=rv(0,t,e,o,n,s,!0,r,!1);if(!c)throw new Error("Unable to find hole-closing 2-prong");const{circle:u,zs:f}=c;iv(n,u,s,[f[0]],!0,e)}}(t,f,o),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterHoleClosers)return;!function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.holeClosers+=n-mg,mg=n}();const l=t.map(function(t){return function(n){const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];if(Yd(o.ps)<t)continue;const{minima:i,maxima:s}=Uv(o.ps),c=[...i,...s].map((t=>Se(o,t,!0)));e.push(...c)}return e}}(n)),h=t.map(function(t,n,e){return function(r){const o=[];for(let i=0;i<r.curves.length;i++){const s=r.curves[i];if(Yd(s.ps)<t)continue;let c=bv(s.ps,n,e);2===c.length&&(c=[0,.5,1]);const u=c.slice(1,c.length-1).map((t=>Se(s,t,!0)));o.push(...u)}return o}}(n,e,r));let a;if(a=lv(a,t,f,u,o,!1),a=lv(a,t,f,l,o,!0),a=lv(a,t,f,h,o,!1),function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.oneAnd2Prongs+=n-mg,mg=n}(),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterTwoProngs)return;if(void 0===a)return;if(function(t,n,e){const r=new Map,o=[{fromCpNode:void 0,cpStart:n}];for(;o.length;){const{fromCpNode:n,cpStart:i}=o.shift();rg(r,n,i);for(const n of Cn(i)){if(!mn(n.cp.pointOnShape)&&void 0===ng(t,n,e))return void console.log("Unable to find 3-prong");og(r,n,n.next)||o.push({fromCpNode:i,cpStart:n.next})}}}(f,a,o),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterThreeProngs)return;const p={cpNode:a,cpTrees:f};return function(t){if("undefined"==typeof _debug_)return;const n=_debug_.generated,e=n.timing;n.elems.mat.push(t),e.threeProngs+=performance.now()-mg}(p),p}const Wv=Math.max,Jv=Math.abs;function Kv(t,n=.4,r=4){let o,i;({maxCurviness:n,maxLength:r,maxCoordinate:o,minBezLength:i}=function(t,n,e){const{maxCoordinate:r,maxRadius:o}=function(t){let n=0,e=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const s of t)for(const t of s)for(const s of t){const t=s[0],c=s[1],u=Wv(Jv(t),Jv(c));u>n&&(n=u),t<e&&(e=t),t>r&&(r=t),c<o&&(o=c),c>i&&(i=c)}return{maxCoordinate:n,maxRadius:Wv(r-e,i-o)}}(t),i=2**Math.ceil(Math.log2(r))*2**-16;return n<.05&&(n=.05),n>3&&(n=3),e<.1&&(e=.1),e>100&&(e=100),{maxCurviness:n,maxLength:e*=2**Math.ceil(Math.log2(o))*2**-10,maxCoordinate:r,minBezLength:i}}(t,n,r));const s=function(t,n){let r;"undefined"!=typeof _debug_&&(r=performance.now()),n=n||Xa(t);const o=Math.ceil(Math.log2(n)),i=2**o*2**-46*64;(function(t){if("undefined"!=typeof _debug_){if("undefined"!=typeof document){const n=function(t){let n="";for(const r of t)n=n+e(r)+"\n";return n}(t);document.getElementsByClassName("shape")[0].setAttributeNS(null,"d",n)}for(const n of t){_debug_.generated.elems.loopPre.push(...t),_debug_.generated.elems.loopsPre.push(t);for(const t of n){const n=Pi(t),e=Gr(t),r=Ur(t);_debug_.generated.elems.bezier_.push(t),_debug_.generated.elems.looseBoundingBox_.push(n),_debug_.generated.elems.tightBoundingBox_.push(e),_debug_.generated.elems.boundingHull_.push(r)}}}})(t=Da(t,46,o,!1,!0)),t.sort(Ai);const s=t.map(((t,n)=>Ca(t,n))),{extremes:c}=Ma(s,i,o),u={dir:void 0,idx:0,parent:void 0,children:new Set,windingNum:0,p:void 0,_x_:void 0,container:void 0},f=new Set,l=new Set;for(const t of s){if(f.has(t))continue;f.add(t);const n=Oi(u,t),e=c.get(t)[0].container;if(!e.inOuts.length)continue;const r=ya(e);r.parent=n,r.windingNum=n.windingNum+r.orientation,r.children=new Set,Jo(0,ya(e),f,l)}const h=function(t){const n=[],e=[t];for(;e.length;){const t=e.pop();t.children=t.children||new Set;for(const r of t.children)0===t.windingNum&&n.push(r),e.push(r);0===t.windingNum&&(t.children=new Set)}return n}(u).map(Bi).map((t=>t.map(((n,e)=>function(t,n,e){const r=n<0?Ca(t.beziers,e):function(t){const n=[],e=t.curves;for(let t=e.length-1;t>=0;t--){const r=e[t].ps.slice().reverse();n.push(r)}return Ca(n,void 0)}(Ca(t.beziers,e));return r}(n,t[0].orientation,e))))),a=(2**o*2**-12)**2,p=[];for(let t=0;t<h.length;t++){const n=h[t].filter((t=>Math.abs(Ga(t))>a));n.length&&(n.sort(((t,n)=>Ai(t.beziers,n.beziers))),p.push(n))}return function(t){if("undefined"!=typeof _debug_)for(const n of t)_debug_.generated.elems.loop.push(...n),_debug_.generated.elems.loops.push(n)}(p),"undefined"!=typeof _debug_&&(_debug_.generated.timing.simplifyPaths=performance.now()-r),p}(t),c=[];for(const t of s){const e=jv(t,i,n,r,o);e&&c.push(e)}return c}function tm(t){const n=new Map;return Tn(t).forEach((function(t){const e=t.cp.pointOnShape.curve.loop;let r=n.get(e);r||(r=new lg(wn,!1),n.set(e,r)),r.insert(t)})),n}function nm(t){const n=[],e=Tn(t);for(const t of e)An(t)&&n.push(t);return n}const em=["prev","next","prevOnCircle","nextOnCircle"];function rm(t){const n=new Map,e=Sn(t.cp,t.isHoleClosing,t.isIntersection);n.set(t,e);const r=[{cpNode:t,newCpNode:e}];for(;r.length;){const{cpNode:t,newCpNode:e}=r.pop();for(const o of em){const i=t[o];let s=n.get(i);s||(s=Sn(i.cp,i.isHoleClosing,i.isIntersection),n.set(i,s),r.push({cpNode:i,newCpNode:s})),e[o]=s}}return e}function om(t){const n=function(t){let n=t;const e=nm(t);for(;e.length;){const r=e.pop();if(r.isHoleClosing||r.isIntersection)continue;let o=r.next;for(;;){o=o.next;let e=!1;const r=o.prevOnCircle;if(Fn(o)>2){const n=o.nextOnCircle;On(o,t)?e=!0:o.next===n?o=n:n.next!==r&&(e=!0)}else if(An(o)&&!o.isIntersection)return void(n=o);if(e){r.next=o,o.prev=r,n=o;break}}}return n}(rm(t.cpNode));if(n)return{cpNode:n,cpTrees:tm(n)}}function im(t,n,e=16){if(n[0]===n[1])return 0;const{weights:r,abscissas:o}=sm[e],[i,s]=n;let c=0;const u=(s-i)/2,f=(s+i)/2;for(let n=0;n<=e-1;n++)c+=r[n]*t(u*o[n]+f);return u*c}const sm={2:{weights:[1,1],abscissas:[-.5773502691896257,.5773502691896257]},4:{weights:[.6521451548625461,.6521451548625461,.3478548451374538,.3478548451374538],abscissas:[-.3399810435848563,.3399810435848563,-.8611363115940526,.8611363115940526]},8:{weights:[.362683783378362,.362683783378362,.3137066458778873,.3137066458778873,.2223810344533745,.2223810344533745,.1012285362903763,.1012285362903763],abscissas:[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363]},16:{weights:[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685,.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096],abscissas:[-.9894009349916499,-.9445750230732326,-.8656312023878318,-.755404408355003,-.6178762444026438,-.45801677765722737,-.2816035507792589,-.09501250983763744,.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]},64:{weights:[.048690957009139724,.048690957009139724,.04857546744150343,.04857546744150343,.048344762234802954,.048344762234802954,.04799938859645831,.04799938859645831,.04754016571483031,.04754016571483031,.04696818281621002,.04696818281621002,.046284796581314416,.046284796581314416,.04549162792741814,.04549162792741814,.044590558163756566,.044590558163756566,.04358372452932345,.04358372452932345,.04247351512365359,.04247351512365359,.04126256324262353,.04126256324262353,.03995374113272034,.03995374113272034,.038550153178615626,.038550153178615626,.03705512854024005,.03705512854024005,.035472213256882386,.035472213256882386,.033805161837141606,.033805161837141606,.03205792835485155,.03205792835485155,.030234657072402478,.030234657072402478,.028339672614259483,.028339672614259483,.02637746971505466,.02637746971505466,.024352702568710874,.024352702568710874,.022270173808383253,.022270173808383253,.02013482315353021,.02013482315353021,.017951715775697343,.017951715775697343,.015726030476024718,.015726030476024718,.013463047896718643,.013463047896718643,.011168139460131128,.011168139460131128,.008846759826363947,.008846759826363947,.006504457968978363,.006504457968978363,.004147033260562468,.004147033260562468,.001783280721696433,.001783280721696433],abscissas:[-.024350292663424433,.024350292663424433,-.07299312178779904,.07299312178779904,-.12146281929612056,.12146281929612056,-.16964442042399283,.16964442042399283,-.21742364374000708,.21742364374000708,-.2646871622087674,.2646871622087674,-.31132287199021097,.31132287199021097,-.3572201583376681,.3572201583376681,-.4022701579639916,.4022701579639916,-.4463660172534641,.4463660172534641,-.48940314570705296,.48940314570705296,-.5312794640198946,.5312794640198946,-.571895646202634,.571895646202634,-.6111553551723933,.6111553551723933,-.6489654712546573,.6489654712546573,-.6852363130542333,.6852363130542333,-.7198818501716109,.7198818501716109,-.7528199072605319,.7528199072605319,-.7839723589433414,.7839723589433414,-.8132653151227975,.8132653151227975,-.8406292962525803,.8406292962525803,-.8659993981540928,.8659993981540928,-.8893154459951141,.8893154459951141,-.9105221370785028,.9105221370785028,-.9295691721319396,.9295691721319396,-.9464113748584028,.9464113748584028,-.9610087996520538,.9610087996520538,-.973326827789911,.973326827789911,-.983336253884626,.983336253884626,-.9910133714767443,.9910133714767443,-.9963401167719553,.9963401167719553,-.9993050417357722,.9993050417357722]}};function cm(t){const[n,e]=w(t);return function(t){const r=E(n,t),o=E(e,t);return Math.sqrt(r*r+o*o)}}function um(t,n=.4,e=2**-16){const r={r:[0,1]};let o=r;for(;void 0!==o;){const r=o.r;if(mv(Ja(t,r[0],r[1]))<=n||r[1]-r[0]<=e){o=o.next;continue}const i=(r[0]+r[1])/2,s=[r[0],i],c=[i,r[1]];o.r=s,o.next={r:c,next:o.next}}o=r;const i=[];for(;void 0!==o;)i.push(o.r[0]),void 0===o.next&&i.push(o.r[1]),o=o.next;return i}function fm(t,n){const e=Cn(t);for(;e.length;){const t=e.pop();n(t),An(t)||e.push(...Mn(t))}}function lm(t,n){n(t),Cn(t).filter((t=>!An(t))).map((t=>t.next)).forEach((function(t){const e=[t];for(;e.length;){const t=e.pop();n(t),e.push(...Pn(t))}}))}function hm(t,n){let e=0;if("undefined"!=typeof _debug_){e=performance.now();const n=nm(t.cpNode);_debug_.generated.elems.leaves.push(n)}const r=[];lm(rm(t.cpNode),(t=>{r.push(t)}));const o=function(t){return t.reduce((function(t,n){return t.cp.circle.radius>=n.cp.circle.radius?t:n}),t[0])}(r);"undefined"!=typeof _debug_&&_debug_.generated.elems.maxVertex.push(o);const i=new Set,s=new Map;fm(o,(function(t){const e=s.get(t)||n*t.cp.circle.radius,r=t.next,o=function(t,n,e=.4,r=16){if(4===n.length)return function(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[s,c],[u,f],[l,h],[a,p]]=n;if(s===u&&u===l&&l===a&&c===f&&f===h&&h===p)return 0;const d=rd(n,o,i).ps,g=um(d,e);let v=0;for(let t=0;t<g.length-1;t++){const n=g[t],e=g[t+1];v+=im(cm(d),[n,e],r)}return v}(t,n,e,r);if(3===n.length)return function(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[s,c],[u,f],[l,h]]=n;if(s===u&&u===l&&c===f&&f===h)return 0;const a=sd(n,o,i).ps,p=um(a,e);let d=0;for(let t=0;t<p.length-1;t++){const n=p[t],e=p[t+1];d+=im(cm(a),[n,e],r)}return d}(t,n,e,r);if(2===n.length)return function(t,n){const[e,r]=t,[[o,i],[s,c]]=n;return $r([o+e*(s-o),i+e*(c-i)],[o+r*(s-o),i+r*(c-i)])}(t,n);if(1===n.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}([0,1],Nn(t)),c=r.cp.circle.radius;if(e-o>n*c){for(const t of Cn(r))s.set(t,e-o);i.add(r.cp.circle)}})),function(t,n){const e=nm(n);function r(t){let n=t;const e=[];do{n.next!==n.nextOnCircle&&e.push(n),n=n.nextOnCircle}while(n!==t.prevOnCircle);return e}for(;e.length;){const o=e.pop();if(o.isHoleClosing||o.isIntersection)continue;if(!t.has(o.cp.circle))continue;let i=o.next;for(;;){i=i.next;let e=!1;const o=i.prevOnCircle;if(t.has(i.cp.circle))if(On(i,n))e=!0;else{const t=r(i);1===t.length?i=t[0]:e=!0}else e=!0;if(e){o.next=i,i.prev=o;break}}}}(i,o),"undefined"!=typeof _debug_&&_debug_.generated.elems.culls.push(Array.from(i));const c={cpNode:o,cpTrees:void 0};return function(t,n){"undefined"!=typeof _debug_&&(_debug_.generated.elems.sat.push(t),_debug_.generated.timing.sats=performance.now()-n)}(c,e),c}const am=1;function pm(t,n=am){for(;!zn(t);)t=t.next;const e=[],r=[t.prevOnCircle];let o=[];for(;r.length;){const t=r.pop();o.push(t);let i=Mn(t);if(zn(t)){o.length>1&&e.push(o),o=[];continue}if(1===i.length){r.push(i[0]);continue}if(i=i.filter((t=>!An(t))),0===i.length){e.push(o),o=[];continue}if(i.length>1){e.push(o),o=[],r.push(...i);continue}const s=_(N(M(Nn(t.next.prevOnCircle),0)),N(M(Nn(i[0]),0)));Math.abs(Math.asin(s)*(180/Math.PI))>n&&(e.push(o),o=[]),r.push(i[0])}return o.length&&e.push(o),e}let dm=0;function gm(t){return t.map((t=>{return(n=t.cp.pointOnShape).p[0]+", "+n.p[1]+" | bz: "+n.curve.idx+" | t: "+n.t;var n}))}function vm(t,n=3){return t[0].toFixed(n)+", "+t[1].toFixed(n)}const mm={δToString:gm,δsToString:function(t){return t.map(gm)},pointToStr:vm,pointsToStr:function(t,n=3){return t.map((t=>vm(t,n)))},nameObj:function(t,n=""){t.name=""+n+dm++}},bm="red thin10 nofill ",xm="http://www.w3.org/2000/svg";function _m(t,n,e=bm,r){const o=n.center,i=n.radius,s=document.createElementNS(xm,"circle");return s.setAttributeNS(null,"cx",o[0].toString()),s.setAttributeNS(null,"cy",o[1].toString()),s.setAttributeNS(null,"r",i.toString()),s.setAttributeNS(null,"class",e),t.appendChild(s),r&&setTimeout((()=>s.remove()),r),[s]}function Im(t,n,e=bm,r){const o=document.createElementNS(xm,"line");return o.setAttributeNS(null,"x1",n[0][0].toString()),o.setAttributeNS(null,"y1",n[0][1].toString()),o.setAttributeNS(null,"x2",n[1][0].toString()),o.setAttributeNS(null,"y2",n[1][1].toString()),o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout((()=>o.remove()),r),[o]}function Nm(t,n,e=bm,r=3,o){const i=_m(t,{center:n,radius:r},e),s=[[n[0]-r,n[1]],[n[0]+r,n[1]]],c=[[n[0],n[1]-r],[n[0],n[1]+r]],u=Im(t,s,e),f=Im(t,c,e);return o&&setTimeout((()=>{i.forEach((t=>t.remove())),u.forEach((t=>t.remove())),f.forEach((t=>t.remove()))}),o),[...i,...u,...f]}function Sm(t){return 2===t?"L":3===t?"Q":4===t?"C":void 0}function Em(t,n,e=bm,r){const[[o,i],[s,c],[u,f]]=n,l=document.createElementNS(xm,"path");return l.setAttributeNS(null,"d",`M${o} ${i} Q${s} ${c} ${u} ${f}`),e&&l.setAttributeNS(null,"class",e),t.appendChild(l),r&&setTimeout((()=>l.remove()),r),[l]}function wm(t,n,e=bm,r){const[[o,i],[s,c],[u,f],[l,h]]=n;if(o===l&&s===l&&u===l&&i===h&&c===h&&f===h)return Nm(t,[o,i],e,.2,r);const a=document.createElementNS(xm,"path");return a.setAttributeNS(null,"d",`M${o} ${i} C${s} ${c} ${u} ${f} ${l} ${h}`),a.setAttributeNS(null,"class",e),t.appendChild(a),r&&setTimeout((()=>a.remove()),r),[a]}function Mm(t,n,e=bm,r){return 2===n.length?Im(t,n,e,r):3===n.length?Em(t,n,e,r):4===n.length?wm(t,n,e,r):[]}const Pm=["red","green","cyan","blue"];function Tm(t,n){const e=1-n;if(4===t.length){const[[r,o],[i,s],[c,u],[f,l]]=t;return[r*e**3+3*i*e**2*n+3*c*e*n**2+f*n**3,o*e**3+3*s*e**2*n+3*u*e*n**2+l*n**3]}if(3===t.length){const[[r,o],[i,s],[c,u]]=t;return[r*e**2+2*i*e*n+c*n**2,o*e**2+2*s*e*n+u*n**2]}if(2===t.length){const[[r,o],[i,s]]=t;return[r*e+i*n,o*e+s*n]}return[NaN,NaN]}function ym(t,n){return 2===t.length?function(t,n){const[[e,r],[o,i]]=t,s=1-n,c=[s*e+n*o,s*r+n*i];return[[[e,r],c],[c,[o,i]]]}(t,n):3===t.length?function(t,n){const[[e,r],[o,i],[s,c]]=t,u=1-n,f=[u*u*e+2*u*n*o+n*n*s,u*u*r+2*u*n*i+n*n*c];return[[[e,r],[u*e+n*o,u*r+n*i],f],[f,[u*o+n*s,u*i+n*c],[s,c]]]}(t,n):4===t.length?function(t,n){const[[e,r],[o,i],[s,c],[u,f]]=t,l=1-n,h=n*n,a=h*n,p=l*l,d=p*l,g=[a*u+3*l*h*s+3*p*n*o+d*e,a*f+3*l*h*c+3*p*n*i+d*r];return[[[e,r],[n*o+l*e,n*i+l*r],[h*s+2*l*n*o+p*e,h*c+2*l*n*i+p*r],g],[g,[h*u+2*n*l*s+p*o,h*f+2*n*l*c+p*i],[n*u+l*s,n*f+l*c],[u,f]]]}(t,n):[]}const Cm={circle:_m,crossHair:Nm,dot:function(t,n,e=3,r="red",o){const[i]=_m(t,{center:n,radius:e},"dot "+r,o);return o&&setTimeout((()=>i.remove()),o),[i]},line:Im,rect:function(t,n,e=bm,r){const[[o,i],[s,c]]=n,u=o<s?o:s,f=i<c?i:c,l=Math.abs(o-s),h=Math.abs(i-c),a=document.createElementNS(xm,"rect");return a.setAttributeNS(null,"x",u.toString()),a.setAttributeNS(null,"y",f.toString()),a.setAttributeNS(null,"width",l.toString()),a.setAttributeNS(null,"height",h.toString()),e&&a.setAttributeNS(null,"class",e),t.appendChild(a),r&&setTimeout((()=>a.remove()),r),[a]},beziers:function(t,n,e,r){const o=void 0===e,i=[];for(let r=0;r<n.length;r++){const s=n[r],c=o?"thin5 nofill "+Pm[r%Pm.length]:e;i.push(...Mm(t,s,c))}return r&&setTimeout((()=>i.forEach((t=>t.remove()))),r),i},bezier:Mm,bezierPiece:function(t,n,e,r=bm,o){const i=e[0]===e[1]?Nm(t,Tm(n,e[0]),r,1.5):Mm(t,function(t,n){if(0===n[0]&&1===n[1])return t;if(n[0]===n[1]){const e=Tm(t,n[0]);return[e,e,e,e]}return 0===n[0]?ym(t,n[1])[0]:1===n[1]?ym(t,n[0])[1]:ym(ym(t,n[0])[1],(n[1]-n[0])/(1-n[0]))[0]}(n,e),r);return o&&setTimeout((()=>i.forEach((t=>t.remove()))),o),i},quadBezier:Em,cubicBezier:wm,polygon:function(t,n,e=bm,r){const o=document.createElementNS(xm,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout((()=>o.remove()),r),[o]},loop:function(t,n,e=bm,r){if(!n.length)return[];const o=document.createElementNS(xm,"path");let i=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];i+=`${Sm(e.length)} `;for(let t=1;t<e.length;t++)i+=`${e[t][0]} ${e[t][1]} `}return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout((()=>o.remove()),r),[o]},polyline:function(t,n,e=bm,r){if(n.length<2)return[];const o=document.createElementNS(xm,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout((()=>o.remove()),r),[o]},text:function(t,n,e,r,o=bm,i){const s=document.createElementNS(xm,"text");return s.setAttributeNS(null,"x",n[0].toString()),s.setAttributeNS(null,"y",n[1].toString()),s.setAttributeNS(null,"font-size",r.toString()),s.setAttributeNS(null,"class",o),s.textContent=e,t.appendChild(s),i&&setTimeout((()=>s.remove()),i),[s]}};function Om(t,n,e=1e3,r=1){const o=n.xs;console.log(n),console.log(n.xs.map((t=>({x:t.x,y:t.y,z:t.z,d:t.z?p(t.y.p,t.z.p):0,t:t.t})))),console.log(o.length);for(let i=0;i<o.length;i++){const o=n.xs[i],s={center:o.x,radius:$r(o.x,o.y.p)};Cm.crossHair(t,o.x,"red thin10 nofill",.002*r,e),Cm.circle(t,s,"blue thin10 nofill",e),void 0!==o.z&&Cm.crossHair(t,o.z.p,"yellow thin10 nofill",.001*r,e)}}const Am={logδ:function(t,n="twoProng_regular"){const e=_debug_.generated.elems[n][t].δ;console.log(e)},log:function(t,n="twoProng_regular"){const e=_debug_.generated.elems[n][t];console.log(e)},drawNormal:function(t,n,e=1e3){Cm.line(t,[n.pos.p,n.circle.center],"thin10 blue",e)},logδBasic:function(t,n="twoProng_regular"){const e=_debug_.generated.elems[n][t].δ;function r(t){const n=t.cp.pointOnShape;return{bez:n.curve.ps,t:n.t}}console.log(r(e[0])),console.log(r(e[1]))},traceConvergence:Om,logNearest:function(t,n,e){return(e,r,o=1e3,i=1)=>{const s=m(r,_debug_.generated.elems.twoProng_regular,(t=>t.circle.center));let c;[].push(s),console.log(s);for(let t=0;t<_debug_.generated.elems.twoProng_regular.length;t++)if(_debug_.generated.elems.twoProng_regular[t]===s){c=t;break}t&&function(t,n,e=1e3){const r=n.circle.center,{pos:o,circle:i,cpNode:s,xs:c,z:u,δ:f}=n;Cm.line(t,[o.p,r],"thin5 red",e),Cm.line(t,[u,r],"thin5 red",e)}(e,s,o),void 0!==c&&n&&Om(e,s,o,i)}}},zm={drawSpokes:function(t,n){const e=_debug_.generated.elems.threeProng[n],r=e.circle.center,o=e.poss;for(let n=0;n<o.length;n++){const e=o[n];Cm.line(t,[e.p,r],"thin5 red")}},traceConvergence:function(t,n,e){let r,o;void 0===n?(r=0,o=_debug_.generated.elems.threeProng.length):(r=n,o=n+1);for(let i=r;i<o;i++){const r=_debug_.generated.elems.threeProng[i];console.log(r);const o=r.candidateThreeProngs;let s,c;void 0===n||-1===e?(s=r.bestIndx,c=r.bestIndx+1):void 0===e?(s=0,c=o.length):(s=e,c=e+1);for(let n=s;n<c;n++){const e=o[n].circle;r.bestIndx===n?(Cm.dot(t,e.center,.2,"green"),Cm.circle(t,e,"black thin10 nofill")):(Cm.dot(t,e.center,.2,"cyan"),Cm.circle(t,e,"cyan thin5 nofill"))}}},showBoundary:function(t,n,e){const r=_debug_.generated.elems.threeProng[n],o=r.candidateThreeProngs,i=void 0===e?0:e,s=void 0===e?o.length:e,c=r.cpss;let u=0;for(let n=1;n<c.length-1;n++){if(!(u>=i&&u<=s)){u++;continue}const e=[c[0],c[n],c[c.length-1]];for(let n=0;n<3;n++){const r=e[n],o=r[0],i=r[1],s=o.cp.pointOnShape,c=i.cp.pointOnShape,u=s.p,f=c.p,l=1+.5*n;v(u,f)?Cm.crossHair(t,u,"red thin10 nofill",l):(Cm.crossHair(t,u,"green thin10 nofill",l),Cm.crossHair(t,f,"blue thin10 nofill",l))}u++}},logδs:function(t){const n=_debug_.generated.elems.threeProng[t];console.log(n.cpss)},logNearest:function(t=!0,n=!0,e=!0){return function(r,o,i=1e3){const s=m(o,_debug_.generated.elems.threeProng,(t=>t.circle?t.circle.center:[0,0])),c=s.circle;console.log(s);const u={center:c.center,radius:c.radius||1};if(Cm.circle(r,u,"blue thin10 nofill",i),Cm.crossHair(r,c.center,"red thin2 nofill",2,i),t&&(Cm.line(r,[s.poss[0].p,c.center],"blue thin5 nofill",i),Cm.line(r,[s.poss[1].p,c.center],"blue thin5 nofill",i),Cm.line(r,[s.poss[2].p,c.center],"blue thin5 nofill",i)),e){const t=s.boundaries,n=t[0],e=t[t.length-1];Cm.beziers(r,n,"red thin20 nofill",i);for(let n=1;n<t.length-1;n++){const e=t[n];Cm.beziers(r,e,"green thin20 nofill",i)}Cm.beziers(r,e,"blue thin20 nofill",i)}if(n){const t=s.traces;for(const n of t)Cm.polyline(r,n,"red thin5 nofill",i)}}}};function Bm(t,n,e,r=0,o=1){let i,s,c=[],u=[],f=[],l=[],h=[];switch($g(n)){case"twoProng_regular":i="red ",s="2";break;case"twoProng_holeClosing":i="cyan ",s="10"}return n.failed?c=Cm.dot(t,n.pos.p,1*o,"black",r):n.failed||(u=Cm.dot(t,n.circle.center,.01*o,"yellow",r),f=Cm.circle(t,n.circle,i+"thin"+s+" nofill",r),l=Cm.dot(t,n.pos.p,.0175*o,i,r),h=Cm.dot(t,n.z,.035*o,i,r)),[...c,...u,...f,...l,...h]}function Ym(t){const n="mat"===t?"thin5 purple nofill":"thin10 red nofill";return(t,e,r,o=0,i=1)=>{const s=e.cpNode;if(!s)return[];const c=[];return fm(s,(e=>{if(An(e))return;const r=Nn(e);r&&c.push(...Cm.bezier(t,r,n,o))})),c}}function Fm(t,n,e,r){const o=document.createElementNS("http://www.w3.org/2000/svg","circle");return o.setAttributeNS(null,"cx",n[0].toString()),o.setAttributeNS(null,"cy",n[1].toString()),o.setAttributeNS(null,"r",e.toString()+"%"),o.setAttributeNS(null,"class",r),t.appendChild(o),o}function Vm(t,n,e,r){const o=document.createElementNS("http://www.w3.org/2000/svg","circle");return o.setAttributeNS(null,"cx",n[0].toString()),o.setAttributeNS(null,"cy",n[1].toString()),o.setAttributeNS(null,"r",e.toString()+"%"),o.setAttributeNS(null,"class",r),t.appendChild(o),o}const km={oneProng:function(t,n,e,r=0,o=1){const i=n[0].cp,{circle:s,pointOnShape:c}=i;return[...Cm.dot(t,c.p,.02*o,"deeppink",r),...Cm.dot(t,s.center,.05*o,"deeppink",r),...Cm.circle(t,s,"deeppink thin5 nofill",r)]},oneProngAtDullCorner:function(t,n,e,r=1e3,o=1){const i=Qg(Number.POSITIVE_INFINITY,n);return[...Cm.dot(t,n.p,.1,"orange"),...Cm.dot(t,i.center,.25,"orange"),...Cm.circle(t,i,"orange thin10 nofill")]},twoProng_regular:Bm,twoProng_failed:Bm,twoProng_notAdded:Bm,twoProng_deleted:Bm,twoProng_holeClosing:Bm,threeProng:function(t,n,e,r=0,o=1){const i=function(t,n){return{center:t.center,radius:1*t.radius}}(n.circle),s=n.poss,c=Cm.dot(t,s[0].p,.01*o,"blue",r),u=Cm.dot(t,s[1].p,.02*o,"blue",r),f=Cm.dot(t,s[2].p,.03*o,"blue",r);return[...Cm.dot(t,i.center,.03*o,"blue",r),...c,...u,...f,...Cm.circle(t,i,"blue thin2 nofill",r)]},boundingHull:function(t,n,e="thin5 black nofill",r=0,o=1){return Cm.polygon(t,n,e,r)},looseBoundingBox:function(t,n,e="thin5 brown nofill",r=0,o=1){const[[i,s],[c,u]]=n;return n=[[i,s],[c,s],[c,u],[i,u]],Cm.polygon(t,n,e,r)},tightBoundingBox:function(t,n,e="thin5 pinker nofill",r=0,o=1){return Cm.polygon(t,n,"thin5 pinker nofill",r)},sharpCorner:function(t,n,e="green",r=0,o=1){const i=n.ps[n.ps.length-1];return Cm.dot(t,i,.6*o,"green",r)},dullCorner:function(t,n,e="orange",r=0,o=1){const i=n.ps,s=n.ps[i.length-1];return Cm.dot(t,s,.05*o,e,r)},vertex:function(t,n,e,r,o=1){const i=n.cp.circle,s="thin20",c=Cn(n);console.log(c);let u=[];u=[...Cm.circle(t,i,"red "+s+" nofill ",r),...Cm.crossHair(t,i.center,"red "+s+" nofill ",3,r)];for(let n=0;n<c.length;n++){const e=c[n].next.cp.circle,o=Cm.circle(t,e,"pink "+s+" nofill ",r),f=Cm.crossHair(t,e.center,"pink "+s+" nofill ",3,r);u.push(...o,...f);const l=i.center,h=e.center,a=0===n?"thin10":1===n?"thin20":"thin35",p=Cm.line(t,[l,h],"yellow "+a+" nofill ",r);u.push(...p)}return u},mat:Ym("mat"),sat:Ym("sat"),maxVertex:function(t,n){const e=n.cp.circle;return Cm.circle(t,e,"brown thin10 nofill")},leaves:function(t,n){const e=[];for(const r of n){const n=r.cp.circle.center;e.push(Fm(t,n,.5,"pinker thin5 nofill"))}return e},culls:function(t,n){const e=[];for(const r of n){const n=r.center;e.push(Vm(t,n,.4,"cyan thin5 nofill"))}return e},cpNode:function(t,n){return[]}};function Lm(t){if(!t)return void(window._debug_=void 0);let n=window._debug_;n={...n,generated:{...n&&n.generated?n.generated:{},elems:{...n&&n.generated&&n.generated.elems?n.generated.elems:{},oneProng:[],oneProngAtDullCorner:[],twoProng_regular:[],twoProng_failed:[],twoProng_notAdded:[],twoProng_deleted:[],twoProng_holeClosing:[],looseBoundingBox:[],tightBoundingBox:[],sharpCorner:[],dullCorner:[],vertex:[],threeProng:[],boundingHull:[],mat:[],sat:[],cpNode:[],maxVertex:[],leaves:[],culls:[]},timing:{...n&&n.generated&&n.generated.timing?n.generated.timing:{},holeClosers:0,oneAnd2Prongs:0,threeProngs:0,sats:0,simplifyMat:0}},fs:{...n&&n.fs?n.fs:{},drawElem:{...n&&n.fs&&n.fs.drawElem?n.fs.drawElem:{},...km},...mm,twoProng:Am,threeProng:zm},directives:{...n&&n.directives?n.directives:{},stopAfterHoleClosers:!1,stopAfterHoleClosersNum:void 0,stopAfterTwoProngs:!1,stopAfterTwoProngsNum:void 0,stopAfterThreeProngs:!1,stopAfterThreeProngsNum:void 0}},window._debug_=n}function Dm(t,n,e){const r=[];for(const o of n){if(An(o))continue;const n=Nn(o);n&&r.push(...Cm.bezier(t,n,"thin5 purple nofill",e))}return r}function Xm(t,n,e,r,o,i){n=Ld(n,e);let s,c=Number.POSITIVE_INFINITY;for(let u=0;u<n.length;u++){const f=n[u],l=m(e,Cd(f.curve,e,f.ts,r,o,i,t),(t=>t.p));if(void 0===l)continue;const h=jg(l.p,e);let a=f.curve,p=l.t;h<c&&(0===p&&(p=1,a=f.curve.prev),s=Se(a,p,!1),c=h)}return s}function qm(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,s=o.curve;if(i.loop!==s.loop)return;const c=[];return s===i?c.push(Ja(r.curve.ps,r.t,o.t)):(c.push(Ja(r.curve.ps,r.t,1)),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push(Ja(o.ps,0,n))}while(o!==e)}(c,r.curve,o.curve,o.t)),c}function Qm(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,s=o.curve;if(i.loop!==s.loop)return;const c=[];return s===i?c.push({ps:r.curve.ps,ts:[r.t,o.t]}):(c.push({ps:r.curve.ps,ts:[r.t,1]}),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?{ps:o.ps,ts:[0,r]}:{ps:o.ps,ts:[0,1]};t.push(n)}while(o!==e)}(c,r.curve,o.curve,o.t)),c}function $m(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],s=e[0],c=e[1],u=r[0],f=r[1],l=o[0],h=o[1],a=i[0],p=i[1],d=n[0],g=n[1],v=s-d,m=u-d,b=l-d,x=a-d,_=c-g,I=f-g,N=h-g,S=p-g,E=v*v,w=6*v*m,M=6*b*x,P=_*_,T=6*_*I,y=6*N*S,C=6*m*x+9*b*b,O=2*v*x+18*m*b,A=6*v*b+9*m*m,z=6*I*S+9*N*N,B=2*_*S+18*I*N,Y=6*_*N+9*I*I;return[6*(x*x-M+(E-w)+C+(A-O)+(S*S-y+(P-T)+z+(Y-B))),5*(M+5*w+3*O-2*(C+2*A+3*E)+(y+5*T+3*B-2*(z+2*Y+3*P))),4*(C-3*(O-2*A)-5*(2*w-3*E)+(z-3*(B-2*Y)-5*(2*T-3*P))),3*(O-2*(2*A-5*(w-2*E))+(B-2*(2*Y-5*(T-2*P)))),2*(A-5*(w-3*E)+(Y-5*(T-3*P))),w-6*E+(T-6*P)]}function Gm(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],s=e[1],c=r[0],u=r[1],f=o[0],l=o[1],h=n[0],a=n[1],p=i-h,d=c-h,g=f-h,v=s-a,m=u-a,b=l-a,x=p*p,_=p*d,I=d*g,N=v*v,S=v*m,E=m*b,w=v*b+m*m*2,M=p*g+d*d*2;return[b*b+N+2*w-4*(E+S)+(g*g+x+2*M-4*(I+_)),3*(E-w+(3*S-N)+(I-M+(3*_-x))),w-3*(2*S-N)+(M-3*(2*_-x)),S-N+(_-x)]}function Hm(t,n){const[[e,r],[o,i]]=t,[s,c]=n,u=e-s,f=o-s,l=r-c,h=i-c,a=u*f+l*h,p=l*l+u*u;return[f*f+h*h+(p-2*a),a-p]}const Rm=Math.sqrt;function Um(t,n){let e;if(4===t.length)e=$m(t,n);else if(3===t.length)e=Gm(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:$r(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=Hm(t,n)}const r=Ni(e,0,1);r.push(0),r.push(1);let o,i=Number.POSITIVE_INFINITY;for(const e of r){const r=Jp(t,e),s=p(r,n);s<i&&(i=s,o={p:r,t:e,d:Rm(s)})}return o}const Zm=Math.sqrt;function jm(t){let n=Number.NEGATIVE_INFINITY;for(let e=0;e<t.length;e++){const r=t[e],o=Math.abs(r[0]),i=Math.abs(r[1]);o>n&&(n=o),i>n&&(n=i)}return n}function Wm(t){return Math.max(t.hL+t.hEL,t.hR+t.hER)}function Jm(t,n){const e=Wm(t)-Wm(n);return 0!==e?e:t.tS-n.tS}class Km{compare;heap=[];constructor(t){this.compare=t}insert(t){const n=this.heap;n.push(t);let e=n.length-1;for(;;){const r=(e-1-(e+1)%2)/2;if(-1===r)return;const o=n[r];if(this.compare(t,o)<0)break;n[r]=t,n[e]=o,e=r}}popMax(){const t=this.heap,n=t[0];return t[0]=t[t.length-1],t.length--,this.swimDown(),n}swimDown(){const t=this.heap,n=t.length;let e=0;for(;;){const r=2*e+1;if(r>=n)break;const o=2*e+2,i=o>=n||this.compare(t[r],t[o])>0?r:o,s=t[i],c=t[e];if(this.compare(c,s)>0)break;t[i]=c,t[e]=s,e=i}}swapMinOrMax(t){this.heap[0]=t,this.swimDown()}static getParentIdx(t){return(t-1-(t+1)%2)/2}static getLeftChild(t){return 2*t+1}static getRightChild(t){return 2*t+2}}const tb=Math.max;function nb(t,n,e,r=50){if(1===t.length)return Um(n,t[0]).d;if(1===n.length)return function(t,n){let e;if(4===t.length)e=$m(t,n);else if(3===t.length)e=Gm(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:$r(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=Hm(t,n)}const r=Ni(e,0,1);r.push(0),r.push(1);let o,i=Number.NEGATIVE_INFINITY;for(const e of r){const r=Jp(t,e),s=p(r,n);s>i&&(i=s,o={p:r,t:e,d:Zm(s)})}return o}(t,n[0]).d;if(2===t.length&&2===n.length){const e=Um(n,t[0]).d,r=Um(n,t[t.length-1]).d;return e>r?e:r}const o=tb(jm(t),jm(n));e=e||o/1e6;const[i,s]=eb(t,0,1),c={tS:0,tE:1,hL:Um(n,t[0]).d,hR:Um(n,t[t.length-1]).d,hEL:i,hER:s},u=new Km(Jm);u.insert(c);let f=0,l=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY;for(;;){const o=u.heap[0],{tS:i,tE:s,hL:c,hR:a}=o,p=(i+s)/2,[d,g]=eb(t,i,p),[v,m]=eb(t,p,s),b=Jp(t,p),x=$r(b,Um(n,b).p),_=tb(c,x,a);if(_>h&&(h=_),l=Wm(o),l-h<e)return h;if(f++>r)return h;const I={tS:i,tE:p,hL:c,hR:x,hEL:d,hER:g},N={tS:p,tE:s,hL:x,hR:a,hEL:v,hER:m};u.swapMinOrMax(I),u.insert(N)}}function eb(t,n,e){const r=(e+n)/2,o=Ja(t,n,r),i=Ja(t,r,e);return[Yd(o),Yd(i)]}const rb=Math.max;function ob(t,n,e,r){const o=nb(t,n,e,r),i=nb(n,t,e,r);return rb(o,i)}function ib(t,n=15,e=.125,r=50){let o=t.cpNode;for(;!An(o);)o=o.next;const i=pm(o,n),s=[];for(let t=0;t<i.length;t++){const n=i[t];let o=0;for(;o<n.length;){const t=o;for(;(o++,o!==n.length)&&!(sb(t,o,n,r)>e);)s.push(n[o]);if(t+1===o)break}}for(const t of s){const n=An(t),e=Cn(t).length;n||2!==e||kn(t)}return{cpNode:o,cpTrees:void 0}}function sb(t,n,e,r){const o=[],i=In(e[t],e[n].next);for(;t<n+1;t++)o.push(ob(Nn(e[t]),i,r));return Math.max(...o)}function cb(t){if(4===t.length)return t;if(3===t.length)return function(t){const[[n,e],[r,o],[i,s]]=t;return[[n,e],[1/3*n+2/3*r,1/3*e+2/3*o],[2/3*r+1/3*i,2/3*o+1/3*s],[i,s]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t,i=(r-n)/3,s=(o-e)/3;return[[n,e],[n+i,e+s],[n+2*i,e+2*s],[r,o]]}(t);if(1===t.length){const n=t[0];return[n,n,n,n]}throw new Error("The given bezier curve must be of order <= 3.")}function ub(t,n=15,e=.1,r=1){const o=new Map;for(;!An(t);)t=t.next;const i=pm(t,n),s=[];for(let t=0;t<i.length;t++){const n=i[t];let c=0;for(;c<n.length;){const t=c;for(;(c++,c!==n.length)&&!(fb(t,c,n,r)>e);)s.push(n[c]);if(t+1===c);else{const e=n[t],r=n[c-1],i=cb(In(e,r.next)),s=i.slice().reverse();let u=e,f=0;for(;u!==r;){const t=Um(i,u.next.cp.circle.center).t;o.set(u,{ps:i,ts:[f,t]});const n=u.nextOnCircle.prev;o.set(n,{ps:s,ts:[1-t,1-f]}),f=t,u=u.next}o.set(u,{ps:i,ts:[f,1]});const l=u.nextOnCircle.prev;o.set(l,{ps:s,ts:[0,1-f]})}}}return{simpleMap:o,cpNode:t}}function fb(t,n,e,r){const o=[],i=In(e[t],e[n].next);for(let s=t;s<n+1;s++)o.push(ob(Nn(e[s]),i,r));return Math.max(...o)}const lb=0,hb=1;function ab(t,n,e,r){const o=[];for(const r of t)o.push({type:lb,item:r,x:n(r)}),o.push({type:hb,item:r,x:e(r)});o.sort(pb);const i=new Set,s=[];for(const t of o){const{item:n}=t;if(t.type===lb){for(const t of i.values())r(n,t)&&s.push([n,t]);i.add(n)}else t.type===hb&&i.delete(t.item)}return s}function pb(t,n){const e=t.x-n.x;return 0!==e?e:t.type===lb?-1:1}var db=n.A3,gb=n.bz,vb=n.Ev,mb=n.$d,bb=n.zh,xb=n.Ls,_b=n.CU,Ib=n.gM,Nb=n.xD,Sb=n.SQ,Eb=n.f4,wb=n.BG,Mb=n.Ij,Pb=n.tQ,Tb=n.C_,yb=n.G,Cb=n.bx,Ob=n.DZ,Ab=n.yc,zb=n.wH,Bb=n.N0,Yb=n.EC,Fb=n.Jt,Vb=n.DC,kb=n.PF,Lb=n.tO,Db=n.Sl,Xb=n.ZN,qb=n.MY,Qb=n.bA,$b=n.p8,Gb=n.bQ,Hb=n.WN,Rb=n.r0,Ub=n.UW,Zb=n._T,jb=n.Dw,Wb=n.xs,Jb=n.vU,Kb=n.y9,tx=n.Fw,nx=n.QE,ex=n.pI;export{db as beziersToSvgPathStr,gb as cpNodeComparator,vb as createCpNode,mb as createPos,bb as drawBranch,xb as drawElemFunctions,_b as drawMat,Ib as enableDebugForMat,Nb as enhanceCpNode,Sb as findMats,Eb as getAllOnLoop,wb as getBoundaryBezierPartsToNext,Mb as getBoundaryBeziersToNext,Pb as getBoundaryPieceBeziers,Tb as getBranches,yb as getChildren,Cb as getClosestBoundaryPointCertified,Ob as getClosestSquareDistanceToRect,Ab as getCpNodesOnCircle,zb as getCurveBetween,Bb as getCurveToNext,Yb as getFirstExit,Fb as getPathsFromStr,Vb as getProngCount,kb as getRealProngCount,Lb as getShapeBounds,Db as insertCpNode,Xb as isFullyTerminating,qb as isOnSameCircle,Qb as isSharp,$b as isTerminating,Gb as loopFromBeziers,Hb as matCurveToNextVertex,Rb as removeCpNode,Ub as simplifyMat,Zb as simplifyMatMapOnly,jb as sweepLine,Wb as toScaleAxis,Jb as traverseCp,Kb as traverseEdges,tx as traverseVertices,nx as trimMat,ex as vertexChildren};
1
+ var t={};function n(t=[],n){const r=[],o={beziers:t,curves:r,idx:n};if(0===t.length)return o;let i,c=0;for(let n=0;n<t.length;n++){if(e(t[n]))continue;const s={loop:o,ps:t[n],prev:i,next:void 0,idx:c};i&&(i.next=s),i=s,r.push(s),c++}const s=r[r.length-1];return r[0].prev=s,s.next=r[0],s.ps[s.ps.length-1]=r[0].ps[0],o}function e(t){return 2===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]:3===t.length?t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]:t[0][0]===t[1][0]&&t[0][1]===t[1][1]&&t[1][1]===t[2][1]&&t[1][1]===t[2][1]&&t[2][1]===t[3][1]&&t[2][1]===t[3][1]}function r(t){let n="";for(let e=0;e<t.length;e++){const r=t[e];0===e&&(n="M "+r[0][0].toString()+" "+r[0][1].toString()+"\n"),4===r.length?n+="C "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" "+r[3][0].toString()+" "+r[3][1].toString()+" \n":3===r.length?n+="Q "+r[1][0].toString()+" "+r[1][1].toString()+" "+r[2][0].toString()+" "+r[2][1].toString()+" \n":2===r.length&&(n+="L "+r[1][0].toString()+" "+r[1][1].toString()+" \n")}return n+" z\n"}t.d=(n,e)=>{for(var r in e)t.o(e,r)&&!t.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:e[r]})},t.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n);class o{initialPoint=void 0;p;vals=void 0;prev2ndCubicControlPoint=void 0;prev2ndQuadraticControlPoint=void 0;constructor(){this.p=[0,0]}}function i(t){const n=[t.p,t.initialPoint];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n}function c(t){t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0;const n=(e=t.p,t.vals[0],t.vals[1],t.vals[2],t.vals[3],t.vals[4],[[e,[t.vals[5],t.vals[6]]]]);var e;const r=n[n.length-1];return t.p=r[r.length-1],n}const s={c:function(t){const n=[t.p,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]],[t.vals[4],t.vals[5]]];return t.prev2ndCubicControlPoint=n[2],t.prev2ndQuadraticControlPoint=void 0,n},h:function(t){const n=[t.p,[t.vals[0],t.p[1]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},l:function(t){const n=[t.p,t.vals];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},q:function(t){const n=[t.vals[0],t.vals[1]],e=[t.vals[2],t.vals[3]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},s:function(t){const n=t.prev2ndCubicControlPoint?[t.p[0]-t.prev2ndCubicControlPoint[0]+t.p[0],t.p[1]-t.prev2ndCubicControlPoint[1]+t.p[1]]:t.p,e=[t.p,n,[t.vals[0],t.vals[1]],[t.vals[2],t.vals[3]]];return t.prev2ndCubicControlPoint=e[2],t.prev2ndQuadraticControlPoint=void 0,e},t:function(t){const n=t.prev2ndQuadraticControlPoint?[t.p[0]-t.prev2ndQuadraticControlPoint[0]+t.p[0],t.p[1]-t.prev2ndQuadraticControlPoint[1]+t.p[1]]:t.p,e=[t.vals[0],t.vals[1]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=n,[t.p,n,e]},v:function(t){const n=[t.p,[t.p[0],t.vals[0]]];return t.prev2ndCubicControlPoint=void 0,t.prev2ndQuadraticControlPoint=void 0,n},z:i};function u(t){let n=0,e=0,r=1,o=0,i=1,c=1;const s=t._currentIndex;if(t._skipOptionalSpaces(),t._currentIndex<t._endIndex&&"+"===t._string[t._currentIndex]?t._currentIndex+=1:t._currentIndex<t._endIndex&&"-"===t._string[t._currentIndex]&&(t._currentIndex+=1,i=-1),t._currentIndex===t._endIndex||(t._string[t._currentIndex]<"0"||t._string[t._currentIndex]>"9")&&"."!==t._string[t._currentIndex])throw new Error("The first character of a number must be one of [0-9+-.].");const u=t._currentIndex;for(;t._currentIndex<t._endIndex&&t._string[t._currentIndex]>="0"&&t._string[t._currentIndex]<="9";)t._currentIndex+=1;if(t._currentIndex!==u){let n=t._currentIndex-1,r=1;for(;n>=u;)e+=r*(Number(t._string[n])-0),n-=1,r*=10}if(t._currentIndex<t._endIndex&&"."===t._string[t._currentIndex]){if(t._currentIndex+=1,t._currentIndex>=t._endIndex||t._string[t._currentIndex]<"0"||t._string[t._currentIndex]>"9")throw new Error("There must be a least one digit following the .");for(;t._currentIndex<t._endIndex&&t._string[t._currentIndex]>="0"&&t._string[t._currentIndex]<="9";)r*=10,o+=Number(t._string.charAt(t._currentIndex))/r,t._currentIndex+=1}if(t._currentIndex!==s&&t._currentIndex+1<t._endIndex&&("e"===t._string[t._currentIndex]||"E"===t._string[t._currentIndex])&&"x"!==t._string[t._currentIndex+1]&&"m"!==t._string[t._currentIndex+1]){if(t._currentIndex+=1,"+"===t._string[t._currentIndex]?t._currentIndex+=1:"-"===t._string[t._currentIndex]&&(t._currentIndex+=1,c=-1),t._currentIndex>=t._endIndex||t._string[t._currentIndex]<"0"||t._string[t._currentIndex]>"9")throw new Error("There must be an exponent.");for(;t._currentIndex<t._endIndex&&t._string[t._currentIndex]>="0"&&t._string[t._currentIndex]<="9";)n*=10,n+=Number(t._string[t._currentIndex]),t._currentIndex+=1}let f=e+o;if(f*=i,n&&(f*=Math.pow(10,c*n)),s===t._currentIndex)throw new Error("Internal error: startIndex === source._currentIndex");return t._skipOptionalSpacesOrDelimiter(),f}const f={Z:"Z",M:"M",L:"L",C:"C",Q:"Q",A:"A",H:"H",V:"V",S:"S",T:"T",z:"Z",m:"m",l:"l",c:"c",q:"q",a:"a",h:"h",v:"v",s:"s",t:"t"};class l{_string;_currentIndex;_endIndex;_prevCommand;constructor(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._prevCommand=void 0,this._skipOptionalSpaces()}parseSegment(){const t=this._string[this._currentIndex];let n,e=f[t];if(void 0===e){if(void 0===this._prevCommand)throw new Error("Implicit command not allowed for first commands.");if(!("+"===t||"-"===t||"."===t||t>="0"&&t<="9")||"Z"===this._prevCommand)throw new Error("Remaining coordinates not found for implicit command");e="M"===this._prevCommand?"L":"m"===this._prevCommand?"l":this._prevCommand}else this._currentIndex+=1;this._prevCommand=e;const r=e.toUpperCase();if("H"===r||"V"===r?n=[u(this)]:"M"===r||"L"===r||"T"===r?n=[u(this),u(this)]:"S"===r||"Q"===r?n=[u(this),u(this),u(this),u(this)]:"C"===r?n=[u(this),u(this),u(this),u(this),u(this),u(this)]:"A"===r?n=[u(this),u(this),u(this),this._parseArcFlag(),this._parseArcFlag(),u(this),u(this)]:"Z"===r&&(this._skipOptionalSpaces(),n=[]),void 0===n)throw new Error("Unknown command");return{type:e,values:n}}hasMoreData(){return this._currentIndex<this._endIndex}initialCommandIsMoveTo(){if(!this.hasMoreData())return!0;const t=f[this._string[this._currentIndex]];return"M"===t||"m"===t}_isCurrentSpace(){const t=this._string[this._currentIndex];return t<=" "&&(" "===t||"\n"===t||"\t"===t||"\r"===t||"\f"===t)}_skipOptionalSpaces(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex+=1;return this._currentIndex<this._endIndex}_skipOptionalSpacesOrDelimiter(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!==this._string[this._currentIndex])&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","===this._string[this._currentIndex]&&(this._currentIndex+=1,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)}_parseArcFlag(){if(this._currentIndex>=this._endIndex)throw new Error("Unable to parse arc flag");let t;const n=this._string[this._currentIndex];if(this._currentIndex+=1,"0"===n)t=0;else{if("1"!==n)throw new Error("Unable to parse arc flag - arc flag must be 0 or 1");t=1}return this._skipOptionalSpacesOrDelimiter(),t}}function a(t){return function(t){if(0===t.length)return[];if("m"!==t[0].type.toLowerCase())throw new Error("Invalid SVG - every new path must start with an M or m.");const n=new o,e=[];let r,u=[];for(let o=0;o<t.length;o++){const f=t[o],l=f.type.toLowerCase();if(n.vals=f.values,f.type===l)if("v"===l)n.vals[0]+=n.p[1];else if("a"===l)n.vals[5]+=n.p[0],n.vals[6]+=n.p[1];else for(let t=0;t<n.vals.length;t++)n.vals[t]+=n.p[t%2];if("m"!==l){if("a"===l)u.push(...c(n));else{const t=s[l];if(!t)throw new Error("Invalid SVG - command not recognized.");const e=t(n);n.p=e[e.length-1],u.push(e)}r=l}else u.length&&("z"!==r&&u.push(i(n)),e.push(u),u=[]),n.initialPoint=n.p=n.vals,r=l}return u.length>0&&("z"!==r&&u.push(i(n)),e.push(u)),e}(function(t){if(!t.length)return[];const n=new l(t),e=[];if(!n.initialCommandIsMoveTo())throw new Error("Path must start with m or M");for(;n.hasMoreData();)e.push(n.parseSegment());return e}(t))}function p(t,n,e="thin10 red nofill",r=0){if(0===n.length)return[];let o=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];if(e.length<=1)continue;const[,r,i,c]=e;o+=2===e.length?`L ${r[0]} ${r[1]} `:3===e.length?`Q ${r[0]} ${r[1]} ${i[0]} ${i[1]} `:`C ${r[0]} ${r[1]} ${i[0]} ${i[1]} ${c[0]} ${c[1]} `}const i=document.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttributeNS(null,"d",o),i.setAttributeNS(null,"class",e),t.appendChild(i),[i]}function h(t){const n=t.length,e=Array.from(Array(n),()=>new Array(n).fill(0));for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][o]=t[r][o];for(let t=0;t<n;t++)for(let r=0;r<n;r++)for(let o=0;o<n;o++)e[r][t]+e[t][o]<e[r][o]&&(e[r][o]=e[r][t]+e[t][o]);return e}function d(t,n){let e=function(t,n){let e;return e=t.curve.idx-n.curve.idx,0!==e||(e=t.t-n.t),e}(t.pointOnShape,n.pointOnShape);return 0!==e?e:(e=t.order-n.order,0!==e?e:t.order2-n.order2)}function v(t){const n=t,e=[n];let r=t.next;for(;r!==n;)e.push(r),r=r.next;return e}const g=134217729;function m(t,n){const e=t*n,r=g*t,o=r-(r-t),i=t-o,c=g*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}function x(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r+i,s=c-r,u=e+o,f=u-e,l=r-(c-s)+(i-s)+u,a=c+l,p=e-(u-f)+(o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}function b(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r-i,s=c-r,u=e-o,f=u-e,l=r-(c-s)+(-i-s)+u,a=c+l,p=e-(u-f)+(-o-f)+(l-(a-c)),h=a+p;return[p-(h-a),h]}const I=m,_=x,N=b,{atan2:S}=Math;function E(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=N(I(i,e),I(o,r))[1],s=_(I(o,e),I(i,r))[1];return S(c,s)}const w=Math.abs,M=[[0,0],[0,0],[0,0]];function O(t,n,e){return 0===n?1===e?{ps:t,_ps:M}:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=c-u,d=[[i,c],[-n*p+i,-n*h+c],[a*(p+(f-s))-(2*n*p-i),a*(h+(l-u))-(2*n*h-c)]],v=w(n),g=w(i),m=w(s),x=w(f),b=g+m,I=w(c),_=w(u),N=I+_;return{ps:d,_ps:[[0,0],[v*b+g,v*N+I],[a*(b+(x+m))+(2*v*b+g),a*(N+(w(l)+_))+(2*v*N+I)]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n*n,p=i-s,h=f-s,d=c-u,v=l-u,g=[[a*(p+h)-(2*n*p-i),a*(d+v)-(2*n*d-c)],[n*h+s,n*v+u],[f,l]],m=w(n),x=w(i),b=w(s),I=x+b,_=w(f)+b,N=w(c),S=w(u),E=N+S;return{ps:g,_ps:[[a*(I+_)+(2*m*I+x),a*(E+(w(l)+S))+(2*m*E+N)],[m*_+b,0],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=i[0],a=i[1],p=n*n,h=e*e,d=n*e,v=c-u,g=v+(l-u),m=s-f,x=m+(a-f),b=p*g-(2*n*v-c),I=d*g-(v*(e+n)-c),_=h*g-(2*e*v-c),N=p*x-(2*n*m-s),S=d*x-(m*(e+n)-s),E=h*x-(2*e*m-s),M=w(n),O=w(e),T=w(d),C=w(c),y=w(u),P=C+y,A=P+w(l)+y,B=w(s),z=w(f),F=B+z,Y=F+w(a)+z;return{ps:[[b,N],[I,S],[_,E]],_ps:[[p*A+(2*M*P+C),p*Y+(2*M*F+B)],[T*A+(P*(O+M)+C),T*x+(F*(O+M)+B)],[h*A+(2*O*P+C),h*Y+(2*O*F+B)]]}}(t,n,e)}const T=Math.abs,C=[[0,0],[0,0],[0,0],[0,0]];function y(t,n,e){return 0===n?1===e?{ps:t,_ps:C}:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=d-n*(d-v),m=g-n*(g-(v-n*(v-(l-n*(l-p))))),x=s-n*(s-f),b=f-n*(f-a),I=x-n*(x-b),_=I-n*(I-(b-n*(b-(a-n*(a-h))))),N=T(n),S=T(c),E=T(u),w=T(l),M=T(p),O=T(s),C=T(f),y=T(a),P=S+N*(S+E),A=E+N*(E+w),B=P+N*(P+A),z=O+N*(O+C),F=C+N*(C+y),Y=z+N*(z+F);return{ps:[[c,s],[d,x],[g,I],[m,_]],_ps:[[0,0],[P,z],[B,Y],[B+N*(B+(A+N*(A+(w+N*(w+M))))),Y+N*(Y+(F+N*(F+(y+N*(y+T(h))))))]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=c-n*(c-u),v=u-n*(u-l),g=l-n*(l-p),m=d-n*(d-v),x=v-n*(v-g),b=m-n*(m-x),I=s-n*(s-f),_=f-n*(f-a),N=a-n*(a-h),S=I-n*(I-_),E=_-n*(_-N),w=S-n*(S-E),M=T(n),O=T(c),C=T(u),y=T(l),P=T(p),A=T(s),B=T(f),z=T(a),F=O+M*(O+C),Y=C+M*(C+y),V=y+M*(y+P),L=F+M*(F+Y),k=Y+M*(Y+V),$=A+M*(A+B),X=B+M*(B+z),q=z+M*(z+T(h)),H=$+M*($+X),D=X+M*(X+q);return{ps:[[b,w],[x,E],[g,N],[p,h]],_ps:[[L+M*(L+k),H+M*(H+D)],[k,D],[V,q],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,x=s-f,b=a-f,I=c[0]-s,_=x+b,N=n*x,S=e*x,E=I-3*b,w=u-l,M=p-l,O=c[1]-u,C=w+M,y=n*w,P=e*w,A=O-3*M,B=d*E+(3*n*(n*_-x)+s),z=m*(n*E+2*_)+(h*_+s-(S+2*N)),F=m*(e*E+2*_)+(v*_+s-(2*S+N)),Y=g*E+(3*e*(e*_-x)+s),V=d*A+(3*n*(n*C-w)+u),L=m*(n*A+2*C)+(h*C+u-(P+2*y)),k=m*(e*A+2*C)+(v*C+u-(2*P+y)),$=g*A+(3*e*(e*C-w)+u),X=T(n),q=T(e),H=T(m),D=T(d),Q=T(g),G=T(s),R=T(f),U=G+R,j=T(a)+R,Z=U+j,W=X*U,J=q*U,K=T(I)+3*j,tt=T(u),nt=T(l),et=tt+nt,rt=T(p)+nt,ot=et+rt,it=X*et,ct=q*et,st=T(O)+3*rt;return{ps:[[B,V],[z,L],[F,k],[Y,$]],_ps:[[D*K+(3*X*(X*Z+U)+G),D*st+(3*X*(X*ot+et)+tt)],[H*(X*K+2*Z)+(h*Z+G+(J+2*W)),H*(X*st+2*ot)+(h*ot+tt+(ct+2*it))],[H*(q*K+2*Z)+(v*Z+G+(2*J+W)),H*(q*st+2*ot)+(v*ot+tt+(2*ct+it))],[Q*K+(3*q*(q*Z+U)+G),Q*st+(3*q*(q*ot+et)+tt)]]}}(t,n,e)}function P(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function A(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}function B(t,n){const e=t.length,r=n.length;let o=0,i=0;const c=[];for(;o<e&&i<r;)0!==t[o]?0!==n[i]?Math.abs(t[o])<=Math.abs(n[i])?(c.push(t[o]),o++):(c.push(n[i]),i++):i++:o++;for(;o<e;)c.push(t[o]),o++;for(;i<r;)c.push(n[i]),i++;if(0===c.length)return[0];const s=c.length;if(1===s)return c;const u=[],f=c[1],l=c[0];let a=f+l;const p=l-(a-f);0!==p&&u.push(p),i=0;for(let t=2;t<s;t++){const n=c[t],e=a+n,r=e-a,o=a-(e-r)+(n-r);0!==o&&u.push(o),a=e}return 0===a&&0!==u.length||u.push(a),u}function z(t){const n=t.length,e=new Array(n);for(let r=0;r<n;r++)e[r]=-t[r];return e}const F=z,Y=B;function V(t,n){const e=F(n);return Y(t,e)}const L=134217729;function k(t,n){const e=t.length;let r;const o=t[0];let i=o*n;const c=L*o,s=c-(c-o),u=o-s,f=L*n,l=f-(f-n),a=n-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=t[o],c=e*n,s=L*e,u=s-(s-e),f=e-u,l=L*n,a=l-(l-n),h=n-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const x=c+r,b=r-(x-c);0!==b&&p.push(b),i=x}return 0===i&&0!==p.length||p.push(i),p}function $(t,n){const e=n.length;let r;const o=n[0];let i=o*t;const c=L*o,s=c-(c-o),u=o-s,f=L*t,l=f-(f-t),a=t-l,p=[],h=u*a-(i-s*l-u*l-s*a);0!==h&&p.push(h);for(let o=1;o<e;o++){const e=n[o],c=e*t,s=L*e,u=s-(s-e),f=e-u,l=L*t,a=l-(l-t),h=t-a,d=f*h-(c-u*a-f*a-u*h),v=i+d,g=v-i,m=i-(v-g)+(d-g);0!==m&&p.push(m),r=v;const x=c+r,b=r-(x-c);0!==b&&p.push(b),i=x}return 0===i&&0!==p.length||p.push(i),p}const X=k,q=B;function H(t,n){let e=[0];for(let r=0;r<t.length;r++)e=q(e,X(n,t[r]));return e}function D(t,n){const e=t.length;let r=n;const o=[];for(let n=0;n<e;n++){const e=t[n],i=r+e,c=i-r,s=r-(i-c)+(e-c);0!==s&&o.push(s),r=i}return 0===r&&0!==o.length||o.push(r),o}function Q(t){return t[t.length-1]}function G(t,n){return Q(V(t,n))}const R=Number.EPSILON/2,U=R*R;function j(t){const n=t*R;return n/(1-n)}function Z(t){const n=t*U;return n/(1-n)}function W(t){const n=t[0][0],e=t[0][1];for(let r=1;r<t.length;r++)if(n!==t[r][0]||e!==t[r][1])return!1;return!0}function J(t,n){const e=t+n,r=e-t;return[t-(e-r)+(n-r),e]}j(1),Z(3);const K=V,tt=Q,nt=J,{abs:et}=Math;function rt(t){const[[n,e],[r,o],[i,c]]=t,s=n+i,u=s-2*r,f=et(s)+et(u);if(et(u)-f>0)return!1;const l=e+c,a=l-2*o,p=et(l)+et(a);return!(et(a)-p>0)&&0===tt(K(nt(n,i),[2*r]))&&0===tt(K(nt(e,c),[2*o]))}const ot=134217729;function it(t,n){const e=t*n,r=ot*t,o=r-(r-t),i=t-o,c=ot*n,s=c-(c-n),u=n-s;return[i*u-(e-o*s-i*s-o*u),e]}const ct=it,st=B,ut=Q,ft=V,lt=Number.EPSILON/2,at=Math.abs;function pt(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s+3*r,l=n+3*i,a=f-l,p=at(3*r)+at(f)+(at(3*i)+at(l))+at(a);if(at(a)-lt*p>0)return!1;const h=u+3*o,d=e+3*c,v=h-d,g=at(3*o)+at(h)+(at(3*c)+at(d))+at(v);return!(at(v)-lt*g>0)&&0===ut(ft(st([s],ct(3,r)),st([n],ct(3,i))))&&0===ut(ft(st([u],ct(3,o)),st([e],ct(3,c))))}function ht(t){let n=t[0];for(let e=1;e<t.length;e++)n+=t[e];return n}function dt(t,n){const e=t-n,r=t-e;return[t-(e+r)+(r-n),e]}function vt(t){const n=t.slice(),e=n.length;if(1===e)return n;let r=n[e-1],o=e;for(let t=e-2;t>=0;--t){const e=r,i=n[t];r=e+i;const c=i-(r-e);c&&(n[--o]=r,r=c)}let i=0;for(let t=o;t<e;++t){const e=n[t],o=r;r=e+o;const c=o-(r-e);c&&(n[i++]=c)}return n[i++]=r,n.length=i,n}function gt(t,n,e){const r=(t[0]-e[0])*(n[1]-e[1]),o=(t[1]-e[1])*(n[0]-e[0]),i=r-o;let c;if(r>0){if(o<=0)return i;c=r+o}else{if(!(r<0))return i;if(o>=0)return i;c=-r-o}return Math.abs(i)>=3330669073875472e-31*c?i:function(t,n,e,r){const o=t[0]-e[0],i=n[0]-e[0],c=t[1]-e[1],s=n[1]-e[1],u=V(it(o,s),it(c,i));let f=ht(u);if(Math.abs(f)>=2220446049250315e-31*r)return f;const l=dt(t[0],e[0])[0],a=dt(n[0],e[0])[0],p=dt(t[1],e[1])[0],h=dt(n[1],e[1])[0];if(0===l&&0===p&&0===a&&0===h)return f;const d=1109335647967049e-46*r+3330669073875471e-31*Math.abs(f);if(f+=o*h+s*l-(c*a+i*p),Math.abs(f)>=d)return f;const v=B(u,V(it(l,s),it(p,i))),g=B(v,V(it(o,h),it(c,a)));let m=B(g,V(it(l,h),it(p,a)));return m=vt(m),m[m.length-1]}(t,n,e,c)}const mt=gt;function xt(t){if(4===t.length)return 0===mt(t[0],t[1],t[2])&&0===mt(t[1],t[2],t[3])&&0===mt(t[0],t[2],t[3]);if(3===t.length)return 0===mt(t[0],t[1],t[2]);if(t.length<=2)return!0;throw new Error("The given bezier curve must be of order <= 3.")}const bt=k,It=V,_t=J,Nt=Q,St=Math.abs;const Et=Math.abs,wt=j(1);function Mt(t){const{coeffs:[[n,e,r],[o,i,c]],errorBound:[[s,u],[f,l]]}=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=s-n,l=r-i,a=f+3*l,p=i+n,h=p-2*r,d=r-n,v=u-e,g=o-c,m=v+3*g,x=c+e,b=x-2*o,I=o-e;return{coeffs:[[a,3*h,3*d,n],[m,3*b,3*I,e]],errorBound:[[St(f)+6*St(l)+St(a),6*(St(p)+St(h)),6*St(d),0],[St(v)+6*St(g)+St(m),6*(St(x)+St(b)),6*St(I),0]]}}(t),a=Et(n),p=Et(e),h=Et(r),d=Et(o),v=Et(i),g=Et(c),m=e*o,x=n*i,b=n*c,I=r*o,_=e*c,N=r*i,S=u*d+p*f+Et(m),E=s*v+a*l+Et(x),w=s*g+Et(b),M=h*f+Et(I),O=u*g+Et(_),T=h*l+Et(N),C=m-x,y=Et(C),P=S+E+y,A=I-b,B=Et(A),z=M+w+B,F=_-N,Y=Et(F),V=O+T+Y,L=C*C,k=C*A,$=F*C,X=A*A,q=$+X;return{coeffs:[L,k,q],errBound:[2*P*y+Et(L),P*B+y*z+Et(k),V*y+Y*P+Et($)+(2*B*z+Et(X))+Et(q)].map(t=>wt*t)}}const Ot=dt,Tt=J,Ct=$,yt=D,Pt=B;function At(t){if(4===t.length)return Bt(t);if(3===t.length)return zt(t);if(2===t.length)return Ft(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[[n]],[[e]]]}(t);throw new Error("The given bezier curve must be of order <= cubic.")}function Bt(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Pt(Ot(s,n),Ct(3,Ot(r,i))),Ct(3,yt(Tt(i,n),-2*r)),Ct(3,Ot(r,n)),[n]],[Pt(Ot(u,e),Ct(3,Ot(o,c))),Ct(3,yt(Tt(c,e),-2*o)),Ct(3,Ot(o,e)),[e]]]}function zt(t){const[[n,e],[r,o],[i,c]]=t;return[[yt(Tt(i,n),-2*r),Ot(2*r,2*n),[n]],[yt(Tt(c,e),-2*o),Ot(2*o,2*e),[e]]]}function Ft(t){const[[n,e],[r,o]]=t;return[[Ot(r,n),[n]],[Ot(o,e),[e]]]}const Yt=H,Vt=B,Lt=V;function kt(t){const[[n,e,r],[o,i,c]]=Bt(t),s=Yt(e,o),u=Yt(n,i),f=Yt(n,c),l=Yt(r,o),a=Yt(e,c),p=Yt(r,i),h=Lt(s,u),d=Lt(l,f),v=Lt(a,p),g=Yt(h,h),m=Yt(h,d),x=Yt(h,v),b=Yt(d,d);return[g,m,Vt(x,b)]}const $t=Q,Xt=G,qt=V,Ht=H,Dt=$,Qt=P,Gt=A,Rt=B,Ut=D,jt=Math.abs,Zt=j(1),Wt={order:0,realOrder:0,collinear:!0,nodeType:"n/a"},Jt={order:1,realOrder:1,collinear:!0,nodeType:"n/a"},Kt={order:1,realOrder:0,collinear:!0,nodeType:"n/a"},tn={order:2,realOrder:2,collinear:!1,nodeType:"n/a"},nn={order:2,realOrder:2,collinear:!0,nodeType:"n/a"},en={order:2,realOrder:1,collinear:!0,nodeType:"n/a"},rn={order:2,realOrder:0,collinear:!0,nodeType:"n/a"},on={order:3,realOrder:3,collinear:!1,nodeType:"crunode"},cn={order:3,realOrder:3,collinear:!1,nodeType:"acnode"},sn={order:3,realOrder:3,collinear:!1,nodeType:"cusp"},un={order:3,realOrder:3,collinear:!1,nodeType:"explicit"},fn={order:3,realOrder:3,collinear:!0,nodeType:"n/a"},ln={order:3,realOrder:2,collinear:!1,nodeType:"n/a"},an={order:3,realOrder:2,collinear:!0,nodeType:"n/a"},pn={order:3,realOrder:1,collinear:!0,nodeType:"n/a"},hn={order:3,realOrder:0,collinear:!0,nodeType:"n/a"};function dn(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push((e-r)*t[r]);return n}function vn(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+t[r];return e}const gn=vn,mn=Number.EPSILON/2,xn=Math.abs,bn=Math.max;function In(t){const n=[];for(let e=0;e<t.length;e++)n.push(-t[e]);return n}const _n=In,Nn=function(t){return n=>1/t(function(t){return t.slice().reverse()}(n))};function Sn(t){const n=t.length-1;if(n<1)return 0;t[0]<0&&(t=_n(t));const e=[];for(let t=0;t<n;t++)e.push(1);let r=0;for(let o=0;o<=n;o++){if(t[o]>=0)continue;let n=Number.POSITIVE_INFINITY,i=!1;for(let r=0;r<o;r++){if(t[r]<=0)continue;const c=(-t[o]/(t[r]/2**e[r]))**(1/(o-r));e[r]++,n>c&&(n=c),i=!0}i&&r<n&&(r=n)}return r}Nn(Sn);const En=(wn=Sn,t=>-wn(function(t){const n=t.length-1;if(n<0)return[];const e=t.slice();for(let t=0;t<n+1;t++)t%2==(n-1)%2&&(e[t]=-e[t]);return e}(t)));var wn;function Mn(t){let n=0;for(let e=0;e<=t.length-1&&0===t[e];e++)n++;return 0!==n&&(t=t.slice(n)),t}Nn(En);const On=dn,Tn=vn,Cn=function(t,n,e,r=gn(t,n),o=gn(t,e)){let i=n,c=e,s=i,u=r,f=c-i,l=f;for(;;){xn(u)<xn(o)&&(i=c,c=s,s=i,r=o,o=u,u=r);const n=2*mn*bn(1,xn(i),xn(c)),e=.5*(s-c);if(xn(e)<=n)return c;if(xn(f)<n||xn(r)<=xn(o))f=e,l=f;else{let t,a,p=o/r;if(i===s)t=2*e*p,a=1-p;else{a=r/u;const n=o/u;t=p*(2*e*a*(a-n)-(c-i)*(n-1)),a=(a-1)*(n-1)*(p-1)}0<t?a=-a:t=-t,p=f,f=l,2*t<3*e*a-xn(n*a)&&t<xn(.5*p*a)?l=t/a:(f=e,l=f)}if(i=c,r=o,n<xn(l)?c+=l:0<e?c+=n:c-=n,0===(o=gn(t,c)))return c;o*u>0&&(s=i,u=r,f=c-i,l=f)}},yn=En,Pn=Sn,An=Mn;function Bn(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY){t=An(t);let r=0;for(;0===t[t.length-1];)t=t.slice(0,-1),r++;if(t.length<=1){const t=[];for(let n=0;n<r;n++)t.push(0);return t}n===Number.NEGATIVE_INFINITY&&(n=yn(t)),e===Number.POSITIVE_INFINITY&&(e=Pn(t));const o=[t];for(let n=1;n<=t.length-1;n++)o.push(On(o[n-1]));let i=[];for(let r=t.length-2;r>=0;r--){const t=o[r],c=[];let s=n,u=Tn(t,s);0===u&&0===r&&c.push(n);for(let n=0;n<i.length;n++){const e=i[n],r=Tn(t,e);0===r?c.push(e):u*r<0&&c.push(Cn(t,s,e,u,r)),s=e,u=r}const f=Tn(t,e);u*f<0&&c.push(Cn(t,s,e,u,f)),0===f&&0===r&&c.push(e),i=c}if(r>0&&n<=0&&e>=0){const t=[];let n=!1;for(let e=0;e<i.length;e++){if(!n&&i[e]>=0){for(let n=0;n<r;n++)t.push(0);n=!0}t.push(i[e])}if(!n)for(let n=0;n<r;n++)t.push(0);return t}return i}function zn(t){if(t.length<4)return[];const[[n,e],[r,o],[i,c],[s,u]]=t,f=r-n,l=o-e,a=i-r-f,p=c-o-l,h=s-i-f-2*a,d=u-c-l-2*p;return Bn([a*d-p*h,f*d-l*h,f*p-l*a],0,1)}const{abs:Fn,PI:Yn}=Math;function Vn(t,n=[0,1]){if(t.length<=2)return 0;const[e,r]=n;if(e===r)return 0;if(3===t.length){const n=O(t,e,r).ps,[[o,i],[c,s],[u,f]]=n;return E([c-o,s-i],[u-c,f-s])}if(4===t.length){const n=y(t,e,r).ps,o=function(t){if(4===t.length)return pt(t)?function(t){if(!xt(t))return!1;const[n,e,r,o]=t,[i,c]=n,[s,u]=e,[f,l]=r,[a,p]=o,h=It(bt(_t(s/4,f/4),3),_t(i/4,a/4)),d=It(bt(_t(u/4,l/4),3),_t(c/4,p/4));return 0===Nt(It(_t(i/2,a/2),h))&&0===Nt(It(_t(c/2,p/2),d))}(t)?W(t)?hn:pn:xt(t)?an:ln:xt(t)?fn:function(t){const{coeffs:[n,e,r],errBound:[o,i,c]}=Mt(t);if(jt(n)<=o){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Rt(Qt(s,n),Dt(3,Qt(r,i))),l=Ut(Gt(i,n),-2*r),a=Rt(Qt(u,e),Dt(3,Qt(o,c))),p=Ut(Gt(c,e),-2*o),h=Ht(l,a),d=Ht(f,p);if(0===Xt(h,d))return un}const s=e*e,u=4*n*r,f=s-u,l=2*i*jt(e)+Zt*s+(4*(o*jt(r)+jt(n)*c)+Zt*jt(u))+Zt*jt(f);if(f<-l)return cn;if(f>l)return on;const[a,p,h]=kt(t),d=qt(Ht(p,p),Dt(4,Ht(a,h))),v=$t(d);return v<0?cn:v>0?on:sn}(t);if(3===t.length)return xt(t)?rt(t)?W(t)?rn:en:nn:tn;if(2===t.length)return W(t)?Kt:Jt;if(1===t.length)return Wt;throw new Error("The given bezier curve must be of order <= 3")}(n),[[i,c],[s,u],[f,l],[a,p]]=n,h=[s-i,u-c],d=[f-s,l-u],v=[a-f,p-l];if(0===d[0]&&0===d[1]||o.realOrder<=2)return E(h,v);const g=E(h,d)+E(d,v);return"acnode"===o.nodeType||"cusp"===o.nodeType?g<=-Yn?g+2*Yn:g>=+Yn?g-2*Yn:g:g}throw new Error("The given bezier curve must be of order <= 3.")}function Ln(t,n){const e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}function kn(t,n){const[e,r]=t,[[o,i],[c,s]]=n;return Ln([o+e*(c-o),i+e*(s-i)],[o+r*(c-o),i+r*(s-i)])}function $n(t,n,e=16){if(n[0]===n[1])return 0;const{weights:r,abscissas:o}=Xn[e],[i,c]=n;let s=0;const u=(c-i)/2,f=(c+i)/2;for(let n=0;n<=e-1;n++)s+=r[n]*t(u*o[n]+f);return u*s}const Xn={2:{weights:[1,1],abscissas:[-.5773502691896257,.5773502691896257]},4:{weights:[.6521451548625461,.6521451548625461,.3478548451374538,.3478548451374538],abscissas:[-.3399810435848563,.3399810435848563,-.8611363115940526,.8611363115940526]},8:{weights:[.362683783378362,.362683783378362,.3137066458778873,.3137066458778873,.2223810344533745,.2223810344533745,.1012285362903763,.1012285362903763],abscissas:[-.1834346424956498,.1834346424956498,-.525532409916329,.525532409916329,-.7966664774136267,.7966664774136267,-.9602898564975363,.9602898564975363]},16:{weights:[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685,.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096],abscissas:[-.9894009349916499,-.9445750230732326,-.8656312023878318,-.755404408355003,-.6178762444026438,-.45801677765722737,-.2816035507792589,-.09501250983763744,.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]},64:{weights:[.048690957009139724,.048690957009139724,.04857546744150343,.04857546744150343,.048344762234802954,.048344762234802954,.04799938859645831,.04799938859645831,.04754016571483031,.04754016571483031,.04696818281621002,.04696818281621002,.046284796581314416,.046284796581314416,.04549162792741814,.04549162792741814,.044590558163756566,.044590558163756566,.04358372452932345,.04358372452932345,.04247351512365359,.04247351512365359,.04126256324262353,.04126256324262353,.03995374113272034,.03995374113272034,.038550153178615626,.038550153178615626,.03705512854024005,.03705512854024005,.035472213256882386,.035472213256882386,.033805161837141606,.033805161837141606,.03205792835485155,.03205792835485155,.030234657072402478,.030234657072402478,.028339672614259483,.028339672614259483,.02637746971505466,.02637746971505466,.024352702568710874,.024352702568710874,.022270173808383253,.022270173808383253,.02013482315353021,.02013482315353021,.017951715775697343,.017951715775697343,.015726030476024718,.015726030476024718,.013463047896718643,.013463047896718643,.011168139460131128,.011168139460131128,.008846759826363947,.008846759826363947,.006504457968978363,.006504457968978363,.004147033260562468,.004147033260562468,.001783280721696433,.001783280721696433],abscissas:[-.024350292663424433,.024350292663424433,-.07299312178779904,.07299312178779904,-.12146281929612056,.12146281929612056,-.16964442042399283,.16964442042399283,-.21742364374000708,.21742364374000708,-.2646871622087674,.2646871622087674,-.31132287199021097,.31132287199021097,-.3572201583376681,.3572201583376681,-.4022701579639916,.4022701579639916,-.4463660172534641,.4463660172534641,-.48940314570705296,.48940314570705296,-.5312794640198946,.5312794640198946,-.571895646202634,.571895646202634,-.6111553551723933,.6111553551723933,-.6489654712546573,.6489654712546573,-.6852363130542333,.6852363130542333,-.7198818501716109,.7198818501716109,-.7528199072605319,.7528199072605319,-.7839723589433414,.7839723589433414,-.8132653151227975,.8132653151227975,-.8406292962525803,.8406292962525803,-.8659993981540928,.8659993981540928,-.8893154459951141,.8893154459951141,-.9105221370785028,.9105221370785028,-.9295691721319396,.9295691721319396,-.9464113748584028,.9464113748584028,-.9610087996520538,.9610087996520538,-.973326827789911,.973326827789911,-.983336253884626,.983336253884626,-.9910133714767443,.9910133714767443,-.9963401167719553,.9963401167719553,-.9993050417357722,.9993050417357722]}};function qn(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[3*(s-n+3*(r-i)),6*(i+n-2*r),3*(r-n)],[3*(u-e+3*(o-c)),6*(c+e-2*o),3*(o-e)]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[2*(i+n-2*r),2*(r-n)],[2*(c+e-2*o),2*(o-e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n],[o-e]]}(t);if(1===t.length)return[[0],[0]];throw new Error("The bezier curve must be of order <= 3.")}function Hn(t){const[n,e]=qn(t);return function(t){const r=vn(n,t),o=vn(e,t);return Math.sqrt(r*r+o*o)}}const{abs:Dn}=Math;function Qn(t){const n=[];for(let e=0;e<t.length-1;e++){const r=[t[e+1][0]-t[e][0],t[e+1][1]-t[e][1]];0!==(0!==r[0]||r[1])&&n.push(r)}const e=n.length;let r=0;for(let t=0;t<e-1;t++)r+=Dn(E(n[t],n[t+1]));return r}function Gn(t,n,e){if(4===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=p-n*(p-h),v=s-n*(s-f),g=f-n*(f-a),m=v-n*(v-g);return[e,[p,v],[d,m],[d-n*(d-(h-n*(h-(l-n*(l-i[0]))))),m-n*(m-(g-n*(g-(a-n*(a-i[1])))))]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=c-n*(c-u),h=u-n*(u-l),d=l-n*(l-i[0]),v=p-n*(p-h),g=h-n*(h-d),m=s-n*(s-f),x=f-n*(f-a),b=a-n*(a-i[1]),I=m-n*(m-x),_=x-n*(x-b);return[[v-n*(v-g),I-n*(I-_)],[g,_],[d,b],i]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=t[3],s=r[0],u=r[1],f=o[0],l=o[1],a=i[0],p=i[1],h=n*n,d=n*h,v=e*e,g=e*v,m=n*e,x=s-f,b=a-f,I=x+b,_=n*x,N=e*x,S=c[0]-s-3*b,E=u-l,w=p-l,M=E+w,O=n*E,T=e*E,C=c[1]-u-3*w;return[[d*S+(3*n*(n*I-x)+s),d*C+(3*n*(n*M-E)+u)],[m*(n*S+2*I)+(h*I+s-(N+2*_)),m*(n*C+2*M)+(h*M+u-(T+2*O))],[m*(e*S+2*I)+(v*I+s-(2*N+_)),m*(e*C+2*M)+(v*M+u-(2*T+O))],[g*S+(3*e*(e*I-x)+s),g*C+(3*e*(e*M-E)+u)]]}(t,n,e)}(t,n,e);if(3===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=c-u;return[e,[-n*l+i,-n*a+c],[f*(l+(o[0]-s))-(2*n*l-i),f*(a+(o[1]-u))-(2*n*a-c)]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=n*n,l=i-s,a=o[0]-s,p=c-u,h=o[1]-u;return[[f*(l+a)-(2*n*l-i),f*(p+h)-(2*n*p-c)],[n*a+s,n*h+u],o]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=t[2],c=r[0],s=r[1],u=o[0],f=o[1],l=n*n,a=e*e,p=n*e,h=c-u,d=h+(i[0]-u),v=s-f,g=v+(i[1]-f);return[[l*d-(2*n*h-c),l*g-(2*n*v-s)],[p*d-(h*(e+n)-c),p*g-(v*(e+n)-s)],[a*d-(2*e*h-c),a*g-(2*e*v-s)]]}(t,n,e)}(t,n,e);if(2===t.length)return function(t,n,e){return 0===n?1===e?t:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[e,[n*(r[0]-o)+o,n*(r[1]-i)+i]]}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1];return[[n*(r[0]-o)+o,n*(r[1]-i)+i],r]}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1];return[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]]}(t,n,e)}(t,n,e);if(1===t.length)return t;throw new Error("The given bezier curve must be of order <= 3.")}function Rn(t,n=.4,e=2**-16){const r={r:[0,1]};let o=r;for(;void 0!==o;){const r=o.r;if(Qn(Gn(t,r[0],r[1]))<=n||r[1]-r[0]<=e){o=o.next;continue}const i=(r[0]+r[1])/2,c=[r[0],i],s=[i,r[1]];o.r=c,o.next={r:s,next:o.next}}o=r;const i=[];for(;void 0!==o;)i.push(o.r[0]),void 0===o.next&&i.push(o.r[1]),o=o.next;return i}function Un(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a]]=n;if(c===u&&u===l&&s===f&&f===a)return 0;const p=O(n,o,i).ps,h=Rn(p,e);let d=0;for(let t=0;t<h.length-1;t++){const n=h[t],e=h[t+1];d+=$n(Hn(p),[n,e],r)}return d}function jn(t,n,e=.4,r=16){const o=t[0],i=t[1];if(o===i)return 0;const[[c,s],[u,f],[l,a],[p,h]]=n;if(c===u&&u===l&&l===p&&s===f&&f===a&&a===h)return 0;const d=y(n,o,i).ps,v=Rn(d,e);let g=0;for(let t=0;t<v.length-1;t++){const n=v[t],e=v[t+1];g+=$n(Hn(d),[n,e],r)}return g}function Zn(t,n=.4,e=16){if(4===t.length)return jn([0,1],t,n,e);if(3===t.length)return Un([0,1],t,n,e);if(2===t.length)return kn([0,1],t);if(1===t.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}function Wn(t){const n=new WeakMap;return function(e){let r=n.get(e);return void 0!==r||(r=t(e),n.set(e,r)),r}}function Jn(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=o-e,a=i-r,p=u-c,h=f-s,d=p*a-h*l;if(0===d)return;const v=((s-r)*l-(c-e)*a)/d;return[c+v*p,s+v*h]}function Kn(t,n){return[n[0]-t[0],n[1]-t[1]]}function te(t,n){return t[0]*n[0]+t[1]*n[1]}function ne(t){return[-t[1],t[0]]}function ee(t,n){return t[0]*n[1]-t[1]*n[0]}function re(t,n,e){return[t[0]+(n[0]-t[0])*e,t[1]+(n[1]-t[1])*e]}function oe(t,n){function e(n){return[t[0]+n[0],t[1]+n[1]]}return void 0===n?e:e(n)}function ie(t){const n=1/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]*n,t[1]*n]}function ce(t,n,e){function r(e){return[e[0]*n-e[1]*t,e[0]*t+e[1]*n]}return void 0===e?r:r(e)}function se(t,n){const[e,r]=qn(t);return[vn(e,n),vn(r,n)]}const ue=dt,fe=$;function le(t){if(4===t.length){const[[n,e],[r,o]]=t;return[fe(3,ue(r,n)),fe(3,ue(o,e))]}if(3===t.length){const[[n,e],[r,o]]=t;return[ue(2*r,2*n),ue(2*o,2*e)]}if(2===t.length){const[[n,e],[r,o]]=t;return[ue(r,n),ue(o,e)]}if(1===t.length)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}const ae=J,pe=$,he=D;function de(t){if(4===t.length){const[[n,e],[r,o],[i,c]]=t;return[pe(6,he(ae(i,n),-2*r)),pe(6,he(ae(c,e),-2*o))]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[he(ae(2*i,2*n),-4*r),he(ae(2*c,2*e),-4*o)]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3")}const ve=dt,ge=$,me=B;function xe(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[ge(6,me(ve(s,n),ge(3,ve(r,i))))],[ge(6,me(ve(u,e),ge(3,ve(o,c))))]]}if(t.length<=3)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}const{sign:be}=Math;function Ie(t,n){const[e,r]=le(t),[o,i]=de(t),[c,s]=le(n),[u,f]=de(n),l=V(H(e,i),H(r,o)),a=V(H(c,f),H(s,u)),p=Q(l),h=Q(a);if(be(p)!==be(h))return p-h;const d=B(H(c,c),H(s,s)),v=B(H(e,e),H(r,r)),g=H(d,d),m=H(g,d),x=H(v,v),b=H(x,v);if(0!==p||0!==h){const t=H(l,l),n=H(a,a),e=Q(V(H(t,m),H(n,b)));if(0!==e)return p>0?e:-e}const[[I],[_]]=xe(t),[[N],[S]]=xe(n),E=V(H(e,_),H(r,I)),w=B(H(e,o),H(r,i)),M=V(H(c,S),H(s,N)),O=B(H(c,u),H(s,f)),T=V(H(v,E),k(H(l,w),3)),C=V(H(d,M),k(H(a,O),3)),y=Q(T),P=Q(C);if(y!==P)return y-P;if(0===y&&0===P)return 0;const A=H(T,T),z=H(g,m),F=H(C,C),Y=H(x,b),L=Q(V(H(A,z),H(F,Y)));return y>0?L:-L}function _e(t,n){return t[0]===n[0]&&t[1]===n[1]}function Ne(t,n){const{ccw:e,tangentI:r,tangentO:o,dotTangents:i}=function(t,n){const e=t.length;let r=t[e-2],o=n[0],i=n[1];_e(r,o)&&(r=t[e-3]),_e(o,i)&&(i=n[2]);const c=function(t,n,e){const r=dt(t[0],e[0]),o=dt(n[1],e[1]),i=dt(t[1],e[1]),c=dt(n[0],e[0]);return ht(B(H(r,o),z(H(i,c))))}(r,o,i),s=[dt(o[0],r[0]),dt(o[1],r[1])],u=[dt(i[0],o[0]),dt(i[1],o[1])],f=function(t,n){return ht(B(H(t[0],n[0]),H(t[1],n[1])))}(s,u);return 0!==c||f>0?{ccw:c,tangentI:s,tangentO:u,dotTangents:f}:{ccw:Ie(t.slice().reverse(),n),tangentI:s,tangentO:u,dotTangents:f}}(t,n),c=e<0,s=e>0,u=[ie(r.map(t=>t[1])),ie(o.map(t=>t[1]))],f=ee(u[0],u[1]);let l,a;return i>0?(l=f<-.0698,a=f>.0698):(l=c,a=s),{tangents:u,isSharp:c,isDull:s,isQuiteSharp:l,isQuiteDull:a}}function Se(t){return Ne(1===t.t?t.curve.ps:t.curve.prev.ps,1===t.t?t.curve.next.ps:t.curve.ps)}function Ee(t){return 0===t.t||1===t.t}const we=Wn(t=>!!Ee(t)&&Se(t).isSharp);function Me(t){const n=t.cp.circle.center,e=t,r=t.nextOnCircle,o=e.cp.pointOnShape,i=r.cp.pointOnShape,c=o.p,s=i.p;let u;if(we(o)){let t,n;0===o.t?(t=o.curve,n=o.curve.prev):1===o.t&&(t=o.curve.next,n=o.curve);const e=ie(se(t.ps,0)),r=[-(f=ie(se(n.ps,1)))[0],-f[1]],i=te(e,r),c=Math.sqrt((1+i)/2);u=ce(Math.sqrt((1-i)/2),c,r)}else u=c[0]===s[0]&&c[1]===s[1]?Kn(c,n):ne(Kn(c,s));var f;return[n,oe(ie(u),n)]}const Oe=1e-4;function Te(t,n){const e=t.cp.circle.center,r=Me(t),o=n.cp.circle.center,i=Me(n.prevOnCircle),c=Jn(r,i),s=Kn(e,o);let u;if(c){const t=Kn(e,c),n=Kn(o,c);u=te(t,s)<0||te(n,s)>0}else u=!0;if(!u)return[e,c,o];const f=ne(s),l=Kn(r[0],r[1]),a=Kn(i[0],i[1]),p=Math.abs(ee(s,l))/9,h=Math.abs(ee(s,a))/9;if(p>.01||h>.01)return[e,o];if(p>Oe||h>Oe){const t=re(e,o,1/3),n=re(e,o,2/3),c=oe(f,t),s=[n,oe(f,n)];return[e,Jn(r,[t,c]),Jn(i,s),o]}return[e,o]}function Ce(t){return Te(t,t.next)}const ye=Wn(Ce);function Pe(t,n=!1){const e=t;let r=e;const o=[];do{n&&r===e||o.push(r),r=r.nextOnCircle}while(r!==e);return o}function Ae(t){return t===t.next.prevOnCircle}function Be(t){return Pe(t).filter(t=>!Ae(t)).length}const{min:ze,abs:Fe}=Math;function Ye(t){if(2!==Be(t))return 0;const{radius:n}=t.cp.circle,e=Ce(t),r=function(t,n=[0,1]){if(t.length<=3)return Fn(Vn(t,n));if(4===t.length){const[e,r]=n;if(e===r)return 0;const o=y(t,e,r).ps,i=[0,...zn(o),1];let c=0;for(let t=0;t<i.length-1;t++)c+=Fn(Vn(o,[i[t],i[t+1]]));return c}throw new Error("The given bezier curve must be of order <= 3.")}(e,[0,1]);return 0!==Zn(e)?r*n:void 0}Wn(Ye);const Ve=Wn(Vn),Le=Wn(Zn);function ke(t){return Pe(t.prevOnCircle,!0).every(Ae)}const $e=function(){const t=new Map;return function(n){let e=t.get(n);return void 0!==e||(r=n,e=Wn(function(t){let n=t,e=0,o=0,i=n.prev,c=n,s=0,u=0,f=0,l=0;for(;l<r/2/40&&c!==n.prev&&!ke(c)&&Be(c)<=2;){const{radius:t}=c.cp.circle,n=ye(c),e=Ve(n);let r=0;const i=Le(ye(c));u+=t*(e+r),o+=i,l+=i/t,c=c.next}for(;f<r/2/40&&i!==n&&!ke(i)&&Be(i)<=2;){const{radius:t}=i.cp.circle,n=ye(i),r=Ve(n);let o=0;const c=Le(ye(i));s+=t*(r+o),e+=c,f+=c/t,i=i.prev}const a=e+o;if(0!==a)return-(s+u)/a}),t.set(n,e)),e;var r}}();function Xe(t){const n=t.cp,e=n.pointOnShape;return{idx:e.curve.idx,t:e.t,order:n.order,order2:n.order2}}function qe(t){const n=t;let e=n,r=0;do{r++,e=e.nextOnCircle}while(e!==n);return r}function He(t){return 0===t.cp.circle.radius}function De(t){let n=t;if(Ae(n))return[n];const e=[];do{e.push(n);const t=n.next.prevOnCircle;n=n=n===t?n.next.next:t}while(n!==t);return e}function Qe(t,n){const e=v(t),r=new Set;for(t of e)Ae(t)||r.has(t.next.prevOnCircle)||n(t),r.add(t)}function Ge(t){const n=[],e=t;let r=e;for(;r!==e.prevOnCircle;)Ae(r)||n.push(r.next),r=r.nextOnCircle;return n}function Re(t,n){n(t);const e=Pe(t).filter(t=>!Ae(t)).map(t=>t.next);for(const t of e){const e=[t];for(;e.length;){const t=e.pop();n(t),e.push(...Ge(t))}}}const Ue=["prev","next","prevOnCircle","nextOnCircle"];function je(t){const n=new Map,e=Ze(t);n.set(t,e);const r=[{cpNode:t,newCpNode:e}];for(;r.length;){const{cpNode:t,newCpNode:e}=r.pop();for(const o of Ue){const i=t[o];let c=n.get(i);c||(c=Ze(i),n.set(i,c),r.push({cpNode:i,newCpNode:c})),e[o]=c}}return e}function Ze(t){return{...t,prev:void 0,next:void 0,prevOnCircle:void 0,nextOnCircle:void 0}}function We(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,c=o.curve;if(i.loop!==c.loop)return[];const s=[];return c===i?s.push(Gn(r.curve.ps,r.t,o.t)):(s.push(Gn(r.curve.ps,r.t,1)),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push(Gn(o.ps,0,n))}while(o!==e)}(s,r.curve,o.curve,o.t)),s}function Je(t,n){const e=t.prev,r=t.next;e.next=r,r.prev=e,n.get(t.cp.pointOnShape.curve.loop).remove(t,!1)}function Ke(t,n){const e=qe(t);if(2!==e)throw new Error(`Cannot delete \`CpNode\` on ${e}-prong`);Pe(t).forEach(t=>Je(t,n))}function tr(t,n){return Pe(t).indexOf(n)>=0}function nr(t){if(function(t){return Pe(t).every(Ae)}(t))return[];for(;Ae(t);)t=t.nextOnCircle;for(t=t.next;2===Be(t);)t=t.next;t=t.prevOnCircle;const n=[];do{n.push(t),t=t.next}while(!ke(t)&&2===Be(t));return n}function er(t,n,e=!0){const r=function(t,n,e=!0){if(!e&&t===n)return{cpNodes:[],hasHoleCloser:!1};const r=t,o=[r];let i=t.next,c=r.isHoleClosing;for(;i!==n&&i!==r;)i.isHoleClosing&&(c=!0),o.push(i),i=i.next;return{cpNodes:o,hasHoleCloser:c}}(t,n,e);return{pss:(o=r.cpNodes,o.flatMap(We)),hasHoleCloser:r.hasHoleCloser};var o}const rr={getChildren:function(t){const n=[],e=t.next;let r=e;do{n.push(r),r=r.nextOnCircle}while(r.nextOnCircle!==e);return n},getVertexForwardChildren:Ge,getAllOnLoop:v,getAllOnCircle:Pe,isOnSameCircle:tr,isTerminating:Ae,isFullyTerminating:ke,getFirstExit:function(t){const n=t;let e=n;for(;e.next===e.prevOnCircle;)if(e=e.next,e===n)return;return e},isSharp:He,isOneProng:function(t){const n=t;if(0===n.cp.circle.radius)return!0;const e=n.nextOnCircle,r=n.cp.pointOnShape.p,o=e.cp.pointOnShape.p;return r[0]===o[0]&&r[1]===o[1]},getProngCount:qe,getRealProngCount:Be,cpNodeComparator:(t,n)=>d(t.cp,n.cp),enhanceCpNode:function(t){const n=t.cp.pointOnShape.curve;return{...t,pos:t.cp.pointOnShape,p:t.cp.pointOnShape.p,t:t.cp.pointOnShape.t,isTerminating:Ae(t),isFullyTerminating:ke(t),isSharp:He(t),prongCount:qe(t),getRealProngCount:Be(t),ordering:Xe(t),curve:n,loop:n.loop}},traverseCp:De,traverseEdges:Qe,traverseVertices:Re,clone:je,getBoundaryBezierPartsToNext:function(t){const n=t,e=t.next,r=n.cp.pointOnShape,o=e.cp.pointOnShape,i=r.curve,c=o.curve;if(i.loop!==c.loop)return;const s=[];return c===i?s.push({ps:r.curve.ps,ts:[r.t,o.t]}):(s.push({ps:r.curve.ps,ts:[r.t,1]}),function(t,n,e,r){let o=n;do{o=o.next;const n=o===e?{ps:o.ps,ts:[0,r]}:{ps:o.ps,ts:[0,1]};t.push(n)}while(o!==e)}(s,r.curve,o.curve,o.t)),s},getBoundaryBeziersToNext:We,removeVertex:Ke,getMatCurveToNext:Ce,isTwoProng:function(t){return 2===Be(t)},getBranch:nr,getBranchBeziers:function(t){return nr(t).map(t=>Ce(t))},getSalience:function(t){const n=t,e=t.nextOnCircle,r=Ln(n.cp.pointOnShape.p,e.cp.pointOnShape.p),{pss:o,hasHoleCloser:i}=er(n,e),c=function(t){let n=0;for(let e of t)n+=e;return n}(o.map(t=>Zn(t)));return i?Number.POSITIVE_INFINITY:c/r},getMatCurveBetween:Te,getEdgeDirection:Me,getBoundaryBeziersBetween:er,getMatCurvesBetween:function(t,n){let e=t;const r=[];for(;e!==n;){const t=Te(e,e.next);r.push(t),e=e.next}return r},getHoleClosers:function(t){return v(t).filter(t=>t.isHoleClosing)},getSpeed:Ye,getSmoothedSpeed$:$e,getInitialDegAngleBetweenMatCurves:function(t,n){const e=ee(ie(se(Ce(t),0)),ie(se(Ce(n),0)));return Math.abs(Math.asin(e)*(180/Math.PI))},getAllVertices:function(t){const n=[];return Re(t,t=>{n.push(t)}),n}};function or(t){return n=>Pe(n).some(t)}const ir=or(function(t){return 2!==Be(t)&&!t.isHoleClosing}),cr=2**27+1;function sr(t,n){const e=t[1],r=n[1],o=e*r,i=cr*e,c=i-(i-e),s=e-c,u=cr*r,f=u-(u-r),l=r-f,a=s*l-(o-c*f-s*f-c*l)+(e*n[0]+t[0]*r),p=o+a;return[a-(p-o),p]}function ur(t,n){const e=t[0],r=t[1],o=r+n,i=o-r,c=e+(r-(o-i)+(n-i)),s=o+c;return[c-(s-o),s]}const fr=sr,lr=x,ar=b,pr=P,hr=ur;function dr(t,n){if(0===n[0]&&0===n[1])return t[0].map(t=>[0,t]);if(0===n[0]&&1===n[1])return t[t.length-1].map(t=>[0,t]);if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=hr(fr(pr(o,e),n),e),a=hr(fr(pr(c,o),n),o),p=hr(fr(pr(u,c),n),c),h=lr(l,fr(ar(a,l),n)),d=lr(a,fr(ar(p,a),n)),v=lr(h,fr(ar(d,h),n)),g=hr(fr(pr(i,r),n),r),m=hr(fr(pr(s,i),n),i),x=hr(fr(pr(f,s),n),s),b=lr(g,fr(ar(m,g),n)),I=lr(m,fr(ar(x,m),n));return[v,lr(b,fr(ar(I,b),n))]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=lr([0,e],fr(pr(o,e),n)),f=lr([0,o],fr(pr(c,o),n)),l=lr(u,fr(ar(f,u),n)),a=lr([0,r],fr(pr(i,r),n)),p=lr([0,i],fr(pr(s,i),n));return[l,lr(a,fr(ar(p,a),n))]}if(2===t.length){const[[e,r],[o,i]]=t;return[hr(fr(pr(o,e),n),e),hr(fr(pr(i,r),n),r)]}if(1===t.length){const[n,e]=t[0];return[[0,n],[0,e]]}throw new Error("The given bezier curve must be of order <= 3.")}function vr(t,n,e){return{curve:t,t:n,p:dr(t.ps,[0,n]).map(t=>t[1]),isSource:void 0!==e&&e}}const gr=Number.EPSILON/2,mr=gr*gr,xr=134217729;function br(t,n){const e=n[0],r=n[1],o=r*t,i=xr*r,c=i-(i-r),s=r-c,u=xr*t,f=u-(u-t),l=t-f,a=e*t,p=o+a,h=a-(p-o)+(s*l-(o-c*f-s*f-c*l)),d=p+h;return[h-(d-p),d]}function Ir(t,n){const e=n[0],r=n[1],o=r*t,i=xr*r,c=i-(i-r),s=r-c,u=xr*t,f=u-(u-t),l=t-f,a=s*l-(o-c*f-s*f-c*l)+e*t,p=o+a;return[a-(p-o),p]}const _r=Ir,Nr=ht,Sr=function(){const t=3*mr;return t/(1-t)}(),Er=k,wr=J,Mr=it,Or=Math.abs,Tr=Number.EPSILON/2;function Cr(t,n){let e=t[0],r=.5*Or(e);for(let o=1;o<t.length;o++)e=e*n+t[o],r=r*Or(n)+Or(e);return r=Tr*(2*r-Or(e)),[e,r]}const yr=Math.abs,Pr=function(t){const n=t*gr;return n/(1-n)},Ar=Cr,Br=vn,zr=Pr(1),Fr=Pr(2);function Yr(t,n,e=void 0,r=1){const o=Math.abs(n),i=t[0],[c,s]=Ar(i,n),u=Fr*function(t,n){let e=0;for(let r=0;r<t.length;r++)e=e*n+yr(t[r]);return e}(i,o),f=void 0!==e?Br(e,o):0;if((s+u+f)*r<Math.abs(c))return c;const l=function(t,n){const e=[],r=[];let o,i=t[0];for(let c=1;c<t.length;c++){const[s,u]=Mr(i,n);[o,i]=wr(u,t[c]),e.push(s),r.push(o)}return{r̂:i,pπ:e,pσ:r}}(i,n),{pπ:a,pσ:p}=l;let{r̂:h}=l;const[d,v]=Ar(a,n),[g,m]=Ar(p,n),[x,b]=Ar(t[1],n);let I=v+m+b+f;return h=d+g+x+h,I+=zr*h,I*r<Math.abs(h)?h:0}const Vr=B,Lr=k;function kr(t,n){let e=[0];for(let r=0;r<t.length;r++)e=Vr(t[r],Lr(e,n));return e}const $r=Yr,Xr=kr,qr=ht,Hr=Yr,Dr=kr,Qr=ht,Gr=Number.EPSILON,Rr=Math.abs,Ur=Math.max,jr=function(t){const{p:n,pE:e}=t,r=[],o=[],i=n.length-1;for(let t=0;t<i;t++){const c=i-t,s=_r(c,n[t]);r.push(s);const u=c&c-1?Sr:0,f=Nr(s);o.push(c*e[t]+Math.abs(f)*u)}return{p:r,pE:o}},Zr=Yr,Wr=kr,Jr=function(t){const n=t[0].length,e=[];for(let r=0;r<n;r++){const o=[];for(let e=0;e<t.length;e++)o.push(t[e][n-(r+1)]);e.push(o)}return e},Kr=function(t,n,e,r){const o=$r(t,e,n,4);return 0!==o?o:qr(Xr(r(),e))},to=function(t,n,e,r,o,i,c,s){let u=e,f=r,l=u,a=o,p=f-u,h=p;for(;;){let d;Rr(a)<Rr(i)&&(u=f,f=l,l=u,o=i,i=a,a=o);const v=Ur(Rr(u),Rr(f));d=v<=1?Gr:Gr*2**Math.ceil(Math.log2(v));const g=.5*(l-f);if(Rr(g)<=d)return f<l?[f,l]:[l,f];if(Rr(p)<d||Rr(o)<=Rr(i))p=g,h=p;else{let t,n,e=i/o;if(u===l)t=2*g*e,n=1-e;else{n=o/a;const r=i/a;t=e*(2*g*n*(n-r)-(f-u)*(r-1)),n=(n-1)*(r-1)*(e-1)}0<t?n=-n:t=-t,e=p,p=h,2*t<3*g*n-Rr(d*n)&&t<Rr(.5*e*n)?h=t/n:(p=g,h=p)}if(u=f,o=i,d<Rr(h)?f+=h:0<g?f+=d:f-=d,0===(i=s?Qr(Dr(c(),f)):Hr(t,f,n))){if(s)return[f,f];const o=Math.max(e,f-d),u=Math.min(r,f+d);if(Hr(t,o,n)*Hr(t,u,n)!==0)return[o,u];if(s=!0,0===(i=Qr(Dr(c(),f))))return[f,f]}(0<i&&0<a||i<=0&&a<=0)&&(l=u,a=o,p=f-u,h=p)}},no=En,eo=Sn,ro=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(Er(t[r],e-r));return n},oo=ht,io=Cr,co=Q,so=Math.max,uo=Math.min,fo=Math.abs,lo=1+Number.EPSILON;function ao(t,n=0,e=1,r,o,i){o||(o=()=>t),r=r||new Array(t.length).fill(0);let c,s,u=0;for(;t.length>0&&fo(t[0][1])<=r[0]&&(s=s||o(),0===co(s[0]));)(t=t.slice()).shift(),(r=r.slice()).shift(),s.shift();if(0===t.length)return i?void 0:[];if(1===t.length)return[];if(n===Number.NEGATIVE_INFINITY||e===Number.POSITIVE_INFINITY){const r=t.map(t=>t[1]);n===Number.NEGATIVE_INFINITY&&(n=no(r)),e===Number.POSITIVE_INFINITY&&(e=eo(r))}const f=Jr(t);let l,a;const p=t.length-1;let h,d;l=0,a=!1;do{if(h=a?oo(Wr(I(),n)):Zr(f,n,r),0===h){if(l++,l>=3&&!a){a=!0;continue}n-=2*Number.EPSILON*so(1,fo(n))}}while(0===h);l=0,a=!1;do{if(d=a?oo(Wr(I(),e)):Zr(f,e,r),0===d){if(l++,l>=3&&!a){a=!0;continue}e+=2*Number.EPSILON*so(1,fo(e))}}while(0===d);const v=[{p:t,pE:r}],g=[Jr(t)];for(let t=1;t<=p;t++){const n=jr(v[t-1]);v.push(n),g.push(Jr(n.p))}let m,x,b=[];for(u=p-1;u>=0;u--)m=v[u].pE,x=g[u],b=_();function I(){if(void 0!==c)return c[u];let t=s||o();for(c=[t];t.length>1;)t=ro(t),c.push(t);return c[u]}return b;function _(){const t=[],r=Kr(x,m,n,I);if(!b.length){const t=Kr(x,m,e,I);if(r*t>=0)return[];const[o,i]=to(x,m,n,e,r,t,I);return[{tS:o,tE:i,multiplicity:1}]}let o=b[0].tS,i=Kr(x,m,o,I);if(r*i>0);else if(r*i<0){const[e,c]=to(x,m,n,o,r,i,I);t.push({tS:e,tE:c,multiplicity:1})}let c,s=n,f=r,l=o,a=i;for(let n=0;n<b.length;n++){const r=b[n+1];c=b[n],o=l,s=b[n].tE,l=r?r.tS:e;const u=f;if(i=a,f=Kr(x,m,s,I),a=Kr(x,m,l,I),i*f>0)if(f*a>0)s!==o&&c.multiplicity%2==1&&h();else if(f*a<0){s!==o&&c.multiplicity%2==1&&h();const[n,e]=to(x,m,s,l,f,a,I);t.push({tS:n,tE:e,multiplicity:1})}else s!==o&&c.multiplicity%2==1&&h();else if(i*f<0){if(t.push({tS:c.tS,tE:c.tE,multiplicity:3}),f*a<0){const[n,e]=to(x,m,s,l,f,a,I);t.push({tS:n,tE:e,multiplicity:1})}}else if(0===f)0===i?t.push({tS:c.tS,tE:c.tE,multiplicity:c.multiplicity+1}):i*a>0?t.push({tS:c.tS,tE:c.tE,multiplicity:2}):t.push({tS:c.tS,tE:c.tE,multiplicity:3});else{if(f*a<0){const[n,e]=to(x,m,s,l,f,a,I);t.push({tS:n,tE:e,multiplicity:1})}u*f>0?t.push({tS:c.tS,tE:c.tE,multiplicity:2}):t.push({tS:c.tS,tE:c.tE,multiplicity:3})}}for(let n=0;n<t.length-1;n++){const e=t[n],r=t[n+1];if(e.tE>=r.tS)return po(t)}return t;function h(){const n=(s-o)*lo;let e=1,r=0;for(let t=u+2;t<=p;t++){const i=g[t][0],c=io(i,o);r+=(fo(c[0])+c[1])*e,e*=n*lo}const l=f>0?uo(i,f):so(i,f),a=2*Number.EPSILON*so(1,fo(s)),h=r*(2*a);(l+(f>0?2*-h*a:2*h*a))*f<0&&t.push({tS:c.tS,tE:c.tE,multiplicity:2})}}}function po(t){const n=[],e=t[0];let r={tS:e.tS,tE:e.tE,multiplicity:e.multiplicity};for(let e=0;e<t.length-1;e++){const o=t[e],i=t[e+1];o.tE<i.tS?(n.push(r),r={tS:i.tS,tE:i.tE,multiplicity:i.multiplicity}):(r.tE=i.tE,r.multiplicity=o.multiplicity+i.multiplicity)}return n.push(r),n}function ho(t){return(t.tS+t.tE)/2}function vo(t,n){if(0===n)return t[0];if(1===n)return t[t.length-1];if(4===t.length){const[[e,r],[o,i],[c,s],[u,f]]=t,l=e+(o-e)*n,a=o+(c-o)*n,p=l+(a-l)*n,h=r+(i-r)*n,d=i+(s-i)*n,v=h+(d-h)*n;return[p+(a+(c+(u-c)*n-a)*n-p)*n,v+(d+(s+(f-s)*n-d)*n-v)*n]}if(3===t.length){const[[e,r],[o,i],[c,s]]=t,u=e+(o-e)*n,f=r+(i-r)*n;return[u+(o+(c-o)*n-u)*n,f+(i+(s-i)*n-f)*n]}if(2===t.length){const[[e,r],[o,i]]=t;return[e+(o-e)*n,r+(i-r)*n]}if(1===t.length)return t[0];throw new Error("The given bezier curve must be of order <= 3.")}const go=Math.abs;function mo(t,n){if(0===n[0]&&0===n[1])return[0,0];if(0===n[0]&&1===n[1])return[0,0];const e=go(n[1]);if(4===t.length){const[[n,r],[o,i],[c,s],[u,f]]=t,l=go(n),a=go(r),p=go(o),h=go(i),d=go(c),v=go(s),g=l+(p+l)*e,m=p+(d+p)*e,x=g+(m+g)*e,b=a+(h+a)*e,I=h+(v+h)*e,_=b+(I+b)*e;return[x+(m+(d+(go(u)+d)*e+m)*e+x)*e,_+(I+(v+(go(f)+v)*e+I)*e+_)*e]}if(3===t.length){const[[n,r],[o,i],[c,s]]=t,u=go(n),f=go(r),l=go(o),a=go(i),p=u+(l+u)*e,h=f+(a+f)*e;return[p+(l+(go(c)+l)*e+p)*e,h+(a+(go(s)+a)*e+h)*e]}if(2===t.length){const[[n,r],[o,i]]=t,c=go(n),s=go(r);return[c+(go(o)+c)*e,s+(go(i)+s)*e]}if(1===t.length)return[0,0];throw new Error("The given bezier curve must be of order <= 3.")}const xo=Math.abs,bo=[[0,0],[0,0]];const Io=Number.EPSILON/2,_o=j(1);function No(t,n){return n[0]!==n[1]?4===t.length?function(t,n){const{ps:e,_ps:r}=y(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=e[3][0],u=9*Io*r[0][0],f=9*Io*r[1][0],l=9*Io*r[2][0],a=9*Io*r[3][0],p=e[0][1],h=e[1][1],d=e[2][1],v=e[3][1],g=9*Io*r[0][1],m=9*Io*r[1][1],x=9*Io*r[2][1],b=9*Io*r[3][1],I=Math.min(o-u,i-f,c-l,s-a),_=Math.max(o+u,i+f,c+l,s+a);return[[I,Math.min(p-g,h-m,d-x,v-b)],[_,Math.max(p+g,h+m,d+x,v+b)]]}(t,n):3===t.length?function(t,n){const{ps:e,_ps:r}=O(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=e[2][0],s=5*Io*r[0][0],u=5*Io*r[1][0],f=5*Io*r[2][0],l=e[0][1],a=e[1][1],p=e[2][1],h=5*Io*r[0][1],d=5*Io*r[1][1],v=5*Io*r[2][1],g=Math.min(o-s,i-u,c-f),m=Math.max(o+s,i+u,c+f);return[[g,Math.min(l-h,a-d,p-v)],[m,Math.max(l+h,a+d,p+v)]]}(t,n):function(t,n){const{ps:e,_ps:r}=function(t,n,e){return 0===n?1===e?{ps:t,_ps:bo}:function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[o,i],[n*(c-o)+o,n*(s-i)+i]],f=xo(n),l=xo(o),a=xo(c),p=xo(i);return{ps:u,_ps:[[0,0],[f*(a+l)+l,f*(xo(s)+p)+p]]}}(t,e):1===e?function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=[[n*(c-o)+o,n*(s-i)+i],[c,s]],f=xo(n),l=xo(o),a=xo(c),p=xo(i);return{ps:u,_ps:[[f*(a+l)+l,f*(xo(s)+p)+p],[0,0]]}}(t,n):function(t,n,e){const r=t[0],o=t[1],i=r[0],c=r[1],s=o[0],u=o[1],f=[[n*(s-i)+i,n*(u-c)+c],[e*(s-i)+i,e*(u-c)+c]],l=xo(n),a=xo(e),p=xo(i),h=xo(s),d=xo(c),v=xo(u);return{ps:f,_ps:[[l*(h+p)+p,l*(v+d)+d],[a*(h+p)+p,a*(v+d)+d]]}}(t,n,e)}(t,n[0],n[1]),o=e[0][0],i=e[1][0],c=3*Io*r[0][0],s=3*Io*r[1][0],u=e[0][1],f=e[1][1],l=3*Io*r[0][1],a=3*Io*r[1][1],p=Math.min(o-c,i-s),h=Math.max(o+c,i+s);return[[p,Math.min(u-l,f-a)],[h,Math.max(u+l,f+a)]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n)return[e,e];if(1===n)return[r,r];const o=vo(t,n);let i;if(4===t.length)i=mo(t,[0,n]).map(t=>8*_o*t);else if(3===t.length)i=mo(t,[0,n]).map(t=>5*_o*t);else if(2===t.length)i=mo(t,[0,n]).map(t=>2*_o*t);else if(1===t.length)return[o,o];return[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]]}(t,n[0])}function So(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}const Eo=ht,wo=dt,Mo=H,Oo=B,To=Number.EPSILON;function Co(t){return[2*t[0],2*t[1]]}function yo(t){return[4*t[0],4*t[1]]}const Po=P,Ao=x,Bo=Ir,zo=sr,Fo=Co,Yo=yo,Vo=b;function Lo(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=Po(c,d),m=Po(u,d),x=Po(l,d),b=Po(p,d),I=Po(s,v),_=Po(f,v),N=Po(a,v),S=Po(h,v),E=zo(g,g),w=Bo(6,zo(g,m)),M=Bo(6,zo(g,x)),O=Fo(zo(g,b)),T=Bo(9,zo(m,m)),C=Bo(18,zo(m,x)),y=Bo(6,zo(m,b)),P=Bo(9,zo(x,x)),A=Bo(6,zo(x,b)),B=zo(b,b),z=zo(I,I),F=Bo(6,zo(I,_)),Y=Bo(6,zo(I,N)),V=Fo(zo(I,S)),L=Bo(9,zo(_,_)),k=Bo(18,zo(_,N)),$=Bo(6,zo(_,S)),X=Bo(9,zo(N,N)),q=Bo(6,zo(N,S)),H=zo(S,S),D=Ao(y,P),Q=Ao(O,C),G=Ao(M,T),R=Ao($,X),U=Ao(V,k),j=Ao(Y,L);return[Bo(6,Ao(Ao(Ao(Ao(Vo(B,A),Vo(E,w)),D),Vo(G,Q)),Ao(Ao(Ao(Vo(H,q),Vo(z,F)),R),Vo(j,U)))),Bo(5,Ao(Vo(Ao(Ao(A,Bo(5,w)),Bo(3,Q)),Fo(Ao(Ao(D,Fo(G)),Bo(3,E)))),Vo(Ao(Ao(q,Bo(5,F)),Bo(3,U)),Fo(Ao(Ao(R,Fo(j)),Bo(3,z)))))),Yo(Ao(Vo(Vo(D,Bo(3,Vo(Q,Fo(G)))),Bo(5,Vo(Fo(w),Bo(3,E)))),Vo(Vo(R,Bo(3,Vo(U,Fo(j)))),Bo(5,Vo(Fo(F),Bo(3,z)))))),Bo(3,Ao(Vo(Q,Fo(Vo(Fo(G),Bo(5,Vo(w,Fo(E)))))),Vo(U,Fo(Vo(Fo(j),Bo(5,Vo(F,Fo(z)))))))),Fo(Ao(Vo(G,Bo(5,Vo(w,Bo(3,E)))),Vo(j,Bo(5,Vo(F,Bo(3,z)))))),Ao(Vo(w,Bo(6,E)),Vo(F,Bo(6,z)))]}const ko=P,$o=x,Xo=Ir,qo=sr,Ho=Co,Do=b,Qo=yo;function Go(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=ko(e,u),a=ko(o,u),p=ko(c,u),h=ko(r,f),d=ko(i,f),v=ko(s,f),g=qo(l,l),m=qo(l,a),x=qo(l,p),b=qo(a,a),I=qo(a,p),_=qo(p,p),N=qo(h,h),S=qo(h,d),E=qo(h,v),w=qo(d,d),M=qo(d,v),O=qo(v,v),T=$o(E,Ho(w)),C=$o(x,Ho(b));return[$o(Do($o($o(O,N),Ho(T)),Qo($o(M,S))),Do($o($o(_,g),Ho(C)),Qo($o(I,m)))),Xo(3,$o($o(Do(M,T),Do(Xo(3,S),N)),$o(Do(I,C),Do(Xo(3,m),g)))),$o(Do(T,Xo(3,Do(Ho(S),N))),Do(C,Xo(3,Do(Ho(m),g)))),$o(Do(S,N),Do(m,g))]}const Ro=m,Uo=x,jo=function(t){return[-2*t[0],-2*t[1]]},Zo=b;function Wo(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=Ro(u,u),h=Ro(u,f),d=Ro(f,f),v=Ro(l,l),g=Ro(l,a),m=Ro(a,a),x=Uo(h,g),b=Uo(v,p);return[Uo(Uo(d,m),Uo(b,jo(x))),Zo(x,b)]}function Jo(t){const n=[];for(let e=0;e<t.length;e++)n.push(2*t[e]);return n}function Ko(t){const n=[];for(let e=0;e<t.length;e++)n.push(-2*t[e]);return n}const ti=dt,ni=H,ei=$,ri=Jo,oi=Ko,ii=B,ci=V,si=dt,ui=H,fi=$,li=Jo,ai=B,pi=V;function hi(t){const n=[];for(let e=0;e<t.length;e++)n.push(4*t[e]);return n}const di=dt,vi=H,gi=Ko,mi=B,xi=V,bi=Math.abs;function Ii(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=bi(e[0]),s=bi(e[1]),u=bi(r[0]),f=bi(r[1]),l=bi(o[0]),a=bi(o[1]),p=bi(i[0]),h=bi(i[1]),d=bi(n[0]),v=bi(n[1]),g=c+d,m=u+d,x=l+d,b=p+d,I=s+v,_=f+v,N=a+v,S=h+v,E=g*g,w=6*g*m,M=6*x*b,O=I*I,T=6*I*_,C=6*N*S,y=6*m*b+9*x*x,P=2*g*b+18*m*x,A=6*g*x+9*m*m,B=6*_*S+9*N*N,z=2*I*S+18*_*N,F=6*I*N+9*_*_;return[6*(b*b+M+(E+w)+y+(A+P)+(S*S+C+(O+T)+B+(F+z))),5*(M+5*w+3*P+2*(y+2*A+3*E)+(C+5*T+3*z+2*(B+2*F+3*O))),4*(y+3*(P+2*A)+5*(2*w+3*E)+(B+3*(z+2*F)+5*(2*T+3*O))),3*(P+2*(2*A+5*(w+2*E))+(z+2*(2*F+5*(T+2*O)))),2*(A+5*(w+3*E)+(F+5*(T+3*O))),w+6*E+(T+6*O)]}function _i(t,n){const e=t[0],r=t[1],o=t[2],i=bi(e[0]),c=bi(e[1]),s=bi(r[0]),u=bi(r[1]),f=bi(o[0]),l=bi(o[1]),a=bi(n[0]),p=bi(n[1]),h=i+a,d=s+a,v=f+a,g=c+p,m=u+p,x=l+p,b=h*h,I=h*d,_=d*v,N=g*g,S=g*m,E=m*x,w=g*x+m*m*2,M=h*v+d*d*2;return[x*x+N+2*w+4*(E+S)+(v*v+b+2*M+4*(_+I)),3*(E+w+(3*S+N)+(_+M+(3*I+b))),w+3*(2*S+N)+(M+3*(2*I+b)),S+N+(I+b)]}function Ni(t,n){const e=t[0],r=t[1],o=bi(e[0]),i=bi(e[1]),c=bi(r[0]),s=bi(r[1]),u=bi(n[0]),f=bi(n[1]),l=o+u,a=c+u,p=i+f,h=s+f,d=l*a+p*h,v=p*p+l*l;return[a*a+h*h+2*d+v,d+v]}const Si=Z(6);function Ei(t,n){const e=t.length-1;if(3===e)return{polyDd:Lo(t,n),polyE:Ii(t,n).map(t=>10*Si*t),getPolyExact:()=>function(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],[d,v]=n,g=ti(c,d),m=ti(u,d),x=ti(l,d),b=ti(p,d),I=ti(s,v),_=ti(f,v),N=ti(a,v),S=ti(h,v),E=ni(g,g),w=ei(6,ni(g,m)),M=ei(6,ni(g,x)),O=ri(ni(g,b)),T=ei(9,ni(m,m)),C=ei(18,ni(m,x)),y=ei(6,ni(m,b)),P=ei(9,ni(x,x)),A=ei(6,ni(x,b)),B=ni(b,b),z=ni(I,I),F=ei(6,ni(I,_)),Y=ei(6,ni(I,N)),V=ri(ni(I,S)),L=ei(9,ni(_,_)),k=ei(18,ni(_,N)),$=ei(6,ni(_,S)),X=ei(9,ni(N,N)),q=ei(6,ni(N,S)),H=ni(S,S),D=ii(y,P),Q=ii(O,C),G=ii(M,T),R=ii($,X),U=ii(V,k),j=ii(Y,L),Z=ci(ii(ii(B,E),ii(D,G)),ii(ii(Q,A),w)),W=ci(ii(ii(H,z),ii(R,j)),ii(ii(U,q),F)),J=ei(6,ii(Z,W)),K=ii(oi(ii(ii(D,ri(G)),ei(3,E))),ii(ii(A,ei(3,Q)),ei(5,w))),tt=ii(oi(ii(ii(R,ri(j)),ei(3,z))),ii(ii(q,ei(3,U)),ei(5,F))),nt=ei(5,ii(K,tt)),et=ii(ii(D,ei(3,ci(ri(G),Q))),ei(5,ci(ei(3,E),ri(w)))),rt=ii(ii(R,ei(3,ci(ri(j),U))),ei(5,ci(ei(3,z),ri(F)))),ot=ei(4,ii(et,rt)),it=ci(Q,ri(ci(ri(G),ei(5,ci(w,ri(E)))))),ct=ci(U,ri(ci(ri(j),ei(5,ci(F,ri(z)))))),st=ei(3,ii(it,ct)),ut=ci(G,ei(5,ci(w,ei(3,E)))),ft=ci(j,ei(5,ci(F,ei(3,z)))),lt=ri(ii(ut,ft)),at=ci(w,ei(6,E)),pt=ci(F,ei(6,z));return[J,nt,ot,st,lt,ii(at,pt)]}(t,n)};if(2===e)return{polyDd:Go(t,n),polyE:_i(t,n).map(t=>8*Si*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i],[c,s]]=t,[u,f]=n,l=si(e,u),a=si(o,u),p=si(c,u),h=si(r,f),d=si(i,f),v=si(s,f),g=ui(l,l),m=ui(l,a),x=ui(l,p),b=ui(a,a),I=ui(a,p),_=ui(p,p),N=ui(h,h),S=ui(h,d),E=ui(h,v),w=ui(d,d),M=ui(d,v),O=ui(v,v),T=ai(E,li(w)),C=ai(x,li(b)),y=ai(pi(ai(_,li(C)),hi(ai(I,m))),g),P=ai(pi(ai(O,li(T)),hi(ai(M,S))),N),A=ai(y,P),B=ai(pi(I,C),pi(fi(3,m),g)),z=ai(pi(M,T),pi(fi(3,S),N)),F=fi(3,ai(B,z)),Y=pi(T,fi(3,pi(li(S),N))),V=pi(C,fi(3,pi(li(m),g))),L=ai(Y,V),k=pi(S,N),$=pi(m,g);return[A,F,L,ai(k,$)]}(t,n)};if(1===e)return{polyDd:Wo(t,n),polyE:Ni(t,n).map(t=>6*Si*t),getPolyExact:()=>function(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=di(e,c),f=di(o,c),l=di(r,s),a=di(i,s),p=vi(u,u),h=vi(u,f),d=vi(f,f),v=vi(l,l),g=vi(l,a),m=vi(a,a),x=mi(h,g),b=mi(v,p);return[mi(mi(d,m),mi(gi(x),b)),xi(x,b)]}(t,n)};if(0===e)return{polyDd:[[0,1]],polyE:[0],getPolyExact:()=>[[1]]};throw new Error("The given bezier curve must be of order <= 3")}const{sqrt:wi}=Math;function Mi(t,n,e=0,r=1){const{polyDd:o,polyE:i,getPolyExact:c}=Ei(t,n),s=ao(o,e,r,i,c);s.push({tS:e,tE:e,multiplicity:1}),s.push({tS:r,tE:r,multiplicity:1});const u=s.map(e=>{const r=No(t,[e.tS,e.tE]),o=function(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];let l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(const[t,n]of[[o,i],[o,s],[c,i],[c,s]]){const e=wo(t,u),r=wo(n,f),o=Oo(Mo(e,e),Mo(r,r)),i=Eo(o),c=i*(1-To),s=i*(1+To);c<=l&&(l=c),s>=a&&(a=s)}return[l,a]}(r,n);return{p:So(r),t:ho(e),d:(wi(o[0])+wi(o[1]))/2,dSquaredI:o,box:r,ri:e}});let f=Number.POSITIVE_INFINITY;for(let t=0;t<u.length;t++){const n=u[t].dSquaredI[1];n<f&&(f=n)}const l=[];for(let t=0;t<u.length;t++){const n=u[t];n.dSquaredI[0]<=f&&l.push(n)}return l}function Oi(t){const n=t.xs;if(4===n.length){let t=0,e=0;for(let r=0;r<n.length;r++)0===n[r].x.kind&&t++,4===n[r].x.kind&&e++;if(2===t&&2===e)return!0}return n.length<=2&&7!==n[0].x.kind}const Ti=vt;function Ci(t){const n=(t=Ti(t)).length;return 2===n?t:1===n?[0,t[0]]:[t[n-2],t[n-1]]}const yi=H,Pi=B,Ai=$,Bi=ao,zi=Ci,Fi=J,Yi=Number.EPSILON;function Vi(t,n){const e=t.tS,r=t.tE-e;if(0===r)return[{tS:[0,e],tE:[0,e],multiplicity:t.multiplicity}];const o=function(t,n,e){const r=t.length-1;if(r<0)return[];const o=[];for(let t=0;t<r+1;t++)o.push(new Array(r+1).fill([0]));o[0][0]=[1];for(let t=1;t<=r;t++){o[0][t]=Ai(e,o[0][t-1]);for(let r=1;r<=t;r++)o[r][t]=Pi(Ai(e,o[r][t-1]),Ai(n,o[r-1][t-1]))}const i=new Array(r+1).fill([0]);for(let n=0;n<=r;n++){i[r-n]=[0];for(let e=n;e<=r;e++){const c=yi(o[n][e],t[r-e]);i[r-n]=Pi(i[r-n],c)}}return i}(n,r,e),i=o.map(zi),c=i.map(t=>Yi*Yi*t[1]),s=Bi(i,0,1,c,()=>o),u=[];for(const t of s)u.push({tS:Fi(e,t.tS*r),tE:Fi(e,t.tE*r),multiplicity:t.multiplicity});return u}const{abs:Li}=Math;function ki(t,n){const e=t.inOuts;e.sort(function(t){return(n,e)=>{let r=n.side-e.side;if(0!==r)return r;const o=n.sideX,i=e.sideX;r=o.ri.tS-i.ri.tS;const c=8*Number.EPSILON;return Li(r)>=c?r:(o.compensated||(o.compensated=1,o.riExp=Vi(o.ri,o.getPExact())[0]),i.compensated||(i.compensated=1,i.riExp=Vi(i.ri,i.getPExact())[0]),r=G(o.riExp.tS,i.riExp.tS),0!==r?r:(r=n.dir-e.dir,0!==r?t*r:1===n.dir?n.idx-e.idx:e.idx-n.idx))}}(n));let r=e[e.length-1];for(let t=0;t<e.length;t++){const n=e[t];n.prevAround=r,r.nextAround=n,r=n}}function $i(t,n,e,r){const o=function(t,n){return(e,r,o)=>{t.has(e)||(e.orientation=r,e.parent=o,e.windingNum=o.windingNum+e.orientation,n.push(e))}}(r,e);ki(t.container,n.orientation);let i,c,s=1,u=t,f=n.orientation;for(;u=1===n.orientation?u.nextAround:u.prevAround,u!==t;){const t=s;s-=u.dir,1===s&&(f*=-1),-1!==u.dir&&(i?1===t&&0===s?o(u,n.orientation,n.parent):0===t&&-1===s&&o(u,-n.orientation,n.parent):0===s?i=u:1===s&&o(u,n.orientation,n))}return Oi(t.container)||(c=[t.p,i.p]),{inOutToUse:i,additionalBezier:c}}function Xi(t,n){const e=t.nextOrPrev;n.add(e);const r=t._x_,o=e._x_,i=r.curve,c=r.x.ri.tS,s=o.curve,u=o.x.ri.tS;let f=i,l=c;Oi(t.container)||(l=ho(Mi(i.ps,t.p)[0].ri));const a=[];for(;;){if(f===s&&(l<u||l===u&&0!==a.length)){const t=f.ps,n=[l,u];return a.push({ps:t,ts:n}),{bezierPieces:a,inOut:e}}{const t=f.ps,n=[l,1];a.push({ps:t,ts:n})}l=0,f=f.next}}function qi(t,n){const e=t.nextOrPrev;n.add(e);const r=e._x_,o=t._x_,i=o.curve,c=o.x.ri.tS,s=r.curve,u=r.x.ri.tS;let f=i,l=c;Oi(t.container)||(l=ho(Mi(f.ps,t.p)[0].ri));const a=[];for(;;){const t=f.ps;if(f===s&&(l>u||l===u&&0!==a.length)){const n=[l,u];return a.push({ps:t,ts:n}),{bezierPieces:a,inOut:e}}{const n=[l,0];a.push({ps:t,ts:n})}l=1,f=f.prev}}function Hi(t,n,e,r){const o=function(t,n,e){return(r,o,i,c)=>{n.has(r)||1!==r.dir||(r.loopsIdxs=new Set(c),r.orientation=o*t.orientation,r.parent=i.parent,r.windingNum=i.windingNum+r.orientation,e.unshift(r))}}(n,r,e);ki(t.container,1);let i=t.nextAround,c=t;const s=new Set(n.loopsIdxs);for(;c=c.nextAround,c!==t;)o(c,n.dir,n,s),-1===c.dir?s?.add(c._x_?.curve.loop.idx):s.delete(c._x_?.curve.loop.idx);let u;return Oi(t.container)||(u=[t.p,i.p]),{inOutToUse:i,additionalBezier:u}}function Di(t){const{ps:n,ts:e}=t;return Gn(n,e[0],e[1])}function Qi(t,n,e){const r=[],o=[];let i,c=n;do{t.add(c);const s=1===c.dir?Xi(c,t):qi(c,t),{bezierPieces:u,inOut:f}=s;o.push(...u);const l=(e?Hi:$i)(f,n,r,t);if(({inOutToUse:c,additionalBezier:i}=l),void 0!==i){const t=Di(o[o.length-1]),n={ps:t,ts:[0,ho(Mi(t,i[0])[0].ri)]};o.pop(),o.push(n),o.push({ps:i,ts:[0,1]})}}while(c!==n);return{bezierPieces:o,additionalOutsToCheck:r}}function Gi(t,n,e,r){const o=[t];for(;o.length;){const t=o.pop();if(n.add(t._x_.curve.loop),e.has(t))continue;t.children=new Set;const{bezierPieces:i,additionalOutsToCheck:c}=Qi(e,t,r);t.bezierPieces=i,t.parent.children=t.parent.children||new Set,t.parent.children.add(t),o.push(...c)}}function Ri(t){if(4===t.length)return Ui(t);if(3===t.length)return ji(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[r-n,n],[o-e,e]]}(t);if(1===t.length)return function(t){const[[n,e]]=t;return[[n],[e]]}(t);throw new Error("The given bezier curve must be of order <= 3.")}function Ui(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[s-n+3*(r-i),3*(i+n-2*r),3*(r-n),n],[u-e+3*(o-c),3*(c+e-2*o),3*(o-e),e]]}function ji(t){const[[n,e],[r,o],[i,c]]=t;return[[i+n-2*r,2*(r-n),n],[c+e-2*o,2*(o-e),e]]}function Zi(t,n=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY,r){return ao(t.map(t=>[0,t]),n,e,void 0,void 0,r)}function Wi(t){const n=t[0],e=t[t.length-1];let r,o;if(n[1]<e[1]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minY:r,maxY:o};const[,i]=qn(t),c=Zi(i,0,1);for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=No(t,i);s[0][1]<r.box[0][1]&&(r={ts:i,box:s}),s[1][1]>o.box[0][1]&&(o={ts:i,box:s})}return{minY:r,maxY:o}}function Ji(t){const n=function(t){const n=t[0],e=t[t.length-1];let r,o;if(n[0]<e[0]?(r={ts:[0,0],box:[n,n]},o={ts:[1,1],box:[e,e]}):(r={ts:[1,1],box:[e,e]},o={ts:[0,0],box:[n,n]}),2===t.length)return{minX:r,maxX:o};const[i]=qn(t),c=Zi(i,0,1);for(let n=0;n<c.length;n++){const e=c[n],i=[e.tS,e.tE],s=No(t,i);s[0][0]<r.box[0][0]&&(r={ts:i,box:s}),s[1][0]>o.box[0][0]&&(o={ts:i,box:s})}return{minX:r,maxX:o}}(t),e=Wi(t);return[[n.minX.box[0][0],e.minY.box[0][1]],[n.maxX.box[1][0],e.maxY.box[1][1]]]}const Ki=Wn(Ji);function tc(t){const n=qn(t),e=Bn(n[0],0,1),r=Bn(n[1],0,1);e.push(0,1),r.push(0,1);let o,i,c,s,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(let n=0;n<e.length;n++){const r=e[n],[c]=vo(t,r);c<u&&(u=c,o=r),c>f&&(f=c,i=r)}for(let n=0;n<r.length;n++){const e=r[n],[,o]=vo(t,e);o<l&&(l=o,c=e),o>a&&(a=o,s=e)}return{ts:[[o,c],[i,s]],box:[[u,l],[f,a]]}}const nc=Wn(tc),{min:ec,max:rc}=Math;function oc(t){const n=t.map(nc);return{minX:ec(...n.map(t=>t.box[0][0])),maxX:rc(...n.map(t=>t.box[1][0])),minY:ec(...n.map(t=>t.box[0][1])),maxY:rc(...n.map(t=>t.box[1][1]))}}const ic=new Function("try {return this===window;}catch(e){ return false;}")()?function(t){const n=window.atob(t),e=n.length,r=new Uint8Array(e);for(let t=0;t<e;t++)r[t]=n.charCodeAt(t);return r.buffer}:function(t){return function(t){const n=new ArrayBuffer(t.length),e=new Uint8Array(n);for(let n=0;n<t.length;++n)e[n]=t[n];return n}(Buffer.from(t,"base64"))},cc=ic("AGFzbQEAAAABBgFgAX8BfAMDAgAABQMBAAAHHwMGbWVtb3J5AgAHc3F1YXJlcwAACHNxdWFyZXM0AAEKjgECPwECfiAArULHuuXf9tjQm2p+IgEgASABfnxCIIoiAiACfiABQse65d/22NCbanx8QiCKIgIgAn4gAXxCIIi6C0wBAn4gAK1Cx7rl3/bY0JtqfiIBQse65d/22NCbanwiAiABIAIgASABIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiiIBIAF+fEIgiLoL"),sc=new WebAssembly.Module(cc),uc=new WebAssembly.Instance(sc),fc=uc.exports.squares;uc.exports.squares4;const lc=1e-6;function ac(t,n){let e;const r=[t];for(;r.length;)o(r.pop());return e;function o(o){if(o===t||function(t,n){let e=0;do{e++;const o=fc(e)/4294967296,i=r(t,n,vo(t[fc(e+1e3)%t.length],o));if(void 0!==i)return i}while(e<100);return;function r(t,n,e){if(function(t,n){const e=oc(t),r=oc(n);return e.minX<r.minX||e.maxX>r.maxX||e.minY<r.minY||e.maxY>r.maxY}(t,n))return!1;const r=function(t,n){const[e,r]=n;let o=0;for(let i=0;i<t.length;i++){const c=t[i],[[s,u],[f,l]]=Ki(c);let a=u>r||l<r||!1;if(a=a||s>e||!1,a)continue;const p=[];let h,d,v;const g=!0;h=t=>Ri(t)[1],d=[0,-r],v=0;const m=c.map(oe(d)),x=Bn(h(m),0-lc,1+lc);for(let t=0;t<x.length;t++){const e=x[t];if(Math.abs(e)<lc||Math.abs(e-1)<lc)return;const r=vo(m,e);(g&&n[v]>=r[v]||!g&&n[v]<=r[v])&&p.push(e)}if(1===p.length||3===p.length)for(const t of p){const n=ie(se(c,t));if(Math.abs(n[1])<lc)return}o+=p.length}return o}(n,e);return void 0!==r?r%2!=0:void 0}}(n.beziers,o.bezierPieces.map(Di))){e=o;for(const t of o.children)r.push(t)}}}function pc(t,n){return hc(t)-hc(n)}function hc(t){let n=Number.POSITIVE_INFINITY;for(const e of t){const t=nc(e).box[0][1];t<n&&(n=t)}return n}function dc(t){const n=[t],e=Array.from(t.children);for(;e.length;){const t=e.pop();0===t.windingNum&&n.push(t);for(const n of t.children)e.push(n)}return n}function vc(t,n,e){let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;o>c&&([o,c]=[c,o]),u>l&&([u,l]=[l,u]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]);const a=t||r===i&&s===f,p=t||o===c&&u===l;return(a?r<=f:r<f)&&(a?i>=s:i>s)&&(p?u<=c:u<c)&&(p?l>=o:l>o)}function gc(t,n){return vc(!0,t.box,n.box)}function mc(t,n){for(let e=0;e<n.length;e++){const r=n[e];xc(t,[r.a,r.b])}}function xc(t,n){const[e,r]=n;let o=t.get(e);o||(o=[],t.set(e,o));let i=t.get(r);i||(i=[],t.set(r,i)),o.push(r),i.push(e)}function bc(t,n,e,r){e.add(n),r.push(n);const o=t.get(n);for(let n=0;n<o.length;n++){const i=o[n];e.has(i)||bc(t,i,e,r)}}function Ic(t){const n=[],e=new Set;for(const r of t){const o=r[0];e.has(o)||(n.push([]),bc(t,o,e,n[n.length-1]))}return n}function _c(t,n){const e=new Set;for(const t of n)for(const n of t)e.add(n);const r=[];for(let n=0;n<t.length;n++){const o=t[n];e.has(o)||r.push(o)}return r}function Nc(t){const n=[];for(const e of t){let t=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;const c=[];for(const n of e){const[[e,s],[u,f]]=n.box;e<t&&(t=e),s<r&&(r=s),u>o&&(o=u),f>i&&(i=f),c.push(...n.xs)}const s={box:[[t,r],[o,i]],xs:c,inOuts:void 0};n.push(s)}return n}function Sc(t){return{tS:[0,t.tS],tE:[0,t.tE],multiplicity:t.multiplicity}}const Ec=P,wc=Ir,Mc=x,Oc=ur,Tc=Math.abs;function Cc(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Ec(s,n),l=Ec(r,i),a=3*(r-i),p=wc(3,l),h=Tc(a),d=Mc(f,p),v=h+Tc(s-n+a),g=Ec(i,2*r),m=Oc(g,n),x=Tc(i-2*r+n),b=wc(3,m),I=6*x,_=Ec(r,n),N=wc(3,_),S=Tc(3*(r-n)),E=Ec(u,e),w=Ec(o,c),M=3*(o-c),O=wc(3,w),T=Tc(M),C=Mc(E,O),y=T+Tc(u-e+M),P=Ec(c,2*o),A=Oc(P,e),B=Tc(c-2*o+e),z=wc(3,A),F=6*B,Y=Ec(o,e);return{coeffs:[[d,b,N,[0,n]],[C,z,wc(3,Y),[0,e]]],errorBound:[[v,I,S,0],[y,F,Tc(3*(o-e)),0]]}}function yc(t){const[[n,e],[r,o],[i,c]]=t,s=i-2*r,u=Ec(i,2*r),f=Oc(u,n),l=Tc(s+n),a=Ec(2*r,2*n),p=c-2*o,h=Ec(c,2*o),d=Oc(h,e),v=Tc(p+e);return{coeffs:[[f,a,[0,n]],[d,Ec(2*o,2*e),[0,e]]],errorBound:[[l,0,0],[v,0,0]]}}function Pc(t){const[[n,e],[r,o]]=t;return[[Ec(r,n),[0,n]],[Ec(o,e),[0,e]]]}const Ac=b,Bc=Ir,zc=z,Fc=Math.abs;function Yc(t){const[[n,[,e]],[r,[,o]]]=Pc(t),i=zc(r),c=n,s=Bc(o,n),u=Fc(s[1]),f=Bc(e,r),l=Fc(f[1]),a=Ac(f,s);return{coeffs:{vₓ:i,vᵧ:c,v:a},errorBound:{v_:u+l+Fc(a[1])}}}const Vc=x,Lc=Ir,kc=sr,$c=Math.abs,Xc=Z(3);function qc(t){return[-t[0],-t[1]]}const Hc=qc,Dc=Co,Qc=Ir,Gc=sr,Rc=b,Uc=Math.abs;function jc(t){const{coeffs:[[n,e,[,r]],[o,i,[,c]]],errorBound:[[s],[u]]}=yc(t),f=n[1],l=e[1],a=o[1],p=i[1],h=Uc(r),d=Uc(l),v=Uc(f),g=Uc(c),m=Uc(p),x=Uc(a),b=Gc(n,i),I=s*m+2*Uc(f*p),_=Gc(e,o),N=d*u+2*Uc(l*a),S=Qc(c,n),E=g*s+Uc(c*f),w=Qc(r,o),M=h*u+Uc(r*a),O=Qc(c,e),T=Uc(c*l),C=Qc(r,i),y=Uc(r*p),P=Gc(n,n),A=2*(s*v+Uc(f*f)),B=Gc(n,o),z=s*x+v*u+2*Uc(f*a),F=Gc(o,o),Y=2*(u*x+Uc(a*a)),V=f*p-l*a,L=f*c-r*a,k=l*c-r*p,$=Rc(b,_),X=Uc(V),q=I+N+Uc(V),H=Rc(S,w),D=Uc(L),Q=E+M+Uc(L),G=Rc(O,C),R=Uc(k),U=T+y+Uc(k),j=Hc(F),Z=Y,W=Dc(B),J=z,K=Hc(P),tt=A,nt=p*V,et=Gc(i,$),rt=m*q+2*Uc(nt),ot=2*L*a,it=Dc(Gc(o,H)),ct=2*(u*D+x*Q+2*Uc(ot)),st=nt-ot,ut=Rc(et,it),ft=rt+ct+Uc(st),lt=2*f*L,at=Dc(Gc(n,H)),pt=2*(s*D+v*Q+2*Uc(lt)),ht=l*V,dt=Gc(e,$),vt=d*q+2*Uc(ht),gt=lt-ht,mt=Rc(at,dt),xt=pt+vt+Uc(gt),bt=V*k,It=Gc($,G),_t=q*R+X*U+2*Uc(bt),Nt=L*L,St=Gc(H,H),Et=2*(Q*D+Uc(Nt)),wt=bt-Nt;return{coeffs:{vₓₓ:j,vₓᵧ:W,vᵧᵧ:K,vₓ:ut,vᵧ:mt,v:Rc(It,St)},errorBound:{vₓₓ_:Z,vₓᵧ_:J,vᵧᵧ_:tt,vₓ_:ft,vᵧ_:xt,v_:_t+Et+Uc(wt)}}}const Zc=m,Wc=Co,Jc=Ir,Kc=sr,ts=x,ns=Math.abs,es=Z(3),rs=Math.abs,os=qc,is=Co,cs=Ir,ss=sr,us=b,fs=x;function ls(t){const{coeffs:[[n,e,r,[,o]],[i,c,s,[,u]]],errorBound:[[f,l,a],[p,h,d]]}=Cc(t),v=r[1],g=e[1],m=n[1],x=s[1],b=c[1],I=i[1],_=rs(o),N=rs(v),S=rs(g),E=rs(m),w=rs(u),M=rs(x),O=rs(b),T=rs(I),C=ss(n,s),y=m*x,P=f*M+E*d+2*rs(y),A=ss(r,i),B=v*I,z=a*T+N*p+2*rs(B),F=ss(n,c),Y=m*b,V=f*O+E*h+2*rs(Y),L=ss(e,c),k=g*b,$=l*O+S*h+2*rs(k),X=ss(e,i),q=g*I,H=l*T+S*p+2*rs(q),D=ss(n,n),Q=m*m,G=rs(Q),R=f*E+E*f+2*rs(Q),U=ss(c,c),j=b*b,Z=h*O+O*h+2*rs(j),W=ss(i,i),J=I*I,K=rs(J),tt=p*T+T*p+2*rs(J),nt=ss(r,n),et=v*m,rt=a*E+N*f+2*rs(et),ot=ss(e,e),it=g*g,ct=l*S+S*l+2*rs(it),st=ss(s,i),ut=x*I,ft=d*T+M*p+2*rs(ut),lt=ss(c,i),at=rs(b*I),pt=h*T+O*p+2*at,ht=ss(e,n),dt=rs(g*m),vt=l*E+S*f+2*dt,gt=ss(n,i),mt=rs(m*I),xt=f*T+E*p+2*mt,bt=cs(u,n),It=m*u,_t=f*w+rs(It),Nt=cs(o,i),St=o*I,Et=_*p+rs(St),wt=cs(u,e),Mt=g*u,Ot=l*w+rs(Mt),Tt=cs(o,c),Ct=o*b,yt=_*h+rs(Ct),Pt=ss(e,s),At=g*x,Bt=l*M+S*d+2*rs(At),zt=ss(r,c),Ft=v*b,Yt=a*O+N*h+2*rs(Ft),Vt=cs(u,r),Lt=v*u,kt=a*w+rs(Lt),$t=cs(o,s),Xt=o*x,qt=_*d+rs(Xt),Ht=us(bt,Nt),Dt=_t+Et+rs(It-St),Qt=us(C,A),Gt=P+z+rs(y-B),Rt=us(F,X),Ut=V+H+rs(Y-q),jt=us(wt,Tt),Zt=Ot+yt+rs(Mt-Ct),Wt=us(Pt,zt),Jt=Bt+Yt+rs(At-Ft),Kt=us(Vt,$t),tn=kt+qt+rs(Lt-Xt),nn=rs(ut-j),en=us(st,U),rn=ft+Z+nn,on=rs(et-it),cn=us(nt,ot),sn=rt+ct+rs(et-it),un=rs(q+Y),fn=fs(X,F),ln=H+V+rs(q+Y),an=B+y,pn=rs(an),hn=fs(A,C),dn=z+P+pn,vn=is(Qt),gn=2*Gt,mn=It-St,xn=y-B,bn=Y-q,In=Mt-Ct,_n=At-Ft,Nn=Lt-Xt,Sn=rs(mn),En=rs(xn),wn=rs(bn),Mn=rs(In),On=rs(_n),Tn=rs(Nn),Cn=2*En,yn=ss(Ht,Ht),Pn=ss(Ht,Qt),An=ss(Ht,Rt),Bn=ss(Ht,Wt),zn=ss(Qt,Qt),Fn=ss(vn,jt),Yn=ss(Rt,jt),Vn=ss(Rt,Wt),Ln=ss(Rt,Kt),kn=Dt*Sn+Sn*Dt+2*rs(yn[1]),$n=Dt*En+Sn*Gt+2*rs(Pn[1]),Xn=Dt*wn+Sn*Ut+2*rs(An[1]),qn=Dt*On+Sn*Jt+2*rs(Bn[1]),Hn=Gt*En+En*Gt+2*rs(zn[1]),Dn=gn*Mn+Cn*Zt+2*rs(Fn[1]),Qn=Ut*Mn+wn*Zt+2*rs(Yn[1]),Gn=Ut*On+wn*Jt+2*rs(Vn[1]),Rn=Ut*Tn+wn*tn+2*rs(Yn[1]),Un=ss(os(i),W),jn=p*K+T*tt+2*rs(Un[1]),Zn=3*E,Wn=cs(3,n),Jn=3*f+Zn,Kn=ss(Wn,W),te=Jn*K+Zn*tt+2*rs(Kn[1]),ne=3*T,ee=cs(-3,i),re=3*p+ne,oe=ss(ee,D),ie=re*G+ne*R+2*rs(oe[1]),ce=ss(n,D),se=f*G+E*R+2*rs(ce[1]),ue=-3*mn,fe=3*Sn,le=cs(-3,Ht),ae=3*Dt+fe,pe=us(le,Wt),he=rs(ue-_n),de=ae+Jt+he,ve=ss(pe,W),ge=de*K+he*tt+2*rs(ve[1]),me=ss(Rt,en),xe=Ut*nn+wn*rn+2*rs(me[1]),be=fs(ve,me),Ie=ge+xe+rs(be[1]),_e=ss(vn,lt),Ne=gn*at+Cn*pt+2*rs(_e[1]),Se=fs(be,_e),Ee=Ie+Ne+rs(Se[1]),we=ss(pe,D),Me=de*G+he*R+2*rs(we[1]),Oe=ss(Rt,cn),Te=Ut*on+wn*sn+2*rs(Oe[1]),Ce=fs(we,Oe),ye=Me+Te+rs(Ce[1]),Pe=ss(vn,ht),Ae=gn*dt+Cn*vt+2*rs(Pe[1]),Be=fs(Ce,Pe),ze=ye+Ae+rs(Be[1]),Fe=rs(k-an/2),Ye=us(L,function(t){return[t[0]/2,t[1]/2]}(hn)),Ve=$+dn/2+rs(Ye[1]),Le=ss(pe,gt),ke=de*mt+he*xt+2*rs(Le[1]),$e=ss(Qt,fn),Xe=Gt*un+En*ln+2*rs($e[1]),qe=fs(Le,$e),He=ke+Xe+rs(qe[1]),De=ss(Rt,Ye),Qe=Ut*Fe+wn*Ve+2*rs(De[1]),Ge=is(us(De,qe)),Re=2*(Qe+He)+rs(Ge[1]),Ue=cs(-3,yn),je=3*kn+rs(Ue[1]),Ze=us(Ue,is(Bn)),We=je+2*qn+rs(Ze[1]),Je=fs(Fn,Ln),Ke=Dn+Rn+rs(Je[1]),tr=fs(Ze,Je),nr=rs(tr[1]),er=We+Ke+nr,rr=is(us(Pn,Yn)),or=rs(rr[1]),ir=2*($n+Qn)+or,cr=us(An,zn),sr=Xn+Hn+rs(cr[1]),ur=fs(cr,Vn),fr=rs(ur[1]),lr=sr+Gn+fr,ar=ss(i,tr),pr=p*nr+T*er+2*rs(ar[1]),hr=ss(c,rr),dr=h*or+O*ir+2*rs(hr[1]),vr=ss(s,ur),gr=d*fr+M*lr+2*rs(vr[1]),mr=fs(hr,vr),xr=dr+gr+rs(mr[1]),br=fs(ar,mr),Ir=pr+xr+rs(br[1]),_r=ss(n,tr),Nr=f*nr+E*er+2*rs(_r[1]),Sr=ss(e,rr),Er=l*or+S*ir+2*rs(Sr[1]),wr=ss(r,ur),Mr=a*fr+N*lr+2*rs(wr[1]),Or=fs(Sr,wr),Tr=Er+Mr+rs(Or[1]),Cr=os(fs(_r,Or)),yr=Nr+Tr+rs(Cr[1]),Pr=us(Fn,yn),Ar=us(Pr,Bn),Br=rs(Ar[1]),zr=ss(ur,Kt),Fr=ss(Yn,jt),Yr=us(zr,Fr),Vr=lr*rs(Kt[1])+2*rs(zr[1])+Qn*rs(jt[1])+2*rs(Fr[1])+rs(Yr[1]),Lr=ss(Ht,Ar),kr=Dt*Br+Sn*Dn+kn+rs(Pr[1])+qn+Br+2*rs(Lr[1]),$r=fs(Lr,Yr);return{coeffs:{vₓₓₓ:Un,vₓₓᵧ:Kn,vₓᵧᵧ:oe,vᵧᵧᵧ:ce,vₓₓ:Se,vₓᵧ:Ge,vᵧᵧ:Be,vₓ:br,vᵧ:Cr,v:$r},errorBound:{vₓₓₓ_:jn,vₓₓᵧ_:te,vₓᵧᵧ_:ie,vᵧᵧᵧ_:se,vₓₓ_:Ee,vₓᵧ_:Re,vᵧᵧ_:ze,vₓ_:Ir,vᵧ_:yr,v_:kr+Vr+rs($r[1])}}}const as=m,ps=Co,hs=Ir,ds=sr,vs=x,gs=Math.abs,ms=Z(3),xs=x,bs=Ir,Is=sr,_s=Math.abs,Ns=Z(3),Ss=m,Es=Co,ws=Ir,Ms=sr,Os=x,Ts=Math.abs,Cs=Z(3),ys=m,Ps=Co,As=Ir,Bs=sr,zs=x,Fs=Math.abs,Ys=Z(3),Vs=x,Ls=Ir,ks=sr,$s=Math.abs,Xs=Z(3),qs=m,Hs=Co,Ds=Ir,Qs=sr,Gs=x,Rs=Math.abs,Us=Z(3),js=m,Zs=Co,Ws=Ir,Js=sr,Ks=x,tu=Math.abs,nu=Z(3),eu=$,ru=V,ou=z,iu=Q;function cu(t){const[[n,[e]],[r,[o]]]=t;if(0!==iu(n)||0!==iu(r))return{vₓ:ou(r),vᵧ:n,v:ru(eu(e,r),eu(o,n))}}const su=$,uu=H,fu=B;function lu(t,n){const e=Ft(t),[[r,[o]],[i,[c]]]=Ft(n),{vₓ:s,vᵧ:u,v:f}=cu(e),l=uu(r,s),a=uu(i,u),p=fu(l,a),h=su(o,s),d=su(c,u),v=fu(h,d);return[p,fu(v,f)]}const au=$,pu=Jo,hu=V,du=H,vu=z;function gu(t){const[[n,e,[r]],[o,i,[c]]]=t;if(0===Q(n)&&0===Q(o))return cu([[e,[r]],[i,[c]]]);const s=du(n,i),u=du(e,o),f=au(c,n),l=au(r,o),a=au(c,e),p=au(r,i),h=du(n,n),d=du(n,o),v=du(o,o),g=hu(s,u),m=hu(f,l),x=hu(a,p),b=vu(v),I=pu(d),_=vu(h),N=du(i,g),S=pu(du(o,m)),E=hu(N,S),w=pu(du(n,m)),M=du(e,g),O=hu(w,M),T=du(g,x),C=du(m,m);return{vₓₓ:b,vₓᵧ:I,vᵧᵧ:_,vₓ:E,vᵧ:O,v:hu(T,C)}}const mu=it,xu=$,bu=H,Iu=B,_u=Jo,Nu=Q;function Su(t,n){const e=zt(t);if(0===Nu(e[0][0])&&0===Nu(e[1][0]))return lu([t[0],t[2]],n);const[[r,[o]],[i,[c]]]=Ft(n),{vₓₓ:s,vₓᵧ:u,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=gu(e),h=mu(o,o),d=xu(o,r),v=mu(o,c),g=xu(o,i),m=bu(r,r),x=xu(c,r),b=bu(r,i),I=mu(c,c),_=xu(c,i),N=bu(i,i),S=bu(m,s),E=bu(N,f),w=bu(b,u),M=Iu(S,E),O=Iu(M,w),T=bu(d,s),C=bu(_,f),y=Iu(g,x),P=bu(y,u),A=_u(Iu(T,C)),B=Iu(A,P),z=bu(r,l),F=bu(i,a),Y=Iu(z,F),V=Iu(B,Y),L=bu(h,s),k=bu(v,u),$=bu(I,f),X=Iu(L,k),q=Iu(X,$),H=xu(o,l),D=xu(c,a),Q=Iu(H,D),G=Iu(q,Q);return[O,V,Iu(G,p)]}const Eu=H,wu=dt,Mu=V,Ou=Q,Tu=ht,Cu=k,yu=J;function Pu(t,n=!1){const[e,r,o,i]=t;if(!n){const[t,n]=e,[c,s]=r,[u,f]=o,[l,a]=i;return[e,[Tu(Mu(Cu(yu(c/4,u/4),3),yu(t/4,l/4))),Tu(Mu(Cu(yu(s/4,f/4),3),yu(n/4,a/4)))],i]}const c=function(t,n){const[[e,r],[o,i]]=t,[[c,s],[u,f]]=n,l=wu(o,e),a=wu(i,r),p=wu(u,c),h=wu(f,s),d=Mu(Eu(p,a),Eu(h,l));if(0===Ou(d))return;const v=wu(c,e),g=wu(s,r),m=Mu(Eu(g,l),Eu(v,a)),x=Tu(m)/Tu(d);return[c+x*Tu(p),s+x*Tu(h)]}([e,r],[i,o]);if(void 0!==c)return[e,c,i]}const Au=$,Bu=H,zu=B,Fu=V,Yu=z,Vu=Jo,Lu=Q;function ku(t){const[[n,e,r,[o]],[i,c,s,[u]]]=t;if(0===Lu(n)&&0===Lu(i))return gu([[e,r,[o]],[c,s,[u]]]);const f=Bu(n,s),l=Bu(r,i),a=Bu(n,c),p=Bu(e,c),h=Bu(e,i),d=Bu(n,n),v=Bu(c,c),g=Bu(i,i),m=Bu(r,n),x=Bu(e,e),b=Bu(s,i),I=Bu(c,i),_=Bu(e,n),N=Bu(n,i),S=Au(u,n),E=Au(o,i),w=Au(u,e),M=Au(o,c),O=Bu(e,s),T=Bu(r,c),C=Au(u,r),y=Au(o,s),P=Fu(S,E),A=Fu(f,l),B=Fu(a,h),z=Fu(w,M),F=Fu(O,T),Y=Fu(C,y),V=Fu(b,v),L=Fu(m,x),k=zu(h,a),$=zu(l,f),X=Vu(A),q=Bu(P,P),H=Bu(P,A),D=Bu(P,B),Q=Bu(P,F),G=Bu(A,A),R=Bu(X,z),U=Bu(B,z),j=Bu(B,F),Z=Bu(B,Y),W=Bu(Yu(i),g),J=Bu(Au(3,n),g),K=Bu(Au(-3,i),d),tt=Bu(n,d),nt=Fu(Au(-3,P),F),et=Bu(nt,g),rt=Bu(B,V),ot=zu(et,rt),it=Bu(X,I),ct=zu(ot,it),st=Bu(nt,d),ut=Bu(B,L),ft=zu(st,ut),lt=Bu(X,_),at=zu(ft,lt),pt=Fu(p,function(t){const n=[];for(let e=0;e<t.length;e++)n.push(.5*t[e]);return n}($)),ht=Bu(nt,N),dt=Bu(A,k),vt=zu(ht,dt),gt=Bu(B,pt),mt=Vu(Fu(gt,vt)),xt=Au(-3,q),bt=Fu(xt,Vu(Q)),It=zu(R,Z),_t=zu(bt,It),Nt=Vu(Fu(H,U)),St=Fu(D,G),Et=zu(St,j),wt=Bu(i,_t),Mt=Bu(c,Nt),Ot=Bu(s,Et),Tt=zu(Mt,Ot),Ct=zu(wt,Tt),yt=Bu(n,_t),Pt=Bu(e,Nt),At=Bu(r,Et),Bt=zu(Pt,At),zt=Yu(zu(yt,Bt)),Ft=Fu(R,q),Yt=Fu(Ft,Q),Vt=Bu(Et,Y),Lt=Bu(U,z),kt=Fu(Vt,Lt),$t=Bu(P,Yt);return{vₓₓₓ:W,vₓₓᵧ:J,vₓᵧᵧ:K,vᵧᵧᵧ:tt,vₓₓ:ct,vₓᵧ:mt,vᵧᵧ:at,vₓ:Ct,vᵧ:zt,v:zu($t,kt)}}const $u=it,Xu=$,qu=H,Hu=B,Du=Jo,Qu=Q;function Gu(t,n){const e=Bt(t);if(0===Qu(e[0][0])&&0===Qu(e[1][0]))return Su(Pu(t),n);const[[r,[o]],[i,[c]]]=Ft(n),{vₓₓₓ:s,vₓₓᵧ:u,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=ku(e),m=$u(o,o),x=Xu(o,r),b=$u(o,c),I=Xu(o,i),_=qu(r,r),N=Xu(c,r),S=qu(r,i),E=$u(c,c),w=Xu(c,i),M=qu(i,i),O=Xu(o,s),T=qu($u(3,o),s),C=Xu(o,u),y=Xu(c,u),P=Xu(o,f),A=Xu(c,f),B=Xu(c,l),z=qu($u(3,c),l),F=qu(r,s),Y=qu(r,f),V=qu(i,u),L=qu(i,l),k=Hu(F,V),$=Hu(Y,L),X=qu(_,k),q=qu(M,$),H=Hu(X,q),D=Hu(T,y),Q=Du(Hu(C,A)),G=Hu(P,z),R=Hu(D,a),U=Hu(Q,p),j=Hu(G,h),Z=qu(_,R),W=qu(S,U),J=qu(M,j),K=Hu(Z,W),tt=Hu(K,J),nt=Du(Hu(y,a)),et=Du(Hu(P,h)),rt=Hu(T,nt),ot=Hu(z,et),it=Hu(C,p),ct=Hu(A,p),st=qu(x,rt),ut=qu(w,ot),ft=qu(I,it),lt=qu(N,ct),at=qu(r,d),pt=qu(i,v),ht=Hu(st,ut),dt=Hu(ft,lt),vt=Hu(ht,dt),gt=Hu(at,pt),mt=Hu(vt,gt),xt=Hu(O,y),bt=Hu(B,P),It=Hu(xt,a),_t=Hu(bt,h),Nt=qu(m,It),St=qu(E,_t),Et=qu(b,p),wt=Hu(Nt,St),Mt=Hu(wt,Et),Ot=Xu(o,d),Tt=Xu(c,v),Ct=Hu(Ot,Tt),yt=Hu(Mt,Ct);return[H,tt,mt,Hu(yt,g)]}const Ru=$,Uu=H,ju=B,Zu=Q;function Wu(t,n){const e=Ft(t),[[r,o,[i]],[c,s,[u]]]=zt(n);if(0===Zu(r)&&0===Zu(c))return lu(t,[n[0],n[2]]);const{vₓ:f,vᵧ:l,v:a}=cu(e),p=Uu(r,f),h=Uu(c,l),d=ju(p,h),v=Uu(o,f),g=Uu(s,l),m=ju(v,g),x=Ru(i,f),b=Ru(u,l),I=ju(x,b);return[d,m,ju(I,a)]}const Ju=it,Ku=$,tf=H,nf=B,ef=Jo,rf=Q;function of(t,n){const e=zt(t);if(0===rf(e[0][0])&&0===rf(e[1][0]))return Wu([t[0],t[2]],n);const[[r,o,[i]],[c,s,[u]]]=zt(n);if(0===rf(r)&&0===rf(c))return Su(t,[n[0],n[2]]);const{vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d}=gu(e),v=Ju(i,i),g=Ku(i,o),m=Ku(i,r),x=Ju(i,u),b=Ku(i,s),I=Ku(i,c),_=tf(o,o),N=tf(o,r),S=Ku(u,o),E=tf(o,s),w=tf(o,c),M=tf(r,s),O=tf(r,r),T=Ku(u,r),C=tf(r,c),y=Ju(u,u),P=Ku(u,s),A=Ku(u,c),B=tf(s,s),z=tf(s,c),F=tf(c,c),Y=tf(O,f),V=tf(C,l),L=tf(F,a),k=nf(Y,V),$=nf(k,L),X=tf(N,f),q=tf(z,a),H=nf(w,M),D=tf(H,l),Q=ef(nf(X,q)),G=nf(Q,D),R=nf(ef(m),_),U=nf(ef(A),B),j=nf(I,E),Z=nf(j,T),W=tf(R,f),J=tf(U,a),K=tf(Z,l),tt=tf(r,p),nt=tf(c,h),et=nf(W,J),rt=nf(et,K),ot=nf(tt,nt),it=nf(rt,ot),ct=tf(g,f),st=tf(P,a),ut=nf(b,S),ft=tf(ut,l),lt=ef(nf(ct,st)),at=tf(o,p),pt=tf(s,h),ht=nf(lt,ft),dt=nf(at,pt),vt=nf(ht,dt),gt=tf(v,f),mt=tf(x,l),xt=tf(y,a),bt=Ku(i,p),It=Ku(u,h),_t=nf(gt,mt),Nt=nf(_t,xt),St=nf(bt,It),Et=nf(Nt,St);return[$,G,it,vt,nf(Et,d)]}const cf=it,sf=$,uf=H,ff=B,lf=Jo,af=Q;function pf(t,n){const e=Bt(t);if(0===af(e[0][0])&&0===af(e[1][0]))return of(Pu(t),n);const[[r,o,[i]],[c,s,[u]]]=zt(n);if(0===af(r)&&0===af(c))return Gu(t,[n[0],n[2]]);const{vₓₓₓ:f,vₓₓᵧ:l,vₓᵧᵧ:a,vᵧᵧᵧ:p,vₓₓ:h,vₓᵧ:d,vᵧᵧ:v,vₓ:g,vᵧ:m,v:x}=ku(e),b=cf(i,i),I=sf(i,o),_=sf(i,r),N=cf(i,u),S=sf(i,s),E=sf(i,c),w=uf(o,o),M=uf(o,r),O=sf(u,o),T=uf(o,s),C=uf(o,c),y=uf(r,s),P=uf(r,r),A=sf(u,r),B=uf(r,c),z=cf(u,u),F=sf(u,s),Y=sf(u,c),V=uf(s,s),L=uf(s,c),k=uf(c,c),$=uf(r,f),X=uf(r,a),q=uf(c,l),H=uf(c,p),D=ff($,q),Q=ff(X,H),G=uf(P,D),R=uf(k,Q),U=ff(G,R),j=ff(_,w),Z=ff(Y,V),W=ff(lf(_),w),J=ff(lf(Y),V),K=ff(lf(T),A),tt=ff(lf(T),E),nt=ff(lf(A),T),et=ff(sf(6,_),w),rt=ff(sf(6,Y),V),ot=ff(C,y),it=ff(E,A),ct=ff(lf(O),S),st=ff(lf(S),O),ut=ff(E,T),ft=ff(ut,A),lt=sf(3,P),at=sf(3,k),pt=uf(lt,f),ht=uf(P,l),dt=lf(uf(B,l)),vt=lf(uf(B,a)),gt=uf(k,a),mt=uf(at,p),xt=ff(pt,dt),bt=ff(ht,vt),It=ff(xt,gt),_t=ff(bt,mt),Nt=uf(o,It),St=uf(s,_t),Et=ff(Nt,St),wt=uf(c,W),Mt=uf(c,tt),Ot=uf(r,K),Tt=uf(r,J),Ct=uf(sf(3,r),j),yt=uf(sf(3,c),Z),Pt=ff(wt,Ot),At=ff(Mt,Tt),Ft=uf(Ct,f),Yt=uf(yt,p),Vt=uf(Pt,l),Lt=uf(At,a),kt=ff(Ft,Yt),$t=ff(Vt,Lt),Xt=uf(P,h),qt=uf(k,v),Ht=uf(B,d),Dt=ff(Xt,qt),Qt=ff(kt,$t),Gt=ff(Dt,Ht),Rt=ff(Qt,Gt),Ut=uf(o,et),jt=uf(s,rt),Zt=sf(2*i,ot),Wt=uf(lf(s),it),Jt=uf(o,nt),Kt=uf(o,J),tn=ff(Zt,Jt),nn=ff(Wt,Kt),en=uf(L,v),rn=uf(M,h),on=uf(ot,d),cn=ff(en,rn),sn=uf(Ut,f),un=uf(tn,l),fn=uf(jt,p),ln=uf(nn,a),an=ff(sn,fn),pn=ff(un,ln),hn=ff(an,pn),dn=ff(lf(cn),on),vn=ff(hn,dn),gn=uf(cf(3,i),j),mn=uf(cf(3,u),Z),xn=sf(i,tt),bn=sf(i,J),In=sf(u,W),_n=sf(u,K),Nn=ff(xn,In),Sn=ff(bn,_n),En=uf(gn,f),wn=uf(mn,p),Mn=uf(Nn,l),On=uf(Sn,a),Tn=uf(W,h),Cn=uf(J,v),yn=uf(ft,d),Pn=uf(r,g),An=uf(c,m),Bn=ff(En,wn),zn=ff(Mn,On),Fn=ff(Tn,Cn),Yn=ff(Bn,zn),Vn=ff(Fn,yn),Ln=ff(Pn,An),kn=ff(Yn,Vn),$n=ff(kn,Ln),Xn=uf(cf(3,i),I),qn=uf(cf(3,u),F),Hn=sf(i,ct),Dn=sf(u,st),Qn=uf(I,h),Gn=uf(F,v),Rn=uf(S,d),Un=uf(O,d),jn=lf(ff(Qn,Gn)),Zn=ff(Rn,Un),Wn=uf(o,g),Jn=uf(s,m),Kn=uf(Xn,f),te=uf(qn,p),ne=uf(Hn,l),ee=uf(Dn,a),re=ff(Kn,te),oe=ff(ne,ee),ie=ff(re,oe),ce=ff(jn,Zn),se=ff(Wn,Jn),ue=ff(ie,ce),fe=ff(ue,se),le=sf(i,f),ae=sf(i,a),pe=sf(u,l),he=sf(u,p),de=ff(le,pe),ve=ff(ae,he),ge=ff(de,h),me=ff(ve,v),xe=uf(b,ge),be=uf(z,me),Ie=uf(N,d),_e=sf(i,g),Ne=sf(u,m),Se=ff(xe,be),Ee=ff(Se,Ie),we=ff(_e,Ne),Me=ff(Ee,we);return[U,Et,Rt,vn,$n,fe,ff(Me,x)]}const hf=$,df=H,vf=B,gf=Q;function mf(t,n){const e=Ft(t),[[r,o,i,[c]],[s,u,f,[l]]]=Bt(n);if(0===gf(r)&&0===gf(s))return Wu(t,Pu(n));const{vₓ:a,vᵧ:p,v:h}=cu(e),d=df(r,a),v=df(s,p),g=vf(d,v),m=df(o,a),x=df(u,p),b=vf(m,x),I=df(i,a),_=df(f,p),N=vf(I,_),S=hf(c,a),E=hf(l,p),w=vf(S,E);return[g,b,N,vf(w,h)]}const xf=it,bf=$,If=H,_f=B,Nf=Jo,Sf=Q;function Ef(t,n){const e=zt(t);if(0===Sf(e[0][0])&&0===Sf(e[1][0]))return mf([t[0],t[2]],n);const[[r,o,i,[c]],[s,u,f,[l]]]=Bt(n);if(0===Sf(r)&&0===Sf(s))return of(t,Pu(n));const{vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=gu(e),m=xf(c,c),x=bf(c,i),b=bf(c,o),I=bf(c,r),_=xf(c,l),N=bf(c,f),S=bf(c,u),E=bf(c,s),w=If(i,i),M=If(i,o),O=If(i,r),T=bf(l,i),C=If(i,f),y=If(i,u),P=If(i,s),A=If(o,f),B=If(o,o),z=If(o,r),F=bf(l,o),Y=If(o,u),V=If(o,s),L=If(r,r),k=bf(l,r),$=If(r,f),X=If(r,u),q=If(r,s),H=xf(l,l),D=bf(l,f),Q=bf(l,u),G=bf(l,s),R=If(f,f),U=If(f,u),j=If(s,s),Z=If(u,u),W=If(u,s),J=If(f,s),K=If(L,a),tt=If(q,p),nt=If(j,h),et=_f(K,tt),rt=_f(et,nt),ot=If(z,a),it=If(W,h),ct=_f(ot,it),st=_f(V,X),ut=If(st,p),ft=_f(Nf(ct),ut),lt=_f(Nf(O),B),at=_f(Nf(J),Z),pt=_f(P,Y),ht=_f(pt,$),dt=If(lt,a),vt=If(at,h),gt=_f(dt,vt),mt=If(ht,p),xt=_f(gt,mt),bt=_f(I,M),It=_f(G,U),_t=_f(E,y),Nt=_f(A,k),St=_f(_t,Nt),Et=If(bt,a),wt=If(It,h),Mt=Nf(_f(Et,wt)),Ot=If(St,p),Tt=If(r,d),Ct=If(s,v),yt=_f(Tt,Ct),Pt=_f(Mt,Ot),At=_f(Pt,yt),Ft=_f(Nf(b),w),Yt=_f(Nf(Q),R),Vt=_f(S,C),Lt=_f(Vt,F),kt=If(Ft,a),$t=If(Yt,h),Xt=If(Lt,p),qt=_f(kt,$t),Ht=_f(qt,Xt),Dt=If(o,d),Qt=If(u,v),Gt=_f(Dt,Qt),Rt=_f(Ht,Gt),Ut=If(x,a),jt=If(D,h),Zt=_f(N,T),Wt=If(Zt,p),Jt=Nf(_f(Ut,jt)),Kt=_f(Jt,Wt),tn=If(i,d),nn=If(f,v),en=_f(tn,nn),rn=_f(Kt,en),on=If(m,a),cn=If(_,p),sn=If(H,h),un=bf(c,d),fn=bf(l,v),ln=_f(on,cn),an=_f(ln,sn),pn=_f(un,fn),hn=_f(an,pn);return[rt,ft,xt,At,Rt,rn,_f(hn,g)]}const wf=it,Mf=$,Of=H,Tf=B,Cf=Jo,yf=Q,Pf=[[function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Yc(t),[[c,[,s]],[u,[,f]]]=Pc(n),l=c[1],a=u[1],p=e[1],h=r[1],d=o[1],v=l*p,g=2*$c(v),m=kc(c,e),x=a*h,b=2*$c(x),I=kc(u,r),_=v+x,N=Vc(m,I),S=g+b+$c(_),E=s*p,w=Lc(s,e),M=$c(E),O=f*h,T=Lc(f,r),C=$c(O),y=E+O,P=Vc(w,T),A=M+C+$c(y),B=Vc(P,o),z=A+i+$c(y+d);return{coeffs:[N,B],errBound:[Xc*S,Xc*z]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Yc(t),{coeffs:[[c,s,[,u]],[f,l,[,a]]],errorBound:[[p],[h]]}=yc(n),d=e[1],v=r[1],g=o[1],m=_s(d),x=_s(v),b=(_s(g),s[1]),I=c[1],_=l[1],N=f[1],S=I*d,E=Is(c,e),w=p*m+2*_s(S),M=N*v,O=Is(f,r),T=h*x+2*_s(M),C=S+M,y=xs(E,O),P=w+T+_s(C),A=b*d,B=Is(s,e),z=2*_s(A),F=_*v,Y=Is(l,r),V=2*_s(F),L=A+F,k=xs(B,Y),$=z+V+_s(L),X=bs(u,e),q=u*d,H=_s(q),D=bs(a,r),Q=a*v,G=_s(Q),R=q+Q,U=xs(X,D),j=H+G+_s(R),Z=R+g,W=xs(U,o),J=j+i+_s(Z);return{coeffs:[y,k,W],errBound:[Ns*P,Ns*$,Ns*J]}},function(t,n){const{coeffs:{vₓ:e,vᵧ:r,v:o},errorBound:{v_:i}}=Yc(t),{coeffs:[[c,s,u,[,f]],[l,a,p,[,h]]],errorBound:[[d,v,g],[m,x,b]]}=Cc(n),I=$s(e[1]),_=$s(r[1]),N=ks(c,e),S=d*I+2*$s(N[1]),E=ks(l,r),w=m*_+2*$s(E[1]),M=Vs(N,E),O=S+w+$s(M[1]),T=ks(s,e),C=v*I+2*$s(T[1]),y=ks(a,r),P=x*_+2*$s(y[1]),A=Vs(T,y),B=C+P+$s(A[1]),z=ks(u,e),F=g*I+2*$s(z[1]),Y=ks(p,r),V=b*_+2*$s(Y[1]),L=Vs(z,Y),k=F+V+$s(L[1]),$=Ls(f,e),X=$s($[1]),q=Ls(h,r),H=$s(q[1]),D=Vs($,q),Q=X+H+$s(D[1]),G=Vs(D,o),R=Q+i+$s(G[1]);return{coeffs:[M,A,L,G],errBound:[Xs*O,Xs*B,Xs*k,Xs*R]}}],[function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=jc(t),[[d,[,v]],[g,[,m]]]=Pc(n),x=e[1],b=r[1],I=o[1],_=i[1],N=c[1],S=s[1],E=ns(x),w=ns(b),M=ns(I),O=d[1],T=g[1],C=ns(v),y=ns(O),P=ns(m),A=ns(T),B=v*v,z=v*O,F=v*m,Y=v*T,V=O*O,L=O*m,k=O*T,$=m*m,X=m*T,q=T*T,H=Zc(v,v),D=Jc(v,d),Q=ns(z),G=Zc(v,m),R=Jc(v,g),U=ns(Y),j=ns(V),Z=Kc(d,d),W=2*j,J=Jc(m,d),K=ns(L),tt=ns(k),nt=Kc(d,g),et=2*tt,rt=Zc(m,m),ot=Jc(m,g),it=ns(X),ct=ns(q),st=Kc(g,g),ut=2*ct,ft=V*x,lt=Kc(Z,e),at=W*E*j*u+2*ns(ft),pt=q*I,ht=Kc(st,o),dt=ut*M*ct*l+2*ns(pt),vt=k*b,gt=Kc(nt,r),mt=et*w*tt*f+2*ns(vt),xt=ft+pt,bt=ts(lt,ht),It=at+dt+ns(xt),_t=xt+vt,Nt=ts(bt,gt),St=It+mt+ns(_t),Et=z*x,wt=Kc(D,e),Mt=Q*(E+u)+2*ns(Et),Ot=X*I,Tt=Kc(ot,o),Ct=it*(M+l)+2*ns(Ot),yt=Y+L,Pt=ts(R,J),At=U+K+ns(yt),Bt=yt*b,zt=Kc(Pt,r),Ft=At*w+ns(yt)*f+2*ns(Bt),Yt=2*(Et+Ot),Vt=Wc(ts(wt,Tt)),Lt=2*(Mt+Ct)+ns(Yt),kt=Yt+Bt,$t=ts(Vt,zt),Xt=Lt+Ft+ns(kt),qt=O*_,Ht=Kc(d,i),Dt=y*a+2*ns(qt),Qt=T*N,Gt=Kc(g,c),Rt=A*p+2*ns(Qt),Ut=qt+Qt,jt=ts(Ht,Gt),Zt=Dt+Rt+ns(Ut),Wt=kt+Ut,Jt=ts($t,jt),Kt=Xt+Zt+ns(Wt),tn=B*x,nn=Kc(H,e),en=2*ns(tn),rn=F*b,on=Kc(G,r),cn=2*ns(rn),sn=$*I,un=Kc(rt,o),fn=2*ns(sn),ln=tn+rn,an=ts(nn,on),pn=en+cn+ns(ln),hn=ln+sn,dn=ts(an,un),vn=pn+fn+ns(hn),gn=v*_,mn=Jc(v,i),xn=C*a+ns(gn),bn=m*N,In=Jc(m,c),_n=P*p+ns(bn),Nn=gn+bn,Sn=ts(mn,In),En=xn+_n+ns(Nn),wn=hn+Nn,Mn=ts(dn,Sn),On=vn+En+ns(wn),Tn=wn+S,Cn=ts(Mn,s),yn=On+h+ns(Tn);return{coeffs:[Nt,Jt,Cn],errBound:[es*St,es*Kt,es*yn]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=jc(t),{coeffs:[[d,v,[,g]],[m,x,[,b]]],errorBound:[[I],[_]]}=yc(n),N=e[1],S=r[1],E=o[1],w=i[1],M=c[1],O=s[1],T=Ts(N),C=Ts(S),y=Ts(E),P=Ts(w),A=Ts(M),B=v[1],z=d[1],F=x[1],Y=m[1],V=Ts(g),L=Ts(B),k=Ts(z),$=Ts(b),X=Ts(F),q=Ts(Y),H=g*g,D=g*B,Q=g*z,G=g*b,R=g*F,U=g*Y,j=B*B,Z=B*z,W=B*b,J=B*F,K=B*Y,tt=z*F,nt=z*z,et=z*b,rt=z*Y,ot=b*b,it=b*F,ct=b*Y,st=F*F,ut=F*Y,ft=Y*Y,lt=Ts(H),at=Ts(G),pt=Ts(ot),ht=Ss(g,g),dt=ws(g,v),vt=Ts(D),gt=ws(g,d),mt=Ts(Q),xt=Ss(g,b),bt=ws(g,x),It=Ts(R),_t=ws(g,m),Nt=Ts(U),St=Ms(v,v),Et=2*Ts(j),wt=Ms(v,d),Mt=Ts(Z),Ot=L*I+2*Mt,Tt=ws(b,v),Ct=Ts(W),yt=Ms(v,x),Pt=2*Ts(J),At=Ms(v,m),Bt=L*_+2*Ts(K),zt=Ms(d,x),Ft=I*X+2*Ts(tt),Yt=Ms(d,d),Vt=Ts(nt),Lt=2*(I*k+Vt),kt=ws(b,d),$t=Ts(et),Xt=Ms(d,m),qt=Ts(rt),Ht=I*q+k*_+2*qt,Dt=Ss(b,b),Qt=ws(b,x),Gt=Ts(it),Rt=ws(b,m),Ut=Ts(ct),jt=Ms(x,x),Zt=2*Ts(st),Wt=Ms(x,m),Jt=Ts(ut),Kt=X*_+2*Jt,tn=Ms(m,m),nn=Ts(ft),en=2*(_*q+nn),rn=nt*N,on=Ms(Yt,e),cn=Lt*T+Vt*u+2*Ts(rn),sn=rt*S,un=Ms(Xt,r),fn=Ht*C+qt*f+2*Ts(sn),ln=ft*E,an=Ms(tn,o),pn=en*y+nn*l+2*Ts(ln),hn=rn+sn,dn=Os(on,un),vn=cn+fn+Ts(hn),gn=hn+ln,mn=Os(dn,an),xn=vn+pn+Ts(gn),bn=Z*N,In=Ms(wt,e),_n=Ot*T+Mt*u+2*Ts(bn),Nn=ut*E,Sn=Ms(Wt,o),En=Kt*y+Jt*l+2*Ts(Nn),wn=K+tt,Mn=Os(At,zt),On=Ts(wn),Tn=Bt+Ft+On,Cn=wn*S,yn=Ms(Mn,r),Pn=Tn*C+On*f+2*Ts(Cn),An=2*(bn+Nn),Bn=Es(Os(In,Sn)),zn=2*(_n+En)+Ts(An),Fn=An+Cn,Yn=Os(Bn,yn),Vn=zn+Pn+Ts(Fn),Ln=2*Q+j,kn=Ts(Ln),$n=Os(Es(gt),St),Xn=2*mt+Et+Ts(Ln),qn=2*ct+st,Hn=Ts(qn),Dn=Os(Es(Rt),jt),Qn=2*Ut+Zt+Ts(qn),Gn=U+J,Rn=(Ts(Gn),Os(_t,yt)),Un=Nt+Pt+Ts(Gn),jn=Gn+et,Zn=Os(Rn,kt),Wn=Ts(jn),Jn=Un+$t+Wn,Kn=Ln*N,te=Ms($n,e),ne=Xn*T+kn*u+2*Ts(Kn),ee=qn*E,re=Ms(Dn,o),oe=Qn*y+Hn*l+2*Ts(ee),ie=jn*S,ce=Ms(Zn,r),se=Jn*C+Wn*f+2*Ts(ie),ue=z*w,fe=Ms(d,i),le=I*P+k*a+Ts(ue),ae=Y*M,pe=Ms(m,c),he=_*A+q*p+Ts(ae),de=Kn+ee,ve=Os(te,re),ge=ne+oe+Ts(de),me=de+ie,xe=Os(ve,ce),be=ge+se+Ts(me),Ie=ue+ae,_e=Os(fe,pe),Ne=le+he+Ts(Ie),Se=me+Ie,Ee=Os(xe,_e),we=be+Ne+Ts(Se),Me=D*N,Oe=Ms(dt,e),Te=vt*(T+u)+2*Ts(Me),Ce=it*E,ye=Ms(Qt,o),Pe=Gt*(y+l)+2*Ts(Ce),Ae=R+W,Be=Os(bt,Tt),ze=Ts(Ae),Fe=It+Ct+ze,Ye=Ae*S,Ve=Ms(Be,r),Le=Fe*C+ze*f+2*Ts(Ye),ke=2*(Me+Ce),$e=Es(Os(Oe,ye)),Xe=2*(Te+Pe)+Ts(ke),qe=B*w,He=Ms(v,i),De=L*a+2*Ts(qe),Qe=F*M,Ge=Ms(x,c),Re=X*p+2*Ts(Qe),Ue=ke+Ye,je=Os($e,Ve),Ze=Xe+Le+Ts(Ue),We=qe+Qe,Je=Os(He,Ge),Ke=De+Re+Ts(We),tr=Ue+We,nr=Os(je,Je),er=Ze+Ke+Ts(tr),rr=H*N,or=Ms(ht,e),ir=lt*u+2*Ts(rr),cr=G*S,sr=Ms(xt,r),ur=at*f+2*Ts(cr),fr=ot*E,lr=Ms(Dt,o),ar=pt*l+2*Ts(fr),pr=g*w,hr=ws(g,i),dr=V*a+Ts(pr),vr=b*M,gr=ws(b,c),mr=$*p+Ts(vr),xr=rr+cr,br=Os(or,sr),Ir=ir+ur+Ts(xr),_r=xr+fr,Nr=Os(br,lr),Sr=Ir+ar+Ts(_r),Er=pr+vr,wr=Os(hr,gr),Mr=dr+mr+Ts(Er),Or=_r+Er,Tr=Os(Nr,wr),Cr=Sr+Mr+Ts(Or),yr=Or+O,Pr=Os(Tr,s),Ar=Cr+h+Ts(yr);return{coeffs:[mn,Yn,Ee,nr,Pr],errBound:[Cs*xn,Cs*Vn,Cs*we,Cs*er,Cs*Ar]}},function(t,n){const{coeffs:{vₓₓ:e,vₓᵧ:r,vᵧᵧ:o,vₓ:i,vᵧ:c,v:s},errorBound:{vₓₓ_:u,vₓᵧ_:f,vᵧᵧ_:l,vₓ_:a,vᵧ_:p,v_:h}}=jc(t),{coeffs:[[d,v,g,[,m]],[x,b,I,[,_]]],errorBound:[[N,S,E],[w,M,O]]}=Cc(n),T=e[1],C=r[1],y=o[1],P=i[1],A=c[1],B=s[1],z=Rs(T),F=Rs(C),Y=Rs(y),V=Rs(P),L=Rs(A),k=g[1],$=v[1],X=d[1],q=I[1],H=b[1],D=x[1],Q=Rs(m),G=Rs(k),R=Rs($),U=Rs(X),j=Rs(_),Z=Rs(q),W=Rs(H),J=Rs(D),K=m*m,tt=m*k,nt=m*$,et=m*X,rt=m*_,ot=m*q,it=m*H,ct=m*D,st=k*k,ut=k*$,ft=k*X,lt=k*_,at=k*q,pt=k*H,ht=k*D,dt=$*q,vt=$*$,gt=$*X,mt=$*_,xt=$*H,bt=$*D,It=X*X,_t=X*_,Nt=X*q,St=X*H,Et=X*D,wt=_*_,Mt=_*q,Ot=_*H,Tt=_*D,Ct=q*q,yt=q*H,Pt=D*D,At=H*H,Bt=H*D,zt=q*D,Ft=qs(m,m),Yt=Rs(K),Vt=Ds(m,g),Lt=Rs(tt),kt=Q*E+Lt,$t=Ds(m,v),Xt=Q*S+Rs(nt),qt=Ds(m,d),Ht=Q*N+Rs(et),Dt=qs(m,_),Qt=Rs(rt),Gt=Ds(m,I),Rt=Q*O+Rs(ot),Ut=Ds(m,b),jt=Q*M+Rs(it),Zt=Ds(m,x),Wt=Q*w+Rs(ct),Jt=Qs(g,g),Kt=E*G+G*E+2*Rs(st),tn=Qs(g,v),nn=E*R+G*S+2*Rs(ut),en=Qs(g,d),rn=E*U+G*N+2*Rs(ft),on=Ds(_,g),cn=j*E+Rs(lt),sn=Qs(g,I),un=E*Z+G*O+2*Rs(at),fn=Qs(g,b),ln=E*W+G*M+2*Rs(pt),an=Qs(g,x),pn=E*J+G*w+2*Rs(ht),hn=Qs(v,I),dn=S*Z+R*O+2*Rs(dt),vn=Qs(v,v),gn=S*R+R*S+2*Rs(vt),mn=Qs(v,d),xn=Rs(gt),bn=S*U+R*N+2*xn,In=Ds(_,v),_n=j*S+Rs(mt),Nn=Qs(v,b),Sn=S*W+R*M+2*Rs(xt),En=Qs(v,x),wn=S*J+R*w+2*Rs(bt),Mn=Qs(d,d),On=Rs(It),Tn=N*U+U*N+2*On,Cn=Ds(_,d),yn=j*N+Rs(_t),Pn=Qs(d,I),An=N*Z+U*O+2*Rs(Nt),Bn=Qs(d,b),zn=N*W+U*M+2*Rs(St),Fn=Qs(d,x),Yn=Rs(Et),Vn=N*J+U*w+2*Yn,Ln=qs(_,_),kn=Rs(wt),$n=Ds(_,I),Xn=Rs(Mt),qn=j*O+Xn,Hn=Ds(_,b),Dn=j*M+Rs(Ot),Qn=Ds(_,x),Gn=j*w+Rs(Tt),Rn=Qs(I,I),Un=O*Z+Z*O+2*Rs(Ct),jn=Qs(I,b),Zn=O*W+Z*M+2*Rs(yt),Wn=Qs(x,x),Jn=Rs(Pt),Kn=w*J+J*w+2*Jn,te=Qs(b,b),ne=M*W+W*M+2*Rs(At),ee=Qs(b,x),re=Rs(Bt),oe=M*J+W*w+2*re,ie=Qs(I,x),ce=O*J+Z*w+2*Rs(zt),se=It*T,ue=Qs(Mn,e),fe=Tn*z+On*u+2*Rs(se),le=Et*C,ae=Qs(Fn,r),pe=Vn*F+Yn*f+2*Rs(le),he=Pt*y,de=Qs(Wn,o),ve=Kn*Y+Jn*l+2*Rs(he),ge=se+le,me=Gs(ue,ae),xe=fe+pe+Rs(ge),be=ge+he,Ie=Gs(me,de),_e=xe+ve+Rs(be),Ne=gt*T,Se=Qs(mn,e),Ee=bn*z+xn*u+2*Rs(Ne),we=Bt*y,Me=Qs(ee,o),Oe=oe*Y+re*l+2*Rs(we),Te=Ne+we,Ce=Gs(Se,Me),ye=Ee+Oe+Rs(Te),Pe=bt+St,Ae=Gs(En,Bn),Be=Rs(Pe),ze=wn+zn+Be,Fe=Pe*C,Ye=Qs(Ae,r),Ve=ze*F+Be*f+2*Rs(Fe),Le=2*Te+Fe,ke=Gs(Hs(Ce),Ye),$e=2*ye+Ve+Rs(Le),Xe=2*ft+vt,qe=Gs(Hs(en),vn),He=Rs(Xe),De=2*rn+gn+Rs(Xe),Qe=2*zt+At,Ge=Gs(Hs(ie),te),Re=Rs(Qe),Ue=2*ce+ne+Rs(Qe),je=ht+xt,Ze=Gs(an,Nn),We=pn+Sn+Rs(je),Je=je+Nt,Ke=Gs(Ze,Pn),tr=Rs(Je),nr=We+An+tr,er=Xe*T,rr=Qs(qe,e),or=De*z+He*u+2*Rs(er),ir=Qe*y,cr=Qs(Ge,o),sr=Ue*Y+Re*l+2*Rs(ir),ur=er+ir,fr=Gs(rr,cr),lr=or+sr+Rs(ur),ar=Je*C,pr=Qs(Ke,r),hr=nr*F+tr*f+2*Rs(ar),dr=ur+ar,vr=Gs(fr,pr),gr=lr+hr+Rs(dr),mr=et+ut,xr=Gs(qt,tn),br=Rs(mr),Ir=Ht+nn+br,_r=Tt+yt,Nr=Gs(Qn,jn),Sr=Rs(_r),Er=Gn+Zn+Sr,wr=ct+pt,Mr=Gs(Zt,fn),Or=Wt+ln+Rs(wr),Tr=dt+_t,Cr=Gs(hn,Cn),yr=dn+yn+Rs(Tr),Pr=wr+Tr,Ar=Gs(Mr,Cr),Br=Rs(Pr),zr=Or+yr+Br,Fr=mr*T,Yr=Qs(xr,e),Vr=Ir*z+br*u+2*Rs(Fr),Lr=_r*y,kr=Qs(Nr,o),$r=Er*Y+Sr*l+2*Rs(Lr),Xr=2*(Fr+Lr),qr=Hs(Gs(Yr,kr)),Hr=2*(Vr+$r)+Rs(Xr),Dr=Pr*C,Qr=Qs(Ar,r),Gr=zr*F+Br*f+2*Rs(Dr),Rr=X*P,Ur=Qs(d,i),jr=N*V+U*a+2*Rs(Rr),Zr=D*A,Wr=Qs(x,c),Jr=w*L+J*p+2*Rs(Zr),Kr=Rr+Zr,to=Gs(Ur,Wr),no=jr+Jr+Rs(Kr),eo=Xr+Dr,ro=Gs(qr,Qr),oo=Hr+Gr+Rs(eo),io=eo+Kr,co=Gs(ro,to),so=oo+no+Rs(io),uo=2*nt+st,fo=Gs(Hs($t),Jt),lo=Rs(uo),ao=2*Xt+Kt+lo,po=2*Ot+Ct,ho=Gs(Hs(Hn),Rn),vo=Rs(po),go=2*Dn+Un+vo,mo=it+at,xo=Gs(Ut,sn),bo=jt+un+Rs(mo),Io=mo+mt,_o=Gs(xo,In),No=Rs(Io),So=bo+_n+No,Eo=uo*T,wo=Qs(fo,e),Mo=ao*z+lo*u+2*Rs(Eo),Oo=po*y,To=Qs(ho,o),Co=go*Y+vo*l+2*Rs(Oo),yo=Io*C,Po=Qs(_o,r),Ao=So*F+No*f+2*Rs(yo),Bo=Eo+Oo,zo=Gs(wo,To),Fo=Mo+Co+Rs(Bo),Yo=Bo+yo,Vo=Gs(zo,Po),Lo=Fo+Ao+Rs(Yo),ko=$*P,$o=Qs(v,i),Xo=S*V+R*a+2*Rs(ko),qo=H*A,Ho=Qs(b,c),Do=M*L+W*p+2*Rs(qo),Qo=ko+qo,Go=Gs($o,Ho),Ro=Xo+Do+Rs(Qo),Uo=Yo+Qo,jo=Gs(Vo,Go),Zo=Lo+Ro+Rs(Uo),Wo=tt*T,Jo=Qs(Vt,e),Ko=kt*z+Lt*u+2*Rs(Wo),ti=Mt*y,ni=Qs($n,o),ei=qn*Y+Xn*l+2*Rs(ti),ri=ot+lt,oi=Gs(Gt,on),ii=Rs(ri),ci=Rt+cn+ii,si=ri*C,ui=Qs(oi,r),fi=ci*F+ii*f+2*Rs(si),li=2*(Wo+ti),ai=Hs(Gs(Jo,ni)),pi=2*(Ko+ei)+Rs(li),hi=li+si,di=Gs(ai,ui),vi=pi+fi+Rs(hi),gi=k*P,mi=Qs(g,i),xi=E*V+G*a+2*Rs(gi),bi=q*A,Ii=Qs(I,c),_i=O*L+Z*p+2*Rs(bi),Ni=gi+bi,Si=Gs(mi,Ii),Ei=xi+_i+Rs(Ni),wi=hi+Ni,Mi=Gs(di,Si),Oi=vi+Ei+Rs(wi),Ti=K*T,Ci=Qs(Ft,e),yi=Yt*u+2*Rs(Ti),Pi=rt*C,Ai=Qs(Dt,r),Bi=Qt*f+2*Rs(Pi),zi=wt*y,Fi=Qs(Ln,o),Yi=kn*l+2*Rs(zi),Vi=m*P,Li=Ds(m,i),ki=Q*a+Rs(Vi),$i=_*A,Xi=Ds(_,c),qi=j*p+Rs($i),Hi=Ti+Pi,Di=Gs(Ci,Ai),Qi=yi+Bi+Rs(Hi),Gi=Hi+zi,Ri=Gs(Di,Fi),Ui=Qi+Yi+Rs(Gi),ji=Vi+$i,Zi=Gs(Li,Xi),Wi=ki+qi+Rs(ji),Ji=Gi+ji,Ki=Gs(Ri,Zi),tc=Ui+Wi+Rs(Ji),nc=Ji+B,ec=Gs(Ki,s),rc=tc+h+Rs(nc);return{coeffs:[Ie,ke,vr,co,jo,Mi,ec],errBound:[Us*_e,Us*$e,Us*gr,Us*so,Us*Zo,Us*Oi,Us*rc]}}],[function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:b,vᵧ_:I,v_:_}}=ls(t),[[N,[,S]],[E,[,w]]]=Pc(n),M=e[1],O=r[1],T=o[1],C=i[1],y=c[1],P=s[1],A=u[1],B=f[1],z=l[1],F=a[1],Y=N[1],V=E[1],L=gs(S),k=gs(Y),$=gs(w),X=gs(V),q=S*S,H=S*Y,D=S*w,Q=S*V,G=Y*Y,R=Y*w,U=Y*V,j=w*w,Z=w*V,W=V*V,J=as(S,S),K=hs(S,N),tt=gs(H),nt=as(S,w),et=hs(S,E),rt=gs(Q),ot=ds(N,N),it=2*gs(G),ct=hs(w,N),st=gs(R),ut=ds(N,E),ft=2*gs(U),lt=as(w,w),at=hs(w,E),pt=gs(Z),ht=ds(E,E),dt=2*gs(W),vt=gs(q),gt=gs(H),mt=gs(D),xt=gs(Q),bt=gs(G),It=gs(R),_t=gs(U),Nt=gs(j),St=gs(Z),Et=gs(W),wt=S*M,Mt=hs(S,e),Ot=L*p+gs(wt),Tt=3*S,Ct=as(3,S),yt=gs(Tt),Pt=Tt*M,At=ds(Ct,e),Bt=yt*p+2*gs(Pt),zt=S*O,Ft=hs(S,r),Yt=L*h+gs(zt),Vt=w*O,Lt=hs(w,r),kt=$*h+gs(Vt),$t=S*T,Xt=hs(S,o),qt=L*d+gs($t),Ht=w*T,Dt=hs(w,o),Qt=$*d+gs(Ht),Gt=w*C,Rt=hs(w,i),Ut=$*v+gs(Gt),jt=3*w,Zt=as(3,w),Wt=gs(jt),Jt=jt*C,Kt=ds(Zt,i),tn=Wt*v+2*gs(Jt),nn=Y*M,en=ds(N,e),rn=k*p+2*gs(nn),on=Y*T,cn=ds(N,o),sn=k*d+2*gs(on),un=V*O,fn=ds(E,r),ln=X*h+2*gs(un),an=V*C,pn=ds(E,i),hn=X*v+2*gs(an),dn=nn+un,vn=vs(en,fn),gn=gs(dn),mn=rn+ln+gn,xn=on+an,bn=vs(cn,pn),In=gs(xn),_n=sn+hn+In,Nn=G*dn,Sn=ds(ot,vn),En=it*gn+bt*mn+2*gs(Nn),wn=W*xn,Mn=ds(ht,bn),On=dt*In+Et*_n+2*gs(wn),Tn=Nn+wn,Cn=vs(Sn,Mn),yn=En+On+gs(Tn),Pn=Pt+Vt,An=vs(At,Lt),Bn=Bt+kt+gs(Pn),zn=2*(zt+Ht),Fn=ps(vs(Ft,Dt)),Yn=2*(Yt+Qt)+gs(zn),Vn=$t+Jt,Ln=vs(Xt,Kt),kn=qt+tn+gs(Vn),$n=Pn+y,Xn=vs(An,c),qn=gs($n),Hn=Bn+g+qn,Dn=zn+P,Qn=vs(Fn,s),Gn=gs(Dn),Rn=Yn+m+Gn,Un=Vn+A,jn=vs(Ln,u),Zn=gs(Un),Wn=kn+x+Zn,Jn=G*$n,Kn=ds(ot,Xn),te=it*qn+bt*Hn+2*gs(Jn),ne=U*Dn,ee=ds(ut,Qn),re=ft*Gn+_t*Rn+2*gs(ne),oe=W*Un,ie=ds(ht,jn),ce=dt*Zn+Et*Wn+2*gs(oe),se=Jn+ne,ue=vs(Kn,ee),fe=te+re+gs(se),le=se+oe,ae=vs(ue,ie),pe=fe+ce+gs(le),he=2*(Vt+y),de=ps(vs(Lt,c)),ve=2*(kt+g)+gs(he),ge=2*($t+A),me=ps(vs(Xt,u)),xe=2*(qt+x)+gs(ge),be=Pt+he,Ie=vs(At,de),_e=gs(be),Ne=Bt+ve+_e,Se=Jt+ge,Ee=vs(Kt,me),we=gs(Se),Me=tn+xe+we,Oe=zt+P,Te=vs(Ft,s),Ce=gs(Oe),ye=Yt+m+Ce,Pe=Ht+P,Ae=vs(Dt,s),Be=gs(Pe),ze=Qt+m+Be,Fe=H*be,Ye=ds(K,Ie),Ve=tt*_e+gt*Ne+2*gs(Fe),Le=Z*Se,ke=ds(at,Ee),$e=pt*we+St*Me+2*gs(Le),Xe=Q*Oe,qe=ds(et,Te),He=rt*Ce+xt*ye+2*gs(Xe),De=R*Pe,Qe=ds(ct,Ae),Ge=st*Be+It*ze+2*gs(De),Re=Y*B,Ue=ds(N,f),je=k*b+2*gs(Re),Ze=V*z,We=ds(E,l),Je=X*I+2*gs(Ze),Ke=Fe+Le,tr=vs(Ye,ke),nr=Ve+$e+gs(Ke),er=Xe+De,rr=vs(qe,Qe),or=He+Ge+gs(er),ir=Ke+er,cr=vs(tr,rr),sr=nr+or+gs(ir),ur=Re+Ze,fr=vs(Ue,We),lr=je+Je+gs(ur),ar=ir+ur,pr=vs(cr,fr),hr=sr+lr+gs(ar),dr=wt+Vt,vr=vs(Mt,Lt),gr=Ot+kt+gs(dr),mr=Gt+$t,xr=vs(Rt,Xt),br=Ut+qt+gs(mr),Ir=dr+y,_r=vs(vr,c),Nr=gr+g+gs(Ir),Sr=mr+A,Er=vs(xr,u),wr=br+x+gs(Sr),Mr=q*Ir,Or=ds(J,_r),Tr=vt*Nr+2*gs(Mr),Cr=j*Sr,yr=ds(lt,Er),Pr=Nt*wr+2*gs(Cr),Ar=D*P,Br=ds(nt,s),zr=mt*m+2*gs(Ar),Fr=Mr+Cr,Yr=vs(Or,yr),Vr=Tr+Pr+gs(Fr),Lr=Fr+Ar,kr=vs(Yr,Br),$r=Vr+zr+gs(Lr),Xr=S*B,qr=hs(S,f),Hr=L*b+gs(Xr),Dr=w*z,Qr=hs(w,l),Gr=$*I+gs(Dr),Rr=Xr+Dr,Ur=vs(qr,Qr),jr=Hr+Gr+gs(Rr),Zr=Lr+Rr,Wr=vs(kr,Ur),Jr=$r+jr+gs(Zr),Kr=Zr+F,to=vs(Wr,a),no=Jr+_+gs(Kr);return{coeffs:[Cn,ae,pr,to],errBound:[ms*yn,ms*pe,ms*hr,ms*no]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:b,vᵧ_:I,v_:_}}=ls(t),{coeffs:[[N,S,[,E]],[w,M,[,O]]],errorBound:[[T],[C]]}=yc(n),y=e[1],P=r[1],A=o[1],B=i[1],z=c[1],F=s[1],Y=u[1],V=f[1],L=l[1],k=a[1],$=Fs(y),X=Fs(P),q=Fs(A),H=Fs(B),D=Fs(z),Q=Fs(Y),G=Fs(F),R=Fs(V),U=Fs(L),j=S[1],Z=N[1],W=M[1],J=w[1],K=Fs(E),tt=Fs(j),nt=Fs(Z),et=Fs(O),rt=Fs(W),ot=Fs(J),it=E*E,ct=E*j,st=E*Z,ut=E*O,ft=E*W,lt=E*J,at=j*j,pt=j*Z,ht=j*O,dt=j*W,vt=j*J,gt=Z*W,mt=Z*Z,xt=Z*O,bt=Z*J,It=O*O,_t=O*W,Nt=O*J,St=W*W,Et=W*J,wt=J*J,Mt=ys(E,E),Ot=As(E,S),Tt=Fs(ct),Ct=As(E,N),yt=K*T+Fs(st),Pt=ys(E,O),At=As(E,M),Bt=Fs(ft),zt=As(E,w),Ft=K*C+Fs(lt),Yt=Bs(S,S),Vt=2*Fs(at),Lt=Bs(S,N),kt=tt*T+2*Fs(pt),$t=As(O,S),Xt=Fs(ht),qt=Bs(S,M),Ht=2*Fs(dt),Dt=Bs(S,w),Qt=tt*C+2*Fs(vt),Gt=Bs(N,M),Rt=T*rt+2*Fs(gt),Ut=Bs(N,N),jt=2*(T*nt+Fs(mt)),Zt=As(O,N),Wt=et*T+Fs(xt),Jt=Bs(N,w),Kt=T*ot+nt*C+2*Fs(bt),tn=ys(O,O),nn=As(O,M),en=Fs(_t),rn=As(O,w),on=et*C+Fs(Nt),cn=Bs(M,M),sn=2*Fs(St),un=Bs(M,w),fn=rt*C+2*Fs(Et),ln=Bs(w,w),an=2*(C*ot+Fs(wt)),pn=Fs(it),hn=Fs(ct),dn=Fs(ut),vn=Fs(ft),gn=Fs(pt),mn=Fs(mt),xn=Fs(bt),bn=Fs(ht),In=Fs(It),_n=Fs(_t),Nn=Fs(Et),Sn=Fs(wt),En=Bs(N,e),wn=Z*y,Mn=T*$+nt*p+2*Fs(wn),On=Bs(N,o),Tn=Z*A,Cn=T*q+nt*d+2*Fs(Tn),yn=Bs(w,r),Pn=J*P,An=C*X+ot*h+2*Fs(Pn),Bn=Bs(w,i),zn=J*B,Fn=C*H+ot*v+2*Fs(zn),Yn=wn+Pn,Vn=zs(En,yn),Ln=Fs(Yn),kn=Mn+An+Ln,$n=Tn+zn,Xn=zs(On,Bn),qn=Fs($n),Hn=Cn+Fn+qn,Dn=mt*Yn,Qn=Bs(Ut,Vn),Gn=jt*Ln+mn*kn+2*Fs(Dn),Rn=wt*$n,Un=Bs(ln,Xn),jn=an*qn+Sn*Hn+2*Fs(Rn),Zn=Dn+Rn,Wn=zs(Qn,Un),Jn=Gn+jn+Fs(Zn),Kn=st+at,te=zs(Ct,Yt),ne=Fs(Kn),ee=yt+Vt+ne,re=Nt+St,oe=zs(rn,cn),ie=Fs(re),ce=on+sn+ie,se=2*st+at,ue=Fs(se),fe=zs(Ps(Ct),Yt),le=2*yt+Vt+ue,ae=2*Nt+St,pe=zs(Ps(rn),cn),he=Fs(ae),de=2*on+sn+he,ve=2*dt+xt,ge=zs(Ps(qt),Zt),me=Fs(ve),xe=2*Ht+Wt+me,be=2*dt+lt,Ie=zs(Ps(qt),zt),_e=Fs(be),Ne=2*Ht+Ft+_e,Se=2*xt+dt,Ee=zs(Ps(Zt),qt),we=2*Wt+Ht+Fs(Se),Me=6*st+at,Oe=6*st,Te=As(6,Ct),Ce=6*yt+Fs(Oe),ye=zs(Te,Yt),Pe=Ce+Vt+Fs(Oe+at),Ae=6*Nt+St,Be=6*Nt,ze=As(6,rn),Fe=6*on+Fs(Be),Ye=zs(ze,cn),Ve=Fe+sn+Fs(Be+St),Le=vt+gt,ke=zs(Dt,Gt),$e=Fs(Le),Xe=Qt+Rt+$e,qe=lt+xt,He=zs(zt,Zt),De=Ft+Wt+Fs(qe),Qe=2*ht+ft,Ge=zs(Ps($t),At),Re=2*Xt+Bt+Fs(Qe),Ue=2*ft+ht,je=zs(Ps(At),$t),Ze=2*Bt+Xt+Fs(Ue),We=lt+dt,Je=zs(zt,qt),Ke=Ft+Ht+Fs(We),tr=We+xt,nr=zs(Je,Zt),er=Fs(tr),rr=Ke+Wt+er,or=3*mt,ir=As(3,Ut),cr=3*jt+Fs(or),sr=Fs(or),ur=3*wt,fr=As(3,ln),lr=3*an+Fs(ur),ar=Fs(ur),pr=or*y,hr=Bs(ir,e),dr=cr*$+sr*p+2*Fs(pr),vr=mt*P,gr=Bs(Ut,r),mr=jt*X+mn*h+2*Fs(vr),xr=2*bt*P,br=Ps(Bs(Jt,r)),Ir=2*(Kt*X+xn*h+Fs(xr)),_r=2*bt*A,Nr=Ps(Bs(Jt,o)),Sr=2*(Kt*q+xn*d+Fs(_r)),Er=wt*A,wr=Bs(ln,o),Mr=an*q+Sn*d+2*Fs(Er),Or=ur*B,Tr=Bs(fr,i),Cr=lr*H+ar*v+2*Fs(Or),yr=pr+xr,Pr=zs(hr,br),Ar=dr+Ir+Fs(yr),Br=vr+_r,zr=zs(gr,Nr),Fr=mr+Sr+Fs(Br),Yr=yr+Er,Vr=zs(Pr,wr),Lr=Ar+Mr+Fs(Yr),kr=Br+Or,$r=zs(zr,Tr),Xr=Fr+Cr+Fs(kr),qr=j*Yr,Hr=Bs(S,Vr),Dr=tt*Lr+Fs(qr),Qr=W*kr,Gr=Bs(M,$r),Rr=rt*Xr+Fs(Qr),Ur=qr+Qr,jr=zs(Hr,Gr),Zr=Dr+Rr+Fs(Ur),Wr=J*se,Jr=Bs(w,fe),Kr=C*ue+ot*le+2*Fs(Wr),to=J*be,no=Bs(w,Ie),eo=C*_e+ot*Ne+2*Fs(to),ro=Z*ve,oo=Bs(N,ge),io=T*me+nt*xe+2*Fs(ro),co=Z*ae,so=Bs(N,pe),uo=T*he+nt*de+2*Fs(co),fo=3*Z,lo=As(3,N),ao=Fs(fo),po=3*T+ao,ho=fo*Kn,vo=Bs(lo,te),go=Fs(ho),mo=po*ne+ao*ee+go,xo=3*J,bo=As(3,w),Io=Fs(xo),_o=3*C+Io,No=xo*re,So=Bs(bo,oe),Eo=Fs(No),wo=_o*ie+Io*ce+Eo,Mo=Wr+ro,Oo=zs(Jr,oo),To=Fs(Mo),Co=Kr+io+To,yo=to+co,Po=zs(no,so),Ao=Fs(yo),Bo=eo+uo+Ao,zo=ho*y,Fo=Bs(vo,e),Yo=mo*$+go*p+2*Fs(zo),Vo=No*B,Lo=Bs(So,i),ko=wo*H+Eo*v+2*Fs(Vo),$o=Mo*P,Xo=Bs(Oo,r),qo=Co*X+To*h+2*Fs($o),Ho=yo*A,Do=Bs(Po,o),Qo=Bo*q+Ao*d+2*Fs(Ho),Go=zo+Vo,Ro=zs(Fo,Lo),Uo=Yo+ko+Fs(Go),jo=$o+Ho,Zo=zs(Xo,Do),Wo=qo+Qo+Fs(jo),Jo=mt*z,Ko=Bs(Ut,c),ti=jt*D+mn*g+2*Fs(Jo),ni=wt*Y,ei=Bs(ln,u),ri=an*Q+Sn*x+2*Fs(ni),oi=bt*F,ii=Bs(Jt,s),ci=Kt*G+xn*m+2*Fs(oi),si=Jo+ni,ui=zs(Ko,ei),fi=ti+ri+Fs(si),li=Go+jo,ai=zs(Ro,Zo),pi=Uo+Wo+Fs(li),hi=si+oi,di=zs(ui,ii),vi=fi+ci+Fs(hi),gi=li+hi,mi=zs(ai,di),xi=pi+vi+Fs(gi),bi=j*Me,Ii=Bs(S,ye),_i=tt*Pe+2*Fs(bi),Ni=2*_i,Si=W*Ae,Ei=Bs(M,Ye),wi=rt*Ve+2*Fs(Si),Mi=2*wi,Oi=2*E*Le,Ti=As(2*E,ke),Ci=2*K*Xe+Fs(Oi),yi=2*W*qe,Pi=Bs(Ps(M),He),Ai=2*rt*De+2*Fs(yi),Bi=j*Se,zi=Bs(S,Ee),Fi=tt*we+2*Fs(Bi),Yi=j*ae,Vi=Bs(S,pe),Li=tt*de+2*Fs(Yi),ki=Oi+Bi,$i=zs(Ti,zi),Xi=Ci+Fi+Fs(ki),qi=Ci+Fi+Xi,Hi=yi+Yi,Di=zs(Pi,Vi),Qi=Ai+Li+Fs(Hi),Gi=Ai+Li+Qi,Ri=Et*Y,Ui=Bs(un,u),ji=fn*Q+Nn*x+2*Fs(Ri),Zi=pt*z,Wi=Bs(Lt,c),Ji=kt*D+gn*g+2*Fs(Zi),Ki=Le*F,tc=Bs(ke,s),nc=Xe*G+$e*m+2*Fs(Ki),ec=Ri+Zi,rc=zs(Ui,Wi),oc=ji+Ji+Fs(ec),ic=bi*y,cc=Bs(Ii,e),sc=Ni*$+_i*p+2*Fs(ic),uc=ki*P,fc=Bs($i,r),lc=qi*X+Xi*h+2*Fs(uc),ac=Si*B,pc=Bs(Ei,i),hc=Mi*H+wi*v+2*Fs(ac),dc=Hi*A,vc=Bs(Di,o),gc=Gi*q+Qi*d+2*Fs(dc),mc=ic+ac,xc=zs(cc,pc),bc=sc+hc+Fs(mc),Ic=uc+dc,_c=zs(fc,vc),Nc=lc+gc+Fs(Ic),Sc=mc+Ic,Ec=zs(xc,_c),wc=bc+Nc+Fs(Sc),Mc=2*ec+Ki,Oc=zs(Ps(rc),tc),Tc=2*oc+nc+Fs(Mc),Cc=Sc+Mc,Pc=zs(Ec,Oc),Ac=wc+Tc+Fs(Cc),Bc=3*E,zc=Fs(Bc),Fc=ys(3,E),Yc=Bc*Kn,Vc=Bs(Fc,te),Lc=Fs(Yc),kc=zc*ee+2*Fs(Yc),$c=3*O,Xc=Fs($c),qc=ys(3,O),Hc=$c*re,Dc=Bs(qc,oe),Qc=Fs(Hc),Gc=Xc*ce+2*Fs(Hc),Rc=E*be,Uc=As(E,Ie),jc=K*Ne+Fs(Rc),Zc=E*ae,Wc=As(E,pe),Jc=K*de+Fs(Zc),Kc=O*se,ts=As(O,fe),ns=et*le+Fs(Kc),es=O*ve,rs=As(O,ge),os=et*xe+Fs(es),is=Rc+Kc,cs=zs(Uc,ts),ss=Fs(is),us=jc+ns+ss,fs=Zc+es,as=zs(Wc,rs),ps=Fs(fs),hs=Jc+os+ps,ds=Yc*y,vs=Bs(Vc,e),gs=kc*$+Lc*p+2*Fs(ds),ms=Hc*B,xs=Bs(Dc,i),bs=Gc*H+Qc*v+2*Fs(ms),Is=is*P,_s=Bs(cs,r),Ns=us*X+ss*h+2*Fs(Is),Ss=fs*A,Es=Bs(as,o),ws=hs*q+ps*d+2*Fs(Ss),Ms=se*z,Os=Bs(fe,c),Ts=le*D+ue*g+2*Fs(Ms),Cs=ae*Y,Vs=Bs(pe,u),Ls=de*Q+he*x+2*Fs(Cs),ks=tr*F,$s=Bs(nr,s),Xs=rr*G+er*m+2*Fs(ks),qs=Z*V,Hs=Bs(N,f),Ds=T*R+nt*b+2*Fs(qs),Qs=J*L,Gs=Bs(w,l),Rs=C*U+ot*I+2*Fs(Qs),Us=ds+ms,js=zs(vs,xs),Zs=gs+bs+Fs(Us),Ws=Is+Ss,Js=zs(_s,Es),Ks=Ns+ws+Fs(Ws),tu=Ms+Cs,nu=zs(Os,Vs),eu=Ts+Ls+Fs(tu),ru=Us+Ws,ou=zs(js,Js),iu=Zs+Ks+Fs(ru),cu=tu+ks,su=zs(nu,$s),uu=eu+Xs+Fs(cu),fu=qs+Qs,lu=zs(Hs,Gs),au=Ds+Rs+Fs(fu),pu=ru+cu,hu=zs(ou,su),du=iu+uu+Fs(pu),vu=pu+fu,gu=zs(hu,lu),mu=du+au+Fs(vu),xu=Bc*ct,bu=Bs(Fc,Ot),Iu=Fs(xu),_u=zc*Tt+2*Iu,Nu=$c*_t,Su=Bs(qc,nn),Eu=Fs(Nu),wu=Xc*en+2*Eu,Mu=E*Qe,Ou=As(E,Ge),Tu=Fs(Mu),Cu=K*Re+Fs(Mu),yu=O*Ue,Pu=As(O,je),Au=Fs(yu),Bu=et*Ze+Fs(yu),zu=ct*z,Fu=Bs(Ot,c),Yu=Tt*D+hn*g+2*Fs(zu),Vu=_t*Y,Lu=Bs(nn,u),ku=en*Q+_n*x+2*Fs(Vu),$u=ft*F,Xu=Bs(At,s),qu=Bt*G+vn*m+2*Fs($u),Hu=ht*F,Du=Bs($t,s),Qu=Xt*G+bn*m+2*Fs(Hu),Gu=2*(zu+Vu),Ru=Ps(zs(Fu,Lu)),Uu=2*(Yu+ku)+Fs(Gu),ju=$u+Hu,Zu=zs(Xu,Du),Wu=qu+Qu+Fs(ju),Ju=j*V,Ku=Bs(S,f),tf=tt*b+2*Fs(Ju),nf=W*L,ef=Bs(M,l),rf=rt*I+2*Fs(nf),of=xu*y,cf=Bs(bu,e),sf=_u*$+Iu*p+2*Fs(of),uf=Nu*B,ff=Bs(Su,i),lf=wu*H+Eu*v+2*Fs(uf),af=Mu*P,pf=Bs(Ou,r),hf=Cu*X+Tu*h+2*Fs(af),df=yu*A,vf=Bs(Pu,o),gf=Bu*q+Au*d+2*Fs(df),mf=of+uf,xf=zs(cf,ff),bf=sf+lf+Fs(mf),If=af+df,_f=zs(pf,vf),Nf=hf+gf+Fs(If),Sf=mf+If,Ef=zs(xf,_f),wf=bf+Nf+Fs(Sf),Mf=Gu+ju,Of=zs(Ru,Zu),Tf=Uu+Wu+Fs(Mf),Cf=Ju+nf,yf=zs(Ku,ef),Pf=tf+rf+Fs(Cf),Af=Sf+Mf,Bf=zs(Ef,Of),zf=wf+Tf+Fs(Af),Ff=Af+Cf,Yf=zs(Bf,yf),Vf=zf+Pf+Fs(Ff),Lf=E*y,kf=As(E,e),$f=K*p+Fs(Lf),Xf=E*A,qf=As(E,o),Hf=K*d+Fs(Xf),Df=O*P,Qf=As(O,r),Gf=et*h+Fs(Df),Rf=O*B,Uf=As(O,i),jf=et*v+Fs(Rf),Zf=Lf+Df,Wf=zs(kf,Qf),Jf=$f+Gf+Fs(Zf),Kf=Xf+Rf,tl=zs(qf,Uf),nl=Hf+jf+Fs(Kf),el=Zf+z,rl=zs(Wf,c),ol=Jf+g+Fs(el),il=Kf+Y,cl=zs(tl,u),sl=nl+x+Fs(il),ul=it*el,fl=Bs(Mt,rl),ll=pn*ol+2*Fs(ul),al=It*il,pl=Bs(tn,cl),hl=In*sl+2*Fs(al),dl=ut*F,vl=Bs(Pt,s),gl=dn*m+2*Fs(dl),ml=E*V,xl=As(E,f),bl=K*b+Fs(ml),Il=O*L,_l=As(O,l),Nl=et*I+Fs(Il),Sl=ul+al,El=zs(fl,pl),wl=ll+hl+Fs(Sl),Ml=Sl+dl,Ol=zs(El,vl),Tl=wl+gl+Fs(Ml),Cl=ml+Il,yl=zs(xl,_l),Pl=bl+Nl+Fs(Cl),Al=Ml+Cl,Bl=zs(Ol,yl),zl=Tl+Pl+Fs(Al),Fl=Al+k,Yl=zs(Bl,a),Vl=zl+_+Fs(Fl);return{coeffs:[Wn,jr,mi,Pc,gu,Yf,Yl],errBound:[Ys*Jn,Ys*Zr,Ys*xi,Ys*Ac,Ys*mu,Ys*Vf,Ys*Vl]}},function(t,n){const{coeffs:{vₓₓₓ:e,vₓₓᵧ:r,vₓᵧᵧ:o,vᵧᵧᵧ:i,vₓₓ:c,vₓᵧ:s,vᵧᵧ:u,vₓ:f,vᵧ:l,v:a},errorBound:{vₓₓₓ_:p,vₓₓᵧ_:h,vₓᵧᵧ_:d,vᵧᵧᵧ_:v,vₓₓ_:g,vₓᵧ_:m,vᵧᵧ_:x,vₓ_:b,vᵧ_:I,v_:_}}=ls(t),{coeffs:[[N,S,E,[,w]],[M,O,T,[,C]]],errorBound:[[y,P,A],[B,z,F]]}=Cc(n),Y=e[1],V=r[1],L=o[1],k=i[1],$=c[1],X=s[1],q=u[1],H=f[1],D=l[1],Q=a[1],G=tu(Y),R=tu(V),U=tu(L),j=tu(k),Z=tu($),W=tu(X),J=tu(q),K=tu(H),tt=tu(D),nt=(tu(Q),E[1]),et=S[1],rt=N[1],ot=T[1],it=O[1],ct=M[1],st=tu(w),ut=tu(nt),ft=tu(et),lt=tu(rt),at=tu(C),pt=tu(ot),ht=tu(it),dt=tu(ct),vt=w*w,gt=w*nt,mt=w*et,xt=w*rt,bt=w*C,It=w*ot,_t=w*it,Nt=w*ct,St=nt*nt,Et=nt*et,wt=nt*rt,Mt=nt*C,Ot=nt*ot,Tt=nt*it,Ct=nt*ct,yt=et*ot,Pt=et*et,At=et*rt,Bt=et*C,zt=et*it,Ft=et*ct,Yt=rt*rt,Vt=rt*C,Lt=rt*ot,kt=rt*it,$t=rt*ct,Xt=C*C,qt=C*ot,Ht=C*it,Dt=C*ct,Qt=ot*ot,Gt=ot*it,Rt=ct*ct,Ut=it*it,jt=it*ct,Zt=ot*ct,Wt=js(w,w),Jt=Ws(w,E),Kt=st*A+tu(gt),tn=Ws(w,S),nn=st*P+tu(mt),en=Ws(w,N),rn=st*y+tu(xt),on=js(w,C),cn=Ws(w,T),sn=st*F+tu(It),un=Ws(w,O),fn=st*z+tu(_t),ln=Ws(w,M),an=st*B+tu(Nt),pn=Js(E,E),hn=tu(St),dn=2*(A*ut+hn),vn=Js(E,S),gn=A*ft+ut*P+2*tu(Et),mn=Js(E,N),xn=A*lt+ut*y+2*tu(wt),bn=Ws(C,E),In=at*A+tu(Mt),_n=Js(E,T),Nn=A*pt+ut*F+2*tu(Ot),Sn=Js(E,O),En=A*ht+ut*z+2*tu(Tt),wn=Js(E,M),Mn=A*dt+ut*B+2*tu(Ct),On=Js(S,T),Tn=P*pt+ft*F+2*tu(yt),Cn=Js(S,S),yn=tu(Pt),Pn=2*(P*ft+yn),An=Js(S,N),Bn=P*lt+ft*y+2*tu(At),zn=Ws(C,S),Fn=at*P+tu(Bt),Yn=Js(S,O),Vn=P*ht+ft*z+2*tu(zt),Ln=Js(S,M),kn=P*dt+ft*B+2*tu(Ft),$n=Js(N,N),Xn=2*(y*lt+tu(Yt)),qn=Ws(C,N),Hn=at*y+tu(Vt),Dn=Js(N,T),Qn=y*pt+lt*F+2*tu(Lt),Gn=Js(N,O),Rn=tu(kt),Un=y*ht+lt*z+2*Rn,jn=Js(N,M),Zn=y*dt+lt*B+2*tu($t),Wn=js(C,C),Jn=Ws(C,T),Kn=at*F+tu(qt),te=Ws(C,O),ne=at*z+tu(Ht),ee=Ws(C,M),re=at*B+tu(Dt),oe=Js(T,T),ie=tu(Qt),ce=2*(F*pt+ie),se=Js(T,O),ue=F*ht+pt*z+2*tu(Gt),fe=Js(M,M),le=2*(B*dt+tu(Rt)),ae=Js(O,O),pe=tu(Ut),he=2*(z*ht+pe),de=Js(O,M),ve=z*dt+ht*B+2*tu(jt),ge=Js(T,M),me=tu(Zt),xe=F*dt+pt*B+2*me,be=tu(vt),Ie=tu(gt),_e=tu(At),Ne=tu(Yt),Se=tu($t),Ee=tu(bt),we=tu(Xt),Me=tu(qt),Oe=tu(jt),Te=tu(Rt),Ce=rt*Yt,ye=Js(N,$n),Pe=lt*Ne,Ae=y*Ne+lt*Xn+2*Pe,Be=rt*Rt,ze=Js(N,fe),Fe=lt*Te,Ye=y*Te+lt*le+2*Fe,Ve=ct*Yt,Le=Js(M,$n),ke=dt*Ne,$e=B*Ne+dt*Xn+2*ke,Xe=ct*Rt,qe=Js(M,fe),He=dt*Te,De=B*Te+dt*le+2*He,Qe=Ce*Y,Ge=Js(ye,e),Re=Ae*G+Pe*p+2*tu(Qe),Ue=Be*L,je=Js(ze,o),Ze=Ye*U+Fe*d+2*tu(Ue),We=Ve*V,Je=Js(Le,r),Ke=$e*R+ke*h+2*tu(We),tr=Xe*k,nr=Js(qe,i),er=De*j+He*v+2*tu(tr),rr=Qe+Ue,or=Ks(Ge,je),ir=Re+Ze+tu(rr),cr=We+tr,sr=Ks(Je,nr),ur=Ke+er+tu(cr),fr=rr+cr,lr=Ks(or,sr),ar=ir+ur+tu(fr),pr=2*Ft+kt,hr=tu(pr),dr=Ks(Zs(Ln),Gn),vr=2*kn+Un+hr,gr=2*kt+Ft,mr=tu(gr),xr=Ks(Zs(Gn),Ln),br=2*Un+kn+tu(gr),Ir=rt*pr,_r=tu(Ir),Nr=Js(N,dr),Sr=y*hr+lt*vr+2*_r,Er=ct*gr,wr=tu(Er),Mr=Js(M,xr),Or=B*mr+dt*br+2*wr,Tr=et*Yt,Cr=tu(Tr),yr=Js(S,$n),Pr=P*Ne+ft*Xn+2*Cr,Ar=it*Rt,Br=tu(Ar),zr=Js(O,fe),Fr=z*Te+ht*le+2*Br,Yr=Y*Tr,Vr=Js(e,yr),Lr=Pr*G+G*Pr+2*tu(Yr),kr=k*Ar,$r=Js(i,zr),Xr=Fr*j+j*Fr+2*tu(kr),qr=V*Ir,Hr=Js(r,Nr),Dr=Sr*R+R*Sr+2*tu(qr),Qr=L*Er,Gr=Js(o,Mr),Rr=Or*U+U*Or+2*tu(Qr),Ur=qr+Qr,jr=Ks(Hr,Gr),Zr=Dr+Rr+tu(Ur),Wr=3*(Yr+kr),Jr=Ws(3,Ks(Vr,$r)),Kr=3*(Lr+Xr)+2*tu(Wr),to=Ur+Wr,no=Ks(jr,Jr),eo=Zr+Kr+tu(to),ro=nt*$t,oo=Js(E,jn),io=A*Se+ut*Zn+2*tu(ro),co=ot*Yt,so=Js(T,$n),uo=F*Ne+pt*Xn+2*tu(co),fo=et*jt,lo=Js(S,de),ao=P*Oe+ft*ve+2*tu(fo),po=nt*Rt,ho=Js(E,fe),vo=A*Te+ut*le+2*tu(po),go=et*kt,mo=Js(S,Gn),xo=P*Rn+ft*Un+2*tu(go),bo=ct*Pt,Io=Js(M,Cn),_o=B*yn+dt*Pn+2*tu(bo),No=rt*Zt,So=Js(N,ge),Eo=y*me+lt*xe+2*tu(No),wo=it*kt,Mo=Js(O,Gn),Oo=z*Rn+ht*Un+2*tu(wo),To=ro+go,Co=Ks(oo,mo),yo=io+xo+tu(To),Po=co+bo,Ao=Ks(so,Io),Bo=uo+_o+tu(Po),zo=fo+No,Fo=Ks(lo,So),Yo=ao+Eo+tu(zo),Vo=po+wo,Lo=Ks(ho,Mo),ko=vo+Oo+tu(Vo),$o=wt+Pt,Xo=Ks(mn,Cn),qo=tu($o),Ho=xn+Pn+qo,Do=Zt+Ut,Qo=tu(Do),Go=Ks(ge,ae),Ro=xe+he+Qo,Uo=2*To+Po,jo=Ks(Zs(Co),Ao),Zo=tu(Uo),Wo=2*yo+Bo+Zo,Jo=2*zo+Vo,Ko=Ks(Zs(Fo),Lo),ti=tu(Jo),ni=2*Yo+ko+ti,ei=V*Uo,ri=Js(r,jo),oi=h*Zo+R*Wo+2*tu(ei),ii=L*Jo,ci=Js(o,Ko),si=d*ti+U*ni+2*tu(ii),ui=rt*$o,fi=Js(N,Xo),li=tu(ui),ai=y*qo+lt*Ho+2*li,pi=ct*Do,hi=Js(M,Go),di=tu(pi),vi=B*Qo+dt*Ro+2*di,gi=Y*ui,mi=Js(e,fi),xi=p*li+G*ai+2*tu(gi),bi=k*pi,Ii=Js(i,hi),_i=v*di+j*vi+2*tu(bi),Ni=ei+ii,Si=Ks(ri,ci),Ei=oi+si+tu(Ni),wi=3*(gi+bi),Mi=Ws(3,Ks(mi,Ii)),Oi=3*(xi+_i)+2*tu(wi),Ti=Ni+wi,Ci=Ks(Si,Mi),yi=Ei+Oi+tu(Ti),Pi=Ft+kt,Ai=Ks(Ln,Gn),Bi=tu(Pi),zi=kn+Un+Bi,Fi=it*Pt,Yi=Js(O,Cn),Vi=z*yn+ht*Pn+2*tu(Fi),Li=2*nt*Pi,ki=Zs(Js(E,Ai)),$i=2*(A*Bi+ut*zi+2*tu(Li)),Xi=Fi+Li,qi=Ks(Yi,ki),Hi=Vi+$i+tu(Xi),Di=2*(Nt+yt),Qi=Zs(Ks(ln,On)),Gi=2*(an+Tn)+tu(Di),Ri=Di+Vt,Ui=tu(Ri),ji=Ks(Qi,qn),Zi=Gi+Hn+Ui,Wi=rt*Ri,Ji=Js(N,ji),Ki=y*Ui+lt*Zi+2*tu(Wi),tc=Xi+Wi,nc=Ks(qi,Ji),ec=tu(tc),rc=Hi+Ki+ec,oc=et*Ut,ic=Js(S,ae),cc=P*pe+ft*he+2*tu(oc),sc=2*ot*Pi,uc=Zs(Js(T,Ai)),fc=2*(F*Bi+pt*zi+tu(sc)),lc=oc+sc,ac=Ks(ic,uc),pc=cc+fc+tu(lc),hc=2*(Tt+Vt),dc=Zs(Ks(Sn,qn)),vc=2*(En+Hn)+tu(hc),gc=hc+Nt,mc=Ks(dc,ln),xc=tu(gc),bc=vc+an+xc,Ic=ct*gc,_c=Js(M,mc),Nc=B*xc+dt*bc+2*tu(Ic),Sc=lc+Ic,Ec=Ks(ac,_c),wc=tu(Sc),Mc=pc+Nc+wc,Oc=et*Pt,Tc=Js(S,Cn),yc=P*yn+ft*Pn+2*tu(Oc),Pc=2*Et+xt,Ac=Ks(Zs(vn),en),Bc=tu(Pc),zc=2*gn+rn+Bc,Fc=3*rt,Yc=Ws(3,N),Vc=tu(Fc),Lc=3*y+Vc,kc=Fc*Pc,$c=Js(Yc,Ac),Xc=Lc*Bc+Vc*zc+2*tu(kc),qc=Oc+kc,Hc=Ks(Tc,$c),Dc=tu(qc),Qc=yc+Xc+Dc,Gc=it*Ut,Rc=Js(O,ae),Uc=z*pe+ht*he+2*tu(Gc),jc=2*Gt+Dt,Zc=Ks(Zs(se),ee),Wc=tu(jc),Jc=2*ue+re+Wc,Kc=3*ct,ts=Ws(3,M),ns=tu(Kc),es=3*B+ns,rs=Kc*jc,os=Js(ts,Zc),is=es*Wc+ns*Jc+2*tu(rs),cs=Gc+rs,ss=Ks(Rc,os),us=tu(cs),fs=Uc+is+us,as=V*tc,ps=Js(r,nc),hs=h*ec+R*rc+2*tu(as),ds=L*Sc,vs=Js(o,Ec),gs=d*wc+U*Mc+2*tu(ds),ms=as+ds,xs=Ks(ps,vs),bs=hs+gs+tu(ms),Is=Y*qc,_s=Js(e,Hc),Ns=p*Dc+G*Qc+2*tu(Is),Ss=k*cs,Es=Js(i,ss),ws=v*us+j*fs+2*tu(Ss),Ms=Is+Ss,Os=Ks(_s,Es),Ts=Ns+ws+tu(Ms),Cs=$*Yt,ys=Js($n,c),Ps=Xn*Z+Ne*g+2*tu(Cs),As=q*Rt,Bs=Js(fe,u),zs=le*J+Te*x+2*tu(As),Fs=Cs+As,Ys=Ks(ys,Bs),Vs=Ps+zs+tu(Fs),Ls=X*$t,ks=Js(jn,s),$s=Zn*W+Se*m+2*tu(Ls),Xs=ms+Ms,qs=Ks(xs,Os),Hs=bs+Ts+tu(Xs),Ds=Fs+Ls,Qs=Ks(Ys,ks),Gs=Vs+$s+tu(Ds),Rs=Xs+Ds,Us=Ks(qs,Qs),eu=Hs+Gs+tu(Rs),ru=zt+Lt,ou=Ks(Yn,Dn),iu=tu(ru),cu=Vn+Qn+iu,su=Ct+zt,uu=Ks(wn,Yn),fu=tu(su),lu=Mn+Vn+fu,au=w*Pi,pu=Ws(w,Ai),hu=st*zi+tu(au),du=C*Pi,vu=Ws(C,Ai),gu=at*zi+tu(du),mu=nt*ru,xu=Js(E,ou),bu=A*iu+ut*cu+2*tu(mu),Iu=ot*su,_u=Js(T,uu),Nu=F*fu+pt*lu+2*tu(Iu),Su=2*Vt+yt,Eu=Ks(Zs(qn),On),wu=tu(Su),Mu=2*Hn+Tn+wu,Ou=2*Nt+Tt,Tu=Ks(Zs(ln),Sn),Cu=tu(Ou),yu=2*an+En+Cu,Pu=ct*St,Au=Js(M,pn),Bu=B*hn+dt*dn+2*tu(Pu),zu=rt*Qt,Fu=Js(N,oe),Yu=y*ie+lt*ce+2*tu(zu),Vu=et*Su,Lu=Js(S,Eu),ku=P*wu+ft*Mu+2*tu(Vu),$u=it*Ou,Xu=Js(O,Tu),qu=z*Cu+ht*yu+2*tu($u),Hu=2*(au+mu),Du=Zs(Ks(pu,xu)),Qu=2*(hu+bu)+tu(Hu),Gu=2*(du+Iu),Ru=Zs(Ks(vu,_u)),Uu=2*(gu+Nu)+tu(Gu),ju=2*w*At,Zu=Zs(Ws(w,An)),Wu=2*st*Bn+tu(ju),Ju=2*C*jt,Ku=Zs(Ws(C,de)),tf=2*at*ve+tu(Ju),nf=nt*$o,ef=Js(E,Xo),rf=A*qo+ut*Ho+2*tu(nf),of=ot*Do,cf=Js(T,Go),sf=F*Qo+pt*Ro+2*tu(of),uf=$*At,ff=Js(An,c),lf=Bn*Z+_e*g+2*tu(uf),af=q*jt,pf=Js(de,u),hf=ve*J+Oe*x+2*tu(af),df=Hu+Pu,vf=Ks(Du,Au),gf=tu(df),mf=Qu+Bu+gf,xf=Gu+zu,bf=Ks(Ru,Fu),If=tu(xf),_f=Uu+Yu+If,Nf=df+Vu,Sf=Ks(vf,Lu),Ef=tu(Nf),wf=mf+ku+Ef,Mf=xf+$u,Of=Ks(bf,Xu),Tf=tu(Mf),Cf=_f+qu+Tf,yf=ju+nf,Pf=Ks(Zu,ef),Af=tu(yf),Bf=Wu+rf+Af,zf=Ju+of,Ff=Ks(Ku,cf),Yf=tu(zf),Vf=tf+sf+Yf,Lf=2*(uf+af),kf=Zs(Ks(ff,pf)),$f=2*(lf+hf)+tu(Lf),Xf=V*Nf,qf=Js(r,Sf),Hf=h*Ef+R*wf+2*tu(Xf),Df=L*Mf,Qf=Js(o,Of),Gf=d*Tf+U*Cf+2*tu(Df),Rf=Y*yf,Uf=Js(e,Pf),jf=p*Af+G*Bf+2*tu(Rf),Zf=k*zf,Wf=Js(i,Ff),Jf=v*Yf+j*Vf+2*tu(Zf),Kf=Xf+Df,tl=Ks(qf,Qf),nl=Hf+Gf+tu(Kf),el=3*(Rf+Zf),rl=Ws(3,Ks(Uf,Wf)),ol=3*(jf+Jf)+2*tu(el),il=X*Pi,cl=Js(s,Ai),sl=m*Bi+W*zi+2*tu(il),ul=Kf+el,fl=Ks(tl,rl),ll=nl+ol+tu(ul),al=il+Lf,pl=Ks(cl,kf),hl=sl+$f+tu(al),dl=ul+al,vl=Ks(fl,pl),gl=ll+hl+tu(dl),ml=Ct+ru,xl=Ks(wn,ou),bl=tu(ml),Il=Mn+cu+bl,_l=2*wt+Pt,Nl=Ks(Zs(mn),Cn),Sl=tu(_l),El=2*xn+Pn+Sl,wl=2*Zt+Ut,Ml=Ks(Zs(ge),ae),Ol=tu(wl),Tl=2*xe+he+Ol,Cl=2*w*ml,yl=Ws(2*w,xl),Pl=2*st*Il+tu(Cl),Al=2*C*ml,Bl=Ws(2*C,xl),zl=2*at*Il+tu(Al),Fl=Tt+2*yt,Yl=Ks(Sn,Zs(On)),Vl=tu(Fl),Ll=En+2*Tn+Vl,kl=yt+2*Tt,$l=Ks(On,Zs(Sn)),Xl=tu(kl),ql=Tn+2*En+Xl,Hl=C*_l,Dl=Ws(C,Nl),Ql=at*El+tu(Hl),Gl=w*wl,Rl=Ws(w,Ml),Ul=st*Tl+tu(Gl),jl=nt*Fl,Zl=Js(E,Yl),Wl=A*Vl+ut*Ll+2*tu(jl),Jl=ot*kl,Kl=Js(T,$l),ta=F*Xl+pt*ql+2*tu(Jl),na=w*_l,ea=Ws(w,Nl),ra=st*El+tu(na),oa=C*wl,ia=Ws(C,Ml),ca=at*Tl+tu(oa),sa=et*St,ua=Js(S,pn),fa=P*hn+ft*dn+2*tu(sa),la=it*Qt,aa=Js(O,oe),pa=z*ie+ht*ce+2*tu(la),ha=Cl+Hl,da=Ks(yl,Dl),va=Pl+Ql+tu(ha),ga=Al+Gl,ma=Ks(Bl,Rl),xa=zl+Ul+tu(ga),ba=ha+jl,Ia=Ks(da,Zl),_a=tu(ba),Na=va+Wl+_a,Sa=ga+Jl,Ea=Ks(ma,Kl),wa=tu(Sa),Ma=xa+ta+wa,Oa=na+sa,Ta=Ks(ea,ua),Ca=tu(Oa),ya=ra+fa+Ca,Pa=oa+la,Aa=Ks(ia,aa),Ba=tu(Pa),za=ca+pa+Ba,Fa=V*ba,Ya=Js(r,Ia),Va=h*_a+R*Na+2*tu(Fa),La=L*Sa,ka=Js(o,Ea),$a=d*wa+U*Ma+2*tu(La),Xa=Y*Oa,qa=Js(e,Ta),Ha=p*Ca+G*ya+2*tu(Xa),Da=k*Pa,Qa=Js(i,Aa),Ga=v*Ba+j*za+2*tu(Da),Ra=Xa+Da,Ua=tu(Ra),ja=Ks(qa,Qa),Za=Ha+Ga+Ua,Wa=Fa+La,Ja=Ks(Ya,ka),Ka=Va+$a+tu(Wa),tp=Wa+3*Ra,np=Ks(Ja,Ws(3,ja)),ep=Ka+3*(Za+Ua)+tu(tp),rp=X*ml,op=Js(s,xl),ip=m*bl+W*Il+2*tu(rp),cp=$*_l,sp=Js(c,Nl),up=g*Sl+Z*El+2*tu(cp),fp=rp+cp,lp=Ks(op,sp),ap=ip+up+tu(fp),pp=q*wl,hp=Js(u,Ml),dp=x*Ol+J*Tl+2*tu(pp),vp=fp+pp,gp=Ks(lp,hp),mp=ap+dp+tu(vp),xp=tp+vp,bp=Ks(np,gp),Ip=ep+mp+tu(xp),_p=Tt+yt,Np=Ks(Sn,On),Sp=En+Tn+tu(_p),Ep=Vt+Nt,wp=Ks(qn,ln),Mp=Hn+an+tu(Ep),Op=Et+xt,Tp=Ks(vn,en),Cp=gn+rn+tu(Op),yp=tu(Op),Pp=Gt+Dt,Ap=Ks(se,ee),Bp=ue+re+tu(Pp),zp=tu(Pp),Fp=2*_p+Vt,Yp=Ks(Zs(Np),qn),Vp=2*Sp+Hn+tu(Fp),Lp=2*_p+Nt,kp=Ks(Zs(Np),ln),$p=2*Sp+an+tu(Lp),Xp=2*Bt+Ot,qp=Ks(Zs(zn),_n),Hp=tu(Xp),Dp=2*Fn+Nn+Hp,Qp=2*_t+Ot,Gp=Ks(Zs(un),_n),Rp=tu(Qp),Up=2*fn+Nn+Rp,jp=Op+Et,Zp=Ks(Tp,vn),Wp=Cp+gn+tu(jp),Jp=Pp+Gt,Kp=Ks(Ap,se),th=Bp+ue+tu(Jp),nh=3*w,eh=js(3,w),rh=nh*jp,oh=Js(eh,Zp),ih=tu(nh)*Wp+2*tu(rh),ch=3*C,sh=js(3,C),uh=ch*Jp,fh=Js(sh,Kp),lh=tu(ch)*th+2*tu(uh),ah=nt*St,ph=Js(E,pn),hh=A*hn+ut*dn+2*tu(ah),dh=ot*Qt,vh=Js(T,oe),gh=F*ie+pt*ce+2*tu(dh),mh=$*Op,xh=Js(c,Tp),bh=g*yp+Z*Cp+tu(mh),Ih=q*Pp,_h=Js(u,Ap),Nh=x*zp+J*Bp+tu(Ih),Sh=Fp+Ep,Eh=Ks(Yp,wp),wh=Vp+Mp+tu(Sh),Mh=Lp+Ep,Oh=Ks(kp,wp),Th=$p+Mp+tu(Mh),Ch=w*Sh,yh=Ws(w,Eh),Ph=st*wh+tu(Ch),Ah=C*Mh,Bh=Ws(C,Oh),zh=at*Th+tu(Ah),Fh=nt*Xp,Yh=Js(E,qp),Vh=A*Hp+ut*Dp+2*tu(Fh),Lh=ot*Qp,kh=Js(T,Gp),$h=F*Rp+pt*Up+2*tu(Lh),Xh=rt*H,qh=Js(N,f),Hh=y*K+lt*b+2*tu(Xh),Dh=ct*D,Qh=Js(M,l),Gh=B*tt+dt*I+2*tu(Dh),Rh=Ch+Fh,Uh=Ks(yh,Yh),jh=tu(Rh),Zh=Ph+Vh+jh,Wh=Ah+Lh,Jh=Ks(Bh,kh),Kh=tu(Wh),td=zh+$h+Kh,nd=rh+ah,ed=Ks(oh,ph),rd=tu(nd),od=ih+hh+rd,id=uh+dh,cd=Ks(fh,vh),sd=tu(id),ud=lh+gh+sd,fd=Ep+_p,ld=Ks(wp,Np),ad=tu(fd),pd=Mp+Sp+ad,hd=2*(mh+Ih),dd=Zs(Ks(xh,_h)),vd=2*(bh+Nh)+tu(hd),gd=V*Rh,md=Js(r,Uh),xd=h*jh+R*Zh+2*tu(gd),bd=L*Wh,Id=Js(o,Jh),_d=d*Kh+U*td+2*tu(bd),Nd=Y*nd,Sd=Js(e,ed),Ed=p*rd+G*od+2*tu(Nd),wd=k*id,Md=Js(i,cd),Od=v*sd+j*ud+2*tu(wd),Td=X*fd,Cd=Js(s,ld),yd=m*ad+W*pd+2*tu(Td),Pd=gd+bd,Ad=Ks(md,Id),Bd=xd+_d+tu(Pd),zd=Nd+wd,Fd=Ks(Sd,Md),Yd=Ed+Od+tu(zd),Vd=Td+hd,Ld=Ks(Cd,dd),kd=yd+vd+tu(Vd),$d=Xh+Dh,Xd=Ks(qh,Qh),qd=Hh+Gh+tu($d),Hd=Pd+zd,Dd=Ks(Ad,Fd),Qd=Bd+Yd+tu(Hd),Gd=Vd+$d,Rd=Ks(Ld,Xd),Ud=kd+qd+tu(Gd),jd=Hd+Gd,Zd=Ks(Dd,Rd),Wd=Qd+Ud+tu(jd),Jd=Ot+Bt,Kd=Ks(_n,zn),tv=Nn+Fn+tu(Jd),nv=Ot+_t,ev=Ks(_n,un),rv=Nn+fn+tu(nv),ov=2*Jd+_t,iv=Ks(Zs(Kd),un),cv=2*tv+fn+tu(ov),sv=2*nv+Bt,uv=Ks(Zs(ev),zn),fv=2*rv+Fn+tu(sv),lv=w*ov,av=Ws(w,iv),pv=st*cv+tu(lv),hv=C*St,dv=Ws(C,pn),vv=at*dn+tu(hv),gv=C*sv,mv=Ws(C,uv),xv=at*fv+tu(gv),bv=w*Qt,Iv=Ws(w,oe),_v=st*ce+tu(bv),Nv=w*St,Sv=Ws(w,pn),Ev=st*dn+tu(Nv),wv=et*vt,Mv=Js(S,Wt),Ov=P*be+2*tu(wv),Tv=C*Qt,Cv=Ws(C,oe),yv=at*ce+tu(Tv),Pv=it*Xt,Av=Js(O,Wn),Bv=z*we+2*tu(Pv),zv=lv+hv,Fv=Ks(av,dv),Yv=pv+vv+tu(zv),Vv=pv+vv+Yv,Lv=gv+bv,kv=Ks(mv,Iv),$v=xv+_v+tu(Lv),Xv=xv+_v+$v,qv=Nv+wv,Hv=Ks(Sv,Mv),Dv=tu(qv),Qv=Ev+Ov+Dv,Gv=Tv+Pv,Rv=Ks(Cv,Av),Uv=tu(Gv),jv=yv+Bv+Uv,Zv=Y*qv,Wv=Js(e,Hv),Jv=p*Dv+G*Qv+2*tu(Zv),Kv=k*Gv,tg=Js(i,Rv),ng=v*Uv+j*jv+2*tu(Kv),eg=3*(Zv+Kv),rg=Ws(3,Ks(Wv,tg)),og=3*(Jv+ng)+2*tu(eg),ig=Jd+_t,cg=Ks(Kd,un),sg=tu(ig),ug=tv+fn+sg,fg=2*mt+St,lg=Ks(Zs(tn),pn),ag=tu(fg),pg=2*nn+dn+ag,hg=2*Ht+Qt,dg=Ks(Zs(te),oe),vg=tu(hg),gg=2*ne+ce+vg,mg=V*zv,xg=Js(r,Fv),bg=h*Yv+R*Vv+2*tu(mg),Ig=L*Lv,_g=Js(o,kv),Ng=d*$v+U*Xv+2*tu(Ig),Sg=X*ig,Eg=Js(s,cg),wg=m*sg+W*ug+2*tu(Sg),Mg=$*fg,Og=Js(c,lg),Tg=g*ag+Z*pg+2*tu(Mg),Cg=q*hg,yg=Js(u,dg),Pg=x*vg+J*gg+2*tu(Cg),Ag=et*H,Bg=Js(S,f),zg=P*K+ft*b+tu(Ag),Fg=it*D,Yg=Js(O,l),Vg=z*tt+ht*I+tu(Fg),Lg=Ag+Fg,kg=Ks(Bg,Yg),$g=zg+Vg+tu(Lg),Xg=mg+Ig,qg=Ks(xg,_g),Hg=bg+Ng+tu(Xg),Dg=eg+Sg,Qg=Ks(rg,Eg),Gg=og+wg+tu(Dg),Rg=Mg+Cg,Ug=Ks(Og,yg),jg=Tg+Pg+tu(Rg),Zg=Xg+Dg,Wg=Ks(qg,Qg),Jg=Hg+Gg+tu(Zg),Kg=Rg+Lg,tm=Ks(Ug,kg),nm=jg+$g+tu(Kg),em=Zg+Kg,rm=Ks(Wg,tm),om=Jg+nm+tu(em),im=Mt+It,cm=Ks(bn,cn),sm=tu(im),um=In+sn+sm,fm=w*V,lm=Ws(w,r),am=tu(fm),pm=st*h+am,hm=C*L,dm=Ws(C,o),vm=tu(hm),gm=at*d+vm,mm=im+Mt,xm=Ks(cm,bn),bm=tu(mm),Im=um+In+bm,_m=im+It,Nm=Ks(cm,cn),Sm=tu(_m),Em=um+sn+Sm,wm=nt*vt,Mm=Js(E,Wt),Om=tu(wm),Tm=A*be+2*Om,Cm=wm*Y,ym=Js(Mm,e),Pm=Tm*G+Om*p+2*tu(Cm),Am=ot*Xt,Bm=Js(T,Wn),zm=tu(Am),Fm=F*we+2*zm,Ym=Am*k,Vm=Js(Bm,i),Lm=Fm*j+zm*v+2*tu(Ym),km=X*im,$m=Js(s,cm),Xm=m*sm+W*um+2*tu(km),qm=gt*$,Hm=Js(Jt,c),Dm=Kt*Z+Ie*g+2*tu(qm),Qm=qt*q,Gm=Js(Jn,u),Rm=Kn*J+Me*x+2*tu(Qm),Um=qm+Qm,jm=Ks(Hm,Gm),Zm=Dm+Rm+tu(Um),Wm=nt*H,Jm=Js(E,f),Km=A*K+ut*b+tu(Wm),tx=ot*D,nx=Js(T,l),ex=F*tt+pt*I+tu(tx),rx=Wm+tx,ox=Ks(Jm,nx),ix=Km+ex+tu(rx),cx=fm*mm,sx=Js(lm,xm),ux=pm*bm+am*Im+2*tu(cx),fx=hm*_m,lx=Js(dm,Nm),ax=gm*Sm+vm*Em+2*tu(fx),px=cx+fx,hx=Ks(sx,lx),dx=ux+ax+tu(px),vx=3*(Cm+Ym),gx=Ws(3,Ks(ym,Vm)),mx=3*(Pm+Lm)+2*tu(vx),xx=km+2*Um,bx=Ks($m,Zs(jm)),Ix=Xm+2*Zm+tu(xx),_x=px+vx,Nx=Ks(hx,gx),Sx=dx+mx+tu(_x),Ex=xx+rx,wx=Ks(bx,ox),Mx=Ix+ix+tu(Ex),Ox=_x+Ex,Tx=Ks(Nx,wx),Cx=Sx+Mx+tu(Ox),yx=w*Y,Px=Ws(w,e),Ax=st*p+tu(yx),Bx=C*V,zx=Ws(C,r),Fx=at*h+tu(Bx),Yx=yx+Bx,Vx=Ks(Px,zx),Lx=Ax+Fx+tu(Yx),kx=w*L,$x=Ws(w,o),Xx=st*d+tu(kx),qx=C*k,Hx=Ws(C,i),Dx=at*v+tu(qx),Qx=kx+qx,Gx=Ks($x,Hx),Rx=Xx+Dx+tu(Qx),Ux=Yx+$,jx=Ks(Vx,c),Zx=Lx+g+tu(Ux),Wx=Qx+q,Jx=Ks(Gx,u),Kx=Rx+x+tu(Wx),tb=vt*Ux,nb=Js(Wt,jx),eb=be*Zx+2*tu(tb),rb=Xt*Wx,ob=Js(Wn,Jx),ib=we*Kx+2*tu(rb),cb=tb+rb,sb=Ks(nb,ob),ub=eb+ib+tu(cb),fb=bt*X,lb=Js(on,s),ab=Ee*m+tu(fb),pb=cb+fb,hb=Ks(sb,lb),db=ub+ab+tu(pb),vb=w*H,gb=Ws(w,f),mb=st*b+tu(vb),xb=C*D,bb=Ws(C,l),Ib=at*I+tu(xb),_b=vb+xb,Nb=Ks(gb,bb),Sb=mb+Ib+tu(_b),Eb=pb+_b,wb=Ks(hb,Nb),Mb=db+Sb+tu(Eb),Ob=Eb+Q,Tb=Ks(wb,a),Cb=Mb+_+tu(Ob);return{coeffs:[lr,no,Ci,Us,vl,bp,Zd,rm,Tx,Tb],errBound:[nu*ar,nu*eo,nu*yi,nu*eu,nu*gl,nu*Ip,nu*Wd,nu*om,nu*Cx,nu*Cb]}}]],Af=[[lu,Wu,mf],[Su,of,Ef],[Gu,pf,function(t,n){const e=Bt(t);if(0===yf(e[0][0])&&0===yf(e[1][0]))return Ef(Pu(t),n);const[[r,o,i,[c]],[s,u,f,[l]]]=Bt(n);if(0===yf(r)&&0===yf(s))return pf(t,Pu(n));const{vₓₓₓ:a,vₓₓᵧ:p,vₓᵧᵧ:h,vᵧᵧᵧ:d,vₓₓ:v,vₓᵧ:g,vᵧᵧ:m,vₓ:x,vᵧ:b,v:I}=ku(e),_=wf(c,c),N=Mf(c,i),S=Mf(c,o),E=Mf(c,r),w=wf(c,l),M=Mf(c,f),O=Mf(c,u),T=Mf(c,s),C=Of(i,i),y=Of(i,o),P=Of(i,r),A=Mf(l,i),B=Of(i,f),z=Of(i,u),F=Of(i,s),Y=Of(o,f),V=Of(o,o),L=Of(o,r),k=Mf(l,o),$=Of(o,u),X=Of(o,s),q=Of(r,r),H=Mf(l,r),D=Of(r,f),Q=Of(r,u),G=Of(r,s),R=wf(l,l),U=Mf(l,f),j=Mf(l,u),Z=Mf(l,s),W=Of(f,f),J=Of(f,u),K=Of(s,s),tt=Of(u,u),nt=Of(u,s),et=Of(f,s),rt=Of(r,q),ot=Of(r,K),it=Of(s,q),ct=Of(s,K),st=Of(rt,a),ut=Of(ot,h),ft=Of(it,p),lt=Of(ct,d),at=Tf(st,ut),pt=Tf(ft,lt),ht=Tf(at,pt),dt=Tf(Cf(X),Q),vt=Tf(Cf(Q),X),gt=Of(r,dt),mt=Of(s,vt),xt=Of(o,q),bt=Of(u,K),It=Of(a,xt),_t=Of(d,bt),Nt=Of(p,gt),St=Of(h,mt),Et=Tf(Nt,St),wt=Mf(3,Tf(It,_t)),Mt=Tf(Et,wt),Ot=Of(i,G),Tt=Of(f,q),Ct=Of(o,nt),yt=Of(i,K),Pt=Of(o,Q),At=Of(s,V),zt=Of(r,et),Ft=Of(u,Q),Yt=Tf(Ot,Pt),Vt=Tf(Tt,At),Lt=Tf(Ct,zt),kt=Tf(yt,Ft),$t=Tf(P,V),Xt=Tf(et,tt),qt=Tf(Cf(Yt),Vt),Ht=Tf(Cf(Lt),kt),Dt=Of(p,qt),Qt=Of(h,Ht),Gt=Of(r,$t),Rt=Of(s,Xt),Ut=Of(a,Gt),jt=Of(d,Rt),Zt=Tf(Dt,Qt),Wt=Mf(3,Tf(Ut,jt)),Jt=Tf(Zt,Wt),Kt=Tf(X,Q),tn=Of(u,V),nn=Cf(Of(i,Kt)),en=Tf(tn,nn),rn=Cf(Tf(T,Y)),on=Tf(rn,H),cn=Of(r,on),sn=Tf(en,cn),un=Of(o,tt),fn=Cf(Of(f,Kt)),ln=Tf(un,fn),an=Cf(Tf(z,H)),pn=Tf(an,T),hn=Of(s,pn),dn=Tf(ln,hn),vn=Of(o,V),gn=Tf(Cf(y),E),mn=Of(Mf(3,r),gn),xn=Tf(vn,mn),bn=Of(u,tt),In=Tf(Cf(J),Z),_n=Of(Mf(3,s),In),Nn=Tf(bn,_n),Sn=Of(p,sn),En=Of(h,dn),wn=Tf(Sn,En),Mn=Of(a,xn),On=Of(d,Nn),Tn=Tf(Mn,On),Cn=Of(q,v),yn=Of(K,m),Pn=Tf(Cn,yn),An=Of(G,g),Bn=Tf(wn,Tn),zn=Tf(Pn,An),Fn=Tf(Bn,zn),Yn=Tf($,D),Vn=Tf(F,$),Ln=Mf(c,Kt),kn=Mf(l,Kt),$n=Of(i,Yn),Xn=Of(f,Vn),qn=Tf(Cf(H),Y),Hn=Tf(Cf(T),z),Dn=Of(s,C),Qn=Of(r,W),Gn=Of(o,qn),Rn=Of(u,Hn),Un=Cf(Tf(Ln,$n)),jn=Cf(Tf(kn,Xn)),Zn=Cf(Mf(c,L)),Wn=Cf(Mf(l,nt)),Jn=Of(i,$t),Kn=Of(f,Xt),te=Of(L,v),ne=Of(nt,m),ee=Tf(Un,Dn),re=Tf(jn,Qn),oe=Tf(ee,Gn),ie=Tf(re,Rn),ce=Tf(Zn,Jn),se=Tf(Wn,Kn),ue=Cf(Tf(te,ne)),fe=Of(p,oe),le=Of(h,ie),ae=Of(a,ce),pe=Of(d,se),he=Tf(fe,le),de=Mf(3,Tf(ae,pe)),ve=Of(g,Kt),ge=Tf(he,de),me=Tf(ve,ue),xe=Tf(ge,me),be=Tf(F,Yn),Ie=Tf(Cf(P),V),_e=Tf(Cf(et),tt),Ne=Mf(2*c,be),Se=Mf(2*l,be),Ee=Tf(z,Cf(Y)),we=Tf(Y,Cf(z)),Me=Mf(l,Ie),Oe=Mf(c,_e),Te=Of(i,Ee),Ce=Of(f,we),ye=Mf(c,Ie),Pe=Mf(l,_e),Ae=Of(o,C),Be=Of(u,W),ze=Tf(Ne,Me),Fe=Tf(Se,Oe),Ye=Tf(ze,Te),Ve=Tf(Fe,Ce),Le=Tf(ye,Ae),ke=Tf(Pe,Be),$e=Of(p,Ye),Xe=Of(h,Ve),qe=Of(a,Le),He=Of(d,ke),De=Tf(qe,He),Qe=Tf($e,Xe),Ge=Tf(Qe,Mf(3,De)),Re=Of(g,be),Ue=Of(v,Ie),je=Tf(Re,Ue),Ze=Of(m,_e),We=Tf(je,Ze),Je=Tf(Ge,We),Ke=Tf(z,Y),tr=Tf(H,T),nr=Tf(y,E),er=Tf(J,Z),rr=Tf(Cf(Ke),H),or=Tf(Cf(Ke),T),ir=Tf(Cf(k),B),cr=Tf(Cf(O),B),sr=Tf(nr,y),ur=Tf(er,J),fr=Of(wf(3,c),sr),lr=Of(wf(3,l),ur),ar=Of(i,C),pr=Of(f,W),hr=Of(v,nr),dr=Of(m,er),vr=Tf(rr,tr),gr=Tf(or,tr),mr=Mf(c,vr),xr=Mf(l,gr),br=Of(i,ir),Ir=Of(f,cr),_r=Of(r,x),Nr=Of(s,b),Sr=Tf(mr,br),Er=Tf(xr,Ir),wr=Tf(fr,ar),Mr=Tf(lr,pr),Or=Tf(tr,Ke),Tr=Cf(Tf(hr,dr)),Cr=Of(p,Sr),yr=Of(h,Er),Pr=Of(a,wr),Ar=Of(d,Mr),Br=Of(g,Or),zr=Tf(Cr,yr),Fr=Tf(Pr,Ar),Yr=Tf(Br,Tr),Vr=Tf(_r,Nr),Lr=Tf(zr,Fr),kr=Tf(Yr,Vr),$r=Tf(Lr,kr),Xr=Tf(B,k),qr=Tf(B,O),Hr=Tf(Cf(Xr),O),Dr=Tf(Cf(qr),k),Qr=Mf(c,Hr),Gr=Mf(l,C),Rr=Mf(l,Dr),Ur=Mf(c,W),jr=Mf(c,C),Zr=Of(o,_),Wr=Mf(l,W),Jr=Of(u,R),Kr=Tf(Qr,Gr),to=Tf(Rr,Ur),no=Tf(jr,Zr),eo=Tf(Wr,Jr),ro=Of(a,no),oo=Of(d,eo),io=Mf(3,Tf(ro,oo)),co=Tf(Xr,O),so=Tf(Cf(S),C),uo=Tf(Cf(j),W),fo=Of(p,Kr),lo=Of(h,to),ao=Of(g,co),po=Of(v,so),ho=Of(m,uo),vo=Of(o,x),go=Of(u,b),mo=Tf(vo,go),xo=Tf(fo,lo),bo=Tf(io,ao),Io=Tf(po,ho),_o=Tf(xo,bo),No=Tf(Io,mo),So=Tf(_o,No),Eo=Tf(A,M),wo=Mf(c,p),Mo=Mf(l,h),Oo=Tf(Eo,A),To=Tf(Eo,M),Co=Of(i,_),yo=Of(Co,a),Po=Of(f,R),Ao=Of(Po,d),Bo=Of(g,Eo),zo=Of(N,v),Fo=Of(U,m),Yo=Tf(zo,Fo),Vo=Of(i,x),Lo=Of(f,b),ko=Tf(Vo,Lo),$o=Of(wo,Oo),Xo=Of(Mo,To),qo=Tf($o,Xo),Ho=Mf(3,Tf(yo,Ao)),Do=Tf(Bo,Cf(Yo)),Qo=Tf(qo,Ho),Go=Tf(Do,ko),Ro=Tf(Qo,Go),Uo=Mf(c,a),jo=Mf(l,p),Zo=Tf(Uo,jo),Wo=Mf(c,h),Jo=Mf(l,d),Ko=Tf(Wo,Jo),ti=Tf(Zo,v),ni=Tf(Ko,m),ei=Of(_,ti),ri=Of(R,ni),oi=Tf(ei,ri),ii=Of(w,g),ci=Tf(oi,ii),si=Mf(c,x),ui=Mf(l,b),fi=Tf(si,ui),li=Tf(ci,fi);return[ht,Mt,Jt,Fn,xe,Je,$r,So,Ro,Tf(li,I)]}]];function Bf(t,n){const{coeffs:e,errBound:r}=Pf[t.length-2][n.length-2](t,n);return{coeffs:e,errBound:r,getPExact:()=>Af[t.length-2][n.length-2](t,n)}}const zf=134217729;function Ff(t,n){const e=t[0],r=t[1],o=n[0],i=n[1],c=r/i,s=i*c,u=zf*i,f=u-(u-i),l=i-f,a=zf*c,p=a-(a-c),h=c-p,d=o*c,v=s+d,g=d-(v-s)+(l*h-(s-f*p-l*p-f*h)),m=v+g,x=(r-m+(e-(g-(m-v))))/i,b=c+x;return[x-(b-c),b]}const Yf=Ff,Vf=Number.EPSILON/2,Lf=Vf*Vf,kf=b,$f=b,Xf=b,qf=ur,Hf=sr,Df=Ir,Qf=x,Gf=Co,Rf=Number.EPSILON/2,Uf=Rf*Rf,jf=Math.abs,Zf=Xf,Wf=[0,1],Jf=qf,Kf=Qf,tl=Hf,nl=Df,el=Gf,rl=function(t,n,e,r){const o=t[0],i=t[1],c=n[0],s=n[1],u=Yf(t,n),f=Math.abs(o+i),l=Math.abs(c+s),a=l-Vf*l-r;return a<=0?{est:u,err:Number.POSITIVE_INFINITY}:{est:u,err:(l*e+f*r)/a**2+9*Lf*Math.abs(f/l)}},ol=function(t,n){return kf(t,n)[1]>0?n:t},il=function(t,n){return $f(t,n)[1]>0?t:n},cl=Z(3);function sl(t,n){return n[0][0]!==n[1][0]||n[0][1]!==n[1][1]?4===t.length?function([[t,n],[e,r],[o,i],[c,s]],[u,f]){const l=Zf(f,u),a=3*Uf*jf(l[1]),p=Zf(Wf,u),h=3*Uf*jf(p[1]),d=rl(l,p,a,h);f=Jf(d.est,d.err);const v=Zf(Wf,u),g=tl(u,u),m=tl(u,v),x=tl(v,v),b=tl(g,u),I=tl(g,v),_=tl(x,u),N=tl(x,v),S=Zf(Wf,f),E=tl(f,f),w=tl(f,S),M=tl(S,S),O=tl(E,f),T=tl(E,S),C=tl(M,f),y=tl(M,S),P=jf(u[1]),A=jf(v[1]),B=jf(g[1]),z=jf(m[1]),F=jf(x[1]),Y=jf(b[1]),V=jf(I[1]),L=jf(_[1]),k=jf(N[1]),$=jf(f[1]),X=jf(S[1]),q=jf(E[1]),H=jf(w[1]),D=jf(M[1]),Q=jf(O[1]),G=jf(T[1]),R=jf(C[1]),U=jf(y[1]);let j=jf(t),Z=jf(n),W=jf(e),J=jf(r),K=jf(o),tt=jf(i),nt=jf(c),et=jf(s);const rt=Kf(nl(c,u),nl(o,v)),ot=Kf(Kf(nl(c,g),nl(2*o,m)),nl(e,x)),it=Kf(Kf(nl(c,b),nl(t,N)),nl(3,Kf(nl(o,I),nl(e,_)))),ct=Kf(tl(ot,f),tl(it,S)),st=Kf(Kf(tl(rt,E),tl(it,M)),tl(el(ot),w)),ut=Kf(Kf(nl(c,O),tl(it,y)),nl(3,Kf(tl(rt,T),tl(ot,C)))),ft=jf(it[1]),lt=nt*P+K*A,at=nt*B+2*K*z+W*F;j=nt*Y+j*k+3*(K*V+W*L),W=at*$+ft*X,K=lt*q+ft*D+2*at*H,nt=nt*Q+ft*U+3*(lt*G+at*R),j*=11*Uf,W*=15*Uf,K*=20*Uf,nt*=22*Uf;const pt=Kf(nl(s,u),nl(i,v)),ht=Kf(Kf(nl(s,g),nl(2*i,m)),nl(r,x)),dt=Kf(Kf(nl(s,b),nl(n,N)),nl(3,Kf(nl(i,I),nl(r,_)))),vt=Kf(tl(ht,f),tl(dt,S)),gt=Kf(Kf(tl(pt,E),tl(dt,M)),tl(el(ht),w)),mt=Kf(Kf(nl(s,O),tl(dt,y)),nl(3,Kf(tl(pt,T),tl(ht,C)))),xt=jf(dt[1]),bt=et*P+tt*A,It=et*B+2*tt*z+J*F;Z=et*Y+Z*k+3*(tt*V+J*L),J=It*$+xt*X,tt=bt*q+xt*D+2*It*H,et=et*Q+xt*U+3*(bt*G+It*R),Z*=11*Uf,J*=15*Uf,tt*=20*Uf,et*=22*Uf;const _t=ol(ol(Jf(it,-j),Jf(ct,-W)),ol(Jf(st,-K),Jf(ut,-nt))),Nt=il(il(Jf(it,+j),Jf(ct,+W)),il(Jf(st,+K),Jf(ut,+nt)));return[[_t,ol(ol(Jf(dt,-Z),Jf(vt,-J)),ol(Jf(gt,-tt),Jf(mt,-et)))],[Nt,il(il(Jf(dt,+Z),Jf(vt,+J)),il(Jf(gt,+tt),Jf(mt,+et)))]]}(t,n):3===t.length?function([[t,n],[e,r],[o,i]],[c,s]){const u=Zf(s,c),f=3*Uf*jf(u[1]),l=Zf(Wf,c),a=3*Uf*jf(l[1]),p=rl(u,l,f,a);s=Jf(p.est,p.err);const h=Zf(Wf,c),d=tl(c,c),v=tl(c,h),g=tl(h,h),m=Zf(Wf,s),x=tl(s,s),b=tl(s,m),I=tl(m,m),_=jf(c[1]),N=jf(h[1]),S=jf(d[1]),E=jf(v[1]),w=jf(g[1]),M=jf(s[1]),O=jf(m[1]),T=jf(x[1]),C=jf(b[1]),y=jf(I[1]);let P=jf(t),A=jf(n),B=jf(e),z=jf(r),F=jf(o),Y=jf(i);const V=Kf(Kf(nl(o,d),nl(2*e,v)),nl(t,g)),L=Kf(nl(o,c),nl(e,h)),k=V,$=Kf(tl(s,L),tl(m,V)),X=Kf(Kf(nl(o,x),tl(el(b),L)),tl(I,V)),q=F*S+2*B*E+P*w,H=F*_+B*N;P=q,B=M*H+O*q,F=T*o+2*C*H+y*q,P*=7*Uf,B*=11*Uf,F*=14*Uf;const D=Kf(Kf(nl(i,d),nl(2*r,v)),nl(n,g)),Q=Kf(nl(i,c),nl(r,h)),G=D,R=Kf(tl(s,Q),tl(m,D)),U=Kf(Kf(nl(i,x),tl(el(b),Q)),tl(I,D)),j=Y*S+2*z*E+A*w,Z=Y*_+z*N;A=j,z=M*Z+O*j,Y=T*i+2*C*Z+y*j,A*=7*Uf,z*=11*Uf,Y*=14*Uf;const W=ol(ol(Jf(k,-P),Jf($,-B)),Jf(X,-F)),J=il(il(Jf(k,+P),Jf($,+B)),Jf(X,+F));return[[W,ol(ol(Jf(G,-A),Jf(R,-z)),Jf(U,-Y))],[J,il(il(Jf(G,+A),Jf(R,+z)),Jf(U,+Y))]]}(t,n):function([[t,n],[e,r]],[o,i]){const c=Zf(i,o),s=3*Uf*jf(c[1]),u=Zf(Wf,o),f=3*Uf*jf(u[1]),l=rl(c,u,s,f);i=Jf(l.est,l.err);const a=Zf(Wf,o),p=Zf(Wf,i),h=jf(o[1]),d=jf(a[1]),v=jf(i[1]),g=jf(p[1]);let m=jf(t),x=jf(n),b=jf(e),I=jf(r);const _=Kf(nl(e,o),nl(t,a)),N=Kf(nl(e,i),tl(_,p));m=b*h+m*d,b=b*v+m*g,m*=3*Rf,b*=7*Rf;const S=Kf(nl(r,o),nl(n,a)),E=Kf(nl(r,i),tl(S,p));x=I*h+x*d,I=I*v+x*g,x*=3*Rf,I*=7*Rf;const w=ol(Jf(_,-m),Jf(N,-b)),M=il(Jf(_,+m),Jf(N,+b));return[[w,ol(Jf(S,-x),Jf(E,-I))],[M,il(Jf(S,+x),Jf(E,+I))]]}(t,n):function(t,n){const e=t[0],r=t[t.length-1];if(0===n[0]&&0===n[1]){const t=[0,e[0]],n=[0,e[1]];return[[t,n],[t,n]]}if(0===n[0]&&1===n[1]){const t=[0,r[0]],n=[0,r[1]];return[[t,n],[t,n]]}const o=dr(t,n);let i;if(4===t.length)i=mo(t,n).map(t=>16*cl*t);else if(3===t.length)i=mo(t,n).map(t=>10*cl*t);else if(2===t.length)i=mo(t,n).map(t=>4*cl*t);else if(1===t.length)return[o,o];return[[Jf(o[0],-i[0]),Jf(o[1],-i[1])],[Jf(o[0],+i[0]),Jf(o[1],+i[1])]]}(t,n[0])}function ul(t){return(n,e)=>{let[[r,o],[i,c]]=n,[[s,u],[f,l]]=e;return(o[1]>c[1]||o[1]===c[1]&&o[0]>c[0])&&([o,c]=[c,o]),(u[1]>l[1]||u[1]===l[1]&&u[0]>l[0])&&([u,l]=[l,u]),(r[1]>i[1]||r[1]===i[1]&&r[0]>i[0])&&([r,i]=[i,r]),(s[1]>f[1]||s[1]===f[1]&&s[0]>f[0])&&([s,f]=[f,s]),t?(r[1]<f[1]||r[1]===f[1]&&r[0]<=f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>=s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<=c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>=o[0]):(r[1]<f[1]||r[1]===f[1]&&r[0]<f[0])&&(i[1]>s[1]||i[1]===s[1]&&i[0]>s[0])&&(u[1]<c[1]||u[1]===c[1]&&u[0]<c[0])&&(l[1]>o[1]||l[1]===o[1]&&l[0]>o[0])}}function fl(t){return[((n=t.x.box)[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2];var n}function ll(t,n){const e=Bf(t,n);if(void 0===e)return;const{coeffs:r,errBound:o,getPExact:i}=e,c=ao(r,0,1,o,i);return 0!==c.length?{ris:c.map(Sc),getPExact:i}:void 0}function al(t){return{tS:ht(t.tS),tE:ht(t.tE),multiplicity:t.multiplicity}}function pl(t,n){const e=ll(t,n);if(void 0===e)return[];const{getPExact:r}=e;let o,{ris:i}=e;const c=()=>(o=o||r(),o),s=ll(n,t);if(void 0===s)return[];let{ris:u}=s;const{getPExact:f}=s;let l;const a=()=>(l=l||f(),l);let p;p=1;let h,d=0;t:for(;d<p;){h=u.map(n=>sl(t,[n.tS,n.tE]));for(let t=0;t<u.length;t++){const n=h[t];for(let e=t+1;e<u.length;e++){const t=h[e];if(ul(!0)(n,t)){const t=[];for(const n of u)t.push(...Vi({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},a()));u=t,d++;continue t}}}break t}p=1;let v,g=0;t:for(;g<p;){v=i.map(t=>sl(n,[t.tS,t.tE]));for(let t=0;t<i.length;t++){const n=v[t];for(let e=t+1;e<i.length;e++){const t=v[e];if(ul(!0)(n,t)){const t=[];for(const n of i)t.push(...Vi({tS:n.tS[1],tE:n.tE[1],multiplicity:n.multiplicity},c()));i=t,g++;continue t}}}break t}const m=[];for(let t=0;t<u.length;t++){const n=h[t];for(let e=0;e<i.length;e++){const o=v[e];if(ul(!0)(n,o)){const c={compensated:d,ri:al(u[t]),riExp:d?u[t]:void 0,getPExact:d?void 0:f,kind:1,box:hl(n)},s={compensated:g,ri:al(i[e]),riExp:g?i[e]:void 0,getPExact:g?void 0:r,kind:1,box:hl(o)};m.push({psX:c,sideX:s})}}}return m}function hl(t){return t.map(t=>t.map(ht))}function dl(t,n){return function(t,n){const e=t.xs,r=[],o=new Map;for(const t of e){const n=t.curve,e=o.get(n);e?e.push(t):o.set(n,[t])}const i=function(t){const[[n,e],[r,o]]=t.box,i=[[[r,e],[n,e]],[[n,e],[n,o]],[[n,o],[r,o]],[[r,o],[r,e]]];return(n,e,r)=>{const o=n.ps,c=e.slice();for(let t=0;t<i.length;t++){const n=pl(o,i[t]);for(const{psX:e,sideX:r}of n)c.push({x:e,side:t,sideX:r,curve:void 0})}c.sort((t,n)=>t.x.ri.tS-n.x.ri.tS);const s=[],u=[];let f,l;for(const n of c)void 0!==n.side?(!0===l&&(u.push({idx:++r,dir:1,p:fl(n),_x_:f,container:t,side:n.side,sideX:n.sideX,loopsIdxs:new Set}),f.out=u[u.length-1]),l=!1):(!1===l&&(s.push({idx:++r,dir:-1,p:fl(f),_x_:n,container:t,side:f.side,sideX:f.sideX,loopsIdxs:new Set}),n.in_=s[s.length-1]),l=!0),f=n;return{ins:s,outs:u,ioIdx:r}}}(t);for(const t of o){const[e,o]=t;let c,s;({ins:c,outs:s,ioIdx:n}=i(e,o,n)),r.push(...c),r.push(...s)}return{inOuts:r,ioIdx:n}}(t,n)}function vl(t,n,e,r){const o=[];for(const r of t)o.push({type:-1,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(gl);const i=new Set,c=[];for(const t of o){const n=t.item;if(-1===t.type){for(const t of i.values()){const e=r(n,t);e&&c.push({a:n,b:t,u:e})}i.add(n)}else 1===t.type&&i.delete(t.item)}return c}function gl(t,n){const e=t.x-n.x;return 0!==e?e:t.type}function ml(t,n){const e=n[0]-t[0],r=n[1]-t[1];return e*e+r*r}function xl(t,n,e){const r=n[0]-t[0],o=n[1]-t[1];return r*(e[0]-n[0])+o*(e[1]-n[1])}const bl=function(t,n){if(0===t.length)return;const e=t.slice(),r=function(t){let n,e=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY];for(let r=0;r<t.length;r++){const o=t[r][1];(o<e[1]||o===e[1]&&t[r][0]<e[0])&&(n=r,e=t[r])}return n}(e),[o]=e.splice(r,1);e.sort((t,n)=>{let e=-gt(o,t,n);return 0!==e?e:(e=t[1]-n[1],0!==e?e:t[0]-n[0])}),e.unshift(o);const i=function(t){const n=[t[0]],e=t.length;for(let r=1;r<t.length;r++){const o=t[(r+e-1)%e],i=t[r];o[0]===i[0]&&o[1]===i[1]||n.push(i)}return n}(e),c=[];for(const t of i){for(;c.length>=2&&gt(c[c.length-2],c[c.length-1],t)<0;)c.pop();c.push(t)}if(n||c.length<3)return c;const s=[];{const t=c.length;for(let n=0;n<t;n++){const e=(n+1)%t,r=c[(n+t-1)%t],o=c[n],i=c[e];(0!==gt(r,o,i)||xl(r,o,i)<0)&&s.push(o)}}return s},Il=x,_l=H,Nl=B,Sl=Q,El=ht,wl=sr,Ml=Ci,Ol=Math.abs,Tl=Z(3);const Cl=Math.abs;const yl=Math.abs,Pl=sr,Al=x,Bl=H,zl=B,Fl=Q,Yl=ht,Vl=Ci,Ll=Math.abs,kl=j(1),$l=Z(3);function Xl(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓ:n,vₓᵧ:e,vᵧᵧ:r,vₓ:o,vᵧ:i,v:f}=function(t){const[[n,e,r],[o,i,c]]=ji(t),s=n*i-e*o,u=n*c-r*o;return{vₓₓ:-o*o,vₓᵧ:2*n*o,vᵧᵧ:-n*n,vₓ:i*s-2*o*u,vᵧ:2*n*u-e*s,v:s*(e*c-r*i)-u*u}}(t),{vₓₓ_:l,vₓᵧ_:a,vᵧᵧ_:p,vₓ_:h,vᵧ_:d,v_:v}=function(t){const[n,e]=t[0],[[r,o],[i,c]]=function(t){const[[n,e],[r,o],[i,c]]=t,s=Cl(n),u=Cl(r),f=Cl(i),l=Cl(e),a=Cl(o);return[[f+s+2*u,2*(u+s),0],[Cl(c)+l+2*a,2*(a+l),0]]}(t),s=yl(n),u=yl(e),f=r*c+o*i,l=r*u+s*i;return{vₓₓ_:i*i,vₓᵧ_:2*r*i,vᵧᵧ_:r*r,vₓ_:c*f+2*i*l,vᵧ_:2*r*l+o*f,v_:f*(o*u+s*c)+l*l}}(t),g=u?0:1,m=Ll(c),x=Ll(s);if((g+12)*kl*(l*(m*m)+a*(m*x)+p*(x*x)+(h*m+d*x)+v)<Ll(n*c*c+e*c*s+r*s*s+(o*c+i*s)+f))return!1}{const{coeffs:{vₓₓ:n,vₓᵧ:o,vᵧᵧ:i,vₓ:u,vᵧ:f,v:l},errorBound:{vₓₓ_:a,vₓᵧ_:p,vᵧᵧ_:h,vₓ_:d,vᵧ_:v,v_:g}}=jc(t),m=Vl(e),x=Vl(r),b=Ll(c),I=Ll(s),_=b/3,N=I/3,S=Pl(m,m),E=S[1],w=2*(b*_+E),M=Pl(x,x),O=M[1],T=2*(I*N+O),C=Pl(m,x),y=Ll(C[1]),P=b*N+_*I+2*y,A=Pl(n,S),B=Ll(n[1])*w+a*E+2*Ll(A[1]),z=Pl(o,C),F=Ll(o[1])*P+p*y+2*Ll(z[1]),Y=Pl(i,M),V=Ll(i[1])*T+h*O+2*Ll(Y[1]),L=Pl(m,u),k=Ll(u[1])*_+d*b+2*Ll(L[1]),$=Pl(x,f),X=Ll(f[1])*N+v*I+2*Ll($[1]),q=Al(A,z),H=B+F+Ll(q[1]),D=Al(q,Y),Q=H+V+Ll(D[1]),G=Al(L,$),R=k+X+Ll(G[1]),U=Al(D,G),j=Q+R+Ll(U[1]),Z=Al(U,l),W=j+g+Ll(Z[1]);if($l*W<Ll(Yl(Z)))return!1}{const n=function(t){return gu(zt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓ:o,vₓᵧ:i,vᵧᵧ:f,vₓ:l,vᵧ:a,v:p}=n,h=zl(zl(zl(Bl(o,Bl(e,e)),Bl(i,Bl(e,r))),Bl(f,Bl(r,r))),zl(zl(Bl(e,l),Bl(r,a)),p));return 0===Fl(h)}}const ql=Math.abs,Hl=sr,Dl=x,Ql=H,Gl=B,Rl=Q,Ul=ht,jl=Ci,Zl=Math.abs,Wl=j(1),Jl=Z(3);function Kl(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{vₓₓₓ:n,vₓₓᵧ:e,vₓᵧᵧ:r,vᵧᵧᵧ:o,vₓₓ:i,vₓᵧ:f,vᵧᵧ:l,vₓ:a,vᵧ:p,v:h}=function(t){const[[n,e,r,o],[i,c,s,u]]=Ui(t),f=n*s,l=r*i,a=n*c,p=e*i,h=n*n,d=i*i,v=n*u-o*i,g=f-l,m=a-p,x=e*u-o*c,b=e*s-r*c,I=r*u-o*s,_=2*g,N=v*v,S=v*b,E=_*x,w=m*x,M=-3*v-b,O=-3*N-2*S+(E+m*I),T=2*(v*g-w),C=v*m-g*g+m*b;return{vₓₓₓ:-i*d,vₓₓᵧ:3*n*d,vₓᵧᵧ:-3*i*h,vᵧᵧᵧ:n*h,vₓₓ:M*d+m*(s*i-c*c)+_*c*i,vₓᵧ:2*(m*(e*c-(l+f)/2)-(M*n*i+g*(p+a))),vᵧᵧ:M*h+m*(r*n-e*e)+_*e*n,vₓ:i*O+(c*T+s*C),vᵧ:-n*O-(e*T+r*C),v:v*(E-N-S)+(C*I-w*x)}}(t),{vₓₓₓ_:d,vₓₓᵧ_:v,vₓᵧᵧ_:g,vᵧᵧᵧ_:m,vₓₓ_:x,vₓᵧ_:b,vᵧᵧ_:I,vₓ_:_,vᵧ_:N,v_:S}=function(t){const[n,e]=t[0],[[r,o,i],[c,s,u]]=function(t){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Cl(n),l=Cl(r),a=Cl(i),p=Cl(s),h=Cl(e),d=Cl(o),v=Cl(c);return[[p+f+3*(l+a),3*(a+f+2*l),3*(l+f),0],[Cl(u)+h+3*(d+v),3*(v+h+2*d),3*(d+h),0]]}(t),f=ql(n),l=ql(e),a=r*u,p=i*c,h=r*s,d=o*c,v=r*r,g=c*c,m=r*l+f*c,x=a+p,b=h+d,I=o*l+f*s,_=o*u+i*s,N=i*l+f*u,S=2*x,E=m*m,w=m*_,M=S*I,O=b*I,T=3*m+_,C=3*E+2*w+(M+b*N),y=2*(m*x+O),P=m*b+x*x+b*_;return{vₓₓₓ_:c*g,vₓₓᵧ_:3*r*g,vₓᵧᵧ_:3*c*v,vᵧᵧᵧ_:r*v,vₓₓ_:T*g+b*(u*c+s*s)+S*s*c,vₓᵧ_:2*(b*(o*s+(p+a)/2)+(T*r*c+x*(d+h))),vᵧᵧ_:T*v+b*(i*r+o*o)+S*o*r,vₓ_:c*C+(s*y+u*P),vᵧ_:r*C+(o*y+i*P),v_:m*(M+E+w)+(P*N+O*I)}}(t),E=c*c,w=s*s,M=n*(E*c)+e*(E*s)+(r*(c*w)+o*(w*s))+(i*E+f*(c*s)+l*w)+(a*c+p*s+h),O=u?0:1,T=Zl(c),C=Zl(s),y=T*T,P=C*C;if((O+26)*Wl*(d*(y*T)+v*(y*C)+(g*(T*P)+m*(P*C))+(x*y+b*(T*C)+I*P)+(_*T+N*C+S))<Zl(M))return!1}{const{coeffs:{vₓₓₓ:n,vₓₓᵧ:o,vₓᵧᵧ:i,vᵧᵧᵧ:u,vₓₓ:f,vₓᵧ:l,vᵧᵧ:a,vₓ:p,vᵧ:h,v:d},errorBound:{vₓₓₓ_:v,vₓₓᵧ_:g,vₓᵧᵧ_:m,vᵧᵧᵧ_:x,vₓₓ_:b,vₓᵧ_:I,vᵧᵧ_:_,vₓ_:N,vᵧ_:S,v_:E}}=ls(t),w=Zl(n[1]),M=Zl(o[1]),O=Zl(i[1]),T=Zl(u[1]),C=jl(e),y=jl(r),P=Zl(c),A=Zl(s),B=P/3,z=A/3,F=Hl(C,C),Y=F[1],V=2*(P*B+Y),L=Hl(C,F),k=Zl(L[1]),$=P*V+B*Y+2*k,X=Hl(y,y),q=X[1],H=2*(A*z+q),D=Hl(y,X),Q=Zl(D[1]),G=A*H+z*q+2*Q,R=Hl(y,F),U=Zl(R[1]),j=A*V+z*Y+2*U,Z=Hl(C,X),W=Zl(Z[1]),J=P*H+B*q+2*W,K=Hl(C,y),tt=Zl(K[1]),nt=P*z+B*A+2*tt,et=Hl(n,L),rt=w*$+v*k+2*Zl(et[1]),ot=Hl(o,R),it=M*j+g*U+2*Zl(ot[1]),ct=Hl(i,Z),st=O*J+m*W+2*Zl(ct[1]),ut=Hl(u,D),ft=T*G+x*Q+2*Zl(ut[1]),lt=Hl(f,F),at=Zl(f[1])*V+b*Y+2*Zl(lt[1]),pt=Hl(l,K),ht=Zl(l[1])*nt+I*tt+2*Zl(pt[1]),dt=Hl(a,X),vt=Zl(a[1])*H+_*q+2*Zl(dt[1]),gt=Hl(C,p),mt=Zl(p[1])*B+N*P+2*Zl(gt[1]),xt=Hl(y,h),bt=Zl(h[1])*z+S*A+2*Zl(xt[1]),It=Dl(et,ot),_t=rt+it+Zl(It[1]),Nt=Dl(ct,ut),St=st+ft+Zl(Nt[1]),Et=Dl(It,Nt),wt=_t+St+Zl(Et[1]),Mt=Dl(lt,pt),Ot=at+ht+Zl(Mt[1]),Tt=Dl(Mt,dt),Ct=Ot+vt+Zl(Tt[1]),yt=Dl(Et,Tt),Pt=wt+Ct+Zl(yt[1]),At=Dl(gt,xt),Bt=mt+bt+Zl(At[1]),zt=Dl(At,d),Ft=Bt+E+Zl(zt[1]),Yt=Dl(yt,zt),Vt=Pt+Ft+Zl(Yt[1]);if(Jl*Vt<Zl(Ul(Yt)))return!1}{const n=function(t){return ku(Bt(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];n.hasOwnProperty("vₓₓₓ")||(n.vₓₓₓ=[0],n.vₓₓᵧ=[0],n.vₓᵧᵧ=[0],n.vᵧᵧᵧ=[0]),n.hasOwnProperty("vₓₓ")||(n.vₓₓ=[0],n.vₓᵧ=[0],n.vᵧᵧ=[0]);const{vₓₓₓ:o,vₓₓᵧ:i,vₓᵧᵧ:f,vᵧᵧᵧ:l,vₓₓ:a,vₓᵧ:p,vᵧᵧ:h,vₓ:d,vᵧ:v,v:g}=n,m=Ql(e,e),x=Ql(e,m),b=Ql(r,r),I=Ql(r,b),_=Ql(r,m),N=Ql(e,b),S=Ql(e,r),E=Ql(o,x),w=Ql(i,_),M=Ql(f,N),O=Ql(l,I),T=Ql(a,m),C=Ql(p,S),y=Ql(h,b),P=Ql(e,d),A=Ql(r,v),B=Gl(E,w),z=Gl(M,O),F=Gl(B,z),Y=Gl(T,C),V=Gl(Y,y),L=Gl(F,V),k=Gl(P,A),$=Gl(k,g),X=Gl(L,$);return 0===Rl(X)}}function ta(t,n){const{coeffs:e,errBound:r,getPExact:o}=Bf(t,n);return ao(e,0,1,r,o,!0)}const na=Math.min,ea=Math.max;function ra(t,n){let[[e,r],[o,i]]=t,[[c,s],[u,f]]=n;if(e>o&&([e,o]=[o,e]),c>u&&([c,u]=[u,c]),r>i&&([r,i]=[i,r]),s>f&&([s,f]=[f,s]),e<=u&&o>=c&&s<=i&&f>=r)return[[ea(e,c),ea(r,s)],[na(o,u),na(i,f)]]}function oa(t,n,e){if(void 0===e)return;if(0===e.length)return[];const r=ta(n,t);if(void 0===r)return;if(0===r.length)return[];const o=r.map(n=>No(t,[n.tS,n.tE])),i=e.map(t=>No(n,[t.tS,t.tE])),c=[];for(let t=0;t<r.length;t++){const n=o[t];for(let o=0;o<e.length;o++){const s=ra(n,i[o]);if(void 0!==s){const n={ri:r[t],box:s,kind:1},i={ri:e[o],box:s,kind:1};c.push([n,i])}}}return c}function ia(t,n,e){for(const r of[t,n]){const o=r.length;for(let i=1;i<o+1;i++){const c=r[i-1],s=r[i%o],u=[s[1]-c[1],c[0]-s[0]];let f=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let n=0;n<t.length;n++){const e=u[0]*t[n][0]+u[1]*t[n][1];e<f&&(f=e),e>l&&(l=e)}let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(let t=0;t<n.length;t++){const e=u[0]*n[t][0]+u[1]*n[t][1];e<a&&(a=e),e>p&&(p=e)}if(e&&(l<a||p<f))return!1;if(!e&&(l<=a||p<=f))return!1}}return!0}function ca(t){return 4===t.length&&pt(t)&&(t=Pu(t)),3===t.length&&rt(t)&&(t=[t[0],t[2]]),2===t.length&&W(t)&&(t=[t[0]]),t}const sa=Number.EPSILON,ua=sa/2;function fa(t,n){return n<0?t<1?t:1-ua:0===n?1:t>1?t:1+sa}function la(t){const n=function(t){const n=new ArrayBuffer(8);return new DataView(n).setFloat64(0,t,!1),Array.from(new Uint8Array(n))}(t),e=n[0],r=n[1],o=e>>7,i=((127&e)<<4)+((240&r)>>4),c=0===i?0:16,s=0===i?i-1022:i-1023,u=n.slice(1);return u[0]=(15&r)+c,{sign:o,exponent:s,significand:u}}function aa(t){return la(t).significand}function pa(t){return Math.log2(t&-t)}function ha(t){if(0===t||!Number.isFinite(t))return NaN;const n=aa(t),e=n.length;for(let t=e-1;t>=0;t--){if(0===n[t])continue;const r=pa(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function da(t){return t>=128?7:t>=64?6:t>=32?5:t>=16?4:t>=8?3:t>=4?2:t>=2?1:t>=1?0:NaN}function va(t){if(0===t||!Number.isFinite(t))return NaN;const n=aa(t),e=n.length;for(let t=0;t<e;t++){const r=da(n[t]);if(Number.isFinite(r))return 8*(e-t-1)+r}return NaN}function ga(t){return la(t).exponent}function ma(t){if(0===t||!Number.isFinite(t))return NaN;const n=ga(t);return va(t)-52+n}function xa(t,n){const e=(2**(53-n)+1)*t;return e-(e-t)}const ba=Q,Ia=vt;function _a(t){return 0===t?0:va(t)-ha(t)+1}const Na=H,Sa=function(t,n){if(t=Ia(t),0===ba(t))return[0];const e=ma(t[t.length-1]);let r=e,o=t.length-1;for(;o>0;){const i=ma(t[o-1]);if(e-i>n)break;r=i,o--}const i=Math.min(n-(e-r),53);let c=t[o];c=xa(c,i);const s=t.slice(o);return s[0]=c,s},Ea=function(t){const n=vt(t);if(0===Q(n))return 0;const e=n[n.length-1],r=n[0];return ga(e)-ga(r)+(53-ha(r))},wa=V,Ma=ht;function Oa(t){return ht(function(t,n,e){let r=n,o=t,i=!1,c=0;e||(c=Ea(o)-Ea(r)+1,e=c/53+1,i=!0);let s=[1/Ma(r)],u=1;for(;;){if(o=Na(o,s),u>e)return i?(o=Sa(o,c),o):o.slice(o.length-e,o.length);r=Na(r,s),s=wa([2],r),u*=2}}(t[0],t[1],2))}function Ta(t){return Q(t[0])*Q(t[1])}function Ca(t){return(n,e)=>{const r=At(n),o=At(e),i=At(n.slice().reverse()),c=At(e.slice().reverse()),s=t(r,o),u=t(i,o),f=t(r,c),l=t(i,c),a=-Ta(u),p=-Ta(l),h=Oa(s),d=Oa(f);return[fa(h,a),fa(d,p)]}}const ya=Ca(function(t,n){const e=0===Q(t[0][0])?1:0;return function(t,n){const[e,r]=t,[,o]=n;return[V(o,r),e]}(t[e],n[e])});function Pa(t,n){return G(H(t[0],n[1]),H(t[1],n[0]))*Q(t[1])*Q(n[1])}const Aa=ga,Ba=_a;function za(t){let n=-1024;for(let e=0;e<t.length;e++){const r=t[e];for(let t=0;t<r.length;t++){const e=r[t];if(0===e)continue;const o=-Aa(e)+Ba(e)-1;o>n&&(n=o)}}return 0===n?t.map(t=>t.map(t=>BigInt(t))):n>0?t.map(t=>t.map(t=>{if(0===t)return 0n;const e=-Aa(t)+Ba(t)-1;return BigInt(t*2**e)*2n**BigInt(n-e)})):t.map(t=>t.map(t=>BigInt(t*2**n)))}function Fa(t,n){if(n=n<0n?-n:n,0n===(t=t<0n?-t:t))return n;if(0n===n)return t;for(;0n!==n;){const e=n;n=t%n,t=e}return t}const Ya=BigInt(2**53);function Va(t){if(0n===t)return[0];const n=[];let e=0,r=t;for(;0n!==r;){r=t/Ya;const o=t%Ya;n.push(Number(o)*2**(53*e)),t=r,e++}return vt(n)}const{round:La,sqrt:ka}=Math;function $a(t){if(t<=1n){if(t<0n)throw new Error("square root of negative numbers are not allowed");return t}let n=BigInt(La(ka(Number(t))));for(;;){const e=n+t/n>>1n;if(e===n)return n;n=e}}function Xa(t){return t<0n?-t:t}function qa(t){let n=0n;for(let e=0;e<t.length;e++)n+=t[e];return n}function Ha(t,n){const[e,r]=Da(t[0],n[0]),[o,i]=Da(t[1],n[1]);if(0===Pa(e,o)||0===Pa(e,i))return e;if(0===Pa(r,o)||0===Pa(r,i))return r;throw new Error("An unexpected error occured.")}function Da(t,n){const[e,r]=t,[o,i]=n,[c,s]=function(t){const[n,e]=za(t).map(qa),r=Fa(n,e);return[Va($a(Xa(n/r))),Va($a(Xa(e/r)))]}([o,e]);return[[V(H(i,s),H(r,c)),H(c,Jo(e))],[V(H(i,z(s)),H(r,c)),H(c,Jo(e))]].sort(Pa)}function Qa(t,n){const e=At(t),r=0===Q(e[0][0])?0:0===Q(e[1][0])?1:-1;if(-1!==r){const e=t[0][r],o=t[2][r],i=n[0][r],c=n[2][r];return ya([[e,e],[o,o]],[[i,i],[c,c]])}return Ca(Ha)(t,n)}const{round:Ga,cbrt:Ra}=Math;function Ua(t){const n=(e=t)>0n?1n:e<0n?-1n:0n;var e;if((t=Xa(t))<=1n)return n*t;let r=BigInt(Ga(Ra(Number(t))));for(;;){const e=(2n*r+t/(r*r))/3n;if(e===r)return n*r;r=e}}function ja(t){return H(t,t)}const Za=Ca(function(t,n){const e=0===Q(t[0][0])?1:0;return function(t,n){const[e,r]=t,[o,i]=n,c=function(t){const[n,e]=za(t).map(qa),r=Fa(n,e);return[Va(Ua(n/r)),Va(Ua(e/r))]}([o,e]),s=ja(c[0]);return[V(H(i,ja(c[1])),H(r,s)),H($(3,e),s)]}(t[e],n[e])}),{EPSILON:Wa}=Number,Ja=Wa/2+Wa**2/2;function Ka(t){return t>0?t-t*Ja:t+t*Ja}const{EPSILON:tp}=Number,np=tp/2+tp**2/2;function ep(t){return t>0?t+t*np:t-t*np}function rp(t){if(0===t||1===t)return[t,t];const n=Ka(Ka(t)),e=function(t){return ep(ep(t))}(t);return[n,e]}function op(t,n,e,r){const o=t.ps,i=n.ps,c=[];let s=ta(o,i);if(void 0===s){const r=2**(e-47),s=function(t,n,e=!1){e||(t=ca(t),n=ca(n));const r=[,,ya,Qa,Za],[o,i]=r[t.length](t,n),[c,s]=r[t.length](n,t),u=[{tA:o,tB:0,bez:"B",start:!0},{tA:i,tB:1,bez:"B",start:!1},{tA:0,tB:c,bez:"A",start:!0},{tA:1,tB:s,bez:"A",start:!1}].sort((t,n)=>t.tA-n.tA);if(u[1].tA===u[2].tA){const n=u[1],e=n.tA,r=n.tB,o=No(t,[e,e]);return[{p:o[0],kind:4,box:o,t1:e,ri1:{tS:e,tE:e,multiplicity:1},t2:r,ri2:{tS:r,tE:r,multiplicity:1}}]}if(u[0].bez===u[1].bez)return[];const f=u[1],l=u[2],[a,p]=rp(f.tA),[h,d]=rp(f.tB),[v,g]=rp(l.tA),[m,x]=rp(l.tB),b=No(t,[a,p]),I=No(n,[h,d]),_=No(t,[v,g]),N=No(n,[m,x]),S=ra(b,I),E=ra(_,N),w={tS:a,tE:p,multiplicity:1},M={tS:h,tE:d,multiplicity:1},O={tS:v,tE:g,multiplicity:1},T={tS:m,tE:x,multiplicity:1};return[{p:So(S),kind:5,box:S,t1:ho(w),ri1:w,t2:ho(M),ri2:M},{p:So(E),kind:5,box:E,t1:ho(O),ri1:O,t2:ho(T),ri2:T}]}(o,i);for(const e of s){const i=vo(o,e.ri1.tS),s=[[i[0]-r,i[1]-r],[i[0]+r,i[1]+r]],u={x:{ri:e.ri1,kind:5,box:s},curve:t},f={x:{ri:e.ri2,kind:5,box:s},curve:n};c.push([u,f])}return c}if(r&&(s=s.filter(t=>t.tS>0)),0===s.length)return[];const u=oa(o,i,s);if(void 0===u||0===u.length)return[];for(const e of u){const r={x:e[0],curve:t},o={x:e[1],curve:n};c.push([r,o])}return c}const ip=vo,cp=mo,sp=j(1);function up(t,n,e){const r=n.ps;if(0===t)return r[0],{x:{ri:{tS:t,tE:t,multiplicity:1},box:[r[0],r[0]],kind:e},curve:n};if(1===t){const o=r[r.length-1];return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[o,o],kind:e},curve:n}}const{p:o,pE:i}=function(t,n){const e=ip(t,n),r=cp(t,[0,n]);if(4===t.length)return{p:e,pE:r.map(t=>9*sp*t)};if(3===t.length)return{p:e,pE:r.map(t=>6*sp*t)};if(2===t.length)return{p:e,pE:r.map(t=>3*sp*t)};if(1===t.length)return{p:t[0],pE:[0,0]};throw new Error("The given bezier curve must be of order <= 3.")}(r,t);return{x:{ri:{tS:t,tE:t,multiplicity:1},box:[[o[0]-i[0],o[1]-i[1]],[o[0]+i[0],o[1]+i[1]]],kind:e},curve:n}}function fp(t,n){if(n.next===t){if(t.next===n)return;[t,n]=[n,t]}const e=t.ps,r=n.ps;if(function(t,n){if(4===t.length)return Kl(t,n);if(3===t.length)return Xl(t,n);if(2===t.length)return function(t,n){const[e,r]=n,o=e.length,i=r.length,c=e[o-1],s=r[i-1],u=1===o&&1===i;{const{coeffs:{vₓ:n,vᵧ:o,v:i},errorBound:{v_:u}}=Yc(t),f=Ml(e),l=Ml(r),a=Ol(c),p=Ol(s),h=Ol(n[1]),d=Ol(o[1]),v=a/3,g=p/3,m=n[1]*c,x=wl(f,n),b=h*v+2*Ol(m),I=o[1]*s,_=wl(l,o),N=d*g+2*Ol(I),S=Il(x,_),E=b+N+Ol(S[1]),w=Il(S,i),M=E+u+Ol(w[1]);if(Tl*M<Ol(El(w)))return!1}{const n=function(t){return cu(Ft(t))}(t);if(void 0===n)return u&&c===t[0][0]&&s===t[0][1];const{vₓ:o,vᵧ:i,v:f}=n,l=_l(e,o),a=_l(r,i),p=Nl(Nl(l,a),f);return 0===Sl(p)}}(t,n);if(1===t.length){const e=vt(n[0]),r=vt(n[1]);return 1===e.length&&1===r.length&&e[0]===t[0][0]&&r[0]===t[0][1]}throw new Error("The given bezier curve must be of order <= 3")}(e,r[r.length-1].map(t=>[t]))){const i=oa(e,r,[(o=1,{tS:o,tE:o,multiplicity:1})]);if(void 0===i||0===i.length)return;return[[{x:i[0][0],curve:t},up(1,n,1)]]}var o}const lp=z;function ap(t){return t[t.length-1]<0?lp(t):t}Number.EPSILON;const pp=Number.EPSILON/2;function hp(t,n,e,r){const o=t/n,i=Math.abs(t),c=Math.abs(n),s=c-r;return s<=0?{est:o,err:Number.POSITIVE_INFINITY}:{est:o,err:(c*e+i*r)/s**2+pp*Math.abs(i/c)}}const dp=V,vp=H,gp=$,mp=P,xp=A,bp=qc,Ip=x,_p=Co,Np=Ff,Sp=B,Ep=D,wp=2*Number.EPSILON,Mp=Math.abs,Op=j(1);function Tp(t,n=!0){if(t.length<4)return[];const{coeffs:[e,r,o],errBound:[i,c,s]}=Mt(t);if(Mp(e)<=i){const[[n,e],[r,o],[i,c],[s,u]]=t,f=Sp(mp(s,n),gp(3,mp(r,i))),l=Ep(xp(i,n),-2*r),a=Sp(mp(u,e),gp(3,mp(o,c))),p=Ep(xp(c,e),-2*o);if(0===G(vp(l,a),vp(f,p)))return[]}const u=r*r,f=4*e*o,l=u-f,a=2*c*Mp(r)+Op*u+(4*(i*Mp(o)+Mp(e)*s)+Op*Mp(f))+Op*Mp(l);if(l<-a)return[];if(l>a){const{est:t,err:u}=function(t,n){if(t-n<=0){const e=t>0?Math.sqrt(t):0;return{est:e,err:Math.max(Math.sqrt(t+n)-e,e)}}const e=Math.sqrt(t),r=Math.sqrt(t-n),o=Math.sqrt(t+n);return{est:e,err:Math.max(Math.abs(r-e),Math.abs(o-e))}}(l,a);let f;f=r>=0?-r-t:-r+t;const p=c+u+Op*Mp(f),{est:h,err:d}=hp(f,2*e,p,2*i),{est:v,err:g}=hp(2*o,f,2*s,p);if(n){if(h+d<0||h-d>1||v+g<0||v-g>1)return[]}else if((h+d<0||h-d>1)&&(v+g<0||v-g>1))return[]}let[p,h,d]=kt(t);const v=dp(vp(h,h),gp(4,vp(p,d))),g=Q(v);if(g<0)return[];if(g>0){const t=function(t){const n=t[0],e=t[1];if(0===e)return[0,0];const r=Math.sqrt(e),o=r*r,i=134217729*r,c=i-(i-r),s=r-c,u=.5*(e-o-(s*s-(o-c*c-c*s*2))+n)/r;return[u-(r+u-r),r+u]}(Ci(v));let e;p=Ci(p),h=Ci(h),d=Ci(d),e=Q(h)>=0?bp(Ip(h,t)):Ip(bp(h),t);let r=ht(Np(e,_p(p))),o=ht(Np(_p(d),e));if(n){if(r<-wp||r>1+wp||o<-wp||o>1+wp)return[]}else if((r<-wp||r>1+wp)&&(o<-wp||o>1+wp))return[];return[r,o]=r<o?[r,o]:[o,r],r>=0-wp&&r<=1+wp?o>=0-wp&&o<=1+wp?[r,o]:[r]:o>=0-wp&&o<=1+wp?[o]:[]}const m=Ko(p);if(Q(h)*Q(m)<0)return[];if(G(ap(h),ap(m))>0)return[];const x=Ci(h),b=Ci(m),I=Np(x,b),_=I[1]+I[0];return[_,_]}const Cp=Number.EPSILON;function yp(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i)),6*(i+n-2*r)],[6*(u-e+3*(o-c)),6*(c+e-2*o)]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[2*(i-2*r+n)],[2*(c-2*o+e)]]}if(t.length<=2)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}function Pp(t){if(xt(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&pt(t)&&(t=Pu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=i-r,u=s-(r-n),f=c-o,l=f-(o-e);return[u*u+l*l,-(n*(u-r)-r*(s-r)+e*(l-o)-o*(f-o))]}(t);return{minima:[],maxima:Bn(n,0,1),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=qn(t),[[s,u],[f,l]]=yp(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[6*(s-n+3*(r-i))],[6*(u-e+3*(o-c))]]}if(t.length<=3)return[[0],[0]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=a*i,d=p*e,v=u*c,g=u*i,m=f*f,x=s*c,b=l*r,I=l*e,_=f*r,N=r*e,S=r*n,E=r*o,w=e*e,M=e*n,O=e*i,T=n*c,C=n*o,y=n*n,P=c*i,A=c*o,B=i*i,z=i*o,F=o*o,Y=a*c-p*r,V=u*r+l*c,L=v-b,k=r*r+c*c,$=O+T,X=A+B,q=S+w,H=e*o+n*i,D=y-F,Q=M-z,G=N-P,R=r*i+e*c,U=A+X,j=S+q,Z=E+$,W=O+$,J=j-U,K=$+T,tt=E+O+T,nt=2*I+_;return{inflectionPoly:[s*o-f*n,u*o+s*i-l*n-f*e,g+x-I-_,v-b],otherExtremaPoly:[y*(h-3*d)+F*(3*h-d)+2*(C*(a*e-p*i+3*(l*f-u*s))+3*s*f*Q)+3*(H*(m-s*s)+D*(u*f+l*s)),a*(o*(j+3*X)+n*W)-p*(r*(3*y+F)+e*(3*M+2*z)+n*U)+3*(u*(l*D-u*C+2*(f*Q-s*H))+s*(2*l*Q+f*(2*(S-A)+(w-B))-s*tt)+l*(l*C+2*f*H)+m*Z),a*(2*r*H+e*K+i*(4*A+U))-p*(2*r*(3*M+z)+e*(w+2*A)+i*K)+3*(u*(2*(l*Q-s*tt)+f*J-u*H)+s*(2*f*G-s*R)+l*(l*H+2*f*Z+s*J)+m*R),a*(r*(E+2*$)+c*(w+3*X))-p*(r*(3*q+U)+c*W)+3*(u*(l*J-u*Z+2*(f*G-s*R))+s*(r*(nt-s*c)-c*(2*l*i+f*c))+l*(l*$+r*(2*f*i+l*o))+f*c*nt),k*(h-d)+2*(N+P)*Y-3*(V*(g+x-I-_)+(u*e+s*r+l*i+f*c)*L),Y*k-3*V*L]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=Bn(r,0,1),i=dn(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=o[t],r=vn(i,n);vn(e,n)*r>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:Bn(e,0,1)}}function Ap(t,n){const[e,r]=qn(t),[o,i]=yp(t),c=vn(e,n),s=vn(r,n),u=vn(o,n);return(c*vn(i,n)-s*u)/Math.sqrt((c*c+s*s)**3)}const{abs:Bp}=Math,zp=Wn(function(t){const{curves:n}=t;let e=Wi(n[0].ps).minY,r=n[0];for(let t=1;t<n.length;t++){const o=Wi(n[t].ps).minY,i=o.box[0][1],c=e.box[0][1];(i<c||i===c&&o.ts[0]>e.ts[0])&&(e=o,r=n[t])}return{curve:r,y:e}});function Fp(t){const{curve:n,y:e}=zp(t),r=e.ts;return r[0]<=0?[up(0,n,0),up(1,n.prev,0)]:r[1]>=1?[up(1,n,0),up(0,n.next,0)]:[{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n},{x:{ri:{tS:r[0],tE:r[1],multiplicity:1},kind:0,box:e.box},curve:n}]}function Yp(t,n,e){const r=e-(n-Math.floor(Math.log2(Math.abs(t))))+1;return r<=0?0:e>=53?t:xa(t,r)}function Vp(t,n,e){const r=function(t,n){const e=[];for(const n of t)for(const t of n.curves)e.push(t);const r=vl(e,t=>Ki(t.ps)[0][0],t=>Ki(t.ps)[1][0],function(t){return(n,e)=>{const r=n.ps,o=e.ps;if(2===r.length&&2===o.length)return function(t,n,e){let r=t.ps,o=n.ps;const i=Ki(r),c=Ki(o);if(t.next!==n&&n.next!==t){if(vc(!0,i,c)){const r=op(t,n,e,!1);return r.length?r:void 0}return}if(n.next===t&&([t,n]=[n,t],[r,o]=[o,r]),0!==gt(r[0],r[1],o[1]))return;if(!vc(!1,i,c))return;let s;return s=ml(r[0],r[1])>ml(o[0],o[1])?[ho(Mi(r,o[1])[0].ri),1]:[0,ho(Mi(o,r[0])[0].ri)],[[up(1,t,5),up(0,n,5)],[up(s[0],t,5),up(s[1],n,5)]]}(n,e,t);if(n.next===e||e.next===n)return vc(!1,Ki(r),Ki(o))&&ia(bl(r,!1),bl(o,!1),!1)?e.next===n?op(e,n,t,!0):op(n,e,t,!0):fp(n,e);let i=vc(!0,Ki(r),Ki(o));return i?(i=ia(bl(r,!1),bl(o,!1),!0),i?op(n,e,t,!1):void 0):void 0}}(n)),o=[];for(const t of r)for(const n of t.u)o.push(n);return o}(t,e),o=function(t){const n=[];for(const e of t)for(const t of e.curves){const e=t.ps,r=Tp(e);if(0===r.length)continue;const o=r[0]===r[1]?3:2,i=r[0]-Cp,c=r[0]+Cp,s=r[1]-Cp,u=r[1]+Cp,f=No(e,[i,c]),l=No(e,[s,u]);n.push([{x:{ri:{tS:i,tE:c,multiplicity:1},box:f,kind:o},curve:t},{x:{ri:{tS:s,tE:u,multiplicity:1},box:l,kind:o},curve:t}])}return n}(t),i=function(t){const n=[];for(const e of t)for(const t of e.curves)n.push([up(1,t,4),up(0,t.next,4)]);return n}(t),{extremes:c,xs:s}=function(t){const n=new Map,e=[];for(const r of t){const t=Fp(r);e.push(t),n.set(r,t)}return{extremes:n,xs:e}}(t),u=function(t,n){const e=[];for(const r of n)for(const n of r.curves){const r=n.ps,o=Pp(r),{minima:i,maxima:c}=o,s=[0,1,...i,...c];for(let o of s)Bp(Ap(r,o))>1e7*2**-t&&e.push([up(o,n,7),up(o,n,7)])}return e}(e,t);let f=[...r,...o,...i,...s,...u];if("undefined"!=typeof _debug_){for(const t of r)_debug_.generated.elems.intersection.push(...t);for(const t of o)_debug_.generated.elems.intersection.push(...t);for(const t of i)_debug_.generated.elems.intersection.push(...t);for(const t of s)_debug_.generated.elems.intersection.push(...t);for(const t of u)_debug_.generated.elems.intersection.push(...t)}let l=f.map(t=>({xs:t,box:[[t[0].x.box[0][0]-n,t[0].x.box[0][1]-n],[t[0].x.box[1][0]+n,t[0].x.box[1][1]+n]],inOuts:void 0}));for(;;){const t=vl(l,Lp,kp,gc);if(!t.length)break;const n=new Map;mc(n,t);const e=Ic(n),r=_c(l,e);l=[...Nc(e),...r]}l=function(t){return t.filter(t=>{const n=t.xs;if(2===t.xs.length){const t=n[0];if(1===t.x.kind&&t.x.ri.multiplicity%2==0)return!1}for(const n of t.xs)if(4!==n.x.kind)return!0;return!1})}(l),l=function(t,n,e){const r=Math.log2(e)-3;return t.map(t=>{const e=t.box.map(t=>t.map(t=>Yp(t,n,n-r)));return{...t,box:e}})}(l,e,n),"undefined"!=typeof _debug_&&(_debug_.generated.elems.container=l);let a=0;for(const t of l){for(const n of t.xs)n.container=t;let n;({inOuts:n,ioIdx:a}=dl(t,a)),t.inOuts=n}f=f.filter(t=>void 0!==t[0].container),function(t){const n=new Map;for(const e of t)for(const t of e){const e=t.curve.loop,r=n.get(e)||[];r.length||n.set(e,r),r.push(t)}for(const t of n){const n=t[1];if(!n||!n.length)continue;n.sort((t,n)=>{let e=t.curve.idx-n.curve.idx;return 0!==e?e:(e=t.x.ri.tS-n.x.ri.tS,0!==e?e:void 0!==t.in_?-1:1)});const e=n.length;for(let t=0;t<e;t++)n[t].next=n[(t+1)%e],n[t].prev=n[(t-1+e)%e]}}(f);for(const t of l)for(const n of t.inOuts){if(-1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.next,void 0===e.in_;);t.nextOrPrev=e.in_,t.idx=t.nextOrPrev.idx}for(const t of l)for(const n of t.inOuts){if(1===n.dir)continue;const t=n;let e=t._x_;for(;e=e.prev,void 0===e.out;);t.nextOrPrev=e.out,t.idx=t.nextOrPrev.idx}return{extremes:c,containers:l}}function Lp(t){return t.box[0][0]}function kp(t){return t.box[1][0]}function $p(t,n,e){ki(t,1);const r=t.inOuts,o=r[0],i=r[r.length-1],c=1===o.dir?o:i,s=i.dir,u=0===n.idx?new Set:1===n.orientation?n.loopsIdxs:new Set;return o.orientation=s,o.parent=n,o.windingNum=n.windingNum+s,o.loopsIdxs=new Set(u),o.children=new Set,1===s&&o.loopsIdxs?.add(e.idx),i.orientation=s,i.parent=n,i.windingNum=n.windingNum+s,i.loopsIdxs=new Set(u),i.children=new Set,1===s&&i.loopsIdxs?.add(e.idx),c}function Xp(t){if(!xt(t))return!1;const n=t.map(t=>t[0]),e=t.map(t=>t[1]);return!(qp(n)&&qp(e))}function qp(t){return function(t){for(let n=1;n<t.length;n++)if(t[n-1]>t[n])return!1;return!0}(t)||function(t){for(let n=1;n<t.length;n++)if(t[n-1]<t[n])return!1;return!0}(t)}function Hp(t,n){const e=n/Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[e*t[0],e*t[1]]}function Dp(t){for(let n=0;n<t.length-1;n++)for(let e=n+1;e<t.length;e++)if(t[n][0]===t[e][0]&&t[n][1]===t[e][1])return!1;return!0}const{abs:Qp}=Math;function Gp(t,n,e){if(void 0!==t&&!W(t)){if(2===t.length)return t;if(3===t.length){if(Dp(t))return xt(t)?[t[0],t[2]]:t;if(Up(t[0],t[2]))return;return[t[0],t[2]]}if(Dp(t)){const r=Rp(t);if(void 0===r)return;return function(t,n){if(t===n)return!0;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e][0]!==n[e][0]||t[e][1]!==n[e][1])return!1;return!0}(r,t)?t:Gp(r,n,e)}if(Up(t[0],t[3])){if(xt(t))return;return t}if(xt(t))return[t[0],t[3]];if(Up(t[0],t[1])&&Up(t[1],t[2])||Up(t[1],t[2])&&Up(t[2],t[3])||Up(t[0],t[1])&&Up(t[2],t[3]))return Gp([t[0],t[t.length-1]],n,e);if(Up(t[0],t[2])||Up(t[1],t[3])||Up(t[1],t[2]))return t;if(Up(t[0],t[1])){if(ml(t[1],t[2])<4*n)return[t[0],t[2],t[2],t[3]];{const r=Hp(Kn(t[1],t[2]),2*n),o=oe(t[1],r);return Rp([t[0],e(o),t[2],t[3]])}}if(Up(t[2],t[3])){if(ml(t[2],t[1])<4*n)return[t[0],t[1],t[1],t[3]];{const r=Hp(Kn(t[2],t[1]),2*n),o=oe(t[2],r);return Rp([t[0],t[1],e(o),t[3]])}}}}function Rp(t){return xt(t)?[t[0],t[3]]:pt(t)?Pu(t):t}function Up(t,n){return t[0]===n[0]&&t[1]===n[1]}function jp(t){return t}function Zp(t,n,e,r=!1,o=!0){const i=function(t,n,e=!0){const r=2**t*2**-n,o=e?function(t,n){return e=>{const r=Yp(e[0],t,n),o=Yp(e[1],t,n);return r===e[0]&&o===e[1]?e:[r,o]}}(t,n):jp;return t=>{const n=[];for(let e=0;e<t.length;e++){let i=t[e].slice();const c=n[n.length-1],s=c?c[c.length-1]:o(t[0][0]);i[0]=s,i=i.map(t=>o(t)),Xp(i)&&(i=[i[0],i[i.length-1]]),i=Gp(i,r,o),void 0!==i&&n.push(i)}const e=n.length;if(!e)return[];const i=n[e-1];return i[i.length-1]=n[0][0],n}}(e,n,o);let c=t.slice();return c=r?function(t,n,e,r=.02){const o=[];for(const i of t){const t=[];for(const o of i){const i=o.map(t=>t.map(t=>{let o,i=0,c=0,s=0;for(;!(++c>10);){i=(t+Math.random())*(1+(Math.random()-.7)*r),i=Yp(i,e,n);const c=_a(i);c>s&&(s=c,o=i)}return o}));t.push(i)}o.push(t)}return o}(c,n,e,1):c,c=c.map(i),c=c.filter(t=>t.length>0),c}const Wp=Wn(t=>{let n=0;for(const e of t)for(const t of e)for(const e of t)for(const t of e){const e=Math.abs(t);e>n&&(n=e)}return n}),Jp=Mn;function Kp(t,n){const e=t.length-1,r=n.length-1;if(e<0||r<0)return[];const o=e+r,i=new Array(o+1).fill(0);for(let c=0;c<e+1;c++)for(let s=0;s<r+1;s++)i[o-(c+s)]+=t[e-c]*n[r-s];return Jp(i)}function th(t,n){const e=[],r=t.length-1;for(let n=0;n<r+1;n++)e.push(t[n]/(r+1-n));return e.push(n),e}const nh=Mn;function eh(t,n){const e=t.length-1,r=n.length-1,o=e-r,i=o<0?+o:0,c=o>0?-o:0,s=Math.max(e,r),u=[];for(let e=0;e<s+1;e++){const r=t[e+i]||0,o=n[e+c]||0;u.push(r+o)}return nh(u)}function rh(t){let n=0;for(const e of t){const[t,r]=Ri(e),[o,i]=qn(e);n+=vn(th(eh(Kp(t,i),In(Kp(r,o))),0),1)}return n/2}function oh(t){let n=0;for(let e=0;e<t.length-1;e++)n+=Ln(t[e],t[e+1]);return n}function ih(t){const[n,e]=t[0],[r,o]=t[t.length-1];let i,c;const s=oh(t);if(256*ml(t[0],t[t.length-1])<s*s){const[r,o]=vo(t,.5),s=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/s,c=(r-n)/s}else{const t=Math.sqrt((r-n)*(r-n)+(o-e)*(o-e));i=(o-e)/t,c=(r-n)/t}const u=function(t,n,e){const r=oe(t[0].map(t=>-t));return Ji(t.map(t=>ce(-n,e,r(t))))}(t,i,c),[[f,l],[a,p]]=u,h=[u[0],[a,l],u[1],[f,p]],d=ce(i,c);return h.map(n=>oe(t[0],d(n)))}function ch(t){return{ps:t,ts:[0,1]}}const{round:sh,PI:uh}=Math;const{abs:fh,max:lh}=Math;function ah(t,e,r={}){let o;"undefined"!=typeof _debug_&&(o=performance.now()),e=e||Wp(t);const i=Math.ceil(Math.log2(e)),{maxBitLength:c=46,inclMicroCorners:s=!0,minLoopArea:u=(2**i*2**-12)**2,orientationPositive:f=!1}=r,l=2**i*2**-c*16;(function(t){if("undefined"!=typeof _debug_)for(const n of t){_debug_.generated.elems.loopPre.push(...t),_debug_.generated.elems.loopsPre.push(t);for(const t of n){const n=Ki(t),e=ih(t),r=bl(t,!1);_debug_.generated.elems.bezier_.push(t),_debug_.generated.elems.looseBoundingBox_.push(n),_debug_.generated.elems.tightBoundingBox_.push(e),_debug_.generated.elems.boundingHull_.push(r)}}})(t=Zp(t,c,i,!1,!0)),t.sort(pc);const a=t.map((t,e)=>n(t,e)),{extremes:p,containers:h}=Vp(a,l,i),d={dir:void 0,idx:0,parent:void 0,children:new Set,windingNum:0,p:void 0,_x_:void 0,container:void 0,loopsIdxs:new Set,orientation:-1},v=new Set,g=new Set;for(const t of a){if(v.has(t))continue;v.add(t);const n=ac(d,t),e=p.get(t)[0].container;if(0===e.inOuts.length)continue;const r=$p(e,n,t),o=2===e.inOuts.length&&2===e.xs.length;if(o&&e.inOuts[0].nextOrPrev===e.inOuts[1])r.bezierPieces=t.beziers.map(ch),r.parent.children=r.parent.children||new Set,r.parent.children.add(r);else if(Gi(r,v,g,!1),o&&void 0!==r.bezierPieces){const{bezierPieces:t}=r,n=t[t.length-1],e=t[0];if(n.ps===e.ps){const r={ps:n.ps,ts:[n.ts[0],e.ts[1]]};t.shift(),t.pop(),t.unshift(r)}}}const m=function(t){const n=[],e=[t];for(;e.length;){const t=e.pop();t.children=t.children||new Set;for(const r of t.children)0===t.windingNum&&n.push(r),e.push(r);0===t.windingNum&&(t.children=new Set)}return n}(d),x=m.map(dc).map(t=>{const e=(f?1:-1)*t[0].orientation;return t.map((t,r)=>function(t,e,r){const o=t.bezierPieces?.map(Di);return n(void 0===o?[]:e<0?o.map(t=>t.toReversed()).toReversed():o,r)}(t,e,r))}),b=[];for(let t=0;t<x.length;t++){const n=x[t].filter(t=>Math.abs(rh(t.beziers))>u);n.length&&(n.sort((t,n)=>pc(t.beziers,n.beziers)),b.push(n))}"undefined"!=typeof _debug_&&(_debug_.generated.timing.simplifyPaths=performance.now()-o);const I=s?b:b.map(t=>t.map(t=>{const{beziers:e}=t,r=function(t,n){!function(t){sh(function(t){const n=t.length;let e=0;for(let r=0;r<n;r++){const o=t[(r-1+n)%n],i=t[r];e+=Vn(i,[0,1])+E(se(o,1),se(i,0))}return e}(t)/(2*uh))}(t);const e=t.map(t=>t.map(t=>[t[0],t[1]])).filter(t=>oh(t)>n),r=e.length;for(let t=0;t<r;t++){const n=e[t],o=e[(t+1)%r],i=n[n.length-1],c=o[0];c[0]===i[0]&&c[1]===i[1]||(i[0]=c[0],i[1]=c[1])}return e}(e,lh(...h.map(t=>fh(t.box[0][0]-t.box[1][0])),...h.map(t=>fh(t.box[0][1]-t.box[1][1]))));return n(r,t.idx)}));return function(t){if("undefined"!=typeof _debug_)for(const n of t)_debug_.generated.elems.loop.push(...n),_debug_.generated.elems.loops.push(n)}(I),I}const ph=Math.max,hh=Math.abs;function dh(t,n){const e=t[0],r=t[1],o=t[2],i=t[3],c=e[0],s=e[1],u=r[0],f=r[1],l=o[0],a=o[1],p=i[0],h=i[1],d=n[0],v=n[1],g=c-d,m=u-d,x=l-d,b=p-d,I=s-v,_=f-v,N=a-v,S=h-v,E=g*g,w=6*g*m,M=6*x*b,O=I*I,T=6*I*_,C=6*N*S,y=6*m*b+9*x*x,P=2*g*b+18*m*x,A=6*g*x+9*m*m,B=6*_*S+9*N*N,z=2*I*S+18*_*N,F=6*I*N+9*_*_;return[6*(b*b-M+(E-w)+y+(A-P)+(S*S-C+(O-T)+B+(F-z))),5*(M+5*w+3*P-2*(y+2*A+3*E)+(C+5*T+3*z-2*(B+2*F+3*O))),4*(y-3*(P-2*A)-5*(2*w-3*E)+(B-3*(z-2*F)-5*(2*T-3*O))),3*(P-2*(2*A-5*(w-2*E))+(z-2*(2*F-5*(T-2*O)))),2*(A-5*(w-3*E)+(F-5*(T-3*O))),w-6*E+(T-6*O)]}function vh(t,n){const e=t[0],r=t[1],o=t[2],i=e[0],c=e[1],s=r[0],u=r[1],f=o[0],l=o[1],a=n[0],p=n[1],h=i-a,d=s-a,v=f-a,g=c-p,m=u-p,x=l-p,b=h*h,I=h*d,_=d*v,N=g*g,S=g*m,E=m*x,w=g*x+m*m*2,M=h*v+d*d*2;return[x*x+N+2*w-4*(E+S)+(v*v+b+2*M-4*(_+I)),3*(E-w+(3*S-N)+(_-M+(3*I-b))),w-3*(2*S-N)+(M-3*(2*I-b)),S-N+(I-b)]}function gh(t,n){const[[e,r],[o,i]]=t,[c,s]=n,u=e-c,f=o-c,l=r-s,a=i-s,p=u*f+l*a,h=l*l+u*u;return[f*f+a*a+(h-2*p),p-h]}const mh=Math.sqrt;function xh(t,n){let e;if(4===t.length)e=dh(t,n);else if(3===t.length)e=vh(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:Ln(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=gh(t,n)}const r=Bn(e,0,1);r.push(0),r.push(1);let o,i=Number.POSITIVE_INFINITY;for(const e of r){const r=vo(t,e),c=ml(r,n);c<i&&(i=c,o={p:r,t:e,d:mh(c)})}return o}const bh=Math.sqrt;function Ih(t){let n=Number.NEGATIVE_INFINITY;for(let e=0;e<t.length;e++){const r=t[e],o=Math.abs(r[0]),i=Math.abs(r[1]);o>n&&(n=o),i>n&&(n=i)}return n}function _h(t){return Math.max(t.hL+t.hEL,t.hR+t.hER)}function Nh(t,n){const e=_h(t)-_h(n);return 0!==e?e:t.tS-n.tS}class Sh{compare;heap=[];constructor(t){this.compare=t}insert(t){const n=this.heap;n.push(t);let e=n.length-1;for(;;){const r=(e-1-(e+1)%2)/2;if(-1===r)return;const o=n[r];if(this.compare(t,o)<0)break;n[r]=t,n[e]=o,e=r}}popMax(){const t=this.heap,n=t[0];return t[0]=t[t.length-1],t.length--,this.swimDown(),n}swimDown(){const t=this.heap,n=t.length;let e=0;for(;;){const r=2*e+1;if(r>=n)break;const o=2*e+2,i=o>=n||this.compare(t[r],t[o])>0?r:o,c=t[i],s=t[e];if(this.compare(s,c)>0)break;t[i]=s,t[e]=c,e=i}}swapMinOrMax(t){this.heap[0]=t,this.swimDown()}static getParentIdx(t){return(t-1-(t+1)%2)/2}static getLeftChild(t){return 2*t+1}static getRightChild(t){return 2*t+2}}const Eh=Math.max;function wh(t,n,e,r=50){if(1===t.length)return xh(n,t[0]).d;if(1===n.length)return function(t,n){let e;if(4===t.length)e=dh(t,n);else if(3===t.length)e=vh(t,n);else{if(2!==t.length){if(1===t.length)return{p:t[0],t:0,d:Ln(t[0],n)};throw new Error("The given bezier curve must be of order <= 3.")}e=gh(t,n)}const r=Bn(e,0,1);r.push(0),r.push(1);let o,i=Number.NEGATIVE_INFINITY;for(const e of r){const r=vo(t,e),c=ml(r,n);c>i&&(i=c,o={p:r,t:e,d:bh(c)})}return o}(t,n[0]).d;if(2===t.length&&2===n.length){const e=xh(n,t[0]).d,r=xh(n,t[t.length-1]).d;return e>r?e:r}const o=Eh(Ih(t),Ih(n));e=e||o/1e6;const[i,c]=Mh(t,0,1),s={tS:0,tE:1,hL:xh(n,t[0]).d,hR:xh(n,t[t.length-1]).d,hEL:i,hER:c},u=new Sh(Nh);u.insert(s);let f=0,l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;for(;;){const o=u.heap[0],{tS:i,tE:c,hL:s,hR:p}=o,h=(i+c)/2,[d,v]=Mh(t,i,h),[g,m]=Mh(t,h,c),x=vo(t,h),b=Ln(x,xh(n,x).p),I=Eh(s,b,p);if(I>a&&(a=I),l=_h(o),l-a<e)return a;if(f++>r)return a;const _={tS:i,tE:h,hL:s,hR:b,hEL:d,hER:v},N={tS:h,tE:c,hL:b,hR:p,hEL:g,hER:m};u.swapMinOrMax(_),u.insert(N)}}function Mh(t,n,e){const r=(e+n)/2,o=Gn(t,n,r),i=Gn(t,r,e);return[oh(o),oh(i)]}function Oh(t,n=!1){const e=t;let r=e;const o=[];do{n&&r===e||Ae(r)||o.push(r),r=r.nextOnCircle}while(r!==e);return o}function Th(t){const n=[],e=[t],r=new Set;for(;e.length>0;){const t=nr(e.pop());if(0===t.length)continue;n.push(t);const o=t[0],i=t[t.length-1].next.prevOnCircle;r.add(o),r.add(i);const c=Oh(o,!0),s=Oh(i,!0),u=c.filter(t=>!r.has(t)),f=s.filter(t=>!r.has(t));for(const t of u)r.add(t);for(const t of f)r.add(t);e.push(...u,...f)}return n}const Ch=-1;class yh{constructor(t){this.datum=t,this.color=0}}function Ph(t){return!!t&&0===t.color}class Ah{constructor(t,n=!0,e){if(this.compare=t,this.duplicatesAllowed=n,this.getMinNode=this.getMinOrMaxNode(Ch),this.getMaxNode=this.getMinOrMaxNode(1),this.root=void 0,this.nodeCount=0,this.valueCount=0,e)for(const t of e)this.insert(t)}isEmpty(){return!this.root}find(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return e;e=e[r>0?1:Ch]}}toArrayInOrder(){const t=[];return function n(e){e&&(n(e[-1]),t.push(e.datum),void 0!==e.extras&&t.push(...e.extras),n(e[1]))}(this.root),t}insertMulti(t){const n=this;for(const e of t)n.insert(e)}insert(t){const n=this;n.root=function t(e,r){if(void 0===e)return n.valueCount++,n.nodeCount++,new yh(r);const o=n.compare(r,e.datum);if(0===o&&(n.duplicatesAllowed?(n.valueCount++,void 0===e.extras?e.extras=[r]:e.extras.push(r)):e.datum=r),0!==o){const n=o>0?1:Ch;e[n]=t(e[n],r),e[n].parent=e}return Ph(e[1])&&!Ph(e[-1])&&(e=Bh(Ch,e)),Ph(e[-1])&&Ph(e[-1][-1])&&(e=Bh(1,e)),Ph(e[-1])&&Ph(e[1])&&Fh(e),e}(n.root,t),n.root.color=1,n.root.parent=void 0}remove(t,n=!1,e){const r=this;if(void 0===r.root)return;let o;const i=function t(i,c){const s=r.duplicatesAllowed&&void 0!==i.extras;let u=r.compare(c,i.datum);if(u<0&&!i[-1]||u>0&&!i[1])return i;if(u<0){Ph(i[-1])||Ph(i[-1][-1])||(i=Yh(i));const n=t(i[-1],c);return null===n?null:(i[-1]=n,i[-1]&&(i[-1].parent=i),Vh(i))}if(Ph(i[-1])&&(i=Bh(1,i),u=r.compare(c,i.datum)),0===u&&!i[1]){if(s&&!n){if(void 0===e||!0===e(c,i.datum))return o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0),i;{const t=i.extras;for(let n=0;n<t.length;n++)if(!0===e(c,t[n]))return o=t.splice(n,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),i;return null}}return void 0===e||!0===e(c,i.datum)?(o=i.datum,r.valueCount-=1+(s?i.extras.length:0),void r.nodeCount--):null}if(Ph(i[1])||Ph(i[1][-1])||(i=function(t){return Fh(t),Ph(t[-1][-1])&&Fh(t=Bh(1,t)),t}(i),u=r.compare(c,i.datum)),0===u)if(s&&!n)if(void 0===e||!0===e(c,i.datum))o=i.datum,i.datum=i.extras.pop(),r.valueCount--,0===i.extras.length&&(i.extras=void 0);else{const t=i.extras;let n=!1;for(let s=0;s<t.length;s++)if(!0===e(c,t[s])){o=t.splice(s,1)[0],r.valueCount--,0===t.length&&(i.extras=void 0),n=!0;break}if(!n)return null}else{if(void 0!==e&&!0!==e(c,i.datum))return null;{r.valueCount-=1+(s?i.extras.length:0),o=i.datum;const t=r.getMinNode(i[1]);i.datum=t?.datum,r.duplicatesAllowed&&(i.extras=t?.extras),i[1]=zh(i[1]),r.nodeCount--}}else{const n=t(i[1],c);if(null===n)return null;i[1]=n}return i[1]&&(i[1].parent=i),Vh(i)}(r.root,t);return null!==i?(r.root=i,void 0!==r.root&&(r.root.color=1,r.root.parent=void 0),o):void 0}findBounds(t){const n=this;let e=n.root;const r=[void 0,void 0];if(void 0===e)return r;for(;e;){const o=n.compare(t,e.datum);o>=0?r[0]=e:r[1]=e,e=e[o>=0?1:Ch]}return r}findBoundsExcl(t){const n=this,e=n.root,r=[void 0,void 0];return void 0===e||function e(o){for(;o;){const i=n.compare(t,o.datum);if(0===i)return e(o[-1]),void e(o[1]);i>0?r[0]=o:i<0&&(r[1]=o),o=o[i>0?1:Ch]}}(e),r}findAll(t){const n=this;let e=this.root;for(;e;){const r=n.compare(t,e.datum);if(0===r)return[e.datum,...e.extras?e.extras:[]];e=e[r>0?1:Ch]}return[]}getMinOrMaxNode(t){return n=>{if(void 0===n&&(n=this.root),n){for(;n[t];)n=n[t];return n}}}min(t){void 0===t&&(t=this.root);const n=this.getMinNode(t);if(void 0!==n)return n.datum}max(t){void 0===t&&(t=this.root);const n=this.getMaxNode(t);if(void 0!==n)return n.datum}}function Bh(t,n){const e=n[-t];return n[-t]=e[t],e[t]&&(e[t].parent=n),e[t]=n,n.parent=e,e.color=n.color,n.color=0,e}function zh(t){if(t[-1])return Ph(t[-1])||Ph(t[-1][-1])||(t=Yh(t)),t[-1]=zh(t[-1]),t[-1]&&(t[-1].parent=t),Vh(t)}function Fh(t){t.color=(t.color+1)%2,t[-1].color=(t[-1].color+1)%2,t[1].color=(t[1].color+1)%2}function Yh(t){if(Fh(t),Ph(t[1][-1])){const n=Bh(1,t[1]);t[1]=n,n.parent=t,Fh(t=Bh(Ch,t))}return t}function Vh(t){return Ph(t[1])&&(t=Bh(Ch,t)),Ph(t[-1])&&Ph(t[-1][-1])&&(t=Bh(1,t)),Ph(t[-1])&&Ph(t[1])&&Fh(t),t}const{cpNodeComparator:Lh,getAllOnLoop:kh}=rr;function $h(t){const n=new Map;return kh(t).forEach(function(t){const e=t.cp.pointOnShape.curve.loop;let r=n.get(e);r||(r=new Ah(Lh,!1),n.set(e,r)),r.insert(t)}),n}function Xh(t,n=.125,e=50){let r=je(t.cpNode);for(;!Ae(r);)r=r.next;const o=Th(r),i=new Set;for(let t=0;t<o.length;t++){const r=o[t];let c=0;for(;c<r.length;){const t=c;for(;(c++,c!==r.length)&&!(qh(t,c,r,e)>n);)i.add(r[c])}}r=function(t,n){const e=n;if(t(e))return e;let r=n.next;for(;r!==e;){if(t(r))return r;r=r.next}}(t=>Ae(t)?t:void 0,r);for(const n of i)or(t=>2!==qe(t)&&!t.isHoleClosing)(n)||Ke(n,t.meta.cpTrees);return{cpNode:r,meta:{...t.meta,cpTrees:$h(r)}}}function qh(t,n,e,r){const o=[],i=Te(e[t],e[n].next);for(;t<n+1;t++)o.push(wh(Ce(e[t]),i,r));return Math.max(...o)}const{getAllOnLoop:Hh}=rr;function Dh(t){const n=[],e=Hh(t);for(const t of e)ke(t)&&!t.isHoleClosing&&n.push(t);return n}const Qh=function(t,n,e){const r=t.get(n);return void 0!==r&&r.has(e)},Gh=function(t,n,e){let r=t.get(n);void 0===r&&(r=new Set,t.set(n,r)),r.add(e)},{isOnSameCircle:Rh}=rr;function Uh(t){let n=t,e=t.prevOnCircle;for(;Ae(e);)e=e.prevOnCircle;const r=[];do{Ae(n)||r.push(n),n=n.nextOnCircle}while(n!==e);return r}function jh(t,n){const e=new Map,r=new Map;return Qe(t,function(t){const o=r.get(t)||n*t.cp.circle.radius,i=t.next,c=function(t,n,e=.4,r=16){if(4===n.length)return jn(t,n,e,r);if(3===n.length)return Un(t,n,e,r);if(2===n.length)return kn(t,n);if(1===n.length)return 0;throw new Error("The given bezier curve must be of order <= 3.")}([0,1],Ce(t)),s=i.cp.circle.radius;if(o-c>n*s)for(const t of Pe(i))if(r.set(t,o-c),!i.isHoleClosing){const{center:t}=i.cp.circle;Gh(e,t[0],t[1])}}),e}function Zh(t,n){let e=0;"undefined"!=typeof _debug_&&(e=performance.now());const r=function(t){const n=v(t);return n.reduce(function(t,n){return t.cp.circle.radius>=n.cp.circle.radius?t:n},n[0])}(je(t.cpNode));!function(t,n){const e=Dh(n);for(;e.length;){const r=e.pop(),{center:o}=r.cp.circle;if(!Qh(t,o[0],o[1])||r.isIntersection)continue;let i=r.prevOnCircle,c=!1;for(;!c;){i=i.next;const{center:e}=i.cp.circle;if(Qh(t,e[0],e[1]))if(Rh(i,n))c=!0;else{if(1===Uh(i).length)continue;c=!0}else{for(;Ae(i.prevOnCircle);)i=i.prevOnCircle;c=!0}}if(c){const t=i.prevOnCircle;t.next=i,i.prev=t,t.nextOnCircle=i,i.prevOnCircle=t}}}(jh(r,n),r);const o={cpNode:r,meta:{...t.meta,cpTrees:$h(r)}};return function(t){"undefined"!=typeof _debug_&&(_debug_.generated.timing.sats=performance.now()-t)}(e),o}const Wh={maxCurviness:.05,maxLength:40,applySat:!0,satScale:2,simplify:!0,simplifyTolerance:2**-4,minBezLength:2**-6,angleIncrement:15},Jh={maxCurviness:{range:[.01,3]},maxLength:{range:[1,1024],scaleByMaxRadius:!0},angleIncrement:{range:[.1,360]},satScale:{range:[1,Number.POSITIVE_INFINITY]},simplifyTolerance:{range:[2**-10,1024],scaleByMaxCoordinate:!0},minBezLength:{range:[2**-20,2],scaleByMaxCoordinate:!0}};function Kh(t){return[t[1],-t[0]]}function td(t,n){return Ee(n)&&Se(n).isDull?-te(Kh(Se(n).tangents[0]),ie(Kn(n.p,t.center))):0}function nd(t){return t[0]*t[0]+t[1]*t[1]}function ed(t,n,e){return t[0]*(n[1]*e[2]-n[2]*e[1])-t[1]*(n[0]*e[2]-n[2]*e[0])+t[2]*(n[0]*e[1]-n[1]*e[0])}function rd(t){const n=t[0],e=t[1],r=t[2],o=nd,i=.5*ed([o(n),n[1],1],[o(e),e[1],1],[o(r),r[1],1]),c=.5*ed([n[0],o(n),1],[e[0],o(e),1],[r[0],o(r),1]),s=ed([n[0],n[1],1],[e[0],e[1],1],[r[0],r[1],1]);return[i/s,c/s]}function od(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}const id=Number.EPSILON/2,cd=id*id;function sd(t){const n=t*cd;return n/(1-n)}const ud=Ir,fd=x,{abs:ld}=Math,ad=sd(3);function pd(t,n,e){const r=t.length-1,o=[t[0]];let i=n[0];const c=[i];for(let s=1;s<r;s++){const r=o[s-1],u=e*r[1],f=ld(e)*i+ld(u),l=t[s];i=n[s]+f+ld(l[1]+u);const a=fd(l,ud(e,r));o.push(a),c.push(i)}return{coeffs:o,errBound:c.map(t=>ad*t)}}const hd=$,dd=B;function vd(t,n){const e=t.length-1,r=[t[0]];for(let o=1;o<e;o++)r.push(dd(t[o],hd(n,r[o-1])));return r}const gd=dt,md=sr,xd=x,bd=Number.EPSILON,Id=sd(3),{sqrt:_d}=Math;function Nd(t,n,e,r=[0,1],o=void 0,i=void 0,c=!1,s=0){const[u,f]=r,l=n.ps,a=0===s&&n===o;let{polyDd:p,polyE:h,getPolyExact:d}=Ei(l,e);const v=a?pd(p,h.map(t=>t/Id),i):void 0,g=c&&a?pd(v.coeffs,v.errBound.map(t=>t/Id),i):void 0,m=c&&a?pd(g.coeffs,g.errBound.map(t=>t/Id),i):void 0,{polyDd:x,polyE:b,getPolyExact:I}=void 0!==m?{polyDd:m.coeffs,polyE:m.errBound,getPolyExact:()=>vd(vd(vd(d(),i),i),i)}:void 0!==v?{polyDd:v.coeffs,polyE:v.errBound,getPolyExact:()=>vd(d(),i)}:{polyDd:p,polyE:h,getPolyExact:d},_=ao(x,u,f,b,I),N=1===i&&n===o.next||0===i&&n===o,S=0===i&&n===o.prev||1===i&&n===o;0===u?N||_.push({tS:0,tE:0,multiplicity:1}):1===u?S||_.push({tS:1,tE:1,multiplicity:1}):_.push({tS:u,tE:u,multiplicity:1}),0===f?N||_.push({tS:0,tE:0,multiplicity:1}):1===f?S||_.push({tS:1,tE:1,multiplicity:1}):_.push({tS:f,tE:f,multiplicity:1});const E=_.map(r=>{const{tS:o,tE:i}=r;if(i<u||o>f)return;const c=(o+i)/2,s=c<0?0:c>1?1:c,a=No(l,[o,i]),p=function(t){const n=t[0],e=t[1];return[(n[0]+e[0])/2,(n[1]+e[1])/2]}(a),h=function(t,n,e){const r=n[0],o=n[1],i=r[0],c=r[1],s=o[0],u=o[1],f=e[0],l=e[1];let a=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;for(const[n,e]of[[i,c],[i,u],[s,c],[s,u]]){const r=gd(n,f),o=gd(e,l),i=xd(md(r,r),md(o,o))[1],c=i*(1-2**t*bd),s=i*(1+2**t*bd);c<=a&&(a=c),s>=p&&(p=s)}return[a,p]}(t,a,e),d=0===s?1:s;return{curve:0===s?n.prev:n,p,t:d,d:(_d(h[0])+_d(h[1]))/2,dSquaredI:h,box:a}});return E.filter(t=>void 0!==t)}const Sd=ml;function Ed(t,n){const e=t[0],r=t[1],o=e[0],i=e[1],c=r[0],s=r[1],u=n[0],f=n[1];return u<o?f<i?Sd(t[0],n):f>s?Sd([o,s],n):(o-u)**2:u>c?f<i?Sd([c,i],n):f>s?Sd(t[1],n):(u-c)**2:f<i?(i-f)**2:f>s?(f-s)**2:0}const wd=Wn(Ji);function Md(t,n){const e=[0,1,2,3].map(e=>function(t,n){const e=ml,r=n[0],o=n[1],i=e(r,o);if(0==i)return e(t,r);let c=((t[0]-r[0])*(o[0]-r[0])+(t[1]-r[1])*(o[1]-r[1]))/i;return c=Math.max(0,Math.min(1,c)),e(t,[r[0]+c*(o[0]-r[0]),r[1]+c*(o[1]-r[1])])}(n,[t[e],t[(e+1)%4]])),r=ml(t[0],t[1]),o=ml(t[0],t[3]);return e[0]<=o&&e[2]<=o&&e[1]<=r&&e[3]<=r?0:Math.min(...e)}const Od=Wn(ih);function Td(t,n,e,r=void 0,o=void 0,i=!1,c=0){n=function(t,n){const e=function(t,n){let e=Number.POSITIVE_INFINITY;for(let r=0;r<t.length;r++){const o=t[r],i=o.curve.ps,c=vo(i,o.ts[0]),s=vo(i,o.ts[1]),u=Math.min(ml(n,c),ml(n,s));u<e&&(e=u)}return(1+2**-10)*e}(t,n);return t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Ed(wd(c),n)<=e&&r.push(i)}return r}(t,n,e),t=function(t,n,e){const r=[];for(let o=0;o<t.length;o++){const i=t[o],c=i.curve.ps;Md(Od(c),n)<=e&&r.push(i)}return r}(t,n,e),t}(n,e);const s=[];for(let u=0;u<n.length;u++){const f=n[u],l=Nd(t,f.curve,e,f.ts,r,o,i,c);s.push(...l)}let u=Number.POSITIVE_INFINITY;for(let t=0;t<s.length;t++){const n=s[t].dSquaredI[1];n<u&&(u=n)}const f=[];for(let t=0;t<s.length;t++){const n=s[t];n.dSquaredI[0]<=u&&f.push(n)}return f.map(t=>vr(t.curve,t.t,!1))}const{max:Cd,ceil:yd,log2:Pd}=Math;function Ad(t,n){return n.map(n=>Td(5,n,t)[0])}function Bd(t,n){return[n*t[0],n*t[1]]}function zd(t,n,e){const r=od(e);let o,i,c,s,u=1,f=0;do{i=oe(Bd(e,u),n),c=Ad(i,t),s=od(Kn(i,rd(c.map(t=>t.p)))),o=s<r,u/=2,f++}while(!o&&f<3);return{newX:i,newV:s,newPoss:c}}const{isSharp:Fd}=rr,Yd=Kn;function Vd(t,n,e,r,o){const i=2**-32*o,c=[t[0],t[n],t[t.length-1]],s=[r[0],r[n],r[t.length-1]],u=[[c[0],c[1],c[2]],[c[1],c[2],c[0]],[c[2],c[0],c[1]]][e],f=[[s[0],s[1],s[2]],[s[1],s[2],s[0]],[s[2],s[0],s[1]]][e];if(Fd(u[0][0]))return;let l,a,p=0,h=function(t,n,e){const r=n[0][0].cp.circle,o=r.center,i=Td(Cd(0,yd(Pd(t/r.radius)))+1,e[1],o)[0];return rd([n[0][0].cp.pointOnShape.p,i.p,n[2][1].cp.pointOnShape.p])}(o,u,f),d=Number.POSITIVE_INFINITY;for(;d>i&&p<10;){if(p++,l=Ad(h,f),!Number.isFinite(h[0])||!Number.isFinite(h[1]))return;a=rd(l.map(t=>t.p));const t=Yd(h,a);if(!Number.isFinite(t[0])||!Number.isFinite(t[1]))return;const n=zd(f,h,t);h=n.newX,l=n.newPoss;const e=od(t);d=Math.abs(e-n.newV)}const v=(Ln(h,l[0].p)+Ln(h,l[1].p)+Ln(h,l[2].p))/3,g={center:h,radius:v};let m=0;for(let t=0;t<3;t++){const n=l[t],e=ie(Kn(n.p,h)),r=ne(e);if(Ee(n)&&Se(n).isDull){const t=Ne(n.curve.ps,n.curve.next.ps).tangents.map(ne),r=Math.asin(ee(t[0],e)),o=Math.asin(ee(e,t[1]));let i=0;r>0&&(i+=r),o>0&&(i+=o),m+=i}else{const t=ie(se(n.curve.ps,n.t));m+=Math.abs(Math.asin(ee(r,t)))}}const x=[];for(let t=0;t<r.length;t++){const n=Td(5,r[t],h)[0];x.push(Ln(n.p,h))}const b=Math.min(...x);return{poss:l,circle:g,error:1*Math.abs(v-b)+1*m,δ3s:u}}const Ld=Wn(t=>!!Ee(t)&&Se(t).isQuiteSharp);function kd(t){let n=t[0];const e=t[1],r=[];let o=!0;do{if(!o){o=!0,n=n.prevOnCircle;continue}o=!1;const t=n.cp.pointOnShape,e=n.next.cp.pointOnShape;e.curve===t.curve&&Ld(t)&&Ld(e)||(e.curve===t.curve&&d(n.next.cp,n.cp)>0?r.push({curve:t.curve,ts:[t.t,e.t]}):(r.push({curve:t.curve,ts:[t.t,1]}),t.curve.loop===e.curve.loop&&$d(r,t.curve,e.curve,e.t))),n=n.next}while(n!==e);return r}function $d(t,n,e,r){let o=n;do{o=o.next;const n=o===e?r:1;t.push({curve:o,ts:[0,n]})}while(o!==e)}function Xd(t,n,e,r){const o={pointOnShape:n,order:e,order2:r},i=t.findBounds({cp:o});if(void 0!==i[0]||void 0!==i[1])return void 0===i[0]||void 0===i[1]?t.max(t.root):i[0].datum}function qd(t,n,e,r,o,i){if(void 0!==i&&!function(t,n,e){const r=d(n,e.cp);if(r<0)return!0;if(0===r)return!0;const o=t.getMinNode();if(void 0===o)return!0;const i=o.datum;return d(t.getMaxNode().datum.cp,n)<0&&i===e}(r,o,i.next)&&!t)return;const c={cp:o,isHoleClosing:n,isIntersection:e},s=void 0===i?c:i,u=void 0===i?c:s.next;return u.prev=c,s.next=c,c.prev=s,c.next=u,r.insert(c),c}function Hd(t,n,e,r,o,i,c){let s=!1;const u=i.map((i,u)=>{const f=r[u],l=o.get(i.curve.loop),a={pointOnShape:i,circle:e,order:f,order2:0},p=void 0===c?Xd(l,i,f,0):c[u],h=qd(t,n,!1,l,a,p);return void 0===h&&(s=!0),h});return s||function(t,n){n=n.slice().sort(function(t){const n=t.center;return function(t,e){let r=t.cp.pointOnShape.p,o=e.cp.pointOnShape.p;r=[r[0]-n[0],r[1]-n[1]],o=[o[0]-n[0],o[1]-n[1]];const i=Math.atan2(r[1],r[0]);return Math.atan2(o[1],o[0])-i}}(t));const e=n.length;for(let t=0;t<e;t++)n[t].nextOnCircle=n[(t+1)%e],n[t].prevOnCircle=n[(t-1+e)%e]}(e,u),{anyFailed:s,cpNodes:u}}const Dd=Math.cos(Math.PI/180*1);function Qd(t,n,e,r,o,i){const{cpTrees:c,maxCoordinate:s}=t,u=2e-14*s,f=.02*u,l=Xd(c.get(n.curve.loop),n,r,o);if(!l)return;const a=[l,l.next],{p,t:h}=n;for(const t of a){const n=t.cp.pointOnShape.p,r=Ln(p,n);if(!(r>u)&&(te(ie(Kn(n,t.cp.circle.center)),ie(Kn(p,e.center)))>Dd||r<f&&0!==h&&1!==h))return t}}function Gd(t,n){const e=[];for(const t of n)e.push([t,t.next]);const r=function(t,n){const e=t.map(kd);let r,o=Number.POSITIVE_INFINITY;for(let i=1;i<t.length-1;i++)for(let c=0;c<3;c++){const s=Vd(t,i,c,e,n);if(!s)continue;const{circle:u,poss:f,error:l,δ3s:a}=s;l<o&&(o=l,r={circle:u,poss:f,δ3s:a})}return r}(e,t.maxCoordinate),{circle:o,poss:i,δ3s:c}=r,s=[];for(let t=0;t<3;t++)s.push(td(o,i[t]));const u=[];for(let n=0;n<i.length;n++){const e=Qd(t,i[n],o,s[n],0);void 0!==e&&qe(e)<=2&&!e.isHoleClosing&&u.push(e)}return{closeBysFor3Prong:u,cpNodes:0===u.length?Hd(!0,!1,o,s,t.cpTrees,i,c.map(t=>t[0])).cpNodes:[]}}let Rd=0;function Ud(t,n){if(we(n.cp.pointOnShape))return{closeBysFor3Prong:void 0,addedCpNodes:[]};const e=[];for(;;){if(void 0===n)continue;const r=De(n);if(r.length<=2)break;const{closeBysFor3Prong:o,cpNodes:i}=Gd(t,r);if(e.push(i),o.length>0)return{closeBysFor3Prong:o,addedCpNodes:e};if("undefined"!=typeof _debug_&&++Rd===_debug_.directives.stopAfterThreeProngsNum)return}return{closeBysFor3Prong:undefined,addedCpNodes:e}}function jd(t){for(const n of t)return n}function Zd(t,n,e,r){for(const o of[n[0]])Pe(o).forEach(t=>{e.delete(t),r.delete(t)}),Ke(o,t)}const{cpNodeComparator:Wd}=rr;function Jd(t,n,e){let r;for(let o=0;o<e.length;o++){const i=e[o],c=new Ah(Wd,!1);let s,u;for(const t of i){const n={center:t.p,radius:0},e={pointOnShape:t,circle:n,order:1,order2:0};s=qd(!0,!1,!1,c,{pointOnShape:t,circle:n,order:-1,order2:0},u),u=qd(!0,!1,!1,c,e,s),s.prevOnCircle=u,u.prevOnCircle=s,s.nextOnCircle=u,u.nextOnCircle=s}r||(r=s);const f=t[o];n.set(f,c)}return r}const Kd=function(t,n,e,r,o){let i=t.get(n);void 0===i&&(i=new Map,t.set(n,i));let c=i.get(e);void 0===c&&(c=new Map,i.set(e,c)),c.set(r,o)};let tv;function nv(t,n,e,r){tv=performance.now();const o=new Map,i=[],c=[],s=[],u=[],f=[];for(const t of e){const n=r.get(t).toArrayInOrder();for(const e of n){const{p:n,t:r}=e.cp.pointOnShape;Kd(o,t,n[0],n[1],e)}for(let n of t.curves){const t=n.ps,e=bl(t,!0);s.push(e);const r=wd(t);i.push(r);const o=ih(t);c.push(o);const l=Ne(n.ps,n.next.ps);l.isQuiteSharp?u.push(n):l.isQuiteDull&&f.push(n)}}return{maxCoordinate:t,squaredDiagonalLength:n,looseBoundingBoxes:i,tightBoundingBoxes:c,boundingHulls:s,sharpCorners:u,dullCorners:f,loops:e,cpTrees:r,pointToCpNode:o}}function ev(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];oh(o.ps)<t||Ne(o.ps,o.next.ps).isQuiteSharp&&e.push(vr(o,1,!0))}return e}}const rv=x,ov=Ir;function iv(t,n){let e=[0,0];for(let r=0;r<t.length;r++)e=rv(t[r],ov(n,e));return e}const cv=A,sv=P,uv=Ir,fv=x,lv=ur;function av(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[uv(3,fv(sv(s,n),uv(3,sv(r,i)))),uv(6,lv(cv(i,n),-2*r)),uv(3,sv(r,n))],[uv(3,fv(sv(u,e),uv(3,sv(o,c)))),uv(6,lv(cv(c,e),-2*o)),uv(3,sv(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[lv(cv(2*i,2*n),-4*r),sv(2*r,2*n)],[lv(cv(2*c,2*e),-4*o),sv(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[sv(r,n)],[sv(o,e)]]}(t);if(1===t.length)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const pv=P,hv=x,dv=Ir,vv=ur;function gv(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[dv(6,hv(pv(s,n),dv(3,pv(r,i)))),dv(6,vv(pv(i,2*r),n))],[dv(6,hv(pv(u,e),dv(3,pv(o,c)))),dv(6,vv(pv(c,2*o),e))]]}if(3===t.length){const[[n,e],[r,o],[i,c]]=t;return[[vv(pv(2*i,4*r),2*n)],[vv(pv(2*c,4*o),2*e)]]}if(t.length<=2)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}const mv=sr,xv=x,bv=b,Iv=dt,_v=J,Nv=$,Sv=B,Ev=D;function wv(t,n,e=!1){const r=n.curve.ps,{p:o,t:i}=n;let c=-function(t,n){const[e,r]=av(t),[o,i]=gv(t),c=iv(e,n),s=iv(r,n),u=iv(o,n),f=iv(i,n),l=bv(mv(c,f),mv(s,u)),a=xv(mv(c,c),mv(s,s)),p=mv(a,mv(a,a)),h=Math.sqrt(p[1]);return l[1]/h}(r,i);(c<t||e)&&(c=t);const s=function(t,n){const[e,r]=function(t){if(4===t.length)return function(t){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[Nv(3,Sv(Iv(s,n),Nv(3,Iv(r,i)))),Nv(6,Ev(_v(i,n),-2*r)),Nv(3,Iv(r,n))],[Nv(3,Sv(Iv(u,e),Nv(3,Iv(o,c)))),Nv(6,Ev(_v(c,e),-2*o)),Nv(3,Iv(o,e))]]}(t);if(3===t.length)return function(t){const[[n,e],[r,o],[i,c]]=t;return[[Ev(_v(2*i,2*n),-4*r),Iv(2*r,2*n)],[Ev(_v(2*c,2*e),-4*o),Iv(2*o,2*e)]]}(t);if(2===t.length)return function(t){const[[n,e],[r,o]]=t;return[[Iv(r,n)],[Iv(o,e)]]}(t);if(1===t.length)return[[[0]],[[0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t);return[kr(e,n),kr(r,n)]}(r,i).map(t=>t[t.length-1]),u=[-s[1],s[0]],f=Math.sqrt(u[0]**2+u[1]**2);return{center:[o[0]-u[0]/(c*f),o[1]-u[1]/(c*f)],radius:1/c}}const{abs:Mv}=Math,Ov=P,Tv=m;function Cv(t,n,e){const r=Mv(t[1]-n[1])>Mv(t[0]-n[0]);let o,i,c,s,u,f;r?(o=t[1],i=t[0],c=n[1],s=n[0],u=e[1],f=e[0]):(o=t[0],i=t[1],c=n[0],s=n[1],u=e[0],f=e[1]);const l=Ff(Ov(i,s),Ov(o,c)),a=b([0,s],br(c,l)),p=Ff(x(b(x(Tv(c,c),Tv(s,s)),x(Tv(u,u),Tv(f,f))),Co(sr(a,Ov(f,s)))),Co(x(Ov(c,u),sr(l,Ov(s,f))))),h=x(sr(l,p),a);return r?[h[1],p[1]]:[p[1],h[1]]}function yv(t,n,e,r){const o=(2**-14*t)**2;if(ml(n,r)<o)return;const i=[(n[0]+r[0])/2,(n[1]+r[1])/2],c=[r[0]-n[0],r[1]-n[1]],s=[-c[1],c[0]],u=Jn([n,e],[i,[i[0]+s[0],i[1]+s[1]]]);return u?te([u[0]-n[0],u[1]-n[1]],[e[0]-n[0],e[1]-n[1]])<0?void 0:u:void 0}function Pv(t,n){const[e,r]=t,[o,i]=n,c=P(e,o),s=P(r,i);return x(sr(c,c),sr(s,s))[1]}function Av(t,n,e){if(t.length<=1)return t;const r=[];for(const o of t){const t=o.curve.ps;Ed(wd(t),n)<=1.0009765625*e&&r.push(o)}return r}function Bv(t,n,e,r){if(Ee(r)&&Se(r).isDull)return;const o={radius:n,center:e};if(Qd(t,r,o,td(o,r),0))return;const{anyFailed:i,cpNodes:c}=Hd(!1,!1,o,[-.5,.5],t.cpTrees,[r,r])}const zv=m,Fv=x,Yv=b,Vv=br,{asin:Lv,acos:kv,cos:$v,sqrt:Xv,PI:qv}=Math,Hv=1e3*2**-46;function Dv(t,n,e){if(n+e>=t)return Number.POSITIVE_INFINITY;const r=P(t,n),o=Vv(n,r),i=t-n,c=n*i,s=(c-n*e-e*e/2)/(c+i*e),u=Ff(Yv(Yv(o,zv(n,e)),zv(e,e/2)),Fv(o,Vv(e,r)))[1];return kv(s),n*kv(u)}Dv(699,698,Hv),function(t,n,e){const r=698+e;const o=t*t-r*r-1,i=2*r*1,c=Ff(Yv(Yv(zv(t,t),zv(r,r)),zv(1,1)),zv(-2*r,1))[1];kv(-o/i),kv(c)}(699,0,Hv),function(t,n,e){const r=698+e,o=699,i=Xv((1-(r*r+o*o-2*r*o))/(4*r*o));Lv(i)}(0,0,Hv);const{ceil:Qv,log2:Gv,max:Rv,sqrt:Uv,abs:jv,sin:Zv,cos:Wv}=Math;function Jv(t,n,e,r,o){const{loops:i,maxCoordinate:c,squaredDiagonalLength:s,cpTrees:u}=t,f=o.curve.loop,l=(2**-21*c)**2,a=2**-46*c,p=Uv(s),h=1/p,d=2**-16*c,[v,g]=function(t,n,e,r,o){let i;const c=o.p;let s;if(n)i=[c[0],c[1]-e],s=e;else if(0===t)({center:i,radius:s}=wv(r,o));else{({center:i,radius:s}=wv(r,o,!0));const n=Kn(o.p,i),e=ce(Zv(t),Wv(t))(n);i=oe(o.p)(e)}return[i,s]}(r,n,p,h,o),m=o.p;let x=function(t,n,e,r,o,i,c){if(n)return r.filter(t=>t!==e).flatMap(t=>t.curves.map(t=>({curve:t,ts:[0,1]})));const s=Ee(i)&&Se(i).isDull?1===i.t&&0===t?-1:0===i.t?1:td(c,i):0,u=Xd(o.get(e),i,s,0);return u&&u!==u.next.next?kd([u,u]):e.curves.map(t=>({curve:t,ts:[0,1]}))}(r,n,f,i,u,o,{center:v,radius:g}),b=v;const I=Uv(function(t,n,e,r){let o=Number.POSITIVE_INFINITY;for(let i=0;i<n.length;i++){const c=n[i],s=c.curve.ps,u=2;for(let n=0;n<u+1;n++){const i=yv(t,e,r,vo(s,c.ts[n/u]));if(i){let t=ml(e,i);t<o&&(o=t)}}}return(1+2**-10)*o}(c,x,m,v));let _,N;g>I&&(b=re(m,v,I/g));let S=0;for(;S<25;){const i=Pv(b,o.p);S<2&&(x=Av(x,b,i));const s=Td(Rv(0,Qv(Gv(c/i)))+1,x,b,o.curve,o.t,e&&0==S&&g!==1/h,r).map(t=>vr(t.curve,t.t,!1));let u,f=Number.NEGATIVE_INFINITY;_=[];for(const t of s){if(void 0===t)continue;const n=Pv(o.p,t.p);n>f&&(f=n,u=t),0!==n&&_.push(t)}const p=f;if(N=u,void 0===N||0===p)return;const m=Pv(b,N.p);if(0===S&&g<(1-d)*Uv(m))return void Bv(t,g,v,o);if(!n&&p<=Rv(Dv(g,Uv(m),4*a),l))return;if(b=Cv(b,o.p,N.p),jv(Uv(i)-Uv(m))<a)break;if(S++,25===S)return}return{circle:{center:b,radius:Ln(b,N.p)},zs:[N]}}function Kv(t,n,e,r){const{cpTrees:o}=t;e[0]=0===e[0].t?vr(e[0].curve.prev,1,!0):e[0];const i=e.map(t=>td(n,t));for(let r=0;r<e.length;r++)if(Qd(t,e[r],n,i[r],0))return;const{anyFailed:c,cpNodes:s}=Hd(r,r,n,i,o,e);if(!c)return r&&function(t,n){const[e,r]=n,o=r.cp,i=qd(!0,!0,!1,t.get(o.pointOnShape.curve.loop),{...o,order2:1},r),c=qd(!0,!0,!1,t.get(e.cp.pointOnShape.curve.loop),{...e.cp,order2:-1},e.prev);c.prevOnCircle=i,c.nextOnCircle=i,i.prevOnCircle=c,i.nextOnCircle=c,r.next=e,e.prev=r,c.next=i,i.prev=c}(o,s),s[0];s.forEach(t=>{void 0!==t&&Je(t,o)})}const{PI:tg,atan2:ng}=Math;function eg(t,n,e,r){let o;const i=n*tg/180;for(let n=0;n<e.length;n++){const c=[0],s=e[n];if(1===s.t){const{curve:t}=s,n=Ne(t.ps,t.next.ps);if(n.isQuiteDull){const t=Kh(n.tangents[0]),e=Kh(n.tangents[1]),r=(ng(t[1],t[0])+2*tg)%(2*tg),o=((ng(e[1],e[0])+2*tg)%(2*tg)-r+2*tg)%(2*tg);let s=i;for(;s<=o-i/2;)c.push(s),s+=i}}for(let e of c){const i=Jv(t,!1,r,e,s);if(i){const{circle:n,zs:e}=i,r=Kv(t,n,[s,...e],!1);o=o||r}if("undefined"!=typeof _debug_&&n+1===_debug_.directives.stopAfterTwoProngsNum)return}}return o}function rg(t,n,e,r){let o;for(let i=0;i<e.length;i++){const c=eg(t,n,e[i],r);o=void 0===o?c:o}return o}function og(t,n=.4,e=10,r=2**-16){const o={r:[0,1]};let i=o;for(;void 0!==i;){const o=i.r,c=Gn(t,o[0],o[1]);if(oh(c)<=e&&Qn(c)<=n||o[1]-o[0]<=r){i=i.next;continue}const s=(o[0]+o[1])/2,u=[o[0],s],f=[s,o[1]];i.r=u,i.next={r:f,next:i.next}}i=o;const c=[];for(;void 0!==i;)c.push(i.r[0]),void 0===i.next&&c.push(i.r[1]),i=i.next;return c}function ig(t,n,e){return function(r){const o=[],i=r.curves;for(let r=0;r<i.length;r++){const c=i[r],s=c.ps;if(oh(s)<t)continue;let u=og(s,n,e);u=2===u.length?[.5]:u,u.push(...zn(s)),u=u.filter(t=>0!==t&&1!==t);const f=u.map(t=>vr(c,t,!0));o.push(...f)}return o}}const cg=Ir,sg=P,ug=x,fg=Ir,lg=Co,ag=yo,pg=Ir,hg=sr,dg=x,vg=b;const gg=P,mg=Ir,xg=sr,bg=x,Ig=b;function _g(t){if(xt(t))return{minima:[],maxima:[],inflections:[]};if(4===t.length&&pt(t)&&(t=Pu(t)),3===t.length){const n=function(t){const[[n,e],[r,o],[i,c]]=t,s=gg(r,n),u=gg(i,r),f=Ig(u,s),l=gg(o,e),a=gg(c,o),p=Ig(a,l),h=bg(Ig(mg(n,Ig(f,[0,r])),mg(r,Ig(u,[0,r]))),Ig(mg(e,Ig(p,[0,o])),mg(o,Ig(a,[0,o]))));return[bg(xg(f,f),xg(p,p)),qc(h)]}(t);return{minima:[],maxima:ao(n,0,1).map(t=>(t.tS+t.tE)/2),inflections:[]}}const n=function(t){const[[n,e,r],[o,i,c]]=av(t),[[s,u],[f,l]]=gv(t),[[a],[p]]=function(t){if(4===t.length){const[[n,e],[r,o],[i,c],[s,u]]=t;return[[fg(6,ug(sg(s,n),fg(3,sg(r,i))))],[fg(6,ug(sg(u,e),fg(3,sg(o,c))))]]}if(t.length<=3)return[[[0,0]],[[0,0]]];throw new Error("The given bezier curve must be of order <= 3.")}(t),h=hg(a,i),d=hg(p,e),v=hg(u,c),g=hg(u,i),m=hg(f,f),x=hg(s,c),b=hg(l,r),I=hg(l,e),_=hg(f,r),N=hg(r,e),S=hg(r,n),E=hg(r,o),w=hg(e,e),M=hg(e,n),O=hg(e,i),T=hg(n,c),C=hg(n,o),y=hg(n,n),P=hg(c,i),A=hg(c,o),B=hg(i,i),z=hg(i,o),F=hg(o,o),Y=vg(hg(a,c),hg(p,r)),V=vg(h,d),L=dg(hg(u,r),hg(l,c)),k=dg(dg(hg(u,e),hg(s,r)),dg(hg(l,i),hg(f,c))),$=vg(v,b),X=vg(dg(g,x),dg(I,_)),q=dg(hg(r,r),hg(c,c)),H=dg(N,P),D=dg(O,T),Q=dg(A,B),G=dg(S,w),R=dg(hg(e,o),hg(n,i)),U=vg(y,F),j=vg(M,z),Z=dg(E,O),W=vg(N,P),J=dg(hg(r,i),hg(e,c)),K=dg(A,Q),tt=dg(S,G),nt=dg(E,D),et=dg(O,D),rt=vg(tt,K),ot=dg(D,T),it=dg(Z,T),ct=dg(Co(I),_),st=hg(y,vg(h,pg(3,d))),ut=hg(F,vg(pg(3,h),d)),ft=Co(dg(hg(C,dg(vg(hg(a,e),hg(p,i)),pg(3,vg(hg(l,f),hg(u,s))))),pg(3,hg(hg(s,f),j)))),lt=pg(3,dg(hg(R,vg(m,hg(s,s))),hg(U,dg(hg(u,f),hg(l,s))))),at=dg(dg(st,ut),dg(ft,lt)),pt=hg(a,dg(hg(o,dg(tt,pg(3,Q))),hg(n,et))),ht=hg(p,dg(dg(hg(r,dg(pg(3,y),F)),hg(e,dg(pg(3,M),lg(z)))),hg(n,K))),dt=pg(3,dg(dg(hg(u,dg(vg(hg(l,U),hg(u,C)),lg(vg(hg(f,j),hg(s,R))))),hg(s,vg(dg(lg(hg(l,j)),hg(f,dg(lg(vg(S,A)),vg(w,B)))),hg(s,it)))),dg(hg(l,dg(hg(l,C),lg(hg(f,R)))),hg(m,nt)))),vt=dg(vg(pt,ht),dt),gt=hg(a,dg(dg(lg(hg(r,R)),hg(e,ot)),hg(i,dg(ag(A),K)))),mt=hg(p,dg(dg(lg(hg(r,dg(pg(3,M),z))),hg(e,dg(w,lg(A)))),hg(i,ot))),xt=pg(3,dg(dg(hg(u,vg(dg(lg(vg(hg(l,j),hg(s,it))),hg(f,rt)),hg(u,R))),hg(s,vg(lg(hg(f,W)),hg(s,J)))),dg(hg(l,dg(dg(hg(l,R),lg(hg(f,nt))),hg(s,rt))),hg(m,J)))),bt=dg(vg(gt,mt),xt),It=hg(a,dg(hg(r,dg(E,lg(D))),hg(c,dg(w,pg(3,Q))))),_t=hg(p,dg(hg(r,dg(pg(3,G),K)),hg(c,et))),Nt=pg(3,dg(dg(hg(u,dg(vg(hg(l,rt),hg(u,nt)),lg(vg(hg(f,W),hg(s,J))))),hg(s,vg(hg(r,vg(ct,hg(s,c))),hg(c,dg(lg(hg(l,i)),hg(f,c)))))),dg(hg(l,dg(hg(l,D),hg(r,dg(lg(hg(f,i)),hg(l,o))))),hg(f,hg(c,ct))))),St=dg(vg(It,_t),Nt),Et=vg(dg(hg(q,V),lg(hg(H,Y))),pg(3,dg(hg(L,X),hg(k,$)))),wt=vg(hg(Y,q),pg(3,hg(L,$)));return{inflectionPoly:[vg(hg(s,o),hg(f,n)),vg(dg(hg(u,o),hg(s,i)),dg(hg(l,n),hg(f,e))),vg(dg(g,x),dg(I,_)),vg(v,b)],otherExtremaPoly:[at,vt,bt,St,Et,wt]}}(t),e=n.inflectionPoly,r=n.otherExtremaPoly,o=ao(r,0,1),i=function(t){const n=[],e=t.length-1;for(let r=0;r<e;r++)n.push(cg(e-r,t[r]));return n}(r),c=[],s=[];for(let t=0;t<o.length;t++){const n=(o[t].tS+o[t].tE)/2,r=kr(i,n);Q(H(kr(e,n),r))>=0?c.push(n):s.push(n)}return{minima:c,maxima:s,inflections:ao(e,0,1).map(t=>(t.tS+t.tE)/2)}}const Ng=Number.POSITIVE_INFINITY,Sg=Wn(function(t){const n=[[{bezier:void 0,t:void 0,val:Ng},{bezier:void 0,t:void 0,val:Ng}],[{bezier:void 0,t:void 0,val:-Ng},{bezier:void 0,t:void 0,val:-Ng}]];return t.curves.forEach(function(t){const e=tc(t.ps);{const r=e.box[0][0],o=n[0][0].val;(r<o||r===o&&e.ts[0][0]>n[0][0].t)&&(n[0][0]={bezier:t,t:e.ts[0][0],val:r})}{const r=e.box[0][1],o=n[0][1].val;(r<o||r===o&&e.ts[0][1]>n[0][1].t)&&(n[0][1]={bezier:t,t:e.ts[0][1],val:r})}{const r=e.box[1][0],o=n[1][0].val;(r>o||r===o&&e.ts[1][0]>n[1][0].t)&&(n[1][0]={bezier:t,t:e.ts[1][0],val:r})}{const r=e.box[1][1],o=n[1][1].val;(r>o||r===o&&e.ts[1][1]>n[1][1].t)&&(n[1][1]={bezier:t,t:e.ts[1][1],val:r})}}),{minY:vr(n[0][1].bezier,n[0][1].t,!0),minX:vr(n[0][0].bezier,n[0][0].t,!0),maxX:vr(n[1][0].bezier,n[1][0].t,!0),maxY:vr(n[1][1].bezier,n[1][1].t,!0)}});function Eg(t){return Sg(t).minY}function wg(t){const{loops:n}=t,e=n.map(Eg);let r;for(let n=1;n<e.length;n++){const o=e[n],i=Jv(t,!0,!1,0,o);if(!i)throw new Error("Unable to find hole-closing 2-prong");const{circle:c,zs:s}=i,u=Kv(t,c,[o,s[0]],!0);r=void 0===r?u:r}return r}const Mg=Wn(function(t){let n,e,r,o,i=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(const f of t){const t=Sg(f);t.minX.p[0]<i&&(n=t.minX,i=t.minX.p[0]),t.maxX.p[0]>c&&(e=t.maxX,c=t.maxX.p[0]),t.minY.p[1]<s&&(r=t.minY,s=t.minY.p[1]),t.maxY.p[1]>u&&(o=t.maxY,u=t.maxY.p[1])}return{minX:n,minY:r,maxX:e,maxY:o}});function Og(t,n,e){const{minBezLength:r,maxCurviness:o,maxLength:i,angleIncrement:c}=e,s=ev(r),u=function(t){return n=>{const e=[];for(let r=0;r<n.curves.length;r++){const o=n.curves[r];oh(o.ps)<t||Ne(o.ps,o.next.ps).isQuiteDull&&(e.push(vr(o,1,!0)),e.push(vr(o.next,0,!0)))}return e}}(r),f=ig(r,o,i),l=function(t){return function(n){const e=[],r=function(t){return function(n){const e={minima:[],maxima:[]};for(let r=0;r<n.curves.length;r++){const o=n.curves[r];if(oh(o.ps)<t)continue;const{minima:i,maxima:c}=_g(o.ps);e.minima.push(...i.map(t=>vr(o,t,!0))),e.maxima.push(...c.map(t=>vr(o,t,!0)))}return e}}(t)(n);return e.push(...r.minima,...r.maxima),e}}(r),a=t.map(s),p=new Map;Jd(t,p,a);const h=Mg(t),d=nv(n,(h.maxX.p[0]-h.minX.p[0])**2+(h.maxY.p[1]-h.minY.p[1])**2,t,p);let g;if(g=wg(d),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterHoleClosers)return{cpNode:g,meta:d};if(function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.holeClosers+=n-tv,tv=n}(),g=rg(d,c,t.map(u),!1)||g,g=rg(d,c,t.map(l),!0)||g,g=rg(d,c,t.map(f),!1)||g,function(){if("undefined"==typeof _debug_)return;const t=_debug_.generated.timing,n=performance.now();t.oneAnd2Prongs+=n-tv,tv=n}(),"undefined"!=typeof _debug_&&_debug_.directives.stopAfterTwoProngs)return{cpNode:g,meta:d};if(g=function(t,n){if(void 0===n)return;const e=new Set;let r=!0;for(;r;){r=!1;const o=new Set(v(n));for(const n of o){const{closeBysFor3Prong:i,addedCpNodes:c}=Ud(t,n);c.length>0&&(r=!0),void 0===i?e.add(n):(r=!0,Zd(t.cpTrees,i,o,e)),c.forEach(t=>t.forEach(t=>e.add(t)))}n=jd(e)}return jd(e)}(d,g),void 0===g)return;if("undefined"!=typeof _debug_&&_debug_.directives.stopAfterThreeProngs)return{cpNode:g,meta:d};const m={cpNode:g,meta:d};return"undefined"!=typeof _debug_&&(_debug_.generated.timing.threeProngs+=performance.now()-tv),m}function Tg(t,n){const{maxCoordinate:e,maxRadius:r}=function(t){let n=0,e=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(const c of t)for(const t of c)for(const c of t){const t=c[0],s=c[1],u=ph(hh(t),hh(s));u>n&&(n=u),t<e&&(e=t),t>r&&(r=t),s<o&&(o=s),s>i&&(i=s)}return{maxCoordinate:n,maxRadius:ph(r-e,i-o)}}(t),o=function(t,n,e){const r=Math.ceil(Math.log2(t)),o=Math.ceil(Math.log2(n)),i={...e};for(const t in Jh){let n=i[t];const e=Jh[t],{range:c,scaleByMaxCoordinate:s,scaleByMaxRadius:u}=e;n<c[0]&&(n=c[0]),n>c[1]&&(n=c[1]),s?n*=2**r*2**-10:u&&(n*=2**o*2**-10),i[t]=n}return i}(e,r,{...Wh,...n||{}}),{applySat:i,simplify:c,satScale:s,simplifyTolerance:u}=o,f=ah(t),l=[];for(const t of f){let n=Og(t,e,o);void 0!==n&&(i&&(n=Zh(n,s)),c&&(n=Xh(n,u,50)),l.push(n))}return l}const{getProngCount:Cg,isOnSameCircle:yg,isTerminating:Pg}=rr;function Ag(t){const n=function(t){let n=t;const e=Dh(t);for(;e.length;){const r=e.pop();if(r.isHoleClosing||r.isIntersection)continue;let o=r.next;for(;;){o=o.next;let e=!1;const r=o.prevOnCircle;if(Cg(o)>2){const n=o.nextOnCircle;yg(o,t)?e=!0:o.next===n?o=n:n.next!==r&&(e=!0)}else if(Pg(o)&&!o.isIntersection)return void(n=o);if(e){r.next=o,o.prev=r,n=o;break}}}return n}(je(t.cpNode));if(n)return{cpNode:n,meta:{...t.meta,cpTrees:$h(n)}}}let Bg=0;function zg(t){return t.map(t=>{return(n=t.cp.pointOnShape).p[0]+", "+n.p[1]+" | bz: "+n.curve.idx+" | t: "+n.t;var n})}function Fg(t,n=3){return t[0].toFixed(n)+", "+t[1].toFixed(n)}const Yg={δToString:zg,δsToString:function(t){return t.map(zg)},pointToStr:Fg,pointsToStr:function(t,n=3){return t.map(t=>Fg(t,n))},nameObj:function(t,n=""){t.name=""+n+Bg++}},Vg="red thin10 nofill ",Lg="http://www.w3.org/2000/svg";function kg(t,n,e=Vg,r){const o=n.center,i=n.radius,c=document.createElementNS(Lg,"circle");return c.setAttributeNS(null,"cx",o[0].toString()),c.setAttributeNS(null,"cy",o[1].toString()),c.setAttributeNS(null,"r",i.toString()),c.setAttributeNS(null,"class",e),t.appendChild(c),r&&setTimeout(()=>c.remove(),r),[c]}function $g(t,n,e=3,r="red",o){const[i]=kg(t,{center:n,radius:e},"dot "+r,o);return o&&setTimeout(()=>i.remove(),o),[i]}function Xg(t,n,e=Vg,r=0,o=void 0,i=0){const c=document.createElementNS(Lg,"line");c.setAttributeNS(null,"x1",n[0][0].toString()),c.setAttributeNS(null,"y1",n[0][1].toString()),c.setAttributeNS(null,"x2",n[1][0].toString()),c.setAttributeNS(null,"y2",n[1][1].toString()),c.setAttributeNS(null,"class",e),t.appendChild(c);let s=[];if(void 0!==o)for(const e of n)s.push(...$g(t,e,i,o,r));for(const n of s)t.appendChild(n);const u=[c,...s];return r&&setTimeout(()=>{for(const t of u)t.remove()},r),u}function qg(t,n,e=Vg,r=3,o){const i=kg(t,{center:n,radius:r},e),c=[[n[0]-r,n[1]],[n[0]+r,n[1]]],s=[[n[0],n[1]-r],[n[0],n[1]+r]],u=Xg(t,c,e),f=Xg(t,s,e);return o&&setTimeout(()=>{i.forEach(t=>t.remove()),u.forEach(t=>t.remove()),f.forEach(t=>t.remove())},o),[...i,...u,...f]}function Hg(t){return 2===t?"L":3===t?"Q":4===t?"C":void 0}function Dg(t,n,e=Vg,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p]]=n,h=document.createElementNS(Lg,"path");h.setAttributeNS(null,"d",`M${s} ${u} Q${f} ${l} ${a} ${p}`),e&&h.setAttributeNS(null,"class",e);let d=[];if(void 0!==o)for(const e of n)d.push(...$g(t,e,i,o,r));let v=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)v.push(...Xg(t,[n[e],n[e+1]],c,r));const g=[h,...d,...v];for(const n of g)t.appendChild(n);return r&&setTimeout(()=>{for(const t of g)t.remove()},r),g}function Qg(t,n,e=Vg,r=0,o=void 0,i=0,c=void 0){const[[s,u],[f,l],[a,p],[h,d]]=n;if(s===h&&f===h&&a===h&&u===d&&l===d&&p===d)return qg(t,[s,u],e,.2,r);const v=document.createElementNS(Lg,"path");v.setAttributeNS(null,"d",`M${s} ${u} C${f} ${l} ${a} ${p} ${h} ${d}`),v.setAttributeNS(null,"class",e);let g=[];if(void 0!==o)for(const e of n)g.push(...$g(t,e,i,o,r));let m=[];if(void 0!==c)for(let e=0;e<n.length-1;e++)m.push(...Xg(t,[n[e],n[e+1]],c,r));const x=[v,...g,...m];for(const n of x)t.appendChild(n);return r&&setTimeout(()=>{for(const t of x)t.remove()},r),x}function Gg(t,n,e=Vg,r=0,o=void 0,i=0,c=void 0){return 2===n.length?Xg(t,n,e,r,o,i):3===n.length?Dg(t,n,e,r,o,i,c):4===n.length?Qg(t,n,e,r,o,i,c):[]}const Rg=["red","green","cyan","blue"];function Ug(t,n){const e=1-n;if(4===t.length){const[[r,o],[i,c],[s,u],[f,l]]=t;return[r*e**3+3*i*e**2*n+3*s*e*n**2+f*n**3,o*e**3+3*c*e**2*n+3*u*e*n**2+l*n**3]}if(3===t.length){const[[r,o],[i,c],[s,u]]=t;return[r*e**2+2*i*e*n+s*n**2,o*e**2+2*c*e*n+u*n**2]}if(2===t.length){const[[r,o],[i,c]]=t;return[r*e+i*n,o*e+c*n]}return[NaN,NaN]}function jg(t,n){return 2===t.length?function(t,n){const[[e,r],[o,i]]=t,c=1-n,s=[c*e+n*o,c*r+n*i];return[[[e,r],s],[s,[o,i]]]}(t,n):3===t.length?function(t,n){const[[e,r],[o,i],[c,s]]=t,u=1-n,f=[u*u*e+2*u*n*o+n*n*c,u*u*r+2*u*n*i+n*n*s];return[[[e,r],[u*e+n*o,u*r+n*i],f],[f,[u*o+n*c,u*i+n*s],[c,s]]]}(t,n):4===t.length?function(t,n){const[[e,r],[o,i],[c,s],[u,f]]=t,l=1-n,a=n*n,p=a*n,h=l*l,d=h*l,v=[p*u+3*l*a*c+3*h*n*o+d*e,p*f+3*l*a*s+3*h*n*i+d*r];return[[[e,r],[n*o+l*e,n*i+l*r],[a*c+2*l*n*o+h*e,a*s+2*l*n*i+h*r],v],[v,[a*u+2*n*l*c+h*o,a*f+2*n*l*s+h*i],[n*u+l*c,n*f+l*s],[u,f]]]}(t,n):[]}const Zg={circle:kg,crossHair:qg,dot:$g,line:Xg,rect:function(t,n,e=Vg,r){const[[o,i],[c,s]]=n,u=o<c?o:c,f=i<s?i:s,l=Math.abs(o-c),a=Math.abs(i-s),p=document.createElementNS(Lg,"rect");return p.setAttributeNS(null,"x",u.toString()),p.setAttributeNS(null,"y",f.toString()),p.setAttributeNS(null,"width",l.toString()),p.setAttributeNS(null,"height",a.toString()),e&&p.setAttributeNS(null,"class",e),t.appendChild(p),r&&setTimeout(()=>p.remove(),r),[p]},beziers:function(t,n,e,r){const o=void 0===e,i=[];for(let r=0;r<n.length;r++){const c=n[r],s=o?"thin5 nofill "+Rg[r%Rg.length]:e;i.push(...Gg(t,c,s))}return r&&setTimeout(()=>i.forEach(t=>t.remove()),r),i},bezier:Gg,bezierPiece:function(t,n,e,r=Vg,o){const i=e[0]===e[1]?qg(t,Ug(n,e[0]),r,1.5):Gg(t,function(t,n){if(0===n[0]&&1===n[1])return t;if(n[0]===n[1]){const e=Ug(t,n[0]);return[e,e,e,e]}return 0===n[0]?jg(t,n[1])[0]:1===n[1]?jg(t,n[0])[1]:jg(jg(t,n[0])[1],(n[1]-n[0])/(1-n[0]))[0]}(n,e),r);return o&&setTimeout(()=>i.forEach(t=>t.remove()),o),i},quadBezier:Dg,cubicBezier:Qg,polygon:function(t,n,e=Vg,r){const o=document.createElementNS(Lg,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},loop:function(t,n,e=Vg,r){if(!n.length)return[];const o=document.createElementNS(Lg,"path");let i=`M${n[0][0][0]} ${n[0][0][1]} `;for(let t=0;t<n.length;t++){const e=n[t];i+=`${Hg(e.length)} `;for(let t=1;t<e.length;t++)i+=`${e[t][0]} ${e[t][1]} `}return i+=" z",o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},polyline:function(t,n,e=Vg,r){if(n.length<2)return[];const o=document.createElementNS(Lg,"path");let i=`M${n[0][0]} ${n[0][1]} L`;for(let t=0;t<n.length;t++)i+=`${n[t][0]} ${n[t][1]} `;return o.setAttributeNS(null,"d",i),e&&o.setAttributeNS(null,"class",e),t.appendChild(o),r&&setTimeout(()=>o.remove(),r),[o]},text:function(t,n,e,r,o=Vg,i){const c=document.createElementNS(Lg,"text");return c.setAttributeNS(null,"x",n[0].toString()),c.setAttributeNS(null,"y",n[1].toString()),c.setAttributeNS(null,"font-size",r.toString()),c.setAttributeNS(null,"class",o),c.textContent=e,t.appendChild(c),i&&setTimeout(()=>c.remove(),i),[c]}};function Wg(t,n){return(n,e,r,o=0,i=1)=>{let c,s;switch(e.isHoleClosing){case!1:c="red ",s="2";break;case!0:c="cyan ",s="10"}const u=e.cp,{circle:f,pointOnShape:l}=u,{center:a,radius:p}=f,{isSource:h,p:d}=l,v=e.nextOnCircle.cp.pointOnShape.p,g=h?d:v,m=h?v:d,{line:x,dot:b,circle:I,crossHair:_}=Zg,N=b(n,f.center,.02*i,"yellow",o);return[...I(n,f,c+"thin"+s+" nofill",o),...b(n,g,.005*i,c,o),...b(n,m,.01*i,c,o),...t?_(n,f.center,"red thin2 nofill",.002*i,o):[],...N]}}function Jg(t,n){return{center:t.center,radius:n*t.radius}}const{getAllOnCircle:Kg}=rr,{isTerminating:tm}=rr,nm=["thin10 blue nofill","thin10 red nofill"];function em(t,n,e,r=0,o=1){let i=n.cpNode;if(!i)return[];for(;!tm(i);)i=i.next;const c=[];let s=0;return Qe(i,async n=>{if(tm(n))return;const e=Ce(n);e&&(c.push(...Zg.bezier(t,e,nm[s%2],r)),s++)}),c}function rm(t,n,e,r){const o=document.createElementNS("http://www.w3.org/2000/svg","circle");return o.setAttributeNS(null,"cx",n[0].toString()),o.setAttributeNS(null,"cy",n[1].toString()),o.setAttributeNS(null,"r",e.toString()+"%"),o.setAttributeNS(null,"class",r),t.appendChild(o),o}function om(t,n,e="thin5 purple nofill",r=0,o=1){const i=[],c=[];for(const t of n){if(Ae(t))continue;const n=Ce(t);n&&c.push(n)}return i.push(...p(t,c,e,r)),i}const im={oneProng:function(t,n,e,r=0,o=1){const i=n[0].cp,{circle:c,pointOnShape:s}=i;return[...Zg.dot(t,s.p,.02*o,"deeppink",r),...Zg.dot(t,c.center,.05*o,"deeppink",r),...Zg.circle(t,c,"deeppink thin5 nofill",r)]},twoProng:Wg(!1),threeProng:function(t,n,e,r=0,o=1){const i=Jg(n.cp.circle,1),{center:c,radius:s}=i,u=rr.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=Zg,p=l(t,i,"blue thin2 nofill",r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...Zg.line(t,[e,c],"thin5 red",r))}const v=a(t,i.center,"red thin2 nofill",.02*o,r);return[...h,...d,...p,...v]},boundingHull:function(t,n,e="thin5 black nofill",r=0,o=1){return Zg.polygon(t,n,e,r)},looseBoundingBox:function(t,n,e="thin5 brown nofill",r=0,o=1){const[[i,c],[s,u]]=n;return n=[[i,c],[s,c],[s,u],[i,u]],Zg.polygon(t,n,e,r)},tightBoundingBox:function(t,n,e="thin5 pinker nofill",r=0,o=1){return Zg.polygon(t,n,"thin5 pinker nofill",r)},vertex:function(t,n,e,r=0,o=1){const i=n.cp.circle;let c=[];return c=[...Zg.dot(t,i.center,.01*o,"darkgreen",r)],c},mat:em,maxVertex:function(t,n){const e=n.cp.circle;return Zg.circle(t,e,"brown thin10 nofill")},leaves:function(t,n,e="thin10 deeppink nofill",r=0,o=1){const i=[],{line:c,dot:s,circle:u}=Zg;for(const f of n){const n=f.cp,{circle:l}=n,{center:a,radius:p}=l,h=[rm(t,a,.5,"pinker thin5 nofill")],d=rr.getAllOnCircle(f).map(t=>t.cp.pointOnShape),v=[],g=[];for(let n=0;n<d.length;n++){const e=d[n].p;g.push(...s(t,e,.01*(n+1)*o,"pinker",r)),v.push(...c(t,[e,a],"thin5 red",r))}const m=u(t,l,e,r);i.push(...m,...g,...v,...h)}return i},cull:function(t,n,e="thin10 cyan nofill",r=0,o=1){const i=[];return i.push(...Zg.crossHair(t,n,e,.1*o,r)),i},cpNode:function(t,n,e="blue thin2 nofill",r=0,o=1){const i=Jg(n.cp.circle,1),{center:c,radius:s}=i,u=rr.getAllOnCircle(n).map(t=>t.cp.pointOnShape),{dot:f,circle:l,crossHair:a}=Zg,p=l(t,i,e,r),h=[],d=[];for(let n=0;n<u.length;n++){const e=u[n].p;h.push(...f(t,e,.01*(n+1)*o,"blue",r)),d.push(...Zg.line(t,[e,c],"thin5 red",r))}const v=a(t,c,"orange thin10 nofill",2*o,r);return[...h,...d,...p,...v]},branch:om,holeCloser:Wg(!1),speed:function(t,n,e,r=0,o=1){const i=[],c=$e(0)(n);if(void 0===c)return[];const s=n.cp.pointOnShape,{p:u,t:f}=s,l=c*o/8,a=Hp(function(t,n){const[e,r]=qn(t);return[-vn(r,n),vn(e,n)]}(s.curve.ps,f),l);return i.push(...Zg.line(t,[u,oe(u,a)],"red thin5",r)),i}},cm={...im,twoProng:Wg(!0)};function sm(t){if(!t)return void(window._debug_=void 0);let n=window._debug_;n={...n,generated:{...n&&n.generated?n.generated:{},elems:{...n&&n.generated&&n.generated.elems?n.generated.elems:{},oneProng:[],twoProng:[],looseBoundingBox:[],tightBoundingBox:[],vertex:[],threeProng:[],boundingHull:[],mat:[],cpNode:[],maxVertex:[],leaves:[]},timing:{...n&&n.generated&&n.generated.timing?n.generated.timing:{},holeClosers:0,oneAnd2Prongs:0,threeProngs:0,sats:0,simplifyMat:0}},fs:{...n&&n.fs?n.fs:{},drawElem:{...n&&n.fs&&n.fs.drawElem?n.fs.drawElem:{},...im},...Yg},directives:{...n&&n.directives?n.directives:{},stopAfterHoleClosers:!1,stopAfterHoleClosersNum:void 0,stopAfterTwoProngs:!1,stopAfterTwoProngsNum:void 0,stopAfterThreeProngs:!1,stopAfterThreeProngsNum:void 0}},window._debug_=n}const um={oneProng:[],twoProng:[],threeProng:[],looseBoundingBox:[],tightBoundingBox:[],boundingHull:[],vertex:[],mat:[],maxVertex:[],leaves:[],cull:[],cpNode:[],branch:[],holeCloser:[],speed:[]},fm=Object.keys(um);function lm(t,n,e,r){const o=[];for(const r of t)o.push({type:0,item:r,x:n(r)}),o.push({type:1,item:r,x:e(r)});o.sort(am);const i=new Set,c=[];for(const t of o){const{item:n}=t;if(0===t.type){for(const t of i.values())r(n,t)&&c.push([n,t]);i.add(n)}else 1===t.type&&i.delete(t.item)}return c}function am(t,n){const e=t.x-n.x;return 0!==e?e:0===t.type?-1:1}function pm(t){return t}function hm(t,n){const e=Jv(t,!1,!1,0,n);if(void 0===e)return;const{circle:r,zs:o}=e;return Kv(t,r,[n,...o],!1)}const dm=1e-4;function vm(t,n){const e=t.cp.pointOnShape,r=n.cp.pointOnShape;let{curve:o,p:i,t:c}=e,{curve:s,p:u,t:f}=r;if(i[0]===u[0]&&i[1]===u[1])return[i];1===c&&(c=0,o=o.next),0===f&&(f=1,s=s.prev);const{ps:l}=o,{ps:a}=s,p=[i,oe(i)(ie(se(l,c)))],h=[u,oe(u)(ie(se(a,f)))],d=Jn(p,h),v=Kn(i,u);let g;if(d){const t=Kn(i,d),n=Kn(u,d);g=te(t,v)<0||te(n,v)>0}else g=!0;if(!g)return[i,d,u];const m=Kn(p[0],p[1]),x=Kn(h[0],h[1]),b=Math.abs(ee(v,m))/9,I=Math.abs(ee(v,x))/9;return b>.01||I>.01||b>dm||I>dm?void 0:[i,u]}const gm=Wn(function(t){return Zn(Ce(t))});function mm(t,n){const e=function(t){const n=new Map;for(let e of t)for(let r of t){const t=e.cp.circle.center,o=r.cp.circle.center,i=e.cp.pointOnShape.p,c=r.cp.pointOnShape.p;r!==e&&t[0]===o[0]&&t[1]===o[1]&&i[0]===c[0]&&i[1]===c[1]&&n.set(e,r)}return n}(n),r=t.length,o=[];for(let n=0;n<r;n++){const i=t[n],c=[];for(let o=0;o<r;o++){const r=t[o];if(n===o){c.push(0);continue}let s=Number.POSITIVE_INFINITY;for(const t of Pe(i)){let n=gm(t),o=t.next;for(;!tr(o,r);)if(o.isHoleClosing)o=xm(e,o);else{if(ir(o)){n=Number.POSITIVE_INFINITY;break}n+=gm(o),o=o.next}n<s&&(s=n)}c.push(s)}o.push(c)}return o}function xm(t,n){return t.get(n).next}export{rr as CpNodeFs,r as beziersToSvgPathStr,pm as connectHoleClosers,Jd as createInitialCpTree,vr as createPos,fm as debugElemNames,p as drawBeziersAsSinglePath,om as drawBranch,im as drawElemFs,cm as drawElemFsDetailed,em as drawMat,um as emptyDebugElems,sm as enableDebugForMat,Jv as find2Prong,hm as findAndAdd2Prong,wg as findAndAddHoleClosing2Prongs,Tg as findMats,h as floydWarshall,We as getBoundaryBeziersToNext,kd as getBoundaryPieceBeziers,Th as getBranches,Td as getCloseBoundaryPointsCertified,Ed as getClosestSquareDistanceToRect,ig as getFor2ProngsOnLoop,mm as getGraph,vm as getImpliedBoundaryBezierBetween,nv as getMeta,a as getPathsFromStr,Nd as getPotentialClosestPointsOnCurveCertified,jh as getSatCulls,Mg as getShapeBounds,ev as getSharpCornersOnLoop,ir as isVertexSpecial,n as loopFromBeziers,Xh as simplifyMat,lm as sweepLine,Zh as toScaleAxis,Ag as trimMat};