@thanhpv102/easy-email-core 4.19.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 (85) hide show
  1. package/lib/blocks/advanced/blocks/index.d.ts +16 -0
  2. package/lib/blocks/advanced/generateAdvancedBlock.d.ts +60 -0
  3. package/lib/blocks/advanced/generateAdvancedContentBlock.d.ts +6 -0
  4. package/lib/blocks/advanced/generateAdvancedLayoutBlock.d.ts +7 -0
  5. package/lib/blocks/advanced/generateAdvancedTableBlock.d.ts +21 -0
  6. package/lib/blocks/advanced/index.d.ts +22 -0
  7. package/lib/blocks/index.d.ts +2 -0
  8. package/lib/blocks/standard/Accordion/index.d.ts +17 -0
  9. package/lib/blocks/standard/AccordionElement/index.d.ts +16 -0
  10. package/lib/blocks/standard/AccordionText/index.d.ts +12 -0
  11. package/lib/blocks/standard/AccordionTitle/index.d.ts +9 -0
  12. package/lib/blocks/standard/Button/index.d.ts +30 -0
  13. package/lib/blocks/standard/Carousel/index.d.ts +26 -0
  14. package/lib/blocks/standard/Column/index.d.ts +13 -0
  15. package/lib/blocks/standard/Divider/index.d.ts +11 -0
  16. package/lib/blocks/standard/Group/index.d.ts +8 -0
  17. package/lib/blocks/standard/Hero/index.d.ts +15 -0
  18. package/lib/blocks/standard/Image/index.d.ts +18 -0
  19. package/lib/blocks/standard/Navbar/index.d.ts +27 -0
  20. package/lib/blocks/standard/Page/index.d.ts +29 -0
  21. package/lib/blocks/standard/Raw/index.d.ts +5 -0
  22. package/lib/blocks/standard/Section/index.d.ts +19 -0
  23. package/lib/blocks/standard/Social/index.d.ts +47 -0
  24. package/lib/blocks/standard/Spacer/index.d.ts +7 -0
  25. package/lib/blocks/standard/Table/index.d.ts +5 -0
  26. package/lib/blocks/standard/Template/index.d.ts +5 -0
  27. package/lib/blocks/standard/Text/index.d.ts +20 -0
  28. package/lib/blocks/standard/Wrapper/index.d.ts +12 -0
  29. package/lib/blocks/standard/index.d.ts +45 -0
  30. package/lib/components/Accordion.d.ts +8 -0
  31. package/lib/components/AccordionElement.d.ts +8 -0
  32. package/lib/components/AccordionText.d.ts +8 -0
  33. package/lib/components/AccordionTitle.d.ts +8 -0
  34. package/lib/components/BasicBlock.d.ts +7 -0
  35. package/lib/components/BlockRenderer.d.ts +5 -0
  36. package/lib/components/Button.d.ts +8 -0
  37. package/lib/components/Carousel.d.ts +8 -0
  38. package/lib/components/Column.d.ts +8 -0
  39. package/lib/components/Divider.d.ts +8 -0
  40. package/lib/components/Group.d.ts +8 -0
  41. package/lib/components/Hero.d.ts +8 -0
  42. package/lib/components/Image.d.ts +8 -0
  43. package/lib/components/MjmlBlock.d.ts +10 -0
  44. package/lib/components/Navbar.d.ts +8 -0
  45. package/lib/components/Page.d.ts +8 -0
  46. package/lib/components/Raw.d.ts +8 -0
  47. package/lib/components/Section.d.ts +8 -0
  48. package/lib/components/Social.d.ts +8 -0
  49. package/lib/components/Spacer.d.ts +8 -0
  50. package/lib/components/Table.d.ts +8 -0
  51. package/lib/components/Template.d.ts +8 -0
  52. package/lib/components/Text.d.ts +8 -0
  53. package/lib/components/Wrapper.d.ts +8 -0
  54. package/lib/components/index.d.ts +23 -0
  55. package/lib/constants.d.ts +43 -0
  56. package/lib/index.cjs.js +113 -0
  57. package/lib/index.cjs.js.map +1 -0
  58. package/lib/index.d.ts +5 -0
  59. package/lib/index.es.js +3685 -0
  60. package/lib/index.es.js.map +1 -0
  61. package/lib/typings/index.d.ts +41 -0
  62. package/lib/utils/BlockManager.d.ts +16 -0
  63. package/lib/utils/I18nManager.d.ts +7 -0
  64. package/lib/utils/ImageManager.d.ts +13 -0
  65. package/lib/utils/JsonToMjml.d.ts +12 -0
  66. package/lib/utils/TemplateEngineManager.d.ts +18 -0
  67. package/lib/utils/ancestorOf.d.ts +1 -0
  68. package/lib/utils/block.d.ts +34 -0
  69. package/lib/utils/classnames.d.ts +1 -0
  70. package/lib/utils/createBlock.d.ts +2 -0
  71. package/lib/utils/createBlockDataByType.d.ts +2 -0
  72. package/lib/utils/createCustomBlock.d.ts +2 -0
  73. package/lib/utils/generaMjmlMetaData.d.ts +2 -0
  74. package/lib/utils/getAdapterAttributesString.d.ts +2 -0
  75. package/lib/utils/getImg.d.ts +15 -0
  76. package/lib/utils/getPlaceholder.d.ts +2 -0
  77. package/lib/utils/getPreviewClassName.d.ts +1 -0
  78. package/lib/utils/index.d.ts +16 -0
  79. package/lib/utils/isAdvancedBlock.d.ts +1 -0
  80. package/lib/utils/isProductionMode.d.ts +24 -0
  81. package/lib/utils/isValidBlockData.d.ts +2 -0
  82. package/lib/utils/mergeBlock.d.ts +2 -0
  83. package/lib/utils/parseReactBlockToBlockData.d.ts +2 -0
  84. package/package.json +85 -0
  85. package/readme.md +426 -0
@@ -0,0 +1,3685 @@
1
+ var uu = Object.defineProperty, ru = Object.defineProperties;
2
+ var iu = Object.getOwnPropertyDescriptors;
3
+ var ct = Object.getOwnPropertySymbols;
4
+ var au = Object.prototype.hasOwnProperty, su = Object.prototype.propertyIsEnumerable;
5
+ var Oe = (e, u, i) => u in e ? uu(e, u, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[u] = i, j = (e, u) => {
6
+ for (var i in u || (u = {}))
7
+ au.call(u, i) && Oe(e, i, u[i]);
8
+ if (ct)
9
+ for (var i of ct(u))
10
+ su.call(u, i) && Oe(e, i, u[i]);
11
+ return e;
12
+ }, $ = (e, u) => ru(e, iu(u));
13
+ var ee = (e, u, i) => Oe(e, typeof u != "symbol" ? u + "" : u, i);
14
+ import x, { useContext as nu, useMemo as ou } from "react";
15
+ import { omit as V, merge as z, isObject as lu, isString as tt, get as ae, mergeWith as cu, isArray as _u, set as pu, unescape as hu, isNumber as fu } from "lodash";
16
+ import { renderToStaticMarkup as It } from "react-dom/server";
17
+ import { v4 as du } from "uuid";
18
+ var p = /* @__PURE__ */ ((e) => (e.PAGE = "page", e.SECTION = "section", e.COLUMN = "column", e.GROUP = "group", e.TEXT = "text", e.IMAGE = "image", e.DIVIDER = "divider", e.SPACER = "spacer", e.BUTTON = "button", e.WRAPPER = "wrapper", e.RAW = "raw", e.ACCORDION = "accordion", e.ACCORDION_ELEMENT = "accordion-element", e.ACCORDION_TITLE = "accordion-title", e.ACCORDION_TEXT = "accordion-text", e.HERO = "hero", e.CAROUSEL = "carousel", e.NAVBAR = "navbar", e.SOCIAL = "social", e.TABLE = "table", e.TEMPLATE = "template", e))(p || {}), F = /* @__PURE__ */ ((e) => (e.TEXT = "advanced_text", e.IMAGE = "advanced_image", e.DIVIDER = "advanced_divider", e.SPACER = "advanced_spacer", e.BUTTON = "advanced_button", e.NAVBAR = "advanced_navbar", e.SOCIAL = "advanced_social", e.ACCORDION = "advanced_accordion", e.CAROUSEL = "advanced_carousel", e.TABLE = "advanced_table", e.WRAPPER = "advanced_wrapper", e.SECTION = "advanced_section", e.COLUMN = "advanced_column", e.GROUP = "advanced_group", e.HERO = "advanced_hero", e))(F || {});
19
+ const $r = "easy-email-merge-tag-container", gu = "email-block";
20
+ function mu(e) {
21
+ return e;
22
+ }
23
+ class we {
24
+ static add(u) {
25
+ Object.keys(u).forEach((i) => {
26
+ this.map[i] && (this.overrideMap[i] = !0), this.map[i] = u[i];
27
+ });
28
+ }
29
+ static get(u) {
30
+ return this.map[u];
31
+ }
32
+ static getOverrideMap() {
33
+ return this.overrideMap;
34
+ }
35
+ }
36
+ ee(we, "map", {}), ee(we, "overrideMap", {});
37
+ const Du = {
38
+ IMAGE_01: "https://easy-email-m-ryan.vercel.app/images/ffddc3db-3aae-4d73-ac9c-e1263641f7b4-03c89c34-49a4-4d45-b289-4d2261158cbe.png",
39
+ IMAGE_02: "https://easy-email-m-ryan.vercel.app/images/acbae5eb-efa4-4eb6-866c-f421e740b713-ad3c92b1-9cdb-4a7b-aad3-75ad809db8a3.png",
40
+ IMAGE_03: "https://easy-email-m-ryan.vercel.app/images/98520d6c-5cef-449e-bcbf-6316ccec2088-e8780361-0deb-4896-895e-e690c886cdf0.png",
41
+ IMAGE_04: "https://easy-email-m-ryan.vercel.app/images/b064f705-34ba-4400-975e-9dd0cec21c30-cc9aa158-56bd-4bf1-b532-72390d25c864.png",
42
+ IMAGE_59: "https://easy-email-m-ryan.vercel.app/images/8e0e07e2-3f84-4426-84c1-2add355c558b-image.png",
43
+ IMAGE_09: "https://easy-email-m-ryan.vercel.app/images/be34fb18-32ad-441c-84d8-3c0e9ba9f742-ad2ea5ff-5d0b-446b-bd7d-8e2ab5afdd16.png",
44
+ IMAGE_10: "https://easy-email-m-ryan.vercel.app/images/6a1e6292-469e-452a-bbae-44e4b5ff7463-05e543b6-c951-44ce-ae27-ca1282c77f52.png",
45
+ IMAGE_15: "https://easy-email-m-ryan.vercel.app/images/f69f48af-5b15-40aa-91c4-81d601d1357b-083dc99d-02a6-40d9-ae28-0662bd078b5d.png",
46
+ IMAGE_16: "https://easy-email-m-ryan.vercel.app/images/9cce6b16-5a98-4ddb-b1a1-6cec2cf56891-c3acb856-8ab8-4cfb-93f9-2a0747678b8b.png",
47
+ IMAGE_17: "https://easy-email-m-ryan.vercel.app/images/d9795c1d-fa32-4adb-ab25-30b7cfe87936-df21314f-6f05-4550-80b3-9ab1107e8fbe.png",
48
+ IMAGE_31: "https://easy-email-m-ryan.vercel.app/images/dd1584fb-cb60-42c9-80c7-5545e16130ca-226ba72b-ce9e-4948-ad0d-347381fb96c5.png"
49
+ };
50
+ we.add(Du);
51
+ function Q(e) {
52
+ return we.get(e);
53
+ }
54
+ function bu(e) {
55
+ const { data: { type: u }, mode: i } = e;
56
+ if (i === "production") return null;
57
+ let t = null;
58
+ return u === p.PAGE ? t = "Drop a Wrapper block here" : u === p.WRAPPER || u === F.WRAPPER ? t = "Drop a Section block here" : u === p.SECTION || u === p.GROUP || u === F.SECTION || u === F.GROUP ? t = "Drop a Column block here" : (u === p.COLUMN || u === F.COLUMN) && (t = "Drop a content block here"), t ? `
59
+ <mj-text color="#666">
60
+ <div style="text-align: center">
61
+ <div>
62
+ <svg width="300" fill="currentColor" style="max-width: 100%;" viewBox="-20 -5 80 60">
63
+ <g>
64
+ <path d="M23.713 23.475h5.907c.21 0 .38.17.38.38v.073c0 .21-.17.38-.38.38h-5.907a.38.38 0 0 1-.38-.38v-.073c0-.21.17-.38.38-.38zm.037-2.917h9.167a.417.417 0 0 1 0 .834H23.75a.417.417 0 0 1 0-.834zm0-2.5h9.167a.417.417 0 0 1 0 .834H23.75a.417.417 0 0 1 0-.834zm-.037-3.333h5.907c.21 0 .38.17.38.38v.073c0 .21-.17.38-.38.38h-5.907a.38.38 0 0 1-.38-.38v-.073c0-.21.17-.38.38-.38zm.037-2.917h9.167a.417.417 0 0 1 0 .834H23.75a.417.417 0 0 1 0-.834zm0-2.916h9.167a.417.417 0 0 1 0 .833H23.75a.417.417 0 0 1 0-.833zm-3.592 8.75a.675.675 0 0 1 .675.691v6.142c0 .374-.3.679-.675.683h-6.15a.683.683 0 0 1-.675-.683v-6.142a.675.675 0 0 1 .675-.691h6.15zM20 24.308v-5.833h-5.833v5.833H20zm.158-15.833a.675.675 0 0 1 .675.692v6.141c0 .374-.3.68-.675.684h-6.15a.683.683 0 0 1-.675-.684V9.167a.675.675 0 0 1 .675-.692h6.15zM20 15.142V9.308h-5.833v5.834H20zM37.167 0A2.809 2.809 0 0 1 40 2.833V30.5a2.809 2.809 0 0 1-2.833 2.833h-3.834v3H32.5v-3h-23A2.808 2.808 0 0 1 6.667 30.5v-23H3.583v-.833h3.084V2.833A2.808 2.808 0 0 1 9.5 0h27.667zm2 30.5V2.833a2.025 2.025 0 0 0-2-2H9.5a2.025 2.025 0 0 0-2 2V30.5a2.025 2.025 0 0 0 2 2h27.667a2.025 2.025 0 0 0 2-2zM0 27.75h.833V31H0v-3.25zm0-13h.833V18H0v-3.25zm0 22.833V34.25h.833v3.25L0 37.583zM0 21.25h.833v3.25H0v-3.25zM2.583 40l.084-.833h3.166V40h-3.25zm27.917-.833c.376.006.748-.08 1.083-.25l.417.666a2.875 2.875 0 0 1-1.5.417h-1.833v-.833H30.5zm-8.333 0h3.25V40h-3.25v-.833zm-6.584 0h3.25V40h-3.25v-.833zm-6.5 0h3.25V40h-3.25v-.833zM0 9.5c.01-.5.154-.99.417-1.417l.666.417c-.17.305-.256.65-.25 1v2H0v-2z"></path>
65
+ </g>
66
+ <text x="-16" y="50" font-size="5px">${t}</text>
67
+ </svg>
68
+ </div>
69
+ </div>
70
+ </mj-text>
71
+ ` : null;
72
+ }
73
+ var _t = typeof globalThis != "undefined" ? globalThis : typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : {}, ke = { exports: {} }, ne = {}, Ae = { exports: {} }, Re = {}, qe = {}, pt;
74
+ function ut() {
75
+ if (pt) return qe;
76
+ pt = 1;
77
+ function e(t) {
78
+ this.__parent = t, this.__character_count = 0, this.__indent_count = -1, this.__alignment_count = 0, this.__wrap_point_index = 0, this.__wrap_point_character_count = 0, this.__wrap_point_indent_count = -1, this.__wrap_point_alignment_count = 0, this.__items = [];
79
+ }
80
+ e.prototype.clone_empty = function() {
81
+ var t = new e(this.__parent);
82
+ return t.set_indent(this.__indent_count, this.__alignment_count), t;
83
+ }, e.prototype.item = function(t) {
84
+ return t < 0 ? this.__items[this.__items.length + t] : this.__items[t];
85
+ }, e.prototype.has_match = function(t) {
86
+ for (var a = this.__items.length - 1; a >= 0; a--)
87
+ if (this.__items[a].match(t))
88
+ return !0;
89
+ return !1;
90
+ }, e.prototype.set_indent = function(t, a) {
91
+ this.is_empty() && (this.__indent_count = t || 0, this.__alignment_count = a || 0, this.__character_count = this.__parent.get_indent_size(this.__indent_count, this.__alignment_count));
92
+ }, e.prototype._set_wrap_point = function() {
93
+ this.__parent.wrap_line_length && (this.__wrap_point_index = this.__items.length, this.__wrap_point_character_count = this.__character_count, this.__wrap_point_indent_count = this.__parent.next_line.__indent_count, this.__wrap_point_alignment_count = this.__parent.next_line.__alignment_count);
94
+ }, e.prototype._should_wrap = function() {
95
+ return this.__wrap_point_index && this.__character_count > this.__parent.wrap_line_length && this.__wrap_point_character_count > this.__parent.next_line.__character_count;
96
+ }, e.prototype._allow_wrap = function() {
97
+ if (this._should_wrap()) {
98
+ this.__parent.add_new_line();
99
+ var t = this.__parent.current_line;
100
+ return t.set_indent(this.__wrap_point_indent_count, this.__wrap_point_alignment_count), t.__items = this.__items.slice(this.__wrap_point_index), this.__items = this.__items.slice(0, this.__wrap_point_index), t.__character_count += this.__character_count - this.__wrap_point_character_count, this.__character_count = this.__wrap_point_character_count, t.__items[0] === " " && (t.__items.splice(0, 1), t.__character_count -= 1), !0;
101
+ }
102
+ return !1;
103
+ }, e.prototype.is_empty = function() {
104
+ return this.__items.length === 0;
105
+ }, e.prototype.last = function() {
106
+ return this.is_empty() ? null : this.__items[this.__items.length - 1];
107
+ }, e.prototype.push = function(t) {
108
+ this.__items.push(t);
109
+ var a = t.lastIndexOf(`
110
+ `);
111
+ a !== -1 ? this.__character_count = t.length - a : this.__character_count += t.length;
112
+ }, e.prototype.pop = function() {
113
+ var t = null;
114
+ return this.is_empty() || (t = this.__items.pop(), this.__character_count -= t.length), t;
115
+ }, e.prototype._remove_indent = function() {
116
+ this.__indent_count > 0 && (this.__indent_count -= 1, this.__character_count -= this.__parent.indent_size);
117
+ }, e.prototype._remove_wrap_indent = function() {
118
+ this.__wrap_point_indent_count > 0 && (this.__wrap_point_indent_count -= 1);
119
+ }, e.prototype.trim = function() {
120
+ for (; this.last() === " "; )
121
+ this.__items.pop(), this.__character_count -= 1;
122
+ }, e.prototype.toString = function() {
123
+ var t = "";
124
+ return this.is_empty() ? this.__parent.indent_empty_lines && (t = this.__parent.get_indent_string(this.__indent_count)) : (t = this.__parent.get_indent_string(this.__indent_count, this.__alignment_count), t += this.__items.join("")), t;
125
+ };
126
+ function u(t, a) {
127
+ this.__cache = [""], this.__indent_size = t.indent_size, this.__indent_string = t.indent_char, t.indent_with_tabs || (this.__indent_string = new Array(t.indent_size + 1).join(t.indent_char)), a = a || "", t.indent_level > 0 && (a = new Array(t.indent_level + 1).join(this.__indent_string)), this.__base_string = a, this.__base_string_length = a.length;
128
+ }
129
+ u.prototype.get_indent_size = function(t, a) {
130
+ var n = this.__base_string_length;
131
+ return a = a || 0, t < 0 && (n = 0), n += t * this.__indent_size, n += a, n;
132
+ }, u.prototype.get_indent_string = function(t, a) {
133
+ var n = this.__base_string;
134
+ return a = a || 0, t < 0 && (t = 0, n = ""), a += t * this.__indent_size, this.__ensure_cache(a), n += this.__cache[a], n;
135
+ }, u.prototype.__ensure_cache = function(t) {
136
+ for (; t >= this.__cache.length; )
137
+ this.__add_column();
138
+ }, u.prototype.__add_column = function() {
139
+ var t = this.__cache.length, a = 0, n = "";
140
+ this.__indent_size && t >= this.__indent_size && (a = Math.floor(t / this.__indent_size), t -= a * this.__indent_size, n = new Array(a + 1).join(this.__indent_string)), t && (n += new Array(t + 1).join(" ")), this.__cache.push(n);
141
+ };
142
+ function i(t, a) {
143
+ this.__indent_cache = new u(t, a), this.raw = !1, this._end_with_newline = t.end_with_newline, this.indent_size = t.indent_size, this.wrap_line_length = t.wrap_line_length, this.indent_empty_lines = t.indent_empty_lines, this.__lines = [], this.previous_line = null, this.current_line = null, this.next_line = new e(this), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = !1, this.__add_outputline();
144
+ }
145
+ return i.prototype.__add_outputline = function() {
146
+ this.previous_line = this.current_line, this.current_line = this.next_line.clone_empty(), this.__lines.push(this.current_line);
147
+ }, i.prototype.get_line_number = function() {
148
+ return this.__lines.length;
149
+ }, i.prototype.get_indent_string = function(t, a) {
150
+ return this.__indent_cache.get_indent_string(t, a);
151
+ }, i.prototype.get_indent_size = function(t, a) {
152
+ return this.__indent_cache.get_indent_size(t, a);
153
+ }, i.prototype.is_empty = function() {
154
+ return !this.previous_line && this.current_line.is_empty();
155
+ }, i.prototype.add_new_line = function(t) {
156
+ return this.is_empty() || !t && this.just_added_newline() ? !1 : (this.raw || this.__add_outputline(), !0);
157
+ }, i.prototype.get_code = function(t) {
158
+ this.trim(!0);
159
+ var a = this.current_line.pop();
160
+ a && (a[a.length - 1] === `
161
+ ` && (a = a.replace(/\n+$/g, "")), this.current_line.push(a)), this._end_with_newline && this.__add_outputline();
162
+ var n = this.__lines.join(`
163
+ `);
164
+ return t !== `
165
+ ` && (n = n.replace(/[\n]/g, t)), n;
166
+ }, i.prototype.set_wrap_point = function() {
167
+ this.current_line._set_wrap_point();
168
+ }, i.prototype.set_indent = function(t, a) {
169
+ return t = t || 0, a = a || 0, this.next_line.set_indent(t, a), this.__lines.length > 1 ? (this.current_line.set_indent(t, a), !0) : (this.current_line.set_indent(), !1);
170
+ }, i.prototype.add_raw_token = function(t) {
171
+ for (var a = 0; a < t.newlines; a++)
172
+ this.__add_outputline();
173
+ this.current_line.set_indent(-1), this.current_line.push(t.whitespace_before), this.current_line.push(t.text), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = !1;
174
+ }, i.prototype.add_token = function(t) {
175
+ this.__add_space_before_token(), this.current_line.push(t), this.space_before_token = !1, this.non_breaking_space = !1, this.previous_token_wrapped = this.current_line._allow_wrap();
176
+ }, i.prototype.__add_space_before_token = function() {
177
+ this.space_before_token && !this.just_added_newline() && (this.non_breaking_space || this.set_wrap_point(), this.current_line.push(" "));
178
+ }, i.prototype.remove_indent = function(t) {
179
+ for (var a = this.__lines.length; t < a; )
180
+ this.__lines[t]._remove_indent(), t++;
181
+ this.current_line._remove_wrap_indent();
182
+ }, i.prototype.trim = function(t) {
183
+ for (t = t === void 0 ? !1 : t, this.current_line.trim(); t && this.__lines.length > 1 && this.current_line.is_empty(); )
184
+ this.__lines.pop(), this.current_line = this.__lines[this.__lines.length - 1], this.current_line.trim();
185
+ this.previous_line = this.__lines.length > 1 ? this.__lines[this.__lines.length - 2] : null;
186
+ }, i.prototype.just_added_newline = function() {
187
+ return this.current_line.is_empty();
188
+ }, i.prototype.just_added_blankline = function() {
189
+ return this.is_empty() || this.current_line.is_empty() && this.previous_line.is_empty();
190
+ }, i.prototype.ensure_empty_line_above = function(t, a) {
191
+ for (var n = this.__lines.length - 2; n >= 0; ) {
192
+ var c = this.__lines[n];
193
+ if (c.is_empty())
194
+ break;
195
+ if (c.item(0).indexOf(t) !== 0 && c.item(-1) !== a) {
196
+ this.__lines.splice(n + 1, 0, new e(this)), this.previous_line = this.__lines[this.__lines.length - 2];
197
+ break;
198
+ }
199
+ n--;
200
+ }
201
+ }, qe.Output = i, qe;
202
+ }
203
+ var Se = {}, ht;
204
+ function Ut() {
205
+ if (ht) return Se;
206
+ ht = 1;
207
+ function e(u, i, t, a) {
208
+ this.type = u, this.text = i, this.comments_before = null, this.newlines = t || 0, this.whitespace_before = a || "", this.parent = null, this.next = null, this.previous = null, this.opened = null, this.closed = null, this.directives = null;
209
+ }
210
+ return Se.Token = e, Se;
211
+ }
212
+ var Le = {}, ft;
213
+ function jt() {
214
+ return ft || (ft = 1, (function(e) {
215
+ var u = "\\x23\\x24\\x40\\x41-\\x5a\\x5f\\x61-\\x7a", i = "\\x24\\x30-\\x39\\x41-\\x5a\\x5f\\x61-\\x7a", t = "\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc", a = "\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u0620-\\u0649\\u0672-\\u06d3\\u06e7-\\u06e8\\u06fb-\\u06fc\\u0730-\\u074a\\u0800-\\u0814\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0840-\\u0857\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962-\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09d7\\u09df-\\u09e0\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2-\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b5f-\\u0b60\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62-\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2-\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d46-\\u0d48\\u0d57\\u0d62-\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e34-\\u0e3a\\u0e40-\\u0e45\\u0e50-\\u0e59\\u0eb4-\\u0eb9\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f41-\\u0f47\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1029\\u1040-\\u1049\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u170e-\\u1710\\u1720-\\u1730\\u1740-\\u1750\\u1772\\u1773\\u1780-\\u17b2\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1920-\\u192b\\u1930-\\u193b\\u1951-\\u196d\\u19b0-\\u19c0\\u19c8-\\u19c9\\u19d0-\\u19d9\\u1a00-\\u1a15\\u1a20-\\u1a53\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b46-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c00-\\u1c22\\u1c40-\\u1c49\\u1c5b-\\u1c7d\\u1cd0-\\u1cd2\\u1d00-\\u1dbe\\u1e01-\\u1f15\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2d81-\\u2d96\\u2de0-\\u2dff\\u3021-\\u3028\\u3099\\u309a\\ua640-\\ua66d\\ua674-\\ua67d\\ua69f\\ua6f0-\\ua6f1\\ua7f8-\\ua800\\ua806\\ua80b\\ua823-\\ua827\\ua880-\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8f3-\\ua8f7\\ua900-\\ua909\\ua926-\\ua92d\\ua930-\\ua945\\ua980-\\ua983\\ua9b3-\\ua9c0\\uaa00-\\uaa27\\uaa40-\\uaa41\\uaa4c-\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaae0-\\uaae9\\uaaf2-\\uaaf3\\uabc0-\\uabe1\\uabec\\uabed\\uabf0-\\uabf9\\ufb20-\\ufb28\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f", n = "\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}", c = "(?:" + n + "|[" + u + t + "])", o = "(?:" + n + "|[" + i + t + a + "])*";
216
+ e.identifier = new RegExp(c + o, "g"), e.identifierStart = new RegExp(c), e.identifierMatch = new RegExp("(?:" + n + "|[" + i + t + a + "])+"), e.newline = /[\n\r\u2028\u2029]/, e.lineBreak = new RegExp(`\r
217
+ |` + e.newline.source), e.allLineBreaks = new RegExp(e.lineBreak.source, "g");
218
+ })(Le)), Le;
219
+ }
220
+ var Ne = {}, oe = {}, dt;
221
+ function rt() {
222
+ if (dt) return oe;
223
+ dt = 1;
224
+ function e(t, a) {
225
+ this.raw_options = u(t, a), this.disabled = this._get_boolean("disabled"), this.eol = this._get_characters("eol", "auto"), this.end_with_newline = this._get_boolean("end_with_newline"), this.indent_size = this._get_number("indent_size", 4), this.indent_char = this._get_characters("indent_char", " "), this.indent_level = this._get_number("indent_level"), this.preserve_newlines = this._get_boolean("preserve_newlines", !0), this.max_preserve_newlines = this._get_number("max_preserve_newlines", 32786), this.preserve_newlines || (this.max_preserve_newlines = 0), this.indent_with_tabs = this._get_boolean("indent_with_tabs", this.indent_char === " "), this.indent_with_tabs && (this.indent_char = " ", this.indent_size === 1 && (this.indent_size = 4)), this.wrap_line_length = this._get_number("wrap_line_length", this._get_number("max_char")), this.indent_empty_lines = this._get_boolean("indent_empty_lines"), this.templating = this._get_selection_list("templating", ["auto", "none", "angular", "django", "erb", "handlebars", "php", "smarty"], ["auto"]);
226
+ }
227
+ e.prototype._get_array = function(t, a) {
228
+ var n = this.raw_options[t], c = a || [];
229
+ return typeof n == "object" ? n !== null && typeof n.concat == "function" && (c = n.concat()) : typeof n == "string" && (c = n.split(/[^a-zA-Z0-9_\/\-]+/)), c;
230
+ }, e.prototype._get_boolean = function(t, a) {
231
+ var n = this.raw_options[t], c = n === void 0 ? !!a : !!n;
232
+ return c;
233
+ }, e.prototype._get_characters = function(t, a) {
234
+ var n = this.raw_options[t], c = a || "";
235
+ return typeof n == "string" && (c = n.replace(/\\r/, "\r").replace(/\\n/, `
236
+ `).replace(/\\t/, " ")), c;
237
+ }, e.prototype._get_number = function(t, a) {
238
+ var n = this.raw_options[t];
239
+ a = parseInt(a, 10), isNaN(a) && (a = 0);
240
+ var c = parseInt(n, 10);
241
+ return isNaN(c) && (c = a), c;
242
+ }, e.prototype._get_selection = function(t, a, n) {
243
+ var c = this._get_selection_list(t, a, n);
244
+ if (c.length !== 1)
245
+ throw new Error(
246
+ "Invalid Option Value: The option '" + t + `' can only be one of the following values:
247
+ ` + a + `
248
+ You passed in: '` + this.raw_options[t] + "'"
249
+ );
250
+ return c[0];
251
+ }, e.prototype._get_selection_list = function(t, a, n) {
252
+ if (!a || a.length === 0)
253
+ throw new Error("Selection list cannot be empty.");
254
+ if (n = n || [a[0]], !this._is_valid_selection(n, a))
255
+ throw new Error("Invalid Default Value!");
256
+ var c = this._get_array(t, n);
257
+ if (!this._is_valid_selection(c, a))
258
+ throw new Error(
259
+ "Invalid Option Value: The option '" + t + `' can contain only the following values:
260
+ ` + a + `
261
+ You passed in: '` + this.raw_options[t] + "'"
262
+ );
263
+ return c;
264
+ }, e.prototype._is_valid_selection = function(t, a) {
265
+ return t.length && a.length && !t.some(function(n) {
266
+ return a.indexOf(n) === -1;
267
+ });
268
+ };
269
+ function u(t, a) {
270
+ var n = {};
271
+ t = i(t);
272
+ var c;
273
+ for (c in t)
274
+ c !== a && (n[c] = t[c]);
275
+ if (a && t[a])
276
+ for (c in t[a])
277
+ n[c] = t[a][c];
278
+ return n;
279
+ }
280
+ function i(t) {
281
+ var a = {}, n;
282
+ for (n in t) {
283
+ var c = n.replace(/-/g, "_");
284
+ a[c] = t[n];
285
+ }
286
+ return a;
287
+ }
288
+ return oe.Options = e, oe.normalizeOpts = i, oe.mergeOpts = u, oe;
289
+ }
290
+ var gt;
291
+ function Vt() {
292
+ if (gt) return Ne;
293
+ gt = 1;
294
+ var e = rt().Options, u = ["before-newline", "after-newline", "preserve-newline"];
295
+ function i(t) {
296
+ e.call(this, t, "js");
297
+ var a = this.raw_options.brace_style || null;
298
+ a === "expand-strict" ? this.raw_options.brace_style = "expand" : a === "collapse-preserve-inline" ? this.raw_options.brace_style = "collapse,preserve-inline" : this.raw_options.braces_on_own_line !== void 0 && (this.raw_options.brace_style = this.raw_options.braces_on_own_line ? "expand" : "collapse");
299
+ var n = this._get_selection_list("brace_style", ["collapse", "expand", "end-expand", "none", "preserve-inline"]);
300
+ this.brace_preserve_inline = !1, this.brace_style = "collapse";
301
+ for (var c = 0; c < n.length; c++)
302
+ n[c] === "preserve-inline" ? this.brace_preserve_inline = !0 : this.brace_style = n[c];
303
+ this.unindent_chained_methods = this._get_boolean("unindent_chained_methods"), this.break_chained_methods = this._get_boolean("break_chained_methods"), this.space_in_paren = this._get_boolean("space_in_paren"), this.space_in_empty_paren = this._get_boolean("space_in_empty_paren"), this.jslint_happy = this._get_boolean("jslint_happy"), this.space_after_anon_function = this._get_boolean("space_after_anon_function"), this.space_after_named_function = this._get_boolean("space_after_named_function"), this.keep_array_indentation = this._get_boolean("keep_array_indentation"), this.space_before_conditional = this._get_boolean("space_before_conditional", !0), this.unescape_strings = this._get_boolean("unescape_strings"), this.e4x = this._get_boolean("e4x"), this.comma_first = this._get_boolean("comma_first"), this.operator_position = this._get_selection("operator_position", u), this.test_output_raw = this._get_boolean("test_output_raw"), this.jslint_happy && (this.space_after_anon_function = !0);
304
+ }
305
+ return i.prototype = new e(), Ne.Options = i, Ne;
306
+ }
307
+ var re = {}, Pe = {}, mt;
308
+ function it() {
309
+ if (mt) return Pe;
310
+ mt = 1;
311
+ var e = RegExp.prototype.hasOwnProperty("sticky");
312
+ function u(i) {
313
+ this.__input = i || "", this.__input_length = this.__input.length, this.__position = 0;
314
+ }
315
+ return u.prototype.restart = function() {
316
+ this.__position = 0;
317
+ }, u.prototype.back = function() {
318
+ this.__position > 0 && (this.__position -= 1);
319
+ }, u.prototype.hasNext = function() {
320
+ return this.__position < this.__input_length;
321
+ }, u.prototype.next = function() {
322
+ var i = null;
323
+ return this.hasNext() && (i = this.__input.charAt(this.__position), this.__position += 1), i;
324
+ }, u.prototype.peek = function(i) {
325
+ var t = null;
326
+ return i = i || 0, i += this.__position, i >= 0 && i < this.__input_length && (t = this.__input.charAt(i)), t;
327
+ }, u.prototype.__match = function(i, t) {
328
+ i.lastIndex = t;
329
+ var a = i.exec(this.__input);
330
+ return a && !(e && i.sticky) && a.index !== t && (a = null), a;
331
+ }, u.prototype.test = function(i, t) {
332
+ return t = t || 0, t += this.__position, t >= 0 && t < this.__input_length ? !!this.__match(i, t) : !1;
333
+ }, u.prototype.testChar = function(i, t) {
334
+ var a = this.peek(t);
335
+ return i.lastIndex = 0, a !== null && i.test(a);
336
+ }, u.prototype.match = function(i) {
337
+ var t = this.__match(i, this.__position);
338
+ return t ? this.__position += t[0].length : t = null, t;
339
+ }, u.prototype.read = function(i, t, a) {
340
+ var n = "", c;
341
+ return i && (c = this.match(i), c && (n += c[0])), t && (c || !i) && (n += this.readUntil(t, a)), n;
342
+ }, u.prototype.readUntil = function(i, t) {
343
+ var a = "", n = this.__position;
344
+ i.lastIndex = this.__position;
345
+ var c = i.exec(this.__input);
346
+ return c ? (n = c.index, t && (n += c[0].length)) : n = this.__input_length, a = this.__input.substring(this.__position, n), this.__position = n, a;
347
+ }, u.prototype.readUntilAfter = function(i) {
348
+ return this.readUntil(i, !0);
349
+ }, u.prototype.get_regexp = function(i, t) {
350
+ var a = null, n = "g";
351
+ return t && e && (n = "y"), typeof i == "string" && i !== "" ? a = new RegExp(i, n) : i && (a = new RegExp(i.source, n)), a;
352
+ }, u.prototype.get_literal_regexp = function(i) {
353
+ return RegExp(i.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
354
+ }, u.prototype.peekUntilAfter = function(i) {
355
+ var t = this.__position, a = this.readUntilAfter(i);
356
+ return this.__position = t, a;
357
+ }, u.prototype.lookBack = function(i) {
358
+ var t = this.__position - 1;
359
+ return t >= i.length && this.__input.substring(t - i.length, t).toLowerCase() === i;
360
+ }, Pe.InputScanner = u, Pe;
361
+ }
362
+ var ve = {}, Ie = {}, Dt;
363
+ function Au() {
364
+ if (Dt) return Ie;
365
+ Dt = 1;
366
+ function e(u) {
367
+ this.__tokens = [], this.__tokens_length = this.__tokens.length, this.__position = 0, this.__parent_token = u;
368
+ }
369
+ return e.prototype.restart = function() {
370
+ this.__position = 0;
371
+ }, e.prototype.isEmpty = function() {
372
+ return this.__tokens_length === 0;
373
+ }, e.prototype.hasNext = function() {
374
+ return this.__position < this.__tokens_length;
375
+ }, e.prototype.next = function() {
376
+ var u = null;
377
+ return this.hasNext() && (u = this.__tokens[this.__position], this.__position += 1), u;
378
+ }, e.prototype.peek = function(u) {
379
+ var i = null;
380
+ return u = u || 0, u += this.__position, u >= 0 && u < this.__tokens_length && (i = this.__tokens[u]), i;
381
+ }, e.prototype.add = function(u) {
382
+ this.__parent_token && (u.parent = this.__parent_token), this.__tokens.push(u), this.__tokens_length += 1;
383
+ }, Ie.TokenStream = e, Ie;
384
+ }
385
+ var Ue = {}, je = {}, bt;
386
+ function Te() {
387
+ if (bt) return je;
388
+ bt = 1;
389
+ function e(u, i) {
390
+ this._input = u, this._starting_pattern = null, this._match_pattern = null, this._until_pattern = null, this._until_after = !1, i && (this._starting_pattern = this._input.get_regexp(i._starting_pattern, !0), this._match_pattern = this._input.get_regexp(i._match_pattern, !0), this._until_pattern = this._input.get_regexp(i._until_pattern), this._until_after = i._until_after);
391
+ }
392
+ return e.prototype.read = function() {
393
+ var u = this._input.read(this._starting_pattern);
394
+ return (!this._starting_pattern || u) && (u += this._input.read(this._match_pattern, this._until_pattern, this._until_after)), u;
395
+ }, e.prototype.read_match = function() {
396
+ return this._input.match(this._match_pattern);
397
+ }, e.prototype.until_after = function(u) {
398
+ var i = this._create();
399
+ return i._until_after = !0, i._until_pattern = this._input.get_regexp(u), i._update(), i;
400
+ }, e.prototype.until = function(u) {
401
+ var i = this._create();
402
+ return i._until_after = !1, i._until_pattern = this._input.get_regexp(u), i._update(), i;
403
+ }, e.prototype.starting_with = function(u) {
404
+ var i = this._create();
405
+ return i._starting_pattern = this._input.get_regexp(u, !0), i._update(), i;
406
+ }, e.prototype.matching = function(u) {
407
+ var i = this._create();
408
+ return i._match_pattern = this._input.get_regexp(u, !0), i._update(), i;
409
+ }, e.prototype._create = function() {
410
+ return new e(this._input, this);
411
+ }, e.prototype._update = function() {
412
+ }, je.Pattern = e, je;
413
+ }
414
+ var At;
415
+ function vu() {
416
+ if (At) return Ue;
417
+ At = 1;
418
+ var e = Te().Pattern;
419
+ function u(i, t) {
420
+ e.call(this, i, t), t ? this._line_regexp = this._input.get_regexp(t._line_regexp) : this.__set_whitespace_patterns("", ""), this.newline_count = 0, this.whitespace_before_token = "";
421
+ }
422
+ return u.prototype = new e(), u.prototype.__set_whitespace_patterns = function(i, t) {
423
+ i += "\\t ", t += "\\n\\r", this._match_pattern = this._input.get_regexp(
424
+ "[" + i + t + "]+",
425
+ !0
426
+ ), this._newline_regexp = this._input.get_regexp(
427
+ "\\r\\n|[" + t + "]"
428
+ );
429
+ }, u.prototype.read = function() {
430
+ this.newline_count = 0, this.whitespace_before_token = "";
431
+ var i = this._input.read(this._match_pattern);
432
+ if (i === " ")
433
+ this.whitespace_before_token = " ";
434
+ else if (i) {
435
+ var t = this.__split(this._newline_regexp, i);
436
+ this.newline_count = t.length - 1, this.whitespace_before_token = t[this.newline_count];
437
+ }
438
+ return i;
439
+ }, u.prototype.matching = function(i, t) {
440
+ var a = this._create();
441
+ return a.__set_whitespace_patterns(i, t), a._update(), a;
442
+ }, u.prototype._create = function() {
443
+ return new u(this._input, this);
444
+ }, u.prototype.__split = function(i, t) {
445
+ i.lastIndex = 0;
446
+ for (var a = 0, n = [], c = i.exec(t); c; )
447
+ n.push(t.substring(a, c.index)), a = c.index + c[0].length, c = i.exec(t);
448
+ return a < t.length ? n.push(t.substring(a, t.length)) : n.push(""), n;
449
+ }, Ue.WhitespacePattern = u, Ue;
450
+ }
451
+ var vt;
452
+ function Be() {
453
+ if (vt) return ve;
454
+ vt = 1;
455
+ var e = it().InputScanner, u = Ut().Token, i = Au().TokenStream, t = vu().WhitespacePattern, a = {
456
+ START: "TK_START",
457
+ RAW: "TK_RAW",
458
+ EOF: "TK_EOF"
459
+ }, n = function(c, o) {
460
+ this._input = new e(c), this._options = o || {}, this.__tokens = null, this._patterns = {}, this._patterns.whitespace = new t(this._input);
461
+ };
462
+ return n.prototype.tokenize = function() {
463
+ this._input.restart(), this.__tokens = new i(), this._reset();
464
+ for (var c, o = new u(a.START, ""), l = null, b = [], d = new i(); o.type !== a.EOF; ) {
465
+ for (c = this._get_next_token(o, l); this._is_comment(c); )
466
+ d.add(c), c = this._get_next_token(o, l);
467
+ d.isEmpty() || (c.comments_before = d, d = new i()), c.parent = l, this._is_opening(c) ? (b.push(l), l = c) : l && this._is_closing(c, l) && (c.opened = l, l.closed = c, l = b.pop(), c.parent = l), c.previous = o, o.next = c, this.__tokens.add(c), o = c;
468
+ }
469
+ return this.__tokens;
470
+ }, n.prototype._is_first_token = function() {
471
+ return this.__tokens.isEmpty();
472
+ }, n.prototype._reset = function() {
473
+ }, n.prototype._get_next_token = function(c, o) {
474
+ this._readWhitespace();
475
+ var l = this._input.read(/.+/g);
476
+ return l ? this._create_token(a.RAW, l) : this._create_token(a.EOF, "");
477
+ }, n.prototype._is_comment = function(c) {
478
+ return !1;
479
+ }, n.prototype._is_opening = function(c) {
480
+ return !1;
481
+ }, n.prototype._is_closing = function(c, o) {
482
+ return !1;
483
+ }, n.prototype._create_token = function(c, o) {
484
+ var l = new u(
485
+ c,
486
+ o,
487
+ this._patterns.whitespace.newline_count,
488
+ this._patterns.whitespace.whitespace_before_token
489
+ );
490
+ return l;
491
+ }, n.prototype._readWhitespace = function() {
492
+ return this._patterns.whitespace.read();
493
+ }, ve.Tokenizer = n, ve.TOKEN = a, ve;
494
+ }
495
+ var Ve = {}, Et;
496
+ function at() {
497
+ if (Et) return Ve;
498
+ Et = 1;
499
+ function e(u, i) {
500
+ u = typeof u == "string" ? u : u.source, i = typeof i == "string" ? i : i.source, this.__directives_block_pattern = new RegExp(u + / beautify( \w+[:]\w+)+ /.source + i, "g"), this.__directive_pattern = / (\w+)[:](\w+)/g, this.__directives_end_ignore_pattern = new RegExp(u + /\sbeautify\signore:end\s/.source + i, "g");
501
+ }
502
+ return e.prototype.get_directives = function(u) {
503
+ if (!u.match(this.__directives_block_pattern))
504
+ return null;
505
+ var i = {};
506
+ this.__directive_pattern.lastIndex = 0;
507
+ for (var t = this.__directive_pattern.exec(u); t; )
508
+ i[t[1]] = t[2], t = this.__directive_pattern.exec(u);
509
+ return i;
510
+ }, e.prototype.readIgnored = function(u) {
511
+ return u.readUntilAfter(this.__directives_end_ignore_pattern);
512
+ }, Ve.Directives = e, Ve;
513
+ }
514
+ var Me = {}, yt;
515
+ function Mt() {
516
+ if (yt) return Me;
517
+ yt = 1;
518
+ var e = Te().Pattern, u = {
519
+ django: !1,
520
+ erb: !1,
521
+ handlebars: !1,
522
+ php: !1,
523
+ smarty: !1,
524
+ angular: !1
525
+ };
526
+ function i(t, a) {
527
+ e.call(this, t, a), this.__template_pattern = null, this._disabled = Object.assign({}, u), this._excluded = Object.assign({}, u), a && (this.__template_pattern = this._input.get_regexp(a.__template_pattern), this._excluded = Object.assign(this._excluded, a._excluded), this._disabled = Object.assign(this._disabled, a._disabled));
528
+ var n = new e(t);
529
+ this.__patterns = {
530
+ handlebars_comment: n.starting_with(/{{!--/).until_after(/--}}/),
531
+ handlebars_unescaped: n.starting_with(/{{{/).until_after(/}}}/),
532
+ handlebars: n.starting_with(/{{/).until_after(/}}/),
533
+ php: n.starting_with(/<\?(?:[= ]|php)/).until_after(/\?>/),
534
+ erb: n.starting_with(/<%[^%]/).until_after(/[^%]%>/),
535
+ // django coflicts with handlebars a bit.
536
+ django: n.starting_with(/{%/).until_after(/%}/),
537
+ django_value: n.starting_with(/{{/).until_after(/}}/),
538
+ django_comment: n.starting_with(/{#/).until_after(/#}/),
539
+ smarty: n.starting_with(/{(?=[^}{\s\n])/).until_after(/[^\s\n]}/),
540
+ smarty_comment: n.starting_with(/{\*/).until_after(/\*}/),
541
+ smarty_literal: n.starting_with(/{literal}/).until_after(/{\/literal}/)
542
+ };
543
+ }
544
+ return i.prototype = new e(), i.prototype._create = function() {
545
+ return new i(this._input, this);
546
+ }, i.prototype._update = function() {
547
+ this.__set_templated_pattern();
548
+ }, i.prototype.disable = function(t) {
549
+ var a = this._create();
550
+ return a._disabled[t] = !0, a._update(), a;
551
+ }, i.prototype.read_options = function(t) {
552
+ var a = this._create();
553
+ for (var n in u)
554
+ a._disabled[n] = t.templating.indexOf(n) === -1;
555
+ return a._update(), a;
556
+ }, i.prototype.exclude = function(t) {
557
+ var a = this._create();
558
+ return a._excluded[t] = !0, a._update(), a;
559
+ }, i.prototype.read = function() {
560
+ var t = "";
561
+ this._match_pattern ? t = this._input.read(this._starting_pattern) : t = this._input.read(this._starting_pattern, this.__template_pattern);
562
+ for (var a = this._read_template(); a; )
563
+ this._match_pattern ? a += this._input.read(this._match_pattern) : a += this._input.readUntil(this.__template_pattern), t += a, a = this._read_template();
564
+ return this._until_after && (t += this._input.readUntilAfter(this._until_pattern)), t;
565
+ }, i.prototype.__set_templated_pattern = function() {
566
+ var t = [];
567
+ this._disabled.php || t.push(this.__patterns.php._starting_pattern.source), this._disabled.handlebars || t.push(this.__patterns.handlebars._starting_pattern.source), this._disabled.angular || t.push(this.__patterns.handlebars._starting_pattern.source), this._disabled.erb || t.push(this.__patterns.erb._starting_pattern.source), this._disabled.django || (t.push(this.__patterns.django._starting_pattern.source), t.push(this.__patterns.django_value._starting_pattern.source), t.push(this.__patterns.django_comment._starting_pattern.source)), this._disabled.smarty || t.push(this.__patterns.smarty._starting_pattern.source), this._until_pattern && t.push(this._until_pattern.source), this.__template_pattern = this._input.get_regexp("(?:" + t.join("|") + ")");
568
+ }, i.prototype._read_template = function() {
569
+ var t = "", a = this._input.peek();
570
+ if (a === "<") {
571
+ var n = this._input.peek(1);
572
+ !this._disabled.php && !this._excluded.php && n === "?" && (t = t || this.__patterns.php.read()), !this._disabled.erb && !this._excluded.erb && n === "%" && (t = t || this.__patterns.erb.read());
573
+ } else a === "{" && (!this._disabled.handlebars && !this._excluded.handlebars && (t = t || this.__patterns.handlebars_comment.read(), t = t || this.__patterns.handlebars_unescaped.read(), t = t || this.__patterns.handlebars.read()), this._disabled.django || (!this._excluded.django && !this._excluded.handlebars && (t = t || this.__patterns.django_value.read()), this._excluded.django || (t = t || this.__patterns.django_comment.read(), t = t || this.__patterns.django.read())), this._disabled.smarty || this._disabled.django && this._disabled.handlebars && (t = t || this.__patterns.smarty_comment.read(), t = t || this.__patterns.smarty_literal.read(), t = t || this.__patterns.smarty.read()));
574
+ return t;
575
+ }, Me.TemplatablePattern = i, Me;
576
+ }
577
+ var xt;
578
+ function Ee() {
579
+ if (xt) return re;
580
+ xt = 1;
581
+ var e = it().InputScanner, u = Be().Tokenizer, i = Be().TOKEN, t = at().Directives, a = jt(), n = Te().Pattern, c = Mt().TemplatablePattern;
582
+ function o(m, v) {
583
+ return v.indexOf(m) !== -1;
584
+ }
585
+ var l = {
586
+ START_EXPR: "TK_START_EXPR",
587
+ END_EXPR: "TK_END_EXPR",
588
+ START_BLOCK: "TK_START_BLOCK",
589
+ END_BLOCK: "TK_END_BLOCK",
590
+ WORD: "TK_WORD",
591
+ RESERVED: "TK_RESERVED",
592
+ SEMICOLON: "TK_SEMICOLON",
593
+ STRING: "TK_STRING",
594
+ EQUALS: "TK_EQUALS",
595
+ OPERATOR: "TK_OPERATOR",
596
+ COMMA: "TK_COMMA",
597
+ BLOCK_COMMENT: "TK_BLOCK_COMMENT",
598
+ COMMENT: "TK_COMMENT",
599
+ DOT: "TK_DOT",
600
+ UNKNOWN: "TK_UNKNOWN",
601
+ START: i.START,
602
+ RAW: i.RAW,
603
+ EOF: i.EOF
604
+ }, b = new t(/\/\*/, /\*\//), d = /0[xX][0123456789abcdefABCDEF_]*n?|0[oO][01234567_]*n?|0[bB][01_]*n?|\d[\d_]*n|(?:\.\d[\d_]*|\d[\d_]*\.?[\d_]*)(?:[eE][+-]?[\d_]+)?/, g = /[0-9]/, E = /[^\d\.]/, R = ">>> === !== &&= ??= ||= << && >= ** != == <= >> || ?? |> < / - + > : & % ? ^ | *".split(" "), q = ">>>= ... >>= <<= === >>> !== **= &&= ??= ||= => ^= :: /= << <= == && -= >= >> != -- += ** || ?? ++ %= &= *= |= |> = ! ? > < : / ^ - + * & % ~ |";
605
+ q = q.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&"), q = "\\?\\.(?!\\d) " + q, q = q.replace(/ /g, "|");
606
+ var N = new RegExp(q), _ = "continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export".split(","), s = _.concat(["do", "in", "of", "else", "get", "set", "new", "catch", "finally", "typeof", "yield", "async", "await", "from", "as", "class", "extends"]), h = new RegExp("^(?:" + s.join("|") + ")$"), T, y = function(m, v) {
607
+ u.call(this, m, v), this._patterns.whitespace = this._patterns.whitespace.matching(
608
+ /\u00A0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff/.source,
609
+ /\u2028\u2029/.source
610
+ );
611
+ var f = new n(this._input), C = new c(this._input).read_options(this._options);
612
+ this.__patterns = {
613
+ template: C,
614
+ identifier: C.starting_with(a.identifier).matching(a.identifierMatch),
615
+ number: f.matching(d),
616
+ punct: f.matching(N),
617
+ // comment ends just before nearest linefeed or end of file
618
+ comment: f.starting_with(/\/\//).until(/[\n\r\u2028\u2029]/),
619
+ // /* ... */ comment ends with nearest */ or end of file
620
+ block_comment: f.starting_with(/\/\*/).until_after(/\*\//),
621
+ html_comment_start: f.matching(/<!--/),
622
+ html_comment_end: f.matching(/-->/),
623
+ include: f.starting_with(/#include/).until_after(a.lineBreak),
624
+ shebang: f.starting_with(/#!/).until_after(a.lineBreak),
625
+ xml: f.matching(/[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[^}]+?}|!\[CDATA\[[^\]]*?\]\]|)(\s*{[^}]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{([^{}]|{[^}]+?})+?}))*\s*(\/?)\s*>/),
626
+ single_quote: C.until(/['\\\n\r\u2028\u2029]/),
627
+ double_quote: C.until(/["\\\n\r\u2028\u2029]/),
628
+ template_text: C.until(/[`\\$]/),
629
+ template_expression: C.until(/[`}\\]/)
630
+ };
631
+ };
632
+ y.prototype = new u(), y.prototype._is_comment = function(m) {
633
+ return m.type === l.COMMENT || m.type === l.BLOCK_COMMENT || m.type === l.UNKNOWN;
634
+ }, y.prototype._is_opening = function(m) {
635
+ return m.type === l.START_BLOCK || m.type === l.START_EXPR;
636
+ }, y.prototype._is_closing = function(m, v) {
637
+ return (m.type === l.END_BLOCK || m.type === l.END_EXPR) && v && (m.text === "]" && v.text === "[" || m.text === ")" && v.text === "(" || m.text === "}" && v.text === "{");
638
+ }, y.prototype._reset = function() {
639
+ T = !1;
640
+ }, y.prototype._get_next_token = function(m, v) {
641
+ var f = null;
642
+ this._readWhitespace();
643
+ var C = this._input.peek();
644
+ return C === null ? this._create_token(l.EOF, "") : (f = f || this._read_non_javascript(C), f = f || this._read_string(C), f = f || this._read_pair(C, this._input.peek(1)), f = f || this._read_word(m), f = f || this._read_singles(C), f = f || this._read_comment(C), f = f || this._read_regexp(C, m), f = f || this._read_xml(C, m), f = f || this._read_punctuation(), f = f || this._create_token(l.UNKNOWN, this._input.next()), f);
645
+ }, y.prototype._read_word = function(m) {
646
+ var v;
647
+ if (v = this.__patterns.identifier.read(), v !== "")
648
+ return v = v.replace(a.allLineBreaks, `
649
+ `), !(m.type === l.DOT || m.type === l.RESERVED && (m.text === "set" || m.text === "get")) && h.test(v) ? (v === "in" || v === "of") && (m.type === l.WORD || m.type === l.STRING) ? this._create_token(l.OPERATOR, v) : this._create_token(l.RESERVED, v) : this._create_token(l.WORD, v);
650
+ if (v = this.__patterns.number.read(), v !== "")
651
+ return this._create_token(l.WORD, v);
652
+ }, y.prototype._read_singles = function(m) {
653
+ var v = null;
654
+ return m === "(" || m === "[" ? v = this._create_token(l.START_EXPR, m) : m === ")" || m === "]" ? v = this._create_token(l.END_EXPR, m) : m === "{" ? v = this._create_token(l.START_BLOCK, m) : m === "}" ? v = this._create_token(l.END_BLOCK, m) : m === ";" ? v = this._create_token(l.SEMICOLON, m) : m === "." && E.test(this._input.peek(1)) ? v = this._create_token(l.DOT, m) : m === "," && (v = this._create_token(l.COMMA, m)), v && this._input.next(), v;
655
+ }, y.prototype._read_pair = function(m, v) {
656
+ var f = null;
657
+ return m === "#" && v === "{" && (f = this._create_token(l.START_BLOCK, m + v)), f && (this._input.next(), this._input.next()), f;
658
+ }, y.prototype._read_punctuation = function() {
659
+ var m = this.__patterns.punct.read();
660
+ if (m !== "")
661
+ return m === "=" ? this._create_token(l.EQUALS, m) : m === "?." ? this._create_token(l.DOT, m) : this._create_token(l.OPERATOR, m);
662
+ }, y.prototype._read_non_javascript = function(m) {
663
+ var v = "";
664
+ if (m === "#") {
665
+ if (this._is_first_token() && (v = this.__patterns.shebang.read(), v))
666
+ return this._create_token(l.UNKNOWN, v.trim() + `
667
+ `);
668
+ if (v = this.__patterns.include.read(), v)
669
+ return this._create_token(l.UNKNOWN, v.trim() + `
670
+ `);
671
+ m = this._input.next();
672
+ var f = "#";
673
+ if (this._input.hasNext() && this._input.testChar(g)) {
674
+ do
675
+ m = this._input.next(), f += m;
676
+ while (this._input.hasNext() && m !== "#" && m !== "=");
677
+ return m === "#" || (this._input.peek() === "[" && this._input.peek(1) === "]" ? (f += "[]", this._input.next(), this._input.next()) : this._input.peek() === "{" && this._input.peek(1) === "}" && (f += "{}", this._input.next(), this._input.next())), this._create_token(l.WORD, f);
678
+ }
679
+ this._input.back();
680
+ } else if (m === "<" && this._is_first_token()) {
681
+ if (v = this.__patterns.html_comment_start.read(), v) {
682
+ for (; this._input.hasNext() && !this._input.testChar(a.newline); )
683
+ v += this._input.next();
684
+ return T = !0, this._create_token(l.COMMENT, v);
685
+ }
686
+ } else if (T && m === "-" && (v = this.__patterns.html_comment_end.read(), v))
687
+ return T = !1, this._create_token(l.COMMENT, v);
688
+ return null;
689
+ }, y.prototype._read_comment = function(m) {
690
+ var v = null;
691
+ if (m === "/") {
692
+ var f = "";
693
+ if (this._input.peek(1) === "*") {
694
+ f = this.__patterns.block_comment.read();
695
+ var C = b.get_directives(f);
696
+ C && C.ignore === "start" && (f += b.readIgnored(this._input)), f = f.replace(a.allLineBreaks, `
697
+ `), v = this._create_token(l.BLOCK_COMMENT, f), v.directives = C;
698
+ } else this._input.peek(1) === "/" && (f = this.__patterns.comment.read(), v = this._create_token(l.COMMENT, f));
699
+ }
700
+ return v;
701
+ }, y.prototype._read_string = function(m) {
702
+ if (m === "`" || m === "'" || m === '"') {
703
+ var v = this._input.next();
704
+ return this.has_char_escapes = !1, m === "`" ? v += this._read_string_recursive("`", !0, "${") : v += this._read_string_recursive(m), this.has_char_escapes && this._options.unescape_strings && (v = O(v)), this._input.peek() === m && (v += this._input.next()), v = v.replace(a.allLineBreaks, `
705
+ `), this._create_token(l.STRING, v);
706
+ }
707
+ return null;
708
+ }, y.prototype._allow_regexp_or_xml = function(m) {
709
+ return m.type === l.RESERVED && o(m.text, ["return", "case", "throw", "else", "do", "typeof", "yield"]) || m.type === l.END_EXPR && m.text === ")" && m.opened.previous.type === l.RESERVED && o(m.opened.previous.text, ["if", "while", "for"]) || o(m.type, [
710
+ l.COMMENT,
711
+ l.START_EXPR,
712
+ l.START_BLOCK,
713
+ l.START,
714
+ l.END_BLOCK,
715
+ l.OPERATOR,
716
+ l.EQUALS,
717
+ l.EOF,
718
+ l.SEMICOLON,
719
+ l.COMMA
720
+ ]);
721
+ }, y.prototype._read_regexp = function(m, v) {
722
+ if (m === "/" && this._allow_regexp_or_xml(v)) {
723
+ for (var f = this._input.next(), C = !1, r = !1; this._input.hasNext() && (C || r || this._input.peek() !== m) && !this._input.testChar(a.newline); )
724
+ f += this._input.peek(), C ? C = !1 : (C = this._input.peek() === "\\", this._input.peek() === "[" ? r = !0 : this._input.peek() === "]" && (r = !1)), this._input.next();
725
+ return this._input.peek() === m && (f += this._input.next(), f += this._input.read(a.identifier)), this._create_token(l.STRING, f);
726
+ }
727
+ return null;
728
+ }, y.prototype._read_xml = function(m, v) {
729
+ if (this._options.e4x && m === "<" && this._allow_regexp_or_xml(v)) {
730
+ var f = "", C = this.__patterns.xml.read_match();
731
+ if (C) {
732
+ for (var r = C[2].replace(/^{\s+/, "{").replace(/\s+}$/, "}"), D = r.indexOf("{") === 0, A = 0; C; ) {
733
+ var w = !!C[1], k = C[2], L = !!C[C.length - 1] || k.slice(0, 8) === "![CDATA[";
734
+ if (!L && (k === r || D && k.replace(/^{\s+/, "{").replace(/\s+}$/, "}")) && (w ? --A : ++A), f += C[0], A <= 0)
735
+ break;
736
+ C = this.__patterns.xml.read_match();
737
+ }
738
+ return C || (f += this._input.match(/[\s\S]*/g)[0]), f = f.replace(a.allLineBreaks, `
739
+ `), this._create_token(l.STRING, f);
740
+ }
741
+ }
742
+ return null;
743
+ };
744
+ function O(m) {
745
+ for (var v = "", f = 0, C = new e(m), r = null; C.hasNext(); )
746
+ if (r = C.match(/([\s]|[^\\]|\\\\)+/g), r && (v += r[0]), C.peek() === "\\") {
747
+ if (C.next(), C.peek() === "x")
748
+ r = C.match(/x([0-9A-Fa-f]{2})/g);
749
+ else if (C.peek() === "u")
750
+ r = C.match(/u([0-9A-Fa-f]{4})/g), r || (r = C.match(/u\{([0-9A-Fa-f]+)\}/g));
751
+ else {
752
+ v += "\\", C.hasNext() && (v += C.next());
753
+ continue;
754
+ }
755
+ if (!r || (f = parseInt(r[1], 16), f > 126 && f <= 255 && r[0].indexOf("x") === 0))
756
+ return m;
757
+ f >= 0 && f < 32 || f > 1114111 ? v += "\\" + r[0] : f === 34 || f === 39 || f === 92 ? v += "\\" + String.fromCharCode(f) : v += String.fromCharCode(f);
758
+ }
759
+ return v;
760
+ }
761
+ return y.prototype._read_string_recursive = function(m, v, f) {
762
+ var C, r;
763
+ m === "'" ? r = this.__patterns.single_quote : m === '"' ? r = this.__patterns.double_quote : m === "`" ? r = this.__patterns.template_text : m === "}" && (r = this.__patterns.template_expression);
764
+ for (var D = r.read(), A = ""; this._input.hasNext(); ) {
765
+ if (A = this._input.next(), A === m || !v && a.newline.test(A)) {
766
+ this._input.back();
767
+ break;
768
+ } else A === "\\" && this._input.hasNext() ? (C = this._input.peek(), C === "x" || C === "u" ? this.has_char_escapes = !0 : C === "\r" && this._input.peek(1) === `
769
+ ` && this._input.next(), A += this._input.next()) : f && (f === "${" && A === "$" && this._input.peek() === "{" && (A += this._input.next()), f === A && (m === "`" ? A += this._read_string_recursive("}", v, "`") : A += this._read_string_recursive("`", v, "${"), this._input.hasNext() && (A += this._input.next())));
770
+ A += r.read(), D += A;
771
+ }
772
+ return D;
773
+ }, re.Tokenizer = y, re.TOKEN = l, re.positionable_operators = R.slice(), re.line_starters = _.slice(), re;
774
+ }
775
+ var Ct;
776
+ function Eu() {
777
+ if (Ct) return Re;
778
+ Ct = 1;
779
+ var e = ut().Output, u = Ut().Token, i = jt(), t = Vt().Options, a = Ee().Tokenizer, n = Ee().line_starters, c = Ee().positionable_operators, o = Ee().TOKEN;
780
+ function l(r, D) {
781
+ return D.indexOf(r) !== -1;
782
+ }
783
+ function b(r) {
784
+ return r.replace(/^\s+/g, "");
785
+ }
786
+ function d(r) {
787
+ for (var D = {}, A = 0; A < r.length; A++)
788
+ D[r[A].replace(/-/g, "_")] = r[A];
789
+ return D;
790
+ }
791
+ function g(r, D) {
792
+ return r && r.type === o.RESERVED && r.text === D;
793
+ }
794
+ function E(r, D) {
795
+ return r && r.type === o.RESERVED && l(r.text, D);
796
+ }
797
+ var R = ["case", "return", "do", "if", "throw", "else", "await", "break", "continue", "async"], q = ["before-newline", "after-newline", "preserve-newline"], N = d(q), _ = [N.before_newline, N.preserve_newline], s = {
798
+ BlockStatement: "BlockStatement",
799
+ // 'BLOCK'
800
+ Statement: "Statement",
801
+ // 'STATEMENT'
802
+ ObjectLiteral: "ObjectLiteral",
803
+ // 'OBJECT',
804
+ ArrayLiteral: "ArrayLiteral",
805
+ //'[EXPRESSION]',
806
+ ForInitializer: "ForInitializer",
807
+ //'(FOR-EXPRESSION)',
808
+ Conditional: "Conditional",
809
+ //'(COND-EXPRESSION)',
810
+ Expression: "Expression"
811
+ //'(EXPRESSION)'
812
+ };
813
+ function h(r, D) {
814
+ D.multiline_frame || D.mode === s.ForInitializer || D.mode === s.Conditional || r.remove_indent(D.start_line_index);
815
+ }
816
+ function T(r) {
817
+ r = r.replace(i.allLineBreaks, `
818
+ `);
819
+ for (var D = [], A = r.indexOf(`
820
+ `); A !== -1; )
821
+ D.push(r.substring(0, A)), r = r.substring(A + 1), A = r.indexOf(`
822
+ `);
823
+ return r.length && D.push(r), D;
824
+ }
825
+ function y(r) {
826
+ return r === s.ArrayLiteral;
827
+ }
828
+ function O(r) {
829
+ return l(r, [s.Expression, s.ForInitializer, s.Conditional]);
830
+ }
831
+ function m(r, D) {
832
+ for (var A = 0; A < r.length; A++) {
833
+ var w = r[A].trim();
834
+ if (w.charAt(0) !== D)
835
+ return !1;
836
+ }
837
+ return !0;
838
+ }
839
+ function v(r, D) {
840
+ for (var A = 0, w = r.length, k; A < w; A++)
841
+ if (k = r[A], k && k.indexOf(D) !== 0)
842
+ return !1;
843
+ return !0;
844
+ }
845
+ function f(r, D) {
846
+ D = D || {}, this._source_text = r || "", this._output = null, this._tokens = null, this._last_last_text = null, this._flags = null, this._previous_flags = null, this._flag_store = null, this._options = new t(D);
847
+ }
848
+ f.prototype.create_flags = function(r, D) {
849
+ var A = 0;
850
+ r && (A = r.indentation_level, !this._output.just_added_newline() && r.line_indent_level > A && (A = r.line_indent_level));
851
+ var w = {
852
+ mode: D,
853
+ parent: r,
854
+ last_token: r ? r.last_token : new u(o.START_BLOCK, ""),
855
+ // last token text
856
+ last_word: r ? r.last_word : "",
857
+ // last TOKEN.WORD passed
858
+ declaration_statement: !1,
859
+ declaration_assignment: !1,
860
+ multiline_frame: !1,
861
+ inline_frame: !1,
862
+ if_block: !1,
863
+ else_block: !1,
864
+ class_start_block: !1,
865
+ // class A { INSIDE HERE } or class B extends C { INSIDE HERE }
866
+ do_block: !1,
867
+ do_while: !1,
868
+ import_block: !1,
869
+ in_case_statement: !1,
870
+ // switch(..){ INSIDE HERE }
871
+ in_case: !1,
872
+ // we're on the exact line with "case 0:"
873
+ case_body: !1,
874
+ // the indented case-action block
875
+ case_block: !1,
876
+ // the indented case-action block is wrapped with {}
877
+ indentation_level: A,
878
+ alignment: 0,
879
+ line_indent_level: r ? r.line_indent_level : A,
880
+ start_line_index: this._output.get_line_number(),
881
+ ternary_depth: 0
882
+ };
883
+ return w;
884
+ }, f.prototype._reset = function(r) {
885
+ var D = r.match(/^[\t ]*/)[0];
886
+ this._last_last_text = "", this._output = new e(this._options, D), this._output.raw = this._options.test_output_raw, this._flag_store = [], this.set_mode(s.BlockStatement);
887
+ var A = new a(r, this._options);
888
+ return this._tokens = A.tokenize(), r;
889
+ }, f.prototype.beautify = function() {
890
+ if (this._options.disabled)
891
+ return this._source_text;
892
+ var r, D = this._reset(this._source_text), A = this._options.eol;
893
+ this._options.eol === "auto" && (A = `
894
+ `, D && i.lineBreak.test(D || "") && (A = D.match(i.lineBreak)[0]));
895
+ for (var w = this._tokens.next(); w; )
896
+ this.handle_token(w), this._last_last_text = this._flags.last_token.text, this._flags.last_token = w, w = this._tokens.next();
897
+ return r = this._output.get_code(A), r;
898
+ }, f.prototype.handle_token = function(r, D) {
899
+ r.type === o.START_EXPR ? this.handle_start_expr(r) : r.type === o.END_EXPR ? this.handle_end_expr(r) : r.type === o.START_BLOCK ? this.handle_start_block(r) : r.type === o.END_BLOCK ? this.handle_end_block(r) : r.type === o.WORD ? this.handle_word(r) : r.type === o.RESERVED ? this.handle_word(r) : r.type === o.SEMICOLON ? this.handle_semicolon(r) : r.type === o.STRING ? this.handle_string(r) : r.type === o.EQUALS ? this.handle_equals(r) : r.type === o.OPERATOR ? this.handle_operator(r) : r.type === o.COMMA ? this.handle_comma(r) : r.type === o.BLOCK_COMMENT ? this.handle_block_comment(r, D) : r.type === o.COMMENT ? this.handle_comment(r, D) : r.type === o.DOT ? this.handle_dot(r) : r.type === o.EOF ? this.handle_eof(r) : r.type === o.UNKNOWN ? this.handle_unknown(r, D) : this.handle_unknown(r, D);
900
+ }, f.prototype.handle_whitespace_and_comments = function(r, D) {
901
+ var A = r.newlines, w = this._options.keep_array_indentation && y(this._flags.mode);
902
+ if (r.comments_before)
903
+ for (var k = r.comments_before.next(); k; )
904
+ this.handle_whitespace_and_comments(k, D), this.handle_token(k, D), k = r.comments_before.next();
905
+ if (w)
906
+ for (var L = 0; L < A; L += 1)
907
+ this.print_newline(L > 0, D);
908
+ else if (this._options.max_preserve_newlines && A > this._options.max_preserve_newlines && (A = this._options.max_preserve_newlines), this._options.preserve_newlines && A > 1) {
909
+ this.print_newline(!1, D);
910
+ for (var U = 1; U < A; U += 1)
911
+ this.print_newline(!0, D);
912
+ }
913
+ };
914
+ var C = ["async", "break", "continue", "return", "throw", "yield"];
915
+ return f.prototype.allow_wrap_or_preserved_newline = function(r, D) {
916
+ if (D = D === void 0 ? !1 : D, !this._output.just_added_newline()) {
917
+ var A = this._options.preserve_newlines && r.newlines || D, w = l(this._flags.last_token.text, c) || l(r.text, c);
918
+ if (w) {
919
+ var k = l(this._flags.last_token.text, c) && l(this._options.operator_position, _) || l(r.text, c);
920
+ A = A && k;
921
+ }
922
+ if (A)
923
+ this.print_newline(!1, !0);
924
+ else if (this._options.wrap_line_length) {
925
+ if (E(this._flags.last_token, C))
926
+ return;
927
+ this._output.set_wrap_point();
928
+ }
929
+ }
930
+ }, f.prototype.print_newline = function(r, D) {
931
+ if (!D && this._flags.last_token.text !== ";" && this._flags.last_token.text !== "," && this._flags.last_token.text !== "=" && (this._flags.last_token.type !== o.OPERATOR || this._flags.last_token.text === "--" || this._flags.last_token.text === "++"))
932
+ for (var A = this._tokens.peek(); this._flags.mode === s.Statement && !(this._flags.if_block && g(A, "else")) && !this._flags.do_block; )
933
+ this.restore_mode();
934
+ this._output.add_new_line(r) && (this._flags.multiline_frame = !0);
935
+ }, f.prototype.print_token_line_indentation = function(r) {
936
+ this._output.just_added_newline() && (this._options.keep_array_indentation && r.newlines && (r.text === "[" || y(this._flags.mode)) ? (this._output.current_line.set_indent(-1), this._output.current_line.push(r.whitespace_before), this._output.space_before_token = !1) : this._output.set_indent(this._flags.indentation_level, this._flags.alignment) && (this._flags.line_indent_level = this._flags.indentation_level));
937
+ }, f.prototype.print_token = function(r) {
938
+ if (this._output.raw) {
939
+ this._output.add_raw_token(r);
940
+ return;
941
+ }
942
+ if (this._options.comma_first && r.previous && r.previous.type === o.COMMA && this._output.just_added_newline() && this._output.previous_line.last() === ",") {
943
+ var D = this._output.previous_line.pop();
944
+ this._output.previous_line.is_empty() && (this._output.previous_line.push(D), this._output.trim(!0), this._output.current_line.pop(), this._output.trim()), this.print_token_line_indentation(r), this._output.add_token(","), this._output.space_before_token = !0;
945
+ }
946
+ this.print_token_line_indentation(r), this._output.non_breaking_space = !0, this._output.add_token(r.text), this._output.previous_token_wrapped && (this._flags.multiline_frame = !0);
947
+ }, f.prototype.indent = function() {
948
+ this._flags.indentation_level += 1, this._output.set_indent(this._flags.indentation_level, this._flags.alignment);
949
+ }, f.prototype.deindent = function() {
950
+ this._flags.indentation_level > 0 && (!this._flags.parent || this._flags.indentation_level > this._flags.parent.indentation_level) && (this._flags.indentation_level -= 1, this._output.set_indent(this._flags.indentation_level, this._flags.alignment));
951
+ }, f.prototype.set_mode = function(r) {
952
+ this._flags ? (this._flag_store.push(this._flags), this._previous_flags = this._flags) : this._previous_flags = this.create_flags(null, r), this._flags = this.create_flags(this._previous_flags, r), this._output.set_indent(this._flags.indentation_level, this._flags.alignment);
953
+ }, f.prototype.restore_mode = function() {
954
+ this._flag_store.length > 0 && (this._previous_flags = this._flags, this._flags = this._flag_store.pop(), this._previous_flags.mode === s.Statement && h(this._output, this._previous_flags), this._output.set_indent(this._flags.indentation_level, this._flags.alignment));
955
+ }, f.prototype.start_of_object_property = function() {
956
+ return this._flags.parent.mode === s.ObjectLiteral && this._flags.mode === s.Statement && (this._flags.last_token.text === ":" && this._flags.ternary_depth === 0 || E(this._flags.last_token, ["get", "set"]));
957
+ }, f.prototype.start_of_statement = function(r) {
958
+ var D = !1;
959
+ return D = D || E(this._flags.last_token, ["var", "let", "const"]) && r.type === o.WORD, D = D || g(this._flags.last_token, "do"), D = D || !(this._flags.parent.mode === s.ObjectLiteral && this._flags.mode === s.Statement) && E(this._flags.last_token, C) && !r.newlines, D = D || g(this._flags.last_token, "else") && !(g(r, "if") && !r.comments_before), D = D || this._flags.last_token.type === o.END_EXPR && (this._previous_flags.mode === s.ForInitializer || this._previous_flags.mode === s.Conditional), D = D || this._flags.last_token.type === o.WORD && this._flags.mode === s.BlockStatement && !this._flags.in_case && !(r.text === "--" || r.text === "++") && this._last_last_text !== "function" && r.type !== o.WORD && r.type !== o.RESERVED, D = D || this._flags.mode === s.ObjectLiteral && (this._flags.last_token.text === ":" && this._flags.ternary_depth === 0 || E(this._flags.last_token, ["get", "set"])), D ? (this.set_mode(s.Statement), this.indent(), this.handle_whitespace_and_comments(r, !0), this.start_of_object_property() || this.allow_wrap_or_preserved_newline(
960
+ r,
961
+ E(r, ["do", "for", "if", "while"])
962
+ ), !0) : !1;
963
+ }, f.prototype.handle_start_expr = function(r) {
964
+ this.start_of_statement(r) || this.handle_whitespace_and_comments(r);
965
+ var D = s.Expression;
966
+ if (r.text === "[") {
967
+ if (this._flags.last_token.type === o.WORD || this._flags.last_token.text === ")") {
968
+ E(this._flags.last_token, n) && (this._output.space_before_token = !0), this.print_token(r), this.set_mode(D), this.indent(), this._options.space_in_paren && (this._output.space_before_token = !0);
969
+ return;
970
+ }
971
+ D = s.ArrayLiteral, y(this._flags.mode) && (this._flags.last_token.text === "[" || this._flags.last_token.text === "," && (this._last_last_text === "]" || this._last_last_text === "}")) && (this._options.keep_array_indentation || this.print_newline()), l(this._flags.last_token.type, [o.START_EXPR, o.END_EXPR, o.WORD, o.OPERATOR, o.DOT]) || (this._output.space_before_token = !0);
972
+ } else {
973
+ if (this._flags.last_token.type === o.RESERVED)
974
+ this._flags.last_token.text === "for" ? (this._output.space_before_token = this._options.space_before_conditional, D = s.ForInitializer) : l(this._flags.last_token.text, ["if", "while", "switch"]) ? (this._output.space_before_token = this._options.space_before_conditional, D = s.Conditional) : l(this._flags.last_word, ["await", "async"]) ? this._output.space_before_token = !0 : this._flags.last_token.text === "import" && r.whitespace_before === "" ? this._output.space_before_token = !1 : (l(this._flags.last_token.text, n) || this._flags.last_token.text === "catch") && (this._output.space_before_token = !0);
975
+ else if (this._flags.last_token.type === o.EQUALS || this._flags.last_token.type === o.OPERATOR)
976
+ this.start_of_object_property() || this.allow_wrap_or_preserved_newline(r);
977
+ else if (this._flags.last_token.type === o.WORD) {
978
+ this._output.space_before_token = !1;
979
+ var A = this._tokens.peek(-3);
980
+ if (this._options.space_after_named_function && A) {
981
+ var w = this._tokens.peek(-4);
982
+ E(A, ["async", "function"]) || A.text === "*" && E(w, ["async", "function"]) ? this._output.space_before_token = !0 : this._flags.mode === s.ObjectLiteral ? (A.text === "{" || A.text === "," || A.text === "*" && (w.text === "{" || w.text === ",")) && (this._output.space_before_token = !0) : this._flags.parent && this._flags.parent.class_start_block && (this._output.space_before_token = !0);
983
+ }
984
+ } else
985
+ this.allow_wrap_or_preserved_newline(r);
986
+ (this._flags.last_token.type === o.RESERVED && (this._flags.last_word === "function" || this._flags.last_word === "typeof") || this._flags.last_token.text === "*" && (l(this._last_last_text, ["function", "yield"]) || this._flags.mode === s.ObjectLiteral && l(this._last_last_text, ["{", ","]))) && (this._output.space_before_token = this._options.space_after_anon_function);
987
+ }
988
+ this._flags.last_token.text === ";" || this._flags.last_token.type === o.START_BLOCK ? this.print_newline() : (this._flags.last_token.type === o.END_EXPR || this._flags.last_token.type === o.START_EXPR || this._flags.last_token.type === o.END_BLOCK || this._flags.last_token.text === "." || this._flags.last_token.type === o.COMMA) && this.allow_wrap_or_preserved_newline(r, r.newlines), this.print_token(r), this.set_mode(D), this._options.space_in_paren && (this._output.space_before_token = !0), this.indent();
989
+ }, f.prototype.handle_end_expr = function(r) {
990
+ for (; this._flags.mode === s.Statement; )
991
+ this.restore_mode();
992
+ this.handle_whitespace_and_comments(r), this._flags.multiline_frame && this.allow_wrap_or_preserved_newline(
993
+ r,
994
+ r.text === "]" && y(this._flags.mode) && !this._options.keep_array_indentation
995
+ ), this._options.space_in_paren && (this._flags.last_token.type === o.START_EXPR && !this._options.space_in_empty_paren ? (this._output.trim(), this._output.space_before_token = !1) : this._output.space_before_token = !0), this.deindent(), this.print_token(r), this.restore_mode(), h(this._output, this._previous_flags), this._flags.do_while && this._previous_flags.mode === s.Conditional && (this._previous_flags.mode = s.Expression, this._flags.do_block = !1, this._flags.do_while = !1);
996
+ }, f.prototype.handle_start_block = function(r) {
997
+ this.handle_whitespace_and_comments(r);
998
+ var D = this._tokens.peek(), A = this._tokens.peek(1);
999
+ this._flags.last_word === "switch" && this._flags.last_token.type === o.END_EXPR ? (this.set_mode(s.BlockStatement), this._flags.in_case_statement = !0) : this._flags.case_body ? this.set_mode(s.BlockStatement) : A && (l(A.text, [":", ","]) && l(D.type, [o.STRING, o.WORD, o.RESERVED]) || l(D.text, ["get", "set", "..."]) && l(A.type, [o.WORD, o.RESERVED])) ? l(this._last_last_text, ["class", "interface"]) && !l(A.text, [":", ","]) ? this.set_mode(s.BlockStatement) : this.set_mode(s.ObjectLiteral) : this._flags.last_token.type === o.OPERATOR && this._flags.last_token.text === "=>" ? this.set_mode(s.BlockStatement) : l(this._flags.last_token.type, [o.EQUALS, o.START_EXPR, o.COMMA, o.OPERATOR]) || E(this._flags.last_token, ["return", "throw", "import", "default"]) ? this.set_mode(s.ObjectLiteral) : this.set_mode(s.BlockStatement), this._flags.last_token && E(this._flags.last_token.previous, ["class", "extends"]) && (this._flags.class_start_block = !0);
1000
+ var w = !D.comments_before && D.text === "}", k = w && this._flags.last_word === "function" && this._flags.last_token.type === o.END_EXPR;
1001
+ if (this._options.brace_preserve_inline) {
1002
+ var L = 0, U = null;
1003
+ this._flags.inline_frame = !0;
1004
+ do
1005
+ if (L += 1, U = this._tokens.peek(L - 1), U.newlines) {
1006
+ this._flags.inline_frame = !1;
1007
+ break;
1008
+ }
1009
+ while (U.type !== o.EOF && !(U.type === o.END_BLOCK && U.opened === r));
1010
+ }
1011
+ (this._options.brace_style === "expand" || this._options.brace_style === "none" && r.newlines) && !this._flags.inline_frame ? this._flags.last_token.type !== o.OPERATOR && (k || this._flags.last_token.type === o.EQUALS || E(this._flags.last_token, R) && this._flags.last_token.text !== "else") ? this._output.space_before_token = !0 : this.print_newline(!1, !0) : (y(this._previous_flags.mode) && (this._flags.last_token.type === o.START_EXPR || this._flags.last_token.type === o.COMMA) && ((this._flags.last_token.type === o.COMMA || this._options.space_in_paren) && (this._output.space_before_token = !0), (this._flags.last_token.type === o.COMMA || this._flags.last_token.type === o.START_EXPR && this._flags.inline_frame) && (this.allow_wrap_or_preserved_newline(r), this._previous_flags.multiline_frame = this._previous_flags.multiline_frame || this._flags.multiline_frame, this._flags.multiline_frame = !1)), this._flags.last_token.type !== o.OPERATOR && this._flags.last_token.type !== o.START_EXPR && (l(this._flags.last_token.type, [o.START_BLOCK, o.SEMICOLON]) && !this._flags.inline_frame ? this.print_newline() : this._output.space_before_token = !0)), this.print_token(r), this.indent(), !w && !(this._options.brace_preserve_inline && this._flags.inline_frame) && this.print_newline();
1012
+ }, f.prototype.handle_end_block = function(r) {
1013
+ for (this.handle_whitespace_and_comments(r); this._flags.mode === s.Statement; )
1014
+ this.restore_mode();
1015
+ var D = this._flags.last_token.type === o.START_BLOCK;
1016
+ this._flags.inline_frame && !D ? this._output.space_before_token = !0 : this._options.brace_style === "expand" ? D || this.print_newline() : D || (y(this._flags.mode) && this._options.keep_array_indentation ? (this._options.keep_array_indentation = !1, this.print_newline(), this._options.keep_array_indentation = !0) : this.print_newline()), this.restore_mode(), this.print_token(r);
1017
+ }, f.prototype.handle_word = function(r) {
1018
+ if (r.type === o.RESERVED) {
1019
+ if (l(r.text, ["set", "get"]) && this._flags.mode !== s.ObjectLiteral)
1020
+ r.type = o.WORD;
1021
+ else if (r.text === "import" && l(this._tokens.peek().text, ["(", "."]))
1022
+ r.type = o.WORD;
1023
+ else if (l(r.text, ["as", "from"]) && !this._flags.import_block)
1024
+ r.type = o.WORD;
1025
+ else if (this._flags.mode === s.ObjectLiteral) {
1026
+ var D = this._tokens.peek();
1027
+ D.text === ":" && (r.type = o.WORD);
1028
+ }
1029
+ }
1030
+ if (this.start_of_statement(r) ? E(this._flags.last_token, ["var", "let", "const"]) && r.type === o.WORD && (this._flags.declaration_statement = !0) : r.newlines && !O(this._flags.mode) && (this._flags.last_token.type !== o.OPERATOR || this._flags.last_token.text === "--" || this._flags.last_token.text === "++") && this._flags.last_token.type !== o.EQUALS && (this._options.preserve_newlines || !E(this._flags.last_token, ["var", "let", "const", "set", "get"])) ? (this.handle_whitespace_and_comments(r), this.print_newline()) : this.handle_whitespace_and_comments(r), this._flags.do_block && !this._flags.do_while)
1031
+ if (g(r, "while")) {
1032
+ this._output.space_before_token = !0, this.print_token(r), this._output.space_before_token = !0, this._flags.do_while = !0;
1033
+ return;
1034
+ } else
1035
+ this.print_newline(), this._flags.do_block = !1;
1036
+ if (this._flags.if_block)
1037
+ if (!this._flags.else_block && g(r, "else"))
1038
+ this._flags.else_block = !0;
1039
+ else {
1040
+ for (; this._flags.mode === s.Statement; )
1041
+ this.restore_mode();
1042
+ this._flags.if_block = !1, this._flags.else_block = !1;
1043
+ }
1044
+ if (this._flags.in_case_statement && E(r, ["case", "default"])) {
1045
+ this.print_newline(), !this._flags.case_block && (this._flags.case_body || this._options.jslint_happy) && this.deindent(), this._flags.case_body = !1, this.print_token(r), this._flags.in_case = !0;
1046
+ return;
1047
+ }
1048
+ if ((this._flags.last_token.type === o.COMMA || this._flags.last_token.type === o.START_EXPR || this._flags.last_token.type === o.EQUALS || this._flags.last_token.type === o.OPERATOR) && !this.start_of_object_property() && !// start of object property is different for numeric values with +/- prefix operators
1049
+ (l(this._flags.last_token.text, ["+", "-"]) && this._last_last_text === ":" && this._flags.parent.mode === s.ObjectLiteral) && this.allow_wrap_or_preserved_newline(r), g(r, "function")) {
1050
+ (l(this._flags.last_token.text, ["}", ";"]) || this._output.just_added_newline() && !(l(this._flags.last_token.text, ["(", "[", "{", ":", "=", ","]) || this._flags.last_token.type === o.OPERATOR)) && !this._output.just_added_blankline() && !r.comments_before && (this.print_newline(), this.print_newline(!0)), this._flags.last_token.type === o.RESERVED || this._flags.last_token.type === o.WORD ? E(this._flags.last_token, ["get", "set", "new", "export"]) || E(this._flags.last_token, C) ? this._output.space_before_token = !0 : g(this._flags.last_token, "default") && this._last_last_text === "export" ? this._output.space_before_token = !0 : this._flags.last_token.text === "declare" ? this._output.space_before_token = !0 : this.print_newline() : this._flags.last_token.type === o.OPERATOR || this._flags.last_token.text === "=" ? this._output.space_before_token = !0 : !this._flags.multiline_frame && (O(this._flags.mode) || y(this._flags.mode)) || this.print_newline(), this.print_token(r), this._flags.last_word = r.text;
1051
+ return;
1052
+ }
1053
+ var A = "NONE";
1054
+ if (this._flags.last_token.type === o.END_BLOCK ? this._previous_flags.inline_frame ? A = "SPACE" : E(r, ["else", "catch", "finally", "from"]) ? this._options.brace_style === "expand" || this._options.brace_style === "end-expand" || this._options.brace_style === "none" && r.newlines ? A = "NEWLINE" : (A = "SPACE", this._output.space_before_token = !0) : A = "NEWLINE" : this._flags.last_token.type === o.SEMICOLON && this._flags.mode === s.BlockStatement ? A = "NEWLINE" : this._flags.last_token.type === o.SEMICOLON && O(this._flags.mode) ? A = "SPACE" : this._flags.last_token.type === o.STRING ? A = "NEWLINE" : this._flags.last_token.type === o.RESERVED || this._flags.last_token.type === o.WORD || this._flags.last_token.text === "*" && (l(this._last_last_text, ["function", "yield"]) || this._flags.mode === s.ObjectLiteral && l(this._last_last_text, ["{", ","])) ? A = "SPACE" : this._flags.last_token.type === o.START_BLOCK ? this._flags.inline_frame ? A = "SPACE" : A = "NEWLINE" : this._flags.last_token.type === o.END_EXPR && (this._output.space_before_token = !0, A = "NEWLINE"), E(r, n) && this._flags.last_token.text !== ")" && (this._flags.inline_frame || this._flags.last_token.text === "else" || this._flags.last_token.text === "export" ? A = "SPACE" : A = "NEWLINE"), E(r, ["else", "catch", "finally"]))
1055
+ if ((!(this._flags.last_token.type === o.END_BLOCK && this._previous_flags.mode === s.BlockStatement) || this._options.brace_style === "expand" || this._options.brace_style === "end-expand" || this._options.brace_style === "none" && r.newlines) && !this._flags.inline_frame)
1056
+ this.print_newline();
1057
+ else {
1058
+ this._output.trim(!0);
1059
+ var w = this._output.current_line;
1060
+ w.last() !== "}" && this.print_newline(), this._output.space_before_token = !0;
1061
+ }
1062
+ else A === "NEWLINE" ? E(this._flags.last_token, R) ? this._output.space_before_token = !0 : this._flags.last_token.text === "declare" && E(r, ["var", "let", "const"]) ? this._output.space_before_token = !0 : this._flags.last_token.type !== o.END_EXPR ? (this._flags.last_token.type !== o.START_EXPR || !E(r, ["var", "let", "const"])) && this._flags.last_token.text !== ":" && (g(r, "if") && g(r.previous, "else") ? this._output.space_before_token = !0 : this.print_newline()) : E(r, n) && this._flags.last_token.text !== ")" && this.print_newline() : this._flags.multiline_frame && y(this._flags.mode) && this._flags.last_token.text === "," && this._last_last_text === "}" ? this.print_newline() : A === "SPACE" && (this._output.space_before_token = !0);
1063
+ r.previous && (r.previous.type === o.WORD || r.previous.type === o.RESERVED) && (this._output.space_before_token = !0), this.print_token(r), this._flags.last_word = r.text, r.type === o.RESERVED && (r.text === "do" ? this._flags.do_block = !0 : r.text === "if" ? this._flags.if_block = !0 : r.text === "import" ? this._flags.import_block = !0 : this._flags.import_block && g(r, "from") && (this._flags.import_block = !1));
1064
+ }, f.prototype.handle_semicolon = function(r) {
1065
+ this.start_of_statement(r) ? this._output.space_before_token = !1 : this.handle_whitespace_and_comments(r);
1066
+ for (var D = this._tokens.peek(); this._flags.mode === s.Statement && !(this._flags.if_block && g(D, "else")) && !this._flags.do_block; )
1067
+ this.restore_mode();
1068
+ this._flags.import_block && (this._flags.import_block = !1), this.print_token(r);
1069
+ }, f.prototype.handle_string = function(r) {
1070
+ r.text.startsWith("`") && r.newlines === 0 && r.whitespace_before === "" && (r.previous.text === ")" || this._flags.last_token.type === o.WORD) || (this.start_of_statement(r) ? this._output.space_before_token = !0 : (this.handle_whitespace_and_comments(r), this._flags.last_token.type === o.RESERVED || this._flags.last_token.type === o.WORD || this._flags.inline_frame ? this._output.space_before_token = !0 : this._flags.last_token.type === o.COMMA || this._flags.last_token.type === o.START_EXPR || this._flags.last_token.type === o.EQUALS || this._flags.last_token.type === o.OPERATOR ? this.start_of_object_property() || this.allow_wrap_or_preserved_newline(r) : r.text.startsWith("`") && this._flags.last_token.type === o.END_EXPR && (r.previous.text === "]" || r.previous.text === ")") && r.newlines === 0 ? this._output.space_before_token = !0 : this.print_newline())), this.print_token(r);
1071
+ }, f.prototype.handle_equals = function(r) {
1072
+ this.start_of_statement(r) || this.handle_whitespace_and_comments(r), this._flags.declaration_statement && (this._flags.declaration_assignment = !0), this._output.space_before_token = !0, this.print_token(r), this._output.space_before_token = !0;
1073
+ }, f.prototype.handle_comma = function(r) {
1074
+ this.handle_whitespace_and_comments(r, !0), this.print_token(r), this._output.space_before_token = !0, this._flags.declaration_statement ? (O(this._flags.parent.mode) && (this._flags.declaration_assignment = !1), this._flags.declaration_assignment ? (this._flags.declaration_assignment = !1, this.print_newline(!1, !0)) : this._options.comma_first && this.allow_wrap_or_preserved_newline(r)) : this._flags.mode === s.ObjectLiteral || this._flags.mode === s.Statement && this._flags.parent.mode === s.ObjectLiteral ? (this._flags.mode === s.Statement && this.restore_mode(), this._flags.inline_frame || this.print_newline()) : this._options.comma_first && this.allow_wrap_or_preserved_newline(r);
1075
+ }, f.prototype.handle_operator = function(r) {
1076
+ var D = r.text === "*" && (E(this._flags.last_token, ["function", "yield"]) || l(this._flags.last_token.type, [o.START_BLOCK, o.COMMA, o.END_BLOCK, o.SEMICOLON])), A = l(r.text, ["-", "+"]) && (l(this._flags.last_token.type, [o.START_BLOCK, o.START_EXPR, o.EQUALS, o.OPERATOR]) || l(this._flags.last_token.text, n) || this._flags.last_token.text === ",");
1077
+ if (!this.start_of_statement(r)) {
1078
+ var w = !D;
1079
+ this.handle_whitespace_and_comments(r, w);
1080
+ }
1081
+ if (r.text === "*" && this._flags.last_token.type === o.DOT) {
1082
+ this.print_token(r);
1083
+ return;
1084
+ }
1085
+ if (r.text === "::") {
1086
+ this.print_token(r);
1087
+ return;
1088
+ }
1089
+ if (l(r.text, ["-", "+"]) && this.start_of_object_property()) {
1090
+ this.print_token(r);
1091
+ return;
1092
+ }
1093
+ if (this._flags.last_token.type === o.OPERATOR && l(this._options.operator_position, _) && this.allow_wrap_or_preserved_newline(r), r.text === ":" && this._flags.in_case) {
1094
+ this.print_token(r), this._flags.in_case = !1, this._flags.case_body = !0, this._tokens.peek().type !== o.START_BLOCK ? (this.indent(), this.print_newline(), this._flags.case_block = !1) : (this._flags.case_block = !0, this._output.space_before_token = !0);
1095
+ return;
1096
+ }
1097
+ var k = !0, L = !0, U = !1;
1098
+ if (r.text === ":" ? this._flags.ternary_depth === 0 ? k = !1 : (this._flags.ternary_depth -= 1, U = !0) : r.text === "?" && (this._flags.ternary_depth += 1), !A && !D && this._options.preserve_newlines && l(r.text, c)) {
1099
+ var W = r.text === ":", J = W && U, B = W && !U;
1100
+ switch (this._options.operator_position) {
1101
+ case N.before_newline:
1102
+ this._output.space_before_token = !B, this.print_token(r), (!W || J) && this.allow_wrap_or_preserved_newline(r), this._output.space_before_token = !0;
1103
+ return;
1104
+ case N.after_newline:
1105
+ this._output.space_before_token = !0, !W || J ? this._tokens.peek().newlines ? this.print_newline(!1, !0) : this.allow_wrap_or_preserved_newline(r) : this._output.space_before_token = !1, this.print_token(r), this._output.space_before_token = !0;
1106
+ return;
1107
+ case N.preserve_newline:
1108
+ B || this.allow_wrap_or_preserved_newline(r), k = !(this._output.just_added_newline() || B), this._output.space_before_token = k, this.print_token(r), this._output.space_before_token = !0;
1109
+ return;
1110
+ }
1111
+ }
1112
+ if (D) {
1113
+ this.allow_wrap_or_preserved_newline(r), k = !1;
1114
+ var S = this._tokens.peek();
1115
+ L = S && l(S.type, [o.WORD, o.RESERVED]);
1116
+ } else if (r.text === "...")
1117
+ this.allow_wrap_or_preserved_newline(r), k = this._flags.last_token.type === o.START_BLOCK, L = !1;
1118
+ else if (l(r.text, ["--", "++", "!", "~"]) || A) {
1119
+ if ((this._flags.last_token.type === o.COMMA || this._flags.last_token.type === o.START_EXPR) && this.allow_wrap_or_preserved_newline(r), k = !1, L = !1, r.newlines && (r.text === "--" || r.text === "++" || r.text === "~")) {
1120
+ var P = E(this._flags.last_token, R) && r.newlines;
1121
+ P && (this._previous_flags.if_block || this._previous_flags.else_block) && this.restore_mode(), this.print_newline(P, !0);
1122
+ }
1123
+ this._flags.last_token.text === ";" && O(this._flags.mode) && (k = !0), this._flags.last_token.type === o.RESERVED ? k = !0 : this._flags.last_token.type === o.END_EXPR ? k = !(this._flags.last_token.text === "]" && (r.text === "--" || r.text === "++")) : this._flags.last_token.type === o.OPERATOR && (k = l(r.text, ["--", "-", "++", "+"]) && l(this._flags.last_token.text, ["--", "-", "++", "+"]), l(r.text, ["+", "-"]) && l(this._flags.last_token.text, ["--", "++"]) && (L = !0)), (this._flags.mode === s.BlockStatement && !this._flags.inline_frame || this._flags.mode === s.Statement) && (this._flags.last_token.text === "{" || this._flags.last_token.text === ";") && this.print_newline();
1124
+ }
1125
+ this._output.space_before_token = this._output.space_before_token || k, this.print_token(r), this._output.space_before_token = L;
1126
+ }, f.prototype.handle_block_comment = function(r, D) {
1127
+ if (this._output.raw) {
1128
+ this._output.add_raw_token(r), r.directives && r.directives.preserve === "end" && (this._output.raw = this._options.test_output_raw);
1129
+ return;
1130
+ }
1131
+ if (r.directives) {
1132
+ this.print_newline(!1, D), this.print_token(r), r.directives.preserve === "start" && (this._output.raw = !0), this.print_newline(!1, !0);
1133
+ return;
1134
+ }
1135
+ if (!i.newline.test(r.text) && !r.newlines) {
1136
+ this._output.space_before_token = !0, this.print_token(r), this._output.space_before_token = !0;
1137
+ return;
1138
+ } else
1139
+ this.print_block_commment(r, D);
1140
+ }, f.prototype.print_block_commment = function(r, D) {
1141
+ var A = T(r.text), w, k = !1, L = !1, U = r.whitespace_before, W = U.length;
1142
+ if (this.print_newline(!1, D), this.print_token_line_indentation(r), this._output.add_token(A[0]), this.print_newline(!1, D), A.length > 1) {
1143
+ for (A = A.slice(1), k = m(A, "*"), L = v(A, U), k && (this._flags.alignment = 1), w = 0; w < A.length; w++)
1144
+ k ? (this.print_token_line_indentation(r), this._output.add_token(b(A[w]))) : L && A[w] ? (this.print_token_line_indentation(r), this._output.add_token(A[w].substring(W))) : (this._output.current_line.set_indent(-1), this._output.add_token(A[w])), this.print_newline(!1, D);
1145
+ this._flags.alignment = 0;
1146
+ }
1147
+ }, f.prototype.handle_comment = function(r, D) {
1148
+ r.newlines ? this.print_newline(!1, D) : this._output.trim(!0), this._output.space_before_token = !0, this.print_token(r), this.print_newline(!1, D);
1149
+ }, f.prototype.handle_dot = function(r) {
1150
+ this.start_of_statement(r) || this.handle_whitespace_and_comments(r, !0), this._flags.last_token.text.match("^[0-9]+$") && (this._output.space_before_token = !0), E(this._flags.last_token, R) ? this._output.space_before_token = !1 : this.allow_wrap_or_preserved_newline(
1151
+ r,
1152
+ this._flags.last_token.text === ")" && this._options.break_chained_methods
1153
+ ), this._options.unindent_chained_methods && this._output.just_added_newline() && this.deindent(), this.print_token(r);
1154
+ }, f.prototype.handle_unknown = function(r, D) {
1155
+ this.print_token(r), r.text[r.text.length - 1] === `
1156
+ ` && this.print_newline(!1, D);
1157
+ }, f.prototype.handle_eof = function(r) {
1158
+ for (; this._flags.mode === s.Statement; )
1159
+ this.restore_mode();
1160
+ this.handle_whitespace_and_comments(r);
1161
+ }, Re.Beautifier = f, Re;
1162
+ }
1163
+ var wt;
1164
+ function yu() {
1165
+ if (wt) return Ae.exports;
1166
+ wt = 1;
1167
+ var e = Eu().Beautifier, u = Vt().Options;
1168
+ function i(t, a) {
1169
+ var n = new e(t, a);
1170
+ return n.beautify();
1171
+ }
1172
+ return Ae.exports = i, Ae.exports.defaultOptions = function() {
1173
+ return new u();
1174
+ }, Ae.exports;
1175
+ }
1176
+ var ye = { exports: {} }, Ge = {}, ze = {}, Bt;
1177
+ function Gt() {
1178
+ if (Bt) return ze;
1179
+ Bt = 1;
1180
+ var e = rt().Options;
1181
+ function u(i) {
1182
+ e.call(this, i, "css"), this.selector_separator_newline = this._get_boolean("selector_separator_newline", !0), this.newline_between_rules = this._get_boolean("newline_between_rules", !0);
1183
+ var t = this._get_boolean("space_around_selector_separator");
1184
+ this.space_around_combinator = this._get_boolean("space_around_combinator") || t;
1185
+ var a = this._get_selection_list("brace_style", ["collapse", "expand", "end-expand", "none", "preserve-inline"]);
1186
+ this.brace_style = "collapse";
1187
+ for (var n = 0; n < a.length; n++)
1188
+ a[n] !== "expand" ? this.brace_style = "collapse" : this.brace_style = a[n];
1189
+ }
1190
+ return u.prototype = new e(), ze.Options = u, ze;
1191
+ }
1192
+ var Tt;
1193
+ function xu() {
1194
+ if (Tt) return Ge;
1195
+ Tt = 1;
1196
+ var e = Gt().Options, u = ut().Output, i = it().InputScanner, t = at().Directives, a = new t(/\/\*/, /\*\//), n = /\r\n|[\r\n]/, c = /\r\n|[\r\n]/g, o = /\s/, l = /(?:\s|\n)+/g, b = /\/\*(?:[\s\S]*?)((?:\*\/)|$)/g, d = /\/\/(?:[^\n\r\u2028\u2029]*)/g;
1197
+ function g(E, R) {
1198
+ this._source_text = E || "", this._options = new e(R), this._ch = null, this._input = null, this.NESTED_AT_RULE = {
1199
+ page: !0,
1200
+ "font-face": !0,
1201
+ keyframes: !0,
1202
+ // also in CONDITIONAL_GROUP_RULE below
1203
+ media: !0,
1204
+ supports: !0,
1205
+ document: !0
1206
+ }, this.CONDITIONAL_GROUP_RULE = {
1207
+ media: !0,
1208
+ supports: !0,
1209
+ document: !0
1210
+ }, this.NON_SEMICOLON_NEWLINE_PROPERTY = [
1211
+ "grid-template-areas",
1212
+ "grid-template"
1213
+ ];
1214
+ }
1215
+ return g.prototype.eatString = function(E) {
1216
+ var R = "";
1217
+ for (this._ch = this._input.next(); this._ch; ) {
1218
+ if (R += this._ch, this._ch === "\\")
1219
+ R += this._input.next();
1220
+ else if (E.indexOf(this._ch) !== -1 || this._ch === `
1221
+ `)
1222
+ break;
1223
+ this._ch = this._input.next();
1224
+ }
1225
+ return R;
1226
+ }, g.prototype.eatWhitespace = function(E) {
1227
+ for (var R = o.test(this._input.peek()), q = 0; o.test(this._input.peek()); )
1228
+ this._ch = this._input.next(), E && this._ch === `
1229
+ ` && (q === 0 || q < this._options.max_preserve_newlines) && (q++, this._output.add_new_line(!0));
1230
+ return R;
1231
+ }, g.prototype.foundNestedPseudoClass = function() {
1232
+ for (var E = 0, R = 1, q = this._input.peek(R); q; ) {
1233
+ if (q === "{")
1234
+ return !0;
1235
+ if (q === "(")
1236
+ E += 1;
1237
+ else if (q === ")") {
1238
+ if (E === 0)
1239
+ return !1;
1240
+ E -= 1;
1241
+ } else if (q === ";" || q === "}")
1242
+ return !1;
1243
+ R++, q = this._input.peek(R);
1244
+ }
1245
+ return !1;
1246
+ }, g.prototype.print_string = function(E) {
1247
+ this._output.set_indent(this._indentLevel), this._output.non_breaking_space = !0, this._output.add_token(E);
1248
+ }, g.prototype.preserveSingleSpace = function(E) {
1249
+ E && (this._output.space_before_token = !0);
1250
+ }, g.prototype.indent = function() {
1251
+ this._indentLevel++;
1252
+ }, g.prototype.outdent = function() {
1253
+ this._indentLevel > 0 && this._indentLevel--;
1254
+ }, g.prototype.beautify = function() {
1255
+ if (this._options.disabled)
1256
+ return this._source_text;
1257
+ var E = this._source_text, R = this._options.eol;
1258
+ R === "auto" && (R = `
1259
+ `, E && n.test(E || "") && (R = E.match(n)[0])), E = E.replace(c, `
1260
+ `);
1261
+ var q = E.match(/^[\t ]*/)[0];
1262
+ this._output = new u(this._options, q), this._input = new i(E), this._indentLevel = 0, this._nestedLevel = 0, this._ch = null;
1263
+ for (var N = 0, _ = !1, s = !1, h = !1, T = !1, y = !1, O = this._ch, m = !1, v, f, C; v = this._input.read(l), f = v !== "", C = O, this._ch = this._input.next(), this._ch === "\\" && this._input.hasNext() && (this._ch += this._input.next()), O = this._ch, this._ch; )
1264
+ if (this._ch === "/" && this._input.peek() === "*") {
1265
+ this._output.add_new_line(), this._input.back();
1266
+ var r = this._input.read(b), D = a.get_directives(r);
1267
+ D && D.ignore === "start" && (r += a.readIgnored(this._input)), this.print_string(r), this.eatWhitespace(!0), this._output.add_new_line();
1268
+ } else if (this._ch === "/" && this._input.peek() === "/")
1269
+ this._output.space_before_token = !0, this._input.back(), this.print_string(this._input.read(d)), this.eatWhitespace(!0);
1270
+ else if (this._ch === "$") {
1271
+ this.preserveSingleSpace(f), this.print_string(this._ch);
1272
+ var A = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);
1273
+ A.match(/[ :]$/) && (A = this.eatString(": ").replace(/\s+$/, ""), this.print_string(A), this._output.space_before_token = !0), N === 0 && A.indexOf(":") !== -1 && (s = !0, this.indent());
1274
+ } else if (this._ch === "@")
1275
+ if (this.preserveSingleSpace(f), this._input.peek() === "{")
1276
+ this.print_string(this._ch + this.eatString("}"));
1277
+ else {
1278
+ this.print_string(this._ch);
1279
+ var w = this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);
1280
+ w.match(/[ :]$/) && (w = this.eatString(": ").replace(/\s+$/, ""), this.print_string(w), this._output.space_before_token = !0), N === 0 && w.indexOf(":") !== -1 ? (s = !0, this.indent()) : w in this.NESTED_AT_RULE ? (this._nestedLevel += 1, w in this.CONDITIONAL_GROUP_RULE && (h = !0)) : N === 0 && !s && (T = !0);
1281
+ }
1282
+ else if (this._ch === "#" && this._input.peek() === "{")
1283
+ this.preserveSingleSpace(f), this.print_string(this._ch + this.eatString("}"));
1284
+ else if (this._ch === "{")
1285
+ s && (s = !1, this.outdent()), T = !1, h ? (h = !1, _ = this._indentLevel >= this._nestedLevel) : _ = this._indentLevel >= this._nestedLevel - 1, this._options.newline_between_rules && _ && this._output.previous_line && this._output.previous_line.item(-1) !== "{" && this._output.ensure_empty_line_above("/", ","), this._output.space_before_token = !0, this._options.brace_style === "expand" ? (this._output.add_new_line(), this.print_string(this._ch), this.indent(), this._output.set_indent(this._indentLevel)) : (C === "(" ? this._output.space_before_token = !1 : C !== "," && this.indent(), this.print_string(this._ch)), this.eatWhitespace(!0), this._output.add_new_line();
1286
+ else if (this._ch === "}")
1287
+ this.outdent(), this._output.add_new_line(), C === "{" && this._output.trim(!0), s && (this.outdent(), s = !1), this.print_string(this._ch), _ = !1, this._nestedLevel && this._nestedLevel--, this.eatWhitespace(!0), this._output.add_new_line(), this._options.newline_between_rules && !this._output.just_added_blankline() && this._input.peek() !== "}" && this._output.add_new_line(!0), this._input.peek() === ")" && (this._output.trim(!0), this._options.brace_style === "expand" && this._output.add_new_line(!0));
1288
+ else if (this._ch === ":") {
1289
+ for (var k = 0; k < this.NON_SEMICOLON_NEWLINE_PROPERTY.length; k++)
1290
+ if (this._input.lookBack(this.NON_SEMICOLON_NEWLINE_PROPERTY[k])) {
1291
+ m = !0;
1292
+ break;
1293
+ }
1294
+ (_ || h) && !(this._input.lookBack("&") || this.foundNestedPseudoClass()) && !this._input.lookBack("(") && !T && N === 0 ? (this.print_string(":"), s || (s = !0, this._output.space_before_token = !0, this.eatWhitespace(!0), this.indent())) : (this._input.lookBack(" ") && (this._output.space_before_token = !0), this._input.peek() === ":" ? (this._ch = this._input.next(), this.print_string("::")) : this.print_string(":"));
1295
+ } else if (this._ch === '"' || this._ch === "'") {
1296
+ var L = C === '"' || C === "'";
1297
+ this.preserveSingleSpace(L || f), this.print_string(this._ch + this.eatString(this._ch)), this.eatWhitespace(!0);
1298
+ } else if (this._ch === ";")
1299
+ m = !1, N === 0 ? (s && (this.outdent(), s = !1), T = !1, this.print_string(this._ch), this.eatWhitespace(!0), this._input.peek() !== "/" && this._output.add_new_line()) : (this.print_string(this._ch), this.eatWhitespace(!0), this._output.space_before_token = !0);
1300
+ else if (this._ch === "(")
1301
+ if (this._input.lookBack("url"))
1302
+ this.print_string(this._ch), this.eatWhitespace(), N++, this.indent(), this._ch = this._input.next(), this._ch === ")" || this._ch === '"' || this._ch === "'" ? this._input.back() : this._ch && (this.print_string(this._ch + this.eatString(")")), N && (N--, this.outdent()));
1303
+ else {
1304
+ var U = !1;
1305
+ this._input.lookBack("with") && (U = !0), this.preserveSingleSpace(f || U), this.print_string(this._ch), s && C === "$" && this._options.selector_separator_newline ? (this._output.add_new_line(), y = !0) : (this.eatWhitespace(), N++, this.indent());
1306
+ }
1307
+ else if (this._ch === ")")
1308
+ N && (N--, this.outdent()), y && this._input.peek() === ";" && this._options.selector_separator_newline && (y = !1, this.outdent(), this._output.add_new_line()), this.print_string(this._ch);
1309
+ else if (this._ch === ",")
1310
+ this.print_string(this._ch), this.eatWhitespace(!0), this._options.selector_separator_newline && (!s || y) && N === 0 && !T ? this._output.add_new_line() : this._output.space_before_token = !0;
1311
+ else if ((this._ch === ">" || this._ch === "+" || this._ch === "~") && !s && N === 0)
1312
+ this._options.space_around_combinator ? (this._output.space_before_token = !0, this.print_string(this._ch), this._output.space_before_token = !0) : (this.print_string(this._ch), this.eatWhitespace(), this._ch && o.test(this._ch) && (this._ch = ""));
1313
+ else if (this._ch === "]")
1314
+ this.print_string(this._ch);
1315
+ else if (this._ch === "[")
1316
+ this.preserveSingleSpace(f), this.print_string(this._ch);
1317
+ else if (this._ch === "=")
1318
+ this.eatWhitespace(), this.print_string("="), o.test(this._ch) && (this._ch = "");
1319
+ else if (this._ch === "!" && !this._input.lookBack("\\"))
1320
+ this._output.space_before_token = !0, this.print_string(this._ch);
1321
+ else {
1322
+ var W = C === '"' || C === "'";
1323
+ this.preserveSingleSpace(W || f), this.print_string(this._ch), !this._output.just_added_newline() && this._input.peek() === `
1324
+ ` && m && this._output.add_new_line();
1325
+ }
1326
+ var J = this._output.get_code(R);
1327
+ return J;
1328
+ }, Ge.Beautifier = g, Ge;
1329
+ }
1330
+ var Ft;
1331
+ function Cu() {
1332
+ if (Ft) return ye.exports;
1333
+ Ft = 1;
1334
+ var e = xu().Beautifier, u = Gt().Options;
1335
+ function i(t, a) {
1336
+ var n = new e(t, a);
1337
+ return n.beautify();
1338
+ }
1339
+ return ye.exports = i, ye.exports.defaultOptions = function() {
1340
+ return new u();
1341
+ }, ye.exports;
1342
+ }
1343
+ var xe = { exports: {} }, $e = {}, He = {}, Ot;
1344
+ function zt() {
1345
+ if (Ot) return He;
1346
+ Ot = 1;
1347
+ var e = rt().Options;
1348
+ function u(i) {
1349
+ e.call(this, i, "html"), this.templating.length === 1 && this.templating[0] === "auto" && (this.templating = ["django", "erb", "handlebars", "php"]), this.indent_inner_html = this._get_boolean("indent_inner_html"), this.indent_body_inner_html = this._get_boolean("indent_body_inner_html", !0), this.indent_head_inner_html = this._get_boolean("indent_head_inner_html", !0), this.indent_handlebars = this._get_boolean("indent_handlebars", !0), this.wrap_attributes = this._get_selection(
1350
+ "wrap_attributes",
1351
+ ["auto", "force", "force-aligned", "force-expand-multiline", "aligned-multiple", "preserve", "preserve-aligned"]
1352
+ ), this.wrap_attributes_min_attrs = this._get_number("wrap_attributes_min_attrs", 2), this.wrap_attributes_indent_size = this._get_number("wrap_attributes_indent_size", this.indent_size), this.extra_liners = this._get_array("extra_liners", ["head", "body", "/html"]), this.inline = this._get_array("inline", [
1353
+ "a",
1354
+ "abbr",
1355
+ "area",
1356
+ "audio",
1357
+ "b",
1358
+ "bdi",
1359
+ "bdo",
1360
+ "br",
1361
+ "button",
1362
+ "canvas",
1363
+ "cite",
1364
+ "code",
1365
+ "data",
1366
+ "datalist",
1367
+ "del",
1368
+ "dfn",
1369
+ "em",
1370
+ "embed",
1371
+ "i",
1372
+ "iframe",
1373
+ "img",
1374
+ "input",
1375
+ "ins",
1376
+ "kbd",
1377
+ "keygen",
1378
+ "label",
1379
+ "map",
1380
+ "mark",
1381
+ "math",
1382
+ "meter",
1383
+ "noscript",
1384
+ "object",
1385
+ "output",
1386
+ "progress",
1387
+ "q",
1388
+ "ruby",
1389
+ "s",
1390
+ "samp",
1391
+ /* 'script', */
1392
+ "select",
1393
+ "small",
1394
+ "span",
1395
+ "strong",
1396
+ "sub",
1397
+ "sup",
1398
+ "svg",
1399
+ "template",
1400
+ "textarea",
1401
+ "time",
1402
+ "u",
1403
+ "var",
1404
+ "video",
1405
+ "wbr",
1406
+ "text",
1407
+ // obsolete inline tags
1408
+ "acronym",
1409
+ "big",
1410
+ "strike",
1411
+ "tt"
1412
+ ]), this.inline_custom_elements = this._get_boolean("inline_custom_elements", !0), this.void_elements = this._get_array("void_elements", [
1413
+ // HTLM void elements - aka self-closing tags - aka singletons
1414
+ // https://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements
1415
+ "area",
1416
+ "base",
1417
+ "br",
1418
+ "col",
1419
+ "embed",
1420
+ "hr",
1421
+ "img",
1422
+ "input",
1423
+ "keygen",
1424
+ "link",
1425
+ "menuitem",
1426
+ "meta",
1427
+ "param",
1428
+ "source",
1429
+ "track",
1430
+ "wbr",
1431
+ // NOTE: Optional tags are too complex for a simple list
1432
+ // they are hard coded in _do_optional_end_element
1433
+ // Doctype and xml elements
1434
+ "!doctype",
1435
+ "?xml",
1436
+ // obsolete tags
1437
+ // basefont: https://www.computerhope.com/jargon/h/html-basefont-tag.htm
1438
+ // isndex: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/isindex
1439
+ "basefont",
1440
+ "isindex"
1441
+ ]), this.unformatted = this._get_array("unformatted", []), this.content_unformatted = this._get_array("content_unformatted", [
1442
+ "pre",
1443
+ "textarea"
1444
+ ]), this.unformatted_content_delimiter = this._get_characters("unformatted_content_delimiter"), this.indent_scripts = this._get_selection("indent_scripts", ["normal", "keep", "separate"]);
1445
+ }
1446
+ return u.prototype = new e(), He.Options = u, He;
1447
+ }
1448
+ var Ce = {}, kt;
1449
+ function Rt() {
1450
+ if (kt) return Ce;
1451
+ kt = 1;
1452
+ var e = Be().Tokenizer, u = Be().TOKEN, i = at().Directives, t = Mt().TemplatablePattern, a = Te().Pattern, n = {
1453
+ TAG_OPEN: "TK_TAG_OPEN",
1454
+ TAG_CLOSE: "TK_TAG_CLOSE",
1455
+ CONTROL_FLOW_OPEN: "TK_CONTROL_FLOW_OPEN",
1456
+ CONTROL_FLOW_CLOSE: "TK_CONTROL_FLOW_CLOSE",
1457
+ ATTRIBUTE: "TK_ATTRIBUTE",
1458
+ EQUALS: "TK_EQUALS",
1459
+ VALUE: "TK_VALUE",
1460
+ COMMENT: "TK_COMMENT",
1461
+ TEXT: "TK_TEXT",
1462
+ UNKNOWN: "TK_UNKNOWN",
1463
+ START: u.START,
1464
+ RAW: u.RAW,
1465
+ EOF: u.EOF
1466
+ }, c = new i(/<\!--/, /-->/), o = function(l, b) {
1467
+ e.call(this, l, b), this._current_tag_name = "";
1468
+ var d = new t(this._input).read_options(this._options), g = new a(this._input);
1469
+ if (this.__patterns = {
1470
+ word: d.until(/[\n\r\t <]/),
1471
+ word_control_flow_close_excluded: d.until(/[\n\r\t <}]/),
1472
+ single_quote: d.until_after(/'/),
1473
+ double_quote: d.until_after(/"/),
1474
+ attribute: d.until(/[\n\r\t =>]|\/>/),
1475
+ element_name: d.until(/[\n\r\t >\/]/),
1476
+ angular_control_flow_start: g.matching(/\@[a-zA-Z]+[^({]*[({]/),
1477
+ handlebars_comment: g.starting_with(/{{!--/).until_after(/--}}/),
1478
+ handlebars: g.starting_with(/{{/).until_after(/}}/),
1479
+ handlebars_open: g.until(/[\n\r\t }]/),
1480
+ handlebars_raw_close: g.until(/}}/),
1481
+ comment: g.starting_with(/<!--/).until_after(/-->/),
1482
+ cdata: g.starting_with(/<!\[CDATA\[/).until_after(/]]>/),
1483
+ // https://en.wikipedia.org/wiki/Conditional_comment
1484
+ conditional_comment: g.starting_with(/<!\[/).until_after(/]>/),
1485
+ processing: g.starting_with(/<\?/).until_after(/\?>/)
1486
+ }, this._options.indent_handlebars && (this.__patterns.word = this.__patterns.word.exclude("handlebars"), this.__patterns.word_control_flow_close_excluded = this.__patterns.word_control_flow_close_excluded.exclude("handlebars")), this._unformatted_content_delimiter = null, this._options.unformatted_content_delimiter) {
1487
+ var E = this._input.get_literal_regexp(this._options.unformatted_content_delimiter);
1488
+ this.__patterns.unformatted_content_delimiter = g.matching(E).until_after(E);
1489
+ }
1490
+ };
1491
+ return o.prototype = new e(), o.prototype._is_comment = function(l) {
1492
+ return !1;
1493
+ }, o.prototype._is_opening = function(l) {
1494
+ return l.type === n.TAG_OPEN || l.type === n.CONTROL_FLOW_OPEN;
1495
+ }, o.prototype._is_closing = function(l, b) {
1496
+ return l.type === n.TAG_CLOSE && b && ((l.text === ">" || l.text === "/>") && b.text[0] === "<" || l.text === "}}" && b.text[0] === "{" && b.text[1] === "{") || l.type === n.CONTROL_FLOW_CLOSE && l.text === "}" && b.text.endsWith("{");
1497
+ }, o.prototype._reset = function() {
1498
+ this._current_tag_name = "";
1499
+ }, o.prototype._get_next_token = function(l, b) {
1500
+ var d = null;
1501
+ this._readWhitespace();
1502
+ var g = this._input.peek();
1503
+ return g === null ? this._create_token(n.EOF, "") : (d = d || this._read_open_handlebars(g, b), d = d || this._read_attribute(g, l, b), d = d || this._read_close(g, b), d = d || this._read_script_and_style(g, l), d = d || this._read_control_flows(g, b), d = d || this._read_raw_content(g, l, b), d = d || this._read_content_word(g, b), d = d || this._read_comment_or_cdata(g), d = d || this._read_processing(g), d = d || this._read_open(g, b), d = d || this._create_token(n.UNKNOWN, this._input.next()), d);
1504
+ }, o.prototype._read_comment_or_cdata = function(l) {
1505
+ var b = null, d = null, g = null;
1506
+ if (l === "<") {
1507
+ var E = this._input.peek(1);
1508
+ E === "!" && (d = this.__patterns.comment.read(), d ? (g = c.get_directives(d), g && g.ignore === "start" && (d += c.readIgnored(this._input))) : d = this.__patterns.cdata.read()), d && (b = this._create_token(n.COMMENT, d), b.directives = g);
1509
+ }
1510
+ return b;
1511
+ }, o.prototype._read_processing = function(l) {
1512
+ var b = null, d = null, g = null;
1513
+ if (l === "<") {
1514
+ var E = this._input.peek(1);
1515
+ (E === "!" || E === "?") && (d = this.__patterns.conditional_comment.read(), d = d || this.__patterns.processing.read()), d && (b = this._create_token(n.COMMENT, d), b.directives = g);
1516
+ }
1517
+ return b;
1518
+ }, o.prototype._read_open = function(l, b) {
1519
+ var d = null, g = null;
1520
+ return (!b || b.type === n.CONTROL_FLOW_OPEN) && l === "<" && (d = this._input.next(), this._input.peek() === "/" && (d += this._input.next()), d += this.__patterns.element_name.read(), g = this._create_token(n.TAG_OPEN, d)), g;
1521
+ }, o.prototype._read_open_handlebars = function(l, b) {
1522
+ var d = null, g = null;
1523
+ return (!b || b.type === n.CONTROL_FLOW_OPEN) && (this._options.templating.includes("angular") || this._options.indent_handlebars) && l === "{" && this._input.peek(1) === "{" && (this._options.indent_handlebars && this._input.peek(2) === "!" ? (d = this.__patterns.handlebars_comment.read(), d = d || this.__patterns.handlebars.read(), g = this._create_token(n.COMMENT, d)) : (d = this.__patterns.handlebars_open.read(), g = this._create_token(n.TAG_OPEN, d))), g;
1524
+ }, o.prototype._read_control_flows = function(l, b) {
1525
+ var d = "", g = null;
1526
+ if (!this._options.templating.includes("angular"))
1527
+ return g;
1528
+ if (l === "@") {
1529
+ if (d = this.__patterns.angular_control_flow_start.read(), d === "")
1530
+ return g;
1531
+ for (var E = d.endsWith("(") ? 1 : 0, R = 0; !(d.endsWith("{") && E === R); ) {
1532
+ var q = this._input.next();
1533
+ if (q === null)
1534
+ break;
1535
+ q === "(" ? E++ : q === ")" && R++, d += q;
1536
+ }
1537
+ g = this._create_token(n.CONTROL_FLOW_OPEN, d);
1538
+ } else l === "}" && b && b.type === n.CONTROL_FLOW_OPEN && (d = this._input.next(), g = this._create_token(n.CONTROL_FLOW_CLOSE, d));
1539
+ return g;
1540
+ }, o.prototype._read_close = function(l, b) {
1541
+ var d = null, g = null;
1542
+ return b && b.type === n.TAG_OPEN && (b.text[0] === "<" && (l === ">" || l === "/" && this._input.peek(1) === ">") ? (d = this._input.next(), l === "/" && (d += this._input.next()), g = this._create_token(n.TAG_CLOSE, d)) : b.text[0] === "{" && l === "}" && this._input.peek(1) === "}" && (this._input.next(), this._input.next(), g = this._create_token(n.TAG_CLOSE, "}}"))), g;
1543
+ }, o.prototype._read_attribute = function(l, b, d) {
1544
+ var g = null, E = "";
1545
+ if (d && d.text[0] === "<")
1546
+ if (l === "=")
1547
+ g = this._create_token(n.EQUALS, this._input.next());
1548
+ else if (l === '"' || l === "'") {
1549
+ var R = this._input.next();
1550
+ l === '"' ? R += this.__patterns.double_quote.read() : R += this.__patterns.single_quote.read(), g = this._create_token(n.VALUE, R);
1551
+ } else
1552
+ E = this.__patterns.attribute.read(), E && (b.type === n.EQUALS ? g = this._create_token(n.VALUE, E) : g = this._create_token(n.ATTRIBUTE, E));
1553
+ return g;
1554
+ }, o.prototype._is_content_unformatted = function(l) {
1555
+ return this._options.void_elements.indexOf(l) === -1 && (this._options.content_unformatted.indexOf(l) !== -1 || this._options.unformatted.indexOf(l) !== -1);
1556
+ }, o.prototype._read_raw_content = function(l, b, d) {
1557
+ var g = "";
1558
+ if (d && d.text[0] === "{")
1559
+ g = this.__patterns.handlebars_raw_close.read();
1560
+ else if (b.type === n.TAG_CLOSE && b.opened.text[0] === "<" && b.text[0] !== "/") {
1561
+ var E = b.opened.text.substr(1).toLowerCase();
1562
+ this._is_content_unformatted(E) && (g = this._input.readUntil(new RegExp("</" + E + "[\\n\\r\\t ]*?>", "ig")));
1563
+ }
1564
+ return g ? this._create_token(n.TEXT, g) : null;
1565
+ }, o.prototype._read_script_and_style = function(l, b) {
1566
+ if (b.type === n.TAG_CLOSE && b.opened.text[0] === "<" && b.text[0] !== "/") {
1567
+ var d = b.opened.text.substr(1).toLowerCase();
1568
+ if (d === "script" || d === "style") {
1569
+ var g = this._read_comment_or_cdata(l);
1570
+ if (g)
1571
+ return g.type = n.TEXT, g;
1572
+ var E = this._input.readUntil(new RegExp("</" + d + "[\\n\\r\\t ]*?>", "ig"));
1573
+ if (E)
1574
+ return this._create_token(n.TEXT, E);
1575
+ }
1576
+ }
1577
+ return null;
1578
+ }, o.prototype._read_content_word = function(l, b) {
1579
+ var d = "";
1580
+ return this._options.unformatted_content_delimiter && l === this._options.unformatted_content_delimiter[0] && (d = this.__patterns.unformatted_content_delimiter.read()), d || (d = b && b.type === n.CONTROL_FLOW_OPEN ? this.__patterns.word_control_flow_close_excluded.read() : this.__patterns.word.read()), d ? this._create_token(n.TEXT, d) : null;
1581
+ }, Ce.Tokenizer = o, Ce.TOKEN = n, Ce;
1582
+ }
1583
+ var qt;
1584
+ function wu() {
1585
+ if (qt) return $e;
1586
+ qt = 1;
1587
+ var e = zt().Options, u = ut().Output, i = Rt().Tokenizer, t = Rt().TOKEN, a = /\r\n|[\r\n]/, n = /\r\n|[\r\n]/g, c = function(_, s) {
1588
+ this.indent_level = 0, this.alignment_size = 0, this.max_preserve_newlines = _.max_preserve_newlines, this.preserve_newlines = _.preserve_newlines, this._output = new u(_, s);
1589
+ };
1590
+ c.prototype.current_line_has_match = function(_) {
1591
+ return this._output.current_line.has_match(_);
1592
+ }, c.prototype.set_space_before_token = function(_, s) {
1593
+ this._output.space_before_token = _, this._output.non_breaking_space = s;
1594
+ }, c.prototype.set_wrap_point = function() {
1595
+ this._output.set_indent(this.indent_level, this.alignment_size), this._output.set_wrap_point();
1596
+ }, c.prototype.add_raw_token = function(_) {
1597
+ this._output.add_raw_token(_);
1598
+ }, c.prototype.print_preserved_newlines = function(_) {
1599
+ var s = 0;
1600
+ _.type !== t.TEXT && _.previous.type !== t.TEXT && (s = _.newlines ? 1 : 0), this.preserve_newlines && (s = _.newlines < this.max_preserve_newlines + 1 ? _.newlines : this.max_preserve_newlines + 1);
1601
+ for (var h = 0; h < s; h++)
1602
+ this.print_newline(h > 0);
1603
+ return s !== 0;
1604
+ }, c.prototype.traverse_whitespace = function(_) {
1605
+ return _.whitespace_before || _.newlines ? (this.print_preserved_newlines(_) || (this._output.space_before_token = !0), !0) : !1;
1606
+ }, c.prototype.previous_token_wrapped = function() {
1607
+ return this._output.previous_token_wrapped;
1608
+ }, c.prototype.print_newline = function(_) {
1609
+ this._output.add_new_line(_);
1610
+ }, c.prototype.print_token = function(_) {
1611
+ _.text && (this._output.set_indent(this.indent_level, this.alignment_size), this._output.add_token(_.text));
1612
+ }, c.prototype.indent = function() {
1613
+ this.indent_level++;
1614
+ }, c.prototype.deindent = function() {
1615
+ this.indent_level > 0 && (this.indent_level--, this._output.set_indent(this.indent_level, this.alignment_size));
1616
+ }, c.prototype.get_full_indent = function(_) {
1617
+ return _ = this.indent_level + (_ || 0), _ < 1 ? "" : this._output.get_indent_string(_);
1618
+ };
1619
+ var o = function(_) {
1620
+ for (var s = null, h = _.next; h.type !== t.EOF && _.closed !== h; ) {
1621
+ if (h.type === t.ATTRIBUTE && h.text === "type") {
1622
+ h.next && h.next.type === t.EQUALS && h.next.next && h.next.next.type === t.VALUE && (s = h.next.next.text);
1623
+ break;
1624
+ }
1625
+ h = h.next;
1626
+ }
1627
+ return s;
1628
+ }, l = function(_, s) {
1629
+ var h = null, T = null;
1630
+ return s.closed ? (_ === "script" ? h = "text/javascript" : _ === "style" && (h = "text/css"), h = o(s) || h, h.search("text/css") > -1 ? T = "css" : h.search(/module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/) > -1 ? T = "javascript" : h.search(/(text|application|dojo)\/(x-)?(html)/) > -1 ? T = "html" : h.search(/test\/null/) > -1 && (T = "null"), T) : null;
1631
+ };
1632
+ function b(_, s) {
1633
+ return s.indexOf(_) !== -1;
1634
+ }
1635
+ function d(_, s, h) {
1636
+ this.parent = _ || null, this.tag = s ? s.tag_name : "", this.indent_level = h || 0, this.parser_token = s || null;
1637
+ }
1638
+ function g(_) {
1639
+ this._printer = _, this._current_frame = null;
1640
+ }
1641
+ g.prototype.get_parser_token = function() {
1642
+ return this._current_frame ? this._current_frame.parser_token : null;
1643
+ }, g.prototype.record_tag = function(_) {
1644
+ var s = new d(this._current_frame, _, this._printer.indent_level);
1645
+ this._current_frame = s;
1646
+ }, g.prototype._try_pop_frame = function(_) {
1647
+ var s = null;
1648
+ return _ && (s = _.parser_token, this._printer.indent_level = _.indent_level, this._current_frame = _.parent), s;
1649
+ }, g.prototype._get_frame = function(_, s) {
1650
+ for (var h = this._current_frame; h && _.indexOf(h.tag) === -1; ) {
1651
+ if (s && s.indexOf(h.tag) !== -1) {
1652
+ h = null;
1653
+ break;
1654
+ }
1655
+ h = h.parent;
1656
+ }
1657
+ return h;
1658
+ }, g.prototype.try_pop = function(_, s) {
1659
+ var h = this._get_frame([_], s);
1660
+ return this._try_pop_frame(h);
1661
+ }, g.prototype.indent_to_tag = function(_) {
1662
+ var s = this._get_frame(_);
1663
+ s && (this._printer.indent_level = s.indent_level);
1664
+ };
1665
+ function E(_, s, h, T) {
1666
+ this._source_text = _ || "", s = s || {}, this._js_beautify = h, this._css_beautify = T, this._tag_stack = null;
1667
+ var y = new e(s, "html");
1668
+ this._options = y, this._is_wrap_attributes_force = this._options.wrap_attributes.substr(0, 5) === "force", this._is_wrap_attributes_force_expand_multiline = this._options.wrap_attributes === "force-expand-multiline", this._is_wrap_attributes_force_aligned = this._options.wrap_attributes === "force-aligned", this._is_wrap_attributes_aligned_multiple = this._options.wrap_attributes === "aligned-multiple", this._is_wrap_attributes_preserve = this._options.wrap_attributes.substr(0, 8) === "preserve", this._is_wrap_attributes_preserve_aligned = this._options.wrap_attributes === "preserve-aligned";
1669
+ }
1670
+ E.prototype.beautify = function() {
1671
+ if (this._options.disabled)
1672
+ return this._source_text;
1673
+ var _ = this._source_text, s = this._options.eol;
1674
+ this._options.eol === "auto" && (s = `
1675
+ `, _ && a.test(_) && (s = _.match(a)[0])), _ = _.replace(n, `
1676
+ `);
1677
+ var h = _.match(/^[\t ]*/)[0], T = {
1678
+ text: "",
1679
+ type: ""
1680
+ }, y = new R(this._options), O = new c(this._options, h), m = new i(_, this._options).tokenize();
1681
+ this._tag_stack = new g(O);
1682
+ for (var v = null, f = m.next(); f.type !== t.EOF; )
1683
+ f.type === t.TAG_OPEN || f.type === t.COMMENT ? (v = this._handle_tag_open(O, f, y, T, m), y = v) : f.type === t.ATTRIBUTE || f.type === t.EQUALS || f.type === t.VALUE || f.type === t.TEXT && !y.tag_complete ? v = this._handle_inside_tag(O, f, y, T) : f.type === t.TAG_CLOSE ? v = this._handle_tag_close(O, f, y) : f.type === t.TEXT ? v = this._handle_text(O, f, y) : f.type === t.CONTROL_FLOW_OPEN ? v = this._handle_control_flow_open(O, f) : f.type === t.CONTROL_FLOW_CLOSE ? v = this._handle_control_flow_close(O, f) : O.add_raw_token(f), T = v, f = m.next();
1684
+ var C = O._output.get_code(s);
1685
+ return C;
1686
+ }, E.prototype._handle_control_flow_open = function(_, s) {
1687
+ var h = {
1688
+ text: s.text,
1689
+ type: s.type
1690
+ };
1691
+ return _.set_space_before_token(s.newlines || s.whitespace_before !== "", !0), s.newlines ? _.print_preserved_newlines(s) : _.set_space_before_token(s.newlines || s.whitespace_before !== "", !0), _.print_token(s), _.indent(), h;
1692
+ }, E.prototype._handle_control_flow_close = function(_, s) {
1693
+ var h = {
1694
+ text: s.text,
1695
+ type: s.type
1696
+ };
1697
+ return _.deindent(), s.newlines ? _.print_preserved_newlines(s) : _.set_space_before_token(s.newlines || s.whitespace_before !== "", !0), _.print_token(s), h;
1698
+ }, E.prototype._handle_tag_close = function(_, s, h) {
1699
+ var T = {
1700
+ text: s.text,
1701
+ type: s.type
1702
+ };
1703
+ return _.alignment_size = 0, h.tag_complete = !0, _.set_space_before_token(s.newlines || s.whitespace_before !== "", !0), h.is_unformatted ? _.add_raw_token(s) : (h.tag_start_char === "<" && (_.set_space_before_token(s.text[0] === "/", !0), this._is_wrap_attributes_force_expand_multiline && h.has_wrapped_attrs && _.print_newline(!1)), _.print_token(s)), h.indent_content && !(h.is_unformatted || h.is_content_unformatted) && (_.indent(), h.indent_content = !1), !h.is_inline_element && !(h.is_unformatted || h.is_content_unformatted) && _.set_wrap_point(), T;
1704
+ }, E.prototype._handle_inside_tag = function(_, s, h, T) {
1705
+ var y = h.has_wrapped_attrs, O = {
1706
+ text: s.text,
1707
+ type: s.type
1708
+ };
1709
+ return _.set_space_before_token(s.newlines || s.whitespace_before !== "", !0), h.is_unformatted ? _.add_raw_token(s) : h.tag_start_char === "{" && s.type === t.TEXT ? _.print_preserved_newlines(s) ? (s.newlines = 0, _.add_raw_token(s)) : _.print_token(s) : (s.type === t.ATTRIBUTE ? _.set_space_before_token(!0) : (s.type === t.EQUALS || s.type === t.VALUE && s.previous.type === t.EQUALS) && _.set_space_before_token(!1), s.type === t.ATTRIBUTE && h.tag_start_char === "<" && ((this._is_wrap_attributes_preserve || this._is_wrap_attributes_preserve_aligned) && (_.traverse_whitespace(s), y = y || s.newlines !== 0), this._is_wrap_attributes_force && h.attr_count >= this._options.wrap_attributes_min_attrs && (T.type !== t.TAG_OPEN || // ie. second attribute and beyond
1710
+ this._is_wrap_attributes_force_expand_multiline) && (_.print_newline(!1), y = !0)), _.print_token(s), y = y || _.previous_token_wrapped(), h.has_wrapped_attrs = y), O;
1711
+ }, E.prototype._handle_text = function(_, s, h) {
1712
+ var T = {
1713
+ text: s.text,
1714
+ type: "TK_CONTENT"
1715
+ };
1716
+ return h.custom_beautifier_name ? this._print_custom_beatifier_text(_, s, h) : h.is_unformatted || h.is_content_unformatted ? _.add_raw_token(s) : (_.traverse_whitespace(s), _.print_token(s)), T;
1717
+ }, E.prototype._print_custom_beatifier_text = function(_, s, h) {
1718
+ var T = this;
1719
+ if (s.text !== "") {
1720
+ var y = s.text, O, m = 1, v = "", f = "";
1721
+ h.custom_beautifier_name === "javascript" && typeof this._js_beautify == "function" ? O = this._js_beautify : h.custom_beautifier_name === "css" && typeof this._css_beautify == "function" ? O = this._css_beautify : h.custom_beautifier_name === "html" && (O = function(k, L) {
1722
+ var U = new E(k, L, T._js_beautify, T._css_beautify);
1723
+ return U.beautify();
1724
+ }), this._options.indent_scripts === "keep" ? m = 0 : this._options.indent_scripts === "separate" && (m = -_.indent_level);
1725
+ var C = _.get_full_indent(m);
1726
+ if (y = y.replace(/\n[ \t]*$/, ""), h.custom_beautifier_name !== "html" && y[0] === "<" && y.match(/^(<!--|<!\[CDATA\[)/)) {
1727
+ var r = /^(<!--[^\n]*|<!\[CDATA\[)(\n?)([ \t\n]*)([\s\S]*)(-->|]]>)$/.exec(y);
1728
+ if (!r) {
1729
+ _.add_raw_token(s);
1730
+ return;
1731
+ }
1732
+ v = C + r[1] + `
1733
+ `, y = r[4], r[5] && (f = C + r[5]), y = y.replace(/\n[ \t]*$/, ""), (r[2] || r[3].indexOf(`
1734
+ `) !== -1) && (r = r[3].match(/[ \t]+$/), r && (s.whitespace_before = r[0]));
1735
+ }
1736
+ if (y)
1737
+ if (O) {
1738
+ var D = function() {
1739
+ this.eol = `
1740
+ `;
1741
+ };
1742
+ D.prototype = this._options.raw_options;
1743
+ var A = new D();
1744
+ y = O(C + y, A);
1745
+ } else {
1746
+ var w = s.whitespace_before;
1747
+ w && (y = y.replace(new RegExp(`
1748
+ (` + w + ")?", "g"), `
1749
+ `)), y = C + y.replace(/\n/g, `
1750
+ ` + C);
1751
+ }
1752
+ v && (y ? y = v + y + `
1753
+ ` + f : y = v + f), _.print_newline(!1), y && (s.text = y, s.whitespace_before = "", s.newlines = 0, _.add_raw_token(s), _.print_newline(!0));
1754
+ }
1755
+ }, E.prototype._handle_tag_open = function(_, s, h, T, y) {
1756
+ var O = this._get_tag_open_token(s);
1757
+ if ((h.is_unformatted || h.is_content_unformatted) && !h.is_empty_element && s.type === t.TAG_OPEN && !O.is_start_tag ? (_.add_raw_token(s), O.start_tag_token = this._tag_stack.try_pop(O.tag_name)) : (_.traverse_whitespace(s), this._set_tag_position(_, s, O, h, T), O.is_inline_element || _.set_wrap_point(), _.print_token(s)), O.is_start_tag && this._is_wrap_attributes_force) {
1758
+ var m = 0, v;
1759
+ do
1760
+ v = y.peek(m), v.type === t.ATTRIBUTE && (O.attr_count += 1), m += 1;
1761
+ while (v.type !== t.EOF && v.type !== t.TAG_CLOSE);
1762
+ }
1763
+ return (this._is_wrap_attributes_force_aligned || this._is_wrap_attributes_aligned_multiple || this._is_wrap_attributes_preserve_aligned) && (O.alignment_size = s.text.length + 1), !O.tag_complete && !O.is_unformatted && (_.alignment_size = O.alignment_size), O;
1764
+ };
1765
+ var R = function(_, s, h) {
1766
+ if (this.parent = s || null, this.text = "", this.type = "TK_TAG_OPEN", this.tag_name = "", this.is_inline_element = !1, this.is_unformatted = !1, this.is_content_unformatted = !1, this.is_empty_element = !1, this.is_start_tag = !1, this.is_end_tag = !1, this.indent_content = !1, this.multiline_content = !1, this.custom_beautifier_name = null, this.start_tag_token = null, this.attr_count = 0, this.has_wrapped_attrs = !1, this.alignment_size = 0, this.tag_complete = !1, this.tag_start_char = "", this.tag_check = "", !h)
1767
+ this.tag_complete = !0;
1768
+ else {
1769
+ var T;
1770
+ this.tag_start_char = h.text[0], this.text = h.text, this.tag_start_char === "<" ? (T = h.text.match(/^<([^\s>]*)/), this.tag_check = T ? T[1] : "") : (T = h.text.match(/^{{~?(?:[\^]|#\*?)?([^\s}]+)/), this.tag_check = T ? T[1] : "", (h.text.startsWith("{{#>") || h.text.startsWith("{{~#>")) && this.tag_check[0] === ">" && (this.tag_check === ">" && h.next !== null ? this.tag_check = h.next.text.split(" ")[0] : this.tag_check = h.text.split(">")[1])), this.tag_check = this.tag_check.toLowerCase(), h.type === t.COMMENT && (this.tag_complete = !0), this.is_start_tag = this.tag_check.charAt(0) !== "/", this.tag_name = this.is_start_tag ? this.tag_check : this.tag_check.substr(1), this.is_end_tag = !this.is_start_tag || h.closed && h.closed.text === "/>";
1771
+ var y = 2;
1772
+ this.tag_start_char === "{" && this.text.length >= 3 && this.text.charAt(2) === "~" && (y = 3), this.is_end_tag = this.is_end_tag || this.tag_start_char === "{" && (!_.indent_handlebars || this.text.length < 3 || /[^#\^]/.test(this.text.charAt(y)));
1773
+ }
1774
+ };
1775
+ E.prototype._get_tag_open_token = function(_) {
1776
+ var s = new R(this._options, this._tag_stack.get_parser_token(), _);
1777
+ return s.alignment_size = this._options.wrap_attributes_indent_size, s.is_end_tag = s.is_end_tag || b(s.tag_check, this._options.void_elements), s.is_empty_element = s.tag_complete || s.is_start_tag && s.is_end_tag, s.is_unformatted = !s.tag_complete && b(s.tag_check, this._options.unformatted), s.is_content_unformatted = !s.is_empty_element && b(s.tag_check, this._options.content_unformatted), s.is_inline_element = b(s.tag_name, this._options.inline) || this._options.inline_custom_elements && s.tag_name.includes("-") || s.tag_start_char === "{", s;
1778
+ }, E.prototype._set_tag_position = function(_, s, h, T, y) {
1779
+ if (h.is_empty_element || (h.is_end_tag ? h.start_tag_token = this._tag_stack.try_pop(h.tag_name) : (this._do_optional_end_element(h) && (h.is_inline_element || _.print_newline(!1)), this._tag_stack.record_tag(h), (h.tag_name === "script" || h.tag_name === "style") && !(h.is_unformatted || h.is_content_unformatted) && (h.custom_beautifier_name = l(h.tag_check, s)))), b(h.tag_check, this._options.extra_liners) && (_.print_newline(!1), _._output.just_added_blankline() || _.print_newline(!0)), h.is_empty_element) {
1780
+ if (h.tag_start_char === "{" && h.tag_check === "else") {
1781
+ this._tag_stack.indent_to_tag(["if", "unless", "each"]), h.indent_content = !0;
1782
+ var O = _.current_line_has_match(/{{#if/);
1783
+ O || _.print_newline(!1);
1784
+ }
1785
+ h.tag_name === "!--" && y.type === t.TAG_CLOSE && T.is_end_tag && h.text.indexOf(`
1786
+ `) === -1 || (h.is_inline_element || h.is_unformatted || _.print_newline(!1), this._calcluate_parent_multiline(_, h));
1787
+ } else if (h.is_end_tag) {
1788
+ var m = !1;
1789
+ m = h.start_tag_token && h.start_tag_token.multiline_content, m = m || !h.is_inline_element && !(T.is_inline_element || T.is_unformatted) && !(y.type === t.TAG_CLOSE && h.start_tag_token === T) && y.type !== "TK_CONTENT", (h.is_content_unformatted || h.is_unformatted) && (m = !1), m && _.print_newline(!1);
1790
+ } else
1791
+ h.indent_content = !h.custom_beautifier_name, h.tag_start_char === "<" && (h.tag_name === "html" ? h.indent_content = this._options.indent_inner_html : h.tag_name === "head" ? h.indent_content = this._options.indent_head_inner_html : h.tag_name === "body" && (h.indent_content = this._options.indent_body_inner_html)), !(h.is_inline_element || h.is_unformatted) && (y.type !== "TK_CONTENT" || h.is_content_unformatted) && _.print_newline(!1), this._calcluate_parent_multiline(_, h);
1792
+ }, E.prototype._calcluate_parent_multiline = function(_, s) {
1793
+ s.parent && _._output.just_added_newline() && !((s.is_inline_element || s.is_unformatted) && s.parent.is_inline_element) && (s.parent.multiline_content = !0);
1794
+ };
1795
+ var q = ["address", "article", "aside", "blockquote", "details", "div", "dl", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hr", "main", "menu", "nav", "ol", "p", "pre", "section", "table", "ul"], N = ["a", "audio", "del", "ins", "map", "noscript", "video"];
1796
+ return E.prototype._do_optional_end_element = function(_) {
1797
+ var s = null;
1798
+ if (!(_.is_empty_element || !_.is_start_tag || !_.parent)) {
1799
+ if (_.tag_name === "body")
1800
+ s = s || this._tag_stack.try_pop("head");
1801
+ else if (_.tag_name === "li")
1802
+ s = s || this._tag_stack.try_pop("li", ["ol", "ul", "menu"]);
1803
+ else if (_.tag_name === "dd" || _.tag_name === "dt")
1804
+ s = s || this._tag_stack.try_pop("dt", ["dl"]), s = s || this._tag_stack.try_pop("dd", ["dl"]);
1805
+ else if (_.parent.tag_name === "p" && q.indexOf(_.tag_name) !== -1) {
1806
+ var h = _.parent.parent;
1807
+ (!h || N.indexOf(h.tag_name) === -1) && (s = s || this._tag_stack.try_pop("p"));
1808
+ } else _.tag_name === "rp" || _.tag_name === "rt" ? (s = s || this._tag_stack.try_pop("rt", ["ruby", "rtc"]), s = s || this._tag_stack.try_pop("rp", ["ruby", "rtc"])) : _.tag_name === "optgroup" ? s = s || this._tag_stack.try_pop("optgroup", ["select"]) : _.tag_name === "option" ? s = s || this._tag_stack.try_pop("option", ["select", "datalist", "optgroup"]) : _.tag_name === "colgroup" ? s = s || this._tag_stack.try_pop("caption", ["table"]) : _.tag_name === "thead" ? (s = s || this._tag_stack.try_pop("caption", ["table"]), s = s || this._tag_stack.try_pop("colgroup", ["table"])) : _.tag_name === "tbody" || _.tag_name === "tfoot" ? (s = s || this._tag_stack.try_pop("caption", ["table"]), s = s || this._tag_stack.try_pop("colgroup", ["table"]), s = s || this._tag_stack.try_pop("thead", ["table"]), s = s || this._tag_stack.try_pop("tbody", ["table"])) : _.tag_name === "tr" ? (s = s || this._tag_stack.try_pop("caption", ["table"]), s = s || this._tag_stack.try_pop("colgroup", ["table"]), s = s || this._tag_stack.try_pop("tr", ["table", "thead", "tbody", "tfoot"])) : (_.tag_name === "th" || _.tag_name === "td") && (s = s || this._tag_stack.try_pop("td", ["table", "thead", "tbody", "tfoot", "tr"]), s = s || this._tag_stack.try_pop("th", ["table", "thead", "tbody", "tfoot", "tr"]));
1809
+ return _.parent = this._tag_stack.get_parser_token(), s;
1810
+ }
1811
+ }, $e.Beautifier = E, $e;
1812
+ }
1813
+ var St;
1814
+ function Bu() {
1815
+ if (St) return xe.exports;
1816
+ St = 1;
1817
+ var e = wu().Beautifier, u = zt().Options;
1818
+ function i(t, a, n, c) {
1819
+ var o = new e(t, a, n, c);
1820
+ return o.beautify();
1821
+ }
1822
+ return xe.exports = i, xe.exports.defaultOptions = function() {
1823
+ return new u();
1824
+ }, xe.exports;
1825
+ }
1826
+ var Lt;
1827
+ function Tu() {
1828
+ if (Lt) return ne;
1829
+ Lt = 1;
1830
+ var e = yu(), u = Cu(), i = Bu();
1831
+ function t(a, n, c, o) {
1832
+ return c = c || e, o = o || u, i(a, n, c, o);
1833
+ }
1834
+ return t.defaultOptions = i.defaultOptions, ne.js = e, ne.css = u, ne.html = t, ne;
1835
+ }
1836
+ var Nt;
1837
+ function Fu() {
1838
+ return Nt || (Nt = 1, (function(e) {
1839
+ function u(i, t, a) {
1840
+ var n = function(c, o) {
1841
+ return i.js_beautify(c, o);
1842
+ };
1843
+ return n.js = i.js_beautify, n.css = t.css_beautify, n.html = a.html_beautify, n.js_beautify = i.js_beautify, n.css_beautify = t.css_beautify, n.html_beautify = a.html_beautify, n;
1844
+ }
1845
+ (function(i) {
1846
+ var t = Tu();
1847
+ t.js_beautify = t.js, t.css_beautify = t.css, t.html_beautify = t.html, i.exports = u(t, t, t);
1848
+ })(e);
1849
+ })(ke)), ke.exports;
1850
+ }
1851
+ var Ou = Fu(), le = { exports: {} };
1852
+ /*! https://mths.be/he v1.2.0 by @mathias | MIT license */
1853
+ var ku = le.exports, Pt;
1854
+ function Ru() {
1855
+ return Pt || (Pt = 1, (function(e, u) {
1856
+ (function(i) {
1857
+ var t = u, a = e && e.exports == t && e, n = typeof _t == "object" && _t;
1858
+ (n.global === n || n.window === n) && (i = n);
1859
+ var c = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, o = /[\x01-\x7F]/g, l = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g, b = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g, d = { "­": "shy", "‌": "zwnj", "‍": "zwj", "‎": "lrm", "⁣": "ic", "⁢": "it", "⁡": "af", "‏": "rlm", "​": "ZeroWidthSpace", "⁠": "NoBreak", "̑": "DownBreve", "⃛": "tdot", "⃜": "DotDot", " ": "Tab", "\n": "NewLine", " ": "puncsp", " ": "MediumSpace", " ": "thinsp", " ": "hairsp", " ": "emsp13", " ": "ensp", " ": "emsp14", " ": "emsp", " ": "numsp", " ": "nbsp", "  ": "ThickSpace", "‾": "oline", _: "lowbar", "‐": "dash", "–": "ndash", "—": "mdash", "―": "horbar", ",": "comma", ";": "semi", "⁏": "bsemi", ":": "colon", "⩴": "Colone", "!": "excl", "¡": "iexcl", "?": "quest", "¿": "iquest", ".": "period", "‥": "nldr", "…": "mldr", "·": "middot", "'": "apos", "‘": "lsquo", "’": "rsquo", "‚": "sbquo", "‹": "lsaquo", "›": "rsaquo", '"': "quot", "“": "ldquo", "”": "rdquo", "„": "bdquo", "«": "laquo", "»": "raquo", "(": "lpar", ")": "rpar", "[": "lsqb", "]": "rsqb", "{": "lcub", "}": "rcub", "⌈": "lceil", "⌉": "rceil", "⌊": "lfloor", "⌋": "rfloor", "⦅": "lopar", "⦆": "ropar", "⦋": "lbrke", "⦌": "rbrke", "⦍": "lbrkslu", "⦎": "rbrksld", "⦏": "lbrksld", "⦐": "rbrkslu", "⦑": "langd", "⦒": "rangd", "⦓": "lparlt", "⦔": "rpargt", "⦕": "gtlPar", "⦖": "ltrPar", "⟦": "lobrk", "⟧": "robrk", "⟨": "lang", "⟩": "rang", "⟪": "Lang", "⟫": "Rang", "⟬": "loang", "⟭": "roang", "❲": "lbbrk", "❳": "rbbrk", "‖": "Vert", "§": "sect", "¶": "para", "@": "commat", "*": "ast", "/": "sol", undefined: null, "&": "amp", "#": "num", "%": "percnt", "‰": "permil", "‱": "pertenk", "†": "dagger", "‡": "Dagger", "•": "bull", "⁃": "hybull", "′": "prime", "″": "Prime", "‴": "tprime", "⁗": "qprime", "‵": "bprime", "⁁": "caret", "`": "grave", "´": "acute", "˜": "tilde", "^": "Hat", "¯": "macr", "˘": "breve", "˙": "dot", "¨": "die", "˚": "ring", "˝": "dblac", "¸": "cedil", "˛": "ogon", "ˆ": "circ", "ˇ": "caron", "°": "deg", "©": "copy", "®": "reg", "℗": "copysr", "℘": "wp", "℞": "rx", "℧": "mho", "℩": "iiota", "←": "larr", "↚": "nlarr", "→": "rarr", "↛": "nrarr", "↑": "uarr", "↓": "darr", "↔": "harr", "↮": "nharr", "↕": "varr", "↖": "nwarr", "↗": "nearr", "↘": "searr", "↙": "swarr", "↝": "rarrw", "↝̸": "nrarrw", "↞": "Larr", "↟": "Uarr", "↠": "Rarr", "↡": "Darr", "↢": "larrtl", "↣": "rarrtl", "↤": "mapstoleft", "↥": "mapstoup", "↦": "map", "↧": "mapstodown", "↩": "larrhk", "↪": "rarrhk", "↫": "larrlp", "↬": "rarrlp", "↭": "harrw", "↰": "lsh", "↱": "rsh", "↲": "ldsh", "↳": "rdsh", "↵": "crarr", "↶": "cularr", "↷": "curarr", "↺": "olarr", "↻": "orarr", "↼": "lharu", "↽": "lhard", "↾": "uharr", "↿": "uharl", "⇀": "rharu", "⇁": "rhard", "⇂": "dharr", "⇃": "dharl", "⇄": "rlarr", "⇅": "udarr", "⇆": "lrarr", "⇇": "llarr", "⇈": "uuarr", "⇉": "rrarr", "⇊": "ddarr", "⇋": "lrhar", "⇌": "rlhar", "⇐": "lArr", "⇍": "nlArr", "⇑": "uArr", "⇒": "rArr", "⇏": "nrArr", "⇓": "dArr", "⇔": "iff", "⇎": "nhArr", "⇕": "vArr", "⇖": "nwArr", "⇗": "neArr", "⇘": "seArr", "⇙": "swArr", "⇚": "lAarr", "⇛": "rAarr", "⇝": "zigrarr", "⇤": "larrb", "⇥": "rarrb", "⇵": "duarr", "⇽": "loarr", "⇾": "roarr", "⇿": "hoarr", "∀": "forall", "∁": "comp", "∂": "part", "∂̸": "npart", "∃": "exist", "∄": "nexist", "∅": "empty", "∇": "Del", "∈": "in", "∉": "notin", "∋": "ni", "∌": "notni", "϶": "bepsi", "∏": "prod", "∐": "coprod", "∑": "sum", "+": "plus", "±": "pm", "÷": "div", "×": "times", "<": "lt", "≮": "nlt", "<⃒": "nvlt", "=": "equals", "≠": "ne", "=⃥": "bne", "⩵": "Equal", ">": "gt", "≯": "ngt", ">⃒": "nvgt", "¬": "not", "|": "vert", "¦": "brvbar", "−": "minus", "∓": "mp", "∔": "plusdo", "⁄": "frasl", "∖": "setmn", "∗": "lowast", "∘": "compfn", "√": "Sqrt", "∝": "prop", "∞": "infin", "∟": "angrt", "∠": "ang", "∠⃒": "nang", "∡": "angmsd", "∢": "angsph", "∣": "mid", "∤": "nmid", "∥": "par", "∦": "npar", "∧": "and", "∨": "or", "∩": "cap", "∩︀": "caps", "∪": "cup", "∪︀": "cups", "∫": "int", "∬": "Int", "∭": "tint", "⨌": "qint", "∮": "oint", "∯": "Conint", "∰": "Cconint", "∱": "cwint", "∲": "cwconint", "∳": "awconint", "∴": "there4", "∵": "becaus", "∶": "ratio", "∷": "Colon", "∸": "minusd", "∺": "mDDot", "∻": "homtht", "∼": "sim", "≁": "nsim", "∼⃒": "nvsim", "∽": "bsim", "∽̱": "race", "∾": "ac", "∾̳": "acE", "∿": "acd", "≀": "wr", "≂": "esim", "≂̸": "nesim", "≃": "sime", "≄": "nsime", "≅": "cong", "≇": "ncong", "≆": "simne", "≈": "ap", "≉": "nap", "≊": "ape", "≋": "apid", "≋̸": "napid", "≌": "bcong", "≍": "CupCap", "≭": "NotCupCap", "≍⃒": "nvap", "≎": "bump", "≎̸": "nbump", "≏": "bumpe", "≏̸": "nbumpe", "≐": "doteq", "≐̸": "nedot", "≑": "eDot", "≒": "efDot", "≓": "erDot", "≔": "colone", "≕": "ecolon", "≖": "ecir", "≗": "cire", "≙": "wedgeq", "≚": "veeeq", "≜": "trie", "≟": "equest", "≡": "equiv", "≢": "nequiv", "≡⃥": "bnequiv", "≤": "le", "≰": "nle", "≤⃒": "nvle", "≥": "ge", "≱": "nge", "≥⃒": "nvge", "≦": "lE", "≦̸": "nlE", "≧": "gE", "≧̸": "ngE", "≨︀": "lvnE", "≨": "lnE", "≩": "gnE", "≩︀": "gvnE", "≪": "ll", "≪̸": "nLtv", "≪⃒": "nLt", "≫": "gg", "≫̸": "nGtv", "≫⃒": "nGt", "≬": "twixt", "≲": "lsim", "≴": "nlsim", "≳": "gsim", "≵": "ngsim", "≶": "lg", "≸": "ntlg", "≷": "gl", "≹": "ntgl", "≺": "pr", "⊀": "npr", "≻": "sc", "⊁": "nsc", "≼": "prcue", "⋠": "nprcue", "≽": "sccue", "⋡": "nsccue", "≾": "prsim", "≿": "scsim", "≿̸": "NotSucceedsTilde", "⊂": "sub", "⊄": "nsub", "⊂⃒": "vnsub", "⊃": "sup", "⊅": "nsup", "⊃⃒": "vnsup", "⊆": "sube", "⊈": "nsube", "⊇": "supe", "⊉": "nsupe", "⊊︀": "vsubne", "⊊": "subne", "⊋︀": "vsupne", "⊋": "supne", "⊍": "cupdot", "⊎": "uplus", "⊏": "sqsub", "⊏̸": "NotSquareSubset", "⊐": "sqsup", "⊐̸": "NotSquareSuperset", "⊑": "sqsube", "⋢": "nsqsube", "⊒": "sqsupe", "⋣": "nsqsupe", "⊓": "sqcap", "⊓︀": "sqcaps", "⊔": "sqcup", "⊔︀": "sqcups", "⊕": "oplus", "⊖": "ominus", "⊗": "otimes", "⊘": "osol", "⊙": "odot", "⊚": "ocir", "⊛": "oast", "⊝": "odash", "⊞": "plusb", "⊟": "minusb", "⊠": "timesb", "⊡": "sdotb", "⊢": "vdash", "⊬": "nvdash", "⊣": "dashv", "⊤": "top", "⊥": "bot", "⊧": "models", "⊨": "vDash", "⊭": "nvDash", "⊩": "Vdash", "⊮": "nVdash", "⊪": "Vvdash", "⊫": "VDash", "⊯": "nVDash", "⊰": "prurel", "⊲": "vltri", "⋪": "nltri", "⊳": "vrtri", "⋫": "nrtri", "⊴": "ltrie", "⋬": "nltrie", "⊴⃒": "nvltrie", "⊵": "rtrie", "⋭": "nrtrie", "⊵⃒": "nvrtrie", "⊶": "origof", "⊷": "imof", "⊸": "mumap", "⊹": "hercon", "⊺": "intcal", "⊻": "veebar", "⊽": "barvee", "⊾": "angrtvb", "⊿": "lrtri", "⋀": "Wedge", "⋁": "Vee", "⋂": "xcap", "⋃": "xcup", "⋄": "diam", "⋅": "sdot", "⋆": "Star", "⋇": "divonx", "⋈": "bowtie", "⋉": "ltimes", "⋊": "rtimes", "⋋": "lthree", "⋌": "rthree", "⋍": "bsime", "⋎": "cuvee", "⋏": "cuwed", "⋐": "Sub", "⋑": "Sup", "⋒": "Cap", "⋓": "Cup", "⋔": "fork", "⋕": "epar", "⋖": "ltdot", "⋗": "gtdot", "⋘": "Ll", "⋘̸": "nLl", "⋙": "Gg", "⋙̸": "nGg", "⋚︀": "lesg", "⋚": "leg", "⋛": "gel", "⋛︀": "gesl", "⋞": "cuepr", "⋟": "cuesc", "⋦": "lnsim", "⋧": "gnsim", "⋨": "prnsim", "⋩": "scnsim", "⋮": "vellip", "⋯": "ctdot", "⋰": "utdot", "⋱": "dtdot", "⋲": "disin", "⋳": "isinsv", "⋴": "isins", "⋵": "isindot", "⋵̸": "notindot", "⋶": "notinvc", "⋷": "notinvb", "⋹": "isinE", "⋹̸": "notinE", "⋺": "nisd", "⋻": "xnis", "⋼": "nis", "⋽": "notnivc", "⋾": "notnivb", "⌅": "barwed", "⌆": "Barwed", "⌌": "drcrop", "⌍": "dlcrop", "⌎": "urcrop", "⌏": "ulcrop", "⌐": "bnot", "⌒": "profline", "⌓": "profsurf", "⌕": "telrec", "⌖": "target", "⌜": "ulcorn", "⌝": "urcorn", "⌞": "dlcorn", "⌟": "drcorn", "⌢": "frown", "⌣": "smile", "⌭": "cylcty", "⌮": "profalar", "⌶": "topbot", "⌽": "ovbar", "⌿": "solbar", "⍼": "angzarr", "⎰": "lmoust", "⎱": "rmoust", "⎴": "tbrk", "⎵": "bbrk", "⎶": "bbrktbrk", "⏜": "OverParenthesis", "⏝": "UnderParenthesis", "⏞": "OverBrace", "⏟": "UnderBrace", "⏢": "trpezium", "⏧": "elinters", "␣": "blank", "─": "boxh", "│": "boxv", "┌": "boxdr", "┐": "boxdl", "└": "boxur", "┘": "boxul", "├": "boxvr", "┤": "boxvl", "┬": "boxhd", "┴": "boxhu", "┼": "boxvh", "═": "boxH", "║": "boxV", "╒": "boxdR", "╓": "boxDr", "╔": "boxDR", "╕": "boxdL", "╖": "boxDl", "╗": "boxDL", "╘": "boxuR", "╙": "boxUr", "╚": "boxUR", "╛": "boxuL", "╜": "boxUl", "╝": "boxUL", "╞": "boxvR", "╟": "boxVr", "╠": "boxVR", "╡": "boxvL", "╢": "boxVl", "╣": "boxVL", "╤": "boxHd", "╥": "boxhD", "╦": "boxHD", "╧": "boxHu", "╨": "boxhU", "╩": "boxHU", "╪": "boxvH", "╫": "boxVh", "╬": "boxVH", "▀": "uhblk", "▄": "lhblk", "█": "block", "░": "blk14", "▒": "blk12", "▓": "blk34", "□": "squ", "▪": "squf", "▫": "EmptyVerySmallSquare", "▭": "rect", "▮": "marker", "▱": "fltns", "△": "xutri", "▴": "utrif", "▵": "utri", "▸": "rtrif", "▹": "rtri", "▽": "xdtri", "▾": "dtrif", "▿": "dtri", "◂": "ltrif", "◃": "ltri", "◊": "loz", "○": "cir", "◬": "tridot", "◯": "xcirc", "◸": "ultri", "◹": "urtri", "◺": "lltri", "◻": "EmptySmallSquare", "◼": "FilledSmallSquare", "★": "starf", "☆": "star", "☎": "phone", "♀": "female", "♂": "male", "♠": "spades", "♣": "clubs", "♥": "hearts", "♦": "diams", "♪": "sung", "✓": "check", "✗": "cross", "✠": "malt", "✶": "sext", "❘": "VerticalSeparator", "⟈": "bsolhsub", "⟉": "suphsol", "⟵": "xlarr", "⟶": "xrarr", "⟷": "xharr", "⟸": "xlArr", "⟹": "xrArr", "⟺": "xhArr", "⟼": "xmap", "⟿": "dzigrarr", "⤂": "nvlArr", "⤃": "nvrArr", "⤄": "nvHarr", "⤅": "Map", "⤌": "lbarr", "⤍": "rbarr", "⤎": "lBarr", "⤏": "rBarr", "⤐": "RBarr", "⤑": "DDotrahd", "⤒": "UpArrowBar", "⤓": "DownArrowBar", "⤖": "Rarrtl", "⤙": "latail", "⤚": "ratail", "⤛": "lAtail", "⤜": "rAtail", "⤝": "larrfs", "⤞": "rarrfs", "⤟": "larrbfs", "⤠": "rarrbfs", "⤣": "nwarhk", "⤤": "nearhk", "⤥": "searhk", "⤦": "swarhk", "⤧": "nwnear", "⤨": "toea", "⤩": "tosa", "⤪": "swnwar", "⤳": "rarrc", "⤳̸": "nrarrc", "⤵": "cudarrr", "⤶": "ldca", "⤷": "rdca", "⤸": "cudarrl", "⤹": "larrpl", "⤼": "curarrm", "⤽": "cularrp", "⥅": "rarrpl", "⥈": "harrcir", "⥉": "Uarrocir", "⥊": "lurdshar", "⥋": "ldrushar", "⥎": "LeftRightVector", "⥏": "RightUpDownVector", "⥐": "DownLeftRightVector", "⥑": "LeftUpDownVector", "⥒": "LeftVectorBar", "⥓": "RightVectorBar", "⥔": "RightUpVectorBar", "⥕": "RightDownVectorBar", "⥖": "DownLeftVectorBar", "⥗": "DownRightVectorBar", "⥘": "LeftUpVectorBar", "⥙": "LeftDownVectorBar", "⥚": "LeftTeeVector", "⥛": "RightTeeVector", "⥜": "RightUpTeeVector", "⥝": "RightDownTeeVector", "⥞": "DownLeftTeeVector", "⥟": "DownRightTeeVector", "⥠": "LeftUpTeeVector", "⥡": "LeftDownTeeVector", "⥢": "lHar", "⥣": "uHar", "⥤": "rHar", "⥥": "dHar", "⥦": "luruhar", "⥧": "ldrdhar", "⥨": "ruluhar", "⥩": "rdldhar", "⥪": "lharul", "⥫": "llhard", "⥬": "rharul", "⥭": "lrhard", "⥮": "udhar", "⥯": "duhar", "⥰": "RoundImplies", "⥱": "erarr", "⥲": "simrarr", "⥳": "larrsim", "⥴": "rarrsim", "⥵": "rarrap", "⥶": "ltlarr", "⥸": "gtrarr", "⥹": "subrarr", "⥻": "suplarr", "⥼": "lfisht", "⥽": "rfisht", "⥾": "ufisht", "⥿": "dfisht", "⦚": "vzigzag", "⦜": "vangrt", "⦝": "angrtvbd", "⦤": "ange", "⦥": "range", "⦦": "dwangle", "⦧": "uwangle", "⦨": "angmsdaa", "⦩": "angmsdab", "⦪": "angmsdac", "⦫": "angmsdad", "⦬": "angmsdae", "⦭": "angmsdaf", "⦮": "angmsdag", "⦯": "angmsdah", "⦰": "bemptyv", "⦱": "demptyv", "⦲": "cemptyv", "⦳": "raemptyv", "⦴": "laemptyv", "⦵": "ohbar", "⦶": "omid", "⦷": "opar", "⦹": "operp", "⦻": "olcross", "⦼": "odsold", "⦾": "olcir", "⦿": "ofcir", "⧀": "olt", "⧁": "ogt", "⧂": "cirscir", "⧃": "cirE", "⧄": "solb", "⧅": "bsolb", "⧉": "boxbox", "⧍": "trisb", "⧎": "rtriltri", "⧏": "LeftTriangleBar", "⧏̸": "NotLeftTriangleBar", "⧐": "RightTriangleBar", "⧐̸": "NotRightTriangleBar", "⧜": "iinfin", "⧝": "infintie", "⧞": "nvinfin", "⧣": "eparsl", "⧤": "smeparsl", "⧥": "eqvparsl", "⧫": "lozf", "⧴": "RuleDelayed", "⧶": "dsol", "⨀": "xodot", "⨁": "xoplus", "⨂": "xotime", "⨄": "xuplus", "⨆": "xsqcup", "⨍": "fpartint", "⨐": "cirfnint", "⨑": "awint", "⨒": "rppolint", "⨓": "scpolint", "⨔": "npolint", "⨕": "pointint", "⨖": "quatint", "⨗": "intlarhk", "⨢": "pluscir", "⨣": "plusacir", "⨤": "simplus", "⨥": "plusdu", "⨦": "plussim", "⨧": "plustwo", "⨩": "mcomma", "⨪": "minusdu", "⨭": "loplus", "⨮": "roplus", "⨯": "Cross", "⨰": "timesd", "⨱": "timesbar", "⨳": "smashp", "⨴": "lotimes", "⨵": "rotimes", "⨶": "otimesas", "⨷": "Otimes", "⨸": "odiv", "⨹": "triplus", "⨺": "triminus", "⨻": "tritime", "⨼": "iprod", "⨿": "amalg", "⩀": "capdot", "⩂": "ncup", "⩃": "ncap", "⩄": "capand", "⩅": "cupor", "⩆": "cupcap", "⩇": "capcup", "⩈": "cupbrcap", "⩉": "capbrcup", "⩊": "cupcup", "⩋": "capcap", "⩌": "ccups", "⩍": "ccaps", "⩐": "ccupssm", "⩓": "And", "⩔": "Or", "⩕": "andand", "⩖": "oror", "⩗": "orslope", "⩘": "andslope", "⩚": "andv", "⩛": "orv", "⩜": "andd", "⩝": "ord", "⩟": "wedbar", "⩦": "sdote", "⩪": "simdot", "⩭": "congdot", "⩭̸": "ncongdot", "⩮": "easter", "⩯": "apacir", "⩰": "apE", "⩰̸": "napE", "⩱": "eplus", "⩲": "pluse", "⩳": "Esim", "⩷": "eDDot", "⩸": "equivDD", "⩹": "ltcir", "⩺": "gtcir", "⩻": "ltquest", "⩼": "gtquest", "⩽": "les", "⩽̸": "nles", "⩾": "ges", "⩾̸": "nges", "⩿": "lesdot", "⪀": "gesdot", "⪁": "lesdoto", "⪂": "gesdoto", "⪃": "lesdotor", "⪄": "gesdotol", "⪅": "lap", "⪆": "gap", "⪇": "lne", "⪈": "gne", "⪉": "lnap", "⪊": "gnap", "⪋": "lEg", "⪌": "gEl", "⪍": "lsime", "⪎": "gsime", "⪏": "lsimg", "⪐": "gsiml", "⪑": "lgE", "⪒": "glE", "⪓": "lesges", "⪔": "gesles", "⪕": "els", "⪖": "egs", "⪗": "elsdot", "⪘": "egsdot", "⪙": "el", "⪚": "eg", "⪝": "siml", "⪞": "simg", "⪟": "simlE", "⪠": "simgE", "⪡": "LessLess", "⪡̸": "NotNestedLessLess", "⪢": "GreaterGreater", "⪢̸": "NotNestedGreaterGreater", "⪤": "glj", "⪥": "gla", "⪦": "ltcc", "⪧": "gtcc", "⪨": "lescc", "⪩": "gescc", "⪪": "smt", "⪫": "lat", "⪬": "smte", "⪬︀": "smtes", "⪭": "late", "⪭︀": "lates", "⪮": "bumpE", "⪯": "pre", "⪯̸": "npre", "⪰": "sce", "⪰̸": "nsce", "⪳": "prE", "⪴": "scE", "⪵": "prnE", "⪶": "scnE", "⪷": "prap", "⪸": "scap", "⪹": "prnap", "⪺": "scnap", "⪻": "Pr", "⪼": "Sc", "⪽": "subdot", "⪾": "supdot", "⪿": "subplus", "⫀": "supplus", "⫁": "submult", "⫂": "supmult", "⫃": "subedot", "⫄": "supedot", "⫅": "subE", "⫅̸": "nsubE", "⫆": "supE", "⫆̸": "nsupE", "⫇": "subsim", "⫈": "supsim", "⫋︀": "vsubnE", "⫋": "subnE", "⫌︀": "vsupnE", "⫌": "supnE", "⫏": "csub", "⫐": "csup", "⫑": "csube", "⫒": "csupe", "⫓": "subsup", "⫔": "supsub", "⫕": "subsub", "⫖": "supsup", "⫗": "suphsub", "⫘": "supdsub", "⫙": "forkv", "⫚": "topfork", "⫛": "mlcp", "⫤": "Dashv", "⫦": "Vdashl", "⫧": "Barv", "⫨": "vBar", "⫩": "vBarv", "⫫": "Vbar", "⫬": "Not", "⫭": "bNot", "⫮": "rnmid", "⫯": "cirmid", "⫰": "midcir", "⫱": "topcir", "⫲": "nhpar", "⫳": "parsim", "⫽": "parsl", "⫽⃥": "nparsl", "♭": "flat", "♮": "natur", "♯": "sharp", "¤": "curren", "¢": "cent", $: "dollar", "£": "pound", "¥": "yen", "€": "euro", "¹": "sup1", "½": "half", "⅓": "frac13", "¼": "frac14", "⅕": "frac15", "⅙": "frac16", "⅛": "frac18", "²": "sup2", "⅔": "frac23", "⅖": "frac25", "³": "sup3", "¾": "frac34", "⅗": "frac35", "⅜": "frac38", "⅘": "frac45", "⅚": "frac56", "⅝": "frac58", "⅞": "frac78", "𝒶": "ascr", "𝕒": "aopf", "𝔞": "afr", "𝔸": "Aopf", "𝔄": "Afr", "𝒜": "Ascr", ª: "ordf", á: "aacute", Á: "Aacute", à: "agrave", À: "Agrave", ă: "abreve", Ă: "Abreve", â: "acirc", Â: "Acirc", å: "aring", Å: "angst", ä: "auml", Ä: "Auml", ã: "atilde", Ã: "Atilde", ą: "aogon", Ą: "Aogon", ā: "amacr", Ā: "Amacr", æ: "aelig", Æ: "AElig", "𝒷": "bscr", "𝕓": "bopf", "𝔟": "bfr", "𝔹": "Bopf", ℬ: "Bscr", "𝔅": "Bfr", "𝔠": "cfr", "𝒸": "cscr", "𝕔": "copf", ℭ: "Cfr", "𝒞": "Cscr", ℂ: "Copf", ć: "cacute", Ć: "Cacute", ĉ: "ccirc", Ĉ: "Ccirc", č: "ccaron", Č: "Ccaron", ċ: "cdot", Ċ: "Cdot", ç: "ccedil", Ç: "Ccedil", "℅": "incare", "𝔡": "dfr", "ⅆ": "dd", "𝕕": "dopf", "𝒹": "dscr", "𝒟": "Dscr", "𝔇": "Dfr", "ⅅ": "DD", "𝔻": "Dopf", ď: "dcaron", Ď: "Dcaron", đ: "dstrok", Đ: "Dstrok", ð: "eth", Ð: "ETH", "ⅇ": "ee", ℯ: "escr", "𝔢": "efr", "𝕖": "eopf", ℰ: "Escr", "𝔈": "Efr", "𝔼": "Eopf", é: "eacute", É: "Eacute", è: "egrave", È: "Egrave", ê: "ecirc", Ê: "Ecirc", ě: "ecaron", Ě: "Ecaron", ë: "euml", Ë: "Euml", ė: "edot", Ė: "Edot", ę: "eogon", Ę: "Eogon", ē: "emacr", Ē: "Emacr", "𝔣": "ffr", "𝕗": "fopf", "𝒻": "fscr", "𝔉": "Ffr", "𝔽": "Fopf", ℱ: "Fscr", ff: "fflig", ffi: "ffilig", ffl: "ffllig", fi: "filig", fj: "fjlig", fl: "fllig", ƒ: "fnof", ℊ: "gscr", "𝕘": "gopf", "𝔤": "gfr", "𝒢": "Gscr", "𝔾": "Gopf", "𝔊": "Gfr", ǵ: "gacute", ğ: "gbreve", Ğ: "Gbreve", ĝ: "gcirc", Ĝ: "Gcirc", ġ: "gdot", Ġ: "Gdot", Ģ: "Gcedil", "𝔥": "hfr", ℎ: "planckh", "𝒽": "hscr", "𝕙": "hopf", ℋ: "Hscr", ℌ: "Hfr", ℍ: "Hopf", ĥ: "hcirc", Ĥ: "Hcirc", ℏ: "hbar", ħ: "hstrok", Ħ: "Hstrok", "𝕚": "iopf", "𝔦": "ifr", "𝒾": "iscr", "ⅈ": "ii", "𝕀": "Iopf", ℐ: "Iscr", ℑ: "Im", í: "iacute", Í: "Iacute", ì: "igrave", Ì: "Igrave", î: "icirc", Î: "Icirc", ï: "iuml", Ï: "Iuml", ĩ: "itilde", Ĩ: "Itilde", İ: "Idot", į: "iogon", Į: "Iogon", ī: "imacr", Ī: "Imacr", ij: "ijlig", IJ: "IJlig", ı: "imath", "𝒿": "jscr", "𝕛": "jopf", "𝔧": "jfr", "𝒥": "Jscr", "𝔍": "Jfr", "𝕁": "Jopf", ĵ: "jcirc", Ĵ: "Jcirc", "ȷ": "jmath", "𝕜": "kopf", "𝓀": "kscr", "𝔨": "kfr", "𝒦": "Kscr", "𝕂": "Kopf", "𝔎": "Kfr", ķ: "kcedil", Ķ: "Kcedil", "𝔩": "lfr", "𝓁": "lscr", ℓ: "ell", "𝕝": "lopf", ℒ: "Lscr", "𝔏": "Lfr", "𝕃": "Lopf", ĺ: "lacute", Ĺ: "Lacute", ľ: "lcaron", Ľ: "Lcaron", ļ: "lcedil", Ļ: "Lcedil", ł: "lstrok", Ł: "Lstrok", ŀ: "lmidot", Ŀ: "Lmidot", "𝔪": "mfr", "𝕞": "mopf", "𝓂": "mscr", "𝔐": "Mfr", "𝕄": "Mopf", ℳ: "Mscr", "𝔫": "nfr", "𝕟": "nopf", "𝓃": "nscr", ℕ: "Nopf", "𝒩": "Nscr", "𝔑": "Nfr", ń: "nacute", Ń: "Nacute", ň: "ncaron", Ň: "Ncaron", ñ: "ntilde", Ñ: "Ntilde", ņ: "ncedil", Ņ: "Ncedil", "№": "numero", ŋ: "eng", Ŋ: "ENG", "𝕠": "oopf", "𝔬": "ofr", ℴ: "oscr", "𝒪": "Oscr", "𝔒": "Ofr", "𝕆": "Oopf", º: "ordm", ó: "oacute", Ó: "Oacute", ò: "ograve", Ò: "Ograve", ô: "ocirc", Ô: "Ocirc", ö: "ouml", Ö: "Ouml", ő: "odblac", Ő: "Odblac", õ: "otilde", Õ: "Otilde", ø: "oslash", Ø: "Oslash", ō: "omacr", Ō: "Omacr", œ: "oelig", Œ: "OElig", "𝔭": "pfr", "𝓅": "pscr", "𝕡": "popf", ℙ: "Popf", "𝔓": "Pfr", "𝒫": "Pscr", "𝕢": "qopf", "𝔮": "qfr", "𝓆": "qscr", "𝒬": "Qscr", "𝔔": "Qfr", ℚ: "Qopf", ĸ: "kgreen", "𝔯": "rfr", "𝕣": "ropf", "𝓇": "rscr", ℛ: "Rscr", ℜ: "Re", ℝ: "Ropf", ŕ: "racute", Ŕ: "Racute", ř: "rcaron", Ř: "Rcaron", ŗ: "rcedil", Ŗ: "Rcedil", "𝕤": "sopf", "𝓈": "sscr", "𝔰": "sfr", "𝕊": "Sopf", "𝔖": "Sfr", "𝒮": "Sscr", "Ⓢ": "oS", ś: "sacute", Ś: "Sacute", ŝ: "scirc", Ŝ: "Scirc", š: "scaron", Š: "Scaron", ş: "scedil", Ş: "Scedil", ß: "szlig", "𝔱": "tfr", "𝓉": "tscr", "𝕥": "topf", "𝒯": "Tscr", "𝔗": "Tfr", "𝕋": "Topf", ť: "tcaron", Ť: "Tcaron", ţ: "tcedil", Ţ: "Tcedil", "™": "trade", ŧ: "tstrok", Ŧ: "Tstrok", "𝓊": "uscr", "𝕦": "uopf", "𝔲": "ufr", "𝕌": "Uopf", "𝔘": "Ufr", "𝒰": "Uscr", ú: "uacute", Ú: "Uacute", ù: "ugrave", Ù: "Ugrave", ŭ: "ubreve", Ŭ: "Ubreve", û: "ucirc", Û: "Ucirc", ů: "uring", Ů: "Uring", ü: "uuml", Ü: "Uuml", ű: "udblac", Ű: "Udblac", ũ: "utilde", Ũ: "Utilde", ų: "uogon", Ų: "Uogon", ū: "umacr", Ū: "Umacr", "𝔳": "vfr", "𝕧": "vopf", "𝓋": "vscr", "𝔙": "Vfr", "𝕍": "Vopf", "𝒱": "Vscr", "𝕨": "wopf", "𝓌": "wscr", "𝔴": "wfr", "𝒲": "Wscr", "𝕎": "Wopf", "𝔚": "Wfr", ŵ: "wcirc", Ŵ: "Wcirc", "𝔵": "xfr", "𝓍": "xscr", "𝕩": "xopf", "𝕏": "Xopf", "𝔛": "Xfr", "𝒳": "Xscr", "𝔶": "yfr", "𝓎": "yscr", "𝕪": "yopf", "𝒴": "Yscr", "𝔜": "Yfr", "𝕐": "Yopf", ý: "yacute", Ý: "Yacute", ŷ: "ycirc", Ŷ: "Ycirc", ÿ: "yuml", Ÿ: "Yuml", "𝓏": "zscr", "𝔷": "zfr", "𝕫": "zopf", ℨ: "Zfr", ℤ: "Zopf", "𝒵": "Zscr", ź: "zacute", Ź: "Zacute", ž: "zcaron", Ž: "Zcaron", ż: "zdot", Ż: "Zdot", Ƶ: "imped", þ: "thorn", Þ: "THORN", ʼn: "napos", α: "alpha", Α: "Alpha", β: "beta", Β: "Beta", γ: "gamma", Γ: "Gamma", δ: "delta", Δ: "Delta", ε: "epsi", "ϵ": "epsiv", Ε: "Epsilon", ϝ: "gammad", Ϝ: "Gammad", ζ: "zeta", Ζ: "Zeta", η: "eta", Η: "Eta", θ: "theta", ϑ: "thetav", Θ: "Theta", ι: "iota", Ι: "Iota", κ: "kappa", ϰ: "kappav", Κ: "Kappa", λ: "lambda", Λ: "Lambda", μ: "mu", µ: "micro", Μ: "Mu", ν: "nu", Ν: "Nu", ξ: "xi", Ξ: "Xi", ο: "omicron", Ο: "Omicron", π: "pi", ϖ: "piv", Π: "Pi", ρ: "rho", ϱ: "rhov", Ρ: "Rho", σ: "sigma", Σ: "Sigma", ς: "sigmaf", τ: "tau", Τ: "Tau", υ: "upsi", Υ: "Upsilon", ϒ: "Upsi", φ: "phi", ϕ: "phiv", Φ: "Phi", χ: "chi", Χ: "Chi", ψ: "psi", Ψ: "Psi", ω: "omega", Ω: "ohm", а: "acy", А: "Acy", б: "bcy", Б: "Bcy", в: "vcy", В: "Vcy", г: "gcy", Г: "Gcy", ѓ: "gjcy", Ѓ: "GJcy", д: "dcy", Д: "Dcy", ђ: "djcy", Ђ: "DJcy", е: "iecy", Е: "IEcy", ё: "iocy", Ё: "IOcy", є: "jukcy", Є: "Jukcy", ж: "zhcy", Ж: "ZHcy", з: "zcy", З: "Zcy", ѕ: "dscy", Ѕ: "DScy", и: "icy", И: "Icy", і: "iukcy", І: "Iukcy", ї: "yicy", Ї: "YIcy", й: "jcy", Й: "Jcy", ј: "jsercy", Ј: "Jsercy", к: "kcy", К: "Kcy", ќ: "kjcy", Ќ: "KJcy", л: "lcy", Л: "Lcy", љ: "ljcy", Љ: "LJcy", м: "mcy", М: "Mcy", н: "ncy", Н: "Ncy", њ: "njcy", Њ: "NJcy", о: "ocy", О: "Ocy", п: "pcy", П: "Pcy", р: "rcy", Р: "Rcy", с: "scy", С: "Scy", т: "tcy", Т: "Tcy", ћ: "tshcy", Ћ: "TSHcy", у: "ucy", У: "Ucy", ў: "ubrcy", Ў: "Ubrcy", ф: "fcy", Ф: "Fcy", х: "khcy", Х: "KHcy", ц: "tscy", Ц: "TScy", ч: "chcy", Ч: "CHcy", џ: "dzcy", Џ: "DZcy", ш: "shcy", Ш: "SHcy", щ: "shchcy", Щ: "SHCHcy", ъ: "hardcy", Ъ: "HARDcy", ы: "ycy", Ы: "Ycy", ь: "softcy", Ь: "SOFTcy", э: "ecy", Э: "Ecy", ю: "yucy", Ю: "YUcy", я: "yacy", Я: "YAcy", ℵ: "aleph", ℶ: "beth", ℷ: "gimel", ℸ: "daleth" }, g = /["&'<>`]/g, E = {
1860
+ '"': "&quot;",
1861
+ "&": "&amp;",
1862
+ "'": "&#x27;",
1863
+ "<": "&lt;",
1864
+ // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the
1865
+ // following is not strictly necessary unless it’s part of a tag or an
1866
+ // unquoted attribute value. We’re only escaping it to support those
1867
+ // situations, and for XML support.
1868
+ ">": "&gt;",
1869
+ // In Internet Explorer ≤ 8, the backtick character can be used
1870
+ // to break out of (un)quoted attribute values or HTML comments.
1871
+ // See http://html5sec.org/#102, http://html5sec.org/#108, and
1872
+ // http://html5sec.org/#133.
1873
+ "`": "&#x60;"
1874
+ }, R = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/, q = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/, N = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g, _ = { aacute: "á", Aacute: "Á", abreve: "ă", Abreve: "Ă", ac: "∾", acd: "∿", acE: "∾̳", acirc: "â", Acirc: "Â", acute: "´", acy: "а", Acy: "А", aelig: "æ", AElig: "Æ", af: "⁡", afr: "𝔞", Afr: "𝔄", agrave: "à", Agrave: "À", alefsym: "ℵ", aleph: "ℵ", alpha: "α", Alpha: "Α", amacr: "ā", Amacr: "Ā", amalg: "⨿", amp: "&", AMP: "&", and: "∧", And: "⩓", andand: "⩕", andd: "⩜", andslope: "⩘", andv: "⩚", ang: "∠", ange: "⦤", angle: "∠", angmsd: "∡", angmsdaa: "⦨", angmsdab: "⦩", angmsdac: "⦪", angmsdad: "⦫", angmsdae: "⦬", angmsdaf: "⦭", angmsdag: "⦮", angmsdah: "⦯", angrt: "∟", angrtvb: "⊾", angrtvbd: "⦝", angsph: "∢", angst: "Å", angzarr: "⍼", aogon: "ą", Aogon: "Ą", aopf: "𝕒", Aopf: "𝔸", ap: "≈", apacir: "⩯", ape: "≊", apE: "⩰", apid: "≋", apos: "'", ApplyFunction: "⁡", approx: "≈", approxeq: "≊", aring: "å", Aring: "Å", ascr: "𝒶", Ascr: "𝒜", Assign: "≔", ast: "*", asymp: "≈", asympeq: "≍", atilde: "ã", Atilde: "Ã", auml: "ä", Auml: "Ä", awconint: "∳", awint: "⨑", backcong: "≌", backepsilon: "϶", backprime: "‵", backsim: "∽", backsimeq: "⋍", Backslash: "∖", Barv: "⫧", barvee: "⊽", barwed: "⌅", Barwed: "⌆", barwedge: "⌅", bbrk: "⎵", bbrktbrk: "⎶", bcong: "≌", bcy: "б", Bcy: "Б", bdquo: "„", becaus: "∵", because: "∵", Because: "∵", bemptyv: "⦰", bepsi: "϶", bernou: "ℬ", Bernoullis: "ℬ", beta: "β", Beta: "Β", beth: "ℶ", between: "≬", bfr: "𝔟", Bfr: "𝔅", bigcap: "⋂", bigcirc: "◯", bigcup: "⋃", bigodot: "⨀", bigoplus: "⨁", bigotimes: "⨂", bigsqcup: "⨆", bigstar: "★", bigtriangledown: "▽", bigtriangleup: "△", biguplus: "⨄", bigvee: "⋁", bigwedge: "⋀", bkarow: "⤍", blacklozenge: "⧫", blacksquare: "▪", blacktriangle: "▴", blacktriangledown: "▾", blacktriangleleft: "◂", blacktriangleright: "▸", blank: "␣", blk12: "▒", blk14: "░", blk34: "▓", block: "█", bne: "=⃥", bnequiv: "≡⃥", bnot: "⌐", bNot: "⫭", bopf: "𝕓", Bopf: "𝔹", bot: "⊥", bottom: "⊥", bowtie: "⋈", boxbox: "⧉", boxdl: "┐", boxdL: "╕", boxDl: "╖", boxDL: "╗", boxdr: "┌", boxdR: "╒", boxDr: "╓", boxDR: "╔", boxh: "─", boxH: "═", boxhd: "┬", boxhD: "╥", boxHd: "╤", boxHD: "╦", boxhu: "┴", boxhU: "╨", boxHu: "╧", boxHU: "╩", boxminus: "⊟", boxplus: "⊞", boxtimes: "⊠", boxul: "┘", boxuL: "╛", boxUl: "╜", boxUL: "╝", boxur: "└", boxuR: "╘", boxUr: "╙", boxUR: "╚", boxv: "│", boxV: "║", boxvh: "┼", boxvH: "╪", boxVh: "╫", boxVH: "╬", boxvl: "┤", boxvL: "╡", boxVl: "╢", boxVL: "╣", boxvr: "├", boxvR: "╞", boxVr: "╟", boxVR: "╠", bprime: "‵", breve: "˘", Breve: "˘", brvbar: "¦", bscr: "𝒷", Bscr: "ℬ", bsemi: "⁏", bsim: "∽", bsime: "⋍", bsol: "\\", bsolb: "⧅", bsolhsub: "⟈", bull: "•", bullet: "•", bump: "≎", bumpe: "≏", bumpE: "⪮", bumpeq: "≏", Bumpeq: "≎", cacute: "ć", Cacute: "Ć", cap: "∩", Cap: "⋒", capand: "⩄", capbrcup: "⩉", capcap: "⩋", capcup: "⩇", capdot: "⩀", CapitalDifferentialD: "ⅅ", caps: "∩︀", caret: "⁁", caron: "ˇ", Cayleys: "ℭ", ccaps: "⩍", ccaron: "č", Ccaron: "Č", ccedil: "ç", Ccedil: "Ç", ccirc: "ĉ", Ccirc: "Ĉ", Cconint: "∰", ccups: "⩌", ccupssm: "⩐", cdot: "ċ", Cdot: "Ċ", cedil: "¸", Cedilla: "¸", cemptyv: "⦲", cent: "¢", centerdot: "·", CenterDot: "·", cfr: "𝔠", Cfr: "ℭ", chcy: "ч", CHcy: "Ч", check: "✓", checkmark: "✓", chi: "χ", Chi: "Χ", cir: "○", circ: "ˆ", circeq: "≗", circlearrowleft: "↺", circlearrowright: "↻", circledast: "⊛", circledcirc: "⊚", circleddash: "⊝", CircleDot: "⊙", circledR: "®", circledS: "Ⓢ", CircleMinus: "⊖", CirclePlus: "⊕", CircleTimes: "⊗", cire: "≗", cirE: "⧃", cirfnint: "⨐", cirmid: "⫯", cirscir: "⧂", ClockwiseContourIntegral: "∲", CloseCurlyDoubleQuote: "”", CloseCurlyQuote: "’", clubs: "♣", clubsuit: "♣", colon: ":", Colon: "∷", colone: "≔", Colone: "⩴", coloneq: "≔", comma: ",", commat: "@", comp: "∁", compfn: "∘", complement: "∁", complexes: "ℂ", cong: "≅", congdot: "⩭", Congruent: "≡", conint: "∮", Conint: "∯", ContourIntegral: "∮", copf: "𝕔", Copf: "ℂ", coprod: "∐", Coproduct: "∐", copy: "©", COPY: "©", copysr: "℗", CounterClockwiseContourIntegral: "∳", crarr: "↵", cross: "✗", Cross: "⨯", cscr: "𝒸", Cscr: "𝒞", csub: "⫏", csube: "⫑", csup: "⫐", csupe: "⫒", ctdot: "⋯", cudarrl: "⤸", cudarrr: "⤵", cuepr: "⋞", cuesc: "⋟", cularr: "↶", cularrp: "⤽", cup: "∪", Cup: "⋓", cupbrcap: "⩈", cupcap: "⩆", CupCap: "≍", cupcup: "⩊", cupdot: "⊍", cupor: "⩅", cups: "∪︀", curarr: "↷", curarrm: "⤼", curlyeqprec: "⋞", curlyeqsucc: "⋟", curlyvee: "⋎", curlywedge: "⋏", curren: "¤", curvearrowleft: "↶", curvearrowright: "↷", cuvee: "⋎", cuwed: "⋏", cwconint: "∲", cwint: "∱", cylcty: "⌭", dagger: "†", Dagger: "‡", daleth: "ℸ", darr: "↓", dArr: "⇓", Darr: "↡", dash: "‐", dashv: "⊣", Dashv: "⫤", dbkarow: "⤏", dblac: "˝", dcaron: "ď", Dcaron: "Ď", dcy: "д", Dcy: "Д", dd: "ⅆ", DD: "ⅅ", ddagger: "‡", ddarr: "⇊", DDotrahd: "⤑", ddotseq: "⩷", deg: "°", Del: "∇", delta: "δ", Delta: "Δ", demptyv: "⦱", dfisht: "⥿", dfr: "𝔡", Dfr: "𝔇", dHar: "⥥", dharl: "⇃", dharr: "⇂", DiacriticalAcute: "´", DiacriticalDot: "˙", DiacriticalDoubleAcute: "˝", DiacriticalGrave: "`", DiacriticalTilde: "˜", diam: "⋄", diamond: "⋄", Diamond: "⋄", diamondsuit: "♦", diams: "♦", die: "¨", DifferentialD: "ⅆ", digamma: "ϝ", disin: "⋲", div: "÷", divide: "÷", divideontimes: "⋇", divonx: "⋇", djcy: "ђ", DJcy: "Ђ", dlcorn: "⌞", dlcrop: "⌍", dollar: "$", dopf: "𝕕", Dopf: "𝔻", dot: "˙", Dot: "¨", DotDot: "⃜", doteq: "≐", doteqdot: "≑", DotEqual: "≐", dotminus: "∸", dotplus: "∔", dotsquare: "⊡", doublebarwedge: "⌆", DoubleContourIntegral: "∯", DoubleDot: "¨", DoubleDownArrow: "⇓", DoubleLeftArrow: "⇐", DoubleLeftRightArrow: "⇔", DoubleLeftTee: "⫤", DoubleLongLeftArrow: "⟸", DoubleLongLeftRightArrow: "⟺", DoubleLongRightArrow: "⟹", DoubleRightArrow: "⇒", DoubleRightTee: "⊨", DoubleUpArrow: "⇑", DoubleUpDownArrow: "⇕", DoubleVerticalBar: "∥", downarrow: "↓", Downarrow: "⇓", DownArrow: "↓", DownArrowBar: "⤓", DownArrowUpArrow: "⇵", DownBreve: "̑", downdownarrows: "⇊", downharpoonleft: "⇃", downharpoonright: "⇂", DownLeftRightVector: "⥐", DownLeftTeeVector: "⥞", DownLeftVector: "↽", DownLeftVectorBar: "⥖", DownRightTeeVector: "⥟", DownRightVector: "⇁", DownRightVectorBar: "⥗", DownTee: "⊤", DownTeeArrow: "↧", drbkarow: "⤐", drcorn: "⌟", drcrop: "⌌", dscr: "𝒹", Dscr: "𝒟", dscy: "ѕ", DScy: "Ѕ", dsol: "⧶", dstrok: "đ", Dstrok: "Đ", dtdot: "⋱", dtri: "▿", dtrif: "▾", duarr: "⇵", duhar: "⥯", dwangle: "⦦", dzcy: "џ", DZcy: "Џ", dzigrarr: "⟿", eacute: "é", Eacute: "É", easter: "⩮", ecaron: "ě", Ecaron: "Ě", ecir: "≖", ecirc: "ê", Ecirc: "Ê", ecolon: "≕", ecy: "э", Ecy: "Э", eDDot: "⩷", edot: "ė", eDot: "≑", Edot: "Ė", ee: "ⅇ", efDot: "≒", efr: "𝔢", Efr: "𝔈", eg: "⪚", egrave: "è", Egrave: "È", egs: "⪖", egsdot: "⪘", el: "⪙", Element: "∈", elinters: "⏧", ell: "ℓ", els: "⪕", elsdot: "⪗", emacr: "ē", Emacr: "Ē", empty: "∅", emptyset: "∅", EmptySmallSquare: "◻", emptyv: "∅", EmptyVerySmallSquare: "▫", emsp: " ", emsp13: " ", emsp14: " ", eng: "ŋ", ENG: "Ŋ", ensp: " ", eogon: "ę", Eogon: "Ę", eopf: "𝕖", Eopf: "𝔼", epar: "⋕", eparsl: "⧣", eplus: "⩱", epsi: "ε", epsilon: "ε", Epsilon: "Ε", epsiv: "ϵ", eqcirc: "≖", eqcolon: "≕", eqsim: "≂", eqslantgtr: "⪖", eqslantless: "⪕", Equal: "⩵", equals: "=", EqualTilde: "≂", equest: "≟", Equilibrium: "⇌", equiv: "≡", equivDD: "⩸", eqvparsl: "⧥", erarr: "⥱", erDot: "≓", escr: "ℯ", Escr: "ℰ", esdot: "≐", esim: "≂", Esim: "⩳", eta: "η", Eta: "Η", eth: "ð", ETH: "Ð", euml: "ë", Euml: "Ë", euro: "€", excl: "!", exist: "∃", Exists: "∃", expectation: "ℰ", exponentiale: "ⅇ", ExponentialE: "ⅇ", fallingdotseq: "≒", fcy: "ф", Fcy: "Ф", female: "♀", ffilig: "ffi", fflig: "ff", ffllig: "ffl", ffr: "𝔣", Ffr: "𝔉", filig: "fi", FilledSmallSquare: "◼", FilledVerySmallSquare: "▪", fjlig: "fj", flat: "♭", fllig: "fl", fltns: "▱", fnof: "ƒ", fopf: "𝕗", Fopf: "𝔽", forall: "∀", ForAll: "∀", fork: "⋔", forkv: "⫙", Fouriertrf: "ℱ", fpartint: "⨍", frac12: "½", frac13: "⅓", frac14: "¼", frac15: "⅕", frac16: "⅙", frac18: "⅛", frac23: "⅔", frac25: "⅖", frac34: "¾", frac35: "⅗", frac38: "⅜", frac45: "⅘", frac56: "⅚", frac58: "⅝", frac78: "⅞", frasl: "⁄", frown: "⌢", fscr: "𝒻", Fscr: "ℱ", gacute: "ǵ", gamma: "γ", Gamma: "Γ", gammad: "ϝ", Gammad: "Ϝ", gap: "⪆", gbreve: "ğ", Gbreve: "Ğ", Gcedil: "Ģ", gcirc: "ĝ", Gcirc: "Ĝ", gcy: "г", Gcy: "Г", gdot: "ġ", Gdot: "Ġ", ge: "≥", gE: "≧", gel: "⋛", gEl: "⪌", geq: "≥", geqq: "≧", geqslant: "⩾", ges: "⩾", gescc: "⪩", gesdot: "⪀", gesdoto: "⪂", gesdotol: "⪄", gesl: "⋛︀", gesles: "⪔", gfr: "𝔤", Gfr: "𝔊", gg: "≫", Gg: "⋙", ggg: "⋙", gimel: "ℷ", gjcy: "ѓ", GJcy: "Ѓ", gl: "≷", gla: "⪥", glE: "⪒", glj: "⪤", gnap: "⪊", gnapprox: "⪊", gne: "⪈", gnE: "≩", gneq: "⪈", gneqq: "≩", gnsim: "⋧", gopf: "𝕘", Gopf: "𝔾", grave: "`", GreaterEqual: "≥", GreaterEqualLess: "⋛", GreaterFullEqual: "≧", GreaterGreater: "⪢", GreaterLess: "≷", GreaterSlantEqual: "⩾", GreaterTilde: "≳", gscr: "ℊ", Gscr: "𝒢", gsim: "≳", gsime: "⪎", gsiml: "⪐", gt: ">", Gt: "≫", GT: ">", gtcc: "⪧", gtcir: "⩺", gtdot: "⋗", gtlPar: "⦕", gtquest: "⩼", gtrapprox: "⪆", gtrarr: "⥸", gtrdot: "⋗", gtreqless: "⋛", gtreqqless: "⪌", gtrless: "≷", gtrsim: "≳", gvertneqq: "≩︀", gvnE: "≩︀", Hacek: "ˇ", hairsp: " ", half: "½", hamilt: "ℋ", hardcy: "ъ", HARDcy: "Ъ", harr: "↔", hArr: "⇔", harrcir: "⥈", harrw: "↭", Hat: "^", hbar: "ℏ", hcirc: "ĥ", Hcirc: "Ĥ", hearts: "♥", heartsuit: "♥", hellip: "…", hercon: "⊹", hfr: "𝔥", Hfr: "ℌ", HilbertSpace: "ℋ", hksearow: "⤥", hkswarow: "⤦", hoarr: "⇿", homtht: "∻", hookleftarrow: "↩", hookrightarrow: "↪", hopf: "𝕙", Hopf: "ℍ", horbar: "―", HorizontalLine: "─", hscr: "𝒽", Hscr: "ℋ", hslash: "ℏ", hstrok: "ħ", Hstrok: "Ħ", HumpDownHump: "≎", HumpEqual: "≏", hybull: "⁃", hyphen: "‐", iacute: "í", Iacute: "Í", ic: "⁣", icirc: "î", Icirc: "Î", icy: "и", Icy: "И", Idot: "İ", iecy: "е", IEcy: "Е", iexcl: "¡", iff: "⇔", ifr: "𝔦", Ifr: "ℑ", igrave: "ì", Igrave: "Ì", ii: "ⅈ", iiiint: "⨌", iiint: "∭", iinfin: "⧜", iiota: "℩", ijlig: "ij", IJlig: "IJ", Im: "ℑ", imacr: "ī", Imacr: "Ī", image: "ℑ", ImaginaryI: "ⅈ", imagline: "ℐ", imagpart: "ℑ", imath: "ı", imof: "⊷", imped: "Ƶ", Implies: "⇒", in: "∈", incare: "℅", infin: "∞", infintie: "⧝", inodot: "ı", int: "∫", Int: "∬", intcal: "⊺", integers: "ℤ", Integral: "∫", intercal: "⊺", Intersection: "⋂", intlarhk: "⨗", intprod: "⨼", InvisibleComma: "⁣", InvisibleTimes: "⁢", iocy: "ё", IOcy: "Ё", iogon: "į", Iogon: "Į", iopf: "𝕚", Iopf: "𝕀", iota: "ι", Iota: "Ι", iprod: "⨼", iquest: "¿", iscr: "𝒾", Iscr: "ℐ", isin: "∈", isindot: "⋵", isinE: "⋹", isins: "⋴", isinsv: "⋳", isinv: "∈", it: "⁢", itilde: "ĩ", Itilde: "Ĩ", iukcy: "і", Iukcy: "І", iuml: "ï", Iuml: "Ï", jcirc: "ĵ", Jcirc: "Ĵ", jcy: "й", Jcy: "Й", jfr: "𝔧", Jfr: "𝔍", jmath: "ȷ", jopf: "𝕛", Jopf: "𝕁", jscr: "𝒿", Jscr: "𝒥", jsercy: "ј", Jsercy: "Ј", jukcy: "є", Jukcy: "Є", kappa: "κ", Kappa: "Κ", kappav: "ϰ", kcedil: "ķ", Kcedil: "Ķ", kcy: "к", Kcy: "К", kfr: "𝔨", Kfr: "𝔎", kgreen: "ĸ", khcy: "х", KHcy: "Х", kjcy: "ќ", KJcy: "Ќ", kopf: "𝕜", Kopf: "𝕂", kscr: "𝓀", Kscr: "𝒦", lAarr: "⇚", lacute: "ĺ", Lacute: "Ĺ", laemptyv: "⦴", lagran: "ℒ", lambda: "λ", Lambda: "Λ", lang: "⟨", Lang: "⟪", langd: "⦑", langle: "⟨", lap: "⪅", Laplacetrf: "ℒ", laquo: "«", larr: "←", lArr: "⇐", Larr: "↞", larrb: "⇤", larrbfs: "⤟", larrfs: "⤝", larrhk: "↩", larrlp: "↫", larrpl: "⤹", larrsim: "⥳", larrtl: "↢", lat: "⪫", latail: "⤙", lAtail: "⤛", late: "⪭", lates: "⪭︀", lbarr: "⤌", lBarr: "⤎", lbbrk: "❲", lbrace: "{", lbrack: "[", lbrke: "⦋", lbrksld: "⦏", lbrkslu: "⦍", lcaron: "ľ", Lcaron: "Ľ", lcedil: "ļ", Lcedil: "Ļ", lceil: "⌈", lcub: "{", lcy: "л", Lcy: "Л", ldca: "⤶", ldquo: "“", ldquor: "„", ldrdhar: "⥧", ldrushar: "⥋", ldsh: "↲", le: "≤", lE: "≦", LeftAngleBracket: "⟨", leftarrow: "←", Leftarrow: "⇐", LeftArrow: "←", LeftArrowBar: "⇤", LeftArrowRightArrow: "⇆", leftarrowtail: "↢", LeftCeiling: "⌈", LeftDoubleBracket: "⟦", LeftDownTeeVector: "⥡", LeftDownVector: "⇃", LeftDownVectorBar: "⥙", LeftFloor: "⌊", leftharpoondown: "↽", leftharpoonup: "↼", leftleftarrows: "⇇", leftrightarrow: "↔", Leftrightarrow: "⇔", LeftRightArrow: "↔", leftrightarrows: "⇆", leftrightharpoons: "⇋", leftrightsquigarrow: "↭", LeftRightVector: "⥎", LeftTee: "⊣", LeftTeeArrow: "↤", LeftTeeVector: "⥚", leftthreetimes: "⋋", LeftTriangle: "⊲", LeftTriangleBar: "⧏", LeftTriangleEqual: "⊴", LeftUpDownVector: "⥑", LeftUpTeeVector: "⥠", LeftUpVector: "↿", LeftUpVectorBar: "⥘", LeftVector: "↼", LeftVectorBar: "⥒", leg: "⋚", lEg: "⪋", leq: "≤", leqq: "≦", leqslant: "⩽", les: "⩽", lescc: "⪨", lesdot: "⩿", lesdoto: "⪁", lesdotor: "⪃", lesg: "⋚︀", lesges: "⪓", lessapprox: "⪅", lessdot: "⋖", lesseqgtr: "⋚", lesseqqgtr: "⪋", LessEqualGreater: "⋚", LessFullEqual: "≦", LessGreater: "≶", lessgtr: "≶", LessLess: "⪡", lesssim: "≲", LessSlantEqual: "⩽", LessTilde: "≲", lfisht: "⥼", lfloor: "⌊", lfr: "𝔩", Lfr: "𝔏", lg: "≶", lgE: "⪑", lHar: "⥢", lhard: "↽", lharu: "↼", lharul: "⥪", lhblk: "▄", ljcy: "љ", LJcy: "Љ", ll: "≪", Ll: "⋘", llarr: "⇇", llcorner: "⌞", Lleftarrow: "⇚", llhard: "⥫", lltri: "◺", lmidot: "ŀ", Lmidot: "Ŀ", lmoust: "⎰", lmoustache: "⎰", lnap: "⪉", lnapprox: "⪉", lne: "⪇", lnE: "≨", lneq: "⪇", lneqq: "≨", lnsim: "⋦", loang: "⟬", loarr: "⇽", lobrk: "⟦", longleftarrow: "⟵", Longleftarrow: "⟸", LongLeftArrow: "⟵", longleftrightarrow: "⟷", Longleftrightarrow: "⟺", LongLeftRightArrow: "⟷", longmapsto: "⟼", longrightarrow: "⟶", Longrightarrow: "⟹", LongRightArrow: "⟶", looparrowleft: "↫", looparrowright: "↬", lopar: "⦅", lopf: "𝕝", Lopf: "𝕃", loplus: "⨭", lotimes: "⨴", lowast: "∗", lowbar: "_", LowerLeftArrow: "↙", LowerRightArrow: "↘", loz: "◊", lozenge: "◊", lozf: "⧫", lpar: "(", lparlt: "⦓", lrarr: "⇆", lrcorner: "⌟", lrhar: "⇋", lrhard: "⥭", lrm: "‎", lrtri: "⊿", lsaquo: "‹", lscr: "𝓁", Lscr: "ℒ", lsh: "↰", Lsh: "↰", lsim: "≲", lsime: "⪍", lsimg: "⪏", lsqb: "[", lsquo: "‘", lsquor: "‚", lstrok: "ł", Lstrok: "Ł", lt: "<", Lt: "≪", LT: "<", ltcc: "⪦", ltcir: "⩹", ltdot: "⋖", lthree: "⋋", ltimes: "⋉", ltlarr: "⥶", ltquest: "⩻", ltri: "◃", ltrie: "⊴", ltrif: "◂", ltrPar: "⦖", lurdshar: "⥊", luruhar: "⥦", lvertneqq: "≨︀", lvnE: "≨︀", macr: "¯", male: "♂", malt: "✠", maltese: "✠", map: "↦", Map: "⤅", mapsto: "↦", mapstodown: "↧", mapstoleft: "↤", mapstoup: "↥", marker: "▮", mcomma: "⨩", mcy: "м", Mcy: "М", mdash: "—", mDDot: "∺", measuredangle: "∡", MediumSpace: " ", Mellintrf: "ℳ", mfr: "𝔪", Mfr: "𝔐", mho: "℧", micro: "µ", mid: "∣", midast: "*", midcir: "⫰", middot: "·", minus: "−", minusb: "⊟", minusd: "∸", minusdu: "⨪", MinusPlus: "∓", mlcp: "⫛", mldr: "…", mnplus: "∓", models: "⊧", mopf: "𝕞", Mopf: "𝕄", mp: "∓", mscr: "𝓂", Mscr: "ℳ", mstpos: "∾", mu: "μ", Mu: "Μ", multimap: "⊸", mumap: "⊸", nabla: "∇", nacute: "ń", Nacute: "Ń", nang: "∠⃒", nap: "≉", napE: "⩰̸", napid: "≋̸", napos: "ʼn", napprox: "≉", natur: "♮", natural: "♮", naturals: "ℕ", nbsp: " ", nbump: "≎̸", nbumpe: "≏̸", ncap: "⩃", ncaron: "ň", Ncaron: "Ň", ncedil: "ņ", Ncedil: "Ņ", ncong: "≇", ncongdot: "⩭̸", ncup: "⩂", ncy: "н", Ncy: "Н", ndash: "–", ne: "≠", nearhk: "⤤", nearr: "↗", neArr: "⇗", nearrow: "↗", nedot: "≐̸", NegativeMediumSpace: "​", NegativeThickSpace: "​", NegativeThinSpace: "​", NegativeVeryThinSpace: "​", nequiv: "≢", nesear: "⤨", nesim: "≂̸", NestedGreaterGreater: "≫", NestedLessLess: "≪", NewLine: `
1875
+ `, nexist: "∄", nexists: "∄", nfr: "𝔫", Nfr: "𝔑", nge: "≱", ngE: "≧̸", ngeq: "≱", ngeqq: "≧̸", ngeqslant: "⩾̸", nges: "⩾̸", nGg: "⋙̸", ngsim: "≵", ngt: "≯", nGt: "≫⃒", ngtr: "≯", nGtv: "≫̸", nharr: "↮", nhArr: "⇎", nhpar: "⫲", ni: "∋", nis: "⋼", nisd: "⋺", niv: "∋", njcy: "њ", NJcy: "Њ", nlarr: "↚", nlArr: "⇍", nldr: "‥", nle: "≰", nlE: "≦̸", nleftarrow: "↚", nLeftarrow: "⇍", nleftrightarrow: "↮", nLeftrightarrow: "⇎", nleq: "≰", nleqq: "≦̸", nleqslant: "⩽̸", nles: "⩽̸", nless: "≮", nLl: "⋘̸", nlsim: "≴", nlt: "≮", nLt: "≪⃒", nltri: "⋪", nltrie: "⋬", nLtv: "≪̸", nmid: "∤", NoBreak: "⁠", NonBreakingSpace: " ", nopf: "𝕟", Nopf: "ℕ", not: "¬", Not: "⫬", NotCongruent: "≢", NotCupCap: "≭", NotDoubleVerticalBar: "∦", NotElement: "∉", NotEqual: "≠", NotEqualTilde: "≂̸", NotExists: "∄", NotGreater: "≯", NotGreaterEqual: "≱", NotGreaterFullEqual: "≧̸", NotGreaterGreater: "≫̸", NotGreaterLess: "≹", NotGreaterSlantEqual: "⩾̸", NotGreaterTilde: "≵", NotHumpDownHump: "≎̸", NotHumpEqual: "≏̸", notin: "∉", notindot: "⋵̸", notinE: "⋹̸", notinva: "∉", notinvb: "⋷", notinvc: "⋶", NotLeftTriangle: "⋪", NotLeftTriangleBar: "⧏̸", NotLeftTriangleEqual: "⋬", NotLess: "≮", NotLessEqual: "≰", NotLessGreater: "≸", NotLessLess: "≪̸", NotLessSlantEqual: "⩽̸", NotLessTilde: "≴", NotNestedGreaterGreater: "⪢̸", NotNestedLessLess: "⪡̸", notni: "∌", notniva: "∌", notnivb: "⋾", notnivc: "⋽", NotPrecedes: "⊀", NotPrecedesEqual: "⪯̸", NotPrecedesSlantEqual: "⋠", NotReverseElement: "∌", NotRightTriangle: "⋫", NotRightTriangleBar: "⧐̸", NotRightTriangleEqual: "⋭", NotSquareSubset: "⊏̸", NotSquareSubsetEqual: "⋢", NotSquareSuperset: "⊐̸", NotSquareSupersetEqual: "⋣", NotSubset: "⊂⃒", NotSubsetEqual: "⊈", NotSucceeds: "⊁", NotSucceedsEqual: "⪰̸", NotSucceedsSlantEqual: "⋡", NotSucceedsTilde: "≿̸", NotSuperset: "⊃⃒", NotSupersetEqual: "⊉", NotTilde: "≁", NotTildeEqual: "≄", NotTildeFullEqual: "≇", NotTildeTilde: "≉", NotVerticalBar: "∤", npar: "∦", nparallel: "∦", nparsl: "⫽⃥", npart: "∂̸", npolint: "⨔", npr: "⊀", nprcue: "⋠", npre: "⪯̸", nprec: "⊀", npreceq: "⪯̸", nrarr: "↛", nrArr: "⇏", nrarrc: "⤳̸", nrarrw: "↝̸", nrightarrow: "↛", nRightarrow: "⇏", nrtri: "⋫", nrtrie: "⋭", nsc: "⊁", nsccue: "⋡", nsce: "⪰̸", nscr: "𝓃", Nscr: "𝒩", nshortmid: "∤", nshortparallel: "∦", nsim: "≁", nsime: "≄", nsimeq: "≄", nsmid: "∤", nspar: "∦", nsqsube: "⋢", nsqsupe: "⋣", nsub: "⊄", nsube: "⊈", nsubE: "⫅̸", nsubset: "⊂⃒", nsubseteq: "⊈", nsubseteqq: "⫅̸", nsucc: "⊁", nsucceq: "⪰̸", nsup: "⊅", nsupe: "⊉", nsupE: "⫆̸", nsupset: "⊃⃒", nsupseteq: "⊉", nsupseteqq: "⫆̸", ntgl: "≹", ntilde: "ñ", Ntilde: "Ñ", ntlg: "≸", ntriangleleft: "⋪", ntrianglelefteq: "⋬", ntriangleright: "⋫", ntrianglerighteq: "⋭", nu: "ν", Nu: "Ν", num: "#", numero: "№", numsp: " ", nvap: "≍⃒", nvdash: "⊬", nvDash: "⊭", nVdash: "⊮", nVDash: "⊯", nvge: "≥⃒", nvgt: ">⃒", nvHarr: "⤄", nvinfin: "⧞", nvlArr: "⤂", nvle: "≤⃒", nvlt: "<⃒", nvltrie: "⊴⃒", nvrArr: "⤃", nvrtrie: "⊵⃒", nvsim: "∼⃒", nwarhk: "⤣", nwarr: "↖", nwArr: "⇖", nwarrow: "↖", nwnear: "⤧", oacute: "ó", Oacute: "Ó", oast: "⊛", ocir: "⊚", ocirc: "ô", Ocirc: "Ô", ocy: "о", Ocy: "О", odash: "⊝", odblac: "ő", Odblac: "Ő", odiv: "⨸", odot: "⊙", odsold: "⦼", oelig: "œ", OElig: "Œ", ofcir: "⦿", ofr: "𝔬", Ofr: "𝔒", ogon: "˛", ograve: "ò", Ograve: "Ò", ogt: "⧁", ohbar: "⦵", ohm: "Ω", oint: "∮", olarr: "↺", olcir: "⦾", olcross: "⦻", oline: "‾", olt: "⧀", omacr: "ō", Omacr: "Ō", omega: "ω", Omega: "Ω", omicron: "ο", Omicron: "Ο", omid: "⦶", ominus: "⊖", oopf: "𝕠", Oopf: "𝕆", opar: "⦷", OpenCurlyDoubleQuote: "“", OpenCurlyQuote: "‘", operp: "⦹", oplus: "⊕", or: "∨", Or: "⩔", orarr: "↻", ord: "⩝", order: "ℴ", orderof: "ℴ", ordf: "ª", ordm: "º", origof: "⊶", oror: "⩖", orslope: "⩗", orv: "⩛", oS: "Ⓢ", oscr: "ℴ", Oscr: "𝒪", oslash: "ø", Oslash: "Ø", osol: "⊘", otilde: "õ", Otilde: "Õ", otimes: "⊗", Otimes: "⨷", otimesas: "⨶", ouml: "ö", Ouml: "Ö", ovbar: "⌽", OverBar: "‾", OverBrace: "⏞", OverBracket: "⎴", OverParenthesis: "⏜", par: "∥", para: "¶", parallel: "∥", parsim: "⫳", parsl: "⫽", part: "∂", PartialD: "∂", pcy: "п", Pcy: "П", percnt: "%", period: ".", permil: "‰", perp: "⊥", pertenk: "‱", pfr: "𝔭", Pfr: "𝔓", phi: "φ", Phi: "Φ", phiv: "ϕ", phmmat: "ℳ", phone: "☎", pi: "π", Pi: "Π", pitchfork: "⋔", piv: "ϖ", planck: "ℏ", planckh: "ℎ", plankv: "ℏ", plus: "+", plusacir: "⨣", plusb: "⊞", pluscir: "⨢", plusdo: "∔", plusdu: "⨥", pluse: "⩲", PlusMinus: "±", plusmn: "±", plussim: "⨦", plustwo: "⨧", pm: "±", Poincareplane: "ℌ", pointint: "⨕", popf: "𝕡", Popf: "ℙ", pound: "£", pr: "≺", Pr: "⪻", prap: "⪷", prcue: "≼", pre: "⪯", prE: "⪳", prec: "≺", precapprox: "⪷", preccurlyeq: "≼", Precedes: "≺", PrecedesEqual: "⪯", PrecedesSlantEqual: "≼", PrecedesTilde: "≾", preceq: "⪯", precnapprox: "⪹", precneqq: "⪵", precnsim: "⋨", precsim: "≾", prime: "′", Prime: "″", primes: "ℙ", prnap: "⪹", prnE: "⪵", prnsim: "⋨", prod: "∏", Product: "∏", profalar: "⌮", profline: "⌒", profsurf: "⌓", prop: "∝", Proportion: "∷", Proportional: "∝", propto: "∝", prsim: "≾", prurel: "⊰", pscr: "𝓅", Pscr: "𝒫", psi: "ψ", Psi: "Ψ", puncsp: " ", qfr: "𝔮", Qfr: "𝔔", qint: "⨌", qopf: "𝕢", Qopf: "ℚ", qprime: "⁗", qscr: "𝓆", Qscr: "𝒬", quaternions: "ℍ", quatint: "⨖", quest: "?", questeq: "≟", quot: '"', QUOT: '"', rAarr: "⇛", race: "∽̱", racute: "ŕ", Racute: "Ŕ", radic: "√", raemptyv: "⦳", rang: "⟩", Rang: "⟫", rangd: "⦒", range: "⦥", rangle: "⟩", raquo: "»", rarr: "→", rArr: "⇒", Rarr: "↠", rarrap: "⥵", rarrb: "⇥", rarrbfs: "⤠", rarrc: "⤳", rarrfs: "⤞", rarrhk: "↪", rarrlp: "↬", rarrpl: "⥅", rarrsim: "⥴", rarrtl: "↣", Rarrtl: "⤖", rarrw: "↝", ratail: "⤚", rAtail: "⤜", ratio: "∶", rationals: "ℚ", rbarr: "⤍", rBarr: "⤏", RBarr: "⤐", rbbrk: "❳", rbrace: "}", rbrack: "]", rbrke: "⦌", rbrksld: "⦎", rbrkslu: "⦐", rcaron: "ř", Rcaron: "Ř", rcedil: "ŗ", Rcedil: "Ŗ", rceil: "⌉", rcub: "}", rcy: "р", Rcy: "Р", rdca: "⤷", rdldhar: "⥩", rdquo: "”", rdquor: "”", rdsh: "↳", Re: "ℜ", real: "ℜ", realine: "ℛ", realpart: "ℜ", reals: "ℝ", rect: "▭", reg: "®", REG: "®", ReverseElement: "∋", ReverseEquilibrium: "⇋", ReverseUpEquilibrium: "⥯", rfisht: "⥽", rfloor: "⌋", rfr: "𝔯", Rfr: "ℜ", rHar: "⥤", rhard: "⇁", rharu: "⇀", rharul: "⥬", rho: "ρ", Rho: "Ρ", rhov: "ϱ", RightAngleBracket: "⟩", rightarrow: "→", Rightarrow: "⇒", RightArrow: "→", RightArrowBar: "⇥", RightArrowLeftArrow: "⇄", rightarrowtail: "↣", RightCeiling: "⌉", RightDoubleBracket: "⟧", RightDownTeeVector: "⥝", RightDownVector: "⇂", RightDownVectorBar: "⥕", RightFloor: "⌋", rightharpoondown: "⇁", rightharpoonup: "⇀", rightleftarrows: "⇄", rightleftharpoons: "⇌", rightrightarrows: "⇉", rightsquigarrow: "↝", RightTee: "⊢", RightTeeArrow: "↦", RightTeeVector: "⥛", rightthreetimes: "⋌", RightTriangle: "⊳", RightTriangleBar: "⧐", RightTriangleEqual: "⊵", RightUpDownVector: "⥏", RightUpTeeVector: "⥜", RightUpVector: "↾", RightUpVectorBar: "⥔", RightVector: "⇀", RightVectorBar: "⥓", ring: "˚", risingdotseq: "≓", rlarr: "⇄", rlhar: "⇌", rlm: "‏", rmoust: "⎱", rmoustache: "⎱", rnmid: "⫮", roang: "⟭", roarr: "⇾", robrk: "⟧", ropar: "⦆", ropf: "𝕣", Ropf: "ℝ", roplus: "⨮", rotimes: "⨵", RoundImplies: "⥰", rpar: ")", rpargt: "⦔", rppolint: "⨒", rrarr: "⇉", Rrightarrow: "⇛", rsaquo: "›", rscr: "𝓇", Rscr: "ℛ", rsh: "↱", Rsh: "↱", rsqb: "]", rsquo: "’", rsquor: "’", rthree: "⋌", rtimes: "⋊", rtri: "▹", rtrie: "⊵", rtrif: "▸", rtriltri: "⧎", RuleDelayed: "⧴", ruluhar: "⥨", rx: "℞", sacute: "ś", Sacute: "Ś", sbquo: "‚", sc: "≻", Sc: "⪼", scap: "⪸", scaron: "š", Scaron: "Š", sccue: "≽", sce: "⪰", scE: "⪴", scedil: "ş", Scedil: "Ş", scirc: "ŝ", Scirc: "Ŝ", scnap: "⪺", scnE: "⪶", scnsim: "⋩", scpolint: "⨓", scsim: "≿", scy: "с", Scy: "С", sdot: "⋅", sdotb: "⊡", sdote: "⩦", searhk: "⤥", searr: "↘", seArr: "⇘", searrow: "↘", sect: "§", semi: ";", seswar: "⤩", setminus: "∖", setmn: "∖", sext: "✶", sfr: "𝔰", Sfr: "𝔖", sfrown: "⌢", sharp: "♯", shchcy: "щ", SHCHcy: "Щ", shcy: "ш", SHcy: "Ш", ShortDownArrow: "↓", ShortLeftArrow: "←", shortmid: "∣", shortparallel: "∥", ShortRightArrow: "→", ShortUpArrow: "↑", shy: "­", sigma: "σ", Sigma: "Σ", sigmaf: "ς", sigmav: "ς", sim: "∼", simdot: "⩪", sime: "≃", simeq: "≃", simg: "⪞", simgE: "⪠", siml: "⪝", simlE: "⪟", simne: "≆", simplus: "⨤", simrarr: "⥲", slarr: "←", SmallCircle: "∘", smallsetminus: "∖", smashp: "⨳", smeparsl: "⧤", smid: "∣", smile: "⌣", smt: "⪪", smte: "⪬", smtes: "⪬︀", softcy: "ь", SOFTcy: "Ь", sol: "/", solb: "⧄", solbar: "⌿", sopf: "𝕤", Sopf: "𝕊", spades: "♠", spadesuit: "♠", spar: "∥", sqcap: "⊓", sqcaps: "⊓︀", sqcup: "⊔", sqcups: "⊔︀", Sqrt: "√", sqsub: "⊏", sqsube: "⊑", sqsubset: "⊏", sqsubseteq: "⊑", sqsup: "⊐", sqsupe: "⊒", sqsupset: "⊐", sqsupseteq: "⊒", squ: "□", square: "□", Square: "□", SquareIntersection: "⊓", SquareSubset: "⊏", SquareSubsetEqual: "⊑", SquareSuperset: "⊐", SquareSupersetEqual: "⊒", SquareUnion: "⊔", squarf: "▪", squf: "▪", srarr: "→", sscr: "𝓈", Sscr: "𝒮", ssetmn: "∖", ssmile: "⌣", sstarf: "⋆", star: "☆", Star: "⋆", starf: "★", straightepsilon: "ϵ", straightphi: "ϕ", strns: "¯", sub: "⊂", Sub: "⋐", subdot: "⪽", sube: "⊆", subE: "⫅", subedot: "⫃", submult: "⫁", subne: "⊊", subnE: "⫋", subplus: "⪿", subrarr: "⥹", subset: "⊂", Subset: "⋐", subseteq: "⊆", subseteqq: "⫅", SubsetEqual: "⊆", subsetneq: "⊊", subsetneqq: "⫋", subsim: "⫇", subsub: "⫕", subsup: "⫓", succ: "≻", succapprox: "⪸", succcurlyeq: "≽", Succeeds: "≻", SucceedsEqual: "⪰", SucceedsSlantEqual: "≽", SucceedsTilde: "≿", succeq: "⪰", succnapprox: "⪺", succneqq: "⪶", succnsim: "⋩", succsim: "≿", SuchThat: "∋", sum: "∑", Sum: "∑", sung: "♪", sup: "⊃", Sup: "⋑", sup1: "¹", sup2: "²", sup3: "³", supdot: "⪾", supdsub: "⫘", supe: "⊇", supE: "⫆", supedot: "⫄", Superset: "⊃", SupersetEqual: "⊇", suphsol: "⟉", suphsub: "⫗", suplarr: "⥻", supmult: "⫂", supne: "⊋", supnE: "⫌", supplus: "⫀", supset: "⊃", Supset: "⋑", supseteq: "⊇", supseteqq: "⫆", supsetneq: "⊋", supsetneqq: "⫌", supsim: "⫈", supsub: "⫔", supsup: "⫖", swarhk: "⤦", swarr: "↙", swArr: "⇙", swarrow: "↙", swnwar: "⤪", szlig: "ß", Tab: " ", target: "⌖", tau: "τ", Tau: "Τ", tbrk: "⎴", tcaron: "ť", Tcaron: "Ť", tcedil: "ţ", Tcedil: "Ţ", tcy: "т", Tcy: "Т", tdot: "⃛", telrec: "⌕", tfr: "𝔱", Tfr: "𝔗", there4: "∴", therefore: "∴", Therefore: "∴", theta: "θ", Theta: "Θ", thetasym: "ϑ", thetav: "ϑ", thickapprox: "≈", thicksim: "∼", ThickSpace: "  ", thinsp: " ", ThinSpace: " ", thkap: "≈", thksim: "∼", thorn: "þ", THORN: "Þ", tilde: "˜", Tilde: "∼", TildeEqual: "≃", TildeFullEqual: "≅", TildeTilde: "≈", times: "×", timesb: "⊠", timesbar: "⨱", timesd: "⨰", tint: "∭", toea: "⤨", top: "⊤", topbot: "⌶", topcir: "⫱", topf: "𝕥", Topf: "𝕋", topfork: "⫚", tosa: "⤩", tprime: "‴", trade: "™", TRADE: "™", triangle: "▵", triangledown: "▿", triangleleft: "◃", trianglelefteq: "⊴", triangleq: "≜", triangleright: "▹", trianglerighteq: "⊵", tridot: "◬", trie: "≜", triminus: "⨺", TripleDot: "⃛", triplus: "⨹", trisb: "⧍", tritime: "⨻", trpezium: "⏢", tscr: "𝓉", Tscr: "𝒯", tscy: "ц", TScy: "Ц", tshcy: "ћ", TSHcy: "Ћ", tstrok: "ŧ", Tstrok: "Ŧ", twixt: "≬", twoheadleftarrow: "↞", twoheadrightarrow: "↠", uacute: "ú", Uacute: "Ú", uarr: "↑", uArr: "⇑", Uarr: "↟", Uarrocir: "⥉", ubrcy: "ў", Ubrcy: "Ў", ubreve: "ŭ", Ubreve: "Ŭ", ucirc: "û", Ucirc: "Û", ucy: "у", Ucy: "У", udarr: "⇅", udblac: "ű", Udblac: "Ű", udhar: "⥮", ufisht: "⥾", ufr: "𝔲", Ufr: "𝔘", ugrave: "ù", Ugrave: "Ù", uHar: "⥣", uharl: "↿", uharr: "↾", uhblk: "▀", ulcorn: "⌜", ulcorner: "⌜", ulcrop: "⌏", ultri: "◸", umacr: "ū", Umacr: "Ū", uml: "¨", UnderBar: "_", UnderBrace: "⏟", UnderBracket: "⎵", UnderParenthesis: "⏝", Union: "⋃", UnionPlus: "⊎", uogon: "ų", Uogon: "Ų", uopf: "𝕦", Uopf: "𝕌", uparrow: "↑", Uparrow: "⇑", UpArrow: "↑", UpArrowBar: "⤒", UpArrowDownArrow: "⇅", updownarrow: "↕", Updownarrow: "⇕", UpDownArrow: "↕", UpEquilibrium: "⥮", upharpoonleft: "↿", upharpoonright: "↾", uplus: "⊎", UpperLeftArrow: "↖", UpperRightArrow: "↗", upsi: "υ", Upsi: "ϒ", upsih: "ϒ", upsilon: "υ", Upsilon: "Υ", UpTee: "⊥", UpTeeArrow: "↥", upuparrows: "⇈", urcorn: "⌝", urcorner: "⌝", urcrop: "⌎", uring: "ů", Uring: "Ů", urtri: "◹", uscr: "𝓊", Uscr: "𝒰", utdot: "⋰", utilde: "ũ", Utilde: "Ũ", utri: "▵", utrif: "▴", uuarr: "⇈", uuml: "ü", Uuml: "Ü", uwangle: "⦧", vangrt: "⦜", varepsilon: "ϵ", varkappa: "ϰ", varnothing: "∅", varphi: "ϕ", varpi: "ϖ", varpropto: "∝", varr: "↕", vArr: "⇕", varrho: "ϱ", varsigma: "ς", varsubsetneq: "⊊︀", varsubsetneqq: "⫋︀", varsupsetneq: "⊋︀", varsupsetneqq: "⫌︀", vartheta: "ϑ", vartriangleleft: "⊲", vartriangleright: "⊳", vBar: "⫨", Vbar: "⫫", vBarv: "⫩", vcy: "в", Vcy: "В", vdash: "⊢", vDash: "⊨", Vdash: "⊩", VDash: "⊫", Vdashl: "⫦", vee: "∨", Vee: "⋁", veebar: "⊻", veeeq: "≚", vellip: "⋮", verbar: "|", Verbar: "‖", vert: "|", Vert: "‖", VerticalBar: "∣", VerticalLine: "|", VerticalSeparator: "❘", VerticalTilde: "≀", VeryThinSpace: " ", vfr: "𝔳", Vfr: "𝔙", vltri: "⊲", vnsub: "⊂⃒", vnsup: "⊃⃒", vopf: "𝕧", Vopf: "𝕍", vprop: "∝", vrtri: "⊳", vscr: "𝓋", Vscr: "𝒱", vsubne: "⊊︀", vsubnE: "⫋︀", vsupne: "⊋︀", vsupnE: "⫌︀", Vvdash: "⊪", vzigzag: "⦚", wcirc: "ŵ", Wcirc: "Ŵ", wedbar: "⩟", wedge: "∧", Wedge: "⋀", wedgeq: "≙", weierp: "℘", wfr: "𝔴", Wfr: "𝔚", wopf: "𝕨", Wopf: "𝕎", wp: "℘", wr: "≀", wreath: "≀", wscr: "𝓌", Wscr: "𝒲", xcap: "⋂", xcirc: "◯", xcup: "⋃", xdtri: "▽", xfr: "𝔵", Xfr: "𝔛", xharr: "⟷", xhArr: "⟺", xi: "ξ", Xi: "Ξ", xlarr: "⟵", xlArr: "⟸", xmap: "⟼", xnis: "⋻", xodot: "⨀", xopf: "𝕩", Xopf: "𝕏", xoplus: "⨁", xotime: "⨂", xrarr: "⟶", xrArr: "⟹", xscr: "𝓍", Xscr: "𝒳", xsqcup: "⨆", xuplus: "⨄", xutri: "△", xvee: "⋁", xwedge: "⋀", yacute: "ý", Yacute: "Ý", yacy: "я", YAcy: "Я", ycirc: "ŷ", Ycirc: "Ŷ", ycy: "ы", Ycy: "Ы", yen: "¥", yfr: "𝔶", Yfr: "𝔜", yicy: "ї", YIcy: "Ї", yopf: "𝕪", Yopf: "𝕐", yscr: "𝓎", Yscr: "𝒴", yucy: "ю", YUcy: "Ю", yuml: "ÿ", Yuml: "Ÿ", zacute: "ź", Zacute: "Ź", zcaron: "ž", Zcaron: "Ž", zcy: "з", Zcy: "З", zdot: "ż", Zdot: "Ż", zeetrf: "ℨ", ZeroWidthSpace: "​", zeta: "ζ", Zeta: "Ζ", zfr: "𝔷", Zfr: "ℨ", zhcy: "ж", ZHcy: "Ж", zigrarr: "⇝", zopf: "𝕫", Zopf: "ℤ", zscr: "𝓏", Zscr: "𝒵", zwj: "‍", zwnj: "‌" }, s = { aacute: "á", Aacute: "Á", acirc: "â", Acirc: "Â", acute: "´", aelig: "æ", AElig: "Æ", agrave: "à", Agrave: "À", amp: "&", AMP: "&", aring: "å", Aring: "Å", atilde: "ã", Atilde: "Ã", auml: "ä", Auml: "Ä", brvbar: "¦", ccedil: "ç", Ccedil: "Ç", cedil: "¸", cent: "¢", copy: "©", COPY: "©", curren: "¤", deg: "°", divide: "÷", eacute: "é", Eacute: "É", ecirc: "ê", Ecirc: "Ê", egrave: "è", Egrave: "È", eth: "ð", ETH: "Ð", euml: "ë", Euml: "Ë", frac12: "½", frac14: "¼", frac34: "¾", gt: ">", GT: ">", iacute: "í", Iacute: "Í", icirc: "î", Icirc: "Î", iexcl: "¡", igrave: "ì", Igrave: "Ì", iquest: "¿", iuml: "ï", Iuml: "Ï", laquo: "«", lt: "<", LT: "<", macr: "¯", micro: "µ", middot: "·", nbsp: " ", not: "¬", ntilde: "ñ", Ntilde: "Ñ", oacute: "ó", Oacute: "Ó", ocirc: "ô", Ocirc: "Ô", ograve: "ò", Ograve: "Ò", ordf: "ª", ordm: "º", oslash: "ø", Oslash: "Ø", otilde: "õ", Otilde: "Õ", ouml: "ö", Ouml: "Ö", para: "¶", plusmn: "±", pound: "£", quot: '"', QUOT: '"', raquo: "»", reg: "®", REG: "®", sect: "§", shy: "­", sup1: "¹", sup2: "²", sup3: "³", szlig: "ß", thorn: "þ", THORN: "Þ", times: "×", uacute: "ú", Uacute: "Ú", ucirc: "û", Ucirc: "Û", ugrave: "ù", Ugrave: "Ù", uml: "¨", uuml: "ü", Uuml: "Ü", yacute: "ý", Yacute: "Ý", yen: "¥", yuml: "ÿ" }, h = { 0: "�", 128: "€", 130: "‚", 131: "ƒ", 132: "„", 133: "…", 134: "†", 135: "‡", 136: "ˆ", 137: "‰", 138: "Š", 139: "‹", 140: "Œ", 142: "Ž", 145: "‘", 146: "’", 147: "“", 148: "”", 149: "•", 150: "–", 151: "—", 152: "˜", 153: "™", 154: "š", 155: "›", 156: "œ", 158: "ž", 159: "Ÿ" }, T = [1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 64976, 64977, 64978, 64979, 64980, 64981, 64982, 64983, 64984, 64985, 64986, 64987, 64988, 64989, 64990, 64991, 64992, 64993, 64994, 64995, 64996, 64997, 64998, 64999, 65e3, 65001, 65002, 65003, 65004, 65005, 65006, 65007, 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214, 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894, 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574, 1048575, 1114110, 1114111], y = String.fromCharCode, O = {}, m = O.hasOwnProperty, v = function(B, S) {
1876
+ return m.call(B, S);
1877
+ }, f = function(B, S) {
1878
+ for (var P = -1, K = B.length; ++P < K; )
1879
+ if (B[P] == S)
1880
+ return !0;
1881
+ return !1;
1882
+ }, C = function(B, S) {
1883
+ if (!B)
1884
+ return S;
1885
+ var P = {}, K;
1886
+ for (K in S)
1887
+ P[K] = v(B, K) ? B[K] : S[K];
1888
+ return P;
1889
+ }, r = function(B, S) {
1890
+ var P = "";
1891
+ return B >= 55296 && B <= 57343 || B > 1114111 ? (S && w("character reference outside the permissible Unicode range"), "�") : v(h, B) ? (S && w("disallowed character reference"), h[B]) : (S && f(T, B) && w("disallowed character reference"), B > 65535 && (B -= 65536, P += y(B >>> 10 & 1023 | 55296), B = 56320 | B & 1023), P += y(B), P);
1892
+ }, D = function(B) {
1893
+ return "&#x" + B.toString(16).toUpperCase() + ";";
1894
+ }, A = function(B) {
1895
+ return "&#" + B + ";";
1896
+ }, w = function(B) {
1897
+ throw Error("Parse error: " + B);
1898
+ }, k = function(B, S) {
1899
+ S = C(S, k.options);
1900
+ var P = S.strict;
1901
+ P && q.test(B) && w("forbidden code point");
1902
+ var K = S.encodeEverything, Z = S.useNamedReferences, se = S.allowUnsafeSymbols, fe = S.decimal ? A : D, ue = function(H) {
1903
+ return fe(H.charCodeAt(0));
1904
+ };
1905
+ return K ? (B = B.replace(o, function(H) {
1906
+ return Z && v(d, H) ? "&" + d[H] + ";" : ue(H);
1907
+ }), Z && (B = B.replace(/&gt;\u20D2/g, "&nvgt;").replace(/&lt;\u20D2/g, "&nvlt;").replace(/&#x66;&#x6A;/g, "&fjlig;")), Z && (B = B.replace(b, function(H) {
1908
+ return "&" + d[H] + ";";
1909
+ }))) : Z ? (se || (B = B.replace(g, function(H) {
1910
+ return "&" + d[H] + ";";
1911
+ })), B = B.replace(/&gt;\u20D2/g, "&nvgt;").replace(/&lt;\u20D2/g, "&nvlt;"), B = B.replace(b, function(H) {
1912
+ return "&" + d[H] + ";";
1913
+ })) : se || (B = B.replace(g, ue)), B.replace(c, function(H) {
1914
+ var de = H.charCodeAt(0), Fe = H.charCodeAt(1), nt = (de - 55296) * 1024 + Fe - 56320 + 65536;
1915
+ return fe(nt);
1916
+ }).replace(l, ue);
1917
+ };
1918
+ k.options = {
1919
+ allowUnsafeSymbols: !1,
1920
+ encodeEverything: !1,
1921
+ strict: !1,
1922
+ useNamedReferences: !1,
1923
+ decimal: !1
1924
+ };
1925
+ var L = function(B, S) {
1926
+ S = C(S, L.options);
1927
+ var P = S.strict;
1928
+ return P && R.test(B) && w("malformed character reference"), B.replace(N, function(K, Z, se, fe, ue, H, de, Fe, nt) {
1929
+ var ge, me, ot, lt, De, be;
1930
+ return Z ? (De = Z, _[De]) : se ? (De = se, be = fe, be && S.isAttributeValue ? (P && be == "=" && w("`&` did not start a character reference"), K) : (P && w(
1931
+ "named character reference was not terminated by a semicolon"
1932
+ ), s[De] + (be || ""))) : ue ? (ot = ue, me = H, P && !me && w("character reference was not terminated by a semicolon"), ge = parseInt(ot, 10), r(ge, P)) : de ? (lt = de, me = Fe, P && !me && w("character reference was not terminated by a semicolon"), ge = parseInt(lt, 16), r(ge, P)) : (P && w(
1933
+ "named character reference was not terminated by a semicolon"
1934
+ ), K);
1935
+ });
1936
+ };
1937
+ L.options = {
1938
+ isAttributeValue: !1,
1939
+ strict: !1
1940
+ };
1941
+ var U = function(B) {
1942
+ return B.replace(g, function(S) {
1943
+ return E[S];
1944
+ });
1945
+ }, W = {
1946
+ version: "1.2.0",
1947
+ encode: k,
1948
+ decode: L,
1949
+ escape: U,
1950
+ unescape: L
1951
+ };
1952
+ if (t && !t.nodeType)
1953
+ if (a)
1954
+ a.exports = W;
1955
+ else
1956
+ for (var J in W)
1957
+ v(W, J) && (t[J] = W[J]);
1958
+ else
1959
+ i.he = W;
1960
+ })(ku);
1961
+ })(le, le.exports)), le.exports;
1962
+ }
1963
+ var qu = Ru();
1964
+ const $t = x.createContext({}), Su = (e) => /* @__PURE__ */ x.createElement($t.Provider, { value: e }, e.children);
1965
+ function Hr(e) {
1966
+ const { data: u, beautify: i } = e, t = X.getBlockByType(u.type);
1967
+ if (!t)
1968
+ throw new Error(`Block ${u.type} not found`);
1969
+ const a = qu.unescape(
1970
+ It(
1971
+ /* @__PURE__ */ x.createElement(
1972
+ Su,
1973
+ {
1974
+ dataSource: e.dataSource,
1975
+ mode: e.mode,
1976
+ context: e.context
1977
+ },
1978
+ t.render(e)
1979
+ )
1980
+ )
1981
+ );
1982
+ return i ? Ou.html(a, { indent_size: 2 }) : a;
1983
+ }
1984
+ const Ht = () => nu($t), ie = (e) => {
1985
+ var o, l, b;
1986
+ const { data: u } = e, { mode: i, context: t, dataSource: a } = Ht();
1987
+ if ((o = u == null ? void 0 : u.data) != null && o.hidden) return null;
1988
+ const n = X.getBlockByType(u == null ? void 0 : u.type);
1989
+ if (!n)
1990
+ return console.warn(`Block type "${u == null ? void 0 : u.type}" not found in BlockManager`), null;
1991
+ const c = $(j({}, u), {
1992
+ data: $(j({}, (u == null ? void 0 : u.data) || {}), {
1993
+ value: ((l = u == null ? void 0 : u.data) == null ? void 0 : l.value) || {},
1994
+ hidden: ((b = u == null ? void 0 : u.data) == null ? void 0 : b.hidden) || !1
1995
+ }),
1996
+ attributes: (u == null ? void 0 : u.attributes) || {},
1997
+ children: Array.isArray(u == null ? void 0 : u.children) ? u.children : []
1998
+ });
1999
+ try {
2000
+ return /* @__PURE__ */ x.createElement(x.Fragment, null, n.render($(j({}, e), { data: c, mode: i, context: t, dataSource: a })));
2001
+ } catch (d) {
2002
+ return console.error(`Error rendering block "${u == null ? void 0 : u.type}":`, d), /* @__PURE__ */ x.createElement(x.Fragment, null, `<!-- Error rendering block ${u == null ? void 0 : u.type}: ${d instanceof Error ? d.message : String(d)} -->`);
2003
+ }
2004
+ };
2005
+ function G(e) {
2006
+ const {
2007
+ params: u,
2008
+ params: { data: i, idx: t, children: a, mode: n },
2009
+ tag: c,
2010
+ children: o
2011
+ } = e, l = i.children.length === 0 && bu(u);
2012
+ let b = o || a;
2013
+ if ((!b || Array.isArray(b) && b.length === 0) && i.children.length === 0 && (b = l), n === "testing" && c === "mj-image") {
2014
+ let d = i.attributes.src;
2015
+ if (d === "" || /{{([\s\S]+?)}}/g.test(d) || /\*\|([^\|\*]+)\|\*/g.test(d)) {
2016
+ const g = V(u, "data.attributes.src");
2017
+ return /* @__PURE__ */ x.createElement(x.Fragment, null, `<${c} ${et(g)} src="${Q(
2018
+ "IMAGE_59"
2019
+ )}">`, `</${c}>`);
2020
+ }
2021
+ }
2022
+ return /* @__PURE__ */ x.createElement(x.Fragment, null, `<${c} ${et(u)}>`, b || i.children.map((d, g) => /* @__PURE__ */ x.createElement(
2023
+ ie,
2024
+ $(j({
2025
+ key: g
2026
+ }, u), {
2027
+ idx: t ? st(t, g) : null,
2028
+ data: d
2029
+ })
2030
+ )), `</${c}>`);
2031
+ }
2032
+ const Wt = {
2033
+ get name() {
2034
+ return I("Wrapper");
2035
+ },
2036
+ type: p.WRAPPER,
2037
+ create: (e) => {
2038
+ const u = {
2039
+ type: p.WRAPPER,
2040
+ data: {
2041
+ value: {}
2042
+ },
2043
+ attributes: {
2044
+ padding: "20px 0px 20px 0px",
2045
+ border: "none",
2046
+ direction: "ltr",
2047
+ "text-align": "center"
2048
+ },
2049
+ children: []
2050
+ };
2051
+ return z(u, e);
2052
+ },
2053
+ validParentType: [p.PAGE],
2054
+ render(e) {
2055
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-wrapper" });
2056
+ }
2057
+ };
2058
+ function Lu(e) {
2059
+ const u = e.data.value;
2060
+ return `
2061
+ <mj-html-attributes>
2062
+ ${[
2063
+ "content-background-color",
2064
+ "text-color",
2065
+ "font-family",
2066
+ "font-size",
2067
+ "line-height",
2068
+ "font-weight",
2069
+ "user-style",
2070
+ "responsive"
2071
+ ].filter((t) => u[t] !== void 0).map((t) => {
2072
+ const a = t, n = lu(u[a]), c = n ? Object.keys(u[a]).map((o) => {
2073
+ const l = u[a][o];
2074
+ return `${o}="${tt(l) ? l.replace(/"/gm, "") : l}"`;
2075
+ }).join(" ") : `${t}="${u[a]}"`;
2076
+ return `<mj-html-attribute class="easy-email" multiple-attributes="${n}" attribute-name="${t}" ${c}></mj-html-attribute>`;
2077
+ }).join(`
2078
+ `)}
2079
+
2080
+ </mj-html-attributes>
2081
+ `;
2082
+ }
2083
+ class We {
2084
+ static setLocaleData(u) {
2085
+ this.localeData = u;
2086
+ }
2087
+ static translate(u, i) {
2088
+ const t = ae(this.localeData, u, u);
2089
+ if (!i)
2090
+ return t;
2091
+ const a = t.split("***");
2092
+ return a.splice(1, 0, i), /* @__PURE__ */ x.createElement(x.Fragment, null, a.map((n, c) => /* @__PURE__ */ x.createElement(x.Fragment, { key: c }, n)));
2093
+ }
2094
+ }
2095
+ ee(We, "localeData", {});
2096
+ const I = We.translate.bind(We), Nu = {
2097
+ get name() {
2098
+ return I("Page");
2099
+ },
2100
+ type: p.PAGE,
2101
+ create: (e) => {
2102
+ const u = {
2103
+ type: p.PAGE,
2104
+ data: {
2105
+ value: {
2106
+ breakpoint: "480px",
2107
+ headAttributes: "",
2108
+ "font-size": "14px",
2109
+ "font-weight": "400",
2110
+ "line-height": "1.7",
2111
+ headStyles: [],
2112
+ fonts: [],
2113
+ responsive: !0,
2114
+ "font-family": "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans','Helvetica Neue', sans-serif",
2115
+ "text-color": "#000000"
2116
+ }
2117
+ },
2118
+ attributes: {
2119
+ "background-color": "#efeeea",
2120
+ width: "600px"
2121
+ },
2122
+ children: [Wt.create()]
2123
+ };
2124
+ return z(u, e);
2125
+ },
2126
+ validParentType: [],
2127
+ render(e) {
2128
+ var b, d;
2129
+ const { data: u } = e, i = Lu(u), t = u.data.value, a = t.breakpoint ? `<mj-breakpoint width="${u.data.value.breakpoint}" />` : "", n = t.responsive ? "" : `<mj-raw>
2130
+ <meta name="viewport" />
2131
+ </mj-raw>
2132
+ <mj-style inline="inline">.mjml-body { width: ${u.attributes.width || "600px"}; margin: 0px auto; }</mj-style>`, c = ((b = t.headStyles) == null ? void 0 : b.map(
2133
+ (g) => `<mj-style ${g.inline ? 'inline="inline"' : ""}>${g.content}</mj-style>`
2134
+ ).join(`
2135
+ `)) || "", o = t["user-style"] ? `<mj-style ${t["user-style"].inline ? 'inline="inline"' : ""}>${t["user-style"].content}</mj-style>` : "", l = t.extraHeadContent ? `<mj-raw>${t.extraHeadContent}</mj-raw>` : "";
2136
+ return /* @__PURE__ */ x.createElement(x.Fragment, null, `
2137
+ <mjml>
2138
+ <mj-head>
2139
+ ${i}
2140
+ ${n}
2141
+ ${c}
2142
+ ${o}
2143
+ ${a}
2144
+ ${l}
2145
+ ${(d = t.fonts) == null ? void 0 : d.filter(Boolean).map((g) => `<mj-font name="${g.name}" href="${g.href}" />`)}
2146
+ <mj-attributes>
2147
+ ${t.headAttributes}
2148
+ ${t["font-family"] ? `<mj-all font-family="${t["font-family"].replace(/"/gm, "")}" />` : ""}
2149
+ ${t["font-size"] ? `<mj-text font-size="${t["font-size"]}" />` : ""}
2150
+ ${t["text-color"] ? `<mj-text color="${t["text-color"]}" />` : ""}
2151
+ ${t["line-height"] ? `<mj-text line-height="${t["line-height"]}" />` : ""}
2152
+ ${t["font-weight"] ? `<mj-text font-weight="${t["font-weight"]}" />` : ""}
2153
+ ${t["content-background-color"] ? `<mj-wrapper background-color="${t["content-background-color"]}" />
2154
+ <mj-section background-color="${t["content-background-color"]}" />
2155
+ ` : ""}
2156
+
2157
+ </mj-attributes>
2158
+ </mj-head>
2159
+ <mj-body ${et(e)}>`, u.children.map((g, E) => /* @__PURE__ */ x.createElement(
2160
+ ie,
2161
+ $(j({}, e), {
2162
+ idx: st(Zt(), E),
2163
+ key: E,
2164
+ data: g
2165
+ })
2166
+ )), "</mj-body></mjml > ");
2167
+ }
2168
+ }, Pu = {
2169
+ get name() {
2170
+ return I("Section");
2171
+ },
2172
+ type: p.SECTION,
2173
+ create: (e) => {
2174
+ const u = {
2175
+ type: p.SECTION,
2176
+ data: {
2177
+ value: {
2178
+ noWrap: !1
2179
+ }
2180
+ },
2181
+ attributes: {
2182
+ padding: "20px 0px 20px 0px",
2183
+ "background-repeat": "repeat",
2184
+ "background-size": "auto",
2185
+ "background-position": "top center",
2186
+ border: "none",
2187
+ direction: "ltr",
2188
+ "text-align": "center"
2189
+ },
2190
+ children: []
2191
+ };
2192
+ return z(u, e);
2193
+ },
2194
+ validParentType: [p.PAGE, p.WRAPPER],
2195
+ render(e) {
2196
+ return /* @__PURE__ */ x.createElement(
2197
+ G,
2198
+ {
2199
+ params: e,
2200
+ tag: "mj-section"
2201
+ }
2202
+ );
2203
+ }
2204
+ }, Iu = {
2205
+ get name() {
2206
+ return I("Column");
2207
+ },
2208
+ type: p.COLUMN,
2209
+ create: (e) => {
2210
+ const u = {
2211
+ type: p.COLUMN,
2212
+ data: {
2213
+ value: {}
2214
+ },
2215
+ attributes: {
2216
+ padding: "0px 0px 0px 0px",
2217
+ border: "none",
2218
+ "vertical-align": "top"
2219
+ },
2220
+ children: []
2221
+ };
2222
+ return z(u, e);
2223
+ },
2224
+ validParentType: [p.SECTION, p.GROUP],
2225
+ render(e) {
2226
+ return /* @__PURE__ */ x.createElement(
2227
+ G,
2228
+ {
2229
+ params: e,
2230
+ tag: "mj-column"
2231
+ }
2232
+ );
2233
+ }
2234
+ }, Uu = {
2235
+ get name() {
2236
+ return I("Text");
2237
+ },
2238
+ type: p.TEXT,
2239
+ create: (e) => {
2240
+ const u = {
2241
+ type: p.TEXT,
2242
+ data: {
2243
+ value: {
2244
+ content: I("Make it easy for everyone to compose emails!")
2245
+ }
2246
+ },
2247
+ attributes: {
2248
+ padding: "10px 25px 10px 25px",
2249
+ align: "left"
2250
+ },
2251
+ children: []
2252
+ };
2253
+ return z(u, e);
2254
+ },
2255
+ validParentType: [p.COLUMN, p.HERO],
2256
+ render(e) {
2257
+ const { data: u } = e;
2258
+ return /* @__PURE__ */ x.createElement(
2259
+ G,
2260
+ {
2261
+ params: e,
2262
+ tag: "mj-text"
2263
+ },
2264
+ u.data.value.content
2265
+ );
2266
+ }
2267
+ }, ju = {
2268
+ get name() {
2269
+ return I("Image");
2270
+ },
2271
+ type: p.IMAGE,
2272
+ create: (e) => {
2273
+ const u = {
2274
+ type: p.IMAGE,
2275
+ data: {
2276
+ value: {}
2277
+ },
2278
+ attributes: {
2279
+ align: "center",
2280
+ height: "auto",
2281
+ padding: "10px 25px 10px 25px",
2282
+ src: ""
2283
+ },
2284
+ children: []
2285
+ };
2286
+ return z(u, e);
2287
+ },
2288
+ validParentType: [p.COLUMN, p.HERO],
2289
+ render(e) {
2290
+ return /* @__PURE__ */ x.createElement(
2291
+ G,
2292
+ {
2293
+ params: e,
2294
+ tag: "mj-image"
2295
+ }
2296
+ );
2297
+ }
2298
+ }, Vu = {
2299
+ get name() {
2300
+ return I("Group");
2301
+ },
2302
+ type: p.GROUP,
2303
+ create: (e) => {
2304
+ const u = {
2305
+ type: p.GROUP,
2306
+ data: {
2307
+ value: {}
2308
+ },
2309
+ attributes: {
2310
+ "vertical-align": "top",
2311
+ direction: "ltr"
2312
+ },
2313
+ children: []
2314
+ };
2315
+ return z(u, e);
2316
+ },
2317
+ validParentType: [p.SECTION],
2318
+ render(e) {
2319
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-group" });
2320
+ }
2321
+ }, Mu = {
2322
+ get name() {
2323
+ return I("Button");
2324
+ },
2325
+ type: p.BUTTON,
2326
+ create: (e) => {
2327
+ const u = {
2328
+ type: p.BUTTON,
2329
+ data: {
2330
+ value: {
2331
+ content: "Button"
2332
+ }
2333
+ },
2334
+ attributes: {
2335
+ align: "center",
2336
+ "background-color": "#414141",
2337
+ color: "#ffffff",
2338
+ "font-weight": "normal",
2339
+ "border-radius": "3px",
2340
+ padding: "10px 25px 10px 25px",
2341
+ "inner-padding": "10px 25px 10px 25px",
2342
+ "line-height": "120%",
2343
+ target: "_blank",
2344
+ "vertical-align": "middle",
2345
+ border: "none",
2346
+ "text-align": "center",
2347
+ href: "#"
2348
+ },
2349
+ children: []
2350
+ };
2351
+ return z(u, e);
2352
+ },
2353
+ validParentType: [p.COLUMN, p.HERO],
2354
+ render(e) {
2355
+ const { data: u } = e;
2356
+ return /* @__PURE__ */ x.createElement(
2357
+ G,
2358
+ {
2359
+ params: e,
2360
+ tag: "mj-button"
2361
+ },
2362
+ u.data.value.content
2363
+ );
2364
+ }
2365
+ }, Gu = {
2366
+ get name() {
2367
+ return I("Divider");
2368
+ },
2369
+ type: p.DIVIDER,
2370
+ create: (e) => {
2371
+ const u = {
2372
+ type: p.DIVIDER,
2373
+ data: {
2374
+ value: {}
2375
+ },
2376
+ attributes: {
2377
+ align: "center",
2378
+ "border-width": "1px",
2379
+ "border-style": "solid",
2380
+ "border-color": "#C9CCCF",
2381
+ padding: "10px 0px 10px 0px"
2382
+ },
2383
+ children: []
2384
+ };
2385
+ return z(u, e);
2386
+ },
2387
+ validParentType: [p.COLUMN, p.HERO],
2388
+ render(e) {
2389
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-divider" });
2390
+ }
2391
+ }, zu = {
2392
+ get name() {
2393
+ return I("Spacer");
2394
+ },
2395
+ type: p.SPACER,
2396
+ create: (e) => {
2397
+ const u = {
2398
+ type: p.SPACER,
2399
+ data: {
2400
+ value: {}
2401
+ },
2402
+ attributes: {
2403
+ height: "20px"
2404
+ },
2405
+ children: []
2406
+ };
2407
+ return z(u, e);
2408
+ },
2409
+ validParentType: [p.COLUMN, p.HERO],
2410
+ render(e) {
2411
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-spacer" });
2412
+ }
2413
+ };
2414
+ function pe(e, u) {
2415
+ return cu(e, u, (i, t) => _u(t) ? t : void 0);
2416
+ }
2417
+ const $u = {
2418
+ get name() {
2419
+ return I("Carousel");
2420
+ },
2421
+ type: p.CAROUSEL,
2422
+ create: (e) => {
2423
+ const u = {
2424
+ type: p.CAROUSEL,
2425
+ data: {
2426
+ value: {
2427
+ images: [
2428
+ {
2429
+ src: Q("IMAGE_15"),
2430
+ target: "_blank"
2431
+ },
2432
+ {
2433
+ src: Q("IMAGE_16"),
2434
+ target: "_blank"
2435
+ },
2436
+ {
2437
+ src: Q("IMAGE_17"),
2438
+ target: "_blank"
2439
+ }
2440
+ ]
2441
+ }
2442
+ },
2443
+ attributes: {
2444
+ align: "center",
2445
+ "left-icon": "https://i.imgur.com/xTh3hln.png",
2446
+ "right-icon": "https://i.imgur.com/os7o9kz.png",
2447
+ "icon-width": "44px",
2448
+ thumbnails: "visible"
2449
+ },
2450
+ children: []
2451
+ };
2452
+ return pe(u, e);
2453
+ },
2454
+ validParentType: [p.COLUMN],
2455
+ render(e) {
2456
+ const { data: u } = e, i = u.data.value.images.map((t) => `
2457
+ <mj-carousel-image ${Object.keys(t).filter((n) => n !== "content" && t[n] !== "").map((n) => `${n}="${t[n]}"`).join(" ")} />
2458
+ `).join(`
2459
+ `);
2460
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-carousel" }, i);
2461
+ }
2462
+ }, Hu = {
2463
+ get name() {
2464
+ return I("Hero");
2465
+ },
2466
+ type: p.HERO,
2467
+ create: (e) => {
2468
+ const u = {
2469
+ type: p.HERO,
2470
+ data: {
2471
+ value: {}
2472
+ },
2473
+ attributes: {
2474
+ "background-color": "#ffffff",
2475
+ "background-position": "center center",
2476
+ mode: "fluid-height",
2477
+ padding: "100px 0px 100px 0px",
2478
+ "vertical-align": "top",
2479
+ "background-url": Q("IMAGE_31")
2480
+ },
2481
+ children: [
2482
+ {
2483
+ type: "text",
2484
+ data: {
2485
+ value: {
2486
+ content: "We Serve Healthy &amp; Delicious Foods"
2487
+ }
2488
+ },
2489
+ attributes: {
2490
+ padding: "10px 25px 10px 25px",
2491
+ align: "center",
2492
+ color: "#ffffff",
2493
+ "font-size": "45px",
2494
+ "line-height": "45px"
2495
+ },
2496
+ children: []
2497
+ },
2498
+ {
2499
+ type: "text",
2500
+ data: {
2501
+ value: {
2502
+ content: "A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.<br>"
2503
+ }
2504
+ },
2505
+ attributes: {
2506
+ align: "center",
2507
+ "background-color": "#414141",
2508
+ color: "#ffffff",
2509
+ "font-weight": "normal",
2510
+ "border-radius": "3px",
2511
+ padding: "10px 25px 10px 25px",
2512
+ "inner-padding": "10px 25px 10px 25px",
2513
+ "line-height": "1.5",
2514
+ target: "_blank",
2515
+ "vertical-align": "middle",
2516
+ border: "none",
2517
+ "text-align": "center",
2518
+ href: "#",
2519
+ "font-size": "14px"
2520
+ },
2521
+ children: []
2522
+ },
2523
+ {
2524
+ type: "button",
2525
+ data: {
2526
+ value: {
2527
+ content: "Get Your Order Here!"
2528
+ }
2529
+ },
2530
+ attributes: {
2531
+ align: "center",
2532
+ "background-color": "#f3a333",
2533
+ color: "#ffffff",
2534
+ "font-size": "13px",
2535
+ "font-weight": "normal",
2536
+ "border-radius": "30px",
2537
+ padding: "10px 25px 10px 25px",
2538
+ "inner-padding": "10px 25px 10px 25px",
2539
+ "line-height": "120%",
2540
+ target: "_blank",
2541
+ "vertical-align": "middle",
2542
+ border: "none",
2543
+ "text-align": "center",
2544
+ href: "#"
2545
+ },
2546
+ children: []
2547
+ }
2548
+ ]
2549
+ };
2550
+ return pe(u, e);
2551
+ },
2552
+ validParentType: [p.PAGE, p.WRAPPER],
2553
+ render(e) {
2554
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-hero" });
2555
+ }
2556
+ }, Wu = {
2557
+ get name() {
2558
+ return I("Navbar");
2559
+ },
2560
+ type: p.NAVBAR,
2561
+ create: (e) => {
2562
+ const u = {
2563
+ type: p.NAVBAR,
2564
+ data: {
2565
+ value: {
2566
+ links: [
2567
+ {
2568
+ href: "/gettings-started-onboard",
2569
+ content: "Getting started",
2570
+ color: "#1890ff",
2571
+ "font-size": "13px",
2572
+ target: "_blank",
2573
+ padding: "15px 10px"
2574
+ },
2575
+ {
2576
+ href: "/try-it-live",
2577
+ content: "Try it live",
2578
+ color: "#1890ff",
2579
+ "font-size": "13px",
2580
+ target: "_blank",
2581
+ padding: "15px 10px"
2582
+ },
2583
+ {
2584
+ href: "/templates",
2585
+ content: "Templates",
2586
+ color: "#1890ff",
2587
+ "font-size": "13px",
2588
+ target: "_blank",
2589
+ padding: "15px 10px"
2590
+ },
2591
+ {
2592
+ href: "/components",
2593
+ content: "Components",
2594
+ color: "#1890ff",
2595
+ "font-size": "13px",
2596
+ target: "_blank",
2597
+ padding: "15px 10px"
2598
+ }
2599
+ ]
2600
+ }
2601
+ },
2602
+ attributes: {
2603
+ align: "center"
2604
+ },
2605
+ children: []
2606
+ };
2607
+ return pe(u, e);
2608
+ },
2609
+ validParentType: [p.COLUMN, p.HERO],
2610
+ render(e) {
2611
+ const { data: u } = e, i = u.data.value.links.map((t, a) => `
2612
+ <mj-navbar-link ${Object.keys(t).filter((c) => c !== "content" && t[c] !== "").map((c) => `${c}="${t[c]}"`).join(" ")}>${t.content}</mj-navbar-link>
2613
+ `).join(`
2614
+ `);
2615
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-navbar" }, i);
2616
+ }
2617
+ }, Ku = {
2618
+ get name() {
2619
+ return I("Social");
2620
+ },
2621
+ type: p.SOCIAL,
2622
+ create: (e) => {
2623
+ const u = {
2624
+ type: p.SOCIAL,
2625
+ data: {
2626
+ value: {
2627
+ elements: [
2628
+ {
2629
+ href: "#",
2630
+ target: "_blank",
2631
+ src: Q("IMAGE_02"),
2632
+ content: "Facebook"
2633
+ },
2634
+ {
2635
+ href: "#",
2636
+ target: "_blank",
2637
+ src: Q("IMAGE_03"),
2638
+ content: "Google"
2639
+ },
2640
+ {
2641
+ href: "",
2642
+ target: "_blank",
2643
+ src: Q("IMAGE_04"),
2644
+ content: "Twitter"
2645
+ }
2646
+ ]
2647
+ }
2648
+ },
2649
+ attributes: {
2650
+ align: "center",
2651
+ color: "#333333",
2652
+ mode: "horizontal",
2653
+ "font-size": "13px",
2654
+ "font-weight": "normal",
2655
+ "border-radius": "3px",
2656
+ padding: "10px 25px 10px 25px",
2657
+ "inner-padding": "4px 4px 4px 4px",
2658
+ "line-height": "22px",
2659
+ "text-padding": "4px 4px 4px 0px",
2660
+ "icon-padding": "0px",
2661
+ "icon-size": "20px"
2662
+ },
2663
+ children: []
2664
+ };
2665
+ return pe(u, e);
2666
+ },
2667
+ validParentType: [p.COLUMN],
2668
+ render(e) {
2669
+ const { data: u } = e, i = u.data.value.elements.map((t) => {
2670
+ var n;
2671
+ return `
2672
+ <mj-social-element ${Object.keys(t).filter((c) => c !== "content" && t[c] !== "").map((c) => `${c}="${t[c]}"`).join(" ")}>${(n = t.content) != null ? n : ""}</mj-social-element>
2673
+ `;
2674
+ }).join(`
2675
+ `);
2676
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-social" }, i);
2677
+ }
2678
+ }, Xu = {
2679
+ get name() {
2680
+ return I("Raw");
2681
+ },
2682
+ type: p.RAW,
2683
+ create: (e) => {
2684
+ const u = {
2685
+ type: p.RAW,
2686
+ data: {
2687
+ value: {
2688
+ content: "<% if (user) { %>"
2689
+ }
2690
+ },
2691
+ attributes: {},
2692
+ children: []
2693
+ };
2694
+ return z(u, e);
2695
+ },
2696
+ validParentType: [
2697
+ p.PAGE,
2698
+ p.WRAPPER,
2699
+ p.SECTION,
2700
+ p.GROUP,
2701
+ p.COLUMN,
2702
+ p.HERO
2703
+ ],
2704
+ render(e) {
2705
+ return /* @__PURE__ */ x.createElement(
2706
+ G,
2707
+ {
2708
+ params: e,
2709
+ tag: "mj-raw"
2710
+ },
2711
+ e.data.data.value.content
2712
+ );
2713
+ }
2714
+ }, Qu = {
2715
+ get name() {
2716
+ return I("Template");
2717
+ },
2718
+ type: p.TEMPLATE,
2719
+ create: (e) => {
2720
+ const u = {
2721
+ type: p.TEMPLATE,
2722
+ data: {
2723
+ value: {
2724
+ idx: ""
2725
+ }
2726
+ },
2727
+ attributes: {},
2728
+ children: []
2729
+ };
2730
+ return z(u, e);
2731
+ },
2732
+ validParentType: [],
2733
+ render(e) {
2734
+ const { data: u } = e;
2735
+ return /* @__PURE__ */ x.createElement(x.Fragment, null, `
2736
+ ${u.children.map((i) => /* @__PURE__ */ x.createElement(ie, $(j({}, e), { data: i })))}
2737
+ `);
2738
+ }
2739
+ }, Ke = {
2740
+ get name() {
2741
+ return I("Accordion element");
2742
+ },
2743
+ type: p.ACCORDION_ELEMENT,
2744
+ create: (e) => {
2745
+ const u = {
2746
+ type: p.ACCORDION_ELEMENT,
2747
+ data: {
2748
+ value: {}
2749
+ },
2750
+ attributes: {
2751
+ "icon-align": "middle",
2752
+ "icon-height": "32px",
2753
+ "icon-width": "32px",
2754
+ "icon-position": "right"
2755
+ },
2756
+ children: []
2757
+ };
2758
+ return z(u, e);
2759
+ },
2760
+ validParentType: [p.ACCORDION],
2761
+ render(e) {
2762
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-accordion-element" });
2763
+ }
2764
+ }, Xe = {
2765
+ get name() {
2766
+ return I("Accordion title");
2767
+ },
2768
+ type: p.ACCORDION_TITLE,
2769
+ create: (e) => {
2770
+ const u = {
2771
+ type: p.ACCORDION_TITLE,
2772
+ data: {
2773
+ value: {
2774
+ content: "Why use an accordion?"
2775
+ }
2776
+ },
2777
+ attributes: {
2778
+ "font-size": "13px",
2779
+ padding: "16px 16px 16px 16px"
2780
+ },
2781
+ children: []
2782
+ };
2783
+ return z(u, e);
2784
+ },
2785
+ validParentType: [p.ACCORDION],
2786
+ render(e) {
2787
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-accordion-title" }, e.data.data.value.content);
2788
+ }
2789
+ }, Qe = {
2790
+ get name() {
2791
+ return I("Accordion text");
2792
+ },
2793
+ type: p.ACCORDION_TEXT,
2794
+ create: (e) => {
2795
+ const u = {
2796
+ type: p.ACCORDION_TEXT,
2797
+ data: {
2798
+ value: {
2799
+ content: "Because emails with a lot of content are most of the time a very bad experience on mobile, mj-accordion comes handy when you want to deliver a lot of information in a concise way"
2800
+ }
2801
+ },
2802
+ attributes: {
2803
+ "font-size": "13px",
2804
+ padding: "16px 16px 16px 16px",
2805
+ "line-height": "1"
2806
+ },
2807
+ children: []
2808
+ };
2809
+ return z(u, e);
2810
+ },
2811
+ validParentType: [p.ACCORDION],
2812
+ render(e) {
2813
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-accordion-text" }, e.data.data.value.content);
2814
+ }
2815
+ }, Yu = {
2816
+ get name() {
2817
+ return I("Accordion");
2818
+ },
2819
+ type: p.ACCORDION,
2820
+ validParentType: [p.COLUMN],
2821
+ create: (e) => {
2822
+ const u = {
2823
+ type: p.ACCORDION,
2824
+ data: {
2825
+ value: {}
2826
+ },
2827
+ attributes: {
2828
+ "icon-height": "32px",
2829
+ "icon-width": "32px",
2830
+ "icon-align": "middle",
2831
+ "icon-position": "right",
2832
+ "icon-unwrapped-url": Q("IMAGE_09"),
2833
+ "icon-wrapped-url": Q("IMAGE_10"),
2834
+ padding: "10px 25px 10px 25px",
2835
+ border: "1px solid #d9d9d9"
2836
+ },
2837
+ children: [
2838
+ Ke.create({
2839
+ children: [
2840
+ Xe.create({
2841
+ data: {
2842
+ value: {
2843
+ content: "Why use an accordion?"
2844
+ }
2845
+ }
2846
+ }),
2847
+ Qe.create({
2848
+ data: {
2849
+ value: {
2850
+ content: "Because emails with a lot of content are most of the time a very bad experience on mobile, mj-accordion comes handy when you want to deliver a lot of information in a concise way."
2851
+ }
2852
+ }
2853
+ })
2854
+ ]
2855
+ }),
2856
+ Ke.create({
2857
+ children: [
2858
+ Xe.create({
2859
+ data: {
2860
+ value: {
2861
+ content: "How it works"
2862
+ }
2863
+ }
2864
+ }),
2865
+ Qe.create({
2866
+ data: {
2867
+ value: {
2868
+ content: "Content is stacked into tabs and users can expand them at will. If responsive styles are not supported (mostly on desktop clients), tabs are then expanded and your content is readable at once."
2869
+ }
2870
+ }
2871
+ })
2872
+ ]
2873
+ })
2874
+ ]
2875
+ };
2876
+ return pe(u, e);
2877
+ },
2878
+ render(e) {
2879
+ return /* @__PURE__ */ x.createElement(G, { params: e, tag: "mj-accordion" });
2880
+ }
2881
+ }, Ju = {
2882
+ get name() {
2883
+ return I("Table");
2884
+ },
2885
+ type: p.TABLE,
2886
+ create: (e) => {
2887
+ const u = {
2888
+ type: p.TABLE,
2889
+ data: {
2890
+ value: {
2891
+ content: ""
2892
+ }
2893
+ },
2894
+ attributes: {},
2895
+ children: []
2896
+ };
2897
+ return z(u, e);
2898
+ },
2899
+ validParentType: [p.COLUMN],
2900
+ render(e) {
2901
+ const { data: u } = e;
2902
+ return /* @__PURE__ */ x.createElement(
2903
+ G,
2904
+ {
2905
+ params: e,
2906
+ tag: "mj-table"
2907
+ },
2908
+ u.data.value.content
2909
+ );
2910
+ }
2911
+ }, Kt = {
2912
+ [p.PAGE]: Nu,
2913
+ [p.SECTION]: Pu,
2914
+ [p.COLUMN]: Iu,
2915
+ [p.TEXT]: Uu,
2916
+ [p.IMAGE]: ju,
2917
+ [p.GROUP]: Vu,
2918
+ [p.BUTTON]: Mu,
2919
+ [p.DIVIDER]: Gu,
2920
+ [p.WRAPPER]: Wt,
2921
+ [p.SPACER]: zu,
2922
+ [p.RAW]: Xu,
2923
+ [p.CAROUSEL]: $u,
2924
+ [p.HERO]: Hu,
2925
+ [p.NAVBAR]: Wu,
2926
+ [p.SOCIAL]: Ku,
2927
+ // spacial block, render string
2928
+ [p.TEMPLATE]: Qu,
2929
+ // TODO:
2930
+ [p.ACCORDION]: Yu,
2931
+ [p.ACCORDION_ELEMENT]: Ke,
2932
+ [p.ACCORDION_TITLE]: Xe,
2933
+ [p.ACCORDION_TEXT]: Qe,
2934
+ [p.TABLE]: Ju
2935
+ }, Xt = mu;
2936
+ function Qt(e) {
2937
+ const u = Object.values(Kt).find(
2938
+ (i) => i.type === e.baseType
2939
+ );
2940
+ if (!u)
2941
+ throw new Error(`Can not find ${e.baseType}`);
2942
+ return Xt({
2943
+ get name() {
2944
+ return u.name;
2945
+ },
2946
+ type: e.type,
2947
+ validParentType: e.validParentType,
2948
+ create: (i) => {
2949
+ const t = $(j({}, u.create()), {
2950
+ type: e.type
2951
+ });
2952
+ return z(t, i);
2953
+ },
2954
+ render: (i) => {
2955
+ const { data: t, idx: a, mode: n, context: c, dataSource: o } = i, { iteration: l, condition: b } = t.data.value, d = (E, R) => e.getContent({
2956
+ index: R,
2957
+ data: t,
2958
+ idx: E,
2959
+ mode: n,
2960
+ context: c,
2961
+ dataSource: o
2962
+ });
2963
+ let g = d(a, 0);
2964
+ return n === "testing" ? /* @__PURE__ */ x.createElement(x.Fragment, null, /* @__PURE__ */ x.createElement(x.Fragment, { key: "children" }, g), new Array(((l == null ? void 0 : l.mockQuantity) || 1) - 1).fill(!0).map((E, R) => /* @__PURE__ */ x.createElement(x.Fragment, { key: R }, d(a, R + 1)))) : (b && b.enabled && (g = Ze.generateTagTemplate("condition")(
2965
+ b,
2966
+ g
2967
+ )), l && l.enabled && (g = Ze.generateTagTemplate("iteration")(
2968
+ l,
2969
+ g
2970
+ )), g);
2971
+ }
2972
+ });
2973
+ }
2974
+ var Ye = /* @__PURE__ */ ((e) => (e.TRUTHY = "truthy", e.FALSY = "falsy", e.EQUAL = "==", e.NOT_EQUAL = "!=", e.GREATER = ">", e.GREATER_OR_EQUAL = ">=", e.LESS = "<", e.LESS_OR_EQUAL = "<=", e))(Ye || {}), Zu = /* @__PURE__ */ ((e) => (e.AND = "and", e.OR = "or", e))(Zu || {});
2975
+ function M({
2976
+ idx: e,
2977
+ value: u,
2978
+ type: i,
2979
+ attributes: t,
2980
+ children: a
2981
+ }) {
2982
+ const { mode: n } = Ht(), c = X.getBlockByType(i);
2983
+ if (!c)
2984
+ throw new Error(`Can no find ${i}`);
2985
+ const o = ou(() => typeof a == "string" ? u ? (pu(u, "content", a), u) : {
2986
+ content: a
2987
+ } : u, [a, u]);
2988
+ return /* @__PURE__ */ x.createElement(x.Fragment, null, c.render({
2989
+ idx: e,
2990
+ mode: n,
2991
+ data: {
2992
+ type: c.type,
2993
+ data: {
2994
+ value: o
2995
+ },
2996
+ attributes: t,
2997
+ children: []
2998
+ },
2999
+ children: a
3000
+ }));
3001
+ }
3002
+ function er(e) {
3003
+ return /* @__PURE__ */ x.createElement(
3004
+ M,
3005
+ {
3006
+ attributes: V(e, ["data", "children", "value"]),
3007
+ value: e.value,
3008
+ type: p.PAGE
3009
+ },
3010
+ e.children
3011
+ );
3012
+ }
3013
+ function Yt(e) {
3014
+ return /* @__PURE__ */ x.createElement(
3015
+ M,
3016
+ {
3017
+ attributes: V(e, ["data", "children", "value"]),
3018
+ value: e.value,
3019
+ type: p.SECTION
3020
+ },
3021
+ e.children
3022
+ );
3023
+ }
3024
+ function Jt(e) {
3025
+ return /* @__PURE__ */ x.createElement(
3026
+ M,
3027
+ {
3028
+ attributes: V(e, ["data", "children", "value"]),
3029
+ value: e.value,
3030
+ type: p.COLUMN
3031
+ },
3032
+ e.children
3033
+ );
3034
+ }
3035
+ function tr(e) {
3036
+ return /* @__PURE__ */ x.createElement(
3037
+ M,
3038
+ {
3039
+ attributes: V(e, ["data", "children", "value"]),
3040
+ value: e.value,
3041
+ type: p.TEXT
3042
+ },
3043
+ e.children
3044
+ );
3045
+ }
3046
+ function ur(e) {
3047
+ return /* @__PURE__ */ x.createElement(
3048
+ M,
3049
+ {
3050
+ attributes: V(e, ["data", "children", "value"]),
3051
+ value: e.value,
3052
+ type: p.IMAGE
3053
+ },
3054
+ e.children
3055
+ );
3056
+ }
3057
+ function rr(e) {
3058
+ return /* @__PURE__ */ x.createElement(
3059
+ M,
3060
+ {
3061
+ attributes: V(e, ["data", "children", "value"]),
3062
+ value: e.value,
3063
+ type: p.GROUP
3064
+ },
3065
+ e.children
3066
+ );
3067
+ }
3068
+ function ir(e) {
3069
+ return /* @__PURE__ */ x.createElement(
3070
+ M,
3071
+ {
3072
+ attributes: V(e, ["data", "children", "value"]),
3073
+ value: e.value,
3074
+ type: p.BUTTON
3075
+ },
3076
+ e.children
3077
+ );
3078
+ }
3079
+ function ar(e) {
3080
+ return /* @__PURE__ */ x.createElement(
3081
+ M,
3082
+ {
3083
+ attributes: V(e, ["data", "children", "value"]),
3084
+ value: e.value,
3085
+ type: p.DIVIDER
3086
+ },
3087
+ e.children
3088
+ );
3089
+ }
3090
+ function sr(e) {
3091
+ return /* @__PURE__ */ x.createElement(
3092
+ M,
3093
+ {
3094
+ attributes: V(e, ["data", "children", "value"]),
3095
+ value: e.value,
3096
+ type: p.WRAPPER
3097
+ },
3098
+ e.children
3099
+ );
3100
+ }
3101
+ function nr(e) {
3102
+ return /* @__PURE__ */ x.createElement(
3103
+ M,
3104
+ {
3105
+ attributes: V(e, ["data", "children", "value"]),
3106
+ value: e.value,
3107
+ type: p.SPACER
3108
+ },
3109
+ e.children
3110
+ );
3111
+ }
3112
+ function ce(e) {
3113
+ return /* @__PURE__ */ x.createElement(
3114
+ M,
3115
+ {
3116
+ attributes: V(e, ["data", "children", "value"]),
3117
+ value: e.value,
3118
+ type: p.RAW
3119
+ },
3120
+ e.children
3121
+ );
3122
+ }
3123
+ function or(e) {
3124
+ return /* @__PURE__ */ x.createElement(
3125
+ M,
3126
+ {
3127
+ attributes: V(e, ["data", "children", "value"]),
3128
+ value: e.value,
3129
+ type: p.ACCORDION
3130
+ },
3131
+ e.children
3132
+ );
3133
+ }
3134
+ function lr(e) {
3135
+ return /* @__PURE__ */ x.createElement(
3136
+ M,
3137
+ {
3138
+ attributes: V(e, ["data", "children", "value"]),
3139
+ value: e.value,
3140
+ type: p.ACCORDION_ELEMENT
3141
+ },
3142
+ e.children
3143
+ );
3144
+ }
3145
+ function cr(e) {
3146
+ return /* @__PURE__ */ x.createElement(
3147
+ M,
3148
+ {
3149
+ attributes: V(e, ["data", "children", "value"]),
3150
+ value: e.value,
3151
+ type: p.ACCORDION_TITLE
3152
+ },
3153
+ e.children
3154
+ );
3155
+ }
3156
+ function _r(e) {
3157
+ return /* @__PURE__ */ x.createElement(
3158
+ M,
3159
+ {
3160
+ attributes: V(e, ["data", "children", "value"]),
3161
+ value: e.value,
3162
+ type: p.ACCORDION_TEXT
3163
+ },
3164
+ e.children
3165
+ );
3166
+ }
3167
+ function pr(e) {
3168
+ return /* @__PURE__ */ x.createElement(
3169
+ M,
3170
+ {
3171
+ attributes: V(e, ["data", "children", "value"]),
3172
+ value: e.value,
3173
+ type: p.CAROUSEL
3174
+ },
3175
+ e.children
3176
+ );
3177
+ }
3178
+ function hr(e) {
3179
+ return /* @__PURE__ */ x.createElement(
3180
+ M,
3181
+ {
3182
+ attributes: V(e, ["data", "children", "value"]),
3183
+ value: e.value,
3184
+ type: p.HERO
3185
+ },
3186
+ e.children
3187
+ );
3188
+ }
3189
+ function fr(e) {
3190
+ return /* @__PURE__ */ x.createElement(
3191
+ M,
3192
+ {
3193
+ attributes: V(e, ["data", "children", "value"]),
3194
+ value: e.value,
3195
+ type: p.NAVBAR
3196
+ },
3197
+ e.children
3198
+ );
3199
+ }
3200
+ function dr(e) {
3201
+ return /* @__PURE__ */ x.createElement(
3202
+ M,
3203
+ {
3204
+ attributes: V(e, ["data", "children", "value"]),
3205
+ value: e.value,
3206
+ type: p.SOCIAL
3207
+ },
3208
+ e.children
3209
+ );
3210
+ }
3211
+ function gr(e) {
3212
+ return /* @__PURE__ */ x.createElement(
3213
+ M,
3214
+ {
3215
+ attributes: V(e, ["data", "children", "value"]),
3216
+ value: e.value,
3217
+ type: p.TABLE
3218
+ },
3219
+ e.children
3220
+ );
3221
+ }
3222
+ function mr(e) {
3223
+ return e.children;
3224
+ }
3225
+ const Wr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3226
+ __proto__: null,
3227
+ Accordion: or,
3228
+ AccordionElement: lr,
3229
+ AccordionText: _r,
3230
+ AccordionTitle: cr,
3231
+ BlockRenderer: ie,
3232
+ Button: ir,
3233
+ Carousel: pr,
3234
+ Column: Jt,
3235
+ Divider: ar,
3236
+ Group: rr,
3237
+ Hero: hr,
3238
+ Image: ur,
3239
+ MjmlBlock: M,
3240
+ Navbar: fr,
3241
+ Page: er,
3242
+ Raw: ce,
3243
+ Section: Yt,
3244
+ Social: dr,
3245
+ Spacer: nr,
3246
+ Table: gr,
3247
+ Template: mr,
3248
+ Text: tr,
3249
+ Wrapper: sr
3250
+ }, Symbol.toStringTag, { value: "Module" }));
3251
+ function te(...e) {
3252
+ return e.filter((u) => typeof u == "string").join(" ");
3253
+ }
3254
+ function Dr(e, u) {
3255
+ let i = -1;
3256
+ const t = X.getAutoCompletePath(e, u);
3257
+ return t ? t.length + 1 : i;
3258
+ }
3259
+ function Zt() {
3260
+ return "content";
3261
+ }
3262
+ function st(e, u) {
3263
+ return `${e}.children.[${u}]`;
3264
+ }
3265
+ function eu(e) {
3266
+ return `node-idx-${e}`;
3267
+ }
3268
+ function Je(e) {
3269
+ return `node-type-${e}`;
3270
+ }
3271
+ function Kr(e) {
3272
+ var u;
3273
+ return (u = Array.from(e).find((i) => i.includes("node-idx-"))) == null ? void 0 : u.replace("node-idx-", "");
3274
+ }
3275
+ function Xr(e) {
3276
+ var u;
3277
+ return (u = Array.from(tt(e) ? e.split(" ") : e).find((i) => i.includes("node-type-"))) == null ? void 0 : u.replace("node-type-", "");
3278
+ }
3279
+ const br = (e) => {
3280
+ var u;
3281
+ return Number((u = /\.\[(\d+)\]$/.exec(e)) == null ? void 0 : u[1]) || 0;
3282
+ }, _e = (e) => {
3283
+ var u;
3284
+ if (e !== Zt())
3285
+ return (u = /(.*)\.children\.\[\d+\]$/.exec(e)) == null ? void 0 : u[1];
3286
+ }, Qr = (e, u) => ae(e, u), Ar = (e, u) => ae(e, _e(u) || ""), Yr = (e, u) => e.replace(/\[(\d+)\]$/, (i, t) => Number(t) + u < 0 ? "[0]" : `[${Number(t) + u}]`), Jr = (e, u, i) => {
3287
+ if (!u) return null;
3288
+ let t = _e(u);
3289
+ for (; t; ) {
3290
+ const a = ae(e, t);
3291
+ if (a && a.type === i) return a;
3292
+ t = _e(u);
3293
+ }
3294
+ return null;
3295
+ }, Zr = (e, u, i) => {
3296
+ let t = u;
3297
+ const a = X.getBlockByType(i);
3298
+ if (!a) return null;
3299
+ for (; t; ) {
3300
+ const n = ae(e, t);
3301
+ if (Dr(a.type, n.type) > 0)
3302
+ return {
3303
+ parent: n,
3304
+ parentIdx: t
3305
+ };
3306
+ t = _e(t);
3307
+ }
3308
+ return null;
3309
+ }, ei = (e, u, i) => {
3310
+ let t = "", a = u;
3311
+ for (; a; ) {
3312
+ const n = ae(e, a);
3313
+ if (n && n.type === i)
3314
+ return {
3315
+ insertIndex: t ? br(t) : n.children.length - 1,
3316
+ parentIdx: a,
3317
+ parent: n
3318
+ };
3319
+ t = a, a = _e(a);
3320
+ }
3321
+ return null;
3322
+ }, ti = (e) => X.getBlocks().filter(
3323
+ (u) => u.validParentType.includes(e)
3324
+ );
3325
+ function tu(e, u) {
3326
+ return te(
3327
+ "email-block",
3328
+ e && eu(e),
3329
+ Je(u)
3330
+ );
3331
+ }
3332
+ function Y(e) {
3333
+ return Qt($(j({}, e), {
3334
+ validParentType: [
3335
+ p.PAGE,
3336
+ p.WRAPPER,
3337
+ p.COLUMN,
3338
+ p.GROUP,
3339
+ p.HERO,
3340
+ F.WRAPPER,
3341
+ F.COLUMN,
3342
+ F.GROUP,
3343
+ F.HERO
3344
+ ],
3345
+ getContent: (u) => {
3346
+ const { data: i, idx: t, mode: a, context: n, index: c } = u, o = a === "testing" ? te(
3347
+ c === 0 && t && tu(t, i.type)
3348
+ ) : "", l = $(j({}, i), {
3349
+ type: e.baseType,
3350
+ attributes: $(j({}, i.attributes), {
3351
+ "css-class": te(
3352
+ i.attributes["css-class"],
3353
+ o
3354
+ )
3355
+ })
3356
+ }), b = X.getBlockByType(l.type);
3357
+ if (!b)
3358
+ throw new Error(`Can not find ${l.type}`);
3359
+ const d = b == null ? void 0 : b.render($(j({}, u), { data: l, idx: t })), g = Ar({ content: n }, t);
3360
+ return g && (g.type === p.PAGE || g.type === p.WRAPPER || g.type === F.WRAPPER) ? /* @__PURE__ */ x.createElement(Yt, { padding: "0px", "text-align": "left" }, /* @__PURE__ */ x.createElement(Jt, null, d)) : d;
3361
+ }
3362
+ }));
3363
+ }
3364
+ function he(e) {
3365
+ return Qt($(j({}, e), {
3366
+ getContent: (u) => {
3367
+ const { data: i, idx: t, mode: a, index: n } = u, { iteration: c } = i.data.value, o = $(j({}, i), {
3368
+ type: e.baseType
3369
+ });
3370
+ i.type === F.COLUMN && (c != null && c.enabled) && (i.attributes.width = i.attributes.width || "100%");
3371
+ const l = a === "testing" ? te(
3372
+ n === 0 && t && tu(t, i.type)
3373
+ ) : "";
3374
+ return /* @__PURE__ */ x.createElement(
3375
+ ie,
3376
+ {
3377
+ idx: null,
3378
+ data: $(j({}, o), {
3379
+ attributes: $(j({}, o.attributes), {
3380
+ "css-class": te(
3381
+ i.attributes["css-class"],
3382
+ l
3383
+ )
3384
+ })
3385
+ })
3386
+ },
3387
+ o.children.map((b, d) => /* @__PURE__ */ x.createElement(
3388
+ ie,
3389
+ $(j({
3390
+ key: d
3391
+ }, u), {
3392
+ data: b,
3393
+ idx: t ? st(t, d) : null
3394
+ })
3395
+ ))
3396
+ );
3397
+ }
3398
+ }));
3399
+ }
3400
+ function vr(e) {
3401
+ return Xt({
3402
+ get name() {
3403
+ return I("Table");
3404
+ },
3405
+ type: e.type,
3406
+ validParentType: [p.COLUMN],
3407
+ create: (u) => {
3408
+ const i = {
3409
+ type: e.type,
3410
+ data: {
3411
+ value: {
3412
+ tableSource: [
3413
+ [{ content: "header1" }, { content: "header2" }, { content: "header3" }],
3414
+ [{ content: "body1-1" }, { content: "body1-2" }, { content: "body1-3" }],
3415
+ [{ content: "body2-1" }, { content: "body2-2" }, { content: "body2-3" }]
3416
+ ]
3417
+ }
3418
+ },
3419
+ attributes: {
3420
+ cellBorderColor: "#000000",
3421
+ cellPadding: "8px",
3422
+ "text-align": "center"
3423
+ },
3424
+ children: []
3425
+ };
3426
+ return z(i, u);
3427
+ },
3428
+ render: (u) => {
3429
+ const { data: i } = u, { cellPadding: t, cellBorderColor: a } = i.attributes, n = i.attributes["text-align"], c = i.attributes["font-style"], o = i.data.value.tableSource.map((l, b) => {
3430
+ const d = [];
3431
+ t && d.push(`padding: ${t}`), a && d.push(`border: 1px solid ${a}`);
3432
+ const g = l.map(
3433
+ (E) => `<td rowspan="${E.rowSpan || 1}" colspan="${E.colSpan || 1}" style="${d.join(";")}; background-color:${E.backgroundColor};">${E.content}</td>`
3434
+ );
3435
+ return `<tr style="text-align:${n};font-style:${c};">${g.join(
3436
+ `
3437
+ `
3438
+ )}</tr>`;
3439
+ }).join(`
3440
+ `);
3441
+ return /* @__PURE__ */ x.createElement(
3442
+ G,
3443
+ {
3444
+ params: u,
3445
+ tag: "mj-table"
3446
+ },
3447
+ o
3448
+ );
3449
+ }
3450
+ });
3451
+ }
3452
+ const Er = Y({
3453
+ type: F.TEXT,
3454
+ baseType: p.TEXT
3455
+ }), yr = Y({
3456
+ type: F.BUTTON,
3457
+ baseType: p.BUTTON
3458
+ }), xr = Y({
3459
+ type: F.IMAGE,
3460
+ baseType: p.IMAGE
3461
+ }), Cr = Y({
3462
+ type: F.DIVIDER,
3463
+ baseType: p.DIVIDER
3464
+ }), wr = Y({
3465
+ type: F.SPACER,
3466
+ baseType: p.SPACER
3467
+ }), Br = Y({
3468
+ type: F.NAVBAR,
3469
+ baseType: p.NAVBAR
3470
+ }), Tr = Y({
3471
+ type: F.ACCORDION,
3472
+ baseType: p.ACCORDION
3473
+ }), Fr = Y({
3474
+ type: F.CAROUSEL,
3475
+ baseType: p.CAROUSEL
3476
+ }), Or = Y({
3477
+ type: F.SOCIAL,
3478
+ baseType: p.SOCIAL
3479
+ }), kr = vr({
3480
+ type: F.TABLE,
3481
+ baseType: p.TABLE
3482
+ }), Rr = he({
3483
+ type: F.WRAPPER,
3484
+ baseType: p.WRAPPER,
3485
+ validParentType: [p.PAGE]
3486
+ }), qr = he({
3487
+ type: F.SECTION,
3488
+ baseType: p.SECTION,
3489
+ validParentType: [p.PAGE, p.WRAPPER, F.WRAPPER]
3490
+ }), Sr = he({
3491
+ type: F.GROUP,
3492
+ baseType: p.GROUP,
3493
+ validParentType: [p.SECTION, F.SECTION]
3494
+ }), Lr = he({
3495
+ type: F.COLUMN,
3496
+ baseType: p.COLUMN,
3497
+ validParentType: [
3498
+ p.SECTION,
3499
+ F.SECTION,
3500
+ p.GROUP,
3501
+ F.GROUP
3502
+ ]
3503
+ }), Nr = he({
3504
+ type: F.HERO,
3505
+ baseType: p.HERO,
3506
+ validParentType: [p.WRAPPER, F.WRAPPER, p.PAGE]
3507
+ }), Pr = {
3508
+ [F.TEXT]: Er,
3509
+ [F.BUTTON]: yr,
3510
+ [F.IMAGE]: xr,
3511
+ [F.DIVIDER]: Cr,
3512
+ [F.SPACER]: wr,
3513
+ [F.NAVBAR]: Br,
3514
+ [F.ACCORDION]: Tr,
3515
+ [F.CAROUSEL]: Fr,
3516
+ [F.SOCIAL]: Or,
3517
+ [F.TABLE]: kr,
3518
+ [F.WRAPPER]: Rr,
3519
+ [F.SECTION]: qr,
3520
+ [F.GROUP]: Sr,
3521
+ [F.COLUMN]: Lr,
3522
+ [F.HERO]: Nr
3523
+ };
3524
+ class X {
3525
+ static setAutoCompletePath() {
3526
+ const u = {}, i = (t, a, n) => {
3527
+ const c = this.getBlockByType(t);
3528
+ if (!c)
3529
+ throw new Error(`Can you register ${t} block`);
3530
+ const o = [...n, t];
3531
+ return c.validParentType.length === 0 && a.push(o), c.validParentType.map((l) => i(l, a, o));
3532
+ };
3533
+ return Object.values(this.blocksMap).forEach((t) => {
3534
+ u[t.type] = [], i(t.type, u[t.type], []);
3535
+ }), u;
3536
+ }
3537
+ static getBlocks() {
3538
+ return Object.values(this.blocksMap);
3539
+ }
3540
+ static registerBlocks(u) {
3541
+ this.blocksMap = j(j({}, this.blocksMap), u), this.autoCompletePath = this.setAutoCompletePath();
3542
+ }
3543
+ static getBlockByType(u) {
3544
+ return this.blocksMap[u];
3545
+ }
3546
+ static getBlocksByType(u) {
3547
+ return u.map((i) => Object.values(this.blocksMap).find((a) => a.type === i));
3548
+ }
3549
+ static getAutoCompleteFullPath() {
3550
+ return Object.keys(this.autoCompletePath).length === 0 && (this.autoCompletePath = this.setAutoCompletePath()), this.autoCompletePath;
3551
+ }
3552
+ static getAutoCompletePath(u, i) {
3553
+ const t = this.getBlockByType(u);
3554
+ if (!t)
3555
+ throw new Error(`Can you register ${u} block`);
3556
+ if (t.validParentType.includes(i))
3557
+ return [];
3558
+ const a = this.getAutoCompleteFullPath()[u].find(
3559
+ (c) => c.filter((o, l) => l !== 0).includes(i)
3560
+ );
3561
+ if (!a) return null;
3562
+ const n = a.findIndex((c) => c === i);
3563
+ return a.slice(1, n);
3564
+ }
3565
+ }
3566
+ ee(X, "blocksMap", j(j({}, Kt), Pr)), ee(X, "autoCompletePath", {});
3567
+ function ui(e) {
3568
+ try {
3569
+ if (e.attributes && e.children && e.data && e.type && X.getBlockByType(e.type))
3570
+ return !0;
3571
+ } catch (u) {
3572
+ }
3573
+ return !1;
3574
+ }
3575
+ function ri(e) {
3576
+ return JSON.parse(hu(It(e)));
3577
+ }
3578
+ function ii(e, u) {
3579
+ const i = X.getBlockByType(e);
3580
+ if (i)
3581
+ try {
3582
+ const t = i.create(u);
3583
+ return t.data || (t.data = { value: {} }), t.data.value || (t.data.value = {}), t.attributes || (t.attributes = {}), Array.isArray(t.children) || (t.children = []), t;
3584
+ } catch (t) {
3585
+ throw console.error(`Error creating block ${e}:`, t), new Error(`Failed to create block \`${e}\`: ${t instanceof Error ? t.message : String(t)}`);
3586
+ }
3587
+ throw new Error(`No match \`${e}\` block`);
3588
+ }
3589
+ function Ir(e, u) {
3590
+ return /* @__PURE__ */ x.createElement(x.Fragment, null, /* @__PURE__ */ x.createElement(ce, null, `
3591
+ <!-- htmlmin:ignore -->
3592
+ {% for ${e.itemName} in ${e.dataSource} ${e.limit ? `limit:${e.limit}` : ""} %}
3593
+ <!-- htmlmin:ignore -->
3594
+ `), u, /* @__PURE__ */ x.createElement(ce, null, " <!-- htmlmin:ignore -->{% endfor %} <!-- htmlmin:ignore -->"));
3595
+ }
3596
+ function Ur(e, u) {
3597
+ const { symbol: i, groups: t } = e, a = (b) => b.operator === Ye.TRUTHY ? b.left : b.operator === Ye.FALSY ? `${b.left} == nil or ${b.left} == false` : b.left + " " + b.operator + " " + (fu(b.right) ? b.right : `"${b.right}"`), n = du(), c = t.map((b, d) => `con_${d}_${n}`), o = t.map((b, d) => `{% assign ${c[d]} = ${b.groups.map(a).join(` ${b.symbol} `)} %}`).join(`
3598
+ `), l = c.join(` ${i} `);
3599
+ return /* @__PURE__ */ x.createElement(x.Fragment, null, /* @__PURE__ */ x.createElement(ce, null, `
3600
+ <!-- htmlmin:ignore -->
3601
+ ${o}
3602
+ {% if ${l} %}
3603
+ <!-- htmlmin:ignore -->
3604
+ `), u, /* @__PURE__ */ x.createElement(ce, null, `
3605
+ <!-- htmlmin:ignore -->
3606
+ {% endif %}
3607
+ <!-- htmlmin:ignore -->
3608
+ `));
3609
+ }
3610
+ class Ze {
3611
+ static setTag(u) {
3612
+ this.tags[u.name] = u.templateGenerateFn;
3613
+ }
3614
+ static generateTagTemplate(u) {
3615
+ return this.tags[u];
3616
+ }
3617
+ }
3618
+ ee(Ze, "tags", {
3619
+ iteration: Ir,
3620
+ condition: Ur
3621
+ });
3622
+ function ai(e) {
3623
+ return Object.values(F).includes(e);
3624
+ }
3625
+ function et(e) {
3626
+ const { data: u, idx: i } = e, t = e.mode === "testing", a = j({}, u.attributes), n = t ? e.keepClassName : !1;
3627
+ t && i && (a["css-class"] = te(
3628
+ a["css-class"],
3629
+ gu,
3630
+ eu(i),
3631
+ Je(u.type)
3632
+ )), n && (a["css-class"] = te(
3633
+ a["css-class"],
3634
+ Je(u.type)
3635
+ ));
3636
+ let c = "";
3637
+ for (let o in a) {
3638
+ const b = a[o];
3639
+ typeof b == "boolean" ? c += `${o}="${b.toString()}" ` : tt(b) && b && (c += `${o}="${b.replace(/"/gm, "")}" `);
3640
+ }
3641
+ return c;
3642
+ }
3643
+ export {
3644
+ F as AdvancedType,
3645
+ p as BasicType,
3646
+ X as BlockManager,
3647
+ gu as EMAIL_BLOCK_CLASS_NAME,
3648
+ We as I18nManager,
3649
+ we as ImageManager,
3650
+ Hr as JsonToMjml,
3651
+ $r as MERGE_TAG_CLASS_NAME,
3652
+ Ye as Operator,
3653
+ Zu as OperatorSymbol,
3654
+ Ze as TemplateEngineManager,
3655
+ Pr as advancedBlocks,
3656
+ Dr as ancestorOf,
3657
+ Wr as components,
3658
+ mu as createBlock,
3659
+ ii as createBlockDataByType,
3660
+ Xt as createCustomBlock,
3661
+ et as getAdapterAttributesString,
3662
+ st as getChildIdx,
3663
+ br as getIndexByIdx,
3664
+ eu as getNodeIdxClassName,
3665
+ Kr as getNodeIdxFromClassName,
3666
+ Je as getNodeTypeClassName,
3667
+ Xr as getNodeTypeFromClassName,
3668
+ Zt as getPageIdx,
3669
+ ei as getParenRelativeByType,
3670
+ Ar as getParentByIdx,
3671
+ Jr as getParentByType,
3672
+ _e as getParentIdx,
3673
+ tu as getPreviewClassName,
3674
+ Zr as getSameParent,
3675
+ Yr as getSiblingIdx,
3676
+ ti as getValidChildBlocks,
3677
+ Qr as getValueByIdx,
3678
+ ai as isAdvancedBlock,
3679
+ ui as isValidBlockData,
3680
+ pe as mergeBlock,
3681
+ ri as parseReactBlockToBlockData,
3682
+ Kt as standardBlocks,
3683
+ I as t
3684
+ };
3685
+ //# sourceMappingURL=index.es.js.map