@solibo/solibo-ui 0.2.17 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/assets/index.css +1 -1
  2. package/dist/assets/index10.css +1 -1
  3. package/dist/assets/index11.css +1 -1
  4. package/dist/assets/index12.css +1 -1
  5. package/dist/assets/index13.css +1 -1
  6. package/dist/assets/index14.css +1 -1
  7. package/dist/assets/index15.css +1 -1
  8. package/dist/assets/index16.css +1 -1
  9. package/dist/assets/index17.css +1 -1
  10. package/dist/assets/index18.css +1 -1
  11. package/dist/assets/index19.css +1 -1
  12. package/dist/assets/index20.css +1 -1
  13. package/dist/assets/index21.css +1 -1
  14. package/dist/assets/index22.css +1 -1
  15. package/dist/assets/index23.css +1 -1
  16. package/dist/assets/index25.css +1 -0
  17. package/dist/assets/index26.css +1 -0
  18. package/dist/assets/index3.css +1 -1
  19. package/dist/assets/index4.css +1 -1
  20. package/dist/assets/index5.css +1 -1
  21. package/dist/assets/index6.css +1 -1
  22. package/dist/assets/index7.css +1 -1
  23. package/dist/assets/index8.css +1 -1
  24. package/dist/components/_card/index.cjs +2 -0
  25. package/dist/components/_card/index.cjs.map +1 -0
  26. package/dist/components/_card/index.js +19 -0
  27. package/dist/components/_card/index.js.map +1 -0
  28. package/dist/components/_dropzone/index.cjs +2 -0
  29. package/dist/components/_dropzone/index.cjs.map +1 -0
  30. package/dist/components/_dropzone/index.js +28 -0
  31. package/dist/components/_dropzone/index.js.map +1 -0
  32. package/dist/components/{editor → _editor}/index.cjs +20 -20
  33. package/dist/components/_editor/index.cjs.map +1 -0
  34. package/dist/components/{editor → _editor}/index.js +644 -700
  35. package/dist/components/_editor/index.js.map +1 -0
  36. package/dist/components/_portal/index.cjs +2 -0
  37. package/dist/components/_portal/index.cjs.map +1 -0
  38. package/dist/components/_portal/index.js +19 -0
  39. package/dist/components/_portal/index.js.map +1 -0
  40. package/dist/components/accordion/index.cjs +1 -1
  41. package/dist/components/accordion/index.cjs.map +1 -1
  42. package/dist/components/accordion/index.js +17 -24
  43. package/dist/components/accordion/index.js.map +1 -1
  44. package/dist/components/aside/index.cjs +1 -1
  45. package/dist/components/aside/index.cjs.map +1 -1
  46. package/dist/components/aside/index.js +13 -21
  47. package/dist/components/aside/index.js.map +1 -1
  48. package/dist/components/banner/index.cjs +1 -1
  49. package/dist/components/banner/index.cjs.map +1 -1
  50. package/dist/components/banner/index.js +14 -8
  51. package/dist/components/banner/index.js.map +1 -1
  52. package/dist/components/branding/index.cjs +1 -1
  53. package/dist/components/branding/index.cjs.map +1 -1
  54. package/dist/components/branding/index.js +21 -25
  55. package/dist/components/branding/index.js.map +1 -1
  56. package/dist/components/button/index.cjs +1 -1
  57. package/dist/components/button/index.cjs.map +1 -1
  58. package/dist/components/button/index.js +16 -26
  59. package/dist/components/button/index.js.map +1 -1
  60. package/dist/components/checkbox/index.cjs +1 -1
  61. package/dist/components/checkbox/index.cjs.map +1 -1
  62. package/dist/components/checkbox/index.js +5 -15
  63. package/dist/components/checkbox/index.js.map +1 -1
  64. package/dist/components/dialog/index.cjs +1 -1
  65. package/dist/components/dialog/index.cjs.map +1 -1
  66. package/dist/components/dialog/index.js +9 -13
  67. package/dist/components/dialog/index.js.map +1 -1
  68. package/dist/components/figure/index.cjs +1 -1
  69. package/dist/components/figure/index.cjs.map +1 -1
  70. package/dist/components/figure/index.js +18 -6
  71. package/dist/components/figure/index.js.map +1 -1
  72. package/dist/components/file/index.cjs +1 -1
  73. package/dist/components/file/index.cjs.map +1 -1
  74. package/dist/components/file/index.js +11 -23
  75. package/dist/components/file/index.js.map +1 -1
  76. package/dist/components/form/index.cjs +1 -1
  77. package/dist/components/form/index.cjs.map +1 -1
  78. package/dist/components/form/index.js +11 -13
  79. package/dist/components/form/index.js.map +1 -1
  80. package/dist/components/group/index.cjs +2 -0
  81. package/dist/components/group/index.cjs.map +1 -0
  82. package/dist/components/group/index.js +13 -0
  83. package/dist/components/group/index.js.map +1 -0
  84. package/dist/components/header/index.cjs +1 -1
  85. package/dist/components/header/index.cjs.map +1 -1
  86. package/dist/components/header/index.js +7 -13
  87. package/dist/components/header/index.js.map +1 -1
  88. package/dist/components/icon/index.cjs +1 -1
  89. package/dist/components/icon/index.cjs.map +1 -1
  90. package/dist/components/icon/index.js +29 -54
  91. package/dist/components/icon/index.js.map +1 -1
  92. package/dist/components/input/index.cjs +1 -1
  93. package/dist/components/input/index.cjs.map +1 -1
  94. package/dist/components/input/index.js +12 -17
  95. package/dist/components/input/index.js.map +1 -1
  96. package/dist/components/layout/index.cjs +1 -1
  97. package/dist/components/layout/index.cjs.map +1 -1
  98. package/dist/components/layout/index.js +10 -13
  99. package/dist/components/layout/index.js.map +1 -1
  100. package/dist/components/link/index.cjs +1 -1
  101. package/dist/components/link/index.cjs.map +1 -1
  102. package/dist/components/link/index.js +14 -13
  103. package/dist/components/link/index.js.map +1 -1
  104. package/dist/components/list/index.cjs +1 -1
  105. package/dist/components/list/index.cjs.map +1 -1
  106. package/dist/components/list/index.js +8 -5
  107. package/dist/components/list/index.js.map +1 -1
  108. package/dist/components/nav/index.cjs +1 -1
  109. package/dist/components/nav/index.cjs.map +1 -1
  110. package/dist/components/nav/index.js +18 -93
  111. package/dist/components/nav/index.js.map +1 -1
  112. package/dist/components/select/index.cjs +2 -0
  113. package/dist/components/select/index.cjs.map +1 -0
  114. package/dist/components/select/index.js +26 -0
  115. package/dist/components/select/index.js.map +1 -0
  116. package/dist/components/sortable/index.cjs +2 -0
  117. package/dist/components/sortable/index.cjs.map +1 -0
  118. package/dist/components/sortable/index.js +35 -0
  119. package/dist/components/sortable/index.js.map +1 -0
  120. package/dist/components/toggle/index.cjs +1 -1
  121. package/dist/components/toggle/index.cjs.map +1 -1
  122. package/dist/components/toggle/index.js +13 -22
  123. package/dist/components/toggle/index.js.map +1 -1
  124. package/dist/icons-BhMCiRwT.cjs +2 -0
  125. package/dist/icons-BhMCiRwT.cjs.map +1 -0
  126. package/dist/icons-uK6EFyq8.js +32 -0
  127. package/dist/icons-uK6EFyq8.js.map +1 -0
  128. package/dist/index.cjs +1 -1
  129. package/dist/index.d.ts +53 -47
  130. package/dist/index.js +48 -45
  131. package/dist/index.js.map +1 -1
  132. package/package.json +3 -3
  133. package/dist/components/card/index.cjs +0 -2
  134. package/dist/components/card/index.cjs.map +0 -1
  135. package/dist/components/card/index.js +0 -20
  136. package/dist/components/card/index.js.map +0 -1
  137. package/dist/components/dropdown/index.cjs +0 -2
  138. package/dist/components/dropdown/index.cjs.map +0 -1
  139. package/dist/components/dropdown/index.js +0 -34
  140. package/dist/components/dropdown/index.js.map +0 -1
  141. package/dist/components/dropzone/index.cjs +0 -2
  142. package/dist/components/dropzone/index.cjs.map +0 -1
  143. package/dist/components/dropzone/index.js +0 -63
  144. package/dist/components/dropzone/index.js.map +0 -1
  145. package/dist/components/editor/index.cjs.map +0 -1
  146. package/dist/components/editor/index.js.map +0 -1
  147. package/dist/components/footer/index.cjs +0 -2
  148. package/dist/components/footer/index.cjs.map +0 -1
  149. package/dist/components/footer/index.js +0 -15
  150. package/dist/components/footer/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/lexical@0.21.0/node_modules/lexical/Lexical.prod.mjs","../../../node_modules/.pnpm/@lexical+selection@0.21.0/node_modules/@lexical/selection/LexicalSelection.prod.mjs","../../../node_modules/.pnpm/@lexical+utils@0.21.0/node_modules/@lexical/utils/LexicalUtils.prod.mjs","../../../node_modules/.pnpm/@lexical+html@0.21.0/node_modules/@lexical/html/LexicalHtml.prod.mjs","../../../node_modules/.pnpm/@lexical+link@0.21.0/node_modules/@lexical/link/LexicalLink.prod.mjs","../../../node_modules/.pnpm/@lexical+list@0.21.0/node_modules/@lexical/list/LexicalList.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalComposerContext.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalAutoFocusPlugin.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalAutoLinkPlugin.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalComposer.prod.mjs","../../../node_modules/.pnpm/@lexical+text@0.21.0/node_modules/@lexical/text/LexicalText.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalContentEditable.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalErrorBoundary.prod.mjs","../../../node_modules/.pnpm/@lexical+history@0.21.0/node_modules/@lexical/history/LexicalHistory.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalHistoryPlugin.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalLinkPlugin.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalListPlugin.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalOnChangePlugin.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/useLexicalEditable.prod.mjs","../../../node_modules/.pnpm/@lexical+dragon@0.21.0/node_modules/@lexical/dragon/LexicalDragon.prod.mjs","../../../node_modules/.pnpm/@lexical+clipboard@0.21.0/node_modules/@lexical/clipboard/LexicalClipboard.prod.mjs","../../../node_modules/.pnpm/@lexical+rich-text@0.21.0/node_modules/@lexical/rich-text/LexicalRichText.prod.mjs","../../../node_modules/.pnpm/@lexical+react@0.21.0_react-dom@19.2.0_react@19.2.0__react@19.2.0_yjs@13.6.27/node_modules/@lexical/react/LexicalRichTextPlugin.prod.mjs","../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js","../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js","../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js","../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js","../../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Tokenizer.js","../../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/Parser.js","../../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js","../../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js","../../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js","../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js","../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js","../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js","../../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js","../../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js","../../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/stringify.js","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/traversal.js","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/manipulation.js","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/querying.js","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/legacy.js","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/helpers.js","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/feeds.js","../../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/index.js","../../../node_modules/.pnpm/htmlparser2@8.0.2/node_modules/htmlparser2/lib/index.js","../../../node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js","../../../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.js","../../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js","../../../node_modules/.pnpm/parse-srcset@1.0.2/node_modules/parse-srcset/src/parse-srcset.js","../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.browser.js","../../../__vite-browser-external","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/css-syntax-error.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/stringifier.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/stringify.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/symbols.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/node.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/comment.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/declaration.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/container.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/at-rule.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/document.js","../../../node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/non-secure/index.cjs","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/previous-map.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/input.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/root.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/list.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/rule.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/fromJSON.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/map-generator.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/tokenize.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/parser.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/parse.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/warning.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/result.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/warn-once.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/lazy-result.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/no-work-result.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/processor.js","../../../node_modules/.pnpm/postcss@8.5.6/node_modules/postcss/lib/postcss.js","../../../node_modules/.pnpm/sanitize-html@2.17.0/node_modules/sanitize-html/index.js","../../../src/components/editor/toolbar.tsx","../../../src/components/editor/utils.ts","../../../src/components/editor/index.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nfunction e(e){return{}}const t={},n={},r={},i={},s={},o={},l={},c={},a={},u={},f={},d={},h={},g={},_={},p={},y={},m={},x={},v={},S={},C={},T={},k={},b={},w={},N={},E={},P={},F={},L={},O={},D={},M={},I={},A={},B={},z={},W={},R={},K={},J={},$={},U={},V={},j=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,H=j&&\"documentMode\"in document?document.documentMode:null,q=j&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),G=j&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),Q=!(!j||!(\"InputEvent\"in window)||H)&&\"getTargetRanges\"in new window.InputEvent(\"input\"),X=j&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent),Y=j&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Z=j&&/Android/.test(navigator.userAgent),ee=j&&/^(?=.*Chrome).*/i.test(navigator.userAgent),te=j&&Z&&ee,ne=j&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&!ee,re=1,ie=3,se=0,oe=1,le=2,ce=0,ae=1,ue=2,fe=1,de=2,he=4,ge=8,_e=16,pe=32,ye=64,me=128,xe=112|(3|he|ge)|me,ve=1,Se=2,Ce=3,Te=4,ke=5,be=6,we=X||Y||ne?\" \":\"​\",Ne=\"\\n\\n\",Ee=G?\" \":we,Pe=\"֑-߿יִ-﷽ﹰ-ﻼ\",Fe=\"A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿‎Ⰰ-﬜︀-﹯﻽-￿\",Le=new RegExp(\"^[^\"+Fe+\"]*[\"+Pe+\"]\"),Oe=new RegExp(\"^[^\"+Pe+\"]*[\"+Fe+\"]\"),De={bold:1,code:16,highlight:me,italic:2,strikethrough:he,subscript:32,superscript:64,underline:ge},Me={directionless:1,unmergeable:2},Ie={center:Se,end:be,justify:Te,left:ve,right:Ce,start:ke},Ae={[Se]:\"center\",[be]:\"end\",[Te]:\"justify\",[ve]:\"left\",[Ce]:\"right\",[ke]:\"start\"},Be={normal:0,segmented:2,token:1},ze={[ce]:\"normal\",[ue]:\"segmented\",[ae]:\"token\"};function We(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var Re=We((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function Ke(...e){const t=[];for(const n of e)if(n&&\"string\"==typeof n)for(const[e]of n.matchAll(/\\S+/g))t.push(e);return t}const Je=100;let $e=!1,Ue=0;function Ve(e){Ue=e.timeStamp}function je(e,t,n){const r=\"BR\"===e.nodeName,i=t.__lexicalLineBreak;return i&&(e===i||r&&e.previousSibling===i)||r&&void 0!==kt(e,n)}function He(e,t,n){const r=vn(n._window);let i=null,s=null;null!==r&&r.anchorNode===e&&(i=r.anchorOffset,s=r.focusOffset);const o=e.nodeValue;null!==o&&zt(t,o,i,s,!1)}function qe(e,t,n){if(ki(e)){const t=e.anchor.getNode();if(t.is(n)&&e.format!==t.getFormat())return!1}return t.nodeType===ie&&n.isAttached()}function Ge(e,t,n,r){for(let i=e;i&&!An(i);i=rn(i)){const e=kt(i,t);if(void 0!==e){const t=Ct(e,n);if(t)return Es(t)?void 0:[i,t]}else if(i===r)return[r,Pt(n)]}}function Qe(e,t,n){$e=!0;const r=performance.now()-Ue>Je;try{Ss(e,(()=>{const i=Ri()||function(e){return e.getEditorState().read((()=>{const e=Ri();return null!==e?e.clone():null}))}(e),s=new Map,o=e.getRootElement(),l=e._editorState,c=e._blockCursorElement;let a=!1,u=\"\";for(let n=0;n<t.length;n++){const f=t[n],d=f.type,h=f.target,g=Ge(h,e,l,o);if(!g)continue;const[_,p]=g;if(\"characterData\"===d)r&&hi(p)&&qe(i,h,p)&&He(h,p,e);else if(\"childList\"===d){a=!0;const t=f.addedNodes;for(let n=0;n<t.length;n++){const r=t[n],i=Tt(r),s=r.parentNode;if(null!=s&&r!==c&&null===i&&!je(r,s,e)){if(G){const e=r.innerText||r.nodeValue;e&&(u+=e)}s.removeChild(r)}}const n=f.removedNodes,r=n.length;if(r>0){let t=0;for(let i=0;i<r;i++){const r=n[i];(je(r,h,e)||c===r)&&(h.appendChild(r),t++)}r!==t&&s.set(_,p)}}}if(s.size>0)for(const[t,n]of s)n.reconcileObservedMutation(t,e);const f=n.takeRecords();if(f.length>0){for(let t=0;t<f.length;t++){const n=f[t],r=n.addedNodes,i=n.target;for(let t=0;t<r.length;t++){const n=r[t],s=n.parentNode;null==s||\"BR\"!==n.nodeName||je(n,i,e)||s.removeChild(n)}}n.takeRecords()}null!==i&&(a&&(i.dirty=!0,Ft(i)),G&&Zt(e)&&i.insertRawText(u))}))}finally{$e=!1}}function Xe(e){const t=e._observer;if(null!==t){Qe(e,t.takeRecords(),t)}}function Ye(e){!function(e){0===Ue&&an(e).addEventListener(\"textInput\",Ve,!0)}(e),e._observer=new MutationObserver(((t,n)=>{Qe(e,t,n)}))}function Ze(e,t){const n=e.__mode,r=e.__format,i=e.__style,s=t.__mode,o=t.__format,l=t.__style;return!(null!==n&&n!==s||null!==r&&r!==o||null!==i&&i!==l)}function et(e,t){const n=e.mergeWithSibling(t),r=ls()._normalizedNodes;return r.add(e.__key),r.add(t.__key),n}function tt(e){let t,n,r=e;if(\"\"!==r.__text||!r.isSimpleText()||r.isUnmergeable()){for(;null!==(t=r.getPreviousSibling())&&hi(t)&&t.isSimpleText()&&!t.isUnmergeable();){if(\"\"!==t.__text){if(Ze(t,r)){r=et(t,r);break}break}t.remove()}for(;null!==(n=r.getNextSibling())&&hi(n)&&n.isSimpleText()&&!n.isUnmergeable();){if(\"\"!==n.__text){if(Ze(r,n)){r=et(r,n);break}break}n.remove()}}else r.remove()}function nt(e){return rt(e.anchor),rt(e.focus),e}function rt(e){for(;\"element\"===e.type;){const t=e.getNode(),n=e.offset;let r,i;if(n===t.getChildrenSize()?(r=t.getChildAtIndex(n-1),i=!0):(r=t.getChildAtIndex(n),i=!1),hi(r)){e.set(r.__key,i?r.getTextContentSize():0,\"text\");break}if(!bs(r))break;e.set(r.__key,i?r.getChildrenSize():0,\"element\")}}let it=1;function st(){it=1}const ot=\"function\"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)};function lt(e){const t=document.activeElement;if(null===t)return!1;const n=t.nodeName;return Es(bt(e))&&(\"INPUT\"===n||\"TEXTAREA\"===n||\"true\"===t.contentEditable&&null==ft(t))}function ct(e,t,n){const r=e.getRootElement();try{return null!==r&&r.contains(t)&&r.contains(n)&&null!==t&&!lt(t)&&ut(t)===e}catch(e){return!1}}function at(e){return e instanceof Hs}function ut(e){let t=e;for(;null!=t;){const e=ft(t);if(at(e))return e;t=rn(t)}return null}function ft(e){return e?e.__lexicalEditor:null}function dt(e){return e.isToken()||e.isSegmented()}function ht(e){return e.nodeType===ie}function gt(e){let t=e;for(;null!=t;){if(ht(t))return t;t=t.firstChild}return null}function _t(e,t,n){const r=De[t];if(null!==n&&(e&r)==(n&r))return e;let i=e^r;return\"subscript\"===t?i&=~De.superscript:\"superscript\"===t&&(i&=~De.subscript),i}function pt(e){return hi(e)||Gr(e)||Es(e)}function yt(e,t){if(null!=t)return void(e.__key=t);is(),ss();const n=ls(),r=os(),i=\"\"+it++;r._nodeMap.set(i,e),bs(e)?n._dirtyElements.set(i,!0):n._dirtyLeaves.add(i),n._cloneNotNeeded.add(i),n._dirtyType=oe,e.__key=i}function mt(e){const t=e.getParent();if(null!==t){const n=e.getWritable(),r=t.getWritable(),i=e.getPreviousSibling(),s=e.getNextSibling();if(null===i)if(null!==s){const e=s.getWritable();r.__first=s.__key,e.__prev=null}else r.__first=null;else{const e=i.getWritable();if(null!==s){const t=s.getWritable();t.__prev=e.__key,e.__next=t.__key}else e.__next=null;n.__prev=null}if(null===s)if(null!==i){const e=i.getWritable();r.__last=i.__key,e.__next=null}else r.__last=null;else{const e=s.getWritable();if(null!==i){const t=i.getWritable();t.__next=e.__key,e.__prev=t.__key}else e.__prev=null;n.__next=null}r.__size--,n.__parent=null}}function xt(e){ss();const t=e.getLatest(),n=t.__parent,r=os(),i=ls(),s=r._nodeMap,o=i._dirtyElements;null!==n&&function(e,t,n){let r=e;for(;null!==r;){if(n.has(r))return;const e=t.get(r);if(void 0===e)break;n.set(r,!1),r=e.__parent}}(n,s,o);const l=t.__key;i._dirtyType=oe,bs(e)?o.set(l,!0):i._dirtyLeaves.add(l)}function vt(e){is();const t=ls(),n=t._compositionKey;if(e!==n){if(t._compositionKey=e,null!==n){const e=Ct(n);null!==e&&e.getWritable()}if(null!==e){const t=Ct(e);null!==t&&t.getWritable()}}}function St(){if(rs())return null;return ls()._compositionKey}function Ct(e,t){const n=(t||os())._nodeMap.get(e);return void 0===n?null:n}function Tt(e,t){const n=kt(e,ls());return void 0!==n?Ct(n,t):null}function kt(e,t){return e[`__lexicalKey_${t._key}`]}function bt(e,t){let n=e;for(;null!=n;){const e=Tt(n,t);if(null!==e)return e;n=rn(n)}return null}function wt(e){const t=e._decorators,n=Object.assign({},t);return e._pendingDecorators=n,n}function Nt(e){return e.read((()=>Et().getTextContent()))}function Et(){return Pt(os())}function Pt(e){return e._nodeMap.get(\"root\")}function Ft(e){is();const t=os();null!==e&&(e.dirty=!0,e.setCachedNodes(null)),t._selection=e}function Lt(e){const t=ls(),n=function(e,t){let n=e;for(;null!=n;){const e=kt(n,t);if(void 0!==e)return e;n=rn(n)}return null}(e,t);if(null===n){return e===t.getRootElement()?Ct(\"root\"):null}return Ct(n)}function Ot(e,t){return t?e.getTextContentSize():0}function Dt(e){return/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g.test(e)}function Mt(e){const t=[];let n=e;for(;null!==n;)t.push(n),n=n._parentEditor;return t}function It(){return Math.random().toString(36).replace(/[^a-z]+/g,\"\").substr(0,5)}function At(e){return e.nodeType===ie?e.nodeValue:null}function Bt(e,t,n){const r=vn(t._window);if(null===r)return;const i=r.anchorNode;let{anchorOffset:s,focusOffset:o}=r;if(null!==i){let t=At(i);const r=bt(i);if(null!==t&&hi(r)){if(t===we&&n){const e=n.length;t=n,s=e,o=e}null!==t&&zt(r,t,s,o,e)}}}function zt(e,t,n,r,i){let s=e;if(s.isAttached()&&(i||!s.isDirty())){const o=s.isComposing();let l=t;(o||i)&&t[t.length-1]===we&&(l=t.slice(0,-1));const c=s.getTextContent();if(i||l!==c){if(\"\"===l){if(vt(null),X||Y||ne)s.remove();else{const e=ls();setTimeout((()=>{e.update((()=>{s.isAttached()&&s.remove()}))}),20)}return}const t=s.getParent(),i=Ki(),c=s.getTextContentSize(),a=St(),u=s.getKey();if(s.isToken()||null!==a&&u===a&&!o||ki(i)&&(null!==t&&!t.canInsertTextBefore()&&0===i.anchor.offset||i.anchor.key===e.__key&&0===i.anchor.offset&&!s.canInsertTextBefore()&&!o||i.focus.key===e.__key&&i.focus.offset===c&&!s.canInsertTextAfter()&&!o))return void s.markDirty();const f=Ri();if(!ki(f)||null===n||null===r)return void s.setTextContent(l);if(f.setTextNodeRange(s,n,s,r),s.isSegmented()){const e=di(s.getTextContent());s.replace(e),s=e}s.setTextContent(l)}}}function Wt(e,t){if(t.isSegmented())return!0;if(!e.isCollapsed())return!1;const n=e.anchor.offset,r=t.getParentOrThrow(),i=t.isToken();return 0===n?!t.canInsertTextBefore()||!r.canInsertTextBefore()&&!t.isComposing()||i||function(e){const t=e.getPreviousSibling();return(hi(t)||bs(t)&&t.isInline())&&!t.canInsertTextAfter()}(t):n===t.getTextContentSize()&&(!t.canInsertTextAfter()||!r.canInsertTextAfter()&&!t.isComposing()||i)}function Rt(e){return\"ArrowLeft\"===e}function Kt(e){return\"ArrowRight\"===e}function Jt(e,t){return q?e:t}function $t(e){return\"Enter\"===e}function Ut(e){return\"Backspace\"===e}function Vt(e){return\"Delete\"===e}function jt(e,t,n){return\"a\"===e.toLowerCase()&&Jt(t,n)}function Ht(){const e=Et();Ft(nt(e.select(0,e.getChildrenSize())))}function qt(e,t){void 0===e.__lexicalClassNameCache&&(e.__lexicalClassNameCache={});const n=e.__lexicalClassNameCache,r=n[t];if(void 0!==r)return r;const i=e[t];if(\"string\"==typeof i){const e=Ke(i);return n[t]=e,e}return i}function Gt(e,t,n,r,i){if(0===n.size)return;const s=r.__type,o=r.__key,l=t.get(s);void 0===l&&Re(33,s);const c=l.klass;let a=e.get(c);void 0===a&&(a=new Map,e.set(c,a));const u=a.get(o),f=\"destroyed\"===u&&\"created\"===i;(void 0===u||f)&&a.set(o,f?\"updated\":i)}function Qt(e){const t=e.getType(),n=os();if(n._readOnly){const e=On(n).get(t);return e?Array.from(e.values()):[]}const r=n._nodeMap,i=[];for(const[,n]of r)n instanceof e&&n.__type===t&&n.isAttached()&&i.push(n);return i}function Xt(e,t,n){const r=e.getParent();let i=n,s=e;return null!==r&&(t&&0===n?(i=s.getIndexWithinParent(),s=r):t||n!==s.getChildrenSize()||(i=s.getIndexWithinParent()+1,s=r)),s.getChildAtIndex(t?i-1:i)}function Yt(e,t){const n=e.offset;if(\"element\"===e.type){return Xt(e.getNode(),t,n)}{const r=e.getNode();if(t&&0===n||!t&&n===r.getTextContentSize()){const e=t?r.getPreviousSibling():r.getNextSibling();return null===e?Xt(r.getParentOrThrow(),t,r.getIndexWithinParent()+(t?0:1)):e}}return null}function Zt(e){const t=an(e).event,n=t&&t.inputType;return\"insertFromPaste\"===n||\"insertFromPasteAsQuotation\"===n}function en(e,t,n){return ms(e,t,n)}function tn(e){return!Fs(e)&&!e.isLastChild()&&!e.isInline()}function nn(e,t){const n=e._keyToDOMMap.get(t);return void 0===n&&Re(75,t),n}function rn(e){const t=e.assignedSlot||e.parentElement;return null!==t&&11===t.nodeType?t.host:t}function sn(e){return ls()._updateTags.has(e)}function on(e){is();ls()._updateTags.add(e)}function ln(e){is();ls()._deferred.push(e)}function cn(e,t){let n=e.getParent();for(;null!==n;){if(n.is(t))return!0;n=n.getParent()}return!1}function an(e){const t=e._window;return null===t&&Re(78),t}function un(e){return bs(e)&&e.isInline()||Es(e)&&e.isInline()}function fn(e){let t=e.getParentOrThrow();for(;null!==t;){if(dn(t))return t;t=t.getParentOrThrow()}return t}function dn(e){return Fs(e)||bs(e)&&e.isShadowRoot()}function hn(e){const t=e.constructor.clone(e);return yt(t,null),t}function gn(e){const t=ls(),n=e.constructor.getType(),r=t._nodes.get(n);void 0===r&&Re(200,e.constructor.name,n);const{replace:i,replaceWithKlass:s}=r;if(null!==i){const t=i(e),r=t.constructor;return null!==s?t instanceof s||Re(201,s.name,s.getType(),r.name,r.getType(),e.constructor.name,n):t instanceof e.constructor&&r!==e.constructor||Re(202,r.name,r.getType(),e.constructor.name,n),t.__key===e.__key&&Re(203,e.constructor.name,n,r.name,r.getType()),t}return e}function _n(e,t){!Fs(e.getParent())||bs(t)||Es(t)||Re(99)}function pn(e){const t=Ct(e);return null===t&&Re(63,e),t}function yn(e){return(Es(e)||bs(e)&&!e.canBeEmpty())&&!e.isInline()}function mn(e,t,n){n.style.removeProperty(\"caret-color\"),t._blockCursorElement=null;const r=e.parentElement;null!==r&&r.removeChild(e)}function xn(e,t,n){let r=e._blockCursorElement;if(ki(n)&&n.isCollapsed()&&\"element\"===n.anchor.type&&t.contains(document.activeElement)){const i=n.anchor,s=i.getNode(),o=i.offset;let l=!1,c=null;if(o===s.getChildrenSize()){yn(s.getChildAtIndex(o-1))&&(l=!0)}else{const t=s.getChildAtIndex(o);if(null!==t&&yn(t)){const n=t.getPreviousSibling();(null===n||yn(n))&&(l=!0,c=e.getElementByKey(t.__key))}}if(l){const n=e.getElementByKey(s.__key);return null===r&&(e._blockCursorElement=r=function(e){const t=e.theme,n=document.createElement(\"div\");n.contentEditable=\"false\",n.setAttribute(\"data-lexical-cursor\",\"true\");let r=t.blockCursor;if(void 0!==r){if(\"string\"==typeof r){const e=Ke(r);r=t.blockCursor=e}void 0!==r&&n.classList.add(...r)}return n}(e._config)),t.style.caretColor=\"transparent\",void(null===c?n.appendChild(r):n.insertBefore(r,c))}}null!==r&&mn(r,e,t)}function vn(e){return j?(e||window).getSelection():null}function Sn(e,t){let n=e.getChildAtIndex(t);null==n&&(n=e),dn(e)&&Re(102);const r=e=>{const t=e.getParentOrThrow(),i=dn(t),s=e!==n||i?hn(e):e;if(i)return bs(e)&&bs(s)||Re(133),e.insertAfter(s),[e,s,s];{const[n,i,o]=r(t),l=e.getNextSiblings();return o.append(s,...l),[n,i,s]}},[i,s]=r(n);return[i,s]}function Cn(e){return Tn(e)&&\"A\"===e.tagName}function Tn(e){return 1===e.nodeType}function kn(e){return 11===e.nodeType}function bn(e){const t=new RegExp(/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var|#text)$/,\"i\");return null!==e.nodeName.match(t)}function wn(e){const t=new RegExp(/^(address|article|aside|blockquote|canvas|dd|div|dl|dt|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hr|li|main|nav|noscript|ol|p|pre|section|table|td|tfoot|ul|video)$/,\"i\");return null!==e.nodeName.match(t)}function Nn(e){if(Es(e)&&!e.isInline())return!0;if(!bs(e)||dn(e))return!1;const t=e.getFirstChild(),n=null===t||Gr(t)||hi(t)||t.isInline();return!e.isInline()&&!1!==e.canBeEmpty()&&n}function En(e,t){let n=e;for(;null!==n&&null!==n.getParent()&&!t(n);)n=n.getParentOrThrow();return t(n)?n:null}function Pn(){return ls()}const Fn=new WeakMap,Ln=new Map;function On(e){if(!e._readOnly&&e.isEmpty())return Ln;e._readOnly||Re(192);let t=Fn.get(e);if(!t){t=new Map,Fn.set(e,t);for(const[n,r]of e._nodeMap){const e=r.__type;let i=t.get(e);i||(i=new Map,t.set(e,i)),i.set(n,r)}}return t}function Dn(e){const t=e.constructor.clone(e);return t.afterCloneFrom(e),t}function Mn(e,t){const n=(parseInt(e.style.paddingInlineStart,10)||0)/40;t.setIndent(n)}function In(e){e.__lexicalUnmanaged=!0}function An(e){return!0===e.__lexicalUnmanaged}function Bn(e,t,n,r,i,s){let o=e.getFirstChild();for(;null!==o;){const e=o.__key;o.__parent===t&&(bs(o)&&Bn(o,e,n,r,i,s),n.has(e)||s.delete(e),i.push(e)),o=o.getNextSibling()}}let zn,Wn,Rn,Kn,Jn,$n,Un,Vn,jn,Hn,qn=\"\",Gn=\"\",Qn=null,Xn=\"\",Yn=\"\",Zn=!1,er=!1,tr=null;function nr(e,t){const n=Un.get(e);if(null!==t){const n=xr(e);n.parentNode===t&&t.removeChild(n)}if(Vn.has(e)||Wn._keyToDOMMap.delete(e),bs(n)){const e=gr(n,Un);rr(e,0,e.length-1,null)}void 0!==n&&Gt(Hn,Rn,Kn,n,\"destroyed\")}function rr(e,t,n,r){let i=t;for(;i<=n;++i){const t=e[i];void 0!==t&&nr(t,r)}}function ir(e,t){e.setProperty(\"text-align\",t)}const sr=\"40px\";function or(e,t){const n=zn.theme.indent;if(\"string\"==typeof n){const r=e.classList.contains(n);t>0&&!r?e.classList.add(n):t<1&&r&&e.classList.remove(n)}const r=getComputedStyle(e).getPropertyValue(\"--lexical-indent-base-value\")||sr;e.style.setProperty(\"padding-inline-start\",0===t?\"\":`calc(${t} * ${r})`)}function lr(e,t){const n=e.style;0===t?ir(n,\"\"):t===ve?ir(n,\"left\"):t===Se?ir(n,\"center\"):t===Ce?ir(n,\"right\"):t===Te?ir(n,\"justify\"):t===ke?ir(n,\"start\"):t===be&&ir(n,\"end\")}function cr(e,t){const n=Vn.get(e);void 0===n&&Re(60);const r=n.createDOM(zn,Wn);if(function(e,t,n){const r=n._keyToDOMMap;(function(e,t,n){e[`__lexicalKey_${t._key}`]=n})(t,n,e),r.set(e,t)}(e,r,Wn),hi(n)?r.setAttribute(\"data-lexical-text\",\"true\"):Es(n)&&r.setAttribute(\"data-lexical-decorator\",\"true\"),bs(n)){const e=n.__indent,t=n.__size;if(0!==e&&or(r,e),0!==t){const e=t-1;!function(e,t,n,r){const i=Gn;Gn=\"\",ar(e,n,0,t,n.getDOMSlot(r)),dr(n,r),Gn=i}(gr(n,Vn),e,n,r)}const i=n.__format;0!==i&&lr(r,i),n.isInline()||fr(null,n,r),tn(n)&&(qn+=Ne,Yn+=Ne)}else{const t=n.getTextContent();if(Es(n)){const t=n.decorate(Wn,zn);null!==t&&pr(e,t),r.contentEditable=\"false\"}else hi(n)&&(n.isDirectionless()||(Gn+=t));qn+=t,Yn+=t}return null!==t&&t.insertChild(r),Gt(Hn,Rn,Kn,n,\"created\"),r}function ar(e,t,n,r,i){const s=qn;qn=\"\";let o=n;for(;o<=r;++o){cr(e[o],i);const t=Vn.get(e[o]);null!==t&&hi(t)&&(null===Qn&&(Qn=t.getFormat()),\"\"===Xn&&(Xn=t.getStyle()))}tn(t)&&(qn+=Ne);i.element.__lexicalTextContent=qn,qn=s+qn}function ur(e,t){if(e){const n=e.__last;if(n){const e=t.get(n);if(e)return Gr(e)?\"line-break\":Es(e)&&e.isInline()?\"decorator\":null}return\"empty\"}return null}function fr(e,t,n){const r=ur(e,Un),i=ur(t,Vn);r!==i&&t.getDOMSlot(n).setManagedLineBreak(i)}function dr(e,t){const n=t.__lexicalDirTextContent||\"\",r=t.__lexicalDir||\"\";if(n!==Gn||r!==tr){const n=\"\"===Gn,s=n?tr:(i=Gn,Le.test(i)?\"rtl\":Oe.test(i)?\"ltr\":null);if(s!==r){const i=t.classList,o=zn.theme;let l=null!==r?o[r]:void 0,c=null!==s?o[s]:void 0;if(void 0!==l){if(\"string\"==typeof l){const e=Ke(l);l=o[r]=e}i.remove(...l)}if(null===s||n&&\"ltr\"===s)t.removeAttribute(\"dir\");else{if(void 0!==c){if(\"string\"==typeof c){const e=Ke(c);c=o[s]=e}void 0!==c&&i.add(...c)}t.dir=s}if(!er){e.getWritable().__dir=s}}tr=s,t.__lexicalDirTextContent=Gn,t.__lexicalDir=s}var i}function hr(e,t,n){const r=Gn;var i;Gn=\"\",Qn=null,Xn=\"\",function(e,t,n){const r=qn,i=e.__size,s=t.__size;qn=\"\";const o=n.element;if(1===i&&1===s){const n=e.__first,r=t.__first;if(n===r)_r(n,o);else{const e=xr(n),t=cr(r,null);try{o.replaceChild(t,e)}catch(i){if(\"object\"==typeof i&&null!=i){const s=`${i.toString()} Parent: ${o.tagName}, new child: {tag: ${t.tagName} key: ${r}}, old child: {tag: ${e.tagName}, key: ${n}}.`;throw new Error(s)}throw i}nr(n,null)}const i=Vn.get(r);hi(i)&&(null===Qn&&(Qn=i.getFormat()),\"\"===Xn&&(Xn=i.getStyle()))}else{const r=gr(e,Un),l=gr(t,Vn);if(r.length!==i&&Re(227),l.length!==s&&Re(228),0===i)0!==s&&ar(l,t,0,s-1,n);else if(0===s){if(0!==i){const e=null==n.after&&null==n.before&&null==n.element.__lexicalLineBreak;rr(r,0,i-1,e?null:o),e&&(o.textContent=\"\")}}else!function(e,t,n,r,i,s){const o=r-1,l=i-1;let c,a,u=s.getFirstChild(),f=0,d=0;for(;f<=o&&d<=l;){const e=t[f],r=n[d];if(e===r)u=yr(_r(r,s.element)),f++,d++;else{void 0===c&&(c=new Set(t)),void 0===a&&(a=new Set(n));const i=a.has(e),o=c.has(r);if(i)if(o){const e=nn(Wn,r);e===u?u=yr(_r(r,s.element)):(s.withBefore(u).insertChild(e),_r(r,s.element)),f++,d++}else cr(r,s.withBefore(u)),d++;else u=yr(xr(e)),nr(e,s.element),f++}const i=Vn.get(r);null!==i&&hi(i)&&(null===Qn&&(Qn=i.getFormat()),\"\"===Xn&&(Xn=i.getStyle()))}const h=f>o,g=d>l;if(h&&!g){const t=n[l+1],r=void 0===t?null:Wn.getElementByKey(t);ar(n,e,d,l,s.withBefore(r))}else g&&!h&&rr(t,f,o,s.element)}(t,r,l,i,s,n)}tn(t)&&(qn+=Ne);o.__lexicalTextContent=qn,qn=r+qn}(e,t,t.getDOMSlot(n)),dr(t,n),Ws(i=t)&&null!=Qn&&Qn!==i.__textFormat&&!er&&(i.setTextFormat(Qn),i.setTextStyle(Xn)),function(e){Ws(e)&&\"\"!==Xn&&Xn!==e.__textStyle&&!er&&e.setTextStyle(Xn)}(t),Gn=r}function gr(e,t){const n=[];let r=e.__first;for(;null!==r;){const e=t.get(r);void 0===e&&Re(101),n.push(r),r=e.__next}return n}function _r(e,t){const n=Un.get(e);let r=Vn.get(e);void 0!==n&&void 0!==r||Re(61);const i=Zn||$n.has(e)||Jn.has(e),s=nn(Wn,e);if(n===r&&!i){if(bs(n)){const e=s.__lexicalTextContent;void 0!==e&&(qn+=e,Yn+=e);const t=s.__lexicalDirTextContent;void 0!==t&&(Gn+=t)}else{const e=n.getTextContent();hi(n)&&!n.isDirectionless()&&(Gn+=e),Yn+=e,qn+=e}return s}if(n!==r&&i&&Gt(Hn,Rn,Kn,r,\"updated\"),r.updateDOM(n,s,zn)){const n=cr(e,null);return null===t&&Re(62),t.replaceChild(n,s),nr(e,null),n}if(bs(n)&&bs(r)){const e=r.__indent;e!==n.__indent&&or(s,e);const t=r.__format;t!==n.__format&&lr(s,t),i&&(hr(n,r,s),Fs(r)||r.isInline()||fr(n,r,s)),tn(r)&&(qn+=Ne,Yn+=Ne)}else{const t=r.getTextContent();if(Es(r)){const t=r.decorate(Wn,zn);null!==t&&pr(e,t)}else hi(r)&&!r.isDirectionless()&&(Gn+=t);qn+=t,Yn+=t}if(!er&&Fs(r)&&r.__cachedText!==Yn){const e=r.getWritable();e.__cachedText=Yn,r=e}return s}function pr(e,t){let n=Wn._pendingDecorators;const r=Wn._decorators;if(null===n){if(r[e]===t)return;n=wt(Wn)}n[e]=t}function yr(e){let t=e.nextSibling;return null!==t&&t===Wn._blockCursorElement&&(t=t.nextSibling),t}function mr(e,t,n,r,i,s){qn=\"\",Yn=\"\",Gn=\"\",Zn=r===le,tr=null,Wn=n,zn=n._config,Rn=n._nodes,Kn=Wn._listeners.mutation,Jn=i,$n=s,Un=e._nodeMap,Vn=t._nodeMap,er=t._readOnly,jn=new Map(n._keyToDOMMap);const o=new Map;return Hn=o,_r(\"root\",null),Wn=void 0,Rn=void 0,Jn=void 0,$n=void 0,Un=void 0,Vn=void 0,zn=void 0,jn=void 0,Hn=void 0,o}function xr(e){const t=jn.get(e);return void 0===t&&Re(75,e),t}const vr=Object.freeze({}),Sr=30,Cr=[[\"keydown\",function(e,t){if(Tr=e.timeStamp,kr=e.key,t.isComposing())return;const{key:n,shiftKey:r,ctrlKey:o,metaKey:l,altKey:c}=e;if(en(t,_,e))return;if(null==n)return;if(function(e,t,n,r){return Kt(e)&&!t&&!r&&!n}(n,o,c,l))en(t,p,e);else if(function(e,t,n,r,i){return Kt(e)&&!r&&!n&&(t||i)}(n,o,r,c,l))en(t,y,e);else if(function(e,t,n,r){return Rt(e)&&!t&&!r&&!n}(n,o,c,l))en(t,m,e);else if(function(e,t,n,r,i){return Rt(e)&&!r&&!n&&(t||i)}(n,o,r,c,l))en(t,x,e);else if(function(e,t,n){return function(e){return\"ArrowUp\"===e}(e)&&!t&&!n}(n,o,l))en(t,v,e);else if(function(e,t,n){return function(e){return\"ArrowDown\"===e}(e)&&!t&&!n}(n,o,l))en(t,S,e);else if(function(e,t){return $t(e)&&t}(n,r))Fr=!0,en(t,C,e);else if(function(e){return\" \"===e}(n))en(t,T,e);else if(function(e,t){return q&&t&&\"o\"===e.toLowerCase()}(n,o))e.preventDefault(),Fr=!0,en(t,s,!0);else if(function(e,t){return $t(e)&&!t}(n,r))Fr=!1,en(t,C,e);else if(function(e,t,n,r){return q?!t&&!n&&(Ut(e)||\"h\"===e.toLowerCase()&&r):!(r||t||n)&&Ut(e)}(n,c,l,o))Ut(n)?en(t,k,e):(e.preventDefault(),en(t,i,!0));else if(function(e){return\"Escape\"===e}(n))en(t,b,e);else if(function(e,t,n,r,i){return q?!(n||r||i)&&(Vt(e)||\"d\"===e.toLowerCase()&&t):!(t||r||i)&&Vt(e)}(n,o,r,c,l))Vt(n)?en(t,w,e):(e.preventDefault(),en(t,i,!1));else if(function(e,t,n){return Ut(e)&&(q?t:n)}(n,c,o))e.preventDefault(),en(t,u,!0);else if(function(e,t,n){return Vt(e)&&(q?t:n)}(n,c,o))e.preventDefault(),en(t,u,!1);else if(function(e,t){return q&&t&&Ut(e)}(n,l))e.preventDefault(),en(t,f,!0);else if(function(e,t){return q&&t&&Vt(e)}(n,l))e.preventDefault(),en(t,f,!1);else if(function(e,t,n,r){return\"b\"===e.toLowerCase()&&!t&&Jt(n,r)}(n,c,l,o))e.preventDefault(),en(t,d,\"bold\");else if(function(e,t,n,r){return\"u\"===e.toLowerCase()&&!t&&Jt(n,r)}(n,c,l,o))e.preventDefault(),en(t,d,\"underline\");else if(function(e,t,n,r){return\"i\"===e.toLowerCase()&&!t&&Jt(n,r)}(n,c,l,o))e.preventDefault(),en(t,d,\"italic\");else if(function(e,t,n,r){return\"Tab\"===e&&!t&&!n&&!r}(n,c,o,l))en(t,N,e);else if(function(e,t,n,r){return\"z\"===e.toLowerCase()&&!t&&Jt(n,r)}(n,r,l,o))e.preventDefault(),en(t,h,void 0);else if(function(e,t,n,r){return q?\"z\"===e.toLowerCase()&&n&&t:\"y\"===e.toLowerCase()&&r||\"z\"===e.toLowerCase()&&r&&t}(n,r,l,o))e.preventDefault(),en(t,g,void 0);else{const i=t._editorState._selection;null===i||ki(i)?!G&&jt(n,l,o)&&(e.preventDefault(),en(t,z,e)):!function(e,t,n,r){return!t&&\"c\"===e.toLowerCase()&&(q?n:r)}(n,r,l,o)?!function(e,t,n,r){return!t&&\"x\"===e.toLowerCase()&&(q?n:r)}(n,r,l,o)?jt(n,l,o)&&(e.preventDefault(),en(t,z,e)):(e.preventDefault(),en(t,B,e)):(e.preventDefault(),en(t,A,e))}(function(e,t,n,r){return e||t||n||r})(o,r,c,l)&&en(t,V,e)}],[\"pointerdown\",function(e,t){const n=e.target,r=e.pointerType;n instanceof Node&&\"touch\"!==r&&Ss(t,(()=>{Es(bt(n))||(Pr=!0)}))}],[\"compositionstart\",function(e,t){Ss(t,(()=>{const n=Ri();if(ki(n)&&!t.isComposing()){const r=n.anchor,i=n.anchor.getNode();vt(r.key),(e.timeStamp<Tr+Sr||\"element\"===r.type||!n.isCollapsed()||i.getFormat()!==n.format||hi(i)&&i.getStyle()!==n.style)&&en(t,l,Ee)}}))}],[\"compositionend\",function(e,t){G?Lr=!0:Ss(t,(()=>{Br(t,e.data)}))}],[\"input\",function(e,t){e.stopPropagation(),Ss(t,(()=>{const n=Ri(),r=e.data,i=Ar(e);if(null!=r&&ki(n)&&Dr(n,i,r,e.timeStamp,!1)){Lr&&(Br(t,r),Lr=!1);const i=n.anchor.getNode(),s=vn(t._window);if(null===s)return;const o=n.isBackward(),c=o?n.anchor.offset:n.focus.offset,a=o?n.focus.offset:n.anchor.offset;Q&&!n.isCollapsed()&&hi(i)&&null!==s.anchorNode&&i.getTextContent().slice(0,c)+r+i.getTextContent().slice(c+a)===At(s.anchorNode)||en(t,l,r);const u=r.length;G&&u>1&&\"insertCompositionText\"===e.inputType&&!t.isComposing()&&(n.anchor.offset-=u),X||Y||ne||!t.isComposing()||(Tr=0,vt(null))}else{Bt(!1,t,null!==r?r:void 0),Lr&&(Br(t,r||void 0),Lr=!1)}is(),Xe(ls())})),wr=null}],[\"click\",function(e,t){Ss(t,(()=>{const n=Ri(),i=vn(t._window),s=Ki();if(i)if(ki(n)){const t=n.anchor,r=t.getNode();if(\"element\"===t.type&&0===t.offset&&n.isCollapsed()&&!Fs(r)&&1===Et().getChildrenSize()&&r.getTopLevelElementOrThrow().isEmpty()&&null!==s&&n.is(s))i.removeAllRanges(),n.dirty=!0;else if(3===e.detail&&!n.isCollapsed()){r!==n.focus.getNode()&&(bs(r)?r.select(0):r.getParentOrThrow().select(0))}}else if(\"touch\"===e.pointerType){const n=i.anchorNode;if(null!==n){const r=n.nodeType;if(r===re||r===ie){Ft(Wi(s,i,t,e))}}}en(t,r,e)}))}],[\"cut\",vr],[\"copy\",vr],[\"dragstart\",vr],[\"dragover\",vr],[\"dragend\",vr],[\"paste\",vr],[\"focus\",vr],[\"blur\",vr],[\"drop\",vr]];Q&&Cr.push([\"beforeinput\",(e,t)=>function(e,t){const n=e.inputType,r=Ar(e);if(\"deleteCompositionText\"===n||G&&Zt(t))return;if(\"insertCompositionText\"===n)return;Ss(t,(()=>{const _=Ri();if(\"deleteContentBackward\"===n){if(null===_){const e=Ki();if(!ki(e))return;Ft(e.clone())}if(ki(_)){const n=_.anchor.key===_.focus.key;if(p=e.timeStamp,\"MediaLast\"===kr&&p<Tr+Sr&&t.isComposing()&&n){if(vt(null),Tr=0,setTimeout((()=>{Ss(t,(()=>{vt(null)}))}),Sr),ki(_)){const e=_.anchor.getNode();e.markDirty(),_.format=e.getFormat(),hi(e)||Re(142),_.style=e.getStyle()}}else{vt(null),e.preventDefault();const r=_.anchor.getNode(),s=r.getTextContent(),o=r.canInsertTextAfter(),l=0===_.anchor.offset&&_.focus.offset===s.length;te&&n&&!l&&o||en(t,i,!0)}return}}var p;if(!ki(_))return;const y=e.data;null!==wr&&Bt(!1,t,wr),_.dirty&&null===wr||!_.isCollapsed()||Fs(_.anchor.getNode())||null===r||_.applyDOMRange(r),wr=null;const m=_.anchor,x=_.focus,v=m.getNode(),S=x.getNode();if(\"insertText\"!==n&&\"insertTranspose\"!==n)switch(e.preventDefault(),n){case\"insertFromYank\":case\"insertFromDrop\":case\"insertReplacementText\":en(t,l,e);break;case\"insertFromComposition\":vt(null),en(t,l,e);break;case\"insertLineBreak\":vt(null),en(t,s,!1);break;case\"insertParagraph\":vt(null),Fr&&!Y?(Fr=!1,en(t,s,!1)):en(t,o,void 0);break;case\"insertFromPaste\":case\"insertFromPasteAsQuotation\":en(t,c,e);break;case\"deleteByComposition\":(function(e,t){return e!==t||bs(e)||bs(t)||!e.isToken()||!t.isToken()})(v,S)&&en(t,a,e);break;case\"deleteByDrag\":case\"deleteByCut\":en(t,a,e);break;case\"deleteContent\":en(t,i,!1);break;case\"deleteWordBackward\":en(t,u,!0);break;case\"deleteWordForward\":en(t,u,!1);break;case\"deleteHardLineBackward\":case\"deleteSoftLineBackward\":en(t,f,!0);break;case\"deleteContentForward\":case\"deleteHardLineForward\":case\"deleteSoftLineForward\":en(t,f,!1);break;case\"formatStrikeThrough\":en(t,d,\"strikethrough\");break;case\"formatBold\":en(t,d,\"bold\");break;case\"formatItalic\":en(t,d,\"italic\");break;case\"formatUnderline\":en(t,d,\"underline\");break;case\"historyUndo\":en(t,h,void 0);break;case\"historyRedo\":en(t,g,void 0)}else{if(\"\\n\"===y)e.preventDefault(),en(t,s,!1);else if(y===Ne)e.preventDefault(),en(t,o,void 0);else if(null==y&&e.dataTransfer){const t=e.dataTransfer.getData(\"text/plain\");e.preventDefault(),_.insertRawText(t)}else null!=y&&Dr(_,r,y,e.timeStamp,!0)?(e.preventDefault(),en(t,l,y)):wr=y;br=e.timeStamp}}))}(e,t)]);let Tr=0,kr=null,br=0,wr=null;const Nr=new WeakMap;let Er=!1,Pr=!1,Fr=!1,Lr=!1,Or=[0,\"\",0,\"root\",0];function Dr(e,t,n,r,i){const s=e.anchor,o=e.focus,l=s.getNode(),c=ls(),a=vn(c._window),u=null!==a?a.anchorNode:null,f=s.key,d=c.getElementByKey(f),h=n.length;return f!==o.key||!hi(l)||(!i&&(!Q||br<r+50)||l.isDirty()&&h<2||Dt(n))&&s.offset!==o.offset&&!l.isComposing()||dt(l)||l.isDirty()&&h>1||(i||!Q)&&null!==d&&!l.isComposing()&&u!==gt(d)||null!==a&&null!==t&&(!t.collapsed||t.startContainer!==a.anchorNode||t.startOffset!==a.anchorOffset)||l.getFormat()!==e.format||l.getStyle()!==e.style||Wt(e,l)}function Mr(e,t){return null!==e&&null!==e.nodeValue&&e.nodeType===ie&&0!==t&&t!==e.nodeValue.length}function Ir(e,n,r){const{anchorNode:i,anchorOffset:s,focusNode:o,focusOffset:l}=e;Er&&(Er=!1,Mr(i,s)&&Mr(o,l))||Ss(n,(()=>{if(!r)return void Ft(null);if(!ct(n,i,o))return;const c=Ri();if(ki(c)){const t=c.anchor,r=t.getNode();if(c.isCollapsed()){\"Range\"===e.type&&e.anchorNode===e.focusNode&&(c.dirty=!0);const i=an(n).event,s=i?i.timeStamp:performance.now(),[o,l,a,u,f]=Or,d=Et(),h=!1===n.isComposing()&&\"\"===d.getTextContent();if(s<f+200&&t.offset===a&&t.key===u)c.format=o,c.style=l;else if(\"text\"===t.type)hi(r)||Re(141),c.format=r.getFormat(),c.style=r.getStyle();else if(\"element\"===t.type&&!h){const e=t.getNode();c.style=\"\",e instanceof As&&0===e.getChildrenSize()?(c.format=e.getTextFormat(),c.style=e.getTextStyle()):c.format=0}}else{const e=t.key,n=c.focus.key,r=c.getNodes(),i=r.length,o=c.isBackward(),a=o?l:s,u=o?s:l,f=o?n:e,d=o?e:n;let h=xe,g=!1;for(let e=0;e<i;e++){const t=r[e],n=t.getTextContentSize();if(hi(t)&&0!==n&&!(0===e&&t.__key===f&&a===n||e===i-1&&t.__key===d&&0===u)&&(g=!0,h&=t.getFormat(),0===h))break}c.format=g?h:0}}en(n,t,void 0)}))}function Ar(e){if(!e.getTargetRanges)return null;const t=e.getTargetRanges();return 0===t.length?null:t[0]}function Br(e,t){const n=e._compositionKey;if(vt(null),null!==n&&null!=t){if(\"\"===t){const t=Ct(n),r=gt(e.getElementByKey(n));return void(null!==r&&null!==r.nodeValue&&hi(t)&&zt(t,r.nodeValue,null,null,!0))}if(\"\\n\"===t[t.length-1]){const t=Ri();if(ki(t)){const n=t.focus;return t.anchor.set(n.key,n.offset,n.type),void en(e,C,null)}}}Bt(!0,e,t)}function zr(e){let t=e.__lexicalEventHandles;return void 0===t&&(t=[],e.__lexicalEventHandles=t),t}const Wr=new Map;function Rr(e){const t=e.target,n=vn(null==t?null:9===t.nodeType?t.defaultView:t.ownerDocument.defaultView);if(null===n)return;const r=ut(n.anchorNode);if(null===r)return;Pr&&(Pr=!1,Ss(r,(()=>{const t=Ki(),i=n.anchorNode;if(null===i)return;const s=i.nodeType;if(s!==re&&s!==ie)return;Ft(Wi(t,n,r,e))})));const i=Mt(r),s=i[i.length-1],o=s._key,l=Wr.get(o),c=l||s;c!==r&&Ir(n,c,!1),Ir(n,r,!0),r!==s?Wr.set(o,r):l&&Wr.delete(o)}function Kr(e){e._lexicalHandled=!0}function Jr(e){return!0===e._lexicalHandled}function $r(e){const t=e.ownerDocument,n=Nr.get(t);void 0===n&&Re(162);const r=n-1;r>=0||Re(164),Nr.set(t,r),0===r&&t.removeEventListener(\"selectionchange\",Rr);const i=ft(e);at(i)?(!function(e){if(null!==e._parentEditor){const t=Mt(e),n=t[t.length-1]._key;Wr.get(n)===e&&Wr.delete(n)}else Wr.delete(e._key)}(i),e.__lexicalEditor=null):i&&Re(198);const s=zr(e);for(let e=0;e<s.length;e++)s[e]();e.__lexicalEventHandles=[]}function Ur(e,t,n){is();const r=e.__key,i=e.getParent();if(null===i)return;const s=function(e){const t=Ri();if(!ki(t)||!bs(e))return t;const{anchor:n,focus:r}=t,i=n.getNode(),s=r.getNode();return cn(i,e)&&n.set(e.__key,0,\"element\"),cn(s,e)&&r.set(e.__key,0,\"element\"),t}(e);let o=!1;if(ki(s)&&t){const t=s.anchor,n=s.focus;t.key===r&&(Ui(t,e,i,e.getPreviousSibling(),e.getNextSibling()),o=!0),n.key===r&&(Ui(n,e,i,e.getPreviousSibling(),e.getNextSibling()),o=!0)}else wi(s)&&t&&e.isSelected()&&e.selectPrevious();if(ki(s)&&t&&!o){const t=e.getIndexWithinParent();mt(e),Ji(s,i,t,-1)}else mt(e);n||dn(i)||i.canBeEmpty()||!i.isEmpty()||Ur(i,t),t&&Fs(i)&&i.isEmpty()&&i.selectEnd()}class Vr{static getType(){Re(64,this.name)}static clone(e){Re(65,this.name)}afterCloneFrom(e){this.__parent=e.__parent,this.__next=e.__next,this.__prev=e.__prev}constructor(e){this.__type=this.constructor.getType(),this.__parent=null,this.__prev=null,this.__next=null,yt(this,e)}getType(){return this.__type}isInline(){Re(137,this.constructor.name)}isAttached(){let e=this.__key;for(;null!==e;){if(\"root\"===e)return!0;const t=Ct(e);if(null===t)break;e=t.__parent}return!1}isSelected(e){const t=e||Ri();if(null==t)return!1;const n=t.getNodes().some((e=>e.__key===this.__key));if(hi(this))return n;if(ki(t)&&\"element\"===t.anchor.type&&\"element\"===t.focus.type){if(t.isCollapsed())return!1;const e=this.getParent();if(Es(this)&&this.isInline()&&e){const n=t.isBackward()?t.focus:t.anchor,r=n.getNode();if(n.offset===r.getChildrenSize()&&r.is(e)&&r.getLastChildOrThrow().is(this))return!1}}return n}getKey(){return this.__key}getIndexWithinParent(){const e=this.getParent();if(null===e)return-1;let t=e.getFirstChild(),n=0;for(;null!==t;){if(this.is(t))return n;n++,t=t.getNextSibling()}return-1}getParent(){const e=this.getLatest().__parent;return null===e?null:Ct(e)}getParentOrThrow(){const e=this.getParent();return null===e&&Re(66,this.__key),e}getTopLevelElement(){let e=this;for(;null!==e;){const t=e.getParent();if(dn(t))return bs(e)||e===this&&Es(e)||Re(194),e;e=t}return null}getTopLevelElementOrThrow(){const e=this.getTopLevelElement();return null===e&&Re(67,this.__key),e}getParents(){const e=[];let t=this.getParent();for(;null!==t;)e.push(t),t=t.getParent();return e}getParentKeys(){const e=[];let t=this.getParent();for(;null!==t;)e.push(t.__key),t=t.getParent();return e}getPreviousSibling(){const e=this.getLatest().__prev;return null===e?null:Ct(e)}getPreviousSiblings(){const e=[],t=this.getParent();if(null===t)return e;let n=t.getFirstChild();for(;null!==n&&!n.is(this);)e.push(n),n=n.getNextSibling();return e}getNextSibling(){const e=this.getLatest().__next;return null===e?null:Ct(e)}getNextSiblings(){const e=[];let t=this.getNextSibling();for(;null!==t;)e.push(t),t=t.getNextSibling();return e}getCommonAncestor(e){const t=this.getParents(),n=e.getParents();bs(this)&&t.unshift(this),bs(e)&&n.unshift(e);const r=t.length,i=n.length;if(0===r||0===i||t[r-1]!==n[i-1])return null;const s=new Set(n);for(let e=0;e<r;e++){const n=t[e];if(s.has(n))return n}return null}is(e){return null!=e&&this.__key===e.__key}isBefore(e){if(this===e)return!1;if(e.isParentOf(this))return!0;if(this.isParentOf(e))return!1;const t=this.getCommonAncestor(e);let n=0,r=0,i=this;for(;;){const e=i.getParentOrThrow();if(e===t){n=i.getIndexWithinParent();break}i=e}for(i=e;;){const e=i.getParentOrThrow();if(e===t){r=i.getIndexWithinParent();break}i=e}return n<r}isParentOf(e){const t=this.__key;if(t===e.__key)return!1;let n=e;for(;null!==n;){if(n.__key===t)return!0;n=n.getParent()}return!1}getNodesBetween(e){const t=this.isBefore(e),n=[],r=new Set;let i=this;for(;null!==i;){const s=i.__key;if(r.has(s)||(r.add(s),n.push(i)),i===e)break;const o=bs(i)?t?i.getFirstChild():i.getLastChild():null;if(null!==o){i=o;continue}const l=t?i.getNextSibling():i.getPreviousSibling();if(null!==l){i=l;continue}const c=i.getParentOrThrow();if(r.has(c.__key)||n.push(c),c===e)break;let a=null,u=c;do{if(null===u&&Re(68),a=t?u.getNextSibling():u.getPreviousSibling(),u=u.getParent(),null===u)break;null!==a||r.has(u.__key)||n.push(u)}while(null===a);i=a}return t||n.reverse(),n}isDirty(){const e=ls()._dirtyLeaves;return null!==e&&e.has(this.__key)}getLatest(){const e=Ct(this.__key);return null===e&&Re(113),e}getWritable(){is();const e=os(),t=ls(),n=e._nodeMap,r=this.__key,i=this.getLatest(),s=t._cloneNotNeeded,o=Ri();if(null!==o&&o.setCachedNodes(null),s.has(r))return xt(i),i;const l=Dn(i);return s.add(r),xt(l),n.set(r,l),l}getTextContent(){return\"\"}getTextContentSize(){return this.getTextContent().length}createDOM(e,t){Re(70)}updateDOM(e,t,n){Re(71)}exportDOM(e){return{element:this.createDOM(e._config,e)}}exportJSON(){Re(72)}static importJSON(e){Re(18,this.name)}static transform(){return null}remove(e){Ur(this,!0,e)}replace(e,t){is();let n=Ri();null!==n&&(n=n.clone()),_n(this,e);const r=this.getLatest(),i=this.__key,s=e.__key,o=e.getWritable(),l=this.getParentOrThrow().getWritable(),c=l.__size;mt(o);const a=r.getPreviousSibling(),u=r.getNextSibling(),f=r.__prev,d=r.__next,h=r.__parent;if(Ur(r,!1,!0),null===a)l.__first=s;else{a.getWritable().__next=s}if(o.__prev=f,null===u)l.__last=s;else{u.getWritable().__prev=s}if(o.__next=d,o.__parent=h,l.__size=c,t&&(bs(this)&&bs(o)||Re(139),this.getChildren().forEach((e=>{o.append(e)}))),ki(n)){Ft(n);const e=n.anchor,t=n.focus;e.key===i&&Si(e,o),t.key===i&&Si(t,o)}return St()===i&&vt(s),o}insertAfter(e,t=!0){is(),_n(this,e);const n=this.getWritable(),r=e.getWritable(),i=r.getParent(),s=Ri();let o=!1,l=!1;if(null!==i){const t=e.getIndexWithinParent();if(mt(r),ki(s)){const e=i.__key,n=s.anchor,r=s.focus;o=\"element\"===n.type&&n.key===e&&n.offset===t+1,l=\"element\"===r.type&&r.key===e&&r.offset===t+1}}const c=this.getNextSibling(),a=this.getParentOrThrow().getWritable(),u=r.__key,f=n.__next;if(null===c)a.__last=u;else{c.getWritable().__prev=u}if(a.__size++,n.__next=u,r.__next=f,r.__prev=n.__key,r.__parent=n.__parent,t&&ki(s)){const e=this.getIndexWithinParent();Ji(s,a,e+1);const t=a.__key;o&&s.anchor.set(t,e+2,\"element\"),l&&s.focus.set(t,e+2,\"element\")}return e}insertBefore(e,t=!0){is(),_n(this,e);const n=this.getWritable(),r=e.getWritable(),i=r.__key;mt(r);const s=this.getPreviousSibling(),o=this.getParentOrThrow().getWritable(),l=n.__prev,c=this.getIndexWithinParent();if(null===s)o.__first=i;else{s.getWritable().__next=i}o.__size++,n.__prev=i,r.__prev=l,r.__next=n.__key,r.__parent=n.__parent;const a=Ri();if(t&&ki(a)){Ji(a,this.getParentOrThrow(),c)}return e}isParentRequired(){return!1}createParentElementNode(){return zs()}selectStart(){return this.selectPrevious()}selectEnd(){return this.selectNext(0,0)}selectPrevious(e,t){is();const n=this.getPreviousSibling(),r=this.getParentOrThrow();if(null===n)return r.select(0,0);if(bs(n))return n.select();if(!hi(n)){const e=n.getIndexWithinParent()+1;return r.select(e,e)}return n.select(e,t)}selectNext(e,t){is();const n=this.getNextSibling(),r=this.getParentOrThrow();if(null===n)return r.select();if(bs(n))return n.select(0,0);if(!hi(n)){const e=n.getIndexWithinParent();return r.select(e,e)}return n.select(e,t)}markDirty(){this.getWritable()}reconcileObservedMutation(e,t){this.markDirty()}}class jr extends Vr{static getType(){return\"linebreak\"}static clone(e){return new jr(e.__key)}constructor(e){super(e)}getTextContent(){return\"\\n\"}createDOM(){return document.createElement(\"br\")}updateDOM(){return!1}static importDOM(){return{br:e=>function(e){const t=e.parentElement;if(null!==t&&wn(t)){const n=t.firstChild;if(n===e||n.nextSibling===e&&Qr(n)){const n=t.lastChild;if(n===e||n.previousSibling===e&&Qr(n))return!0}}return!1}(e)||function(e){const t=e.parentElement;if(null!==t&&wn(t)){const n=t.firstChild;if(n===e||n.nextSibling===e&&Qr(n))return!1;const r=t.lastChild;if(r===e||r.previousSibling===e&&Qr(r))return!0}return!1}(e)?null:{conversion:Hr,priority:0}}}static importJSON(e){return qr()}exportJSON(){return{type:\"linebreak\",version:1}}}function Hr(e){return{node:qr()}}function qr(){return gn(new jr)}function Gr(e){return e instanceof jr}function Qr(e){return e.nodeType===ie&&/^( |\\t|\\r?\\n)+$/.test(e.textContent||\"\")}function Xr(e,t){return 16&t?\"code\":t&me?\"mark\":32&t?\"sub\":64&t?\"sup\":null}function Yr(e,t){return 1&t?\"strong\":2&t?\"em\":\"span\"}function Zr(e,t,n,r,i){const s=r.classList;let o=qt(i,\"base\");void 0!==o&&s.add(...o),o=qt(i,\"underlineStrikethrough\");let l=!1;const c=t&ge&&t&he;void 0!==o&&(n&ge&&n&he?(l=!0,c||s.add(...o)):c&&s.remove(...o));for(const e in De){const r=De[e];if(o=qt(i,e),void 0!==o)if(n&r){if(l&&(\"underline\"===e||\"strikethrough\"===e)){t&r&&s.remove(...o);continue}t&r&&(!c||\"underline\"!==e)&&\"strikethrough\"!==e||s.add(...o)}else t&r&&s.remove(...o)}}function ei(e,t,n){const r=t.firstChild,i=n.isComposing(),s=e+(i?we:\"\");if(null==r)t.textContent=s;else{const e=r.nodeValue;if(e!==s)if(i||G){const[t,n,i]=function(e,t){const n=e.length,r=t.length;let i=0,s=0;for(;i<n&&i<r&&e[i]===t[i];)i++;for(;s+i<n&&s+i<r&&e[n-s-1]===t[r-s-1];)s++;return[i,n-i-s,t.slice(i,r-s)]}(e,s);0!==n&&r.deleteData(t,n),r.insertData(t,i)}else r.nodeValue=s}}function ti(e,t,n,r,i,s){ei(i,e,t);const o=s.theme.text;void 0!==o&&Zr(0,0,r,e,o)}function ni(e,t){const n=document.createElement(t);return n.appendChild(e),n}class ri extends Vr{static getType(){return\"text\"}static clone(e){return new ri(e.__text,e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__format=e.__format,this.__style=e.__style,this.__mode=e.__mode,this.__detail=e.__detail}constructor(e,t){super(t),this.__text=e,this.__format=0,this.__style=\"\",this.__mode=0,this.__detail=0}getFormat(){return this.getLatest().__format}getDetail(){return this.getLatest().__detail}getMode(){const e=this.getLatest();return ze[e.__mode]}getStyle(){return this.getLatest().__style}isToken(){return 1===this.getLatest().__mode}isComposing(){return this.__key===St()}isSegmented(){return 2===this.getLatest().__mode}isDirectionless(){return!!(1&this.getLatest().__detail)}isUnmergeable(){return!!(2&this.getLatest().__detail)}hasFormat(e){const t=De[e];return!!(this.getFormat()&t)}isSimpleText(){return\"text\"===this.__type&&0===this.__mode}getTextContent(){return this.getLatest().__text}getFormatFlags(e,t){return _t(this.getLatest().__format,e,t)}canHaveFormat(){return!0}createDOM(e,t){const n=this.__format,r=Xr(0,n),i=Yr(0,n),s=null===r?i:r,o=document.createElement(s);let l=o;this.hasFormat(\"code\")&&o.setAttribute(\"spellcheck\",\"false\"),null!==r&&(l=document.createElement(i),o.appendChild(l));ti(l,this,0,n,this.__text,e);const c=this.__style;return\"\"!==c&&(o.style.cssText=c),o}updateDOM(e,t,n){const r=this.__text,i=e.__format,s=this.__format,o=Xr(0,i),l=Xr(0,s),c=Yr(0,i),a=Yr(0,s);if((null===o?c:o)!==(null===l?a:l))return!0;if(o===l&&c!==a){const e=t.firstChild;null==e&&Re(48);const i=document.createElement(a);return ti(i,this,0,s,r,n),t.replaceChild(i,e),!1}let u=t;null!==l&&null!==o&&(u=t.firstChild,null==u&&Re(49)),ei(r,u,this);const f=n.theme.text;void 0!==f&&i!==s&&Zr(0,i,s,u,f);const d=e.__style,h=this.__style;return d!==h&&(t.style.cssText=h),!1}static importDOM(){return{\"#text\":()=>({conversion:ci,priority:0}),b:()=>({conversion:si,priority:0}),code:()=>({conversion:fi,priority:0}),em:()=>({conversion:fi,priority:0}),i:()=>({conversion:fi,priority:0}),s:()=>({conversion:fi,priority:0}),span:()=>({conversion:ii,priority:0}),strong:()=>({conversion:fi,priority:0}),sub:()=>({conversion:fi,priority:0}),sup:()=>({conversion:fi,priority:0}),u:()=>({conversion:fi,priority:0})}}static importJSON(e){const t=di(e.text);return t.setFormat(e.format),t.setDetail(e.detail),t.setMode(e.mode),t.setStyle(e.style),t}exportDOM(e){let{element:t}=super.exportDOM(e);return null!==t&&Tn(t)||Re(132),t.style.whiteSpace=\"pre-wrap\",this.hasFormat(\"bold\")&&(t=ni(t,\"b\")),this.hasFormat(\"italic\")&&(t=ni(t,\"i\")),this.hasFormat(\"strikethrough\")&&(t=ni(t,\"s\")),this.hasFormat(\"underline\")&&(t=ni(t,\"u\")),{element:t}}exportJSON(){return{detail:this.getDetail(),format:this.getFormat(),mode:this.getMode(),style:this.getStyle(),text:this.getTextContent(),type:\"text\",version:1}}selectionTransform(e,t){}setFormat(e){const t=this.getWritable();return t.__format=\"string\"==typeof e?De[e]:e,t}setDetail(e){const t=this.getWritable();return t.__detail=\"string\"==typeof e?Me[e]:e,t}setStyle(e){const t=this.getWritable();return t.__style=e,t}toggleFormat(e){const t=_t(this.getFormat(),e,null);return this.setFormat(t)}toggleDirectionless(){const e=this.getWritable();return e.__detail^=1,e}toggleUnmergeable(){const e=this.getWritable();return e.__detail^=2,e}setMode(e){const t=Be[e];if(this.__mode===t)return this;const n=this.getWritable();return n.__mode=t,n}setTextContent(e){if(this.__text===e)return this;const t=this.getWritable();return t.__text=e,t}select(e,t){is();let n=e,r=t;const i=Ri(),s=this.getTextContent(),o=this.__key;if(\"string\"==typeof s){const e=s.length;void 0===n&&(n=e),void 0===r&&(r=e)}else n=0,r=0;if(!ki(i))return Ii(o,n,o,r,\"text\",\"text\");{const e=St();e!==i.anchor.key&&e!==i.focus.key||vt(o),i.setTextNodeRange(this,n,this,r)}return i}selectStart(){return this.select(0,0)}selectEnd(){const e=this.getTextContentSize();return this.select(e,e)}spliceText(e,t,n,r){const i=this.getWritable(),s=i.__text,o=n.length;let l=e;l<0&&(l=o+l,l<0&&(l=0));const c=Ri();if(r&&ki(c)){const t=e+o;c.setTextNodeRange(i,t,i,t)}const a=s.slice(0,l)+n+s.slice(l+t);return i.__text=a,i}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}splitText(...e){is();const t=this.getLatest(),n=t.getTextContent(),r=t.__key,i=St(),s=new Set(e),o=[],l=n.length;let c=\"\";for(let e=0;e<l;e++)\"\"!==c&&s.has(e)&&(o.push(c),c=\"\"),c+=n[e];\"\"!==c&&o.push(c);const a=o.length;if(0===a)return[];if(o[0]===n)return[t];const u=o[0],f=t.getParent();let d;const h=t.getFormat(),g=t.getStyle(),_=t.__detail;let p=!1;t.isSegmented()?(d=di(u),d.__format=h,d.__style=g,d.__detail=_,p=!0):(d=t.getWritable(),d.__text=u);const y=Ri(),m=[d];let x=u.length;for(let e=1;e<a;e++){const t=o[e],n=t.length,s=di(t).getWritable();s.__format=h,s.__style=g,s.__detail=_;const l=s.__key,c=x+n;if(ki(y)){const e=y.anchor,t=y.focus;e.key===r&&\"text\"===e.type&&e.offset>x&&e.offset<=c&&(e.key=l,e.offset-=x,y.dirty=!0),t.key===r&&\"text\"===t.type&&t.offset>x&&t.offset<=c&&(t.key=l,t.offset-=x,y.dirty=!0)}i===r&&vt(l),x=c,m.push(s)}if(null!==f){!function(e){const t=e.getPreviousSibling(),n=e.getNextSibling();null!==t&&xt(t),null!==n&&xt(n)}(this);const e=f.getWritable(),t=this.getIndexWithinParent();p?(e.splice(t,0,m),this.remove()):e.splice(t,1,m),ki(y)&&Ji(y,f,t,a-1)}return m}mergeWithSibling(e){const t=e===this.getPreviousSibling();t||e===this.getNextSibling()||Re(50);const n=this.__key,r=e.__key,i=this.__text,s=i.length;St()===r&&vt(n);const o=Ri();if(ki(o)){const i=o.anchor,l=o.focus;null!==i&&i.key===r&&(Vi(i,t,n,e,s),o.dirty=!0),null!==l&&l.key===r&&(Vi(l,t,n,e,s),o.dirty=!0)}const l=e.__text,c=t?l+i:i+l;this.setTextContent(c);const a=this.getWritable();return e.remove(),a}isTextEntity(){return!1}}function ii(e){return{forChild:gi(e.style),node:null}}function si(e){const t=e,n=\"normal\"===t.style.fontWeight;return{forChild:gi(t.style,n?void 0:\"bold\"),node:null}}const oi=new WeakMap;function li(e){return\"PRE\"===e.nodeName||e.nodeType===re&&void 0!==e.style&&void 0!==e.style.whiteSpace&&e.style.whiteSpace.startsWith(\"pre\")}function ci(e){const t=e;null===e.parentElement&&Re(129);let n=t.textContent||\"\";if(null!==function(e){let t,n=e.parentNode;const r=[e];for(;null!==n&&void 0===(t=oi.get(n))&&!li(n);)r.push(n),n=n.parentNode;const i=void 0===t?n:t;for(let e=0;e<r.length;e++)oi.set(r[e],i);return i}(t)){const e=n.split(/(\\r?\\n|\\t)/),t=[],r=e.length;for(let n=0;n<r;n++){const r=e[n];\"\\n\"===r||\"\\r\\n\"===r?t.push(qr()):\"\\t\"===r?t.push(pi()):\"\"!==r&&t.push(di(r))}return{node:t}}if(n=n.replace(/\\r/g,\"\").replace(/[ \\t\\n]+/g,\" \"),\"\"===n)return{node:null};if(\" \"===n[0]){let e=t,r=!0;for(;null!==e&&null!==(e=ai(e,!1));){const t=e.textContent||\"\";if(t.length>0){/[ \\t\\n]$/.test(t)&&(n=n.slice(1)),r=!1;break}}r&&(n=n.slice(1))}if(\" \"===n[n.length-1]){let e=t,r=!0;for(;null!==e&&null!==(e=ai(e,!0));){if((e.textContent||\"\").replace(/^( |\\t|\\r?\\n)+/,\"\").length>0){r=!1;break}}r&&(n=n.slice(0,n.length-1))}return\"\"===n?{node:null}:{node:di(n)}}function ai(e,t){let n=e;for(;;){let e;for(;null===(e=t?n.nextSibling:n.previousSibling);){const e=n.parentElement;if(null===e)return null;n=e}if(n=e,n.nodeType===re){const e=n.style.display;if(\"\"===e&&!bn(n)||\"\"!==e&&!e.startsWith(\"inline\"))return null}let r=n;for(;null!==(r=t?n.firstChild:n.lastChild);)n=r;if(n.nodeType===ie)return n;if(\"BR\"===n.nodeName)return null}}const ui={code:\"code\",em:\"italic\",i:\"italic\",s:\"strikethrough\",strong:\"bold\",sub:\"subscript\",sup:\"superscript\",u:\"underline\"};function fi(e){const t=ui[e.nodeName.toLowerCase()];return void 0===t?{node:null}:{forChild:gi(e.style,t),node:null}}function di(e=\"\"){return gn(new ri(e))}function hi(e){return e instanceof ri}function gi(e,t){const n=e.fontWeight,r=e.textDecoration.split(\" \"),i=\"700\"===n||\"bold\"===n,s=r.includes(\"line-through\"),o=\"italic\"===e.fontStyle,l=r.includes(\"underline\"),c=e.verticalAlign;return e=>hi(e)?(i&&!e.hasFormat(\"bold\")&&e.toggleFormat(\"bold\"),s&&!e.hasFormat(\"strikethrough\")&&e.toggleFormat(\"strikethrough\"),o&&!e.hasFormat(\"italic\")&&e.toggleFormat(\"italic\"),l&&!e.hasFormat(\"underline\")&&e.toggleFormat(\"underline\"),\"sub\"!==c||e.hasFormat(\"subscript\")||e.toggleFormat(\"subscript\"),\"super\"!==c||e.hasFormat(\"superscript\")||e.toggleFormat(\"superscript\"),t&&!e.hasFormat(t)&&e.toggleFormat(t),e):e}class _i extends ri{static getType(){return\"tab\"}static clone(e){return new _i(e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__text=e.__text}constructor(e){super(\"\\t\",e),this.__detail=2}static importDOM(){return null}static importJSON(e){const t=pi();return t.setFormat(e.format),t.setStyle(e.style),t}exportJSON(){return{...super.exportJSON(),type:\"tab\",version:1}}setTextContent(e){Re(126)}setDetail(e){Re(127)}setMode(e){Re(128)}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}}function pi(){return gn(new _i)}function yi(e){return e instanceof _i}class mi{constructor(e,t,n){this._selection=null,this.key=e,this.offset=t,this.type=n}is(e){return this.key===e.key&&this.offset===e.offset&&this.type===e.type}isBefore(e){let t=this.getNode(),n=e.getNode();const r=this.offset,i=e.offset;if(bs(t)){const e=t.getDescendantByIndex(r);t=null!=e?e:t}if(bs(n)){const e=n.getDescendantByIndex(i);n=null!=e?e:n}return t===n?r<i:t.isBefore(n)}getNode(){const e=Ct(this.key);return null===e&&Re(20),e}set(e,t,n){const r=this._selection,i=this.key;this.key=e,this.offset=t,this.type=n,rs()||(St()===i&&vt(e),null!==r&&(r.setCachedNodes(null),r.dirty=!0))}}function xi(e,t,n){return new mi(e,t,n)}function vi(e,t){let n=t.__key,r=e.offset,i=\"element\";if(hi(t)){i=\"text\";const e=t.getTextContentSize();r>e&&(r=e)}else if(!bs(t)){const e=t.getNextSibling();if(hi(e))n=e.__key,r=0,i=\"text\";else{const e=t.getParent();e&&(n=e.__key,r=t.getIndexWithinParent()+1)}}e.set(n,r,i)}function Si(e,t){if(bs(t)){const n=t.getLastDescendant();bs(n)||hi(n)?vi(e,n):vi(e,t)}else vi(e,t)}function Ci(e,t,n,r){e.key=t,e.offset=n,e.type=r}class Ti{constructor(e){this._cachedNodes=null,this._nodes=e,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes(e){this._cachedNodes=e}is(e){if(!wi(e))return!1;const t=this._nodes,n=e._nodes;return t.size===n.size&&Array.from(t).every((e=>n.has(e)))}isCollapsed(){return!1}isBackward(){return!1}getStartEndPoints(){return null}add(e){this.dirty=!0,this._nodes.add(e),this._cachedNodes=null}delete(e){this.dirty=!0,this._nodes.delete(e),this._cachedNodes=null}clear(){this.dirty=!0,this._nodes.clear(),this._cachedNodes=null}has(e){return this._nodes.has(e)}clone(){return new Ti(new Set(this._nodes))}extract(){return this.getNodes()}insertRawText(e){}insertText(){}insertNodes(e){const t=this.getNodes(),n=t.length,r=t[n-1];let i;if(hi(r))i=r.select();else{const e=r.getIndexWithinParent()+1;i=r.getParentOrThrow().select(e,e)}i.insertNodes(e);for(let e=0;e<n;e++)t[e].remove()}getNodes(){const e=this._cachedNodes;if(null!==e)return e;const t=this._nodes,n=[];for(const e of t){const t=Ct(e);null!==t&&n.push(t)}return rs()||(this._cachedNodes=n),n}getTextContent(){const e=this.getNodes();let t=\"\";for(let n=0;n<e.length;n++)t+=e[n].getTextContent();return t}}function ki(e){return e instanceof bi}class bi{constructor(e,t,n,r){this.anchor=e,this.focus=t,e._selection=this,t._selection=this,this._cachedNodes=null,this.format=n,this.style=r,this.dirty=!1}getCachedNodes(){return this._cachedNodes}setCachedNodes(e){this._cachedNodes=e}is(e){return!!ki(e)&&(this.anchor.is(e.anchor)&&this.focus.is(e.focus)&&this.format===e.format&&this.style===e.style)}isCollapsed(){return this.anchor.is(this.focus)}getNodes(){const e=this._cachedNodes;if(null!==e)return e;const t=this.anchor,n=this.focus,r=t.isBefore(n),i=r?t:n,s=r?n:t;let o=i.getNode(),l=s.getNode();const c=i.offset,a=s.offset;if(bs(o)){const e=o.getDescendantByIndex(c);o=null!=e?e:o}if(bs(l)){let e=l.getDescendantByIndex(a);null!==e&&e!==o&&l.getChildAtIndex(a)===e&&(e=e.getPreviousSibling()),l=null!=e?e:l}let u;return u=o.is(l)?bs(o)&&o.getChildrenSize()>0?[]:[o]:o.getNodesBetween(l),rs()||(this._cachedNodes=u),u}setTextNodeRange(e,t,n,r){Ci(this.anchor,e.__key,t,\"text\"),Ci(this.focus,n.__key,r,\"text\"),this._cachedNodes=null,this.dirty=!0}getTextContent(){const e=this.getNodes();if(0===e.length)return\"\";const t=e[0],n=e[e.length-1],r=this.anchor,i=this.focus,s=r.isBefore(i),[o,l]=Ei(this);let c=\"\",a=!0;for(let u=0;u<e.length;u++){const f=e[u];if(bs(f)&&!f.isInline())a||(c+=\"\\n\"),a=!f.isEmpty();else if(a=!1,hi(f)){let e=f.getTextContent();f===t?f===n?\"element\"===r.type&&\"element\"===i.type&&i.offset!==r.offset||(e=o<l?e.slice(o,l):e.slice(l,o)):e=s?e.slice(o):e.slice(l):f===n&&(e=s?e.slice(0,l):e.slice(0,o)),c+=e}else!Es(f)&&!Gr(f)||f===n&&this.isCollapsed()||(c+=f.getTextContent())}return c}applyDOMRange(e){const t=ls(),n=t.getEditorState()._selection,r=Di(e.startContainer,e.startOffset,e.endContainer,e.endOffset,t,n);if(null===r)return;const[i,s]=r;Ci(this.anchor,i.key,i.offset,i.type),Ci(this.focus,s.key,s.offset,s.type),this._cachedNodes=null}clone(){const e=this.anchor,t=this.focus;return new bi(xi(e.key,e.offset,e.type),xi(t.key,t.offset,t.type),this.format,this.style)}toggleFormat(e){this.format=_t(this.format,e,null),this.dirty=!0}setStyle(e){this.style=e,this.dirty=!0}hasFormat(e){const t=De[e];return!!(this.format&t)}insertRawText(e){const t=e.split(/(\\r?\\n|\\t)/),n=[],r=t.length;for(let e=0;e<r;e++){const r=t[e];\"\\n\"===r||\"\\r\\n\"===r?n.push(qr()):\"\\t\"===r?n.push(pi()):n.push(di(r))}this.insertNodes(n)}insertText(e){const t=this.anchor,n=this.focus,r=this.format,i=this.style;let s=t,o=n;!this.isCollapsed()&&n.isBefore(t)&&(s=n,o=t),\"element\"===s.type&&function(e,t,n,r){const i=e.getNode(),s=i.getChildAtIndex(e.offset),o=di(),l=Fs(i)?zs().append(o):o;o.setFormat(n),o.setStyle(r),null===s?i.append(l):s.insertBefore(l),e.is(t)&&t.set(o.__key,0,\"text\"),e.set(o.__key,0,\"text\")}(s,o,r,i);const l=s.offset;let c=o.offset;const a=this.getNodes(),u=a.length;let f=a[0];hi(f)||Re(26);const d=f.getTextContent().length,h=f.getParentOrThrow();let g=a[u-1];if(1===u&&\"element\"===o.type&&(c=d,o.set(s.key,c,\"text\")),this.isCollapsed()&&l===d&&(f.isSegmented()||f.isToken()||!f.canInsertTextAfter()||!h.canInsertTextAfter()&&null===f.getNextSibling())){let t=f.getNextSibling();if(hi(t)&&t.canInsertTextBefore()&&!dt(t)||(t=di(),t.setFormat(r),t.setStyle(i),h.canInsertTextAfter()?f.insertAfter(t):h.insertAfter(t)),t.select(0,0),f=t,\"\"!==e)return void this.insertText(e)}else if(this.isCollapsed()&&0===l&&(f.isSegmented()||f.isToken()||!f.canInsertTextBefore()||!h.canInsertTextBefore()&&null===f.getPreviousSibling())){let t=f.getPreviousSibling();if(hi(t)&&!dt(t)||(t=di(),t.setFormat(r),h.canInsertTextBefore()?f.insertBefore(t):h.insertBefore(t)),t.select(),f=t,\"\"!==e)return void this.insertText(e)}else if(f.isSegmented()&&l!==d){const e=di(f.getTextContent());e.setFormat(r),f.replace(e),f=e}else if(!this.isCollapsed()&&\"\"!==e){const t=g.getParent();if(!h.canInsertTextBefore()||!h.canInsertTextAfter()||bs(t)&&(!t.canInsertTextBefore()||!t.canInsertTextAfter()))return this.insertText(\"\"),Oi(this.anchor,this.focus,null),void this.insertText(e)}if(1===u){if(f.isToken()){const t=di(e);return t.select(),void f.replace(t)}const t=f.getFormat(),n=f.getStyle();if(l!==c||t===r&&n===i){if(yi(f)){const t=di(e);return t.setFormat(r),t.setStyle(i),t.select(),void f.replace(t)}}else{if(\"\"!==f.getTextContent()){const t=di(e);if(t.setFormat(r),t.setStyle(i),t.select(),0===l)f.insertBefore(t,!1);else{const[e]=f.splitText(l);e.insertAfter(t,!1)}return void(t.isComposing()&&\"text\"===this.anchor.type&&(this.anchor.offset-=e.length))}f.setFormat(r),f.setStyle(i)}const s=c-l;f=f.spliceText(l,s,e,!0),\"\"===f.getTextContent()?f.remove():\"text\"===this.anchor.type&&(f.isComposing()?this.anchor.offset-=e.length:(this.format=t,this.style=n))}else{const t=new Set([...f.getParentKeys(),...g.getParentKeys()]),n=bs(f)?f:f.getParentOrThrow();let r=bs(g)?g:g.getParentOrThrow(),i=g;if(!n.is(r)&&r.isInline())do{i=r,r=r.getParentOrThrow()}while(r.isInline());if(\"text\"===o.type&&(0!==c||\"\"===g.getTextContent())||\"element\"===o.type&&g.getIndexWithinParent()<c)if(hi(g)&&!g.isToken()&&c!==g.getTextContentSize()){if(g.isSegmented()){const e=di(g.getTextContent());g.replace(e),g=e}Fs(o.getNode())||\"text\"!==o.type||(g=g.spliceText(0,c,\"\")),t.add(g.__key)}else{const e=g.getParentOrThrow();e.canBeEmpty()||1!==e.getChildrenSize()?g.remove():e.remove()}else t.add(g.__key);const s=r.getChildren(),h=new Set(a),_=n.is(r),p=n.isInline()&&null===f.getNextSibling()?n:f;for(let e=s.length-1;e>=0;e--){const t=s[e];if(t.is(f)||bs(t)&&t.isParentOf(f))break;t.isAttached()&&(!h.has(t)||t.is(i)?_||p.insertAfter(t,!1):t.remove())}if(!_){let e=r,n=null;for(;null!==e;){const r=e.getChildren(),i=r.length;(0===i||r[i-1].is(n))&&(t.delete(e.__key),n=e),e=e.getParent()}}if(f.isToken())if(l===d)f.select();else{const t=di(e);t.select(),f.replace(t)}else f=f.spliceText(l,d-l,e,!0),\"\"===f.getTextContent()?f.remove():f.isComposing()&&\"text\"===this.anchor.type&&(this.anchor.offset-=e.length);for(let e=1;e<u;e++){const n=a[e],r=n.__key;t.has(r)||n.remove()}}}removeText(){if(this.isCollapsed())return;const{anchor:e,focus:t}=this,n=this.getNodes(),r=this.isBackward()?t:e,i=this.isBackward()?e:t;let s=r.getNode(),o=i.getNode();const l=En(s,Nn),c=En(o,Nn);hi(s)&&s.isToken()&&r.offset<s.getTextContentSize()&&(r.offset=0),i.offset>0&&hi(o)&&o.isToken()&&(i.offset=o.getTextContentSize()),n.forEach((e=>{cn(s,e)||cn(o,e)||e.getKey()===s.getKey()||e.getKey()===o.getKey()||e.remove()}));const a=(e,t)=>{if(\"\"===e.getTextContent())e.remove();else if(0!==t&&dt(e)){const t=di(e.getTextContent());return t.setFormat(e.getFormat()),t.setStyle(e.getStyle()),e.replace(t)}};if(s===o&&hi(s)){const n=Math.abs(t.offset-e.offset);return s.spliceText(r.offset,n,\"\",!0),void a(s,n)}if(hi(s)){const e=s.getTextContentSize()-r.offset;s.spliceText(r.offset,e,\"\"),s=a(s,e)||s}hi(o)&&(o.spliceText(0,i.offset,\"\"),o=a(o,i.offset)||o),s.isAttached()&&hi(s)?s.selectEnd():o.isAttached()&&hi(o)&&o.selectStart();bs(l)&&bs(c)&&l!==c&&(l.append(...c.getChildren()),c.remove(),i.set(r.key,r.offset,r.type))}formatText(e,t=null){if(this.isCollapsed())return this.toggleFormat(e),void vt(null);const n=this.getNodes(),r=[];for(const e of n)hi(e)&&r.push(e);const i=t=>{n.forEach((n=>{if(Ws(n)){const r=n.getFormatFlags(e,t);n.setTextFormat(r)}}))},s=r.length;if(0===s)return this.toggleFormat(e),vt(null),void i(t);const o=this.anchor,l=this.focus,c=this.isBackward(),a=c?l:o,u=c?o:l;let f=0,d=r[0],h=\"element\"===a.type?0:a.offset;if(\"text\"===a.type&&h===d.getTextContentSize()&&(f=1,d=r[1],h=0),null==d)return;const g=d.getFormatFlags(e,t);i(g);const _=s-1;let p=r[_];const y=\"text\"===u.type?u.offset:p.getTextContentSize();if(d.is(p)){if(h===y)return;if(dt(d)||0===h&&y===d.getTextContentSize())d.setFormat(g);else{const e=d.splitText(h,y),t=0===h?e[0]:e[1];t.setFormat(g),\"text\"===a.type&&a.set(t.__key,0,\"text\"),\"text\"===u.type&&u.set(t.__key,y-h,\"text\")}return void(this.format=g)}0===h||dt(d)||([,d]=d.splitText(h),h=0),d.setFormat(g);const m=p.getFormatFlags(e,g);y>0&&(y===p.getTextContentSize()||dt(p)||([p]=p.splitText(y)),p.setFormat(m));for(let t=f+1;t<_;t++){const n=r[t],i=n.getFormatFlags(e,m);n.setFormat(i)}\"text\"===a.type&&a.set(d.__key,h,\"text\"),\"text\"===u.type&&u.set(p.__key,y,\"text\"),this.format=g|m}insertNodes(e){if(0===e.length)return;if(\"root\"===this.anchor.key){this.insertParagraph();const t=Ri();return ki(t)||Re(134),t.insertNodes(e)}const t=(this.isBackward()?this.focus:this.anchor).getNode(),n=En(t,Nn),r=e[e.length-1];if(bs(n)&&\"__language\"in n){if(\"__language\"in e[0])this.insertText(e[0].getTextContent());else{const t=Gi(this);n.splice(t,0,e),r.selectEnd()}return}if(!e.some((e=>(bs(e)||Es(e))&&!e.isInline()))){bs(n)||Re(211,t.constructor.name,t.getType());const i=Gi(this);return n.splice(i,0,e),void r.selectEnd()}const i=function(e){const t=zs();let n=null;for(let r=0;r<e.length;r++){const i=e[r],s=Gr(i);if(s||Es(i)&&i.isInline()||bs(i)&&i.isInline()||hi(i)||i.isParentRequired()){if(null===n&&(n=i.createParentElementNode(),t.append(n),s))continue;null!==n&&n.append(i)}else t.append(i),n=null}return t}(e),s=i.getLastDescendant(),o=i.getChildren(),l=!bs(n)||!n.isEmpty()?this.insertParagraph():null,c=o[o.length-1];let a=o[0];var u;bs(u=a)&&Nn(u)&&!u.isEmpty()&&bs(n)&&(!n.isEmpty()||n.canMergeWhenEmpty())&&(bs(n)||Re(211,t.constructor.name,t.getType()),n.append(...a.getChildren()),a=o[1]),a&&(null===n&&Re(212,t.constructor.name,t.getType()),function(e,t,n){const r=t.getParentOrThrow().getLastChild();let i=t;const s=[t];for(;i!==r;)i.getNextSibling()||Re(140),i=i.getNextSibling(),s.push(i);let o=e;for(const e of s)o=o.insertAfter(e)}(n,a));const f=En(s,Nn);l&&bs(f)&&(l.canMergeWhenEmpty()||Nn(c))&&(f.append(...l.getChildren()),l.remove()),bs(n)&&n.isEmpty()&&n.remove(),s.selectEnd();const d=bs(n)?n.getLastChild():null;Gr(d)&&f!==n&&d.remove()}insertParagraph(){if(\"root\"===this.anchor.key){const e=zs();return Et().splice(this.anchor.offset,0,[e]),e.select(),e}const e=Gi(this),t=En(this.anchor.getNode(),Nn);bs(t)||Re(213);const n=t.getChildAtIndex(e),r=n?[n,...n.getNextSiblings()]:[],i=t.insertNewAfter(this,!1);return i?(i.append(...r),i.selectStart(),i):null}insertLineBreak(e){const t=qr();if(this.insertNodes([t]),e){const e=t.getParentOrThrow(),n=t.getIndexWithinParent();e.select(n,n)}}extract(){const e=this.getNodes(),t=e.length,n=t-1,r=this.anchor,i=this.focus;let s=e[0],o=e[n];const[l,c]=Ei(this);if(0===t)return[];if(1===t){if(hi(s)&&!this.isCollapsed()){const e=l>c?c:l,t=l>c?l:c,n=s.splitText(e,t),r=0===e?n[0]:n[1];return null!=r?[r]:[]}return[s]}const a=r.isBefore(i);if(hi(s)){const t=a?l:c;t===s.getTextContentSize()?e.shift():0!==t&&([,s]=s.splitText(t),e[0]=s)}if(hi(o)){const t=o.getTextContent().length,r=a?c:l;0===r?e.pop():r!==t&&([o]=o.splitText(r),e[n]=o)}return e}modify(e,t,n){const r=this.focus,i=this.anchor,s=\"move\"===e,o=Yt(r,t);if(Es(o)&&!o.isIsolated()){if(s&&o.isKeyboardSelectable()){const e=Bi();return e.add(o.__key),void Ft(e)}const e=t?o.getPreviousSibling():o.getNextSibling();if(hi(e)){const n=e.__key,o=t?e.getTextContent().length:0;return r.set(n,o,\"text\"),void(s&&i.set(n,o,\"text\"))}{const n=o.getParentOrThrow();let l,c;return bs(e)?(c=e.__key,l=t?e.getChildrenSize():0):(l=o.getIndexWithinParent(),c=n.__key,t||l++),r.set(c,l,\"element\"),void(s&&i.set(c,l,\"element\"))}}const l=ls(),c=vn(l._window);if(!c)return;const a=l._blockCursorElement,u=l._rootElement;if(null===u||null===a||!bs(o)||o.isInline()||o.canBeEmpty()||mn(a,l,u),function(e,t,n,r){e.modify(t,n,r)}(c,e,t?\"backward\":\"forward\",n),c.rangeCount>0){const e=c.getRangeAt(0),n=this.anchor.getNode(),r=Fs(n)?n:fn(n);if(this.applyDOMRange(e),this.dirty=!0,!s){const n=this.getNodes(),i=[];let s=!1;for(let e=0;e<n.length;e++){const t=n[e];cn(t,r)?i.push(t):s=!0}if(s&&i.length>0)if(t){const e=i[0];bs(e)?e.selectStart():e.getParentOrThrow().selectStart()}else{const e=i[i.length-1];bs(e)?e.selectEnd():e.getParentOrThrow().selectEnd()}c.anchorNode===e.startContainer&&c.anchorOffset===e.startOffset||function(e){const t=e.focus,n=e.anchor,r=n.key,i=n.offset,s=n.type;Ci(n,t.key,t.offset,t.type),Ci(t,r,i,s),e._cachedNodes=null}(this)}}}forwardDeletion(e,t,n){if(!n&&(\"element\"===e.type&&bs(t)&&e.offset===t.getChildrenSize()||\"text\"===e.type&&e.offset===t.getTextContentSize())){const e=t.getParent(),n=t.getNextSibling()||(null===e?null:e.getNextSibling());if(bs(n)&&n.isShadowRoot())return!0}return!1}deleteCharacter(e){const n=this.isCollapsed();if(this.isCollapsed()){const n=this.anchor;let r=n.getNode();if(this.forwardDeletion(n,r,e))return;const i=this.focus,s=Yt(i,e);if(Es(s)&&!s.isIsolated()){if(s.isKeyboardSelectable()&&bs(r)&&0===r.getChildrenSize()){r.remove();const e=Bi();e.add(s.__key),Ft(e)}else{s.remove();ls().dispatchCommand(t,void 0)}return}if(!e&&bs(s)&&bs(r)&&r.isEmpty())return r.remove(),void s.selectStart();if(this.modify(\"extend\",e,\"character\"),this.isCollapsed()){if(e&&0===n.offset){if((\"element\"===n.type?n.getNode():n.getNode().getParentOrThrow()).collapseAtStart(this))return}}else{const t=\"text\"===i.type?i.getNode():null;if(r=\"text\"===n.type?n.getNode():null,null!==t&&t.isSegmented()){const n=i.offset,s=t.getTextContentSize();if(t.is(r)||e&&n!==s||!e&&0!==n)return void Pi(t,e,n)}else if(null!==r&&r.isSegmented()){const i=n.offset,s=r.getTextContentSize();if(r.is(t)||e&&0!==i||!e&&i!==s)return void Pi(r,e,i)}!function(e,t){const n=e.anchor,r=e.focus,i=n.getNode(),s=r.getNode();if(i===s&&\"text\"===n.type&&\"text\"===r.type){const e=n.offset,s=r.offset,o=e<s,l=o?e:s,c=o?s:e,a=c-1;if(l!==a){Dt(i.getTextContent().slice(l,c))||(t?r.offset=a:n.offset=a)}}}(this,e)}}if(this.removeText(),e&&!n&&this.isCollapsed()&&\"element\"===this.anchor.type&&0===this.anchor.offset){const e=this.anchor.getNode();e.isEmpty()&&Fs(e.getParent())&&0===e.getIndexWithinParent()&&e.collapseAtStart(this)}}deleteLine(e){if(this.isCollapsed()){const t=\"element\"===this.anchor.type;if(t&&this.insertText(\" \"),this.modify(\"extend\",e,\"lineboundary\"),this.isCollapsed()&&0===this.anchor.offset&&this.modify(\"extend\",e,\"character\"),t){const t=e?this.anchor:this.focus;t.set(t.key,t.offset+1,t.type)}}this.removeText()}deleteWord(e){if(this.isCollapsed()){const t=this.anchor,n=t.getNode();if(this.forwardDeletion(t,n,e))return;this.modify(\"extend\",e,\"word\")}this.removeText()}isBackward(){return this.focus.isBefore(this.anchor)}getStartEndPoints(){return[this.anchor,this.focus]}}function wi(e){return e instanceof Ti}function Ni(e){const t=e.offset;if(\"text\"===e.type)return t;const n=e.getNode();return t===n.getChildrenSize()?n.getTextContent().length:0}function Ei(e){const t=e.getStartEndPoints();if(null===t)return[0,0];const[n,r]=t;return\"element\"===n.type&&\"element\"===r.type&&n.key===r.key&&n.offset===r.offset?[0,0]:[Ni(n),Ni(r)]}function Pi(e,t,n){const r=e,i=r.getTextContent().split(/(?=\\s)/g),s=i.length;let o=0,l=0;for(let e=0;e<s;e++){const r=e===s-1;if(l=o,o+=i[e].length,t&&o===n||o>n||r){i.splice(e,1),r&&(l=void 0);break}}const c=i.join(\"\").trim();\"\"===c?r.remove():(r.setTextContent(c),r.select(l,l))}function Fi(e,t,n,r){let i,s=t;if(e.nodeType===re){let o=!1;const l=e.childNodes,c=l.length,a=r._blockCursorElement;s===c&&(o=!0,s=c-1);let u=l[s],f=!1;if(u===a)u=l[s+1],f=!0;else if(null!==a){const n=a.parentNode;if(e===n){t>Array.prototype.indexOf.call(n.children,a)&&s--}}if(i=Lt(u),hi(i))s=Ot(i,o);else{let l=Lt(e);if(null===l)return null;if(bs(l)){const c=r.getElementByKey(l.getKey());null===c&&Re(214);const a=l.getDOMSlot(c);[l,s]=a.resolveChildIndex(l,c,e,t),bs(l)||Re(215),o&&s>=l.getChildrenSize()&&(s=Math.max(0,l.getChildrenSize()-1));let u=l.getChildAtIndex(s);if(bs(u)&&function(e,t,n){const r=e.getParent();return null===n||null===r||!r.canBeEmpty()||r!==n.getNode()}(u,0,n)){const e=o?u.getLastDescendant():u.getFirstDescendant();null===e?l=u:(u=e,l=bs(u)?u:u.getParentOrThrow()),s=0}hi(u)?(i=u,l=null,s=Ot(u,o)):u!==l&&o&&!f&&(bs(l)||Re(216),s=Math.min(l.getChildrenSize(),s+1))}else{const n=l.getIndexWithinParent();s=0===t&&Es(l)&&Lt(e)===l?n:n+1,l=l.getParentOrThrow()}if(bs(l))return xi(l.__key,s,\"element\")}}else i=Lt(e);return hi(i)?xi(i.__key,s,\"text\"):null}function Li(e,t,n){const r=e.offset,i=e.getNode();if(0===r){const r=i.getPreviousSibling(),s=i.getParent();if(t){if((n||!t)&&null===r&&bs(s)&&s.isInline()){const t=s.getPreviousSibling();hi(t)&&(e.key=t.__key,e.offset=t.getTextContent().length)}}else bs(r)&&!n&&r.isInline()?(e.key=r.__key,e.offset=r.getChildrenSize(),e.type=\"element\"):hi(r)&&(e.key=r.__key,e.offset=r.getTextContent().length)}else if(r===i.getTextContent().length){const r=i.getNextSibling(),s=i.getParent();if(t&&bs(r)&&r.isInline())e.key=r.__key,e.offset=0,e.type=\"element\";else if((n||t)&&null===r&&bs(s)&&s.isInline()&&!s.canInsertTextAfter()){const t=s.getNextSibling();hi(t)&&(e.key=t.__key,e.offset=0)}}}function Oi(e,t,n){if(\"text\"===e.type&&\"text\"===t.type){const r=e.isBefore(t),i=e.is(t);Li(e,r,i),Li(t,!r,i),i&&(t.key=e.key,t.offset=e.offset,t.type=e.type);const s=ls();if(s.isComposing()&&s._compositionKey!==e.key&&ki(n)){const r=n.anchor,i=n.focus;Ci(e,r.key,r.offset,r.type),Ci(t,i.key,i.offset,i.type)}}}function Di(e,t,n,r,i,s){if(null===e||null===n||!ct(i,e,n))return null;const o=Fi(e,t,ki(s)?s.anchor:null,i);if(null===o)return null;const l=Fi(n,r,ki(s)?s.focus:null,i);if(null===l)return null;if(\"element\"===o.type&&\"element\"===l.type){const t=Lt(e),r=Lt(n);if(Es(t)&&Es(r))return null}return Oi(o,l,s),[o,l]}function Mi(e){return bs(e)&&!e.isInline()}function Ii(e,t,n,r,i,s){const o=os(),l=new bi(xi(e,t,i),xi(n,r,s),0,\"\");return l.dirty=!0,o._selection=l,l}function Ai(){const e=xi(\"root\",0,\"element\"),t=xi(\"root\",0,\"element\");return new bi(e,t,0,\"\")}function Bi(){return new Ti(new Set)}function zi(e,t){return Wi(null,e,t,null)}function Wi(e,t,n,r){const i=n._window;if(null===i)return null;const s=r||i.event,o=s?s.type:void 0,l=\"selectionchange\"===o,c=!$e&&(l||\"beforeinput\"===o||\"compositionstart\"===o||\"compositionend\"===o||\"click\"===o&&s&&3===s.detail||\"drop\"===o||void 0===o);let a,u,f,d;if(ki(e)&&!c)return e.clone();if(null===t)return null;if(a=t.anchorNode,u=t.focusNode,f=t.anchorOffset,d=t.focusOffset,l&&ki(e)&&!ct(n,a,u))return e.clone();const h=Di(a,f,u,d,n,e);if(null===h)return null;const[g,_]=h;return new bi(g,_,ki(e)?e.format:0,ki(e)?e.style:\"\")}function Ri(){return os()._selection}function Ki(){return ls()._editorState._selection}function Ji(e,t,n,r=1){const i=e.anchor,s=e.focus,o=i.getNode(),l=s.getNode();if(!t.is(o)&&!t.is(l))return;const c=t.__key;if(e.isCollapsed()){const t=i.offset;if(n<=t&&r>0||n<t&&r<0){const n=Math.max(0,t+r);i.set(c,n,\"element\"),s.set(c,n,\"element\"),$i(e)}}else{const o=e.isBackward(),l=o?s:i,a=l.getNode(),u=o?i:s,f=u.getNode();if(t.is(a)){const e=l.offset;(n<=e&&r>0||n<e&&r<0)&&l.set(c,Math.max(0,e+r),\"element\")}if(t.is(f)){const e=u.offset;(n<=e&&r>0||n<e&&r<0)&&u.set(c,Math.max(0,e+r),\"element\")}}$i(e)}function $i(e){const t=e.anchor,n=t.offset,r=e.focus,i=r.offset,s=t.getNode(),o=r.getNode();if(e.isCollapsed()){if(!bs(s))return;const e=s.getChildrenSize(),i=n>=e,o=i?s.getChildAtIndex(e-1):s.getChildAtIndex(n);if(hi(o)){let e=0;i&&(e=o.getTextContentSize()),t.set(o.__key,e,\"text\"),r.set(o.__key,e,\"text\")}}else{if(bs(s)){const e=s.getChildrenSize(),r=n>=e,i=r?s.getChildAtIndex(e-1):s.getChildAtIndex(n);if(hi(i)){let e=0;r&&(e=i.getTextContentSize()),t.set(i.__key,e,\"text\")}}if(bs(o)){const e=o.getChildrenSize(),t=i>=e,n=t?o.getChildAtIndex(e-1):o.getChildAtIndex(i);if(hi(n)){let e=0;t&&(e=n.getTextContentSize()),r.set(n.__key,e,\"text\")}}}}function Ui(e,t,n,r,i){let s=null,o=0,l=null;null!==r?(s=r.__key,hi(r)?(o=r.getTextContentSize(),l=\"text\"):bs(r)&&(o=r.getChildrenSize(),l=\"element\")):null!==i&&(s=i.__key,hi(i)?l=\"text\":bs(i)&&(l=\"element\")),null!==s&&null!==l?e.set(s,o,l):(o=t.getIndexWithinParent(),-1===o&&(o=n.getChildrenSize()),e.set(n.__key,o,\"element\"))}function Vi(e,t,n,r,i){\"text\"===e.type?(e.key=n,t||(e.offset+=i)):e.offset>r.getIndexWithinParent()&&(e.offset-=1)}function ji(e,t,n,r,i,s,o){const l=r.anchorNode,c=r.focusNode,a=r.anchorOffset,u=r.focusOffset,f=document.activeElement;if(i.has(\"collaboration\")&&f!==s||null!==f&&lt(f))return;if(!ki(t))return void(null!==e&&ct(n,l,c)&&r.removeAllRanges());const d=t.anchor,h=t.focus,g=d.key,_=h.key,p=nn(n,g),y=nn(n,_),m=d.offset,x=h.offset,v=t.format,S=t.style,C=t.isCollapsed();let T=p,k=y,b=!1;if(\"text\"===d.type){T=gt(p);const e=d.getNode();b=e.getFormat()!==v||e.getStyle()!==S}else ki(e)&&\"text\"===e.anchor.type&&(b=!0);var w,N,E,P,F;if((\"text\"===h.type&&(k=gt(y)),null!==T&&null!==k)&&(C&&(null===e||b||ki(e)&&(e.format!==v||e.style!==S))&&(w=v,N=S,E=m,P=g,F=performance.now(),Or=[w,N,E,P,F]),a!==m||u!==x||l!==T||c!==k||\"Range\"===r.type&&C||(null!==f&&s.contains(f)||s.focus({preventScroll:!0}),\"element\"===d.type))){try{r.setBaseAndExtent(T,m,k,x)}catch(e){}if(!i.has(\"skip-scroll-into-view\")&&t.isCollapsed()&&null!==s&&s===document.activeElement){const e=t instanceof bi&&\"element\"===t.anchor.type?T.childNodes[m]||null:r.rangeCount>0?r.getRangeAt(0):null;if(null!==e){let t;if(e instanceof Text){const n=document.createRange();n.selectNode(e),t=n.getBoundingClientRect()}else t=e.getBoundingClientRect();!function(e,t,n){const r=n.ownerDocument,i=r.defaultView;if(null===i)return;let{top:s,bottom:o}=t,l=0,c=0,a=n;for(;null!==a;){const t=a===r.body;if(t)l=0,c=an(e).innerHeight;else{const e=a.getBoundingClientRect();l=e.top,c=e.bottom}let n=0;if(s<l?n=-(l-s):o>c&&(n=o-c),0!==n)if(t)i.scrollBy(0,n);else{const e=a.scrollTop;a.scrollTop+=n;const t=a.scrollTop-e;s-=t,o-=t}if(t)break;a=rn(a)}}(n,t,s)}}Er=!0}}function Hi(e){let t=Ri()||Ki();null===t&&(t=Et().selectEnd()),t.insertNodes(e)}function qi(){const e=Ri();return null===e?\"\":e.getTextContent()}function Gi(e){let t=e;e.isCollapsed()||t.removeText();const n=Ri();ki(n)&&(t=n),ki(t)||Re(161);const r=t.anchor;let i=r.getNode(),s=r.offset;for(;!Nn(i);)[i,s]=Qi(i,s);return s}function Qi(e,t){const n=e.getParent();if(!n){const e=zs();return Et().append(e),e.select(),[Et(),0]}if(hi(e)){const r=e.splitText(t);if(0===r.length)return[n,e.getIndexWithinParent()];const i=0===t?0:1;return[n,r[0].getIndexWithinParent()+i]}if(!bs(e)||0===t)return[n,e.getIndexWithinParent()];const r=e.getChildAtIndex(t);if(r){const n=new bi(xi(e.__key,t,\"element\"),xi(e.__key,t,\"element\"),0,\"\"),i=e.insertNewAfter(n);i&&i.append(r,...r.getNextSiblings())}return[n,e.getIndexWithinParent()+1]}let Xi=null,Yi=null,Zi=!1,es=!1,ts=0;const ns={characterData:!0,childList:!0,subtree:!0};function rs(){return Zi||null!==Xi&&Xi._readOnly}function is(){Zi&&Re(13)}function ss(){ts>99&&Re(14)}function os(){return null===Xi&&Re(195,cs()),Xi}function ls(){return null===Yi&&Re(196,cs()),Yi}function cs(){let e=0;const t=new Set,n=Hs.version;if(\"undefined\"!=typeof window)for(const r of document.querySelectorAll(\"[contenteditable]\")){const i=ft(r);if(at(i))e++;else if(i){let e=String(i.constructor.version||\"<0.17.1\");e===n&&(e+=\" (separately built, likely a bundler configuration issue)\"),t.add(e)}}let r=` Detected on the page: ${e} compatible editor(s) with version ${n}`;return t.size&&(r+=` and incompatible editors with versions ${Array.from(t).join(\", \")}`),r}function as(){return Yi}function us(e,t,n){const r=t.__type,i=function(e,t){const n=e._nodes.get(t);return void 0===n&&Re(30,t),n}(e,r);let s=n.get(r);void 0===s&&(s=Array.from(i.transforms),n.set(r,s));const o=s.length;for(let e=0;e<o&&(s[e](t),t.isAttached());e++);}function fs(e,t){return void 0!==e&&e.__key!==t&&e.isAttached()}function ds(e,t){if(!t)return;const n=e._updateTags;let r=t;Array.isArray(t)||(r=[t]);for(const e of r)n.add(e)}function hs(e){return gs(e,ls()._nodes)}function gs(e,t){const n=e.type,r=t.get(n);void 0===r&&Re(17,n);const i=r.klass;e.type!==i.getType()&&Re(18,i.name);const s=i.importJSON(e),o=e.children;if(bs(s)&&Array.isArray(o))for(let e=0;e<o.length;e++){const n=gs(o[e],t);s.append(n)}return s}function _s(e,t,n){const r=Xi,i=Zi,s=Yi;Xi=t,Zi=!0,Yi=e;try{return n()}finally{Xi=r,Zi=i,Yi=s}}function ps(e,n){const r=e._pendingEditorState,i=e._rootElement,s=e._headless||null===i;if(null===r)return;const o=e._editorState,l=o._selection,c=r._selection,a=e._dirtyType!==se,u=Xi,f=Zi,d=Yi,h=e._updating,g=e._observer;let _=null;if(e._pendingEditorState=null,e._editorState=r,!s&&a&&null!==g){Yi=e,Xi=r,Zi=!1,e._updating=!0;try{const t=e._dirtyType,n=e._dirtyElements,i=e._dirtyLeaves;g.disconnect(),_=mr(o,r,e,t,n,i)}catch(t){if(t instanceof Error&&e._onError(t),es)throw t;return Vs(e,null,i,r),Ye(e),e._dirtyType=le,es=!0,ps(e,o),void(es=!1)}finally{g.observe(i,ns),e._updating=h,Xi=u,Zi=f,Yi=d}}r._readOnly||(r._readOnly=!0);const p=e._dirtyLeaves,y=e._dirtyElements,m=e._normalizedNodes,x=e._updateTags,v=e._deferred;a&&(e._dirtyType=se,e._cloneNotNeeded.clear(),e._dirtyLeaves=new Set,e._dirtyElements=new Map,e._normalizedNodes=new Set,e._updateTags=new Set),function(e,t){const n=e._decorators;let r=e._pendingDecorators||n;const i=t._nodeMap;let s;for(s in r)i.has(s)||(r===n&&(r=wt(e)),delete r[s])}(e,r);const S=s?null:vn(e._window);if(e._editable&&null!==S&&(a||null===c||c.dirty)){Yi=e,Xi=r;try{if(null!==g&&g.disconnect(),a||null===c||c.dirty){const t=e._blockCursorElement;null!==t&&mn(t,e,i),ji(l,c,e,S,x,i)}xn(e,i,c),null!==g&&g.observe(i,ns)}finally{Yi=d,Xi=u}}null!==_&&function(e,t,n,r,i){const s=Array.from(e._listeners.mutation),o=s.length;for(let e=0;e<o;e++){const[o,l]=s[e],c=t.get(l);void 0!==c&&o(c,{dirtyLeaves:r,prevEditorState:i,updateTags:n})}}(e,_,x,p,o),ki(c)||null===c||null!==l&&l.is(c)||e.dispatchCommand(t,void 0);const C=e._pendingDecorators;null!==C&&(e._decorators=C,e._pendingDecorators=null,ys(\"decorator\",e,!0,C)),function(e,t,n){const r=Nt(t),i=Nt(n);r!==i&&ys(\"textcontent\",e,!0,i)}(e,n||o,r),ys(\"update\",e,!0,{dirtyElements:y,dirtyLeaves:p,editorState:r,normalizedNodes:m,prevEditorState:n||o,tags:x}),function(e,t){if(e._deferred=[],0!==t.length){const n=e._updating;e._updating=!0;try{for(let e=0;e<t.length;e++)t[e]()}finally{e._updating=n}}}(e,v),function(e){const t=e._updates;if(0!==t.length){const n=t.shift();if(n){const[t,r]=n;vs(e,t,r)}}}(e)}function ys(e,t,n,...r){const i=t._updating;t._updating=n;try{const n=Array.from(t._listeners[e]);for(let e=0;e<n.length;e++)n[e].apply(null,r)}finally{t._updating=i}}function ms(e,t,n){if(!1===e._updating||Yi!==e){let r=!1;return e.update((()=>{r=ms(e,t,n)})),r}const r=Mt(e);for(let i=4;i>=0;i--)for(let s=0;s<r.length;s++){const o=r[s]._commands.get(t);if(void 0!==o){const t=o[i];if(void 0!==t){const r=Array.from(t),i=r.length;for(let t=0;t<i;t++)if(!0===r[t](n,e))return!0}}}return!1}function xs(e,t){const n=e._updates;let r=t||!1;for(;0!==n.length;){const t=n.shift();if(t){const[n,i]=t;let s;if(void 0!==i){if(s=i.onUpdate,i.skipTransforms&&(r=!0),i.discrete){const t=e._pendingEditorState;null===t&&Re(191),t._flushSync=!0}s&&e._deferred.push(s),ds(e,i.tag)}n()}}return r}function vs(e,t,n){const r=e._updateTags;let i,s=!1,o=!1;void 0!==n&&(i=n.onUpdate,ds(e,n.tag),s=n.skipTransforms||!1,o=n.discrete||!1),i&&e._deferred.push(i);const l=e._editorState;let c=e._pendingEditorState,a=!1;(null===c||c._readOnly)&&(c=e._pendingEditorState=Ls(c||l),a=!0),c._flushSync=o;const u=Xi,f=Zi,d=Yi,h=e._updating;Xi=c,Zi=!1,e._updating=!0,Yi=e;try{a&&(e._headless?null!==l._selection&&(c._selection=l._selection.clone()):c._selection=function(e){const t=e.getEditorState()._selection,n=vn(e._window);return ki(t)||null==t?Wi(t,n,e,null):t.clone()}(e));const n=e._compositionKey;t(),s=xs(e,s),function(e,t){const n=t.getEditorState()._selection,r=e._selection;if(ki(r)){const e=r.anchor,t=r.focus;let i;if(\"text\"===e.type&&(i=e.getNode(),i.selectionTransform(n,r)),\"text\"===t.type){const e=t.getNode();i!==e&&e.selectionTransform(n,r)}}}(c,e),e._dirtyType!==se&&(s?function(e,t){const n=t._dirtyLeaves,r=e._nodeMap;for(const e of n){const t=r.get(e);hi(t)&&t.isAttached()&&t.isSimpleText()&&!t.isUnmergeable()&&tt(t)}}(c,e):function(e,t){const n=t._dirtyLeaves,r=t._dirtyElements,i=e._nodeMap,s=St(),o=new Map;let l=n,c=l.size,a=r,u=a.size;for(;c>0||u>0;){if(c>0){t._dirtyLeaves=new Set;for(const e of l){const r=i.get(e);hi(r)&&r.isAttached()&&r.isSimpleText()&&!r.isUnmergeable()&&tt(r),void 0!==r&&fs(r,s)&&us(t,r,o),n.add(e)}if(l=t._dirtyLeaves,c=l.size,c>0){ts++;continue}}t._dirtyLeaves=new Set,t._dirtyElements=new Map;for(const e of a){const n=e[0],l=e[1];if(\"root\"!==n&&!l)continue;const c=i.get(n);void 0!==c&&fs(c,s)&&us(t,c,o),r.set(n,l)}l=t._dirtyLeaves,c=l.size,a=t._dirtyElements,u=a.size,ts++}t._dirtyLeaves=n,t._dirtyElements=r}(c,e),xs(e),function(e,t,n,r){const i=e._nodeMap,s=t._nodeMap,o=[];for(const[e]of r){const t=s.get(e);void 0!==t&&(t.isAttached()||(bs(t)&&Bn(t,e,i,s,o,r),i.has(e)||r.delete(e),o.push(e)))}for(const e of o)s.delete(e);for(const e of n){const t=s.get(e);void 0===t||t.isAttached()||(i.has(e)||n.delete(e),s.delete(e))}}(l,c,e._dirtyLeaves,e._dirtyElements));n!==e._compositionKey&&(c._flushSync=!0);const r=c._selection;if(ki(r)){const e=c._nodeMap,t=r.anchor.key,n=r.focus.key;void 0!==e.get(t)&&void 0!==e.get(n)||Re(19)}else wi(r)&&0===r._nodes.size&&(c._selection=null)}catch(t){return t instanceof Error&&e._onError(t),e._pendingEditorState=l,e._dirtyType=le,e._cloneNotNeeded.clear(),e._dirtyLeaves=new Set,e._dirtyElements.clear(),void ps(e)}finally{Xi=u,Zi=f,Yi=d,e._updating=h,ts=0}const g=e._dirtyType!==se||function(e,t){const n=t.getEditorState()._selection,r=e._selection;if(null!==r){if(r.dirty||!r.is(n))return!0}else if(null!==n)return!0;return!1}(c,e);g?c._flushSync?(c._flushSync=!1,ps(e)):a&&ot((()=>{ps(e)})):(c._flushSync=!1,a&&(r.clear(),e._deferred=[],e._pendingEditorState=null))}function Ss(e,t,n){e._updating?e._updates.push([t,n]):vs(e,t,n)}class Cs{constructor(e,t,n){this.element=e,this.before=t||null,this.after=n||null}withBefore(e){return new Cs(this.element,e,this.after)}withAfter(e){return new Cs(this.element,this.before,e)}withElement(e){return new Cs(e,this.before,this.after)}insertChild(e){const t=this.before||this.getManagedLineBreak();return null!==t&&t.parentElement!==this.element&&Re(222),this.element.insertBefore(e,t),this}removeChild(e){return e.parentElement!==this.element&&Re(223),this.element.removeChild(e),this}replaceChild(e,t){return t.parentElement!==this.element&&Re(224),this.element.replaceChild(e,t),this}getFirstChild(){const e=this.after?this.after.nextSibling:this.element.firstChild;return e===this.before||e===this.getManagedLineBreak()?null:e}getManagedLineBreak(){return this.element.__lexicalLineBreak||null}setManagedLineBreak(e){if(null===e)this.removeManagedLineBreak();else{const t=\"decorator\"===e&&(Y||X);this.insertManagedLineBreak(t)}}removeManagedLineBreak(){const e=this.getManagedLineBreak();if(e){const t=this.element,n=\"IMG\"===e.nodeName?e.nextSibling:null;n&&t.removeChild(n),t.removeChild(e),t.__lexicalLineBreak=void 0}}insertManagedLineBreak(e){const t=this.getManagedLineBreak();if(t){if(e===(\"IMG\"===t.nodeName))return;this.removeManagedLineBreak()}const n=this.element,r=this.before,i=document.createElement(\"br\");if(n.insertBefore(i,r),e){const e=document.createElement(\"img\");e.setAttribute(\"data-lexical-linebreak\",\"true\"),e.style.cssText=\"display: inline !important; border: 0px !important; margin: 0px !important;\",e.alt=\"\",n.insertBefore(e,i),n.__lexicalLineBreak=e}else n.__lexicalLineBreak=i}getFirstChildOffset(){let e=0;for(let t=this.after;null!==t;t=t.previousSibling)e++;return e}resolveChildIndex(e,t,n,r){if(n===this.element){const t=this.getFirstChildOffset();return[e,Math.min(t+e.getChildrenSize(),Math.max(t,r))]}const i=Ts(t,n);i.push(r);const s=Ts(t,this.element);let o=e.getIndexWithinParent();for(let e=0;e<s.length;e++){const t=i[e],n=s[e];if(void 0===t||t<n)break;if(t>n){o+=1;break}}return[e.getParentOrThrow(),o]}}function Ts(e,t){const n=[];let r=t;for(;r!==e&&null!==r;r=t.parentNode){let e=0;for(let t=r.previousSibling;null!==t;t=r.previousSibling)e++;n.push(e)}return r!==e&&Re(225),n.reverse()}class ks extends Vr{constructor(e){super(e),this.__first=null,this.__last=null,this.__size=0,this.__format=0,this.__style=\"\",this.__indent=0,this.__dir=null}afterCloneFrom(e){super.afterCloneFrom(e),this.__first=e.__first,this.__last=e.__last,this.__size=e.__size,this.__indent=e.__indent,this.__format=e.__format,this.__style=e.__style,this.__dir=e.__dir}getFormat(){return this.getLatest().__format}getFormatType(){const e=this.getFormat();return Ae[e]||\"\"}getStyle(){return this.getLatest().__style}getIndent(){return this.getLatest().__indent}getChildren(){const e=[];let t=this.getFirstChild();for(;null!==t;)e.push(t),t=t.getNextSibling();return e}getChildrenKeys(){const e=[];let t=this.getFirstChild();for(;null!==t;)e.push(t.__key),t=t.getNextSibling();return e}getChildrenSize(){return this.getLatest().__size}isEmpty(){return 0===this.getChildrenSize()}isDirty(){const e=ls()._dirtyElements;return null!==e&&e.has(this.__key)}isLastChild(){const e=this.getLatest(),t=this.getParentOrThrow().getLastChild();return null!==t&&t.is(e)}getAllTextNodes(){const e=[];let t=this.getFirstChild();for(;null!==t;){if(hi(t)&&e.push(t),bs(t)){const n=t.getAllTextNodes();e.push(...n)}t=t.getNextSibling()}return e}getFirstDescendant(){let e=this.getFirstChild();for(;bs(e);){const t=e.getFirstChild();if(null===t)break;e=t}return e}getLastDescendant(){let e=this.getLastChild();for(;bs(e);){const t=e.getLastChild();if(null===t)break;e=t}return e}getDescendantByIndex(e){const t=this.getChildren(),n=t.length;if(e>=n){const e=t[n-1];return bs(e)&&e.getLastDescendant()||e||null}const r=t[e];return bs(r)&&r.getFirstDescendant()||r||null}getFirstChild(){const e=this.getLatest().__first;return null===e?null:Ct(e)}getFirstChildOrThrow(){const e=this.getFirstChild();return null===e&&Re(45,this.__key),e}getLastChild(){const e=this.getLatest().__last;return null===e?null:Ct(e)}getLastChildOrThrow(){const e=this.getLastChild();return null===e&&Re(96,this.__key),e}getChildAtIndex(e){const t=this.getChildrenSize();let n,r;if(e<t/2){for(n=this.getFirstChild(),r=0;null!==n&&r<=e;){if(r===e)return n;n=n.getNextSibling(),r++}return null}for(n=this.getLastChild(),r=t-1;null!==n&&r>=e;){if(r===e)return n;n=n.getPreviousSibling(),r--}return null}getTextContent(){let e=\"\";const t=this.getChildren(),n=t.length;for(let r=0;r<n;r++){const i=t[r];e+=i.getTextContent(),bs(i)&&r!==n-1&&!i.isInline()&&(e+=Ne)}return e}getTextContentSize(){let e=0;const t=this.getChildren(),n=t.length;for(let r=0;r<n;r++){const i=t[r];e+=i.getTextContentSize(),bs(i)&&r!==n-1&&!i.isInline()&&(e+=Ne.length)}return e}getDirection(){return this.getLatest().__dir}hasFormat(e){if(\"\"!==e){const t=Ie[e];return!!(this.getFormat()&t)}return!1}select(e,t){is();const n=Ri();let r=e,i=t;const s=this.getChildrenSize();if(!this.canBeEmpty())if(0===e&&0===t){const e=this.getFirstChild();if(hi(e)||bs(e))return e.select(0,0)}else if(!(void 0!==e&&e!==s||void 0!==t&&t!==s)){const e=this.getLastChild();if(hi(e)||bs(e))return e.select()}void 0===r&&(r=s),void 0===i&&(i=s);const o=this.__key;return ki(n)?(n.anchor.set(o,r,\"element\"),n.focus.set(o,i,\"element\"),n.dirty=!0,n):Ii(o,r,o,i,\"element\",\"element\")}selectStart(){const e=this.getFirstDescendant();return e?e.selectStart():this.select()}selectEnd(){const e=this.getLastDescendant();return e?e.selectEnd():this.select()}clear(){const e=this.getWritable();return this.getChildren().forEach((e=>e.remove())),e}append(...e){return this.splice(this.getChildrenSize(),0,e)}setDirection(e){const t=this.getWritable();return t.__dir=e,t}setFormat(e){return this.getWritable().__format=\"\"!==e?Ie[e]:0,this}setStyle(e){return this.getWritable().__style=e||\"\",this}setIndent(e){return this.getWritable().__indent=e,this}splice(e,t,n){const r=n.length,i=this.getChildrenSize(),s=this.getWritable();e+t<=i||Re(226,String(e),String(t),String(i));const o=s.__key,l=[],c=[],a=this.getChildAtIndex(e+t);let u=null,f=i-t+r;if(0!==e)if(e===i)u=this.getLastChild();else{const t=this.getChildAtIndex(e);null!==t&&(u=t.getPreviousSibling())}if(t>0){let e=null===u?this.getFirstChild():u.getNextSibling();for(let n=0;n<t;n++){null===e&&Re(100);const t=e.getNextSibling(),n=e.__key;mt(e.getWritable()),c.push(n),e=t}}let d=u;for(let e=0;e<r;e++){const t=n[e];null!==d&&t.is(d)&&(u=d=d.getPreviousSibling());const r=t.getWritable();r.__parent===o&&f--,mt(r);const i=t.__key;if(null===d)s.__first=i,r.__prev=null;else{const e=d.getWritable();e.__next=i,r.__prev=e.__key}t.__key===o&&Re(76),r.__parent=o,l.push(i),d=t}if(e+t===i){if(null!==d){d.getWritable().__next=null,s.__last=d.__key}}else if(null!==a){const e=a.getWritable();if(null!==d){const t=d.getWritable();e.__prev=d.__key,t.__next=a.__key}else e.__prev=null}if(s.__size=f,c.length){const e=Ri();if(ki(e)){const t=new Set(c),n=new Set(l),{anchor:r,focus:i}=e;ws(r,t,n)&&Ui(r,r.getNode(),this,u,a),ws(i,t,n)&&Ui(i,i.getNode(),this,u,a),0!==f||this.canBeEmpty()||dn(this)||this.remove()}}return s}getDOMSlot(e){return new Cs(e)}exportDOM(e){const{element:t}=super.exportDOM(e);if(t&&Tn(t)){const e=this.getIndent();e>0&&(t.style.paddingInlineStart=40*e+\"px\")}return{element:t}}exportJSON(){return{children:[],direction:this.getDirection(),format:this.getFormatType(),indent:this.getIndent(),type:\"element\",version:1}}insertNewAfter(e,t){return null}canIndent(){return!0}collapseAtStart(e){return!1}excludeFromCopy(e){return!1}canReplaceWith(e){return!0}canInsertAfter(e){return!0}canBeEmpty(){return!0}canInsertTextBefore(){return!0}canInsertTextAfter(){return!0}isInline(){return!1}isShadowRoot(){return!1}canMergeWith(e){return!1}extractWithChild(e,t,n){return!1}canMergeWhenEmpty(){return!1}reconcileObservedMutation(e,t){const n=this.getDOMSlot(e);let r=n.getFirstChild();for(let e=this.getFirstChild();e;e=e.getNextSibling()){const i=t.getElementByKey(e.getKey());null!==i&&(null==r?(n.insertChild(i),r=i):r!==i&&n.replaceChild(i,r),r=r.nextSibling)}}}function bs(e){return e instanceof ks}function ws(e,t,n){let r=e.getNode();for(;r;){const e=r.__key;if(t.has(e)&&!n.has(e))return!0;r=r.getParent()}return!1}class Ns extends Vr{constructor(e){super(e)}decorate(e,t){Re(47)}isIsolated(){return!1}isInline(){return!0}isKeyboardSelectable(){return!0}}function Es(e){return e instanceof Ns}class Ps extends ks{static getType(){return\"root\"}static clone(){return new Ps}constructor(){super(\"root\"),this.__cachedText=null}getTopLevelElementOrThrow(){Re(51)}getTextContent(){const e=this.__cachedText;return!rs()&&ls()._dirtyType!==se||null===e?super.getTextContent():e}remove(){Re(52)}replace(e){Re(53)}insertBefore(e){Re(54)}insertAfter(e){Re(55)}updateDOM(e,t){return!1}append(...e){for(let t=0;t<e.length;t++){const n=e[t];bs(n)||Es(n)||Re(56)}return super.append(...e)}static importJSON(e){const t=Et();return t.setFormat(e.format),t.setIndent(e.indent),t.setDirection(e.direction),t}exportJSON(){return{children:[],direction:this.getDirection(),format:this.getFormatType(),indent:this.getIndent(),type:\"root\",version:1}}collapseAtStart(){return!0}}function Fs(e){return e instanceof Ps}function Ls(e){return new Ms(new Map(e._nodeMap))}function Os(){return new Ms(new Map([[\"root\",new Ps]]))}function Ds(e){const t=e.exportJSON(),n=e.constructor;if(t.type!==n.getType()&&Re(130,n.name),bs(e)){const r=t.children;Array.isArray(r)||Re(59,n.name);const i=e.getChildren();for(let e=0;e<i.length;e++){const t=Ds(i[e]);r.push(t)}}return t}class Ms{constructor(e,t){this._nodeMap=e,this._selection=t||null,this._flushSync=!1,this._readOnly=!1}isEmpty(){return 1===this._nodeMap.size&&null===this._selection}read(e,t){return _s(t&&t.editor||null,this,e)}clone(e){const t=new Ms(this._nodeMap,void 0===e?this._selection:e);return t._readOnly=!0,t}toJSON(){return _s(null,this,(()=>({root:Ds(Et())})))}}class Is extends ks{static getType(){return\"artificial\"}createDOM(e){return document.createElement(\"div\")}}class As extends ks{constructor(e){super(e),this.__textFormat=0,this.__textStyle=\"\"}static getType(){return\"paragraph\"}getTextFormat(){return this.getLatest().__textFormat}setTextFormat(e){const t=this.getWritable();return t.__textFormat=e,t}hasTextFormat(e){const t=De[e];return!!(this.getTextFormat()&t)}getFormatFlags(e,t){return _t(this.getLatest().__textFormat,e,t)}getTextStyle(){return this.getLatest().__textStyle}setTextStyle(e){const t=this.getWritable();return t.__textStyle=e,t}static clone(e){return new As(e.__key)}afterCloneFrom(e){super.afterCloneFrom(e),this.__textFormat=e.__textFormat,this.__textStyle=e.__textStyle}createDOM(e){const t=document.createElement(\"p\"),n=qt(e.theme,\"paragraph\");if(void 0!==n){t.classList.add(...n)}return t}updateDOM(e,t,n){return!1}static importDOM(){return{p:e=>({conversion:Bs,priority:0})}}exportDOM(e){const{element:t}=super.exportDOM(e);if(t&&Tn(t)){this.isEmpty()&&t.append(document.createElement(\"br\"));const e=this.getFormatType();t.style.textAlign=e;const n=this.getDirection();n&&(t.dir=n)}return{element:t}}static importJSON(e){const t=zs();return t.setFormat(e.format),t.setIndent(e.indent),t.setDirection(e.direction),t.setTextFormat(e.textFormat),t}exportJSON(){return{...super.exportJSON(),textFormat:this.getTextFormat(),textStyle:this.getTextStyle(),type:\"paragraph\",version:1}}insertNewAfter(e,t){const n=zs();n.setTextFormat(e.format),n.setTextStyle(e.style);const r=this.getDirection();return n.setDirection(r),n.setFormat(this.getFormatType()),n.setStyle(this.getTextStyle()),this.insertAfter(n,t),n}collapseAtStart(){const e=this.getChildren();if(0===e.length||hi(e[0])&&\"\"===e[0].getTextContent().trim()){if(null!==this.getNextSibling())return this.selectNext(),this.remove(),!0;if(null!==this.getPreviousSibling())return this.selectPrevious(),this.remove(),!0}return!1}}function Bs(e){const t=zs();return e.style&&(t.setFormat(e.style.textAlign),Mn(e,t)),{node:t}}function zs(){return gn(new As)}function Ws(e){return e instanceof As}const Rs=0,Ks=1,Js=2,$s=3,Us=4;function Vs(e,t,n,r){const i=e._keyToDOMMap;i.clear(),e._editorState=Os(),e._pendingEditorState=r,e._compositionKey=null,e._dirtyType=se,e._cloneNotNeeded.clear(),e._dirtyLeaves=new Set,e._dirtyElements.clear(),e._normalizedNodes=new Set,e._updateTags=new Set,e._updates=[],e._blockCursorElement=null;const s=e._observer;null!==s&&(s.disconnect(),e._observer=null),null!==t&&(t.textContent=\"\"),null!==n&&(n.textContent=\"\",i.set(\"root\",n))}function js(e){const t=e||{},n=as(),r=t.theme||{},i=void 0===e?n:t.parentEditor||null,s=t.disableEvents||!1,o=Os(),l=t.namespace||(null!==i?i._config.namespace:It()),c=t.editorState,a=[Ps,ri,jr,_i,As,Is,...t.nodes||[]],{onError:u,html:f}=t,d=void 0===t.editable||t.editable;let h;if(void 0===e&&null!==n)h=n._nodes;else{h=new Map;for(let e=0;e<a.length;e++){let t=a[e],n=null,r=null;if(\"function\"!=typeof t){const e=t;t=e.replace,n=e.with,r=e.withKlass||null}const i=t.getType(),s=t.transform(),o=new Set;null!==s&&o.add(s),h.set(i,{exportDOM:f&&f.export?f.export.get(t):void 0,klass:t,replace:n,replaceWithKlass:r,transforms:o})}}const g=new Hs(o,i,h,{disableEvents:s,namespace:l,theme:r},u||console.error,function(e,t){const n=new Map,r=new Set,i=e=>{Object.keys(e).forEach((t=>{let r=n.get(t);void 0===r&&(r=[],n.set(t,r)),r.push(e[t])}))};return e.forEach((e=>{const t=e.klass.importDOM;if(null==t||r.has(t))return;r.add(t);const n=t.call(e.klass);null!==n&&i(n)})),t&&i(t),n}(h,f?f.import:void 0),d);return void 0!==c&&(g._pendingEditorState=c,g._dirtyType=le),g}class Hs{constructor(e,t,n,r,i,s,o){this._parentEditor=t,this._rootElement=null,this._editorState=e,this._pendingEditorState=null,this._compositionKey=null,this._deferred=[],this._keyToDOMMap=new Map,this._updates=[],this._updating=!1,this._listeners={decorator:new Set,editable:new Set,mutation:new Map,root:new Set,textcontent:new Set,update:new Set},this._commands=new Map,this._config=r,this._nodes=n,this._decorators={},this._pendingDecorators=null,this._dirtyType=se,this._cloneNotNeeded=new Set,this._dirtyLeaves=new Set,this._dirtyElements=new Map,this._normalizedNodes=new Set,this._updateTags=new Set,this._observer=null,this._key=It(),this._onError=i,this._htmlConversions=s,this._editable=o,this._headless=null!==t&&t._headless,this._window=null,this._blockCursorElement=null}isComposing(){return null!=this._compositionKey}registerUpdateListener(e){const t=this._listeners.update;return t.add(e),()=>{t.delete(e)}}registerEditableListener(e){const t=this._listeners.editable;return t.add(e),()=>{t.delete(e)}}registerDecoratorListener(e){const t=this._listeners.decorator;return t.add(e),()=>{t.delete(e)}}registerTextContentListener(e){const t=this._listeners.textcontent;return t.add(e),()=>{t.delete(e)}}registerRootListener(e){const t=this._listeners.root;return e(this._rootElement,null),t.add(e),()=>{e(null,this._rootElement),t.delete(e)}}registerCommand(e,t,n){void 0===n&&Re(35);const r=this._commands;r.has(e)||r.set(e,[new Set,new Set,new Set,new Set,new Set]);const i=r.get(e);void 0===i&&Re(36,String(e));const s=i[n];return s.add(t),()=>{s.delete(t),i.every((e=>0===e.size))&&r.delete(e)}}registerMutationListener(e,t,n){const r=this.resolveRegisteredNodeAfterReplacements(this.getRegisteredNode(e)).klass,i=this._listeners.mutation;i.set(t,r);const s=n&&n.skipInitialization;return void 0!==s&&s||this.initializeMutationListener(t,r),()=>{i.delete(t)}}getRegisteredNode(e){const t=this._nodes.get(e.getType());return void 0===t&&Re(37,e.name),t}resolveRegisteredNodeAfterReplacements(e){for(;e.replaceWithKlass;)e=this.getRegisteredNode(e.replaceWithKlass);return e}initializeMutationListener(e,t){const n=this._editorState,r=On(n).get(t.getType());if(!r)return;const i=new Map;for(const e of r.keys())i.set(e,\"created\");i.size>0&&e(i,{dirtyLeaves:new Set,prevEditorState:n,updateTags:new Set([\"registerMutationListener\"])})}registerNodeTransformToKlass(e,t){const n=this.getRegisteredNode(e);return n.transforms.add(t),n}registerNodeTransform(e,t){const n=this.registerNodeTransformToKlass(e,t),r=[n],i=n.replaceWithKlass;if(null!=i){const e=this.registerNodeTransformToKlass(i,t);r.push(e)}var s,o;return s=this,o=e.getType(),Ss(s,(()=>{const e=os();if(e.isEmpty())return;if(\"root\"===o)return void Et().markDirty();const t=e._nodeMap;for(const[,e]of t)e.markDirty()}),null===s._pendingEditorState?{tag:\"history-merge\"}:void 0),()=>{r.forEach((e=>e.transforms.delete(t)))}}hasNode(e){return this._nodes.has(e.getType())}hasNodes(e){return e.every(this.hasNode.bind(this))}dispatchCommand(e,t){return en(this,e,t)}getDecorators(){return this._decorators}getRootElement(){return this._rootElement}getKey(){return this._key}setRootElement(e){const t=this._rootElement;if(e!==t){const n=qt(this._config.theme,\"root\"),r=this._pendingEditorState||this._editorState;if(this._rootElement=e,Vs(this,t,e,r),null!==t&&(this._config.disableEvents||$r(t),null!=n&&t.classList.remove(...n)),null!==e){const t=function(e){const t=e.ownerDocument;return t&&t.defaultView||null}(e),r=e.style;r.userSelect=\"text\",r.whiteSpace=\"pre-wrap\",r.wordBreak=\"break-word\",e.setAttribute(\"data-lexical-editor\",\"true\"),this._window=t,this._dirtyType=le,Ye(this),this._updateTags.add(\"history-merge\"),ps(this),this._config.disableEvents||function(e,t){const n=e.ownerDocument,r=Nr.get(n);(void 0===r||r<1)&&n.addEventListener(\"selectionchange\",Rr),Nr.set(n,(r||0)+1),e.__lexicalEditor=t;const i=zr(e);for(let n=0;n<Cr.length;n++){const[r,s]=Cr[n],o=\"function\"==typeof s?e=>{Jr(e)||(Kr(e),(t.isEditable()||\"click\"===r)&&s(e,t))}:e=>{if(Jr(e))return;Kr(e);const n=t.isEditable();switch(r){case\"cut\":return n&&en(t,B,e);case\"copy\":return en(t,A,e);case\"paste\":return n&&en(t,c,e);case\"dragstart\":return n&&en(t,D,e);case\"dragover\":return n&&en(t,M,e);case\"dragend\":return n&&en(t,I,e);case\"focus\":return n&&en(t,$,e);case\"blur\":return n&&en(t,U,e);case\"drop\":return n&&en(t,L,e)}};e.addEventListener(r,o),i.push((()=>{e.removeEventListener(r,o)}))}}(e,this),null!=n&&e.classList.add(...n)}else this._editorState=r,this._pendingEditorState=null,this._window=null;ys(\"root\",this,!1,e,t)}}getElementByKey(e){return this._keyToDOMMap.get(e)||null}getEditorState(){return this._editorState}setEditorState(e,t){e.isEmpty()&&Re(38);let n=e;n._readOnly&&(n=Ls(e),n._selection=e._selection?e._selection.clone():null),Xe(this);const r=this._pendingEditorState,i=this._updateTags,s=void 0!==t?t.tag:null;null===r||r.isEmpty()||(null!=s&&i.add(s),ps(this)),this._pendingEditorState=n,this._dirtyType=le,this._dirtyElements.set(\"root\",!1),this._compositionKey=null,null!=s&&i.add(s),this._updating||ps(this)}parseEditorState(e,t){return function(e,t,n){const r=Os(),i=Xi,s=Zi,o=Yi,l=t._dirtyElements,c=t._dirtyLeaves,a=t._cloneNotNeeded,u=t._dirtyType;t._dirtyElements=new Map,t._dirtyLeaves=new Set,t._cloneNotNeeded=new Set,t._dirtyType=0,Xi=r,Zi=!1,Yi=t;try{const i=t._nodes;gs(e.root,i),n&&n(),r._readOnly=!0}catch(e){e instanceof Error&&t._onError(e)}finally{t._dirtyElements=l,t._dirtyLeaves=c,t._cloneNotNeeded=a,t._dirtyType=u,Xi=i,Zi=s,Yi=o}return r}(\"string\"==typeof e?JSON.parse(e):e,this,t)}read(e){return ps(this),this.getEditorState().read(e,{editor:this})}update(e,t){Ss(this,e,t)}focus(e,t={}){const n=this._rootElement;null!==n&&(n.setAttribute(\"autocapitalize\",\"off\"),Ss(this,(()=>{const e=Ri(),n=Et();null!==e?e.dirty=!0:0!==n.getChildrenSize()&&(\"rootStart\"===t.defaultSelection?n.selectStart():n.selectEnd())}),{onUpdate:()=>{n.removeAttribute(\"autocapitalize\"),e&&e()},tag:\"focus\"}),null===this._pendingEditorState&&n.removeAttribute(\"autocapitalize\"))}blur(){const e=this._rootElement;null!==e&&e.blur();const t=vn(this._window);null!==t&&t.removeAllRanges()}isEditable(){return this._editable}setEditable(e){this._editable!==e&&(this._editable=e,ys(\"editable\",this,!0,e))}toJSON(){return{editorState:this._editorState.toJSON()}}}Hs.version=\"0.21.0+prod.esm\";export{on as $addUpdateTag,gn as $applyNodeReplacement,Dn as $cloneWithProperties,hn as $copyNode,qr as $createLineBreakNode,Bi as $createNodeSelection,zs as $createParagraphNode,xi as $createPoint,Ai as $createRangeSelection,zi as $createRangeSelectionFromDom,pi as $createTabNode,di as $createTextNode,Yt as $getAdjacentNode,Ei as $getCharacterOffsets,Pn as $getEditor,bt as $getNearestNodeFromDOMNode,fn as $getNearestRootOrShadowRoot,Ct as $getNodeByKey,pn as $getNodeByKeyOrThrow,Ki as $getPreviousSelection,Et as $getRoot,Ri as $getSelection,qi as $getTextContent,cn as $hasAncestor,sn as $hasUpdateTag,Hi as $insertNodes,Mi as $isBlockElementNode,Es as $isDecoratorNode,bs as $isElementNode,un as $isInlineElementOrDecoratorNode,pt as $isLeafNode,Gr as $isLineBreakNode,wi as $isNodeSelection,Ws as $isParagraphNode,ki as $isRangeSelection,Fs as $isRootNode,dn as $isRootOrShadowRoot,yi as $isTabNode,hi as $isTextNode,dt as $isTokenOrSegmented,Qt as $nodesOfType,nt as $normalizeSelection__EXPERIMENTAL,ln as $onUpdate,hs as $parseSerializedNode,Ht as $selectAll,vt as $setCompositionKey,Ft as $setSelection,Sn as $splitNode,Is as ArtificialNode__DO_NOT_USE,U as BLUR_COMMAND,K as CAN_REDO_COMMAND,J as CAN_UNDO_COMMAND,W as CLEAR_EDITOR_COMMAND,R as CLEAR_HISTORY_COMMAND,r as CLICK_COMMAND,Us as COMMAND_PRIORITY_CRITICAL,Rs as COMMAND_PRIORITY_EDITOR,$s as COMMAND_PRIORITY_HIGH,Ks as COMMAND_PRIORITY_LOW,Js as COMMAND_PRIORITY_NORMAL,l as CONTROLLED_TEXT_INSERTION_COMMAND,A as COPY_COMMAND,B as CUT_COMMAND,i as DELETE_CHARACTER_COMMAND,f as DELETE_LINE_COMMAND,u as DELETE_WORD_COMMAND,I as DRAGEND_COMMAND,M as DRAGOVER_COMMAND,D as DRAGSTART_COMMAND,L as DROP_COMMAND,Ns as DecoratorNode,ks as ElementNode,$ as FOCUS_COMMAND,O as FORMAT_ELEMENT_COMMAND,d as FORMAT_TEXT_COMMAND,P as INDENT_CONTENT_COMMAND,s as INSERT_LINE_BREAK_COMMAND,o as INSERT_PARAGRAPH_COMMAND,E as INSERT_TAB_COMMAND,xe as IS_ALL_FORMATTING,fe as IS_BOLD,_e as IS_CODE,me as IS_HIGHLIGHT,de as IS_ITALIC,he as IS_STRIKETHROUGH,pe as IS_SUBSCRIPT,ye as IS_SUPERSCRIPT,ge as IS_UNDERLINE,S as KEY_ARROW_DOWN_COMMAND,m as KEY_ARROW_LEFT_COMMAND,p as KEY_ARROW_RIGHT_COMMAND,v as KEY_ARROW_UP_COMMAND,k as KEY_BACKSPACE_COMMAND,w as KEY_DELETE_COMMAND,_ as KEY_DOWN_COMMAND,C as KEY_ENTER_COMMAND,b as KEY_ESCAPE_COMMAND,V as KEY_MODIFIER_COMMAND,T as KEY_SPACE_COMMAND,N as KEY_TAB_COMMAND,jr as LineBreakNode,y as MOVE_TO_END,x as MOVE_TO_START,F as OUTDENT_CONTENT_COMMAND,c as PASTE_COMMAND,As as ParagraphNode,g as REDO_COMMAND,a as REMOVE_TEXT_COMMAND,Ps as RootNode,t as SELECTION_CHANGE_COMMAND,n as SELECTION_INSERT_CLIPBOARD_NODES_COMMAND,z as SELECT_ALL_COMMAND,De as TEXT_TYPE_TO_FORMAT,_i as TabNode,ri as TextNode,h as UNDO_COMMAND,e as createCommand,js as createEditor,vn as getDOMSelection,gt as getDOMTextNode,ft as getEditorPropertyFromDOMNode,ut as getNearestEditorFromDOMNode,wn as isBlockDomNode,rs as isCurrentlyReadOnlyMode,ht as isDOMTextNode,An as isDOMUnmanaged,kn as isDocumentFragment,Cn as isHTMLAnchorElement,Tn as isHTMLElement,bn as isInlineDomNode,at as isLexicalEditor,lt as isSelectionCapturedInDecoratorInput,ct as isSelectionWithinEditor,st as resetRandomKey,In as setDOMUnmanaged,Mn as setNodeIndentFromDOM};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$isTextNode as e,$getCharacterOffsets as t,$isElementNode as n,$isRootNode as l,$getNodeByKey as o,$getPreviousSelection as r,$createTextNode as s,$isRangeSelection as i,$isTokenOrSegmented as c,$getRoot as f,$isRootOrShadowRoot as u,$hasAncestor as g,$isLeafNode as a,$setSelection as d,$getAdjacentNode as p,$isDecoratorNode as h,$isLineBreakNode as y}from\"lexical\";export{$cloneWithProperties}from\"lexical\";function m(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var T=m((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const x=new Map;function S(e){let t=e;for(;null!=t;){if(t.nodeType===Node.TEXT_NODE)return t;t=t.firstChild}return null}function v(e){const t=e.parentNode;if(null==t)throw new Error(\"Should never happen\");return[t,Array.from(t.childNodes).indexOf(e)]}function C(t,n,l,o,r){const s=n.getKey(),i=o.getKey(),c=document.createRange();let f=t.getElementByKey(s),u=t.getElementByKey(i),g=l,a=r;if(e(n)&&(f=S(f)),e(o)&&(u=S(u)),void 0===n||void 0===o||null===f||null===u)return null;\"BR\"===f.nodeName&&([f,g]=v(f)),\"BR\"===u.nodeName&&([u,a]=v(u));const d=f.firstChild;f===u&&null!=d&&\"BR\"===d.nodeName&&0===g&&0===a&&(a=1);try{c.setStart(f,g),c.setEnd(u,a)}catch(e){return null}return!c.collapsed||g===a&&s===i||(c.setStart(u,a),c.setEnd(f,g)),c}function P(e,t){const n=e.getRootElement();if(null===n)return[];const l=n.getBoundingClientRect(),o=getComputedStyle(n),r=parseFloat(o.paddingLeft)+parseFloat(o.paddingRight),s=Array.from(t.getClientRects());let i,c=s.length;s.sort(((e,t)=>{const n=e.top-t.top;return Math.abs(n)<=3?e.left-t.left:n}));for(let e=0;e<c;e++){const t=s[e],n=i&&i.top<=t.top&&i.top+i.height>t.top&&i.left+i.width>t.left,o=t.width+r===l.width;n||o?(s.splice(e--,1),c--):i=t}return s}function w(e){const t={};if(!e)return t;const n=e.split(\";\");for(const e of n)if(\"\"!==e){const[n,l]=e.split(/:([^]+)/);n&&l&&(t[n.trim()]=l.trim())}return t}function N(e){let t=x.get(e);return void 0===t&&(t=w(e),x.set(e,t)),t}function E(e){let t=\"\";for(const n in e)n&&(t+=`${n}: ${e[n]};`);return t}function F(e,n){const l=e.getStartEndPoints();if(n.isSelected(e)&&!n.isSegmented()&&!n.isToken()&&null!==l){const[o,r]=l,s=e.isBackward(),i=o.getNode(),c=r.getNode(),f=n.is(i),u=n.is(c);if(f||u){const[l,o]=t(e),r=i.is(c),f=n.is(s?c:i),u=n.is(s?i:c);let g,a=0;if(r)a=l>o?o:l,g=l>o?l:o;else if(f){a=s?o:l,g=void 0}else if(u){a=0,g=s?l:o}return n.__text=n.__text.slice(a,g),n}}return n}function K(e){if(\"text\"===e.type)return e.offset===e.getNode().getTextContentSize();const t=e.getNode();return n(t)||T(177),e.offset===t.getChildrenSize()}function I(t,c,f){let u=c.getNode(),g=f;if(n(u)){const e=u.getDescendantByIndex(c.offset);null!==e&&(u=e)}for(;g>0&&null!==u;){if(n(u)){const e=u.getLastDescendant();null!==e&&(u=e)}let f=u.getPreviousSibling(),a=0;if(null===f){let e=u.getParentOrThrow(),t=e.getPreviousSibling();for(;null===t;){if(e=e.getParent(),null===e){f=null;break}t=e.getPreviousSibling()}null!==e&&(a=e.isInline()?0:2,f=t)}let d=u.getTextContent();\"\"===d&&n(u)&&!u.isInline()&&(d=\"\\n\\n\");const p=d.length;if(!e(u)||g>=p){const e=u.getParent();u.remove(),null==e||0!==e.getChildrenSize()||l(e)||e.remove(),g-=p+a,u=f}else{const n=u.getKey(),l=t.getEditorState().read((()=>{const t=o(n);return e(t)&&t.isSimpleText()?t.getTextContent():null})),f=p-g,a=d.slice(0,f);if(null!==l&&l!==d){const e=r();let t=u;if(u.isSimpleText())u.setTextContent(l);else{const e=s(l);u.replace(e),t=e}if(i(e)&&e.isCollapsed()){const n=e.anchor.offset;t.select(n,n)}}else if(u.isSimpleText()){const e=c.key===n;let t=c.offset;t<g&&(t=p);const l=e?t-g:0,o=e?t:f;if(e&&0===l){const[e]=u.splitText(l,o);e.remove()}else{const[,e]=u.splitText(l,o);e.remove()}}else{const e=s(a);u.replace(e)}g=0}}}function O(e){const t=e.getStyle(),n=w(t);x.set(t,n)}function B(e,t){const n=N(\"getStyle\"in e?e.getStyle():e.style),l=Object.entries(t).reduce(((t,[l,o])=>(\"function\"==typeof o?t[l]=o(n[l],e):null===o?delete t[l]:t[l]=o,t)),{...n}||{}),o=E(l);e.setStyle(o),x.set(o,l)}function k(t,n){const l=t.getNodes(),o=l.length,r=t.getStartEndPoints();if(null===r)return;const[s,f]=r,u=o-1;let g=l[0],a=l[u];if(t.isCollapsed()&&i(t))return void B(t,n);const d=g.getTextContent().length,p=f.offset;let h=s.offset;const y=s.isBefore(f);let m=y?h:p,T=y?p:h;const x=y?s.type:f.type,S=y?f.type:s.type,v=y?f.key:s.key;if(e(g)&&m===d){const t=g.getNextSibling();e(t)&&(h=0,m=0,g=t)}if(1===l.length){if(e(g)&&g.canHaveFormat()){if(m=\"element\"===x?0:h>p?p:h,T=\"element\"===S?d:h>p?h:p,m===T)return;if(c(g)||0===m&&T===d)B(g,n),g.select(m,T);else{const e=g.splitText(m,T),t=0===m?e[0]:e[1];B(t,n),t.select(0,T-m)}}}else{if(e(g)&&m<g.getTextContentSize()&&g.canHaveFormat()&&(0===m||c(g)||(g=g.splitText(m)[1],m=0,y?s.set(g.getKey(),m,\"text\"):f.set(g.getKey(),m,\"text\")),B(g,n)),e(a)&&a.canHaveFormat()){const e=a.getTextContent().length;a.__key!==v&&0!==T&&(T=e),T===e||c(a)||([a]=a.splitText(T)),0===T&&\"element\"!==S||B(a,n)}for(let t=1;t<u;t++){const o=l[t],r=o.getKey();e(o)&&o.canHaveFormat()&&r!==g.getKey()&&r!==a.getKey()&&!o.isToken()&&B(o,n)}}}function b(e,t){if(null===e)return;const l=e.getStartEndPoints(),o=l?l[0]:null;if(null!==o&&\"root\"===o.key){const e=t(),n=f(),l=n.getFirstChild();return void(l?l.replace(e,!0):n.append(e))}const r=e.getNodes(),s=null!==o&&function(e,t){let n=e;for(;null!==n&&null!==n.getParent()&&!t(n);)n=n.getParentOrThrow();return t(n)?n:null}(o.getNode(),W);s&&-1===r.indexOf(s)&&r.push(s);for(let e=0;e<r.length;e++){const l=r[e];if(!W(l))continue;n(l)||T(178);const o=t();o.setFormat(l.getFormatType()),o.setIndent(l.getIndent()),l.replace(o,!0)}}function R(e){return e.getNode().isAttached()}function _(e){let t=e;for(;null!==t&&!u(t);){const e=t.getLatest(),n=t.getParent();0===e.getChildrenSize()&&t.remove(!0),t=n}}function z(e,t,n=null){const l=e.getStartEndPoints(),o=l?l[0]:null,r=e.getNodes(),s=r.length;if(null!==o&&(0===s||1===s&&\"element\"===o.type&&0===o.getNode().getChildrenSize())){const e=\"text\"===o.type?o.getNode().getParentOrThrow():o.getNode(),l=e.getChildren();let r=t();return r.setFormat(e.getFormatType()),r.setIndent(e.getIndent()),l.forEach((e=>r.append(e))),n&&(r=n.append(r)),void e.replace(r)}let i=null,c=[];for(let l=0;l<s;l++){const o=r[l];u(o)?(A(e,c,c.length,t,n),c=[],i=o):null===i||null!==i&&g(o,i)?c.push(o):(A(e,c,c.length,t,n),c=[o])}A(e,c,c.length,t,n)}function A(e,t,l,o,s=null){if(0===t.length)return;const c=t[0],f=new Map,g=[];let p=n(c)?c:c.getParentOrThrow();p.isInline()&&(p=p.getParentOrThrow());let h=!1;for(;null!==p;){const e=p.getPreviousSibling();if(null!==e){p=e,h=!0;break}if(p=p.getParentOrThrow(),u(p))break}const y=new Set;for(let e=0;e<l;e++){const l=t[e];n(l)&&0===l.getChildrenSize()&&y.add(l.getKey())}const m=new Set;for(let e=0;e<l;e++){const l=t[e];let r=l.getParent();if(null!==r&&r.isInline()&&(r=r.getParent()),null!==r&&a(l)&&!m.has(l.getKey())){const e=r.getKey();if(void 0===f.get(e)){const t=o();t.setFormat(r.getFormatType()),t.setIndent(r.getIndent()),g.push(t),f.set(e,t),r.getChildren().forEach((e=>{t.append(e),m.add(e.getKey()),n(e)&&e.getChildrenKeys().forEach((e=>m.add(e)))})),_(r)}}else if(y.has(l.getKey())){n(l)||T(179);const e=o();e.setFormat(l.getFormatType()),e.setIndent(l.getIndent()),g.push(e),l.remove(!0)}}if(null!==s)for(let e=0;e<g.length;e++){const t=g[e];s.append(t)}let x=null;if(u(p))if(h)if(null!==s)p.insertAfter(s);else for(let e=g.length-1;e>=0;e--){const t=g[e];p.insertAfter(t)}else{const e=p.getFirstChild();if(n(e)&&(p=e),null===e)if(s)p.append(s);else for(let e=0;e<g.length;e++){const t=g[e];p.append(t),x=t}else if(null!==s)e.insertBefore(s);else for(let t=0;t<g.length;t++){const n=g[t];e.insertBefore(n),x=n}}else if(s)p.insertAfter(s);else for(let e=g.length-1;e>=0;e--){const t=g[e];p.insertAfter(t),x=t}const S=r();i(S)&&R(S.anchor)&&R(S.focus)?d(S.clone()):null!==x?x.selectEnd():e.dirty=!0}function L(e,t){const l=p(e.focus,t);return h(l)&&!l.isIsolated()||n(l)&&!l.isInline()&&!l.canBeEmpty()}function D(e,t,n,l){e.modify(t?\"extend\":\"move\",n,l)}function M(e){const t=e.anchor.getNode();return\"rtl\"===(l(t)?t:t.getParentOrThrow()).getDirection()}function $(e,t,n){const l=M(e);D(e,t,n?!l:l,\"character\")}function H(t){const l=t.anchor,o=t.focus,r=l.getNode().getTopLevelElementOrThrow().getParentOrThrow();let s=r.getFirstDescendant(),i=r.getLastDescendant(),c=\"element\",f=\"element\",u=0;e(s)?c=\"text\":n(s)||null===s||(s=s.getParentOrThrow()),e(i)?(f=\"text\",u=i.getTextContentSize()):n(i)||null===i||(i=i.getParentOrThrow()),s&&i&&(l.set(s.getKey(),0,c),o.set(i.getKey(),u,f))}function j(e,t,n){const l=N(e.getStyle());return null!==l&&l[t]||n}function U(t,n,l=\"\"){let o=null;const r=t.getNodes(),s=t.anchor,c=t.focus,f=t.isBackward(),u=f?c.offset:s.offset,g=f?c.getNode():s.getNode();if(i(t)&&t.isCollapsed()&&\"\"!==t.style){const e=N(t.style);if(null!==e&&n in e)return e[n]}for(let t=0;t<r.length;t++){const s=r[t];if((0===t||0!==u||!s.is(g))&&e(s)){const e=j(s,n,l);if(null===o)o=e;else if(o!==e){o=\"\";break}}}return null===o?l:o}function W(t){if(h(t))return!1;if(!n(t)||u(t))return!1;const l=t.getFirstChild(),o=null===l||y(l)||e(l)||l.isInline();return!t.isInline()&&!1!==t.canBeEmpty()&&o}const X=I;export{O as $addNodeStyle,U as $getSelectionStyleValueForProperty,K as $isAtNodeEnd,M as $isParentElementRTL,D as $moveCaretSelection,$ as $moveCharacter,k as $patchStyleText,H as $selectAll,b as $setBlocksType,L as $shouldOverrideDefaultCharacterSelection,F as $sliceSelectedTextNodeContent,I as $trimTextContentFromAnchor,z as $wrapNodes,C as createDOMRange,P as createRectsFromDOMRange,E as getCSSFromStyleObject,N as getStyleObjectFromCSS,X as trimTextContentFromAnchor};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{isHTMLElement as e,$getSelection as t,$isRangeSelection as n,$isTextNode as o,getDOMTextNode as l,$getRoot as r,$isElementNode as i,$cloneWithProperties as s,$setSelection as u,$getPreviousSelection as c,$isRootOrShadowRoot as d,$splitNode as f,$createParagraphNode as a}from\"lexical\";export{$splitNode,isBlockDomNode,isHTMLAnchorElement,isHTMLElement,isInlineDomNode}from\"lexical\";import{createRectsFromDOMRange as g}from\"@lexical/selection\";function p(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var h=p((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const m=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,v=m&&\"documentMode\"in document?document.documentMode:null,y=m&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),w=m&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),E=!(!m||!(\"InputEvent\"in window)||v)&&\"getTargetRanges\"in new window.InputEvent(\"input\"),x=m&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent),P=m&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,S=m&&/Android/.test(navigator.userAgent),b=m&&/^(?=.*Chrome).*/i.test(navigator.userAgent),L=m&&S&&b,A=m&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&!b;function C(...e){const t=[];for(const n of e)if(n&&\"string\"==typeof n)for(const[e]of n.matchAll(/\\S+/g))t.push(e);return t}function N(...e){return()=>{for(let t=e.length-1;t>=0;t--)e[t]();e.length=0}}function B(e){return`${e}px`}const T={attributes:!0,characterData:!0,childList:!0,subtree:!0};function M(t,n,o){let l=null,r=null,i=null,s=[];const u=document.createElement(\"div\");function c(){null===l&&h(182),null===r&&h(183);const{left:e,top:i}=r.getBoundingClientRect(),c=g(t,n);var d,f;u.isConnected||(f=u,(d=r).insertBefore(f,d.firstChild));let a=!1;for(let t=0;t<c.length;t++){const n=c[t],o=s[t]||document.createElement(\"div\"),l=o.style;\"absolute\"!==l.position&&(l.position=\"absolute\",a=!0);const r=B(n.left-e);l.left!==r&&(l.left=r,a=!0);const d=B(n.top-i);l.top!==d&&(o.style.top=d,a=!0);const f=B(n.width);l.width!==f&&(o.style.width=f,a=!0);const g=B(n.height);l.height!==g&&(o.style.height=g,a=!0),o.parentNode!==u&&(u.append(o),a=!0),s[t]=o}for(;s.length>c.length;)s.pop();a&&o(s)}function d(){r=null,l=null,null!==i&&i.disconnect(),i=null,u.remove();for(const e of s)e.remove();s=[]}u.style.position=\"relative\";const f=t.registerRootListener((function n(){const o=t.getRootElement();if(null===o)return d();const s=o.parentElement;if(null===s||!e(s))return d();d(),l=o,r=s,i=new MutationObserver((e=>{const o=t.getRootElement(),i=o&&o.parentElement;if(o!==l||i!==r)return n();for(const t of e)if(!u.contains(t.target))return c()})),i.observe(s,T),c()}));return()=>{f(),d()}}function R(e,r){let i=null,s=null,u=null,c=null,d=()=>{};function f(f){f.read((()=>{const f=t();if(!n(f))return i=null,s=null,u=null,c=null,d(),void(d=()=>{});const{anchor:a,focus:g}=f,p=a.getNode(),h=p.getKey(),m=a.offset,v=g.getNode(),y=v.getKey(),w=g.offset,E=e.getElementByKey(h),x=e.getElementByKey(y),P=null===i||null===E||m!==s||h!==i.getKey()||p!==i&&(!o(i)||p.updateDOM(i,E,e._config)),S=null===u||null===x||w!==c||y!==u.getKey()||v!==u&&(!o(u)||v.updateDOM(u,x,e._config));if(P||S){const t=e.getElementByKey(a.getNode().getKey()),n=e.getElementByKey(g.getNode().getKey());if(null!==t&&null!==n){const o=document.createRange();let i,s,u,c;g.isBefore(a)?(i=n,s=g.offset,u=t,c=a.offset):(i=t,s=a.offset,u=n,c=g.offset);const f=l(i),p=l(u);o.setStart(f||i,s),o.setEnd(p||u,c),d(),d=M(e,o,(e=>{if(void 0===r)for(const t of e){const e=t.style;\"Highlight\"!==e.background&&(e.background=\"Highlight\"),\"HighlightText\"!==e.color&&(e.color=\"HighlightText\"),e.marginTop!==B(-1.5)&&(e.marginTop=B(-1.5)),e.paddingTop!==B(4)&&(e.paddingTop=B(4)),e.paddingBottom!==B(0)&&(e.paddingBottom=B(0))}else r(e)}))}}i=p,s=m,u=v,c=w}))}return f(e.getEditorState()),N(e.registerUpdateListener((({editorState:e})=>f(e))),d,(()=>{d()}))}function _(e){let t=null;const n=()=>{const n=getSelection(),o=n&&n.anchorNode,l=e.getRootElement();null!==o&&null!==l&&l.contains(o)?null!==t&&(t(),t=null):null===t&&(t=R(e))};return document.addEventListener(\"selectionchange\",n),()=>{null!==t&&t(),document.removeEventListener(\"selectionchange\",n)}}const K=E,O=m,D=S,H=L,I=y,k=A,z=b,F=w,$=P,U=x;function W(e,...t){const n=C(...t);n.length>0&&e.classList.add(...n)}function j(e,...t){const n=C(...t);n.length>0&&e.classList.remove(...n)}function V(e,t){for(const n of t)if(e.type.startsWith(n))return!0;return!1}function q(e,t){const n=e[Symbol.iterator]();return new Promise(((e,o)=>{const l=[],r=()=>{const{done:i,value:s}=n.next();if(i)return e(l);const u=new FileReader;u.addEventListener(\"error\",o),u.addEventListener(\"load\",(()=>{const e=u.result;\"string\"==typeof e&&l.push({file:s,result:e}),r()})),V(s,t)?u.readAsDataURL(s):r()};r()}))}function G(e,t){return Array.from(X(e,t))}const J={done:!0,value:void 0},Q=e=>({done:!1,value:e});function X(e,t){const n=(e||r()).getLatest(),o=Z(n),l=t;let s=n,u=o,c=!0;const d={next(){if(null===s)return J;if(c)return c=!1,Q({depth:u,node:s});if(s===l)return J;if(i(s)&&s.getChildrenSize()>0)s=s.getFirstChild(),u++;else{let e;[s,e]=Y(s)||[null,0],u+=e,null==l&&u<=o&&(s=null)}return null===s?J:Q({depth:u,node:s})},[Symbol.iterator]:()=>d};return d}function Y(e){let t=e,n=null,o=0;for(;null===n&&null!==t;)n=t.getNextSibling(),null===n?(t=t.getParent(),o--):t=n;return null===t?null:[t,o]}function Z(e){let t=e,n=0;for(;null!==(t=t.getParent());)n++;return n}function ee(e){let t=e;if(i(t)&&t.getChildrenSize()>0)t=t.getLastChild();else{let e=null;for(;null===e&&null!==t;)e=t.getPreviousSibling(),t=null===e?t.getParent():e}return t}function te(e,t){let n=e;for(;null!=n;){if(n instanceof t)return n;n=n.getParent()}return null}function ne(e){const t=oe(e,(e=>i(e)&&!e.isInline()));return i(t)||h(4,e.__key),t}const oe=(e,t)=>{let n=e;for(;n!==r()&&null!=n;){if(t(n))return n;n=n.getParent()}return null};function le(e,t,n,o){const l=e=>e instanceof t;return e.registerNodeTransform(t,(e=>{const t=(e=>{const t=e.getChildren();for(let e=0;e<t.length;e++){const n=t[e];if(l(n))return null}let n=e,o=e;for(;null!==n;)if(o=n,n=n.getParent(),l(n))return{child:o,parent:n};return null})(e);if(null!==t){const{child:l,parent:r}=t;if(l.is(e)){o(r,e);const t=l.getNextSiblings(),i=t.length;if(r.insertAfter(l),0!==i){const e=n(r);l.insertAfter(e);for(let n=0;n<i;n++)e.append(t[n])}r.canBeEmpty()||0!==r.getChildrenSize()||r.remove()}}}))}function re(e,t){const n=new Map,o=e._pendingEditorState;for(const[e,o]of t._nodeMap)n.set(e,s(o));o&&(o._nodeMap=n),e._dirtyType=2;const l=t._selection;u(null===l?null:l.clone())}function ie(e){const l=t()||c();if(n(l)){const{focus:t}=l,n=t.getNode(),r=t.offset;if(d(n)){const t=n.getChildAtIndex(r);null==t?n.append(e):t.insertBefore(e),e.selectNext()}else{let t,l;o(n)?(t=n.getParentOrThrow(),l=n.getIndexWithinParent(),r>0&&(l+=1,n.splitText(r))):(t=n,l=r);const[,i]=f(t,l);i.insertBefore(e),i.selectStart()}}else{if(null!=l){const t=l.getNodes();t[t.length-1].getTopLevelElementOrThrow().insertAfter(e)}else{r().append(e)}const t=a();e.insertAfter(t),t.select()}return e.getLatest()}function se(e,t){const n=t();return e.replace(n),n.append(e),n}function ue(e,t){return null!==e&&Object.getPrototypeOf(e).constructor.name===t.name}function ce(e,t){const n=[];for(let o=0;o<e.length;o++){const l=t(e[o]);null!==l&&n.push(l)}return n}function de(e,t){const n=e.getFirstChild();null!==n?n.insertBefore(t):e.append(t)}let fe=!(F||!O)&&void 0;function ae(e){let t=1;if(function(){if(void 0===fe){const e=document.createElement(\"div\");e.style.cssText=\"position: absolute; opacity: 0; width: 100px; left: -1000px;\",document.body.appendChild(e);const t=e.getBoundingClientRect();e.style.setProperty(\"zoom\",\"2\"),fe=e.getBoundingClientRect().width===t.width,document.body.removeChild(e)}return fe}())for(;e;)t*=Number(window.getComputedStyle(e).getPropertyValue(\"zoom\")),e=e.parentElement;return t}function ge(e){return null!==e._parentEditor}export{G as $dfs,X as $dfsIterator,ce as $filter,oe as $findMatchingParent,Z as $getDepth,ne as $getNearestBlockElementAncestorOrThrow,te as $getNearestNodeOfType,ee as $getNextRightPreorderNode,Y as $getNextSiblingOrParentSibling,de as $insertFirst,ie as $insertNodeToNearestRoot,ge as $isEditorIsNestedEditor,re as $restoreEditorState,se as $wrapNodeInElement,K as CAN_USE_BEFORE_INPUT,O as CAN_USE_DOM,D as IS_ANDROID,H as IS_ANDROID_CHROME,I as IS_APPLE,k as IS_APPLE_WEBKIT,z as IS_CHROME,F as IS_FIREFOX,$ as IS_IOS,U as IS_SAFARI,W as addClassNamesToElement,ae as calculateZoomLevel,V as isMimeType,R as markSelection,q as mediaFileReader,N as mergeRegister,ue as objectKlassEquals,M as positionNodeOnRange,le as registerNestedElementResolver,j as removeClassNamesFromElement,_ as selectionAlwaysOnDisplay};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$sliceSelectedTextNodeContent as e}from\"@lexical/selection\";import{isHTMLElement as n,isBlockDomNode as t}from\"@lexical/utils\";import{$getRoot as o,$isElementNode as l,$cloneWithProperties as r,$isTextNode as i,isDocumentFragment as s,$isRootOrShadowRoot as c,$isBlockElementNode as u,$createLineBreakNode as f,ArtificialNode__DO_NOT_USE as a,isInlineDomNode as d,$createParagraphNode as p}from\"lexical\";function h(e,n){const t=n.body?n.body.childNodes:[];let o=[];const l=[];for(let n=0;n<t.length;n++){const r=t[n];if(!x.has(r.nodeName)){const n=y(r,e,l,!1);null!==n&&(o=o.concat(n))}}return function(e){for(const n of e)n.getNextSibling()instanceof a&&n.insertAfter(f());for(const n of e){const e=n.getChildren();for(const t of e)n.insertBefore(t);n.remove()}}(l),o}function m(e,n){if(\"undefined\"==typeof document||\"undefined\"==typeof window&&void 0===global.window)throw new Error(\"To use $generateHtmlFromNodes in headless mode please initialize a headless browser implementation such as JSDom before calling this function.\");const t=document.createElement(\"div\"),l=o().getChildren();for(let o=0;o<l.length;o++){g(e,l[o],t,n)}return t.innerHTML}function g(t,o,c,u=null){let f=null===u||o.isSelected(u);const a=l(o)&&o.excludeFromCopy(\"html\");let d=o;if(null!==u){let n=r(o);n=i(n)&&null!==u?e(u,n):n,d=n}const p=l(d)?d.getChildren():[],h=t._nodes.get(d.getType());let m;m=h&&void 0!==h.exportDOM?h.exportDOM(t,d):d.exportDOM(t);const{element:x,after:y}=m;if(!x)return!1;const w=document.createDocumentFragment();for(let e=0;e<p.length;e++){const n=p[e],r=g(t,n,w,u);!f&&l(o)&&r&&o.extractWithChild(n,u,\"html\")&&(f=!0)}if(f&&!a){if((n(x)||s(x))&&x.append(w),c.append(x),y){const e=y.call(d,x);e&&(s(x)?x.replaceChildren(e):x.replaceWith(e))}}else c.append(w);return f}const x=new Set([\"STYLE\",\"SCRIPT\"]);function y(e,n,o,r,i=new Map,s){let h=[];if(x.has(e.nodeName))return h;let m=null;const g=function(e,n){const{nodeName:t}=e,o=n._htmlConversions.get(t.toLowerCase());let l=null;if(void 0!==o)for(const n of o){const t=n(e);null!==t&&(null===l||(l.priority||0)<=(t.priority||0))&&(l=t)}return null!==l?l.conversion:null}(e,n),b=g?g(e):null;let C=null;if(null!==b){C=b.after;const n=b.node;if(m=Array.isArray(n)?n[n.length-1]:n,null!==m){for(const[,e]of i)if(m=e(m,s),!m)break;m&&h.push(...Array.isArray(n)?n:[m])}null!=b.forChild&&i.set(e.nodeName,b.forChild)}const S=e.childNodes;let v=[];const N=(null==m||!c(m))&&(null!=m&&u(m)||r);for(let e=0;e<S.length;e++)v.push(...y(S[e],n,o,N,new Map(i),m));return null!=C&&(v=C(v)),t(e)&&(v=w(e,v,N?()=>{const e=new a;return o.push(e),e}:p)),null==m?v.length>0?h=h.concat(v):t(e)&&function(e){if(null==e.nextSibling||null==e.previousSibling)return!1;return d(e.nextSibling)&&d(e.previousSibling)}(e)&&(h=h.concat(f())):l(m)&&m.append(...v),h}function w(e,n,t){const o=e.style.textAlign,l=[];let r=[];for(let e=0;e<n.length;e++){const i=n[e];if(u(i))o&&!i.getFormat()&&i.setFormat(o),l.push(i);else if(r.push(i),e===n.length-1||e<n.length-1&&u(n[e+1])){const e=t();e.setFormat(o),e.append(...r),l.push(e),r=[]}}return l}export{m as $generateHtmlFromNodes,h as $generateNodesFromDOM};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{addClassNamesToElement as t,isHTMLAnchorElement as e,$findMatchingParent as r}from\"@lexical/utils\";import{createCommand as i,ElementNode as n,$isRangeSelection as l,$applyNodeReplacement as s,$isElementNode as u,$getSelection as _}from\"lexical\";const o=new Set([\"http:\",\"https:\",\"mailto:\",\"sms:\",\"tel:\"]);class a extends n{static getType(){return\"link\"}static clone(t){return new a(t.__url,{rel:t.__rel,target:t.__target,title:t.__title},t.__key)}constructor(t,e={},r){super(r);const{target:i=null,rel:n=null,title:l=null}=e;this.__url=t,this.__target=i,this.__rel=n,this.__title=l}createDOM(e){const r=document.createElement(\"a\");return r.href=this.sanitizeUrl(this.__url),null!==this.__target&&(r.target=this.__target),null!==this.__rel&&(r.rel=this.__rel),null!==this.__title&&(r.title=this.__title),t(r,e.theme.link),r}updateDOM(t,e,r){if(e instanceof HTMLAnchorElement){const r=this.__url,i=this.__target,n=this.__rel,l=this.__title;r!==t.__url&&(e.href=r),i!==t.__target&&(i?e.target=i:e.removeAttribute(\"target\")),n!==t.__rel&&(n?e.rel=n:e.removeAttribute(\"rel\")),l!==t.__title&&(l?e.title=l:e.removeAttribute(\"title\"))}return!1}static importDOM(){return{a:t=>({conversion:h,priority:1})}}static importJSON(t){const e=c(t.url,{rel:t.rel,target:t.target,title:t.title});return e.setFormat(t.format),e.setIndent(t.indent),e.setDirection(t.direction),e}sanitizeUrl(t){try{const e=new URL(t);if(!o.has(e.protocol))return\"about:blank\"}catch(e){return t}return t}exportJSON(){return{...super.exportJSON(),rel:this.getRel(),target:this.getTarget(),title:this.getTitle(),type:\"link\",url:this.getURL(),version:1}}getURL(){return this.getLatest().__url}setURL(t){this.getWritable().__url=t}getTarget(){return this.getLatest().__target}setTarget(t){this.getWritable().__target=t}getRel(){return this.getLatest().__rel}setRel(t){this.getWritable().__rel=t}getTitle(){return this.getLatest().__title}setTitle(t){this.getWritable().__title=t}insertNewAfter(t,e=!0){const r=c(this.__url,{rel:this.__rel,target:this.__target,title:this.__title});return this.insertAfter(r,e),r}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(t,e,r){if(!l(e))return!1;const i=e.anchor.getNode(),n=e.focus.getNode();return this.isParentOf(i)&&this.isParentOf(n)&&e.getTextContent().length>0}isEmailURI(){return this.__url.startsWith(\"mailto:\")}isWebSiteURI(){return this.__url.startsWith(\"https://\")||this.__url.startsWith(\"http://\")}}function h(t){let r=null;if(e(t)){const e=t.textContent;(null!==e&&\"\"!==e||t.children.length>0)&&(r=c(t.getAttribute(\"href\")||\"\",{rel:t.getAttribute(\"rel\"),target:t.getAttribute(\"target\"),title:t.getAttribute(\"title\")}))}return{node:r}}function c(t,e){return s(new a(t,e))}function g(t){return t instanceof a}class f extends a{constructor(t,e={},r){super(t,e,r),this.__isUnlinked=void 0!==e.isUnlinked&&null!==e.isUnlinked&&e.isUnlinked}static getType(){return\"autolink\"}static clone(t){return new f(t.__url,{isUnlinked:t.__isUnlinked,rel:t.__rel,target:t.__target,title:t.__title},t.__key)}getIsUnlinked(){return this.__isUnlinked}setIsUnlinked(t){const e=this.getWritable();return e.__isUnlinked=t,e}createDOM(t){return this.__isUnlinked?document.createElement(\"span\"):super.createDOM(t)}updateDOM(t,e,r){return super.updateDOM(t,e,r)||t.__isUnlinked!==this.__isUnlinked}static importJSON(t){const e=d(t.url,{isUnlinked:t.isUnlinked,rel:t.rel,target:t.target,title:t.title});return e.setFormat(t.format),e.setIndent(t.indent),e.setDirection(t.direction),e}static importDOM(){return null}exportJSON(){return{...super.exportJSON(),isUnlinked:this.__isUnlinked,type:\"autolink\",version:1}}insertNewAfter(t,e=!0){const r=this.getParentOrThrow().insertNewAfter(t,e);if(u(r)){const t=d(this.__url,{isUnlinked:this.__isUnlinked,rel:this.__rel,target:this.__target,title:this.__title});return r.append(t),t}return null}}function d(t,e){return s(new f(t,e))}function p(t){return t instanceof f}const U=i(\"TOGGLE_LINK_COMMAND\");function m(t,e={}){const{target:i,title:n}=e,s=void 0===e.rel?\"noreferrer\":e.rel,o=_();if(!l(o))return;const a=o.extract();if(null===t)a.forEach((t=>{const e=r(t,(t=>!p(t)&&g(t)));if(e){const t=e.getChildren();for(let r=0;r<t.length;r++)e.insertBefore(t[r]);e.remove()}}));else{if(1===a.length){const e=function(t,e){let r=t;for(;null!==r&&null!==r.getParent()&&!e(r);)r=r.getParentOrThrow();return e(r)?r:null}(a[0],g);if(null!==e)return e.setURL(t),void 0!==i&&e.setTarget(i),null!==s&&e.setRel(s),void(void 0!==n&&e.setTitle(n))}let e=null,r=null;a.forEach((l=>{const _=l.getParent();if(_!==r&&null!==_&&(!u(l)||l.isInline())){if(g(_))return r=_,_.setURL(t),void 0!==i&&_.setTarget(i),null!==s&&r.setRel(s),void(void 0!==n&&r.setTitle(n));if(_.is(e)||(e=_,r=c(t,{rel:s,target:i,title:n}),g(_)?null===l.getPreviousSibling()?_.insertBefore(r):_.insertAfter(r):l.insertBefore(r)),g(l)){if(l.is(r))return;if(null!==r){const t=l.getChildren();for(let e=0;e<t.length;e++)r.append(t[e])}l.remove()}else null!==r&&r.append(l)}}))}}const k=m;export{d as $createAutoLinkNode,c as $createLinkNode,p as $isAutoLinkNode,g as $isLinkNode,m as $toggleLink,f as AutoLinkNode,a as LinkNode,U as TOGGLE_LINK_COMMAND,k as toggleLink};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$getNearestNodeOfType as e,removeClassNamesFromElement as t,addClassNamesToElement as n,isHTMLElement as r,mergeRegister as i}from\"@lexical/utils\";import{$getSelection as s,$isRangeSelection as o,$isRootOrShadowRoot as c,$isElementNode as l,$isLeafNode as a,$createParagraphNode as h,$isParagraphNode as u,ElementNode as g,$applyNodeReplacement as f,$createTextNode as d,createCommand as p,COMMAND_PRIORITY_LOW as _,INSERT_PARAGRAPH_COMMAND as m}from\"lexical\";function v(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var y=v((function(e){const t=new URLSearchParams;t.append(\"code\",e);for(let e=1;e<arguments.length;e++)t.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function C(e){let t=1,n=e.getParent();for(;null!=n;){if(V(n)){const e=n.getParent();if(H(e)){t++,n=e.getParent();continue}y(40)}return t}return t}function k(e){let t=e.getParent();H(t)||y(40);let n=t;for(;null!==n;)n=n.getParent(),H(n)&&(t=n);return t}function T(e){let t=[];const n=e.getChildren().filter(V);for(let e=0;e<n.length;e++){const r=n[e],i=r.getFirstChild();H(i)?t=t.concat(T(i)):t.push(r)}return t}function b(e){return V(e)&&H(e.getFirstChild())}function S(e){return W().append(e)}function P(e,t){return V(e)&&(0===t.length||1===t.length&&e.is(t[0])&&0===e.getChildrenSize())}function A(e,t){e.update((()=>{const e=s();if(null!==e){const n=e.getNodes();if(o(e)){const r=e.getStartEndPoints();null===r&&y(143);const[i]=r,s=i.getNode(),o=s.getParent();if(P(s,n)){const e=q(t);if(c(o)){s.replace(e);const t=W();l(s)&&(t.setFormat(s.getFormatType()),t.setIndent(s.getIndent())),e.append(t)}else if(V(s)){const t=s.getParentOrThrow();N(e,t.getChildren()),t.replace(e)}return}}const r=new Set;for(let e=0;e<n.length;e++){const i=n[e];if(!l(i)||!i.isEmpty()||V(i)||r.has(i.getKey())){if(a(i)){let e=i.getParent();for(;null!=e;){const n=e.getKey();if(H(e)){if(!r.has(n)){const i=q(t);N(i,e.getChildren()),e.replace(i),r.add(n)}break}{const i=e.getParent();if(c(i)&&!r.has(n)){r.add(n),x(e,t);break}e=i}}}}else x(i,t)}}}))}function N(e,t){e.splice(e.getChildrenSize(),0,t)}function x(e,t){if(H(e))return e;const n=e.getPreviousSibling(),r=e.getNextSibling(),i=W();let s;if(N(i,e.getChildren()),H(n)&&t===n.getListType())n.append(i),H(r)&&t===r.getListType()&&(N(n,r.getChildren()),r.remove()),s=n;else if(H(r)&&t===r.getListType())r.getFirstChildOrThrow().insertBefore(i),s=r;else{const n=q(t);n.append(i),e.replace(n),s=n}return i.setFormat(e.getFormatType()),i.setIndent(e.getIndent()),e.remove(),s}function L(e,t){const n=e.getLastChild(),r=t.getFirstChild();n&&r&&b(n)&&b(r)&&(L(n.getFirstChild(),r.getFirstChild()),r.remove());const i=t.getChildren();i.length>0&&e.append(...i),t.remove()}function O(t){t.update((()=>{const t=s();if(o(t)){const n=new Set,r=t.getNodes(),i=t.anchor.getNode();if(P(i,r))n.add(k(i));else for(let t=0;t<r.length;t++){const i=r[t];if(a(i)){const t=e(i,I);null!=t&&n.add(k(t))}}for(const e of n){let n=e;const r=T(e);for(const e of r){const r=h();N(r,e.getChildren()),n.insertAfter(r),n=r,e.__key===t.anchor.key&&t.anchor.set(r.getKey(),0,\"element\"),e.__key===t.focus.key&&t.focus.set(r.getKey(),0,\"element\"),e.remove()}e.remove()}}}))}function E(e){const t=new Set;if(b(e)||t.has(e.getKey()))return;const n=e.getParent(),r=e.getNextSibling(),i=e.getPreviousSibling();if(b(r)&&b(i)){const n=i.getFirstChild();if(H(n)){n.append(e);const i=r.getFirstChild();if(H(i)){N(n,i.getChildren()),r.remove(),t.add(r.getKey())}}}else if(b(r)){const t=r.getFirstChild();if(H(t)){const n=t.getFirstChild();null!==n&&n.insertBefore(e)}}else if(b(i)){const t=i.getFirstChild();H(t)&&t.append(e)}else if(H(n)){const t=W(),s=q(n.getListType());t.append(s),s.append(e),i?i.insertAfter(t):r?r.insertBefore(t):n.append(t)}}function M(e){if(b(e))return;const t=e.getParent(),n=t?t.getParent():void 0;if(H(n?n.getParent():void 0)&&V(n)&&H(t)){const r=t?t.getFirstChild():void 0,i=t?t.getLastChild():void 0;if(e.is(r))n.insertBefore(e),t.isEmpty()&&n.remove();else if(e.is(i))n.insertAfter(e),t.isEmpty()&&n.remove();else{const r=t.getListType(),i=W(),s=q(r);i.append(s),e.getPreviousSiblings().forEach((e=>s.append(e)));const o=W(),c=q(r);o.append(c),N(c,e.getNextSiblings()),n.insertBefore(i),n.insertAfter(o),n.replace(e)}}}function F(){const e=s();if(!o(e)||!e.isCollapsed())return!1;const t=e.anchor.getNode();if(!V(t)||0!==t.getChildrenSize())return!1;const n=k(t),r=t.getParent();H(r)||y(40);const i=r.getParent();let l;if(c(i))l=h(),n.insertAfter(l);else{if(!V(i))return!1;l=W(),i.insertAfter(l)}l.select();const a=t.getNextSiblings();if(a.length>0){const e=q(r.getListType());if(u(l))l.insertAfter(e);else{const t=W();t.append(e),l.insertAfter(t)}a.forEach((t=>{t.remove(),e.append(t)}))}return function(e){let t=e;for(;null==t.getNextSibling()&&null==t.getPreviousSibling();){const e=t.getParent();if(null==e||!V(t)&&!H(t))break;t=e}t.remove()}(t),!0}function w(...e){const t=[];for(const n of e)if(n&&\"string\"==typeof n)for(const[e]of n.matchAll(/\\S+/g))t.push(e);return t}class I extends g{static getType(){return\"listitem\"}static clone(e){return new I(e.__value,e.__checked,e.__key)}constructor(e,t,n){super(n),this.__value=void 0===e?1:e,this.__checked=t}createDOM(e){const t=document.createElement(\"li\"),n=this.getParent();return H(n)&&\"check\"===n.getListType()&&R(t,this,null),t.value=this.__value,D(t,e.theme,this),t}updateDOM(e,t,n){const r=this.getParent();return H(r)&&\"check\"===r.getListType()&&R(t,this,e),t.value=this.__value,D(t,n.theme,this),!1}static transform(){return e=>{if(V(e)||y(144),null==e.__checked)return;const t=e.getParent();H(t)&&\"check\"!==t.getListType()&&null!=e.getChecked()&&e.setChecked(void 0)}}static importDOM(){return{li:()=>({conversion:B,priority:0})}}static importJSON(e){const t=W();return t.setChecked(e.checked),t.setValue(e.value),t.setFormat(e.format),t.setDirection(e.direction),t}exportDOM(e){const t=this.createDOM(e._config);return t.style.textAlign=this.getFormatType(),{element:t}}exportJSON(){return{...super.exportJSON(),checked:this.getChecked(),type:\"listitem\",value:this.getValue(),version:1}}append(...e){for(let t=0;t<e.length;t++){const n=e[t];if(l(n)&&this.canMergeWith(n)){const e=n.getChildren();this.append(...e),n.remove()}else super.append(n)}return this}replace(e,t){if(V(e))return super.replace(e);this.setIndent(0);const n=this.getParentOrThrow();if(!H(n))return e;if(n.__first===this.getKey())n.insertBefore(e);else if(n.__last===this.getKey())n.insertAfter(e);else{const t=q(n.getListType());let r=this.getNextSibling();for(;r;){const e=r;r=r.getNextSibling(),t.append(e)}n.insertAfter(e),e.insertAfter(t)}return t&&(l(e)||y(139),this.getChildren().forEach((t=>{e.append(t)}))),this.remove(),0===n.getChildrenSize()&&n.remove(),e}insertAfter(e,t=!0){const n=this.getParentOrThrow();if(H(n)||y(39),V(e))return super.insertAfter(e,t);const r=this.getNextSiblings();if(n.insertAfter(e,t),0!==r.length){const i=q(n.getListType());r.forEach((e=>i.append(e))),e.insertAfter(i,t)}return e}remove(e){const t=this.getPreviousSibling(),n=this.getNextSibling();super.remove(e),t&&n&&b(t)&&b(n)&&(L(t.getFirstChild(),n.getFirstChild()),n.remove())}insertNewAfter(e,t=!0){const n=W(null==this.__checked&&void 0);return this.insertAfter(n,t),n}collapseAtStart(e){const t=h();this.getChildren().forEach((e=>t.append(e)));const n=this.getParentOrThrow(),r=n.getParentOrThrow(),i=V(r);if(1===n.getChildrenSize())if(i)n.remove(),r.select();else{n.insertBefore(t),n.remove();const r=e.anchor,i=e.focus,s=t.getKey();\"element\"===r.type&&r.getNode().is(this)&&r.set(s,r.offset,\"element\"),\"element\"===i.type&&i.getNode().is(this)&&i.set(s,i.offset,\"element\")}else n.insertBefore(t),this.remove();return!0}getValue(){return this.getLatest().__value}setValue(e){this.getWritable().__value=e}getChecked(){const e=this.getLatest();let t;const n=this.getParent();return H(n)&&(t=n.getListType()),\"check\"===t?Boolean(e.__checked):void 0}setChecked(e){this.getWritable().__checked=e}toggleChecked(){this.setChecked(!this.__checked)}getIndent(){const e=this.getParent();if(null===e)return this.getLatest().__indent;let t=e.getParentOrThrow(),n=0;for(;V(t);)t=t.getParentOrThrow().getParentOrThrow(),n++;return n}setIndent(e){\"number\"!=typeof e&&y(117),(e=Math.floor(e))>=0||y(199);let t=this.getIndent();for(;t!==e;)t<e?(E(this),t++):(M(this),t--);return this}canInsertAfter(e){return V(e)}canReplaceWith(e){return V(e)}canMergeWith(e){return u(e)||V(e)}extractWithChild(e,t){if(!o(t))return!1;const n=t.anchor.getNode(),r=t.focus.getNode();return this.isParentOf(n)&&this.isParentOf(r)&&this.getTextContent().length===t.getTextContent().length}isParentRequired(){return!0}createParentElementNode(){return q(\"bullet\")}canMergeWhenEmpty(){return!0}}function D(e,r,i){const s=[],o=[],c=r.list,l=c?c.listitem:void 0;let a;if(c&&c.nested&&(a=c.nested.listitem),void 0!==l&&s.push(...w(l)),c){const e=i.getParent(),t=H(e)&&\"check\"===e.getListType(),n=i.getChecked();t&&!n||o.push(c.listitemUnchecked),t&&n||o.push(c.listitemChecked),t&&s.push(n?c.listitemChecked:c.listitemUnchecked)}if(void 0!==a){const e=w(a);i.getChildren().some((e=>H(e)))?s.push(...e):o.push(...e)}o.length>0&&t(e,...o),s.length>0&&n(e,...s)}function R(e,t,n,r){H(t.getFirstChild())?(e.removeAttribute(\"role\"),e.removeAttribute(\"tabIndex\"),e.removeAttribute(\"aria-checked\")):(e.setAttribute(\"role\",\"checkbox\"),e.setAttribute(\"tabIndex\",\"-1\"),n&&t.__checked===n.__checked||e.setAttribute(\"aria-checked\",t.getChecked()?\"true\":\"false\"))}function B(e){if(e.classList.contains(\"task-list-item\"))for(const t of e.children)if(\"INPUT\"===t.tagName)return K(t);const t=e.getAttribute(\"aria-checked\");return{node:W(\"true\"===t||\"false\"!==t&&void 0)}}function K(e){if(!(\"checkbox\"===e.getAttribute(\"type\")))return{node:null};return{node:W(e.hasAttribute(\"checked\"))}}function W(e){return f(new I(void 0,e))}function V(e){return e instanceof I}class J extends g{static getType(){return\"list\"}static clone(e){const t=e.__listType||j[e.__tag];return new J(t,e.__start,e.__key)}constructor(e,t,n){super(n);const r=j[e]||e;this.__listType=r,this.__tag=\"number\"===r?\"ol\":\"ul\",this.__start=t}getTag(){return this.__tag}setListType(e){const t=this.getWritable();t.__listType=e,t.__tag=\"number\"===e?\"ol\":\"ul\"}getListType(){return this.__listType}getStart(){return this.__start}createDOM(e,t){const n=this.__tag,r=document.createElement(n);return 1!==this.__start&&r.setAttribute(\"start\",String(this.__start)),r.__lexicalListType=this.__listType,z(r,e.theme,this),r}updateDOM(e,t,n){return e.__tag!==this.__tag||(z(t,n.theme,this),!1)}static transform(){return e=>{H(e)||y(163),function(e){const t=e.getNextSibling();H(t)&&e.getListType()===t.getListType()&&L(e,t)}(e),function(e){const t=\"check\"!==e.getListType();let n=e.getStart();for(const r of e.getChildren())V(r)&&(r.getValue()!==n&&r.setValue(n),t&&null!=r.getLatest().__checked&&r.setChecked(void 0),H(r.getFirstChild())||n++)}(e)}}static importDOM(){return{ol:()=>({conversion:$,priority:0}),ul:()=>({conversion:$,priority:0})}}static importJSON(e){const t=q(e.listType,e.start);return t.setFormat(e.format),t.setIndent(e.indent),t.setDirection(e.direction),t}exportDOM(e){const t=this.createDOM(e._config,e);return t&&r(t)&&(1!==this.__start&&t.setAttribute(\"start\",String(this.__start)),\"check\"===this.__listType&&t.setAttribute(\"__lexicalListType\",\"check\")),{element:t}}exportJSON(){return{...super.exportJSON(),listType:this.getListType(),start:this.getStart(),tag:this.getTag(),type:\"list\",version:1}}canBeEmpty(){return!1}canIndent(){return!1}append(...e){for(let t=0;t<e.length;t++){const n=e[t];if(V(n))super.append(n);else{const e=W();if(H(n))e.append(n);else if(l(n))if(n.isInline())e.append(n);else{const t=d(n.getTextContent());e.append(t)}else e.append(n);super.append(e)}}return this}extractWithChild(e){return V(e)}}function z(e,r,i){const s=[],o=[],c=r.list;if(void 0!==c){const e=c[`${i.__tag}Depth`]||[],t=C(i)-1,n=t%e.length,r=e[n],l=c[i.__tag];let a;const h=c.nested,u=c.checklist;if(void 0!==h&&h.list&&(a=h.list),void 0!==l&&s.push(l),void 0!==u&&\"check\"===i.__listType&&s.push(u),void 0!==r){s.push(...w(r));for(let t=0;t<e.length;t++)t!==n&&o.push(i.__tag+t)}if(void 0!==a){const e=w(a);t>1?s.push(...e):o.push(...e)}}o.length>0&&t(e,...o),s.length>0&&n(e,...s)}function U(e){const t=[];for(let n=0;n<e.length;n++){const r=e[n];if(V(r)){t.push(r);const e=r.getChildren();e.length>1&&e.forEach((e=>{H(e)&&t.push(S(e))}))}else t.push(S(r))}return t}function $(e){const t=e.nodeName.toLowerCase();let n=null;if(\"ol\"===t){n=q(\"number\",e.start)}else\"ul\"===t&&(n=function(e){if(\"check\"===e.getAttribute(\"__lexicallisttype\")||e.classList.contains(\"contains-task-list\"))return!0;for(const t of e.childNodes)if(r(t)&&t.hasAttribute(\"aria-checked\"))return!0;return!1}(e)?q(\"check\"):q(\"bullet\"));return{after:U,node:n}}const j={ol:\"number\",ul:\"bullet\"};function q(e,t=1){return f(new J(e,t))}function H(e){return e instanceof J}const G=p(\"INSERT_UNORDERED_LIST_COMMAND\"),Q=p(\"INSERT_ORDERED_LIST_COMMAND\"),X=p(\"INSERT_CHECK_LIST_COMMAND\"),Y=p(\"REMOVE_LIST_COMMAND\");function Z(e){return i(e.registerCommand(Q,(()=>(A(e,\"number\"),!0)),_),e.registerCommand(G,(()=>(A(e,\"bullet\"),!0)),_),e.registerCommand(Y,(()=>(O(e),!0)),_),e.registerCommand(m,(()=>!!F()),_))}export{W as $createListItemNode,q as $createListNode,C as $getListDepth,F as $handleListInsertParagraph,V as $isListItemNode,H as $isListNode,X as INSERT_CHECK_LIST_COMMAND,Q as INSERT_ORDERED_LIST_COMMAND,G as INSERT_UNORDERED_LIST_COMMAND,I as ListItemNode,J as ListNode,Y as REMOVE_LIST_COMMAND,A as insertList,Z as registerList,O as removeList};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{createContext as e,useContext as n}from\"react\";function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t=r((function(e){const n=new URLSearchParams;n.append(\"code\",e);for(let e=1;e<arguments.length;e++)n.append(\"v\",arguments[e]);throw Error(`Minified Lexical error #${e}; visit https://lexical.dev/docs/error?${n} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));const l=e(null);function o(e,n){let r=null;return null!=e&&(r=e[1]),{getTheme:function(){return null!=n?n:null!=r?r.getTheme():null}}}function u(){const e=n(l);return null==e&&t(8),e}export{l as LexicalComposerContext,o as createLexicalComposerContext,u as useLexicalComposerContext};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{useEffect as t}from\"react\";function o({defaultSelection:o}){const[l]=e();return t((()=>{l.focus((()=>{const e=document.activeElement,t=l.getRootElement();null===t||null!==e&&t.contains(e)||t.focus({preventScroll:!0})}),{defaultSelection:o})}),[o,l]),null}export{o as AutoFocusPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{AutoLinkNode as t,$isAutoLinkNode as e,$isLinkNode as n,TOGGLE_LINK_COMMAND as r,$createAutoLinkNode as l}from\"@lexical/link\";import{useLexicalComposerContext as o}from\"@lexical/react/LexicalComposerContext\";import{mergeRegister as i}from\"@lexical/utils\";import{TextNode as s,$getSelection as u,$isRangeSelection as g,COMMAND_PRIORITY_LOW as c,$isTextNode as a,$isElementNode as f,$isLineBreakNode as h,$createTextNode as x,$isNodeSelection as p}from\"lexical\";import{useEffect as d}from\"react\";function m(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var T=m((function(t){const e=new URLSearchParams;e.append(\"code\",t);for(let t=1;t<arguments.length;t++)e.append(\"v\",arguments[t]);throw Error(`Minified Lexical error #${t}; visit https://lexical.dev/docs/error?${e} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function C(t,e=(t=>t)){return n=>{const r=t.exec(n);return null===r?null:{index:r.index,length:r[0].length,text:r[0],url:e(r[0])}}}function b(t,e){for(let n=0;n<e.length;n++){const r=e[n](t);if(r)return r}return null}const v=/[.,;\\s]/;function S(t){return v.test(t)}function U(t){return S(t[t.length-1])}function L(t){return S(t[0])}function R(t){let e=t.getPreviousSibling();return f(e)&&(e=e.getLastDescendant()),null===e||h(e)||a(e)&&U(e.getTextContent())}function k(t){let e=t.getNextSibling();return f(e)&&(e=e.getFirstDescendant()),null===e||h(e)||a(e)&&L(e.getTextContent())}function y(t,e,n,r){if(!(t>0?S(n[t-1]):R(r[0])))return!1;return e<n.length?S(n[e]):k(r[r.length-1])}function D(t,e,n){const r=[],l=[],o=[];let i=0,s=0;const u=[...t];for(;u.length>0;){const t=u[0],g=t.getTextContent().length,c=s;s+g<=e?(r.push(t),i+=g):c>=n?o.push(t):l.push(t),s+=g,u.shift()}return[i,r,l,o]}function N(t,e,n,r){const o=l(r.url,r.attributes);if(1===t.length){let l,i=t[0];0===e?[l,i]=i.splitText(n):[,l,i]=i.splitText(e,n);const s=x(r.text);return s.setFormat(l.getFormat()),s.setDetail(l.getDetail()),s.setStyle(l.getStyle()),o.append(s),l.replace(o),i}if(t.length>1){const r=t[0];let l,i=r.getTextContent().length;0===e?l=r:[,l]=r.splitText(e);const s=[];let c;for(let e=1;e<t.length;e++){const r=t[e],l=r.getTextContent().length,o=i;if(o<n)if(i+l<=n)s.push(r);else{const[t,e]=r.splitText(n-o);s.push(t),c=e}i+=l}const f=u(),h=f?f.getNodes().find(a):void 0,d=x(l.getTextContent());return d.setFormat(l.getFormat()),d.setDetail(l.getDetail()),d.setStyle(l.getStyle()),o.append(d,...s),h&&h===l&&(g(f)?d.select(f.anchor.offset,f.focus.offset):p(f)&&d.select(0,d.getTextContent().length)),l.replace(o),c}}function P(t,e,n){const r=t.getChildren(),l=r.length;for(let e=0;e<l;e++){const l=r[e];if(!a(l)||!l.isSimpleText())return I(t),void n(null,t.getURL())}const o=t.getTextContent(),i=b(o,e);if(null===i||i.text!==o)return I(t),void n(null,t.getURL());if(!R(t)||!k(t))return I(t),void n(null,t.getURL());const s=t.getURL();if(s!==i.url&&(t.setURL(i.url),n(i.url,s)),i.attributes){const e=t.getRel();e!==i.attributes.rel&&(t.setRel(i.attributes.rel||null),n(i.attributes.rel||null,e));const r=t.getTarget();r!==i.attributes.target&&(t.setTarget(i.attributes.target||null),n(i.attributes.target||null,r))}}function I(t){const e=t.getChildren();for(let n=e.length-1;n>=0;n--)t.insertAfter(e[n]);return t.remove(),e.map((t=>t.getLatest()))}function w(l,o,f){d((()=>{l.hasNodes([t])||T(77);const h=(t,e)=>{f&&f(t,e)};return i(l.registerNodeTransform(s,(t=>{const r=t.getParentOrThrow(),l=t.getPreviousSibling();if(e(r)&&!r.getIsUnlinked())P(r,o,h);else if(!n(r)){if(t.isSimpleText()&&(L(t.getTextContent())||!e(l))){const e=function(t){const e=[t];let n=t.getNextSibling();for(;null!==n&&a(n)&&n.isSimpleText()&&(e.push(n),!/[\\s]/.test(n.getTextContent()));)n=n.getNextSibling();return e}(t);!function(t,e,n){let r=[...t];const l=r.map((t=>t.getTextContent())).join(\"\");let o,i=l,s=0;for(;(o=b(i,e))&&null!==o;){const t=o.index,e=t+o.length;if(y(s+t,s+e,l,r)){const[l,,i,u]=D(r,s+t,s+e),g=N(i,s+t-l,s+e-l,o);r=g?[g,...u]:u,n(o.url,null),s=0}else s+=e;i=i.substring(e)}}(e,o,h)}!function(t,n,r){const l=t.getPreviousSibling(),o=t.getNextSibling(),i=t.getTextContent();var s;!e(l)||l.getIsUnlinked()||L(i)&&(s=i,!(l.isEmailURI()?/^\\.[a-zA-Z]{2,}/.test(s):/^\\.[a-zA-Z0-9]{1,}/.test(s)))||(l.append(t),P(l,n,r),r(null,l.getURL())),!e(o)||o.getIsUnlinked()||U(i)||(I(o),P(o,n,r),r(null,o.getURL()))}(t,o,h)}})),l.registerCommand(r,(t=>{const n=u();if(null!==t||!g(n))return!1;return n.extract().forEach((t=>{const n=t.getParent();if(e(n))return n.setIsUnlinked(!n.getIsUnlinked()),n.markDirty(),!0})),!1}),c))}),[l,o,f])}function F({matchers:t,onChange:e}){const[n]=o();return w(n,t,e),null}export{F as AutoLinkPlugin,C as createLinkMatcherWithRegExp};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{createLexicalComposerContext as e,LexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import{createEditor as o,$getRoot as n,$createParagraphNode as i,$getSelection as r}from\"lexical\";import{useLayoutEffect as a,useEffect as c,useMemo as l}from\"react\";import{jsx as d}from\"react/jsx-runtime\";const s=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,m=s?a:c,u={tag:\"history-merge\"};function p({initialConfig:a,children:c}){const p=l((()=>{const{theme:t,namespace:c,nodes:l,onError:d,editorState:m,html:p}=a,f=e(null,t),E=o({editable:a.editable,html:p,namespace:c,nodes:l,onError:e=>d(e,E),theme:t});return function(e,t){if(null===t)return;if(void 0===t)e.update((()=>{const t=n();if(t.isEmpty()){const o=i();t.append(o);const n=s?document.activeElement:null;(null!==r()||null!==n&&n===e.getRootElement())&&o.select()}}),u);else if(null!==t)switch(typeof t){case\"string\":{const o=e.parseEditorState(t);e.setEditorState(o,u);break}case\"object\":e.setEditorState(t,u);break;case\"function\":e.update((()=>{n().isEmpty()&&t(e)}),u)}}(E,m),[E,f]}),[]);return m((()=>{const e=a.editable,[t]=p;t.setEditable(void 0===e||e)}),[]),d(t.Provider,{value:p,children:c})}export{p as LexicalComposer};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$getRoot as t,$isDecoratorNode as e,$isElementNode as n,$isParagraphNode as r,$isTextNode as i,TextNode as o,$createTextNode as l}from\"lexical\";function s(){return t().getTextContent()}function u(t,e=!0){if(t)return!1;let n=s();return e&&(n=n.trim()),\"\"===n}function f(t,e){return()=>u(t,e)}function c(o){if(!u(o,!1))return!1;const l=t().getChildren(),s=l.length;if(s>1)return!1;for(let t=0;t<s;t++){const o=l[t];if(e(o))return!1;if(n(o)){if(!r(o))return!1;if(0!==o.__indent)return!1;const e=o.getChildren(),n=e.length;for(let r=0;r<n;r++){const n=e[t];if(!i(n))return!1}}}return!0}function g(t){return()=>c(t)}function a(t,e){let r=t.getFirstChild(),o=0;t:for(;null!==r;){if(n(r)){const t=r.getFirstChild();if(null!==t){r=t;continue}}else if(i(r)){const t=r.getTextContentSize();if(o+t>e)return{node:r,offset:e-o};o+=t}const t=r.getNextSibling();if(null!==t){r=t;continue}let l=r.getParent();for(;null!==l;){const t=l.getNextSibling();if(null!==t){r=t;continue t}l=l.getParent()}break}return null}function d(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var x=d((function(t){const e=new URLSearchParams;e.append(\"code\",t);for(let t=1;t<arguments.length;t++)e.append(\"v\",arguments[t]);throw Error(`Minified Lexical error #${t}; visit https://lexical.dev/docs/error?${e} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function T(t,e,n,r){const s=t=>t instanceof n,u=t=>{const e=l(t.getTextContent());e.setFormat(t.getFormat()),t.replace(e)};return[t.registerNodeTransform(o,(t=>{if(!t.isSimpleText())return;let n,o=t.getPreviousSibling(),l=t.getTextContent(),f=t;if(i(o)){const n=o.getTextContent(),r=e(n+l);if(s(o)){if(null===r||0!==(t=>t.getLatest().__mode)(o))return void u(o);{const e=r.end-n.length;if(e>0){const r=n+l.slice(0,e);if(o.select(),o.setTextContent(r),e===l.length)t.remove();else{const n=l.slice(e);t.setTextContent(n)}return}}}else if(null===r||r.start<n.length)return}let c=0;for(;;){n=e(l);let t,g=null===n?\"\":l.slice(n.end);if(l=g,\"\"===g){const t=f.getNextSibling();if(i(t)){g=f.getTextContent()+t.getTextContent();const n=e(g);if(null===n)return void(s(t)?u(t):t.markDirty());if(0!==n.start)return}}if(null===n)return;if(0===n.start&&i(o)&&o.isTextEntity()){c+=n.end;continue}0===n.start?[t,f]=f.splitText(n.end):[,t,f]=f.splitText(n.start+c,n.end+c),void 0===t&&x(165,\"nodeToReplace\");const a=r(t);if(a.setFormat(t.getFormat()),t.replace(a),null==f)return;c=0,o=a}})),t.registerNodeTransform(n,(t=>{const n=t.getTextContent(),r=e(n);if(null===r||0!==r.start)return void u(t);if(n.length>r.end)return void t.splitText(r.end);const o=t.getPreviousSibling();i(o)&&o.isTextEntity()&&(u(o),u(t));const l=t.getNextSibling();i(l)&&l.isTextEntity()&&(u(l),s(t)&&u(t))}))]}export{c as $canShowPlaceholder,g as $canShowPlaceholderCurry,a as $findTextIntersectionFromCharacters,u as $isRootTextContentEmpty,f as $isRootTextContentEmptyCurry,s as $rootTextContent,T as registerLexicalTextEntity};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{useLayoutEffect as t,useEffect as i,forwardRef as a,useState as r,useCallback as n,useMemo as o}from\"react\";import{jsx as l,jsxs as d,Fragment as c}from\"react/jsx-runtime\";import{$canShowPlaceholderCurry as s}from\"@lexical/text\";import{mergeRegister as u}from\"@lexical/utils\";const m=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?t:i;function f({editor:e,ariaActiveDescendant:t,ariaAutoComplete:i,ariaControls:a,ariaDescribedBy:d,ariaErrorMessage:c,ariaExpanded:s,ariaInvalid:u,ariaLabel:f,ariaLabelledBy:b,ariaMultiline:p,ariaOwns:x,ariaRequired:E,autoCapitalize:v,className:w,id:y,role:C=\"textbox\",spellCheck:g=!0,style:h,tabIndex:L,\"data-testid\":D,...I},R){const[k,q]=r(e.isEditable()),z=n((t=>{t&&t.ownerDocument&&t.ownerDocument.defaultView?e.setRootElement(t):e.setRootElement(null)}),[e]),A=o((()=>function(...e){return t=>{e.forEach((e=>{\"function\"==typeof e?e(t):null!=e&&(e.current=t)}))}}(R,z)),[z,R]);return m((()=>(q(e.isEditable()),e.registerEditableListener((e=>{q(e)})))),[e]),l(\"div\",{\"aria-activedescendant\":k?t:void 0,\"aria-autocomplete\":k?i:\"none\",\"aria-controls\":k?a:void 0,\"aria-describedby\":d,...null!=c?{\"aria-errormessage\":c}:{},\"aria-expanded\":k&&\"combobox\"===C?!!s:void 0,...null!=u?{\"aria-invalid\":u}:{},\"aria-label\":f,\"aria-labelledby\":b,\"aria-multiline\":p,\"aria-owns\":k?x:void 0,\"aria-readonly\":!k||void 0,\"aria-required\":E,autoCapitalize:v,className:w,contentEditable:k,\"data-testid\":D,id:y,ref:A,role:k?C:void 0,spellCheck:g,style:h,tabIndex:L,...I})}const b=a(f);function p(e){return e.getEditorState().read(s(e.isComposing()))}const x=a(E);function E(t,i){const{placeholder:a,...r}=t,[n]=e();return d(c,{children:[l(b,{editor:n,...r,ref:i}),null!=a&&l(v,{editor:n,content:a})]})}function v({content:e,editor:i}){const a=function(e){const[t,i]=r((()=>p(e)));return m((()=>{function t(){const t=p(e);i(t)}return t(),u(e.registerUpdateListener((()=>{t()})),e.registerEditableListener((()=>{t()})))}),[e]),t}(i),[n,o]=r(i.isEditable());if(t((()=>(o(i.isEditable()),i.registerEditableListener((e=>{o(e)})))),[i]),!a)return null;let d=null;return\"function\"==typeof e?d=e(n):null!==e&&(d=e),null===d?null:l(\"div\",{\"aria-hidden\":!0,children:d})}export{x as ContentEditable};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport*as r from\"react\";import{jsx as e}from\"react/jsx-runtime\";function t(r,e){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,e){return r.__proto__=e,r},t(r,e)}var o={error:null},n=function(e){var n,a;function s(){for(var r,t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return(r=e.call.apply(e,[this].concat(n))||this).state=o,r.resetErrorBoundary=function(){for(var e,t=arguments.length,o=new Array(t),n=0;n<t;n++)o[n]=arguments[n];null==r.props.onReset||(e=r.props).onReset.apply(e,o),r.reset()},r}a=e,(n=s).prototype=Object.create(a.prototype),n.prototype.constructor=n,t(n,a),s.getDerivedStateFromError=function(r){return{error:r}};var l=s.prototype;return l.reset=function(){this.setState(o)},l.componentDidCatch=function(r,e){var t,o;null==(t=(o=this.props).onError)||t.call(o,r,e)},l.componentDidUpdate=function(r,e){var t,o,n,a,s=this.state.error,l=this.props.resetKeys;null!==s&&null!==e.error&&(void 0===(n=r.resetKeys)&&(n=[]),void 0===(a=l)&&(a=[]),n.length!==a.length||n.some((function(r,e){return!Object.is(r,a[e])})))&&(null==(t=(o=this.props).onResetKeysChange)||t.call(o,r.resetKeys,l),this.reset())},l.render=function(){var e=this.state.error,t=this.props,o=t.fallbackRender,n=t.FallbackComponent,a=t.fallback;if(null!==e){var s={error:e,resetErrorBoundary:this.resetErrorBoundary};if(r.isValidElement(a))return a;if(\"function\"==typeof o)return o(s);if(n)return r.createElement(n,s);throw new Error(\"react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop\")}return this.props.children},s}(r.Component);function a({children:r,onError:t}){return e(n,{fallback:e(\"div\",{style:{border:\"1px solid #f00\",color:\"#f00\",padding:\"8px\"},children:\"An error was thrown.\"}),onError:t,children:r})}export{a as LexicalErrorBoundary,a as default};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{mergeRegister as t}from\"@lexical/utils\";import{UNDO_COMMAND as e,COMMAND_PRIORITY_EDITOR as n,REDO_COMMAND as r,CLEAR_EDITOR_COMMAND as o,CLEAR_HISTORY_COMMAND as i,CAN_REDO_COMMAND as s,CAN_UNDO_COMMAND as c,$isRangeSelection as a,$isTextNode as u,$isRootNode as d}from\"lexical\";const l=0,f=1,p=2,h=0,m=1,g=2,_=3,S=4;function y(t,e,n,r,o){if(null===t||0===n.size&&0===r.size&&!o)return h;const i=e._selection,s=t._selection;if(o)return m;if(!(a(i)&&a(s)&&s.isCollapsed()&&i.isCollapsed()))return h;const c=function(t,e,n){const r=t._nodeMap,o=[];for(const t of e){const e=r.get(t);void 0!==e&&o.push(e)}for(const[t,e]of n){if(!e)continue;const n=r.get(t);void 0===n||d(n)||o.push(n)}return o}(e,n,r);if(0===c.length)return h;if(c.length>1){const n=e._nodeMap,r=n.get(i.anchor.key),o=n.get(s.anchor.key);return r&&o&&!t._nodeMap.has(r.__key)&&u(r)&&1===r.__text.length&&1===i.anchor.offset?g:h}const l=c[0],f=t._nodeMap.get(l.__key);if(!u(f)||!u(l)||f.__mode!==l.__mode)return h;const p=f.__text,y=l.__text;if(p===y)return h;const k=i.anchor,C=s.anchor;if(k.key!==C.key||\"text\"!==k.type)return h;const x=k.offset,M=C.offset,z=y.length-p.length;return 1===z&&M===x-1?g:-1===z&&M===x+1?_:-1===z&&M===x?S:h}function k(t,e){let n=Date.now(),r=h;return(o,i,s,c,d,m)=>{const g=Date.now();if(m.has(\"historic\"))return r=h,n=g,p;const _=y(o,i,c,d,t.isComposing()),S=(()=>{const S=null===s||s.editor===t,y=m.has(\"history-push\");if(!y&&S&&m.has(\"history-merge\"))return l;if(null===o)return f;const k=i._selection;if(!(c.size>0||d.size>0))return null!==k?l:p;if(!1===y&&_!==h&&_===r&&g<n+e&&S)return l;if(1===c.size){if(function(t,e,n){const r=e._nodeMap.get(t),o=n._nodeMap.get(t),i=e._selection,s=n._selection;return!(a(i)&&a(s)&&\"element\"===i.anchor.type&&\"element\"===i.focus.type&&\"text\"===s.anchor.type&&\"text\"===s.focus.type||!u(r)||!u(o)||r.__parent!==o.__parent)&&JSON.stringify(e.read((()=>r.exportJSON())))===JSON.stringify(n.read((()=>o.exportJSON())))}(Array.from(c)[0],o,i))return l}return f})();return n=g,r=_,S}}function C(t){t.undoStack=[],t.redoStack=[],t.current=null}function x(a,u,d){const l=k(a,d),h=t(a.registerCommand(e,(()=>(function(t,e){const n=e.redoStack,r=e.undoStack;if(0!==r.length){const o=e.current,i=r.pop();null!==o&&(n.push(o),t.dispatchCommand(s,!0)),0===r.length&&t.dispatchCommand(c,!1),e.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:\"historic\"})}}(a,u),!0)),n),a.registerCommand(r,(()=>(function(t,e){const n=e.redoStack,r=e.undoStack;if(0!==n.length){const o=e.current;null!==o&&(r.push(o),t.dispatchCommand(c,!0));const i=n.pop();0===n.length&&t.dispatchCommand(s,!1),e.current=i||null,i&&i.editor.setEditorState(i.editorState,{tag:\"historic\"})}}(a,u),!0)),n),a.registerCommand(o,(()=>(C(u),!1)),n),a.registerCommand(i,(()=>(C(u),a.dispatchCommand(s,!1),a.dispatchCommand(c,!1),!0)),n),a.registerUpdateListener((({editorState:t,prevEditorState:e,dirtyLeaves:n,dirtyElements:r,tags:o})=>{const i=u.current,d=u.redoStack,h=u.undoStack,m=null===i?null:i.editorState;if(null!==i&&t===m)return;const g=l(e,t,i,n,r,o);if(g===f)0!==d.length&&(u.redoStack=[],a.dispatchCommand(s,!1)),null!==i&&(h.push({...i}),a.dispatchCommand(c,!0));else if(g===p)return;u.current={editor:a,editorState:t}})));return h}function M(){return{current:null,redoStack:[],undoStack:[]}}export{M as createEmptyHistoryState,x as registerHistory};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import{createEmptyHistoryState as o,registerHistory as r}from\"@lexical/history\";export{createEmptyHistoryState}from\"@lexical/history\";import{useMemo as e,useEffect as i}from\"react\";function a({delay:a,externalHistoryState:c}){const[l]=t();return function(t,a,c=1e3){const l=e((()=>a||o()),[a]);i((()=>r(t,l,c)),[c,t,l])}(l,c,a),null}export{a as HistoryPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{LinkNode as t,TOGGLE_LINK_COMMAND as r,$toggleLink as e}from\"@lexical/link\";import{useLexicalComposerContext as o}from\"@lexical/react/LexicalComposerContext\";import{mergeRegister as i,objectKlassEquals as l}from\"@lexical/utils\";import{COMMAND_PRIORITY_LOW as n,PASTE_COMMAND as a,$getSelection as s,$isRangeSelection as m,$isElementNode as u}from\"lexical\";import{useEffect as c}from\"react\";function d({validateUrl:d,attributes:p}){const[f]=o();return c((()=>{if(!f.hasNodes([t]))throw new Error(\"LinkPlugin: LinkNode not registered on editor\");return i(f.registerCommand(r,(t=>{if(null===t)return e(t),!0;if(\"string\"==typeof t)return!(void 0!==d&&!d(t))&&(e(t,p),!0);{const{url:r,target:o,rel:i,title:l}=t;return e(r,{...p,rel:i,target:o,title:l}),!0}}),n),void 0!==d?f.registerCommand(a,(t=>{const e=s();if(!m(e)||e.isCollapsed()||!l(t,ClipboardEvent))return!1;const o=t;if(null===o.clipboardData)return!1;const i=o.clipboardData.getData(\"text\");return!!d(i)&&(!e.getNodes().some((t=>u(t)))&&(f.dispatchCommand(r,{...p,url:i}),t.preventDefault(),!0))}),n):()=>{})}),[f,d,p]),null}export{d as LinkPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{registerList as o,ListNode as t,ListItemNode as r}from\"@lexical/list\";import{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{useEffect as i}from\"react\";function n(){const[n]=e();return i((()=>{if(!n.hasNodes([t,r]))throw new Error(\"ListPlugin: ListNode and/or ListItemNode not registered on editor\")}),[n]),function(t){i((()=>o(t)),[t])}(n),null}export{n as ListPlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{useLayoutEffect as t,useEffect as o}from\"react\";const r=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?t:o;function i({ignoreHistoryMergeTagChange:t=!0,ignoreSelectionChange:o=!1,onChange:i}){const[n]=e();return r((()=>{if(i)return n.registerUpdateListener((({editorState:e,dirtyElements:r,dirtyLeaves:a,prevEditorState:d,tags:s})=>{o&&0===r.size&&0===a.size||t&&s.has(\"history-merge\")||d.isEmpty()||i(e,n,s)}))}),[n,t,o,i]),null}export{i as OnChangePlugin};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as e}from\"@lexical/react/LexicalComposerContext\";import{useLayoutEffect as t,useEffect as n,useMemo as i,useState as r,useRef as o}from\"react\";const u=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?t:n;function c(e){return{initialValueFn:()=>e.isEditable(),subscribe:t=>e.registerEditableListener(t)}}function a(){return function(t){const[n]=e(),c=i((()=>t(n)),[n,t]),[a,l]=r((()=>c.initialValueFn())),d=o(a);return u((()=>{const{initialValueFn:e,subscribe:t}=c,n=e();return d.current!==n&&(d.current=n,l(n)),t((e=>{d.current=e,l(e)}))}),[c,t]),a}(c)}export{a as default,a as useLexicalEditable};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$getSelection as e,$isRangeSelection as t,$isTextNode as n}from\"lexical\";function o(o){const i=window.location.origin,a=a=>{if(a.origin!==i)return;const r=o.getRootElement();if(document.activeElement!==r)return;const s=a.data;if(\"string\"==typeof s){let i;try{i=JSON.parse(s)}catch(e){return}if(i&&\"nuanria_messaging\"===i.protocol&&\"request\"===i.type){const r=i.payload;if(r&&\"makeChanges\"===r.functionId){const i=r.args;if(i){const[r,s,c,g,d,f]=i;o.update((()=>{const o=e();if(t(o)){const e=o.anchor;let t=e.getNode(),i=0,f=0;if(n(t)&&r>=0&&s>=0&&(i=r,f=r+s,o.setTextNodeRange(t,i,t,f)),i===f&&\"\"===c||(o.insertRawText(c),t=e.getNode()),n(t)){i=g,f=g+d;const e=t.getTextContentSize();i=i>e?e:i,f=f>e?e:f,o.setTextNodeRange(t,i,t,f)}a.stopImmediatePropagation()}}))}}}}};return window.addEventListener(\"message\",a,!0),()=>{window.removeEventListener(\"message\",a,!0)}}export{o as registerDragonSupport};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$generateHtmlFromNodes as t,$generateNodesFromDOM as e}from\"@lexical/html\";import{$addNodeStyle as n,$sliceSelectedTextNodeContent as o}from\"@lexical/selection\";import{objectKlassEquals as r}from\"@lexical/utils\";import{$isRangeSelection as l,$getSelection as i,$createTabNode as s,SELECTION_INSERT_CLIPBOARD_NODES_COMMAND as c,$getRoot as a,$parseSerializedNode as u,$isTextNode as d,getDOMSelection as f,COPY_COMMAND as p,COMMAND_PRIORITY_CRITICAL as m,isSelectionWithinEditor as h,$getEditor as g,$isElementNode as x,$cloneWithProperties as w}from\"lexical\";function y(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var T=y((function(t){const e=new URLSearchParams;e.append(\"code\",t);for(let t=1;t<arguments.length;t++)e.append(\"v\",arguments[t]);throw Error(`Minified Lexical error #${t}; visit https://lexical.dev/docs/error?${e} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)}));function v(e,n=i()){return null==n&&T(166),l(n)&&n.isCollapsed()||0===n.getNodes().length?\"\":t(e,n)}function C(t,e=i()){return null==e&&T(166),l(e)&&e.isCollapsed()||0===e.getNodes().length?null:JSON.stringify(A(t,e))}function D(t,e){const n=t.getData(\"text/plain\")||t.getData(\"text/uri-list\");null!=n&&e.insertRawText(n)}function N(t,n,o){const r=t.getData(\"application/x-lexical-editor\");if(r)try{const t=JSON.parse(r);if(t.namespace===o._config.namespace&&Array.isArray(t.nodes)){return _(o,R(t.nodes),n)}}catch(t){}const c=t.getData(\"text/html\");if(c)try{const t=(new DOMParser).parseFromString(function(t){if(window.trustedTypes&&window.trustedTypes.createPolicy){return window.trustedTypes.createPolicy(\"lexical\",{createHTML:t=>t}).createHTML(t)}return t}(c),\"text/html\");return _(o,e(o,t),n)}catch(t){}const a=t.getData(\"text/plain\")||t.getData(\"text/uri-list\");if(null!=a)if(l(n)){const t=a.split(/(\\r?\\n|\\t)/);\"\"===t[t.length-1]&&t.pop();for(let e=0;e<t.length;e++){const n=i();if(l(n)){const o=t[e];\"\\n\"===o||\"\\r\\n\"===o?n.insertParagraph():\"\\t\"===o?n.insertNodes([s()]):n.insertText(o)}}}else n.insertRawText(a)}function _(t,e,n){t.dispatchCommand(c,{nodes:e,selection:n})||n.insertNodes(e)}function P(t,e,n,r=[]){let l=null===e||n.isSelected(e);const i=x(n)&&n.excludeFromCopy(\"html\");let s=n;if(null!==e){let t=w(n);t=d(t)&&null!==e?o(e,t):t,s=t}const c=x(s)?s.getChildren():[],a=function(t){const e=t.exportJSON(),n=t.constructor;if(e.type!==n.getType()&&T(58,n.name),x(t)){const t=e.children;Array.isArray(t)||T(59,n.name)}return e}(s);if(d(s)){const t=s.__text;t.length>0?a.text=t:l=!1}for(let o=0;o<c.length;o++){const r=c[o],i=P(t,e,r,a.children);!l&&x(n)&&i&&n.extractWithChild(r,e,\"clone\")&&(l=!0)}if(l&&!i)r.push(a);else if(Array.isArray(a.children))for(let t=0;t<a.children.length;t++){const e=a.children[t];r.push(e)}return l}function A(t,e){const n=[],o=a().getChildren();for(let r=0;r<o.length;r++){P(t,e,o[r],n)}return{namespace:t._config.namespace,nodes:n}}function R(t){const e=[];for(let o=0;o<t.length;o++){const r=t[o],l=u(r);d(l)&&n(l),e.push(l)}return e}let S=null;async function O(t,e,n){if(null!==S)return!1;if(null!==e)return new Promise(((o,r)=>{t.update((()=>{o(E(t,e,n))}))}));const o=t.getRootElement(),l=null==t._window?window.document:t._window.document,i=f(t._window);if(null===o||null===i)return!1;const s=l.createElement(\"span\");s.style.cssText=\"position: fixed; top: -1000px;\",s.append(l.createTextNode(\"#\")),o.append(s);const c=new Range;return c.setStart(s,0),c.setEnd(s,1),i.removeAllRanges(),i.addRange(c),new Promise(((e,o)=>{const i=t.registerCommand(p,(o=>(r(o,ClipboardEvent)&&(i(),null!==S&&(window.clearTimeout(S),S=null),e(E(t,o,n))),!0)),m);S=window.setTimeout((()=>{i(),S=null,e(!1)}),50),l.execCommand(\"copy\"),s.remove()}))}function E(t,e,n){if(void 0===n){const e=f(t._window);if(!e)return!1;const o=e.anchorNode,r=e.focusNode;if(null!==o&&null!==r&&!h(t,o,r))return!1;const l=i();if(null===l)return!1;n=L(l)}e.preventDefault();const o=e.clipboardData;return null!==o&&(b(o,n),!0)}const M=[[\"text/html\",v],[\"application/x-lexical-editor\",C]];function L(t=i()){const e={\"text/plain\":t?t.getTextContent():\"\"};if(t){const n=g();for(const[o,r]of M){const l=r(n,t);null!==l&&(e[o]=l)}}return e}function b(t,e){for(const n in e){const o=e[n];void 0!==o&&t.setData(n,o)}}export{A as $generateJSONFromSelectedNodes,R as $generateNodesFromSerializedNodes,L as $getClipboardDataFromSelection,v as $getHtmlContent,C as $getLexicalContent,D as $insertDataTransferForPlainText,N as $insertDataTransferForRichText,_ as $insertGeneratedNodes,O as copyToClipboard,b as setLexicalClipboardDataTransfer};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{$insertDataTransferForRichText as t,copyToClipboard as e}from\"@lexical/clipboard\";import{$shouldOverrideDefaultCharacterSelection as n,$moveCharacter as r}from\"@lexical/selection\";import{addClassNamesToElement as o,isHTMLElement as i,objectKlassEquals as s,mergeRegister as c,$findMatchingParent as a,$getNearestBlockElementAncestorOrThrow as u}from\"@lexical/utils\";import{createCommand as l,ElementNode as d,$createParagraphNode as m,$applyNodeReplacement as f,setNodeIndentFromDOM as g,CLICK_COMMAND as p,$getSelection as h,$isNodeSelection as C,DELETE_CHARACTER_COMMAND as v,$isRangeSelection as y,COMMAND_PRIORITY_EDITOR as D,DELETE_WORD_COMMAND as x,DELETE_LINE_COMMAND as w,CONTROLLED_TEXT_INSERTION_COMMAND as E,REMOVE_TEXT_COMMAND as N,FORMAT_TEXT_COMMAND as I,FORMAT_ELEMENT_COMMAND as O,$isElementNode as T,INSERT_LINE_BREAK_COMMAND as A,INSERT_PARAGRAPH_COMMAND as P,INSERT_TAB_COMMAND as S,$insertNodes as _,$createTabNode as K,INDENT_CONTENT_COMMAND as M,OUTDENT_CONTENT_COMMAND as b,KEY_ARROW_UP_COMMAND as F,$getAdjacentNode as k,$isDecoratorNode as J,KEY_ARROW_DOWN_COMMAND as L,KEY_ARROW_LEFT_COMMAND as R,KEY_ARROW_RIGHT_COMMAND as q,KEY_BACKSPACE_COMMAND as W,$isRootNode as z,KEY_DELETE_COMMAND as X,KEY_ENTER_COMMAND as Y,KEY_ESCAPE_COMMAND as B,DROP_COMMAND as G,$getNearestNodeFromDOMNode as V,$createRangeSelection as j,$isTextNode as H,$normalizeSelection__EXPERIMENTAL as Q,$setSelection as U,DRAGSTART_COMMAND as Z,DRAGOVER_COMMAND as $,SELECT_ALL_COMMAND as tt,$selectAll as et,COPY_COMMAND as nt,CUT_COMMAND as rt,PASTE_COMMAND as ot,isSelectionCapturedInDecoratorInput as it,$getRoot as st}from\"lexical\";function ct(t,e){if(void 0!==document.caretRangeFromPoint){const n=document.caretRangeFromPoint(t,e);return null===n?null:{node:n.startContainer,offset:n.startOffset}}if(\"undefined\"!==document.caretPositionFromPoint){const n=document.caretPositionFromPoint(t,e);return null===n?null:{node:n.offsetNode,offset:n.offset}}return null}const at=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,ut=at&&\"documentMode\"in document?document.documentMode:null,lt=!(!at||!(\"InputEvent\"in window)||ut)&&\"getTargetRanges\"in new window.InputEvent(\"input\"),dt=at&&/Version\\/[\\d.]+.*Safari/.test(navigator.userAgent),mt=at&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,ft=at&&/^(?=.*Chrome).*/i.test(navigator.userAgent),gt=at&&/AppleWebKit\\/[\\d.]+/.test(navigator.userAgent)&&!ft,pt=l(\"DRAG_DROP_PASTE_FILE\");class ht extends d{static getType(){return\"quote\"}static clone(t){return new ht(t.__key)}constructor(t){super(t)}createDOM(t){const e=document.createElement(\"blockquote\");return o(e,t.theme.quote),e}updateDOM(t,e){return!1}static importDOM(){return{blockquote:t=>({conversion:wt,priority:0})}}exportDOM(t){const{element:e}=super.exportDOM(t);if(e&&i(e)){this.isEmpty()&&e.append(document.createElement(\"br\"));const t=this.getFormatType();e.style.textAlign=t;const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){const e=Ct();return e.setFormat(t.format),e.setIndent(t.indent),e.setDirection(t.direction),e}exportJSON(){return{...super.exportJSON(),type:\"quote\"}}insertNewAfter(t,e){const n=m(),r=this.getDirection();return n.setDirection(r),this.insertAfter(n,e),n}collapseAtStart(){const t=m();return this.getChildren().forEach((e=>t.append(e))),this.replace(t),!0}canMergeWhenEmpty(){return!0}}function Ct(){return f(new ht)}function vt(t){return t instanceof ht}class yt extends d{static getType(){return\"heading\"}static clone(t){return new yt(t.__tag,t.__key)}constructor(t,e){super(e),this.__tag=t}getTag(){return this.__tag}createDOM(t){const e=this.__tag,n=document.createElement(e),r=t.theme.heading;if(void 0!==r){const t=r[e];o(n,t)}return n}updateDOM(t,e){return!1}static importDOM(){return{h1:t=>({conversion:xt,priority:0}),h2:t=>({conversion:xt,priority:0}),h3:t=>({conversion:xt,priority:0}),h4:t=>({conversion:xt,priority:0}),h5:t=>({conversion:xt,priority:0}),h6:t=>({conversion:xt,priority:0}),p:t=>{const e=t.firstChild;return null!==e&&Dt(e)?{conversion:()=>({node:null}),priority:3}:null},span:t=>Dt(t)?{conversion:t=>({node:Et(\"h1\")}),priority:3}:null}}exportDOM(t){const{element:e}=super.exportDOM(t);if(e&&i(e)){this.isEmpty()&&e.append(document.createElement(\"br\"));const t=this.getFormatType();e.style.textAlign=t;const n=this.getDirection();n&&(e.dir=n)}return{element:e}}static importJSON(t){const e=Et(t.tag);return e.setFormat(t.format),e.setIndent(t.indent),e.setDirection(t.direction),e}exportJSON(){return{...super.exportJSON(),tag:this.getTag(),type:\"heading\",version:1}}insertNewAfter(t,e=!0){const n=t?t.anchor.offset:0,r=this.getLastDescendant(),o=!r||t&&t.anchor.key===r.getKey()&&n===r.getTextContentSize()||!t?m():Et(this.getTag()),i=this.getDirection();if(o.setDirection(i),this.insertAfter(o,e),0===n&&!this.isEmpty()&&t){const t=m();t.select(),this.replace(t,!0)}return o}collapseAtStart(){const t=this.isEmpty()?m():Et(this.getTag());return this.getChildren().forEach((e=>t.append(e))),this.replace(t),!0}extractWithChild(){return!0}}function Dt(t){return\"span\"===t.nodeName.toLowerCase()&&\"26pt\"===t.style.fontSize}function xt(t){const e=t.nodeName.toLowerCase();let n=null;return\"h1\"!==e&&\"h2\"!==e&&\"h3\"!==e&&\"h4\"!==e&&\"h5\"!==e&&\"h6\"!==e||(n=Et(e),null!==t.style&&(g(t,n),n.setFormat(t.style.textAlign))),{node:n}}function wt(t){const e=Ct();return null!==t.style&&(e.setFormat(t.style.textAlign),g(t,e)),{node:e}}function Et(t){return f(new yt(t))}function Nt(t){return t instanceof yt}function It(t){let e=null;if(s(t,DragEvent)?e=t.dataTransfer:s(t,ClipboardEvent)&&(e=t.clipboardData),null===e)return[!1,[],!1];const n=e.types,r=n.includes(\"Files\"),o=n.includes(\"text/html\")||n.includes(\"text/plain\");return[r,Array.from(e.files),o]}function Ot(t){const e=h();if(!y(e))return!1;const n=new Set,r=e.getNodes();for(let e=0;e<r.length;e++){const o=r[e],i=o.getKey();if(n.has(i))continue;const s=a(o,(t=>T(t)&&!t.isInline()));if(null===s)continue;const c=s.getKey();s.canIndent()&&!n.has(c)&&(n.add(c),t(s))}return n.size>0}function Tt(t){const e=V(t);return J(e)}function At(o){return c(o.registerCommand(p,(t=>{const e=h();return!!C(e)&&(e.clear(),!0)}),0),o.registerCommand(v,(t=>{const e=h();return!!y(e)&&(e.deleteCharacter(t),!0)}),D),o.registerCommand(x,(t=>{const e=h();return!!y(e)&&(e.deleteWord(t),!0)}),D),o.registerCommand(w,(t=>{const e=h();return!!y(e)&&(e.deleteLine(t),!0)}),D),o.registerCommand(E,(e=>{const n=h();if(\"string\"==typeof e)null!==n&&n.insertText(e);else{if(null===n)return!1;const r=e.dataTransfer;if(null!=r)t(r,n,o);else if(y(n)){const t=e.data;return t&&n.insertText(t),!0}}return!0}),D),o.registerCommand(N,(()=>{const t=h();return!!y(t)&&(t.removeText(),!0)}),D),o.registerCommand(I,(t=>{const e=h();return!!y(e)&&(e.formatText(t),!0)}),D),o.registerCommand(O,(t=>{const e=h();if(!y(e)&&!C(e))return!1;const n=e.getNodes();for(const e of n){const n=a(e,(t=>T(t)&&!t.isInline()));null!==n&&n.setFormat(t)}return!0}),D),o.registerCommand(A,(t=>{const e=h();return!!y(e)&&(e.insertLineBreak(t),!0)}),D),o.registerCommand(P,(()=>{const t=h();return!!y(t)&&(t.insertParagraph(),!0)}),D),o.registerCommand(S,(()=>(_([K()]),!0)),D),o.registerCommand(M,(()=>Ot((t=>{const e=t.getIndent();t.setIndent(e+1)}))),D),o.registerCommand(b,(()=>Ot((t=>{const e=t.getIndent();e>0&&t.setIndent(e-1)}))),D),o.registerCommand(F,(t=>{const e=h();if(C(e)&&!Tt(t.target)){const t=e.getNodes();if(t.length>0)return t[0].selectPrevious(),!0}else if(y(e)){const n=k(e.focus,!0);if(!t.shiftKey&&J(n)&&!n.isIsolated()&&!n.isInline())return n.selectPrevious(),t.preventDefault(),!0}return!1}),D),o.registerCommand(L,(t=>{const e=h();if(C(e)){const t=e.getNodes();if(t.length>0)return t[0].selectNext(0,0),!0}else if(y(e)){if(function(t){const e=t.focus;return\"root\"===e.key&&e.offset===st().getChildrenSize()}(e))return t.preventDefault(),!0;const n=k(e.focus,!1);if(!t.shiftKey&&J(n)&&!n.isIsolated()&&!n.isInline())return n.selectNext(),t.preventDefault(),!0}return!1}),D),o.registerCommand(R,(t=>{const e=h();if(C(e)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),n[0].selectPrevious(),!0}if(!y(e))return!1;if(n(e,!0)){const n=t.shiftKey;return t.preventDefault(),r(e,n,!0),!0}return!1}),D),o.registerCommand(q,(t=>{const e=h();if(C(e)&&!Tt(t.target)){const n=e.getNodes();if(n.length>0)return t.preventDefault(),n[0].selectNext(0,0),!0}if(!y(e))return!1;const o=t.shiftKey;return!!n(e,!1)&&(t.preventDefault(),r(e,o,!1),!0)}),D),o.registerCommand(W,(t=>{if(Tt(t.target))return!1;const e=h();if(!y(e))return!1;const{anchor:n}=e,r=n.getNode();if(e.isCollapsed()&&0===n.offset&&!z(r)){if(u(r).getIndent()>0)return t.preventDefault(),o.dispatchCommand(b,void 0)}return(!mt||\"ko-KR\"!==navigator.language)&&(t.preventDefault(),o.dispatchCommand(v,!0))}),D),o.registerCommand(X,(t=>{if(Tt(t.target))return!1;const e=h();return!!y(e)&&(t.preventDefault(),o.dispatchCommand(v,!1))}),D),o.registerCommand(Y,(t=>{const e=h();if(!y(e))return!1;if(null!==t){if((mt||dt||gt)&&lt)return!1;if(t.preventDefault(),t.shiftKey)return o.dispatchCommand(A,!1)}return o.dispatchCommand(P,void 0)}),D),o.registerCommand(B,(()=>{const t=h();return!!y(t)&&(o.blur(),!0)}),D),o.registerCommand(G,(t=>{const[,e]=It(t);if(e.length>0){const n=ct(t.clientX,t.clientY);if(null!==n){const{offset:t,node:r}=n,i=V(r);if(null!==i){const e=j();if(H(i))e.anchor.set(i.getKey(),t,\"text\"),e.focus.set(i.getKey(),t,\"text\");else{const t=i.getParentOrThrow().getKey(),n=i.getIndexWithinParent()+1;e.anchor.set(t,n,\"element\"),e.focus.set(t,n,\"element\")}const n=Q(e);U(n)}o.dispatchCommand(pt,e)}return t.preventDefault(),!0}const n=h();return!!y(n)}),D),o.registerCommand(Z,(t=>{const[e]=It(t),n=h();return!(e&&!y(n))}),D),o.registerCommand($,(t=>{const[e]=It(t),n=h();if(e&&!y(n))return!1;const r=ct(t.clientX,t.clientY);if(null!==r){const e=V(r.node);J(e)&&t.preventDefault()}return!0}),D),o.registerCommand(tt,(()=>(et(),!0)),D),o.registerCommand(nt,(t=>(e(o,s(t,ClipboardEvent)?t:null),!0)),D),o.registerCommand(rt,(t=>(async function(t,n){await e(n,s(t,ClipboardEvent)?t:null),n.update((()=>{const t=h();y(t)?t.removeText():C(t)&&t.getNodes().forEach((t=>t.remove()))}))}(t,o),!0)),D),o.registerCommand(ot,(e=>{const[,n,r]=It(e);if(n.length>0&&!r)return o.dispatchCommand(pt,n),!0;if(it(e.target))return!1;return null!==h()&&(function(e,n){e.preventDefault(),n.update((()=>{const r=h(),o=s(e,InputEvent)||s(e,KeyboardEvent)?null:e.clipboardData;null!=o&&null!==r&&t(o,r,n)}),{tag:\"paste\"})}(e,o),!0)}),D))}export{Et as $createHeadingNode,Ct as $createQuoteNode,Nt as $isHeadingNode,vt as $isQuoteNode,pt as DRAG_DROP_PASTE,yt as HeadingNode,ht as QuoteNode,It as eventFiles,At as registerRichText};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport{useLexicalComposerContext as t}from\"@lexical/react/LexicalComposerContext\";import{useLexicalEditable as e}from\"@lexical/react/useLexicalEditable\";import{$canShowPlaceholderCurry as r}from\"@lexical/text\";import{mergeRegister as o}from\"@lexical/utils\";import{useLayoutEffect as n,useEffect as i,useState as c,useMemo as l,Suspense as a}from\"react\";import{flushSync as u,createPortal as m}from\"react-dom\";import{jsx as s,jsxs as d,Fragment as f}from\"react/jsx-runtime\";import{registerDragonSupport as p}from\"@lexical/dragon\";import{registerRichText as x}from\"@lexical/rich-text\";const g=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?n:i;function E(t){return t.getEditorState().read(r(t.isComposing()))}function h({contentEditable:e,placeholder:r=null,ErrorBoundary:n}){const[E]=t(),h=function(t,e){const[r,o]=c((()=>t.getDecorators()));return g((()=>t.registerDecoratorListener((t=>{u((()=>{o(t)}))}))),[t]),i((()=>{o(t.getDecorators())}),[t]),l((()=>{const o=[],n=Object.keys(r);for(let i=0;i<n.length;i++){const c=n[i],l=s(e,{onError:e=>t._onError(e),children:s(a,{fallback:null,children:r[c]})}),u=t.getElementByKey(c);null!==u&&o.push(m(l,u,c))}return o}),[e,r,t])}(E,n);return function(t){g((()=>o(x(t),p(t))),[t])}(E),d(f,{children:[e,s(w,{content:r}),h]})}function w({content:r}){const[n]=t(),i=function(t){const[e,r]=c((()=>E(t)));return g((()=>{function e(){const e=E(t);r(e)}return e(),o(t.registerUpdateListener((()=>{e()})),t.registerEditableListener((()=>{e()})))}),[t]),e}(n),l=e();return i?\"function\"==typeof r?r(l):r:null}export{h as RichTextPlugin};\n","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(_a, cbs) {\n var _b = _a.xmlMode, xmlMode = _b === void 0 ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === void 0 ? true : _c;\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.trieIndex = 0;\n this.trieCurrent = 0;\n /** For named entities, the index of the value. For numeric entities, the code point. */\n this.entityResult = 0;\n this.entityExcess = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;\n }\n Tokenizer.prototype.reset = function () {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n };\n Tokenizer.prototype.write = function (chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n };\n Tokenizer.prototype.end = function () {\n if (this.running)\n this.finish();\n };\n Tokenizer.prototype.pause = function () {\n this.running = false;\n };\n Tokenizer.prototype.resume = function () {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n };\n /**\n * The current index within all of the written data.\n */\n Tokenizer.prototype.getIndex = function () {\n return this.index;\n };\n /**\n * The start of the current section.\n */\n Tokenizer.prototype.getSectionStart = function () {\n return this.sectionStart;\n };\n Tokenizer.prototype.stateText = function (c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n var isEnd = this.sequenceIndex === this.currentSequence.length;\n var isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n };\n /** Look for an end tag. For <title> tags, also decode entities. */\n Tokenizer.prototype.stateInSpecialTag = function (c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n var endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n var actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n Parser.prototype.ontext = function (start, endIndex) {\n var _a, _b;\n var data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n };\n /** @internal */\n Parser.prototype.ontextentity = function (cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n var index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n this.startIndex = index;\n };\n Parser.prototype.isVoidElement = function (name) {\n return !this.options.xmlMode && voidElements.has(name);\n };\n /** @internal */\n Parser.prototype.onopentagname = function (start, endIndex) {\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n };\n Parser.prototype.emitOpenTag = function (name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n var element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.endOpenTag = function (isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n };\n /** @internal */\n Parser.prototype.onopentagend = function (endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onclosetag = function (start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n var count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onselfclosingtag = function (endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n };\n Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n var _a, _b;\n var name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n };\n /** @internal */\n Parser.prototype.onattribname = function (start, endIndex) {\n this.startIndex = start;\n var name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n };\n /** @internal */\n Parser.prototype.onattribdata = function (start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n };\n /** @internal */\n Parser.prototype.onattribentity = function (cp) {\n this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n };\n /** @internal */\n Parser.prototype.onattribend = function (quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n ? '\"'\n : quote === Tokenizer_js_1.QuoteType.Single\n ? \"'\"\n : quote === Tokenizer_js_1.QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var index = value.search(reNameEnd);\n var name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n /** @internal */\n Parser.prototype.ondeclaration = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncomment = function (start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncdata = function (start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n Parser.prototype.getSlice = function (start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n };\n Parser.prototype.shiftBuffer = function () {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"&Tab;\"], [0, \"&NewLine;\"], [22, \"&excl;\"], [0, \"&quot;\"], [0, \"&num;\"], [0, \"&dollar;\"], [0, \"&percnt;\"], [0, \"&amp;\"], [0, \"&apos;\"], [0, \"&lpar;\"], [0, \"&rpar;\"], [0, \"&ast;\"], [0, \"&plus;\"], [0, \"&comma;\"], [1, \"&period;\"], [0, \"&sol;\"], [10, \"&colon;\"], [0, \"&semi;\"], [0, { v: \"&lt;\", n: 8402, o: \"&nvlt;\" }], [0, { v: \"&equals;\", n: 8421, o: \"&bne;\" }], [0, { v: \"&gt;\", n: 8402, o: \"&nvgt;\" }], [0, \"&quest;\"], [0, \"&commat;\"], [26, \"&lbrack;\"], [0, \"&bsol;\"], [0, \"&rbrack;\"], [0, \"&Hat;\"], [0, \"&lowbar;\"], [0, \"&DiacriticalGrave;\"], [5, { n: 106, o: \"&fjlig;\" }], [20, \"&lbrace;\"], [0, \"&verbar;\"], [0, \"&rbrace;\"], [34, \"&nbsp;\"], [0, \"&iexcl;\"], [0, \"&cent;\"], [0, \"&pound;\"], [0, \"&curren;\"], [0, \"&yen;\"], [0, \"&brvbar;\"], [0, \"&sect;\"], [0, \"&die;\"], [0, \"&copy;\"], [0, \"&ordf;\"], [0, \"&laquo;\"], [0, \"&not;\"], [0, \"&shy;\"], [0, \"&circledR;\"], [0, \"&macr;\"], [0, \"&deg;\"], [0, \"&PlusMinus;\"], [0, \"&sup2;\"], [0, \"&sup3;\"], [0, \"&acute;\"], [0, \"&micro;\"], [0, \"&para;\"], [0, \"&centerdot;\"], [0, \"&cedil;\"], [0, \"&sup1;\"], [0, \"&ordm;\"], [0, \"&raquo;\"], [0, \"&frac14;\"], [0, \"&frac12;\"], [0, \"&frac34;\"], [0, \"&iquest;\"], [0, \"&Agrave;\"], [0, \"&Aacute;\"], [0, \"&Acirc;\"], [0, \"&Atilde;\"], [0, \"&Auml;\"], [0, \"&angst;\"], [0, \"&AElig;\"], [0, \"&Ccedil;\"], [0, \"&Egrave;\"], [0, \"&Eacute;\"], [0, \"&Ecirc;\"], [0, \"&Euml;\"], [0, \"&Igrave;\"], [0, \"&Iacute;\"], [0, \"&Icirc;\"], [0, \"&Iuml;\"], [0, \"&ETH;\"], [0, \"&Ntilde;\"], [0, \"&Ograve;\"], [0, \"&Oacute;\"], [0, \"&Ocirc;\"], [0, \"&Otilde;\"], [0, \"&Ouml;\"], [0, \"&times;\"], [0, \"&Oslash;\"], [0, \"&Ugrave;\"], [0, \"&Uacute;\"], [0, \"&Ucirc;\"], [0, \"&Uuml;\"], [0, \"&Yacute;\"], [0, \"&THORN;\"], [0, \"&szlig;\"], [0, \"&agrave;\"], [0, \"&aacute;\"], [0, \"&acirc;\"], [0, \"&atilde;\"], [0, \"&auml;\"], [0, \"&aring;\"], [0, \"&aelig;\"], [0, \"&ccedil;\"], [0, \"&egrave;\"], [0, \"&eacute;\"], [0, \"&ecirc;\"], [0, \"&euml;\"], [0, \"&igrave;\"], [0, \"&iacute;\"], [0, \"&icirc;\"], [0, \"&iuml;\"], [0, \"&eth;\"], [0, \"&ntilde;\"], [0, \"&ograve;\"], [0, \"&oacute;\"], [0, \"&ocirc;\"], [0, \"&otilde;\"], [0, \"&ouml;\"], [0, \"&div;\"], [0, \"&oslash;\"], [0, \"&ugrave;\"], [0, \"&uacute;\"], [0, \"&ucirc;\"], [0, \"&uuml;\"], [0, \"&yacute;\"], [0, \"&thorn;\"], [0, \"&yuml;\"], [0, \"&Amacr;\"], [0, \"&amacr;\"], [0, \"&Abreve;\"], [0, \"&abreve;\"], [0, \"&Aogon;\"], [0, \"&aogon;\"], [0, \"&Cacute;\"], [0, \"&cacute;\"], [0, \"&Ccirc;\"], [0, \"&ccirc;\"], [0, \"&Cdot;\"], [0, \"&cdot;\"], [0, \"&Ccaron;\"], [0, \"&ccaron;\"], [0, \"&Dcaron;\"], [0, \"&dcaron;\"], [0, \"&Dstrok;\"], [0, \"&dstrok;\"], [0, \"&Emacr;\"], [0, \"&emacr;\"], [2, \"&Edot;\"], [0, \"&edot;\"], [0, \"&Eogon;\"], [0, \"&eogon;\"], [0, \"&Ecaron;\"], [0, \"&ecaron;\"], [0, \"&Gcirc;\"], [0, \"&gcirc;\"], [0, \"&Gbreve;\"], [0, \"&gbreve;\"], [0, \"&Gdot;\"], [0, \"&gdot;\"], [0, \"&Gcedil;\"], [1, \"&Hcirc;\"], [0, \"&hcirc;\"], [0, \"&Hstrok;\"], [0, \"&hstrok;\"], [0, \"&Itilde;\"], [0, \"&itilde;\"], [0, \"&Imacr;\"], [0, \"&imacr;\"], [2, \"&Iogon;\"], [0, \"&iogon;\"], [0, \"&Idot;\"], [0, \"&imath;\"], [0, \"&IJlig;\"], [0, \"&ijlig;\"], [0, \"&Jcirc;\"], [0, \"&jcirc;\"], [0, \"&Kcedil;\"], [0, \"&kcedil;\"], [0, \"&kgreen;\"], [0, \"&Lacute;\"], [0, \"&lacute;\"], [0, \"&Lcedil;\"], [0, \"&lcedil;\"], [0, \"&Lcaron;\"], [0, \"&lcaron;\"], [0, \"&Lmidot;\"], [0, \"&lmidot;\"], [0, \"&Lstrok;\"], [0, \"&lstrok;\"], [0, \"&Nacute;\"], [0, \"&nacute;\"], [0, \"&Ncedil;\"], [0, \"&ncedil;\"], [0, \"&Ncaron;\"], [0, \"&ncaron;\"], [0, \"&napos;\"], [0, \"&ENG;\"], [0, \"&eng;\"], [0, \"&Omacr;\"], [0, \"&omacr;\"], [2, \"&Odblac;\"], [0, \"&odblac;\"], [0, \"&OElig;\"], [0, \"&oelig;\"], [0, \"&Racute;\"], [0, \"&racute;\"], [0, \"&Rcedil;\"], [0, \"&rcedil;\"], [0, \"&Rcaron;\"], [0, \"&rcaron;\"], [0, \"&Sacute;\"], [0, \"&sacute;\"], [0, \"&Scirc;\"], [0, \"&scirc;\"], [0, \"&Scedil;\"], [0, \"&scedil;\"], [0, \"&Scaron;\"], [0, \"&scaron;\"], [0, \"&Tcedil;\"], [0, \"&tcedil;\"], [0, \"&Tcaron;\"], [0, \"&tcaron;\"], [0, \"&Tstrok;\"], [0, \"&tstrok;\"], [0, \"&Utilde;\"], [0, \"&utilde;\"], [0, \"&Umacr;\"], [0, \"&umacr;\"], [0, \"&Ubreve;\"], [0, \"&ubreve;\"], [0, \"&Uring;\"], [0, \"&uring;\"], [0, \"&Udblac;\"], [0, \"&udblac;\"], [0, \"&Uogon;\"], [0, \"&uogon;\"], [0, \"&Wcirc;\"], [0, \"&wcirc;\"], [0, \"&Ycirc;\"], [0, \"&ycirc;\"], [0, \"&Yuml;\"], [0, \"&Zacute;\"], [0, \"&zacute;\"], [0, \"&Zdot;\"], [0, \"&zdot;\"], [0, \"&Zcaron;\"], [0, \"&zcaron;\"], [19, \"&fnof;\"], [34, \"&imped;\"], [63, \"&gacute;\"], [65, \"&jmath;\"], [142, \"&circ;\"], [0, \"&caron;\"], [16, \"&breve;\"], [0, \"&DiacriticalDot;\"], [0, \"&ring;\"], [0, \"&ogon;\"], [0, \"&DiacriticalTilde;\"], [0, \"&dblac;\"], [51, \"&DownBreve;\"], [127, \"&Alpha;\"], [0, \"&Beta;\"], [0, \"&Gamma;\"], [0, \"&Delta;\"], [0, \"&Epsilon;\"], [0, \"&Zeta;\"], [0, \"&Eta;\"], [0, \"&Theta;\"], [0, \"&Iota;\"], [0, \"&Kappa;\"], [0, \"&Lambda;\"], [0, \"&Mu;\"], [0, \"&Nu;\"], [0, \"&Xi;\"], [0, \"&Omicron;\"], [0, \"&Pi;\"], [0, \"&Rho;\"], [1, \"&Sigma;\"], [0, \"&Tau;\"], [0, \"&Upsilon;\"], [0, \"&Phi;\"], [0, \"&Chi;\"], [0, \"&Psi;\"], [0, \"&ohm;\"], [7, \"&alpha;\"], [0, \"&beta;\"], [0, \"&gamma;\"], [0, \"&delta;\"], [0, \"&epsi;\"], [0, \"&zeta;\"], [0, \"&eta;\"], [0, \"&theta;\"], [0, \"&iota;\"], [0, \"&kappa;\"], [0, \"&lambda;\"], [0, \"&mu;\"], [0, \"&nu;\"], [0, \"&xi;\"], [0, \"&omicron;\"], [0, \"&pi;\"], [0, \"&rho;\"], [0, \"&sigmaf;\"], [0, \"&sigma;\"], [0, \"&tau;\"], [0, \"&upsi;\"], [0, \"&phi;\"], [0, \"&chi;\"], [0, \"&psi;\"], [0, \"&omega;\"], [7, \"&thetasym;\"], [0, \"&Upsi;\"], [2, \"&phiv;\"], [0, \"&piv;\"], [5, \"&Gammad;\"], [0, \"&digamma;\"], [18, \"&kappav;\"], [0, \"&rhov;\"], [3, \"&epsiv;\"], [0, \"&backepsilon;\"], [10, \"&IOcy;\"], [0, \"&DJcy;\"], [0, \"&GJcy;\"], [0, \"&Jukcy;\"], [0, \"&DScy;\"], [0, \"&Iukcy;\"], [0, \"&YIcy;\"], [0, \"&Jsercy;\"], [0, \"&LJcy;\"], [0, \"&NJcy;\"], [0, \"&TSHcy;\"], [0, \"&KJcy;\"], [1, \"&Ubrcy;\"], [0, \"&DZcy;\"], [0, \"&Acy;\"], [0, \"&Bcy;\"], [0, \"&Vcy;\"], [0, \"&Gcy;\"], [0, \"&Dcy;\"], [0, \"&IEcy;\"], [0, \"&ZHcy;\"], [0, \"&Zcy;\"], [0, \"&Icy;\"], [0, \"&Jcy;\"], [0, \"&Kcy;\"], [0, \"&Lcy;\"], [0, \"&Mcy;\"], [0, \"&Ncy;\"], [0, \"&Ocy;\"], [0, \"&Pcy;\"], [0, \"&Rcy;\"], [0, \"&Scy;\"], [0, \"&Tcy;\"], [0, \"&Ucy;\"], [0, \"&Fcy;\"], [0, \"&KHcy;\"], [0, \"&TScy;\"], [0, \"&CHcy;\"], [0, \"&SHcy;\"], [0, \"&SHCHcy;\"], [0, \"&HARDcy;\"], [0, \"&Ycy;\"], [0, \"&SOFTcy;\"], [0, \"&Ecy;\"], [0, \"&YUcy;\"], [0, \"&YAcy;\"], [0, \"&acy;\"], [0, \"&bcy;\"], [0, \"&vcy;\"], [0, \"&gcy;\"], [0, \"&dcy;\"], [0, \"&iecy;\"], [0, \"&zhcy;\"], [0, \"&zcy;\"], [0, \"&icy;\"], [0, \"&jcy;\"], [0, \"&kcy;\"], [0, \"&lcy;\"], [0, \"&mcy;\"], [0, \"&ncy;\"], [0, \"&ocy;\"], [0, \"&pcy;\"], [0, \"&rcy;\"], [0, \"&scy;\"], [0, \"&tcy;\"], [0, \"&ucy;\"], [0, \"&fcy;\"], [0, \"&khcy;\"], [0, \"&tscy;\"], [0, \"&chcy;\"], [0, \"&shcy;\"], [0, \"&shchcy;\"], [0, \"&hardcy;\"], [0, \"&ycy;\"], [0, \"&softcy;\"], [0, \"&ecy;\"], [0, \"&yucy;\"], [0, \"&yacy;\"], [1, \"&iocy;\"], [0, \"&djcy;\"], [0, \"&gjcy;\"], [0, \"&jukcy;\"], [0, \"&dscy;\"], [0, \"&iukcy;\"], [0, \"&yicy;\"], [0, \"&jsercy;\"], [0, \"&ljcy;\"], [0, \"&njcy;\"], [0, \"&tshcy;\"], [0, \"&kjcy;\"], [1, \"&ubrcy;\"], [0, \"&dzcy;\"], [7074, \"&ensp;\"], [0, \"&emsp;\"], [0, \"&emsp13;\"], [0, \"&emsp14;\"], [1, \"&numsp;\"], [0, \"&puncsp;\"], [0, \"&ThinSpace;\"], [0, \"&hairsp;\"], [0, \"&NegativeMediumSpace;\"], [0, \"&zwnj;\"], [0, \"&zwj;\"], [0, \"&lrm;\"], [0, \"&rlm;\"], [0, \"&dash;\"], [2, \"&ndash;\"], [0, \"&mdash;\"], [0, \"&horbar;\"], [0, \"&Verbar;\"], [1, \"&lsquo;\"], [0, \"&CloseCurlyQuote;\"], [0, \"&lsquor;\"], [1, \"&ldquo;\"], [0, \"&CloseCurlyDoubleQuote;\"], [0, \"&bdquo;\"], [1, \"&dagger;\"], [0, \"&Dagger;\"], [0, \"&bull;\"], [2, \"&nldr;\"], [0, \"&hellip;\"], [9, \"&permil;\"], [0, \"&pertenk;\"], [0, \"&prime;\"], [0, \"&Prime;\"], [0, \"&tprime;\"], [0, \"&backprime;\"], [3, \"&lsaquo;\"], [0, \"&rsaquo;\"], [3, \"&oline;\"], [2, \"&caret;\"], [1, \"&hybull;\"], [0, \"&frasl;\"], [10, \"&bsemi;\"], [7, \"&qprime;\"], [7, { v: \"&MediumSpace;\", n: 8202, o: \"&ThickSpace;\" }], [0, \"&NoBreak;\"], [0, \"&af;\"], [0, \"&InvisibleTimes;\"], [0, \"&ic;\"], [72, \"&euro;\"], [46, \"&tdot;\"], [0, \"&DotDot;\"], [37, \"&complexes;\"], [2, \"&incare;\"], [4, \"&gscr;\"], [0, \"&hamilt;\"], [0, \"&Hfr;\"], [0, \"&Hopf;\"], [0, \"&planckh;\"], [0, \"&hbar;\"], [0, \"&imagline;\"], [0, \"&Ifr;\"], [0, \"&lagran;\"], [0, \"&ell;\"], [1, \"&naturals;\"], [0, \"&numero;\"], [0, \"&copysr;\"], [0, \"&weierp;\"], [0, \"&Popf;\"], [0, \"&Qopf;\"], [0, \"&realine;\"], [0, \"&real;\"], [0, \"&reals;\"], [0, \"&rx;\"], [3, \"&trade;\"], [1, \"&integers;\"], [2, \"&mho;\"], [0, \"&zeetrf;\"], [0, \"&iiota;\"], [2, \"&bernou;\"], [0, \"&Cayleys;\"], [1, \"&escr;\"], [0, \"&Escr;\"], [0, \"&Fouriertrf;\"], [1, \"&Mellintrf;\"], [0, \"&order;\"], [0, \"&alefsym;\"], [0, \"&beth;\"], [0, \"&gimel;\"], [0, \"&daleth;\"], [12, \"&CapitalDifferentialD;\"], [0, \"&dd;\"], [0, \"&ee;\"], [0, \"&ii;\"], [10, \"&frac13;\"], [0, \"&frac23;\"], [0, \"&frac15;\"], [0, \"&frac25;\"], [0, \"&frac35;\"], [0, \"&frac45;\"], [0, \"&frac16;\"], [0, \"&frac56;\"], [0, \"&frac18;\"], [0, \"&frac38;\"], [0, \"&frac58;\"], [0, \"&frac78;\"], [49, \"&larr;\"], [0, \"&ShortUpArrow;\"], [0, \"&rarr;\"], [0, \"&darr;\"], [0, \"&harr;\"], [0, \"&updownarrow;\"], [0, \"&nwarr;\"], [0, \"&nearr;\"], [0, \"&LowerRightArrow;\"], [0, \"&LowerLeftArrow;\"], [0, \"&nlarr;\"], [0, \"&nrarr;\"], [1, { v: \"&rarrw;\", n: 824, o: \"&nrarrw;\" }], [0, \"&Larr;\"], [0, \"&Uarr;\"], [0, \"&Rarr;\"], [0, \"&Darr;\"], [0, \"&larrtl;\"], [0, \"&rarrtl;\"], [0, \"&LeftTeeArrow;\"], [0, \"&mapstoup;\"], [0, \"&map;\"], [0, \"&DownTeeArrow;\"], [1, \"&hookleftarrow;\"], [0, \"&hookrightarrow;\"], [0, \"&larrlp;\"], [0, \"&looparrowright;\"], [0, \"&harrw;\"], [0, \"&nharr;\"], [1, \"&lsh;\"], [0, \"&rsh;\"], [0, \"&ldsh;\"], [0, \"&rdsh;\"], [1, \"&crarr;\"], [0, \"&cularr;\"], [0, \"&curarr;\"], [2, \"&circlearrowleft;\"], [0, \"&circlearrowright;\"], [0, \"&leftharpoonup;\"], [0, \"&DownLeftVector;\"], [0, \"&RightUpVector;\"], [0, \"&LeftUpVector;\"], [0, \"&rharu;\"], [0, \"&DownRightVector;\"], [0, \"&dharr;\"], [0, \"&dharl;\"], [0, \"&RightArrowLeftArrow;\"], [0, \"&udarr;\"], [0, \"&LeftArrowRightArrow;\"], [0, \"&leftleftarrows;\"], [0, \"&upuparrows;\"], [0, \"&rightrightarrows;\"], [0, \"&ddarr;\"], [0, \"&leftrightharpoons;\"], [0, \"&Equilibrium;\"], [0, \"&nlArr;\"], [0, \"&nhArr;\"], [0, \"&nrArr;\"], [0, \"&DoubleLeftArrow;\"], [0, \"&DoubleUpArrow;\"], [0, \"&DoubleRightArrow;\"], [0, \"&dArr;\"], [0, \"&DoubleLeftRightArrow;\"], [0, \"&DoubleUpDownArrow;\"], [0, \"&nwArr;\"], [0, \"&neArr;\"], [0, \"&seArr;\"], [0, \"&swArr;\"], [0, \"&lAarr;\"], [0, \"&rAarr;\"], [1, \"&zigrarr;\"], [6, \"&larrb;\"], [0, \"&rarrb;\"], [15, \"&DownArrowUpArrow;\"], [7, \"&loarr;\"], [0, \"&roarr;\"], [0, \"&hoarr;\"], [0, \"&forall;\"], [0, \"&comp;\"], [0, { v: \"&part;\", n: 824, o: \"&npart;\" }], [0, \"&exist;\"], [0, \"&nexist;\"], [0, \"&empty;\"], [1, \"&Del;\"], [0, \"&Element;\"], [0, \"&NotElement;\"], [1, \"&ni;\"], [0, \"&notni;\"], [2, \"&prod;\"], [0, \"&coprod;\"], [0, \"&sum;\"], [0, \"&minus;\"], [0, \"&MinusPlus;\"], [0, \"&dotplus;\"], [1, \"&Backslash;\"], [0, \"&lowast;\"], [0, \"&compfn;\"], [1, \"&radic;\"], [2, \"&prop;\"], [0, \"&infin;\"], [0, \"&angrt;\"], [0, { v: \"&ang;\", n: 8402, o: \"&nang;\" }], [0, \"&angmsd;\"], [0, \"&angsph;\"], [0, \"&mid;\"], [0, \"&nmid;\"], [0, \"&DoubleVerticalBar;\"], [0, \"&NotDoubleVerticalBar;\"], [0, \"&and;\"], [0, \"&or;\"], [0, { v: \"&cap;\", n: 65024, o: \"&caps;\" }], [0, { v: \"&cup;\", n: 65024, o: \"&cups;\" }], [0, \"&int;\"], [0, \"&Int;\"], [0, \"&iiint;\"], [0, \"&conint;\"], [0, \"&Conint;\"], [0, \"&Cconint;\"], [0, \"&cwint;\"], [0, \"&ClockwiseContourIntegral;\"], [0, \"&awconint;\"], [0, \"&there4;\"], [0, \"&becaus;\"], [0, \"&ratio;\"], [0, \"&Colon;\"], [0, \"&dotminus;\"], [1, \"&mDDot;\"], [0, \"&homtht;\"], [0, { v: \"&sim;\", n: 8402, o: \"&nvsim;\" }], [0, { v: \"&backsim;\", n: 817, o: \"&race;\" }], [0, { v: \"&ac;\", n: 819, o: \"&acE;\" }], [0, \"&acd;\"], [0, \"&VerticalTilde;\"], [0, \"&NotTilde;\"], [0, { v: \"&eqsim;\", n: 824, o: \"&nesim;\" }], [0, \"&sime;\"], [0, \"&NotTildeEqual;\"], [0, \"&cong;\"], [0, \"&simne;\"], [0, \"&ncong;\"], [0, \"&ap;\"], [0, \"&nap;\"], [0, \"&ape;\"], [0, { v: \"&apid;\", n: 824, o: \"&napid;\" }], [0, \"&backcong;\"], [0, { v: \"&asympeq;\", n: 8402, o: \"&nvap;\" }], [0, { v: \"&bump;\", n: 824, o: \"&nbump;\" }], [0, { v: \"&bumpe;\", n: 824, o: \"&nbumpe;\" }], [0, { v: \"&doteq;\", n: 824, o: \"&nedot;\" }], [0, \"&doteqdot;\"], [0, \"&efDot;\"], [0, \"&erDot;\"], [0, \"&Assign;\"], [0, \"&ecolon;\"], [0, \"&ecir;\"], [0, \"&circeq;\"], [1, \"&wedgeq;\"], [0, \"&veeeq;\"], [1, \"&triangleq;\"], [2, \"&equest;\"], [0, \"&ne;\"], [0, { v: \"&Congruent;\", n: 8421, o: \"&bnequiv;\" }], [0, \"&nequiv;\"], [1, { v: \"&le;\", n: 8402, o: \"&nvle;\" }], [0, { v: \"&ge;\", n: 8402, o: \"&nvge;\" }], [0, { v: \"&lE;\", n: 824, o: \"&nlE;\" }], [0, { v: \"&gE;\", n: 824, o: \"&ngE;\" }], [0, { v: \"&lnE;\", n: 65024, o: \"&lvertneqq;\" }], [0, { v: \"&gnE;\", n: 65024, o: \"&gvertneqq;\" }], [0, { v: \"&ll;\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"&nLtv;\"], [7577, \"&nLt;\"]])) }], [0, { v: \"&gg;\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"&nGtv;\"], [7577, \"&nGt;\"]])) }], [0, \"&between;\"], [0, \"&NotCupCap;\"], [0, \"&nless;\"], [0, \"&ngt;\"], [0, \"&nle;\"], [0, \"&nge;\"], [0, \"&lesssim;\"], [0, \"&GreaterTilde;\"], [0, \"&nlsim;\"], [0, \"&ngsim;\"], [0, \"&LessGreater;\"], [0, \"&gl;\"], [0, \"&NotLessGreater;\"], [0, \"&NotGreaterLess;\"], [0, \"&pr;\"], [0, \"&sc;\"], [0, \"&prcue;\"], [0, \"&sccue;\"], [0, \"&PrecedesTilde;\"], [0, { v: \"&scsim;\", n: 824, o: \"&NotSucceedsTilde;\" }], [0, \"&NotPrecedes;\"], [0, \"&NotSucceeds;\"], [0, { v: \"&sub;\", n: 8402, o: \"&NotSubset;\" }], [0, { v: \"&sup;\", n: 8402, o: \"&NotSuperset;\" }], [0, \"&nsub;\"], [0, \"&nsup;\"], [0, \"&sube;\"], [0, \"&supe;\"], [0, \"&NotSubsetEqual;\"], [0, \"&NotSupersetEqual;\"], [0, { v: \"&subne;\", n: 65024, o: \"&varsubsetneq;\" }], [0, { v: \"&supne;\", n: 65024, o: \"&varsupsetneq;\" }], [1, \"&cupdot;\"], [0, \"&UnionPlus;\"], [0, { v: \"&sqsub;\", n: 824, o: \"&NotSquareSubset;\" }], [0, { v: \"&sqsup;\", n: 824, o: \"&NotSquareSuperset;\" }], [0, \"&sqsube;\"], [0, \"&sqsupe;\"], [0, { v: \"&sqcap;\", n: 65024, o: \"&sqcaps;\" }], [0, { v: \"&sqcup;\", n: 65024, o: \"&sqcups;\" }], [0, \"&CirclePlus;\"], [0, \"&CircleMinus;\"], [0, \"&CircleTimes;\"], [0, \"&osol;\"], [0, \"&CircleDot;\"], [0, \"&circledcirc;\"], [0, \"&circledast;\"], [1, \"&circleddash;\"], [0, \"&boxplus;\"], [0, \"&boxminus;\"], [0, \"&boxtimes;\"], [0, \"&dotsquare;\"], [0, \"&RightTee;\"], [0, \"&dashv;\"], [0, \"&DownTee;\"], [0, \"&bot;\"], [1, \"&models;\"], [0, \"&DoubleRightTee;\"], [0, \"&Vdash;\"], [0, \"&Vvdash;\"], [0, \"&VDash;\"], [0, \"&nvdash;\"], [0, \"&nvDash;\"], [0, \"&nVdash;\"], [0, \"&nVDash;\"], [0, \"&prurel;\"], [1, \"&LeftTriangle;\"], [0, \"&RightTriangle;\"], [0, { v: \"&LeftTriangleEqual;\", n: 8402, o: \"&nvltrie;\" }], [0, { v: \"&RightTriangleEqual;\", n: 8402, o: \"&nvrtrie;\" }], [0, \"&origof;\"], [0, \"&imof;\"], [0, \"&multimap;\"], [0, \"&hercon;\"], [0, \"&intcal;\"], [0, \"&veebar;\"], [1, \"&barvee;\"], [0, \"&angrtvb;\"], [0, \"&lrtri;\"], [0, \"&bigwedge;\"], [0, \"&bigvee;\"], [0, \"&bigcap;\"], [0, \"&bigcup;\"], [0, \"&diam;\"], [0, \"&sdot;\"], [0, \"&sstarf;\"], [0, \"&divideontimes;\"], [0, \"&bowtie;\"], [0, \"&ltimes;\"], [0, \"&rtimes;\"], [0, \"&leftthreetimes;\"], [0, \"&rightthreetimes;\"], [0, \"&backsimeq;\"], [0, \"&curlyvee;\"], [0, \"&curlywedge;\"], [0, \"&Sub;\"], [0, \"&Sup;\"], [0, \"&Cap;\"], [0, \"&Cup;\"], [0, \"&fork;\"], [0, \"&epar;\"], [0, \"&lessdot;\"], [0, \"&gtdot;\"], [0, { v: \"&Ll;\", n: 824, o: \"&nLl;\" }], [0, { v: \"&Gg;\", n: 824, o: \"&nGg;\" }], [0, { v: \"&leg;\", n: 65024, o: \"&lesg;\" }], [0, { v: \"&gel;\", n: 65024, o: \"&gesl;\" }], [2, \"&cuepr;\"], [0, \"&cuesc;\"], [0, \"&NotPrecedesSlantEqual;\"], [0, \"&NotSucceedsSlantEqual;\"], [0, \"&NotSquareSubsetEqual;\"], [0, \"&NotSquareSupersetEqual;\"], [2, \"&lnsim;\"], [0, \"&gnsim;\"], [0, \"&precnsim;\"], [0, \"&scnsim;\"], [0, \"&nltri;\"], [0, \"&NotRightTriangle;\"], [0, \"&nltrie;\"], [0, \"&NotRightTriangleEqual;\"], [0, \"&vellip;\"], [0, \"&ctdot;\"], [0, \"&utdot;\"], [0, \"&dtdot;\"], [0, \"&disin;\"], [0, \"&isinsv;\"], [0, \"&isins;\"], [0, { v: \"&isindot;\", n: 824, o: \"&notindot;\" }], [0, \"&notinvc;\"], [0, \"&notinvb;\"], [1, { v: \"&isinE;\", n: 824, o: \"&notinE;\" }], [0, \"&nisd;\"], [0, \"&xnis;\"], [0, \"&nis;\"], [0, \"&notnivc;\"], [0, \"&notnivb;\"], [6, \"&barwed;\"], [0, \"&Barwed;\"], [1, \"&lceil;\"], [0, \"&rceil;\"], [0, \"&LeftFloor;\"], [0, \"&rfloor;\"], [0, \"&drcrop;\"], [0, \"&dlcrop;\"], [0, \"&urcrop;\"], [0, \"&ulcrop;\"], [0, \"&bnot;\"], [1, \"&profline;\"], [0, \"&profsurf;\"], [1, \"&telrec;\"], [0, \"&target;\"], [5, \"&ulcorn;\"], [0, \"&urcorn;\"], [0, \"&dlcorn;\"], [0, \"&drcorn;\"], [2, \"&frown;\"], [0, \"&smile;\"], [9, \"&cylcty;\"], [0, \"&profalar;\"], [7, \"&topbot;\"], [6, \"&ovbar;\"], [1, \"&solbar;\"], [60, \"&angzarr;\"], [51, \"&lmoustache;\"], [0, \"&rmoustache;\"], [2, \"&OverBracket;\"], [0, \"&bbrk;\"], [0, \"&bbrktbrk;\"], [37, \"&OverParenthesis;\"], [0, \"&UnderParenthesis;\"], [0, \"&OverBrace;\"], [0, \"&UnderBrace;\"], [2, \"&trpezium;\"], [4, \"&elinters;\"], [59, \"&blank;\"], [164, \"&circledS;\"], [55, \"&boxh;\"], [1, \"&boxv;\"], [9, \"&boxdr;\"], [3, \"&boxdl;\"], [3, \"&boxur;\"], [3, \"&boxul;\"], [3, \"&boxvr;\"], [7, \"&boxvl;\"], [7, \"&boxhd;\"], [7, \"&boxhu;\"], [7, \"&boxvh;\"], [19, \"&boxH;\"], [0, \"&boxV;\"], [0, \"&boxdR;\"], [0, \"&boxDr;\"], [0, \"&boxDR;\"], [0, \"&boxdL;\"], [0, \"&boxDl;\"], [0, \"&boxDL;\"], [0, \"&boxuR;\"], [0, \"&boxUr;\"], [0, \"&boxUR;\"], [0, \"&boxuL;\"], [0, \"&boxUl;\"], [0, \"&boxUL;\"], [0, \"&boxvR;\"], [0, \"&boxVr;\"], [0, \"&boxVR;\"], [0, \"&boxvL;\"], [0, \"&boxVl;\"], [0, \"&boxVL;\"], [0, \"&boxHd;\"], [0, \"&boxhD;\"], [0, \"&boxHD;\"], [0, \"&boxHu;\"], [0, \"&boxhU;\"], [0, \"&boxHU;\"], [0, \"&boxvH;\"], [0, \"&boxVh;\"], [0, \"&boxVH;\"], [19, \"&uhblk;\"], [3, \"&lhblk;\"], [3, \"&block;\"], [8, \"&blk14;\"], [0, \"&blk12;\"], [0, \"&blk34;\"], [13, \"&square;\"], [8, \"&blacksquare;\"], [0, \"&EmptyVerySmallSquare;\"], [1, \"&rect;\"], [0, \"&marker;\"], [2, \"&fltns;\"], [1, \"&bigtriangleup;\"], [0, \"&blacktriangle;\"], [0, \"&triangle;\"], [2, \"&blacktriangleright;\"], [0, \"&rtri;\"], [3, \"&bigtriangledown;\"], [0, \"&blacktriangledown;\"], [0, \"&dtri;\"], [2, \"&blacktriangleleft;\"], [0, \"&ltri;\"], [6, \"&loz;\"], [0, \"&cir;\"], [32, \"&tridot;\"], [2, \"&bigcirc;\"], [8, \"&ultri;\"], [0, \"&urtri;\"], [0, \"&lltri;\"], [0, \"&EmptySmallSquare;\"], [0, \"&FilledSmallSquare;\"], [8, \"&bigstar;\"], [0, \"&star;\"], [7, \"&phone;\"], [49, \"&female;\"], [1, \"&male;\"], [29, \"&spades;\"], [2, \"&clubs;\"], [1, \"&hearts;\"], [0, \"&diamondsuit;\"], [3, \"&sung;\"], [2, \"&flat;\"], [0, \"&natural;\"], [0, \"&sharp;\"], [163, \"&check;\"], [3, \"&cross;\"], [8, \"&malt;\"], [21, \"&sext;\"], [33, \"&VerticalSeparator;\"], [25, \"&lbbrk;\"], [0, \"&rbbrk;\"], [84, \"&bsolhsub;\"], [0, \"&suphsol;\"], [28, \"&LeftDoubleBracket;\"], [0, \"&RightDoubleBracket;\"], [0, \"&lang;\"], [0, \"&rang;\"], [0, \"&Lang;\"], [0, \"&Rang;\"], [0, \"&loang;\"], [0, \"&roang;\"], [7, \"&longleftarrow;\"], [0, \"&longrightarrow;\"], [0, \"&longleftrightarrow;\"], [0, \"&DoubleLongLeftArrow;\"], [0, \"&DoubleLongRightArrow;\"], [0, \"&DoubleLongLeftRightArrow;\"], [1, \"&longmapsto;\"], [2, \"&dzigrarr;\"], [258, \"&nvlArr;\"], [0, \"&nvrArr;\"], [0, \"&nvHarr;\"], [0, \"&Map;\"], [6, \"&lbarr;\"], [0, \"&bkarow;\"], [0, \"&lBarr;\"], [0, \"&dbkarow;\"], [0, \"&drbkarow;\"], [0, \"&DDotrahd;\"], [0, \"&UpArrowBar;\"], [0, \"&DownArrowBar;\"], [2, \"&Rarrtl;\"], [2, \"&latail;\"], [0, \"&ratail;\"], [0, \"&lAtail;\"], [0, \"&rAtail;\"], [0, \"&larrfs;\"], [0, \"&rarrfs;\"], [0, \"&larrbfs;\"], [0, \"&rarrbfs;\"], [2, \"&nwarhk;\"], [0, \"&nearhk;\"], [0, \"&hksearow;\"], [0, \"&hkswarow;\"], [0, \"&nwnear;\"], [0, \"&nesear;\"], [0, \"&seswar;\"], [0, \"&swnwar;\"], [8, { v: \"&rarrc;\", n: 824, o: \"&nrarrc;\" }], [1, \"&cudarrr;\"], [0, \"&ldca;\"], [0, \"&rdca;\"], [0, \"&cudarrl;\"], [0, \"&larrpl;\"], [2, \"&curarrm;\"], [0, \"&cularrp;\"], [7, \"&rarrpl;\"], [2, \"&harrcir;\"], [0, \"&Uarrocir;\"], [0, \"&lurdshar;\"], [0, \"&ldrushar;\"], [2, \"&LeftRightVector;\"], [0, \"&RightUpDownVector;\"], [0, \"&DownLeftRightVector;\"], [0, \"&LeftUpDownVector;\"], [0, \"&LeftVectorBar;\"], [0, \"&RightVectorBar;\"], [0, \"&RightUpVectorBar;\"], [0, \"&RightDownVectorBar;\"], [0, \"&DownLeftVectorBar;\"], [0, \"&DownRightVectorBar;\"], [0, \"&LeftUpVectorBar;\"], [0, \"&LeftDownVectorBar;\"], [0, \"&LeftTeeVector;\"], [0, \"&RightTeeVector;\"], [0, \"&RightUpTeeVector;\"], [0, \"&RightDownTeeVector;\"], [0, \"&DownLeftTeeVector;\"], [0, \"&DownRightTeeVector;\"], [0, \"&LeftUpTeeVector;\"], [0, \"&LeftDownTeeVector;\"], [0, \"&lHar;\"], [0, \"&uHar;\"], [0, \"&rHar;\"], [0, \"&dHar;\"], [0, \"&luruhar;\"], [0, \"&ldrdhar;\"], [0, \"&ruluhar;\"], [0, \"&rdldhar;\"], [0, \"&lharul;\"], [0, \"&llhard;\"], [0, \"&rharul;\"], [0, \"&lrhard;\"], [0, \"&udhar;\"], [0, \"&duhar;\"], [0, \"&RoundImplies;\"], [0, \"&erarr;\"], [0, \"&simrarr;\"], [0, \"&larrsim;\"], [0, \"&rarrsim;\"], [0, \"&rarrap;\"], [0, \"&ltlarr;\"], [1, \"&gtrarr;\"], [0, \"&subrarr;\"], [1, \"&suplarr;\"], [0, \"&lfisht;\"], [0, \"&rfisht;\"], [0, \"&ufisht;\"], [0, \"&dfisht;\"], [5, \"&lopar;\"], [0, \"&ropar;\"], [4, \"&lbrke;\"], [0, \"&rbrke;\"], [0, \"&lbrkslu;\"], [0, \"&rbrksld;\"], [0, \"&lbrksld;\"], [0, \"&rbrkslu;\"], [0, \"&langd;\"], [0, \"&rangd;\"], [0, \"&lparlt;\"], [0, \"&rpargt;\"], [0, \"&gtlPar;\"], [0, \"&ltrPar;\"], [3, \"&vzigzag;\"], [1, \"&vangrt;\"], [0, \"&angrtvbd;\"], [6, \"&ange;\"], [0, \"&range;\"], [0, \"&dwangle;\"], [0, \"&uwangle;\"], [0, \"&angmsdaa;\"], [0, \"&angmsdab;\"], [0, \"&angmsdac;\"], [0, \"&angmsdad;\"], [0, \"&angmsdae;\"], [0, \"&angmsdaf;\"], [0, \"&angmsdag;\"], [0, \"&angmsdah;\"], [0, \"&bemptyv;\"], [0, \"&demptyv;\"], [0, \"&cemptyv;\"], [0, \"&raemptyv;\"], [0, \"&laemptyv;\"], [0, \"&ohbar;\"], [0, \"&omid;\"], [0, \"&opar;\"], [1, \"&operp;\"], [1, \"&olcross;\"], [0, \"&odsold;\"], [1, \"&olcir;\"], [0, \"&ofcir;\"], [0, \"&olt;\"], [0, \"&ogt;\"], [0, \"&cirscir;\"], [0, \"&cirE;\"], [0, \"&solb;\"], [0, \"&bsolb;\"], [3, \"&boxbox;\"], [3, \"&trisb;\"], [0, \"&rtriltri;\"], [0, { v: \"&LeftTriangleBar;\", n: 824, o: \"&NotLeftTriangleBar;\" }], [0, { v: \"&RightTriangleBar;\", n: 824, o: \"&NotRightTriangleBar;\" }], [11, \"&iinfin;\"], [0, \"&infintie;\"], [0, \"&nvinfin;\"], [4, \"&eparsl;\"], [0, \"&smeparsl;\"], [0, \"&eqvparsl;\"], [5, \"&blacklozenge;\"], [8, \"&RuleDelayed;\"], [1, \"&dsol;\"], [9, \"&bigodot;\"], [0, \"&bigoplus;\"], [0, \"&bigotimes;\"], [1, \"&biguplus;\"], [1, \"&bigsqcup;\"], [5, \"&iiiint;\"], [0, \"&fpartint;\"], [2, \"&cirfnint;\"], [0, \"&awint;\"], [0, \"&rppolint;\"], [0, \"&scpolint;\"], [0, \"&npolint;\"], [0, \"&pointint;\"], [0, \"&quatint;\"], [0, \"&intlarhk;\"], [10, \"&pluscir;\"], [0, \"&plusacir;\"], [0, \"&simplus;\"], [0, \"&plusdu;\"], [0, \"&plussim;\"], [0, \"&plustwo;\"], [1, \"&mcomma;\"], [0, \"&minusdu;\"], [2, \"&loplus;\"], [0, \"&roplus;\"], [0, \"&Cross;\"], [0, \"&timesd;\"], [0, \"&timesbar;\"], [1, \"&smashp;\"], [0, \"&lotimes;\"], [0, \"&rotimes;\"], [0, \"&otimesas;\"], [0, \"&Otimes;\"], [0, \"&odiv;\"], [0, \"&triplus;\"], [0, \"&triminus;\"], [0, \"&tritime;\"], [0, \"&intprod;\"], [2, \"&amalg;\"], [0, \"&capdot;\"], [1, \"&ncup;\"], [0, \"&ncap;\"], [0, \"&capand;\"], [0, \"&cupor;\"], [0, \"&cupcap;\"], [0, \"&capcup;\"], [0, \"&cupbrcap;\"], [0, \"&capbrcup;\"], [0, \"&cupcup;\"], [0, \"&capcap;\"], [0, \"&ccups;\"], [0, \"&ccaps;\"], [2, \"&ccupssm;\"], [2, \"&And;\"], [0, \"&Or;\"], [0, \"&andand;\"], [0, \"&oror;\"], [0, \"&orslope;\"], [0, \"&andslope;\"], [1, \"&andv;\"], [0, \"&orv;\"], [0, \"&andd;\"], [0, \"&ord;\"], [1, \"&wedbar;\"], [6, \"&sdote;\"], [3, \"&simdot;\"], [2, { v: \"&congdot;\", n: 824, o: \"&ncongdot;\" }], [0, \"&easter;\"], [0, \"&apacir;\"], [0, { v: \"&apE;\", n: 824, o: \"&napE;\" }], [0, \"&eplus;\"], [0, \"&pluse;\"], [0, \"&Esim;\"], [0, \"&Colone;\"], [0, \"&Equal;\"], [1, \"&ddotseq;\"], [0, \"&equivDD;\"], [0, \"&ltcir;\"], [0, \"&gtcir;\"], [0, \"&ltquest;\"], [0, \"&gtquest;\"], [0, { v: \"&leqslant;\", n: 824, o: \"&nleqslant;\" }], [0, { v: \"&geqslant;\", n: 824, o: \"&ngeqslant;\" }], [0, \"&lesdot;\"], [0, \"&gesdot;\"], [0, \"&lesdoto;\"], [0, \"&gesdoto;\"], [0, \"&lesdotor;\"], [0, \"&gesdotol;\"], [0, \"&lap;\"], [0, \"&gap;\"], [0, \"&lne;\"], [0, \"&gne;\"], [0, \"&lnap;\"], [0, \"&gnap;\"], [0, \"&lEg;\"], [0, \"&gEl;\"], [0, \"&lsime;\"], [0, \"&gsime;\"], [0, \"&lsimg;\"], [0, \"&gsiml;\"], [0, \"&lgE;\"], [0, \"&glE;\"], [0, \"&lesges;\"], [0, \"&gesles;\"], [0, \"&els;\"], [0, \"&egs;\"], [0, \"&elsdot;\"], [0, \"&egsdot;\"], [0, \"&el;\"], [0, \"&eg;\"], [2, \"&siml;\"], [0, \"&simg;\"], [0, \"&simlE;\"], [0, \"&simgE;\"], [0, { v: \"&LessLess;\", n: 824, o: \"&NotNestedLessLess;\" }], [0, { v: \"&GreaterGreater;\", n: 824, o: \"&NotNestedGreaterGreater;\" }], [1, \"&glj;\"], [0, \"&gla;\"], [0, \"&ltcc;\"], [0, \"&gtcc;\"], [0, \"&lescc;\"], [0, \"&gescc;\"], [0, \"&smt;\"], [0, \"&lat;\"], [0, { v: \"&smte;\", n: 65024, o: \"&smtes;\" }], [0, { v: \"&late;\", n: 65024, o: \"&lates;\" }], [0, \"&bumpE;\"], [0, { v: \"&PrecedesEqual;\", n: 824, o: \"&NotPrecedesEqual;\" }], [0, { v: \"&sce;\", n: 824, o: \"&NotSucceedsEqual;\" }], [2, \"&prE;\"], [0, \"&scE;\"], [0, \"&precneqq;\"], [0, \"&scnE;\"], [0, \"&prap;\"], [0, \"&scap;\"], [0, \"&precnapprox;\"], [0, \"&scnap;\"], [0, \"&Pr;\"], [0, \"&Sc;\"], [0, \"&subdot;\"], [0, \"&supdot;\"], [0, \"&subplus;\"], [0, \"&supplus;\"], [0, \"&submult;\"], [0, \"&supmult;\"], [0, \"&subedot;\"], [0, \"&supedot;\"], [0, { v: \"&subE;\", n: 824, o: \"&nsubE;\" }], [0, { v: \"&supE;\", n: 824, o: \"&nsupE;\" }], [0, \"&subsim;\"], [0, \"&supsim;\"], [2, { v: \"&subnE;\", n: 65024, o: \"&varsubsetneqq;\" }], [0, { v: \"&supnE;\", n: 65024, o: \"&varsupsetneqq;\" }], [2, \"&csub;\"], [0, \"&csup;\"], [0, \"&csube;\"], [0, \"&csupe;\"], [0, \"&subsup;\"], [0, \"&supsub;\"], [0, \"&subsub;\"], [0, \"&supsup;\"], [0, \"&suphsub;\"], [0, \"&supdsub;\"], [0, \"&forkv;\"], [0, \"&topfork;\"], [0, \"&mlcp;\"], [8, \"&Dashv;\"], [1, \"&Vdashl;\"], [0, \"&Barv;\"], [0, \"&vBar;\"], [0, \"&vBarv;\"], [1, \"&Vbar;\"], [0, \"&Not;\"], [0, \"&bNot;\"], [0, \"&rnmid;\"], [0, \"&cirmid;\"], [0, \"&midcir;\"], [0, \"&topcir;\"], [0, \"&nhpar;\"], [0, \"&parsim;\"], [9, { v: \"&parsl;\", n: 8421, o: \"&nparsl;\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"&Ascr;\"], [1, \"&Cscr;\"], [0, \"&Dscr;\"], [2, \"&Gscr;\"], [2, \"&Jscr;\"], [0, \"&Kscr;\"], [2, \"&Nscr;\"], [0, \"&Oscr;\"], [0, \"&Pscr;\"], [0, \"&Qscr;\"], [1, \"&Sscr;\"], [0, \"&Tscr;\"], [0, \"&Uscr;\"], [0, \"&Vscr;\"], [0, \"&Wscr;\"], [0, \"&Xscr;\"], [0, \"&Yscr;\"], [0, \"&Zscr;\"], [0, \"&ascr;\"], [0, \"&bscr;\"], [0, \"&cscr;\"], [0, \"&dscr;\"], [1, \"&fscr;\"], [1, \"&hscr;\"], [0, \"&iscr;\"], [0, \"&jscr;\"], [0, \"&kscr;\"], [0, \"&lscr;\"], [0, \"&mscr;\"], [0, \"&nscr;\"], [1, \"&pscr;\"], [0, \"&qscr;\"], [0, \"&rscr;\"], [0, \"&sscr;\"], [0, \"&tscr;\"], [0, \"&uscr;\"], [0, \"&vscr;\"], [0, \"&wscr;\"], [0, \"&xscr;\"], [0, \"&yscr;\"], [0, \"&zscr;\"], [52, \"&Afr;\"], [0, \"&Bfr;\"], [1, \"&Dfr;\"], [0, \"&Efr;\"], [0, \"&Ffr;\"], [0, \"&Gfr;\"], [2, \"&Jfr;\"], [0, \"&Kfr;\"], [0, \"&Lfr;\"], [0, \"&Mfr;\"], [0, \"&Nfr;\"], [0, \"&Ofr;\"], [0, \"&Pfr;\"], [0, \"&Qfr;\"], [1, \"&Sfr;\"], [0, \"&Tfr;\"], [0, \"&Ufr;\"], [0, \"&Vfr;\"], [0, \"&Wfr;\"], [0, \"&Xfr;\"], [0, \"&Yfr;\"], [1, \"&afr;\"], [0, \"&bfr;\"], [0, \"&cfr;\"], [0, \"&dfr;\"], [0, \"&efr;\"], [0, \"&ffr;\"], [0, \"&gfr;\"], [0, \"&hfr;\"], [0, \"&ifr;\"], [0, \"&jfr;\"], [0, \"&kfr;\"], [0, \"&lfr;\"], [0, \"&mfr;\"], [0, \"&nfr;\"], [0, \"&ofr;\"], [0, \"&pfr;\"], [0, \"&qfr;\"], [0, \"&rfr;\"], [0, \"&sfr;\"], [0, \"&tfr;\"], [0, \"&ufr;\"], [0, \"&vfr;\"], [0, \"&wfr;\"], [0, \"&xfr;\"], [0, \"&yfr;\"], [0, \"&zfr;\"], [0, \"&Aopf;\"], [0, \"&Bopf;\"], [1, \"&Dopf;\"], [0, \"&Eopf;\"], [0, \"&Fopf;\"], [0, \"&Gopf;\"], [1, \"&Iopf;\"], [0, \"&Jopf;\"], [0, \"&Kopf;\"], [0, \"&Lopf;\"], [0, \"&Mopf;\"], [1, \"&Oopf;\"], [3, \"&Sopf;\"], [0, \"&Topf;\"], [0, \"&Uopf;\"], [0, \"&Vopf;\"], [0, \"&Wopf;\"], [0, \"&Xopf;\"], [0, \"&Yopf;\"], [1, \"&aopf;\"], [0, \"&bopf;\"], [0, \"&copf;\"], [0, \"&dopf;\"], [0, \"&eopf;\"], [0, \"&fopf;\"], [0, \"&gopf;\"], [0, \"&hopf;\"], [0, \"&iopf;\"], [0, \"&jopf;\"], [0, \"&kopf;\"], [0, \"&lopf;\"], [0, \"&mopf;\"], [0, \"&nopf;\"], [0, \"&oopf;\"], [0, \"&popf;\"], [0, \"&qopf;\"], [0, \"&ropf;\"], [0, \"&sopf;\"], [0, \"&topf;\"], [0, \"&uopf;\"], [0, \"&vopf;\"], [0, \"&wopf;\"], [0, \"&xopf;\"], [0, \"&yopf;\"], [0, \"&zopf;\"]])) }], [8906, \"&fflig;\"], [0, \"&filig;\"], [0, \"&fllig;\"], [0, \"&ffilig;\"], [0, \"&ffllig;\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \"&quot;\"],\n [38, \"&amp;\"],\n [39, \"&apos;\"],\n [60, \"&lt;\"],\n [62, \"&gt;\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `&#xfc;`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \"&quot;\"],\n [38, \"&amp;\"],\n [160, \"&nbsp;\"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&amp;\"],\n [60, \"&lt;\"],\n [62, \"&gt;\"],\n [160, \"&nbsp;\"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `&#xfc;`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `&#xfc;`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \"&quot;\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOuterHTML = getOuterHTML;\nexports.getInnerHTML = getInnerHTML;\nexports.getText = getText;\nexports.textContent = textContent;\nexports.innerText = innerText;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChildren = getChildren;\nexports.getParent = getParent;\nexports.getSiblings = getSiblings;\nexports.getAttributeValue = getAttributeValue;\nexports.hasAttrib = hasAttrib;\nexports.getName = getName;\nexports.nextElementSibling = nextElementSibling;\nexports.prevElementSibling = prevElementSibling;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeElement = removeElement;\nexports.replaceElement = replaceElement;\nexports.appendChild = appendChild;\nexports.append = append;\nexports.prependChild = prependChild;\nexports.prepend = prepend;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filter = filter;\nexports.find = find;\nexports.findOneChild = findOneChild;\nexports.findOne = findOne;\nexports.existsOne = existsOne;\nexports.findAll = findAll;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n /** Stack of the indices within the arrays. */\n var indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var searchedNodes = Array.isArray(nodes) ? nodes : [nodes];\n for (var i = 0; i < searchedNodes.length; i++) {\n var node = searchedNodes[i];\n if ((0, domhandler_1.isTag)(node) && test(node)) {\n return node;\n }\n if (recurse && (0, domhandler_1.hasChildren)(node) && node.children.length > 0) {\n var found = findOne(test, node.children, true);\n if (found)\n return found;\n }\n }\n return null;\n}\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return (Array.isArray(nodes) ? nodes : [nodes]).some(function (node) {\n return ((0, domhandler_1.isTag)(node) && test(node)) ||\n ((0, domhandler_1.hasChildren)(node) && existsOne(test, node.children));\n });\n}\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n var indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if ((0, domhandler_1.isTag)(elem) && test(elem))\n result.push(elem);\n if ((0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n//# sourceMappingURL=querying.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.testElement = testElement;\nexports.getElements = getElements;\nexports.getElementById = getElementById;\nexports.getElementsByTagName = getElementsByTagName;\nexports.getElementsByClassName = getElementsByClassName;\nexports.getElementsByTagType = getElementsByTagType;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `className`.\n *\n * @category Legacy Query Functions\n * @param className Class name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `className`.\n */\nfunction getElementsByClassName(className, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(getAttribCheck(\"class\", className), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DocumentPosition = void 0;\nexports.removeSubsets = removeSubsets;\nexports.compareDocumentPosition = compareDocumentPosition;\nexports.uniqueSort = uniqueSort;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (exports.DocumentPosition = DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = getFeed;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup <img srcset=\"here\">\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","export default {}","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n\n let aside = text => text\n let mark = text => text\n let highlight = text => text\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n if (terminalHighlight) {\n highlight = text => terminalHighlight(text)\n }\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n let maxWidth = String(end).length\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20\n let subLineStart = Math.max(0, this.column - padding)\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n )\n let subLine = line.slice(subLineStart, subLineEnd)\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line\n .slice(0, Math.min(this.column - 1, padding - 1))\n .replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(subLine) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(line) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n return ' ' + aside(gutter) + highlight(line)\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nfunction sourceOffset(inputCSS, position) {\n // Not all custom syntaxes support `offset` in `source.start` and `source.end`\n if (position && typeof position.offset !== 'undefined') {\n return position.offset\n }\n\n let column = 1\n let line = 1\n let offset = 0\n\n for (let i = 0; i < inputCSS.length; i++) {\n if (line === position.line && column === position.column) {\n offset = i\n break\n }\n\n if (inputCSS[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return offset\n}\n\nclass Node {\n get proxyOf() {\n return this\n }\n\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts = {}) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let inputString =\n 'document' in this.source.input\n ? this.source.input.document\n : this.source.input.css\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n )\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n positionInside(index) {\n let column = this.source.start.column\n let line = this.source.start.line\n let inputString =\n 'document' in this.source.input\n ? this.source.input.document\n : this.source.input.css\n let offset = sourceOffset(inputString, this.source.start)\n let end = offset + index\n\n for (let i = offset; i < end; i++) {\n if (inputString[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line, offset: end }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts = {}) {\n let inputString =\n 'document' in this.source.input\n ? this.source.input.document\n : this.source.input.css\n let start = {\n column: this.source.start.column,\n line: this.source.start.line,\n offset: sourceOffset(inputString, this.source.start)\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line,\n offset:\n typeof this.source.end.offset === 'number'\n ? // `source.end.offset` is exclusive, so we don't need to add 1\n this.source.end.offset\n : // Since line/column in this.source.end is inclusive,\n // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n // So, we add 1 to convert it to exclusive.\n sourceOffset(inputString, this.source.end) + 1\n }\n : {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n }\n\n if (opts.word) {\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n )\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(index + opts.word.length)\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line,\n offset: sourceOffset(inputString, opts.start)\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line,\n offset: sourceOffset(inputString, opts.end)\n }\n } else if (typeof opts.endIndex === 'number') {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n if (value == null) continue\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts = {}) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Node = require('./node')\nlet { isClean, my } = require('./symbols')\n\nlet AtRule, parse, Root, Rule\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markTreeDirty(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markTreeDirty(i)\n }\n }\n}\n\nclass Container extends Node {\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (typeof nodes === 'undefined') {\n nodes = []\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markTreeDirty(i)\n\n if (!i.raws) i.raws = {}\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nmodule.exports = { nanoid, customAlphabet }\n","'use strict'\n\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n let uriMatch = text.match(charsetUri) || text.match(uri)\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length))\n }\n\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet { nanoid } = require('nanoid/non-secure')\nlet { isAbsolute, resolve } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\nlet terminalHighlight = require('./terminal-highlight')\n\nlet lineToIndexCache = Symbol('lineToIndexCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nfunction getLineToIndex(input) {\n if (input[lineToIndexCache]) return input[lineToIndexCache]\n let lines = input.css.split('\\n')\n let lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n input[lineToIndexCache] = lineToIndex\n return lineToIndex\n}\n\nclass Input {\n get from() {\n return this.file || this.id\n }\n\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n this.document = this.css\n if (opts.document) this.document = opts.document.toString()\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let endColumn, endLine, endOffset, offset, result\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n offset = start.offset\n let pos = this.fromOffset(offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n offset = this.fromLineAndColumn(line, column)\n }\n if (typeof end.offset === 'number') {\n endOffset = end.offset\n let pos = this.fromOffset(endOffset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n endOffset = this.fromLineAndColumn(end.line, end.column)\n }\n } else if (!column) {\n offset = line\n let pos = this.fromOffset(offset)\n line = pos.line\n column = pos.col\n } else {\n offset = this.fromLineAndColumn(line, column)\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromLineAndColumn(line, column) {\n let lineToIndex = getLineToIndex(this)\n let index = lineToIndex[line - 1]\n return index + column - 1\n }\n\n fromOffset(offset) {\n let lineToIndex = getLineToIndex(this)\n let lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Input = require('./input')\nlet PreviousMap = require('./previous-map')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { dirname, relative, resolve, sep } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = null\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.startsWith('# sourceMappingURL=')) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n })\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let last, lines\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, content, escape, next, quote\n let currentToken, escaped, escapePos, n, prev\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet tokenizer = require('./tokenize')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let prev, token, type\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().startsWith('!') && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().startsWith('!')) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n prev.source.end = this.getPosition(token[2])\n prev.source.end.offset += prev.raws.ownSemicolon.length\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word ' + tokens[0][1],\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet Container = require('./container')\nlet Input = require('./input')\nlet Parser = require('./parser')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n get content() {\n return this.css\n }\n\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = ''\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nlet Container = require('./container')\nlet Document = require('./document')\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nlet Result = require('./result')\nlet Root = require('./root')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\nlet warnOnce = require('./warn-once')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nconst Result = require('./result')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\n\nclass NoWorkResult {\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n } else {\n map.clearAnnotation()\n this.result.css = map.css\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet Document = require('./document')\nlet LazyResult = require('./lazy-result')\nlet NoWorkResult = require('./no-work-result')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.5.6'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Container = require('./container')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet Document = require('./document')\nlet fromJSON = require('./fromJSON')\nlet Input = require('./input')\nlet LazyResult = require('./lazy-result')\nlet list = require('./list')\nlet Node = require('./node')\nlet parse = require('./parse')\nlet Processor = require('./processor')\nlet Result = require('./result.js')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet stringify = require('./stringify')\nlet Warning = require('./warning')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.openingTagLength = 0;\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n if (options.onOpenTag) {\n options.onOpenTag(name, attribs);\n }\n\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n // We want the contents but not this tag\n if (frame.innerText && !hasText) {\n const escaped = escapeHtml(frame.innerText);\n if (options.textFilter) {\n result += options.textFilter(escaped, name);\n } else {\n result += escaped;\n }\n addedText = true;\n }\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n const isBeingEscaped = skip && (options.disallowedTagsMode === 'escape' || options.disallowedTagsMode === 'recursiveEscape');\n const shouldPreserveEscapedAttributes = isBeingEscaped && options.preserveEscapedAttributes;\n\n if (shouldPreserveEscapedAttributes) {\n each(attribs, function(value, a) {\n result += ' ' + a + '=\"' + escapeHtml((value || ''), true) + '\"';\n });\n } else if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, check if the attribute is in the allowedEmptyAttributes array.\n // If it is not in the allowedEmptyAttributes array, and it is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (!options.allowedEmptyAttributes.includes(a)) &&\n (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesRegex = allowedClassesRegexMap['*'];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex, allowedWildcardClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}', { map: false });\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n } else if (options.allowedEmptyAttributes.includes(a)) {\n result += '=\"\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n frame.openingTagLength = result.length - frame.tagPosition;\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'completelyDiscard' && !tagAllowed(tag)) {\n text = '';\n } else if ((options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else if (!addedText) {\n const escaped = escapeHtml(text, false);\n if (options.textFilter) {\n result += options.textFilter(escaped, tag);\n } else {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n if (options.onCloseTag) {\n options.onCloseTag(name, isImplied);\n }\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter) {\n const filterResult = options.exclusiveFilter(frame);\n if (filterResult === 'excludeTag') {\n if (skip) {\n // no longer escaping the tag since it's not added at all\n result = tempResult;\n tempResult = '';\n }\n // remove the opening tag from the result\n result = result.substring(0, frame.tagPosition) + result.substring(frame.tagPosition + frame.openingTagLength);\n return;\n } else if (filterResult) {\n result = result.substring(0, frame.tagPosition);\n return;\n }\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '</' + name + '>';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n if (quote) {\n s = s.replace(/\"/g, '&quot;');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&amp;') // Match ampersands not part of existing HTML entity\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;');\n if (quote) {\n s = s.replace(/\"/g, '&quot;');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('<!--');\n if (firstIndex === -1) {\n break;\n }\n const lastIndex = href.indexOf('-->', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'menu', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n allowedEmptyAttributes: [\n 'alt'\n ],\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true,\n preserveEscapedAttributes: false\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\n };\n};\n","import { $isLinkNode, TOGGLE_LINK_COMMAND } from '@lexical/link';\nimport {\n $isListItemNode,\n $isListNode,\n INSERT_UNORDERED_LIST_COMMAND,\n REMOVE_LIST_COMMAND,\n} from '@lexical/list';\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { mergeRegister } from '@lexical/utils';\nimport cx from 'classix';\nimport { $getSelection, $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical';\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport { Input } from '../input';\nimport styles from './styles.module.css';\n\nexport const Toolbar = () => {\n const [editor] = useLexicalComposerContext();\n const [isBold, setIsBold] = useState(false);\n const [isItalic, setIsItalic] = useState(false);\n const [isLink, setIsLink] = useState(false);\n const [isList, setIsList] = useState(false);\n const [link, setLink] = useState('');\n const linkInput = useRef<HTMLInputElement>(null);\n\n const handleSetLink = () => {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, {\n url: link,\n target: '_blank',\n });\n };\n\n const updateToolbar = useCallback(() => {\n const selection = $getSelection();\n\n if ($isRangeSelection(selection)) {\n const nodes = selection.getNodes();\n\n setIsBold(selection.hasFormat('bold'));\n setIsItalic(selection.hasFormat('italic'));\n\n nodes.every((node) => {\n const parent = node.getParent();\n\n setIsList($isListNode(parent) || $isListItemNode(parent));\n\n if ($isLinkNode(parent)) {\n setIsLink(true);\n setLink(parent.getURL());\n } else {\n setIsLink(false);\n setLink('');\n }\n });\n }\n }, []);\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n editorState.read(() => {\n updateToolbar();\n });\n })\n );\n }, [editor, updateToolbar]);\n\n return (\n <div className={styles.toolbar}>\n <Button\n className={cx(isBold && styles.active)}\n onClick={() => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'bold');\n }}\n title='Bold'\n variant='minimal'\n >\n <Icon name='bold' />\n </Button>\n <Button\n className={cx(isItalic && styles.active)}\n onClick={() => {\n editor.dispatchCommand(FORMAT_TEXT_COMMAND, 'italic');\n }}\n title='Italic'\n variant='minimal'\n >\n <Icon name='italic' />\n </Button>\n <Button\n className={cx(isList && styles.active)}\n onClick={() => {\n if (isList) {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);\n } else {\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined);\n }\n }}\n title='List'\n variant='minimal'\n >\n <Icon name='list' />\n </Button>\n <Button\n className={cx(isLink && styles.active)}\n onClick={() => {\n if (isLink) {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);\n } else {\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, { url: 'https://' });\n setTimeout(() => linkInput.current!.focus(), 0);\n }\n }}\n title='Link'\n variant='minimal'\n >\n <Icon name='link' />\n </Button>\n <Input\n className={cx(isLink && styles.active)}\n onBlur={() => handleSetLink()}\n onChange={(e) => setLink(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleSetLink();\n }\n }}\n ref={linkInput}\n value={link}\n />\n </div>\n );\n};\n","const MATCH_EMAIL =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/;\n\nconst MATCH_URL =\n /((https?:\\/\\/(www\\.)?)|(www\\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\n\nexport const linkMatchers = [\n (text: string) => {\n const match = MATCH_EMAIL.exec(text);\n return match?.length\n ? {\n index: match.index,\n length: match[0].length,\n text: match[0],\n url: `mailto:${match[0]}`,\n }\n : null;\n },\n (text: string) => {\n const match = MATCH_URL.exec(text);\n return match?.length\n ? {\n index: match.index,\n length: match[0].length,\n text: match[0],\n url: match[0].startsWith('http') ? match[0] : `https://${match[0]}`,\n }\n : null;\n },\n];\n\nexport function isValidUrl(string: string) {\n try {\n const url = new URL(string);\n return url.protocol === 'http:' || url.protocol === 'https:';\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return false;\n }\n}\n","import { $generateHtmlFromNodes, $generateNodesFromDOM } from '@lexical/html';\nimport { AutoLinkNode, LinkNode } from '@lexical/link';\nimport { ListItemNode, ListNode } from '@lexical/list';\nimport { AutoFocusPlugin } from '@lexical/react/LexicalAutoFocusPlugin';\nimport { AutoLinkPlugin } from '@lexical/react/LexicalAutoLinkPlugin';\nimport { LexicalComposer } from '@lexical/react/LexicalComposer';\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';\nimport { ContentEditable } from '@lexical/react/LexicalContentEditable';\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary';\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin';\nimport { LinkPlugin } from '@lexical/react/LexicalLinkPlugin';\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin';\nimport { OnChangePlugin } from '@lexical/react/LexicalOnChangePlugin';\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin';\nimport { $getRoot, $insertNodes, $setSelection } from 'lexical';\nimport { useEffect } from 'react';\nimport sanitizeHtml from 'sanitize-html';\n\nimport styles from './styles.module.css';\nimport { Toolbar } from './toolbar';\nimport { isValidUrl, linkMatchers } from './utils';\n\nexport type EditorProps = {\n autofocus?: boolean;\n autolink?: boolean;\n content?: string;\n inline?: boolean;\n onChange?: (html: string) => void;\n};\n\nfunction InitializePlugin({ content }: EditorProps) {\n const [editor] = useLexicalComposerContext();\n\n useEffect(() => {\n editor.update(() => {\n const parser = new DOMParser();\n const dom = parser.parseFromString(content ?? '', 'text/html');\n const nodes = $generateNodesFromDOM(editor, dom);\n\n $getRoot().clear().select();\n $insertNodes(nodes);\n $setSelection(null);\n });\n }, [editor, content]);\n\n return null;\n}\n\nexport const Editor = ({\n autofocus = false,\n autolink = false,\n content,\n inline = false,\n onChange,\n}: EditorProps) => {\n const config = {\n namespace: 'Editor',\n theme: {\n link: styles.link,\n list: {\n ol: styles.list,\n ul: styles.list,\n },\n paragraph: styles.paragraph,\n text: {\n bold: styles.bold,\n italic: styles.italic,\n },\n },\n onError(error: unknown) {\n throw error;\n },\n nodes: [AutoLinkNode, LinkNode, ListNode, ListItemNode],\n };\n\n return (\n <div className={styles.editor}>\n <LexicalComposer initialConfig={config}>\n {!inline && <Toolbar />}\n <RichTextPlugin\n contentEditable={<ContentEditable />}\n ErrorBoundary={LexicalErrorBoundary}\n />\n {autofocus && <AutoFocusPlugin />}\n {autolink && <AutoLinkPlugin matchers={linkMatchers} />}\n <HistoryPlugin />\n {content && <InitializePlugin content={content} />}\n <LinkPlugin validateUrl={isValidUrl} />\n <ListPlugin />\n {onChange && (\n <OnChangePlugin\n onChange={(editorState, editor) => {\n editorState.read(() => {\n const html = $generateHtmlFromNodes(editor, null);\n const cleanHtml = sanitizeHtml(html, {\n allowedTags: ['a', 'b', 'br', 'i', 'li', 'ol', 'p', 'ul'],\n });\n onChange(cleanHtml);\n });\n }}\n />\n )}\n </LexicalComposer>\n </div>\n );\n};\n"],"names":["e","t","n","r","i","s","o","l","c","a","u","f","d","h","g","_","p","y","m","x","v","S","C","T","k","b","w","N","E","P","F","L","O","D","M","I","A","B","z","W","R","K","J","$","U","V","j","H","q","G","Q","X","Y","Z","ee","te","ne","re","ie","se","oe","le","ce","ae","ue","he","ge","me","xe","ve","Se","Ce","Te","ke","be","we","Ne","Ee","Pe","Fe","Le","Oe","De","Me","Ie","Ae","Be","ze","We","Re","Ke","Je","$e","Ue","Ve","je","kt","He","vn","zt","qe","ki","Ge","An","rn","Ct","Es","Pt","Qe","Ss","Ri","hi","Tt","Ft","Zt","Xe","Ye","an","Ze","et","ls","tt","nt","rt","bs","it","ot","lt","bt","ft","ct","ut","at","Hs","dt","ht","gt","_t","pt","Gr","yt","is","ss","os","mt","xt","vt","St","rs","wt","Nt","Et","Lt","Ot","Dt","Mt","It","At","Bt","Ki","di","Wt","Rt","Kt","Jt","$t","Ut","Vt","jt","Ht","qt","Gt","Xt","Yt","en","ms","tn","Fs","nn","cn","fn","dn","gn","_n","yn","mn","xn","Cn","Tn","kn","bn","wn","Nn","En","Pn","Fn","Ln","On","Dn","Mn","Bn","zn","Wn","Rn","Kn","Jn","$n","Un","Vn","jn","Hn","qn","Gn","Qn","Xn","Yn","Zn","er","tr","nr","xr","gr","rr","ir","sr","or","lr","cr","ar","dr","fr","pr","ur","hr","_r","yr","Ws","mr","vr","Sr","Cr","Tr","kr","Fr","Pr","Lr","Br","Ar","Dr","wr","Wi","br","Nr","Er","Or","Mr","Ir","As","zr","Wr","Rr","Kr","Jr","$r","Ur","Ui","wi","Ji","Vr","Si","zs","jr","Qr","Hr","qr","Xr","Yr","Zr","ei","ti","ni","ri","ci","si","fi","ii","Ii","Vi","gi","oi","li","pi","ai","ui","_i","yi","mi","xi","vi","Ci","Ti","bi","Ei","Di","Oi","Gi","Bi","Pi","Ni","Fi","Li","Mi","Ai","$i","ji","Hi","Qi","Xi","Yi","Zi","es","ts","ns","cs","as","us","fs","ds","hs","gs","_s","ps","Vs","ys","vs","xs","Ls","Cs","Ts","ks","ws","Ns","Ps","Ms","Os","Ds","Is","Bs","Rs","Ks","Us","js","a$3","f$2","st","decodeDataHtml","decodeDataXml","_a","exports","decodeMap","codePoint","output","replaceCodePoint","decodeCodePoint","__createBinding","this","k2","desc","__setModuleDefault","__importStar","mod","result","__importDefault","decode_data_html_js_1","require$$0","decode_data_xml_js_1","require$$1","decode_codepoint_js_1","require$$2","decode_codepoint_js_2","CharCodes","TO_LOWER_BIT","BinTrieFlags","isNumber","code","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","errors","decodeMode","str","offset","start","end","base","digitCount","startIdx","char","lastCp","expectedLength","current","valueLength","determineBranch","_b","consumed","getDecoder","ret","decoder","lastIndex","len","nodeIdx","branchCount","jumpOffset","value","lo","mid","midVal","htmlDecoder","xmlDecoder","decodeHTML","mode","decodeHTMLAttribute","decodeHTMLStrict","decodeXML","decode_js_1","State","isWhitespace","isEndOfTagSection","isASCIIAlpha","isHexDigit","QuoteType","Sequences","Tokenizer","cbs","xmlMode","_c","decodeEntities","chunk","isEnd","isMatch","endOfText","actualIndex","sequence","lower","quote","masked","entityStart","strict","numberStart","endIndex","cp","Parser_1","Tokenizer_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","Parser","options","_d","_e","data","index","name","impliesClose","element","isImplied","_f","pos","count","isOpenImplied","_g","_h","_j","_k","slice","ElementType","isTag","elem","__extends","extendStatics","__","__assign","node","domelementtype_1","Node","parent","prev","next","recursive","cloneNode","DataNode","_super","_this","Text","Comment","ProcessingInstruction","NodeWithChildren","children","CDATA","Document","Element","attribs","type","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","clone_1","child","clone_2","clone_3","instruction","childs","__exportStar","node_js_1","defaultOpts","DomHandler","callback","elementCB","parser","error","lastNode","text","previousSibling","encodeHtml","restoreDiff","arr","xmlCodeMap","encodeXML","lastIdx","match","getEscaper","regex","map","encode","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTML","encodeHTMLTrieRe","encodeNonAsciiHTML","regExp","nextChar","encode_js_1","EntityLevel","EncodingMode","decode","level","decodeStrict","opts","escape_js_2","encode_js_2","decode_js_2","foreignNames","val","lib","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","formatAttributes","attributes","key","singleTag","render","nodes","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","tag","stringify","getOuterHTML","getInnerHTML","getText","textContent","innerText","domhandler_1","dom_serializer_1","traversal","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","getName","nextElementSibling","prevElementSibling","siblings","manipulation","removeElement","replaceElement","appendChild","append","prependChild","prepend","childsIndex","replacement","sibling","currNext","querying","filter","find","findOneChild","findOne","existsOne","findAll","test","recurse","limit","nodeStack","indexStack","searchedNodes","found","legacy","testElement","getElements","getElementById","getElementsByTagName","getElementsByClassName","getElementsByTagType","querying_js_1","Checks","getAttribCheck","attrib","combineFuncs","compileTest","funcs","id","tagName","className","helpers","removeSubsets","compareDocumentPosition","uniqueSort","idx","ancestor","DocumentPosition","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","relative","feeds","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","feed","item","entry","getMediaElements","addConditionally","href","description","fetch","pubDate","updated","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","media","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","obj","prop","require$$3","require$$4","require$$5","require$$6","require$$7","Parser_js_1","Parser_js_2","domhandler_2","parseDocument","handler","parseDOM","createDomStream","elementCallback","domutils_1","domutils_2","parseFeedDefaultOptions","parseFeed","escapeStringRegexp","string","isPlainObject_1","isObject","isPlainObject","ctor","prot","isMergeableObject","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","target","source","getMergeFunction","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","object","property","propertyIsUnsafe","mergeObject","destination","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","array","deepmerge_1","cjs","root","factory","module","input","isSpace","collectCharacters","regEx","chars","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","url","descriptors","currentDescriptor","state","candidates","parseDescriptors","tokenize","pError","candidate","lastChar","intVal","floatVal","create","picocolors_browserModule","__viteBrowserExternal","pico","terminalHighlight","CssSyntaxError","message","line","column","file","plugin","color","css","aside","mark","highlight","bold","gray","red","lines","maxWidth","number","gutter","padding","subLineStart","subLineEnd","subLine","spacing","cssSyntaxError","DEFAULT_RAW","capitalize","Stringifier$2","builder","semicolon","params","detect","buf","depth","indent","step","between","after","last","before","left","right","own","method","parts","raw","stringifier","Stringifier","stringify_1","symbols","isClean","my","cloned","sourceOffset","inputCSS","position","Node$5","defaults","add","overrides","keepBetween","inputString","defaultType","bookmark","foundSelf","inputs","fixed","emitInputs","inputsNextIndex","inputId","comment","declaration","Declaration","AtRule","parse","Root","Rule","cleanSource","markTreeDirty","Container","iterator","condition","args","cb","other","exist","existIndex","sample","pattern","decl","selector","dependant","container","atRule","LazyResult","Processor","document","urlAlphabet","nanoid","size","nonSecure","existsSync","readFileSync","dirname","join","SourceMapConsumer","SourceMapGenerator","fromBase64","PreviousMap$2","baseCharsetUri","baseUri","charsetUri","uri","uriMatch","baseUriMatch","encoding","sourceMapString","comments","path","prevPath","previousMap","PreviousMap","isAbsolute","resolve","fileURLToPath","pathToFileURL","lineToIndexCache","sourceMapAvailable","pathAvailable","getLineToIndex","lineToIndex","prevIndex","Input$4","endColumn","endLine","endOffset","origin","lastLine","min","max","consumer","from","to","fromUrl","json","Input","ignore","list","spaces","separators","split","func","inQuote","prevQuote","escape","letter","list_1","values","sep","rule","fromJSON","ownInputs","inputHydrated","fromJSON_1","MapGenerator$2","cssString","content","eol","noSource","mapping","annotation","cached","already","fileURL","mapGenerator","MapGenerator","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","currentToken","escaped","escapePos","length","buffer","returned","unclosed","what","endOfFile","nextToken","ignoreUnclosed","controlChar","back","token","tokenizer","SAFE_COMMENT_NEIGHBOR","findLastWithPosition","tokens","Parser$1","shift","open","brackets","colon","founded","customProperty","firstSpaces","cache","bracket","clean","all","lastTokenType","parse_1","Warning$2","range","opt","warning","Warning","Result$3","processor","Result","printed","warnOnce","require$$8","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","CHILDREN","isPromise","getEvents","toStack","events","cleanMarks","postcss","LazyResult$2","onRejected","onFinally","pluginName","pluginVer","runtimeVer","err","event","promise","stack","visitor","roots","subRoot","onFulfilled","visitors","visit","lazyResult","NoWorkResult$1","self","generatedCSS","generatedMap","noWorkResult","NoWorkResult","Processor$1","plugins","normalized","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","initializer","warningPrinted","creator","transformer","processOpts","pluginOpts","postcss_1","htmlparser","parseSrcset","postcssParse","mediaTags","vulnerableTags","each","has","isEmptyObject","stringifySrcset","parsedSrcset","part","sanitizeHtml_1","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","that","parentFrame","htmlParserDefaults","tagAllowed","nonTextTagsArray","allowedAttributesMap","allowedAttributesGlobMap","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","classes","transformTagsMap","transformTagsAll","transform","transFun","skipMap","transformMap","skipText","skipTextDepth","addedText","initializeState","frame","skip","hasText","transformedTag","escapeHtml","passedAllowedAttributesMapCheck","newValue","splitStrArray","naughtyHref","allowed","parsed","parseUrl","allowedHostname","hostname","allowedDomain","domain","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedWildcardClassesRegex","allowedWildcardClassesGlob","allowedClassesGlobs","filterClasses","abstractSyntaxTree","filteredAST","filterCss","stringifyStyleAttributes","lastFrame","filterResult","firstIndex","matches","scheme","allowedStyles","astRules","selectedRule","filterDeclarations","extractedAttributes","attrObject","allowedDeclarationsList","attributeObject","regularExpression","allowedGlobs","clss","glob","newTagName","newAttribs","merge","Toolbar","editor","useLexicalComposerContext","isBold","setIsBold","useState","isItalic","setIsItalic","isLink","setIsLink","isList","setIsList","link","setLink","linkInput","useRef","handleSetLink","TOGGLE_LINK_COMMAND","updateToolbar","useCallback","selection","$getSelection","$isRangeSelection","$isListNode","$isListItemNode","$isLinkNode","useEffect","mergeRegister","editorState","jsxs","styles","jsx","Button","cx","FORMAT_TEXT_COMMAND","Icon","REMOVE_LIST_COMMAND","INSERT_UNORDERED_LIST_COMMAND","MATCH_EMAIL","MATCH_URL","linkMatchers","isValidUrl","InitializePlugin","dom","$generateNodesFromDOM","$getRoot","$insertNodes","$setSelection","Editor","autofocus","autolink","inline","onChange","config","AutoLinkNode","LinkNode","ListNode","ListItemNode","LexicalComposer","RichTextPlugin","ContentEditable","LexicalErrorBoundary","AutoFocusPlugin","AutoLinkPlugin","HistoryPlugin","LinkPlugin","ListPlugin","OnChangePlugin","$generateHtmlFromNodes","cleanHtml"],"mappings":";;;;;;;;AAQA,SAASA,GAAEA,GAAE;AAAC,SAAM,CAAA;AAAE;AAAM,MAACC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,IAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAE,CAAA,GAAGC,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,UAAmC,OAAO,SAAS,kBAAzB,QAAuCC,KAAED,MAAG,kBAAiB,WAAS,SAAS,eAAa,MAAKE,KAAEF,MAAG,uBAAuB,KAAK,UAAU,QAAQ,GAAEG,KAAEH,MAAG,mCAAmC,KAAK,UAAU,SAAS,GAAEI,KAAE,EAAE,CAACJ,MAAG,EAAE,gBAAe,WAASC,OAAI,qBAAoB,IAAI,OAAO,WAAW,OAAO,GAAEI,KAAEL,MAAG,0BAA0B,KAAK,UAAU,SAAS,GAAEM,KAAEN,MAAG,mBAAmB,KAAK,UAAU,SAAS,KAAG,CAAC,OAAO,UAASO,KAAEP,MAAG,UAAU,KAAK,UAAU,SAAS,GAAEQ,KAAGR,MAAG,mBAAmB,KAAK,UAAU,SAAS,GAAES,KAAGT,MAAGO,MAAGC,IAAGE,KAAGV,MAAG,sBAAsB,KAAK,UAAU,SAAS,KAAG,CAACQ,IAAGG,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAYC,KAAG,GAAEC,KAAG,GAAoBC,KAAG,KAAIC,KAAG,OAAK,IAAEH,KAAGC,MAAIC,IAAGE,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAG,GAAEC,KAAGxB,MAAGC,MAAGI,KAAG,MAAI,KAAIoB,KAAG;AAAA;AAAA,GAAOC,KAAG5B,KAAE,MAAI0B,IAAGG,KAAG,aAAYC,KAAG,mCAAkCC,KAAG,IAAI,OAAO,QAAMD,KAAG,QAAMD,KAAG,GAAG,GAAEG,KAAG,IAAI,OAAO,QAAMH,KAAG,QAAMC,KAAG,GAAG,GAAEG,KAAG,EAAC,MAAK,GAAE,MAAK,IAAG,WAAUf,IAAG,QAAO,GAAE,eAAcF,IAAG,WAAU,IAAG,aAAY,IAAG,WAAUC,GAAE,GAAEiB,KAAG,EAAC,eAAc,GAAE,aAAY,EAAC,GAAEC,KAAG,EAAC,QAAOd,IAAG,KAAII,IAAG,SAAQF,IAAG,MAAKH,IAAG,OAAME,IAAG,OAAME,GAAE,GAAEY,KAAG,EAAC,CAACf,EAAE,GAAE,UAAS,CAACI,EAAE,GAAE,OAAM,CAACF,EAAE,GAAE,WAAU,CAACH,EAAE,GAAE,QAAO,CAACE,EAAE,GAAE,SAAQ,CAACE,EAAE,GAAE,QAAO,GAAEa,KAAG,EAAC,QAAO,GAAE,WAAU,GAAE,OAAM,EAAC,GAAEC,KAAG,EAAC,CAACzB,EAAE,GAAE,UAAS,CAACE,EAAE,GAAE,aAAY,CAACD,EAAE,GAAE,QAAO;AAAE,SAASyB,GAAGxF,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAC,IAAIyF,IAAGD,GAAI,SAASxF,GAAE;AAAC,QAAMC,IAAE,IAAI;AAAgB,EAAAA,EAAE,OAAO,QAAOD,CAAC;AAAE,WAAQA,IAAE,GAAEA,IAAE,UAAU,QAAOA,IAAI,CAAAC,EAAE,OAAO,KAAI,UAAUD,CAAC,CAAC;AAAE,QAAM,MAAM,2BAA2BA,CAAC,0CAA0CC,CAAC,gHAAgH;AAAC;AAAI,SAASyF,MAAM1F,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,aAAUC,KAAKF,EAAE,KAAGE,KAAa,OAAOA,KAAjB,SAAmB,YAAS,CAACF,CAAC,KAAIE,EAAE,SAAS,MAAM,EAAE,CAAAD,EAAE,KAAKD,CAAC;AAAE,SAAOC;AAAC;AAAC,MAAM0F,KAAG;AAAI,IAAIC,KAAG,IAAGC,KAAG;AAAE,SAASC,GAAG9F,GAAE;AAAC,EAAA6F,KAAG7F,EAAE;AAAS;AAAC,SAAS+F,GAAG/F,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAASF,EAAE,aAAT,MAAkBI,IAAEH,EAAE;AAAmB,SAAOG,MAAIJ,MAAII,KAAG,KAAGJ,EAAE,oBAAkBI,MAAI,KAAY4F,GAAGhG,GAAEE,CAAC,MAAf;AAAgB;AAAC,SAAS+F,GAAGjG,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEgG,GAAGhG,EAAE,OAAO;AAAE,MAAIE,IAAE,MAAKC,IAAE;AAAK,EAAO,MAAP,QAAU,EAAE,eAAaL,MAAII,IAAE,EAAE,cAAaC,IAAE,EAAE;AAAa,QAAMC,IAAEN,EAAE;AAAU,EAAOM,MAAP,QAAU6F,GAAGlG,GAAEK,GAAEF,GAAEC,GAAE,EAAE;AAAC;AAAC,SAAS+F,GAAGpG,GAAEC,GAAEC,GAAE;AAAC,MAAGmG,EAAGrG,CAAC,GAAE;AAAC,UAAMC,IAAED,EAAE,OAAO,QAAO;AAAG,QAAGC,EAAE,GAAGC,CAAC,KAAGF,EAAE,WAASC,EAAE,YAAY;EAAQ;AAAC,SAAOA,EAAE,aAAWyD,MAAIxD,EAAE,WAAU;AAAE;AAAC,SAASoG,GAAGtG,GAAEC,GAAEC,GAAE,GAAE;AAAC,WAAQE,IAAEJ,GAAEI,KAAG,CAACmG,GAAGnG,CAAC,GAAEA,IAAEoG,GAAGpG,CAAC,GAAE;AAAC,UAAMJ,IAAEgG,GAAG5F,GAAEH,CAAC;AAAE,QAAYD,MAAT,QAAW;AAAC,YAAMC,IAAEwG,GAAGzG,GAAEE,CAAC;AAAE,UAAGD,EAAE,QAAOyG,GAAGzG,CAAC,IAAE,SAAO,CAACG,GAAEH,CAAC;AAAA,IAAC,WAASG,MAAI,EAAE,QAAM,CAAC,GAAEuG,GAAGzG,CAAC,CAAC;AAAA,EAAC;AAAC;AAAC,SAAS0G,GAAG5G,GAAEC,GAAEC,GAAE;AAAC,EAAA0F,KAAG;AAAG,QAAM,IAAE,YAAY,IAAG,IAAGC,KAAGF;AAAG,MAAG;AAAC,IAAAkB,GAAG7G,GAAG,MAAI;AAAC,YAAMI,IAAE0G,OAAM,SAAS9G,GAAE;AAAC,eAAOA,EAAE,iBAAiB,KAAM,MAAI;AAAC,gBAAMA,IAAE8G,EAAE;AAAG,iBAAc9G,MAAP,OAASA,EAAE,MAAK,IAAG;AAAA,QAAI,CAAC;AAAA,MAAE,EAAEA,CAAC,GAAEK,IAAE,oBAAI,OAAIC,IAAEN,EAAE,eAAc,GAAGO,IAAEP,EAAE,cAAaQ,IAAER,EAAE;AAAoB,UAAIS,IAAE,IAAGC,IAAE;AAAG,eAAQR,IAAE,GAAEA,IAAED,EAAE,QAAOC,KAAI;AAAC,cAAMS,IAAEV,EAAEC,CAAC,GAAEU,IAAED,EAAE,MAAKE,IAAEF,EAAE,QAAO,IAAE2F,GAAGzF,GAAEb,GAAEO,GAAED,CAAC;AAAE,YAAG,CAAC,EAAE;AAAS,cAAK,CAACS,GAAEC,CAAC,IAAE;AAAE,YAAqBJ,MAAlB,gBAAoB,MAAGmG,EAAG/F,CAAC,KAAGoF,GAAGhG,GAAES,GAAEG,CAAC,KAAGiF,GAAGpF,GAAEG,GAAEhB,CAAC;AAAA,iBAAwBY,MAAd,aAAgB;AAAC,UAAAH,IAAE;AAAG,gBAAMR,IAAEU,EAAE;AAAW,mBAAQT,IAAE,GAAEA,IAAED,EAAE,QAAOC,KAAI;AAAC,kBAAMC,IAAEF,EAAEC,CAAC,GAAEE,IAAE4G,GAAG7G,CAAC,GAAEE,IAAEF,EAAE;AAAW,gBAASE,KAAN,QAASF,MAAIK,KAAUJ,MAAP,QAAU,CAAC2F,GAAG5F,GAAEE,GAAEL,CAAC,GAAE;AAAC,kBAAGiD,IAAE;AAAC,sBAAMjD,IAAEG,EAAE,aAAWA,EAAE;AAAU,gBAAAH,MAAIU,KAAGV;AAAA,cAAE;AAAC,cAAAK,EAAE,YAAYF,CAAC;AAAA,YAAC;AAAA,UAAC;AAAC,gBAAMD,IAAES,EAAE,cAAaR,IAAED,EAAE;AAAO,cAAGC,IAAE,GAAE;AAAC,gBAAIF,IAAE;AAAE,qBAAQG,IAAE,GAAEA,IAAED,GAAEC,KAAI;AAAC,oBAAMD,IAAED,EAAEE,CAAC;AAAE,eAAC2F,GAAG5F,GAAEU,GAAEb,CAAC,KAAGQ,MAAIL,OAAKU,EAAE,YAAYV,CAAC,GAAEF;AAAA,YAAI;AAAC,YAAAE,MAAIF,KAAGI,EAAE,IAAIU,GAAEC,CAAC;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC;AAAC,UAAGX,EAAE,OAAK,EAAE,YAAS,CAACJ,GAAEC,CAAC,KAAIG,EAAE,CAAAH,EAAE,0BAA0BD,GAAED,CAAC;AAAE,YAAMW,IAAET,EAAE;AAAc,UAAGS,EAAE,SAAO,GAAE;AAAC,iBAAQV,IAAE,GAAEA,IAAEU,EAAE,QAAOV,KAAI;AAAC,gBAAMC,IAAES,EAAEV,CAAC,GAAEE,IAAED,EAAE,YAAWE,IAAEF,EAAE;AAAO,mBAAQD,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,kBAAMC,IAAEC,EAAEF,CAAC,GAAEI,IAAEH,EAAE;AAAW,YAAMG,KAAN,QAAgBH,EAAE,aAAT,QAAmB6F,GAAG7F,GAAEE,GAAEJ,CAAC,KAAGK,EAAE,YAAYH,CAAC;AAAA,UAAC;AAAA,QAAC;AAAC,QAAAA,EAAE,YAAW;AAAA,MAAE;AAAC,MAAOE,MAAP,SAAWK,MAAIL,EAAE,QAAM,IAAG6G,GAAG7G,CAAC,IAAG6C,MAAGiE,GAAGlH,CAAC,KAAGI,EAAE,cAAcM,CAAC;AAAA,IAAE,CAAC;AAAA,EAAE,UAAC;AAAQ,IAAAkF,KAAG;AAAA,EAAE;AAAC;AAAC,SAASuB,GAAGnH,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAU,EAAUC,MAAP,QAAU2G,GAAG5G,GAAEC,EAAE,eAAcA,CAAC;AAAE;AAAC,SAASmH,GAAGpH,GAAE;AAAC,GAAC,SAAS,GAAE;AAAC,IAAI6F,OAAJ,KAAQwB,GAAG,CAAC,EAAE,iBAAiB,aAAYvB,IAAG,EAAE;AAAA,EAAC,GAAE9F,CAAC,GAAEA,EAAE,YAAU,IAAI,iBAAkB,CAACC,GAAEC,MAAI;AAAC,IAAA0G,GAAG5G,GAAEC,GAAEC,CAAC;AAAA,EAAC,CAAC;AAAE;AAAC,SAASoH,GAAGtH,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,QAAO,IAAEA,EAAE,UAASI,IAAEJ,EAAE,SAAQK,IAAEJ,EAAE,QAAOK,IAAEL,EAAE,UAASM,IAAEN,EAAE;AAAQ,SAAM,EAASC,MAAP,QAAUA,MAAIG,KAAU,MAAP,QAAU,MAAIC,KAAUF,MAAP,QAAUA,MAAIG;AAAE;AAAC,SAASgH,GAAGvH,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,iBAAiBC,CAAC,GAAE,IAAEuH,KAAK;AAAiB,SAAO,EAAE,IAAIxH,EAAE,KAAK,GAAE,EAAE,IAAIC,EAAE,KAAK,GAAEC;AAAC;AAAC,SAASuH,GAAGzH,GAAE;AAAC,MAAIC,GAAEC,GAAE,IAAEF;AAAE,MAAQ,EAAE,WAAP,MAAe,CAAC,EAAE,aAAY,KAAI,EAAE,cAAa,GAAG;AAAC,YAAaC,IAAE,EAAE,mBAAkB,OAA9B,QAAmC8G,EAAG9G,CAAC,KAAGA,EAAE,kBAAgB,CAACA,EAAE,mBAAiB;AAAC,UAAQA,EAAE,WAAP,IAAc;AAAC,YAAGqH,GAAGrH,GAAE,CAAC,GAAE;AAAC,cAAEsH,GAAGtH,GAAE,CAAC;AAAE;AAAA,QAAK;AAAC;AAAA,MAAK;AAAC,MAAAA,EAAE;IAAQ;AAAC,YAAaC,IAAE,EAAE,eAAc,OAA1B,QAA+B6G,EAAG7G,CAAC,KAAGA,EAAE,kBAAgB,CAACA,EAAE,cAAa,KAAI;AAAC,UAAQA,EAAE,WAAP,IAAc;AAAC,YAAGoH,GAAG,GAAEpH,CAAC,GAAE;AAAC,cAAEqH,GAAG,GAAErH,CAAC;AAAE;AAAA,QAAK;AAAC;AAAA,MAAK;AAAC,MAAAA,EAAE,OAAM;AAAA,IAAE;AAAA,EAAC,MAAM,GAAE,OAAM;AAAE;AAAC,SAASwH,GAAG1H,GAAE;AAAC,SAAO2H,GAAG3H,EAAE,MAAM,GAAE2H,GAAG3H,EAAE,KAAK,GAAEA;AAAC;AAAC,SAAS2H,GAAG3H,GAAE;AAAC,SAAiBA,EAAE,SAAd,aAAoB;AAAC,UAAMC,IAAED,EAAE,QAAO,GAAGE,IAAEF,EAAE;AAAO,QAAI,GAAEI;AAAE,QAAGF,MAAID,EAAE,gBAAe,KAAI,IAAEA,EAAE,gBAAgBC,IAAE,CAAC,GAAEE,IAAE,OAAK,IAAEH,EAAE,gBAAgBC,CAAC,GAAEE,IAAE,KAAI2G,EAAG,CAAC,GAAE;AAAC,MAAA/G,EAAE,IAAI,EAAE,OAAMI,IAAE,EAAE,mBAAkB,IAAG,GAAE,MAAM;AAAE;AAAA,IAAK;AAAC,QAAG,CAACwH,EAAG,CAAC,EAAE;AAAM,IAAA5H,EAAE,IAAI,EAAE,OAAMI,IAAE,EAAE,gBAAe,IAAG,GAAE,SAAS;AAAA,EAAC;AAAC;AAAC,IAAIyH,KAAG;AAAqB,MAAMC,KAAe,OAAO,kBAAnB,aAAkC,iBAAe,CAAA9H,MAAG;AAAC,UAAQ,QAAO,EAAG,KAAKA,CAAC;AAAC;AAAE,SAAS+H,GAAG/H,GAAE;AAAC,QAAMC,IAAE,SAAS;AAAc,MAAUA,MAAP,KAAS;AAAS,QAAMC,IAAED,EAAE;AAAS,SAAOyG,GAAGsB,GAAGhI,CAAC,CAAC,MAAcE,MAAV,WAA0BA,MAAb,cAAyBD,EAAE,oBAAX,UAAkCgI,GAAGhI,CAAC,KAAV;AAAY;AAAC,SAASiI,GAAGlI,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEF,EAAE,eAAc;AAAG,MAAG;AAAC,WAAc,MAAP,QAAU,EAAE,SAASC,CAAC,KAAG,EAAE,SAASC,CAAC,KAAUD,MAAP,QAAU,CAAC8H,GAAG9H,CAAC,KAAGkI,GAAGlI,CAAC,MAAID;AAAA,EAAC,QAAS;AAAC,WAAM;AAAA,EAAE;AAAC;AAAC,SAASoI,GAAGpI,GAAE;AAAC,SAAOA,aAAaqI;AAAE;AAAC,SAASF,GAAGnI,GAAE;AAAC,MAAIC,IAAED;AAAE,SAAWC,KAAN,QAAS;AAAC,UAAMD,IAAEiI,GAAGhI,CAAC;AAAE,QAAGmI,GAAGpI,CAAC,EAAE,QAAOA;AAAE,IAAAC,IAAEuG,GAAGvG,CAAC;AAAA,EAAC;AAAC,SAAO;AAAI;AAAC,SAASgI,GAAGjI,GAAE;AAAC,SAAOA,IAAEA,EAAE,kBAAgB;AAAI;AAAC,SAASsI,GAAGtI,GAAE;AAAC,SAAOA,EAAE,QAAO,KAAIA,EAAE,YAAW;AAAE;AAAC,SAASuI,GAAGvI,GAAE;AAAC,SAAOA,EAAE,aAAW0D;AAAE;AAAC,SAAS8E,GAAGxI,GAAE;AAAC,MAAIC,IAAED;AAAE,SAAWC,KAAN,QAAS;AAAC,QAAGsI,GAAGtI,CAAC,EAAE,QAAOA;AAAE,IAAAA,IAAEA,EAAE;AAAA,EAAU;AAAC,SAAO;AAAI;AAAC,SAASwI,GAAGzI,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEgF,GAAGjF,CAAC;AAAE,MAAUC,MAAP,SAAWF,IAAE,OAAKE,IAAE,GAAG,QAAOF;AAAE,MAAII,IAAEJ,IAAE;AAAE,SAAoBC,MAAd,cAAgBG,KAAG,MAAgCH,MAAhB,kBAAoBG,KAAG,MAAeA;AAAC;AAAC,SAASsI,GAAG1I,GAAE;AAAC,SAAO+G,EAAG/G,CAAC,KAAG2I,GAAG3I,CAAC,KAAG0G,GAAG1G,CAAC;AAAC;AAAC,SAAS4I,GAAG5I,GAAEC,GAAE;AAAC,MAASA,KAAN,KAAQ,QAAO,MAAKD,EAAE,QAAMC;AAAG,EAAA4I,GAAE,GAAGC;AAAK,QAAM5I,IAAEsH,GAAE,GAAG,IAAEuB,MAAK3I,IAAE,KAAGyH;AAAK,IAAE,SAAS,IAAIzH,GAAEJ,CAAC,GAAE4H,EAAG5H,CAAC,IAAEE,EAAE,eAAe,IAAIE,GAAE,EAAE,IAAEF,EAAE,aAAa,IAAIE,CAAC,GAAEF,EAAE,gBAAgB,IAAIE,CAAC,GAAEF,EAAE,aAAW0D,IAAG5D,EAAE,QAAMI;AAAC;AAAC,SAAS4I,GAAGhJ,GAAE;AAAC,QAAMC,IAAED,EAAE,UAAS;AAAG,MAAUC,MAAP,MAAS;AAAC,UAAMC,IAAEF,EAAE,YAAW,GAAG,IAAEC,EAAE,YAAW,GAAGG,IAAEJ,EAAE,mBAAkB,GAAGK,IAAEL,EAAE,eAAc;AAAG,QAAUI,MAAP,KAAS,KAAUC,MAAP,MAAS;AAAC,YAAML,IAAEK,EAAE,YAAW;AAAG,QAAE,UAAQA,EAAE,OAAML,EAAE,SAAO;AAAA,IAAI,MAAM,GAAE,UAAQ;AAAA,SAAS;AAAC,YAAMA,IAAEI,EAAE;AAAc,UAAUC,MAAP,MAAS;AAAC,cAAMJ,IAAEI,EAAE,YAAW;AAAG,QAAAJ,EAAE,SAAOD,EAAE,OAAMA,EAAE,SAAOC,EAAE;AAAA,MAAK,MAAM,CAAAD,EAAE,SAAO;AAAK,MAAAE,EAAE,SAAO;AAAA,IAAI;AAAC,QAAUG,MAAP,KAAS,KAAUD,MAAP,MAAS;AAAC,YAAMJ,IAAEI,EAAE,YAAW;AAAG,QAAE,SAAOA,EAAE,OAAMJ,EAAE,SAAO;AAAA,IAAI,MAAM,GAAE,SAAO;AAAA,SAAS;AAAC,YAAMA,IAAEK,EAAE,YAAW;AAAG,UAAUD,MAAP,MAAS;AAAC,cAAMH,IAAEG,EAAE;AAAc,QAAAH,EAAE,SAAOD,EAAE,OAAMA,EAAE,SAAOC,EAAE;AAAA,MAAK,MAAM,CAAAD,EAAE,SAAO;AAAK,MAAAE,EAAE,SAAO;AAAA,IAAI;AAAC,MAAE,UAASA,EAAE,WAAS;AAAA,EAAI;AAAC;AAAC,SAAS+I,GAAGjJ,GAAE;AAAC,EAAA8I,GAAE;AAAG,QAAM7I,IAAED,EAAE,UAAS,GAAGE,IAAED,EAAE,UAAS,IAAE8I,GAAE,GAAG3I,IAAEoH,GAAE,GAAGnH,IAAE,EAAE,UAASC,IAAEF,EAAE;AAAe,EAAOF,MAAP,QAAU,SAASF,GAAEC,GAAEC,GAAE;AAAC,QAAIC,IAAEH;AAAE,WAAYG,MAAP,QAAU;AAAC,UAAGD,EAAE,IAAIC,CAAC,EAAE;AAAO,YAAMH,IAAEC,EAAE,IAAIE,CAAC;AAAE,UAAYH,MAAT,OAAW;AAAM,MAAAE,EAAE,IAAIC,GAAE,EAAE,GAAEA,IAAEH,EAAE;AAAA,IAAQ;AAAA,EAAC,EAAEE,GAAEG,GAAEC,CAAC;AAAE,QAAMC,IAAEN,EAAE;AAAM,EAAAG,EAAE,aAAWwD,IAAGgE,EAAG5H,CAAC,IAAEM,EAAE,IAAIC,GAAE,EAAE,IAAEH,EAAE,aAAa,IAAIG,CAAC;AAAC;AAAC,SAAS2I,GAAGlJ,GAAE;AAAC,EAAA6I;AAAK,QAAM5I,IAAEuH,GAAE,GAAGtH,IAAED,EAAE;AAAgB,MAAGD,MAAIE,GAAE;AAAC,QAAGD,EAAE,kBAAgBD,GAASE,MAAP,MAAS;AAAC,YAAMF,IAAEyG,GAAGvG,CAAC;AAAE,MAAOF,MAAP,QAAUA,EAAE;IAAa;AAAC,QAAUA,MAAP,MAAS;AAAC,YAAMC,IAAEwG,GAAGzG,CAAC;AAAE,MAAOC,MAAP,QAAUA,EAAE,YAAW;AAAA,IAAE;AAAA,EAAC;AAAC;AAAC,SAASkJ,KAAI;AAAC,SAAGC,GAAE,IAAU,OAAY5B,GAAE,EAAG;AAAe;AAAC,SAASf,GAAGzG,GAAEC,GAAE;AAAC,QAAMC,KAAGD,KAAG8I,MAAM,SAAS,IAAI/I,CAAC;AAAE,SAAgBE,MAAT,SAAW,OAAKA;AAAC;AAAC,SAAS8G,GAAGhH,GAAEC,GAAE;AAAC,QAAMC,IAAE8F,GAAGhG,GAAEwH,IAAI;AAAE,SAAgBtH,MAAT,SAAWuG,GAAGvG,GAAED,CAAC,IAAE;AAAI;AAAC,SAAS+F,GAAGhG,GAAEC,GAAE;AAAC,SAAOD,EAAE,gBAAgBC,EAAE,IAAI,EAAE;AAAC;AAAC,SAAS+H,GAAGhI,GAAEC,GAAE;AAAC,MAAIC,IAAEF;AAAE,SAAWE,KAAN,QAAS;AAAC,UAAMF,IAAEgH,GAAG9G,GAAED,CAAC;AAAE,QAAUD,MAAP,KAAS,QAAOA;AAAE,IAAAE,IAAEsG,GAAGtG,CAAC;AAAA,EAAC;AAAC,SAAO;AAAI;AAAC,SAASmJ,GAAGrJ,GAAE;AAAC,QAAMC,IAAED,EAAE,aAAYE,IAAE,OAAO,OAAO,CAAA,GAAGD,CAAC;AAAE,SAAOD,EAAE,qBAAmBE,GAAEA;AAAC;AAAC,SAASoJ,GAAGtJ,GAAE;AAAC,SAAOA,EAAE,KAAM,MAAIuJ,GAAE,EAAG,eAAc,CAAE;AAAE;AAAC,SAASA,KAAI;AAAC,SAAO5C,GAAGoC,GAAE,CAAE;AAAC;AAAC,SAASpC,GAAG3G,GAAE;AAAC,SAAOA,EAAE,SAAS,IAAI,MAAM;AAAC;AAAC,SAASiH,GAAGjH,GAAE;AAAC,EAAA6I,GAAE;AAAG,QAAM5I,IAAE8I,GAAE;AAAG,EAAO/I,MAAP,SAAWA,EAAE,QAAM,IAAGA,EAAE,eAAe,IAAI,IAAGC,EAAE,aAAWD;AAAC;AAAC,SAASwJ,GAAGxJ,GAAE;AAAC,QAAMC,IAAEuH,MAAKtH,IAAE,SAASF,GAAEC,GAAE;AAAC,QAAIC,IAAEF;AAAE,WAAWE,KAAN,QAAS;AAAC,YAAMF,IAAEgG,GAAG9F,GAAED,CAAC;AAAE,UAAYD,MAAT,OAAW,QAAOA;AAAE,MAAAE,IAAEsG,GAAGtG,CAAC;AAAA,IAAC;AAAC,WAAO;AAAA,EAAI,EAAEF,GAAEC,CAAC;AAAE,SAAUC,MAAP,OAAiBF,MAAIC,EAAE,eAAc,IAAGwG,GAAG,MAAM,IAAE,OAAYA,GAAGvG,CAAC;AAAC;AAAC,SAASuJ,GAAGzJ,GAAEC,GAAE;AAAC,SAAOA,IAAED,EAAE,mBAAkB,IAAG;AAAC;AAAC,SAAS0J,GAAG1J,GAAE;AAAC,SAAM,kCAAkC,KAAKA,CAAC;AAAC;AAAC,SAAS2J,GAAG3J,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,MAAIC,IAAEF;AAAE,SAAYE,MAAP,OAAU,CAAAD,EAAE,KAAKC,CAAC,GAAEA,IAAEA,EAAE;AAAc,SAAOD;AAAC;AAAC,SAAS2J,KAAI;AAAC,SAAO,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,QAAQ,YAAW,EAAE,EAAE,OAAO,GAAE,CAAC;AAAC;AAAC,SAASC,GAAG7J,GAAE;AAAC,SAAOA,EAAE,aAAW0D,KAAG1D,EAAE,YAAU;AAAI;AAAC,SAAS8J,GAAG9J,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEgG,GAAGjG,EAAE,OAAO;AAAE,MAAU,MAAP,KAAS;AAAO,QAAMG,IAAE,EAAE;AAAW,MAAG,EAAC,cAAaC,GAAE,aAAYC,EAAC,IAAE;AAAE,MAAUF,MAAP,MAAS;AAAC,QAAIH,IAAE4J,GAAGzJ,CAAC;AAAE,UAAMD,IAAE6H,GAAG5H,CAAC;AAAE,QAAUH,MAAP,QAAU8G,EAAG5G,CAAC,GAAE;AAAC,UAAGF,MAAI0E,MAAIzE,GAAE;AAAC,cAAMF,IAAEE,EAAE;AAAO,QAAAD,IAAEC,GAAEG,IAAEL,GAAEM,IAAEN;AAAA,MAAC;AAAC,MAAOC,MAAP,QAAUkG,GAAGhG,GAAEF,GAAEI,GAAEC,GAAEN,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,SAASmG,GAAGnG,GAAEC,GAAEC,GAAE,GAAEE,GAAE;AAAC,MAAIC,IAAEL;AAAE,MAAGK,EAAE,WAAU,MAAKD,KAAG,CAACC,EAAE,YAAW;AAAC,UAAMC,IAAED,EAAE,YAAW;AAAG,QAAIE,IAAEN;AAAE,KAACK,KAAGF,MAAIH,EAAEA,EAAE,SAAO,CAAC,MAAI0E,OAAKpE,IAAEN,EAAE,MAAM,GAAE,EAAE;AAAG,UAAMO,IAAEH,EAAE,eAAc;AAAG,QAAGD,KAAGG,MAAIC,GAAE;AAAC,UAAQD,MAAL,IAAO;AAAC,YAAG2I,GAAG,IAAI,GAAE/F,MAAGC,MAAGI,GAAG,CAAAnD,EAAE,OAAM;AAAA,aAAO;AAAC,gBAAML,IAAEwH,GAAE;AAAG,qBAAY,MAAI;AAAC,YAAAxH,EAAE,OAAQ,MAAI;AAAC,cAAAK,EAAE,WAAU,KAAIA,EAAE;YAAQ,CAAC;AAAA,UAAE,GAAG,EAAE;AAAA,QAAC;AAAC;AAAA,MAAM;AAAC,YAAMJ,IAAEI,EAAE,UAAS,GAAGD,IAAE2J,MAAKvJ,IAAEH,EAAE,mBAAkB,GAAGI,IAAE0I,GAAE,GAAGzI,IAAEL,EAAE,OAAM;AAAG,UAAGA,EAAE,QAAO,KAAWI,MAAP,QAAUC,MAAID,KAAG,CAACH,KAAG+F,EAAGjG,CAAC,MAAWH,MAAP,QAAU,CAACA,EAAE,oBAAmB,KAAQG,EAAE,OAAO,WAAb,KAAqBA,EAAE,OAAO,QAAMJ,EAAE,SAAWI,EAAE,OAAO,WAAb,KAAqB,CAACC,EAAE,yBAAuB,CAACC,KAAGF,EAAE,MAAM,QAAMJ,EAAE,SAAOI,EAAE,MAAM,WAASI,KAAG,CAACH,EAAE,mBAAkB,KAAI,CAACC,GAAG,QAAO,KAAKD,EAAE,UAAS;AAAG,YAAMM,IAAEmG,EAAE;AAAG,UAAG,CAACT,EAAG1F,CAAC,KAAUT,MAAP,QAAiB,MAAP,KAAS,QAAO,KAAKG,EAAE,eAAeE,CAAC;AAAE,UAAGI,EAAE,iBAAiBN,GAAEH,GAAEG,GAAE,CAAC,GAAEA,EAAE,YAAW,GAAG;AAAC,cAAML,IAAEgK,GAAG3J,EAAE,gBAAgB;AAAE,QAAAA,EAAE,QAAQL,CAAC,GAAEK,IAAEL;AAAA,MAAC;AAAC,MAAAK,EAAE,eAAeE,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,SAAS0J,GAAGjK,GAAEC,GAAE;AAAC,MAAGA,EAAE,YAAW,EAAG,QAAM;AAAG,MAAG,CAACD,EAAE,cAAc;AAAS,QAAME,IAAEF,EAAE,OAAO,QAAO,IAAEC,EAAE,iBAAgB,GAAGG,IAAEH,EAAE,QAAO;AAAG,SAAWC,MAAJ,IAAM,CAACD,EAAE,oBAAmB,KAAI,CAAC,EAAE,oBAAmB,KAAI,CAACA,EAAE,iBAAeG,KAAG,SAASJ,GAAE;AAAC,UAAMC,IAAED,EAAE,mBAAkB;AAAG,YAAO+G,EAAG9G,CAAC,KAAG2H,EAAG3H,CAAC,KAAGA,EAAE,eAAa,CAACA,EAAE;EAAoB,EAAEA,CAAC,IAAEC,MAAID,EAAE,mBAAkB,MAAK,CAACA,EAAE,mBAAkB,KAAI,CAAC,EAAE,mBAAkB,KAAI,CAACA,EAAE,YAAW,KAAIG;AAAE;AAAC,SAAS8J,GAAGlK,GAAE;AAAC,SAAoBA,MAAd;AAAe;AAAC,SAASmK,GAAGnK,GAAE;AAAC,SAAqBA,MAAf;AAAgB;AAAC,SAASoK,GAAGpK,GAAEC,GAAE;AAAC,SAAO+C,KAAEhD,IAAEC;AAAC;AAAC,SAASoK,GAAGrK,GAAE;AAAC,SAAgBA,MAAV;AAAW;AAAC,SAASsK,GAAGtK,GAAE;AAAC,SAAoBA,MAAd;AAAe;AAAC,SAASuK,GAAGvK,GAAE;AAAC,SAAiBA,MAAX;AAAY;AAAC,SAASwK,GAAGxK,GAAEC,GAAEC,GAAE;AAAC,SAAYF,EAAE,YAAW,MAAnB,OAAuBoK,GAAGnK,GAAEC,CAAC;AAAC;AAAC,SAASuK,KAAI;AAAC,QAAMzK,IAAEuJ,GAAE;AAAG,EAAAtC,GAAGS,GAAG1H,EAAE,OAAO,GAAEA,EAAE,gBAAe,CAAE,CAAC,CAAC;AAAC;AAAC,SAAS0K,GAAG1K,GAAEC,GAAE;AAAC,EAASD,EAAE,4BAAX,WAAqCA,EAAE,0BAAwB,CAAA;AAAI,QAAME,IAAEF,EAAE,yBAAwB,IAAEE,EAAED,CAAC;AAAE,MAAY,MAAT,OAAW,QAAO;AAAE,QAAMG,IAAEJ,EAAEC,CAAC;AAAE,MAAa,OAAOG,KAAjB,UAAmB;AAAC,UAAMJ,IAAE0F,GAAGtF,CAAC;AAAE,WAAOF,EAAED,CAAC,IAAED,GAAEA;AAAA,EAAC;AAAC,SAAOI;AAAC;AAAC,SAASuK,GAAG3K,GAAEC,GAAEC,GAAE,GAAEE,GAAE;AAAC,MAAOF,EAAE,SAAN,EAAW;AAAO,QAAMG,IAAE,EAAE,QAAOC,IAAE,EAAE,OAAMC,IAAEN,EAAE,IAAII,CAAC;AAAE,EAASE,MAAT,UAAYkF,EAAG,IAAGpF,CAAC;AAAE,QAAMG,IAAED,EAAE;AAAM,MAAIE,IAAET,EAAE,IAAIQ,CAAC;AAAE,EAASC,MAAT,WAAaA,IAAE,oBAAI,OAAIT,EAAE,IAAIQ,GAAEC,CAAC;AAAG,QAAMC,IAAED,EAAE,IAAIH,CAAC,GAAEK,IAAgBD,MAAd,eAA6BN,MAAZ;AAAc,GAAUM,MAAT,UAAYC,MAAIF,EAAE,IAAIH,GAAEK,IAAE,YAAUP,CAAC;AAAC;AAA8N,SAASwK,GAAG5K,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEF,EAAE,UAAS;AAAG,MAAII,IAAEF,GAAEG,IAAEL;AAAE,SAAc,MAAP,SAAWC,KAAOC,MAAJ,KAAOE,IAAEC,EAAE,qBAAoB,GAAGA,IAAE,KAAGJ,KAAGC,MAAIG,EAAE,gBAAe,MAAKD,IAAEC,EAAE,qBAAoB,IAAG,GAAEA,IAAE,KAAIA,EAAE,gBAAgBJ,IAAEG,IAAE,IAAEA,CAAC;AAAC;AAAC,SAASyK,GAAG7K,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE;AAAO,MAAeA,EAAE,SAAd;AAAoB,WAAO4K,GAAG5K,EAAE,QAAO,GAAGC,GAAEC,CAAC;AAAE;AAAC,UAAM,IAAEF,EAAE,QAAO;AAAG,QAAGC,KAAOC,MAAJ,KAAO,CAACD,KAAGC,MAAI,EAAE,mBAAkB,GAAG;AAAC,YAAMF,IAAEC,IAAE,EAAE,mBAAkB,IAAG,EAAE,eAAc;AAAG,aAAcD,MAAP,OAAS4K,GAAG,EAAE,oBAAmB3K,GAAE,EAAE,qBAAoB,KAAIA,IAAE,IAAE,EAAE,IAAED;AAAA,IAAC;AAAA,EAAC;AAAC,SAAO;AAAI;AAAC,SAASkH,GAAGlH,GAAE;AAAC,QAAMC,IAAEoH,GAAGrH,CAAC,EAAE,OAAME,IAAED,KAAGA,EAAE;AAAU,SAA0BC,MAApB,qBAAsDA,MAA/B;AAAgC;AAAC,SAAS4K,EAAG9K,GAAEC,GAAEC,GAAE;AAAC,SAAO6K,GAAG/K,GAAEC,GAAEC,CAAC;AAAC;AAAC,SAAS8K,GAAGhL,GAAE;AAAC,SAAM,CAACiL,GAAGjL,CAAC,KAAG,CAACA,EAAE,iBAAe,CAACA,EAAE,SAAQ;AAAE;AAAC,SAASkL,GAAGlL,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,aAAa,IAAIC,CAAC;AAAE,SAAgBC,MAAT,UAAYuF,EAAG,IAAGxF,CAAC,GAAEC;AAAC;AAAC,SAASsG,GAAGxG,GAAE;AAAC,QAAMC,IAAED,EAAE,gBAAcA,EAAE;AAAc,SAAcC,MAAP,QAAeA,EAAE,aAAP,KAAgBA,EAAE,OAAKA;AAAC;AAAsI,SAASkL,GAAGnL,GAAEC,GAAE;AAAC,MAAIC,IAAEF,EAAE,UAAS;AAAG,SAAYE,MAAP,QAAU;AAAC,QAAGA,EAAE,GAAGD,CAAC,EAAE,QAAM;AAAG,IAAAC,IAAEA,EAAE,UAAS;AAAA,EAAE;AAAC,SAAM;AAAE;AAAC,SAASmH,GAAGrH,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAQ,SAAcC,MAAP,QAAUwF,EAAG,EAAE,GAAExF;AAAC;AAAgE,SAASmL,GAAGpL,GAAE;AAAC,MAAIC,IAAED,EAAE,iBAAgB;AAAG,SAAYC,MAAP,QAAU;AAAC,QAAGoL,GAAGpL,CAAC,EAAE,QAAOA;AAAE,IAAAA,IAAEA,EAAE;EAAkB;AAAC,SAAOA;AAAC;AAAC,SAASoL,GAAGrL,GAAE;AAAC,SAAOiL,GAAGjL,CAAC,KAAG4H,EAAG5H,CAAC,KAAGA,EAAE,aAAY;AAAE;AAAmE,SAASsL,GAAGtL,GAAE;AAAC,QAAMC,IAAEuH,GAAE,GAAGtH,IAAEF,EAAE,YAAY,QAAO,GAAG,IAAEC,EAAE,OAAO,IAAIC,CAAC;AAAE,EAAS,MAAT,UAAYuF,EAAG,KAAIzF,EAAE,YAAY,MAAKE,CAAC;AAAE,QAAK,EAAC,SAAQE,GAAE,kBAAiBC,EAAC,IAAE;AAAE,MAAUD,MAAP,MAAS;AAAC,UAAMH,IAAEG,EAAEJ,CAAC,GAAEG,IAAEF,EAAE;AAAY,WAAcI,MAAP,OAASJ,aAAaI,KAAGoF,EAAG,KAAIpF,EAAE,MAAKA,EAAE,QAAO,GAAGF,EAAE,MAAKA,EAAE,QAAO,GAAGH,EAAE,YAAY,MAAKE,CAAC,IAAED,aAAaD,EAAE,eAAaG,MAAIH,EAAE,eAAayF,EAAG,KAAItF,EAAE,MAAKA,EAAE,WAAUH,EAAE,YAAY,MAAKE,CAAC,GAAED,EAAE,UAAQD,EAAE,SAAOyF,EAAG,KAAIzF,EAAE,YAAY,MAAKE,GAAEC,EAAE,MAAKA,EAAE,QAAO,CAAE,GAAEF;AAAA,EAAC;AAAC,SAAOD;AAAC;AAAC,SAASuL,GAAGvL,GAAEC,GAAE;AAAC,GAACgL,GAAGjL,EAAE,UAAS,CAAE,KAAG4H,EAAG3H,CAAC,KAAGyG,GAAGzG,CAAC,KAAGwF,EAAG,EAAE;AAAC;AAA0D,SAAS+F,GAAGxL,GAAE;AAAC,UAAO0G,GAAG1G,CAAC,KAAG4H,EAAG5H,CAAC,KAAG,CAACA,EAAE,iBAAe,CAACA,EAAE,SAAQ;AAAE;AAAC,SAASyL,GAAGzL,GAAEC,GAAEC,GAAE;AAAC,EAAAA,EAAE,MAAM,eAAe,aAAa,GAAED,EAAE,sBAAoB;AAAK,QAAM,IAAED,EAAE;AAAc,EAAO,MAAP,QAAU,EAAE,YAAYA,CAAC;AAAC;AAAC,SAAS0L,GAAG1L,GAAEC,GAAEC,GAAE;AAAC,MAAI,IAAEF,EAAE;AAAoB,MAAGqG,EAAGnG,CAAC,KAAGA,EAAE,iBAA2BA,EAAE,OAAO,SAArB,aAA2BD,EAAE,SAAS,SAAS,aAAa,GAAE;AAAC,UAAMG,IAAEF,EAAE,QAAOG,IAAED,EAAE,QAAO,GAAGE,IAAEF,EAAE;AAAO,QAAIG,IAAE,IAAGC,IAAE;AAAK,QAAGF,MAAID,EAAE,gBAAe;AAAI,MAAAmL,GAAGnL,EAAE,gBAAgBC,IAAE,CAAC,CAAC,MAAIC,IAAE;AAAA,SAAQ;AAAC,YAAMN,IAAEI,EAAE,gBAAgBC,CAAC;AAAE,UAAUL,MAAP,QAAUuL,GAAGvL,CAAC,GAAE;AAAC,cAAMC,IAAED,EAAE;AAAqB,SAAQC,MAAP,QAAUsL,GAAGtL,CAAC,OAAKK,IAAE,IAAGC,IAAER,EAAE,gBAAgBC,EAAE,KAAK;AAAA,MAAE;AAAA,IAAC;AAAC,QAAGM,GAAE;AAAC,YAAML,IAAEF,EAAE,gBAAgBK,EAAE,KAAK;AAAE,aAAc,MAAP,SAAWL,EAAE,sBAAoB,IAAE,SAASA,GAAE;AAAC,cAAMC,IAAED,EAAE,OAAME,IAAE,SAAS,cAAc,KAAK;AAAE,QAAAA,EAAE,kBAAgB,SAAQA,EAAE,aAAa,uBAAsB,MAAM;AAAE,YAAIC,IAAEF,EAAE;AAAY,YAAYE,MAAT,QAAW;AAAC,cAAa,OAAOA,KAAjB,UAAmB;AAAC,kBAAMH,IAAE0F,GAAGvF,CAAC;AAAE,YAAAA,IAAEF,EAAE,cAAYD;AAAA,UAAC;AAAC,UAASG,MAAT,UAAYD,EAAE,UAAU,IAAI,GAAGC,CAAC;AAAA,QAAC;AAAC,eAAOD;AAAA,MAAC,EAAEF,EAAE,OAAO,IAAGC,EAAE,MAAM,aAAW,eAAc,MAAYO,MAAP,OAASN,EAAE,YAAY,CAAC,IAAEA,EAAE,aAAa,GAAEM,CAAC;AAAA,IAAE;AAAA,EAAC;AAAC,EAAO,MAAP,QAAUiL,GAAG,GAAEzL,GAAEC,CAAC;AAAC;AAAC,SAASiG,GAAGlG,GAAE;AAAC,SAAO8C,MAAG9C,KAAG,QAAQ,aAAY,IAAG;AAAI;AAA4S,SAAS2L,GAAG3L,GAAE;AAAC,SAAO4L,GAAG5L,CAAC,KAASA,EAAE,YAAR;AAAe;AAAC,SAAS4L,GAAG5L,GAAE;AAAC,SAAWA,EAAE,aAAN;AAAc;AAAC,SAAS6L,GAAG7L,GAAE;AAAC,SAAYA,EAAE,aAAP;AAAe;AAAC,SAAS8L,GAAG9L,GAAE;AAAC,QAAMC,IAAE,IAAI,OAAO,sHAAqH,GAAG;AAAE,SAAcD,EAAE,SAAS,MAAMC,CAAC,MAAzB;AAA0B;AAAC,SAAS8L,GAAG/L,GAAE;AAAC,QAAMC,IAAE,IAAI,OAAO,6LAA4L,GAAG;AAAE,SAAcD,EAAE,SAAS,MAAMC,CAAC,MAAzB;AAA0B;AAAC,SAAS+L,GAAGhM,GAAE;AAAC,MAAG0G,GAAG1G,CAAC,KAAG,CAACA,EAAE,SAAQ,EAAG,QAAM;AAAG,MAAG,CAAC4H,EAAG5H,CAAC,KAAGqL,GAAGrL,CAAC,EAAE,QAAM;AAAG,QAAMC,IAAED,EAAE,cAAa,GAAGE,IAASD,MAAP,QAAU0I,GAAG1I,CAAC,KAAG8G,EAAG9G,CAAC,KAAGA,EAAE,SAAQ;AAAG,SAAM,CAACD,EAAE,SAAQ,KAASA,EAAE,WAAU,MAAjB,MAAqBE;AAAC;AAAC,SAAS+L,GAAGjM,GAAEC,GAAE;AAAC,MAAIC,IAAEF;AAAE,SAAYE,MAAP,QAAiBA,EAAE,UAAS,MAAlB,QAAsB,CAACD,EAAEC,CAAC,IAAG,CAAAA,IAAEA,EAAE,iBAAgB;AAAG,SAAOD,EAAEC,CAAC,IAAEA,IAAE;AAAI;AAAC,SAASgM,KAAI;AAAC,SAAO1E,GAAE;AAAE;AAAC,MAAM2E,KAAG,oBAAI,WAAQC,KAAG,oBAAI;AAAI,SAASC,GAAGrM,GAAE;AAAC,MAAG,CAACA,EAAE,aAAWA,EAAE,UAAU,QAAOoM;AAAG,EAAApM,EAAE,aAAWyF,EAAG,GAAG;AAAE,MAAIxF,IAAEkM,GAAG,IAAInM,CAAC;AAAE,MAAG,CAACC,GAAE;AAAC,IAAAA,IAAE,oBAAI,OAAIkM,GAAG,IAAInM,GAAEC,CAAC;AAAE,eAAS,CAACC,GAAE,CAAC,KAAIF,EAAE,UAAS;AAAC,YAAMA,IAAE,EAAE;AAAO,UAAI,IAAEC,EAAE,IAAID,CAAC;AAAE,YAAI,IAAE,oBAAI,OAAIC,EAAE,IAAID,GAAE,CAAC,IAAG,EAAE,IAAIE,GAAE,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,SAAOD;AAAC;AAAC,SAASqM,GAAGtM,GAAE;AAAC,QAAMC,IAAED,EAAE,YAAY,MAAMA,CAAC;AAAE,SAAOC,EAAE,eAAeD,CAAC,GAAEC;AAAC;AAAC,SAASsM,GAAGvM,GAAEC,GAAE;AAAC,QAAMC,KAAG,SAASF,EAAE,MAAM,oBAAmB,EAAE,KAAG,KAAG;AAAG,EAAAC,EAAE,UAAUC,CAAC;AAAC;AAAwC,SAASqG,GAAGvG,GAAE;AAAC,SAAWA,EAAE;AAAkB;AAAC,SAASwM,GAAGxM,GAAEC,GAAEC,GAAE,GAAEE,GAAEC,GAAE;AAAC,MAAIC,IAAEN,EAAE,cAAa;AAAG,SAAYM,MAAP,QAAU;AAAC,UAAMN,IAAEM,EAAE;AAAM,IAAAA,EAAE,aAAWL,MAAI2H,EAAGtH,CAAC,KAAGkM,GAAGlM,GAAEN,GAAEE,GAAE,GAAEE,GAAEC,CAAC,GAAEH,EAAE,IAAIF,CAAC,KAAGK,EAAE,OAAOL,CAAC,GAAEI,EAAE,KAAKJ,CAAC,IAAGM,IAAEA,EAAE,eAAc;AAAA,EAAE;AAAC;AAAC,IAAImM,IAAGC,IAAGC,IAAGC,IAAGC,IAAGC,IAAGC,IAAGC,IAAGC,IAAGC,IAAGC,KAAG,IAAGC,KAAG,IAAGC,KAAG,MAAKC,KAAG,IAAGC,KAAG,IAAGC,KAAG,IAAGC,KAAG,IAAGC,KAAG;AAAK,SAASC,GAAG3N,GAAEC,GAAE;AAAC,QAAMC,IAAE6M,GAAG,IAAI/M,CAAC;AAAE,MAAUC,MAAP,MAAS;AAAC,UAAMC,IAAE0N,GAAG5N,CAAC;AAAE,IAAAE,EAAE,eAAaD,KAAGA,EAAE,YAAYC,CAAC;AAAA,EAAC;AAAC,MAAG8M,GAAG,IAAIhN,CAAC,KAAG0M,GAAG,aAAa,OAAO1M,CAAC,GAAE4H,EAAG1H,CAAC,GAAE;AAAC,UAAMF,IAAE6N,GAAG3N,GAAE6M,EAAE;AAAE,IAAAe,GAAG9N,GAAE,GAAEA,EAAE,SAAO,GAAE,IAAI;AAAA,EAAC;AAAC,EAASE,MAAT,UAAYyK,GAAGuC,IAAGP,IAAGC,IAAG1M,GAAE,WAAW;AAAC;AAAC,SAAS4N,GAAG9N,GAAEC,GAAEC,GAAE,GAAE;AAAC,MAAIE,IAAEH;AAAE,SAAKG,KAAGF,GAAE,EAAEE,GAAE;AAAC,UAAMH,IAAED,EAAEI,CAAC;AAAE,IAASH,MAAT,UAAY0N,GAAG1N,GAAE,CAAC;AAAA,EAAC;AAAC;AAAC,SAAS8N,GAAG/N,GAAEC,GAAE;AAAC,EAAAD,EAAE,YAAY,cAAaC,CAAC;AAAC;AAAC,MAAM+N,KAAG;AAAO,SAASC,GAAGjO,GAAEC,GAAE;AAAC,QAAMC,IAAEuM,GAAG,MAAM;AAAO,MAAa,OAAOvM,KAAjB,UAAmB;AAAC,UAAMC,IAAEH,EAAE,UAAU,SAASE,CAAC;AAAE,IAAAD,IAAE,KAAG,CAACE,IAAEH,EAAE,UAAU,IAAIE,CAAC,IAAED,IAAE,KAAGE,KAAGH,EAAE,UAAU,OAAOE,CAAC;AAAA,EAAC;AAAC,QAAM,IAAE,iBAAiBF,CAAC,EAAE,iBAAiB,6BAA6B,KAAGgO;AAAG,EAAAhO,EAAE,MAAM,YAAY,wBAA2BC,MAAJ,IAAM,KAAG,QAAQA,CAAC,MAAM,CAAC,GAAG;AAAC;AAAC,SAASiO,GAAGlO,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE;AAAM,EAAIC,MAAJ,IAAM8N,GAAG7N,GAAE,EAAE,IAAED,MAAIoE,KAAG0J,GAAG7N,GAAE,MAAM,IAAED,MAAIqE,KAAGyJ,GAAG7N,GAAE,QAAQ,IAAED,MAAIsE,KAAGwJ,GAAG7N,GAAE,OAAO,IAAED,MAAIuE,KAAGuJ,GAAG7N,GAAE,SAAS,IAAED,MAAIwE,KAAGsJ,GAAG7N,GAAE,OAAO,IAAED,MAAIyE,MAAIqJ,GAAG7N,GAAE,KAAK;AAAC;AAAC,SAASiO,GAAGnO,GAAEC,GAAE;AAAC,QAAMC,IAAE8M,GAAG,IAAIhN,CAAC;AAAE,EAASE,MAAT,UAAYuF,EAAG,EAAE;AAAE,QAAM,IAAEvF,EAAE,UAAUuM,IAAGC,EAAE;AAAE,MAAG,SAAS1M,GAAEC,GAAEC,GAAE;AAAC,UAAMC,IAAED,EAAE;AAAa,KAAC,SAASF,GAAEC,GAAEC,GAAE;AAAC,MAAAF,EAAE,gBAAgBC,EAAE,IAAI,EAAE,IAAEC;AAAA,IAAC,GAAGD,GAAEC,GAAEF,CAAC,GAAEG,EAAE,IAAIH,GAAEC,CAAC;AAAA,EAAC,EAAED,GAAE,GAAE0M,EAAE,GAAE3F,EAAG7G,CAAC,IAAE,EAAE,aAAa,qBAAoB,MAAM,IAAEwG,GAAGxG,CAAC,KAAG,EAAE,aAAa,0BAAyB,MAAM,GAAE0H,EAAG1H,CAAC,GAAE;AAAC,UAAMF,IAAEE,EAAE,UAASD,IAAEC,EAAE;AAAO,QAAOF,MAAJ,KAAOiO,GAAG,GAAEjO,CAAC,GAAMC,MAAJ,GAAM;AAAC,YAAMD,IAAEC,IAAE;AAAE,OAAC,SAASD,GAAEC,GAAEC,GAAEC,GAAE;AAAC,cAAMC,IAAEgN;AAAG,QAAAA,KAAG,IAAGgB,GAAGpO,GAAEE,GAAE,GAAED,GAAEC,EAAE,WAAWC,CAAC,CAAC,GAAEkO,GAAGnO,GAAEC,CAAC,GAAEiN,KAAGhN;AAAA,MAAC,GAAEyN,GAAG3N,GAAE8M,EAAE,GAAEhN,GAAEE,GAAE,CAAC;AAAA,IAAC;AAAC,UAAME,IAAEF,EAAE;AAAS,IAAIE,MAAJ,KAAO8N,GAAG,GAAE9N,CAAC,GAAEF,EAAE,SAAQ,KAAIoO,GAAG,MAAKpO,GAAE,CAAC,GAAE8K,GAAG9K,CAAC,MAAIiN,MAAIvI,IAAG2I,MAAI3I;AAAA,EAAG,OAAK;AAAC,UAAM3E,IAAEC,EAAE;AAAiB,QAAGwG,GAAGxG,CAAC,GAAE;AAAC,YAAMD,IAAEC,EAAE,SAASwM,IAAGD,EAAE;AAAE,MAAOxM,MAAP,QAAUsO,GAAGvO,GAAEC,CAAC,GAAE,EAAE,kBAAgB;AAAA,IAAO,MAAM,CAAA8G,EAAG7G,CAAC,MAAIA,EAAE,gBAAe,MAAKkN,MAAInN;AAAI,IAAAkN,MAAIlN,GAAEsN,MAAItN;AAAA,EAAC;AAAC,SAAcA,MAAP,QAAUA,EAAE,YAAY,CAAC,GAAE0K,GAAGuC,IAAGP,IAAGC,IAAG1M,GAAE,SAAS,GAAE;AAAC;AAAC,SAASkO,GAAGpO,GAAEC,GAAEC,GAAE,GAAEE,GAAE;AAAC,QAAMC,IAAE8M;AAAG,EAAAA,KAAG;AAAG,MAAI7M,IAAEJ;AAAE,SAAKI,KAAG,GAAE,EAAEA,GAAE;AAAC,IAAA6N,GAAGnO,EAAEM,CAAC,GAAEF,CAAC;AAAE,UAAMH,IAAE+M,GAAG,IAAIhN,EAAEM,CAAC,CAAC;AAAE,IAAOL,MAAP,QAAU8G,EAAG9G,CAAC,MAAWoN,OAAP,SAAYA,KAAGpN,EAAE,UAAS,IAASqN,OAAL,OAAUA,KAAGrN,EAAE,SAAQ;AAAA,EAAI;AAAC,EAAA+K,GAAG/K,CAAC,MAAIkN,MAAIvI,KAAIxE,EAAE,QAAQ,uBAAqB+M,IAAGA,KAAG9M,IAAE8M;AAAE;AAAC,SAASqB,GAAGxO,GAAEC,GAAE;AAAC,MAAGD,GAAE;AAAC,UAAME,IAAEF,EAAE;AAAO,QAAGE,GAAE;AAAC,YAAMF,IAAEC,EAAE,IAAIC,CAAC;AAAE,UAAGF,EAAE,QAAO2I,GAAG3I,CAAC,IAAE,eAAa0G,GAAG1G,CAAC,KAAGA,EAAE,aAAW,cAAY;AAAA,IAAI;AAAC,WAAM;AAAA,EAAO;AAAC,SAAO;AAAI;AAAC,SAASsO,GAAGtO,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEsO,GAAGxO,GAAE+M,EAAE,GAAE3M,IAAEoO,GAAGvO,GAAE+M,EAAE;AAAE,QAAI5M,KAAGH,EAAE,WAAWC,CAAC,EAAE,oBAAoBE,CAAC;AAAC;AAAC,SAASiO,GAAGrO,GAAEC,GAAE;AAAC,QAAMC,IAAED,EAAE,2BAAyB,IAAG,IAAEA,EAAE,gBAAc;AAAG,MAAGC,MAAIkN,MAAI,MAAIM,IAAG;AAAC,UAAMxN,IAAOkN,OAAL,IAAQ,IAAElN,IAAEwN,MAAItN,IAAEgN,IAAGpI,GAAG,KAAK5E,CAAC,IAAE,QAAM6E,GAAG,KAAK7E,CAAC,IAAE,QAAM;AAAM,QAAG,MAAI,GAAE;AAAC,YAAMA,IAAEH,EAAE,WAAUK,IAAEmM,GAAG;AAAM,UAAI,IAAS,MAAP,OAASnM,EAAE,CAAC,IAAE,QAAOE,IAAS,MAAP,OAASF,EAAE,CAAC,IAAE;AAAO,UAAY,MAAT,QAAW;AAAC,YAAa,OAAO,KAAjB,UAAmB;AAAC,gBAAMN,IAAE0F,GAAG,CAAC;AAAE,cAAEpF,EAAE,CAAC,IAAEN;AAAA,QAAC;AAAC,QAAAI,EAAE,OAAO,GAAG,CAAC;AAAA,MAAC;AAAC,UAAU,MAAP,QAAUF,KAAW,MAAR,MAAU,CAAAD,EAAE,gBAAgB,KAAK;AAAA,WAAM;AAAC,YAAYO,MAAT,QAAW;AAAC,cAAa,OAAOA,KAAjB,UAAmB;AAAC,kBAAMR,IAAE0F,GAAGlF,CAAC;AAAE,YAAAA,IAAEF,EAAE,CAAC,IAAEN;AAAA,UAAC;AAAC,UAASQ,MAAT,UAAYJ,EAAE,IAAI,GAAGI,CAAC;AAAA,QAAC;AAAC,QAAAP,EAAE,MAAI;AAAA,MAAC;AAAC,MAAIwN,OAAIzN,EAAE,YAAW,EAAG,QAAM;AAAA,IAAE;AAAC,IAAA0N,KAAG,GAAEzN,EAAE,0BAAwBmN,IAAGnN,EAAE,eAAa;AAAA,EAAC;AAAC,MAAIG;AAAC;AAAC,SAASqO,GAAGzO,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEkN;AAAG,MAAIhN;AAAE,EAAAgN,KAAG,IAAGC,KAAG,MAAKC,KAAG,IAAG,SAAStN,GAAEC,GAAEC,GAAE;AAAC,UAAMC,IAAEgN,IAAG/M,IAAEJ,EAAE,QAAOK,IAAEJ,EAAE;AAAO,IAAAkN,KAAG;AAAG,UAAM7M,IAAEJ,EAAE;AAAQ,QAAOE,MAAJ,KAAWC,MAAJ,GAAM;AAAC,YAAMH,IAAEF,EAAE,SAAQG,IAAEF,EAAE;AAAQ,UAAGC,MAAIC,EAAE,CAAAuO,GAAGxO,GAAEI,CAAC;AAAA,WAAM;AAAC,cAAMN,IAAE4N,GAAG1N,CAAC,GAAED,IAAEkO,GAAGhO,GAAE,IAAI;AAAE,YAAG;AAAC,UAAAG,EAAE,aAAaL,GAAED,CAAC;AAAA,QAAC,SAAOI,GAAE;AAAC,cAAa,OAAOA,KAAjB,YAA0BA,KAAN,MAAQ;AAAC,kBAAMC,IAAE,GAAGD,EAAE,SAAQ,CAAE,YAAYE,EAAE,OAAO,sBAAsBL,EAAE,OAAO,SAASE,CAAC,uBAAuBH,EAAE,OAAO,UAAUE,CAAC;AAAK,kBAAM,IAAI,MAAMG,CAAC;AAAA,UAAC;AAAC,gBAAMD;AAAA,QAAC;AAAC,QAAAuN,GAAGzN,GAAE,IAAI;AAAA,MAAC;AAAC,YAAME,IAAE4M,GAAG,IAAI7M,CAAC;AAAE,MAAA4G,EAAG3G,CAAC,MAAWiN,OAAP,SAAYA,KAAGjN,EAAE,cAAkBkN,OAAL,OAAUA,KAAGlN,EAAE,SAAQ;AAAA,IAAI,OAAK;AAAC,YAAMD,IAAE0N,GAAG7N,GAAE+M,EAAE,GAAExM,IAAEsN,GAAG5N,GAAE+M,EAAE;AAAE,UAAG7M,EAAE,WAASC,KAAGqF,EAAG,GAAG,GAAElF,EAAE,WAASF,KAAGoF,EAAG,GAAG,GAAMrF,MAAJ,EAAM,CAAIC,MAAJ,KAAO+N,GAAG7N,GAAEN,GAAE,GAAEI,IAAE,GAAEH,CAAC;AAAA,eAAcG,MAAJ;AAAO,YAAOD,MAAJ,GAAM;AAAC,gBAAMJ,IAAQE,EAAE,SAAR,QAAqBA,EAAE,UAAR,QAAsBA,EAAE,QAAQ,sBAAhB;AAAmC,UAAA4N,GAAG3N,GAAE,GAAEC,IAAE,GAAEJ,IAAE,OAAKM,CAAC,GAAEN,MAAIM,EAAE,cAAY;AAAA,QAAG;AAAA,YAAM,EAAC,SAASN,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAE;AAAC,cAAMC,IAAEH,IAAE,GAAEI,IAAEH,IAAE;AAAE,YAAII,GAAEC,GAAEC,IAAEL,EAAE,iBAAgBM,IAAE,GAAEC,IAAE;AAAE,eAAKD,KAAGL,KAAGM,KAAGL,KAAG;AAAC,gBAAMP,IAAEC,EAAEU,CAAC,GAAER,IAAED,EAAEU,CAAC;AAAE,cAAGZ,MAAIG,EAAE,CAAAO,IAAEiO,GAAGD,GAAGvO,GAAEE,EAAE,OAAO,CAAC,GAAEM,KAAIC;AAAA,eAAQ;YAAUJ,iBAAIA,IAAE,IAAI,IAAIP,CAAC,IAAYQ,MAAT,WAAaA,IAAE,IAAI,IAAIP,CAAC;AAAG,kBAAME,IAAEK,EAAE,IAAIT,CAAC,GAAEM,IAAEE,EAAE,IAAIL,CAAC;AAAE,gBAAGC,EAAE,KAAGE,GAAE;AAAC,oBAAMN,IAAEkL,GAAGwB,IAAGvM,CAAC;AAAE,cAAAH,MAAIU,IAAEA,IAAEiO,GAAGD,GAAGvO,GAAEE,EAAE,OAAO,CAAC,KAAGA,EAAE,WAAWK,CAAC,EAAE,YAAYV,CAAC,GAAE0O,GAAGvO,GAAEE,EAAE,OAAO,IAAGM,KAAIC;AAAA,YAAG,MAAM,CAAAuN,GAAGhO,GAAEE,EAAE,WAAWK,CAAC,CAAC,GAAEE;AAAA,gBAAS,CAAAF,IAAEiO,GAAGf,GAAG5N,CAAC,CAAC,GAAE2N,GAAG3N,GAAEK,EAAE,OAAO,GAAEM;AAAA,UAAG;AAAC,gBAAMP,IAAE4M,GAAG,IAAI7M,CAAC;AAAE,UAAOC,MAAP,QAAU2G,EAAG3G,CAAC,MAAWiN,OAAP,SAAYA,KAAGjN,EAAE,UAAS,IAASkN,OAAL,OAAUA,KAAGlN,EAAE;QAAY;AAAC,cAAMS,IAAEF,IAAEL,GAAEQ,IAAEF,IAAEL;AAAE,YAAGM,KAAG,CAACC,GAAE;AAAC,gBAAMb,IAAEC,EAAEK,IAAE,CAAC,GAAEJ,IAAWF,MAAT,SAAW,OAAKyM,GAAG,gBAAgBzM,CAAC;AAAE,UAAAmO,GAAGlO,GAAEF,GAAEY,GAAEL,GAAEF,EAAE,WAAWF,CAAC,CAAC;AAAA,QAAC,MAAM,CAAAW,KAAG,CAACD,KAAGiN,GAAG7N,GAAEU,GAAEL,GAAED,EAAE,OAAO;AAAA,MAAC,GAAEJ,GAAEE,GAAEI,GAAEH,GAAEC,GAAEH,CAAC;AAAA,IAAC;AAAC,IAAA8K,GAAG/K,CAAC,MAAIkN,MAAIvI,KAAItE,EAAE,uBAAqB6M,IAAGA,KAAGhN,IAAEgN;AAAA,EAAE,EAAEnN,GAAEC,GAAEA,EAAE,WAAWC,CAAC,CAAC,GAAEmO,GAAGpO,GAAEC,CAAC,GAAE0O,GAAGxO,IAAEH,CAAC,KAASoN,MAAN,QAAUA,OAAKjN,EAAE,gBAAc,CAACqN,OAAKrN,EAAE,cAAciN,EAAE,GAAEjN,EAAE,aAAakN,EAAE,IAAG,SAAStN,GAAE;AAAC,IAAA4O,GAAG5O,CAAC,KAAQsN,OAAL,MAASA,OAAKtN,EAAE,eAAa,CAACyN,MAAIzN,EAAE,aAAasN,EAAE;AAAA,EAAC,EAAErN,CAAC,GAAEmN,KAAG;AAAC;AAAC,SAASS,GAAG7N,GAAEC,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,MAAI,IAAEF,EAAE;AAAQ,SAAY,MAAP,QAAU;AAAC,UAAMA,IAAEC,EAAE,IAAI,CAAC;AAAE,IAASD,MAAT,UAAYyF,EAAG,GAAG,GAAEvF,EAAE,KAAK,CAAC,GAAE,IAAEF,EAAE;AAAA,EAAM;AAAC,SAAOE;AAAC;AAAC,SAASwO,GAAG1O,GAAEC,GAAE;AAAC,QAAMC,IAAE6M,GAAG,IAAI/M,CAAC;AAAE,MAAI,IAAEgN,GAAG,IAAIhN,CAAC;AAAE,EAASE,MAAT,UAAqB,MAAT,UAAYuF,EAAG,EAAE;AAAE,QAAMrF,IAAEoN,MAAIV,GAAG,IAAI9M,CAAC,KAAG6M,GAAG,IAAI7M,CAAC,GAAEK,IAAE6K,GAAGwB,IAAG1M,CAAC;AAAE,MAAGE,MAAI,KAAG,CAACE,GAAE;AAAC,QAAGwH,EAAG1H,CAAC,GAAE;AAAC,YAAMF,IAAEK,EAAE;AAAqB,MAASL,MAAT,WAAamN,MAAInN,GAAEuN,MAAIvN;AAAG,YAAMC,IAAEI,EAAE;AAAwB,MAASJ,MAAT,WAAamN,MAAInN;AAAA,IAAE,OAAK;AAAC,YAAMD,IAAEE,EAAE;AAAiB,MAAA6G,EAAG7G,CAAC,KAAG,CAACA,EAAE,gBAAe,MAAKkN,MAAIpN,IAAGuN,MAAIvN,GAAEmN,MAAInN;AAAA,IAAC;AAAC,WAAOK;AAAA,EAAC;AAAC,MAAGH,MAAI,KAAGE,KAAGuK,GAAGuC,IAAGP,IAAGC,IAAG,GAAE,SAAS,GAAE,EAAE,UAAU1M,GAAEG,GAAEoM,EAAE,GAAE;AAAC,UAAMvM,IAAEiO,GAAGnO,GAAE,IAAI;AAAE,WAAcC,MAAP,QAAUwF,EAAG,EAAE,GAAExF,EAAE,aAAaC,GAAEG,CAAC,GAAEsN,GAAG3N,GAAE,IAAI,GAAEE;AAAA,EAAC;AAAC,MAAG0H,EAAG1H,CAAC,KAAG0H,EAAG,CAAC,GAAE;AAAC,UAAM5H,IAAE,EAAE;AAAS,IAAAA,MAAIE,EAAE,YAAU+N,GAAG5N,GAAEL,CAAC;AAAE,UAAMC,IAAE,EAAE;AAAS,IAAAA,MAAIC,EAAE,YAAUgO,GAAG7N,GAAEJ,CAAC,GAAEG,MAAIqO,GAAGvO,GAAE,GAAEG,CAAC,GAAE4K,GAAG,CAAC,KAAG,EAAE,SAAQ,KAAIqD,GAAGpO,GAAE,GAAEG,CAAC,IAAG2K,GAAG,CAAC,MAAImC,MAAIvI,IAAG2I,MAAI3I;AAAA,EAAG,OAAK;AAAC,UAAM3E,IAAE,EAAE,eAAc;AAAG,QAAGyG,GAAG,CAAC,GAAE;AAAC,YAAMzG,IAAE,EAAE,SAASyM,IAAGD,EAAE;AAAE,MAAOxM,MAAP,QAAUsO,GAAGvO,GAAEC,CAAC;AAAA,IAAC,MAAM,CAAA8G,EAAG,CAAC,KAAG,CAAC,EAAE,gBAAe,MAAKqG,MAAInN;AAAG,IAAAkN,MAAIlN,GAAEsN,MAAItN;AAAA,EAAC;AAAC,MAAG,CAACwN,MAAIxC,GAAG,CAAC,KAAG,EAAE,iBAAesC,IAAG;AAAC,UAAMvN,IAAE,EAAE;AAAc,IAAAA,EAAE,eAAauN,IAAG,IAAEvN;AAAA,EAAC;AAAC,SAAOK;AAAC;AAAC,SAASkO,GAAGvO,GAAEC,GAAE;AAAC,MAAIC,IAAEwM,GAAG;AAAmB,QAAM,IAAEA,GAAG;AAAY,MAAUxM,MAAP,MAAS;AAAC,QAAG,EAAEF,CAAC,MAAIC,EAAE;AAAO,IAAAC,IAAEmJ,GAAGqD,EAAE;AAAA,EAAC;AAAC,EAAAxM,EAAEF,CAAC,IAAEC;AAAC;AAAC,SAAS0O,GAAG3O,GAAE;AAAC,MAAIC,IAAED,EAAE;AAAY,SAAcC,MAAP,QAAUA,MAAIyM,GAAG,wBAAsBzM,IAAEA,EAAE,cAAaA;AAAC;AAAC,SAAS4O,GAAG7O,GAAEC,GAAEC,GAAE,GAAEE,GAAEC,GAAE;AAAC,EAAA8M,KAAG,IAAGI,KAAG,IAAGH,KAAG,IAAGI,KAAG,MAAI3J,IAAG6J,KAAG,MAAKhB,KAAGxM,GAAEuM,KAAGvM,EAAE,SAAQyM,KAAGzM,EAAE,QAAO0M,KAAGF,GAAG,WAAW,UAASG,KAAGzM,GAAE0M,KAAGzM,GAAE0M,KAAG/M,EAAE,UAASgN,KAAG/M,EAAE,UAASwN,KAAGxN,EAAE,WAAUgN,KAAG,IAAI,IAAI/M,EAAE,YAAY;AAAE,QAAMI,IAAE,oBAAI;AAAI,SAAO4M,KAAG5M,GAAEoO,GAAG,QAAO,IAAI,GAAEhC,KAAG,QAAOC,KAAG,QAAOE,KAAG,QAAOC,KAAG,QAAOC,KAAG,QAAOC,KAAG,QAAOP,KAAG,QAAOQ,KAAG,QAAOC,KAAG,QAAO5M;AAAC;AAAC,SAASsN,GAAG5N,GAAE;AAAC,QAAMC,IAAEgN,GAAG,IAAIjN,CAAC;AAAE,SAAgBC,MAAT,UAAYwF,EAAG,IAAGzF,CAAC,GAAEC;AAAC;AAAC,MAAM6O,KAAG,OAAO,OAAO,CAAA,CAAE,GAAEC,KAAG,IAAGC,KAAG,CAAC,CAAC,WAAU,SAAShP,GAAEC,GAAE;AAAC,MAAGgP,KAAGjP,EAAE,WAAUkP,KAAGlP,EAAE,KAAIC,EAAE,YAAW,EAAG;AAAO,QAAK,EAAC,KAAIC,GAAE,UAAS,GAAE,SAAQI,GAAE,SAAQC,GAAE,QAAOC,EAAC,IAAER;AAAE,MAAG,CAAA8K,EAAG7K,GAAEc,IAAEf,CAAC,KAAkBE,KAAN,MAAe;AAAA,QAAG,SAASF,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAOgK,GAAGnK,CAAC,KAAG,CAACC,KAAG,CAACE,KAAG,CAACD;AAAA,IAAC,EAAEA,GAAEI,GAAEE,GAAED,CAAC,EAAE,CAAAuK,EAAG7K,GAAEe,IAAEhB,CAAC;AAAA,aAAU,SAASA,GAAEC,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAO+J,GAAGnK,CAAC,KAAG,CAACG,KAAG,CAACD,MAAID,KAAGG;AAAA,IAAE,EAAEF,GAAEI,GAAE,GAAEE,GAAED,CAAC,EAAE,CAAAuK,EAAG7K,GAAEgB,IAAEjB,CAAC;AAAA,aAAU,SAASA,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAO+J,GAAGlK,CAAC,KAAG,CAACC,KAAG,CAACE,KAAG,CAACD;AAAA,IAAC,EAAEA,GAAEI,GAAEE,GAAED,CAAC,EAAE,CAAAuK,EAAG7K,GAAEiB,IAAElB,CAAC;AAAA,aAAU,SAASA,GAAEC,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAO8J,GAAGlK,CAAC,KAAG,CAACG,KAAG,CAACD,MAAID,KAAGG;AAAA,IAAE,EAAEF,GAAEI,GAAE,GAAEE,GAAED,CAAC,EAAE,CAAAuK,EAAG7K,GAAEkB,IAAEnB,CAAC;AAAA,aAAU,yBAASA,GAAEC,GAAEC,GAAE;AAAC,aAAO,yBAASF,GAAE;AAAC,eAAkBA,MAAZ;AAAA,MAAa,EAAEA,CAAC,KAAG,CAACC,KAAG,CAACC;AAAA,IAAC,EAAEA,GAAEI,GAAEC,CAAC,EAAE,CAAAuK,EAAG7K,GAAEmB,IAAEpB,CAAC;AAAA,aAAU,yBAASA,GAAEC,GAAEC,GAAE;AAAC,aAAO,yBAASF,GAAE;AAAC,eAAoBA,MAAd;AAAA,MAAe,EAAEA,CAAC,KAAG,CAACC,KAAG,CAACC;AAAA,IAAC,EAAEA,GAAEI,GAAEC,CAAC,EAAE,CAAAuK,EAAG7K,GAAEoB,IAAErB,CAAC;AAAA,aAAU,SAASA,GAAEC,GAAE;AAAC,aAAOoK,GAAGrK,CAAC,KAAGC;AAAA,IAAC,EAAEC,GAAE,CAAC,EAAE,CAAAiP,KAAG,IAAGrE,EAAG7K,GAAEqB,IAAEtB,CAAC;AAAA,aAAU,yBAASA,GAAE;AAAC,aAAYA,MAAN;AAAA,IAAO,EAAEE,CAAC,EAAE,CAAA4K,EAAG7K,GAAEsB,IAAEvB,CAAC;AAAA,aAAU,SAASA,GAAEC,GAAE;AAAC,aAAO+C,MAAG/C,KAASD,EAAE,YAAW,MAAnB;AAAA,IAAqB,EAAEE,GAAEI,CAAC,EAAE,CAAAN,EAAE,eAAc,GAAGmP,KAAG,IAAGrE,EAAG7K,GAAEI,IAAE,EAAE;AAAA,aAAU,SAASL,GAAEC,GAAE;AAAC,aAAOoK,GAAGrK,CAAC,KAAG,CAACC;AAAA,IAAC,EAAEC,GAAE,CAAC,EAAE,CAAAiP,KAAG,IAAGrE,EAAG7K,GAAEqB,IAAEtB,CAAC;AAAA,aAAU,SAASA,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAO6C,KAAE,CAAC/C,KAAG,CAACC,MAAIoK,GAAGtK,CAAC,KAASA,EAAE,YAAW,MAAnB,OAAuBG,KAAG,EAAEA,KAAGF,KAAGC,MAAIoK,GAAGtK,CAAC;AAAA,IAAC,EAAEE,GAAEM,GAAED,GAAED,CAAC,EAAE,CAAAgK,GAAGpK,CAAC,IAAE4K,EAAG7K,GAAEuB,IAAExB,CAAC,KAAGA,EAAE,eAAc,GAAG8K,EAAG7K,GAAEG,IAAE,EAAE;AAAA,aAAW,yBAASJ,GAAE;AAAC,aAAiBA,MAAX;AAAA,IAAY,EAAEE,CAAC,EAAE,CAAA4K,EAAG7K,GAAEwB,IAAEzB,CAAC;AAAA,aAAU,SAASA,GAAEC,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAO4C,KAAE,EAAE9C,KAAGC,KAAGC,OAAKmK,GAAGvK,CAAC,KAASA,EAAE,kBAAR,OAAuBC,KAAG,EAAEA,KAAGE,KAAGC,MAAImK,GAAGvK,CAAC;AAAA,IAAC,EAAEE,GAAEI,GAAE,GAAEE,GAAED,CAAC,EAAE,CAAAgK,GAAGrK,CAAC,IAAE4K,EAAG7K,GAAEyB,IAAE1B,CAAC,KAAGA,EAAE,kBAAiB8K,EAAG7K,GAAEG,IAAE,EAAE;AAAA,aAAW,SAASJ,GAAEC,GAAEC,GAAE;AAAC,aAAOoK,GAAGtK,CAAC,MAAIgD,KAAE/C,IAAEC;AAAA,IAAE,EAAEA,GAAEM,GAAEF,CAAC,EAAE,CAAAN,EAAE,eAAc,GAAG8K,EAAG7K,GAAES,IAAE,EAAE;AAAA,aAAU,SAASV,GAAEC,GAAEC,GAAE;AAAC,aAAOqK,GAAGvK,CAAC,MAAIgD,KAAE/C,IAAEC;AAAA,IAAE,EAAEA,GAAEM,GAAEF,CAAC,EAAE,CAAAN,EAAE,eAAc,GAAG8K,EAAG7K,GAAES,IAAE,EAAE;AAAA,aAAU,SAASV,GAAEC,GAAE;AAAC,aAAO+C,MAAG/C,KAAGqK,GAAGtK,CAAC;AAAA,IAAC,EAAEE,GAAEK,CAAC,EAAE,CAAAP,EAAE,eAAc,GAAG8K,EAAG7K,GAAEU,IAAE,EAAE;AAAA,aAAU,SAASX,GAAEC,GAAE;AAAC,aAAO+C,MAAG/C,KAAGsK,GAAGvK,CAAC;AAAA,IAAC,EAAEE,GAAEK,CAAC,EAAE,CAAAP,EAAE,kBAAiB8K,EAAG7K,GAAEU,IAAE,EAAE;AAAA,aAAU,SAASX,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAYH,EAAE,YAAW,MAAnB,OAAuB,CAACC,KAAGmK,GAAGlK,GAAEC,CAAC;AAAA,IAAC,EAAED,GAAEM,GAAED,GAAED,CAAC,EAAE,CAAAN,EAAE,eAAc,GAAG8K,EAAG7K,GAAEW,IAAE,MAAM;AAAA,aAAU,SAASZ,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAYH,EAAE,kBAAR,OAAuB,CAACC,KAAGmK,GAAGlK,GAAEC,CAAC;AAAA,IAAC,EAAED,GAAEM,GAAED,GAAED,CAAC,EAAE,CAAAN,EAAE,eAAc,GAAG8K,EAAG7K,GAAEW,IAAE,WAAW;AAAA,aAAU,SAASZ,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAYH,EAAE,YAAW,MAAnB,OAAuB,CAACC,KAAGmK,GAAGlK,GAAEC,CAAC;AAAA,IAAC,EAAED,GAAEM,GAAED,GAAED,CAAC,EAAE,CAAAN,EAAE,eAAc,GAAG8K,EAAG7K,GAAEW,IAAE,QAAQ;AAAA,aAAU,yBAASZ,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAcH,MAAR,SAAW,CAACC,KAAG,CAACC,KAAG,CAACC;AAAA,IAAC,EAAED,GAAEM,GAAEF,GAAEC,CAAC,EAAE,CAAAuK,EAAG7K,GAAE0B,IAAE3B,CAAC;AAAA,aAAU,SAASA,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAYH,EAAE,YAAW,MAAnB,OAAuB,CAACC,KAAGmK,GAAGlK,GAAEC,CAAC;AAAA,IAAC,EAAED,GAAE,GAAEK,GAAED,CAAC,EAAE,CAAAN,EAAE,kBAAiB8K,EAAG7K,GAAEY,IAAE,MAAM;AAAA,aAAU,SAASb,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAO6C,KAAQhD,EAAE,YAAW,MAAnB,OAAuBE,KAAGD,IAAQD,EAAE,YAAW,MAAnB,OAAuBG,KAASH,EAAE,kBAAR,OAAuBG,KAAGF;AAAA,IAAC,EAAEC,GAAE,GAAEK,GAAED,CAAC,EAAE,CAAAN,EAAE,eAAc,GAAG8K,EAAG7K,GAAEa,IAAE,MAAM;AAAA,SAAM;AAAC,YAAMV,IAAEH,EAAE,aAAa;AAAW,MAAOG,MAAP,QAAUiG,EAAGjG,CAAC,IAAE,CAAC6C,MAAGuH,GAAGtK,GAAEK,GAAED,CAAC,MAAIN,EAAE,eAAc,GAAG8K,EAAG7K,GAAEqC,IAAEtC,CAAC,KAAI,SAASA,GAAEC,GAAEC,GAAEC,GAAE;AAAC,eAAM,CAACF,KAASD,EAAE,YAAW,MAAnB,QAAwBgD,KAAE9C,IAAEC;AAAA,MAAE,EAAED,GAAE,GAAEK,GAAED,CAAC,KAAkJN,EAAE,eAAc,GAAG8K,EAAG7K,GAAEmC,IAAEpC,CAAC,KAA1K,SAASA,GAAEC,GAAEC,GAAEC,GAAE;AAAC,eAAM,CAACF,KAASD,EAAE,kBAAR,QAAwBgD,KAAE9C,IAAEC;AAAA,MAAE,EAAED,GAAE,GAAEK,GAAED,CAAC,KAA6CN,EAAE,eAAc,GAAG8K,EAAG7K,GAAEoC,IAAErC,CAAC,KAAtEwK,GAAGtK,GAAEK,GAAED,CAAC,MAAIN,EAAE,kBAAiB8K,EAAG7K,GAAEqC,IAAEtC,CAAC;AAAA,IAAgE;AAAC,IAAC,0BAASA,GAAEC,GAAEC,GAAEC,GAAE;AAAC,aAAOH,KAAGC,KAAGC,KAAGC;AAAA,IAAC,GAAGG,GAAE,GAAEE,GAAED,CAAC,KAAGuK,EAAG7K,GAAE4C,IAAE7C,CAAC;AAAA;AAAC,CAAC,GAAE,CAAC,eAAc,SAASA,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,QAAO,IAAEA,EAAE;AAAY,EAAAE,aAAa,QAAgB,MAAV,WAAa2G,GAAG5G,GAAG,MAAI;AAAC,IAAAyG,GAAGsB,GAAG9H,CAAC,CAAC,MAAIkP,KAAG;AAAA,EAAG,CAAC;AAAE,CAAC,GAAE,CAAC,oBAAmB,SAASpP,GAAEC,GAAE;AAAC,EAAA4G,GAAG5G,GAAG,MAAI;AAAC,UAAMC,IAAE4G,EAAE;AAAG,QAAGT,EAAGnG,CAAC,KAAG,CAACD,EAAE,eAAc;AAAC,YAAM,IAAEC,EAAE,QAAOE,IAAEF,EAAE,OAAO,QAAO;AAAG,MAAAgJ,GAAG,EAAE,GAAG,IAAGlJ,EAAE,YAAUiP,KAAGF,MAAgB,EAAE,SAAd,aAAoB,CAAC7O,EAAE,YAAW,KAAIE,EAAE,UAAS,MAAKF,EAAE,UAAQ6G,EAAG3G,CAAC,KAAGA,EAAE,SAAQ,MAAKF,EAAE,UAAQ4K,EAAG7K,GAAEM,IAAEsE,EAAE;AAAA,IAAC;AAAA,EAAC,CAAC;AAAE,CAAC,GAAE,CAAC,kBAAiB,SAAS7E,GAAEC,GAAE;AAACgD,EAAAA,KAAEoM,KAAG,KAAGxI,GAAG5G,GAAG,MAAI;AAAC,IAAAqP,GAAGrP,GAAED,EAAE,IAAI;AAAA,EAAC,CAAC;AAAE,CAAC,GAAE,CAAC,SAAQ,SAASA,GAAEC,GAAE;AAAC,EAAAD,EAAE,mBAAkB6G,GAAG5G,GAAG,MAAI;AAAC,UAAMC,IAAE4G,EAAE,GAAG,IAAE9G,EAAE,MAAKI,IAAEmP,GAAGvP,CAAC;AAAE,QAAS,KAAN,QAASqG,EAAGnG,CAAC,KAAGsP,GAAGtP,GAAEE,GAAE,GAAEJ,EAAE,WAAU,EAAE,GAAE;AAAC,MAAAqP,OAAKC,GAAGrP,GAAE,CAAC,GAAEoP,KAAG;AAAI,YAAM,IAAEnP,EAAE,OAAO,QAAO,GAAG,IAAEgG,GAAGjG,EAAE,OAAO;AAAE,UAAU,MAAP,KAAS;AAAO,YAAM,IAAEC,EAAE,WAAU,GAAGM,IAAE,IAAEN,EAAE,OAAO,SAAOA,EAAE,MAAM,QAAOO,IAAE,IAAEP,EAAE,MAAM,SAAOA,EAAE,OAAO;AAAOgD,MAAAA,MAAG,CAAChD,EAAE,YAAW,KAAI6G,EAAG,CAAC,KAAU,EAAE,eAAT,QAAqB,EAAE,eAAc,EAAG,MAAM,GAAEvG,CAAC,IAAE,IAAE,EAAE,eAAc,EAAG,MAAMA,IAAEC,CAAC,MAAIoJ,GAAG,EAAE,UAAU,KAAGiB,EAAG7K,GAAEM,IAAE,CAAC;AAAE,YAAMG,IAAE,EAAE;AAAOuC,MAAAA,MAAGvC,IAAE,KAA6BV,EAAE,cAA5B,2BAAuC,CAACC,EAAE,YAAW,MAAKC,EAAE,OAAO,UAAQQ,IAAGyC,MAAGC,MAAGI,MAAI,CAACvD,EAAE,YAAW,MAAKgP,KAAG,GAAE/F,GAAG,IAAI;AAAA,IAAE;AAAM,MAAAY,GAAG,IAAG7J,GAAS,MAAP,OAAS,IAAE,MAAM,GAAEoP,OAAKC,GAAGrP,GAAE,KAAG,MAAM,GAAEoP,KAAG;AAAI,IAAAxG,GAAE,GAAG1B,GAAGK,GAAE,CAAE;AAAA,EAAC,IAAIiI,KAAG;AAAI,CAAC,GAAE,CAAC,SAAQ,SAASzP,GAAEC,GAAE;AAAC,EAAA4G,GAAG5G,GAAG,MAAI;AAAC,UAAMC,IAAE4G,KAAK1G,IAAE8F,GAAGjG,EAAE,OAAO,GAAEI,IAAE0J,GAAE;AAAG,QAAG3J;AAAE,UAAGiG,EAAGnG,CAAC,GAAE;AAAC,cAAMD,IAAEC,EAAE,QAAOC,IAAEF,EAAE;AAAU,QAAeA,EAAE,SAAd,aAAwBA,EAAE,WAAN,KAAcC,EAAE,iBAAe,CAAC+K,GAAG9K,CAAC,KAAOoJ,KAAK,gBAAe,MAAxB,KAA4BpJ,EAAE,0BAAyB,EAAG,QAAO,KAAWE,MAAP,QAAUH,EAAE,GAAGG,CAAC,KAAED,EAAE,gBAAe,GAAGF,EAAE,QAAM,MAAeF,EAAE,WAAN,KAAc,CAACE,EAAE,iBAAeC,MAAID,EAAE,MAAM,QAAO,MAAK0H,EAAGzH,CAAC,IAAEA,EAAE,OAAO,CAAC,IAAEA,EAAE,iBAAgB,EAAG,OAAO,CAAC;AAAA,MAAG,WAAmBH,EAAE,gBAAZ,SAAwB;AAAC,cAAME,IAAEE,EAAE;AAAW,YAAUF,MAAP,MAAS;AAAC,gBAAMC,IAAED,EAAE;AAAS,WAAGC,MAAIsD,MAAItD,MAAIuD,OAAIuD,GAAGyI,GAAGrP,GAAED,GAAEH,GAAED,CAAC,CAAC;AAAA,QAAE;AAAA,MAAC;AAAA;AAAC,IAAA8K,EAAG7K,GAAEE,IAAEH,CAAC;AAAA,EAAC,CAAC;AAAE,CAAC,GAAE,CAAC,OAAM8O,EAAE,GAAE,CAAC,QAAOA,EAAE,GAAE,CAAC,aAAYA,EAAE,GAAE,CAAC,YAAWA,EAAE,GAAE,CAAC,WAAUA,EAAE,GAAE,CAAC,SAAQA,EAAE,GAAE,CAAC,SAAQA,EAAE,GAAE,CAAC,QAAOA,EAAE,GAAE,CAAC,QAAOA,EAAE,CAAC;AAAE5L,MAAG8L,GAAG,KAAK,CAAC,eAAc,CAAChP,GAAEC,MAAI,SAASD,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,WAAUG,IAAEoP,GAAGvP,CAAC;AAAE,EAA6BE,MAA1B,2BAA6B+C,MAAGiE,GAAGjH,CAAC,KAAsCC,MAA1B,2BAAmC2G,GAAG5G,GAAG,MAAI;AAAC,UAAMc,IAAE+F,EAAE;AAAG,QAA6B5G,MAA1B,yBAA4B;AAAC,UAAUa,MAAP,MAAS;AAAC,cAAMf,IAAE+J,GAAE;AAAG,YAAG,CAAC1D,EAAGrG,CAAC,EAAE;AAAO,QAAAiH,GAAGjH,EAAE,MAAK,CAAE;AAAA,MAAC;AAAC,UAAGqG,EAAGtF,CAAC,GAAE;AAAC,cAAMb,IAAEa,EAAE,OAAO,QAAMA,EAAE,MAAM;AAAI,YAAGC,IAAEhB,EAAE,WAAwBkP,OAAd,eAAkBlO,IAAEiO,KAAGF,MAAI9O,EAAE,YAAW,KAAIC;AAAG,cAAGgJ,GAAG,IAAI,GAAE+F,KAAG,GAAE,WAAY,MAAI;AAAC,YAAApI,GAAG5G,GAAG,MAAI;AAAC,cAAAiJ,GAAG,IAAI;AAAA,YAAC,CAAC;AAAA,UAAE,GAAG6F,EAAE,GAAE1I,EAAGtF,CAAC,GAAE;AAAC,kBAAMf,IAAEe,EAAE,OAAO,QAAO;AAAG,YAAAf,EAAE,UAAS,GAAGe,EAAE,SAAOf,EAAE,UAAS,GAAG+G,EAAG/G,CAAC,KAAGyF,EAAG,GAAG,GAAE1E,EAAE,QAAMf,EAAE;UAAU;AAAA,eAAM;AAAC,UAAAkJ,GAAG,IAAI,GAAElJ,EAAE;AAAiB,gBAAMG,IAAEY,EAAE,OAAO,WAAUV,IAAEF,EAAE,eAAc,GAAGG,IAAEH,EAAE,mBAAkB,GAAGI,IAAMQ,EAAE,OAAO,WAAb,KAAqBA,EAAE,MAAM,WAASV,EAAE;AAAOkD,UAAAA,MAAIrD,KAAG,CAACK,KAAGD,KAAGwK,EAAG7K,GAAEG,IAAE,EAAE;AAAA,QAAC;AAAC;AAAA,MAAM;AAAA,IAAC;AAAC,QAAIY;AAAE,QAAG,CAACqF,EAAGtF,CAAC,EAAE;AAAO,UAAME,IAAEjB,EAAE;AAAK,IAAOyP,OAAP,QAAW3F,GAAG,IAAG7J,GAAEwP,EAAE,GAAE1O,EAAE,SAAc0O,OAAP,QAAW,CAAC1O,EAAE,YAAW,KAAIkK,GAAGlK,EAAE,OAAO,QAAO,CAAE,KAAUZ,MAAP,QAAUY,EAAE,cAAcZ,CAAC,GAAEsP,KAAG;AAAK,UAAMvO,IAAEH,EAAE,QAAOI,IAAEJ,EAAE,OAAMK,IAAEF,EAAE,QAAO,GAAGG,IAAEF,EAAE;AAAU,QAAkBjB,MAAf,gBAAsCA,MAApB,kBAAsB,SAAOF,EAAE,kBAAiBE,GAAC;AAAA,MAAE,KAAI;AAAA,MAAiB,KAAI;AAAA,MAAiB,KAAI;AAAwB,QAAA4K,EAAG7K,GAAEM,IAAEP,CAAC;AAAE;AAAA,MAAM,KAAI;AAAwB,QAAAkJ,GAAG,IAAI,GAAE4B,EAAG7K,GAAEM,IAAEP,CAAC;AAAE;AAAA,MAAM,KAAI;AAAkB,QAAAkJ,GAAG,IAAI,GAAE4B,EAAG7K,GAAEI,IAAE,EAAE;AAAE;AAAA,MAAM,KAAI;AAAkB,QAAA6I,GAAG,IAAI,GAAEiG,MAAI,CAAC/L,MAAG+L,KAAG,IAAGrE,EAAG7K,GAAEI,IAAE,EAAE,KAAGyK,EAAG7K,GAAEK,IAAE,MAAM;AAAE;AAAA,MAAM,KAAI;AAAA,MAAkB,KAAI;AAA6B,QAAAwK,EAAG7K,GAAEO,IAAER,CAAC;AAAE;AAAA,MAAM,KAAI;AAAsB,SAAC,SAASA,GAAEC,GAAE;AAAC,iBAAOD,MAAIC,KAAG2H,EAAG5H,CAAC,KAAG4H,EAAG3H,CAAC,KAAG,CAACD,EAAE,QAAO,KAAI,CAACC,EAAE,QAAO;AAAA,QAAE,GAAGmB,GAAEC,CAAC,KAAGyJ,EAAG7K,GAAEQ,IAAET,CAAC;AAAE;AAAA,MAAM,KAAI;AAAA,MAAe,KAAI;AAAc,QAAA8K,EAAG7K,GAAEQ,IAAET,CAAC;AAAE;AAAA,MAAM,KAAI;AAAgB,QAAA8K,EAAG7K,GAAEG,IAAE,EAAE;AAAE;AAAA,MAAM,KAAI;AAAqB,QAAA0K,EAAG7K,GAAES,IAAE,EAAE;AAAE;AAAA,MAAM,KAAI;AAAoB,QAAAoK,EAAG7K,GAAES,IAAE,EAAE;AAAE;AAAA,MAAM,KAAI;AAAA,MAAyB,KAAI;AAAyB,QAAAoK,EAAG7K,GAAEU,IAAE,EAAE;AAAE;AAAA,MAAM,KAAI;AAAA,MAAuB,KAAI;AAAA,MAAwB,KAAI;AAAwB,QAAAmK,EAAG7K,GAAEU,IAAE,EAAE;AAAE;AAAA,MAAM,KAAI;AAAsB,QAAAmK,EAAG7K,GAAEW,IAAE,eAAe;AAAE;AAAA,MAAM,KAAI;AAAa,QAAAkK,EAAG7K,GAAEW,IAAE,MAAM;AAAE;AAAA,MAAM,KAAI;AAAe,QAAAkK,EAAG7K,GAAEW,IAAE,QAAQ;AAAE;AAAA,MAAM,KAAI;AAAkB,QAAAkK,EAAG7K,GAAEW,IAAE,WAAW;AAAE;AAAA,MAAM,KAAI;AAAc,QAAAkK,EAAG7K,GAAEY,IAAE,MAAM;AAAE;AAAA,MAAM,KAAI;AAAc,QAAAiK,EAAG7K,GAAEa,IAAE,MAAM;AAAA,IAAC;AAAA,SAAK;AAAC,UAAUG,MAAP;AAAA,EAAS,CAAAjB,EAAE,eAAc,GAAG8K,EAAG7K,GAAEI,IAAE,EAAE;AAAA,eAAUY,MAAI2D,GAAG,CAAA5E,EAAE,eAAc,GAAG8K,EAAG7K,GAAEK,IAAE,MAAM;AAAA,eAAgBW,KAAN,QAASjB,EAAE,cAAa;AAAC,cAAMC,IAAED,EAAE,aAAa,QAAQ,YAAY;AAAE,QAAAA,EAAE,eAAc,GAAGe,EAAE,cAAcd,CAAC;AAAA,MAAC,MAAM,CAAMgB,KAAN,QAASuO,GAAGzO,GAAEZ,GAAEc,GAAEjB,EAAE,WAAU,EAAE,KAAGA,EAAE,eAAc,GAAG8K,EAAG7K,GAAEM,IAAEU,CAAC,KAAGwO,KAAGxO;AAAE,MAAA0O,KAAG3P,EAAE;AAAA,IAAS;AAAA,EAAC,CAAC;AAAE,EAAEA,GAAEC,CAAC,CAAC,CAAC;AAAE,IAAIgP,KAAG,GAAEC,KAAG,MAAKS,KAAG,GAAEF,KAAG;AAAK,MAAMG,KAAG,oBAAI;AAAQ,IAAIC,KAAG,IAAGT,KAAG,IAAGD,KAAG,IAAGE,KAAG,IAAGS,KAAG,CAAC,GAAE,IAAG,GAAE,QAAO,CAAC;AAAE,SAASN,GAAGxP,GAAEC,GAAEC,GAAE,GAAEE,GAAE;AAAC,QAAMC,IAAEL,EAAE,QAAOM,IAAEN,EAAE,OAAMO,IAAEF,EAAE,QAAO,GAAGG,IAAEgH,GAAE,GAAG/G,IAAEyF,GAAG1F,EAAE,OAAO,GAAEE,IAASD,MAAP,OAASA,EAAE,aAAW,MAAKE,IAAEN,EAAE,KAAIO,IAAEJ,EAAE,gBAAgBG,CAAC,GAAEE,IAAEX,EAAE;AAAO,SAAOS,MAAIL,EAAE,OAAK,CAACyG,EAAGxG,CAAC,MAAI,CAACH,MAAI,CAAC8C,MAAGyM,KAAG,IAAE,OAAKpP,EAAE,QAAO,KAAIM,IAAE,KAAG6I,GAAGxJ,CAAC,MAAIG,EAAE,WAASC,EAAE,UAAQ,CAACC,EAAE,YAAW,KAAI+H,GAAG/H,CAAC,KAAGA,EAAE,QAAO,KAAIM,IAAE,MAAIT,KAAG,CAAC8C,OAAWtC,MAAP,QAAU,CAACL,EAAE,YAAW,KAAIG,MAAI8H,GAAG5H,CAAC,KAAUH,MAAP,QAAiBR,MAAP,SAAW,CAACA,EAAE,aAAWA,EAAE,mBAAiBQ,EAAE,cAAYR,EAAE,gBAAcQ,EAAE,iBAAeF,EAAE,UAAS,MAAKP,EAAE,UAAQO,EAAE,SAAQ,MAAKP,EAAE,SAAOiK,GAAGjK,GAAEO,CAAC;AAAC;AAAC,SAASwP,GAAG/P,GAAEC,GAAE;AAAC,SAAcD,MAAP,QAAiBA,EAAE,cAAT,QAAoBA,EAAE,aAAW0D,MAAQzD,MAAJ,KAAOA,MAAID,EAAE,UAAU;AAAM;AAAC,SAASgQ,GAAGhQ,GAAEE,GAAEC,GAAE;AAAC,QAAK,EAAC,YAAWC,GAAE,cAAaC,GAAE,WAAUC,GAAE,aAAYC,EAAC,IAAEP;AAAE,EAAA6P,OAAKA,KAAG,IAAGE,GAAG3P,GAAEC,CAAC,KAAG0P,GAAGzP,GAAEC,CAAC,MAAIsG,GAAG3G,GAAG,MAAI;AAAC,QAAG,CAACC,EAAE,QAAO,KAAK8G,GAAG,IAAI;AAAE,QAAG,CAACiB,GAAGhI,GAAEE,GAAEE,CAAC,EAAE;AAAO,UAAME,IAAEsG,EAAE;AAAG,QAAGT,EAAG7F,CAAC,GAAE;AAAC,YAAMP,IAAEO,EAAE,QAAOL,IAAEF,EAAE,QAAO;AAAG,UAAGO,EAAE,eAAc;AAAC,QAAUR,EAAE,SAAZ,WAAkBA,EAAE,eAAaA,EAAE,cAAYQ,EAAE,QAAM;AAAI,cAAMJ,IAAEiH,GAAGnH,CAAC,EAAE,OAAMG,IAAED,IAAEA,EAAE,YAAU,YAAY,IAAG,GAAG,CAACE,GAAEC,GAAEE,GAAEC,GAAEC,CAAC,IAAEmP,IAAGlP,IAAE2I,GAAE,GAAG1I,IAAOX,EAAE,YAAW,MAAlB,MAA2BU,EAAE,qBAAP;AAAwB,YAAGP,IAAEM,IAAE,OAAKV,EAAE,WAASQ,KAAGR,EAAE,QAAMS,EAAE,CAAAF,EAAE,SAAOF,GAAEE,EAAE,QAAMD;AAAA,iBAAmBN,EAAE,SAAX,OAAgB,CAAA8G,EAAG5G,CAAC,KAAGsF,EAAG,GAAG,GAAEjF,EAAE,SAAOL,EAAE,UAAS,GAAGK,EAAE,QAAML,EAAE,SAAQ;AAAA,iBAAuBF,EAAE,SAAd,aAAoB,CAACY,GAAE;AAAC,gBAAMb,IAAEC,EAAE,QAAO;AAAG,UAAAO,EAAE,QAAM,IAAGR,aAAaiQ,MAAQjQ,EAAE,sBAAN,KAAyBQ,EAAE,SAAOR,EAAE,cAAa,GAAGQ,EAAE,QAAMR,EAAE,aAAY,KAAIQ,EAAE,SAAO;AAAA,QAAC;AAAA,MAAC,OAAK;AAAC,cAAMR,IAAEC,EAAE,KAAIC,IAAEM,EAAE,MAAM,KAAIL,IAAEK,EAAE,SAAQ,GAAGJ,IAAED,EAAE,QAAOG,IAAEE,EAAE,WAAU,GAAGC,IAAEH,IAAEC,IAAEF,GAAEK,IAAEJ,IAAED,IAAEE,GAAEI,IAAEL,IAAEJ,IAAEF,GAAEY,IAAEN,IAAEN,IAAEE;AAAE,YAAIW,IAAEuD,IAAGtD,IAAE;AAAG,iBAAQd,IAAE,GAAEA,IAAEI,GAAEJ,KAAI;AAAC,gBAAMC,IAAEE,EAAEH,CAAC,GAAEE,IAAED,EAAE,mBAAkB;AAAG,cAAG8G,EAAG9G,CAAC,KAAOC,MAAJ,KAAO,EAAMF,MAAJ,KAAOC,EAAE,UAAQU,KAAGF,MAAIP,KAAGF,MAAII,IAAE,KAAGH,EAAE,UAAQW,KAAOF,MAAJ,OAASI,IAAE,IAAGD,KAAGZ,EAAE,UAAS,GAAOY,MAAJ,GAAO;AAAA,QAAK;AAAC,QAAAL,EAAE,SAAOM,IAAED,IAAE;AAAA,MAAC;AAAA,IAAC;AAAC,IAAAiK,EAAG5K,GAAED,IAAE,MAAM;AAAA,EAAC,CAAC;AAAE;AAAC,SAASsP,GAAGvP,GAAE;AAAC,MAAG,CAACA,EAAE,gBAAgB,QAAO;AAAK,QAAMC,IAAED,EAAE,gBAAe;AAAG,SAAWC,EAAE,WAAN,IAAa,OAAKA,EAAE,CAAC;AAAC;AAAC,SAASqP,GAAGtP,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE;AAAgB,MAAGkJ,GAAG,IAAI,GAAShJ,MAAP,QAAgBD,KAAN,MAAQ;AAAC,QAAQA,MAAL,IAAO;AAAC,YAAMA,IAAEwG,GAAGvG,CAAC,GAAEC,IAAEqI,GAAGxI,EAAE,gBAAgBE,CAAC,CAAC;AAAE,aAAO,MAAYC,MAAP,QAAiBA,EAAE,cAAT,QAAoB4G,EAAG9G,CAAC,KAAGkG,GAAGlG,GAAEE,EAAE,WAAU,MAAK,MAAK,EAAE;AAAA,IAAE;AAAC,QAAUF,EAAEA,EAAE,SAAO,CAAC,MAAnB;AAAA,GAAqB;AAAC,YAAMA,IAAE6G,EAAE;AAAG,UAAGT,EAAGpG,CAAC,GAAE;AAAC,cAAMC,IAAED,EAAE;AAAM,eAAOA,EAAE,OAAO,IAAIC,EAAE,KAAIA,EAAE,QAAOA,EAAE,IAAI,GAAE,KAAK4K,EAAG9K,GAAEsB,IAAE,IAAI;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAwI,GAAG,IAAG9J,GAAEC,CAAC;AAAC;AAAC,SAASiQ,GAAGlQ,GAAE;AAAC,MAAIC,IAAED,EAAE;AAAsB,SAAgBC,MAAT,WAAaA,IAAE,CAAA,GAAGD,EAAE,wBAAsBC,IAAGA;AAAC;AAAC,MAAMkQ,KAAG,oBAAI;AAAI,SAASC,GAAGpQ,GAAE;AAAC,QAAMC,IAAED,EAAE,QAAOE,IAAEgG,GAASjG,KAAN,OAAQ,OAASA,EAAE,aAAN,IAAeA,EAAE,cAAYA,EAAE,cAAc,WAAW;AAAE,MAAUC,MAAP,KAAS;AAAO,QAAM,IAAEiI,GAAGjI,EAAE,UAAU;AAAE,MAAU,MAAP,KAAS;AAAO,EAAAkP,OAAKA,KAAG,IAAGvI,GAAG,GAAG,MAAI;AAAC,UAAM5G,IAAE8J,GAAE,GAAG3J,IAAEF,EAAE;AAAW,QAAUE,MAAP,KAAS;AAAO,UAAMC,IAAED,EAAE;AAAS,IAAGC,MAAIoD,MAAIpD,MAAIqD,MAAUuD,GAAGyI,GAAGzP,GAAEC,GAAE,GAAEF,CAAC,CAAC;AAAA,EAAC,CAAC;AAAI,QAAMI,IAAEuJ,GAAG,CAAC,GAAEtJ,IAAED,EAAEA,EAAE,SAAO,CAAC,GAAEE,IAAED,EAAE,MAAKE,IAAE4P,GAAG,IAAI7P,CAAC,GAAEE,IAAED,KAAGF;AAAE,EAAAG,MAAI,KAAGwP,GAAG9P,GAAEM,GAAE,EAAE,GAAEwP,GAAG9P,GAAE,GAAE,EAAE,GAAE,MAAIG,IAAE8P,GAAG,IAAI7P,GAAE,CAAC,IAAEC,KAAG4P,GAAG,OAAO7P,CAAC;AAAC;AAAC,SAAS+P,GAAGrQ,GAAE;AAAC,EAAAA,EAAE,kBAAgB;AAAE;AAAC,SAASsQ,GAAGtQ,GAAE;AAAC,SAAWA,EAAE,oBAAP;AAAsB;AAAC,SAASuQ,GAAGvQ,GAAE;AAAC,QAAMC,IAAED,EAAE,eAAcE,IAAE0P,GAAG,IAAI3P,CAAC;AAAE,EAASC,MAAT,UAAYuF,EAAG,GAAG;AAAE,QAAM,IAAEvF,IAAE;AAAE,OAAG,KAAGuF,EAAG,GAAG,GAAEmK,GAAG,IAAI3P,GAAE,CAAC,GAAM,MAAJ,KAAOA,EAAE,oBAAoB,mBAAkBmQ,EAAE;AAAE,QAAMhQ,IAAE6H,GAAGjI,CAAC;AAAEoI,EAAAA,GAAGhI,CAAC,KAAI,SAASJ,GAAE;AAAC,QAAUA,EAAE,kBAAT,MAAuB;AAAC,YAAMC,IAAE0J,GAAG3J,CAAC,GAAEE,IAAED,EAAEA,EAAE,SAAO,CAAC,EAAE;AAAK,MAAAkQ,GAAG,IAAIjQ,CAAC,MAAIF,KAAGmQ,GAAG,OAAOjQ,CAAC;AAAA,IAAC,MAAM,CAAAiQ,GAAG,OAAOnQ,EAAE,IAAI;AAAA,EAAC,EAAEI,CAAC,GAAEJ,EAAE,kBAAgB,QAAMI,KAAGqF,EAAG,GAAG;AAAE,QAAMpF,IAAE6P,GAAGlQ,CAAC;AAAE,WAAQA,IAAE,GAAEA,IAAEK,EAAE,QAAOL,IAAI,CAAAK,EAAEL,CAAC,EAAC;AAAG,EAAAA,EAAE,wBAAsB,CAAA;AAAE;AAAC,SAASwQ,GAAGxQ,GAAEC,GAAEC,GAAE;AAAC,EAAA2I,GAAE;AAAG,QAAM,IAAE7I,EAAE,OAAMI,IAAEJ,EAAE;AAAY,MAAUI,MAAP,KAAS;AAAO,QAAMC,IAAE,SAASL,GAAE;AAAC,UAAMC,IAAE6G,EAAE;AAAG,QAAG,CAACT,EAAGpG,CAAC,KAAG,CAAC2H,EAAG5H,CAAC,EAAE,QAAOC;AAAE,UAAK,EAAC,QAAOC,GAAE,OAAMC,EAAC,IAAEF,GAAEG,IAAEF,EAAE,QAAO,GAAGG,IAAEF,EAAE;AAAU,WAAOgL,GAAG/K,GAAEJ,CAAC,KAAGE,EAAE,IAAIF,EAAE,OAAM,GAAE,SAAS,GAAEmL,GAAG9K,GAAEL,CAAC,KAAGG,EAAE,IAAIH,EAAE,OAAM,GAAE,SAAS,GAAEC;AAAA,EAAC,EAAED,CAAC;AAAE,MAAIM,IAAE;AAAG,MAAG+F,EAAGhG,CAAC,KAAGJ,GAAE;AAAC,UAAMA,IAAEI,EAAE,QAAOH,IAAEG,EAAE;AAAM,IAAAJ,EAAE,QAAM,MAAIwQ,GAAGxQ,GAAED,GAAEI,GAAEJ,EAAE,mBAAkB,GAAGA,EAAE,eAAc,CAAE,GAAEM,IAAE,KAAIJ,EAAE,QAAM,MAAIuQ,GAAGvQ,GAAEF,GAAEI,GAAEJ,EAAE,mBAAkB,GAAGA,EAAE,eAAc,CAAE,GAAEM,IAAE;AAAA,EAAG,MAAM,CAAAoQ,GAAGrQ,CAAC,KAAGJ,KAAGD,EAAE,WAAU,KAAIA,EAAE,eAAc;AAAG,MAAGqG,EAAGhG,CAAC,KAAGJ,KAAG,CAACK,GAAE;AAAC,UAAML,IAAED,EAAE;AAAuBgJ,IAAAA,GAAGhJ,CAAC,GAAE2Q,GAAGtQ,GAAED,GAAEH,GAAE,EAAE;AAAA,EAAC,MAAM+I,CAAAA,GAAGhJ,CAAC;AAAE,EAAAE,KAAGmL,GAAGjL,CAAC,KAAGA,EAAE,WAAU,KAAI,CAACA,EAAE,QAAO,KAAIoQ,GAAGpQ,GAAEH,CAAC,GAAEA,KAAGgL,GAAG7K,CAAC,KAAGA,EAAE,QAAO,KAAIA,EAAE,UAAS;AAAE;AAAC,MAAMwQ,GAAE;AAAA,EAAC,OAAO,UAAS;AAAC,IAAAnL,EAAG,IAAG,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,OAAO,MAAM,GAAE;AAAC,IAAAA,EAAG,IAAG,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE;AAAC,SAAK,WAAS,EAAE,UAAS,KAAK,SAAO,EAAE,QAAO,KAAK,SAAO,EAAE;AAAA,EAAM;AAAA,EAAC,YAAY,GAAE;AAAC,SAAK,SAAO,KAAK,YAAY,WAAU,KAAK,WAAS,MAAK,KAAK,SAAO,MAAK,KAAK,SAAO,MAAKmD,GAAG,MAAK,CAAC;AAAA,EAAC;AAAA,EAAC,UAAS;AAAC,WAAO,KAAK;AAAA,EAAM;AAAA,EAAC,WAAU;AAAC,IAAAnD,EAAG,KAAI,KAAK,YAAY,IAAI;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,QAAI,IAAE,KAAK;AAAM,WAAY,MAAP,QAAU;AAAC,UAAY,MAAT,OAAW,QAAM;AAAG,YAAM,IAAEgB,GAAG,CAAC;AAAE,UAAU,MAAP,KAAS;AAAM,UAAE,EAAE;AAAA,IAAQ;AAAC;EAAQ;AAAA,EAAC,WAAW,GAAE;AAAC,UAAM,IAAE,KAAGK,EAAE;AAAG,QAAS,KAAN,KAAQ;AAAS,UAAM5G,IAAE,EAAE,SAAQ,EAAG,KAAM,CAAAF,MAAGA,EAAE,UAAQ,KAAK;AAAQ,QAAG+G,EAAG,IAAI,EAAE,QAAO7G;AAAE,QAAGmG,EAAG,CAAC,KAAe,EAAE,OAAO,SAArB,aAAuC,EAAE,MAAM,SAApB,WAAyB;AAAC,UAAG,EAAE,YAAW,EAAG;AAAS,YAAMrG,IAAE,KAAK,UAAS;AAAG,UAAG0G,GAAG,IAAI,KAAG,KAAK,SAAQ,KAAI1G,GAAE;AAAC,cAAME,IAAE,EAAE,WAAU,IAAG,EAAE,QAAM,EAAE,QAAOC,IAAED,EAAE;AAAU,YAAGA,EAAE,WAASC,EAAE,gBAAe,KAAIA,EAAE,GAAGH,CAAC,KAAGG,EAAE,oBAAmB,EAAG,GAAG,IAAI,EAAE,QAAM;AAAA,MAAE;AAAA,IAAC;AAAC,WAAOD;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAO,KAAK;AAAA,EAAK;AAAA,EAAC,uBAAsB;AAAC,UAAM,IAAE,KAAK,UAAS;AAAG,QAAU,MAAP,KAAS,QAAM;AAAG,QAAI,IAAE,EAAE,cAAa,GAAGA,IAAE;AAAE,WAAY,MAAP,QAAU;AAAC,UAAG,KAAK,GAAG,CAAC,EAAE,QAAOA;AAAE,MAAAA,KAAI,IAAE,EAAE,eAAc;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,YAAW;AAAC,UAAM,IAAE,KAAK,UAAS,EAAG;AAAS,WAAc,MAAP,OAAS,OAAKuG,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,mBAAkB;AAAC,UAAM,IAAE,KAAK,UAAS;AAAG,WAAc,MAAP,QAAUhB,EAAG,IAAG,KAAK,KAAK,GAAE;AAAA,EAAC;AAAA,EAAC,qBAAoB;AAAC,QAAI,IAAE;AAAK,WAAY,MAAP,QAAU;AAAC,YAAM,IAAE,EAAE,UAAS;AAAG,UAAG4F,GAAG,CAAC,EAAE,QAAOzD,EAAG,CAAC,KAAG,MAAI,QAAMlB,GAAG,CAAC,KAAGjB,EAAG,GAAG,GAAE;AAAE,UAAE;AAAA,IAAC;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,4BAA2B;AAAC,UAAM,IAAE,KAAK,mBAAkB;AAAG,WAAc,MAAP,QAAUA,EAAG,IAAG,KAAK,KAAK,GAAE;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,UAAM,IAAE,CAAA;AAAG,QAAI,IAAE,KAAK,UAAS;AAAG,WAAY,MAAP,OAAU,GAAE,KAAK,CAAC,GAAE,IAAE,EAAE;AAAY,WAAO;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,UAAM,IAAE,CAAA;AAAG,QAAI,IAAE,KAAK,UAAS;AAAG,WAAY,MAAP,OAAU,GAAE,KAAK,EAAE,KAAK,GAAE,IAAE,EAAE,UAAS;AAAG,WAAO;AAAA,EAAC;AAAA,EAAC,qBAAoB;AAAC,UAAM,IAAE,KAAK,UAAS,EAAG;AAAO,WAAc,MAAP,OAAS,OAAKgB,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,UAAM,IAAE,CAAA,GAAG,IAAE,KAAK;AAAY,QAAU,MAAP,KAAS,QAAO;AAAE,QAAIvG,IAAE,EAAE,cAAa;AAAG,WAAYA,MAAP,QAAU,CAACA,EAAE,GAAG,IAAI,IAAG,GAAE,KAAKA,CAAC,GAAEA,IAAEA,EAAE,eAAc;AAAG,WAAO;AAAA,EAAC;AAAA,EAAC,iBAAgB;AAAC,UAAM,IAAE,KAAK,YAAY;AAAO,WAAc,MAAP,OAAS,OAAKuG,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,kBAAiB;AAAC,UAAM,IAAE,CAAA;AAAG,QAAI,IAAE,KAAK,eAAc;AAAG,WAAY,MAAP,OAAU,GAAE,KAAK,CAAC,GAAE,IAAE,EAAE,eAAc;AAAG,WAAO;AAAA,EAAC;AAAA,EAAC,kBAAkB,GAAE;AAAC,UAAM,IAAE,KAAK,cAAavG,IAAE,EAAE,WAAU;AAAG,IAAA0H,EAAG,IAAI,KAAG,EAAE,QAAQ,IAAI,GAAEA,EAAG,CAAC,KAAG1H,EAAE,QAAQ,CAAC;AAAE,UAAMC,IAAE,EAAE,QAAO,IAAED,EAAE;AAAO,QAAOC,MAAJ,KAAW,MAAJ,KAAO,EAAEA,IAAE,CAAC,MAAID,EAAE,IAAE,CAAC,EAAE,QAAO;AAAK,UAAM,IAAE,IAAI,IAAIA,CAAC;AAAE,aAAQF,IAAE,GAAEA,IAAEG,GAAEH,KAAI;AAAC,YAAME,IAAE,EAAEF,CAAC;AAAE,UAAG,EAAE,IAAIE,CAAC,EAAE,QAAOA;AAAA,IAAC;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,GAAG,GAAE;AAAC,WAAa,KAAN,QAAS,KAAK,UAAQ,EAAE;AAAA,EAAK;AAAA,EAAC,SAAS,GAAE;AAAC,QAAG,SAAO,EAAE;AAAS,QAAG,EAAE,WAAW,IAAI,EAAE,QAAM;AAAG,QAAG,KAAK,WAAW,CAAC,EAAE,QAAM;AAAG,UAAM,IAAE,KAAK,kBAAkB,CAAC;AAAE,QAAIA,IAAE,GAAEC,IAAE,GAAE,IAAE;AAAK,eAAO;AAAC,YAAMH,IAAE,EAAE,iBAAgB;AAAG,UAAGA,MAAI,GAAE;AAAC,QAAAE,IAAE,EAAE,qBAAoB;AAAG;AAAA,MAAK;AAAC,UAAEF;AAAA,IAAC;AAAC,SAAI,IAAE,OAAI;AAAC,YAAMA,IAAE,EAAE,iBAAgB;AAAG,UAAGA,MAAI,GAAE;AAAC,QAAAG,IAAE,EAAE;AAAuB;AAAA,MAAK;AAAC,UAAEH;AAAA,IAAC;AAAC,WAAOE,IAAEC;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE;AAAC,UAAM,IAAE,KAAK;AAAM,QAAG,MAAI,EAAE,MAAM,QAAM;AAAG,QAAID,IAAE;AAAE,WAAYA,MAAP,QAAU;AAAC,UAAGA,EAAE,UAAQ,EAAE,QAAM;AAAG,MAAAA,IAAEA,EAAE,UAAS;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,gBAAgB,GAAE;AAAC,UAAM,IAAE,KAAK,SAAS,CAAC,GAAEA,IAAE,IAAGC,IAAE,oBAAI;AAAI,QAAI,IAAE;AAAK,WAAY,MAAP,QAAU;AAAC,YAAM,IAAE,EAAE;AAAM,UAAGA,EAAE,IAAI,CAAC,MAAIA,EAAE,IAAI,CAAC,GAAED,EAAE,KAAK,CAAC,IAAG,MAAI,EAAE;AAAM,YAAM,IAAE0H,EAAG,CAAC,IAAE,IAAE,EAAE,kBAAgB,EAAE,aAAY,IAAG;AAAK,UAAU,MAAP,MAAS;AAAC,YAAE;AAAE;AAAA,MAAQ;AAAC,YAAMrH,IAAE,IAAE,EAAE,mBAAiB,EAAE;AAAqB,UAAUA,MAAP,MAAS;AAAC,YAAEA;AAAE;AAAA,MAAQ;AAAC,YAAMC,IAAE,EAAE;AAAmB,UAAGL,EAAE,IAAIK,EAAE,KAAK,KAAGN,EAAE,KAAKM,CAAC,GAAEA,MAAI,EAAE;AAAM,UAAIC,IAAE,MAAKC,IAAEF;AAAE,SAAE;AAAC,YAAUE,MAAP,QAAU+E,EAAG,EAAE,GAAEhF,IAAE,IAAEC,EAAE,eAAc,IAAGA,EAAE,mBAAkB,GAAGA,IAAEA,EAAE,UAAS,GAAUA,MAAP,KAAS;AAAM,QAAOD,MAAP,QAAUN,EAAE,IAAIO,EAAE,KAAK,KAAGR,EAAE,KAAKQ,CAAC;AAAA,MAAC,SAAcD,MAAP;AAAU,UAAEA;AAAA,IAAC;AAAC,WAAO,KAAGP,EAAE,QAAO,GAAGA;AAAA,EAAC;AAAA,EAAC,UAAS;AAAC,UAAM,IAAEsH,GAAE,EAAG;AAAa,WAAc,MAAP,QAAU,EAAE,IAAI,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,YAAW;AAAC,UAAM,IAAEf,GAAG,KAAK,KAAK;AAAE,WAAc,MAAP,QAAUhB,EAAG,GAAG,GAAE;AAAA,EAAC;AAAA,EAAC,cAAa;AAAC,IAAAoD,GAAE;AAAG,UAAM,IAAEE,GAAE,GAAG,IAAEvB,GAAE,GAAGtH,IAAE,EAAE,UAASC,IAAE,KAAK,OAAM,IAAE,KAAK,UAAS,GAAG,IAAE,EAAE,iBAAgB,IAAE2G,EAAE;AAAG,QAAU,MAAP,QAAU,EAAE,eAAe,IAAI,GAAE,EAAE,IAAI3G,CAAC,EAAE,QAAO8I,GAAG,CAAC,GAAE;AAAE,UAAM1I,IAAE+L,GAAG,CAAC;AAAE,WAAO,EAAE,IAAInM,CAAC,GAAE8I,GAAG1I,CAAC,GAAEL,EAAE,IAAIC,GAAEI,CAAC,GAAEA;AAAA,EAAC;AAAA,EAAC,iBAAgB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,qBAAoB;AAAC,WAAO,KAAK,iBAAiB;AAAA,EAAM;AAAA,EAAC,UAAU,GAAE,GAAE;AAAC,IAAAkF,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE,GAAEvF,GAAE;AAAC,IAAAuF,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,WAAM,EAAC,SAAQ,KAAK,UAAU,EAAE,SAAQ,CAAC,EAAC;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,IAAAA,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,OAAO,WAAW,GAAE;AAAC,IAAAA,EAAG,IAAG,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,OAAO,YAAW;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,OAAO,GAAE;AAAC,IAAA+K,GAAG,MAAK,IAAG,CAAC;AAAA,EAAC;AAAA,EAAC,QAAQ,GAAE,GAAE;AAAC,IAAA3H,GAAE;AAAG,QAAI3I,IAAE4G,EAAE;AAAG,IAAO5G,MAAP,SAAWA,IAAEA,EAAE,MAAK,IAAIqL,GAAG,MAAK,CAAC;AAAE,UAAMpL,IAAE,KAAK,UAAS,GAAG,IAAE,KAAK,OAAM,IAAE,EAAE,OAAM,IAAE,EAAE,YAAW,GAAGI,IAAE,KAAK,iBAAgB,EAAG,YAAW,GAAGC,IAAED,EAAE;AAAOyI,IAAAA,GAAG,CAAC;AAAE,UAAMvI,IAAEN,EAAE,mBAAkB,GAAGO,IAAEP,EAAE,kBAAiBQ,IAAER,EAAE,QAAO,IAAEA,EAAE,QAAOU,IAAEV,EAAE;AAA2I,QAA/HqQ,GAAGrQ,GAAE,IAAG,EAAE,GAASM,MAAP,OAASF,EAAE,UAAQ,IAAOE,EAAE,YAAW,EAAG,SAAO,GAAK,EAAE,SAAOE,GAASD,MAAP,OAASH,EAAE,SAAO,IAAOG,EAAE,YAAW,EAAG,SAAO,GAAK,EAAE,SAAO,GAAE,EAAE,WAASG,GAAEN,EAAE,SAAOC,GAAE,MAAIoH,EAAG,IAAI,KAAGA,EAAG,CAAC,KAAGnC,EAAG,GAAG,GAAE,KAAK,YAAW,EAAG,QAAS,CAAAzF,MAAG;AAAC,QAAE,OAAOA,CAAC;AAAA,IAAC,CAAC,IAAIqG,EAAGnG,CAAC,GAAE;AAAC,MAAA+G,GAAG/G,CAAC;AAAE,YAAMF,IAAEE,EAAE,QAAOD,IAAEC,EAAE;AAAM,MAAAF,EAAE,QAAM,KAAG6Q,GAAG7Q,GAAE,CAAC,GAAEC,EAAE,QAAM,KAAG4Q,GAAG5Q,GAAE,CAAC;AAAA,IAAC;AAAC,WAAOkJ,SAAO,KAAGD,GAAG,CAAC,GAAE;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE,IAAE,IAAG;AAAC,IAAAL,MAAK0C,GAAG,MAAK,CAAC;AAAE,UAAMrL,IAAE,KAAK,eAAcC,IAAE,EAAE,YAAW,GAAG,IAAEA,EAAE,UAAS,GAAG,IAAE2G,EAAE;AAAG,QAAI,IAAE,IAAGvG,IAAE;AAAG,QAAU,MAAP,MAAS;AAAC,YAAMN,IAAE,EAAE;AAAuB,UAAG+I,GAAG7I,CAAC,GAAEkG,EAAG,CAAC,GAAE;AAAC,cAAMrG,IAAE,EAAE,OAAME,IAAE,EAAE,QAAOC,IAAE,EAAE;AAAM,YAAcD,EAAE,SAAd,aAAoBA,EAAE,QAAMF,KAAGE,EAAE,WAASD,IAAE,GAAEM,IAAcJ,EAAE,SAAd,aAAoBA,EAAE,QAAMH,KAAGG,EAAE,WAASF,IAAE;AAAA,MAAC;AAAA,IAAC;AAAC,UAAMO,IAAE,KAAK,eAAc,GAAGC,IAAE,KAAK,iBAAgB,EAAG,YAAW,GAAGC,IAAEP,EAAE,OAAMQ,IAAET,EAAE;AAA4D,QAA3CM,MAAP,OAASC,EAAE,SAAOC,IAAOF,EAAE,cAAc,SAAOE,GAAKD,EAAE,UAASP,EAAE,SAAOQ,GAAEP,EAAE,SAAOQ,GAAER,EAAE,SAAOD,EAAE,OAAMC,EAAE,WAASD,EAAE,UAAS,KAAGmG,EAAG,CAAC,GAAE;AAAC,YAAMrG,IAAE,KAAK,qBAAoB;AAAG,MAAA2Q,GAAG,GAAElQ,GAAET,IAAE,CAAC;AAAE,YAAMC,IAAEQ,EAAE;AAAM,WAAG,EAAE,OAAO,IAAIR,GAAED,IAAE,GAAE,SAAS,GAAEO,KAAG,EAAE,MAAM,IAAIN,GAAED,IAAE,GAAE,SAAS;AAAA,IAAC;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE,IAAE,IAAG;AAAC,IAAA6I,MAAK0C,GAAG,MAAK,CAAC;AAAE,UAAMrL,IAAE,KAAK,eAAcC,IAAE,EAAE,YAAW,GAAG,IAAEA,EAAE;AAAM6I,IAAAA,GAAG7I,CAAC;AAAE,UAAM,IAAE,KAAK,sBAAqB,IAAE,KAAK,iBAAgB,EAAG,YAAW,GAAGI,IAAEL,EAAE,QAAOM,IAAE,KAAK,qBAAoB;AAAG,IAAU,MAAP,OAAS,EAAE,UAAQ,IAAO,EAAE,YAAW,EAAG,SAAO,GAAE,EAAE,UAASN,EAAE,SAAO,GAAEC,EAAE,SAAOI,GAAEJ,EAAE,SAAOD,EAAE,OAAMC,EAAE,WAASD,EAAE;AAAS,UAAMO,IAAEqG,EAAE;AAAG,WAAG,KAAGT,EAAG5F,CAAC,KAAGkQ,GAAGlQ,GAAE,KAAK,iBAAgB,GAAGD,CAAC,GAAS;AAAA,EAAC;AAAA,EAAC,mBAAkB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,0BAAyB;AAAC,WAAOsQ,GAAE;AAAA,EAAE;AAAA,EAAC,cAAa;AAAC,WAAO,KAAK;EAAgB;AAAA,EAAC,YAAW;AAAC,WAAO,KAAK,WAAW,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE,GAAE;AAAC,IAAAjI;AAAK,UAAM3I,IAAE,KAAK,sBAAqBC,IAAE,KAAK,iBAAgB;AAAG,QAAUD,MAAP,KAAS,QAAOC,EAAE,OAAO,GAAE,CAAC;AAAE,QAAGyH,EAAG1H,CAAC,EAAE,QAAOA,EAAE;AAAS,QAAG,CAAC6G,EAAG7G,CAAC,GAAE;AAAC,YAAMF,IAAEE,EAAE,qBAAoB,IAAG;AAAE,aAAOC,EAAE,OAAOH,GAAEA,CAAC;AAAA,IAAC;AAAC,WAAOE,EAAE,OAAO,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE,GAAE;AAAC,IAAA2I,GAAE;AAAG,UAAM3I,IAAE,KAAK,eAAc,GAAGC,IAAE,KAAK;AAAmB,QAAUD,MAAP,KAAS,QAAOC,EAAE,OAAM;AAAG,QAAGyH,EAAG1H,CAAC,EAAE,QAAOA,EAAE,OAAO,GAAE,CAAC;AAAE,QAAG,CAAC6G,EAAG7G,CAAC,GAAE;AAAC,YAAMF,IAAEE,EAAE,qBAAoB;AAAG,aAAOC,EAAE,OAAOH,GAAEA,CAAC;AAAA,IAAC;AAAC,WAAOE,EAAE,OAAO,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,YAAW;AAAC,SAAK,YAAW;AAAA,EAAE;AAAA,EAAC,0BAA0B,GAAE,GAAE;AAAC,SAAK;EAAW;AAAC;AAAC,MAAM6Q,WAAWH,GAAE;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAW;AAAA,EAAC,OAAO,MAAM,GAAE;AAAC,WAAO,IAAIG,GAAG,EAAE,KAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,CAAC;AAAA,EAAC;AAAA,EAAC,iBAAgB;AAAC,WAAM;AAAA;AAAA,EAAI;AAAA,EAAC,YAAW;AAAC,WAAO,SAAS,cAAc,IAAI;AAAA,EAAC;AAAA,EAAC,YAAW;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,OAAO,YAAW;AAAC,WAAM,EAAC,IAAG,OAAG,SAAS/Q,GAAE;AAAC,YAAMC,IAAED,EAAE;AAAc,UAAUC,MAAP,QAAU8L,GAAG9L,CAAC,GAAE;AAAC,cAAMC,IAAED,EAAE;AAAW,YAAGC,MAAIF,KAAGE,EAAE,gBAAcF,KAAGgR,GAAG9Q,CAAC,GAAE;AAAC,gBAAMA,IAAED,EAAE;AAAU,cAAGC,MAAIF,KAAGE,EAAE,oBAAkBF,KAAGgR,GAAG9Q,CAAC,EAAE,QAAM;AAAA,QAAE;AAAA,MAAC;AAAC,aAAM;AAAA,IAAE,EAAE,CAAC,KAAG,SAASF,GAAE;AAAC,YAAMC,IAAED,EAAE;AAAc,UAAUC,MAAP,QAAU8L,GAAG9L,CAAC,GAAE;AAAC,cAAMC,IAAED,EAAE;AAAW,YAAGC,MAAIF,KAAGE,EAAE,gBAAcF,KAAGgR,GAAG9Q,CAAC,EAAE,QAAM;AAAG,cAAMC,IAAEF,EAAE;AAAU,YAAGE,MAAIH,KAAGG,EAAE,oBAAkBH,KAAGgR,GAAG7Q,CAAC,EAAE,QAAM;AAAA,MAAE;AAAC,aAAM;AAAA,IAAE,EAAE,CAAC,IAAE,OAAK,EAAC,YAAW8Q,IAAG,UAAS,EAAC,EAAC;AAAA,EAAC;AAAA,EAAC,OAAO,WAAW,GAAE;AAAC,WAAOC,GAAE;AAAA,EAAE;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,MAAK,aAAY,SAAQ,EAAC;AAAA,EAAC;AAAC;AAAC,SAASD,GAAGjR,GAAE;AAAC,SAAM,EAAC,MAAKkR,GAAE,EAAE;AAAC;AAAC,SAASA,KAAI;AAAC,SAAO5F,GAAG,IAAIyF,IAAE;AAAC;AAAC,SAASpI,GAAG3I,GAAE;AAAC,SAAOA,aAAa+Q;AAAE;AAAC,SAASC,GAAGhR,GAAE;AAAC,SAAOA,EAAE,aAAW0D,MAAI,kBAAkB,KAAK1D,EAAE,eAAa,EAAE;AAAC;AAAC,SAASmR,GAAGnR,GAAEC,GAAE;AAAC,SAAO,KAAGA,IAAE,SAAOA,IAAEkE,KAAG,SAAO,KAAGlE,IAAE,QAAM,KAAGA,IAAE,QAAM;AAAI;AAAC,SAASmR,GAAGpR,GAAEC,GAAE;AAAC,SAAO,IAAEA,IAAE,WAAS,IAAEA,IAAE,OAAK;AAAM;AAAC,SAASoR,GAAGrR,GAAEC,GAAEC,GAAE,GAAEE,GAAE;AAAC,QAAMC,IAAE,EAAE;AAAU,MAAIC,IAAEoK,GAAGtK,GAAE,MAAM;AAAE,EAASE,MAAT,UAAYD,EAAE,IAAI,GAAGC,CAAC,GAAEA,IAAEoK,GAAGtK,GAAE,wBAAwB;AAAE,MAAIG,IAAE;AAAG,QAAMC,IAAEP,IAAEiE,MAAIjE,IAAEgE;AAAG,EAAS3D,MAAT,WAAaJ,IAAEgE,MAAIhE,IAAE+D,MAAI1D,IAAE,IAAGC,KAAGH,EAAE,IAAI,GAAGC,CAAC,KAAGE,KAAGH,EAAE,OAAO,GAAGC,CAAC;AAAG,aAAUN,KAAKkF,IAAG;AAAC,UAAM/E,IAAE+E,GAAGlF,CAAC;AAAE,QAAGM,IAAEoK,GAAGtK,GAAEJ,CAAC,GAAWM,MAAT,OAAW,KAAGJ,IAAEC,GAAE;AAAC,UAAGI,MAAkBP,MAAd,eAAmCA,MAAlB,kBAAqB;AAAC,QAAAC,IAAEE,KAAGE,EAAE,OAAO,GAAGC,CAAC;AAAE;AAAA,MAAQ;AAAC,MAAAL,IAAEE,MAAI,CAACK,KAAiBR,MAAd,gBAAoCA,MAAlB,mBAAqBK,EAAE,IAAI,GAAGC,CAAC;AAAA,IAAC,MAAM,CAAAL,IAAEE,KAAGE,EAAE,OAAO,GAAGC,CAAC;AAAA,EAAC;AAAC;AAAC,SAASgR,GAAGtR,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE,YAAWG,IAAEF,EAAE,YAAW,GAAGG,IAAEL,KAAGI,IAAEuE,KAAG;AAAI,MAAS,KAAN,KAAQ,CAAA1E,EAAE,cAAYI;AAAA,OAAM;AAAC,UAAML,IAAE,EAAE;AAAU,QAAGA,MAAIK,EAAE,KAAGD,KAAG6C,IAAE;AAAC,YAAK,CAAChD,GAAEC,GAAEE,CAAC,IAAE,SAASJ,GAAEC,GAAE;AAAC,cAAMC,IAAEF,EAAE,QAAOG,IAAEF,EAAE;AAAO,YAAIG,IAAE,GAAEC,IAAE;AAAE,eAAKD,IAAEF,KAAGE,IAAED,KAAGH,EAAEI,CAAC,MAAIH,EAAEG,CAAC,IAAG,CAAAA;AAAI,eAAKC,IAAED,IAAEF,KAAGG,IAAED,IAAED,KAAGH,EAAEE,IAAEG,IAAE,CAAC,MAAIJ,EAAEE,IAAEE,IAAE,CAAC,IAAG,CAAAA;AAAI,eAAM,CAACD,GAAEF,IAAEE,IAAEC,GAAEJ,EAAE,MAAMG,GAAED,IAAEE,CAAC,CAAC;AAAA,MAAC,EAAEL,GAAEK,CAAC;AAAE,MAAIH,MAAJ,KAAO,EAAE,WAAWD,GAAEC,CAAC,GAAE,EAAE,WAAWD,GAAEG,CAAC;AAAA,IAAC,MAAM,GAAE,YAAUC;AAAA,EAAC;AAAC;AAAC,SAASkR,GAAGvR,GAAEC,GAAEC,GAAE,GAAEE,GAAEC,GAAE;AAAC,EAAAiR,GAAGlR,GAAEJ,GAAEC,CAAC;AAAE,QAAMK,IAAED,EAAE,MAAM;AAAK,EAASC,MAAT,UAAY+Q,GAAG,GAAE,GAAE,GAAErR,GAAEM,CAAC;AAAC;AAAC,SAASkR,GAAGxR,GAAEC,GAAE;AAAC,QAAMC,IAAE,SAAS,cAAcD,CAAC;AAAE,SAAOC,EAAE,YAAYF,CAAC,GAAEE;AAAC;AAAC,MAAMuR,WAAWb,GAAE;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAM;AAAA,EAAC,OAAO,MAAM,GAAE;AAAC,WAAO,IAAIa,GAAG,EAAE,QAAO,EAAE,KAAK;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE;AAAC,UAAM,eAAe,CAAC,GAAE,KAAK,WAAS,EAAE,UAAS,KAAK,UAAQ,EAAE,SAAQ,KAAK,SAAO,EAAE,QAAO,KAAK,WAAS,EAAE;AAAA,EAAQ;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,UAAM,CAAC,GAAE,KAAK,SAAO,GAAE,KAAK,WAAS,GAAE,KAAK,UAAQ,IAAG,KAAK,SAAO,GAAE,KAAK,WAAS;AAAA,EAAC;AAAA,EAAC,YAAW;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAQ;AAAA,EAAC,YAAW;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAQ;AAAA,EAAC,UAAS;AAAC,UAAM,IAAE,KAAK;AAAY,WAAOlM,GAAG,EAAE,MAAM;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAO;AAAA,EAAC,UAAS;AAAC,WAAW,KAAK,UAAS,EAAG,WAArB;AAAA,EAA2B;AAAA,EAAC,cAAa;AAAC,WAAO,KAAK,UAAQ4D,GAAE;AAAA,EAAE;AAAA,EAAC,cAAa;AAAC,WAAW,KAAK,UAAS,EAAG,WAArB;AAAA,EAA2B;AAAA,EAAC,kBAAiB;AAAC,WAAM,CAAC,EAAE,IAAE,KAAK,UAAS,EAAG;AAAA,EAAS;AAAA,EAAC,gBAAe;AAAC,WAAM,CAAC,EAAE,IAAE,KAAK,UAAS,EAAG;AAAA,EAAS;AAAA,EAAC,UAAU,GAAE;AAAC,UAAM,IAAEjE,GAAG,CAAC;AAAE,WAAM,CAAC,EAAE,KAAK,cAAY;AAAA,EAAE;AAAA,EAAC,eAAc;AAAC,WAAe,KAAK,WAAd,UAA0B,KAAK,WAAT;AAAA,EAAe;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAM;AAAA,EAAC,eAAe,GAAE,GAAE;AAAC,WAAOuD,GAAG,KAAK,UAAS,EAAG,UAAS,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,UAAU,GAAE,GAAE;AAAC,UAAMvI,IAAE,KAAK,UAASC,IAAEgR,GAAG,GAAEjR,CAAC,GAAE,IAAEkR,GAAG,GAAElR,CAAC,GAAE,IAASC,MAAP,OAAS,IAAEA,GAAE,IAAE,SAAS,cAAc,CAAC;AAAE,QAAII,IAAE;AAAE,SAAK,UAAU,MAAM,KAAG,EAAE,aAAa,cAAa,OAAO,GAASJ,MAAP,SAAWI,IAAE,SAAS,cAAc,CAAC,GAAE,EAAE,YAAYA,CAAC,IAAGgR,GAAGhR,GAAE,MAAK,GAAEL,GAAE,KAAK,QAAO,CAAC;AAAE,UAAMM,IAAE,KAAK;AAAQ,WAAWA,MAAL,OAAS,EAAE,MAAM,UAAQA,IAAG;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE,GAAEN,GAAE;AAAC,UAAMC,IAAE,KAAK,QAAO,IAAE,EAAE,UAAS,IAAE,KAAK,UAAS,IAAEgR,GAAG,GAAE,CAAC,GAAE5Q,IAAE4Q,GAAG,GAAE,CAAC,GAAE3Q,IAAE4Q,GAAG,GAAE,CAAC,GAAE3Q,IAAE2Q,GAAG,GAAE,CAAC;AAAE,SAAW,MAAP,OAAS5Q,IAAE,QAAaD,MAAP,OAASE,IAAEF,GAAG,QAAM;AAAG,QAAG,MAAIA,KAAGC,MAAIC,GAAE;AAAC,YAAMT,IAAE,EAAE;AAAW,MAAMA,KAAN,QAASyF,EAAG,EAAE;AAAE,YAAMrF,IAAE,SAAS,cAAcK,CAAC;AAAE,aAAO8Q,GAAGnR,GAAE,MAAK,GAAE,GAAED,GAAED,CAAC,GAAE,EAAE,aAAaE,GAAEJ,CAAC,GAAE;AAAA,IAAE;AAAC,QAAIU,IAAE;AAAE,IAAOH,MAAP,QAAiB,MAAP,SAAWG,IAAE,EAAE,YAAiBA,KAAN,QAAS+E,EAAG,EAAE,IAAG6L,GAAGnR,GAAEO,GAAE,IAAI;AAAE,UAAMC,IAAET,EAAE,MAAM;AAAK,IAASS,MAAT,UAAY,MAAI,KAAG0Q,GAAG,GAAE,GAAE,GAAE3Q,GAAEC,CAAC;AAAE,UAAM,IAAE,EAAE,SAAQE,IAAE,KAAK;AAAQ,WAAO,MAAIA,MAAI,EAAE,MAAM,UAAQA,IAAG;AAAA,EAAE;AAAA,EAAC,OAAO,YAAW;AAAC,WAAM,EAAC,SAAQ,OAAK,EAAC,YAAW6Q,IAAG,UAAS,EAAC,IAAG,GAAE,OAAK,EAAC,YAAWC,IAAG,UAAS,EAAC,IAAG,MAAK,OAAK,EAAC,YAAWC,IAAG,UAAS,EAAC,IAAG,IAAG,OAAK,EAAC,YAAWA,IAAG,UAAS,EAAC,IAAG,GAAE,OAAK,EAAC,YAAWA,IAAG,UAAS,EAAC,IAAG,GAAE,OAAK,EAAC,YAAWA,IAAG,UAAS,EAAC,IAAG,MAAK,OAAK,EAAC,YAAWC,IAAG,UAAS,EAAC,IAAG,QAAO,OAAK,EAAC,YAAWD,IAAG,UAAS,EAAC,IAAG,KAAI,OAAK,EAAC,YAAWA,IAAG,UAAS,EAAC,IAAG,KAAI,OAAK,EAAC,YAAWA,IAAG,UAAS,EAAC,IAAG,GAAE,OAAK,EAAC,YAAWA,IAAG,UAAS,EAAC,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,WAAW,GAAE;AAAC,UAAM,IAAE5H,GAAG,EAAE,IAAI;AAAE,WAAO,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,QAAQ,EAAE,IAAI,GAAE,EAAE,SAAS,EAAE,KAAK,GAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,QAAG,EAAC,SAAQ,EAAC,IAAE,MAAM,UAAU,CAAC;AAAE,WAAc,MAAP,QAAU4B,GAAG,CAAC,KAAGnG,EAAG,GAAG,GAAE,EAAE,MAAM,aAAW,YAAW,KAAK,UAAU,MAAM,MAAI,IAAE+L,GAAG,GAAE,GAAG,IAAG,KAAK,UAAU,QAAQ,MAAI,IAAEA,GAAG,GAAE,GAAG,IAAG,KAAK,UAAU,eAAe,MAAI,IAAEA,GAAG,GAAE,GAAG,IAAG,KAAK,UAAU,WAAW,MAAI,IAAEA,GAAG,GAAE,GAAG,IAAG,EAAC,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,QAAO,KAAK,UAAS,GAAG,QAAO,KAAK,UAAS,GAAG,MAAK,KAAK,QAAO,GAAG,OAAM,KAAK,SAAQ,GAAG,MAAK,KAAK,eAAc,GAAG,MAAK,QAAO,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,mBAAmB,GAAE,GAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,UAAM,IAAE,KAAK;AAAc,WAAO,EAAE,WAAmB,OAAO,KAAjB,WAAmBtM,GAAG,CAAC,IAAE,GAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,EAAE,WAAmB,OAAO,KAAjB,WAAmBC,GAAG,CAAC,IAAE,GAAE;AAAA,EAAC;AAAA,EAAC,SAAS,GAAE;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,EAAE,UAAQ,GAAE;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,UAAM,IAAEsD,GAAG,KAAK,aAAY,GAAE,IAAI;AAAE,WAAO,KAAK,UAAU,CAAC;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,EAAE,YAAU,GAAE;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,EAAE,YAAU,GAAE;AAAA,EAAC;AAAA,EAAC,QAAQ,GAAE;AAAC,UAAM,IAAEnD,GAAG,CAAC;AAAE,QAAG,KAAK,WAAS,EAAE,QAAO;AAAK,UAAMpF,IAAE,KAAK,YAAW;AAAG,WAAOA,EAAE,SAAO,GAAEA;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE;AAAC,QAAG,KAAK,WAAS,EAAE,QAAO;AAAK,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,EAAE,SAAO,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE,GAAE;AAAC,IAAA2I,GAAE;AAAG,QAAI3I,IAAE,GAAEC,IAAE;AAAE,UAAM,IAAE2G,EAAE,GAAG,IAAE,KAAK,kBAAiB,IAAE,KAAK;AAAM,QAAa,OAAO,KAAjB,UAAmB;AAAC,YAAM9G,IAAE,EAAE;AAAO,MAASE,MAAT,WAAaA,IAAEF,IAAYG,MAAT,WAAaA,IAAEH;AAAA,IAAE,MAAM,CAAAE,IAAE,GAAEC,IAAE;AAAE,QAAG,CAACkG,EAAG,CAAC,EAAE,QAAOyL,GAAG,GAAE5R,GAAE,GAAEC,GAAE,QAAO,MAAM;AAAE;AAAC,YAAMH,IAAEmJ;AAAK,MAAAnJ,MAAI,EAAE,OAAO,OAAKA,MAAI,EAAE,MAAM,OAAKkJ,GAAG,CAAC,GAAE,EAAE,iBAAiB,MAAKhJ,GAAE,MAAKC,CAAC;AAAA,IAAC;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,cAAa;AAAC,WAAO,KAAK,OAAO,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,YAAW;AAAC,UAAM,IAAE,KAAK,mBAAkB;AAAG,WAAO,KAAK,OAAO,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE,GAAED,GAAEC,GAAE;AAAC,UAAM,IAAE,KAAK,YAAW,GAAG,IAAE,EAAE,QAAO,IAAED,EAAE;AAAO,QAAIK,IAAE;AAAE,IAAAA,IAAE,MAAIA,IAAE,IAAEA,GAAEA,IAAE,MAAIA,IAAE;AAAI,UAAMC,IAAEsG,EAAE;AAAG,QAAG3G,KAAGkG,EAAG7F,CAAC,GAAE;AAAC,YAAMP,IAAE,IAAE;AAAE,MAAAO,EAAE,iBAAiB,GAAEP,GAAE,GAAEA,CAAC;AAAA,IAAC;AAAC,UAAMQ,IAAE,EAAE,MAAM,GAAEF,CAAC,IAAEL,IAAE,EAAE,MAAMK,IAAE,CAAC;AAAE,WAAO,EAAE,SAAOE,GAAE;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,qBAAoB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,aAAa,GAAE;AAAC,IAAAoI,GAAE;AAAG,UAAM,IAAE,KAAK,UAAS,GAAG3I,IAAE,EAAE,eAAc,GAAGC,IAAE,EAAE,OAAM,IAAEgJ,GAAE,GAAG,IAAE,IAAI,IAAI,CAAC,GAAE,IAAE,IAAG5I,IAAEL,EAAE;AAAO,QAAIM,IAAE;AAAG,aAAQR,IAAE,GAAEA,IAAEO,GAAEP,IAAI,CAAKQ,MAAL,MAAQ,EAAE,IAAIR,CAAC,MAAI,EAAE,KAAKQ,CAAC,GAAEA,IAAE,KAAIA,KAAGN,EAAEF,CAAC;AAAE,IAAKQ,MAAL,MAAQ,EAAE,KAAKA,CAAC;AAAE,UAAMC,IAAE,EAAE;AAAO,QAAOA,MAAJ,EAAM,QAAM;AAAG,QAAG,EAAE,CAAC,MAAIP,EAAE,QAAM,CAAC,CAAC;AAAE,UAAMQ,IAAE,EAAE,CAAC,GAAEC,IAAE,EAAE,UAAS;AAAG,QAAI;AAAE,UAAME,IAAE,EAAE,UAAS,GAAGC,IAAE,EAAE,SAAQ,GAAGC,IAAE,EAAE;AAAS,QAAIC,IAAE;AAAG,MAAE,YAAW,KAAI,IAAEgJ,GAAGtJ,CAAC,GAAE,EAAE,WAASG,GAAE,EAAE,UAAQC,GAAE,EAAE,WAASC,GAAEC,IAAE,OAAK,IAAE,EAAE,YAAW,GAAG,EAAE,SAAON;AAAG,UAAMO,IAAE6F,EAAE,GAAG5F,IAAE,CAAC,CAAC;AAAE,QAAIC,IAAET,EAAE;AAAO,aAAQV,IAAE,GAAEA,IAAES,GAAET,KAAI;AAAC,YAAMC,IAAE,EAAED,CAAC,GAAEE,IAAED,EAAE,QAAOI,IAAE2J,GAAG/J,CAAC,EAAE,YAAW;AAAG,MAAAI,EAAE,WAASQ,GAAER,EAAE,UAAQS,GAAET,EAAE,WAASU;AAAE,YAAMR,IAAEF,EAAE,OAAMG,IAAEW,IAAEjB;AAAE,UAAGmG,EAAGpF,CAAC,GAAE;AAAC,cAAMjB,IAAEiB,EAAE,QAAOhB,IAAEgB,EAAE;AAAM,QAAAjB,EAAE,QAAMG,KAAYH,EAAE,SAAX,UAAiBA,EAAE,SAAOmB,KAAGnB,EAAE,UAAQQ,MAAIR,EAAE,MAAIO,GAAEP,EAAE,UAAQmB,GAAEF,EAAE,QAAM,KAAIhB,EAAE,QAAME,KAAYF,EAAE,SAAX,UAAiBA,EAAE,SAAOkB,KAAGlB,EAAE,UAAQO,MAAIP,EAAE,MAAIM,GAAEN,EAAE,UAAQkB,GAAEF,EAAE,QAAM;AAAA,MAAG;AAAC,YAAId,KAAG+I,GAAG3I,CAAC,GAAEY,IAAEX,GAAEU,EAAE,KAAKb,CAAC;AAAA,IAAC;AAAC,QAAUM,MAAP,MAAS;AAAC,OAAC,SAASX,GAAE;AAAC,cAAMC,IAAED,EAAE,mBAAkB,GAAGE,IAAEF,EAAE,eAAc;AAAG,QAAOC,MAAP,QAAUgJ,GAAGhJ,CAAC,GAASC,MAAP,QAAU+I,GAAG/I,CAAC;AAAA,MAAC,GAAE,IAAI;AAAE,YAAMF,IAAEW,EAAE,eAAcV,IAAE,KAAK,qBAAoB;AAAG,MAAAe,KAAGhB,EAAE,OAAOC,GAAE,GAAEiB,CAAC,GAAE,KAAK,OAAM,KAAIlB,EAAE,OAAOC,GAAE,GAAEiB,CAAC,GAAEmF,EAAGpF,CAAC,KAAG0P,GAAG1P,GAAEN,GAAEV,GAAEQ,IAAE,CAAC;AAAA,IAAC;AAAC,WAAOS;AAAA,EAAC;AAAA,EAAC,iBAAiB,GAAE;AAAC,UAAM,IAAE,MAAI,KAAK,mBAAkB;AAAG,SAAG,MAAI,KAAK,eAAc,KAAIuE,EAAG,EAAE;AAAE,UAAMvF,IAAE,KAAK,OAAMC,IAAE,EAAE,OAAM,IAAE,KAAK,QAAO,IAAE,EAAE;AAAO,IAAAgJ,GAAE,MAAKhJ,KAAG+I,GAAGhJ,CAAC;AAAE,UAAM,IAAE4G,EAAE;AAAG,QAAGT,EAAG,CAAC,GAAE;AAAC,YAAMjG,IAAE,EAAE,QAAOG,IAAE,EAAE;AAAM,MAAOH,MAAP,QAAUA,EAAE,QAAMD,MAAI4R,GAAG3R,GAAE,GAAEF,GAAE,GAAE,CAAC,GAAE,EAAE,QAAM,KAAWK,MAAP,QAAUA,EAAE,QAAMJ,MAAI4R,GAAGxR,GAAE,GAAEL,GAAE,GAAE,CAAC,GAAE,EAAE,QAAM;AAAA,IAAG;AAAC,UAAMK,IAAE,EAAE,QAAOC,IAAE,IAAED,IAAE,IAAE,IAAEA;AAAE,SAAK,eAAeC,CAAC;AAAE,UAAMC,IAAE,KAAK;AAAc,WAAO,EAAE,OAAM,GAAGA;AAAA,EAAC;AAAA,EAAC,eAAc;AAAC,WAAM;AAAA,EAAE;AAAC;AAAC,SAASoR,GAAG7R,GAAE;AAAC,SAAM,EAAC,UAASgS,GAAGhS,EAAE,KAAK,GAAE,MAAK,KAAI;AAAC;AAAC,SAAS2R,GAAG3R,GAAE;AAAC,QAAMC,IAAED,GAAEE,IAAaD,EAAE,MAAM,eAAnB;AAA8B,SAAM,EAAC,UAAS+R,GAAG/R,EAAE,OAAMC,IAAE,SAAO,MAAM,GAAE,MAAK,KAAI;AAAC;AAAC,MAAM+R,KAAG,oBAAI;AAAQ,SAASC,GAAGlS,GAAE;AAAC,SAAcA,EAAE,aAAV,SAAoBA,EAAE,aAAWyD,MAAazD,EAAE,UAAX,UAA2BA,EAAE,MAAM,eAAjB,UAA6BA,EAAE,MAAM,WAAW,WAAW,KAAK;AAAC;AAAC,SAAS0R,GAAG1R,GAAE;AAAC,QAAMC,IAAED;AAAE,EAAOA,EAAE,kBAAT,QAAwByF,EAAG,GAAG;AAAE,MAAIvF,IAAED,EAAE,eAAa;AAAG,MAAU,SAASD,GAAE;AAAC,QAAIC,GAAEC,IAAEF,EAAE;AAAW,UAAMG,IAAE,CAACH,CAAC;AAAE,WAAYE,MAAP,SAAoBD,IAAEgS,GAAG,IAAI/R,CAAC,OAApB,UAAwB,CAACgS,GAAGhS,CAAC,IAAG,CAAAC,EAAE,KAAKD,CAAC,GAAEA,IAAEA,EAAE;AAAW,UAAME,IAAWH,MAAT,SAAWC,IAAED;AAAE,aAAQD,IAAE,GAAEA,IAAEG,EAAE,QAAOH,IAAI,CAAAiS,GAAG,IAAI9R,EAAEH,CAAC,GAAEI,CAAC;AAAE,WAAOA;AAAA,EAAC,EAAEH,CAAC,MAAxM,MAA0M;AAAC,UAAMD,IAAEE,EAAE,MAAM,YAAY,GAAED,IAAE,IAAGE,IAAEH,EAAE;AAAO,aAAQE,IAAE,GAAEA,IAAEC,GAAED,KAAI;AAAC,YAAMC,IAAEH,EAAEE,CAAC;AAAE,MAAOC,MAAP;AAAA,KAAmBA,MAAT;AAAA,IAAWF,EAAE,KAAKiR,GAAE,CAAE,IAAS/Q,MAAP,MAASF,EAAE,KAAKkS,GAAE,CAAE,IAAOhS,MAAL,MAAQF,EAAE,KAAK+J,GAAG7J,CAAC,CAAC;AAAA,IAAC;AAAC,WAAM,EAAC,MAAKF,EAAC;AAAA,EAAC;AAAC,MAAGC,IAAEA,EAAE,QAAQ,OAAM,EAAE,EAAE,QAAQ,aAAY,GAAG,GAAOA,MAAL,GAAO,QAAM,EAAC,MAAK,KAAI;AAAE,MAASA,EAAE,CAAC,MAAT,KAAW;AAAC,QAAIF,IAAEC,GAAEE,IAAE;AAAG,WAAYH,MAAP,SAAkBA,IAAEoS,GAAGpS,GAAE,EAAE,OAAjB,QAAqB;AAAC,YAAMC,IAAED,EAAE,eAAa;AAAG,UAAGC,EAAE,SAAO,GAAE;AAAC,mBAAW,KAAKA,CAAC,MAAIC,IAAEA,EAAE,MAAM,CAAC,IAAGC,IAAE;AAAG;AAAA,MAAK;AAAA,IAAC;AAAC,IAAAA,MAAID,IAAEA,EAAE,MAAM,CAAC;AAAA,EAAE;AAAC,MAASA,EAAEA,EAAE,SAAO,CAAC,MAAlB,KAAoB;AAAC,QAAIF,IAAEC,GAAEE,IAAE;AAAG,WAAYH,MAAP,SAAkBA,IAAEoS,GAAGpS,GAAE,EAAE,OAAjB;AAAsB,WAAIA,EAAE,eAAa,IAAI,QAAQ,kBAAiB,EAAE,EAAE,SAAO,GAAE;AAAC,QAAAG,IAAE;AAAG;AAAA,MAAK;AAAE,IAAAA,MAAID,IAAEA,EAAE,MAAM,GAAEA,EAAE,SAAO,CAAC;AAAA,EAAE;AAAC,SAAWA,MAAL,KAAO,EAAC,MAAK,KAAI,IAAE,EAAC,MAAK8J,GAAG9J,CAAC,EAAC;AAAC;AAAC,SAASkS,GAAGpS,GAAEC,GAAE;AAAC,MAAIC,IAAEF;AAAE,aAAO;AAAC,QAAIA;AAAE,YAAaA,IAAEC,IAAEC,EAAE,cAAYA,EAAE,qBAA5B,QAA8C;AAAC,YAAMF,IAAEE,EAAE;AAAc,UAAUF,MAAP,KAAS,QAAO;AAAK,MAAAE,IAAEF;AAAA,IAAC;AAAC,QAAGE,IAAEF,GAAEE,EAAE,aAAWuD,IAAG;AAAC,YAAMzD,IAAEE,EAAE,MAAM;AAAQ,UAAQF,MAAL,MAAQ,CAAC8L,GAAG5L,CAAC,KAAQF,MAAL,MAAQ,CAACA,EAAE,WAAW,QAAQ,EAAE,QAAO;AAAA,IAAI;AAAC,QAAIG,IAAED;AAAE,YAAaC,IAAEF,IAAEC,EAAE,aAAWA,EAAE,eAA3B,OAAuC,CAAAA,IAAEC;AAAE,QAAGD,EAAE,aAAWwD,GAAG,QAAOxD;AAAE,QAAUA,EAAE,aAAT,KAAkB,QAAO;AAAA,EAAI;AAAC;AAAC,MAAMmS,KAAG,EAAC,MAAK,QAAO,IAAG,UAAS,GAAE,UAAS,GAAE,iBAAgB,QAAO,QAAO,KAAI,aAAY,KAAI,eAAc,GAAE,YAAW;AAAE,SAAST,GAAG5R,GAAE;AAAC,QAAMC,IAAEoS,GAAGrS,EAAE,SAAS,YAAW,CAAE;AAAE,SAAgBC,MAAT,SAAW,EAAC,MAAK,KAAI,IAAE,EAAC,UAAS+R,GAAGhS,EAAE,OAAMC,CAAC,GAAE,MAAK,KAAI;AAAC;AAAC,SAAS+J,GAAGhK,IAAE,IAAG;AAAC,SAAOsL,GAAG,IAAImG,GAAGzR,CAAC,CAAC;AAAC;AAAC,SAAS+G,EAAG/G,GAAE;AAAC,SAAOA,aAAayR;AAAE;AAAC,SAASO,GAAGhS,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,YAAW,IAAEA,EAAE,eAAe,MAAM,GAAG,GAAEI,IAAUF,MAAR,SAAoBA,MAAT,QAAWG,IAAE,EAAE,SAAS,cAAc,GAAEC,IAAaN,EAAE,cAAb,UAAuBO,IAAE,EAAE,SAAS,WAAW,GAAEC,IAAER,EAAE;AAAc,SAAO,CAAAA,OAAG+G,EAAG/G,CAAC,MAAGI,KAAG,CAACJ,EAAE,UAAU,MAAM,KAAGA,EAAE,aAAa,MAAM,GAAEK,KAAG,CAACL,EAAE,UAAU,eAAe,KAAGA,EAAE,aAAa,eAAe,GAAEM,KAAG,CAACN,EAAE,UAAU,QAAQ,KAAGA,EAAE,aAAa,QAAQ,GAAEO,KAAG,CAACP,EAAE,UAAU,WAAW,KAAGA,EAAE,aAAa,WAAW,GAAUQ,MAAR,SAAWR,EAAE,UAAU,WAAW,KAAGA,EAAE,aAAa,WAAW,GAAYQ,MAAV,WAAaR,EAAE,UAAU,aAAa,KAAGA,EAAE,aAAa,aAAa,GAAEC,KAAG,CAACD,EAAE,UAAUC,CAAC,KAAGD,EAAE,aAAaC,CAAC,IAAED;AAAI;AAAC,MAAMsS,WAAWb,GAAE;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAK;AAAA,EAAC,OAAO,MAAM,GAAE;AAAC,WAAO,IAAIa,GAAG,EAAE,KAAK;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE;AAAC,UAAM,eAAe,CAAC,GAAE,KAAK,SAAO,EAAE;AAAA,EAAM;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,KAAK,CAAC,GAAE,KAAK,WAAS;AAAA,EAAC;AAAA,EAAC,OAAO,YAAW;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,OAAO,WAAW,GAAE;AAAC,UAAM,IAAEH,GAAE;AAAG,WAAO,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,SAAS,EAAE,KAAK,GAAE;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,GAAG,MAAM,cAAa,MAAK,OAAM,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE;AAAC,IAAA1M,EAAG,GAAG;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,IAAAA,EAAG,GAAG;AAAA,EAAC;AAAA,EAAC,QAAQ,GAAE;AAAC,IAAAA,EAAG,GAAG;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,qBAAoB;AAAC,WAAM;AAAA,EAAE;AAAC;AAAC,SAAS0M,KAAI;AAAC,SAAO7G,GAAG,IAAIgH,IAAE;AAAC;AAAC,SAASC,GAAGvS,GAAE;AAAC,SAAOA,aAAasS;AAAE;AAAC,MAAME,GAAE;AAAA,EAAC,YAAY,GAAE,GAAEtS,GAAE;AAAC,SAAK,aAAW,MAAK,KAAK,MAAI,GAAE,KAAK,SAAO,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,GAAG,GAAE;AAAC,WAAO,KAAK,QAAM,EAAE,OAAK,KAAK,WAAS,EAAE,UAAQ,KAAK,SAAO,EAAE;AAAA,EAAI;AAAA,EAAC,SAAS,GAAE;AAAC,QAAI,IAAE,KAAK,QAAO,GAAGA,IAAE,EAAE,QAAO;AAAG,UAAMC,IAAE,KAAK,QAAO,IAAE,EAAE;AAAO,QAAGyH,EAAG,CAAC,GAAE;AAAC,YAAM5H,IAAE,EAAE,qBAAqBG,CAAC;AAAE,UAAQH,KAAI;AAAA,IAAC;AAAC,QAAG4H,EAAG1H,CAAC,GAAE;AAAC,YAAMF,IAAEE,EAAE,qBAAqB,CAAC;AAAE,MAAAA,IAAQF,KAAIE;AAAA,IAAC;AAAC,WAAO,MAAIA,IAAEC,IAAE,IAAE,EAAE,SAASD,CAAC;AAAA,EAAC;AAAA,EAAC,UAAS;AAAC,UAAM,IAAEuG,GAAG,KAAK,GAAG;AAAE,WAAc,MAAP,QAAUhB,EAAG,EAAE,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,GAAE,GAAEvF,GAAE;AAAC,UAAMC,IAAE,KAAK,YAAW,IAAE,KAAK;AAAI,SAAK,MAAI,GAAE,KAAK,SAAO,GAAE,KAAK,OAAKD,GAAEkJ,GAAE,MAAKD,GAAE,MAAK,KAAGD,GAAG,CAAC,GAAS/I,MAAP,SAAWA,EAAE,eAAe,IAAI,GAAEA,EAAE,QAAM;AAAA,EAAI;AAAC;AAAC,SAASsS,GAAGzS,GAAEC,GAAEC,GAAE;AAAC,SAAO,IAAIsS,GAAGxS,GAAEC,GAAEC,CAAC;AAAC;AAAC,SAASwS,GAAG1S,GAAEC,GAAE;AAAC,MAAIC,IAAED,EAAE,OAAM,IAAED,EAAE,QAAOI,IAAE;AAAU,MAAG2G,EAAG9G,CAAC,GAAE;AAAC,IAAAG,IAAE;AAAO,UAAMJ,IAAEC,EAAE,mBAAkB;AAAG,QAAED,MAAI,IAAEA;AAAA,EAAE,WAAS,CAAC4H,EAAG3H,CAAC,GAAE;AAAC,UAAMD,IAAEC,EAAE,eAAc;AAAG,QAAG8G,EAAG/G,CAAC,EAAE,CAAAE,IAAEF,EAAE,OAAM,IAAE,GAAEI,IAAE;AAAA,SAAW;AAAC,YAAMJ,IAAEC,EAAE,UAAS;AAAG,MAAAD,MAAIE,IAAEF,EAAE,OAAM,IAAEC,EAAE,qBAAoB,IAAG;AAAA,IAAE;AAAA,EAAC;AAAC,EAAAD,EAAE,IAAIE,GAAE,GAAEE,CAAC;AAAC;AAAC,SAASyQ,GAAG7Q,GAAEC,GAAE;AAAC,MAAG2H,EAAG3H,CAAC,GAAE;AAAC,UAAMC,IAAED,EAAE,kBAAiB;AAAG,IAAA2H,EAAG1H,CAAC,KAAG6G,EAAG7G,CAAC,IAAEwS,GAAG1S,GAAEE,CAAC,IAAEwS,GAAG1S,GAAEC,CAAC;AAAA,EAAC,MAAM,CAAAyS,GAAG1S,GAAEC,CAAC;AAAC;AAAC,SAAS0S,GAAG3S,GAAEC,GAAEC,GAAE,GAAE;AAAC,EAAAF,EAAE,MAAIC,GAAED,EAAE,SAAOE,GAAEF,EAAE,OAAK;AAAC;AAAC,MAAM4S,GAAE;AAAA,EAAC,YAAY,GAAE;AAAC,SAAK,eAAa,MAAK,KAAK,SAAO,GAAE,KAAK,QAAM;AAAA,EAAE;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK;AAAA,EAAY;AAAA,EAAC,eAAe,GAAE;AAAC,SAAK,eAAa;AAAA,EAAC;AAAA,EAAC,GAAG,GAAE;AAAC,QAAG,CAAClC,GAAG,CAAC,EAAE;AAAS,UAAM,IAAE,KAAK,QAAOxQ,IAAE,EAAE;AAAO,WAAO,EAAE,SAAOA,EAAE,QAAM,MAAM,KAAK,CAAC,EAAE,MAAO,CAAAF,MAAGE,EAAE,IAAIF,CAAC,CAAC;AAAA,EAAE;AAAA,EAAC,cAAa;AAAC;EAAQ;AAAA,EAAC,aAAY;AAAC;EAAQ;AAAA,EAAC,oBAAmB;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,IAAI,GAAE;AAAC,SAAK,QAAM,IAAG,KAAK,OAAO,IAAI,CAAC,GAAE,KAAK,eAAa;AAAA,EAAI;AAAA,EAAC,OAAO,GAAE;AAAC,SAAK,QAAM,IAAG,KAAK,OAAO,OAAO,CAAC,GAAE,KAAK,eAAa;AAAA,EAAI;AAAA,EAAC,QAAO;AAAC,SAAK,QAAM,IAAG,KAAK,OAAO,MAAK,GAAG,KAAK,eAAa;AAAA,EAAI;AAAA,EAAC,IAAI,GAAE;AAAC,WAAO,KAAK,OAAO,IAAI,CAAC;AAAA,EAAC;AAAA,EAAC,QAAO;AAAC,WAAO,IAAI4S,GAAG,IAAI,IAAI,KAAK,MAAM,CAAC;AAAA,EAAC;AAAA,EAAC,UAAS;AAAC,WAAO,KAAK,SAAQ;AAAA,EAAE;AAAA,EAAC,cAAc,GAAE;AAAA,EAAC;AAAA,EAAC,aAAY;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,IAAE,KAAK,YAAW1S,IAAE,EAAE,QAAOC,IAAE,EAAED,IAAE,CAAC;AAAE,QAAI;AAAE,QAAG6G,EAAG5G,CAAC,EAAE,KAAEA,EAAE,OAAM;AAAA,SAAO;AAAC,YAAMH,IAAEG,EAAE,qBAAoB,IAAG;AAAE,UAAEA,EAAE,iBAAgB,EAAG,OAAOH,GAAEA,CAAC;AAAA,IAAC;AAAC,MAAE,YAAY,CAAC;AAAE,aAAQA,IAAE,GAAEA,IAAEE,GAAEF,IAAI,GAAEA,CAAC,EAAE,OAAM;AAAA,EAAE;AAAA,EAAC,WAAU;AAAC,UAAM,IAAE,KAAK;AAAa,QAAU,MAAP,KAAS,QAAO;AAAE,UAAM,IAAE,KAAK,QAAOE,IAAE,CAAA;AAAG,eAAUF,KAAK,GAAE;AAAC,YAAMC,IAAEwG,GAAGzG,CAAC;AAAE,MAAOC,MAAP,QAAUC,EAAE,KAAKD,CAAC;AAAA,IAAC;AAAC,WAAOmJ,GAAE,MAAK,KAAK,eAAalJ,IAAGA;AAAA,EAAC;AAAA,EAAC,iBAAgB;AAAC,UAAM,IAAE,KAAK,SAAQ;AAAG,QAAI,IAAE;AAAG,aAAQA,IAAE,GAAEA,IAAE,EAAE,QAAOA,IAAI,MAAG,EAAEA,CAAC,EAAE,eAAc;AAAG,WAAO;AAAA,EAAC;AAAC;AAAC,SAASmG,EAAGrG,GAAE;AAAC,SAAOA,aAAa6S;AAAE;AAAC,MAAMA,GAAE;AAAA,EAAC,YAAY,GAAE,GAAE3S,GAAEC,GAAE;AAAC,SAAK,SAAO,GAAE,KAAK,QAAM,GAAE,EAAE,aAAW,MAAK,EAAE,aAAW,MAAK,KAAK,eAAa,MAAK,KAAK,SAAOD,GAAE,KAAK,QAAMC,GAAE,KAAK,QAAM;AAAA,EAAE;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK;AAAA,EAAY;AAAA,EAAC,eAAe,GAAE;AAAC,SAAK,eAAa;AAAA,EAAC;AAAA,EAAC,GAAG,GAAE;AAAC,WAAM,CAAC,CAACkG,EAAG,CAAC,KAAI,KAAK,OAAO,GAAG,EAAE,MAAM,KAAG,KAAK,MAAM,GAAG,EAAE,KAAK,KAAG,KAAK,WAAS,EAAE,UAAQ,KAAK,UAAQ,EAAE;AAAA,EAAM;AAAA,EAAC,cAAa;AAAC,WAAO,KAAK,OAAO,GAAG,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,UAAM,IAAE,KAAK;AAAa,QAAU,MAAP,KAAS,QAAO;AAAE,UAAM,IAAE,KAAK,QAAOnG,IAAE,KAAK,OAAMC,IAAE,EAAE,SAASD,CAAC,GAAE,IAAEC,IAAE,IAAED,GAAE,IAAEC,IAAED,IAAE;AAAE,QAAI,IAAE,EAAE,QAAO,GAAGK,IAAE,EAAE,QAAO;AAAG,UAAMC,IAAE,EAAE,QAAOC,IAAE,EAAE;AAAO,QAAGmH,EAAG,CAAC,GAAE;AAAC,YAAM5H,IAAE,EAAE,qBAAqBQ,CAAC;AAAE,UAAQR,KAAI;AAAA,IAAC;AAAC,QAAG4H,EAAGrH,CAAC,GAAE;AAAC,UAAIP,IAAEO,EAAE,qBAAqBE,CAAC;AAAE,MAAOT,MAAP,QAAUA,MAAI,KAAGO,EAAE,gBAAgBE,CAAC,MAAIT,MAAIA,IAAEA,EAAE,mBAAkB,IAAIO,IAAQP,KAAIO;AAAA,IAAC;AAAC,QAAIG;AAAE,WAAOA,IAAE,EAAE,GAAGH,CAAC,IAAEqH,EAAG,CAAC,KAAG,EAAE,gBAAe,IAAG,IAAE,CAAA,IAAG,CAAC,CAAC,IAAE,EAAE,gBAAgBrH,CAAC,GAAE6I,GAAE,MAAK,KAAK,eAAa1I,IAAGA;AAAA,EAAC;AAAA,EAAC,iBAAiB,GAAE,GAAER,GAAEC,GAAE;AAAC,IAAAwS,GAAG,KAAK,QAAO,EAAE,OAAM,GAAE,MAAM,GAAEA,GAAG,KAAK,OAAMzS,EAAE,OAAMC,GAAE,MAAM,GAAE,KAAK,eAAa,MAAK,KAAK,QAAM;AAAA,EAAE;AAAA,EAAC,iBAAgB;AAAC,UAAM,IAAE,KAAK,SAAQ;AAAG,QAAO,EAAE,WAAN,EAAa,QAAM;AAAG,UAAM,IAAE,EAAE,CAAC,GAAED,IAAE,EAAE,EAAE,SAAO,CAAC,GAAEC,IAAE,KAAK,QAAO,IAAE,KAAK,OAAM,IAAEA,EAAE,SAAS,CAAC,GAAE,CAAC,GAAEI,CAAC,IAAEuS,GAAG,IAAI;AAAE,QAAItS,IAAE,IAAGC,IAAE;AAAG,aAAQC,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,YAAMC,IAAE,EAAED,CAAC;AAAE,UAAGkH,EAAGjH,CAAC,KAAG,CAACA,EAAE,SAAQ,EAAG,CAAAF,MAAID,KAAG;AAAA,IAAMC,IAAE,CAACE,EAAE,QAAO;AAAA,eAAWF,IAAE,IAAGsG,EAAGpG,CAAC,GAAE;AAAC,YAAIX,IAAEW,EAAE,eAAc;AAAG,QAAAA,MAAI,IAAEA,MAAIT,IAAcC,EAAE,SAAd,aAAgC,EAAE,SAAd,aAAoB,EAAE,WAASA,EAAE,WAASH,IAAE,IAAEO,IAAEP,EAAE,MAAM,GAAEO,CAAC,IAAEP,EAAE,MAAMO,GAAE,CAAC,KAAGP,IAAE,IAAEA,EAAE,MAAM,CAAC,IAAEA,EAAE,MAAMO,CAAC,IAAEI,MAAIT,MAAIF,IAAE,IAAEA,EAAE,MAAM,GAAEO,CAAC,IAAEP,EAAE,MAAM,GAAE,CAAC,IAAGQ,KAAGR;AAAA,MAAC,MAAK,EAAC0G,GAAG/F,CAAC,KAAG,CAACgI,GAAGhI,CAAC,KAAGA,MAAIT,KAAG,KAAK,YAAW,MAAKM,KAAGG,EAAE,eAAc;AAAA,IAAG;AAAC,WAAOH;AAAA,EAAC;AAAA,EAAC,cAAc,GAAE;AAAC,UAAM,IAAEgH,GAAE,GAAGtH,IAAE,EAAE,eAAc,EAAG,YAAWC,IAAE4S,GAAG,EAAE,gBAAe,EAAE,aAAY,EAAE,cAAa,EAAE,WAAU,GAAE7S,CAAC;AAAE,QAAUC,MAAP,KAAS;AAAO,UAAK,CAAC,GAAE,CAAC,IAAEA;AAAE,IAAAwS,GAAG,KAAK,QAAO,EAAE,KAAI,EAAE,QAAO,EAAE,IAAI,GAAEA,GAAG,KAAK,OAAM,EAAE,KAAI,EAAE,QAAO,EAAE,IAAI,GAAE,KAAK,eAAa;AAAA,EAAI;AAAA,EAAC,QAAO;AAAC,UAAM,IAAE,KAAK,QAAO,IAAE,KAAK;AAAM,WAAO,IAAIE,GAAGJ,GAAG,EAAE,KAAI,EAAE,QAAO,EAAE,IAAI,GAAEA,GAAG,EAAE,KAAI,EAAE,QAAO,EAAE,IAAI,GAAE,KAAK,QAAO,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,SAAK,SAAOhK,GAAG,KAAK,QAAO,GAAE,IAAI,GAAE,KAAK,QAAM;AAAA,EAAE;AAAA,EAAC,SAAS,GAAE;AAAC,SAAK,QAAM,GAAE,KAAK,QAAM;AAAA,EAAE;AAAA,EAAC,UAAU,GAAE;AAAC,UAAM,IAAEvD,GAAG,CAAC;AAAE,WAAM,CAAC,EAAE,KAAK,SAAO;AAAA,EAAE;AAAA,EAAC,cAAc,GAAE;AAAC,UAAM,IAAE,EAAE,MAAM,YAAY,GAAEhF,IAAE,IAAGC,IAAE,EAAE;AAAO,aAAQH,IAAE,GAAEA,IAAEG,GAAEH,KAAI;AAAC,YAAMG,IAAE,EAAEH,CAAC;AAAE,MAAOG,MAAP;AAAA,KAAmBA,MAAT;AAAA,IAAWD,EAAE,KAAKgR,GAAE,CAAE,IAAS/Q,MAAP,MAASD,EAAE,KAAKiS,GAAE,CAAE,IAAEjS,EAAE,KAAK8J,GAAG7J,CAAC,CAAC;AAAA,IAAC;AAAC,SAAK,YAAYD,CAAC;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE;AAAC,UAAM,IAAE,KAAK,QAAOA,IAAE,KAAK,OAAMC,IAAE,KAAK,QAAO,IAAE,KAAK;AAAM,QAAI,IAAE,GAAE,IAAED;AAAE,KAAC,KAAK,YAAW,KAAIA,EAAE,SAAS,CAAC,MAAI,IAAEA,GAAE,IAAE,IAAe,EAAE,SAAd,aAAoB,SAASF,GAAEC,GAAEC,GAAEC,GAAE;AAAC,YAAMC,IAAEJ,EAAE,QAAO,GAAGK,IAAED,EAAE,gBAAgBJ,EAAE,MAAM,GAAEM,IAAE0J,GAAE,GAAGzJ,IAAE0K,GAAG7K,CAAC,IAAE0Q,GAAE,EAAG,OAAOxQ,CAAC,IAAEA;AAAE,MAAAA,EAAE,UAAUJ,CAAC,GAAEI,EAAE,SAASH,CAAC,GAASE,MAAP,OAASD,EAAE,OAAOG,CAAC,IAAEF,EAAE,aAAaE,CAAC,GAAEP,EAAE,GAAGC,CAAC,KAAGA,EAAE,IAAIK,EAAE,OAAM,GAAE,MAAM,GAAEN,EAAE,IAAIM,EAAE,OAAM,GAAE,MAAM;AAAA,IAAC,EAAE,GAAE,GAAEH,GAAE,CAAC;AAAE,UAAMI,IAAE,EAAE;AAAO,QAAIC,IAAE,EAAE;AAAO,UAAMC,IAAE,KAAK,SAAQ,GAAGC,IAAED,EAAE;AAAO,QAAIE,IAAEF,EAAE,CAAC;AAAE,IAAAsG,EAAGpG,CAAC,KAAG8E,EAAG,EAAE;AAAE,UAAM,IAAE9E,EAAE,iBAAiB,QAAOE,IAAEF,EAAE,iBAAgB;AAAG,QAAIG,IAAEL,EAAEC,IAAE,CAAC;AAAE,QAAOA,MAAJ,KAAmB,EAAE,SAAd,cAAqBF,IAAE,GAAE,EAAE,IAAI,EAAE,KAAIA,GAAE,MAAM,IAAG,KAAK,YAAW,KAAID,MAAI,MAAII,EAAE,YAAW,KAAIA,EAAE,QAAO,KAAI,CAACA,EAAE,mBAAkB,KAAI,CAACE,EAAE,mBAAkB,KAAWF,EAAE,qBAAT,OAA2B;AAAC,UAAIV,IAAEU,EAAE;AAAiB,UAAGoG,EAAG9G,CAAC,KAAGA,EAAE,yBAAuB,CAACqI,GAAGrI,CAAC,MAAIA,IAAE+J,GAAE,GAAG/J,EAAE,UAAUE,CAAC,GAAEF,EAAE,SAAS,CAAC,GAAEY,EAAE,mBAAkB,IAAGF,EAAE,YAAYV,CAAC,IAAEY,EAAE,YAAYZ,CAAC,IAAGA,EAAE,OAAO,GAAE,CAAC,GAAEU,IAAEV,GAAO,MAAL,GAAO,QAAO,KAAK,KAAK,WAAW,CAAC;AAAA,IAAC,WAAS,KAAK,iBAAmBM,MAAJ,MAAQI,EAAE,YAAW,KAAIA,EAAE,QAAO,KAAI,CAACA,EAAE,oBAAmB,KAAI,CAACE,EAAE,oBAAmB,KAAWF,EAAE,mBAAkB,MAA3B,OAA+B;AAAC,UAAIV,IAAEU,EAAE,mBAAkB;AAAG,UAAGoG,EAAG9G,CAAC,KAAG,CAACqI,GAAGrI,CAAC,MAAIA,IAAE+J,GAAE,GAAG/J,EAAE,UAAUE,CAAC,GAAEU,EAAE,oBAAmB,IAAGF,EAAE,aAAaV,CAAC,IAAEY,EAAE,aAAaZ,CAAC,IAAGA,EAAE,OAAM,GAAGU,IAAEV,GAAO,MAAL,GAAO,QAAO,KAAK,KAAK,WAAW,CAAC;AAAA,IAAC,WAASU,EAAE,YAAW,KAAIJ,MAAI,GAAE;AAAC,YAAMP,IAAEgK,GAAGrJ,EAAE,gBAAgB;AAAE,MAAAX,EAAE,UAAUG,CAAC,GAAEQ,EAAE,QAAQX,CAAC,GAAEW,IAAEX;AAAA,IAAC,WAAS,CAAC,KAAK,YAAW,KAAS,MAAL,IAAO;AAAC,YAAMC,IAAEa,EAAE,UAAS;AAAG,UAAG,CAACD,EAAE,yBAAuB,CAACA,EAAE,mBAAkB,KAAI+G,EAAG3H,CAAC,MAAI,CAACA,EAAE,oBAAmB,KAAI,CAACA,EAAE,mBAAkB,GAAI,QAAO,KAAK,WAAW,EAAE,GAAE+S,GAAG,KAAK,QAAO,KAAK,OAAM,IAAI,GAAE,KAAK,KAAK,WAAW,CAAC;AAAA,IAAC;AAAC,QAAOtS,MAAJ,GAAM;AAAC,UAAGC,EAAE,QAAO,GAAG;AAAC,cAAMV,IAAE+J,GAAG,CAAC;AAAE,eAAO/J,EAAE,OAAM,GAAG,KAAKU,EAAE,QAAQV,CAAC;AAAA,MAAC;AAAC,YAAMA,IAAEU,EAAE,aAAYT,IAAES,EAAE,SAAQ;AAAG,UAAGJ,MAAIC,KAAGP,MAAIE,KAAGD,MAAI;AAAG,YAAGqS,GAAG5R,CAAC,GAAE;AAAC,gBAAMV,IAAE+J,GAAG,CAAC;AAAE,iBAAO/J,EAAE,UAAUE,CAAC,GAAEF,EAAE,SAAS,CAAC,GAAEA,EAAE,OAAM,GAAG,KAAKU,EAAE,QAAQV,CAAC;AAAA,QAAC;AAAA,aAAM;AAAC,YAAQU,EAAE,eAAc,MAArB,IAAwB;AAAC,gBAAMV,IAAE+J,GAAG,CAAC;AAAE,cAAG/J,EAAE,UAAUE,CAAC,GAAEF,EAAE,SAAS,CAAC,GAAEA,EAAE,OAAM,GAAOM,MAAJ,EAAM,CAAAI,EAAE,aAAaV,GAAE,EAAE;AAAA,eAAM;AAAC,kBAAK,CAACD,CAAC,IAAEW,EAAE,UAAUJ,CAAC;AAAE,YAAAP,EAAE,YAAYC,GAAE,EAAE;AAAA,UAAC;AAAC,iBAAO,MAAKA,EAAE,YAAW,KAAa,KAAK,OAAO,SAArB,WAA4B,KAAK,OAAO,UAAQ,EAAE;AAAA,QAAQ;AAAC,QAAAU,EAAE,UAAUR,CAAC,GAAEQ,EAAE,SAAS,CAAC;AAAA,MAAC;AAAC,YAAMN,IAAEG,IAAED;AAAE,MAAAI,IAAEA,EAAE,WAAWJ,GAAEF,GAAE,GAAE,EAAE,GAAOM,EAAE,eAAc,MAArB,KAAwBA,EAAE,OAAM,IAAY,KAAK,OAAO,SAArB,WAA4BA,EAAE,YAAW,IAAG,KAAK,OAAO,UAAQ,EAAE,UAAQ,KAAK,SAAOV,GAAE,KAAK,QAAMC;AAAA,IAAG,OAAK;AAAC,YAAMD,IAAE,oBAAI,IAAI,CAAC,GAAGU,EAAE,cAAa,GAAG,GAAGG,EAAE,eAAe,CAAC,GAAEZ,IAAE0H,EAAGjH,CAAC,IAAEA,IAAEA,EAAE,iBAAgB;AAAG,UAAIR,IAAEyH,EAAG9G,CAAC,IAAEA,IAAEA,EAAE,oBAAmBV,IAAEU;AAAE,UAAG,CAACZ,EAAE,GAAGC,CAAC,KAAGA,EAAE,SAAQ,EAAG;AAAG,QAAAC,IAAED,GAAEA,IAAEA,EAAE,iBAAgB;AAAA,aAASA,EAAE;AAAY,UAAY,EAAE,SAAX,WAAsBK,MAAJ,KAAYM,EAAE,eAAc,MAArB,OAAsC,EAAE,SAAd,aAAoBA,EAAE,qBAAoB,IAAGN,EAAE,KAAGuG,EAAGjG,CAAC,KAAG,CAACA,EAAE,QAAO,KAAIN,MAAIM,EAAE,mBAAkB,GAAG;AAAC,YAAGA,EAAE,eAAc;AAAC,gBAAMd,IAAEgK,GAAGlJ,EAAE,eAAc,CAAE;AAAE,UAAAA,EAAE,QAAQd,CAAC,GAAEc,IAAEd;AAAA,QAAC;AAAC,QAAAiL,GAAG,EAAE,QAAO,CAAE,KAAY,EAAE,SAAX,WAAkBnK,IAAEA,EAAE,WAAW,GAAEN,GAAE,EAAE,IAAGP,EAAE,IAAIa,EAAE,KAAK;AAAA,MAAC,OAAK;AAAC,cAAMd,IAAEc,EAAE,iBAAgB;AAAG,QAAAd,EAAE,WAAU,KAAQA,EAAE,gBAAe,MAArB,IAAwBc,EAAE,OAAM,IAAGd,EAAE,OAAM;AAAA,MAAE;AAAA,UAAM,CAAAC,EAAE,IAAIa,EAAE,KAAK;AAAE,YAAMT,IAAEF,EAAE,YAAW,GAAGU,IAAE,IAAI,IAAIJ,CAAC,GAAEM,IAAEb,EAAE,GAAGC,CAAC,GAAEa,IAAEd,EAAE,cAAmBS,EAAE,eAAc,MAAvB,OAA0BT,IAAES;AAAE,eAAQX,IAAEK,EAAE,SAAO,GAAEL,KAAG,GAAEA,KAAI;AAAC,cAAMC,IAAEI,EAAEL,CAAC;AAAE,YAAGC,EAAE,GAAGU,CAAC,KAAGiH,EAAG3H,CAAC,KAAGA,EAAE,WAAWU,CAAC,EAAE;AAAM,QAAAV,EAAE,iBAAe,CAACY,EAAE,IAAIZ,CAAC,KAAGA,EAAE,GAAGG,CAAC,IAAEW,KAAGC,EAAE,YAAYf,GAAE,EAAE,IAAEA,EAAE;MAAS;AAAC,UAAG,CAACc,GAAE;AAAC,YAAIf,IAAEG,GAAED,IAAE;AAAK,eAAYF,MAAP,QAAU;AAAC,gBAAMG,IAAEH,EAAE,YAAW,GAAGI,IAAED,EAAE;AAAO,WAAKC,MAAJ,KAAOD,EAAEC,IAAE,CAAC,EAAE,GAAGF,CAAC,OAAKD,EAAE,OAAOD,EAAE,KAAK,GAAEE,IAAEF,IAAGA,IAAEA,EAAE;QAAW;AAAA,MAAC;AAAC,UAAGW,EAAE,QAAO,EAAG,KAAGJ,MAAI,EAAE,CAAAI,EAAE,OAAM;AAAA,WAAO;AAAC,cAAMV,IAAE+J,GAAG,CAAC;AAAE,QAAA/J,EAAE,UAASU,EAAE,QAAQV,CAAC;AAAA,MAAC;AAAA,UAAM,CAAAU,IAAEA,EAAE,WAAWJ,GAAE,IAAEA,GAAE,GAAE,EAAE,GAAOI,EAAE,eAAc,MAArB,KAAwBA,EAAE,OAAM,IAAGA,EAAE,YAAW,KAAa,KAAK,OAAO,SAArB,WAA4B,KAAK,OAAO,UAAQ,EAAE;AAAQ,eAAQX,IAAE,GAAEA,IAAEU,GAAEV,KAAI;AAAC,cAAME,IAAEO,EAAET,CAAC,GAAEG,IAAED,EAAE;AAAM,QAAAD,EAAE,IAAIE,CAAC,KAAGD,EAAE;MAAQ;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,QAAG,KAAK,YAAW,EAAG;AAAO,UAAK,EAAC,QAAO,GAAE,OAAM,EAAC,IAAE,MAAKA,IAAE,KAAK,SAAQ,GAAGC,IAAE,KAAK,WAAU,IAAG,IAAE,GAAE,IAAE,KAAK,WAAU,IAAG,IAAE;AAAE,QAAI,IAAEA,EAAE,WAAU,IAAE,EAAE,QAAO;AAAG,UAAMI,IAAE0L,GAAG,GAAED,EAAE,GAAExL,IAAEyL,GAAG,GAAED,EAAE;AAAE,IAAAjF,EAAG,CAAC,KAAG,EAAE,QAAO,KAAI5G,EAAE,SAAO,EAAE,mBAAkB,MAAKA,EAAE,SAAO,IAAG,EAAE,SAAO,KAAG4G,EAAG,CAAC,KAAG,EAAE,QAAO,MAAK,EAAE,SAAO,EAAE,mBAAkB,IAAI7G,EAAE,QAAS,CAAAF,MAAG;AAAC,MAAAmL,GAAG,GAAEnL,CAAC,KAAGmL,GAAG,GAAEnL,CAAC,KAAGA,EAAE,aAAW,EAAE,OAAM,KAAIA,EAAE,OAAM,MAAK,EAAE,OAAM,KAAIA,EAAE,OAAM;AAAA,IAAE,CAAC;AAAG,UAAMS,IAAE,CAACT,GAAEC,MAAI;AAAC,UAAQD,EAAE,qBAAP,GAAwB,CAAAA,EAAE,OAAM;AAAA,eAAeC,MAAJ,KAAOqI,GAAGtI,CAAC,GAAE;AAAC,cAAMC,IAAE+J,GAAGhK,EAAE,gBAAgB;AAAE,eAAOC,EAAE,UAAUD,EAAE,UAAS,CAAE,GAAEC,EAAE,SAASD,EAAE,UAAU,GAAEA,EAAE,QAAQC,CAAC;AAAA,MAAC;AAAA,IAAC;AAAE,QAAG,MAAI,KAAG8G,EAAG,CAAC,GAAE;AAAC,YAAM7G,IAAE,KAAK,IAAI,EAAE,SAAO,EAAE,MAAM;AAAE,aAAO,EAAE,WAAWC,EAAE,QAAOD,GAAE,IAAG,EAAE,GAAE,KAAKO,EAAE,GAAEP,CAAC;AAAA,IAAC;AAAC,QAAG6G,EAAG,CAAC,GAAE;AAAC,YAAM/G,IAAE,EAAE,mBAAkB,IAAGG,EAAE;AAAO,QAAE,WAAWA,EAAE,QAAOH,GAAE,EAAE,GAAE,IAAES,EAAE,GAAET,CAAC,KAAG;AAAA,IAAC;AAAC,IAAA+G,EAAG,CAAC,MAAI,EAAE,WAAW,GAAE,EAAE,QAAO,EAAE,GAAE,IAAEtG,EAAE,GAAE,EAAE,MAAM,KAAG,IAAG,EAAE,WAAU,KAAIsG,EAAG,CAAC,IAAE,EAAE,cAAY,EAAE,gBAAcA,EAAG,CAAC,KAAG,EAAE,YAAW,GAAGa,EAAGrH,CAAC,KAAGqH,EAAGpH,CAAC,KAAGD,MAAIC,MAAID,EAAE,OAAO,GAAGC,EAAE,YAAW,CAAE,GAAEA,EAAE,OAAM,GAAG,EAAE,IAAIL,EAAE,KAAIA,EAAE,QAAOA,EAAE,IAAI;AAAA,EAAE;AAAA,EAAC,WAAW,GAAE,IAAE,MAAK;AAAC,QAAG,KAAK,cAAc,QAAO,KAAK,aAAa,CAAC,GAAE,KAAK+I,GAAG,IAAI;AAAE,UAAMhJ,IAAE,KAAK,SAAQ,GAAGC,IAAE;AAAG,eAAUH,KAAKE,EAAE,CAAA6G,EAAG/G,CAAC,KAAGG,EAAE,KAAKH,CAAC;AAAE,UAAM,IAAE,CAAAC,MAAG;AAAC,MAAAC,EAAE,QAAS,CAAAA,MAAG;AAAC,YAAG0O,GAAG1O,CAAC,GAAE;AAAC,gBAAMC,IAAED,EAAE,eAAe,GAAED,CAAC;AAAE,UAAAC,EAAE,cAAcC,CAAC;AAAA,QAAC;AAAA,MAAC,CAAC;AAAA,IAAE,GAAE,IAAEA,EAAE;AAAO,QAAO,MAAJ,EAAM,QAAO,KAAK,aAAa,CAAC,GAAE+I,GAAG,IAAI,GAAE,KAAK,EAAE,CAAC;AAAE,UAAM,IAAE,KAAK,QAAO3I,IAAE,KAAK,OAAMC,IAAE,KAAK,WAAU,GAAGC,IAAED,IAAED,IAAE,GAAEG,IAAEF,IAAE,IAAED;AAAE,QAAII,IAAE,GAAE,IAAER,EAAE,CAAC,GAAEU,IAAcJ,EAAE,SAAd,YAAmB,IAAEA,EAAE;AAAO,QAAYA,EAAE,SAAX,UAAiBI,MAAI,EAAE,yBAAuBF,IAAE,GAAE,IAAER,EAAE,CAAC,GAAEU,IAAE,IAAS,KAAN,KAAQ;AAAO,UAAMC,IAAE,EAAE,eAAe,GAAE,CAAC;AAAE,MAAEA,CAAC;AAAE,UAAMC,IAAE,IAAE;AAAE,QAAIC,IAAEb,EAAEY,CAAC;AAAE,UAAME,IAAWP,EAAE,SAAX,SAAgBA,EAAE,SAAOM,EAAE,mBAAkB;AAAG,QAAG,EAAE,GAAGA,CAAC,GAAE;AAAC,UAAGH,MAAII,EAAE;AAAO,UAAGqH,GAAG,CAAC,KAAOzH,MAAJ,KAAOI,MAAI,EAAE,qBAAqB,GAAE,UAAUH,CAAC;AAAA,WAAM;AAAC,cAAMd,IAAE,EAAE,UAAUa,GAAEI,CAAC,GAAEhB,IAAMY,MAAJ,IAAMb,EAAE,CAAC,IAAEA,EAAE,CAAC;AAAE,QAAAC,EAAE,UAAUa,CAAC,GAAWL,EAAE,SAAX,UAAiBA,EAAE,IAAIR,EAAE,OAAM,GAAE,MAAM,GAAWS,EAAE,SAAX,UAAiBA,EAAE,IAAIT,EAAE,OAAMgB,IAAEJ,GAAE,MAAM;AAAA,MAAC;AAAC,aAAO,MAAK,KAAK,SAAOC;AAAA,IAAE;AAAC,IAAID,MAAJ,KAAOyH,GAAG,CAAC,MAAI,CAAA,EAAE,CAAC,IAAE,EAAE,UAAUzH,CAAC,GAAEA,IAAE,IAAG,EAAE,UAAUC,CAAC;AAAE,UAAMI,IAAEF,EAAE,eAAe,GAAEF,CAAC;AAAE,IAAAG,IAAE,MAAIA,MAAID,EAAE,mBAAkB,KAAIsH,GAAGtH,CAAC,MAAI,CAACA,CAAC,IAAEA,EAAE,UAAUC,CAAC,IAAGD,EAAE,UAAUE,CAAC;AAAG,aAAQjB,IAAEU,IAAE,GAAEV,IAAEc,GAAEd,KAAI;AAAC,YAAMC,IAAEC,EAAEF,CAAC,GAAEG,IAAEF,EAAE,eAAe,GAAEgB,CAAC;AAAE,MAAAhB,EAAE,UAAUE,CAAC;AAAA,IAAC;AAAC,IAASK,EAAE,SAAX,UAAiBA,EAAE,IAAI,EAAE,OAAMI,GAAE,MAAM,GAAWH,EAAE,SAAX,UAAiBA,EAAE,IAAIM,EAAE,OAAMC,GAAE,MAAM,GAAE,KAAK,SAAOH,IAAEI;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,QAAO,EAAE,WAAN,EAAa;AAAO,QAAY,KAAK,OAAO,QAArB,QAAyB;AAAC,WAAK,gBAAe;AAAG,YAAMjB,IAAE6G,EAAE;AAAG,aAAOT,EAAGpG,CAAC,KAAGwF,EAAG,GAAG,GAAExF,EAAE,YAAY,CAAC;AAAA,IAAC;AAAC,UAAM,KAAG,KAAK,WAAU,IAAG,KAAK,QAAM,KAAK,QAAQ,WAAUC,IAAE+L,GAAG,GAAED,EAAE,GAAE7L,IAAE,EAAE,EAAE,SAAO,CAAC;AAAE,QAAGyH,EAAG1H,CAAC,KAAG,gBAAeA,GAAE;AAAC,UAAG,gBAAe,EAAE,CAAC,EAAE,MAAK,WAAW,EAAE,CAAC,EAAE,eAAc,CAAE;AAAA,WAAM;AAAC,cAAMD,IAAEgT,GAAG,IAAI;AAAE,QAAA/S,EAAE,OAAOD,GAAE,GAAE,CAAC,GAAEE,EAAE,UAAS;AAAA,MAAE;AAAC;AAAA,IAAM;AAAC,QAAG,CAAC,EAAE,KAAM,CAAAH,OAAI4H,EAAG5H,CAAC,KAAG0G,GAAG1G,CAAC,MAAI,CAACA,EAAE,UAAU,GAAG;AAAC,MAAA4H,EAAG1H,CAAC,KAAGuF,EAAG,KAAI,EAAE,YAAY,MAAK,EAAE,QAAO,CAAE;AAAE,YAAMrF,IAAE6S,GAAG,IAAI;AAAE,aAAO/S,EAAE,OAAOE,GAAE,GAAE,CAAC,GAAE,KAAKD,EAAE,UAAS;AAAA,IAAE;AAAC,UAAM,IAAE,SAASH,GAAE;AAAC,YAAMC,IAAE6Q;AAAK,UAAI5Q,IAAE;AAAK,eAAQC,IAAE,GAAEA,IAAEH,EAAE,QAAOG,KAAI;AAAC,cAAMC,IAAEJ,EAAEG,CAAC,GAAEE,IAAEsI,GAAGvI,CAAC;AAAE,YAAGC,KAAGqG,GAAGtG,CAAC,KAAGA,EAAE,SAAQ,KAAIwH,EAAGxH,CAAC,KAAGA,EAAE,SAAQ,KAAI2G,EAAG3G,CAAC,KAAGA,EAAE,iBAAgB,GAAG;AAAC,cAAUF,MAAP,SAAWA,IAAEE,EAAE,wBAAuB,GAAGH,EAAE,OAAOC,CAAC,GAAEG,GAAG;AAAS,UAAOH,MAAP,QAAUA,EAAE,OAAOE,CAAC;AAAA,QAAC,MAAM,CAAAH,EAAE,OAAOG,CAAC,GAAEF,IAAE;AAAA,MAAI;AAAC,aAAOD;AAAA,IAAC,EAAE,CAAC,GAAE,IAAE,EAAE,qBAAoB,IAAE,EAAE,YAAW,GAAGM,IAAE,CAACqH,EAAG1H,CAAC,KAAG,CAACA,EAAE,YAAU,KAAK,oBAAkB,MAAKM,IAAE,EAAE,EAAE,SAAO,CAAC;AAAE,QAAIC,IAAE,EAAE,CAAC;AAAE,QAAIC;AAAE,IAAAkH,EAAGlH,IAAED,CAAC,KAAGuL,GAAGtL,CAAC,KAAG,CAACA,EAAE,QAAO,KAAIkH,EAAG1H,CAAC,MAAI,CAACA,EAAE,QAAO,KAAIA,EAAE,kBAAiB,OAAM0H,EAAG1H,CAAC,KAAGuF,EAAG,KAAI,EAAE,YAAY,MAAK,EAAE,QAAO,CAAE,GAAEvF,EAAE,OAAO,GAAGO,EAAE,YAAW,CAAE,GAAEA,IAAE,EAAE,CAAC,IAAGA,MAAWP,MAAP,QAAUuF,EAAG,KAAI,EAAE,YAAY,MAAK,EAAE,SAAS,GAAE,SAASzF,GAAEC,GAAEC,GAAE;AAAC,YAAMC,IAAEF,EAAE,iBAAgB,EAAG,aAAY;AAAG,UAAIG,IAAEH;AAAE,YAAMI,IAAE,CAACJ,CAAC;AAAE,aAAKG,MAAID,IAAG,CAAAC,EAAE,oBAAkBqF,EAAG,GAAG,GAAErF,IAAEA,EAAE,eAAc,GAAGC,EAAE,KAAKD,CAAC;AAAE,UAAIE,IAAEN;AAAE,iBAAUA,KAAKK,EAAE,CAAAC,IAAEA,EAAE,YAAYN,CAAC;AAAA,IAAC,EAAEE,GAAEO,CAAC;AAAG,UAAME,IAAEsL,GAAG,GAAED,EAAE;AAAE,IAAAzL,KAAGqH,EAAGjH,CAAC,MAAIJ,EAAE,kBAAiB,KAAIyL,GAAGxL,CAAC,OAAKG,EAAE,OAAO,GAAGJ,EAAE,YAAW,CAAE,GAAEA,EAAE,OAAM,IAAIqH,EAAG1H,CAAC,KAAGA,EAAE,QAAO,KAAIA,EAAE,OAAM,GAAG,EAAE,UAAS;AAAG,UAAM,IAAE0H,EAAG1H,CAAC,IAAEA,EAAE,aAAY,IAAG;AAAK,IAAAyI,GAAG,CAAC,KAAGhI,MAAIT,KAAG,EAAE,OAAM;AAAA,EAAE;AAAA,EAAC,kBAAiB;AAAC,QAAY,KAAK,OAAO,QAArB,QAAyB;AAAC,YAAMF,IAAE8Q,GAAE;AAAG,aAAOvH,GAAE,EAAG,OAAO,KAAK,OAAO,QAAO,GAAE,CAACvJ,CAAC,CAAC,GAAEA,EAAE,OAAM,GAAGA;AAAA,IAAC;AAAC,UAAM,IAAEiT,GAAG,IAAI,GAAE,IAAEhH,GAAG,KAAK,OAAO,QAAO,GAAGD,EAAE;AAAE,IAAApE,EAAG,CAAC,KAAGnC,EAAG,GAAG;AAAE,UAAMvF,IAAE,EAAE,gBAAgB,CAAC,GAAEC,IAAED,IAAE,CAACA,GAAE,GAAGA,EAAE,iBAAiB,IAAE,CAAA,GAAG,IAAE,EAAE,eAAe,MAAK,EAAE;AAAE,WAAO,KAAG,EAAE,OAAO,GAAGC,CAAC,GAAE,EAAE,YAAW,GAAG,KAAG;AAAA,EAAI;AAAA,EAAC,gBAAgB,GAAE;AAAC,UAAM,IAAE+Q,GAAE;AAAG,QAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAE,GAAE;AAAC,YAAMlR,IAAE,EAAE,iBAAgB,GAAGE,IAAE,EAAE;AAAuB,MAAAF,EAAE,OAAOE,GAAEA,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,UAAS;AAAC,UAAM,IAAE,KAAK,YAAW,IAAE,EAAE,QAAOA,IAAE,IAAE,GAAEC,IAAE,KAAK,QAAO,IAAE,KAAK;AAAM,QAAI,IAAE,EAAE,CAAC,GAAE,IAAE,EAAED,CAAC;AAAE,UAAK,CAACK,GAAEC,CAAC,IAAEsS,GAAG,IAAI;AAAE,QAAO,MAAJ,EAAM,QAAM,CAAA;AAAG,QAAO,MAAJ,GAAM;AAAC,UAAG/L,EAAG,CAAC,KAAG,CAAC,KAAK,YAAW,GAAG;AAAC,cAAM/G,IAAEO,IAAEC,IAAEA,IAAED,GAAEN,IAAEM,IAAEC,IAAED,IAAEC,GAAEN,IAAE,EAAE,UAAUF,GAAEC,CAAC,GAAEE,IAAMH,MAAJ,IAAME,EAAE,CAAC,IAAEA,EAAE,CAAC;AAAE,eAAaC,KAAN,OAAQ,CAACA,CAAC,IAAE,CAAA;AAAA,MAAE;AAAC,aAAM,CAAC,CAAC;AAAA,IAAC;AAAC,UAAMM,IAAEN,EAAE,SAAS,CAAC;AAAE,QAAG4G,EAAG,CAAC,GAAE;AAAC,YAAM9G,IAAEQ,IAAEF,IAAEC;AAAE,MAAAP,MAAI,EAAE,mBAAkB,IAAG,EAAE,MAAK,IAAOA,MAAJ,MAAQ,GAAE,CAAC,IAAE,EAAE,UAAUA,CAAC,GAAE,EAAE,CAAC,IAAE;AAAA,IAAE;AAAC,QAAG8G,EAAG,CAAC,GAAE;AAAC,YAAM9G,IAAE,EAAE,iBAAiB,QAAOE,IAAEM,IAAED,IAAED;AAAE,MAAIJ,MAAJ,IAAM,EAAE,IAAG,IAAGA,MAAIF,MAAI,CAAC,CAAC,IAAE,EAAE,UAAUE,CAAC,GAAE,EAAED,CAAC,IAAE;AAAA,IAAE;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE,GAAEA,GAAE;AAAC,UAAMC,IAAE,KAAK,OAAM,IAAE,KAAK,QAAO,IAAW,MAAT,QAAW,IAAE0K,GAAG1K,GAAE,CAAC;AAAE,QAAGuG,GAAG,CAAC,KAAG,CAAC,EAAE,cAAa;AAAC,UAAG,KAAG,EAAE,qBAAoB,GAAG;AAAC,cAAM1G,IAAEkT;AAAK,eAAOlT,EAAE,IAAI,EAAE,KAAK,GAAE,KAAKiH,GAAGjH,CAAC;AAAA,MAAC;AAAC,YAAMA,IAAE,IAAE,EAAE,mBAAkB,IAAG,EAAE,eAAc;AAAG,UAAG+G,EAAG/G,CAAC,GAAE;AAAC,cAAME,IAAEF,EAAE,OAAMM,IAAE,IAAEN,EAAE,iBAAiB,SAAO;AAAE,eAAOG,EAAE,IAAID,GAAEI,GAAE,MAAM,GAAE,MAAK,KAAG,EAAE,IAAIJ,GAAEI,GAAE,MAAM;AAAA,MAAE;AAAC;AAAC,cAAMJ,IAAE,EAAE,iBAAgB;AAAG,YAAIK,GAAEC;AAAE,eAAOoH,EAAG5H,CAAC,KAAGQ,IAAER,EAAE,OAAMO,IAAE,IAAEP,EAAE,gBAAe,IAAG,MAAIO,IAAE,EAAE,wBAAuBC,IAAEN,EAAE,OAAM,KAAGK,MAAKJ,EAAE,IAAIK,GAAED,GAAE,SAAS,GAAE,MAAK,KAAG,EAAE,IAAIC,GAAED,GAAE,SAAS;AAAA,MAAE;AAAA,IAAC;AAAC,UAAMA,IAAEiH,GAAE,GAAGhH,IAAE0F,GAAG3F,EAAE,OAAO;AAAE,QAAG,CAACC,EAAE;AAAO,UAAMC,IAAEF,EAAE,qBAAoBG,IAAEH,EAAE;AAAa,QAAUG,MAAP,QAAiBD,MAAP,QAAU,CAACmH,EAAG,CAAC,KAAG,EAAE,SAAQ,KAAI,EAAE,WAAU,KAAI6D,GAAGhL,GAAEF,GAAEG,CAAC,GAAE,SAASV,GAAEC,GAAEC,GAAEC,GAAE;AAAC,MAAAH,EAAE,OAAOC,GAAEC,GAAEC,CAAC;AAAA,IAAC,EAAEK,GAAE,GAAE,IAAE,aAAW,WAAUN,CAAC,GAAEM,EAAE,aAAW,GAAE;AAAC,YAAMR,IAAEQ,EAAE,WAAW,CAAC,GAAEN,IAAE,KAAK,OAAO,WAAUC,IAAE8K,GAAG/K,CAAC,IAAEA,IAAEkL,GAAGlL,CAAC;AAAE,UAAG,KAAK,cAAcF,CAAC,GAAE,KAAK,QAAM,IAAG,CAAC,GAAE;AAAC,cAAME,IAAE,KAAK,SAAQ,GAAGE,IAAE,CAAA;AAAG,YAAIC,IAAE;AAAG,iBAAQL,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,gBAAMC,IAAEC,EAAEF,CAAC;AAAE,UAAAmL,GAAGlL,GAAEE,CAAC,IAAEC,EAAE,KAAKH,CAAC,IAAEI,IAAE;AAAA,QAAE;AAAC,YAAGA,KAAGD,EAAE,SAAO,EAAE,KAAG,GAAE;AAAC,gBAAMJ,IAAEI,EAAE,CAAC;AAAE,UAAAwH,EAAG5H,CAAC,IAAEA,EAAE,YAAW,IAAGA,EAAE,iBAAgB,EAAG;QAAa,OAAK;AAAC,gBAAMA,IAAEI,EAAEA,EAAE,SAAO,CAAC;AAAE,UAAAwH,EAAG5H,CAAC,IAAEA,EAAE,UAAS,IAAGA,EAAE,iBAAgB,EAAG,UAAS;AAAA,QAAE;AAAC,QAAAQ,EAAE,eAAaR,EAAE,kBAAgBQ,EAAE,iBAAeR,EAAE,eAAa,SAASA,GAAE;AAAC,gBAAMC,IAAED,EAAE,OAAME,IAAEF,EAAE,QAAOG,IAAED,EAAE,KAAIE,IAAEF,EAAE,QAAOG,IAAEH,EAAE;AAAK,UAAAyS,GAAGzS,GAAED,EAAE,KAAIA,EAAE,QAAOA,EAAE,IAAI,GAAE0S,GAAG1S,GAAEE,GAAEC,GAAEC,CAAC,GAAEL,EAAE,eAAa;AAAA,QAAI,EAAE,IAAI;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,gBAAgB,GAAE,GAAEE,GAAE;AAAC,QAAG,CAACA,MAAgB,EAAE,SAAd,aAAoB0H,EAAG,CAAC,KAAG,EAAE,WAAS,EAAE,qBAA4B,EAAE,SAAX,UAAiB,EAAE,WAAS,EAAE,mBAAkB,IAAI;AAAC,YAAM5H,IAAE,EAAE,UAAS,GAAGE,IAAE,EAAE,eAAc,MAAYF,MAAP,OAAS,OAAKA,EAAE,eAAc;AAAI,UAAG4H,EAAG1H,CAAC,KAAGA,EAAE,eAAe;IAAQ;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,gBAAgB,GAAE;AAAC,UAAMA,IAAE,KAAK,YAAW;AAAG,QAAG,KAAK,YAAW,GAAG;AAAC,YAAMA,IAAE,KAAK;AAAO,UAAIC,IAAED,EAAE,QAAO;AAAG,UAAG,KAAK,gBAAgBA,GAAEC,GAAE,CAAC,EAAE;AAAO,YAAM,IAAE,KAAK,OAAM,IAAE0K,GAAG,GAAE,CAAC;AAAE,UAAGnE,GAAG,CAAC,KAAG,CAAC,EAAE,WAAU,GAAG;AAAC,YAAG,EAAE,qBAAoB,KAAIkB,EAAGzH,CAAC,KAAOA,EAAE,sBAAN,GAAwB;AAAC,UAAAA,EAAE;AAAS,gBAAMH,IAAEkT,GAAE;AAAG,UAAAlT,EAAE,IAAI,EAAE,KAAK,GAAEiH,GAAGjH,CAAC;AAAA,QAAC;AAAM,YAAE,OAAM,GAAGwH,GAAE,EAAG,gBAAgBvH,IAAE,MAAM;AAAE;AAAA,MAAM;AAAC,UAAG,CAAC,KAAG2H,EAAG,CAAC,KAAGA,EAAGzH,CAAC,KAAGA,EAAE,QAAO,EAAG,QAAOA,EAAE,OAAM,GAAG,KAAK,EAAE,YAAW;AAAG,UAAG,KAAK,OAAO,UAAS,GAAE,WAAW,GAAE,KAAK,YAAW;AAAI,YAAG,KAAOD,EAAE,WAAN,MAA8BA,EAAE,SAAd,YAAmBA,EAAE,QAAO,IAAGA,EAAE,QAAO,EAAG,oBAAoB,gBAAgB,IAAI;AAAE;AAAA,aAAY;AAAC,cAAMD,IAAW,EAAE,SAAX,SAAgB,EAAE,YAAU;AAAK,YAAGE,IAAWD,EAAE,SAAX,SAAgBA,EAAE,QAAO,IAAG,MAAYD,MAAP,QAAUA,EAAE,YAAW,GAAG;AAAC,gBAAMC,IAAE,EAAE,QAAOG,IAAEJ,EAAE;AAAqB,cAAGA,EAAE,GAAGE,CAAC,KAAG,KAAGD,MAAIG,KAAG,CAAC,KAAOH,MAAJ,EAAM,QAAO,KAAKiT,GAAGlT,GAAE,GAAEC,CAAC;AAAA,QAAC,WAAgBC,MAAP,QAAUA,EAAE,YAAW,GAAG;AAAC,gBAAMC,IAAEF,EAAE,QAAOG,IAAEF,EAAE,mBAAkB;AAAG,cAAGA,EAAE,GAAGF,CAAC,KAAG,KAAOG,MAAJ,KAAO,CAAC,KAAGA,MAAIC,EAAE,QAAO,KAAK8S,GAAGhT,GAAE,GAAEC,CAAC;AAAA,QAAC;AAAC,SAAC,SAASJ,GAAEC,GAAE;AAAC,gBAAMC,IAAEF,EAAE,QAAOG,IAAEH,EAAE,OAAMI,IAAEF,EAAE,WAAUG,IAAEF,EAAE,QAAO;AAAG,cAAGC,MAAIC,KAAYH,EAAE,SAAX,UAA0BC,EAAE,SAAX,QAAgB;AAAC,kBAAMH,IAAEE,EAAE,QAAOG,IAAEF,EAAE,QAAOG,IAAEN,IAAEK,GAAEE,IAAED,IAAEN,IAAEK,GAAEG,IAAEF,IAAED,IAAEL,GAAES,IAAED,IAAE;AAAE,YAAGD,MAAIE,MAAGiJ,GAAGtJ,EAAE,eAAc,EAAG,MAAMG,GAAEC,CAAC,CAAC,MAAIP,IAAEE,EAAE,SAAOM,IAAEP,EAAE,SAAOO;AAAA,UAAG;AAAA,QAAC,GAAE,MAAK,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,QAAG,KAAK,WAAU,GAAG,KAAG,CAACP,KAAG,KAAK,YAAW,KAAgB,KAAK,OAAO,SAAxB,aAAkC,KAAK,OAAO,WAAhB,GAAuB;AAAC,YAAMF,IAAE,KAAK,OAAO,QAAO;AAAG,MAAAA,EAAE,QAAO,KAAIiL,GAAGjL,EAAE,WAAW,KAAOA,EAAE,2BAAN,KAA8BA,EAAE,gBAAgB,IAAI;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE;AAAC,QAAG,KAAK,YAAW,GAAG;AAAC,YAAM,IAAc,KAAK,OAAO,SAAxB;AAA6B,UAAG,KAAG,KAAK,WAAW,GAAG,GAAE,KAAK,OAAO,UAAS,GAAE,cAAc,GAAE,KAAK,YAAW,KAAQ,KAAK,OAAO,WAAhB,KAAwB,KAAK,OAAO,UAAS,GAAE,WAAW,GAAE,GAAE;AAAC,cAAMC,IAAE,IAAE,KAAK,SAAO,KAAK;AAAM,QAAAA,EAAE,IAAIA,EAAE,KAAIA,EAAE,SAAO,GAAEA,EAAE,IAAI;AAAA,MAAC;AAAA,IAAC;AAAC,SAAK,WAAU;AAAA,EAAE;AAAA,EAAC,WAAW,GAAE;AAAC,QAAG,KAAK,eAAc;AAAC,YAAM,IAAE,KAAK,QAAOC,IAAE,EAAE;AAAU,UAAG,KAAK,gBAAgB,GAAEA,GAAE,CAAC,EAAE;AAAO,WAAK,OAAO,UAAS,GAAE,MAAM;AAAA,IAAC;AAAC,SAAK,WAAU;AAAA,EAAE;AAAA,EAAC,aAAY;AAAC,WAAO,KAAK,MAAM,SAAS,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,WAAM,CAAC,KAAK,QAAO,KAAK,KAAK;AAAA,EAAC;AAAC;AAAC,SAASwQ,GAAG1Q,GAAE;AAAC,SAAOA,aAAa4S;AAAE;AAAC,SAASQ,GAAGpT,GAAE;AAAC,QAAMC,IAAED,EAAE;AAAO,MAAYA,EAAE,SAAX,OAAgB,QAAOC;AAAE,QAAMC,IAAEF,EAAE,QAAO;AAAG,SAAOC,MAAIC,EAAE,gBAAe,IAAGA,EAAE,eAAc,EAAG,SAAO;AAAC;AAAC,SAAS4S,GAAG9S,GAAE;AAAC,QAAMC,IAAED,EAAE,kBAAiB;AAAG,MAAUC,MAAP,KAAS,QAAM,CAAC,GAAE,CAAC;AAAE,QAAK,CAACC,GAAE,CAAC,IAAED;AAAE,SAAkBC,EAAE,SAAd,aAAgC,EAAE,SAAd,aAAoBA,EAAE,QAAM,EAAE,OAAKA,EAAE,WAAS,EAAE,SAAO,CAAC,GAAE,CAAC,IAAE,CAACkT,GAAGlT,CAAC,GAAEkT,GAAG,CAAC,CAAC;AAAC;AAAC,SAASD,GAAGnT,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEF,GAAEI,IAAE,EAAE,eAAc,EAAG,MAAM,SAAS,GAAEC,IAAED,EAAE;AAAO,MAAIE,IAAE,GAAEC,IAAE;AAAE,WAAQP,IAAE,GAAEA,IAAEK,GAAEL,KAAI;AAAC,UAAMG,IAAEH,MAAIK,IAAE;AAAE,QAAGE,IAAED,GAAEA,KAAGF,EAAEJ,CAAC,EAAE,QAAOC,KAAGK,MAAIJ,KAAGI,IAAEJ,KAAGC,GAAE;AAAC,MAAAC,EAAE,OAAOJ,GAAE,CAAC,GAAEG,MAAII,IAAE;AAAQ;AAAA,IAAK;AAAA,EAAC;AAAC,QAAMC,IAAEJ,EAAE,KAAK,EAAE,EAAE,KAAI;AAAG,EAAKI,MAAL,KAAO,EAAE,YAAU,EAAE,eAAeA,CAAC,GAAE,EAAE,OAAOD,GAAEA,CAAC;AAAE;AAAC,SAAS8S,GAAGrT,GAAEC,GAAEC,GAAE,GAAE;AAAC,MAAIE,GAAEC,IAAEJ;AAAE,MAAGD,EAAE,aAAWyD,IAAG;AAAC,QAAInD,IAAE;AAAG,UAAMC,IAAEP,EAAE,YAAWQ,IAAED,EAAE,QAAOE,IAAE,EAAE;AAAoB,IAAAJ,MAAIG,MAAIF,IAAE,IAAGD,IAAEG,IAAE;AAAG,QAAIE,IAAEH,EAAEF,CAAC,GAAEM,IAAE;AAAG,QAAGD,MAAID,EAAE,CAAAC,IAAEH,EAAEF,IAAE,CAAC,GAAEM,IAAE;AAAA,aAAkBF,MAAP,MAAS;AAAC,YAAMP,IAAEO,EAAE;AAAW,MAAGT,MAAIE,KAAGD,IAAE,MAAM,UAAU,QAAQ,KAAKC,EAAE,UAASO,CAAC,KAAGJ;AAAA,IAAI;AAAC,QAAGD,IAAEoJ,GAAG9I,CAAC,GAAEqG,EAAG3G,CAAC,EAAE,CAAAC,IAAEoJ,GAAGrJ,GAAEE,CAAC;AAAA,SAAM;AAAC,UAAIC,IAAEiJ,GAAGxJ,CAAC;AAAE,UAAUO,MAAP,KAAS,QAAO;AAAK,UAAGqH,EAAGrH,CAAC,GAAE;AAAC,cAAMC,IAAE,EAAE,gBAAgBD,EAAE,OAAM,CAAE;AAAE,QAAOC,MAAP,QAAUiF,EAAG,GAAG,GAA0B,CAAClF,GAAEF,CAAC,IAApBE,EAAE,WAAWC,CAAC,EAAU,kBAAkBD,GAAEC,GAAER,GAAEC,CAAC,GAAE2H,EAAGrH,CAAC,KAAGkF,EAAG,GAAG,GAAEnF,KAAGD,KAAGE,EAAE,sBAAoBF,IAAE,KAAK,IAAI,GAAEE,EAAE,gBAAe,IAAG,CAAC;AAAG,YAAIG,IAAEH,EAAE,gBAAgBF,CAAC;AAAE,YAAGuH,EAAGlH,CAAC,KAAG,SAASV,GAAEC,GAAEC,GAAE;AAAC,gBAAMC,IAAEH,EAAE,UAAS;AAAG,iBAAcE,MAAP,QAAiBC,MAAP,QAAU,CAACA,EAAE,WAAU,KAAIA,MAAID,EAAE,QAAO;AAAA,QAAE,EAAEQ,GAAE,GAAER,CAAC,GAAE;AAAC,gBAAMF,IAAEM,IAAEI,EAAE,kBAAiB,IAAGA,EAAE,mBAAkB;AAAG,UAAOV,MAAP,OAASO,IAAEG,KAAGA,IAAEV,GAAEO,IAAEqH,EAAGlH,CAAC,IAAEA,IAAEA,EAAE,iBAAgB,IAAIL,IAAE;AAAA,QAAC;AAAC,QAAA0G,EAAGrG,CAAC,KAAGN,IAAEM,GAAEH,IAAE,MAAKF,IAAEoJ,GAAG/I,GAAEJ,CAAC,KAAGI,MAAIH,KAAGD,KAAG,CAACK,MAAIiH,EAAGrH,CAAC,KAAGkF,EAAG,GAAG,GAAEpF,IAAE,KAAK,IAAIE,EAAE,mBAAkBF,IAAE,CAAC;AAAA,MAAE,OAAK;AAAC,cAAMH,IAAEK,EAAE;AAAuB,QAAAF,IAAMJ,MAAJ,KAAOyG,GAAGnG,CAAC,KAAGiJ,GAAGxJ,CAAC,MAAIO,IAAEL,IAAEA,IAAE,GAAEK,IAAEA,EAAE,iBAAgB;AAAA,MAAE;AAAC,UAAGqH,EAAGrH,CAAC,EAAE,QAAOkS,GAAGlS,EAAE,OAAMF,GAAE,SAAS;AAAA,IAAC;AAAA,EAAC,MAAM,CAAAD,IAAEoJ,GAAGxJ,CAAC;AAAE,SAAO+G,EAAG3G,CAAC,IAAEqS,GAAGrS,EAAE,OAAMC,GAAE,MAAM,IAAE;AAAI;AAAC,SAASiT,GAAGtT,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEF,EAAE,QAAOI,IAAEJ,EAAE;AAAU,MAAO,MAAJ,GAAM;AAAC,UAAMG,IAAEC,EAAE,mBAAkB,GAAG,IAAEA,EAAE;AAAY,QAAGH;AAAG,WAAIC,KAAG,CAACD,MAAWE,MAAP,QAAUyH,EAAG,CAAC,KAAG,EAAE,SAAQ,GAAG;AAAC,cAAM3H,IAAE,EAAE;AAAqB,QAAA8G,EAAG9G,CAAC,MAAID,EAAE,MAAIC,EAAE,OAAMD,EAAE,SAAOC,EAAE,eAAc,EAAG;AAAA,MAAO;AAAA,UAAO,CAAA2H,EAAGzH,CAAC,KAAG,CAACD,KAAGC,EAAE,SAAQ,KAAIH,EAAE,MAAIG,EAAE,OAAMH,EAAE,SAAOG,EAAE,mBAAkBH,EAAE,OAAK,aAAW+G,EAAG5G,CAAC,MAAIH,EAAE,MAAIG,EAAE,OAAMH,EAAE,SAAOG,EAAE,eAAc,EAAG;AAAA,EAAO,WAAS,MAAIC,EAAE,eAAc,EAAG,QAAO;AAAC,UAAMD,IAAEC,EAAE,eAAc,GAAG,IAAEA,EAAE,UAAS;AAAG,QAAGH,KAAG2H,EAAGzH,CAAC,KAAGA,EAAE,SAAQ,EAAG,CAAAH,EAAE,MAAIG,EAAE,OAAMH,EAAE,SAAO,GAAEA,EAAE,OAAK;AAAA,cAAmBE,KAAGD,MAAWE,MAAP,QAAUyH,EAAG,CAAC,KAAG,EAAE,SAAQ,KAAI,CAAC,EAAE,mBAAkB,GAAG;AAAC,YAAM3H,IAAE,EAAE,eAAc;AAAG,MAAA8G,EAAG9G,CAAC,MAAID,EAAE,MAAIC,EAAE,OAAMD,EAAE,SAAO;AAAA,IAAE;AAAA,EAAC;AAAC;AAAC,SAASgT,GAAGhT,GAAEC,GAAEC,GAAE;AAAC,MAAYF,EAAE,SAAX,UAA0BC,EAAE,SAAX,QAAgB;AAAC,UAAM,IAAED,EAAE,SAASC,CAAC,GAAEG,IAAEJ,EAAE,GAAGC,CAAC;AAAE,IAAAqT,GAAGtT,GAAE,GAAEI,CAAC,GAAEkT,GAAGrT,GAAE,CAAC,GAAEG,CAAC,GAAEA,MAAIH,EAAE,MAAID,EAAE,KAAIC,EAAE,SAAOD,EAAE,QAAOC,EAAE,OAAKD,EAAE;AAAM,UAAMK,IAAEmH,GAAE;AAAG,QAAGnH,EAAE,iBAAeA,EAAE,oBAAkBL,EAAE,OAAKqG,EAAGnG,CAAC,GAAE;AAAC,YAAMC,IAAED,EAAE,QAAOE,IAAEF,EAAE;AAAM,MAAAyS,GAAG3S,GAAEG,EAAE,KAAIA,EAAE,QAAOA,EAAE,IAAI,GAAEwS,GAAG1S,GAAEG,EAAE,KAAIA,EAAE,QAAOA,EAAE,IAAI;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,SAAS2S,GAAG/S,GAAEC,GAAEC,GAAE,GAAEE,GAAEC,GAAE;AAAC,MAAUL,MAAP,QAAiBE,MAAP,QAAU,CAACgI,GAAG9H,GAAEJ,GAAEE,CAAC,EAAE,QAAO;AAAK,QAAMI,IAAE+S,GAAGrT,GAAEC,GAAEoG,EAAGhG,CAAC,IAAEA,EAAE,SAAO,MAAKD,CAAC;AAAE,MAAUE,MAAP,KAAS,QAAO;AAAK,QAAMC,IAAE8S,GAAGnT,GAAE,GAAEmG,EAAGhG,CAAC,IAAEA,EAAE,QAAM,MAAKD,CAAC;AAAE,MAAUG,MAAP,KAAS,QAAO;AAAK,MAAeD,EAAE,SAAd,aAAgCC,EAAE,SAAd,WAAmB;AAAC,UAAMN,IAAEuJ,GAAGxJ,CAAC,GAAEG,IAAEqJ,GAAGtJ,CAAC;AAAE,QAAGwG,GAAGzG,CAAC,KAAGyG,GAAGvG,CAAC,EAAE,QAAO;AAAA,EAAI;AAAC,SAAO6S,GAAG1S,GAAEC,GAAEF,CAAC,GAAE,CAACC,GAAEC,CAAC;AAAC;AAAC,SAASgT,GAAGvT,GAAE;AAAC,SAAO4H,EAAG5H,CAAC,KAAG,CAACA,EAAE,SAAQ;AAAE;AAAC,SAAS8R,GAAG9R,GAAEC,GAAEC,GAAE,GAAEE,GAAEC,GAAE;AAAC,QAAMC,IAAEyI,MAAKxI,IAAE,IAAIsS,GAAGJ,GAAGzS,GAAEC,GAAEG,CAAC,GAAEqS,GAAGvS,GAAE,GAAEG,CAAC,GAAE,GAAE,EAAE;AAAE,SAAOE,EAAE,QAAM,IAAGD,EAAE,aAAWC,GAAEA;AAAC;AAAC,SAASiT,KAAI;AAAC,QAAMxT,IAAEyS,GAAG,QAAO,GAAE,SAAS,GAAExS,IAAEwS,GAAG,QAAO,GAAE,SAAS;AAAE,SAAO,IAAII,GAAG7S,GAAEC,GAAE,GAAE,EAAE;AAAC;AAAC,SAASiT,KAAI;AAAC,SAAO,IAAIN,GAAG,oBAAI,KAAG;AAAC;AAA2C,SAASlD,GAAG1P,GAAEC,GAAEC,GAAE,GAAE;AAAC,QAAME,IAAEF,EAAE;AAAQ,MAAUE,MAAP,KAAS,QAAO;AAAK,QAAMC,IAAE,KAAGD,EAAE,OAAME,IAAED,IAAEA,EAAE,OAAK,QAAOE,IAAsBD,MAApB,mBAAsBE,IAAE,CAACoF,OAAKrF,KAAmBD,MAAhB,iBAAwCA,MAArB,sBAA2CA,MAAnB,oBAAgCA,MAAV,WAAaD,KAAOA,EAAE,WAAN,KAAuBC,MAAT,UAAqBA,MAAT;AAAY,MAAIG,GAAEC,GAAEC,GAAEC;AAAE,MAAGyF,EAAGrG,CAAC,KAAG,CAACQ,EAAE,QAAOR,EAAE;AAAQ,MAAUC,MAAP,KAAS,QAAO;AAAK,MAAGQ,IAAER,EAAE,YAAWS,IAAET,EAAE,WAAUU,IAAEV,EAAE,cAAaW,IAAEX,EAAE,aAAYM,KAAG8F,EAAGrG,CAAC,KAAG,CAACkI,GAAGhI,GAAEO,GAAEC,CAAC,EAAE,QAAOV,EAAE,MAAK;AAAG,QAAMa,IAAEkS,GAAGtS,GAAEE,GAAED,GAAEE,GAAEV,GAAEF,CAAC;AAAE,MAAUa,MAAP,KAAS,QAAO;AAAK,QAAK,CAACC,GAAEC,CAAC,IAAEF;AAAE,SAAO,IAAIgS,GAAG/R,GAAEC,GAAEsF,EAAGrG,CAAC,IAAEA,EAAE,SAAO,GAAEqG,EAAGrG,CAAC,IAAEA,EAAE,QAAM,EAAE;AAAC;AAAC,SAAS8G,IAAI;AAAC,SAAOiC,KAAK;AAAU;AAAC,SAASgB,KAAI;AAAC,SAAOvC,KAAK,aAAa;AAAU;AAAC,SAASmJ,GAAG3Q,GAAEC,GAAEC,GAAE,IAAE,GAAE;AAAC,QAAME,IAAEJ,EAAE,QAAOK,IAAEL,EAAE,OAAMM,IAAEF,EAAE,QAAO,GAAGG,IAAEF,EAAE;AAAU,MAAG,CAACJ,EAAE,GAAGK,CAAC,KAAG,CAACL,EAAE,GAAGM,CAAC,EAAE;AAAO,QAAMC,IAAEP,EAAE;AAAM,MAAGD,EAAE,YAAW,GAAG;AAAC,UAAMC,IAAEG,EAAE;AAAO,QAAGF,KAAGD,KAAG,IAAE,KAAGC,IAAED,KAAG,IAAE,GAAE;AAAC,YAAMC,IAAE,KAAK,IAAI,GAAED,IAAE,CAAC;AAAE,MAAAG,EAAE,IAAII,GAAEN,GAAE,SAAS,GAAEG,EAAE,IAAIG,GAAEN,GAAE,SAAS,GAAEuT,GAAGzT,CAAC;AAAA,IAAC;AAAA,EAAC,OAAK;AAAC,UAAMM,IAAEN,EAAE,WAAU,GAAGO,IAAED,IAAED,IAAED,GAAEK,IAAEF,EAAE,QAAO,GAAGG,IAAEJ,IAAEF,IAAEC,GAAEM,IAAED,EAAE,QAAO;AAAG,QAAGT,EAAE,GAAGQ,CAAC,GAAE;AAAC,YAAMT,IAAEO,EAAE;AAAO,OAACL,KAAGF,KAAG,IAAE,KAAGE,IAAEF,KAAG,IAAE,MAAIO,EAAE,IAAIC,GAAE,KAAK,IAAI,GAAER,IAAE,CAAC,GAAE,SAAS;AAAA,IAAC;AAAC,QAAGC,EAAE,GAAGU,CAAC,GAAE;AAAC,YAAMX,IAAEU,EAAE;AAAO,OAACR,KAAGF,KAAG,IAAE,KAAGE,IAAEF,KAAG,IAAE,MAAIU,EAAE,IAAIF,GAAE,KAAK,IAAI,GAAER,IAAE,CAAC,GAAE,SAAS;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAyT,GAAGzT,CAAC;AAAC;AAAC,SAASyT,GAAGzT,GAAE;AAAC,QAAMC,IAAED,EAAE,QAAOE,IAAED,EAAE,QAAO,IAAED,EAAE,OAAMI,IAAE,EAAE,QAAOC,IAAEJ,EAAE,WAAUK,IAAE,EAAE,QAAO;AAAG,MAAGN,EAAE,YAAW,GAAG;AAAC,QAAG,CAAC4H,EAAGvH,CAAC,EAAE;AAAO,UAAML,IAAEK,EAAE,gBAAe,GAAGD,IAAEF,KAAGF,GAAEM,IAAEF,IAAEC,EAAE,gBAAgBL,IAAE,CAAC,IAAEK,EAAE,gBAAgBH,CAAC;AAAE,QAAG6G,EAAGzG,CAAC,GAAE;AAAC,UAAIN,IAAE;AAAE,MAAAI,MAAIJ,IAAEM,EAAE,mBAAkB,IAAIL,EAAE,IAAIK,EAAE,OAAMN,GAAE,MAAM,GAAE,EAAE,IAAIM,EAAE,OAAMN,GAAE,MAAM;AAAA,IAAC;AAAA,EAAC,OAAK;AAAC,QAAG4H,EAAGvH,CAAC,GAAE;AAAC,YAAML,IAAEK,EAAE,gBAAe,GAAGF,IAAED,KAAGF,GAAEI,IAAED,IAAEE,EAAE,gBAAgBL,IAAE,CAAC,IAAEK,EAAE,gBAAgBH,CAAC;AAAE,UAAG6G,EAAG3G,CAAC,GAAE;AAAC,YAAIJ,IAAE;AAAE,QAAAG,MAAIH,IAAEI,EAAE,mBAAkB,IAAIH,EAAE,IAAIG,EAAE,OAAMJ,GAAE,MAAM;AAAA,MAAC;AAAA,IAAC;AAAC,QAAG4H,EAAGtH,CAAC,GAAE;AAAC,YAAMN,IAAEM,EAAE,gBAAe,GAAGL,IAAEG,KAAGJ,GAAEE,IAAED,IAAEK,EAAE,gBAAgBN,IAAE,CAAC,IAAEM,EAAE,gBAAgBF,CAAC;AAAE,UAAG2G,EAAG7G,CAAC,GAAE;AAAC,YAAIF,IAAE;AAAE,QAAAC,MAAID,IAAEE,EAAE,mBAAkB,IAAI,EAAE,IAAIA,EAAE,OAAMF,GAAE,MAAM;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,SAASyQ,GAAGzQ,GAAEC,GAAEC,GAAE,GAAEE,GAAE;AAAC,MAAIC,IAAE,MAAKC,IAAE,GAAEC,IAAE;AAAK,EAAO,MAAP,QAAUF,IAAE,EAAE,OAAM0G,EAAG,CAAC,KAAGzG,IAAE,EAAE,sBAAqBC,IAAE,UAAQqH,EAAG,CAAC,MAAItH,IAAE,EAAE,mBAAkBC,IAAE,cAAmBH,MAAP,SAAWC,IAAED,EAAE,OAAM2G,EAAG3G,CAAC,IAAEG,IAAE,SAAOqH,EAAGxH,CAAC,MAAIG,IAAE,aAAmBF,MAAP,QAAiBE,MAAP,OAASP,EAAE,IAAIK,GAAEC,GAAEC,CAAC,KAAGD,IAAEL,EAAE,qBAAoB,GAAQK,MAAL,OAASA,IAAEJ,EAAE,gBAAe,IAAIF,EAAE,IAAIE,EAAE,OAAMI,GAAE,SAAS;AAAE;AAAC,SAASyR,GAAG/R,GAAEC,GAAEC,GAAE,GAAEE,GAAE;AAAC,EAASJ,EAAE,SAAX,UAAiBA,EAAE,MAAIE,GAAED,MAAID,EAAE,UAAQI,MAAIJ,EAAE,SAAO,EAAE,qBAAoB,MAAKA,EAAE,UAAQ;AAAE;AAAC,SAAS0T,GAAG1T,GAAEC,GAAEC,GAAE,GAAEE,GAAEC,GAAEC,GAAE;AAAC,QAAMC,IAAE,EAAE,YAAWC,IAAE,EAAE,WAAUC,IAAE,EAAE,cAAaC,IAAE,EAAE,aAAYC,IAAE,SAAS;AAAc,MAAGP,EAAE,IAAI,eAAe,KAAGO,MAAIN,KAAUM,MAAP,QAAUoH,GAAGpH,CAAC,EAAE;AAAO,MAAG,CAAC0F,EAAGpG,CAAC,EAAE,QAAO,MAAYD,MAAP,QAAUkI,GAAGhI,GAAEK,GAAEC,CAAC,KAAG,EAAE,gBAAe;AAAI,QAAMI,IAAEX,EAAE,QAAOY,IAAEZ,EAAE,OAAMa,IAAEF,EAAE,KAAIG,IAAEF,EAAE,KAAIG,IAAEkK,GAAGhL,GAAEY,CAAC,GAAE,IAAEoK,GAAGhL,GAAEa,CAAC,GAAEG,IAAEN,EAAE,QAAOO,IAAEN,EAAE,QAAOO,IAAEnB,EAAE,QAAOoB,IAAEpB,EAAE,OAAMqB,IAAErB,EAAE,YAAW;AAAG,MAAIsB,IAAEP,GAAEQ,IAAE,GAAEC,IAAE;AAAG,MAAYb,EAAE,SAAX,QAAgB;AAAC,IAAAW,IAAEiH,GAAGxH,CAAC;AAAE,UAAMhB,IAAEY,EAAE,QAAO;AAAG,IAAAa,IAAEzB,EAAE,gBAAcoB,KAAGpB,EAAE,SAAQ,MAAKqB;AAAA,EAAC,MAAM,CAAAgF,EAAGrG,CAAC,KAAYA,EAAE,OAAO,SAAlB,WAAyByB,IAAE;AAAI,MAAIC,GAAEC,GAAEC,GAAEC,GAAEC;AAAE,MAAajB,EAAE,SAAX,WAAkBW,IAAEgH,GAAG,CAAC,IAAUjH,MAAP,QAAiBC,MAAP,SAAYF,MAAWtB,MAAP,QAAUyB,KAAG4E,EAAGrG,CAAC,MAAIA,EAAE,WAASoB,KAAGpB,EAAE,UAAQqB,QAAMK,IAAEN,GAAEO,IAAEN,GAAEO,IAAEV,GAAEW,IAAEf,GAAEgB,IAAE,YAAY,IAAG,GAAGgO,KAAG,CAACpO,GAAEC,GAAEC,GAAEC,GAAEC,CAAC,IAAGrB,MAAIS,KAAGR,MAAIS,KAAGZ,MAAIgB,KAAGf,MAAIgB,KAAa,EAAE,SAAZ,WAAkBF,MAAWX,MAAP,QAAUN,EAAE,SAASM,CAAC,KAAGN,EAAE,MAAM,EAAC,eAAc,GAAE,CAAC,GAAcO,EAAE,SAAd,aAAqB;AAAC,QAAG;AAAC,QAAE,iBAAiBW,GAAEL,GAAEM,GAAEL,CAAC;AAAA,IAAC,QAAS;AAAA,IAAC;AAAC,QAAG,CAACf,EAAE,IAAI,uBAAuB,KAAGH,EAAE,YAAW,KAAWI,MAAP,QAAUA,MAAI,SAAS,eAAc;AAAC,YAAML,IAAEC,aAAa4S,MAAgB5S,EAAE,OAAO,SAArB,YAA0BsB,EAAE,WAAWL,CAAC,KAAG,OAAK,EAAE,aAAW,IAAE,EAAE,WAAW,CAAC,IAAE;AAAK,UAAUlB,MAAP,MAAS;AAAC,YAAIC;AAAE,YAAGD,aAAa,MAAK;AAAC,gBAAME,IAAE,SAAS,YAAW;AAAG,UAAAA,EAAE,WAAWF,CAAC,GAAEC,IAAEC,EAAE,sBAAqB;AAAA,QAAE,MAAM,CAAAD,IAAED,EAAE;AAAwB,SAAC,SAASA,GAAEC,GAAEC,GAAE;AAAC,gBAAMC,KAAED,EAAE,eAAcE,KAAED,GAAE;AAAY,cAAUC,OAAP,KAAS;AAAO,cAAG,EAAC,KAAIC,IAAE,QAAOC,EAAC,IAAEL,GAAEM,IAAE,GAAEC,KAAE,GAAEC,IAAEP;AAAE,iBAAYO,MAAP,QAAU;AAAC,kBAAMR,IAAEQ,MAAIN,GAAE;AAAK,gBAAGF,EAAE,CAAAM,IAAE,GAAEC,KAAE6G,GAAGrH,CAAC,EAAE;AAAA,iBAAgB;AAAC,oBAAMA,KAAES,EAAE,sBAAqB;AAAG,cAAAF,IAAEP,GAAE,KAAIQ,KAAER,GAAE;AAAA,YAAM;AAAC,gBAAIE,KAAE;AAAE,gBAAGG,KAAEE,IAAEL,KAAE,EAAEK,IAAEF,MAAGC,IAAEE,OAAIN,KAAEI,IAAEE,KAAON,OAAJ,EAAM,KAAGD,EAAE,CAAAG,GAAE,SAAS,GAAEF,EAAC;AAAA,iBAAM;AAAC,oBAAMF,KAAES,EAAE;AAAU,cAAAA,EAAE,aAAWP;AAAE,oBAAMD,KAAEQ,EAAE,YAAUT;AAAE,cAAAK,MAAGJ,IAAEK,KAAGL;AAAA,YAAC;AAAC,gBAAGA,EAAE;AAAM,YAAAQ,IAAE+F,GAAG/F,CAAC;AAAA,UAAC;AAAA,QAAC,GAAEP,GAAED,GAAEI,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,IAAAwP,KAAG;AAAA,EAAE;AAAC;AAAC,SAAS8D,GAAG3T,GAAE;AAAC,MAAIC,IAAE6G,EAAE,KAAIiD,GAAE;AAAG,EAAO9J,MAAP,SAAWA,IAAEsJ,GAAE,EAAG,UAAS,IAAItJ,EAAE,YAAYD,CAAC;AAAC;AAAkE,SAASiT,GAAGjT,GAAE;AAAC,MAAIC,IAAED;AAAE,EAAAA,EAAE,YAAW,KAAIC,EAAE,WAAU;AAAG,QAAMC,IAAE4G,EAAE;AAAG,EAAAT,EAAGnG,CAAC,MAAID,IAAEC,IAAGmG,EAAGpG,CAAC,KAAGwF,EAAG,GAAG;AAAE,QAAM,IAAExF,EAAE;AAAO,MAAIG,IAAE,EAAE,QAAO,GAAGC,IAAE,EAAE;AAAO,SAAK,CAAC2L,GAAG5L,CAAC,IAAG,EAACA,GAAEC,CAAC,IAAEuT,GAAGxT,GAAEC,CAAC;AAAE,SAAOA;AAAC;AAAC,SAASuT,GAAG5T,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,UAAS;AAAG,MAAG,CAACE,GAAE;AAAC,UAAMF,IAAE8Q,GAAE;AAAG,WAAOvH,KAAK,OAAOvJ,CAAC,GAAEA,EAAE,UAAS,CAACuJ,GAAE,GAAG,CAAC;AAAA,EAAC;AAAC,MAAGxC,EAAG/G,CAAC,GAAE;AAAC,UAAMG,IAAEH,EAAE,UAAUC,CAAC;AAAE,QAAOE,EAAE,WAAN,EAAa,QAAM,CAACD,GAAEF,EAAE,qBAAoB,CAAE;AAAE,UAAM,IAAMC,MAAJ,IAAM,IAAE;AAAE,WAAM,CAACC,GAAEC,EAAE,CAAC,EAAE,qBAAoB,IAAG,CAAC;AAAA,EAAC;AAAC,MAAG,CAACyH,EAAG5H,CAAC,KAAOC,MAAJ,EAAM,QAAM,CAACC,GAAEF,EAAE,qBAAoB,CAAE;AAAE,QAAM,IAAEA,EAAE,gBAAgBC,CAAC;AAAE,MAAG,GAAE;AAAC,UAAMC,IAAE,IAAI2S,GAAGJ,GAAGzS,EAAE,OAAMC,GAAE,SAAS,GAAEwS,GAAGzS,EAAE,OAAMC,GAAE,SAAS,GAAE,GAAE,EAAE,GAAE,IAAED,EAAE,eAAeE,CAAC;AAAE,SAAG,EAAE,OAAO,GAAE,GAAG,EAAE,gBAAe,CAAE;AAAA,EAAC;AAAC,SAAM,CAACA,GAAEF,EAAE,qBAAoB,IAAG,CAAC;AAAC;AAAC,IAAI6T,KAAG,MAAKC,KAAG,MAAKC,KAAG,IAAGC,KAAG,IAAGC,KAAG;AAAE,MAAMC,KAAG,EAAC,eAAc,IAAG,WAAU,IAAG,SAAQ,GAAE;AAAE,SAAS9K,KAAI;AAAC,SAAO2K,MAAWF,OAAP,QAAWA,GAAG;AAAS;AAAC,SAAShL,KAAI;AAAC,EAAAkL,MAAItO,EAAG,EAAE;AAAC;AAAC,SAASqD,KAAI;AAAC,EAAAmL,KAAG,MAAIxO,EAAG,EAAE;AAAC;AAAC,SAASsD,KAAI;AAAC,SAAc8K,OAAP,QAAWpO,EAAG,KAAI0O,GAAE,CAAE,GAAEN;AAAE;AAAC,SAASrM,KAAI;AAAC,SAAcsM,OAAP,QAAWrO,EAAG,KAAI0O,GAAE,CAAE,GAAEL;AAAE;AAAC,SAASK,KAAI;AAAC,MAAInU,IAAE;AAAE,QAAMC,IAAE,oBAAI,OAAIC,IAAEmI,GAAG;AAAQ,MAAgB,OAAO,SAApB,IAA2B,YAAUlI,KAAK,SAAS,iBAAiB,mBAAmB,GAAE;AAAC,UAAM,IAAE8H,GAAG9H,CAAC;AAAE,QAAGiI,GAAG,CAAC,EAAE,CAAApI;AAAA,aAAY,GAAE;AAAC,UAAIA,IAAE,OAAO,EAAE,YAAY,WAAS,SAAS;AAAE,MAAAA,MAAIE,MAAIF,KAAG,8DAA6DC,EAAE,IAAID,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,MAAI,IAAE,0BAA0BA,CAAC,sCAAsCE,CAAC;AAAG,SAAOD,EAAE,SAAO,KAAG,2CAA2C,MAAM,KAAKA,CAAC,EAAE,KAAK,IAAI,CAAC,KAAI;AAAC;AAAC,SAASmU,KAAI;AAAC,SAAON;AAAE;AAAC,SAASO,GAAGrU,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE,QAAOG,IAAE,SAASJ,GAAEC,GAAE;AAAC,UAAMC,IAAEF,EAAE,OAAO,IAAIC,CAAC;AAAE,WAAgBC,MAAT,UAAYuF,EAAG,IAAGxF,CAAC,GAAEC;AAAA,EAAC,EAAEF,GAAE,CAAC;AAAE,MAAIK,IAAEH,EAAE,IAAI,CAAC;AAAE,EAASG,MAAT,WAAaA,IAAE,MAAM,KAAKD,EAAE,UAAU,GAAEF,EAAE,IAAI,GAAEG,CAAC;AAAG,QAAMC,IAAED,EAAE;AAAO,WAAQL,IAAE,GAAEA,IAAEM,MAAID,EAAEL,CAAC,EAAEC,CAAC,GAAEA,EAAE,WAAU,IAAID,IAAI;AAAC;AAAC,SAASsU,GAAGtU,GAAEC,GAAE;AAAC,SAAgBD,MAAT,UAAYA,EAAE,UAAQC,KAAGD,EAAE,WAAU;AAAE;AAAC,SAASuU,GAAGvU,GAAEC,GAAE;AAAC,MAAG,CAACA,EAAE;AAAO,QAAMC,IAAEF,EAAE;AAAY,MAAI,IAAEC;AAAE,QAAM,QAAQA,CAAC,MAAI,IAAE,CAACA,CAAC;AAAG,aAAUD,KAAK,EAAE,CAAAE,EAAE,IAAIF,CAAC;AAAC;AAAC,SAASwU,GAAGxU,GAAE;AAAC,SAAOyU,GAAGzU,GAAEwH,GAAE,EAAG,MAAM;AAAC;AAAC,SAASiN,GAAGzU,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,MAAK,IAAEC,EAAE,IAAIC,CAAC;AAAE,EAAS,MAAT,UAAYuF,EAAG,IAAGvF,CAAC;AAAE,QAAME,IAAE,EAAE;AAAM,EAAAJ,EAAE,SAAOI,EAAE,aAAWqF,EAAG,IAAGrF,EAAE,IAAI;AAAE,QAAMC,IAAED,EAAE,WAAWJ,CAAC,GAAEM,IAAEN,EAAE;AAAS,MAAG4H,EAAGvH,CAAC,KAAG,MAAM,QAAQC,CAAC,EAAE,UAAQN,IAAE,GAAEA,IAAEM,EAAE,QAAON,KAAI;AAAC,UAAME,IAAEuU,GAAGnU,EAAEN,CAAC,GAAEC,CAAC;AAAE,IAAAI,EAAE,OAAOH,CAAC;AAAA,EAAC;AAAC,SAAOG;AAAC;AAAC,SAASqU,GAAG1U,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAE2T,IAAGzT,IAAE2T,IAAG1T,IAAEyT;AAAG,EAAAD,KAAG5T,GAAE8T,KAAG,IAAGD,KAAG9T;AAAE,MAAG;AAAC,WAAOE,EAAC;AAAA,EAAE,UAAC;AAAQ,IAAA2T,KAAG,GAAEE,KAAG3T,GAAE0T,KAAGzT;AAAA,EAAC;AAAC;AAAC,SAASsU,GAAG3U,GAAEE,GAAE;AAAC,QAAMC,IAAEH,EAAE,qBAAoBI,IAAEJ,EAAE,cAAaK,IAAEL,EAAE,aAAkBI,MAAP;AAAS,MAAUD,MAAP,KAAS;AAAO,QAAMG,IAAEN,EAAE,cAAaO,IAAED,EAAE,YAAWE,IAAEL,EAAE,YAAW,IAAEH,EAAE,eAAa2D,IAAGjD,IAAEmT,IAAG,IAAEE,IAAGnT,IAAEkT,IAAGjT,IAAEb,EAAE,WAAUc,IAAEd,EAAE;AAAU,MAAIe,IAAE;AAAK,MAAGf,EAAE,sBAAoB,MAAKA,EAAE,eAAaG,GAAE,CAACE,KAAG,KAAUS,MAAP,MAAS;AAAC,IAAAgT,KAAG9T,GAAE6T,KAAG1T,GAAE4T,KAAG,IAAG/T,EAAE,YAAU;AAAG,QAAG;AAAC,YAAMC,IAAED,EAAE,YAAWE,IAAEF,EAAE,gBAAeI,IAAEJ,EAAE;AAAa,MAAAc,EAAE,WAAU,GAAGC,IAAE8N,GAAGvO,GAAEH,GAAEH,GAAEC,GAAEC,GAAEE,CAAC;AAAA,IAAC,SAAOH,GAAE;AAAC,UAAGA,aAAa,SAAOD,EAAE,SAASC,CAAC,GAAE+T,GAAG,OAAM/T;AAAE,aAAO2U,GAAG5U,GAAE,MAAKI,GAAED,CAAC,GAAEiH,GAAGpH,CAAC,GAAEA,EAAE,aAAW6D,IAAGmQ,KAAG,IAAGW,GAAG3U,GAAEM,CAAC,GAAE,MAAK0T,KAAG;AAAA,IAAG,UAAC;AAAQ,MAAAlT,EAAE,QAAQV,GAAE8T,EAAE,GAAElU,EAAE,YAAUa,GAAEgT,KAAGnT,GAAEqT,KAAG,GAAED,KAAGlT;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAT,EAAE,cAAYA,EAAE,YAAU;AAAI,QAAMa,IAAEhB,EAAE,cAAaiB,IAAEjB,EAAE,gBAAekB,IAAElB,EAAE,kBAAiBmB,IAAEnB,EAAE,aAAYoB,IAAEpB,EAAE;AAAU,QAAIA,EAAE,aAAW2D,IAAG3D,EAAE,gBAAgB,SAAQA,EAAE,eAAa,oBAAI,OAAIA,EAAE,iBAAe,oBAAI,OAAIA,EAAE,mBAAiB,oBAAI,OAAIA,EAAE,cAAY,oBAAI,QAAK,SAASA,GAAEC,GAAE;AAAC,UAAMC,IAAEF,EAAE;AAAY,QAAIG,IAAEH,EAAE,sBAAoBE;AAAE,UAAME,IAAEH,EAAE;AAAS,QAAII;AAAE,SAAIA,KAAKF,EAAE,CAAAC,EAAE,IAAIC,CAAC,MAAIF,MAAID,MAAIC,IAAEkJ,GAAGrJ,CAAC,IAAG,OAAOG,EAAEE,CAAC;AAAA,EAAE,EAAEL,GAAEG,CAAC;AAAE,QAAMkB,IAAEhB,IAAE,OAAK6F,GAAGlG,EAAE,OAAO;AAAE,MAAGA,EAAE,aAAkBqB,MAAP,SAAW,KAAUb,MAAP,QAAUA,EAAE,QAAO;AAAC,IAAAsT,KAAG9T,GAAE6T,KAAG1T;AAAE,QAAG;AAAC,UAAUW,MAAP,QAAUA,EAAE,WAAU,GAAG,KAAUN,MAAP,QAAUA,EAAE,OAAM;AAAC,cAAMP,IAAED,EAAE;AAAoB,QAAOC,MAAP,QAAUwL,GAAGxL,GAAED,GAAEI,CAAC,GAAEsT,GAAGnT,GAAEC,GAAER,GAAEqB,GAAEF,GAAEf,CAAC;AAAA,MAAC;AAAC,MAAAsL,GAAG1L,GAAEI,GAAEI,CAAC,GAASM,MAAP,QAAUA,EAAE,QAAQV,GAAE8T,EAAE;AAAA,IAAC,UAAC;AAAQ,MAAAJ,KAAGlT,GAAEiT,KAAGnT;AAAA,IAAC;AAAA,EAAC;AAAC,EAAOK,MAAP,QAAU,SAASf,GAAEC,GAAEC,GAAEC,GAAEC,GAAE;AAAC,UAAMC,IAAE,MAAM,KAAKL,EAAE,WAAW,QAAQ,GAAEM,IAAED,EAAE;AAAO,aAAQL,IAAE,GAAEA,IAAEM,GAAEN,KAAI;AAAC,YAAK,CAACM,GAAEC,CAAC,IAAEF,EAAEL,CAAC,GAAEQ,IAAEP,EAAE,IAAIM,CAAC;AAAE,MAASC,MAAT,UAAYF,EAAEE,GAAE,EAAC,aAAYL,GAAE,iBAAgBC,GAAE,YAAWF,EAAC,CAAC;AAAA,IAAC;AAAA,EAAC,EAAEF,GAAEe,GAAEI,GAAEH,GAAEV,CAAC,GAAE+F,EAAG7F,CAAC,KAAUA,MAAP,QAAiBD,MAAP,QAAUA,EAAE,GAAGC,CAAC,KAAGR,EAAE,gBAAgBC,IAAE,MAAM;AAAE,QAAMqB,IAAEtB,EAAE;AAAmB,EAAOsB,MAAP,SAAWtB,EAAE,cAAYsB,GAAEtB,EAAE,qBAAmB,MAAK6U,GAAG,aAAY7U,GAAE,IAAGsB,CAAC,IAAG,SAAStB,GAAEC,GAAEC,GAAE;AAAC,UAAMC,IAAEmJ,GAAGrJ,CAAC,GAAEG,IAAEkJ,GAAGpJ,CAAC;AAAE,IAAAC,MAAIC,KAAGyU,GAAG,eAAc7U,GAAE,IAAGI,CAAC;AAAA,EAAC,EAAEJ,GAAEE,KAAGI,GAAEH,CAAC,GAAE0U,GAAG,UAAS7U,GAAE,IAAG,EAAC,eAAciB,GAAE,aAAYD,GAAE,aAAYb,GAAE,iBAAgBe,GAAE,iBAAgBhB,KAAGI,GAAE,MAAKa,EAAC,CAAC,GAAE,SAASnB,GAAEC,GAAE;AAAC,QAAGD,EAAE,YAAU,CAAA,GAAOC,EAAE,WAAN,GAAa;AAAC,YAAMC,IAAEF,EAAE;AAAU,MAAAA,EAAE,YAAU;AAAG,UAAG;AAAC,iBAAQA,IAAE,GAAEA,IAAEC,EAAE,QAAOD,IAAI,CAAAC,EAAED,CAAC,EAAC;AAAA,MAAE,UAAC;AAAQ,QAAAA,EAAE,YAAUE;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC,EAAEF,GAAEoB,CAAC,GAAE,SAASpB,GAAE;AAAC,UAAMC,IAAED,EAAE;AAAS,QAAOC,EAAE,WAAN,GAAa;AAAC,YAAMC,IAAED,EAAE,MAAK;AAAG,UAAGC,GAAE;AAAC,cAAK,CAACD,GAAEE,CAAC,IAAED;AAAE,QAAA4U,GAAG9U,GAAEC,GAAEE,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC,EAAEH,CAAC;AAAC;AAAC,SAAS6U,GAAG7U,GAAEC,GAAEC,MAAK,GAAE;AAAC,QAAME,IAAEH,EAAE;AAAU,EAAAA,EAAE,YAAUC;AAAE,MAAG;AAAC,UAAMA,IAAE,MAAM,KAAKD,EAAE,WAAWD,CAAC,CAAC;AAAE,aAAQA,IAAE,GAAEA,IAAEE,EAAE,QAAOF,IAAI,CAAAE,EAAEF,CAAC,EAAE,MAAM,MAAK,CAAC;AAAA,EAAC,UAAC;AAAQ,IAAAC,EAAE,YAAUG;AAAA,EAAC;AAAC;AAAC,SAAS2K,GAAG/K,GAAEC,GAAEC,GAAE;AAAC,MAAQF,EAAE,cAAP,MAAkB8T,OAAK9T,GAAE;AAAC,QAAIG,IAAE;AAAG,WAAOH,EAAE,OAAQ,MAAI;AAAC,MAAAG,IAAE4K,GAAG/K,GAAEC,GAAEC,CAAC;AAAA,IAAC,CAAC,GAAGC;AAAA,EAAC;AAAC,QAAM,IAAEwJ,GAAG3J,CAAC;AAAE,WAAQI,IAAE,GAAEA,KAAG,GAAEA,IAAI,UAAQC,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,UAAMC,IAAE,EAAED,CAAC,EAAE,UAAU,IAAIJ,CAAC;AAAE,QAAYK,MAAT,QAAW;AAAC,YAAML,IAAEK,EAAEF,CAAC;AAAE,UAAYH,MAAT,QAAW;AAAC,cAAME,IAAE,MAAM,KAAKF,CAAC,GAAEG,IAAED,EAAE;AAAO,iBAAQF,IAAE,GAAEA,IAAEG,GAAEH,IAAI,KAAQE,EAAEF,CAAC,EAAEC,GAAEF,CAAC,MAAb,GAAe,QAAM;AAAA,MAAE;AAAA,IAAC;AAAA,EAAC;AAAC,SAAM;AAAE;AAAC,SAAS+U,GAAG/U,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE;AAAS,MAAI,IAAEC,KAAG;AAAG,SAASC,EAAE,WAAN,KAAc;AAAC,UAAMD,IAAEC,EAAE,MAAK;AAAG,QAAGD,GAAE;AAAC,YAAK,CAACC,GAAEE,CAAC,IAAEH;AAAE,UAAII;AAAE,UAAYD,MAAT,QAAW;AAAC,YAAGC,IAAED,EAAE,UAASA,EAAE,mBAAiB,IAAE,KAAIA,EAAE,UAAS;AAAC,gBAAMH,IAAED,EAAE;AAAoB,UAAOC,MAAP,QAAUwF,EAAG,GAAG,GAAExF,EAAE,aAAW;AAAA,QAAE;AAAC,QAAAI,KAAGL,EAAE,UAAU,KAAKK,CAAC,GAAEkU,GAAGvU,GAAEI,EAAE,GAAG;AAAA,MAAC;AAAC,MAAAF,EAAC;AAAA,IAAE;AAAA,EAAC;AAAC,SAAO;AAAC;AAAC,SAAS4U,GAAG9U,GAAEC,GAAEC,GAAE;AAAC,QAAM,IAAEF,EAAE;AAAY,MAAII,GAAEC,IAAE,IAAGC,IAAE;AAAG,EAASJ,MAAT,WAAaE,IAAEF,EAAE,UAASqU,GAAGvU,GAAEE,EAAE,GAAG,GAAEG,IAAEH,EAAE,kBAAgB,IAAGI,IAAEJ,EAAE,YAAU,KAAIE,KAAGJ,EAAE,UAAU,KAAKI,CAAC;AAAE,QAAMG,IAAEP,EAAE;AAAa,MAAIQ,IAAER,EAAE,qBAAoBS,IAAE;AAAG,GAAQD,MAAP,QAAUA,EAAE,eAAaA,IAAER,EAAE,sBAAoBgV,GAAGxU,KAAGD,CAAC,GAAEE,IAAE,KAAID,EAAE,aAAWF;AAAE,QAAMI,IAAEmT,IAAGlT,IAAEoT,IAAGnT,IAAEkT,IAAGjT,IAAEb,EAAE;AAAU,EAAA6T,KAAGrT,GAAEuT,KAAG,IAAG/T,EAAE,YAAU,IAAG8T,KAAG9T;AAAE,MAAG;AAAC,IAAAS,MAAIT,EAAE,YAAiBO,EAAE,eAAT,SAAsBC,EAAE,aAAWD,EAAE,WAAW,MAAK,KAAIC,EAAE,aAAW,SAASR,GAAE;AAAC,YAAMC,IAAED,EAAE,eAAc,EAAG,YAAWE,IAAEgG,GAAGlG,EAAE,OAAO;AAAE,aAAOqG,EAAGpG,CAAC,KAASA,KAAN,OAAQyP,GAAGzP,GAAEC,GAAEF,GAAE,IAAI,IAAEC,EAAE,MAAK;AAAA,IAAE,EAAED,CAAC;AAAG,UAAME,IAAEF,EAAE;AAAgB,IAAAC,EAAC,GAAGI,IAAE0U,GAAG/U,GAAEK,CAAC,GAAE,SAASL,GAAEC,GAAE;AAAC,YAAMC,IAAED,EAAE,iBAAiB,YAAWE,IAAEH,EAAE;AAAW,UAAGqG,EAAGlG,CAAC,GAAE;AAAC,cAAMH,IAAEG,EAAE,QAAOF,IAAEE,EAAE;AAAM,YAAIC;AAAE,YAAYJ,EAAE,SAAX,WAAkBI,IAAEJ,EAAE,QAAO,GAAGI,EAAE,mBAAmBF,GAAEC,CAAC,IAAYF,EAAE,SAAX,QAAgB;AAAC,gBAAMD,IAAEC,EAAE,QAAO;AAAG,UAAAG,MAAIJ,KAAGA,EAAE,mBAAmBE,GAAEC,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAEK,GAAER,CAAC,GAAEA,EAAE,eAAa2D,OAAKtD,IAAE,SAASL,GAAEC,GAAE;AAAC,YAAMC,IAAED,EAAE,cAAaE,IAAEH,EAAE;AAAS,iBAAUA,KAAKE,GAAE;AAAC,cAAMD,IAAEE,EAAE,IAAIH,CAAC;AAAE,QAAA+G,EAAG9G,CAAC,KAAGA,EAAE,WAAU,KAAIA,EAAE,aAAY,KAAI,CAACA,EAAE,mBAAiBwH,GAAGxH,CAAC;AAAA,MAAC;AAAA,IAAC,EAAEO,GAAER,CAAC,IAAE,SAASA,GAAEC,GAAE;AAAC,YAAMC,IAAED,EAAE,cAAaE,IAAEF,EAAE,gBAAeG,IAAEJ,EAAE,UAASK,IAAE8I,MAAK7I,IAAE,oBAAI;AAAI,UAAIC,IAAEL,GAAEM,IAAED,EAAE,MAAKE,IAAEN,GAAEO,IAAED,EAAE;AAAK,aAAKD,IAAE,KAAGE,IAAE,KAAG;AAAC,YAAGF,IAAE,GAAE;AAAC,UAAAP,EAAE,eAAa,oBAAI;AAAI,qBAAUD,KAAKO,GAAE;AAAC,kBAAMJ,IAAEC,EAAE,IAAIJ,CAAC;AAAE,YAAA+G,EAAG5G,CAAC,KAAGA,EAAE,WAAU,KAAIA,EAAE,aAAY,KAAI,CAACA,EAAE,mBAAiBsH,GAAGtH,CAAC,GAAWA,MAAT,UAAYmU,GAAGnU,GAAEE,CAAC,KAAGgU,GAAGpU,GAAEE,GAAEG,CAAC,GAAEJ,EAAE,IAAIF,CAAC;AAAA,UAAC;AAAC,cAAGO,IAAEN,EAAE,cAAaO,IAAED,EAAE,MAAKC,IAAE,GAAE;AAAC,YAAAyT;AAAK;AAAA,UAAQ;AAAA,QAAC;AAAC,QAAAhU,EAAE,eAAa,oBAAI,OAAIA,EAAE,iBAAe,oBAAI;AAAI,mBAAUD,KAAKS,GAAE;AAAC,gBAAMP,IAAEF,EAAE,CAAC,GAAEO,IAAEP,EAAE,CAAC;AAAE,cAAYE,MAAT,UAAY,CAACK,EAAE;AAAS,gBAAMC,IAAEJ,EAAE,IAAIF,CAAC;AAAE,UAASM,MAAT,UAAY8T,GAAG9T,GAAEH,CAAC,KAAGgU,GAAGpU,GAAEO,GAAEF,CAAC,GAAEH,EAAE,IAAID,GAAEK,CAAC;AAAA,QAAC;AAAC,QAAAA,IAAEN,EAAE,cAAaO,IAAED,EAAE,MAAKE,IAAER,EAAE,gBAAeS,IAAED,EAAE,MAAKwT;AAAA,MAAI;AAAC,MAAAhU,EAAE,eAAaC,GAAED,EAAE,iBAAeE;AAAA,IAAC,EAAEK,GAAER,CAAC,GAAE+U,GAAG/U,CAAC,GAAE,SAASA,GAAEC,GAAEC,GAAEC,GAAE;AAAC,YAAMC,IAAEJ,EAAE,UAASK,IAAEJ,EAAE,UAASK,IAAE,CAAA;AAAG,iBAAS,CAACN,CAAC,KAAIG,GAAE;AAAC,cAAMF,IAAEI,EAAE,IAAIL,CAAC;AAAE,QAASC,MAAT,WAAaA,EAAE,WAAU,MAAK2H,EAAG3H,CAAC,KAAGuM,GAAGvM,GAAED,GAAEI,GAAEC,GAAEC,GAAEH,CAAC,GAAEC,EAAE,IAAIJ,CAAC,KAAGG,EAAE,OAAOH,CAAC,GAAEM,EAAE,KAAKN,CAAC;AAAA,MAAG;AAAC,iBAAUA,KAAKM,EAAE,CAAAD,EAAE,OAAOL,CAAC;AAAE,iBAAUA,KAAKE,GAAE;AAAC,cAAMD,IAAEI,EAAE,IAAIL,CAAC;AAAE,QAASC,MAAT,UAAYA,EAAE,WAAU,MAAKG,EAAE,IAAIJ,CAAC,KAAGE,EAAE,OAAOF,CAAC,GAAEK,EAAE,OAAOL,CAAC;AAAA,MAAE;AAAA,IAAC,EAAEO,GAAEC,GAAER,EAAE,cAAaA,EAAE,cAAc,IAAGE,MAAIF,EAAE,oBAAkBQ,EAAE,aAAW;AAAI,UAAML,IAAEK,EAAE;AAAW,QAAG6F,EAAGlG,CAAC,GAAE;AAAC,YAAMH,IAAEQ,EAAE,UAASP,IAAEE,EAAE,OAAO,KAAID,IAAEC,EAAE,MAAM;AAAI,MAASH,EAAE,IAAIC,CAAC,MAAhB,UAA4BD,EAAE,IAAIE,CAAC,MAAhB,UAAmBuF,EAAG,EAAE;AAAA,IAAC,MAAM,CAAAiL,GAAGvQ,CAAC,KAAOA,EAAE,OAAO,SAAb,MAAoBK,EAAE,aAAW;AAAA,EAAK,SAAOP,GAAE;AAAC,WAAOA,aAAa,SAAOD,EAAE,SAASC,CAAC,GAAED,EAAE,sBAAoBO,GAAEP,EAAE,aAAW6D,IAAG7D,EAAE,gBAAgB,MAAK,GAAGA,EAAE,eAAa,oBAAI,OAAIA,EAAE,eAAe,MAAK,GAAG,KAAK2U,GAAG3U,CAAC;AAAA,EAAC,UAAC;AAAQ,IAAA6T,KAAGnT,GAAEqT,KAAGpT,GAAEmT,KAAGlT,GAAEZ,EAAE,YAAUa,GAAEoT,KAAG;AAAA,EAAC;AAAmL,EAA1KjU,EAAE,eAAa2D,MAAI,SAAS3D,GAAEC,GAAE;AAAC,UAAMC,IAAED,EAAE,eAAc,EAAG,YAAWE,IAAEH,EAAE;AAAW,QAAUG,MAAP;AAAU,UAAGA,EAAE,SAAO,CAACA,EAAE,GAAGD,CAAC,EAAE,QAAM;AAAA,eAAkBA,MAAP,KAAS,QAAM;AAAG,WAAM;AAAA,EAAE,EAAEM,GAAER,CAAC,IAAIQ,EAAE,cAAYA,EAAE,aAAW,IAAGmU,GAAG3U,CAAC,KAAGS,KAAGqH,GAAI,MAAI;AAAC,IAAA6M,GAAG3U,CAAC;AAAA,EAAC,CAAC,KAAIQ,EAAE,aAAW,IAAGC,MAAI,EAAE,MAAK,GAAGT,EAAE,YAAU,CAAA,GAAGA,EAAE,sBAAoB;AAAM;AAAC,SAAS6G,GAAG7G,GAAEC,GAAEC,GAAE;AAAC,EAAAF,EAAE,YAAUA,EAAE,SAAS,KAAK,CAACC,GAAEC,CAAC,CAAC,IAAE4U,GAAG9U,GAAEC,GAAEC,CAAC;AAAC;AAAC,MAAM+U,GAAE;AAAA,EAAC,YAAY,GAAE,GAAE/U,GAAE;AAAC,SAAK,UAAQ,GAAE,KAAK,SAAO,KAAG,MAAK,KAAK,QAAMA,KAAG;AAAA,EAAI;AAAA,EAAC,WAAW,GAAE;AAAC,WAAO,IAAI+U,GAAG,KAAK,SAAQ,GAAE,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,WAAO,IAAIA,GAAG,KAAK,SAAQ,KAAK,QAAO,CAAC;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,WAAO,IAAIA,GAAG,GAAE,KAAK,QAAO,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,IAAE,KAAK,UAAQ,KAAK,oBAAmB;AAAG,WAAc,MAAP,QAAU,EAAE,kBAAgB,KAAK,WAASxP,EAAG,GAAG,GAAE,KAAK,QAAQ,aAAa,GAAE,CAAC,GAAE;AAAA,EAAI;AAAA,EAAC,YAAY,GAAE;AAAC,WAAO,EAAE,kBAAgB,KAAK,WAASA,EAAG,GAAG,GAAE,KAAK,QAAQ,YAAY,CAAC,GAAE;AAAA,EAAI;AAAA,EAAC,aAAa,GAAE,GAAE;AAAC,WAAO,EAAE,kBAAgB,KAAK,WAASA,EAAG,GAAG,GAAE,KAAK,QAAQ,aAAa,GAAE,CAAC,GAAE;AAAA,EAAI;AAAA,EAAC,gBAAe;AAAC,UAAM,IAAE,KAAK,QAAM,KAAK,MAAM,cAAY,KAAK,QAAQ;AAAW,WAAO,MAAI,KAAK,UAAQ,MAAI,KAAK,oBAAmB,IAAG,OAAK;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,WAAO,KAAK,QAAQ,sBAAoB;AAAA,EAAI;AAAA,EAAC,oBAAoB,GAAE;AAAC,QAAU,MAAP,KAAS,MAAK,uBAAsB;AAAA,SAAO;AAAC,YAAM,IAAgB,MAAd,gBAAkBrC,MAAGD;AAAG,WAAK,uBAAuB,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,yBAAwB;AAAC,UAAM,IAAE,KAAK,oBAAmB;AAAG,QAAG,GAAE;AAAC,YAAM,IAAE,KAAK,SAAQjD,IAAU,EAAE,aAAV,QAAmB,EAAE,cAAY;AAAK,MAAAA,KAAG,EAAE,YAAYA,CAAC,GAAE,EAAE,YAAY,CAAC,GAAE,EAAE,qBAAmB;AAAA,IAAM;AAAA,EAAC;AAAA,EAAC,uBAAuB,GAAE;AAAC,UAAM,IAAE,KAAK,oBAAmB;AAAG,QAAG,GAAE;AAAC,UAAG,OAAa,EAAE,aAAV,OAAoB;AAAO,WAAK,uBAAsB;AAAA,IAAE;AAAC,UAAMA,IAAE,KAAK,SAAQC,IAAE,KAAK,QAAO,IAAE,SAAS,cAAc,IAAI;AAAE,QAAGD,EAAE,aAAa,GAAEC,CAAC,GAAE,GAAE;AAAC,YAAMH,IAAE,SAAS,cAAc,KAAK;AAAE,MAAAA,EAAE,aAAa,0BAAyB,MAAM,GAAEA,EAAE,MAAM,UAAQ,+EAA8EA,EAAE,MAAI,IAAGE,EAAE,aAAaF,GAAE,CAAC,GAAEE,EAAE,qBAAmBF;AAAA,IAAC,MAAM,CAAAE,EAAE,qBAAmB;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,QAAI,IAAE;AAAE,aAAQ,IAAE,KAAK,OAAa,MAAP,MAAS,IAAE,EAAE,gBAAgB;AAAI,WAAO;AAAA,EAAC;AAAA,EAAC,kBAAkB,GAAE,GAAEA,GAAEC,GAAE;AAAC,QAAGD,MAAI,KAAK,SAAQ;AAAC,YAAMD,IAAE,KAAK,oBAAmB;AAAG,aAAM,CAAC,GAAE,KAAK,IAAIA,IAAE,EAAE,gBAAe,GAAG,KAAK,IAAIA,GAAEE,CAAC,CAAC,CAAC;AAAA,IAAC;AAAC,UAAM,IAAE+U,GAAG,GAAEhV,CAAC;AAAE,MAAE,KAAKC,CAAC;AAAE,UAAM,IAAE+U,GAAG,GAAE,KAAK,OAAO;AAAE,QAAI,IAAE,EAAE,qBAAoB;AAAG,aAAQlV,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,YAAMC,IAAE,EAAED,CAAC,GAAEE,IAAE,EAAEF,CAAC;AAAE,UAAYC,MAAT,UAAYA,IAAEC,EAAE;AAAM,UAAGD,IAAEC,GAAE;AAAC,aAAG;AAAE;AAAA,MAAK;AAAA,IAAC;AAAC,WAAM,CAAC,EAAE,iBAAgB,GAAG,CAAC;AAAA,EAAC;AAAC;AAAC,SAASgV,GAAGlV,GAAEC,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,MAAI,IAAED;AAAE,SAAK,MAAID,KAAU,MAAP,MAAS,IAAEC,EAAE,YAAW;AAAC,QAAID,IAAE;AAAE,aAAQC,IAAE,EAAE,iBAAuBA,MAAP,MAASA,IAAE,EAAE,gBAAgB,CAAAD;AAAI,IAAAE,EAAE,KAAKF,CAAC;AAAA,EAAC;AAAC,SAAO,MAAIA,KAAGyF,EAAG,GAAG,GAAEvF,EAAE,QAAO;AAAE;AAAC,MAAMiV,WAAWvE,GAAE;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,CAAC,GAAE,KAAK,UAAQ,MAAK,KAAK,SAAO,MAAK,KAAK,SAAO,GAAE,KAAK,WAAS,GAAE,KAAK,UAAQ,IAAG,KAAK,WAAS,GAAE,KAAK,QAAM;AAAA,EAAI;AAAA,EAAC,eAAe,GAAE;AAAC,UAAM,eAAe,CAAC,GAAE,KAAK,UAAQ,EAAE,SAAQ,KAAK,SAAO,EAAE,QAAO,KAAK,SAAO,EAAE,QAAO,KAAK,WAAS,EAAE,UAAS,KAAK,WAAS,EAAE,UAAS,KAAK,UAAQ,EAAE,SAAQ,KAAK,QAAM,EAAE;AAAA,EAAK;AAAA,EAAC,YAAW;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAQ;AAAA,EAAC,gBAAe;AAAC,UAAM,IAAE,KAAK,UAAS;AAAG,WAAOvL,GAAG,CAAC,KAAG;AAAA,EAAE;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAO;AAAA,EAAC,YAAW;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAQ;AAAA,EAAC,cAAa;AAAC,UAAM,IAAE,CAAA;AAAG,QAAI,IAAE,KAAK;AAAgB,WAAY,MAAP,OAAU,GAAE,KAAK,CAAC,GAAE,IAAE,EAAE,eAAc;AAAG,WAAO;AAAA,EAAC;AAAA,EAAC,kBAAiB;AAAC,UAAM,IAAE,CAAA;AAAG,QAAI,IAAE,KAAK,cAAa;AAAG,WAAY,MAAP,OAAU,GAAE,KAAK,EAAE,KAAK,GAAE,IAAE,EAAE;AAAiB,WAAO;AAAA,EAAC;AAAA,EAAC,kBAAiB;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAM;AAAA,EAAC,UAAS;AAAC,WAAW,KAAK,gBAAe,MAAxB;AAAA,EAA0B;AAAA,EAAC,UAAS;AAAC,UAAM,IAAEmC,KAAK;AAAe,WAAc,MAAP,QAAU,EAAE,IAAI,KAAK,KAAK;AAAA,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,IAAE,KAAK,UAAS,GAAG,IAAE,KAAK,iBAAgB,EAAG,aAAY;AAAG,WAAc,MAAP,QAAU,EAAE,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,kBAAiB;AAAC,UAAM,IAAE;AAAG,QAAI,IAAE,KAAK,cAAa;AAAG,WAAY,MAAP,QAAU;AAAC,UAAGT,EAAG,CAAC,KAAG,EAAE,KAAK,CAAC,GAAEa,EAAG,CAAC,GAAE;AAAC,cAAM1H,IAAE,EAAE,gBAAe;AAAG,UAAE,KAAK,GAAGA,CAAC;AAAA,MAAC;AAAC,UAAE,EAAE,eAAc;AAAA,IAAE;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,qBAAoB;AAAC,QAAI,IAAE,KAAK,cAAa;AAAG,WAAK0H,EAAG,CAAC,KAAG;AAAC,YAAM,IAAE,EAAE,cAAa;AAAG,UAAU,MAAP,KAAS;AAAM,UAAE;AAAA,IAAC;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,QAAI,IAAE,KAAK;AAAe,WAAKA,EAAG,CAAC,KAAG;AAAC,YAAM,IAAE,EAAE,aAAY;AAAG,UAAU,MAAP,KAAS;AAAM,UAAE;AAAA,IAAC;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,qBAAqB,GAAE;AAAC,UAAM,IAAE,KAAK,YAAW,GAAG1H,IAAE,EAAE;AAAO,QAAG,KAAGA,GAAE;AAAC,YAAMF,IAAE,EAAEE,IAAE,CAAC;AAAE,aAAO0H,EAAG5H,CAAC,KAAGA,EAAE,uBAAqBA,KAAG;AAAA,IAAI;AAAC,UAAMG,IAAE,EAAE,CAAC;AAAE,WAAOyH,EAAGzH,CAAC,KAAGA,EAAE,mBAAkB,KAAIA,KAAG;AAAA,EAAI;AAAA,EAAC,gBAAe;AAAC,UAAM,IAAE,KAAK,UAAS,EAAG;AAAQ,WAAc,MAAP,OAAS,OAAKsG,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,UAAM,IAAE,KAAK,cAAa;AAAG,WAAc,MAAP,QAAUhB,EAAG,IAAG,KAAK,KAAK,GAAE;AAAA,EAAC;AAAA,EAAC,eAAc;AAAC,UAAM,IAAE,KAAK,UAAS,EAAG;AAAO,WAAc,MAAP,OAAS,OAAKgB,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,UAAM,IAAE,KAAK,aAAY;AAAG,WAAc,MAAP,QAAUhB,EAAG,IAAG,KAAK,KAAK,GAAE;AAAA,EAAC;AAAA,EAAC,gBAAgB,GAAE;AAAC,UAAM,IAAE,KAAK,gBAAe;AAAG,QAAIvF,GAAEC;AAAE,QAAG,IAAE,IAAE,GAAE;AAAC,WAAID,IAAE,KAAK,cAAa,GAAGC,IAAE,GAASD,MAAP,QAAUC,KAAG,KAAG;AAAC,YAAGA,MAAI,EAAE,QAAOD;AAAE,QAAAA,IAAEA,EAAE,eAAc,GAAGC;AAAA,MAAG;AAAC,aAAO;AAAA,IAAI;AAAC,SAAID,IAAE,KAAK,gBAAeC,IAAE,IAAE,GAASD,MAAP,QAAUC,KAAG,KAAG;AAAC,UAAGA,MAAI,EAAE,QAAOD;AAAE,MAAAA,IAAEA,EAAE,mBAAkB,GAAGC;AAAA,IAAG;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,iBAAgB;AAAC,QAAI,IAAE;AAAG,UAAM,IAAE,KAAK,eAAcD,IAAE,EAAE;AAAO,aAAQC,IAAE,GAAEA,IAAED,GAAEC,KAAI;AAAC,YAAM,IAAE,EAAEA,CAAC;AAAE,WAAG,EAAE,eAAc,GAAGyH,EAAG,CAAC,KAAGzH,MAAID,IAAE,KAAG,CAAC,EAAE,SAAQ,MAAK,KAAG0E;AAAA,IAAG;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,qBAAoB;AAAC,QAAI,IAAE;AAAE,UAAM,IAAE,KAAK,YAAW,GAAG1E,IAAE,EAAE;AAAO,aAAQC,IAAE,GAAEA,IAAED,GAAEC,KAAI;AAAC,YAAM,IAAE,EAAEA,CAAC;AAAE,WAAG,EAAE,mBAAkB,GAAGyH,EAAG,CAAC,KAAGzH,MAAID,IAAE,KAAG,CAAC,EAAE,SAAQ,MAAK,KAAG0E,GAAG;AAAA,IAAO;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,eAAc;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAK;AAAA,EAAC,UAAU,GAAE;AAAC,QAAQ,MAAL,IAAO;AAAC,YAAM,IAAEQ,GAAG,CAAC;AAAE,aAAM,CAAC,EAAE,KAAK,UAAS,IAAG;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,OAAO,GAAE,GAAE;AAAC,IAAAyD,GAAE;AAAG,UAAM3I,IAAE4G,EAAE;AAAG,QAAI3G,IAAE,GAAE,IAAE;AAAE,UAAM,IAAE,KAAK,gBAAe;AAAG,QAAG,CAAC,KAAK,WAAU;AAAG,UAAO,MAAJ,KAAW,MAAJ,GAAM;AAAC,cAAMH,IAAE,KAAK,cAAa;AAAG,YAAG+G,EAAG/G,CAAC,KAAG4H,EAAG5H,CAAC,EAAE,QAAOA,EAAE,OAAO,GAAE,CAAC;AAAA,MAAC,WAAS,EAAW,MAAT,UAAY,MAAI,KAAY,MAAT,UAAY,MAAI,IAAG;AAAC,cAAMA,IAAE,KAAK,aAAY;AAAG,YAAG+G,EAAG/G,CAAC,KAAG4H,EAAG5H,CAAC,EAAE,QAAOA,EAAE,OAAM;AAAA,MAAE;AAAA;AAAC,IAASG,MAAT,WAAaA,IAAE,IAAY,MAAT,WAAa,IAAE;AAAG,UAAM,IAAE,KAAK;AAAM,WAAOkG,EAAGnG,CAAC,KAAGA,EAAE,OAAO,IAAI,GAAEC,GAAE,SAAS,GAAED,EAAE,MAAM,IAAI,GAAE,GAAE,SAAS,GAAEA,EAAE,QAAM,IAAGA,KAAG4R,GAAG,GAAE3R,GAAE,GAAE,GAAE,WAAU,SAAS;AAAA,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,IAAE,KAAK,mBAAkB;AAAG,WAAO,IAAE,EAAE,YAAW,IAAG,KAAK,OAAM;AAAA,EAAE;AAAA,EAAC,YAAW;AAAC,UAAM,IAAE,KAAK,kBAAiB;AAAG,WAAO,IAAE,EAAE,UAAS,IAAG,KAAK,OAAM;AAAA,EAAE;AAAA,EAAC,QAAO;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,KAAK,YAAW,EAAG,QAAS,CAAAH,MAAGA,EAAE,OAAM,CAAE,GAAG;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,WAAO,KAAK,OAAO,KAAK,mBAAkB,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,EAAE,QAAM,GAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,WAAO,KAAK,YAAW,EAAG,WAAc,MAAL,KAAOoF,GAAG,CAAC,IAAE,GAAE;AAAA,EAAI;AAAA,EAAC,SAAS,GAAE;AAAC,WAAO,KAAK,YAAW,EAAG,UAAQ,KAAG,IAAG;AAAA,EAAI;AAAA,EAAC,UAAU,GAAE;AAAC,WAAO,KAAK,cAAc,WAAS,GAAE;AAAA,EAAI;AAAA,EAAC,OAAO,GAAE,GAAElF,GAAE;AAAC,UAAMC,IAAED,EAAE,QAAO,IAAE,KAAK,mBAAkB,IAAE,KAAK,YAAW;AAAG,QAAE,KAAG,KAAGuF,EAAG,KAAI,OAAO,CAAC,GAAE,OAAO,CAAC,GAAE,OAAO,CAAC,CAAC;AAAE,UAAM,IAAE,EAAE,OAAMlF,IAAE,IAAGC,IAAE,CAAA,GAAGC,IAAE,KAAK,gBAAgB,IAAE,CAAC;AAAE,QAAIC,IAAE,MAAKC,IAAE,IAAE,IAAER;AAAE,QAAO,MAAJ,EAAM,KAAG,MAAI,EAAE,CAAAO,IAAE,KAAK,aAAY;AAAA,SAAO;AAAC,YAAMT,IAAE,KAAK,gBAAgB,CAAC;AAAE,MAAOA,MAAP,SAAWS,IAAET,EAAE;IAAqB;AAAC,QAAG,IAAE,GAAE;AAAC,UAAID,IAASU,MAAP,OAAS,KAAK,cAAa,IAAGA,EAAE,eAAc;AAAG,eAAQR,IAAE,GAAEA,IAAE,GAAEA,KAAI;AAAC,QAAOF,MAAP,QAAUyF,EAAG,GAAG;AAAE,cAAMxF,IAAED,EAAE,kBAAiBE,IAAEF,EAAE;AAAMgJ,QAAAA,GAAGhJ,EAAE,aAAa,GAAEQ,EAAE,KAAKN,CAAC,GAAEF,IAAEC;AAAA,MAAC;AAAA,IAAC;AAAC,QAAI,IAAES;AAAE,aAAQV,IAAE,GAAEA,IAAEG,GAAEH,KAAI;AAAC,YAAMC,IAAEC,EAAEF,CAAC;AAAE,MAAO,MAAP,QAAUC,EAAE,GAAG,CAAC,MAAIS,IAAE,IAAE,EAAE,mBAAkB;AAAI,YAAMP,IAAEF,EAAE,YAAW;AAAG,MAAAE,EAAE,aAAW,KAAGQ,KAAIqI,GAAG7I,CAAC;AAAE,YAAMC,IAAEH,EAAE;AAAM,UAAU,MAAP,KAAS,GAAE,UAAQG,GAAED,EAAE,SAAO;AAAA,WAAS;AAAC,cAAMH,IAAE,EAAE,YAAW;AAAG,QAAAA,EAAE,SAAOI,GAAED,EAAE,SAAOH,EAAE;AAAA,MAAK;AAAC,MAAAC,EAAE,UAAQ,KAAGwF,EAAG,EAAE,GAAEtF,EAAE,WAAS,GAAEI,EAAE,KAAKH,CAAC,GAAE,IAAEH;AAAA,IAAC;AAAC,QAAG,IAAE,MAAI;AAAG,MAAU,MAAP,SAAU,EAAE,YAAW,EAAG,SAAO,MAAK,EAAE,SAAO,EAAE;AAAA,aAAsBQ,MAAP,MAAS;AAAC,YAAMT,IAAES,EAAE,YAAW;AAAG,UAAU,MAAP,MAAS;AAAC,cAAMR,IAAE,EAAE,YAAW;AAAG,QAAAD,EAAE,SAAO,EAAE,OAAMC,EAAE,SAAOQ,EAAE;AAAA,MAAK,MAAM,CAAAT,EAAE,SAAO;AAAA,IAAI;AAAC,QAAG,EAAE,SAAOW,GAAEH,EAAE,QAAO;AAAC,YAAMR,IAAE8G,EAAE;AAAG,UAAGT,EAAGrG,CAAC,GAAE;AAAC,cAAMC,IAAE,IAAI,IAAIO,CAAC,GAAEN,IAAE,IAAI,IAAIK,CAAC,GAAE,EAAC,QAAOJ,GAAE,OAAMC,EAAC,IAAEJ;AAAE,QAAAoV,GAAGjV,GAAEF,GAAEC,CAAC,KAAGuQ,GAAGtQ,GAAEA,EAAE,QAAO,GAAG,MAAKO,GAAED,CAAC,GAAE2U,GAAGhV,GAAEH,GAAEC,CAAC,KAAGuQ,GAAGrQ,GAAEA,EAAE,QAAO,GAAG,MAAKM,GAAED,CAAC,GAAME,MAAJ,KAAO,KAAK,WAAU,KAAI0K,GAAG,IAAI,KAAG,KAAK,OAAM;AAAA,MAAE;AAAA,IAAC;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,WAAW,GAAE;AAAC,WAAO,IAAI4J,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,UAAK,EAAC,SAAQ,EAAC,IAAE,MAAM,UAAU,CAAC;AAAE,QAAG,KAAGrJ,GAAG,CAAC,GAAE;AAAC,YAAM5L,IAAE,KAAK,UAAS;AAAG,MAAAA,IAAE,MAAI,EAAE,MAAM,qBAAmB,KAAGA,IAAE;AAAA,IAAK;AAAC,WAAM,EAAC,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,UAAS,CAAA,GAAG,WAAU,KAAK,aAAY,GAAG,QAAO,KAAK,iBAAgB,QAAO,KAAK,UAAS,GAAG,MAAK,WAAU,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE,GAAE;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,YAAW;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,gBAAgB,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,gBAAgB,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,eAAe,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,eAAe,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,aAAY;AAAC;EAAQ;AAAA,EAAC,sBAAqB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,qBAAoB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,WAAU;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,eAAc;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,aAAa,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,iBAAiB,GAAE,GAAEE,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,oBAAmB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,0BAA0B,GAAE,GAAE;AAAC,UAAMA,IAAE,KAAK,WAAW,CAAC;AAAE,QAAIC,IAAED,EAAE,cAAa;AAAG,aAAQF,IAAE,KAAK,iBAAgBA,GAAEA,IAAEA,EAAE,eAAc,GAAG;AAAC,YAAMI,IAAE,EAAE,gBAAgBJ,EAAE,OAAM,CAAE;AAAE,MAAOI,MAAP,SAAiBD,KAAN,QAASD,EAAE,YAAYE,CAAC,GAAED,IAAEC,KAAGD,MAAIC,KAAGF,EAAE,aAAaE,GAAED,CAAC,GAAEA,IAAEA,EAAE;AAAA,IAAY;AAAA,EAAC;AAAC;AAAC,SAASyH,EAAG5H,GAAE;AAAC,SAAOA,aAAamV;AAAE;AAAC,SAASC,GAAGpV,GAAEC,GAAEC,GAAE;AAAC,MAAI,IAAEF,EAAE;AAAU,SAAK,KAAG;AAAC,UAAMA,IAAE,EAAE;AAAM,QAAGC,EAAE,IAAID,CAAC,KAAG,CAACE,EAAE,IAAIF,CAAC,EAAE,QAAM;AAAG,QAAE,EAAE;EAAW;AAAC,SAAM;AAAE;AAAC,MAAMqV,WAAWzE,GAAE;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,CAAC;AAAA,EAAC;AAAA,EAAC,SAAS,GAAE,GAAE;AAAC,IAAAnL,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,WAAU;AAAC;EAAQ;AAAA,EAAC,uBAAsB;AAAC,WAAM;AAAA,EAAE;AAAC;AAAC,SAASiB,GAAG1G,GAAE;AAAC,SAAOA,aAAaqV;AAAE;AAAC,MAAMC,WAAWH,GAAE;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAM;AAAA,EAAC,OAAO,QAAO;AAAC,WAAO,IAAIG;AAAA,EAAE;AAAA,EAAC,cAAa;AAAC,UAAM,MAAM,GAAE,KAAK,eAAa;AAAA,EAAI;AAAA,EAAC,4BAA2B;AAAC,IAAA7P,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,iBAAgB;AAAC,UAAM,IAAE,KAAK;AAAa,WAAM,CAAC2D,GAAE,KAAI5B,KAAK,eAAa7D,MAAW,MAAP,OAAS,MAAM,mBAAiB;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,IAAA8B,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,QAAQ,GAAE;AAAC,IAAAA,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,IAAAA,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,IAAAA,EAAG,EAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE,GAAE;AAAC;EAAQ;AAAA,EAAC,UAAU,GAAE;AAAC,aAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;AAAC,YAAMvF,IAAE,EAAE,CAAC;AAAE,MAAA0H,EAAG1H,CAAC,KAAGwG,GAAGxG,CAAC,KAAGuF,EAAG,EAAE;AAAA,IAAC;AAAC,WAAO,MAAM,OAAO,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO,WAAW,GAAE;AAAC,UAAM,IAAE8D,GAAE;AAAG,WAAO,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,aAAa,EAAE,SAAS,GAAE;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,UAAS,CAAA,GAAG,WAAU,KAAK,aAAY,GAAG,QAAO,KAAK,cAAa,GAAG,QAAO,KAAK,UAAS,GAAG,MAAK,QAAO,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,kBAAiB;AAAC;EAAQ;AAAC;AAAC,SAAS0B,GAAGjL,GAAE;AAAC,SAAOA,aAAasV;AAAE;AAAC,SAASN,GAAGhV,GAAE;AAAC,SAAO,IAAIuV,GAAG,IAAI,IAAIvV,EAAE,QAAQ,CAAC;AAAC;AAAC,SAASwV,KAAI;AAAC,SAAO,IAAID,GAAG,oBAAI,IAAI,CAAC,CAAC,QAAO,IAAID,IAAE,CAAC,CAAC,CAAC;AAAC;AAAC,SAASG,GAAGzV,GAAE;AAAC,QAAMC,IAAED,EAAE,cAAaE,IAAEF,EAAE;AAAY,MAAGC,EAAE,SAAOC,EAAE,aAAWuF,EAAG,KAAIvF,EAAE,IAAI,GAAE0H,EAAG5H,CAAC,GAAE;AAAC,UAAM,IAAEC,EAAE;AAAS,UAAM,QAAQ,CAAC,KAAGwF,EAAG,IAAGvF,EAAE,IAAI;AAAE,UAAME,IAAEJ,EAAE;AAAc,aAAQA,IAAE,GAAEA,IAAEI,EAAE,QAAOJ,KAAI;AAAC,YAAMC,IAAEwV,GAAGrV,EAAEJ,CAAC,CAAC;AAAE,QAAE,KAAKC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,SAAOA;AAAC;AAAC,MAAMsV,GAAE;AAAA,EAAC,YAAY,GAAE,GAAE;AAAC,SAAK,WAAS,GAAE,KAAK,aAAW,KAAG,MAAK,KAAK,aAAW,IAAG,KAAK,YAAU;AAAA,EAAE;AAAA,EAAC,UAAS;AAAC,WAAW,KAAK,SAAS,SAAlB,KAA+B,KAAK,eAAZ;AAAA,EAAsB;AAAA,EAAC,KAAK,GAAE,GAAE;AAAC,WAAOb,GAAG,KAAG,EAAE,UAAQ,MAAK,MAAK,CAAC;AAAA,EAAC;AAAA,EAAC,MAAM,GAAE;AAAC,UAAM,IAAE,IAAIa,GAAG,KAAK,UAAkB,MAAT,SAAW,KAAK,aAAW,CAAC;AAAE,WAAO,EAAE,YAAU,IAAG;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAOb,GAAG,MAAK,MAAM,OAAK,EAAC,MAAKe,GAAGlM,GAAE,CAAE,EAAC,EAAE;AAAA,EAAE;AAAC;AAAC,MAAMmM,WAAWP,GAAE;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAY;AAAA,EAAC,UAAU,GAAE;AAAC,WAAO,SAAS,cAAc,KAAK;AAAA,EAAC;AAAC;AAAC,MAAMlF,WAAWkF,GAAE;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,CAAC,GAAE,KAAK,eAAa,GAAE,KAAK,cAAY;AAAA,EAAE;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAW;AAAA,EAAC,gBAAe;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAY;AAAA,EAAC,cAAc,GAAE;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,EAAE,eAAa,GAAE;AAAA,EAAC;AAAA,EAAC,cAAc,GAAE;AAAC,UAAM,IAAEjQ,GAAG,CAAC;AAAE,WAAM,CAAC,EAAE,KAAK,cAAa,IAAG;AAAA,EAAE;AAAA,EAAC,eAAe,GAAE,GAAE;AAAC,WAAOuD,GAAG,KAAK,UAAS,EAAG,cAAa,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,eAAc;AAAC,WAAO,KAAK,YAAY;AAAA,EAAW;AAAA,EAAC,aAAa,GAAE;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,WAAO,EAAE,cAAY,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,MAAM,GAAE;AAAC,WAAO,IAAIwH,GAAG,EAAE,KAAK;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE;AAAC,UAAM,eAAe,CAAC,GAAE,KAAK,eAAa,EAAE,cAAa,KAAK,cAAY,EAAE;AAAA,EAAW;AAAA,EAAC,UAAU,GAAE;AAAC,UAAM,IAAE,SAAS,cAAc,GAAG,GAAE/P,IAAEwK,GAAG,EAAE,OAAM,WAAW;AAAE,WAAYxK,MAAT,UAAY,EAAE,UAAU,IAAI,GAAGA,CAAC,GAAS;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE,GAAEA,GAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,OAAO,YAAW;AAAC,WAAM,EAAC,GAAE,QAAI,EAAC,YAAWyV,IAAG,UAAS,EAAC,GAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,UAAK,EAAC,SAAQ,EAAC,IAAE,MAAM,UAAU,CAAC;AAAE,QAAG,KAAG/J,GAAG,CAAC,GAAE;AAAC,WAAK,QAAO,KAAI,EAAE,OAAO,SAAS,cAAc,IAAI,CAAC;AAAE,YAAM5L,IAAE,KAAK;AAAgB,QAAE,MAAM,YAAUA;AAAE,YAAME,IAAE,KAAK;AAAe,MAAAA,MAAI,EAAE,MAAIA;AAAA,IAAE;AAAC,WAAM,EAAC,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,OAAO,WAAW,GAAE;AAAC,UAAM,IAAE4Q,GAAE;AAAG,WAAO,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,aAAa,EAAE,SAAS,GAAE,EAAE,cAAc,EAAE,UAAU,GAAE;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,GAAG,MAAM,WAAU,GAAG,YAAW,KAAK,cAAa,GAAG,WAAU,KAAK,aAAY,GAAG,MAAK,aAAY,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE,GAAE;AAAC,UAAM5Q,IAAE4Q,GAAE;AAAG,IAAA5Q,EAAE,cAAc,EAAE,MAAM,GAAEA,EAAE,aAAa,EAAE,KAAK;AAAE,UAAMC,IAAE,KAAK,aAAY;AAAG,WAAOD,EAAE,aAAaC,CAAC,GAAED,EAAE,UAAU,KAAK,cAAa,CAAE,GAAEA,EAAE,SAAS,KAAK,aAAY,CAAE,GAAE,KAAK,YAAYA,GAAE,CAAC,GAAEA;AAAA,EAAC;AAAA,EAAC,kBAAiB;AAAC,UAAM,IAAE,KAAK,YAAW;AAAG,QAAO,EAAE,WAAN,KAAc6G,EAAG,EAAE,CAAC,CAAC,KAAQ,EAAE,CAAC,EAAE,eAAc,EAAG,WAA3B,IAAkC;AAAC,UAAU,KAAK,eAAc,MAA1B,KAA6B,QAAO,KAAK,WAAU,GAAG,KAAK,OAAM,GAAG;AAAG,UAAU,KAAK,mBAAkB,MAA9B,KAAiC,QAAO,KAAK,eAAc,GAAG,KAAK,OAAM,GAAG;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAC;AAAC,SAAS4O,GAAG3V,GAAE;AAAC,QAAMC,IAAE6Q,GAAE;AAAG,SAAO9Q,EAAE,UAAQC,EAAE,UAAUD,EAAE,MAAM,SAAS,GAAEuM,GAAGvM,GAAEC,CAAC,IAAG,EAAC,MAAKA,EAAC;AAAC;AAAC,SAAS6Q,KAAI;AAAC,SAAOxF,GAAG,IAAI2E,IAAE;AAAC;AAAC,SAASrB,GAAG5O,GAAE;AAAC,SAAOA,aAAaiQ;AAAE;AAAM,MAAC2F,IAAG,GAAEC,KAAG,GAAYC,KAAG;AAAE,SAASlB,GAAG5U,GAAEC,GAAEC,GAAE,GAAE;AAAC,QAAME,IAAEJ,EAAE;AAAa,EAAAI,EAAE,MAAK,GAAGJ,EAAE,eAAawV,MAAKxV,EAAE,sBAAoB,GAAEA,EAAE,kBAAgB,MAAKA,EAAE,aAAW2D,IAAG3D,EAAE,gBAAgB,MAAK,GAAGA,EAAE,eAAa,oBAAI,OAAIA,EAAE,eAAe,SAAQA,EAAE,mBAAiB,oBAAI,OAAIA,EAAE,cAAY,oBAAI,OAAIA,EAAE,WAAS,CAAA,GAAGA,EAAE,sBAAoB;AAAK,QAAMK,IAAEL,EAAE;AAAU,EAAOK,MAAP,SAAWA,EAAE,WAAU,GAAGL,EAAE,YAAU,OAAaC,MAAP,SAAWA,EAAE,cAAY,KAAWC,MAAP,SAAWA,EAAE,cAAY,IAAGE,EAAE,IAAI,QAAOF,CAAC;AAAE;AAAC,SAAS6V,GAAG/V,GAAE;AAAC,QAAMC,IAAED,KAAG,CAAA,GAAGE,IAAEkU,GAAE,GAAG,IAAEnU,EAAE,SAAO,CAAA,GAAGG,IAAWJ,MAAT,SAAWE,IAAED,EAAE,gBAAc,MAAKI,IAAEJ,EAAE,iBAAe,IAAGK,IAAEkV,GAAE,GAAGjV,IAAEN,EAAE,cAAmBG,MAAP,OAASA,EAAE,QAAQ,YAAUwJ,OAAMpJ,IAAEP,EAAE,aAAYQ,IAAE,CAAC6U,IAAG7D,IAAGV,IAAGuB,IAAGrC,IAAGyF,IAAG,GAAGzV,EAAE,SAAO,CAAA,CAAE,GAAE,EAAC,SAAQS,GAAE,MAAKC,EAAC,IAAEV,GAAEW,IAAWX,EAAE,aAAX,UAAqBA,EAAE;AAAS,MAAIY;AAAE,MAAYb,MAAT,UAAmBE,MAAP,KAAS,CAAAW,IAAEX,EAAE;AAAA,OAAW;AAAC,IAAAW,IAAE,oBAAI;AAAI,aAAQb,IAAE,GAAEA,IAAES,EAAE,QAAOT,KAAI;AAAC,UAAIC,IAAEQ,EAAET,CAAC,GAAEE,IAAE,MAAKC,IAAE;AAAK,UAAe,OAAOF,KAAnB,YAAqB;AAAC,cAAMD,IAAEC;AAAE,QAAAA,IAAED,EAAE,SAAQE,IAAEF,EAAE,MAAKG,IAAEH,EAAE,aAAW;AAAA,MAAI;AAAC,YAAMI,IAAEH,EAAE,QAAO,GAAGI,IAAEJ,EAAE,UAAS,GAAGK,IAAE,oBAAI;AAAI,MAAOD,MAAP,QAAUC,EAAE,IAAID,CAAC,GAAEQ,EAAE,IAAIT,GAAE,EAAC,WAAUO,KAAGA,EAAE,SAAOA,EAAE,OAAO,IAAIV,CAAC,IAAE,QAAO,OAAMA,GAAE,SAAQC,GAAE,kBAAiBC,GAAE,YAAWG,EAAC,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,QAAMQ,IAAE,IAAIuH,GAAG/H,GAAEF,GAAES,GAAE,EAAC,eAAcR,GAAE,WAAUE,GAAE,OAAM,EAAC,GAAEG,KAAG,QAAQ,OAAM,SAASV,GAAEC,GAAE;AAAC,UAAMC,IAAE,oBAAI,OAAIC,IAAE,oBAAI,OAAIC,IAAE,CAAAJ,MAAG;AAAC,aAAO,KAAKA,CAAC,EAAE,QAAS,CAAAC,MAAG;AAAC,YAAIE,IAAED,EAAE,IAAID,CAAC;AAAE,QAASE,MAAT,WAAaA,IAAE,CAAA,GAAGD,EAAE,IAAID,GAAEE,CAAC,IAAGA,EAAE,KAAKH,EAAEC,CAAC,CAAC;AAAA,MAAC,CAAC;AAAA,IAAE;AAAE,WAAOD,EAAE,QAAS,CAAAA,MAAG;AAAC,YAAMC,IAAED,EAAE,MAAM;AAAU,UAASC,KAAN,QAASE,EAAE,IAAIF,CAAC,EAAE;AAAO,MAAAE,EAAE,IAAIF,CAAC;AAAE,YAAMC,IAAED,EAAE,KAAKD,EAAE,KAAK;AAAE,MAAOE,MAAP,QAAUE,EAAEF,CAAC;AAAA,IAAC,CAAC,GAAGD,KAAGG,EAAEH,CAAC,GAAEC;AAAA,EAAC,EAAEW,GAAEF,IAAEA,EAAE,SAAO,MAAM,GAAEC,CAAC;AAAE,SAAgBJ,MAAT,WAAaM,EAAE,sBAAoBN,GAAEM,EAAE,aAAW+C,KAAI/C;AAAC;AAAC,MAAMuH,GAAE;AAAA,EAAC,YAAY,GAAE,GAAEnI,GAAEC,GAAE,GAAE,GAAE,GAAE;AAAC,SAAK,gBAAc,GAAE,KAAK,eAAa,MAAK,KAAK,eAAa,GAAE,KAAK,sBAAoB,MAAK,KAAK,kBAAgB,MAAK,KAAK,YAAU,CAAA,GAAG,KAAK,eAAa,oBAAI,OAAI,KAAK,WAAS,IAAG,KAAK,YAAU,IAAG,KAAK,aAAW,EAAC,WAAU,oBAAI,OAAI,UAAS,oBAAI,OAAI,UAAS,oBAAI,OAAI,MAAK,oBAAI,OAAI,aAAY,oBAAI,OAAI,QAAO,oBAAI,MAAG,GAAE,KAAK,YAAU,oBAAI,OAAI,KAAK,UAAQA,GAAE,KAAK,SAAOD,GAAE,KAAK,cAAY,IAAG,KAAK,qBAAmB,MAAK,KAAK,aAAWyD,IAAG,KAAK,kBAAgB,oBAAI,OAAI,KAAK,eAAa,oBAAI,OAAI,KAAK,iBAAe,oBAAI,OAAI,KAAK,mBAAiB,oBAAI,OAAI,KAAK,cAAY,oBAAI,OAAI,KAAK,YAAU,MAAK,KAAK,OAAKiG,GAAE,GAAG,KAAK,WAAS,GAAE,KAAK,mBAAiB,GAAE,KAAK,YAAU,GAAE,KAAK,YAAiB,MAAP,QAAU,EAAE,WAAU,KAAK,UAAQ,MAAK,KAAK,sBAAoB;AAAA,EAAI;AAAA,EAAC,cAAa;AAAC,WAAa,KAAK,mBAAX;AAAA,EAA0B;AAAA,EAAC,uBAAuB,GAAE;AAAC,UAAM,IAAE,KAAK,WAAW;AAAO,WAAO,EAAE,IAAI,CAAC,GAAE,MAAI;AAAC,QAAE,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,yBAAyB,GAAE;AAAC,UAAM,IAAE,KAAK,WAAW;AAAS,WAAO,EAAE,IAAI,CAAC,GAAE,MAAI;AAAC,QAAE,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,0BAA0B,GAAE;AAAC,UAAM,IAAE,KAAK,WAAW;AAAU,WAAO,EAAE,IAAI,CAAC,GAAE,MAAI;AAAC,QAAE,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,4BAA4B,GAAE;AAAC,UAAM,IAAE,KAAK,WAAW;AAAY,WAAO,EAAE,IAAI,CAAC,GAAE,MAAI;AAAC,QAAE,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,qBAAqB,GAAE;AAAC,UAAM,IAAE,KAAK,WAAW;AAAK,WAAO,EAAE,KAAK,cAAa,IAAI,GAAE,EAAE,IAAI,CAAC,GAAE,MAAI;AAAC,QAAE,MAAK,KAAK,YAAY,GAAE,EAAE,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,gBAAgB,GAAE,GAAE1J,GAAE;AAAC,IAASA,MAAT,UAAYuF,EAAG,EAAE;AAAE,UAAMtF,IAAE,KAAK;AAAU,IAAAA,EAAE,IAAI,CAAC,KAAGA,EAAE,IAAI,GAAE,CAAC,oBAAI,OAAI,oBAAI,OAAI,oBAAI,OAAI,oBAAI,OAAI,oBAAI,KAAG,CAAC;AAAE,UAAM,IAAEA,EAAE,IAAI,CAAC;AAAE,IAAS,MAAT,UAAYsF,EAAG,IAAG,OAAO,CAAC,CAAC;AAAE,UAAM,IAAE,EAAEvF,CAAC;AAAE,WAAO,EAAE,IAAI,CAAC,GAAE,MAAI;AAAC,QAAE,OAAO,CAAC,GAAE,EAAE,MAAO,CAAAF,MAAOA,EAAE,SAAN,CAAU,KAAIG,EAAE,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,yBAAyB,GAAE,GAAED,GAAE;AAAC,UAAMC,IAAE,KAAK,uCAAuC,KAAK,kBAAkB,CAAC,CAAC,EAAE,OAAM,IAAE,KAAK,WAAW;AAAS,MAAE,IAAI,GAAEA,CAAC;AAAE,UAAM,IAAED,KAAGA,EAAE;AAAmB,WAAgB,MAAT,UAAY,KAAG,KAAK,2BAA2B,GAAEC,CAAC,GAAE,MAAI;AAAC,QAAE,OAAO,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,kBAAkB,GAAE;AAAC,UAAM,IAAE,KAAK,OAAO,IAAI,EAAE,SAAS;AAAE,WAAgB,MAAT,UAAYsF,EAAG,IAAG,EAAE,IAAI,GAAE;AAAA,EAAC;AAAA,EAAC,uCAAuC,GAAE;AAAC,WAAK,EAAE,mBAAkB,KAAE,KAAK,kBAAkB,EAAE,gBAAgB;AAAE,WAAO;AAAA,EAAC;AAAA,EAAC,2BAA2B,GAAE,GAAE;AAAC,UAAMvF,IAAE,KAAK,cAAaC,IAAEkM,GAAGnM,CAAC,EAAE,IAAI,EAAE,QAAO,CAAE;AAAE,QAAG,CAACC,EAAE;AAAO,UAAM,IAAE,oBAAI;AAAI,eAAUH,KAAKG,EAAE,KAAI,EAAG,GAAE,IAAIH,GAAE,SAAS;AAAE,MAAE,OAAK,KAAG,EAAE,GAAE,EAAC,aAAY,oBAAI,OAAI,iBAAgBE,GAAE,YAAW,oBAAI,IAAI,CAAC,0BAA0B,CAAC,EAAC,CAAC;AAAA,EAAC;AAAA,EAAC,6BAA6B,GAAE,GAAE;AAAC,UAAMA,IAAE,KAAK,kBAAkB,CAAC;AAAE,WAAOA,EAAE,WAAW,IAAI,CAAC,GAAEA;AAAA,EAAC;AAAA,EAAC,sBAAsB,GAAE,GAAE;AAAC,UAAMA,IAAE,KAAK,6BAA6B,GAAE,CAAC,GAAEC,IAAE,CAACD,CAAC,GAAE,IAAEA,EAAE;AAAiB,QAAS,KAAN,MAAQ;AAAC,YAAMF,IAAE,KAAK,6BAA6B,GAAE,CAAC;AAAE,MAAAG,EAAE,KAAKH,CAAC;AAAA,IAAC;AAAC,QAAI,GAAE;AAAE,WAAO,IAAE,MAAK,IAAE,EAAE,WAAU6G,GAAG,GAAG,MAAI;AAAC,YAAM7G,IAAE+I,GAAE;AAAG,UAAG/I,EAAE,UAAU;AAAO,UAAY,MAAT,OAAW,QAAO,KAAKuJ,GAAE,EAAG,UAAS;AAAG,YAAMtJ,IAAED,EAAE;AAAS,iBAAS,CAAA,EAAEA,CAAC,KAAIC,EAAE,CAAAD,EAAE;IAAW,GAAU,EAAE,wBAAT,OAA6B,EAAC,KAAI,gBAAe,IAAE,MAAM,GAAE,MAAI;AAAC,MAAAG,EAAE,QAAS,CAAAH,MAAGA,EAAE,WAAW,OAAO,CAAC,CAAC;AAAA,IAAE;AAAA,EAAC;AAAA,EAAC,QAAQ,GAAE;AAAC,WAAO,KAAK,OAAO,IAAI,EAAE,SAAS;AAAA,EAAC;AAAA,EAAC,SAAS,GAAE;AAAC,WAAO,EAAE,MAAM,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,EAAC;AAAA,EAAC,gBAAgB,GAAE,GAAE;AAAC,WAAO8K,EAAG,MAAK,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,WAAO,KAAK;AAAA,EAAW;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK;AAAA,EAAY;AAAA,EAAC,SAAQ;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,eAAe,GAAE;AAAC,UAAM,IAAE,KAAK;AAAa,QAAG,MAAI,GAAE;AAAC,YAAM5K,IAAEwK,GAAG,KAAK,QAAQ,OAAM,MAAM,GAAEvK,IAAE,KAAK,uBAAqB,KAAK;AAAa,UAAG,KAAK,eAAa,GAAEyU,GAAG,MAAK,GAAE,GAAEzU,CAAC,GAAS,MAAP,SAAW,KAAK,QAAQ,iBAAeoQ,GAAG,CAAC,GAAQrQ,KAAN,QAAS,EAAE,UAAU,OAAO,GAAGA,CAAC,IAAU,MAAP,MAAS;AAAC,cAAMD,IAAE,SAASD,GAAE;AAAC,gBAAMC,IAAED,EAAE;AAAc,iBAAOC,KAAGA,EAAE,eAAa;AAAA,QAAI,EAAE,CAAC,GAAEE,IAAE,EAAE;AAAM,QAAAA,EAAE,aAAW,QAAOA,EAAE,aAAW,YAAWA,EAAE,YAAU,cAAa,EAAE,aAAa,uBAAsB,MAAM,GAAE,KAAK,UAAQF,GAAE,KAAK,aAAW4D,IAAGuD,GAAG,IAAI,GAAE,KAAK,YAAY,IAAI,eAAe,GAAEuN,GAAG,IAAI,GAAE,KAAK,QAAQ,iBAAe,SAAS3U,GAAEC,GAAE;AAAC,gBAAMC,IAAEF,EAAE,eAAcG,IAAEyP,GAAG,IAAI1P,CAAC;AAAE,WAAUC,MAAT,UAAYA,IAAE,MAAID,EAAE,iBAAiB,mBAAkBkQ,EAAE,GAAER,GAAG,IAAI1P,IAAGC,KAAG,KAAG,CAAC,GAAEH,EAAE,kBAAgBC;AAAE,gBAAMG,IAAE8P,GAAGlQ,CAAC;AAAE,mBAAQE,IAAE,GAAEA,IAAE8O,GAAG,QAAO9O,KAAI;AAAC,kBAAK,CAACC,GAAEE,CAAC,IAAE2O,GAAG9O,CAAC,GAAEI,IAAc,OAAOD,KAAnB,aAAqB,CAAAL,MAAG;AAAC,cAAAsQ,GAAGtQ,CAAC,MAAIqQ,GAAGrQ,CAAC,IAAGC,EAAE,WAAU,KAAcE,MAAV,YAAcE,EAAEL,GAAEC,CAAC;AAAA,YAAE,IAAE,CAAAD,MAAG;AAAC,kBAAGsQ,GAAGtQ,CAAC,EAAE;AAAO,cAAAqQ,GAAGrQ,CAAC;AAAE,oBAAME,IAAED,EAAE,WAAU;AAAG,sBAAOE,GAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOD,KAAG4K,EAAG7K,GAAEoC,IAAErC,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAO8K,EAAG7K,GAAEmC,IAAEpC,CAAC;AAAA,gBAAE,KAAI;AAAQ,yBAAOE,KAAG4K,EAAG7K,GAAEO,IAAER,CAAC;AAAA,gBAAE,KAAI;AAAY,yBAAOE,KAAG4K,EAAG7K,GAAEgC,IAAEjC,CAAC;AAAA,gBAAE,KAAI;AAAW,yBAAOE,KAAG4K,EAAG7K,GAAEiC,IAAElC,CAAC;AAAA,gBAAE,KAAI;AAAU,yBAAOE,KAAG4K,EAAG7K,GAAEkC,IAAEnC,CAAC;AAAA,gBAAE,KAAI;AAAQ,yBAAOE,KAAG4K,EAAG7K,GAAE0C,IAAE3C,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOE,KAAG4K,EAAG7K,GAAE2C,IAAE5C,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOE,KAAG4K,EAAG7K,GAAE8B,IAAE/B,CAAC;AAAA,cAAC;AAAA,YAAC;AAAE,YAAAA,EAAE,iBAAiBG,GAAEG,CAAC,GAAEF,EAAE,KAAM,MAAI;AAAC,cAAAJ,EAAE,oBAAoBG,GAAEG,CAAC;AAAA,YAAC,CAAC;AAAA,UAAE;AAAA,QAAC,EAAE,GAAE,IAAI,GAAQJ,KAAN,QAAS,EAAE,UAAU,IAAI,GAAGA,CAAC;AAAA,MAAC,MAAM,MAAK,eAAaC,GAAE,KAAK,sBAAoB,MAAK,KAAK,UAAQ;AAAK,MAAA0U,GAAG,QAAO,MAAK,IAAG,GAAE,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,gBAAgB,GAAE;AAAC,WAAO,KAAK,aAAa,IAAI,CAAC,KAAG;AAAA,EAAI;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK;AAAA,EAAY;AAAA,EAAC,eAAe,GAAE,GAAE;AAAC,MAAE,aAAWpP,EAAG,EAAE;AAAE,QAAIvF,IAAE;AAAE,IAAAA,EAAE,cAAYA,IAAE8U,GAAG,CAAC,GAAE9U,EAAE,aAAW,EAAE,aAAW,EAAE,WAAW,UAAQ,OAAMiH,GAAG,IAAI;AAAE,UAAMhH,IAAE,KAAK,qBAAoB,IAAE,KAAK,aAAY,IAAW,MAAT,SAAW,EAAE,MAAI;AAAK,IAAOA,MAAP,QAAUA,EAAE,QAAO,MAAW,KAAN,QAAS,EAAE,IAAI,CAAC,GAAEwU,GAAG,IAAI,IAAG,KAAK,sBAAoBzU,GAAE,KAAK,aAAW2D,IAAG,KAAK,eAAe,IAAI,QAAO,EAAE,GAAE,KAAK,kBAAgB,MAAW,KAAN,QAAS,EAAE,IAAI,CAAC,GAAE,KAAK,aAAW8Q,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,iBAAiB,GAAE,GAAE;AAAC,WAAO,SAAS3U,GAAEC,GAAEC,GAAE;AAAC,YAAMC,IAAEqV,MAAKpV,IAAEyT,IAAGxT,IAAE0T,IAAGzT,IAAEwT,IAAGvT,IAAEN,EAAE,gBAAeO,IAAEP,EAAE,cAAaQ,IAAER,EAAE,iBAAgBS,IAAET,EAAE;AAAW,MAAAA,EAAE,iBAAe,oBAAI,OAAIA,EAAE,eAAa,oBAAI,OAAIA,EAAE,kBAAgB,oBAAI,OAAIA,EAAE,aAAW,GAAE4T,KAAG1T,GAAE4T,KAAG,IAAGD,KAAG7T;AAAE,UAAG;AAAC,cAAMG,IAAEH,EAAE;AAAO,QAAAwU,GAAGzU,EAAE,MAAKI,CAAC,GAAEF,KAAGA,EAAC,GAAGC,EAAE,YAAU;AAAA,MAAE,SAAOH,GAAE;AAAC,QAAAA,aAAa,SAAOC,EAAE,SAASD,CAAC;AAAA,MAAC,UAAC;AAAQ,QAAAC,EAAE,iBAAeM,GAAEN,EAAE,eAAaO,GAAEP,EAAE,kBAAgBQ,GAAER,EAAE,aAAWS,GAAEmT,KAAGzT,GAAE2T,KAAG1T,GAAEyT,KAAGxT;AAAA,MAAC;AAAC,aAAOH;AAAA,IAAC,EAAY,OAAO,KAAjB,WAAmB,KAAK,MAAM,CAAC,IAAE,GAAE,MAAK,CAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE;AAAC,WAAOwU,GAAG,IAAI,GAAE,KAAK,eAAc,EAAG,KAAK,GAAE,EAAC,QAAO,KAAI,CAAC;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE,GAAE;AAAC,IAAA9N,GAAG,MAAK,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,MAAM,GAAE,IAAE,CAAA,GAAG;AAAC,UAAM3G,IAAE,KAAK;AAAa,IAAOA,MAAP,SAAWA,EAAE,aAAa,kBAAiB,KAAK,GAAE2G,GAAG,MAAM,MAAI;AAAC,YAAM7G,IAAE8G,EAAE,GAAG5G,IAAEqJ,GAAE;AAAG,MAAOvJ,MAAP,OAASA,EAAE,QAAM,KAAOE,EAAE,sBAAN,MAAwC,EAAE,qBAAhB,cAAiCA,EAAE,YAAW,IAAGA,EAAE,UAAS;AAAA,IAAG,GAAG,EAAC,UAAS,MAAI;AAAC,MAAAA,EAAE,gBAAgB,gBAAgB,GAAE,KAAG,EAAC;AAAA,IAAE,GAAE,KAAI,QAAO,CAAC,GAAS,KAAK,wBAAZ,QAAiCA,EAAE,gBAAgB,gBAAgB;AAAA,EAAE;AAAA,EAAC,OAAM;AAAC,UAAM,IAAE,KAAK;AAAa,IAAO,MAAP,QAAU,EAAE,KAAI;AAAG,UAAM,IAAEgG,GAAG,KAAK,OAAO;AAAE,IAAO,MAAP,QAAU,EAAE;EAAiB;AAAA,EAAC,aAAY;AAAC,WAAO,KAAK;AAAA,EAAS;AAAA,EAAC,YAAY,GAAE;AAAC,SAAK,cAAY,MAAI,KAAK,YAAU,GAAE2O,GAAG,YAAW,MAAK,IAAG,CAAC;AAAA,EAAE;AAAA,EAAC,SAAQ;AAAC,WAAM,EAAC,aAAY,KAAK,aAAa,OAAM,EAAE;AAAA,EAAC;AAAC;AAACxM,GAAG,UAAQ;ACAj2nG,SAASnH,GAAElB,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAOkB,GAAG,SAASlB,GAAE;AAAC,QAAMC,IAAE,IAAI;AAAgB,EAAAA,EAAE,OAAO,QAAOD,CAAC;AAAE,WAAQA,IAAE,GAAEA,IAAE,UAAU,QAAOA,IAAI,CAAAC,EAAE,OAAO,KAAI,UAAUD,CAAC,CAAC;AAAE,QAAM,MAAM,2BAA2BA,CAAC,0CAA0CC,CAAC,gHAAgH;AAAC,CAAC;AAAG,MAAMkB,KAAE,oBAAI;AAAoqC,SAASO,GAAE1B,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,MAAG,CAACD,EAAE,QAAOC;AAAE,QAAMC,IAAEF,EAAE,MAAM,GAAG;AAAE,aAAUA,KAAKE,EAAE,KAAQF,MAAL,IAAO;AAAC,UAAK,CAACE,GAAEK,CAAC,IAAEP,EAAE,MAAM,SAAS;AAAE,IAAAE,KAAGK,MAAIN,EAAEC,EAAE,KAAI,CAAE,IAAEK,EAAE,KAAI;AAAA,EAAG;AAAC,SAAON;AAAC;AAAiJ,SAAS6B,GAAE9B,GAAEE,GAAE;AAAC,QAAMK,IAAEP,EAAE,kBAAiB;AAAG,MAAGE,EAAE,WAAWF,CAAC,KAAG,CAACE,EAAE,YAAW,KAAI,CAACA,EAAE,QAAO,KAAWK,MAAP,MAAS;AAAC,UAAK,CAACD,GAAEH,CAAC,IAAEI,GAAEF,IAAEL,EAAE,WAAU,GAAGI,IAAEE,EAAE,QAAO,GAAGE,IAAEL,EAAE,QAAO,GAAGQ,IAAET,EAAE,GAAGE,CAAC,GAAEM,IAAER,EAAE,GAAGM,CAAC;AAAE,QAAGG,KAAGD,GAAE;AAAC,YAAK,CAACH,GAAED,CAAC,IAAEL,GAAED,CAAC,GAAEG,IAAEC,EAAE,GAAGI,CAAC,GAAEG,IAAET,EAAE,GAAGG,IAAEG,IAAEJ,CAAC,GAAEM,IAAER,EAAE,GAAGG,IAAED,IAAEI,CAAC;AAAE,UAAIM,GAAEL,IAAE;AAAE,aAAGN,KAAEM,IAAEF,IAAED,IAAEA,IAAEC,GAAEO,IAAEP,IAAED,IAAEC,IAAED,KAAUK,KAAGF,IAAEJ,IAAEC,IAAEC,GAAEO,IAAE,UAAeJ,MAAGD,IAAE,GAAEK,IAAET,IAAEE,IAAED,IAASJ,EAAE,SAAOA,EAAE,OAAO,MAAMO,GAAEK,CAAC,GAAEZ;AAAA,IAAC;AAAA,EAAC;AAAC,SAAOA;AAAC;AAAmxC,SAAS8B,GAAEhC,GAAE;AAAC,QAAMC,IAAED,EAAE,SAAQ,GAAGE,IAAEwB,GAAEzB,CAAC;AAAEkB,EAAAA,GAAE,IAAIlB,GAAEC,CAAC;AAAC;AAAy+H,SAAS6B,GAAE/B,GAAEC,GAAE;AAAC,QAAMM,IAAES,GAAEhB,EAAE,OAAMC,CAAC;AAAE,SAAOY,GAAEN,CAAC,KAAG,CAACA,EAAE,WAAU,KAAIL,EAAEK,CAAC,KAAG,CAACA,EAAE,cAAY,CAACA,EAAE,WAAU;AAAE;AAAC,SAAS0B,GAAEjC,GAAEC,GAAEC,GAAEK,GAAE;AAAC,EAAAP,EAAE,OAAOC,IAAE,WAAS,QAAOC,GAAEK,CAAC;AAAC;AAAC,SAAS2B,GAAElC,GAAE;AAAC,QAAMC,IAAED,EAAE,OAAO,QAAO;AAAG,UAAeO,GAAEN,CAAC,IAAEA,IAAEA,EAAE,iBAAgB,GAAI,aAAY,MAAlD;AAAoD;AAAC,SAAS0C,GAAE3C,GAAEC,GAAEC,GAAE;AAAC,QAAMK,IAAE2B,GAAElC,CAAC;AAAEiC,EAAAA,GAAEjC,GAAEC,GAAEC,IAAE,CAACK,IAAEA,GAAE,WAAW;AAAC;ACAh1P,SAASS,GAAEhB,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAC,IAAIa,KAAEG,GAAG,SAAShB,GAAE;AAAC,QAAMC,IAAE,IAAI;AAAgB,EAAAA,EAAE,OAAO,QAAOD,CAAC;AAAE,WAAQA,IAAE,GAAEA,IAAE,UAAU,QAAOA,IAAI,CAAAC,EAAE,OAAO,KAAI,UAAUD,CAAC,CAAC;AAAE,QAAM,MAAM,2BAA2BA,CAAC,0CAA0CC,CAAC,gHAAgH;AAAC,CAAC;AAAQ,MAACiB,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,UAAmC,OAAO,SAAS,kBAAzB,QAAuCE,KAAEF,MAAG,kBAAiB,WAAS,SAAS,eAAa;AAA8H,EAAE,CAACA,MAAG,EAAE,gBAAe,WAASE,OAAI,qBAAoB,IAAI,OAAO,WAAW,OAAO;AAA6R,SAASE,MAAKtB,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,aAAUC,KAAKF,EAAE,KAAGE,KAAa,OAAOA,KAAjB,SAAmB,YAAS,CAACF,CAAC,KAAIE,EAAE,SAAS,MAAM,EAAE,CAAAD,EAAE,KAAKD,CAAC;AAAE,SAAOC;AAAC;AAAC,SAAS0B,MAAK3B,GAAE;AAAC,SAAM,MAAI;AAAC,aAAQC,IAAED,EAAE,SAAO,GAAEC,KAAG,GAAEA,IAAI,CAAAD,EAAEC,CAAC,EAAC;AAAG,IAAAD,EAAE,SAAO;AAAA,EAAC;AAAC;AAAsyF,SAASuC,GAAEvC,MAAKC,GAAE;AAAC,QAAMC,IAAEoB,GAAE,GAAGrB,CAAC;AAAE,EAAAC,EAAE,SAAO,KAAGF,EAAE,UAAU,IAAI,GAAGE,CAAC;AAAC;AAAC,SAAS4C,GAAE9C,MAAKC,GAAE;AAAC,QAAMC,IAAEoB,GAAE,GAAGrB,CAAC;AAAE,EAAAC,EAAE,SAAO,KAAGF,EAAE,UAAU,OAAO,GAAGE,CAAC;AAAC;AAA8tC,SAASqD,GAAGvD,GAAEC,GAAE;AAAC,MAAIC,IAAEF;AAAE,SAAWE,KAAN,QAAS;AAAC,QAAGA,aAAaD,EAAE,QAAOC;AAAE,IAAAA,IAAEA,EAAE,UAAS;AAAA,EAAE;AAAC,SAAO;AAAI;AAAC,SAASsD,GAAGxD,GAAE;AAAC,QAAMC,IAAE2D,GAAG5D,GAAG,CAAAA,MAAGI,EAAEJ,CAAC,KAAG,CAACA,EAAE,SAAQ,CAAE;AAAG,SAAOI,EAAEH,CAAC,KAAGY,GAAE,GAAEb,EAAE,KAAK,GAAEC;AAAC;AAAC,MAAM2D,KAAG,CAAC5D,GAAEC,MAAI;AAAC,MAAIC,IAAEF;AAAE,SAAKE,MAAIC,GAAC,KAAUD,KAAN,QAAS;AAAC,QAAGD,EAAEC,CAAC,EAAE,QAAOA;AAAE,IAAAA,IAAEA,EAAE,UAAS;AAAA,EAAE;AAAC,SAAO;AAAI;AAA+vC,SAAS8D,GAAGhE,GAAEC,GAAE;AAAC,SAAcD,MAAP,QAAU,OAAO,eAAeA,CAAC,EAAE,YAAY,SAAOC,EAAE;AAAI;ACAvhO,SAASY,GAAEb,GAAEE,GAAE;AAAC,QAAM,IAAEA,EAAE,OAAKA,EAAE,KAAK,aAAW,CAAA;AAAG,MAAII,IAAE,CAAA;AAAG,QAAMC,IAAE,CAAA;AAAG,WAAQL,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,UAAMC,IAAE,EAAED,CAAC;AAAE,QAAG,CAACiB,GAAE,IAAIhB,EAAE,QAAQ,GAAE;AAAC,YAAMD,IAAEe,GAAEd,GAAEH,GAAEO,GAAE,EAAE;AAAE,MAAOL,MAAP,SAAWI,IAAEA,EAAE,OAAOJ,CAAC;AAAA,IAAE;AAAA,EAAC;AAAC,SAAO,SAASF,GAAE;AAAC,eAAUE,KAAKF,EAAE,CAAAE,EAAE,eAAc,aAAaO,MAAGP,EAAE,YAAYS,GAAC,CAAE;AAAE,eAAUT,KAAKF,GAAE;AAAC,YAAMA,IAAEE,EAAE,YAAW;AAAG,iBAAUD,KAAKD,EAAE,CAAAE,EAAE,aAAaD,CAAC;AAAE,MAAAC,EAAE,OAAM;AAAA,IAAE;AAAA,EAAC,EAAEK,CAAC,GAAED;AAAC;AAAC,SAASY,GAAElB,GAAEE,GAAE;AAAC,MAAgB,OAAO,WAApB,OAA2C,OAAO,SAApB,OAAqC,OAAO,WAAhB,OAAuB,OAAM,IAAI,MAAM,gJAAgJ;AAAE,QAAM,IAAE,SAAS,cAAc,KAAK,GAAEK,IAAED,GAAC,EAAG,YAAW;AAAG,WAAQA,IAAE,GAAEA,IAAEC,EAAE,QAAOD;AAAKQ,IAAAA,GAAEd,GAAEO,EAAED,CAAC,GAAE,GAAEJ,CAAC;AAAE,SAAO,EAAE;AAAS;AAAC,SAASY,GAAEb,GAAEK,GAAEE,GAAEE,IAAE,MAAK;AAAC,MAAIC,IAASD,MAAP,QAAUJ,EAAE,WAAWI,CAAC;AAAE,QAAMD,IAAEF,EAAED,CAAC,KAAGA,EAAE,gBAAgB,MAAM;AAAE,MAAIM,IAAEN;AAAE,MAAUI,MAAP,MAAS;AAAC,QAAIR,IAAEC,GAAEG,CAAC;AAAE,IAAAJ,IAAEE,EAAEF,CAAC,KAAUQ,MAAP,OAASV,GAAEU,GAAER,CAAC,IAAEA,GAAEU,IAAEV;AAAA,EAAC;AAAC,QAAMc,IAAET,EAAEK,CAAC,IAAEA,EAAE,YAAW,IAAG,IAAGC,IAAEZ,EAAE,OAAO,IAAIW,EAAE,QAAO,CAAE;AAAE,MAAIM;AAAE,EAAAA,IAAEL,KAAYA,EAAE,cAAX,SAAqBA,EAAE,UAAUZ,GAAEW,CAAC,IAAEA,EAAE,UAAUX,CAAC;AAAE,QAAK,EAAC,SAAQkB,GAAE,OAAMF,EAAC,IAAEC;AAAE,MAAG,CAACC,EAAE,QAAM;AAAG,QAAMO,IAAE,SAAS,uBAAsB;AAAG,WAAQ1B,IAAE,GAAEA,IAAEgB,EAAE,QAAOhB,KAAI;AAAC,UAAME,IAAEc,EAAEhB,CAAC,GAAEG,IAAEW,GAAEb,GAAEC,GAAEwB,GAAEhB,CAAC;AAAE,KAACC,KAAGJ,EAAED,CAAC,KAAGH,KAAGG,EAAE,iBAAiBJ,GAAEQ,GAAE,MAAM,MAAIC,IAAE;AAAA,EAAG;AAAC,MAAGA,KAAG,CAACF;AAAG,SAAIP,GAAEiB,CAAC,KAAGd,GAAEc,CAAC,MAAIA,EAAE,OAAOO,CAAC,GAAElB,EAAE,OAAOW,CAAC,GAAEF,GAAE;AAAC,YAAMjB,IAAEiB,EAAE,KAAKL,GAAEO,CAAC;AAAE,MAAAnB,MAAIK,GAAEc,CAAC,IAAEA,EAAE,gBAAgBnB,CAAC,IAAEmB,EAAE,YAAYnB,CAAC;AAAA,IAAE;AAAA,QAAO,CAAAQ,EAAE,OAAOkB,CAAC;AAAE,SAAOf;AAAC;AAAC,MAAMQ,KAAE,oBAAI,IAAI,CAAC,SAAQ,QAAQ,CAAC;AAAE,SAASF,GAAEjB,GAAEE,GAAEI,GAAE,GAAEF,IAAE,oBAAI,OAAIC,GAAE;AAAC,MAAIQ,IAAE;AAAG,MAAGM,GAAE,IAAInB,EAAE,QAAQ,EAAE,QAAOa;AAAE,MAAIK,IAAE;AAAK,QAAMJ,IAAE,SAASd,GAAEE,GAAE;AAAC,UAAK,EAAC,UAASD,EAAC,IAAED,GAAEM,IAAEJ,EAAE,iBAAiB,IAAID,EAAE,YAAW,CAAE;AAAE,QAAIM,IAAE;AAAK,QAAYD,MAAT,OAAW,YAAUJ,KAAKI,GAAE;AAAC,YAAML,IAAEC,EAAEF,CAAC;AAAE,MAAOC,MAAP,SAAkBM,MAAP,SAAWA,EAAE,YAAU,OAAKN,EAAE,YAAU,QAAMM,IAAEN;AAAA,IAAE;AAAC,WAAcM,MAAP,OAASA,EAAE,aAAW;AAAA,EAAI,EAAEP,GAAEE,CAAC,GAAEuB,IAAEX,IAAEA,EAAEd,CAAC,IAAE;AAAK,MAAIsB,IAAE;AAAK,MAAUG,MAAP,MAAS;AAAC,IAAAH,IAAEG,EAAE;AAAM,UAAMvB,IAAEuB,EAAE;AAAK,QAAGP,IAAE,MAAM,QAAQhB,CAAC,IAAEA,EAAEA,EAAE,SAAO,CAAC,IAAEA,GAASgB,MAAP,MAAS;AAAC,iBAAS,GAAElB,CAAC,KAAII,EAAE,KAAGc,IAAElB,EAAEkB,GAAEb,CAAC,GAAE,CAACa,EAAE;AAAM,MAAAA,KAAGL,EAAE,KAAK,GAAG,MAAM,QAAQX,CAAC,IAAEA,IAAE,CAACgB,CAAC,CAAC;AAAA,IAAC;AAAC,IAAMO,EAAE,YAAR,QAAkBrB,EAAE,IAAIJ,EAAE,UAASyB,EAAE,QAAQ;AAAA,EAAC;AAAC,QAAMJ,IAAErB,EAAE;AAAW,MAAIoB,IAAE,CAAA;AAAG,QAAMO,KAAST,KAAN,QAAS,CAACV,GAAEU,CAAC,OAAWA,KAAN,QAASR,GAAEQ,CAAC,KAAG;AAAG,WAAQlB,IAAE,GAAEA,IAAEqB,EAAE,QAAOrB,IAAI,CAAAoB,EAAE,KAAK,GAAGH,GAAEI,EAAErB,CAAC,GAAEE,GAAEI,GAAEqB,GAAE,IAAI,IAAIvB,CAAC,GAAEc,CAAC,CAAC;AAAE,SAAaI,KAAN,SAAUF,IAAEE,EAAEF,CAAC,IAAGnB,GAAED,CAAC,MAAIoB,IAAEM,GAAE1B,GAAEoB,GAAEO,IAAE,MAAI;AAAC,UAAM3B,IAAE,IAAIS;AAAE,WAAOH,EAAE,KAAKN,CAAC,GAAEA;AAAA,EAAC,IAAEgB,EAAC,IAASE,KAAN,OAAQE,EAAE,SAAO,IAAEP,IAAEA,EAAE,OAAOO,CAAC,IAAEnB,GAAED,CAAC,KAAG,SAASA,GAAE;AAAC,WAASA,EAAE,eAAR,QAA2BA,EAAE,mBAAR,YAAwCY,GAAEZ,EAAE,WAAW,KAAGY,GAAEZ,EAAE,eAAe;AAAA,EAAC,EAAEA,CAAC,MAAIa,IAAEA,EAAE,OAAOF,GAAC,CAAE,KAAGJ,EAAEW,CAAC,KAAGA,EAAE,OAAO,GAAGE,CAAC,GAAEP;AAAC;AAAC,SAASa,GAAE1B,GAAEE,GAAE,GAAE;AAAC,QAAMI,IAAEN,EAAE,MAAM,WAAUO,IAAE,CAAA;AAAG,MAAIJ,IAAE,CAAA;AAAG,WAAQH,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,UAAMI,IAAEF,EAAEF,CAAC;AAAE,QAAGU,GAAEN,CAAC,EAAE,CAAAE,KAAG,CAACF,EAAE,UAAS,KAAIA,EAAE,UAAUE,CAAC,GAAEC,EAAE,KAAKH,CAAC;AAAA,aAAUD,EAAE,KAAKC,CAAC,GAAEJ,MAAIE,EAAE,SAAO,KAAGF,IAAEE,EAAE,SAAO,KAAGQ,GAAER,EAAEF,IAAE,CAAC,CAAC,GAAE;AAAC,YAAMA,IAAE,EAAC;AAAG,MAAAA,EAAE,UAAUM,CAAC,GAAEN,EAAE,OAAO,GAAGG,CAAC,GAAEI,EAAE,KAAKP,CAAC,GAAEG,IAAE,CAAA;AAAA,IAAE;AAAA,EAAC;AAAC,SAAOI;AAAC;ACAtwF,MAAMD,KAAE,oBAAI,IAAI,CAAC,SAAQ,UAAS,WAAU,QAAO,MAAM,CAAC;AAAC,IAAA0V,KAAC,MAAMvV,WAAUP,GAAC;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAM;AAAA,EAAC,OAAO,MAAMD,GAAE;AAAC,WAAO,IAAIQ,GAAER,EAAE,OAAM,EAAC,KAAIA,EAAE,OAAM,QAAOA,EAAE,UAAS,OAAMA,EAAE,QAAO,GAAEA,EAAE,KAAK;AAAA,EAAC;AAAA,EAAC,YAAYA,GAAED,IAAE,IAAG,GAAE;AAAC,UAAM,CAAC;AAAE,UAAK,EAAC,QAAOI,IAAE,MAAK,KAAIF,IAAE,MAAK,OAAMK,IAAE,KAAI,IAAEP;AAAE,SAAK,QAAMC,GAAE,KAAK,WAASG,GAAE,KAAK,QAAMF,GAAE,KAAK,UAAQK;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,UAAMJ,IAAE,SAAS,cAAc,GAAG;AAAE,WAAOA,EAAE,OAAK,KAAK,YAAY,KAAK,KAAK,GAAS,KAAK,aAAZ,SAAuBA,EAAE,SAAO,KAAK,WAAiB,KAAK,UAAZ,SAAoBA,EAAE,MAAI,KAAK,QAAc,KAAK,YAAZ,SAAsBA,EAAE,QAAM,KAAK,UAASF,GAAEE,GAAE,EAAE,MAAM,IAAI,GAAEA;AAAA,EAAC;AAAA,EAAC,UAAUF,GAAED,GAAE,GAAE;AAAC,QAAGA,aAAa,mBAAkB;AAAC,YAAMG,IAAE,KAAK,OAAM,IAAE,KAAK,UAASD,IAAE,KAAK,OAAMK,IAAE,KAAK;AAAQ,MAAAJ,MAAIF,EAAE,UAAQD,EAAE,OAAKG,IAAG,MAAIF,EAAE,aAAW,IAAED,EAAE,SAAO,IAAEA,EAAE,gBAAgB,QAAQ,IAAGE,MAAID,EAAE,UAAQC,IAAEF,EAAE,MAAIE,IAAEF,EAAE,gBAAgB,KAAK,IAAGO,MAAIN,EAAE,YAAUM,IAAEP,EAAE,QAAMO,IAAEP,EAAE,gBAAgB,OAAO;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,OAAO,YAAW;AAAC,WAAM,EAAC,GAAE,CAAAC,OAAI,EAAC,YAAWY,IAAE,UAAS,EAAC,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,WAAWZ,GAAE;AAAC,UAAMD,IAAEQ,GAAEP,EAAE,KAAI,EAAC,KAAIA,EAAE,KAAI,QAAOA,EAAE,QAAO,OAAMA,EAAE,MAAK,CAAC;AAAE,WAAOD,EAAE,UAAUC,EAAE,MAAM,GAAED,EAAE,UAAUC,EAAE,MAAM,GAAED,EAAE,aAAaC,EAAE,SAAS,GAAED;AAAA,EAAC;AAAA,EAAC,YAAYC,GAAE;AAAC,QAAG;AAAC,YAAMD,IAAE,IAAI,IAAIC,CAAC;AAAE,UAAG,CAACK,GAAE,IAAIN,EAAE,QAAQ,EAAE,QAAM;AAAA,IAAa,QAAS;AAAC,aAAOC;AAAA,IAAC;AAAC,WAAOA;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,GAAG,MAAM,WAAU,GAAG,KAAI,KAAK,OAAM,GAAG,QAAO,KAAK,UAAS,GAAG,OAAM,KAAK,SAAQ,GAAG,MAAK,QAAO,KAAI,KAAK,OAAM,GAAG,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAK;AAAA,EAAC,OAAOA,GAAE;AAAC,SAAK,YAAW,EAAG,QAAMA;AAAA,EAAC;AAAA,EAAC,YAAW;AAAC,WAAO,KAAK,YAAY;AAAA,EAAQ;AAAA,EAAC,UAAUA,GAAE;AAAC,SAAK,YAAW,EAAG,WAASA;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAO,KAAK,UAAS,EAAG;AAAA,EAAK;AAAA,EAAC,OAAOA,GAAE;AAAC,SAAK,YAAW,EAAG,QAAMA;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK,YAAY;AAAA,EAAO;AAAA,EAAC,SAASA,GAAE;AAAC,SAAK,YAAW,EAAG,UAAQA;AAAA,EAAC;AAAA,EAAC,eAAeA,GAAED,IAAE,IAAG;AAAC,UAAM,IAAEQ,GAAE,KAAK,OAAM,EAAC,KAAI,KAAK,OAAM,QAAO,KAAK,UAAS,OAAM,KAAK,QAAO,CAAC;AAAE,WAAO,KAAK,YAAY,GAAER,CAAC,GAAE;AAAA,EAAC;AAAA,EAAC,sBAAqB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,qBAAoB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,aAAY;AAAC;EAAQ;AAAA,EAAC,WAAU;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,iBAAiBC,GAAED,GAAE,GAAE;AAAC,QAAG,CAACO,EAAEP,CAAC,EAAE,QAAM;AAAG,UAAMI,IAAEJ,EAAE,OAAO,WAAUE,IAAEF,EAAE,MAAM,QAAO;AAAG,WAAO,KAAK,WAAWI,CAAC,KAAG,KAAK,WAAWF,CAAC,KAAGF,EAAE,eAAc,EAAG,SAAO;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAO,KAAK,MAAM,WAAW,SAAS;AAAA,EAAC;AAAA,EAAC,eAAc;AAAC,WAAO,KAAK,MAAM,WAAW,UAAU,KAAG,KAAK,MAAM,WAAW,SAAS;AAAA,EAAC;AAAC;AAAC,SAASa,GAAEZ,GAAE;AAAC,MAAIE,IAAE;AAAK,MAAGH,GAAEC,CAAC,GAAE;AAAC,UAAMD,IAAEC,EAAE;AAAY,KAAQD,MAAP,QAAeA,MAAL,MAAQC,EAAE,SAAS,SAAO,OAAKE,IAAEK,GAAEP,EAAE,aAAa,MAAM,KAAG,IAAG,EAAC,KAAIA,EAAE,aAAa,KAAK,GAAE,QAAOA,EAAE,aAAa,QAAQ,GAAE,OAAMA,EAAE,aAAa,OAAO,EAAC,CAAC;AAAA,EAAE;AAAC,SAAM,EAAC,MAAKE,EAAC;AAAC;AAAC,SAASK,GAAEP,GAAE,GAAE;AAAC,SAAOI,GAAE,IAAII,GAAER,GAAE,CAAC,CAAC;AAAC;AAAC,SAASa,GAAEb,GAAE;AAAC,SAAOA,aAAaQ;AAAC;AAAA,IAAAwV,KAAC,MAAMtV,WAAUF,GAAC;AAAA,EAAC,YAAYR,GAAED,IAAE,IAAG,GAAE;AAAC,UAAMC,GAAED,GAAE,CAAC,GAAE,KAAK,eAAsBA,EAAE,eAAX,UAA8BA,EAAE,eAAT,QAAqBA,EAAE;AAAA,EAAU;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAU;AAAA,EAAC,OAAO,MAAMC,GAAE;AAAC,WAAO,IAAIU,GAAEV,EAAE,OAAM,EAAC,YAAWA,EAAE,cAAa,KAAIA,EAAE,OAAM,QAAOA,EAAE,UAAS,OAAMA,EAAE,QAAO,GAAEA,EAAE,KAAK;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,WAAO,KAAK;AAAA,EAAY;AAAA,EAAC,cAAcA,GAAE;AAAC,UAAMD,IAAE,KAAK,YAAW;AAAG,WAAOA,EAAE,eAAaC,GAAED;AAAA,EAAC;AAAA,EAAC,UAAUC,GAAE;AAAC,WAAO,KAAK,eAAa,SAAS,cAAc,MAAM,IAAE,MAAM,UAAUA,CAAC;AAAA,EAAC;AAAA,EAAC,UAAUA,GAAED,GAAE,GAAE;AAAC,WAAO,MAAM,UAAUC,GAAED,GAAE,CAAC,KAAGC,EAAE,iBAAe,KAAK;AAAA,EAAY;AAAA,EAAC,OAAO,WAAWA,GAAE;AAAC,UAAMD,IAAEY,GAAEX,EAAE,KAAI,EAAC,YAAWA,EAAE,YAAW,KAAIA,EAAE,KAAI,QAAOA,EAAE,QAAO,OAAMA,EAAE,MAAK,CAAC;AAAE,WAAOD,EAAE,UAAUC,EAAE,MAAM,GAAED,EAAE,UAAUC,EAAE,MAAM,GAAED,EAAE,aAAaC,EAAE,SAAS,GAAED;AAAA,EAAC;AAAA,EAAC,OAAO,YAAW;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,GAAG,MAAM,WAAU,GAAG,YAAW,KAAK,cAAa,MAAK,YAAW,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,eAAeC,GAAED,IAAE,IAAG;AAAC,UAAM,IAAE,KAAK,mBAAmB,eAAeC,GAAED,CAAC;AAAE,QAAGU,EAAE,CAAC,GAAE;AAAC,YAAMT,IAAEW,GAAE,KAAK,OAAM,EAAC,YAAW,KAAK,cAAa,KAAI,KAAK,OAAM,QAAO,KAAK,UAAS,OAAM,KAAK,QAAO,CAAC;AAAE,aAAO,EAAE,OAAOX,CAAC,GAAEA;AAAA,IAAC;AAAC,WAAO;AAAA,EAAI;AAAC;AAAC,SAASW,GAAEX,GAAE,GAAE;AAAC,SAAOI,GAAE,IAAIM,GAAEV,GAAE,CAAC,CAAC;AAAC;AAAC,SAASe,GAAEf,GAAE;AAAC,SAAOA,aAAaU;AAAC;AAAC,MAAMiC,KAAExC,GAAuB;AAAE,SAASc,GAAEjB,GAAE,IAAE,CAAA,GAAG;AAAC,QAAK,EAAC,QAAOG,GAAE,OAAMF,EAAC,IAAE,GAAEG,IAAW,EAAE,QAAX,SAAe,eAAa,EAAE,KAAIC,IAAES,EAAC;AAAG,MAAG,CAACR,EAAED,CAAC,EAAE;AAAO,QAAMG,IAAEH,EAAE,QAAO;AAAG,MAAUL,MAAP,KAAS,CAAAQ,EAAE,QAAS,CAAAR,MAAG;AAAC,UAAMD,IAAEG,GAAEF,GAAG,CAAAA,MAAG,CAACe,GAAEf,CAAC,KAAGa,GAAEb,CAAC,CAAC;AAAG,QAAGD,GAAE;AAAC,YAAMC,IAAED,EAAE,YAAW;AAAG,eAAQG,IAAE,GAAEA,IAAEF,EAAE,QAAOE,IAAI,CAAAH,EAAE,aAAaC,EAAEE,CAAC,CAAC;AAAE,MAAAH,EAAE,OAAM;AAAA,IAAE;AAAA,EAAC,CAAC;AAAA,OAAO;AAAC,QAAOS,EAAE,WAAN,GAAa;AAAC,YAAMT,IAAE,SAASC,GAAED,GAAE;AAAC,YAAIG,IAAEF;AAAE,eAAYE,MAAP,QAAiBA,EAAE,UAAS,MAAlB,QAAsB,CAACH,EAAEG,CAAC,IAAG,CAAAA,IAAEA,EAAE,iBAAgB;AAAG,eAAOH,EAAEG,CAAC,IAAEA,IAAE;AAAA,MAAI,EAAEM,EAAE,CAAC,GAAEK,EAAC;AAAE,UAAUd,MAAP,KAAS,QAAOA,EAAE,OAAOC,CAAC,GAAWG,MAAT,UAAYJ,EAAE,UAAUI,CAAC,GAASC,MAAP,QAAUL,EAAE,OAAOK,CAAC,GAAE,MAAcH,MAAT,UAAYF,EAAE,SAASE,CAAC;AAAA,IAAE;AAAC,QAAIF,IAAE,MAAKG,IAAE;AAAK,IAAAM,EAAE,QAAS,OAAG;AAAC,YAAMM,IAAE,EAAE,UAAS;AAAG,UAAGA,MAAIZ,KAAUY,MAAP,SAAW,CAACL,EAAE,CAAC,KAAG,EAAE,aAAY;AAAC,YAAGI,GAAEC,CAAC,EAAE,QAAOZ,IAAEY,GAAEA,EAAE,OAAOd,CAAC,GAAWG,MAAT,UAAYW,EAAE,UAAUX,CAAC,GAASC,MAAP,QAAUF,EAAE,OAAOE,CAAC,GAAE,MAAcH,MAAT,UAAYC,EAAE,SAASD,CAAC;AAAG,YAAGa,EAAE,GAAGf,CAAC,MAAIA,IAAEe,GAAEZ,IAAEK,GAAEP,GAAE,EAAC,KAAII,GAAE,QAAOD,GAAE,OAAMF,EAAC,CAAC,GAAEY,GAAEC,CAAC,IAAS,EAAE,mBAAkB,MAA3B,OAA8BA,EAAE,aAAaZ,CAAC,IAAEY,EAAE,YAAYZ,CAAC,IAAE,EAAE,aAAaA,CAAC,IAAGW,GAAE,CAAC,GAAE;AAAC,cAAG,EAAE,GAAGX,CAAC,EAAE;AAAO,cAAUA,MAAP,MAAS;AAAC,kBAAMF,IAAE,EAAE,YAAW;AAAG,qBAAQD,IAAE,GAAEA,IAAEC,EAAE,QAAOD,IAAI,CAAAG,EAAE,OAAOF,EAAED,CAAC,CAAC;AAAA,UAAC;AAAC,YAAE,OAAM;AAAA,QAAE,MAAM,CAAOG,MAAP,QAAUA,EAAE,OAAO,CAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA,EAAE;AAAC;ACAn9I,SAASiB,GAAEpB,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAC,IAAIiB,KAAEG,GAAG,SAASpB,GAAE;AAAC,QAAMC,IAAE,IAAI;AAAgB,EAAAA,EAAE,OAAO,QAAOD,CAAC;AAAE,WAAQA,IAAE,GAAEA,IAAE,UAAU,QAAOA,IAAI,CAAAC,EAAE,OAAO,KAAI,UAAUD,CAAC,CAAC;AAAE,QAAM,MAAM,2BAA2BA,CAAC,0CAA0CC,CAAC,gHAAgH;AAAC,CAAC;AAAG,SAASqB,GAAEtB,GAAE;AAAC,MAAIC,IAAE,GAAEC,IAAEF,EAAE,UAAS;AAAG,SAAWE,KAAN,QAAS;AAAC,QAAG2C,GAAE3C,CAAC,GAAE;AAAC,YAAMF,IAAEE,EAAE,UAAS;AAAG,UAAG6C,EAAE/C,CAAC,GAAE;AAAC,QAAAC,KAAIC,IAAEF,EAAE;AAAY;AAAA,MAAQ;AAACiB,MAAAA,GAAE,EAAE;AAAA,IAAC;AAAC,WAAOhB;AAAA,EAAC;AAAC,SAAOA;AAAC;AAAC,SAASuB,GAAExB,GAAE;AAAC,MAAIC,IAAED,EAAE,UAAS;AAAG,EAAA+C,EAAE9C,CAAC,KAAGgB,GAAE,EAAE;AAAE,MAAIf,IAAED;AAAE,SAAYC,MAAP,OAAU,CAAAA,IAAEA,EAAE,UAAS,GAAG6C,EAAE7C,CAAC,MAAID,IAAEC;AAAG,SAAOD;AAAC;AAAC,SAASsB,GAAEvB,GAAE;AAAC,MAAIC,IAAE;AAAG,QAAMC,IAAEF,EAAE,cAAc,OAAO6C,EAAC;AAAE,WAAQ7C,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,UAAMG,IAAED,EAAEF,CAAC,GAAE,IAAEG,EAAE,cAAa;AAAG,IAAA4C,EAAE,CAAC,IAAE9C,IAAEA,EAAE,OAAOsB,GAAE,CAAC,CAAC,IAAEtB,EAAE,KAAKE,CAAC;AAAA,EAAC;AAAC,SAAOF;AAAC;AAAC,SAASwB,GAAEzB,GAAE;AAAC,SAAO6C,GAAE7C,CAAC,KAAG+C,EAAE/C,EAAE,cAAa,CAAE;AAAC;AAAC,SAASqB,GAAErB,GAAE;AAAC,SAAOuC,GAAC,EAAG,OAAOvC,CAAC;AAAC;AAAC,SAAS6B,GAAE7B,GAAEC,GAAE;AAAC,SAAO4C,GAAE7C,CAAC,MAAQC,EAAE,WAAN,KAAkBA,EAAE,WAAN,KAAcD,EAAE,GAAGC,EAAE,CAAC,CAAC,KAAOD,EAAE,gBAAe,MAArB;AAAwB;AAAC,SAASoC,GAAEpC,GAAEC,GAAE;AAAC,EAAAD,EAAE,OAAQ,MAAI;AAAC,UAAMA,IAAEK,EAAC;AAAG,QAAUL,MAAP,MAAS;AAAC,YAAME,IAAEF,EAAE,SAAQ;AAAG,UAAGM,EAAEN,CAAC,GAAE;AAAC,cAAMG,IAAEH,EAAE,kBAAiB;AAAG,QAAOG,MAAP,QAAUc,GAAE,GAAG;AAAE,cAAK,CAACb,CAAC,IAAED,GAAEE,IAAED,EAAE,QAAO,GAAGE,IAAED,EAAE,UAAS;AAAG,YAAGwB,GAAExB,GAAEH,CAAC,GAAE;AAAC,gBAAMF,IAAEgD,GAAE/C,CAAC;AAAE,cAAGO,GAAEF,CAAC,GAAE;AAAC,YAAAD,EAAE,QAAQL,CAAC;AAAE,kBAAMC,IAAEsC,GAAC;AAAGhC,YAAAA,EAAEF,CAAC,MAAIJ,EAAE,UAAUI,EAAE,eAAe,GAAEJ,EAAE,UAAUI,EAAE,WAAW,IAAGL,EAAE,OAAOC,CAAC;AAAA,UAAC,WAAS4C,GAAExC,CAAC,GAAE;AAAC,kBAAMJ,IAAEI,EAAE,iBAAgB;AAAGsB,YAAAA,GAAE3B,GAAEC,EAAE,YAAW,CAAE,GAAEA,EAAE,QAAQD,CAAC;AAAA,UAAC;AAAC;AAAA,QAAM;AAAA,MAAC;AAAC,YAAMG,IAAE,oBAAI;AAAI,eAAQH,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,cAAMI,IAAEF,EAAEF,CAAC;AAAE,YAAG,CAACO,EAAEH,CAAC,KAAG,CAACA,EAAE,aAAWyC,GAAEzC,CAAC,KAAGD,EAAE,IAAIC,EAAE,OAAM,CAAE;AAAG,cAAGK,GAAEL,CAAC,GAAE;AAAC,gBAAIJ,IAAEI,EAAE,UAAS;AAAG,mBAAWJ,KAAN,QAAS;AAAC,oBAAME,IAAEF,EAAE;AAAS,kBAAG+C,EAAE/C,CAAC,GAAE;AAAC,oBAAG,CAACG,EAAE,IAAID,CAAC,GAAE;AAAC,wBAAME,IAAE4C,GAAE/C,CAAC;AAAE0B,kBAAAA,GAAEvB,GAAEJ,EAAE,YAAW,CAAE,GAAEA,EAAE,QAAQI,CAAC,GAAED,EAAE,IAAID,CAAC;AAAA,gBAAC;AAAC;AAAA,cAAK;AAAC;AAAC,sBAAME,IAAEJ,EAAE,UAAS;AAAG,oBAAGQ,GAAEJ,CAAC,KAAG,CAACD,EAAE,IAAID,CAAC,GAAE;AAAC,kBAAAC,EAAE,IAAID,CAAC,GAAEiB,GAAEnB,GAAEC,CAAC;AAAE;AAAA,gBAAK;AAAC,gBAAAD,IAAEI;AAAA,cAAC;AAAA,YAAC;AAAA,UAAC;AAAA,cAAOe,CAAAA,GAAEf,GAAEH,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC,CAAC;AAAE;AAAC,SAAS0B,GAAE3B,GAAEC,GAAE;AAAC,EAAAD,EAAE,OAAOA,EAAE,mBAAkB,GAAEC,CAAC;AAAC;AAAC,SAASkB,GAAEnB,GAAEC,GAAE;AAAC,MAAG8C,EAAE/C,CAAC,EAAE,QAAOA;AAAE,QAAME,IAAEF,EAAE,mBAAkB,GAAG,IAAEA,EAAE,eAAc,GAAGI,IAAEmC;AAAI,MAAIlC;AAAE,MAAGsB,GAAEvB,GAAEJ,EAAE,YAAW,CAAE,GAAE+C,EAAE7C,CAAC,KAAGD,MAAIC,EAAE,YAAW,EAAG,CAAAA,EAAE,OAAOE,CAAC,GAAE2C,EAAE,CAAC,KAAG9C,MAAI,EAAE,YAAW,MAAK0B,GAAEzB,GAAE,EAAE,YAAW,CAAE,GAAE,EAAE,OAAM,IAAIG,IAAEH;AAAA,WAAU6C,EAAE,CAAC,KAAG9C,MAAI,EAAE,YAAW,EAAG,GAAE,qBAAoB,EAAG,aAAaG,CAAC,GAAEC,IAAE;AAAA,OAAM;AAAC,UAAMH,IAAE8C,GAAE/C,CAAC;AAAE,IAAAC,EAAE,OAAOE,CAAC,GAAEJ,EAAE,QAAQE,CAAC,GAAEG,IAAEH;AAAA,EAAC;AAAC,SAAOE,EAAE,UAAUJ,EAAE,cAAa,CAAE,GAAEI,EAAE,UAAUJ,EAAE,UAAS,CAAE,GAAEA,EAAE,OAAM,GAAGK;AAAC;AAAC,SAAS0B,GAAE/B,GAAEC,GAAE;AAAC,QAAMC,IAAEF,EAAE,aAAY,GAAG,IAAEC,EAAE,cAAa;AAAG,EAAAC,KAAG,KAAGuB,GAAEvB,CAAC,KAAGuB,GAAE,CAAC,MAAIM,GAAE7B,EAAE,cAAa,GAAG,EAAE,cAAa,CAAE,GAAE,EAAE;AAAU,QAAME,IAAEH,EAAE,YAAW;AAAG,EAAAG,EAAE,SAAO,KAAGJ,EAAE,OAAO,GAAGI,CAAC,GAAEH,EAAE,OAAM;AAAE;AAAC,SAAS+B,GAAE/B,GAAE;AAAC,EAAAA,EAAE,OAAQ,MAAI;AAAC,UAAMA,IAAEI,EAAC;AAAG,QAAGC,EAAEL,CAAC,GAAE;AAAC,YAAMC,IAAE,oBAAI,OAAI,IAAED,EAAE,SAAQ,GAAGG,IAAEH,EAAE,OAAO;AAAU,UAAG4B,GAAEzB,GAAE,CAAC,EAAE,CAAAF,EAAE,IAAIsB,GAAEpB,CAAC,CAAC;AAAA,UAAO,UAAQH,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,cAAMG,IAAE,EAAEH,CAAC;AAAE,YAAGQ,GAAEL,CAAC,GAAE;AAAC,gBAAMH,IAAED,GAAEI,GAAE+B,EAAC;AAAE,UAAMlC,KAAN,QAASC,EAAE,IAAIsB,GAAEvB,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC;AAAC,iBAAUD,KAAKE,GAAE;AAAC,YAAIA,IAAEF;AAAE,cAAMG,IAAEoB,GAAEvB,CAAC;AAAE,mBAAUA,KAAKG,GAAE;AAAC,gBAAMA,IAAEU,GAAC;AAAGc,UAAAA,GAAExB,GAAEH,EAAE,YAAW,CAAE,GAAEE,EAAE,YAAYC,CAAC,GAAED,IAAEC,GAAEH,EAAE,UAAQC,EAAE,OAAO,OAAKA,EAAE,OAAO,IAAIE,EAAE,OAAM,GAAG,GAAE,SAAS,GAAEH,EAAE,UAAQC,EAAE,MAAM,OAAKA,EAAE,MAAM,IAAIE,EAAE,OAAM,GAAG,GAAE,SAAS,GAAEH,EAAE,OAAM;AAAA,QAAE;AAAC,QAAAA,EAAE,OAAM;AAAA,MAAE;AAAA,IAAC;AAAA,EAAC;AAAG;AAAC,SAAS4B,GAAE5B,GAAE;AAAC,QAAMC,IAAE,oBAAI;AAAI,MAAGwB,GAAEzB,CAAC,KAAGC,EAAE,IAAID,EAAE,OAAM,CAAE,EAAE;AAAO,QAAME,IAAEF,EAAE,UAAS,GAAG,IAAEA,EAAE,kBAAiBI,IAAEJ,EAAE,mBAAkB;AAAG,MAAGyB,GAAE,CAAC,KAAGA,GAAErB,CAAC,GAAE;AAAC,UAAMF,IAAEE,EAAE,cAAa;AAAG,QAAG2C,EAAE7C,CAAC,GAAE;AAAC,MAAAA,EAAE,OAAOF,CAAC;AAAE,YAAMI,IAAE,EAAE,cAAa;AAAG,MAAG2C,EAAE3C,CAAC,MAAGuB,GAAEzB,GAAEE,EAAE,YAAW,CAAE,GAAE,EAAE,OAAM,GAAGH,EAAE,IAAI,EAAE,OAAM,CAAE;AAAA,IAAE;AAAA,EAAC,WAASwB,GAAE,CAAC,GAAE;AAAC,UAAMxB,IAAE,EAAE,cAAa;AAAG,QAAG8C,EAAE9C,CAAC,GAAE;AAAC,YAAMC,IAAED,EAAE;AAAgB,MAAOC,MAAP,QAAUA,EAAE,aAAaF,CAAC;AAAA,IAAC;AAAA,EAAC,WAASyB,GAAErB,CAAC,GAAE;AAAC,UAAMH,IAAEG,EAAE,cAAa;AAAG,IAAA2C,EAAE9C,CAAC,KAAGA,EAAE,OAAOD,CAAC;AAAA,EAAC,WAAS+C,EAAE7C,CAAC,GAAE;AAAC,UAAMD,IAAEsC,GAAC,GAAG,IAAES,GAAE9C,EAAE,YAAW,CAAE;AAAE,IAAAD,EAAE,OAAO,CAAC,GAAE,EAAE,OAAOD,CAAC,GAAEI,IAAEA,EAAE,YAAYH,CAAC,IAAE,IAAE,EAAE,aAAaA,CAAC,IAAEC,EAAE,OAAOD,CAAC;AAAA,EAAC;AAAC;AAAC,SAASiC,GAAElC,GAAE;AAAC,MAAGyB,GAAEzB,CAAC,EAAE;AAAO,QAAMC,IAAED,EAAE,aAAYE,IAAED,IAAEA,EAAE,UAAS,IAAG;AAAO,MAAG8C,EAAE7C,IAAEA,EAAE,UAAS,IAAG,MAAM,KAAG2C,GAAE3C,CAAC,KAAG6C,EAAE9C,CAAC,GAAE;AAAC,UAAM,IAAEA,IAAEA,EAAE,cAAa,IAAG,QAAOG,IAAEH,IAAEA,EAAE,aAAY,IAAG;AAAO,QAAGD,EAAE,GAAG,CAAC,EAAE,CAAAE,EAAE,aAAaF,CAAC,GAAEC,EAAE,aAAWC,EAAE;aAAiBF,EAAE,GAAGI,CAAC,EAAE,CAAAF,EAAE,YAAYF,CAAC,GAAEC,EAAE,QAAO,KAAIC,EAAE,OAAM;AAAA,SAAO;AAAC,YAAMC,IAAEF,EAAE,eAAcG,IAAEmC,MAAIlC,IAAE2C,GAAE7C,CAAC;AAAE,MAAAC,EAAE,OAAOC,CAAC,GAAEL,EAAE,oBAAmB,EAAG,QAAS,CAAAA,MAAGK,EAAE,OAAOL,CAAC,CAAC;AAAG,YAAMM,IAAEiC,MAAI/B,IAAEwC,GAAE7C,CAAC;AAAE,MAAAG,EAAE,OAAOE,CAAC,GAAEmB,GAAEnB,GAAER,EAAE,gBAAe,CAAE,GAAEE,EAAE,aAAaE,CAAC,GAAEF,EAAE,YAAYI,CAAC,GAAEJ,EAAE,QAAQF,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,SAAS8B,KAAG;AAAC,QAAM9B,IAAEK;AAAI,MAAG,CAACC,EAAEN,CAAC,KAAG,CAACA,EAAE,YAAW,EAAG,QAAM;AAAG,QAAMC,IAAED,EAAE,OAAO;AAAU,MAAG,CAAC6C,GAAE5C,CAAC,KAAOA,EAAE,gBAAe,MAArB,EAAwB,QAAM;AAAG,QAAMC,IAAEsB,GAAEvB,CAAC,GAAE,IAAEA,EAAE,UAAS;AAAG,EAAA8C,EAAE,CAAC,KAAG9B,GAAE,EAAE;AAAE,QAAMb,IAAE,EAAE,UAAS;AAAG,MAAIG;AAAE,MAAGC,GAAEJ,CAAC,EAAE,CAAAG,IAAEM,GAAC,GAAGX,EAAE,YAAYK,CAAC;AAAA,OAAM;AAAC,QAAG,CAACsC,GAAEzC,CAAC,EAAE;AAAS,IAAAG,IAAEgC,MAAInC,EAAE,YAAYG,CAAC;AAAA,EAAC;AAAC,EAAAA,EAAE,OAAM;AAAG,QAAME,IAAER,EAAE;AAAkB,MAAGQ,EAAE,SAAO,GAAE;AAAC,UAAMT,IAAEgD,GAAE,EAAE,YAAW,CAAE;AAAE,QAAGtC,GAAEH,CAAC,EAAE,CAAAA,EAAE,YAAYP,CAAC;AAAA,SAAM;AAAC,YAAMC,IAAEsC,GAAC;AAAG,MAAAtC,EAAE,OAAOD,CAAC,GAAEO,EAAE,YAAYN,CAAC;AAAA,IAAC;AAAC,IAAAQ,EAAE,QAAS,CAAAR,MAAG;AAAC,MAAAA,EAAE,OAAM,GAAGD,EAAE,OAAOC,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE;AAAC,SAAO,SAASD,GAAE;AAAC,QAAIC,IAAED;AAAE,WAAWC,EAAE,eAAc,KAAtB,QAAgCA,EAAE,mBAAkB,KAA1B,QAA8B;AAAC,YAAMD,IAAEC,EAAE;AAAY,UAASD,KAAN,QAAS,CAAC6C,GAAE5C,CAAC,KAAG,CAAC8C,EAAE9C,CAAC,EAAE;AAAM,MAAAA,IAAED;AAAA,IAAC;AAAC,IAAAC,EAAE;EAAQ,EAAEA,CAAC,GAAE;AAAE;AAAC,SAASyB,MAAK1B,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,aAAUC,KAAKF,EAAE,KAAGE,KAAa,OAAOA,KAAjB,SAAmB,YAAS,CAACF,CAAC,KAAIE,EAAE,SAAS,MAAM,EAAE,CAAAD,EAAE,KAAKD,CAAC;AAAE,SAAOC;AAAC;SAAC,MAAMkC,WAAUrB,GAAC;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAU;AAAA,EAAC,OAAO,MAAM,GAAE;AAAC,WAAO,IAAIqB,GAAE,EAAE,SAAQ,EAAE,WAAU,EAAE,KAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE,GAAEjC,GAAE;AAAC,UAAMA,CAAC,GAAE,KAAK,UAAiB,MAAT,SAAW,IAAE,GAAE,KAAK,YAAU;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,UAAM,IAAE,SAAS,cAAc,IAAI,GAAEA,IAAE,KAAK,UAAS;AAAG,WAAO6C,EAAE7C,CAAC,KAAaA,EAAE,YAAW,MAAvB,WAA2BsC,GAAE,GAAE,MAAK,IAAI,GAAE,EAAE,QAAM,KAAK,SAAQP,GAAE,GAAE,EAAE,OAAM,IAAI,GAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE,GAAE/B,GAAE;AAAC,UAAMC,IAAE,KAAK;AAAY,WAAO4C,EAAE5C,CAAC,KAAaA,EAAE,kBAAZ,WAA2BqC,GAAE,GAAE,MAAK,CAAC,GAAE,EAAE,QAAM,KAAK,SAAQP,GAAE,GAAE/B,EAAE,OAAM,IAAI,GAAE;AAAA,EAAE;AAAA,EAAC,OAAO,YAAW;AAAC,WAAO,OAAG;AAAC,UAAG2C,GAAE,CAAC,KAAG5B,GAAE,GAAG,GAAQ,EAAE,aAAR,KAAkB;AAAO,YAAM,IAAE,EAAE,UAAS;AAAG,MAAA8B,EAAE,CAAC,KAAa,EAAE,YAAW,MAAvB,WAAiC,EAAE,gBAAR,QAAsB,EAAE,WAAW,MAAM;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO,YAAW;AAAC,WAAM,EAAC,IAAG,OAAK,EAAC,YAAWV,IAAE,UAAS,EAAC,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,WAAW,GAAE;AAAC,UAAM,IAAEE,GAAC;AAAG,WAAO,EAAE,WAAW,EAAE,OAAO,GAAE,EAAE,SAAS,EAAE,KAAK,GAAE,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,aAAa,EAAE,SAAS,GAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,UAAM,IAAE,KAAK,UAAU,EAAE,OAAO;AAAE,WAAO,EAAE,MAAM,YAAU,KAAK,iBAAgB,EAAC,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,GAAG,MAAM,WAAU,GAAG,SAAQ,KAAK,WAAU,GAAG,MAAK,YAAW,OAAM,KAAK,SAAQ,GAAG,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,aAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;AAAC,YAAMrC,IAAE,EAAE,CAAC;AAAE,UAAGK,EAAEL,CAAC,KAAG,KAAK,aAAaA,CAAC,GAAE;AAAC,cAAMF,IAAEE,EAAE,YAAW;AAAG,aAAK,OAAO,GAAGF,CAAC,GAAEE,EAAE,OAAM;AAAA,MAAE,MAAM,OAAM,OAAOA,CAAC;AAAA,IAAC;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,QAAQ,GAAE,GAAE;AAAC,QAAG2C,GAAE,CAAC,EAAE,QAAO,MAAM,QAAQ,CAAC;AAAE,SAAK,UAAU,CAAC;AAAE,UAAM3C,IAAE,KAAK,iBAAgB;AAAG,QAAG,CAAC6C,EAAE7C,CAAC,EAAE,QAAO;AAAE,QAAGA,EAAE,YAAU,KAAK,SAAS,CAAAA,EAAE,aAAa,CAAC;AAAA,aAAUA,EAAE,WAAS,KAAK,OAAM,EAAG,CAAAA,EAAE,YAAY,CAAC;AAAA,SAAM;AAAC,YAAMD,IAAE+C,GAAE9C,EAAE,YAAW,CAAE;AAAE,UAAIC,IAAE,KAAK;AAAiB,aAAKA,KAAG;AAAC,cAAMH,IAAEG;AAAE,QAAAA,IAAEA,EAAE,kBAAiBF,EAAE,OAAOD,CAAC;AAAA,MAAC;AAAC,MAAAE,EAAE,YAAY,CAAC,GAAE,EAAE,YAAYD,CAAC;AAAA,IAAC;AAAC,WAAO,MAAIM,EAAE,CAAC,KAAGU,GAAE,GAAG,GAAE,KAAK,YAAW,EAAG,QAAS,CAAAhB,MAAG;AAAC,QAAE,OAAOA,CAAC;AAAA,IAAC,CAAC,IAAI,KAAK,UAAaC,EAAE,gBAAe,MAArB,KAAyBA,EAAE,OAAM,GAAG;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE,IAAE,IAAG;AAAC,UAAMA,IAAE,KAAK,iBAAgB;AAAG,QAAG6C,EAAE7C,CAAC,KAAGe,GAAE,EAAE,GAAE4B,GAAE,CAAC,EAAE,QAAO,MAAM,YAAY,GAAE,CAAC;AAAE,UAAM1C,IAAE,KAAK;AAAkB,QAAGD,EAAE,YAAY,GAAE,CAAC,GAAMC,EAAE,WAAN,GAAa;AAAC,YAAM,IAAE6C,GAAE9C,EAAE,YAAW,CAAE;AAAE,MAAAC,EAAE,QAAS,CAAAH,MAAG,EAAE,OAAOA,CAAC,IAAI,EAAE,YAAY,GAAE,CAAC;AAAA,IAAC;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,OAAO,GAAE;AAAC,UAAM,IAAE,KAAK,mBAAkB,GAAGE,IAAE,KAAK,eAAc;AAAG,UAAM,OAAO,CAAC,GAAE,KAAGA,KAAGuB,GAAE,CAAC,KAAGA,GAAEvB,CAAC,MAAI6B,GAAE,EAAE,cAAa,GAAG7B,EAAE,cAAa,CAAE,GAAEA,EAAE,OAAM;AAAA,EAAG;AAAA,EAAC,eAAe,GAAE,IAAE,IAAG;AAAC,UAAMA,IAAEqC,GAAQ,KAAK,aAAX,QAAsB,MAAM;AAAE,WAAO,KAAK,YAAYrC,GAAE,CAAC,GAAEA;AAAA,EAAC;AAAA,EAAC,gBAAgB,GAAE;AAAC,UAAM,IAAEW,GAAC;AAAG,SAAK,YAAW,EAAG,QAAS,CAAAb,MAAG,EAAE,OAAOA,CAAC,CAAC;AAAG,UAAME,IAAE,KAAK,iBAAgB,GAAGC,IAAED,EAAE,oBAAmB,IAAE2C,GAAE1C,CAAC;AAAE,QAAOD,EAAE,gBAAe,MAArB,EAAwB,KAAG,EAAE,CAAAA,EAAE,OAAM,GAAGC,EAAE,OAAM;AAAA,SAAO;AAAC,MAAAD,EAAE,aAAa,CAAC,GAAEA,EAAE;AAAS,YAAMC,IAAE,EAAE,QAAOC,IAAE,EAAE,OAAMC,IAAE,EAAE;AAAS,MAAYF,EAAE,SAAd,aAAoBA,EAAE,QAAO,EAAG,GAAG,IAAI,KAAGA,EAAE,IAAIE,GAAEF,EAAE,QAAO,SAAS,GAAcC,EAAE,SAAd,aAAoBA,EAAE,QAAO,EAAG,GAAG,IAAI,KAAGA,EAAE,IAAIC,GAAED,EAAE,QAAO,SAAS;AAAA,IAAC;AAAA,QAAM,CAAAF,EAAE,aAAa,CAAC,GAAE,KAAK,OAAM;AAAG,WAAM;AAAA,EAAE;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK,YAAY;AAAA,EAAO;AAAA,EAAC,SAAS,GAAE;AAAC,SAAK,YAAW,EAAG,UAAQ;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,UAAM,IAAE,KAAK,UAAS;AAAG,QAAI;AAAE,UAAMA,IAAE,KAAK,UAAS;AAAG,WAAO6C,EAAE7C,CAAC,MAAI,IAAEA,EAAE,YAAW,IAAc,MAAV,UAAY,EAAQ,EAAE,YAAW;AAAA,EAAM;AAAA,EAAC,WAAW,GAAE;AAAC,SAAK,YAAW,EAAG,YAAU;AAAA,EAAC;AAAA,EAAC,gBAAe;AAAC,SAAK,WAAW,CAAC,KAAK,SAAS;AAAA,EAAC;AAAA,EAAC,YAAW;AAAC,UAAM,IAAE,KAAK,UAAS;AAAG,QAAU,MAAP,KAAS,QAAO,KAAK,YAAY;AAAS,QAAI,IAAE,EAAE,iBAAgB,GAAGA,IAAE;AAAE,WAAK2C,GAAE,CAAC,IAAG,KAAE,EAAE,mBAAmB,iBAAgB,GAAG3C;AAAI,WAAOA;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,IAAU,OAAO,KAAjB,YAAoBe,GAAE,GAAG,IAAG,IAAE,KAAK,MAAM,CAAC,MAAI,KAAGA,GAAE,GAAG;AAAE,QAAI,IAAE,KAAK,UAAS;AAAG,WAAK,MAAI,IAAG,KAAE,KAAGW,GAAE,IAAI,GAAE,QAAMM,GAAE,IAAI,GAAE;AAAK,WAAO;AAAA,EAAI;AAAA,EAAC,eAAe,GAAE;AAAC,WAAOW,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,eAAe,GAAE;AAAC,WAAOA,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,WAAOnC,GAAE,CAAC,KAAGmC,GAAE,CAAC;AAAA,EAAC;AAAA,EAAC,iBAAiB,GAAE,GAAE;AAAC,QAAG,CAACvC,EAAE,CAAC,EAAE,QAAM;AAAG,UAAMJ,IAAE,EAAE,OAAO,QAAO,GAAGC,IAAE,EAAE,MAAM,QAAO;AAAG,WAAO,KAAK,WAAWD,CAAC,KAAG,KAAK,WAAWC,CAAC,KAAG,KAAK,eAAc,EAAG,WAAS,EAAE,eAAc,EAAG;AAAA,EAAM;AAAA,EAAC,mBAAkB;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,0BAAyB;AAAC,WAAO6C,GAAE,QAAQ;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,WAAM;AAAA,EAAE;AAAC;AAAC,SAASf,GAAEjC,GAAEG,GAAEC,GAAE;AAAC,QAAMC,IAAE,CAAA,GAAGC,IAAE,IAAGE,IAAEL,EAAE,MAAKI,IAAEC,IAAEA,EAAE,WAAS;AAAO,MAAIC;AAAE,MAAGD,KAAGA,EAAE,WAASC,IAAED,EAAE,OAAO,WAAmBD,MAAT,UAAYF,EAAE,KAAK,GAAGqB,GAAEnB,CAAC,CAAC,GAAEC,GAAE;AAAC,UAAMR,IAAEI,EAAE,UAAS,GAAGH,IAAE8C,EAAE/C,CAAC,KAAaA,EAAE,YAAW,MAAvB,SAA0BE,IAAEE,EAAE,WAAU;AAAG,IAAAH,KAAG,CAACC,KAAGI,EAAE,KAAKE,EAAE,iBAAiB,GAAEP,KAAGC,KAAGI,EAAE,KAAKE,EAAE,eAAe,GAAEP,KAAGI,EAAE,KAAKH,IAAEM,EAAE,kBAAgBA,EAAE,iBAAiB;AAAA,EAAC;AAAC,MAAYC,MAAT,QAAW;AAAC,UAAMT,IAAE0B,GAAEjB,CAAC;AAAE,IAAAL,EAAE,cAAc,KAAM,CAAAJ,MAAG+C,EAAE/C,CAAC,CAAC,IAAGK,EAAE,KAAK,GAAGL,CAAC,IAAEM,EAAE,KAAK,GAAGN,CAAC;AAAA,EAAC;AAAC,EAAAM,EAAE,SAAO,KAAGL,GAAED,GAAE,GAAGM,CAAC,GAAED,EAAE,SAAO,KAAGH,GAAEF,GAAE,GAAGK,CAAC;AAAC;AAAC,SAASmC,GAAExC,GAAEC,GAAEC,GAAE,GAAE;AAAC,EAAA6C,EAAE9C,EAAE,eAAe,KAAGD,EAAE,gBAAgB,MAAM,GAAEA,EAAE,gBAAgB,UAAU,GAAEA,EAAE,gBAAgB,cAAc,MAAIA,EAAE,aAAa,QAAO,UAAU,GAAEA,EAAE,aAAa,YAAW,IAAI,GAAEE,KAAGD,EAAE,cAAYC,EAAE,aAAWF,EAAE,aAAa,gBAAeC,EAAE,WAAU,IAAG,SAAO,OAAO;AAAE;AAAC,SAASoC,GAAErC,GAAE;AAAC,MAAGA,EAAE,UAAU,SAAS,gBAAgB;AAAE,eAAU,KAAKA,EAAE,SAAS,KAAa,EAAE,YAAZ,QAAoB,QAAOyC,GAAE,CAAC;AAAA;AAAE,QAAMxC,IAAED,EAAE,aAAa,cAAc;AAAE,SAAM,EAAC,MAAKuC,GAAWtC,MAAT,UAAsBA,MAAV,WAAa,MAAM,EAAC;AAAC;AAAC,SAASwC,GAAEzC,GAAE;AAAC,SAAkBA,EAAE,aAAa,MAAM,MAAlC,aAA2C,EAAC,MAAK,KAAI,IAAQ,EAAC,MAAKuC,GAAEvC,EAAE,aAAa,SAAS,CAAC,EAAC;AAAC;AAAC,SAASuC,GAAEvC,GAAE;AAAC,SAAOW,GAAE,IAAIwB,GAAE,QAAOnC,CAAC,CAAC;AAAC;AAAC,SAAS6C,GAAE7C,GAAE;AAAC,SAAOA,aAAamC;AAAC;AAAC,MAAMO,WAAU5B,GAAC;AAAA,EAAC,OAAO,UAAS;AAAC,WAAM;AAAA,EAAM;AAAA,EAAC,OAAO,MAAM,GAAE;AAAC,UAAM,IAAE,EAAE,cAAYgC,GAAE,EAAE,KAAK;AAAE,WAAO,IAAIJ,GAAE,GAAE,EAAE,SAAQ,EAAE,KAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE,GAAExC,GAAE;AAAC,UAAMA,CAAC;AAAE,UAAMC,IAAE2C,GAAE,CAAC,KAAG;AAAE,SAAK,aAAW3C,GAAE,KAAK,QAAiBA,MAAX,WAAa,OAAK,MAAK,KAAK,UAAQ;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAO,KAAK;AAAA,EAAK;AAAA,EAAC,YAAY,GAAE;AAAC,UAAM,IAAE,KAAK;AAAc,MAAE,aAAW,GAAE,EAAE,QAAiB,MAAX,WAAa,OAAK;AAAA,EAAI;AAAA,EAAC,cAAa;AAAC,WAAO,KAAK;AAAA,EAAU;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK;AAAA,EAAO;AAAA,EAAC,UAAU,GAAE,GAAE;AAAC,UAAMD,IAAE,KAAK,OAAMC,IAAE,SAAS,cAAcD,CAAC;AAAE,WAAW,KAAK,YAAT,KAAkBC,EAAE,aAAa,SAAQ,OAAO,KAAK,OAAO,CAAC,GAAEA,EAAE,oBAAkB,KAAK,YAAWmC,GAAEnC,GAAE,EAAE,OAAM,IAAI,GAAEA;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE,GAAED,GAAE;AAAC,WAAO,EAAE,UAAQ,KAAK,UAAQoC,GAAE,GAAEpC,EAAE,OAAM,IAAI,GAAE;AAAA,EAAG;AAAA,EAAC,OAAO,YAAW;AAAC,WAAO,OAAG;AAAC,MAAA6C,EAAE,CAAC,KAAG9B,GAAE,GAAG,GAAE,SAASjB,GAAE;AAAC,cAAMC,IAAED,EAAE;AAAiB,QAAA+C,EAAE9C,CAAC,KAAGD,EAAE,kBAAgBC,EAAE,iBAAe8B,GAAE/B,GAAEC,CAAC;AAAA,MAAC,EAAE,CAAC,GAAE,SAASD,GAAE;AAAC,cAAMC,IAAYD,EAAE,YAAW,MAAvB;AAA0B,YAAIE,IAAEF,EAAE,SAAQ;AAAG,mBAAUG,KAAKH,EAAE,cAAc,CAAA6C,GAAE1C,CAAC,MAAIA,EAAE,eAAaD,KAAGC,EAAE,SAASD,CAAC,GAAED,KAASE,EAAE,UAAS,EAAG,aAApB,QAA+BA,EAAE,WAAW,MAAM,GAAE4C,EAAE5C,EAAE,cAAa,CAAE,KAAGD;AAAA,MAAI,EAAE,CAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO,YAAW;AAAC,WAAM,EAAC,IAAG,OAAK,EAAC,YAAWyC,IAAE,UAAS,EAAC,IAAG,IAAG,OAAK,EAAC,YAAWA,IAAE,UAAS,EAAC,GAAE;AAAA,EAAC;AAAA,EAAC,OAAO,WAAW,GAAE;AAAC,UAAM,IAAEK,GAAE,EAAE,UAAS,EAAE,KAAK;AAAE,WAAO,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,UAAU,EAAE,MAAM,GAAE,EAAE,aAAa,EAAE,SAAS,GAAE;AAAA,EAAC;AAAA,EAAC,UAAU,GAAE;AAAC,UAAM,IAAE,KAAK,UAAU,EAAE,SAAQ,CAAC;AAAE,WAAO,KAAG7C,GAAE,CAAC,MAAQ,KAAK,YAAT,KAAkB,EAAE,aAAa,SAAQ,OAAO,KAAK,OAAO,CAAC,GAAY,KAAK,eAAf,WAA2B,EAAE,aAAa,qBAAoB,OAAO,IAAG,EAAC,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM,EAAC,GAAG,MAAM,WAAU,GAAG,UAAS,KAAK,YAAW,GAAG,OAAM,KAAK,YAAW,KAAI,KAAK,OAAM,GAAG,MAAK,QAAO,SAAQ,EAAC;AAAA,EAAC;AAAA,EAAC,aAAY;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,YAAW;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,UAAU,GAAE;AAAC,aAAQ,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;AAAC,YAAMD,IAAE,EAAE,CAAC;AAAE,UAAG2C,GAAE3C,CAAC,EAAE,OAAM,OAAOA,CAAC;AAAA,WAAM;AAAC,cAAMF,IAAEuC,GAAC;AAAG,YAAGQ,EAAE7C,CAAC,EAAE,CAAAF,EAAE,OAAOE,CAAC;AAAA,iBAAUK,EAAEL,CAAC,EAAE,KAAGA,EAAE,SAAQ,EAAG,CAAAF,EAAE,OAAOE,CAAC;AAAA,aAAM;AAAC,gBAAMD,IAAEW,GAAEV,EAAE,eAAc,CAAE;AAAE,UAAAF,EAAE,OAAOC,CAAC;AAAA,QAAC;AAAA,YAAM,CAAAD,EAAE,OAAOE,CAAC;AAAE,cAAM,OAAOF,CAAC;AAAA,MAAC;AAAA,IAAC;AAAC,WAAO;AAAA,EAAI;AAAA,EAAC,iBAAiB,GAAE;AAAC,WAAO6C,GAAE,CAAC;AAAA,EAAC;AAAC;AAAC,SAASP,GAAEtC,GAAEG,GAAEC,GAAE;AAAC,QAAMC,IAAE,CAAA,GAAGC,IAAE,IAAGE,IAAEL,EAAE;AAAK,MAAYK,MAAT,QAAW;AAAC,UAAMR,IAAEQ,EAAE,GAAGJ,EAAE,KAAK,OAAO,KAAG,CAAA,GAAGH,IAAEqB,GAAElB,CAAC,IAAE,GAAEF,IAAED,IAAED,EAAE,QAAOG,IAAEH,EAAEE,CAAC,GAAEK,IAAEC,EAAEJ,EAAE,KAAK;AAAE,QAAIK;AAAE,UAAMI,IAAEL,EAAE,QAAOE,IAAEF,EAAE;AAAU,QAAYK,MAAT,UAAYA,EAAE,SAAOJ,IAAEI,EAAE,OAAeN,MAAT,UAAYF,EAAE,KAAKE,CAAC,GAAWG,MAAT,UAAsBN,EAAE,eAAZ,WAAwBC,EAAE,KAAKK,CAAC,GAAWP,MAAT,QAAW;AAAC,MAAAE,EAAE,KAAK,GAAGqB,GAAEvB,CAAC,CAAC;AAAE,eAAQF,IAAE,GAAEA,IAAED,EAAE,QAAOC,IAAI,CAAAA,MAAIC,KAAGI,EAAE,KAAKF,EAAE,QAAMH,CAAC;AAAA,IAAC;AAAC,QAAYQ,MAAT,QAAW;AAAC,YAAMT,IAAE0B,GAAEjB,CAAC;AAAE,MAAAR,IAAE,IAAEI,EAAE,KAAK,GAAGL,CAAC,IAAEM,EAAE,KAAK,GAAGN,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC,EAAAM,EAAE,SAAO,KAAGL,GAAED,GAAE,GAAGM,CAAC,GAAED,EAAE,SAAO,KAAGH,GAAEF,GAAE,GAAGK,CAAC;AAAC;AAAC,SAASuC,GAAE5C,GAAE;AAAC,QAAMC,IAAE,CAAA;AAAG,WAAQC,IAAE,GAAEA,IAAEF,EAAE,QAAOE,KAAI;AAAC,UAAM,IAAEF,EAAEE,CAAC;AAAE,QAAG2C,GAAE,CAAC,GAAE;AAAC,MAAA5C,EAAE,KAAK,CAAC;AAAE,YAAMD,IAAE,EAAE,YAAW;AAAG,MAAAA,EAAE,SAAO,KAAGA,EAAE,QAAS,CAAAA,MAAG;AAAC,QAAA+C,EAAE/C,CAAC,KAAGC,EAAE,KAAKoB,GAAErB,CAAC,CAAC;AAAA,MAAC,CAAC;AAAA,IAAE,MAAM,CAAAC,EAAE,KAAKoB,GAAE,CAAC,CAAC;AAAA,EAAC;AAAC,SAAOpB;AAAC;AAAC,SAAS0C,GAAE3C,GAAE;AAAC,QAAMC,IAAED,EAAE,SAAS,YAAW;AAAG,MAAIE,IAAE;AAAK,SAAUD,MAAP,OAAUC,IAAE8C,GAAE,UAAShD,EAAE,KAAK,IAAaC,MAAP,SAAWC,IAAE,SAASF,GAAE;AAAC,QAAaA,EAAE,aAAa,mBAAmB,MAA5C,WAA+CA,EAAE,UAAU,SAAS,oBAAoB,EAAE,QAAM;AAAG,eAAUC,KAAKD,EAAE,WAAW,KAAGG,GAAEF,CAAC,KAAGA,EAAE,aAAa,cAAc,EAAE,QAAM;AAAG;EAAQ,EAAED,CAAC,IAAEgD,GAAE,OAAO,IAAEA,GAAE,QAAQ,IAAS,EAAC,OAAMJ,IAAE,MAAK1C,EAAC;AAAC;AAAC,MAAM4C,KAAE,EAAC,IAAG,UAAS,IAAG,SAAQ;AAAE,SAASE,GAAEhD,GAAEC,IAAE,GAAE;AAAC,SAAOU,GAAE,IAAI+B,GAAE1C,GAAEC,CAAC,CAAC;AAAC;AAAC,SAAS8C,EAAE/C,GAAE;AAAC,SAAOA,aAAa0C;AAAC;AAAM,MAACO,KAAEjC,GAAiC,GAAEkC,KAAElC,GAA+B,GAAmCoC,KAAEpC,GAAuB;AAAE,SAASqC,GAAErD,GAAE;AAAC,SAAOI,GAAEJ,EAAE,gBAAgBkD,IAAG,OAAKd,GAAEpC,GAAE,QAAQ,GAAE,KAAKe,EAAC,GAAEf,EAAE,gBAAgBiD,IAAG,OAAKb,GAAEpC,GAAE,QAAQ,GAAE,KAAKe,EAAC,GAAEf,EAAE,gBAAgBoD,IAAG,OAAKpB,GAAEhC,CAAC,GAAE,KAAKe,EAAC,GAAEf,EAAE,gBAAgBkB,IAAG,MAAI,CAAC,CAACY,MAAKf,EAAC,CAAC;AAAC;ACArka,SAASZ,GAAEH,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAC,IAAIC,KAAEE,GAAG,SAASH,GAAE;AAAC,QAAME,IAAE,IAAI;AAAgB,EAAAA,EAAE,OAAO,QAAOF,CAAC;AAAE,WAAQA,IAAE,GAAEA,IAAE,UAAU,QAAOA,IAAI,CAAAE,EAAE,OAAO,KAAI,UAAUF,CAAC,CAAC;AAAE,QAAM,MAAM,2BAA2BA,CAAC,0CAA0CE,CAAC,gHAAgH;AAAC,CAAC;AAAG,MAAMK,KAAEP,GAAE,IAAI;AAAE,SAASM,GAAEN,GAAEE,GAAE;AAAY,SAAyB,EAAC,UAAS,WAAU;AAAC,WAAaA,KAAyB;AAAA,EAAI,EAAC;AAAC;AAAC,SAASQ,KAAG;AAAC,QAAMV,IAAEE,GAAEK,EAAC;AAAE,SAAaP,KAAN,QAASC,GAAE,CAAC,GAAED;AAAC;ACAtiB,SAASM,GAAE,EAAC,kBAAiBA,EAAC,GAAE;AAAC,QAAK,CAACC,CAAC,IAAEP,GAAC;AAAG,SAAOC,GAAG,MAAI;AAAC,IAAAM,EAAE,MAAO,MAAI;AAAC,YAAMP,IAAE,SAAS,eAAcC,IAAEM,EAAE,eAAc;AAAG,MAAON,MAAP,QAAiBD,MAAP,QAAUC,EAAE,SAASD,CAAC,KAAGC,EAAE,MAAM,EAAC,eAAc,GAAE,CAAC;AAAA,IAAC,GAAG,EAAC,kBAAiBK,EAAC,CAAC;AAAA,EAAC,GAAG,CAACA,GAAEC,CAAC,CAAC,GAAE;AAAI;ACA8J,SAASW,GAAEjB,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAC,IAAIsB,KAAEL,GAAG,SAASjB,GAAE;AAAC,QAAM,IAAE,IAAI;AAAgB,IAAE,OAAO,QAAOA,CAAC;AAAE,WAAQ,IAAE,GAAE,IAAE,UAAU,QAAO,IAAI,GAAE,OAAO,KAAI,UAAU,CAAC,CAAC;AAAE,QAAM,MAAM,2BAA2BA,CAAC,0CAA0C,CAAC,gHAAgH;AAAC,CAAC;AAAsI,SAASwB,GAAExB,GAAE,GAAE;AAAC,WAAQC,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,UAAM,IAAE,EAAEA,CAAC,EAAED,CAAC;AAAE,QAAG,EAAE,QAAO;AAAA,EAAC;AAAC,SAAO;AAAI;AAAC,MAAMmB,KAAE;AAAU,SAASC,GAAEpB,GAAE;AAAC,SAAOmB,GAAE,KAAKnB,CAAC;AAAC;AAAC,SAAS2C,GAAE3C,GAAE;AAAC,SAAOoB,GAAEpB,EAAEA,EAAE,SAAO,CAAC,CAAC;AAAC;AAAC,SAAS8B,GAAE9B,GAAE;AAAC,SAAOoB,GAAEpB,EAAE,CAAC,CAAC;AAAC;AAAC,SAASuC,GAAEvC,GAAE;AAAC,MAAI,IAAEA,EAAE,mBAAkB;AAAG,SAAOU,EAAE,CAAC,MAAI,IAAE,EAAE,kBAAiB,IAAW,MAAP,QAAUE,GAAE,CAAC,KAAGJ,EAAE,CAAC,KAAGmC,GAAE,EAAE,eAAc,CAAE;AAAC;AAAC,SAASpB,GAAEvB,GAAE;AAAC,MAAI,IAAEA,EAAE,eAAc;AAAG,SAAOU,EAAE,CAAC,MAAI,IAAE,EAAE,mBAAkB,IAAW,MAAP,QAAUE,GAAE,CAAC,KAAGJ,EAAE,CAAC,KAAGsB,GAAE,EAAE,gBAAgB;AAAC;AAAC,SAASd,GAAEhB,GAAE,GAAEC,GAAE,GAAE;AAAC,UAAKD,IAAE,IAAEoB,GAAEnB,EAAED,IAAE,CAAC,CAAC,IAAEuC,GAAE,EAAE,CAAC,CAAC,KAAmB,IAAEtC,EAAE,SAAOmB,GAAEnB,EAAE,CAAC,CAAC,IAAEsB,GAAE,EAAE,EAAE,SAAO,CAAC,CAAC,IAA5C;AAA6C;AAAC,SAASS,GAAEhC,GAAE,GAAEC,GAAE;AAAC,QAAM,IAAE,CAAA,GAAGK,IAAE,CAAA,GAAGD,IAAE,CAAA;AAAG,MAAIF,IAAE,GAAEC,IAAE;AAAE,QAAMK,IAAE,CAAC,GAAGT,CAAC;AAAE,SAAKS,EAAE,SAAO,KAAG;AAAC,UAAMT,IAAES,EAAE,CAAC,GAAEI,IAAEb,EAAE,eAAc,EAAG,QAAOO,IAAEH;AAAE,IAAAA,IAAES,KAAG,KAAG,EAAE,KAAKb,CAAC,GAAEG,KAAGU,KAAGN,KAAGN,IAAEI,EAAE,KAAKL,CAAC,IAAEM,EAAE,KAAKN,CAAC,GAAEI,KAAGS,GAAEJ,EAAE,MAAK;AAAA,EAAE;AAAC,SAAM,CAACN,GAAE,GAAEG,GAAED,CAAC;AAAC;AAAC,SAASqB,GAAE1B,GAAE,GAAEC,GAAE,GAAE;AAAC,QAAMI,IAAEC,GAAE,EAAE,KAAI,EAAE,UAAU;AAAE,MAAON,EAAE,WAAN,GAAa;AAAC,QAAIM,GAAEH,IAAEH,EAAE,CAAC;AAAE,IAAI,MAAJ,IAAM,CAACM,GAAEH,CAAC,IAAEA,EAAE,UAAUF,CAAC,IAAE,CAAA,EAAEK,GAAEH,CAAC,IAAEA,EAAE,UAAU,GAAEF,CAAC;AAAE,UAAMG,IAAEc,GAAE,EAAE,IAAI;AAAE,WAAOd,EAAE,UAAUE,EAAE,UAAS,CAAE,GAAEF,EAAE,UAAUE,EAAE,UAAS,CAAE,GAAEF,EAAE,SAASE,EAAE,SAAQ,CAAE,GAAED,EAAE,OAAOD,CAAC,GAAEE,EAAE,QAAQD,CAAC,GAAEF;AAAA,EAAC;AAAC,MAAGH,EAAE,SAAO,GAAE;AAAC,UAAME,IAAEF,EAAE,CAAC;AAAE,QAAIM,GAAEH,IAAED,EAAE,eAAc,EAAG;AAAO,IAAI,MAAJ,IAAMI,IAAEJ,IAAE,CAAA,EAAEI,CAAC,IAAEJ,EAAE,UAAU,CAAC;AAAE,UAAME,IAAE,CAAA;AAAG,QAAIG;AAAE,aAAQR,IAAE,GAAEA,IAAEC,EAAE,QAAOD,KAAI;AAAC,YAAMG,IAAEF,EAAED,CAAC,GAAEO,IAAEJ,EAAE,eAAc,EAAG,QAAOG,IAAEF;AAAE,UAAGE,IAAEJ,EAAE,KAAGE,IAAEG,KAAGL,EAAE,CAAAG,EAAE,KAAKF,CAAC;AAAA,WAAM;AAAC,cAAK,CAACF,GAAED,CAAC,IAAEG,EAAE,UAAUD,IAAEI,CAAC;AAAE,QAAAD,EAAE,KAAKJ,CAAC,GAAEO,IAAER;AAAA,MAAC;AAAC,MAAAI,KAAGG;AAAA,IAAC;AAAC,UAAM,IAAEG,EAAC,GAAG,IAAE,IAAE,EAAE,SAAQ,EAAG,KAAKD,CAAC,IAAE,QAAOG,IAAEO,GAAEZ,EAAE,eAAc,CAAE;AAAE,WAAOK,EAAE,UAAUL,EAAE,UAAS,CAAE,GAAEK,EAAE,UAAUL,EAAE,UAAS,CAAE,GAAEK,EAAE,SAASL,EAAE,SAAQ,CAAE,GAAED,EAAE,OAAOM,GAAE,GAAGP,CAAC,GAAE,KAAG,MAAIE,MAAIO,EAAE,CAAC,IAAEF,EAAE,OAAO,EAAE,OAAO,QAAO,EAAE,MAAM,MAAM,IAAEI,GAAE,CAAC,KAAGJ,EAAE,OAAO,GAAEA,EAAE,eAAc,EAAG,MAAM,IAAGL,EAAE,QAAQD,CAAC,GAAEE;AAAA,EAAC;AAAC;AAAC,SAASqB,GAAE5B,GAAE,GAAEC,GAAE;AAAC,QAAM,IAAED,EAAE,YAAW,GAAGM,IAAE,EAAE;AAAO,WAAQP,IAAE,GAAEA,IAAEO,GAAEP,KAAI;AAAC,UAAM,IAAE,EAAEA,CAAC;AAAE,QAAG,CAACS,EAAE,CAAC,KAAG,CAAC,EAAE,aAAY,EAAG,QAAO0B,GAAElC,CAAC,GAAE,KAAKC,EAAE,MAAKD,EAAE,OAAM,CAAE;AAAA,EAAC;AAAC,QAAMK,IAAEL,EAAE,eAAc,GAAGG,IAAEqB,GAAEnB,GAAE,CAAC;AAA8D,MAAlDF,MAAP,QAAUA,EAAE,SAAOE,KAAyC,CAACkC,GAAEvC,CAAC,KAAG,CAACuB,GAAEvB,CAAC,EAAE,QAAOkC,GAAElC,CAAC,GAAE,KAAKC,EAAE,MAAKD,EAAE,OAAM,CAAE;AAAE,QAAMI,IAAEJ,EAAE,OAAM;AAAG,MAAGI,MAAID,EAAE,QAAMH,EAAE,OAAOG,EAAE,GAAG,GAAEF,EAAEE,EAAE,KAAIC,CAAC,IAAGD,EAAE,YAAW;AAAC,UAAMJ,IAAEC,EAAE,OAAM;AAAG,IAAAD,MAAII,EAAE,WAAW,QAAMH,EAAE,OAAOG,EAAE,WAAW,OAAK,IAAI,GAAEF,EAAEE,EAAE,WAAW,OAAK,MAAKJ,CAAC;AAAG,UAAMG,IAAEF,EAAE,UAAS;AAAG,IAAAE,MAAIC,EAAE,WAAW,WAASH,EAAE,UAAUG,EAAE,WAAW,UAAQ,IAAI,GAAEF,EAAEE,EAAE,WAAW,UAAQ,MAAKD,CAAC;AAAA,EAAE;AAAC;AAAC,SAASgC,GAAElC,GAAE;AAAC,QAAM,IAAEA,EAAE,YAAW;AAAG,WAAQC,IAAE,EAAE,SAAO,GAAEA,KAAG,GAAEA,IAAI,CAAAD,EAAE,YAAY,EAAEC,CAAC,CAAC;AAAE,SAAOD,EAAE,OAAM,GAAG,EAAE,IAAK,OAAG,EAAE,UAAS,CAAE;AAAE;AAAC,SAASyB,GAAEnB,GAAED,GAAEK,GAAE;AAACC,EAAAA,GAAG,MAAI;AAAC,IAAAL,EAAE,SAAS,CAACN,EAAC,CAAC,KAAGsB,GAAE,EAAE;AAAE,UAAMV,IAAE,CAACZ,GAAED,MAAI;AAAC,MAAAW,KAAGA,EAAEV,GAAED,CAAC;AAAA,IAAC;AAAE,WAAOI,GAAEG,EAAE,sBAAsBF,IAAG,CAAAJ,MAAG;AAAC,YAAME,IAAEF,EAAE,iBAAgB,GAAGM,IAAEN,EAAE,mBAAkB;AAAG,UAAGD,GAAEG,CAAC,KAAG,CAACA,EAAE,cAAa,EAAG0B,CAAAA,GAAE1B,GAAEG,GAAEO,CAAC;AAAA,eAAU,CAACX,GAAEC,CAAC,GAAE;AAAC,YAAGF,EAAE,aAAY,MAAK8B,GAAE9B,EAAE,gBAAgB,KAAG,CAACD,GAAEO,CAAC,IAAG;AAAC,gBAAMP,IAAE,SAASC,GAAE;AAAC,kBAAMD,IAAE,CAACC,CAAC;AAAE,gBAAIC,IAAED,EAAE,eAAc;AAAG,mBAAYC,MAAP,QAAUO,EAAEP,CAAC,KAAGA,EAAE,aAAY,MAAKF,EAAE,KAAKE,CAAC,GAAE,CAAC,OAAO,KAAKA,EAAE,eAAc,CAAE,KAAI,CAAAA,IAAEA,EAAE,eAAc;AAAG,mBAAOF;AAAA,UAAC,EAAEC,CAAC;AAAE,WAAC,SAASA,GAAED,GAAEE,GAAE;AAAC,gBAAIC,IAAE,CAAC,GAAGF,CAAC;AAAE,kBAAMM,IAAEJ,EAAE,IAAK,CAAAF,MAAGA,EAAE,eAAc,CAAE,EAAG,KAAK,EAAE;AAAE,gBAAIK,GAAEF,IAAEG,GAAEF,IAAE;AAAE,oBAAMC,IAAEmB,GAAErB,GAAEJ,CAAC,MAAWM,MAAP,QAAU;AAAC,oBAAML,IAAEK,EAAE,OAAMN,IAAEC,IAAEK,EAAE;AAAO,kBAAGW,GAAEZ,IAAEJ,GAAEI,IAAEL,GAAEO,GAAEJ,CAAC,GAAE;AAAC,sBAAK,CAACI,GAAC,EAAEH,GAAEM,CAAC,IAAEuB,GAAE9B,GAAEE,IAAEJ,GAAEI,IAAEL,CAAC,GAAEc,IAAEa,GAAEvB,GAAEC,IAAEJ,IAAEM,GAAEF,IAAEL,IAAEO,GAAED,CAAC;AAAE,gBAAAH,IAAEW,IAAE,CAACA,GAAE,GAAGJ,CAAC,IAAEA,GAAER,EAAEI,EAAE,KAAI,IAAI,GAAED,IAAE;AAAA,cAAC,MAAM,CAAAA,KAAGL;AAAE,cAAAI,IAAEA,EAAE,UAAUJ,CAAC;AAAA,YAAC;AAAA,UAAC,GAAEA,GAAEM,GAAEO,CAAC;AAAA,QAAC;AAAC,SAAC,SAASZ,GAAEC,GAAEC,GAAE;AAAC,gBAAMI,IAAEN,EAAE,mBAAkB,GAAGK,IAAEL,EAAE,eAAc,GAAGG,IAAEH,EAAE,eAAc;AAAG,cAAII;AAAE,WAACL,GAAEO,CAAC,KAAGA,EAAE,mBAAiBwB,GAAE3B,CAAC,MAAIC,IAAED,GAAE,EAAEG,EAAE,WAAU,IAAG,kBAAkB,KAAKF,CAAC,IAAE,qBAAqB,KAAKA,CAAC,QAAME,EAAE,OAAON,CAAC,GAAE4B,GAAEtB,GAAEL,GAAEC,CAAC,GAAEA,EAAE,MAAKI,EAAE,OAAM,CAAE,IAAG,CAACP,GAAEM,CAAC,KAAGA,EAAE,cAAa,KAAIsC,GAAExC,CAAC,MAAI+B,GAAE7B,CAAC,GAAEuB,GAAEvB,GAAEJ,GAAEC,CAAC,GAAEA,EAAE,MAAKG,EAAE,OAAM,CAAE;AAAA,QAAE,GAAEL,GAAEK,GAAEO,CAAC;AAAA,MAAC;AAAA,IAAC,CAAC,GAAGN,EAAE,gBAAgBJ,IAAG,CAAAF,MAAG;AAAC,YAAMC,IAAEQ,EAAC;AAAG,aAAUT,MAAP,QAAU,CAACa,EAAEZ,CAAC,KAAkBA,EAAE,QAAO,EAAG,QAAS,CAAAD,MAAG;AAAC,cAAMC,IAAED,EAAE,UAAS;AAAG,YAAGD,GAAEE,CAAC,EAAE,QAAOA,EAAE,cAAc,CAACA,EAAE,cAAa,CAAE,GAAEA,EAAE,UAAS,GAAG;AAAA,MAAE,CAAC,GAAG;AAAA,IAAE,GAAGM,EAAC,CAAC;AAAA,EAAC,GAAG,CAACD,GAAED,GAAEK,CAAC,CAAC;AAAC;AAAC,SAASmB,GAAE,EAAC,UAAS7B,GAAE,UAAS,EAAC,GAAE;AAAC,QAAK,CAACC,CAAC,IAAEI,GAAC;AAAG,SAAOoB,GAAExB,GAAED,GAAE,CAAC,GAAE;AAAI;ACAtyI,MAAMI,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,UAAmC,OAAO,SAAS,kBAAzB,QAAuCa,KAAEb,KAAEI,KAAED,IAAEE,KAAE,EAAC,KAAI,gBAAe;AAAE,SAASM,GAAE,EAAC,eAAcP,GAAE,UAASD,EAAC,GAAE;AAAC,QAAMQ,IAAET,GAAG,MAAI;AAAC,UAAK,EAAC,OAAMN,GAAE,WAAUO,GAAE,OAAMD,GAAE,SAAQK,GAAE,aAAYM,GAAE,MAAKF,EAAC,IAAEP,GAAEE,IAAEX,GAAE,MAAKC,CAAC,GAAE2B,IAAEtB,GAAE,EAAC,UAASG,EAAE,UAAS,MAAKO,GAAE,WAAUR,GAAE,OAAMD,GAAE,SAAQ,CAAAP,MAAGY,EAAEZ,GAAE4B,CAAC,GAAE,OAAM3B,EAAC,CAAC;AAAE,WAAO,SAASD,GAAEC,GAAE;AAAC,UAAUA,MAAP;AAAgB,YAAYA,MAAT,OAAW,CAAAD,EAAE,OAAQ,MAAI;AAAC,gBAAMC,IAAEC,GAAC;AAAG,cAAGD,EAAE,QAAO,GAAG;AAAC,kBAAMK,IAAEF;AAAI,YAAAH,EAAE,OAAOK,CAAC;AAAE,kBAAMJ,IAAEG,KAAE,SAAS,gBAAc;AAAK,aAAQF,EAAC,MAAR,QAAmBD,MAAP,QAAUA,MAAIF,EAAE,eAAc,MAAKM,EAAE,OAAM;AAAA,UAAE;AAAA,QAAC,GAAGI,EAAC;AAAA,iBAAiBT,MAAP,KAAS,SAAO,OAAOA;UAAG,KAAI,UAAS;AAAC,kBAAMK,IAAEN,EAAE,iBAAiBC,CAAC;AAAE,YAAAD,EAAE,eAAeM,GAAEI,EAAC;AAAE;AAAA,UAAK;AAAA,UAAC,KAAI;AAAS,YAAAV,EAAE,eAAeC,GAAES,EAAC;AAAE;AAAA,UAAM,KAAI;AAAW,YAAAV,EAAE,OAAQ,MAAI;AAACE,cAAAA,KAAI,aAAWD,EAAED,CAAC;AAAA,YAAC,GAAGU,EAAC;AAAA,QAAC;AAAA;AAAA,IAAC,EAAEkB,GAAEV,CAAC,GAAE,CAACU,GAAEjB,CAAC;AAAA,EAAC,GAAG,CAAA,CAAE;AAAE,SAAOO,GAAG,MAAI;AAAC,UAAMlB,IAAES,EAAE,UAAS,CAACR,CAAC,IAAEe;AAAE,IAAAf,EAAE,YAAqBD,MAAT,UAAYA,CAAC;AAAA,EAAC,GAAG,CAAA,CAAE,GAAEY,EAAEX,GAAE,UAAS,EAAC,OAAMe,GAAE,UAASR,EAAC,CAAC;AAAC;ACAhjC,SAASH,KAAG;AAAC,SAAOJ,GAAC,EAAG,eAAc;AAAE;AAAC,SAASS,GAAET,GAAE,IAAE,IAAG;AAAC,MAAGA,EAAE,QAAM;AAAG,MAAIC,IAAEG,GAAC;AAAG,SAAO,MAAIH,IAAEA,EAAE,KAAI,IAASA,MAAL;AAAM;AAAkC,SAASM,GAAEF,GAAE;AAAC,MAAG,CAACI,GAAEJ,GAAE,EAAE,EAAE,QAAM;AAAG,QAAMC,IAAEN,GAAC,EAAG,eAAcI,IAAEE,EAAE;AAAO,MAAGF,IAAE,EAAE;AAAS,WAAQJ,IAAE,GAAEA,IAAEI,GAAEJ,KAAI;AAAC,UAAMK,IAAEC,EAAEN,CAAC;AAAE,QAAGD,GAAEM,CAAC,EAAE,QAAM;AAAG,QAAGJ,EAAEI,CAAC,GAAE;AAAmB,UAAf,CAACH,GAAEG,CAAC,KAAkBA,EAAE,aAAN,EAAe;AAAS,YAAMN,IAAEM,EAAE,YAAW,GAAGJ,IAAEF,EAAE;AAAO,eAAQG,IAAE,GAAEA,IAAED,GAAEC,KAAI;AAAC,cAAMD,IAAEF,EAAEC,CAAC;AAAE,YAAG,CAACG,EAAEF,CAAC,EAAE,QAAM;AAAA,MAAE;AAAA,IAAC;AAAA,EAAC;AAAC,SAAM;AAAE;AAAC,SAASY,GAAEb,GAAE;AAAC,SAAM,MAAIO,GAAEP,CAAC;AAAC;AAAoY,SAASW,GAAEX,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAOW,GAAG,SAASX,GAAE;AAAC,QAAM,IAAE,IAAI;AAAgB,IAAE,OAAO,QAAOA,CAAC;AAAE,WAAQ,IAAE,GAAE,IAAE,UAAU,QAAO,IAAI,GAAE,OAAO,KAAI,UAAU,CAAC,CAAC;AAAE,QAAM,MAAM,2BAA2BA,CAAC,0CAA0C,CAAC,gHAAgH;AAAC,CAAC;ACA3iC,MAAMiB,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,UAAmC,OAAO,SAAS,kBAAzB,SAAuCjB,KAAEG;AAAE,SAASO,GAAE,EAAC,QAAOX,GAAE,sBAAqBC,GAAE,kBAAiBG,GAAE,cAAaK,GAAE,iBAAgBG,GAAE,kBAAiBJ,GAAE,cAAa,GAAE,aAAYE,GAAE,WAAUC,GAAE,gBAAec,GAAE,eAAcT,GAAE,UAASG,GAAE,cAAaS,GAAE,gBAAeR,GAAE,WAAUM,GAAE,IAAGT,GAAE,MAAKK,IAAE,WAAU,YAAWR,IAAE,IAAG,OAAMD,GAAE,UAASkB,GAAE,eAAcE,GAAE,GAAGE,EAAC,GAAEK,GAAE;AAAC,QAAK,CAAChB,GAAEwB,CAAC,IAAE7C,GAAEH,EAAE,WAAU,CAAE,GAAEsC,IAAEpC,GAAG,CAAAD,MAAG;AAAC,IAAAA,KAAGA,EAAE,iBAAeA,EAAE,cAAc,cAAYD,EAAE,eAAeC,CAAC,IAAED,EAAE,eAAe,IAAI;AAAA,EAAC,GAAG,CAACA,CAAC,CAAC,GAAEoC,IAAE9B,GAAG,MAAI,4BAAYN,GAAE;AAAC,WAAO,CAAAC,MAAG;AAAC,MAAAD,EAAE,QAAS,CAAAA,MAAG;AAAC,QAAY,OAAOA,KAAnB,aAAqBA,EAAEC,CAAC,IAAQD,KAAN,SAAUA,EAAE,UAAQC;AAAA,MAAE,CAAC;AAAA,IAAE;AAAA,EAAC,EAAEuC,GAAEF,CAAC,GAAG,CAACA,GAAEE,CAAC,CAAC;AAAE,SAAOtB,GAAG,OAAK8B,EAAEhD,EAAE,YAAY,GAAEA,EAAE,yBAA0B,CAAAA,MAAG;AAAC,IAAAgD,EAAEhD,CAAC;AAAA,EAAC,CAAC,IAAK,CAACA,CAAC,CAAC,GAAEO,EAAE,OAAM,EAAC,yBAAwBiB,IAAEvB,IAAE,QAAO,qBAAoBuB,IAAEpB,IAAE,QAAO,iBAAgBoB,IAAEf,IAAE,QAAO,oBAAmBG,GAAE,GAASJ,KAAN,OAAQ,EAAC,qBAAoBA,EAAC,IAAE,CAAA,GAAG,iBAAgBgB,KAAgBF,MAAb,aAAe,CAAC,CAAC,IAAE,QAAO,GAASZ,KAAN,OAAQ,EAAC,gBAAeA,EAAC,IAAE,CAAA,GAAG,cAAaC,GAAE,mBAAkBc,GAAE,kBAAiBT,GAAE,aAAYQ,IAAEL,IAAE,QAAO,iBAAgB,CAACK,KAAG,QAAO,iBAAgBI,GAAE,gBAAeR,GAAE,WAAUM,GAAE,iBAAgBF,GAAE,eAAcS,GAAE,IAAGhB,GAAE,KAAImB,GAAE,MAAKZ,IAAEF,IAAE,QAAO,YAAWR,GAAE,OAAMD,GAAE,UAASkB,GAAE,GAAGI,EAAC,CAAC;AAAC;AAAC,MAAMV,KAAEhB,GAAEE,EAAC;AAAE,SAASK,GAAEhB,GAAE;AAAC,SAAOA,EAAE,eAAc,EAAG,KAAKK,GAAEL,EAAE,YAAW,CAAE,CAAC;AAAC;AAAC,MAAMmB,KAAEV,GAAEmB,EAAC;AAAE,SAASA,GAAE3B,GAAEG,GAAE;AAAC,QAAK,EAAC,aAAYK,GAAE,GAAG,EAAC,IAAER,GAAE,CAACC,CAAC,IAAEF,GAAC;AAAG,SAAOY,GAAEJ,IAAE,EAAC,UAAS,CAACD,EAAEkB,IAAE,EAAC,QAAOvB,GAAE,GAAG,GAAE,KAAIE,EAAC,CAAC,GAAQK,KAAN,QAASF,EAAEa,IAAE,EAAC,QAAOlB,GAAE,SAAQO,EAAC,CAAC,CAAC,EAAC,CAAC;AAAC;AAAC,SAASW,GAAE,EAAC,SAAQpB,GAAE,QAAOI,EAAC,GAAE;AAAC,QAAMK,IAAE,SAAST,GAAE;AAAC,UAAK,CAACC,GAAEG,CAAC,IAAED,GAAG,MAAIa,GAAEhB,CAAC;AAAI,WAAOkB,GAAG,MAAI;AAAC,eAASjB,IAAG;AAAC,cAAMA,IAAEe,GAAEhB,CAAC;AAAE,QAAAI,EAAEH,CAAC;AAAA,MAAC;AAAC,aAAOA,EAAC,GAAGS,GAAEV,EAAE,uBAAwB,MAAI;AAAC,QAAAC;MAAG,CAAC,GAAGD,EAAE,yBAA0B,MAAI;AAAC,QAAAC,EAAC;AAAA,MAAE,CAAC,CAAE;AAAA,IAAC,GAAG,CAACD,CAAC,CAAC,GAAEC;AAAA,EAAC,EAAEG,CAAC,GAAE,CAACF,GAAEI,CAAC,IAAEH,GAAEC,EAAE,WAAU,CAAE;AAAE,MAAGH,GAAG,OAAKK,EAAEF,EAAE,WAAU,CAAE,GAAEA,EAAE,yBAA0B,CAAAJ,MAAG;AAAC,IAAAM,EAAEN,CAAC;AAAA,EAAC,KAAM,CAACI,CAAC,CAAC,GAAE,CAACK,EAAE,QAAO;AAAK,MAAIG,IAAE;AAAK,SAAkB,OAAOZ,KAAnB,aAAqBY,IAAEZ,EAAEE,CAAC,IAASF,MAAP,SAAWY,IAAEZ,IAAUY,MAAP,OAAS,OAAKL,EAAE,OAAM,EAAC,eAAc,IAAG,UAASK,EAAC,CAAC;AAAC;ACAlsE,SAASX,GAAEE,GAAE,GAAE;AAAC,SAAOF,KAAE,OAAO,iBAAe,OAAO,eAAe,KAAI,IAAG,SAASE,GAAEH,GAAE;AAAC,WAAOG,EAAE,YAAUH,GAAEG;AAAA,EAAC,GAAEF,GAAEE,GAAE,CAAC;AAAC;AAAC,IAAIG,KAAE,EAAC,OAAM,KAAI,GAAEJ,KAAE,SAASF,GAAE;AAAC,MAAIE,GAAEO;AAAE,WAASJ,IAAG;AAAC,aAAQF,GAAEF,IAAE,UAAU,QAAOC,IAAE,IAAI,MAAMD,CAAC,GAAE,IAAE,GAAE,IAAEA,GAAE,IAAI,CAAAC,EAAE,CAAC,IAAE,UAAU,CAAC;AAAE,YAAOC,IAAEH,EAAE,KAAK,MAAMA,GAAE,CAAC,IAAI,EAAE,OAAOE,CAAC,CAAC,KAAG,MAAM,QAAMI,IAAEH,EAAE,qBAAmB,WAAU;AAAC,eAAQH,GAAEC,IAAE,UAAU,QAAOK,IAAE,IAAI,MAAML,CAAC,GAAEC,IAAE,GAAEA,IAAED,GAAEC,IAAI,CAAAI,EAAEJ,CAAC,IAAE,UAAUA,CAAC;AAAE,MAAMC,EAAE,MAAM,WAAd,SAAwBH,IAAEG,EAAE,OAAO,QAAQ,MAAMH,GAAEM,CAAC,GAAEH,EAAE,MAAK;AAAA,IAAE,GAAEA;AAAA,EAAC;AAAC,EAAAM,IAAET,IAAGE,IAAEG,GAAG,YAAU,OAAO,OAAOI,EAAE,SAAS,GAAEP,EAAE,UAAU,cAAYA,GAAED,GAAEC,GAAEO,CAAC,GAAEJ,EAAE,2BAAyB,SAASF,GAAE;AAAC,WAAM,EAAC,OAAMA,EAAC;AAAA,EAAC;AAAE,MAAII,IAAEF,EAAE;AAAU,SAAOE,EAAE,QAAM,WAAU;AAAC,SAAK,SAASD,EAAC;AAAA,EAAC,GAAEC,EAAE,oBAAkB,SAASJ,GAAEH,GAAE;AAAC,QAAIC,GAAEK;AAAE,KAAOL,KAAGK,IAAE,KAAK,OAAO,YAAxB,QAAkCL,EAAE,KAAKK,GAAEH,GAAEH,CAAC;AAAA,EAAC,GAAEO,EAAE,qBAAmB,SAASJ,GAAEH,GAAE;AAAC,QAAIC,GAAEK,GAAEJ,GAAEO,GAAEJ,IAAE,KAAK,MAAM,OAAME,IAAE,KAAK,MAAM;AAAU,IAAOF,MAAP,QAAiBL,EAAE,UAAT,UAA2BE,IAAEC,EAAE,eAAd,WAA2BD,IAAE,CAAA,KAAcO,IAAEF,OAAZ,WAAiBE,IAAE,CAAA,IAAIP,EAAE,WAASO,EAAE,UAAQP,EAAE,KAAM,SAASC,GAAEH,GAAE;AAAC,aAAM,CAAC,OAAO,GAAGG,GAAEM,EAAET,CAAC,CAAC;AAAA,IAAC,CAAC,QAAaC,KAAGK,IAAE,KAAK,OAAO,sBAAxB,QAA4CL,EAAE,KAAKK,GAAEH,EAAE,WAAUI,CAAC,GAAE,KAAK,MAAK;AAAA,EAAG,GAAEA,EAAE,SAAO,WAAU;AAAC,QAAIP,IAAE,KAAK,MAAM,OAAMC,IAAE,KAAK,OAAM,IAAEA,EAAE,gBAAeC,IAAED,EAAE,mBAAkBQ,IAAER,EAAE;AAAS,QAAUD,MAAP,MAAS;AAAC,UAAIK,IAAE,EAAC,OAAML,GAAE,oBAAmB,KAAK,mBAAkB;AAAE,UAAGG,GAAE,eAAeM,CAAC,EAAE,QAAOA;AAAE,UAAe,OAAO,KAAnB,WAAqB,QAAO,EAAEJ,CAAC;AAAE,UAAGH,EAAE,QAAOC,GAAE,cAAcD,GAAEG,CAAC;AAAE,YAAM,IAAI,MAAM,4FAA4F;AAAA,IAAC;AAAC,WAAO,KAAK,MAAM;AAAA,EAAQ,GAAEA;AAAC,EAAEF,GAAE,SAAS;AAAE,SAASM,GAAE,EAAC,UAASN,GAAE,SAAQF,EAAC,GAAE;AAAC,SAAOD,EAAEE,IAAE,EAAC,UAASF,EAAE,OAAM,EAAC,OAAM,EAAC,QAAO,kBAAiB,OAAM,QAAO,SAAQ,MAAK,GAAE,UAAS,uBAAsB,CAAC,GAAE,SAAQC,GAAE,UAASE,EAAC,CAAC;AAAC;ACAn9C,MAAMI,KAAE,GAAEI,KAAE,GAAEK,KAAE,GAAEH,KAAE,GAAEK,KAAE,GAAEJ,KAAE,GAAEC,KAAE,GAAEM,KAAE;AAAE,SAASJ,GAAEhB,GAAE,GAAEC,GAAE,GAAEI,GAAE;AAAC,MAAUL,MAAP,QAAcC,EAAE,SAAN,KAAgB,EAAE,SAAN,KAAY,CAACI,EAAE,QAAOO;AAAE,QAAM,IAAE,EAAE,YAAW,IAAEZ,EAAE;AAAW,MAAGK,EAAE,QAAOY;AAAE,MAAG,EAAET,EAAE,CAAC,KAAGA,EAAE,CAAC,KAAG,EAAE,YAAW,KAAI,EAAE,YAAW,GAAI,QAAOI;AAAE,QAAML,IAAE,SAASP,GAAED,GAAEE,GAAE;AAAC,UAAMC,IAAEF,EAAE,UAASK,IAAE;AAAG,eAAUL,KAAKD,GAAE;AAAC,YAAMA,IAAEG,EAAE,IAAIF,CAAC;AAAE,MAASD,MAAT,UAAYM,EAAE,KAAKN,CAAC;AAAA,IAAC;AAAC,eAAS,CAACC,GAAED,CAAC,KAAIE,GAAE;AAAC,UAAG,CAACF,EAAE;AAAS,YAAME,IAAEC,EAAE,IAAIF,CAAC;AAAE,MAASC,MAAT,UAAYU,GAAEV,CAAC,KAAGI,EAAE,KAAKJ,CAAC;AAAA,IAAC;AAAC,WAAOI;AAAA,EAAC,EAAE,GAAEJ,GAAE,CAAC;AAAE,MAAOM,EAAE,WAAN,EAAa,QAAOK;AAAE,MAAGL,EAAE,SAAO,GAAE;AAAC,UAAMN,IAAE,EAAE,UAASC,IAAED,EAAE,IAAI,EAAE,OAAO,GAAG,GAAEI,IAAEJ,EAAE,IAAI,EAAE,OAAO,GAAG;AAAE,WAAOC,KAAGG,KAAG,CAACL,EAAE,SAAS,IAAIE,EAAE,KAAK,KAAGO,EAAEP,CAAC,KAAOA,EAAE,OAAO,WAAb,KAAyB,EAAE,OAAO,WAAb,IAAoBW,KAAED;AAAAA,EAAC;AAAC,QAAMN,IAAEC,EAAE,CAAC,GAAEG,IAAEV,EAAE,SAAS,IAAIM,EAAE,KAAK;AAAE,MAAG,CAACG,EAAEC,CAAC,KAAG,CAACD,EAAEH,CAAC,KAAGI,EAAE,WAASJ,EAAE,OAAO,QAAOM;AAAE,QAAMG,IAAEL,EAAE,QAAOM,IAAEV,EAAE;AAAO,MAAGS,MAAIC,EAAE,QAAOJ;AAAE,QAAMW,IAAE,EAAE,QAAOF,IAAE,EAAE;AAAO,MAAGE,EAAE,QAAMF,EAAE,OAAcE,EAAE,SAAX,OAAgB,QAAOX;AAAE,QAAMM,IAAEK,EAAE,QAAOU,IAAEZ,EAAE,QAAOgB,IAAErB,EAAE,SAAOD,EAAE;AAAO,SAAWsB,MAAJ,KAAOJ,MAAIf,IAAE,IAAEL,KAAOwB,MAAL,MAAQJ,MAAIf,IAAE,IAAEJ,KAAOuB,MAAL,MAAQJ,MAAIf,IAAEE,KAAER;AAAC;AAAC,SAASW,GAAEvB,GAAE,GAAE;AAAC,MAAIC,IAAE,KAAK,IAAG,GAAG,IAAEW;AAAE,SAAM,CAACP,GAAE,GAAE,GAAEE,GAAEI,GAAEM,MAAI;AAAC,UAAMJ,IAAE,KAAK;AAAM,QAAGI,EAAE,IAAI,UAAU,EAAE,QAAO,IAAEL,IAAEX,IAAEY,GAAEE;AAAE,UAAMD,IAAEE,GAAEX,GAAE,GAAEE,GAAEI,GAAEX,EAAE,YAAW,CAAE,GAAEoB,KAAG,MAAI;AAAC,YAAMA,IAAS,MAAP,QAAU,EAAE,WAASpB,GAAEgB,IAAEC,EAAE,IAAI,cAAc;AAAE,UAAG,CAACD,KAAGI,KAAGH,EAAE,IAAI,eAAe,EAAE,QAAOX;AAAE,UAAUD,MAAP,KAAS,QAAOK;AAAE,YAAMa,IAAE,EAAE;AAAW,aAAKhB,EAAE,OAAK,KAAGI,EAAE,OAAK,IAA+BK,MAAL,MAAQF,MAAIF,MAAGE,MAAI,KAAGD,IAAEZ,IAAE,KAAGmB,KAAkBb,EAAE,SAAN,KAAe,SAASP,GAAED,GAAEE,GAAE;AAAC,cAAMC,IAAEH,EAAE,SAAS,IAAIC,CAAC,GAAEK,IAAEJ,EAAE,SAAS,IAAID,CAAC,GAAEG,IAAEJ,EAAE,YAAWK,IAAEH,EAAE;AAAW,eAAM,EAAEO,EAAEL,CAAC,KAAGK,EAAEJ,CAAC,KAAeD,EAAE,OAAO,SAArB,aAAuCA,EAAE,MAAM,SAApB,aAAmCC,EAAE,OAAO,SAAlB,UAAiCA,EAAE,MAAM,SAAjB,UAAuB,CAACK,EAAEP,CAAC,KAAG,CAACO,EAAEJ,CAAC,KAAGH,EAAE,aAAWG,EAAE,aAAW,KAAK,UAAUN,EAAE,KAAM,MAAIG,EAAE,WAAU,EAAI,MAAI,KAAK,UAAUD,EAAE,KAAM,MAAII,EAAE,WAAU,CAAE,CAAE;AAAA,MAAC,EAAE,MAAM,KAAKE,CAAC,EAAE,CAAC,GAAEF,GAAE,CAAC,IAASC,KAASI,KAAlca,MAAP,OAASjB,KAAES;AAAA,IAA+b,GAAC;AAAI,WAAOd,IAAEY,GAAE,IAAEC,GAAEM;AAAA,EAAC;AAAC;AAAC,SAASC,GAAErB,GAAE;AAAC,EAAAA,EAAE,YAAU,IAAGA,EAAE,YAAU,IAAGA,EAAE,UAAQ;AAAI;AAAC,SAASkB,GAAEV,GAAEC,GAAEE,GAAE;AAAC,QAAML,IAAEiB,GAAEf,GAAEG,CAAC;AAAymC,SAArmCX,GAAEQ,EAAE,gBAAgBT,IAAG,OAAK,SAASC,GAAED,GAAE;AAAC,UAAME,IAAEF,EAAE,WAAUG,IAAEH,EAAE;AAAU,QAAOG,EAAE,WAAN,GAAa;AAAC,YAAMG,IAAEN,EAAE,SAAQI,IAAED,EAAE,IAAG;AAAG,MAAOG,MAAP,SAAWJ,EAAE,KAAKI,CAAC,GAAEL,EAAE,gBAAgBI,IAAE,EAAE,IAAOF,EAAE,WAAN,KAAcF,EAAE,gBAAgBO,IAAE,EAAE,GAAER,EAAE,UAAQI,KAAG,MAAKA,KAAGA,EAAE,OAAO,eAAeA,EAAE,aAAY,EAAC,KAAI,WAAU,CAAC;AAAA,IAAC;AAAA,EAAC,EAAEK,GAAEC,CAAC,GAAE,KAAKR,CAAC,GAAEO,EAAE,gBAAgBN,IAAG,OAAK,SAASF,GAAED,GAAE;AAAC,UAAME,IAAEF,EAAE,WAAUG,IAAEH,EAAE;AAAU,QAAOE,EAAE,WAAN,GAAa;AAAC,YAAMI,IAAEN,EAAE;AAAQ,MAAOM,MAAP,SAAWH,EAAE,KAAKG,CAAC,GAAEL,EAAE,gBAAgBO,IAAE,EAAE;AAAG,YAAMJ,IAAEF,EAAE,IAAG;AAAG,MAAIA,EAAE,WAAN,KAAcD,EAAE,gBAAgBI,IAAE,EAAE,GAAEL,EAAE,UAAQI,KAAG,MAAKA,KAAGA,EAAE,OAAO,eAAeA,EAAE,aAAY,EAAC,KAAI,WAAU,CAAC;AAAA,IAAC;AAAA,EAAC,EAAEK,GAAEC,CAAC,GAAE,KAAKR,CAAC,GAAEO,EAAE,gBAAgBH,IAAG,OAAKgB,GAAEZ,CAAC,GAAE,KAAKR,CAAC,GAAEO,EAAE,gBAAgBL,IAAG,OAAKkB,GAAEZ,CAAC,GAAED,EAAE,gBAAgBJ,IAAE,EAAE,GAAEI,EAAE,gBAAgBD,IAAE,EAAE,GAAE,KAAKN,CAAC,GAAEO,EAAE,uBAAwB,CAAC,EAAC,aAAYR,GAAE,iBAAgBD,GAAE,aAAYE,GAAE,eAAcC,GAAE,MAAKG,EAAC,MAAI;AAAC,UAAMF,IAAEM,EAAE,SAAQE,IAAEF,EAAE,WAAUG,IAAEH,EAAE,WAAUQ,IAASd,MAAP,OAAS,OAAKA,EAAE;AAAY,QAAUA,MAAP,QAAUH,MAAIiB,EAAE;AAAO,UAAMJ,IAAEP,EAAEP,GAAEC,GAAEG,GAAEF,GAAEC,GAAEG,CAAC;AAAE,QAAGQ,MAAIH,GAAE,CAAIC,EAAE,WAAN,MAAeF,EAAE,YAAU,CAAA,GAAGD,EAAE,gBAAgBJ,IAAE,EAAE,IAAUD,MAAP,SAAWS,EAAE,KAAK,EAAC,GAAGT,EAAC,CAAC,GAAEK,EAAE,gBAAgBD,IAAE,EAAE;AAAA,aAAWM,MAAIE,GAAE;AAAO,IAAAN,EAAE,UAAQ,EAAC,QAAOD,GAAE,aAAYR,EAAC;AAAA,EAAC,EAAG;AAAU;AAAC,SAASiC,KAAG;AAAC,SAAM,EAAC,SAAQ,MAAK,WAAU,CAAA,GAAG,WAAU,GAAE;AAAC;ACAt+F,SAASzB,GAAE,EAAC,OAAMA,GAAE,sBAAqBD,EAAC,GAAE;AAAC,QAAK,CAACD,CAAC,IAAEN,GAAC;AAAG,SAAO,SAASA,GAAEQ,GAAED,IAAE,KAAI;AAAC,UAAMD,IAAEP,GAAG,MAAIS,KAAGH,GAAC,GAAI,CAACG,CAAC,CAAC;AAAEL,IAAAA,GAAG,MAAID,GAAEF,GAAEM,GAAEC,CAAC,GAAG,CAACA,GAAEP,GAAEM,CAAC,CAAC;AAAA,EAAC,EAAEA,GAAEC,GAAEC,CAAC,GAAE;AAAI;ACAjB,SAASG,GAAE,EAAC,aAAYA,GAAE,YAAWI,EAAC,GAAE;AAAC,QAAK,CAACL,CAAC,IAAEL,GAAC;AAAG,SAAOE,GAAG,MAAI;AAAC,QAAG,CAACG,EAAE,SAAS,CAACV,EAAC,CAAC,EAAE,OAAM,IAAI,MAAM,+CAA+C;AAAE,WAAOG,GAAEO,EAAE,gBAAgBR,IAAG,CAAAF,MAAG;AAAC,UAAUA,MAAP,KAAS,QAAOD,GAAEC,CAAC,GAAE;AAAG,UAAa,OAAOA,KAAjB,SAAmB,QAAM,EAAWW,MAAT,UAAY,CAACA,EAAEX,CAAC,OAAKD,GAAEC,GAAEe,CAAC,GAAE;AAAI;AAAC,cAAK,EAAC,KAAIb,GAAE,QAAOG,GAAE,KAAIF,GAAE,OAAMG,EAAC,IAAEN;AAAE,eAAOD,GAAEG,GAAE,EAAC,GAAGa,GAAE,KAAIZ,GAAE,QAAOE,GAAE,OAAMC,EAAC,CAAC,GAAE;AAAA,MAAE;AAAA,IAAC,GAAGL,EAAC,GAAWU,MAAT,SAAWD,EAAE,gBAAgBF,IAAG,CAAAR,MAAG;AAAC,YAAMD,IAAEK;AAAI,UAAG,CAACa,EAAElB,CAAC,KAAGA,EAAE,YAAW,KAAI,CAACO,GAAEN,GAAE,cAAc,EAAE,QAAM;AAAG,YAAMK,IAAEL;AAAE,UAAUK,EAAE,kBAAT,KAAuB,QAAM;AAAG,YAAMF,IAAEE,EAAE,cAAc,QAAQ,MAAM;AAAE,aAAM,CAAC,CAACM,EAAER,CAAC,KAAI,CAACJ,EAAE,WAAW,KAAM,CAAAC,MAAGS,EAAET,CAAC,CAAC,MAAKU,EAAE,gBAAgBR,IAAE,EAAC,GAAGa,GAAE,KAAIZ,EAAC,CAAC,GAAEH,EAAE,eAAc,GAAG;AAAA,IAAI,GAAGC,EAAC,IAAE,MAAI;AAAA,IAAC,CAAC;AAAA,EAAC,GAAG,CAACS,GAAEC,GAAEI,CAAC,CAAC,GAAE;AAAI;ACA93B,SAASd,KAAG;AAAC,QAAK,CAAC,CAAC,IAAEF,GAAC;AAAG,SAAOI,GAAG,MAAI;AAAC,QAAG,CAAC,EAAE,SAAS,CAACH,IAAEE,EAAC,CAAC,EAAE,OAAM,IAAI,MAAM,mEAAmE;AAAA,EAAC,GAAG,CAAC,CAAC,CAAC,GAAE,SAASF,GAAE;AAACG,IAAAA,GAAG,MAAIE,GAAEL,CAAC,GAAG,CAACA,CAAC,CAAC;AAAA,EAAC,EAAE,CAAC,GAAE;AAAI;ACAzP,MAAME,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,UAAmC,OAAO,SAAS,kBAAzB,SAAuCF,KAAEK;AAAE,SAASF,GAAE,EAAC,6BAA4BH,IAAE,IAAG,uBAAsBK,IAAE,IAAG,UAASF,EAAC,GAAE;AAAC,QAAK,CAACF,CAAC,IAAEF,GAAC;AAAG,SAAOG,GAAG,MAAI;AAAC,QAAGC,EAAE,QAAOF,EAAE,uBAAwB,CAAC,EAAC,aAAYF,GAAE,eAAcG,GAAE,aAAYM,GAAE,iBAAgBG,GAAE,MAAKP,EAAC,MAAI;AAAC,MAAAC,KAAOH,EAAE,SAAN,KAAgBM,EAAE,SAAN,KAAYR,KAAGI,EAAE,IAAI,eAAe,KAAGO,EAAE,QAAO,KAAIR,EAAEJ,GAAEE,GAAEG,CAAC;AAAA,IAAC,CAAC;AAAA,EAAE,GAAG,CAACH,GAAED,GAAEK,GAAEF,CAAC,CAAC,GAAE;AAAI;ACApY,MAAMM,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,UAAmC,OAAO,SAAS,kBAAzB,SAAuCT,KAAEC;AAAE,SAASM,GAAER,GAAE;AAAC,SAAM,EAAC,gBAAe,MAAIA,EAAE,WAAU,GAAG,WAAU,CAAAC,MAAGD,EAAE,yBAAyBC,CAAC,EAAC;AAAC;AAAC,SAASQ,KAAG;AAAC,SAAO,SAASR,GAAE;AAAC,UAAK,CAACC,CAAC,IAAEF,GAAC,GAAGQ,IAAEJ,GAAG,MAAIH,EAAEC,CAAC,GAAG,CAACA,GAAED,CAAC,CAAC,GAAE,CAACQ,GAAEF,CAAC,IAAEJ,GAAG,MAAIK,EAAE,eAAc,CAAE,GAAGI,IAAEN,GAAEG,CAAC;AAAE,WAAOC,GAAG,MAAI;AAAC,YAAK,EAAC,gBAAeV,GAAE,WAAUC,EAAC,IAAEO,GAAEN,IAAEF;AAAI,aAAOY,EAAE,YAAUV,MAAIU,EAAE,UAAQV,GAAEK,EAAEL,CAAC,IAAGD,EAAG,CAAAD,MAAG;AAAC,QAAAY,EAAE,UAAQZ,GAAEO,EAAEP,CAAC;AAAA,MAAC,CAAC;AAAA,IAAE,GAAG,CAACQ,GAAEP,CAAC,CAAC,GAAEQ;AAAA,EAAC,EAAED,EAAC;AAAC;ACAriB,SAASF,GAAEA,GAAE;AAAC,QAAMF,IAAE,OAAO,SAAS,QAAOK,IAAE,CAAAA,MAAG;AAAC,QAAGA,EAAE,WAASL,EAAE;AAAO,UAAMD,IAAEG,EAAE,eAAc;AAAG,QAAG,SAAS,kBAAgBH,EAAE;AAAO,UAAME,IAAEI,EAAE;AAAK,QAAa,OAAOJ,KAAjB,UAAmB;AAAC,UAAID;AAAE,UAAG;AAAC,QAAAA,IAAE,KAAK,MAAMC,CAAC;AAAA,MAAC,QAAS;AAAC;AAAA,MAAM;AAAC,UAAGD,KAAyBA,EAAE,aAAxB,uBAA8CA,EAAE,SAAd,WAAmB;AAAC,cAAMD,IAAEC,EAAE;AAAQ,YAAGD,KAAmBA,EAAE,eAAlB,eAA6B;AAAC,gBAAMC,IAAED,EAAE;AAAK,cAAGC,GAAE;AAAC,kBAAK,CAACD,GAAEE,GAAEG,GAAEM,GAAE,GAAEH,CAAC,IAAEP;AAAE,YAAAE,EAAE,OAAQ,MAAI;AAAC,oBAAMA,IAAEN,EAAC;AAAG,kBAAGC,EAAEK,CAAC,GAAE;AAAC,sBAAMN,IAAEM,EAAE;AAAO,oBAAIL,IAAED,EAAE,QAAO,GAAGI,IAAE,GAAEO,IAAE;AAAE,oBAAGT,EAAED,CAAC,KAAGE,KAAG,KAAGE,KAAG,MAAID,IAAED,GAAEQ,IAAER,IAAEE,GAAEC,EAAE,iBAAiBL,GAAEG,GAAEH,GAAEU,CAAC,IAAGP,MAAIO,KAAQH,MAAL,OAASF,EAAE,cAAcE,CAAC,GAAEP,IAAED,EAAE,YAAWE,EAAED,CAAC,GAAE;AAAC,kBAAAG,IAAEU,GAAEH,IAAEG,IAAE;AAAE,wBAAMd,IAAEC,EAAE,mBAAkB;AAAG,kBAAAG,IAAEA,IAAEJ,IAAEA,IAAEI,GAAEO,IAAEA,IAAEX,IAAEA,IAAEW,GAAEL,EAAE,iBAAiBL,GAAEG,GAAEH,GAAEU,CAAC;AAAA,gBAAC;AAAC,gBAAAF,EAAE;cAA0B;AAAA,YAAC,CAAC;AAAA,UAAE;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAE,SAAO,OAAO,iBAAiB,WAAUA,GAAE,EAAE,GAAE,MAAI;AAAC,WAAO,oBAAoB,WAAUA,GAAE,EAAE;AAAA,EAAC;AAAC;ACAlT,SAASQ,GAAEhB,GAAE;AAAC,SAAOA,KAAGA,EAAE,cAAY,OAAO,UAAU,eAAe,KAAKA,GAAE,SAAS,IAAEA,EAAE,UAAQA;AAAC;AAAC,IAAIsB,KAAEN,GAAG,SAAShB,GAAE;AAAC,QAAM,IAAE,IAAI;AAAgB,IAAE,OAAO,QAAOA,CAAC;AAAE,WAAQ,IAAE,GAAE,IAAE,UAAU,QAAO,IAAI,GAAE,OAAO,KAAI,UAAU,CAAC,CAAC;AAAE,QAAM,MAAM,2BAA2BA,CAAC,0CAA0C,CAAC,gHAAgH;AAAC,CAAC;AAAG,SAASmB,GAAEpB,GAAEE,IAAEE,KAAI;AAAC,SAAaF,KAAN,QAASqB,GAAE,GAAG,GAAEhB,EAAEL,CAAC,KAAGA,EAAE,iBAAmBA,EAAE,SAAQ,EAAG,WAAjB,IAAwB,KAAGD,GAAED,GAAEE,CAAC;AAAC;AAAC,SAASoB,GAAErB,GAAE,IAAEG,EAAC,GAAG;AAAC,SAAa,KAAN,QAASmB,GAAE,GAAG,GAAEhB,EAAE,CAAC,KAAG,EAAE,YAAW,KAAQ,EAAE,SAAQ,EAAG,WAAjB,IAAwB,OAAK,KAAK,UAAU6B,GAAEnC,GAAE,CAAC,CAAC;AAAC;AAAyG,SAAS0B,GAAE1B,GAAEC,GAAEI,GAAE;AAAC,QAAM,IAAEL,EAAE,QAAQ,8BAA8B;AAAE,MAAG,EAAE,KAAG;AAAC,UAAMA,IAAE,KAAK,MAAM,CAAC;AAAE,QAAGA,EAAE,cAAYK,EAAE,QAAQ,aAAW,MAAM,QAAQL,EAAE,KAAK;AAAG,aAAOc,GAAET,GAAEkC,GAAEvC,EAAE,KAAK,GAAEC,CAAC;AAAA,EAAE,QAAS;AAAA,EAAC;AAAC,QAAMM,IAAEP,EAAE,QAAQ,WAAW;AAAE,MAAGO,EAAE,KAAG;AAAC,UAAMP,IAAG,IAAI,YAAW,gBAAgB,SAASA,GAAE;AAAC,aAAG,OAAO,gBAAc,OAAO,aAAa,eAAqB,OAAO,aAAa,aAAa,WAAU,EAAC,YAAW,CAAAA,MAAGA,EAAC,CAAC,EAAE,WAAWA,CAAC,IAASA;AAAA,IAAC,EAAEO,CAAC,GAAE,WAAW;AAAE,WAAOO,GAAET,GAAEN,GAAEM,GAAEL,CAAC,GAAEC,CAAC;AAAA,EAAC,QAAS;AAAA,EAAC;AAAC,QAAMO,IAAER,EAAE,QAAQ,YAAY,KAAGA,EAAE,QAAQ,eAAe;AAAE,MAASQ,KAAN,KAAQ,KAAGF,EAAEL,CAAC,GAAE;AAAC,UAAMD,IAAEQ,EAAE,MAAM,YAAY;AAAE,IAAKR,EAAEA,EAAE,SAAO,CAAC,MAAjB,MAAoBA,EAAE,IAAG;AAAG,aAAQD,IAAE,GAAEA,IAAEC,EAAE,QAAOD,KAAI;AAAC,YAAME,IAAEE,EAAC;AAAG,UAAGG,EAAEL,CAAC,GAAE;AAAC,cAAMI,IAAEL,EAAED,CAAC;AAAE,QAAOM,MAAP;AAAA,KAAmBA,MAAT;AAAA,IAAWJ,EAAE,oBAAyBI,MAAP,MAASJ,EAAE,YAAY,CAACG,IAAG,CAAC,IAAEH,EAAE,WAAWI,CAAC;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC,MAAM,CAAAJ,EAAE,cAAcO,CAAC;AAAC;AAAC,SAASM,GAAEd,GAAE,GAAEC,GAAE;AAAC,EAAAD,EAAE,gBAAgBO,IAAE,EAAC,OAAM,GAAE,WAAUN,EAAC,CAAC,KAAGA,EAAE,YAAY,CAAC;AAAC;AAAC,SAAS2B,GAAE5B,GAAE,GAAEC,GAAE,IAAE,IAAG;AAAC,MAAIK,IAAS,MAAP,QAAUL,EAAE,WAAW,CAAC;AAAE,QAAM,IAAEiB,EAAEjB,CAAC,KAAGA,EAAE,gBAAgB,MAAM;AAAE,MAAI,IAAEA;AAAE,MAAU,MAAP,MAAS;AAAC,QAAID,IAAEyB,GAAExB,CAAC;AAAE,IAAAD,IAAEW,EAAEX,CAAC,KAAU,MAAP,OAASK,GAAE,GAAEL,CAAC,IAAEA,GAAE,IAAEA;AAAA,EAAC;AAAC,QAAMO,IAAEW,EAAE,CAAC,IAAE,EAAE,YAAW,IAAG,CAAA,GAAG,IAAE,SAASlB,GAAE;AAAC,UAAMD,IAAEC,EAAE,cAAaC,IAAED,EAAE;AAAY,QAAGD,EAAE,SAAOE,EAAE,QAAO,KAAIqB,GAAE,IAAGrB,EAAE,IAAI,GAAEiB,EAAElB,CAAC,GAAE;AAAC,YAAMA,IAAED,EAAE;AAAS,YAAM,QAAQC,CAAC,KAAGsB,GAAE,IAAGrB,EAAE,IAAI;AAAA,IAAC;AAAC,WAAOF;AAAA,EAAC,EAAE,CAAC;AAAE,MAAGY,EAAE,CAAC,GAAE;AAAC,UAAMX,IAAE,EAAE;AAAO,IAAAA,EAAE,SAAO,IAAE,EAAE,OAAKA,IAAEM,IAAE;AAAA,EAAE;AAAC,WAAQD,IAAE,GAAEA,IAAEE,EAAE,QAAOF,KAAI;AAAC,UAAMH,IAAEK,EAAEF,CAAC,GAAEF,IAAEyB,GAAE5B,GAAE,GAAEE,GAAE,EAAE,QAAQ;AAAE,KAACI,KAAGY,EAAEjB,CAAC,KAAGE,KAAGF,EAAE,iBAAiBC,GAAE,GAAE,OAAO,MAAII,IAAE;AAAA,EAAG;AAAC,MAAGA,KAAG,CAAC,EAAE,GAAE,KAAK,CAAC;AAAA,WAAU,MAAM,QAAQ,EAAE,QAAQ,EAAE,UAAQN,IAAE,GAAEA,IAAE,EAAE,SAAS,QAAOA,KAAI;AAAC,UAAMD,IAAE,EAAE,SAASC,CAAC;AAAE,MAAE,KAAKD,CAAC;AAAA,EAAC;AAAC,SAAOO;AAAC;AAAC,SAAS6B,GAAEnC,GAAE,GAAE;AAAC,QAAMC,IAAE,CAAA,GAAGI,IAAEG,KAAI;AAAc,WAAQN,IAAE,GAAEA,IAAEG,EAAE,QAAOH;AAAK,IAAA0B,GAAE5B,GAAE,GAAEK,EAAEH,CAAC,GAAED,CAAC;AAAE,SAAM,EAAC,WAAUD,EAAE,QAAQ,WAAU,OAAMC,EAAC;AAAC;AAAC,SAASsC,GAAEvC,GAAE;AAAC,QAAM,IAAE,CAAA;AAAG,WAAQK,IAAE,GAAEA,IAAEL,EAAE,QAAOK,KAAI;AAAC,UAAM,IAAEL,EAAEK,CAAC,GAAEC,IAAEG,GAAE,CAAC;AAAEE,IAAAA,EAAEL,CAAC,KAAGL,GAAEK,CAAC,GAAE,EAAE,KAAKA,CAAC;AAAA,EAAC;AAAC,SAAO;AAAC;AAAC,IAAIc,KAAE;AAAK,eAAeW,GAAE/B,GAAE,GAAEC,GAAE;AAAC,MAAUmB,OAAP,KAAS,QAAM;AAAG,MAAU,MAAP,KAAS,QAAO,IAAI,QAAS,CAACf,GAAEH,MAAI;AAAC,IAAAF,EAAE,OAAQ,MAAI;AAAC,MAAAK,EAAEsB,GAAE3B,GAAE,GAAEC,CAAC,CAAC;AAAA,IAAC;EAAG,CAAC;AAAG,QAAMI,IAAEL,EAAE,eAAc,GAAGM,IAAQN,EAAE,WAAR,OAAgB,OAAO,WAASA,EAAE,QAAQ,UAAS,IAAEU,GAAEV,EAAE,OAAO;AAAE,MAAUK,MAAP,QAAiB,MAAP,KAAS,QAAM;AAAG,QAAM,IAAEC,EAAE,cAAc,MAAM;AAAE,IAAE,MAAM,UAAQ,kCAAiC,EAAE,OAAOA,EAAE,eAAe,GAAG,CAAC,GAAED,EAAE,OAAO,CAAC;AAAE,QAAME,IAAE,IAAI;AAAM,SAAOA,EAAE,SAAS,GAAE,CAAC,GAAEA,EAAE,OAAO,GAAE,CAAC,GAAE,EAAE,mBAAkB,EAAE,SAASA,CAAC,GAAE,IAAI,QAAS,CAACR,GAAEM,MAAI;AAAC,UAAMF,IAAEH,EAAE,gBAAgBe,IAAG,CAAAV,OAAIH,GAAEG,GAAE,cAAc,MAAIF,EAAC,GAAUiB,OAAP,SAAW,OAAO,aAAaA,EAAC,GAAEA,KAAE,OAAMrB,EAAE4B,GAAE3B,GAAEK,GAAEJ,CAAC,CAAC,IAAG,KAAKgB,EAAC;AAAE,IAAAG,KAAE,OAAO,WAAY,MAAI;AAAC,MAAAjB,EAAC,GAAGiB,KAAE,MAAKrB,EAAE,EAAE;AAAA,IAAC,GAAG,EAAE,GAAEO,EAAE,YAAY,MAAM,GAAE,EAAE;EAAQ,CAAC;AAAE;AAAC,SAASqB,GAAE3B,GAAE,GAAEC,GAAE;AAAC,MAAYA,MAAT,QAAW;AAAC,UAAMF,IAAEW,GAAEV,EAAE,OAAO;AAAE,QAAG,CAACD,EAAE,QAAM;AAAG,UAAMM,IAAEN,EAAE,YAAWG,IAAEH,EAAE;AAAU,QAAUM,MAAP,QAAiBH,MAAP,QAAU,CAACU,GAAEZ,GAAEK,GAAEH,CAAC,EAAE,QAAM;AAAG,UAAMI,IAAEH,EAAC;AAAG,QAAUG,MAAP,KAAS;AAAS,IAAAL,IAAE6B,GAAExB,CAAC;AAAA,EAAC;AAAC,IAAE;AAAiB,QAAMD,IAAE,EAAE;AAAc,SAAcA,MAAP,SAAWmB,GAAEnB,GAAEJ,CAAC,GAAE;AAAG;AAAC,MAAMgC,KAAE,CAAC,CAAC,aAAYd,EAAC,GAAE,CAAC,gCAA+BE,EAAC,CAAC;AAAE,SAASS,GAAE9B,IAAEG,EAAC,GAAG;AAAC,QAAM,IAAE,EAAC,cAAaH,IAAEA,EAAE,eAAc,IAAG,GAAE;AAAE,MAAGA,GAAE;AAAC,UAAMC,IAAEY,GAAC;AAAG,eAAS,CAACR,GAAEH,CAAC,KAAI+B,IAAE;AAAC,YAAM3B,IAAEJ,EAAED,GAAED,CAAC;AAAE,MAAOM,MAAP,SAAW,EAAED,CAAC,IAAEC;AAAA,IAAE;AAAA,EAAC;AAAC,SAAO;AAAC;AAAC,SAASkB,GAAExB,GAAE,GAAE;AAAC,aAAUC,KAAK,GAAE;AAAC,UAAMI,IAAE,EAAEJ,CAAC;AAAE,IAASI,MAAT,UAAYL,EAAE,QAAQC,GAAEI,CAAC;AAAA,EAAC;AAAC;ACAtnF,SAAS4H,GAAGjI,GAAE,GAAE;AAAC,MAAY,SAAS,wBAAlB,QAAsC;AAAC,UAAMC,IAAE,SAAS,oBAAoBD,GAAE,CAAC;AAAE,WAAcC,MAAP,OAAS,OAAK,EAAC,MAAKA,EAAE,gBAAe,QAAOA,EAAE,YAAW;AAAA,EAAC;AAAC,MAAiB,SAAS,2BAAvB,aAA8C;AAAC,UAAMA,IAAE,SAAS,uBAAuBD,GAAE,CAAC;AAAE,WAAcC,MAAP,OAAS,OAAK,EAAC,MAAKA,EAAE,YAAW,QAAOA,EAAE,OAAM;AAAA,EAAC;AAAC,SAAO;AAAI;AAAC,MAAMkI,KAAgB,OAAO,SAApB,OAAqC,OAAO,aAAhB,UAAmC,OAAO,SAAS,kBAAzB,QAAuCD,KAAGC,MAAI,kBAAiB,WAAS,SAAS,eAAa,MAAKL,KAAG,EAAE,CAACK,MAAI,EAAE,gBAAe,WAASD,OAAK,qBAAoB,IAAI,OAAO,WAAW,OAAO,GAAEG,KAAGF,MAAI,0BAA0B,KAAK,UAAU,SAAS,GAAEY,KAAGZ,MAAI,mBAAmB,KAAK,UAAU,SAAS,KAAG,CAAC,OAAO,UAASH,KAAGG,MAAI,mBAAmB,KAAK,UAAU,SAAS,GAAEI,KAAGJ,MAAI,sBAAsB,KAAK,UAAU,SAAS,KAAG,CAACH,IAAGS,KAAGnI,GAAwB;AAAq/F,SAASqJ,GAAG3J,GAAE;AAAC,MAAI,IAAE;AAAK,MAAGI,GAAEJ,GAAE,SAAS,IAAE,IAAEA,EAAE,eAAaI,GAAEJ,GAAE,cAAc,MAAI,IAAEA,EAAE,gBAAsB,MAAP,KAAS,QAAM,CAAC,IAAG,CAAA,GAAG,EAAE;AAAE,QAAMC,IAAE,EAAE,OAAM,IAAEA,EAAE,SAAS,OAAO,GAAEI,IAAEJ,EAAE,SAAS,WAAW,KAAGA,EAAE,SAAS,YAAY;AAAE,SAAM,CAAC,GAAE,MAAM,KAAK,EAAE,KAAK,GAAEI,CAAC;AAAC;AAAC,SAASmJ,GAAGxJ,GAAE;AAAC,QAAM,IAAEY;AAAI,MAAG,CAACI,EAAE,CAAC,EAAE;AAAS,QAAMf,IAAE,oBAAI,OAAI,IAAE,EAAE,SAAQ;AAAG,WAAQF,IAAE,GAAEA,IAAE,EAAE,QAAOA,KAAI;AAAC,UAAMM,IAAE,EAAEN,CAAC,GAAEI,IAAEE,EAAE,OAAM;AAAG,QAAGJ,EAAE,IAAIE,CAAC,EAAE;AAAS,UAAMC,IAAEI,GAAEH,GAAG,CAAAL,MAAGsB,EAAEtB,CAAC,KAAG,CAACA,EAAE,SAAQ,CAAE;AAAG,QAAUI,MAAP,KAAS;AAAS,UAAMG,IAAEH,EAAE,OAAM;AAAG,IAAAA,EAAE,UAAS,KAAI,CAACH,EAAE,IAAIM,CAAC,MAAIN,EAAE,IAAIM,CAAC,GAAEP,EAAEI,CAAC;AAAA,EAAE;AAAC,SAAOH,EAAE,OAAK;AAAC;AAAC,SAAS8G,GAAG/G,GAAE;AAAC,QAAM,IAAE4C,GAAE5C,CAAC;AAAE,SAAOyC,GAAE,CAAC;AAAC;AAAC,SAASmH,GAAGvJ,GAAE;AAAC,SAAOE,GAAEF,EAAE,gBAAgBU,IAAG,CAAAf,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,WAAM,CAAC,CAACS,GAAEtB,CAAC,MAAIA,EAAE,MAAK,GAAG;AAAA,EAAG,GAAG,CAAC,GAAEM,EAAE,gBAAgBc,IAAG,CAAAnB,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEjB,CAAC,MAAIA,EAAE,gBAAgBC,CAAC,GAAE;AAAA,EAAG,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgBa,IAAG,CAAAlB,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEjB,CAAC,MAAIA,EAAE,WAAWC,CAAC,GAAE;AAAA,EAAG,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgBoB,IAAG,CAAAzB,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEjB,CAAC,MAAIA,EAAE,WAAWC,CAAC,GAAE;AAAA,EAAG,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgBsB,IAAG,OAAG;AAAC,UAAM1B,IAAEW,EAAC;AAAG,QAAa,OAAO,KAAjB,SAAmB,CAAOX,MAAP,QAAUA,EAAE,WAAW,CAAC;AAAA,SAAM;AAAC,UAAUA,MAAP,KAAS,QAAM;AAAG,YAAM,IAAE,EAAE;AAAa,UAAS,KAAN,KAAQD,CAAAA,GAAE,GAAEC,GAAEI,CAAC;AAAA,eAAUW,EAAEf,CAAC,GAAE;AAAC,cAAMD,IAAE,EAAE;AAAK,eAAOA,KAAGC,EAAE,WAAWD,CAAC,GAAE;AAAA,MAAE;AAAA,IAAC;AAAC,WAAM;AAAA,EAAE,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgBqB,IAAG,MAAI;AAAC,UAAM1B,IAAEY,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEhB,CAAC,MAAIA,EAAE,WAAU,GAAG;AAAA,EAAG,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgB6B,IAAG,CAAAlC,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEjB,CAAC,MAAIA,EAAE,WAAWC,CAAC,GAAE;AAAA,EAAG,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgB0B,IAAG,CAAA/B,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,QAAG,CAACI,EAAEjB,CAAC,KAAG,CAACsB,GAAEtB,CAAC,EAAE,QAAM;AAAG,UAAME,IAAEF,EAAE,SAAQ;AAAG,eAAUA,KAAKE,GAAE;AAAC,YAAMA,IAAEO,GAAET,GAAG,CAAAC,MAAGsB,EAAEtB,CAAC,KAAG,CAACA,EAAE,UAAU;AAAG,MAAOC,MAAP,QAAUA,EAAE,UAAUD,CAAC;AAAA,IAAC;AAAC,WAAM;AAAA,EAAE,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgB8B,IAAG,CAAAnC,MAAG;AAAC,UAAMD,IAAEa;AAAI,WAAM,CAAC,CAACI,EAAEjB,CAAC,MAAIA,EAAE,gBAAgBC,CAAC,GAAE;AAAA,EAAG,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgBuB,IAAG,MAAI;AAAC,UAAM5B,IAAEY,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEhB,CAAC,MAAIA,EAAE,gBAAe,GAAG;AAAA,EAAG,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgBe,IAAG,OAAKN,GAAE,CAAC0B,GAAC,CAAE,CAAC,GAAE,KAAKR,CAAC,GAAE3B,EAAE,gBAAgB4B,IAAG,MAAIuH,GAAI,CAAAxJ,MAAG;AAAC,UAAMD,IAAEC,EAAE,UAAS;AAAG,IAAAA,EAAE,UAAUD,IAAE,CAAC;AAAA,EAAC,CAAC,GAAIiC,CAAC,GAAE3B,EAAE,gBAAgBmB,IAAG,MAAIgI,GAAI,CAAAxJ,MAAG;AAAC,UAAMD,IAAEC,EAAE,UAAS;AAAG,IAAAD,IAAE,KAAGC,EAAE,UAAUD,IAAE,CAAC;AAAA,EAAC,CAAC,GAAIiC,CAAC,GAAE3B,EAAE,gBAAgBwB,IAAG,CAAA7B,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,QAAGS,GAAEtB,CAAC,KAAG,CAACgH,GAAG/G,EAAE,MAAM,GAAE;AAAC,YAAMA,IAAED,EAAE,SAAQ;AAAG,UAAGC,EAAE,SAAO,EAAE,QAAOA,EAAE,CAAC,EAAE,eAAc,GAAG;AAAA,IAAE,WAASgB,EAAEjB,CAAC,GAAE;AAAC,YAAME,IAAEsB,GAAExB,EAAE,OAAM,EAAE;AAAE,UAAG,CAACC,EAAE,YAAUyC,GAAExC,CAAC,KAAG,CAACA,EAAE,WAAU,KAAI,CAACA,EAAE,SAAQ,EAAG,QAAOA,EAAE,kBAAiBD,EAAE,kBAAiB;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgByB,IAAG,CAAA9B,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,QAAGS,GAAEtB,CAAC,GAAE;AAAC,YAAMC,IAAED,EAAE,SAAQ;AAAG,UAAGC,EAAE,SAAO,EAAE,QAAOA,EAAE,CAAC,EAAE,WAAW,GAAE,CAAC,GAAE;AAAA,IAAE,WAASgB,EAAEjB,CAAC,GAAE;AAAC,UAAG,SAASC,GAAE;AAAC,cAAMD,IAAEC,EAAE;AAAM,eAAeD,EAAE,QAAX,UAAgBA,EAAE,WAASkW,GAAE,EAAG,gBAAe;AAAA,MAAE,EAAElW,CAAC,EAAE,QAAOC,EAAE,eAAc,GAAG;AAAG,YAAMC,IAAEsB,GAAExB,EAAE,OAAM,EAAE;AAAE,UAAG,CAACC,EAAE,YAAUyC,GAAExC,CAAC,KAAG,CAACA,EAAE,WAAU,KAAI,CAACA,EAAE,SAAQ,EAAG,QAAOA,EAAE,WAAU,GAAGD,EAAE,eAAc,GAAG;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgBkC,IAAG,CAAAvC,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,QAAGS,GAAEtB,CAAC,GAAE;AAAC,YAAME,IAAEF,EAAE,SAAQ;AAAG,UAAGE,EAAE,SAAO,EAAE,QAAOD,EAAE,eAAc,GAAGC,EAAE,CAAC,EAAE,eAAc,GAAG;AAAA,IAAE;AAAC,QAAG,CAACe,EAAEjB,CAAC,EAAE,QAAM;AAAG,QAAGE,GAAEF,GAAE,EAAE,GAAE;AAAC,YAAME,IAAED,EAAE;AAAS,aAAOA,EAAE,eAAc,GAAGE,GAAEH,GAAEE,GAAE,EAAE,GAAE;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE,GAAG+B,CAAC,GAAE3B,EAAE,gBAAgB0C,IAAG,CAAA/C,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,QAAGS,GAAEtB,CAAC,KAAG,CAACgH,GAAG/G,EAAE,MAAM,GAAE;AAAC,YAAMC,IAAEF,EAAE;AAAW,UAAGE,EAAE,SAAO,EAAE,QAAOD,EAAE,eAAc,GAAGC,EAAE,CAAC,EAAE,WAAW,GAAE,CAAC,GAAE;AAAA,IAAE;AAAC,QAAG,CAACe,EAAEjB,CAAC,EAAE,QAAM;AAAG,UAAMM,IAAEL,EAAE;AAAS,WAAM,CAAC,CAACC,GAAEF,GAAE,EAAE,MAAIC,EAAE,eAAc,GAAGE,GAAEH,GAAEM,GAAE,EAAE,GAAE;AAAA,EAAG,GAAG2B,CAAC,GAAE3B,EAAE,gBAAgBiC,IAAG,CAAAtC,MAAG;AAAC,QAAG+G,GAAG/G,EAAE,MAAM,EAAE,QAAM;AAAG,UAAMD,IAAEa,EAAC;AAAG,QAAG,CAACI,EAAEjB,CAAC,EAAE,QAAM;AAAG,UAAK,EAAC,QAAOE,EAAC,IAAEF,GAAEG,IAAED,EAAE,QAAO;AAAG,WAAGF,EAAE,YAAW,KAAQE,EAAE,WAAN,KAAc,CAACoC,GAAEnC,CAAC,KAAMO,GAAEP,CAAC,EAAE,UAAS,IAAG,KAASF,EAAE,eAAc,GAAGK,EAAE,gBAAgBmB,IAAE,MAAM,MAAS,CAACuH,MAAc,UAAU,aAApB,aAAgC/I,EAAE,eAAc,GAAGK,EAAE,gBAAgBc,IAAE,EAAE;AAAA,EAAE,GAAGa,CAAC,GAAE3B,EAAE,gBAAgB6C,IAAG,CAAAlD,MAAG;AAAC,QAAG+G,GAAG/G,EAAE,MAAM,EAAE,QAAM;AAAG,UAAMD,IAAEa,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEjB,CAAC,MAAIC,EAAE,eAAc,GAAGK,EAAE,gBAAgBc,IAAE,EAAE;AAAA,EAAE,GAAGa,CAAC,GAAE3B,EAAE,gBAAgB8C,IAAG,CAAAnD,MAAG;AAAC,UAAMD,IAAEa,EAAC;AAAG,QAAG,CAACI,EAAEjB,CAAC,EAAE,QAAM;AAAG,QAAUC,MAAP,MAAS;AAAC,WAAI+I,MAAIV,MAAIE,OAAKT,GAAG,QAAM;AAAG,UAAG9H,EAAE,eAAc,GAAGA,EAAE,SAAS,QAAOK,EAAE,gBAAgB8B,IAAE,EAAE;AAAA,IAAC;AAAC,WAAO9B,EAAE,gBAAgBuB,IAAE,MAAM;AAAA,EAAC,GAAGI,CAAC,GAAE3B,EAAE,gBAAgB+B,IAAG,MAAI;AAAC,UAAMpC,IAAEY,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEhB,CAAC,MAAIK,EAAE,QAAO;AAAA,EAAG,GAAG2B,CAAC,GAAE3B,EAAE,gBAAgB2C,IAAG,CAAAhD,MAAG;AAAC,UAAK,GAAED,CAAC,IAAE4J,GAAG3J,CAAC;AAAE,QAAGD,EAAE,SAAO,GAAE;AAAC,YAAME,IAAEgI,GAAGjI,EAAE,SAAQA,EAAE,OAAO;AAAE,UAAUC,MAAP,MAAS;AAAC,cAAK,EAAC,QAAOD,GAAE,MAAKE,EAAC,IAAED,GAAEE,IAAEyC,GAAE1C,CAAC;AAAE,YAAUC,MAAP,MAAS;AAAC,gBAAMJ,IAAE8C,GAAC;AAAG,cAAGC,EAAE3C,CAAC,EAAE,CAAAJ,EAAE,OAAO,IAAII,EAAE,OAAM,GAAGH,GAAE,MAAM,GAAED,EAAE,MAAM,IAAII,EAAE,UAASH,GAAE,MAAM;AAAA,eAAM;AAAC,kBAAMA,IAAEG,EAAE,iBAAgB,EAAG,OAAM,GAAGF,IAAEE,EAAE,qBAAoB,IAAG;AAAE,YAAAJ,EAAE,OAAO,IAAIC,GAAEC,GAAE,SAAS,GAAEF,EAAE,MAAM,IAAIC,GAAEC,GAAE,SAAS;AAAA,UAAC;AAAC,gBAAMA,IAAEgD,GAAElD,CAAC;AAAE4C,UAAAA,GAAE1C,CAAC;AAAA,QAAC;AAAC,QAAAI,EAAE,gBAAgBoI,IAAG1I,CAAC;AAAA,MAAC;AAAC,aAAOC,EAAE,eAAc,GAAG;AAAA,IAAE;AAAC,UAAMC,IAAEW,EAAC;AAAG,WAAM,CAAC,CAACI,EAAEf,CAAC;AAAA,EAAC,GAAG+B,CAAC,GAAE3B,EAAE,gBAAgB+C,IAAG,CAAApD,MAAG;AAAC,UAAK,CAACD,CAAC,IAAE4J,GAAG3J,CAAC,GAAEC,IAAEW,EAAC;AAAG,WAAM,EAAEb,KAAG,CAACiB,EAAEf,CAAC;AAAA,EAAE,GAAG+B,CAAC,GAAE3B,EAAE,gBAAgBqC,IAAG,CAAA1C,MAAG;AAAC,UAAK,CAACD,CAAC,IAAE4J,GAAG3J,CAAC,GAAEC,IAAEW,EAAC;AAAG,QAAGb,KAAG,CAACiB,EAAEf,CAAC,EAAE,QAAM;AAAG,UAAMC,IAAE+H,GAAGjI,EAAE,SAAQA,EAAE,OAAO;AAAE,QAAUE,MAAP,MAAS;AAAC,YAAMH,IAAE6C,GAAE1C,EAAE,IAAI;AAAEuC,MAAAA,GAAE1C,CAAC,KAAGC,EAAE,eAAc;AAAA,IAAE;AAAC,WAAM;AAAA,EAAE,GAAGgC,CAAC,GAAE3B,EAAE,gBAAgBmH,IAAI,OAAKF,GAAE,GAAG,KAAKtF,CAAC,GAAE3B,EAAE,gBAAgBoH,IAAI,CAAAzH,OAAID,GAAEM,GAAED,GAAEJ,GAAE,cAAc,IAAEA,IAAE,IAAI,GAAE,KAAKgC,CAAC,GAAE3B,EAAE,gBAAgBqH,IAAI,CAAA1H,OAAI,eAAe,GAAEC,GAAE;AAAC,UAAMF,GAAEE,GAAEG,GAAE,GAAE,cAAc,IAAE,IAAE,IAAI,GAAEH,EAAE,OAAQ,MAAI;AAAC,YAAMD,IAAEY,EAAC;AAAGI,MAAAA,EAAEhB,CAAC,IAAEA,EAAE,WAAU,IAAGqB,GAAErB,CAAC,KAAGA,EAAE,SAAQ,EAAG,QAAS,CAAAA,MAAGA,EAAE,OAAM,CAAE;AAAA,IAAE,CAAC;AAAA,EAAE,EAAEA,GAAEK,CAAC,GAAE,KAAK2B,CAAC,GAAE3B,EAAE,gBAAgBwH,IAAI,OAAG;AAAC,UAAK,CAAA,EAAE5H,GAAE,CAAC,IAAE0J,GAAG,CAAC;AAAE,WAAG1J,EAAE,SAAO,KAAG,CAAC,KAASI,EAAE,gBAAgBoI,IAAGxI,CAAC,GAAE,MAAM2H,GAAG,EAAE,MAAM,IAAQ,KAAiBhH,EAAC,MAAR,SAAa,SAASb,GAAEE,GAAE;AAAC,MAAAF,EAAE,eAAc,GAAGE,EAAE,OAAQ,MAAI;AAAC,cAAMC,IAAEU,EAAC,GAAG,IAAER,GAAEL,GAAE,UAAU,KAAGK,GAAEL,GAAE,aAAa,IAAE,OAAKA,EAAE;AAAc,QAAM,KAAN,QAAgBG,MAAP,QAAUF,GAAE,GAAEE,GAAED,CAAC;AAAA,MAAC,GAAG,EAAC,KAAI,QAAO,CAAC;AAAA,IAAC,EAAE,GAAEI,CAAC,GAAE;AAAA,EAAG,GAAG2B,CAAC,CAAC;AAAC;ACAzvT,MAAMnB,KAAe,OAAO,SAApB,OAAqC,OAAO,aAAhB,UAAmC,OAAO,SAAS,kBAAzB,SAAuCZ,KAAEE;AAAE,SAASwB,GAAE3B,GAAE;AAAC,SAAOA,EAAE,eAAc,EAAG,KAAKE,GAAEF,EAAE,YAAW,CAAE,CAAC;AAAC;AAAC,SAASY,GAAE,EAAC,iBAAgBb,GAAE,aAAYG,IAAE,MAAK,eAAcD,EAAC,GAAE;AAAC,QAAK,CAAC0B,CAAC,IAAE3B,GAAC,GAAGY,IAAE,SAASZ,GAAED,GAAE;AAAC,UAAK,CAACG,GAAEG,CAAC,IAAEE,GAAG,MAAIP,EAAE,eAAe;AAAG,WAAOa,GAAG,MAAIb,EAAE,0BAA2B,CAAAA,MAAG;AAACS,MAAAA,GAAG,MAAI;AAAC,QAAAJ,EAAEL,CAAC;AAAA,MAAC,CAAC;AAAA,IAAE,CAAC,GAAI,CAACA,CAAC,CAAC,GAAEG,GAAG,MAAI;AAAC,MAAAE,EAAEL,EAAE,cAAa,CAAE;AAAA,IAAC,GAAG,CAACA,CAAC,CAAC,GAAEM,GAAG,MAAI;AAAC,YAAMD,IAAE,IAAGJ,IAAE,OAAO,KAAKC,CAAC;AAAE,eAAQC,IAAE,GAAEA,IAAEF,EAAE,QAAOE,KAAI;AAAC,cAAM,IAAEF,EAAEE,CAAC,GAAEG,IAAEF,EAAEL,GAAE,EAAC,SAAQ,CAAAA,MAAGC,EAAE,SAASD,CAAC,GAAE,UAASK,EAAEI,IAAE,EAAC,UAAS,MAAK,UAASN,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,GAAEO,IAAET,EAAE,gBAAgB,CAAC;AAAE,QAAOS,MAAP,QAAUJ,EAAE,KAAKY,GAAEX,GAAEG,GAAE,CAAC,CAAC;AAAA,MAAC;AAAC,aAAOJ;AAAA,IAAC,GAAG,CAACN,GAAEG,GAAEF,CAAC,CAAC;AAAA,EAAC,EAAE2B,GAAE1B,CAAC;AAAE,SAAO,SAASD,GAAE;AAAC,IAAAa,GAAG,MAAIR,GAAEa,GAAElB,CAAC,GAAEe,GAAEf,CAAC,CAAC,GAAG,CAACA,CAAC,CAAC;AAAA,EAAC,EAAE2B,CAAC,GAAEhB,GAAED,IAAE,EAAC,UAAS,CAACX,GAAEK,EAAEqB,IAAE,EAAC,SAAQvB,EAAC,CAAC,GAAEU,CAAC,EAAC,CAAC;AAAC;AAAC,SAASa,GAAE,EAAC,SAAQvB,EAAC,GAAE;AAAC,QAAK,CAACD,CAAC,IAAED,GAAC,GAAGG,IAAE,SAASH,GAAE;AAAC,UAAK,CAACD,GAAEG,CAAC,IAAEK,GAAG,MAAIoB,GAAE3B,CAAC;AAAI,WAAOa,GAAG,MAAI;AAAC,eAASd,IAAG;AAAC,cAAMA,IAAE4B,GAAE3B,CAAC;AAAE,QAAAE,EAAEH,CAAC;AAAA,MAAC;AAAC,aAAOA,EAAC,GAAGM,GAAEL,EAAE,uBAAwB,MAAI;AAAC,QAAAD,EAAC;AAAA,MAAE,CAAC,GAAGC,EAAE,yBAA0B,MAAI;AAAC,QAAAD,EAAC;AAAA,MAAE,CAAC,CAAE;AAAA,IAAC,GAAG,CAACC,CAAC,CAAC,GAAED;AAAA,EAAC,EAAEE,CAAC,GAAEK,IAAEP,GAAC;AAAG,SAAOI,IAAc,OAAOD,KAAnB,aAAqBA,EAAEI,CAAC,IAAEJ,IAAE;AAAI;;;;;;;;;;;;;;;;;;;;;;;;;ACNpjD,OAAO,eAAegW,IAAS,cAAc,EAAE,OAAO,GAAI,CAAE;AAC5DA,GAAA,UAAkB,IAAI;AAAA;AAAA,EAEtB,2keACK,MAAM,EAAE,EACR,IAAI,SAAU3V,GAAG;AAAE,WAAOA,EAAE,WAAW,CAAC;AAAA,EAAE,CAAE;AAAC;;ACLlD,OAAO,eAAe4V,IAAS,cAAc,EAAE,OAAO,GAAI,CAAE;AAC5DA,GAAA,UAAkB,IAAI;AAAA;AAAA,EAEtB,wCACK,MAAM,EAAE,EACR,IAAI,SAAU5V,GAAG;AAAE,WAAOA,EAAE,WAAW,CAAC;AAAA,EAAE,CAAE;AAAC;;;ACLlD,MAAI6V;AACJ,SAAO,eAAcC,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,mBAA2BA,EAAA,gBAAwB;AACnD,MAAIC,IAAY,oBAAI,IAAI;AAAA,IACpB,CAAC,GAAG,KAAK;AAAA;AAAA,IAET,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,IAAI;AAAA,IACV,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,GAAG;AAAA,IACT,CAAC,KAAK,GAAG;AAAA,EACb,CAAC;AAID,EAAAD,EAAA;AAAA,GAECD,IAAK,OAAO,mBAAmB,QAAQA,MAAO,SAASA,IAAK,SAAUG,GAAW;AAC9E,QAAIC,IAAS;AACb,WAAID,IAAY,UACZA,KAAa,OACbC,KAAU,OAAO,aAAeD,MAAc,KAAM,OAAS,KAAM,GACnEA,IAAY,QAAUA,IAAY,OAEtCC,KAAU,OAAO,aAAaD,CAAS,GAChCC;AAAA,EACX;AAMA,WAASC,EAAiBF,GAAW;AACjC,QAAIH;AACJ,WAAKG,KAAa,SAAUA,KAAa,SAAWA,IAAY,UACrD,SAEHH,IAAKE,EAAU,IAAIC,CAAS,OAAO,QAAQH,MAAO,SAASA,IAAKG;AAAA,EAC5E;AACA,EAAAF,EAAA,mBAA2BI;AAQ3B,WAASC,EAAgBH,GAAW;AAChC,eAAWF,EAAQ,eAAeI,EAAiBF,CAAS,CAAC;AAAA,EACjE;AACA,EAAAF,EAAA,UAAkBK;;;ACzElB,MAAIC,IAAmBC,KAAQA,EAAK,oBAAqB,OAAO,SAAU,SAASvW,GAAGY,GAAGM,GAAGsV,GAAI;AAC5F,IAAIA,MAAO,WAAWA,IAAKtV;AAC3B,QAAIuV,IAAO,OAAO,yBAAyB7V,GAAGM,CAAC;AAC/C,KAAI,CAACuV,MAAS,SAASA,IAAO,CAAC7V,EAAE,aAAa6V,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,aAAO7V,EAAEM,CAAC;AAAA,IAAE,EAAE,IAE7D,OAAO,eAAelB,GAAGwW,GAAIC,CAAI;AAAA,EACrC,IAAM,SAASzW,GAAGY,GAAGM,GAAGsV,GAAI;AACxB,IAAIA,MAAO,WAAWA,IAAKtV,IAC3BlB,EAAEwW,CAAE,IAAI5V,EAAEM,CAAC;AAAA,EACf,IACIwV,IAAsBH,KAAQA,EAAK,uBAAwB,OAAO,SAAU,SAASvW,GAAGc,GAAG;AAC3F,WAAO,eAAed,GAAG,WAAW,EAAE,YAAY,IAAM,OAAOc,GAAG;AAAA,EACtE,IAAK,SAASd,GAAGc,GAAG;AAChB,IAAAd,EAAE,UAAac;AAAA,EACnB,IACI6V,IAAgBJ,KAAQA,EAAK,gBAAiB,SAAUK,GAAK;AAC7D,QAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,QAAIC,IAAS,CAAA;AACb,QAAID,KAAO,KAAM,UAAS1V,KAAK0V,EAAK,CAAI1V,MAAM,aAAa,OAAO,UAAU,eAAe,KAAK0V,GAAK1V,CAAC,KAAGoV,EAAgBO,GAAQD,GAAK1V,CAAC;AACvI,WAAAwV,EAAmBG,GAAQD,CAAG,GACvBC;AAAA,EACX,GACIC,IAAmBP,KAAQA,EAAK,mBAAoB,SAAUK,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAG;AAAA,EAC3D;AACA,SAAO,eAAcZ,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,YAAoBA,EAAA,mBAA2BA,EAAA,sBAA8BA,EAAA,aAAqBA,EAAA,kBAA0BA,kBAAwBA,EAAA,eAAuBA,EAAA,eAAuBA,EAAA,gBAAwBA,EAAA,mBAA2BA,EAAA,kBAA0BA,EAAA,gBAAwBA,EAAA,iBAAyB;AAChU,MAAIe,IAAwBD,EAAgBE,EAA0C;AACtF,EAAAhB,EAAA,iBAAyBe,EAAsB;AAC/C,MAAIE,IAAuBH,EAAgBI,EAAyC;AACpF,EAAAlB,EAAA,gBAAwBiB,EAAqB;AAC7C,MAAIE,IAAwBR,EAAaS,EAAgC;AACzE,EAAApB,EAAA,kBAA0BmB,EAAsB;AAChD,MAAIE,IAAwBD;AAC5B,SAAO,eAAepB,GAAS,oBAAoB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,WAAOqB,EAAsB;AAAA,EAAiB,EAAE,CAAE,GAC5I,OAAO,eAAerB,GAAS,iBAAiB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,WAAOqB,EAAsB;AAAA,EAAc,EAAE,CAAE;AACtI,MAAIC;AACJ,GAAC,SAAUA,GAAW;AAClB,IAAAA,EAAUA,EAAU,MAAS,EAAE,IAAI,OACnCA,EAAUA,EAAU,OAAU,EAAE,IAAI,QACpCA,EAAUA,EAAU,SAAY,EAAE,IAAI,UACtCA,EAAUA,EAAU,OAAU,EAAE,IAAI,QACpCA,EAAUA,EAAU,OAAU,EAAE,IAAI,QACpCA,EAAUA,EAAU,UAAa,EAAE,IAAI,WACvCA,EAAUA,EAAU,UAAa,GAAG,IAAI,WACxCA,EAAUA,EAAU,UAAa,GAAG,IAAI,WACxCA,EAAUA,EAAU,UAAa,GAAG,IAAI,WACxCA,EAAUA,EAAU,UAAa,EAAE,IAAI,WACvCA,EAAUA,EAAU,UAAa,EAAE,IAAI,WACvCA,EAAUA,EAAU,UAAa,EAAE,IAAI;AAAA,EAC3C,GAAGA,MAAcA,IAAY,CAAA,EAAG;AAEhC,MAAIC,IAAe,IACfC;AACJ,GAAC,SAAUA,GAAc;AACrB,IAAAA,EAAaA,EAAa,eAAkB,KAAK,IAAI,gBACrDA,EAAaA,EAAa,gBAAmB,KAAK,IAAI,iBACtDA,EAAaA,EAAa,aAAgB,GAAG,IAAI;AAAA,EACrD,GAAGA,IAAexB,EAAQ,iBAAiBA,EAAA,eAAuB,CAAA,EAAG;AACrE,WAASyB,EAASC,GAAM;AACpB,WAAOA,KAAQJ,EAAU,QAAQI,KAAQJ,EAAU;AAAA,EACvD;AACA,WAASK,EAAuBD,GAAM;AAClC,WAASA,KAAQJ,EAAU,WAAWI,KAAQJ,EAAU,WACnDI,KAAQJ,EAAU,WAAWI,KAAQJ,EAAU;AAAA,EACxD;AACA,WAASM,EAAoBF,GAAM;AAC/B,WAASA,KAAQJ,EAAU,WAAWI,KAAQJ,EAAU,WACnDI,KAAQJ,EAAU,WAAWI,KAAQJ,EAAU,WAChDG,EAASC,CAAI;AAAA,EACrB;AAOA,WAASG,EAA8BH,GAAM;AACzC,WAAOA,MAASJ,EAAU,UAAUM,EAAoBF,CAAI;AAAA,EAChE;AACA,MAAII;AACJ,GAAC,SAAUA,GAAoB;AAC3B,IAAAA,EAAmBA,EAAmB,cAAiB,CAAC,IAAI,eAC5DA,EAAmBA,EAAmB,eAAkB,CAAC,IAAI,gBAC7DA,EAAmBA,EAAmB,iBAAoB,CAAC,IAAI,kBAC/DA,EAAmBA,EAAmB,aAAgB,CAAC,IAAI,cAC3DA,EAAmBA,EAAmB,cAAiB,CAAC,IAAI;AAAA,EAChE,GAAGA,MAAuBA,IAAqB,CAAA,EAAG;AAClD,MAAIC;AACJ,GAAC,SAAUA,GAAc;AAErB,IAAAA,EAAaA,EAAa,SAAY,CAAC,IAAI,UAE3CA,EAAaA,EAAa,SAAY,CAAC,IAAI,UAE3CA,EAAaA,EAAa,YAAe,CAAC,IAAI;AAAA,EAClD,GAAGA,IAAe/B,EAAQ,iBAAiBA,EAAA,eAAuB,CAAA,EAAG;AAIrE,MAAIgC;AAAA;AAAA,IAA+B,WAAY;AAC3C,eAASA,EAETC,GAUAC,GAEAC,GAAQ;AACJ,aAAK,aAAaF,GAClB,KAAK,gBAAgBC,GACrB,KAAK,SAASC,GAEd,KAAK,QAAQL,EAAmB,aAEhC,KAAK,WAAW,GAOhB,KAAK,SAAS,GAEd,KAAK,YAAY,GAEjB,KAAK,SAAS,GAEd,KAAK,aAAaC,EAAa;AAAA,MACvC;AAEI,aAAAC,EAAc,UAAU,cAAc,SAAUI,GAAY;AACxD,aAAK,aAAaA,GAClB,KAAK,QAAQN,EAAmB,aAChC,KAAK,SAAS,GACd,KAAK,YAAY,GACjB,KAAK,SAAS,GACd,KAAK,WAAW;AAAA,MACxB,GAYIE,EAAc,UAAU,QAAQ,SAAUK,GAAKC,GAAQ;AACnD,gBAAQ,KAAK,OAAK;AAAA,UACd,KAAKR,EAAmB;AACpB,mBAAIO,EAAI,WAAWC,CAAM,MAAMhB,EAAU,OACrC,KAAK,QAAQQ,EAAmB,cAChC,KAAK,YAAY,GACV,KAAK,kBAAkBO,GAAKC,IAAS,CAAC,MAEjD,KAAK,QAAQR,EAAmB,aACzB,KAAK,iBAAiBO,GAAKC,CAAM;AAAA,UAE5C,KAAKR,EAAmB;AACpB,mBAAO,KAAK,kBAAkBO,GAAKC,CAAM;AAAA,UAE7C,KAAKR,EAAmB;AACpB,mBAAO,KAAK,oBAAoBO,GAAKC,CAAM;AAAA,UAE/C,KAAKR,EAAmB;AACpB,mBAAO,KAAK,gBAAgBO,GAAKC,CAAM;AAAA,UAE3C,KAAKR,EAAmB;AACpB,mBAAO,KAAK,iBAAiBO,GAAKC,CAAM;AAAA;MAGxD,GAUIN,EAAc,UAAU,oBAAoB,SAAUK,GAAKC,GAAQ;AAC/D,eAAIA,KAAUD,EAAI,SACP,MAENA,EAAI,WAAWC,CAAM,IAAIf,OAAkBD,EAAU,WACtD,KAAK,QAAQQ,EAAmB,YAChC,KAAK,YAAY,GACV,KAAK,gBAAgBO,GAAKC,IAAS,CAAC,MAE/C,KAAK,QAAQR,EAAmB,gBACzB,KAAK,oBAAoBO,GAAKC,CAAM;AAAA,MACnD,GACIN,EAAc,UAAU,qBAAqB,SAAUK,GAAKE,GAAOC,GAAKC,GAAM;AAC1E,YAAIF,MAAUC,GAAK;AACf,cAAIE,IAAaF,IAAMD;AACvB,eAAK,SACD,KAAK,SAAS,KAAK,IAAIE,GAAMC,CAAU,IACnC,SAASL,EAAI,OAAOE,GAAOG,CAAU,GAAGD,CAAI,GACpD,KAAK,YAAYC;AAAA,QAC7B;AAAA,MACA,GAUIV,EAAc,UAAU,kBAAkB,SAAUK,GAAKC,GAAQ;AAE7D,iBADIK,IAAWL,GACRA,IAASD,EAAI,UAAQ;AACxB,cAAIO,IAAOP,EAAI,WAAWC,CAAM;AAChC,cAAIb,EAASmB,CAAI,KAAKjB,EAAuBiB,CAAI;AAC7C,YAAAN,KAAU;AAAA;AAGV,wBAAK,mBAAmBD,GAAKM,GAAUL,GAAQ,EAAE,GAC1C,KAAK,kBAAkBM,GAAM,CAAC;AAAA,QAErD;AACQ,oBAAK,mBAAmBP,GAAKM,GAAUL,GAAQ,EAAE,GAC1C;AAAA,MACf,GAUIN,EAAc,UAAU,sBAAsB,SAAUK,GAAKC,GAAQ;AAEjE,iBADIK,IAAWL,GACRA,IAASD,EAAI,UAAQ;AACxB,cAAIO,IAAOP,EAAI,WAAWC,CAAM;AAChC,cAAIb,EAASmB,CAAI;AACb,YAAAN,KAAU;AAAA;AAGV,wBAAK,mBAAmBD,GAAKM,GAAUL,GAAQ,EAAE,GAC1C,KAAK,kBAAkBM,GAAM,CAAC;AAAA,QAErD;AACQ,oBAAK,mBAAmBP,GAAKM,GAAUL,GAAQ,EAAE,GAC1C;AAAA,MACf,GAcIN,EAAc,UAAU,oBAAoB,SAAUa,GAAQC,GAAgB;AAC1E,YAAI/C;AAEJ,YAAI,KAAK,YAAY+C;AACjB,kBAAC/C,IAAK,KAAK,YAAY,QAAQA,MAAO,UAAkBA,EAAG,2CAA2C,KAAK,QAAQ,GAC5G;AAGX,YAAI8C,MAAWvB,EAAU;AACrB,eAAK,YAAY;AAAA,iBAEZ,KAAK,eAAeS,EAAa;AACtC,iBAAO;AAEX,oBAAK,kBAAkBZ,EAAsB,kBAAkB,KAAK,MAAM,GAAG,KAAK,QAAQ,GACtF,KAAK,WACD0B,MAAWvB,EAAU,QACrB,KAAK,OAAO,wCAAuC,GAEvD,KAAK,OAAO,kCAAkC,KAAK,MAAM,IAEtD,KAAK;AAAA,MACpB,GAUIU,EAAc,UAAU,mBAAmB,SAAUK,GAAKC,GAAQ;AAK9D,iBAJIL,IAAa,KAAK,YAClBc,IAAUd,EAAW,KAAK,SAAS,GAEnCe,KAAeD,IAAUvB,EAAa,iBAAiB,IACpDc,IAASD,EAAI,QAAQC,KAAU,KAAK,UAAU;AACjD,cAAIM,IAAOP,EAAI,WAAWC,CAAM;AAEhC,cADA,KAAK,YAAYW,EAAgBhB,GAAYc,GAAS,KAAK,YAAY,KAAK,IAAI,GAAGC,CAAW,GAAGJ,CAAI,GACjG,KAAK,YAAY;AACjB,mBAAO,KAAK,WAAW;AAAA,YAElB,KAAK,eAAeb,EAAa;AAAA,aAE7BiB,MAAgB;AAAA,YAEbnB,EAA8Be,CAAI,KACxC,IACA,KAAK,6BAA4B;AAK3C,cAHAG,IAAUd,EAAW,KAAK,SAAS,GACnCe,KAAeD,IAAUvB,EAAa,iBAAiB,IAEnDwB,MAAgB,GAAG;AAEnB,gBAAIJ,MAAStB,EAAU;AACnB,qBAAO,KAAK,oBAAoB,KAAK,WAAW0B,GAAa,KAAK,WAAW,KAAK,MAAM;AAG5F,YAAI,KAAK,eAAejB,EAAa,WACjC,KAAK,SAAS,KAAK,WACnB,KAAK,YAAY,KAAK,QACtB,KAAK,SAAS;AAAA,UAElC;AAAA,QACA;AACQ,eAAO;AAAA,MACf,GAMIC,EAAc,UAAU,+BAA+B,WAAY;AAC/D,YAAIjC,GACAmD,IAAK,MAAMrC,IAASqC,EAAG,QAAQjB,IAAaiB,EAAG,YAC/CF,KAAef,EAAWpB,CAAM,IAAIW,EAAa,iBAAiB;AACtE,oBAAK,oBAAoBX,GAAQmC,GAAa,KAAK,QAAQ,IAC1DjD,IAAK,KAAK,YAAY,QAAQA,MAAO,UAAkBA,EAAG,wCAAuC,GAC3F,KAAK;AAAA,MACpB,GAUIiC,EAAc,UAAU,sBAAsB,SAAUnB,GAAQmC,GAAaG,GAAU;AACnF,YAAIlB,IAAa,KAAK;AACtB,oBAAK,cAAce,MAAgB,IAC7Bf,EAAWpB,CAAM,IAAI,CAACW,EAAa,eACnCS,EAAWpB,IAAS,CAAC,GAAGsC,CAAQ,GAClCH,MAAgB,KAEhB,KAAK,cAAcf,EAAWpB,IAAS,CAAC,GAAGsC,CAAQ,GAEhDA;AAAA,MACf,GAQInB,EAAc,UAAU,MAAM,WAAY;AACtC,YAAIjC;AACJ,gBAAQ,KAAK,OAAK;AAAA,UACd,KAAK+B,EAAmB;AAEpB,mBAAO,KAAK,WAAW,MAClB,KAAK,eAAeC,EAAa,aAC9B,KAAK,WAAW,KAAK,aACvB,KAAK,6BAA4B,IACjC;AAAA,UAGV,KAAKD,EAAmB;AACpB,mBAAO,KAAK,kBAAkB,GAAG,CAAC;AAAA,UAEtC,KAAKA,EAAmB;AACpB,mBAAO,KAAK,kBAAkB,GAAG,CAAC;AAAA,UAEtC,KAAKA,EAAmB;AACpB,oBAAC/B,IAAK,KAAK,YAAY,QAAQA,MAAO,UAAkBA,EAAG,2CAA2C,KAAK,QAAQ,GAC5G;AAAA,UAEX,KAAK+B,EAAmB;AAEpB,mBAAO;AAAA;MAGvB,GACWE;AAAA,IACX;;AACA,EAAAhC,EAAA,gBAAwBgC;AAOxB,WAASoB,EAAWnB,GAAY;AAC5B,QAAIoB,IAAM,IACNC,IAAU,IAAItB,EAAcC,GAAY,SAAUI,GAAK;AAAE,aAAQgB,SAAWlC,EAAsB,eAAekB,CAAG;AAAA,IAAG,CAAE;AAC7H,WAAO,SAAwBA,GAAKD,GAAY;AAG5C,eAFImB,IAAY,GACZjB,IAAS,IACLA,IAASD,EAAI,QAAQ,KAAKC,CAAM,MAAM,KAAG;AAC7C,QAAAe,KAAOhB,EAAI,MAAMkB,GAAWjB,CAAM,GAClCgB,EAAQ,YAAYlB,CAAU;AAC9B,YAAIoB,IAAMF,EAAQ;AAAA,UAAMjB;AAAA;AAAA,UAExBC,IAAS;AAAA,QAAC;AACV,YAAIkB,IAAM,GAAG;AACT,UAAAD,IAAYjB,IAASgB,EAAQ,IAAG;AAChC;AAAA,QAChB;AACY,QAAAC,IAAYjB,IAASkB,GAErBlB,IAASkB,MAAQ,IAAID,IAAY,IAAIA;AAAA,MACjD;AACQ,UAAI1C,KAASwC,IAAMhB,EAAI,MAAMkB,CAAS;AAEtC,aAAAF,IAAM,IACCxC;AAAA,IACf;AAAA,EACA;AAWA,WAASoC,EAAgBhB,GAAYc,GAASU,GAASb,GAAM;AACzD,QAAIc,KAAeX,IAAUvB,EAAa,kBAAkB,GACxDmC,IAAaZ,IAAUvB,EAAa;AAExC,QAAIkC,MAAgB;AAChB,aAAOC,MAAe,KAAKf,MAASe,IAAaF,IAAU;AAG/D,QAAIE,GAAY;AACZ,UAAIC,IAAQhB,IAAOe;AACnB,aAAOC,IAAQ,KAAKA,KAASF,IACvB,KACAzB,EAAWwB,IAAUG,CAAK,IAAI;AAAA,IAC5C;AAKI,aAFIC,IAAKJ,GACLhT,IAAKoT,IAAKH,IAAc,GACrBG,KAAMpT,KAAI;AACb,UAAIqT,KAAOD,IAAKpT,MAAQ,GACpBsT,KAAS9B,EAAW6B,EAAG;AAC3B,UAAIC,KAASnB;AACT,QAAAiB,IAAKC,KAAM;AAAA,eAENC,KAASnB;AACd,QAAAnS,IAAKqT,KAAM;AAAA;AAGX,eAAO7B,EAAW6B,KAAMJ,CAAW;AAAA,IAE/C;AACI,WAAO;AAAA,EACX;AACA,EAAA1D,EAAA,kBAA0BiD;AAC1B,MAAIe,IAAcZ,EAAWrC,EAAsB,OAAO,GACtDkD,IAAab,EAAWnC,EAAqB,OAAO;AAQxD,WAASiD,EAAW7B,GAAK8B,GAAM;AAC3B,WAAIA,MAAS,WAAUA,IAAOpC,EAAa,SACpCiC,EAAY3B,GAAK8B,CAAI;AAAA,EAChC;AACA,EAAAnE,EAAA,aAAqBkE;AAOrB,WAASE,EAAoB/B,GAAK;AAC9B,WAAO2B,EAAY3B,GAAKN,EAAa,SAAS;AAAA,EAClD;AACA,EAAA/B,EAAA,sBAA8BoE;AAO9B,WAASC,EAAiBhC,GAAK;AAC3B,WAAO2B,EAAY3B,GAAKN,EAAa,MAAM;AAAA,EAC/C;AACA,EAAA/B,EAAA,mBAA2BqE;AAO3B,WAASC,EAAUjC,GAAK;AACpB,WAAO4B,EAAW5B,GAAKN,EAAa,MAAM;AAAA,EAC9C;AACA,EAAA/B,EAAA,YAAoBsE;;;ACrhBpB,SAAO,eAActE,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,YAAoB;AACpB,MAAIuE,IAAcvD,IACdM;AACJ,GAAC,SAAUA,GAAW;AAClB,IAAAA,EAAUA,EAAU,MAAS,CAAC,IAAI,OAClCA,EAAUA,EAAU,UAAa,EAAE,IAAI,WACvCA,EAAUA,EAAU,WAAc,EAAE,IAAI,YACxCA,EAAUA,EAAU,iBAAoB,EAAE,IAAI,kBAC9CA,EAAUA,EAAU,QAAW,EAAE,IAAI,SACrCA,EAAUA,EAAU,kBAAqB,EAAE,IAAI,mBAC/CA,EAAUA,EAAU,SAAY,EAAE,IAAI,UACtCA,EAAUA,EAAU,MAAS,EAAE,IAAI,OACnCA,EAAUA,EAAU,cAAiB,EAAE,IAAI,eAC3CA,EAAUA,EAAU,cAAiB,EAAE,IAAI,eAC3CA,EAAUA,EAAU,OAAU,EAAE,IAAI,QACpCA,EAAUA,EAAU,QAAW,EAAE,IAAI,SACrCA,EAAUA,EAAU,OAAU,EAAE,IAAI,QACpCA,EAAUA,EAAU,OAAU,EAAE,IAAI,QACpCA,EAAUA,EAAU,OAAU,EAAE,IAAI,QACpCA,EAAUA,EAAU,KAAQ,EAAE,IAAI,MAClCA,EAAUA,EAAU,KAAQ,EAAE,IAAI,MAClCA,EAAUA,EAAU,KAAQ,EAAE,IAAI,MAClCA,EAAUA,EAAU,eAAkB,EAAE,IAAI,gBAC5CA,EAAUA,EAAU,SAAY,EAAE,IAAI,UACtCA,EAAUA,EAAU,SAAY,EAAE,IAAI,UACtCA,EAAUA,EAAU,SAAY,EAAE,IAAI,UACtCA,EAAUA,EAAU,SAAY,GAAG,IAAI,UACvCA,EAAUA,EAAU,SAAY,EAAE,IAAI,UACtCA,EAAUA,EAAU,SAAY,GAAG,IAAI,UACvCA,EAAUA,EAAU,SAAY,GAAG,IAAI,UACvCA,EAAUA,EAAU,uBAA0B,EAAE,IAAI;AAAA,EACxD,GAAGA,MAAcA,IAAY,CAAA,EAAG;AAEhC,MAAIkD;AACJ,GAAC,SAAUA,GAAO;AACd,IAAAA,EAAMA,EAAM,OAAU,CAAC,IAAI,QAC3BA,EAAMA,EAAM,gBAAmB,CAAC,IAAI,iBACpCA,EAAMA,EAAM,YAAe,CAAC,IAAI,aAChCA,EAAMA,EAAM,mBAAsB,CAAC,IAAI,oBACvCA,EAAMA,EAAM,uBAA0B,CAAC,IAAI,wBAC3CA,EAAMA,EAAM,mBAAsB,CAAC,IAAI,oBACvCA,EAAMA,EAAM,sBAAyB,CAAC,IAAI,uBAE1CA,EAAMA,EAAM,sBAAyB,CAAC,IAAI,uBAC1CA,EAAMA,EAAM,kBAAqB,CAAC,IAAI,mBACtCA,EAAMA,EAAM,qBAAwB,EAAE,IAAI,sBAC1CA,EAAMA,EAAM,uBAA0B,EAAE,IAAI,wBAC5CA,EAAMA,EAAM,qBAAwB,EAAE,IAAI,sBAC1CA,EAAMA,EAAM,qBAAwB,EAAE,IAAI,sBAC1CA,EAAMA,EAAM,qBAAwB,EAAE,IAAI,sBAE1CA,EAAMA,EAAM,oBAAuB,EAAE,IAAI,qBACzCA,EAAMA,EAAM,gBAAmB,EAAE,IAAI,iBAErCA,EAAMA,EAAM,0BAA6B,EAAE,IAAI,2BAE/CA,EAAMA,EAAM,gBAAmB,EAAE,IAAI,iBACrCA,EAAMA,EAAM,gBAAmB,EAAE,IAAI,iBACrCA,EAAMA,EAAM,mBAAsB,EAAE,IAAI,oBACxCA,EAAMA,EAAM,gBAAmB,EAAE,IAAI,iBAErCA,EAAMA,EAAM,iBAAoB,EAAE,IAAI,kBACtCA,EAAMA,EAAM,uBAA0B,EAAE,IAAI,wBAC5CA,EAAMA,EAAM,eAAkB,EAAE,IAAI,gBACpCA,EAAMA,EAAM,eAAkB,EAAE,IAAI,gBACpCA,EAAMA,EAAM,sBAAyB,EAAE,IAAI,uBAC3CA,EAAMA,EAAM,gBAAmB,EAAE,IAAI,iBACrCA,EAAMA,EAAM,kBAAqB,EAAE,IAAI,mBACvCA,EAAMA,EAAM,cAAiB,EAAE,IAAI;AAAA,EACvC,GAAGA,MAAUA,IAAQ,CAAA,EAAG;AACxB,WAASC,EAAa,GAAG;AACrB,WAAQ,MAAMnD,EAAU,SACpB,MAAMA,EAAU,WAChB,MAAMA,EAAU,OAChB,MAAMA,EAAU,YAChB,MAAMA,EAAU;AAAA,EACxB;AACA,WAASoD,EAAkB,GAAG;AAC1B,WAAO,MAAMpD,EAAU,SAAS,MAAMA,EAAU,MAAMmD,EAAa,CAAC;AAAA,EACxE;AACA,WAAShD,EAAS,GAAG;AACjB,WAAO,KAAKH,EAAU,QAAQ,KAAKA,EAAU;AAAA,EACjD;AACA,WAASqD,EAAa,GAAG;AACrB,WAAS,KAAKrD,EAAU,UAAU,KAAKA,EAAU,UAC5C,KAAKA,EAAU,UAAU,KAAKA,EAAU;AAAA,EACjD;AACA,WAASsD,EAAW,GAAG;AACnB,WAAS,KAAKtD,EAAU,UAAU,KAAKA,EAAU,UAC5C,KAAKA,EAAU,UAAU,KAAKA,EAAU;AAAA,EACjD;AACA,MAAIuD;AACJ,GAAC,SAAUA,GAAW;AAClB,IAAAA,EAAUA,EAAU,UAAa,CAAC,IAAI,WACtCA,EAAUA,EAAU,WAAc,CAAC,IAAI,YACvCA,EAAUA,EAAU,SAAY,CAAC,IAAI,UACrCA,EAAUA,EAAU,SAAY,CAAC,IAAI;AAAA,EACzC,GAAGA,IAAY7E,EAAQ,cAAcA,EAAA,YAAoB,CAAA,EAAG;AAO5D,MAAI8E,IAAY;AAAA,IACZ,OAAO,IAAI,WAAW,CAAC,IAAM,IAAM,IAAM,IAAM,IAAM,EAAI,CAAC;AAAA,IAC1D,UAAU,IAAI,WAAW,CAAC,IAAM,IAAM,EAAI,CAAC;AAAA,IAC3C,YAAY,IAAI,WAAW,CAAC,IAAM,IAAM,EAAI,CAAC;AAAA,IAC7C,WAAW,IAAI,WAAW,CAAC,IAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,GAAI,CAAC;AAAA,IAC1E,UAAU,IAAI,WAAW,CAAC,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,GAAI,CAAC;AAAA,IACnE,UAAU,IAAI,WAAW,CAAC,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,GAAI,CAAC;AAAA;AAAA,EACvE,GACIC;AAAA;AAAA,IAA2B,WAAY;AACvC,eAASA,EAAUhF,GAAIiF,GAAK;AACxB,YAAI9B,IAAKnD,EAAG,SAASkF,IAAU/B,MAAO,SAAS,KAAQA,GAAIgC,IAAKnF,EAAG,gBAAgBoF,IAAiBD,MAAO,SAAS,KAAOA;AAC3H,aAAK,MAAMF,GAEX,KAAK,QAAQR,EAAM,MAEnB,KAAK,SAAS,IAEd,KAAK,eAAe,GAEpB,KAAK,QAAQ,GAEb,KAAK,YAAYA,EAAM,MAEvB,KAAK,YAAY,IAEjB,KAAK,UAAU,IAEf,KAAK,SAAS,GACd,KAAK,kBAAkB,QACvB,KAAK,gBAAgB,GACrB,KAAK,YAAY,GACjB,KAAK,cAAc,GAEnB,KAAK,eAAe,GACpB,KAAK,eAAe,GACpB,KAAK,UAAUS,GACf,KAAK,iBAAiBE,GACtB,KAAK,aAAaF,IAAUV,EAAY,gBAAgBA,EAAY;AAAA,MAC5E;AACI,aAAAQ,EAAU,UAAU,QAAQ,WAAY;AACpC,aAAK,QAAQP,EAAM,MACnB,KAAK,SAAS,IACd,KAAK,eAAe,GACpB,KAAK,QAAQ,GACb,KAAK,YAAYA,EAAM,MACvB,KAAK,kBAAkB,QACvB,KAAK,UAAU,IACf,KAAK,SAAS;AAAA,MACtB,GACIO,EAAU,UAAU,QAAQ,SAAUK,GAAO;AACzC,aAAK,UAAU,KAAK,OAAO,QAC3B,KAAK,SAASA,GACd,KAAK,MAAK;AAAA,MAClB,GACIL,EAAU,UAAU,MAAM,WAAY;AAClC,QAAI,KAAK,WACL,KAAK,OAAM;AAAA,MACvB,GACIA,EAAU,UAAU,QAAQ,WAAY;AACpC,aAAK,UAAU;AAAA,MACvB,GACIA,EAAU,UAAU,SAAS,WAAY;AACrC,aAAK,UAAU,IACX,KAAK,QAAQ,KAAK,OAAO,SAAS,KAAK,UACvC,KAAK,MAAK;AAAA,MAEtB,GAIIA,EAAU,UAAU,WAAW,WAAY;AACvC,eAAO,KAAK;AAAA,MACpB,GAIIA,EAAU,UAAU,kBAAkB,WAAY;AAC9C,eAAO,KAAK;AAAA,MACpB,GACIA,EAAU,UAAU,YAAY,SAAU7a,GAAG;AACzC,QAAIA,MAAMoX,EAAU,MACf,CAAC,KAAK,kBAAkB,KAAK,cAAcA,EAAU,EAAE,KACpD,KAAK,QAAQ,KAAK,gBAClB,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,KAAK,GAEjD,KAAK,QAAQkD,EAAM,eACnB,KAAK,eAAe,KAAK,SAEpB,KAAK,kBAAkBta,MAAMoX,EAAU,QAC5C,KAAK,QAAQkD,EAAM;AAAA,MAE/B,GACIO,EAAU,UAAU,4BAA4B,SAAU7a,GAAG;AACzD,YAAImb,IAAQ,KAAK,kBAAkB,KAAK,gBAAgB,QACpDC,IAAUD;AAAA;AAAA,UAENX,EAAkBxa,CAAC;AAAA;AAAA;AAAA,WAElBA,IAAI,QAAU,KAAK,gBAAgB,KAAK,aAAa;AAAA;AAC9D,YAAI,CAACob;AACD,eAAK,YAAY;AAAA,iBAEZ,CAACD,GAAO;AACb,eAAK;AACL;AAAA,QACZ;AACQ,aAAK,gBAAgB,GACrB,KAAK,QAAQb,EAAM,WACnB,KAAK,eAAeta,CAAC;AAAA,MAC7B,GAEI6a,EAAU,UAAU,oBAAoB,SAAU7a,GAAG;AACjD,YAAI,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;AACpD,cAAIA,MAAMoX,EAAU,MAAMmD,EAAava,CAAC,GAAG;AACvC,gBAAIqb,IAAY,KAAK,QAAQ,KAAK,gBAAgB;AAClD,gBAAI,KAAK,eAAeA,GAAW;AAE/B,kBAAIC,IAAc,KAAK;AACvB,mBAAK,QAAQD,GACb,KAAK,IAAI,OAAO,KAAK,cAAcA,CAAS,GAC5C,KAAK,QAAQC;AAAA,YACjC;AACgB,iBAAK,YAAY,IACjB,KAAK,eAAeD,IAAY,GAChC,KAAK,sBAAsBrb,CAAC;AAC5B;AAAA,UAChB;AACY,eAAK,gBAAgB;AAAA,QACjC;AACQ,SAAKA,IAAI,QAAU,KAAK,gBAAgB,KAAK,aAAa,IACtD,KAAK,iBAAiB,IAEjB,KAAK,kBAAkB,IACxB,KAAK,oBAAoB4a,EAAU,WAE/B,KAAK,kBAAkB5a,MAAMoX,EAAU,QACvC,KAAK,QAAQkD,EAAM,gBAGlB,KAAK,cAAclD,EAAU,EAAE,MAEpC,KAAK,gBAAgB,KAKzB,KAAK,gBAAgB,EAAOpX,MAAMoX,EAAU;AAAA,MAExD,GACIyD,EAAU,UAAU,qBAAqB,SAAU7a,GAAG;AAClD,QAAIA,MAAM4a,EAAU,MAAM,KAAK,aAAa,IACpC,EAAE,KAAK,kBAAkBA,EAAU,MAAM,WACzC,KAAK,QAAQN,EAAM,eACnB,KAAK,kBAAkBM,EAAU,UACjC,KAAK,gBAAgB,GACrB,KAAK,eAAe,KAAK,QAAQ,MAIrC,KAAK,gBAAgB,GACrB,KAAK,QAAQN,EAAM,eACnB,KAAK,mBAAmBta,CAAC;AAAA,MAErC,GAOI6a,EAAU,UAAU,gBAAgB,SAAU7a,GAAG;AAC7C,eAAO,EAAE,KAAK,QAAQ,KAAK,OAAO,SAAS,KAAK;AAC5C,cAAI,KAAK,OAAO,WAAW,KAAK,QAAQ,KAAK,MAAM,MAAMA;AACrD,mBAAO;AASf,oBAAK,QAAQ,KAAK,OAAO,SAAS,KAAK,SAAS,GACzC;AAAA,MACf,GASI6a,EAAU,UAAU,qBAAqB,SAAU7a,GAAG;AAClD,QAAIA,MAAM,KAAK,gBAAgB,KAAK,aAAa,IACzC,EAAE,KAAK,kBAAkB,KAAK,gBAAgB,WAC1C,KAAK,oBAAoB4a,EAAU,WACnC,KAAK,IAAI,QAAQ,KAAK,cAAc,KAAK,OAAO,CAAC,IAGjD,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,OAAO,CAAC,GAEvD,KAAK,gBAAgB,GACrB,KAAK,eAAe,KAAK,QAAQ,GACjC,KAAK,QAAQN,EAAM,QAGlB,KAAK,kBAAkB,IAExB,KAAK,cAAc,KAAK,gBAAgB,CAAC,CAAC,MAC1C,KAAK,gBAAgB,KAGpBta,MAAM,KAAK,gBAAgB,KAAK,gBAAgB,CAAC,MAEtD,KAAK,gBAAgB;AAAA,MAEjC,GAOI6a,EAAU,UAAU,iBAAiB,SAAU7a,GAAG;AAC9C,eAAO,KAAK,UAAU,CAACwa,EAAkBxa,CAAC,IAAIya,EAAaza,CAAC;AAAA,MACpE,GACI6a,EAAU,UAAU,eAAe,SAAUU,GAAUnD,GAAQ;AAC3D,aAAK,YAAY,IACjB,KAAK,kBAAkBmD,GACvB,KAAK,gBAAgBnD,GACrB,KAAK,QAAQkC,EAAM;AAAA,MAC3B,GACIO,EAAU,UAAU,qBAAqB,SAAU7a,GAAG;AAClD,YAAIA,MAAMoX,EAAU;AAChB,eAAK,QAAQkD,EAAM,mBACnB,KAAK,eAAe,KAAK,QAAQ;AAAA,iBAE5Bta,MAAMoX,EAAU;AACrB,eAAK,QAAQkD,EAAM,yBACnB,KAAK,eAAe,KAAK,QAAQ;AAAA,iBAE5B,KAAK,eAAeta,CAAC,GAAG;AAC7B,cAAIwb,IAAQxb,IAAI;AAChB,eAAK,eAAe,KAAK,OACrB,CAAC,KAAK,WAAWwb,MAAUZ,EAAU,SAAS,CAAC,IAC/C,KAAK,aAAaA,EAAU,UAAU,CAAC,IAGvC,KAAK,QACD,CAAC,KAAK,WAAWY,MAAUZ,EAAU,UAAU,CAAC,IAC1CN,EAAM,iBACNA,EAAM;AAAA,QAEhC,MACa,CAAIta,MAAMoX,EAAU,QACrB,KAAK,QAAQkD,EAAM,wBAGnB,KAAK,QAAQA,EAAM,MACnB,KAAK,UAAUta,CAAC;AAAA,MAE5B,GACI6a,EAAU,UAAU,iBAAiB,SAAU7a,GAAG;AAC9C,QAAIwa,EAAkBxa,CAAC,MACnB,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,KAAK,GACpD,KAAK,eAAe,IACpB,KAAK,QAAQsa,EAAM,qBACnB,KAAK,yBAAyBta,CAAC;AAAA,MAE3C,GACI6a,EAAU,UAAU,4BAA4B,SAAU7a,GAAG;AACzD,QAAIua,EAAava,CAAC,MAGTA,MAAMoX,EAAU,KACrB,KAAK,QAAQkD,EAAM,QAGnB,KAAK,QAAQ,KAAK,eAAeta,CAAC,IAC5Bsa,EAAM,mBACNA,EAAM,kBACZ,KAAK,eAAe,KAAK;AAAA,MAErC,GACIO,EAAU,UAAU,wBAAwB,SAAU7a,GAAG;AACrD,SAAIA,MAAMoX,EAAU,MAAMmD,EAAava,CAAC,OACpC,KAAK,IAAI,WAAW,KAAK,cAAc,KAAK,KAAK,GACjD,KAAK,eAAe,IACpB,KAAK,QAAQsa,EAAM,qBACnB,KAAK,yBAAyBta,CAAC;AAAA,MAE3C,GACI6a,EAAU,UAAU,2BAA2B,SAAU7a,GAAG;AAExD,SAAIA,MAAMoX,EAAU,MAAM,KAAK,cAAcA,EAAU,EAAE,OACrD,KAAK,QAAQkD,EAAM,MACnB,KAAK,YAAYA,EAAM,MACvB,KAAK,eAAe,KAAK,QAAQ;AAAA,MAE7C,GACIO,EAAU,UAAU,2BAA2B,SAAU7a,GAAG;AACxD,QAAIA,MAAMoX,EAAU,MAChB,KAAK,IAAI,aAAa,KAAK,KAAK,GAC5B,KAAK,aACL,KAAK,QAAQkD,EAAM,cACnB,KAAK,gBAAgB,KAGrB,KAAK,QAAQA,EAAM,MAEvB,KAAK,YAAY,KAAK,OACtB,KAAK,eAAe,KAAK,QAAQ,KAE5Bta,MAAMoX,EAAU,QACrB,KAAK,QAAQkD,EAAM,mBAEbC,EAAava,CAAC,MACpB,KAAK,QAAQsa,EAAM,iBACnB,KAAK,eAAe,KAAK;AAAA,MAErC,GACIO,EAAU,UAAU,wBAAwB,SAAU7a,GAAG;AACrD,QAAIA,MAAMoX,EAAU,MAChB,KAAK,IAAI,iBAAiB,KAAK,KAAK,GACpC,KAAK,QAAQkD,EAAM,MACnB,KAAK,YAAYA,EAAM,MACvB,KAAK,eAAe,KAAK,QAAQ,GACjC,KAAK,YAAY,MAEXC,EAAava,CAAC,MACpB,KAAK,QAAQsa,EAAM,qBACnB,KAAK,yBAAyBta,CAAC;AAAA,MAE3C,GACI6a,EAAU,UAAU,uBAAuB,SAAU7a,GAAG;AACpD,SAAIA,MAAMoX,EAAU,MAAMoD,EAAkBxa,CAAC,OACzC,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,KAAK,GACnD,KAAK,eAAe,IACpB,KAAK,QAAQsa,EAAM,oBACnB,KAAK,wBAAwBta,CAAC;AAAA,MAE1C,GACI6a,EAAU,UAAU,0BAA0B,SAAU7a,GAAG;AACvD,QAAIA,MAAMoX,EAAU,KAChB,KAAK,QAAQkD,EAAM,uBAEdta,MAAMoX,EAAU,SAASpX,MAAMoX,EAAU,MAC9C,KAAK,IAAI,YAAYuD,EAAU,SAAS,KAAK,KAAK,GAClD,KAAK,QAAQL,EAAM,qBACnB,KAAK,yBAAyBta,CAAC,KAEzBua,EAAava,CAAC,MACpB,KAAK,IAAI,YAAY2a,EAAU,SAAS,KAAK,KAAK,GAClD,KAAK,QAAQL,EAAM,iBACnB,KAAK,eAAe,KAAK;AAAA,MAErC,GACIO,EAAU,UAAU,4BAA4B,SAAU7a,GAAG;AACzD,QAAIA,MAAMoX,EAAU,eAChB,KAAK,QAAQkD,EAAM,oBACnB,KAAK,eAAe,KAAK,QAAQ,KAE5Bta,MAAMoX,EAAU,eACrB,KAAK,QAAQkD,EAAM,oBACnB,KAAK,eAAe,KAAK,QAAQ,KAE3BC,EAAava,CAAC,MACpB,KAAK,eAAe,KAAK,OACzB,KAAK,QAAQsa,EAAM,oBACnB,KAAK,8BAA8Bta,CAAC;AAAA,MAEhD,GACI6a,EAAU,UAAU,yBAAyB,SAAU7a,GAAGyb,GAAO;AAC7D,QAAIzb,MAAMyb,KACL,CAAC,KAAK,kBAAkB,KAAK,cAAcA,CAAK,KACjD,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,KAAK,GACnD,KAAK,eAAe,IACpB,KAAK,IAAI,YAAYA,MAAUrE,EAAU,cACnCuD,EAAU,SACVA,EAAU,QAAQ,KAAK,KAAK,GAClC,KAAK,QAAQL,EAAM,uBAEd,KAAK,kBAAkBta,MAAMoX,EAAU,QAC5C,KAAK,YAAY,KAAK,OACtB,KAAK,QAAQkD,EAAM;AAAA,MAE/B,GACIO,EAAU,UAAU,oCAAoC,SAAU7a,GAAG;AACjE,aAAK,uBAAuBA,GAAGoX,EAAU,WAAW;AAAA,MAC5D,GACIyD,EAAU,UAAU,oCAAoC,SAAU7a,GAAG;AACjE,aAAK,uBAAuBA,GAAGoX,EAAU,WAAW;AAAA,MAC5D,GACIyD,EAAU,UAAU,gCAAgC,SAAU7a,GAAG;AAC7D,QAAIua,EAAava,CAAC,KAAKA,MAAMoX,EAAU,MACnC,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,KAAK,GACnD,KAAK,eAAe,IACpB,KAAK,IAAI,YAAYuD,EAAU,UAAU,KAAK,KAAK,GACnD,KAAK,QAAQL,EAAM,qBACnB,KAAK,yBAAyBta,CAAC,KAE1B,KAAK,kBAAkBA,MAAMoX,EAAU,QAC5C,KAAK,YAAY,KAAK,OACtB,KAAK,QAAQkD,EAAM;AAAA,MAE/B,GACIO,EAAU,UAAU,yBAAyB,SAAU7a,GAAG;AACtD,QAAIA,MAAMoX,EAAU,wBAChB,KAAK,QAAQkD,EAAM,eACnB,KAAK,gBAAgB,KAGrB,KAAK,QACDta,MAAMoX,EAAU,OACVkD,EAAM,gBACNA,EAAM;AAAA,MAE5B,GACIO,EAAU,UAAU,qBAAqB,SAAU7a,GAAG;AAClD,SAAIA,MAAMoX,EAAU,MAAM,KAAK,cAAcA,EAAU,EAAE,OACrD,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,KAAK,GACpD,KAAK,QAAQkD,EAAM,MACnB,KAAK,eAAe,KAAK,QAAQ;AAAA,MAE7C,GACIO,EAAU,UAAU,+BAA+B,SAAU7a,GAAG;AAC5D,SAAIA,MAAMoX,EAAU,MAAM,KAAK,cAAcA,EAAU,EAAE,OACrD,KAAK,IAAI,wBAAwB,KAAK,cAAc,KAAK,KAAK,GAC9D,KAAK,QAAQkD,EAAM,MACnB,KAAK,eAAe,KAAK,QAAQ;AAAA,MAE7C,GACIO,EAAU,UAAU,qBAAqB,SAAU7a,GAAG;AAClD,QAAIA,MAAMoX,EAAU,QAChB,KAAK,QAAQkD,EAAM,eACnB,KAAK,kBAAkBM,EAAU,YAEjC,KAAK,gBAAgB,GACrB,KAAK,eAAe,KAAK,QAAQ,KAGjC,KAAK,QAAQN,EAAM;AAAA,MAE/B,GACIO,EAAU,UAAU,wBAAwB,SAAU7a,GAAG;AACrD,SAAIA,MAAMoX,EAAU,MAAM,KAAK,cAAcA,EAAU,EAAE,OACrD,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,OAAO,CAAC,GACnD,KAAK,QAAQkD,EAAM,MACnB,KAAK,eAAe,KAAK,QAAQ;AAAA,MAE7C,GACIO,EAAU,UAAU,sBAAsB,SAAU7a,GAAG;AACnD,YAAIwb,IAAQxb,IAAI;AAChB,QAAIwb,MAAUZ,EAAU,UAAU,CAAC,IAC/B,KAAK,aAAaA,EAAU,WAAW,CAAC,IAEnCY,MAAUZ,EAAU,SAAS,CAAC,IACnC,KAAK,aAAaA,EAAU,UAAU,CAAC,KAGvC,KAAK,QAAQN,EAAM,WACnB,KAAK,eAAeta,CAAC;AAAA,MAEjC,GACI6a,EAAU,UAAU,oBAAoB,SAAU7a,GAAG;AAEjD,aAAK,eAAe,GACpB,KAAK,eAAe,GAChBA,MAAMoX,EAAU,SAChB,KAAK,QAAQkD,EAAM,sBAEdta,MAAMoX,EAAU,QAIrB,KAAK,YAAY,GACjB,KAAK,cAAc,KAAK,WAAW,CAAC,GACpC,KAAK,QAAQkD,EAAM,eACnB,KAAK,mBAAmBta,CAAC;AAAA,MAErC,GACI6a,EAAU,UAAU,qBAAqB,SAAU7a,GAAG;AAGlD,YAFA,KAAK,gBAAgB,GACrB,KAAK,gBAAgBqa,EAAY,iBAAiB,KAAK,YAAY,KAAK,aAAa,KAAK,YAAY,GAAGra,CAAC,GACtG,KAAK,YAAY,GAAG;AACpB,eAAK,gBAAe,GACpB,KAAK;AACL;AAAA,QACZ;AACQ,aAAK,cAAc,KAAK,WAAW,KAAK,SAAS;AACjD,YAAI0b,IAAS,KAAK,cAAcrB,EAAY,aAAa;AAEzD,YAAIqB,GAAQ;AAER,cAAI5C,KAAe4C,KAAU,MAAM;AAEnC,cAAI,CAAC,KAAK,kBAAiB,KAAM1b,MAAMoX,EAAU;AAC7C,iBAAK,aAAa0B;AAAA,eAEjB;AAED,gBAAI6C,IAAc,KAAK,QAAQ,KAAK,eAAe;AACnD,YAAIA,IAAc,KAAK,gBACnB,KAAK,YAAY,KAAK,cAAcA,CAAW,GAGnD,KAAK,eAAe,KAAK,WACzB,KAAK,aAAa7C,GAClB,KAAK,eAAe,GACpB,KAAK,eAAe,KAAK,QAAQ,GAC7BA,MAAgB,KAChB,KAAK,gBAAe;AAAA,UAExC;AAAA,QACA;AAAA,MACA,GACI+B,EAAU,UAAU,kBAAkB,WAAY;AAE9C,YADA,KAAK,QAAQ,KAAK,WACd,KAAK,iBAAiB,GAG1B;AAAA,cAAI/B,KAAe,KAAK,WAAW,KAAK,YAAY,IAAIuB,EAAY,aAAa,iBAC7E;AACJ,kBAAQvB,GAAW;AAAA,YACf,KAAK,GAAG;AACJ,mBAAK,cAAc,KAAK,WAAW,KAAK,YAAY,IAChD,CAACuB,EAAY,aAAa,YAAY;AAC1C;AAAA,YAChB;AAAA,YACY,KAAK,GAAG;AACJ,mBAAK,cAAc,KAAK,WAAW,KAAK,eAAe,CAAC,CAAC;AACzD;AAAA,YAChB;AAAA,YACY,KAAK;AACD,mBAAK,cAAc,KAAK,WAAW,KAAK,eAAe,CAAC,CAAC,GACzD,KAAK,cAAc,KAAK,WAAW,KAAK,eAAe,CAAC,CAAC;AAAA;;MAGzE,GACIQ,EAAU,UAAU,2BAA2B,SAAU7a,GAAG;AACxD,SAAKA,IAAI,QAAUoX,EAAU,UACzB,KAAK,gBACL,KAAK,QAAQkD,EAAM,gBAGnB,KAAK,QAAQA,EAAM,iBACnB,KAAK,qBAAqBta,CAAC;AAAA,MAEvC,GACI6a,EAAU,UAAU,oBAAoB,SAAUe,GAAQ;AACtD,YAAID,IAAc,KAAK,QAAQ,KAAK,eAAe,GAC/CE,IAAcF,IAAc,IAAI,EAAO,KAAK,UAAUrB,EAAM;AAChE,QAAIuB,MAAgB,KAAK,UAEjBF,IAAc,KAAK,gBACnB,KAAK,YAAY,KAAK,cAAcA,CAAW,GAEnD,KAAK,eAAe,KAAK,QAAQ,OAAOC,CAAM,GAC9C,KAAK,kBAAkBvB,EAAY,kBAAkB,KAAK,YAAY,CAAC,IAE3E,KAAK,QAAQ,KAAK;AAAA,MAC1B,GACIQ,EAAU,UAAU,uBAAuB,SAAU7a,GAAG;AACpD,QAAIA,MAAMoX,EAAU,OAChB,KAAK,kBAAkB,EAAI,IAEtBG,EAASvX,CAAC,KACf,KAAK,eAAe,KAAK,eAAe,MAAMA,IAAIoX,EAAU,OAC5D,KAAK,mBAGD,KAAK,sBACL,KAAK,kBAAkB,EAAK,IAG5B,KAAK,QAAQ,KAAK,WAEtB,KAAK;AAAA,MAEjB,GACIyD,EAAU,UAAU,mBAAmB,SAAU7a,GAAG;AAChD,QAAIA,MAAMoX,EAAU,OAChB,KAAK,kBAAkB,EAAI,IAEtBG,EAASvX,CAAC,KACf,KAAK,eAAe,KAAK,eAAe,MAAMA,IAAIoX,EAAU,OAC5D,KAAK,kBAEAsD,EAAW1a,CAAC,KACjB,KAAK,eACD,KAAK,eAAe,OAAOA,IAAI,MAAQoX,EAAU,SAAS,KAC9D,KAAK,mBAGD,KAAK,sBACL,KAAK,kBAAkB,EAAK,IAG5B,KAAK,QAAQ,KAAK,WAEtB,KAAK;AAAA,MAEjB,GACIyD,EAAU,UAAU,oBAAoB,WAAY;AAChD,eAAQ,CAAC,KAAK,YACT,KAAK,cAAcP,EAAM,QACtB,KAAK,cAAcA,EAAM;AAAA,MACzC,GAIIO,EAAU,UAAU,UAAU,WAAY;AAEtC,QAAI,KAAK,WAAW,KAAK,iBAAiB,KAAK,UACvC,KAAK,UAAUP,EAAM,QACpB,KAAK,UAAUA,EAAM,gBAAgB,KAAK,kBAAkB,KAC7D,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,KAAK,GAC7C,KAAK,eAAe,KAAK,UAEpB,KAAK,UAAUA,EAAM,sBAC1B,KAAK,UAAUA,EAAM,sBACrB,KAAK,UAAUA,EAAM,wBACrB,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,KAAK,GACnD,KAAK,eAAe,KAAK;AAAA,MAGzC,GACIO,EAAU,UAAU,iBAAiB,WAAY;AAC7C,eAAO,KAAK,QAAQ,KAAK,OAAO,SAAS,KAAK,UAAU,KAAK;AAAA,MACrE,GAMIA,EAAU,UAAU,QAAQ,WAAY;AACpC,eAAO,KAAK,oBAAkB;AAC1B,cAAI7a,IAAI,KAAK,OAAO,WAAW,KAAK,QAAQ,KAAK,MAAM;AACvD,kBAAQ,KAAK,OAAK;AAAA,YACd,KAAKsa,EAAM,MAAM;AACb,mBAAK,UAAUta,CAAC;AAChB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,sBAAsB;AAC7B,mBAAK,0BAA0Bta,CAAC;AAChC;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,cAAc;AACrB,mBAAK,kBAAkBta,CAAC;AACxB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,eAAe;AACtB,mBAAK,mBAAmBta,CAAC;AACzB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,oBAAoB;AAC3B,mBAAK,kCAAkCta,CAAC;AACxC;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,iBAAiB;AACxB,mBAAK,qBAAqBta,CAAC;AAC3B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,eAAe;AACtB,mBAAK,mBAAmBta,CAAC;AACzB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,kBAAkB;AACzB,mBAAK,sBAAsBta,CAAC;AAC5B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,qBAAqB;AAC5B,mBAAK,yBAAyBta,CAAC;AAC/B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,WAAW;AAClB,mBAAK,eAAeta,CAAC;AACrB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,kBAAkB;AACzB,mBAAK,sBAAsBta,CAAC;AAC5B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,eAAe;AACtB,mBAAK,mBAAmBta,CAAC;AACzB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,oBAAoB;AAC3B,mBAAK,wBAAwBta,CAAC;AAC9B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,oBAAoB;AAC3B,mBAAK,kCAAkCta,CAAC;AACxC;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,sBAAsB;AAC7B,mBAAK,0BAA0Bta,CAAC;AAChC;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,sBAAsB;AAC7B,mBAAK,0BAA0Bta,CAAC;AAChC;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,qBAAqB;AAC5B,mBAAK,yBAAyBta,CAAC;AAC/B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,gBAAgB;AACvB,mBAAK,oBAAoBta,CAAC;AAC1B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,oBAAoB;AAC3B,mBAAK,8BAA8Bta,CAAC;AACpC;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,kBAAkB;AACzB,mBAAK,sBAAsBta,CAAC;AAC5B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,eAAe;AACtB,mBAAK,mBAAmBta,CAAC;AACzB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,mBAAmB;AAC1B,mBAAK,uBAAuBta,CAAC;AAC7B;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,eAAe;AACtB,mBAAK,mBAAmBta,CAAC;AACzB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,yBAAyB;AAChC,mBAAK,6BAA6Bta,CAAC;AACnC;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,eAAe;AACtB,mBAAK,mBAAmBta,CAAC;AACzB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,cAAc;AACrB,mBAAK,kBAAkBta,CAAC;AACxB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,aAAa;AACpB,mBAAK,iBAAiBta,CAAC;AACvB;AAAA,YACpB;AAAA,YACgB,KAAKsa,EAAM,iBAAiB;AACxB,mBAAK,qBAAqBta,CAAC;AAC3B;AAAA,YACpB;AAAA,YACgB;AAEI,mBAAK,yBAAyBA,CAAC;AAAA;AAGvC,eAAK;AAAA,QACjB;AACQ,aAAK,QAAO;AAAA,MACpB,GACI6a,EAAU,UAAU,SAAS,WAAY;AACrC,QAAI,KAAK,UAAUP,EAAM,iBACrB,KAAK,gBAAe,GAGpB,KAAK,eAAe,KAAK,SACzB,KAAK,mBAAkB,GAE3B,KAAK,IAAI,MAAK;AAAA,MACtB,GAEIO,EAAU,UAAU,qBAAqB,WAAY;AACjD,YAAIiB,IAAW,KAAK,OAAO,SAAS,KAAK;AACzC,QAAI,KAAK,UAAUxB,EAAM,gBACjB,KAAK,oBAAoBM,EAAU,WACnC,KAAK,IAAI,QAAQ,KAAK,cAAckB,GAAU,CAAC,IAG/C,KAAK,IAAI,UAAU,KAAK,cAAcA,GAAU,CAAC,IAGhD,KAAK,UAAUxB,EAAM,mBAC1B,KAAK,kBAAiB,IACtB,KAAK,kBAAkB,EAAK,IAGvB,KAAK,UAAUA,EAAM,eAC1B,KAAK,kBAAiB,IACtB,KAAK,kBAAkB,EAAK,IAGvB,KAAK,UAAUA,EAAM,aAC1B,KAAK,UAAUA,EAAM,uBACrB,KAAK,UAAUA,EAAM,wBACrB,KAAK,UAAUA,EAAM,sBACrB,KAAK,UAAUA,EAAM,mBACrB,KAAK,UAAUA,EAAM,sBACrB,KAAK,UAAUA,EAAM,sBACrB,KAAK,UAAUA,EAAM,sBACrB,KAAK,UAAUA,EAAM,oBAOrB,KAAK,IAAI,OAAO,KAAK,cAAcwB,CAAQ;AAAA,MAEvD,GACIjB,EAAU,UAAU,cAAc,SAAUxC,GAAOyD,GAAU;AACzD,QAAI,KAAK,cAAcxB,EAAM,QACzB,KAAK,cAAcA,EAAM,eACzB,KAAK,IAAI,aAAajC,GAAOyD,CAAQ,IAGrC,KAAK,IAAI,OAAOzD,GAAOyD,CAAQ;AAAA,MAE3C,GACIjB,EAAU,UAAU,gBAAgB,SAAUkB,GAAI;AAC9C,QAAI,KAAK,cAAczB,EAAM,QACzB,KAAK,cAAcA,EAAM,eACzB,KAAK,IAAI,eAAeyB,CAAE,IAG1B,KAAK,IAAI,aAAaA,CAAE;AAAA,MAEpC,GACWlB;AAAA,IACX;;AACA,EAAA/E,EAAA,UAAkB+E;;ACv6BlB,IAAIzE,KAAmBC,KAAQA,EAAK,oBAAqB,OAAO,SAAU,SAASvW,GAAGY,GAAGM,GAAGsV,GAAI;AAC5F,EAAIA,MAAO,WAAWA,IAAKtV;AAC3B,MAAIuV,IAAO,OAAO,yBAAyB7V,GAAGM,CAAC;AAC/C,GAAI,CAACuV,MAAS,SAASA,IAAO,CAAC7V,EAAE,aAAa6V,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,WAAO7V,EAAEM,CAAC;AAAA,EAAE,EAAE,IAE7D,OAAO,eAAelB,GAAGwW,GAAIC,CAAI;AACrC,IAAM,SAASzW,GAAGY,GAAGM,GAAGsV,GAAI;AACxB,EAAIA,MAAO,WAAWA,IAAKtV,IAC3BlB,EAAEwW,CAAE,IAAI5V,EAAEM,CAAC;AACf,IACIwV,KAAsBH,KAAQA,EAAK,uBAAwB,OAAO,SAAU,SAASvW,GAAGc,GAAG;AAC3F,SAAO,eAAed,GAAG,WAAW,EAAE,YAAY,IAAM,OAAOc,GAAG;AACtE,IAAK,SAASd,GAAGc,GAAG;AAChB,EAAAd,EAAE,UAAac;AACnB,IACI6V,KAAgBJ,KAAQA,EAAK,gBAAiB,SAAUK,GAAK;AAC7D,MAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,MAAIC,IAAS,CAAA;AACb,MAAID,KAAO,KAAM,UAAS1V,KAAK0V,EAAK,CAAI1V,MAAM,aAAa,OAAO,UAAU,eAAe,KAAK0V,GAAK1V,CAAC,KAAGoV,GAAgBO,GAAQD,GAAK1V,CAAC;AACvIwV,SAAAA,GAAmBG,GAAQD,CAAG,GACvBC;AACX;AACA,OAAO,eAAeqF,IAAS,cAAc,EAAE,OAAO,GAAI,CAAE;AAC5DA,GAAA,SAAiB;AACjB,IAAIC,KAAiBxF,GAAaK,EAAyB,GACvDuD,KAAcrD,IACdkF,KAAW,oBAAI,IAAI;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC,GACGC,IAAO,oBAAI,IAAI,CAAC,GAAG,CAAC,GACpBC,KAAmB,oBAAI,IAAI,CAAC,SAAS,OAAO,CAAC,GAC7CC,KAAU,oBAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAC9BC,KAAU,oBAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAC9BC,KAAmB,oBAAI,IAAI;AAAA,EAC3B,CAAC,MAAM,oBAAI,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,CAAC;AAAA,EAClC,CAAC,MAAM,oBAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,EACtB,CAAC,MAAM,oBAAI,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC;AAAA,EACrC,CAAC,QAAQ,oBAAI,IAAI,CAAC,QAAQ,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAC5C,CAAC,MAAM,oBAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,EACtB,CAAC,KAAKJ,CAAI;AAAA,EACV,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,UAAUD,EAAQ;AAAA,EACnB,CAAC,SAASA,EAAQ;AAAA,EAClB,CAAC,UAAUA,EAAQ;AAAA,EACnB,CAAC,UAAUA,EAAQ;AAAA,EACnB,CAAC,YAAYA,EAAQ;AAAA,EACrB,CAAC,YAAYA,EAAQ;AAAA,EACrB,CAAC,UAAU,oBAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC9B,CAAC,YAAY,oBAAI,IAAI,CAAC,YAAY,QAAQ,CAAC,CAAC;AAAA,EAC5C,CAAC,MAAMG,EAAO;AAAA,EACd,CAAC,MAAMA,EAAO;AAAA,EACd,CAAC,WAAWF,CAAI;AAAA,EAChB,CAAC,WAAWA,CAAI;AAAA,EAChB,CAAC,SAASA,CAAI;AAAA,EACd,CAAC,cAAcA,CAAI;AAAA,EACnB,CAAC,WAAWA,CAAI;AAAA,EAChB,CAAC,OAAOA,CAAI;AAAA,EACZ,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,YAAYA,CAAI;AAAA,EACjB,CAAC,cAAcA,CAAI;AAAA,EACnB,CAAC,UAAUA,CAAI;AAAA,EACf,CAAC,UAAUA,CAAI;AAAA,EACf,CAAC,QAAQA,CAAI;AAAA,EACb,CAAC,UAAUA,CAAI;AAAA,EACf,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,QAAQA,CAAI;AAAA,EACb,CAAC,OAAOA,CAAI;AAAA,EACZ,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,OAAOA,CAAI;AAAA,EACZ,CAAC,WAAWA,CAAI;AAAA,EAChB,CAAC,SAASA,CAAI;AAAA,EACd,CAAC,MAAMA,CAAI;AAAA,EACX,CAAC,MAAMG,EAAO;AAAA,EACd,CAAC,MAAMA,EAAO;AAAA,EACd,CAAC,SAASF,EAAgB;AAAA,EAC1B,CAAC,SAASA,EAAgB;AAC9B,CAAC,GACGI,KAAe,oBAAI,IAAI;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC,GACGC,KAAyB,oBAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,GAChDC,KAA0B,oBAAI,IAAI;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC,GACGC,KAAY,SACZC;AAAAA;AAAAA,EAAwB,WAAY;AACpC,aAASA,EAAO9B,GAAK+B,GAAS;AAC1B,MAAIA,MAAY,WAAUA,IAAU,CAAA;AACpC,UAAIhH,GAAImD,GAAIgC,GAAI8B,GAAIC;AACpB,WAAK,UAAUF,GAEf,KAAK,aAAa,GAElB,KAAK,WAAW,GAKhB,KAAK,eAAe,GACpB,KAAK,UAAU,IACf,KAAK,aAAa,IAClB,KAAK,cAAc,IACnB,KAAK,UAAU,MACf,KAAK,QAAQ,CAAA,GACb,KAAK,iBAAiB,CAAA,GACtB,KAAK,UAAU,CAAA,GACf,KAAK,eAAe,GAEpB,KAAK,aAAa,GAElB,KAAK,QAAQ,IACb,KAAK,MAAM/B,KAAuC,CAAA,GAClD,KAAK,qBAAqBjF,IAAKgH,EAAQ,mBAAmB,QAAQhH,MAAO,SAASA,IAAK,CAACgH,EAAQ,SAChG,KAAK,2BACA7D,IAAK6D,EAAQ,6BAA6B,QAAQ7D,MAAO,SAASA,IAAK,CAAC6D,EAAQ,SACrF,KAAK,YAAY,MAAM7B,IAAK6B,EAAQ,eAAe,QAAQ7B,MAAO,SAASA,IAAKiB,GAAe,SAAS,KAAK,SAAS,IAAI,IACzHc,KAAMD,IAAK,KAAK,KAAK,kBAAkB,QAAQC,MAAO,UAAkBA,EAAG,KAAKD,GAAI,IAAI;AAAA,IACjG;AAGI,WAAAF,EAAO,UAAU,SAAS,SAAUvE,GAAOyD,GAAU;AACjD,UAAIjG,GAAImD,GACJgE,IAAO,KAAK,SAAS3E,GAAOyD,CAAQ;AACxC,WAAK,WAAWA,IAAW,IAC1B9C,KAAMnD,IAAK,KAAK,KAAK,YAAY,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAImH,CAAI,GACnF,KAAK,aAAalB;AAAA,IAC1B,GAEIc,EAAO,UAAU,eAAe,SAAUb,GAAI;AAC1C,UAAIlG,GAAImD,GAKJiE,IAAQ,KAAK,UAAU,gBAAe;AAC1C,WAAK,WAAWA,IAAQ,IACvBjE,KAAMnD,IAAK,KAAK,KAAK,YAAY,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,OAAQwE,GAAY,eAAe0B,CAAE,CAAC,GACjH,KAAK,aAAakB;AAAA,IAC1B,GACIL,EAAO,UAAU,gBAAgB,SAAUM,GAAM;AAC7C,aAAO,CAAC,KAAK,QAAQ,WAAWV,GAAa,IAAIU,CAAI;AAAA,IAC7D,GAEIN,EAAO,UAAU,gBAAgB,SAAUvE,GAAOyD,GAAU;AACxD,WAAK,WAAWA;AAChB,UAAIoB,IAAO,KAAK,SAAS7E,GAAOyD,CAAQ;AACxC,MAAI,KAAK,sBACLoB,IAAOA,EAAK,YAAW,IAE3B,KAAK,YAAYA,CAAI;AAAA,IAC7B,GACIN,EAAO,UAAU,cAAc,SAAUM,GAAM;AAC3C,UAAIrH,GAAImD,GAAIgC,GAAI8B;AAChB,WAAK,eAAe,KAAK,YACzB,KAAK,UAAUI;AACf,UAAIC,IAAe,CAAC,KAAK,QAAQ,WAAWZ,GAAiB,IAAIW,CAAI;AACrE,UAAIC;AACA,eAAO,KAAK,MAAM,SAAS,KACvBA,EAAa,IAAI,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC,CAAC,KAAG;AACrD,cAAIC,IAAU,KAAK,MAAM,IAAG;AAC5B,WAACpE,KAAMnD,IAAK,KAAK,KAAK,gBAAgB,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAIuH,GAAS,EAAI;AAAA,QAChH;AAEQ,MAAK,KAAK,cAAcF,CAAI,MACxB,KAAK,MAAM,KAAKA,CAAI,GAChBT,GAAuB,IAAIS,CAAI,IAC/B,KAAK,eAAe,KAAK,EAAI,IAExBR,GAAwB,IAAIQ,CAAI,KACrC,KAAK,eAAe,KAAK,EAAK,KAGrCJ,KAAM9B,IAAK,KAAK,KAAK,mBAAmB,QAAQ8B,MAAO,UAAkBA,EAAG,KAAK9B,GAAIkC,CAAI,GACtF,KAAK,IAAI,cACT,KAAK,UAAU,CAAA;AAAA,IAC3B,GACIN,EAAO,UAAU,aAAa,SAAUS,GAAW;AAC/C,UAAIxH,GAAImD;AACR,WAAK,aAAa,KAAK,cACnB,KAAK,aACJA,KAAMnD,IAAK,KAAK,KAAK,eAAe,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAI,KAAK,SAAS,KAAK,SAASwH,CAAS,GACvH,KAAK,UAAU,OAEf,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,OAAO,KACtD,KAAK,IAAI,WAAW,KAAK,SAAS,EAAI,GAE1C,KAAK,UAAU;AAAA,IACvB,GAEIT,EAAO,UAAU,eAAe,SAAUd,GAAU;AAChD,WAAK,WAAWA,GAChB,KAAK,WAAW,EAAK,GAErB,KAAK,aAAaA,IAAW;AAAA,IACrC,GAEIc,EAAO,UAAU,aAAa,SAAUvE,GAAOyD,GAAU;AACrD,UAAIjG,GAAImD,GAAIgC,GAAI8B,GAAIC,GAAIO;AACxB,WAAK,WAAWxB;AAChB,UAAIoB,IAAO,KAAK,SAAS7E,GAAOyD,CAAQ;AAQxC,UAPI,KAAK,sBACLoB,IAAOA,EAAK,YAAW,KAEvBT,GAAuB,IAAIS,CAAI,KAC/BR,GAAwB,IAAIQ,CAAI,MAChC,KAAK,eAAe,IAAG,GAEtB,KAAK,cAAcA,CAAI;AAmBvB,QAAI,CAAC,KAAK,QAAQ,WAAWA,MAAS,UAEtClE,KAAMnD,IAAK,KAAK,KAAK,mBAAmB,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAI,IAAI,IACzFiH,KAAM9B,IAAK,KAAK,KAAK,eAAe,QAAQ8B,MAAO,UAAkBA,EAAG,KAAK9B,GAAI,MAAM,CAAA,GAAI,EAAI,IAC/FsC,KAAMP,IAAK,KAAK,KAAK,gBAAgB,QAAQO,MAAO,UAAkBA,EAAG,KAAKP,GAAI,MAAM,EAAK;AAAA,WAvBnE;AAC3B,YAAIQ,IAAM,KAAK,MAAM,YAAYL,CAAI;AACrC,YAAIK,MAAQ;AACR,cAAI,KAAK,IAAI;AAET,qBADIC,IAAQ,KAAK,MAAM,SAASD,GACzBC;AAEH,mBAAK,IAAI,WAAW,KAAK,MAAM,IAAG,GAAIA,MAAU,CAAC;AAAA;AAIrD,iBAAK,MAAM,SAASD;AAAA,YAEvB,CAAI,CAAC,KAAK,QAAQ,WAAWL,MAAS,QAEvC,KAAK,YAAY,GAAG,GACpB,KAAK,gBAAgB,EAAI;AAAA,MAEzC;AAQQ,WAAK,aAAapB,IAAW;AAAA,IACrC,GAEIc,EAAO,UAAU,mBAAmB,SAAUd,GAAU;AACpD,WAAK,WAAWA,GACZ,KAAK,QAAQ,WACb,KAAK,QAAQ,wBACb,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,KAClD,KAAK,gBAAgB,EAAK,GAE1B,KAAK,aAAaA,IAAW,KAI7B,KAAK,aAAaA,CAAQ;AAAA,IAEtC,GACIc,EAAO,UAAU,kBAAkB,SAAUa,GAAe;AACxD,UAAI5H,GAAImD,GACJkE,IAAO,KAAK;AAChB,WAAK,WAAWO,CAAa,GAEzB,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC,MAAMP,OAErClE,KAAMnD,IAAK,KAAK,KAAK,gBAAgB,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAIqH,GAAM,CAACO,CAAa,GACvG,KAAK,MAAM,IAAG;AAAA,IAE1B,GAEIb,EAAO,UAAU,eAAe,SAAUvE,GAAOyD,GAAU;AACvD,WAAK,aAAazD;AAClB,UAAI6E,IAAO,KAAK,SAAS7E,GAAOyD,CAAQ;AACxC,WAAK,aAAa,KAAK,0BACjBoB,EAAK,YAAW,IAChBA;AAAA,IACd,GAEIN,EAAO,UAAU,eAAe,SAAUvE,GAAOyD,GAAU;AACvD,WAAK,eAAe,KAAK,SAASzD,GAAOyD,CAAQ;AAAA,IACzD,GAEIc,EAAO,UAAU,iBAAiB,SAAUb,GAAI;AAC5C,WAAK,mBAAmB1B,GAAY,eAAe0B,CAAE;AAAA,IAC7D,GAEIa,EAAO,UAAU,cAAc,SAAUnB,GAAOK,GAAU;AACtD,UAAIjG,GAAImD;AACR,WAAK,WAAW8C,IACf9C,KAAMnD,IAAK,KAAK,KAAK,iBAAiB,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAI,KAAK,YAAY,KAAK,aAAa4F,MAAUQ,GAAe,UAAU,SACpJ,MACAR,MAAUQ,GAAe,UAAU,SAC/B,MACAR,MAAUQ,GAAe,UAAU,UAC/B,SACA,IAAI,GACd,KAAK,WACL,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,SAAS,KAAK,UAAU,MACnE,KAAK,QAAQ,KAAK,UAAU,IAAI,KAAK,cAEzC,KAAK,cAAc;AAAA,IAC3B,GACIW,EAAO,UAAU,qBAAqB,SAAUlD,GAAO;AACnD,UAAIuD,IAAQvD,EAAM,OAAOiD,EAAS,GAC9BO,IAAOD,IAAQ,IAAIvD,IAAQA,EAAM,OAAO,GAAGuD,CAAK;AACpD,aAAI,KAAK,sBACLC,IAAOA,EAAK,YAAW,IAEpBA;AAAA,IACf,GAEIN,EAAO,UAAU,gBAAgB,SAAUvE,GAAOyD,GAAU;AACxD,WAAK,WAAWA;AAChB,UAAIpC,IAAQ,KAAK,SAASrB,GAAOyD,CAAQ;AACzC,UAAI,KAAK,IAAI,yBAAyB;AAClC,YAAIoB,IAAO,KAAK,mBAAmBxD,CAAK;AACxC,aAAK,IAAI,wBAAwB,IAAI,OAAOwD,CAAI,GAAG,IAAI,OAAOxD,CAAK,CAAC;AAAA,MAChF;AAEQ,WAAK,aAAaoC,IAAW;AAAA,IACrC,GAEIc,EAAO,UAAU,0BAA0B,SAAUvE,GAAOyD,GAAU;AAClE,WAAK,WAAWA;AAChB,UAAIpC,IAAQ,KAAK,SAASrB,GAAOyD,CAAQ;AACzC,UAAI,KAAK,IAAI,yBAAyB;AAClC,YAAIoB,IAAO,KAAK,mBAAmBxD,CAAK;AACxC,aAAK,IAAI,wBAAwB,IAAI,OAAOwD,CAAI,GAAG,IAAI,OAAOxD,CAAK,CAAC;AAAA,MAChF;AAEQ,WAAK,aAAaoC,IAAW;AAAA,IACrC,GAEIc,EAAO,UAAU,YAAY,SAAUvE,GAAOyD,GAAU1D,GAAQ;AAC5D,UAAIvC,GAAImD,GAAIgC,GAAI8B;AAChB,WAAK,WAAWhB,IACf9C,KAAMnD,IAAK,KAAK,KAAK,eAAe,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAI,KAAK,SAASwC,GAAOyD,IAAW1D,CAAM,CAAC,IACxH0E,KAAM9B,IAAK,KAAK,KAAK,kBAAkB,QAAQ8B,MAAO,UAAkBA,EAAG,KAAK9B,CAAE,GAEnF,KAAK,aAAac,IAAW;AAAA,IACrC,GAEIc,EAAO,UAAU,UAAU,SAAUvE,GAAOyD,GAAU1D,GAAQ;AAC1D,UAAIvC,GAAImD,GAAIgC,GAAI8B,GAAIC,GAAIO,GAAII,GAAIC,GAAIC,GAAIC;AACxC,WAAK,WAAW/B;AAChB,UAAIpC,IAAQ,KAAK,SAASrB,GAAOyD,IAAW1D,CAAM;AAClD,MAAI,KAAK,QAAQ,WAAW,KAAK,QAAQ,mBACpCY,KAAMnD,IAAK,KAAK,KAAK,kBAAkB,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,CAAE,IAClFiH,KAAM9B,IAAK,KAAK,KAAK,YAAY,QAAQ8B,MAAO,UAAkBA,EAAG,KAAK9B,GAAItB,CAAK,IACnF4D,KAAMP,IAAK,KAAK,KAAK,gBAAgB,QAAQO,MAAO,UAAkBA,EAAG,KAAKP,CAAE,OAGhFY,KAAMD,IAAK,KAAK,KAAK,eAAe,QAAQC,MAAO,UAAkBA,EAAG,KAAKD,GAAI,UAAU,OAAOhE,GAAO,IAAI,CAAC,IAC9GmE,KAAMD,IAAK,KAAK,KAAK,kBAAkB,QAAQC,MAAO,UAAkBA,EAAG,KAAKD,CAAE,IAGvF,KAAK,aAAa9B,IAAW;AAAA,IACrC,GAEIc,EAAO,UAAU,QAAQ,WAAY;AACjC,UAAI/G,GAAImD;AACR,UAAI,KAAK,IAAI,YAAY;AAErB,aAAK,WAAW,KAAK;AACrB,iBAASiE,IAAQ,KAAK,MAAM,QAAQA,IAAQ,GAAG,KAAK,IAAI,WAAW,KAAK,MAAM,EAAEA,CAAK,GAAG,EAAI;AACxF;AAAA,MAChB;AACQ,OAACjE,KAAMnD,IAAK,KAAK,KAAK,WAAW,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,CAAE;AAAA,IACpF,GAII+G,EAAO,UAAU,QAAQ,WAAY;AACjC,UAAI/G,GAAImD,GAAIgC,GAAI8B;AAChB,OAAC9D,KAAMnD,IAAK,KAAK,KAAK,aAAa,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,CAAE,GAC9E,KAAK,UAAU,MAAK,GACpB,KAAK,UAAU,IACf,KAAK,aAAa,IAClB,KAAK,UAAU,MACf,KAAK,MAAM,SAAS,GACpB,KAAK,aAAa,GAClB,KAAK,WAAW,IACfiH,KAAM9B,IAAK,KAAK,KAAK,kBAAkB,QAAQ8B,MAAO,UAAkBA,EAAG,KAAK9B,GAAI,IAAI,GACzF,KAAK,QAAQ,SAAS,GACtB,KAAK,eAAe,GACpB,KAAK,aAAa,GAClB,KAAK,QAAQ;AAAA,IACrB,GAOI4B,EAAO,UAAU,gBAAgB,SAAUI,GAAM;AAC7C,WAAK,MAAK,GACV,KAAK,IAAIA,CAAI;AAAA,IACrB,GACIJ,EAAO,UAAU,WAAW,SAAUvE,GAAOC,GAAK;AAC9C,aAAOD,IAAQ,KAAK,gBAAgB,KAAK,QAAQ,CAAC,EAAE;AAChD,aAAK,YAAW;AAGpB,eADIyF,IAAQ,KAAK,QAAQ,CAAC,EAAE,MAAMzF,IAAQ,KAAK,cAAcC,IAAM,KAAK,YAAY,GAC7EA,IAAM,KAAK,eAAe,KAAK,QAAQ,CAAC,EAAE;AAC7C,aAAK,YAAW,GAChBwF,KAAS,KAAK,QAAQ,CAAC,EAAE,MAAM,GAAGxF,IAAM,KAAK,YAAY;AAE7D,aAAOwF;AAAA,IACf,GACIlB,EAAO,UAAU,cAAc,WAAY;AACvC,WAAK,gBAAgB,KAAK,QAAQ,CAAC,EAAE,QACrC,KAAK,cACL,KAAK,QAAQ,MAAK;AAAA,IAC1B,GAMIA,EAAO,UAAU,QAAQ,SAAU1B,GAAO;AACtC,UAAIrF,GAAImD;AACR,UAAI,KAAK,OAAO;AACZ,SAACA,KAAMnD,IAAK,KAAK,KAAK,aAAa,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAI,IAAI,MAAM,sBAAsB,CAAC;AACjH;AAAA,MACZ;AACQ,WAAK,QAAQ,KAAKqF,CAAK,GACnB,KAAK,UAAU,YACf,KAAK,UAAU,MAAMA,CAAK,GAC1B,KAAK;AAAA,IAEjB,GAMI0B,EAAO,UAAU,MAAM,SAAU1B,GAAO;AACpC,UAAIrF,GAAImD;AACR,UAAI,KAAK,OAAO;AACZ,SAACA,KAAMnD,IAAK,KAAK,KAAK,aAAa,QAAQmD,MAAO,UAAkBA,EAAG,KAAKnD,GAAI,IAAI,MAAM,oBAAoB,CAAC;AAC/G;AAAA,MACZ;AACQ,MAAIqF,KACA,KAAK,MAAMA,CAAK,GACpB,KAAK,QAAQ,IACb,KAAK,UAAU,IAAG;AAAA,IAC1B,GAII0B,EAAO,UAAU,QAAQ,WAAY;AACjC,WAAK,UAAU,MAAK;AAAA,IAC5B,GAIIA,EAAO,UAAU,SAAS,WAAY;AAElC,WADA,KAAK,UAAU,OAAM,GACd,KAAK,UAAU,WAClB,KAAK,aAAa,KAAK,QAAQ;AAC/B,aAAK,UAAU,MAAM,KAAK,QAAQ,KAAK,YAAY,CAAC;AAExD,MAAI,KAAK,SACL,KAAK,UAAU,IAAG;AAAA,IAC9B,GAOIA,EAAO,UAAU,aAAa,SAAU1B,GAAO;AAC3C,WAAK,MAAMA,CAAK;AAAA,IACxB,GAOI0B,EAAO,UAAU,OAAO,SAAU1B,GAAO;AACrC,WAAK,IAAIA,CAAK;AAAA,IACtB,GACW0B;AAAA,EACX;;AACAZ,GAAA,SAAiBY;;;ACngBjB,SAAO,eAAc9G,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,UAAkBA,EAAA,QAAgBA,EAAA,MAAcA,EAAA,QAAgBA,EAAA,SAAiBA,EAAA,UAAkBA,EAAA,YAAoBA,EAAA,OAAeA,EAAA,OAAeA,EAAA,QAAgBA,EAAA,cAAsB;AAE3L,MAAIiI;AACJ,GAAC,SAAUA,GAAa;AAEpB,IAAAA,EAAY,OAAU,QAEtBA,EAAY,OAAU,QAEtBA,EAAY,YAAe,aAE3BA,EAAY,UAAa,WAEzBA,EAAY,SAAY,UAExBA,EAAY,QAAW,SAEvBA,EAAY,MAAS,OAErBA,EAAY,QAAW,SAEvBA,EAAY,UAAa;AAAA,EAC7B,GAAGA,IAAcjI,EAAQ,gBAAgBA,EAAA,cAAsB,CAAA,EAAG;AAMlE,WAASkI,EAAMC,GAAM;AACjB,WAAQA,EAAK,SAASF,EAAY,OAC9BE,EAAK,SAASF,EAAY,UAC1BE,EAAK,SAASF,EAAY;AAAA,EAClC;AACA,EAAAjI,EAAA,QAAgBkI,GAGhBlI,EAAA,OAAeiI,EAAY,MAE3BjI,EAAA,OAAeiI,EAAY,MAE3BjI,EAAA,YAAoBiI,EAAY,WAEhCjI,EAAA,UAAkBiI,EAAY,SAE9BjI,EAAA,SAAiBiI,EAAY,QAE7BjI,EAAA,QAAgBiI,EAAY,OAE5BjI,EAAA,MAAciI,EAAY,KAE1BjI,EAAA,QAAgBiI,EAAY,OAE5BjI,EAAA,UAAkBiI,EAAY;;YCrD1BG,KAAa7H,KAAQA,EAAK,aAAe,2BAAY;AACrD,MAAI8H,IAAgB,SAAU/d,GAAGa,GAAG;AAChC,WAAAkd,IAAgB,OAAO,kBAClB,EAAE,WAAW,CAAA,eAAgB,SAAS,SAAU/d,GAAGa,GAAG;AAAE,MAAAb,EAAE,YAAYa;AAAA,IAAE,KACzE,SAAUb,GAAGa,GAAG;AAAE,eAAST,KAAKS,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGT,CAAC,MAAGJ,EAAEI,CAAC,IAAIS,EAAET,CAAC;AAAA,OAC1F2d,EAAc/d,GAAGa,CAAC;AAAA,EACjC;AACI,SAAO,SAAUb,GAAGa,GAAG;AACnB,QAAI,OAAOA,KAAM,cAAcA,MAAM;AACjC,YAAM,IAAI,UAAU,yBAAyB,OAAOA,CAAC,IAAI,+BAA+B;AAC5F,IAAAkd,EAAc/d,GAAGa,CAAC;AAClB,aAASmd,IAAK;AAAE,WAAK,cAAche;AAAA,IAAE;AACrC,IAAAA,EAAE,YAAYa,MAAM,OAAO,OAAO,OAAOA,CAAC,KAAKmd,EAAG,YAAYnd,EAAE,WAAW,IAAImd,EAAE;AAAA,EACzF;AACA,EAAC,GACGC,KAAYhI,KAAQA,EAAK,YAAa,WAAY;AAClDgI,SAAAA,KAAW,OAAO,UAAU,SAAS5e,GAAG;AACpC,aAASI,GAAGD,IAAI,GAAGF,IAAI,UAAU,QAAQE,IAAIF,GAAGE,KAAK;AACjD,MAAAC,IAAI,UAAUD,CAAC;AACf,eAASY,KAAKX,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGW,CAAC,MAC1Df,EAAEe,CAAC,IAAIX,EAAEW,CAAC;AAAA,IAC1B;AACQ,WAAOf;AAAA,EACf,GACW4e,GAAS,MAAM,MAAM,SAAS;AACzC;AACA,OAAO,eAAeC,GAAS,cAAc,EAAE,OAAO,GAAI,CAAE;AAC5DA,EAAA,YAAoBA,EAAA,cAAsBA,EAAA,aAAqBA,EAAA,cAAsBA,EAAA,uBAAqCA,EAAA,UAAkBA,EAAA,QAAgBA,EAAA,UAAkBA,EAAA,qBAAmCA,EAAA,mBAA2BA,EAAA,wBAAgCA,EAAA,UAAkBA,EAAA,oBAAkCA,EAAA,OAAe;AAC/U,IAAIC,KAAmBzH,IAKnB0H;AAAAA;AAAAA,EAAsB,WAAY;AAClC,aAASA,IAAO;AAEZ,WAAK,SAAS,MAEd,KAAK,OAAO,MAEZ,KAAK,OAAO,MAEZ,KAAK,aAAa,MAElB,KAAK,WAAW;AAAA,IACxB;AACI,kBAAO,eAAeA,EAAK,WAAW,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMhD,KAAK,WAAY;AACb,eAAO,KAAK;AAAA,MACxB;AAAA,MACQ,KAAK,SAAUC,GAAQ;AACnB,aAAK,SAASA;AAAA,MAC1B;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACD,OAAO,eAAeD,EAAK,WAAW,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKrD,KAAK,WAAY;AACb,eAAO,KAAK;AAAA,MACxB;AAAA,MACQ,KAAK,SAAUE,GAAM;AACjB,aAAK,OAAOA;AAAA,MACxB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACD,OAAO,eAAeF,EAAK,WAAW,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjD,KAAK,WAAY;AACb,eAAO,KAAK;AAAA,MACxB;AAAA,MACQ,KAAK,SAAUG,GAAM;AACjB,aAAK,OAAOA;AAAA,MACxB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GAODH,EAAK,UAAU,YAAY,SAAUI,GAAW;AAC5C,aAAIA,MAAc,WAAUA,IAAY,KACjCC,GAAU,MAAMD,CAAS;AAAA,IACxC,GACWJ;AAAA,EACX;;AACAF,EAAA,OAAeE;AAIf,IAAIM;AAAA;AAAA,EAA0B,SAAUC,GAAQ;AAC5C,IAAAb,GAAUY,GAAUC,CAAM;AAI1B,aAASD,EAAS9B,GAAM;AACpB,UAAIgC,IAAQD,EAAO,KAAK,IAAI,KAAK;AACjC,aAAAC,EAAM,OAAOhC,GACNgC;AAAA,IACf;AACI,kBAAO,eAAeF,EAAS,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,MAKnD,KAAK,WAAY;AACb,eAAO,KAAK;AAAA,MACxB;AAAA,MACQ,KAAK,SAAU9B,GAAM;AACjB,aAAK,OAAOA;AAAA,MACxB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACM8B;AAAA,EACX,EAAEN,EAAI;AAAA;AACNF,EAAA,WAAmBQ;AAInB,IAAIG;AAAAA;AAAAA,EAAsB,SAAUF,GAAQ;AACxC,IAAAb,GAAUe,GAAMF,CAAM;AACtB,aAASE,IAAO;AACZ,UAAID,IAAQD,MAAW,QAAQA,EAAO,MAAM,MAAM,SAAS,KAAK;AAChE,aAAAC,EAAM,OAAOT,GAAiB,YAAY,MACnCS;AAAA,IACf;AACI,kBAAO,eAAeC,EAAK,WAAW,YAAY;AAAA,MAC9C,KAAK,WAAY;AACb,eAAO;AAAA,MACnB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACMA;AAAA,EACX,EAAEH,EAAQ;AAAA;AACVR,EAAA,OAAeW;AAIf,IAAIC;AAAAA;AAAAA,EAAyB,SAAUH,GAAQ;AAC3C,IAAAb,GAAUgB,GAASH,CAAM;AACzB,aAASG,IAAU;AACf,UAAIF,IAAQD,MAAW,QAAQA,EAAO,MAAM,MAAM,SAAS,KAAK;AAChE,aAAAC,EAAM,OAAOT,GAAiB,YAAY,SACnCS;AAAA,IACf;AACI,kBAAO,eAAeE,EAAQ,WAAW,YAAY;AAAA,MACjD,KAAK,WAAY;AACb,eAAO;AAAA,MACnB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACMA;AAAA,EACX,EAAEJ,EAAQ;AAAA;AACVR,EAAA,UAAkBY;AAIlB,IAAIC;AAAA;AAAA,EAAuC,SAAUJ,GAAQ;AACzD,IAAAb,GAAUiB,GAAuBJ,CAAM;AACvC,aAASI,EAAsBjC,GAAMF,GAAM;AACvC,UAAIgC,IAAQD,EAAO,KAAK,MAAM/B,CAAI,KAAK;AACvC,aAAAgC,EAAM,OAAO9B,GACb8B,EAAM,OAAOT,GAAiB,YAAY,WACnCS;AAAA,IACf;AACI,kBAAO,eAAeG,EAAsB,WAAW,YAAY;AAAA,MAC/D,KAAK,WAAY;AACb,eAAO;AAAA,MACnB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACMA;AAAA,EACX,EAAEL,EAAQ;AAAA;AACVR,EAAA,wBAAgCa;AAIhC,IAAIC;AAAA;AAAA,EAAkC,SAAUL,GAAQ;AACpD,IAAAb,GAAUkB,GAAkBL,CAAM;AAIlC,aAASK,EAAiBC,GAAU;AAChC,UAAIL,IAAQD,EAAO,KAAK,IAAI,KAAK;AACjC,aAAAC,EAAM,WAAWK,GACVL;AAAA,IACf;AACI,kBAAO,eAAeI,EAAiB,WAAW,cAAc;AAAA;AAAA;AAAA,MAG5D,KAAK,WAAY;AACb,YAAIvJ;AACJ,gBAAQA,IAAK,KAAK,SAAS,CAAC,OAAO,QAAQA,MAAO,SAASA,IAAK;AAAA,MAC5E;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACD,OAAO,eAAeuJ,EAAiB,WAAW,aAAa;AAAA;AAAA,MAE3D,KAAK,WAAY;AACb,eAAO,KAAK,SAAS,SAAS,IACxB,KAAK,SAAS,KAAK,SAAS,SAAS,CAAC,IACtC;AAAA,MAClB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACD,OAAO,eAAeA,EAAiB,WAAW,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5D,KAAK,WAAY;AACb,eAAO,KAAK;AAAA,MACxB;AAAA,MACQ,KAAK,SAAUC,GAAU;AACrB,aAAK,WAAWA;AAAA,MAC5B;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACMD;AAAA,EACX,EAAEZ,EAAI;AAAA;AACNF,EAAA,mBAA2Bc;AAC3B,IAAIE;AAAA;AAAA,EAAuB,SAAUP,GAAQ;AACzC,IAAAb,GAAUoB,GAAOP,CAAM;AACvB,aAASO,IAAQ;AACb,UAAIN,IAAQD,MAAW,QAAQA,EAAO,MAAM,MAAM,SAAS,KAAK;AAChE,aAAAC,EAAM,OAAOT,GAAiB,YAAY,OACnCS;AAAA,IACf;AACI,kBAAO,eAAeM,EAAM,WAAW,YAAY;AAAA,MAC/C,KAAK,WAAY;AACb,eAAO;AAAA,MACnB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACMA;AAAA,EACX,EAAEF,EAAgB;AAAA;AAClBd,EAAA,QAAgBgB;AAIhB,IAAIC;AAAAA;AAAAA,EAA0B,SAAUR,GAAQ;AAC5C,IAAAb,GAAUqB,GAAUR,CAAM;AAC1B,aAASQ,IAAW;AAChB,UAAIP,IAAQD,MAAW,QAAQA,EAAO,MAAM,MAAM,SAAS,KAAK;AAChE,aAAAC,EAAM,OAAOT,GAAiB,YAAY,MACnCS;AAAA,IACf;AACI,kBAAO,eAAeO,EAAS,WAAW,YAAY;AAAA,MAClD,KAAK,WAAY;AACb,eAAO;AAAA,MACnB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACMA;AAAA,EACX,EAAEH,EAAgB;AAAA;AAClBd,EAAA,WAAmBiB;AAInB,IAAIC;AAAA;AAAA,EAAyB,SAAUT,GAAQ;AAC3C,IAAAb,GAAUsB,GAAST,CAAM;AAMzB,aAASS,EAAQtC,GAAMuC,GAASJ,GAAUK,GAAM;AAC5C,MAAIL,MAAa,WAAUA,IAAW,CAAA,IAClCK,MAAS,WAAUA,IAAOxC,MAAS,WACjCqB,GAAiB,YAAY,SAC7BrB,MAAS,UACLqB,GAAiB,YAAY,QAC7BA,GAAiB,YAAY;AACvC,UAAIS,IAAQD,EAAO,KAAK,MAAMM,CAAQ,KAAK;AAC3C,aAAAL,EAAM,OAAO9B,GACb8B,EAAM,UAAUS,GAChBT,EAAM,OAAOU,GACNV;AAAA,IACf;AACI,kBAAO,eAAeQ,EAAQ,WAAW,YAAY;AAAA,MACjD,KAAK,WAAY;AACb,eAAO;AAAA,MACnB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACD,OAAO,eAAeA,EAAQ,WAAW,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMhD,KAAK,WAAY;AACb,eAAO,KAAK;AAAA,MACxB;AAAA,MACQ,KAAK,SAAUtC,GAAM;AACjB,aAAK,OAAOA;AAAA,MACxB;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACD,OAAO,eAAesC,EAAQ,WAAW,cAAc;AAAA,MACnD,KAAK,WAAY;AACb,YAAIR,IAAQ;AACZ,eAAO,OAAO,KAAK,KAAK,OAAO,EAAE,IAAI,SAAU9B,GAAM;AACjD,cAAIrH,GAAImD;AACR,iBAAQ;AAAA,YACJ,MAAMkE;AAAA,YACN,OAAO8B,EAAM,QAAQ9B,CAAI;AAAA,YACzB,YAAYrH,IAAKmJ,EAAM,oBAAoB,OAAO,QAAQnJ,MAAO,SAAS,SAASA,EAAGqH,CAAI;AAAA,YAC1F,SAASlE,IAAKgG,EAAM,iBAAiB,OAAO,QAAQhG,MAAO,SAAS,SAASA,EAAGkE,CAAI;AAAA,UACxG;AAAA,QACA,CAAa;AAAA,MACb;AAAA,MACQ,YAAY;AAAA,MACZ,cAAc;AAAA,IACtB,CAAK,GACMsC;AAAA,EACX,EAAEJ,EAAgB;AAAA;AAClBd,EAAA,UAAkBkB;AAKlB,SAASxB,GAAMM,GAAM;AACjB,aAAWC,GAAiB,OAAOD,CAAI;AAC3C;AACAA,EAAA,QAAgBN;AAKhB,SAAS2B,GAAQrB,GAAM;AACnB,SAAOA,EAAK,SAASC,GAAiB,YAAY;AACtD;AACAD,EAAA,UAAkBqB;AAKlB,SAASC,GAAOtB,GAAM;AAClB,SAAOA,EAAK,SAASC,GAAiB,YAAY;AACtD;AACAD,EAAA,SAAiBsB;AAKjB,SAASC,GAAUvB,GAAM;AACrB,SAAOA,EAAK,SAASC,GAAiB,YAAY;AACtD;AACAD,EAAA,YAAoBuB;AAKpB,SAASC,GAAYxB,GAAM;AACvB,SAAOA,EAAK,SAASC,GAAiB,YAAY;AACtD;AACAD,EAAA,cAAsBwB;AAKtB,SAASC,GAAWzB,GAAM;AACtB,SAAOA,EAAK,SAASC,GAAiB,YAAY;AACtD;AACAD,EAAA,aAAqByB;AAKrB,SAASC,GAAY1B,GAAM;AACvB,SAAO,OAAO,UAAU,eAAe,KAAKA,GAAM,UAAU;AAChE;AACAA,EAAA,cAAsB0B;AAOtB,SAASnB,GAAUP,GAAMM,GAAW;AAChC,EAAIA,MAAc,WAAUA,IAAY;AACxC,MAAIjI;AACJ,MAAIiJ,GAAOtB,CAAI;AACX,IAAA3H,IAAS,IAAIsI,GAAKX,EAAK,IAAI;AAAA,WAEtBuB,GAAUvB,CAAI;AACnB,IAAA3H,IAAS,IAAIuI,GAAQZ,EAAK,IAAI;AAAA,WAEzBN,GAAMM,CAAI,GAAG;AAClB,QAAIe,IAAWT,IAAYqB,GAAc3B,EAAK,QAAQ,IAAI,CAAA,GACtD4B,IAAU,IAAIV,GAAQlB,EAAK,MAAMD,GAAS,CAAA,GAAIC,EAAK,OAAO,GAAGe,CAAQ;AACzE,IAAAA,EAAS,QAAQ,SAAUc,GAAO;AAAE,aAAQA,EAAM,SAASD;AAAA,IAAS,CAAE,GAClE5B,EAAK,aAAa,SAClB4B,EAAQ,YAAY5B,EAAK,YAEzBA,EAAK,oBAAoB,MACzB4B,EAAQ,oBAAoB,IAAI7B,GAAS,CAAA,GAAIC,EAAK,oBAAoB,CAAC,IAEvEA,EAAK,iBAAiB,MACtB4B,EAAQ,iBAAiB,IAAI7B,GAAS,CAAA,GAAIC,EAAK,iBAAiB,CAAC,IAErE3H,IAASuJ;AAAA,EACjB,WACaP,GAAQrB,CAAI,GAAG;AACpB,QAAIe,IAAWT,IAAYqB,GAAc3B,EAAK,QAAQ,IAAI,CAAA,GACtD8B,IAAU,IAAId,GAAMD,CAAQ;AAChC,IAAAA,EAAS,QAAQ,SAAUc,GAAO;AAAE,aAAQA,EAAM,SAASC;AAAA,IAAS,CAAE,GACtEzJ,IAASyJ;AAAA,EACjB,WACaL,GAAWzB,CAAI,GAAG;AACvB,QAAIe,IAAWT,IAAYqB,GAAc3B,EAAK,QAAQ,IAAI,CAAA,GACtD+B,IAAU,IAAId,GAASF,CAAQ;AACnC,IAAAA,EAAS,QAAQ,SAAUc,GAAO;AAAE,aAAQA,EAAM,SAASE;AAAA,IAAS,CAAE,GAClE/B,EAAK,QAAQ,MACb+B,EAAQ,QAAQ,IAAI/B,EAAK,QAAQ,IAErC3H,IAAS0J;AAAA,EACjB,WACaP,GAAYxB,CAAI,GAAG;AACxB,QAAIgC,IAAc,IAAInB,GAAsBb,EAAK,MAAMA,EAAK,IAAI;AAChE,IAAIA,EAAK,QAAQ,KAAK,SAClBgC,EAAY,QAAQ,IAAIhC,EAAK,QAAQ,GACrCgC,EAAY,YAAY,IAAIhC,EAAK,YAAY,GAC7CgC,EAAY,YAAY,IAAIhC,EAAK,YAAY,IAEjD3H,IAAS2J;AAAA,EACjB;AAEQ,UAAM,IAAI,MAAM,wBAAwB,OAAOhC,EAAK,IAAI,CAAC;AAE7D,SAAA3H,EAAO,aAAa2H,EAAK,YACzB3H,EAAO,WAAW2H,EAAK,UACnBA,EAAK,sBAAsB,SAC3B3H,EAAO,qBAAqB2H,EAAK,qBAE9B3H;AACX;AACA2H,EAAA,YAAoBO;AACpB,SAASoB,GAAcM,GAAQ;AAE3B,WADIlB,IAAWkB,EAAO,IAAI,SAAUJ,GAAO;AAAE,WAAOtB,GAAUsB,GAAO,EAAI;AAAA,EAAE,CAAE,GACpEvgB,IAAI,GAAGA,IAAIyf,EAAS,QAAQzf;AACjC,IAAAyf,EAASzf,CAAC,EAAE,OAAOyf,EAASzf,IAAI,CAAC,GACjCyf,EAASzf,IAAI,CAAC,EAAE,OAAOyf,EAASzf,CAAC;AAErC,SAAOyf;AACX;AAAA;ACxdA,MAAIjJ,IAAmBC,KAAQA,EAAK,oBAAqB,OAAO,SAAU,SAAS,GAAG3V,GAAGM,GAAGsV,GAAI;AAC5F,IAAIA,MAAO,WAAWA,IAAKtV;AAC3B,QAAIuV,IAAO,OAAO,yBAAyB7V,GAAGM,CAAC;AAC/C,KAAI,CAACuV,MAAS,SAASA,IAAO,CAAC7V,EAAE,aAAa6V,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,aAAO7V,EAAEM,CAAC;AAAA,IAAE,EAAE,IAE7D,OAAO,eAAe,GAAGsV,GAAIC,CAAI;AAAA,EACrC,IAAM,SAAS,GAAG7V,GAAGM,GAAGsV,GAAI;AACxB,IAAIA,MAAO,WAAWA,IAAKtV,IAC3B,EAAEsV,CAAE,IAAI5V,EAAEM,CAAC;AAAA,EACf,IACIwf,IAAgBnK,KAAQA,EAAK,gBAAiB,SAAS3V,GAAGoV,GAAS;AACnE,aAAStV,KAAKE,EAAG,CAAIF,MAAM,aAAa,CAAC,OAAO,UAAU,eAAe,KAAKsV,GAAStV,CAAC,KAAG4V,EAAgBN,GAASpV,GAAGF,CAAC;AAAA,EAC5H;AACA,SAAO,eAAcsV,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,aAAqB;AACrB,MAAIyI,IAAmBzH,IACnB2J,IAAYzJ;AAChB,EAAAwJ,EAAaxJ,GAAsBlB,CAAO;AAE1C,MAAI4K,IAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,SAAS;AAAA,EACb,GACIC;AAAA;AAAA,IAA4B,WAAY;AAMxC,eAASA,EAAWC,GAAU/D,GAASgE,GAAW;AAE9C,aAAK,MAAM,CAAA,GAEX,KAAK,OAAO,IAAIJ,EAAU,SAAS,KAAK,GAAG,GAE3C,KAAK,OAAO,IAEZ,KAAK,WAAW,CAAC,KAAK,IAAI,GAE1B,KAAK,WAAW,MAEhB,KAAK,SAAS,MAEV,OAAO5D,KAAY,eACnBgE,IAAYhE,GACZA,IAAU6D,IAEV,OAAOE,KAAa,aACpB/D,IAAU+D,GACVA,IAAW,SAEf,KAAK,WAAWA,KAAsD,MACtE,KAAK,UAAU/D,KAAmD6D,GAClE,KAAK,YAAYG,KAAyD;AAAA,MAClF;AACI,aAAAF,EAAW,UAAU,eAAe,SAAUG,GAAQ;AAClD,aAAK,SAASA;AAAA,MACtB,GAEIH,EAAW,UAAU,UAAU,WAAY;AACvC,aAAK,MAAM,CAAA,GACX,KAAK,OAAO,IAAIF,EAAU,SAAS,KAAK,GAAG,GAC3C,KAAK,OAAO,IACZ,KAAK,WAAW,CAAC,KAAK,IAAI,GAC1B,KAAK,WAAW,MAChB,KAAK,SAAS;AAAA,MACtB,GAEIE,EAAW,UAAU,QAAQ,WAAY;AACrC,QAAI,KAAK,SAET,KAAK,OAAO,IACZ,KAAK,SAAS,MACd,KAAK,eAAe,IAAI;AAAA,MAChC,GACIA,EAAW,UAAU,UAAU,SAAUI,GAAO;AAC5C,aAAK,eAAeA,CAAK;AAAA,MACjC,GACIJ,EAAW,UAAU,aAAa,WAAY;AAC1C,aAAK,WAAW;AAChB,YAAI1C,IAAO,KAAK,SAAS,IAAG;AAC5B,QAAI,KAAK,QAAQ,mBACbA,EAAK,WAAW,KAAK,OAAO,WAE5B,KAAK,aACL,KAAK,UAAUA,CAAI;AAAA,MAC/B,GACI0C,EAAW,UAAU,YAAY,SAAUzD,GAAMuC,GAAS;AACtD,YAAIC,IAAO,KAAK,QAAQ,UAAUnB,EAAiB,YAAY,MAAM,QACjEnB,IAAU,IAAIqD,EAAU,QAAQvD,GAAMuC,GAAS,QAAWC,CAAI;AAClE,aAAK,QAAQtC,CAAO,GACpB,KAAK,SAAS,KAAKA,CAAO;AAAA,MAClC,GACIuD,EAAW,UAAU,SAAS,SAAU3D,GAAM;AAC1C,YAAIgE,IAAW,KAAK;AACpB,YAAIA,KAAYA,EAAS,SAASzC,EAAiB,YAAY;AAC3D,UAAAyC,EAAS,QAAQhE,GACb,KAAK,QAAQ,mBACbgE,EAAS,WAAW,KAAK,OAAO;AAAA,aAGnC;AACD,cAAI1C,IAAO,IAAImC,EAAU,KAAKzD,CAAI;AAClC,eAAK,QAAQsB,CAAI,GACjB,KAAK,WAAWA;AAAA,QAC5B;AAAA,MACA,GACIqC,EAAW,UAAU,YAAY,SAAU3D,GAAM;AAC7C,YAAI,KAAK,YAAY,KAAK,SAAS,SAASuB,EAAiB,YAAY,SAAS;AAC9E,eAAK,SAAS,QAAQvB;AACtB;AAAA,QACZ;AACQ,YAAIsB,IAAO,IAAImC,EAAU,QAAQzD,CAAI;AACrC,aAAK,QAAQsB,CAAI,GACjB,KAAK,WAAWA;AAAA,MACxB,GACIqC,EAAW,UAAU,eAAe,WAAY;AAC5C,aAAK,WAAW;AAAA,MACxB,GACIA,EAAW,UAAU,eAAe,WAAY;AAC5C,YAAIM,IAAO,IAAIR,EAAU,KAAK,EAAE,GAC5BnC,IAAO,IAAImC,EAAU,MAAM,CAACQ,CAAI,CAAC;AACrC,aAAK,QAAQ3C,CAAI,GACjB2C,EAAK,SAAS3C,GACd,KAAK,WAAW2C;AAAA,MACxB,GACIN,EAAW,UAAU,aAAa,WAAY;AAC1C,aAAK,WAAW;AAAA,MACxB,GACIA,EAAW,UAAU,0BAA0B,SAAUzD,GAAMF,GAAM;AACjE,YAAIsB,IAAO,IAAImC,EAAU,sBAAsBvD,GAAMF,CAAI;AACzD,aAAK,QAAQsB,CAAI;AAAA,MACzB,GACIqC,EAAW,UAAU,iBAAiB,SAAUI,GAAO;AACnD,YAAI,OAAO,KAAK,YAAa;AACzB,eAAK,SAASA,GAAO,KAAK,GAAG;AAAA,iBAExBA;AACL,gBAAMA;AAAA,MAElB,GACIJ,EAAW,UAAU,UAAU,SAAUrC,GAAM;AAC3C,YAAIG,IAAS,KAAK,SAAS,KAAK,SAAS,SAAS,CAAC,GAC/CyC,IAAkBzC,EAAO,SAASA,EAAO,SAAS,SAAS,CAAC;AAChE,QAAI,KAAK,QAAQ,qBACbH,EAAK,aAAa,KAAK,OAAO,aAE9B,KAAK,QAAQ,mBACbA,EAAK,WAAW,KAAK,OAAO,WAEhCG,EAAO,SAAS,KAAKH,CAAI,GACrB4C,MACA5C,EAAK,OAAO4C,GACZA,EAAgB,OAAO5C,IAE3BA,EAAK,SAASG,GACd,KAAK,WAAW;AAAA,MACxB,GACWkC;AAAA,IACX;;AACA,EAAA7K,EAAA,aAAqB6K,GACrB7K,EAAA,UAAkB6K;;;AClKlB,OAAO,eAAeQ,IAAS,cAAc,EAAE,OAAO,GAAI,CAAE;AAC5D,SAASC,GAAYC,GAAK;AACtB,WAASzhB,IAAI,GAAGA,IAAIyhB,EAAI,QAAQzhB;AAC5B,IAAAyhB,EAAIzhB,CAAC,EAAE,CAAC,KAAKyhB,EAAIzhB,IAAI,CAAC,EAAE,CAAC,IAAI;AAEjC,SAAOyhB;AACX;AAEAF,GAAA,UAAkB,IAAI,IAAoB,gBAAAC,GAAY,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAQ,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,MAAM,GAAG,QAAO,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAQ,CAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,UAAS,CAAE,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,S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AG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GA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O,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81]}