mhchem.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. /*************************************************************
  2. *
  3. * MathJax/extensions/TeX/mhchem.js
  4. *
  5. * Implements the \ce command for handling chemical formulas
  6. * from the mhchem LaTeX package.
  7. *
  8. * ---------------------------------------------------------------------
  9. *
  10. * Copyright (c) 2011-2015 The MathJax Consortium
  11. * Copyright (c) 2015-2017 Martin Hensel
  12. *
  13. * Licensed under the Apache License, Version 2.0 (the "License");
  14. * you may not use this file except in compliance with the License.
  15. * You may obtain a copy of the License at
  16. *
  17. * http://www.apache.org/licenses/LICENSE-2.0
  18. *
  19. * Unless required by applicable law or agreed to in writing, software
  20. * distributed under the License is distributed on an "AS IS" BASIS,
  21. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  22. * See the License for the specific language governing permissions and
  23. * limitations under the License.
  24. */
  25. MathJax.Extension["TeX/mhchem"]={version:"3.2.0"},MathJax.Hub.Register.StartupHook("TeX Jax Ready",
  26. function(){var n=MathJax.InputJax.TeX,r=MathJax.Object.Subclass({string:"",Init:
  27. function(n){this.string=n},Parse:
  28. function(r){try{return o.go(t.go(this.string,r))}catch(r){n.Error(r)}}}),t={};t.go=
  29. function(n,r){if(!n)return n;void 0===r&&(r="ce");var o="0",e={};e.pL=0,n=n.replace(/[\u2212\u2013\u2014\u2010]/g,"-"),n=n.replace(/[\u2026]/g,"...");for(var a,u,i=[];;){a!==n?(u=10,a=n):u--;var s=t.c[r],l=s.e.length;n:for(var h=0;h<l;h++){var p=s.e[h],c=p.g[o]||p.g["*"]||null;if(c){var f=t.h(p.h,n);if(f){for(var m=t.j([],c.k),k=m.length,d=0;d<k;d++){var g,q=m[d],v=void 0;if(q.l&&(v=q.m,q=q.l),"string"==typeof q)if(s.g[q])g=s.g[q](e,f.h,v);else{if(!t.g[q])throw["MhchemBugA","mhchem bug A. Please report. ("+q+")"];g=t.g[q](e,f.h,v)}else"function"==typeof q&&(g=q(e,f.h));i=t.j(i,g)}if(o=c.n||o,!(n.length>0))return i;if(c.s||(n=f.t),!c.u)break n}}}if(u<=0)throw["MhchemBugU","mhchem bug U. Please report."]}},
  30. t.j=
  31. function(n,r){return r?n?n.concat(r):[].concat(r):n},t.w={"~C":/^$/,"~A":/^./,"~B":/^./,"%m":/^\s/,"%l":/^\s(?=[A-Z\\$])/,"~@":/^[a-z]/,x:/^x/,x$:/^x$/,i$:/^i$/,"~M":/^(?:[a-zA-Z\u03B1-\u03C9\u0391-\u03A9?@]|(?:\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))))+/,"@z":/^\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\s+|\{\}|(?![a-zA-Z]))/,"~P":/^(?:([a-z])(?:$|[^a-zA-Z]))$/,"@%":/^\$(?:([a-z])(?:$|[^a-zA-Z]))\$$/,"~O":/^(?:\$?[\u03B1-\u03C9]\$?|\$?\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\s*\$?)(?:\s+|\{\}|(?![a-zA-Z]))$/,"~u":/^[0-9]+/,"@h":/^[+\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+))/,"@g":/^[+\-]?[0-9]+(?:[.,][0-9]+)?/,"%T":
  32. function(n){var r=n.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)(\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)\))?(?:([eE]|\s*(\*|x|\\times|\u00D7)\s*10\^)([+\-]?[0-9]+|\{[+\-]?[0-9]+\}))?/);return r&&r[0]?{h:r.splice(1),t:n.substr(r[0].length)}:null},aj:
  33. function(n){var r=n.match(/^(\+\-|\+\/\-|\+|\-|\\pm\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\.[0-9]+)?)\^([+\-]?[0-9]+|\{[+\-]?[0-9]+\})/);return r&&r[0]?{h:r.splice(1),t:n.substr(r[0].length)}:null},"%n":
  34. function(n){var r=this["@W"](n,"",/^\([a-z]{1,3}(?=[\),])/,")","");if(r&&r.t.match(/^($|[\s,;\)\]\}])/))return r;var t=n.match(/^(?:\((?:\\ca\s?)?\$[amothc]\$\))/);return t?{h:t[0],t:n.substr(t[0].length)}:null},ae:/^_\{(\([a-z]{1,3}\))\}/,"@K":/^(?:\\\{|\[|\()/,"@c":/^(?:\)|\]|\\\})/,", ":/^[,;]\s*/,",":/^[,;]/,".":/^[.]/,". ":/^([.\u22C5\u00B7\u2022])\s*/,"@i":/^\.\.\.(?=$|[^.])/,"* ":/^([*])\s*/,"@P":
  35. function(n){return this["@W"](n,"^{","","","}")},"@L":
  36. function(n){return this["@W"](n,"^","$","$","")},"^a":/^\^([0-9]+|[^\\_])/,"@O":
  37. function(n){return this["@W"](n,"^",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"@N":
  38. function(n){return this["@W"](n,"^",/^\\[a-zA-Z]+\{/,"}","")},"^\\x":/^\^(\\[a-zA-Z]+)\s*/,"%U":/^\^(-?\d+)/,"'":/^'/,"@Y":
  39. function(n){return this["@W"](n,"_{","","","}")},"@Q":
  40. function(n){return this["@W"](n,"_","$","$","")},_9:/^_([+\-]?[0-9]+|[^\\])/,"@T":
  41. function(n){return this["@W"](n,"_",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"@S":
  42. function(n){return this["@W"](n,"_",/^\\[a-zA-Z]+\{/,"}","")},"@R":/^_(\\[a-zA-Z]+)\s*/,"^_":/^(?:\^(?=_)|\_(?=\^)|[\^_]$)/,"{}":/^\{\}/,"%B":
  43. function(n){return this["@W"](n,"","{","}","")},"%A":
  44. function(n){return this["@W"](n,"{","","","}")},"@~":
  45. function(n){return this["@W"](n,"","$","$","")},"@a":
  46. function(n){return this["@W"](n,"${","","","}$")},"@@":
  47. function(n){return this["@W"](n,"$","","","$")},"%D":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]\/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"@f":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,ai:/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,"~Q":/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,"~c":/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"@r":
  48. function(n){return this["@W"](n,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,"@m":/^[CMT](?=\[)/,"@o":
  49. function(n){return this["@W"](n,"[","","","]")},al:/^(&|@q|\\hline)\s*/,"@p":/^(?:\\[,\ ;:])/,"@G":
  50. function(n){return this["@W"](n,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"@F":
  51. function(n){return this["@W"](n,"",/^\\[a-zA-Z]+\{/,"}","")},"@t":/^\\ca(?:\s+|(?![a-zA-Z]))/,"@E":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,"~R":/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,"~S":/^[\/~|]/,"@y":
  52. function(n){return this["@W"](n,"\\frac{","","","}","{","","","}")},"@A":
  53. function(n){return this["@W"](n,"\\overset{","","","}","{","","","}")},"@C":
  54. function(n){return this["@W"](n,"\\underset{","","","}","{","","","}")},"@B":
  55. function(n){return this["@W"](n,"\\underbrace{","","","}_","{","","","}")},"@w":
  56. function(n){return this["@W"](n,"\\color{","","","}")},"@x":
  57. function(n){return this["@W"](n,"\\color{","","","}","{","","","}")},"@v":
  58. function(n){return this["@W"](n,"\\color","\\","",/^(?=\{)/,"{","","","}")},"@u":
  59. function(n){return this["@W"](n,"\\ce{","","","}")},"~Z":/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"a~":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"%d":/^[IVX]+/,"@j":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,"~%":
  60. function(n){var r;if(r=n.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/))return{h:r[0],t:n.substr(r[0].length)};var t=this["@W"](n,"","$","$","");return t&&(r=t.h.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/))?{h:r[0],t:n.substr(r[0].length)}:null},"~a":
  61. function(n){return this["~%"](n)},"@b":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,"~E":
  62. function(n){if(n.match(/^\([a-z]+\)$/))return null;var r=n.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);return r?{h:r[0],t:n.substr(r[0].length)}:null},"%z":/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*\*\s*/,"@W":
  63. function(n,r,t,o,e,a,u,i,s,l){var h=this["@V"](n,r);if(null===h)return null;if(n=n.substr(h.length),h=this["@V"](n,t),null===h)return null;var p=this["@U"](n,h.length,o||e);if(null===p)return null;var c=n.substring(0,o?p.y:p.z);if(a||u){var f=this["@W"](n.substr(p.y),a,u,i,s);if(null===f)return null;var m=[c,f.h];return l&&(m=m.join("")),{h:m,t:f.t}}return{h:c,t:n.substr(p.y)}},
  64. "@V":
  65. function(n,r){if("string"==typeof r)return 0!==n.indexOf(r)?null:r;var t=n.match(r);return t?t[0]:null},"@U":
  66. function(n,r,t){for(var o=0;r<n.length;){var e=n.charAt(r),a=this["@V"](n.substr(r),t);if(null!==a&&0===o)return{z:r,y:r+a.length};if("{"===e)o++;else if("}"===e){if(0===o)throw["ExtraCloseMissingOpen","Extra close brace or missing open brace"];o--}r++}return null}},
  67. t.h=
  68. function(n,r){var o=t.w[n];if(void 0===o)throw["MhchemBugP","mhchem bug P. Please report. ("+n+")"];if("function"==typeof o)return t.w[n](r);var e=r.match(o);if(e){var a;return a=e[2]?[e[1],e[2]]:e[1]?e[1]:e[0],{h:a,t:r.substr(e[0].length)}}return null},t.g={"a=":
  69. function(n,r){n.a=(n.a||"")+r},"b=":
  70. function(n,r){n.b=(n.b||"")+r},"p=":
  71. function(n,r){n.p=(n.p||"")+r},"o=":
  72. function(n,r){n.o=(n.o||"")+r},"q=":
  73. function(n,r){n.q=(n.q||"")+r},"d=":
  74. function(n,r){n.d=(n.d||"")+r},"%c":
  75. function(n,r){n.rm=(n.rm||"")+r},"%t":
  76. function(n,r){n.text=(n.text||"")+r},"~J":
  77. function(n,r,t){return{l:t}},
  78. "~K":
  79. function(n,r,t){return{l:t,p1:r}},
  80. "~L":
  81. function(n,r,t){return{l:t,p1:r[0],p2:r[1]}},
  82. "~s":
  83. function(n,r){return r},rm:
  84. function(n,r){return{l:"rm",p1:r}},
  85. "%s":
  86. function(n,r){return t.go(r,"%s")},"%C":
  87. function(n,r){var o=["{"];return o=t.j(o,t.go(r,"%s")),o=t.j(o,"}")},"%r":
  88. function(n,r){return t.go(r,"%r")},"%q":
  89. function(n,r){return t.go(r,"%q")},"~f":
  90. function(n,r,t){return{l:"~f",A:t||r}},
  91. "~m":
  92. function(n,r){return{l:"~l",B:r[0]}},
  93. ce:
  94. function(n,r){return t.go(r)},"@k":
  95. function(n,r){var o;r.match(/^[+\-]/)&&(o=[r.substr(0,1)],r=r.substr(1));var e=r.match(/^([0-9]+|\$[a-z]\$|[a-z])\/([0-9]+)(\$[a-z]\$|[a-z])?$/);return e[1]=e[1].replace(/\$/g,""),o=t.j(o,{l:"~F",p1:e[1],p2:e[2]}),e[3]&&(e[3]=e[3].replace(/\$/g,""),o=t.j(o,{l:"%r",p1:e[3]})),o},"@l":
  96. function(n,r){return t.go(r,"@l")}},
  97. t.c={},t.C=
  98. function(n){var r,t,o,e,a={};for(r in n)if(r.indexOf("|")!==-1)for(o=r.split("|"),e=0;e<o.length;e++)a[o[e]]=n[r];else a[r]=n[r];var u=[];for(r in a){var i={},s=a[r];for(t in s)if(t.indexOf("|")!==-1)for(o=t.split("|"),e=0;e<o.length;e++)i[o[e]]=s[t];else i[t]=s[t];u.push({h:r,g:i})}return u},t.c.ce={e:t.C({"~C":{"*":{k:"~T"}},
  99. "~A":{"0|1|2":{k:"%F",s:!0,u:!0}},
  100. "~Z":{0:{k:"a%"}},
  101. "@m":{r:{k:"%b",n:"rt"},rd:{k:"%g",n:"%i"}},
  102. "~c":{"0|1|2|as":{k:["%j","~T","~Q"],n:"1"}},
  103. "%z":{"0|1|2":{k:["o=","~T"],n:"1"}},
  104. "~R":{"0|1|2|3":{k:"o=",n:"o"}},
  105. "->":{"0|1|2|3":{k:"r=",n:"r"},"a|as":{k:["~T","r="],n:"r"},"*":{k:["~T","r="],n:"r"}},
  106. "+":{o:{k:"~t",n:"d"},"d|D":{k:"d=",n:"d"},q:{k:"d=",n:"qd"},"qd|qD":{k:"d=",n:"qd"},dq:{k:["~T","d="],n:"d"},3:{k:["%j","~T","~Q"],n:"0"}},
  107. "~%":{"0|2":{k:"a=",n:"a"}},
  108. ai:{"0|1|2|a|as":{k:["%j","~T",{l:"~Q",m:"\\pm"}],n:"0"}},
  109. "~Q":{"0|1|2|a|as":{k:["%j","~T","~Q"],n:"0"}},
  110. "-$":{"o|q":{k:["~g","~T"],n:"qd"},d:{k:"d=",n:"d"},D:{k:["~T",{l:"~f",m:"-"}],n:"3"},q:{k:"d=",n:"qd"},qd:{k:"d=",n:"qd"},"qD|dq":{k:["~T",{l:"~f",m:"-"}],n:"3"}},
  111. "-9":{"3|o":{k:["~T",{l:"~J",m:"~I"}],n:"3"}},
  112. "@f":{o:{k:{l:"@e",m:!0},n:"2"},d:{k:{l:"@d",m:!0},n:"2"}},
  113. "-":{"0|1|2":{k:[{l:"~T",m:1},"%E",{l:"~f",m:"-"}],n:"3"},3:{k:{l:"~f",m:"-"}},
  114. a:{k:["~T",{l:"~J",m:"~I"}],n:"2"},as:{k:[{l:"~T",m:2},{l:"~f",m:"-"}],n:"3"},b:{k:"b="},o:{k:"@e",n:"2"},q:{k:"@e",n:"2"},"d|qd|dq":{k:"@d",n:"2"},"D|qD|p":{k:["~T",{l:"~f",m:"-"}],n:"3"}},
  115. "~a":{"1|3":{k:"a=",n:"a"}},
  116. "~M":{"0|1|2|3|a|as|b|p|bp|o":{k:"o=",n:"o"},"q|dq":{k:["~T","o="],n:"o"},"d|D|qd|qD":{k:"~N",n:"o"}},
  117. "~u":{o:{k:"q=",n:"q"},"d|D":{k:"q=",n:"dq"},q:{k:["~T","o="],n:"o"},a:{k:"o=",n:"o"}},
  118. "%l":{"b|p|bp":{}},
  119. "%m":{a:{n:"as"},0:{k:"%j"},"1|2":{k:"%k"},"r|rt|rd|%i|%h":{k:"~T",n:"0"},"*":{k:["~T","%k"],n:"1"}},
  120. al:{"1|2":{k:["~T",{l:"~K",m:"al"}]},
  121. "*":{k:["~T",{l:"~K",m:"al"}],n:"0"}},
  122. "@o":{"r|rt":{k:"%a",n:"rd"},"rd|%i":{k:"%f",n:"%h"}},
  123. "@i":{"o|d|D|dq|qd|qD":{k:["~T",{l:"~f",m:"..."}],n:"3"},"*":{k:[{l:"~T",m:1},{l:"~J",m:"~z"}],n:"1"}},
  124. ". |* ":{"*":{k:["~T",{l:"~J",m:"~~"}],n:"1"}},
  125. "%n":{"*":{k:["~T","%p"],n:"1"}},
  126. "@K":{"a|as|o":{k:["o=","~T","%G"],n:"2"},"0|1|2|3":{k:["o=","~T","%G"],n:"2"},"*":{k:["~T","o=","~T","%G"],n:"2"}},
  127. "@c":{"0|1|2|3|b|p|bp|o":{k:["o=","%H"],n:"o"},"a|as|d|D|q|qd|qD|dq":{k:["~T","o=","%H"],n:"o"}},
  128. ", ":{"*":{k:["~T","~q"],n:"0"}},
  129. "^_":{"*":{}},
  130. "@P|@L":{"0|1|2|as":{k:"b=",n:"b"},p:{k:"b=",n:"bp"},"3|o":{k:"~t",n:"D"},q:{k:"d=",n:"qD"},"d|D|qd|qD|dq":{k:["~T","d="],n:"D"}},
  131. "^a|@O|@N|^\\x|'":{"0|1|2|as":{k:"b=",n:"b"},p:{k:"b=",n:"bp"},"3|o":{k:"~t",n:"d"},q:{k:"d=",n:"qd"},"d|qd|D|qD":{k:"d="},dq:{k:["~T","d="],n:"d"}},
  132. ae:{"d|D|q|qd|qD|dq":{k:["~T","q="],n:"q"}},
  133. "@Y|@Q|_9|@T|@S|@R":{"0|1|2|as":{k:"p=",n:"p"},b:{k:"p=",n:"bp"},"3|o":{k:"q=",n:"q"},"d|D":{k:"q=",n:"dq"},"q|qd|qD|dq":{k:["~T","q="],n:"q"}},
  134. "%D":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{k:[{l:"~T",m:2},"~f"],n:"3"}},
  135. "#":{"0|1|2|3|a|as|o":{k:[{l:"~T",m:2},{l:"~f",m:"#"}],n:"3"}},
  136. "{}":{"*":{k:{l:"~T",m:1},n:"1"}},
  137. "%B":{"0|1|2|3|a|as|b|p|bp":{k:"o=",n:"o"},"o|d|D|q|qd|qD|dq":{k:["~T","o="],n:"o"}},
  138. "@~":{a:{k:"a="},"0|1|2|3|as|b|p|bp|o":{k:"o=",n:"o"},"as|o":{k:"o="},"q|d|D|qd|qD|dq":{k:["~T","o="],n:"o"}},
  139. "@r":{"*":{k:[{l:"~T",m:2},"~f"],n:"3"}},
  140. "@y":{"*":{k:[{l:"~T",m:1},"~H"],n:"3"}},
  141. "@A":{"*":{k:[{l:"~T",m:2},"~X"],n:"3"}},
  142. "@C":{"*":{k:[{l:"~T",m:2},"%y"],n:"3"}},
  143. "@B":{"*":{k:[{l:"~T",m:2},"%w"],n:"3"}},
  144. "@x|@v":{"*":{k:[{l:"~T",m:2},"~k"],n:"3"}},
  145. "@w":{"*":{k:[{l:"~T",m:2},"~m"]}},
  146. "@u":{"*":{k:[{l:"~T",m:2},"ce"],n:"3"}},
  147. "@p":{"*":{k:[{l:"~T",m:1},"~s"],n:"1"}},
  148. "@G|@F|@E":{"0|1|2|3|a|as|b|p|bp|o|c0":{k:["o=","~T"],n:"3"},"*":{k:["~T","o=","~T"],n:"3"}},
  149. "~S":{"*":{k:[{l:"~T",m:1},"~s"],n:"3"}},
  150. "~B":{a:{k:"@Z",n:"o",s:!0},as:{k:[{l:"~T"},"%k"],n:"1",s:!0},"r|rt|rd|%i|%h":{k:["~T"],n:"0",s:!0},"*":{k:["~T","~s"],n:"3"}}}),g:{"~N":
  151. function(n,r){var o;if(n.d.match(/^[0-9]+$/)){var e=n.d;n.d=void 0,o=this["~T"](n),n.b=e}else o=this["~T"](n);return t.g["o="](n,r),o},"~t":
  152. function(n,r){n.d=r,n["%I"]="kv"},"~g":
  153. function(n,r){if(n.yB){var o=t.j(o,this["~T"](n));return o=t.j(o,t.g["~f"](n,r,"-"))}n.d=r},"@e":
  154. function(n,r,o){var e=o||this["@X"](n,r),a=t.j(null,this["~T"](n,r));return a=e?t.j(a,{l:"~I"}):t.j(a,t.g["~f"](n,r,"-"))},"@d":
  155. function(n,r,o){var e,a=o||this["@X"](n,r);if(a)e=t.j(e,this["~T"](n,r)),e=t.j(e,{l:"~I"});else{var u=t.h("~u",n.d||"");u&&""===u.t?(e=t.j(null,t.g["d="](n,r)),e=t.j(e,this["~T"](n))):(e=t.j(e,this["~T"](n,r)),e=t.j(e,t.g["~f"](n,r,"-")))}return e},"@X":
  156. function(n,r){var o=t.h("~R",n.o||""),e=t.h("~O",n.o||""),a=t.h("~P",n.o||""),u=t.h("@%",n.o||""),i="-"===r&&(o&&""===o.t||e||a||u);return!i||n.a||n.b||n.p||n.d||n.q||o||!a||(n.o="$"+n.o+"$"),i},"@Z":
  157. function(n,r){n.o=n.a,n.a=void 0},"%k":
  158. function(n,r){n.sb=!0},"%j":
  159. function(n,r){n.sb=!1},"%E":
  160. function(n,r){n.yB=!0},"%F":
  161. function(n,r){n.yB=!1},"%G":
  162. function(n,r){n.pL++},"%H":
  163. function(n,r){n.pL--},"%p":
  164. function(n,r){return r=t.go(r,"o"),{l:"%p",p1:r}},
  165. "~q":
  166. function(n,r){var t=r.replace(/\s*$/,""),o=t!==r;return o&&0===n.pL?{l:"~n",p1:t}:{l:"~o",p1:t}},
  167. "~T":
  168. function(n,r,o){var e;n.r?("M"===n.rdt?n.rd=t.go(n.rd,"%r"):"T"===n.rdt?n.rd=[{l:"%s",p1:n.rd}]:n.rd=t.go(n.rd),"M"===n.rqt?n.rq=t.go(n.rq,"%r"):"T"===n.rqt?n.rq=[{l:"%s",p1:n.rq}]:n.rq=t.go(n.rq),e={l:"~b",r:n.r,rd:n.rd,rq:n.rq}):(e=[],n.a||n.b||n.p||n.o||n.q||n.d||o?(n.sb&&e.push({l:"~D"}),n.o||n.q||n.d||n.b||n.p||2===o?n.o||n.q||n.d||!n.b&&!n.p?n.o&&"kv"===n["%I"]&&t.h("a~",n.d||"")?n["%I"]="~Y":n.o&&"kv"===n["%I"]&&!n.q&&(n["%I"]=void 0):(n.o=n.a,n.d=n.b,n.q=n.p,n.a=n.b=n.p=void 0):(n.o=n.a,n.a=void 0),n.a=t.go(n.a,"a"),n.b=t.go(n.b,"bd"),n.p=t.go(n.p,"pq"),n.o=t.go(n.o,"o"),"~Y"===n["%I"]?n.d=t.go(n.d,"~Y"):n.d=t.go(n.d,"bd"),n.q=t.go(n.q,"pq"),e.push({l:"~h",a:n.a,b:n.b,p:n.p,o:n.o,q:n.q,d:n.d,"%I":n["%I"]})):e=null);for(var a in n)"pL"!==a&&"yB"!==a&&delete n[a];return e},"a%":
  169. function(n,r){var o=["{"];return o=t.j(o,t.go(r,"~Y")),o=o.concat(["}"])},"~H":
  170. function(n,r){return{l:"~G",p1:t.go(r[0]),p2:t.go(r[1])}},
  171. "~X":
  172. function(n,r){return{l:"~W",p1:t.go(r[0]),p2:t.go(r[1])}},
  173. "%y":
  174. function(n,r){return{l:"%x",p1:t.go(r[0]),p2:t.go(r[1])}},
  175. "%w":
  176. function(n,r){return{l:"%v",p1:t.go(r[0]),p2:t.go(r[1])}},
  177. "~k":
  178. function(n,r){return{l:"~j",F:r[0],G:t.go(r[1])}},
  179. "r=":
  180. function(n,r){n.r=(n.r||"")+r},"%b":
  181. function(n,r){n.rdt=(n.rdt||"")+r},"%a":
  182. function(n,r){n.rd=(n.rd||"")+r},"%g":
  183. function(n,r){n.rqt=(n.rqt||"")+r},"%f":
  184. function(n,r){n.rq=(n.rq||"")+r},"~Q":
  185. function(n,r,t){return{l:"~Q",A:t||r}}}},
  186. t.c.a={e:t.C({"~C":{"*":{}},
  187. "@j":{0:{k:"@k"}},
  188. "~A":{0:{n:"1",s:!0}},
  189. "@@":{"*":{k:"%q",n:"1"}},
  190. ",":{"*":{k:{l:"~J",m:"~r"}}},
  191. "~B":{"*":{k:"~s"}}}),g:{}},
  192. t.c.o={e:t.C({"~C":{"*":{}},
  193. "@j":{0:{k:"@k"}},
  194. "~A":{0:{n:"1",s:!0}},
  195. "~M":{"*":{k:"rm"}},
  196. "@t":{"*":{k:{l:"~J",m:"~i"}}},
  197. "@G|@F|@E":{"*":{k:"~s"}},
  198. "@a|@@":{"*":{k:"%r"}},
  199. "%A":{"*":{k:"%C"}},
  200. "~B":{"*":{k:"~s"}}}),g:{}},
  201. t.c["%s"]={e:t.C({"~C":{"*":{k:"~T"}},
  202. "%B":{"*":{k:"%t"}},
  203. "@a|@@":{"*":{k:"%r"}},
  204. "@z":{"*":{k:["~T","rm"]}},
  205. "@p|@G|@F|@E":{"*":{k:["~T","~s"]}},
  206. "~A":{"*":{k:"%t"}}}),g:{"~T":
  207. function(n,r){if(n.text){var t={l:"%s",p1:n.text};for(var o in n)delete n[o];return t}return null}}},
  208. t.c.pq={e:t.C({"~C":{"*":{}},
  209. "%n":{"*":{k:"%p"}},
  210. i$:{0:{n:"!f",s:!0}},
  211. "@b":{0:{k:"rm",n:"0"}},
  212. "~E":{0:{n:"f",s:!0}},
  213. "@j":{0:{k:"@k"}},
  214. "~A":{0:{n:"!f",s:!0}},
  215. "@a|@@":{"*":{k:"%r"}},
  216. "%A":{"*":{k:"%s"}},
  217. "~@":{f:{k:"%r"}},
  218. "~M":{"*":{k:"rm"}},
  219. "@h":{"*":{k:"@l"}},
  220. ",":{"*":{k:{l:"~K",m:"~p"}}},
  221. "@x|@v":{"*":{k:"~k"}},
  222. "@w":{"*":{k:"~m"}},
  223. "@u":{"*":{k:"ce"}},
  224. "@p|@G|@F|@E":{"*":{k:"~s"}},
  225. "~B":{"*":{k:"~s"}}}),g:{"%p":
  226. function(n,r){return r=t.go(r,"o"),{l:"%K",p1:r}},
  227. "~k":
  228. function(n,r){return{l:"~j",F:r[0],G:t.go(r[1],"pq")}}}},
  229. t.c.bd={e:t.C({"~C":{"*":{}},
  230. x$:{0:{n:"!f",s:!0}},
  231. "~E":{0:{n:"f",s:!0}},
  232. "~A":{0:{n:"!f",s:!0}},
  233. "@g":{"*":{k:"@l"}},
  234. ".":{"*":{k:{l:"~J",m:"~y"}}},
  235. "~@":{f:{k:"%r"}},
  236. x:{"*":{k:{l:"~J",m:"@n"}}},
  237. "~M":{"*":{k:"rm"}},
  238. "'":{"*":{k:{l:"~J",m:"%%"}}},
  239. "@a|@@":{"*":{k:"%r"}},
  240. "%A":{"*":{k:"%s"}},
  241. "@x|@v":{"*":{k:"~k"}},
  242. "@w":{"*":{k:"~m"}},
  243. "@u":{"*":{k:"ce"}},
  244. "@p|@G|@F|@E":{"*":{k:"~s"}},
  245. "~B":{"*":{k:"~s"}}}),g:{"~k":
  246. function(n,r){return{l:"~j",F:r[0],G:t.go(r[1],"bd")}}}},
  247. t.c["~Y"]={e:t.C({"~C":{"*":{}},
  248. "%d":{"*":{k:"%e"}},
  249. "@a|@@":{"*":{k:"%r"}},
  250. "~A":{"*":{k:"~s"}}}),g:{"%e":
  251. function(n,r){return{l:"%d",p1:r}}}},
  252. t.c["%r"]={e:t.C({"~C":{"*":{k:"~T"}},
  253. "@u":{"*":{k:["~T","ce"]}},
  254. "%B|@p|@G|@F|@E":{"*":{k:"o="}},
  255. "~A":{"*":{k:"o="}}}),g:{"~T":
  256. function(n,r){if(n.o){var t={l:"%r",p1:n.o};for(var o in n)delete n[o];return t}return null}}},
  257. t.c["%q"]={e:t.C({"~C":{"*":{k:"~T"}},
  258. "@u":{"*":{k:["~T","ce"]}},
  259. "%B|@p|@G|@F|@E":{"*":{k:"o="}},
  260. "-|+":{"*":{k:"%u"}},
  261. "~A":{"*":{k:"o="}}}),g:{"%u":
  262. function(n,r){n.o=(n.o||"")+"{"+r+"}"},"~T":
  263. function(n,r){if(n.o){var t={l:"%r",p1:n.o};for(var o in n)delete n[o];return t}return null}}},
  264. t.c["@l"]={e:t.C({"~C":{"*":{}},
  265. ",":{"*":{k:"~q"}},
  266. "~A":{"*":{k:"~s"}}}),g:{"~q":
  267. function(n,r){return{l:"~r"}}}},
  268. t.c.pu={e:t.C({"~C":{"*":{k:"~T"}},
  269. "@K|@c":{"0|a":{k:"~s"}},
  270. aj:{0:{k:"ak",n:"a"}},
  271. "%T":{0:{k:"%Z",n:"a"}},
  272. "%m":{"0|a":{}},
  273. ai:{"0|a":{k:{l:"~Q",m:"\\pm"},n:"0"}},
  274. "~Q":{"0|a":{k:"~s",n:"0"}},
  275. "//":{d:{k:"o=",n:"/"}},
  276. "/":{d:{k:"o=",n:"/"}},
  277. "%B|~A":{"0|d":{k:"d=",n:"d"},a:{k:["%m","d="],n:"d"},"/|q":{k:"q=",n:"q"}}}),g:{"%Z":
  278. function(n,r){var o=[];return"+-"===r[0]||"+/-"===r[0]?o.push("\\pm "):r[0]&&o.push(r[0]),r[1]&&(o=t.j(o,t.go(r[1],"%X")),r[2]&&(r[2].match(/[,.]/)?o=t.j(o,t.go(r[2],"%X")):o.push(r[2])),r[3]=r[4]||r[3],r[3]&&(r[3]=r[3].trim(),"e"===r[3]||"*"===r[3].substr(0,1)?o.push({l:"%N"}):o.push({l:"%P"}))),r[3]&&o.push("10^{"+r[5]+"}"),o},ak:
  279. function(n,r){var o=[];return"+-"===r[0]||"+/-"===r[0]?o.push("\\pm "):r[0]&&o.push(r[0]),o=t.j(o,t.go(r[1],"%X")),o.push("^{"+r[2]+"}"),o},"~Q":
  280. function(n,r,t){return{l:"~Q",A:t||r}},
  281. "%m":
  282. function(n,r){return{l:"%Q"}},
  283. "~T":
  284. function(n,r){var o,e=t.h("%A",n.d||"");e&&""===e.t&&(n.d=e.h);var a=t.h("%A",n.q||"");a&&""===a.t&&(n.q=a.h),n.d&&(n.d=n.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),n.d=n.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")),n.q?(n.d=t.go(n.d,"pu"),n.q=n.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),n.q=n.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F"),n.q=t.go(n.q,"pu"),"//"===n.o?o={l:"%S",p1:n.d,p2:n.q}:(o=n.d,o=n.d.length>1||n.q.length>1?t.j(o,{l:"%V"}):t.j(o,{l:"/"}),o=t.j(o,n.q))):o=t.go(n.d,"%R");for(var u in n)delete n[u];return o}}},
  285. t.c["%R"]={e:t.C({"~C":{"*":{k:"~T"}},
  286. "*":{"*":{k:["~T","%N"],n:"0"}},
  287. "@E":{"*":{k:"%c"},n:"1"},"%m":{"*":{k:["~T","%m"],n:"0"}},
  288. "@P|%U":{1:{k:"%U"}},
  289. "@h":{0:{k:"%c",n:"0"},1:{k:"%U",n:"0"}},
  290. "%B|~A":{"*":{k:"%c",n:"1"}}}),g:{"%N":
  291. function(n,r){return{l:"%O"}},
  292. "%U":
  293. function(n,r){n.rm+="^{"+r+"}"},"%m":
  294. function(n,r){return{l:"ah"}},
  295. "~T":
  296. function(n,r){var o;if(n.rm){var e=t.h("%A",n.rm||"");o=e&&""===e.t?t.go(e.h,"pu"):{l:"rm",p1:n.rm}}for(var a in n)delete n[a];return o}}},
  297. t.c["%X"]={e:t.C({"~C":{0:{k:"~U"},o:{k:"~V"}},
  298. ",":{0:{k:["~U","~q"],n:"o"}},
  299. ".":{0:{k:["~U","~s"],n:"o"}},
  300. "~A":{"*":{k:"%t"}}}),g:{"~q":
  301. function(n,r){return{l:"~r"}},
  302. "~U":
  303. function(n,r){var t=[];if(n.text.length>4){var o=n.text.length%3;0===o&&(o=3);for(var e=n.text.length-3;e>0;e-=3)t.push(n.text.substr(e,3)),t.push({l:"%W"});t.push(n.text.substr(0,o)),t.reverse()}else t.push(n.text);for(var a in n)delete n[a];return t},"~V":
  304. function(n,r){var t=[];if(n.text.length>4){for(var o=n.text.length-3,e=0;e<o;e+=3)t.push(n.text.substr(e,3)),t.push({l:"%W"});t.push(n.text.substr(e))}else t.push(n.text);for(var a in n)delete n[a];return t}}};var o={H:{"~h":
  305. function(n){var r="";return n.a=o.go2(n.a),n.b=o.go2(n.b),n.p=o.go2(n.p),n.o=o.go2(n.o),n.q=o.go2(n.q),n.d=o.go2(n.d),n.a&&(n.a.match(/^[+\-]/)&&(n.a="{"+n.a+"}"),r+=n.a+"\\,"),(n.b||n.p)&&(r+="{\\vphantom{X}}",r+="^{\\hphantom{"+(n.b||"")+"}}_{\\hphantom{"+(n.p||"")+"}}",r+="{\\vphantom{X}}",r+="^{\\smash[t]{\\vphantom{2}}\\llap{"+(n.b||"")+"}}",r+="_{\\vphantom{2}\\llap{\\smash[t]{"+(n.p||"")+"}}}"),n.o&&(n.o.match(/^[+\-]/)&&(n.o="{"+n.o+"}"),r+=n.o),"kv"===n["%I"]?((n.d||n.q)&&(r+="{\\vphantom{X}}"),n.d&&(r+="^{"+n.d+"}"),n.q&&(r+="_{\\smash[t]{"+n.q+"}}")):"~Y"===n["%I"]?(n.d&&(r+="{\\vphantom{X}}",r+="^{"+n.d+"}"),n.q&&(r+="{\\vphantom{X}}",r+="_{\\smash[t]{"+n.q+"}}")):(n.q&&(r+="{\\vphantom{X}}",r+="_{\\smash[t]{"+n.q+"}}"),n.d&&(r+="{\\vphantom{X}}",r+="^{"+n.d+"}")),r},rm:
  306. function(n){return"\\mathrm{"+n.p1+"}"},"%s":
  307. function(n){return n.p1.match(/[\^_]/)?(n.p1=n.p1.replace(" ","~").replace("-","\\text{-}"),"\\mathrm{"+n.p1+"}"):"\\text{"+n.p1+"}"},"%d":
  308. function(n){return"\\mathrm{"+n.p1+"}"},"%p":
  309. function(n){return"\\mskip2mu "+o.go2(n.p1)},"%K":
  310. function(n){return"\\mskip1mu "+o.go2(n.p1)},"~f":
  311. function(n){var r=o.I[n.A];if(!r)throw["MhchemErrorBond","mhchem Error. Unknown bond type ("+n.A+")"];return r},"~F":
  312. function(n){var r="\\frac{"+n.p1+"}{"+n.p2+"}";return"\\mathchoice{\\textstyle"+r+"}{"+r+"}{"+r+"}{"+r+"}"},"%S":
  313. function(n){var r="\\frac{"+o.go2(n.p1)+"}{"+o.go2(n.p2)+"}";return"\\mathchoice{\\textstyle"+r+"}{"+r+"}{"+r+"}{"+r+"}"},"%r":
  314. function(n){return n.p1+" "},"~G":
  315. function(n){return"\\frac{"+o.go2(n.p1)+"}{"+o.go2(n.p2)+"}"},"~W":
  316. function(n){return"\\overset{"+o.go2(n.p1)+"}{"+o.go2(n.p2)+"}"},"%x":
  317. function(n){return"\\underset{"+o.go2(n.p1)+"}{"+o.go2(n.p2)+"}"},"%v":
  318. function(n){return"\\underbrace{"+o.go2(n.p1)+"}_{"+o.go2(n.p2)+"}"},"~j":
  319. function(n){return"{\\color{"+n.F+"}{"+o.go2(n.G)+"}}"},"~l":
  320. function(n){return"\\color{"+n.B+"}"},"~b":
  321. function(n){n.rd=o.go2(n.rd),n.rq=o.go2(n.rq);var r=o.J[n.r];return n.rd||n.rq?"<=>"===n.r||"<=>>"===n.r||"<<=>"===n.r||"<-->"===n.r?(r="\\long"+r,n.rd&&(r="\\overset{"+n.rd+"}{"+r+"}"),n.rq&&(r="\\underset{\\lower7mu{"+n.rq+"}}{"+r+"}"),r=" {}\\mathrel{"+r+"}{} "):(n.rq&&(r+="[{"+n.rq+"}]"),r+="{"+n.rd+"}",r=" {}\\mathrel{\\x"+r+"}{} "):r=" {}\\mathrel{\\long"+r+"}{} ",r},"~Q":
  322. function(n){return o.K[n.A]}},
  323. J:{"->":"rightarrow","\u2192":"rightarrow","\u27f6":"rightarrow","<-":"leftarrow","<->":"leftrightarrow","<-->":"leftrightarrows","<=>":"rightleftharpoons","\u21cc":"rightleftharpoons","<=>>":"Rightleftharpoons","<<=>":"Leftrightharpoons"},I:{"-":"{-}",1:"{-}","=":"{=}",2:"{=}","#":"{\\equiv}",3:"{\\equiv}","~":"{\\tripledash}","~-":"{\\rlap{\\lower.1em{-}}\\raise.1em{\\tripledash}}","~=":"{\\rlap{\\lower.2em{-}}\\rlap{\\raise.2em{\\tripledash}}-}","~--":"{\\rlap{\\lower.2em{-}}\\rlap{\\raise.2em{\\tripledash}}-}","-~-":"{\\rlap{\\lower.2em{-}}\\rlap{\\raise.2em{-}}\\tripledash}","...":"{{\\cdot}{\\cdot}{\\cdot}}","....":"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}","->":"{\\rightarrow}","<-":"{\\leftarrow}","<":"{<}",">":"{>}"},L:{"%m":" ","~D":"~","%Q":"~",ah:"\\mkern3mu ","%W":"\\mkern2mu ","~r":"{,}","~n":"{{0}}\\mkern6mu ","~o":"{{0}}\\mkern3mu ","~p":"{{0}}\\mkern1mu ","~I":"\\text{-}","~~":"\\,{\\cdot}\\,","~y":"\\mkern1mu \\bullet\\mkern1mu ","@n":"{\\times}","%%":"\\prime ","%N":"\\cdot ","%O":"\\mkern1mu{\\cdot}\\mkern1mu ","%P":"\\times ","~i":"{\\sim}","^":"uparrow",v:"downarrow","~z":"\\ldots ","/":"/","%V":"\\,/\\,",al:"{0} "},K:{"+":" {}+{} ","-":" {}-{} ","=":" {}={} ","<":" {}<{} ",">":" {}>{} ","<<":" {}\\ll{} ",">>":" {}\\gg{} ","\\pm":" {}\\pm{} ","\\approx":" {}\\approx{} ","$\\approx$":" {}\\approx{} ",v:" \\downarrow{} ","(v)":" \\downarrow{} ","^":" \\uparrow{} ","(^)":" \\uparrow{} "},go:
  324. function(n,r){if(!n)return n;for(var t="",o=!1,e=0;e<n.length;e++){var a=n[e];if("string"==typeof a)t+=a;else if(this.H[a.l])t+=this.H[a.l](a);else{if(!this.L[a.l])throw["MhchemBugT","mhchem bug T. Please report."];var u=this.L[a.l];u=u.replace("{0}",a.p1||""),u=u.replace("{1}",a.p2||""),t+=u,"al"===a.l&&(o=!0)}}return r||o||(t="{"+t+"}"),t},go2:
  325. function(n){return this.go(n,!0)}};MathJax.Extension["TeX/mhchem"].CE=r,n.Definitions.Add({macros:{ce:"CE",pu:"PU",xleftrightarrow:["Extension","AMSmath"],xrightleftharpoons:["Extension","AMSmath"],xRightleftharpoons:["Extension","AMSmath"],xLeftrightharpoons:["Extension","AMSmath"],longrightleftharpoons:["Macro","\\stackrel{\\textstyle{-}\\!\\!{\\rightharpoonup}}{\\smash{{\\leftharpoondown}\\!\\!{-}}}"],longRightleftharpoons:["Macro","\\stackrel{\\textstyle{-}\\!\\!{\\rightharpoonup}}{\\smash{\\leftharpoondown}}"],longLeftrightharpoons:["Macro","\\stackrel{\\textstyle\\vphantom{{-}}{\\rightharpoonup}}{\\smash{{\\leftharpoondown}\\!\\!{-}}}"],longleftrightarrows:["Macro","\\stackrel{\\longrightarrow}{\\smash{\\longleftarrow}\\Rule{0px}{.25em}{0px}}"],tripledash:["Macro","\\vphantom{-}\\raise2mu{\\kern2mu\\tiny\\text{-}\\kern1mu\\text{-}\\kern1mu\\text{-}\\kern2mu}"]}},
  326. null,!0),MathJax.Extension["TeX/AMSmath"]||n.Definitions.Add({macros:{xrightarrow:["Extension","AMSmath"],xleftarrow:["Extension","AMSmath"]}},
  327. null,!0),MathJax.Hub.Register.StartupHook("TeX AMSmath Ready",
  328. function(){n.Definitions.Add({macros:{xleftrightarrow:["xArrow",8596,6,6],xrightleftharpoons:["xArrow",8652,5,7],xRightleftharpoons:["xArrow",8652,5,7],xLeftrightharpoons:["xArrow",8652,5,7]}},
  329. null,!0)}),n.Parse.Augment({CE:
  330. function(n){var t=this.GetArgument(n),o=r(t).Parse();this.string=o+this.string.substr(this.i),this.i=0},PU:
  331. function(n){var t=this.GetArgument(n),o=r(t).Parse("pu");this.string=o+this.string.substr(this.i),this.i=0}}),MathJax.Hub.Startup.signal.Post("TeX mhchem Ready")}),MathJax.Ajax.loadComplete("[mhchem]/mhchem.js");