diff --git a/PseudoCode.js b/PseudoCode.js index 8030736e9c7971cc5d7e9e929a471ed1016afea2..a30e574924d1510c095eb6e6d4bdd5bb3cd8a557 100644 --- a/PseudoCode.js +++ b/PseudoCode.js @@ -15,13 +15,13 @@ in a context-free grammar: <algorithm> :== \begin{algorithm} + ( <caption> | <algorithmic> )[0..n] \end{algorithm} - <caption> :== \caption{ <text> } + <caption> :== \caption{ <close-text> } <algorithmic> :== \begin{algorithmic} + ( <ensure> | <require> | <block> )[0..n] + \end{algorithmic} - <require> :== \REQUIRE + <text> - <ensure> :== \ENSURE + <text> + <require> :== \REQUIRE + <open-text> + <ensure> :== \ENSURE + <open-text> <block> :== ( <control> | <function> | <statement> | <comment> | <call> )[0..n] @@ -38,16 +38,17 @@ in a context-free grammar: (same for <procedure>) <statement> :== <state> | <return> | <print> - <state> :== \STATE + <text> - <return> :== \RETURN + <text> - <print> :== \PRINT + <text> + <state> :== \STATE + <open-text> + <return> :== \RETURN + <open-text> + <print> :== \PRINT + <open-text> - <comment> :== \COMMENT{<text>} + <comment> :== \COMMENT{<close-text>} - <call> :== \CALL{<text>} + <call> :== \CALL{<close-text>} - <cond> :== <text> - <text> :== <symbol> + <text> | { <text> } | <empty> + <cond> :== <close-text> + <open-text> :== <symbol> + <open-text> | { <close-text> } | <empty> + <close-text> :== <symbol> + <close-text> | { <close-text> } | <empty> <symbol> :== <ordinary>[1..n] | <special> | <size> | <font> | <bool> | <math> @@ -57,8 +58,11 @@ in a context-free grammar: <math> :== \( + ... + \) | $ ... $ --- to be handled by KaTeX - <size> :== \large | \tiny | ... - <font> :== \rm | \sl | \bf | \it + <size> :== \tiny | \scriptsize | \footnotesize | \small + | \normalsize | \large | \Large | \LARGE | \huge + | \HUGE + <font> :== \rmfamily | \sffamily | \ttfamily + | \upshape | \itshape | \slshape | \scshape <ordinary> :== not any of \ { } $ & # % _ <empty> :== @@ -75,7 +79,6 @@ TODO: * comment * fonts: \bf, \textbf{} ... * size: \large, ... - * command name case-insensitive * noend * line number every k lines: \begin{algorithmic}[k] * caption without the number: \caption*{} @@ -238,8 +241,6 @@ Lexer.prototype.next = function() { this._pos, this._input); }; - - /* Check whether the text of the next symbol matches */ Lexer.prototype._matchText = function(text) { // don't need to match @@ -358,7 +359,7 @@ Parser.prototype._parseAlgorithmicInner = function() { var algmicNode = new ParseNode('algorithmic'); while (true) { var node; - if (!(node = this._parseCommand(['ENSURE', 'REQUIRE'])) && + if (!(node = this._parseCommand(CONDITION_COMMANDS)) && !(node = this._parseBlock())) break; algmicNode.addChild(node); @@ -372,7 +373,7 @@ Parser.prototype._parseCaption = function() { var captionNode = new ParseNode('caption'); lexer.expect('open'); - captionNode.addChild(this._parseText()); + captionNode.addChild(this._parseCloseText()); lexer.expect('close'); return captionNode; @@ -388,7 +389,7 @@ Parser.prototype._parseBlock = function() { var functionNode = this._parseFunction(); if (functionNode) { blockNode.addChild(functionNode); continue; } - var commandNode = this._parseCommand(['STATE', 'PRINT', 'RETURN']); + var commandNode = this._parseCommand(STATEMENT_COMMANDS); if (commandNode) { blockNode.addChild(commandNode); continue; } var commentNode = this._parseComment(); @@ -419,7 +420,7 @@ Parser.prototype._parseFunction = function() { var funcName = lexer.expect('ordinary'); lexer.expect('close'); lexer.expect('open'); - var argsNode = this._parseText(); + var argsNode = this._parseCloseText(); lexer.expect('close'); // <block> var blockNode = this._parseBlock(); @@ -486,13 +487,15 @@ Parser.prototype._parseLoop = function() { return loopNode; }; +var CONDITION_COMMANDS = ['ENSURE', 'REQUIRE']; +var STATEMENT_COMMANDS = ['STATE', 'PRINT', 'RETURN']; Parser.prototype._parseCommand = function(acceptCommands) { if (!this._lexer.accept('func', acceptCommands)) return null; var cmdName = this._lexer.text(); var cmdNode = new ParseNode('command', cmdName); - cmdNode.addChild(this._parseText()); + cmdNode.addChild(this._parseOpenText()); return cmdNode; }; @@ -503,7 +506,7 @@ Parser.prototype._parseComment = function() { // { \text } this._lexer.expect('open'); - commentNode.addChild(this._parseText()); + commentNode.addChild(this._parseCloseText()); this._lexer.expect('close'); return commentNode; @@ -518,7 +521,7 @@ Parser.prototype._parseCall = function() { var funcName = lexer.expect('ordinary'); lexer.expect('close'); lexer.expect('open'); - var argsNode = this._parseText(); + var argsNode = this._parseOpenText(); lexer.expect('close'); var callNode = new ParseNode('call'); @@ -528,8 +531,15 @@ Parser.prototype._parseCall = function() { }; Parser.prototype._parseCond = -Parser.prototype._parseText = function() { - var textNode = new ParseNode('text'); +Parser.prototype._parseCloseText = function() { + return this._parseText('close'); +}; +Parser.prototype._parseOpenText = function() { + return this._parseText('open'); +}; + +Parser.prototype._parseText = function(openOrClose) { + var textNode = new ParseNode(openOrClose + '-text'); var symbolNode; while (true) { @@ -540,7 +550,7 @@ Parser.prototype._parseText = function() { } if (this._lexer.accept('open')) { - var subTextNode = this._parseText(); + var subTextNode = this._parseCloseText(); textNode.addChild(subTextNode); this._lexer.expect('close'); continue; @@ -552,7 +562,6 @@ Parser.prototype._parseText = function() { return textNode; }; - Parser.prototype._parseSymbol = function() { var symbol; @@ -572,13 +581,15 @@ Parser.prototype._parseSymbol = function() { } else if (text = this._lexer.accept('func', ['large', 'tiny'])) { - return new ParseNode('size', text); + return new ParseNode('sizing-dclr', text); } else if (text = this._lexer.accept('func', - ['rm', 'sl', 'bf', 'it'])) { - return new ParseNode('font', text); + ['rmfamily', 'sffamily', 'ttfamily', + 'upshape', 'itshape', 'slshape', 'scshape', + 'bfseries', 'mdseries', 'lfseries', + 'uppercase', 'lowercase'])) { + return new ParseNode('font-dclr', text); } - return null; } @@ -590,9 +601,8 @@ Parser.prototype._parseSymbol = function() { function BuilderOptions(options) { options = options || {}; this.indentSize = options.indentSize ? - this._parseEmVal(options.indentSize) : 1.4; + this._parseEmVal(options.indentSize) : 1.2; this.commentSymbol = options.commentSymbol || '//'; - // TODO: HTML-escape this.lineNumberPunc = options.lineNumberPunc || ':'; this.lineNumber = options.lineNumber != null ? options.lineNumber : false; } @@ -604,140 +614,408 @@ BuilderOptions.prototype._parseEmVal = function(emVal) { return Number(emVal.substring(0, emVal.length - 2)); } -function Builder(parser, options) { - this._root = parser.parse(); - this._options = new BuilderOptions(options); - this._blockLevel = 0; - this._openLine = false; - console.log(this._root.toString()); +/* + The font information used by builder to render the ouput HTML + + options - set attributes of font, null value means default + family - roman, sans serif, teletype + size - ..., small, normalsize, large, Large, ... + weight - normal, bold + color - + variant - none, small-caps +*/ +function TextStyle() { + this._css = {}; +} + +/* Update the font state by TeX command + cmd - the name of TeX command that alters current font +*/ +TextStyle.prototype._textStyleCommandTable = { + // font-family + rmfamily: { 'font-family': 'KaTeX_Main' }, + sffamily: { 'font-family': 'KaTeX_SansSerif'}, + ttfamily: { 'font-family': 'KaTeX_Typewriter'}, + // weight + bfseries: { 'font-weight': 'bold'}, + mdseries: { 'font-weight': 'medium'}, + lfseries: { 'font-weight': 'lighter'}, + // shape + upshape: { 'font-style': 'normal', 'font-variant': 'normal'}, + itshape: { 'font-style': 'italic', 'font-variant': 'normal'}, + scshape: { 'font-style': 'normal', 'font-variant': 'small-caps'}, + slshape: { 'font-style': 'oblique', 'font-variant': 'normal'}, + // case + uppercase: { 'text-transform': 'uppercase'}, + lowercase: { 'text-transform': 'lowercase'} +}; + +TextStyle.prototype.updateByCommand = function(cmd) { + var cmdStyles = this._textStyleCommandTable[cmd]; + if (!cmdStyles) throw new ParserError('unrecogniazed text-style command'); + + for (var attr in cmdStyles) + this._css[attr] = cmdStyles[attr]; +}; + +TextStyle.prototype.toCSS = function() { + var cssStr = ''; + for (var attr in this._css) { + var val = this._css[attr]; + if (val == null) continue; + cssStr += attr + ':' + this._css[attr] + ';'; + } + return cssStr; +}; + +function TextEnvironment(node, open, outerTextStyle) { + this._node = node; + this._outerTextStyle = outerTextStyle; + + // For an close text environment, text-style changes should only take + // effect inside the environment. Thus, we should NOT modify + // `outerTextStyle`. In contrast, for an open text environment, we make all + // the updates on outerTextStyle directly. + this._textStyle = open ? outerTextStyle : new TextStyle(); +} + +TextEnvironment.prototype.renderToHTML = function() { + this._html = new HTMLBuilder(); + this._numTextStyleUpdates = 0; + this._html.beginSpan(null, this._outerTextStyle.toCSS()); + var children = this._node.children; + for (var ci = 0; ci < children.length; ci++) + this._buildTree(children[ci]); + while (this._numTextStyleUpdates) { + this._html.endSpan(); + this._numTextStyleUpdates--; + } + this._html.endSpan(); + return this._html.toMarkup(); +}; + +TextEnvironment.prototype._buildTree = function(node) { + switch(node.type) { + case 'close-text': + var textEnv = new TextEnvironment(node, false, this._textStyle); + this._html.putSpan(textEnv.renderToHTML()); + break; + case 'ordinary': + var text = node.value; + this._html.putText(text); + break; + case 'math': + var math = node.value; + var mathHTML = katex.renderToString(math); + this._html.putSpan(mathHTML); + break; + case 'special': + var escapedStr = node.value; + var replace = { + '\\\\': '<br/>', + '\\{': '{', + '\\}': '}', + '\\$': '$', + '\\&': '&', + '\\#': '#', + '\\%': '%', + '\\_': '_' + }; + var replaceStr = replace[escapedStr]; + this._html.putText(replaceStr); + break; + // There are two kinds of typestyle commands: + // command (e.g. \textrm{...}). + // and + // declaration (e.g. { ... \rmfamily ... }) + // + // For typestyle commands, it works as following: + // \textsf --> create a new typestyle + // { --> save the current typestyle, and then use the new one + // ... --> the new typestyle is in use + // } --> restore the last typestyle + // + // For typestyle declaration, it works a little bit diferrently: + // { --> save the current typestyle, and then create and use + // an identical one + // ... --> the new typestyle is in use + // \rmfamily --> create a new typestyle + // ... --> the new typestyle is in use + // } --> restore the last typestyle + // case 'font': + case 'font-dclr': + case 'sizing-dclr': + var cmdName = node.value; + this._textStyle.updateByCommand(cmdName); + this._numTextStyleUpdates++; + this._html.beginSpan(null, this._textStyle.toCSS()); + break; + default: + throw new ParseError('Unexpected ParseNode of type ' + node.type); + } } -Builder.prototype._captionCount = 0; -Builder.prototype.toMarkup = function() { + +/* HTMLBuilder - A helper class for constructing HTML */ +function HTMLBuilder() { this._body = []; - this._buildTree(this._root); + this._textBuf = []; + this._textLevel = -1; +} + +HTMLBuilder.prototype.beginDiv = function(className, style, extraStyle) { + return this._beginTag('div', className, style, extraStyle); +}; + +HTMLBuilder.prototype.endDiv = function() { + return this._endTag('div'); +}; + +HTMLBuilder.prototype.beginP = function(className, style, extraStyle) { + return this._beginTag('p', className, style, extraStyle); +}; + +HTMLBuilder.prototype.endP = function() { + return this._endTag('p'); +}; + +HTMLBuilder.prototype.beginSpan = function(className, style, extraStyle) { + this._textLevel++; + this._flushText(); + return this._beginTag('span', className, style, extraStyle); +}; + +HTMLBuilder.prototype.endSpan = function() { + this._flushText(); + this._textLevel--; + return this._endTag('span'); +} + +HTMLBuilder.prototype.putSpan = function(spanHTML) { + this._flushText(); + this._body.push(spanHTML); + return this; +} + +HTMLBuilder.prototype.putText = function(text) { + if (this._textLevel < 0) + throw new ParseError('putText must be called between ' + + 'beginSpan and endSpan'); + + this._textBuf.push(text); + return this; +} + +HTMLBuilder.prototype.write = function(html) { + this._body.push(html); +} + +HTMLBuilder.prototype.toMarkup = function() { var html = this._body.join('\n'); - delete this._body; return html; } -Builder.prototype.toDOM = function() { +HTMLBuilder.prototype.toDOM = function() { var html = this.toMarkup(); var div = document.createElement('div'); div.innerHTML = html; return div.firstChild; } -Builder.prototype._beginDiv = function(className) { - this._body.push('<div class="' + className + '">'); +HTMLBuilder.prototype._flushText = function(text) { + if (this._textLevel >= 0 && this._textBuf.length == 0) return; + + var text = this._textBuf.join(''); + this._body.push(text); + this._textBuf = []; +} + +/* Write the beginning of a DOM element + tag - the tag of the element + className - the className for the tag + style - CSS style that applies directly on the tag. This parameter can be + either a string, e.g., 'color:red', or an object, e.g. + { color: 'red', margin-left: '1em'} +*/ +HTMLBuilder.prototype._beginTag = function(tag, className, style, extraStyle) { + var spanHTML = '<' + tag; + if (className) spanHTML += ' class="' + className + '"'; + if (style) { + var styleCode; + if (isString(style)) styleCode = style; + else { // style + styleCode = ''; + for (var attrName in style) { + attrVal = style[attrName]; + styleCode += attrName + ':' + attrVal + ';'; + } + } + if (extraStyle) styleCode += extraStyle; + spanHTML += ' style="' + styleCode + '"'; + } + spanHTML += '>'; + this._body.push(spanHTML); + return this; +} + +HTMLBuilder.prototype._endTag = function(tag) { + this._body.push('</' + tag + '>'); + return this; +} + +/* + The renderer converts a parse tree to HTML. + + There are three levels in renderer: + Group (Block), Line and Segment, + which are rendered to HTML tag, <div>, <p>, and <span>, respectively. + +*/ +function Renderer(parser, options) { + this._root = parser.parse(); + // debug + console.log(this._root.toString()); + this._options = new BuilderOptions(options); + this._openLine = false; + this._blockLevel = 0; + this._textLevel = -1; + this._globalTextStyle = new TextStyle(); +} + +/* The global counter for the numbering of the algorithm environment */ +Renderer.prototype._captionCount = 0; + +Renderer.prototype.toMarkup = function() { + var html = this._html = new HTMLBuilder(); + this._buildTree(this._root); + delete this._html; + return html.toMarkup(); } -Builder.prototype._endDiv = function() { - this._body.push('</div>'); +Renderer.prototype.toDOM = function() { + var html = this.toMarkup(); + var div = document.createElement('div'); + div.innerHTML = html; + return div.firstChild; } -Builder.prototype._beginBlock = function() { - if (this._openLine) this._endLine(); +Renderer.prototype._beginGroup = function(name, extraClass, style) { + this._closeLineIfAny(); + this._html.beginDiv('ps-' + name + (extraClass ? ' ' + extraClass : ''), + style); +} +Renderer.prototype._endGroup = function(name) { + this._closeLineIfAny(); + this._html.endDiv(); +} + +Renderer.prototype._beginBlock = function() { + // The first block have to extra left margin when line number are displayed var extraIndentForFirstBlock = this._options.lineNumber && this._blockLevel == 0 ? 0.6 : 0; var blockIndent = this._options.indentSize + extraIndentForFirstBlock; - this._body.push('<div class="ps-block" style="margin-left:' + - blockIndent+ 'em;">'); + + this._beginGroup('block', null, { + 'margin-left': blockIndent + 'em' + }); this._blockLevel++; } -Builder.prototype._endBlock = function() { - if (this._openLine) this._endLine(); - this._body.push('</div>'); +Renderer.prototype._endBlock = function() { + this._closeLineIfAny(); + this._endGroup(); this._blockLevel--; } -Builder.prototype._newLine = function() { - if (this._openLine) this._endLine(); +Renderer.prototype._newLine = function() { + this._closeLineIfAny(); + this._openLine = true; - this._beginLine(); -} -Builder.prototype._beginLine = function() { var indentSize = this._options.indentSize; // if this line is for code (e.g. \STATE) if (this._blockLevel > 0) { this._numLOC++; - this._body.push('<p class="ps-line ps-code">'); + this._html.beginP('ps-line ps-code'); if (this._options.lineNumber) { - this._body.push('<span class="ps-linenum" ' + - 'style="left:-' + ( ( this._blockLevel - 1 ) * (indentSize - 0.2)) + - 'em;">' + this._numLOC + this._options.lineNumberPunc + '</span>'); + this._html.beginSpan('ps-linenum', { + 'left': - ((this._blockLevel - 1)*(indentSize - 0.2)) + 'em' + }) + .putText(this._numLOC + this._options.lineNumberPunc) + .endSpan(); } } // if this line is for pre-conditions (e.g. \REQUIRE) else { - this._body.push('<p class="ps-line" style="text-indent:' + - (-indentSize) + 'em;padding-left: ' + indentSize +'em;">'); + this._html.beginP('ps-line', { + 'text-indent': (-indentSize) + 'em', + 'padding-left': indentSize + 'em' + }); } } -Builder.prototype._endLine = function() { - this._flushText(); - this._body.push('</span>') - this._body.push('</p>'); +Renderer.prototype._closeLineIfAny = function() { + if (!this._openLine) return; + + this._html.endP(); + this._openLine = false; } -Builder.prototype._typeKeyword = function(keyword) { - this._flushText(); - this._body.push('<span class="ps-keyword">' + keyword + '</span>'); +Renderer.prototype._typeKeyword = function(keyword) { + this._html.beginSpan('ps-keyword').putText(keyword).endSpan(); } -Builder.prototype._typeFuncName = function(funcName) { - this._flushText(); - this._body.push('<span class="ps-funcname">' + funcName + '</span>'); +Renderer.prototype._typeFuncName = function(funcName) { + this._html.beginSpan('ps-funcname').putText(funcName).endSpan(); } -Builder.prototype._typeMath = function(math) { - this._flushText(); - this._body.push(math); +Renderer.prototype._typeText = function(text) { + this._html.write(text); } -Builder.prototype._typeText = function(text) { - if (this._textBuf == undefined) this._textBuf = []; - this._textBuf.push(text); -} +Renderer.prototype._beginText = function(openOrClose) { + this._flushText(); -Builder.prototype._flushText = function() { - if (this._textBuf !== undefined && this._textBuf.length >= 0) { - // TODO: HTML escape the string - var text = this._textBuf.join(''); - this._body.push(text); - delete this._textBuf; + this._beginSpan(null, this._fontState.toCSS()); + + if (openOrClose === 'close') { + this._fontStateStack.push(this._fontState); + this._fontState = new TextStyle(); } } -Builder.prototype._beginText = function() { +Renderer.prototype._endText = function(openOrClose) { this._flushText(); - this._body.push('<span>'); -} -Builder.prototype._endText = function() { - this._flushText(); - this._body.push('</span>'); + while (this._fontState.numUpdates) { + this._fontState.numUpdates--; + this._endSpan(); + } + + this._endSpan(); + + if (openOrClose === 'close') + this._fontState = this._fontStateStack.pop(); } -Builder.prototype._buildTreeForAllChildren = function(node) { +Renderer.prototype._buildTreeForAllChildren = function(node) { var children = node.children; for (var ci = 0; ci < children.length; ci++) this._buildTree(children[ci]); } -Builder.prototype._buildTree = function(node) { +Renderer.prototype._buildTree = function(node) { switch(node.type) { + // The hierarchicy of build tree: Group (Block) > Line > Text + // ----------------- Groups ------------------------------------- case 'root': - this._beginDiv('pseudo'); + this._beginGroup('root'); this._buildTreeForAllChildren(node); - this._endDiv(); + this._endGroup(); break; case 'algorithm': // First, decide the caption if any @@ -749,35 +1027,31 @@ Builder.prototype._buildTree = function(node) { this._captionCount++; } // Then, build the header for algorithm - var className = 'ps-algorithm'; - if (lastCaptionNode) className += ' with-caption'; - this._beginDiv(className); - if (lastCaptionNode) this._buildTree(lastCaptionNode); + if (lastCaptionNode) { + this._beginGroup('algorithm', 'with-caption'); + this._buildTree(lastCaptionNode); + } + else { + this._beginGroup('algorithm'); + } // Then, build other nodes for (var ci = 0; ci < node.children.length; ci++) { var child = node.children[ci]; if (child.type === 'caption') continue; this._buildTree(child); } - - this._endDiv(); - break; - case 'caption': - this._beginLine(); - this._typeKeyword('Algorithm ' + this._captionCount); - var textNode = node.children[0]; - this._buildTree(textNode); - this._endLine(); + this._endGroup(); break; case 'algorithmic': - var className = 'ps-algorithmic'; if (this._options.lineNumber) { - className += ' with-linenum'; + this._beginGroup('algorithmic', 'with-linenum'); this._numLOC = 0; } - this._beginDiv(className); + else { + this._beginGroup('algorithmic'); + } this._buildTreeForAllChildren(node); - this._endDiv(); + this._endGroup(); break; case 'block': // node: <block> @@ -787,6 +1061,7 @@ Builder.prototype._buildTree = function(node) { this._buildTreeForAllChildren(node); this._endBlock(); break; + // ----------------- Mixture (Groups + Lines) ------------------- case 'function': // \FUNCTION{<ordinary>}{<text>} <block> \ENDFUNCTION // ==> @@ -866,7 +1141,6 @@ Builder.prototype._buildTree = function(node) { // ENDIF this._newLine(); this._typeKeyword('end if'); - break; case 'loop': // \FOR{<cond>} or \WHILE{<cond>} @@ -894,8 +1168,8 @@ Builder.prototype._buildTree = function(node) { // </p> this._newLine(); this._typeKeyword('end ' + loopName); - break; + // ------------------- Lines ------------------- case 'command': // commands: \STATE, \ENSURE, \PRINT, \RETURN, etc. var cmdName = node.value; @@ -911,7 +1185,12 @@ Builder.prototype._buildTree = function(node) { if (displayName) this._typeKeyword(displayName); var text = node.children[0]; this._buildTree(text); - + break; + case 'caption': + this._newLine(); + this._typeKeyword('Algorithm ' + this._captionCount); + var textNode = node.children[0]; + this._buildTree(textNode); break; // 'comment': // break; @@ -926,35 +1205,14 @@ Builder.prototype._buildTree = function(node) { this._buildTree(argsNode); this._typeText(')'); break; - case 'cond': - case 'text': - this._beginText(); - this._buildTreeForAllChildren(node); - this._endText(); - break; - case 'ordinary': - var text = node.value; - this._typeText(text); + // ------------------- Text ------------------- + case 'open-text': + var textEnv = new TextEnvironment(node, true, this._globalTextStyle); + this._html.putSpan(textEnv.renderToHTML()); break; - case 'math': - var math = node.value; - var mathHTML = katex.renderToString(math); - this._typeMath(mathHTML); - break; - case 'special': - var escapedStr = node.value; - var replace = { - '\\\\': '<br/>', - '\\{': '{', - '\\}': '}', - '\\$': '$', - '\\&': '&', - '\\#': '#', - '\\%': '%', - '\\_': '_' - }; - var replaceStr = replace[escapedStr]; - this._typeText(replaceStr); + case 'close-text': + var textEnv = new TextEnvironment(node, false, this._globalTextStyle); + this._html.putSpan(textEnv.renderToHTML()); break; default: throw new ParseError('Unexpected ParseNode of type ' + node.type); @@ -964,23 +1222,22 @@ Builder.prototype._buildTree = function(node) { // =========================================================================== // Entry points // =========================================================================== - parentModule.PseudoCode = { renderToString: function(input, options) { if (input == null) throw 'input cannot be empty'; var lexer = new Lexer(input); var parser = new Parser(lexer); - var builder = new Builder(parser, options); - return builder.toMarkup(); + var renderer = new Renderer(parser, options); + return renderer.toMarkup(); }, render: function(input, baseDomEle, options) { if (input == null || baseDomEle == null) throw 'argument cannot be null'; var lexer = new Lexer(input); var parser = new Parser(lexer); - var builder = new Builder(parser, options); - var ele = builder.toDOM(); + var renderer = new Renderer(parser, options); + var ele = renderer.toDOM(); baseDomEle.appendChild(ele); return ele; } diff --git a/css/PseudoCode.css b/css/PseudoCode.css index 1a3e603a799e541f87345ebb54d0c0c271ff9c59..8289ef5e1d5d6d4414576ae3c239fe6cb83996a5 100644 --- a/css/PseudoCode.css +++ b/css/PseudoCode.css @@ -1,43 +1,43 @@ -.pseudo { +.ps-root { font-family: KaTeX_Main; font-size: 1em; font-weight: 100; -webkit-font-smoothing: antialiased !important; } -.pseudo .ps-algorithm { +.ps-root .ps-algorithm { margin: 0.8em 0; padding-bottom: 0.2em; /* algorithm environment has borders; algorithmic has not */ border-top: 3px solid black; border-bottom: 2px solid black; } -.pseudo .ps-algorithm.with-caption > .ps-line:first-child { +.ps-root .ps-algorithm.with-caption > .ps-line:first-child { border-bottom: 2px solid black; } -.pseudo .katex { +.ps-root .katex { text-indent: 0; + font-size: 1em; } -.pseudo .ps-line { +.ps-root .ps-line { margin: 0; padding: 0; -} -.pseudo .ps-line > span { - font-size: 1.21em; line-height: 1.2; } -.pseudo .ps-funcname { +.ps-root .ps-line > span { +} +.ps-root .ps-funcname { font-family: serif; font-variant: small-caps; } /* keyword */ -.pseudo .ps-keyword { +.ps-root .ps-keyword { font-weight: 700; margin: 0 0.25em; } -.pseudo .ps-keyword:first-child{ +.ps-root .ps-keyword:first-child{ margin: 0 0.25em 0 0; } /* line number support */ -.pseudo .ps-linenum { +.ps-root .ps-linenum { font-size: 0.8em; line-height: 1em; width: 1.6em; @@ -45,9 +45,9 @@ display: inline-block; position: relative; } -.pseudo .ps-algorithmic.with-linenum .ps-line.ps-code { +.ps-root .ps-algorithmic.with-linenum .ps-line.ps-code { text-indent: -2.2em; } -.pseudo .ps-algorithmic.with-linenum .ps-line.ps-code > span{ +.ps-root .ps-algorithmic.with-linenum .ps-line.ps-code > span{ text-indent: 0em; } diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Bold.eot b/lib/katex/fonts/KaTeX_Caligraphic-Bold.eot new file mode 100644 index 0000000000000000000000000000000000000000..6c441ae34da070095291e2bcd50a8d58c76c17fb Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Bold.eot differ diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf b/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1580d64b976daf68e39a10b1ddc4c1a28a2b5558 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf differ diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff b/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..a2a7399a04a10a0943e739a5e5044f738eda3e89 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff differ diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 b/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..010795092c525e83752036445a820d09b707c3bd Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Regular.eot b/lib/katex/fonts/KaTeX_Caligraphic-Regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..5287c0d690ab9d43ec6d4e74ffde91ce2b1d0967 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Regular.eot differ diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf b/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ab23091ffe169e2d58914e68a1ddfa4d05564342 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf differ diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff b/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..6188e5529ff2e320a5ca4850e5cc96dd7e3f777d Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff differ diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 b/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0e692ea34b83ab54c45d350a4d99b44a56cfffd6 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Fraktur-Bold.eot b/lib/katex/fonts/KaTeX_Fraktur-Bold.eot new file mode 100644 index 0000000000000000000000000000000000000000..cf4b36815b5d34a4b21b8995ff51dfa5ee36eeb7 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Bold.eot differ diff --git a/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf b/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f66a74d5655e0e2ae3ebbd283427cc1c3d796c0f Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf differ diff --git a/lib/katex/fonts/KaTeX_Fraktur-Bold.woff b/lib/katex/fonts/KaTeX_Fraktur-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..3804f1f08054aafca7cd11bee7722ee73eba6e8a Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Bold.woff differ diff --git a/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 b/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b4caf092f9d1ed778a63b54aedc785b4afffe832 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Fraktur-Regular.eot b/lib/katex/fonts/KaTeX_Fraktur-Regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..cbe084ed9069728ef8eb3fc7b1f7bba5980d86e7 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Regular.eot differ diff --git a/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf b/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c4a760bc19bb2e327fef0ebb17b6c29914c92f3d Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf differ diff --git a/lib/katex/fonts/KaTeX_Fraktur-Regular.woff b/lib/katex/fonts/KaTeX_Fraktur-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..c5ce1cd8e2a8c4c7c2e1d332762d580cd3be00b9 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Regular.woff differ diff --git a/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 b/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1dd379445813cc48539269af03592b7133d427b6 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Greek-Bold.woff2 b/lib/katex/fonts/KaTeX_Greek-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1e289dd5e069183e3aa2476266d7552237977e0f Binary files /dev/null and b/lib/katex/fonts/KaTeX_Greek-Bold.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Greek-BoldItalic.woff2 b/lib/katex/fonts/KaTeX_Greek-BoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a18d2e35e20f57da262f493d1ae9b5ba4093ce0 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Greek-BoldItalic.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Greek-Italic.woff2 b/lib/katex/fonts/KaTeX_Greek-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..20559746fa3459baaff76fcdfd45eece7290c323 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Greek-Italic.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Greek-Regular.woff2 b/lib/katex/fonts/KaTeX_Greek-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..48ed7f118fd624431cb38574414f692b26a3dbbd Binary files /dev/null and b/lib/katex/fonts/KaTeX_Greek-Regular.woff2 differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Bold.eot b/lib/katex/fonts/KaTeX_SansSerif-Bold.eot new file mode 100644 index 0000000000000000000000000000000000000000..bf95b1417f95faf62808d9981177aedae6b4eada Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Bold.eot differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf b/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..952f33328429db24cc6e5da6ff06bcf3e5d80b75 Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Bold.woff b/lib/katex/fonts/KaTeX_SansSerif-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..83ce37d6f51806b2d22efcd0b8667568ca821909 Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Bold.woff differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 b/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..09caf7dc166c735f37575c5a0f3386e035800a9d Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Italic.eot b/lib/katex/fonts/KaTeX_SansSerif-Italic.eot new file mode 100644 index 0000000000000000000000000000000000000000..215f3267e1ee413e17ec3deaa8c0f0820d33335b Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Italic.eot differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf b/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6a510f5abf3b6377a02658d9f8986ef4618fe1d7 Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Italic.woff b/lib/katex/fonts/KaTeX_SansSerif-Italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..5e82a46aaf1a8bad2ec482c4cc2a0be8ef0f22df Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Italic.woff differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 b/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8d47a38e692af58a3fef95ce5f64578aebb71325 Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Regular.eot b/lib/katex/fonts/KaTeX_SansSerif-Regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..4f3d6ab28f5c7c05fe82c0e71a30f39399f0a36d Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Regular.eot differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf b/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4588a7815f5fa71bca636c20ff02e4e3e4e0c45b Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Regular.woff b/lib/katex/fonts/KaTeX_SansSerif-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..88ae8c2c64b2341203c6f985ead5cdce3cc7d37b Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Regular.woff differ diff --git a/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 b/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3feeb7bac9099477a3ab90b7b5a1c5a8c74671b9 Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Script-Regular.eot b/lib/katex/fonts/KaTeX_Script-Regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..65082f08499e1171a110e2081dbb37485c10e8f8 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Script-Regular.eot differ diff --git a/lib/katex/fonts/KaTeX_Script-Regular.ttf b/lib/katex/fonts/KaTeX_Script-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..db1a4cc0245da4dd405580a7e7290de6032cac4d Binary files /dev/null and b/lib/katex/fonts/KaTeX_Script-Regular.ttf differ diff --git a/lib/katex/fonts/KaTeX_Script-Regular.woff b/lib/katex/fonts/KaTeX_Script-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..d2711e4a4a7d9a5dbcb5f454a2d30abd4f9f96d2 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Script-Regular.woff differ diff --git a/lib/katex/fonts/KaTeX_Script-Regular.woff2 b/lib/katex/fonts/KaTeX_Script-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ff0c5cfb23f98388b0be314b43f7907aeaf363a1 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Script-Regular.woff2 differ diff --git a/lib/katex/fonts/KaTeX_Typewriter-Regular.eot b/lib/katex/fonts/KaTeX_Typewriter-Regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..3d588037874a8fa734009b8a22580b310a5ca814 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Typewriter-Regular.eot differ diff --git a/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf b/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a2f5990dd133465acdee215fae908bb60f54f96a Binary files /dev/null and b/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf differ diff --git a/lib/katex/fonts/KaTeX_Typewriter-Regular.woff b/lib/katex/fonts/KaTeX_Typewriter-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..f33b8418566ffa5807bf76cdca08891ccfaca1da Binary files /dev/null and b/lib/katex/fonts/KaTeX_Typewriter-Regular.woff differ diff --git a/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 b/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..52b55385adfda5ee6826f5a08f3504d40f15f757 Binary files /dev/null and b/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 differ diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.eot b/lib/katex/fonts/lubalin_graph_bold-webfont.eot deleted file mode 100755 index 4888f097477afcc653bd64e93bda7cd87bc01421..0000000000000000000000000000000000000000 Binary files a/lib/katex/fonts/lubalin_graph_bold-webfont.eot and /dev/null differ diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.svg b/lib/katex/fonts/lubalin_graph_bold-webfont.svg deleted file mode 100755 index 7815e5f79bce55014376c0c89e56260112ceab75..0000000000000000000000000000000000000000 --- a/lib/katex/fonts/lubalin_graph_bold-webfont.svg +++ /dev/null @@ -1,337 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> -<metadata></metadata> -<defs> -<font id="lubalin_graphbold" horiz-adv-x="632" > -<font-face units-per-em="2048" ascent="1638" descent="-410" /> -<missing-glyph horiz-adv-x="540" /> -<glyph unicode="
" horiz-adv-x="540" /> -<glyph unicode=" " horiz-adv-x="540" /> -<glyph unicode="	" horiz-adv-x="540" /> -<glyph unicode=" " horiz-adv-x="540" /> -<glyph unicode="!" horiz-adv-x="507" d="M69 0v371h377v-371h-377zM69 535v1098h377v-1098h-377z" /> -<glyph unicode=""" horiz-adv-x="994" d="M63 874v759h376v-759h-376zM552 874v759h377v-759h-377z" /> -<glyph unicode="#" horiz-adv-x="1306" d="M55 534v169h294l38 226h-265v168h289l75 504h171l-78 -508h227l78 509h167l-73 -509h252v-164h-279l-30 -230h242v-164h-270l-77 -535h-171l76 535h-227l-76 -534h-170l75 533h-268zM518 699h226l34 231h-227z" /> -<glyph unicode="$" horiz-adv-x="1272" d="M63 1178q0 166 109 299t279 169v345h325v-381q15 -3 30.5 -14t22.5 -22v59h282v-485h-337q1 7 2 19q0 61 -44.5 104.5t-115.5 43.5q-56 0 -97 -38.5t-41 -94.5q0 -49 31 -85t82 -54l207 -69q188 -64 296 -190q117 -137 117 -322q0 -189 -119 -322t-319 -181v-321h-326 v373l-24 13q-8 4 -15 10t-15 14v-48h-310v531h365l14 -72q11 -64 58 -101t113 -37q63 0 107.5 37t44.5 97q0 59 -38 99.5t-100 62.5l-245 86q-152 55 -244 178q-96 130 -95 297z" /> -<glyph unicode="%" horiz-adv-x="1864" d="M102 1055v266q0 128 93.5 220t222.5 92q132 0 224.5 -94t92.5 -224v-272q0 -125 -91.5 -213.5t-217.5 -88.5q-132 0 -228 92t-96 222zM339 1063q0 -36 22 -62t60 -26q39 4 57 20q24 22 24 63v261q0 37 -23.5 63t-60.5 26q-35 -3 -57 -27.5t-22 -61.5v-256zM446 0 l693 1633h278l-692 -1633h-279zM1124 314v264q0 128 93.5 221t222.5 93q132 0 224.5 -94t92.5 -224v-272q0 -125 -91.5 -213.5t-217.5 -88.5q-132 0 -228 92t-96 222zM1361 322q0 -36 22 -62t60 -26q39 4 57 20q24 22 24 63v261q0 37 -23.5 63t-60.5 26q-35 -3 -57 -27.5 t-22 -61.5v-256z" /> -<glyph unicode="&" horiz-adv-x="1618" d="M57 434q0 148 83 265q69 98 206 187q-63 53 -104 147q-47 104 -46 210q0 189 132 314.5t317 125.5q177 0 308.5 -117.5t131.5 -287.5q0 -130 -84 -253q-57 -84 -129 -133l185 -175l118 264h386v-348h-136q-13 -40 -34 -81q-27 -55 -67 -104l218 -218l-261 -267l-192 189 q-94 -102 -240 -152q-118 -40 -250 -40q-220 0 -375 125q-166 134 -167 349zM456 468q0 -37 22 -72t58 -53t81 -18q55 0 108.5 25.5t86.5 66.5l-236 227q-47 -19 -81 -66q-39 -53 -39 -110zM559 1255q0 -32 12 -57q7 -16 33 -52l37 -52l42 54q24 31 34.5 55t10.5 57 q0 39 -24 69t-60 30q-39 0 -62 -31t-23 -73z" /> -<glyph unicode="'" horiz-adv-x="516" d="M63 874v759h375v-759h-375z" /> -<glyph unicode="(" horiz-adv-x="939" d="M59 507q0 406 214 711.5t597 446.5v-481q-182 -114 -276.5 -277t-94.5 -376q0 -216 92 -374t279 -270v-499q-208 79 -382 222q-194 161 -304 374q-125 242 -125 523z" /> -<glyph unicode=")" horiz-adv-x="938" d="M73 -121q371 220 371 644q0 212 -93.5 374t-277.5 279v479q382 -138 597 -444.5t215 -712.5q0 -283 -124 -523q-109 -212 -305 -374q-173 -142 -383 -222v500z" /> -<glyph unicode="*" horiz-adv-x="823" d="M69 1203v164h184l-100 162l169 89l95 -162l118 182l158 -109l-118 -158h188v-168h-199l95 -158l-159 -80l-83 163l-110 -173l-154 104l100 144h-184z" /> -<glyph unicode="+" horiz-adv-x="1249" d="M71 454v207h448v458h201v-458h456v-205h-455v-461h-202v459h-448z" /> -<glyph unicode="," horiz-adv-x="521" d="M69 0v386h389v-449q0 -72 -14 -126.5t-50 -97.5q-40 -49 -117 -71q-57 -16 -136 -16h-52v196h37q60 0 95 44q12 16 16.5 34.5t4.5 42.5v29v28h-173z" /> -<glyph unicode="-" d="M64 604v246l510 2v-248h-510z" /> -<glyph unicode="." horiz-adv-x="507" d="M69 0v391h382v-391h-382z" /> -<glyph unicode="/" horiz-adv-x="1197" d="M-118 -617l1030 2415h272l-1015 -2415h-287z" /> -<glyph unicode="0" horiz-adv-x="1324" d="M56 559v506q0 245 178.5 419t424.5 174q249 0 426.5 -179t177.5 -429v-515q0 -238 -173.5 -406.5t-414.5 -168.5q-253 0 -436 175t-183 424zM471 544q0 -86 52.5 -146.5t140.5 -60.5q88 8 136 50q57 51 57 148v554q0 86 -60 147t-148 61q-80 0 -129 -58.5t-49 -149.5 v-545z" /> -<glyph unicode="1" horiz-adv-x="895" d="M69 1312v321h604v-1276h159v-357h-732v357h167v955h-198z" /> -<glyph unicode="2" horiz-adv-x="1269" d="M69 1070v64q0 194 152 355q173 184 438 184q226 0 387.5 -163t161.5 -391q0 -113 -49 -219q-41 -89 -121 -179q-60 -68 -152 -143l-270 -231h216v133h371v-480h-1109v357l654 624q29 28 42.5 67t13.5 80q0 55 -40 95q-45 45 -124 45q-80 0 -129 -68q-43 -60 -43 -130 h-399z" /> -<glyph unicode="3" horiz-adv-x="1370" d="M76 471h416q7 -65 63 -107t130 -42q77 0 130 51.5t53 126.5q0 81 -60 140t-143 59h-83v311h83q71 0 125 41.5t54 106.5q0 64 -45.5 109t-109.5 45q-61 0 -104 -42t-43 -102h-372q0 210 160 353q154 137 370 137q204 0 354 -126q156 -132 156 -324q0 -100 -39 -175 t-120 -141q124 -65 188.5 -174t64.5 -247q0 -224 -188 -375q-180 -145 -421 -145q-245 0 -428 143q-192 152 -191 377z" /> -<glyph unicode="4" horiz-adv-x="1479" d="M63 460v303l653 870h451v-856h246v-317h-242v-109h149v-351h-733v351h183v109h-707zM508 772h268v351z" /> -<glyph unicode="5" horiz-adv-x="1374" d="M56 431h426q35 -49 86.5 -71.5t116.5 -22.5q75 0 139 65t64 148q0 90 -60.5 156t-147.5 66q-80 0 -135 -35.5t-93 -112.5l-342 84l149 925h905v-332h-584l-29 -227q52 17 114 35.5t119 18.5q221 0 375 -163.5t154 -389.5q0 -275 -187 -451q-181 -169 -446 -169 q-232 0 -411 133q-185 137 -213 343z" /> -<glyph unicode="6" horiz-adv-x="1370" d="M69 590q0 102 26 190t73 171q23 40 109 172l347 526h461l-337 -501q254 0 414 -162q154 -156 154 -396q0 -266 -181.5 -448t-441.5 -182q-257 0 -440.5 186.5t-183.5 443.5zM480 590q0 -90 64 -157t155 -67q88 0 149.5 64.5t61.5 153.5q0 86 -62 149.5t-149 63.5 q-89 0 -154 -60.5t-65 -146.5z" /> -<glyph unicode="7" horiz-adv-x="1270" d="M69 1045v588h1149v-352l-565 -1281h-451l584 1267h-331v-222h-386z" /> -<glyph unicode="8" horiz-adv-x="1342" d="M69 466q0 137 62.5 237.5t185.5 172.5q-79 39 -121 110q-47 79 -47 197q0 192 161.5 336t372.5 144q208 0 354 -129.5t146 -325.5q0 -109 -36 -185.5t-122 -129.5q134 -69 194 -168.5t60 -236.5q0 -237 -190 -391q-180 -146 -430 -146q-236 0 -409 143q-181 150 -181 372 zM475 506q0 -77 54.5 -133t130.5 -56q75 0 128 57t53 134q0 75 -53 127t-128 52q-76 0 -130.5 -53.5t-54.5 -127.5zM522 1168q0 -63 41.5 -106t103.5 -43q61 0 105 44t44 105q0 60 -42.5 102.5t-104.5 42.5q-60 0 -103.5 -42.5t-43.5 -102.5z" /> -<glyph unicode="9" horiz-adv-x="1391" d="M65 1045q0 263 187 440.5t448 177.5q257 0 439 -185t182 -444q0 -150 -51 -277q-39 -94 -144 -251l-352 -526h-518l385 486q-259 0 -417.5 158t-158.5 421zM472 1039q0 -86 64.5 -146.5t154.5 -60.5q89 0 153.5 62t64.5 151t-64.5 153.5t-153.5 64.5t-154 -66t-65 -158z " /> -<glyph unicode=":" horiz-adv-x="513" d="M63 0v391h381v-391h-381zM63 570v391h381v-391h-381z" /> -<glyph unicode=";" horiz-adv-x="520" d="M69 0v386h389v-449q0 -72 -14 -126.5t-50 -97.5q-40 -49 -117 -71q-57 -16 -136 -16h-52v196h37q60 0 95 44q12 16 16.5 34.5t4.5 42.5v29v28h-173zM69 570v391h382v-391h-382z" /> -<glyph unicode="<" horiz-adv-x="1278" d="M61 530v215l1145 538v-206l-974 -444l967 -436v-197z" /> -<glyph unicode="=" horiz-adv-x="1256" d="M69 345v210h1129v-210h-1129zM69 691v211h1130v-211h-1130z" /> -<glyph unicode=">" horiz-adv-x="1264" d="M53 1075v205l1145 -537v-216l-1138 -530v197l966 437z" /> -<glyph unicode="?" horiz-adv-x="1270" d="M72 1085q0 241 169.5 417t409.5 176q226 0 395 -159.5t169 -379.5q0 -110 -32.5 -195.5t-107.5 -151.5l-106 -97q-45 -40 -81 -86q-19 -25 -30.5 -52t-17.5 -62h-389v49q0 45 12.5 88t36.5 81q20 32 50 68.5t55 59.5l150 130q29 27 48 63t19 78q0 68 -48.5 118t-116.5 50 q-76 0 -125 -48t-49 -120l-1 -27h-410zM452 0v390h392v-390h-392z" /> -<glyph unicode="@" horiz-adv-x="1596" d="M76 741q0 309 219 529t526 220q282 0 490 -163q219 -173 219 -434q0 -229 -146 -409.5t-346 -180.5q-85 0 -126 84q-13 28 -24 84l-63 -69q-77 -90 -196 -91q-121 0 -198.5 96t-77.5 226q0 189 161 332q145 129 295 129q59 0 101.5 -22.5t58.5 -72.5l20 -57l41 127l177 4 l-160 -590q-8 -24 -8 -56q0 -31 9.5 -48.5t30.5 -17.5q126 0 233.5 166t107.5 350q0 238 -186 379q-168 128 -413 128q-262 0 -448.5 -186.5t-186.5 -448.5q0 -274 190 -468.5t462 -194.5q197 0 340 76q100 53 165 143q21 37 44 76h135q-31 -52 -60 -103q-88 -120 -212 -193 q-178 -104 -416 -104q-314 0 -536 222.5t-222 537.5zM536 540q0 -69 31 -114q37 -55 109 -55q102 0 193 185q81 167 81 304q0 80 -31 130.5t-90 50.5q-101 0 -197 -169t-96 -332z" /> -<glyph unicode="A" horiz-adv-x="1843" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM768 768h242l-118 371z" /> -<glyph unicode="B" horiz-adv-x="1487" d="M56 0v357h178v924h-178v352h886q169 0 285 -113t116 -292q0 -118 -50 -203q-55 -93 -158 -129q142 -60 212 -177q65 -110 65 -268q0 -192 -151 -321.5t-353 -129.5h-852zM645 357h164q75 0 134 49t59 124q0 84 -57 126q-49 37 -132 37h-168v-336zM645 1026h133 q79 0 126 25q61 34 61 103q0 71 -57 102q-45 25 -124 25h-139v-255z" /> -<glyph unicode="C" horiz-adv-x="1807" d="M69 802q0 349 249.5 600t597.5 251q148 0 275 -61q120 -57 156 -136v177h346v-634h-401q-118 229 -371 229q-182 0 -304 -119t-122 -292q0 -177 121 -306t294 -129q126 0 220 52.5t157 160.5h455q-77 -293 -300 -464t-526 -171q-347 0 -597 248t-250 594z" /> -<glyph unicode="D" horiz-adv-x="1747" d="M69 0v357h155v924h-155v352h841q361 0 578 -236q205 -222 205 -560q0 -355 -199 -585q-217 -252 -593 -252h-832zM668 382h253q166 0 266 132q91 119 91 292q0 202 -112 324q-122 133 -354 133h-144v-881z" /> -<glyph unicode="E" horiz-adv-x="1383" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252z" /> -<glyph unicode="F" horiz-adv-x="1383" d="M63 0v357h154v924h-154v352h1257v-539h-406v166h-269v-250h374v-386h-367v-267h166v-357h-755z" /> -<glyph unicode="G" horiz-adv-x="1780" d="M56 812q0 349 250 597.5t602 248.5q124 0 220 -33q86 -29 200 -105v113h342v-548h-451q-41 53 -125 98q-101 55 -197 55q-176 0 -300.5 -123.5t-124.5 -297.5q0 -173 125.5 -296.5t299.5 -123.5q114 0 196.5 41t150.5 132h-455v351h920v-921h-352v138 q-45 -65 -175.5 -119t-279.5 -54q-347 0 -596.5 249.5t-249.5 597.5z" /> -<glyph unicode="H" horiz-adv-x="1784" d="M63 0v357h173v924h-173v352h742v-352h-158v-247h504v247h-158v352h737v-352h-149v-924h149v-357h-737v357h158v272h-504v-272h158v-357h-742z" /> -<glyph unicode="I" horiz-adv-x="875" d="M63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751z" /> -<glyph unicode="J" horiz-adv-x="1374" d="M69 417v103h438v-54q0 -53 31.5 -91t80.5 -38q55 0 89.5 40t34.5 103v801h-169v352h727v-352h-149v-860q0 -202 -174 -336q-164 -125 -384 -125q-210 0 -364 126q-161 133 -161 331z" /> -<glyph unicode="K" horiz-adv-x="1744" d="M69 0v357h155v924h-155v352h708v-352h-133v-340l366 340h-114v352h737v-352h-93l-510 -449l504 -475h139v-357h-777v342h123l-375 371v-371h148v-342h-723z" /> -<glyph unicode="L" horiz-adv-x="1385" d="M63 0v357h169v924h-169v352h727v-352h-143v-899h282v222h391v-604h-1257z" /> -<glyph unicode="M" horiz-adv-x="2193" d="M63 0v357h162v924h-162v352h697l342 -969l302 969h712v-352h-153v-924h162v-357h-706v357h153v677l-342 -1034h-283l-335 1019v-662h153v-357h-702z" /> -<glyph unicode="N" horiz-adv-x="1841" d="M53 1281v352h519l639 -900v548h-173v352h737v-352h-153v-1281h-380l-619 872v-515h162v-357h-722v357h154v924h-164z" /> -<glyph unicode="O" horiz-adv-x="1816" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z" /> -<glyph unicode="P" horiz-adv-x="1457" d="M69 0v357h169v924h-169v352h737q295 0 454 -163q145 -148 145 -400q0 -238 -143 -387q-153 -158 -421 -159h-182v-167h133v-357h-723zM653 892h95q106 0 172 38q79 48 79 149q0 90 -65 140q-59 44 -148 44h-133v-371z" /> -<glyph unicode="Q" horiz-adv-x="2095" d="M69 832q0 347 256.5 589t610.5 242q342 0 589.5 -244.5t247.5 -586.5q0 -150 -30 -256t-110 -229q13 -11 17 -13q9 -7 21 -12t25 -10t31 -5v129h308v-471q-100 -29 -195 -29q-60 0 -119 11.5t-119.5 33.5t-117.5 59q-41 27 -93 69q-101 -67 -213 -104q-133 -45 -272 -45 q-347 0 -592 258t-245 614zM495 896q57 20 111 29t107 9q37 0 84 -4q158 -15 302 -104q125 -77 208 -187q25 48 37 83t12 80q1 8 1 18v16q0 166 -125 288.5t-296 122.5q-165 0 -287.5 -96t-153.5 -255zM575 555q84 -105 197 -144q73 -26 139 -26h5q39 0 69 5t74 21 q-24 37 -64 72t-89 61q-94 51 -186 51q-80 0 -145 -40z" /> -<glyph unicode="R" horiz-adv-x="1544" d="M69 0v357h169v924h-169v352h737q317 0 489 -156q165 -150 165 -412q0 -220 -108 -350q-89 -108 -224 -131l184 -227h173v-357h-426l-400 555v-198h93v-357h-683zM653 822h119q116 0 186 43q92 54 92 174q0 133 -95 188q-63 36 -169 36h-133v-441z" /> -<glyph unicode="S" horiz-adv-x="1254" d="M59 1160q0 208 150 351.5t367 143.5q71 0 125.5 -18.5t120.5 -62.5v59h312v-485h-370q1 5 1 18q0 60 -47 103t-109 43q-57 0 -97.5 -42t-40.5 -99q0 -52 39 -89q32 -32 90 -51l202 -69q185 -63 287 -177q113 -128 113 -314q0 -209 -154 -360t-359 -151q-148 0 -276 95 v-55h-337v524h371v-38q0 -86 60 -135q51 -40 117 -40q13 0 20 2q61 7 102.5 52t41.5 106q0 53 -44 91q-32 28 -100 51l-251 95q-156 57 -245 175t-89 277z" /> -<glyph unicode="T" horiz-adv-x="1494" d="M63 1059v574h1366v-568h-317v198h-154v-906h158v-357h-726v357h153v906h-153v-204h-327z" /> -<glyph unicode="U" horiz-adv-x="1643" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149z" /> -<glyph unicode="V" horiz-adv-x="1721" d="M63 1281v352h702v-352h-109l193 -691l228 691h-124v352h693v-352h-154l-439 -1281h-441l-402 1281h-147z" /> -<glyph unicode="W" horiz-adv-x="2389" d="M69 1281v352h731v-352h-167l143 -550l243 902h344l267 -897l125 545h-154v352h718l2 -352h-163l-342 -1281h-360l-258 892l-253 -892h-370l-367 1281h-139z" /> -<glyph unicode="X" horiz-adv-x="1783" d="M69 0v357h155l428 477l-385 447h-158v352h732v-332h-89l158 -178l149 178h-84v332h738v-352h-144l-409 -444l394 -480h164v-357h-743v351h104l-183 204l-168 -208h94v-347h-753z" /> -<glyph unicode="Y" horiz-adv-x="1614" d="M63 1281v352h673v-341h-100l173 -362l189 362h-114v341h668v-352h-139l-406 -691v-233h144v-357h-728v357h173v218l-380 706h-153z" /> -<glyph unicode="Z" horiz-adv-x="1369" d="M63 0v331l733 950h-308v-192h-366v544h1173v-317l-727 -959h346v198h386v-555h-1237z" /> -<glyph unicode="[" horiz-adv-x="797" d="M52 -282v1911h657v-262h-350v-1388h358v-261h-665z" /> -<glyph unicode="\" horiz-adv-x="1022" d="M69 1622h225l665 -1622h-227z" /> -<glyph unicode="]" horiz-adv-x="797" d="M56 -21h358v1388h-351v262h660v-1911h-667v261z" /> -<glyph unicode="^" horiz-adv-x="895" d="M69 1391l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" /> -<glyph unicode="_" horiz-adv-x="1419" d="M0 -129h1429v-136h-1429v136z" /> -<glyph unicode="`" horiz-adv-x="799" d="M65 1574l113 317l559 -233l-93 -267z" /> -<glyph unicode="a" horiz-adv-x="1590" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194z" /> -<glyph unicode="b" horiz-adv-x="1570" d="M56 0v357h129v921h-129v355h495v-499q64 55 138 88q92 41 184 41q257 0 445 -191t188 -453q0 -257 -179.5 -443.5t-438.5 -186.5q-97 0 -175 38q-63 31 -147 107v-134h-510zM556 633q0 -122 88.5 -209t213.5 -87q113 0 195 83t82 199q0 122 -83 212t-204 90 q-120 0 -206 -84.5t-86 -203.5z" /> -<glyph unicode="c" horiz-adv-x="1405" d="M63 639q0 252 175.5 438t417.5 186q102 0 189 -29q77 -25 137 -74v78h322v-450h-357q-79 118 -238 118q-117 0 -196 -88.5t-79 -208.5q0 -113 81 -195.5t196 -82.5q77 0 133 27.5t99 87.5h401q-17 -178 -194 -329q-185 -157 -414 -157q-279 0 -476 199.5t-197 479.5z" /> -<glyph unicode="d" horiz-adv-x="1614" d="M73 624q0 266 185.5 454.5t457.5 188.5q93 0 184 -36q79 -32 127 -77v124h-127v355h519v-1276h138v-357h-519v114q-85 -67 -146 -93q-75 -32 -171 -32q-263 0 -455.5 186t-192.5 449zM459 619q0 -114 81 -198t196 -84q124 0 213 86t89 210q0 120 -86.5 204t-206.5 84 q-118 0 -202 -90.5t-84 -211.5z" /> -<glyph unicode="e" horiz-adv-x="1434" d="M63 604q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM438 748h560q-43 89 -119.5 133.5t-178.5 44.5q-89 0 -155.5 -47 t-106.5 -131z" /> -<glyph unicode="f" horiz-adv-x="785" d="M63 0v357h123v539h-123v342h134v20q0 80 29 161q36 100 104 165q76 73 193 98q73 16 198 16v-327q-43 0 -66.5 -5t-46 -23t-29.5 -41t-7 -64h132v-342h-133v-539h138v-357h-646z" /> -<glyph unicode="g" horiz-adv-x="1555" d="M63 613q0 263 187.5 451t449.5 188q100 0 172 -32q51 -23 141 -92v110h475v-342h-129v-807q0 -271 -189 -438q-178 -157 -439 -157q-267 0 -437 132q-152 118 -173 294h421q35 -55 83 -79.5t115 -24.5q120 0 189 73.5t69 204.5q-44 -55 -128 -85q-71 -25 -174 -34 q-16 -1 -28 -2t-20 -1q-240 0 -412.5 194.5t-172.5 446.5zM434 624q0 -124 86.5 -215.5t210.5 -91.5q118 0 200 90t82 212q0 118 -84.5 202.5t-203.5 84.5q-120 0 -205.5 -81.5t-85.5 -200.5z" /> -<glyph unicode="h" horiz-adv-x="1539" d="M69 0v357h139v921h-139v355h495v-519q36 55 135 101q108 52 211 52q185 0 313 -148q124 -142 124 -337v-425h133v-357h-510v723q0 81 -56 137t-142 56q-83 0 -140 -64t-57 -149v-346h138v-357h-644z" /> -<glyph unicode="i" horiz-adv-x="778" d="M69 0v357h139v539h-139v342h506v-881h138v-357h-644zM208 1297v336h356v-336h-356z" /> -<glyph unicode="j" horiz-adv-x="652" d="M35 -124q11 -3 30 -2q29 0 58 11t43 27q24 25 33 55t9 73v856h-139v342h506v-1203q0 -153 -17 -217q-28 -104 -124 -181q-65 -55 -171.5 -80t-227.5 -25v344zM208 1297v336h356v-336h-356z" /> -<glyph unicode="k" horiz-adv-x="1470" d="M69 0v357h144v921h-144v355h515v-930l228 233h-109v302h644v-342h-104l-268 -267l257 -272h173v-357h-410l-401 515v-515h-525z" /> -<glyph unicode="l" horiz-adv-x="771" d="M69 -5v362h139v921h-139v355h515v-1276h129v-362h-644z" /> -<glyph unicode="m" horiz-adv-x="2266" d="M63 0v357h149v539h-149v342h480v-144q65 93 133 136q76 48 178 48q152 0 262 -74q101 -67 120 -159q130 233 406 233q180 0 312.5 -119.5t132.5 -292.5v-509h123v-357h-495v693q0 108 -38 167q-49 76 -164 76q-80 0 -132 -68t-52 -155v-356h129v-357h-495v713 q0 83 -54.5 145.5t-132.5 62.5q-84 0 -136.5 -70.5t-52.5 -162.5v-331h120v-357h-644z" /> -<glyph unicode="n" horiz-adv-x="1559" d="M69 0v357h149v539h-149v342h521v-124q57 81 140 115t196 34q240 0 353 -160q92 -130 92 -346v-400h129v-357h-519v713q0 90 -31 140q-40 64 -134 64q-19 0 -30 -1q-85 -8 -138.5 -73.5t-53.5 -154.5v-331h119v-357h-644z" /> -<glyph unicode="o" horiz-adv-x="1429" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5t-198.5 79.5q-116 0 -194.5 -90t-78.5 -211z" /> -<glyph unicode="p" horiz-adv-x="1611" d="M63 -65h129l2 961h-131v342h495v-124q154 144 356 144q258 0 443 -185.5t185 -443.5t-176 -449t-428 -191q-102 0 -189.5 31t-161.5 89v-174h124v-346h-648v346zM580 631q0 -128 87.5 -212.5t210.5 -84.5q114 0 197 85t83 201q0 121 -85.5 207.5t-207.5 86.5 q-116 0 -200.5 -83t-84.5 -200z" /> -<glyph unicode="q" horiz-adv-x="1596" d="M71 624q0 257 182.5 440t441.5 183q97 0 183.5 -34.5t132.5 -84.5v110h521v-342h-129v-971h129v-346h-639v346h128v175q-73 -57 -157 -86t-189 -29q-253 0 -428.5 190t-175.5 449zM451 611q0 -118 82 -203t198 -85q124 0 210 85.5t86 211.5q0 117 -82.5 201t-200.5 84 q-120 0 -206.5 -86.5t-86.5 -207.5z" /> -<glyph unicode="r" horiz-adv-x="974" d="M63 0v357h127v539h-127v342h495v-153q25 35 53 61q33 32 74 57q57 33 104.5 46.5t114.5 13.5v-385q-76 0 -127.5 -19t-99.5 -60.5t-71.5 -96.5t-23.5 -112v-233h123v-357h-642z" /> -<glyph unicode="s" horiz-adv-x="1187" d="M76 0v377h383l16 -47q13 -41 44.5 -65.5t72.5 -24.5q12 0 19 1q40 5 66 25q32 24 32 59v9q0 41 -34 69q-31 25 -89 43l-235 69q-128 37 -201.5 133t-73.5 230q0 172 126.5 278.5t327.5 106.5q92 0 155 -16t108 -61v52h276v-360h-362l-10 32q-11 33 -39.5 54t-63.5 21 q-39 0 -67 -22t-28 -59t29 -64q25 -23 68 -34l151 -36q169 -43 267 -127q116 -100 116 -246q0 -182 -117 -301q-122 -124 -325 -124q-102 0 -173.5 22.5t-145.5 82.5v-77h-293z" /> -<glyph unicode="t" horiz-adv-x="851" d="M63 896v342h167v395h377v-395h182v-342h-162v-539h133v-357h-524v896h-173z" /> -<glyph unicode="u" horiz-adv-x="1507" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113z" /> -<glyph unicode="v" horiz-adv-x="1414" d="M69 896v342h575v-342h-69l128 -416l138 416h-73v342h583v-342h-108l-362 -896h-371l-332 896h-109z" /> -<glyph unicode="w" horiz-adv-x="2040" d="M69 896v342h584v-342h-103l94 -352l213 694h297l213 -688l103 346h-94v342h593v-342h-127l-302 -896h-348l-193 613l-227 -613h-337l-246 896h-120z" /> -<glyph unicode="x" horiz-adv-x="1479" d="M69 0v357h115l302 272l-282 267h-115v342h555v-277l108 -85l100 89v273h549v-342h-109l-287 -267l302 -272h109v-357h-564v293l-109 98l-110 -109v-282h-564z" /> -<glyph unicode="y" horiz-adv-x="1457" d="M56 896v342h609v-357h-69l128 -375l138 375h-64v357h590v-342h-114l-406 -980h118v-347h-613v342h109l49 129l-341 856h-134z" /> -<glyph unicode="z" horiz-adv-x="1198" d="M69 0v293l590 603h-233v-84h-326v426h1009v-332l-534 -569h247v99h317v-436h-1070z" /> -<glyph unicode="{" horiz-adv-x="745" d="M32 728q43 4 79.5 23t57.5 45q29 32 42.5 56.5t13.5 47.5v523q0 57 23 99t73 67q69 36 140 50t134 14q32 0 53.5 -3t22.5 -4q-47 -4 -100 -44q-45 -33 -58 -57.5t-21 -51.5t-8 -57v-500q0 -45 -17 -77.5t-56 -68.5q-25 -23 -67 -42t-86 -19q41 0 103 -32q20 -11 53 -32 q36 -36 50 -70.5t14 -83.5v-478q0 -81 54 -144t137 -77q-3 -1 -28 -3t-46 -2q-116 0 -198 27q-67 21 -106 60q-64 67 -63 155v509q0 39 -11.5 65t-39.5 48q-37 25 -77 41t-68 16z" /> -<glyph unicode="|" horiz-adv-x="310" d="M56 1643h177l-1 -1827h-175z" /> -<glyph unicode="}" horiz-adv-x="739" d="M45 -196q47 5 100 46q45 35 58 59t20 50t7 56v500q0 44 18.5 78t56.5 68q25 23 62 40q47 21 89 22q-39 0 -101 32q-20 11 -54 31q-36 36 -50 71t-14 82v478q0 45 -12 78t-41 67q-56 65 -137 76q8 5 78 5q116 0 196 -25q65 -21 104 -60q64 -67 63 -155v-510 q0 -37 11.5 -64t40 -48.5t71 -39t73.5 -17.5q-43 -5 -80 -24t-57 -44q-24 -25 -33 -40q-24 -35 -24 -64v-524q0 -56 -23.5 -98.5t-72.5 -67.5q-69 -35 -150 -51q-63 -12 -126 -12q-27 0 -43 1.5t-30 3.5z" /> -<glyph unicode="~" horiz-adv-x="952" d="M56 1618q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5z" /> -<glyph unicode="¡" horiz-adv-x="507" d="M69 -406v1099h377v-1099h-377zM69 857v371h377v-371h-377z" /> -<glyph unicode="¢" horiz-adv-x="1281" d="M65 813q0 222 124.5 385t338.5 218v263h268v-267q93 0 167 -39q67 -35 136 -110q49 -55 85 -145q27 -68 35 -125h-361q-41 55 -90 78.5t-120 23.5q-106 0 -178.5 -81.5t-72.5 -193.5q0 -114 71.5 -199.5t179.5 -85.5q69 0 119 24.5t91 77.5h361q-8 -60 -33 -123 q-35 -89 -87 -148q-69 -75 -139.5 -111.5t-163.5 -36.5v-255h-268v251q-213 56 -338 217t-125 382z" /> -<glyph unicode="£" horiz-adv-x="1568" d="M56 640v303h152l-27 50q-21 43 -28.5 77.5t-7.5 87.5q0 190 170.5 345.5t387.5 155.5q76 0 133 -20q43 -15 114 -58v52h369v-494h-382q0 77 -52.5 129.5t-135.5 52.5q-73 0 -125 -54.5t-58 -131.5q0 -64 28 -125l31 -69h412v-302h-200q21 -41 44 -81q19 -40 19 -83 q0 -84 -68 -148h119q56 0 99.5 20t61.5 63q7 17 13.5 43.5t6.5 49.5q0 21 -4 39t-14 37h347q15 -23 27.5 -63t12.5 -80q0 -205 -151.5 -320.5t-412.5 -115.5h-768v327h152q64 0 101 20q48 25 57 85q1 8 1 24q0 35 -14 64.5t-44 67.5l-43 52h-323z" /> -<glyph unicode="¥" horiz-adv-x="1640" d="M63 1281v352h673v-341h-100l172 -358l190 358h-114v341h668v-352h-139l-126 -215h126v-213h-251l-75 -126h326v-213h-406v-157h144v-357h-728v357h173v157h-442v213h360l-68 126h-292v213h177l-115 215h-153z" /> -<glyph unicode="§" horiz-adv-x="1181" d="M60 721q0 102 48 178t140 134l57 34q-60 56 -87.5 120.5t-27.5 149.5q0 146 120 244t280 98q193 0 307 -121.5t114 -309.5h-130q1 12 1 35q0 80 -34.5 139.5t-101.5 92.5t-143 33q-94 0 -164 -43q-79 -48 -97 -129q-3 -11 -4 -25t-1 -26q0 -75 49 -139q43 -57 122 -105 l344 -212q136 -84 195 -153q81 -95 81 -217q0 -104 -50 -182q-45 -72 -141 -136l-69 -47q69 -55 103 -118t34 -148q0 -156 -118 -257.5t-293 -101.5q-190 0 -313 130q-117 125 -117 310h142q-1 -12 -2 -25.5t-1 -21.5q0 -112 80 -184q39 -36 97.5 -56t119.5 -20 q75 0 136 30.5t88 91.5q23 52 22 102q0 65 -34.5 125t-95.5 99l-480 320q-176 117 -176 311zM189 749q0 -75 34.5 -128t102.5 -99l463 -308l57 36q72 45 107 92q41 57 41 130q0 67 -31 117t-93 91l-487 310l-49 -25q-71 -41 -105 -89q-40 -55 -40 -127z" /> -<glyph unicode="¨" horiz-adv-x="1028" d="M69 1252v377h386v-377h-386zM579 1252v377h386v-377h-386z" /> -<glyph unicode="©" horiz-adv-x="1777" d="M57 821q0 335 204 566q228 257 616 256q387 0 616 -256q206 -232 206 -566t-205 -564q-228 -257 -617 -257q-387 0 -615 257q-205 232 -205 564zM145 821q0 -298 182 -504q204 -231 550 -231q347 0 551 229q184 206 184 506q0 298 -184 504q-205 230 -551 231 q-345 0 -548 -229q-184 -208 -184 -506zM447 814q0 214 108 361q121 164 327 164q145 0 249 -71q112 -76 135 -207l6 -39h-98l-7 31q-21 94 -103 145.5t-183 51.5q-176 0 -264 -136q-75 -114 -74 -298q0 -182 57 -281q73 -126 258 -149q9 -1 28 -1q104 0 190 77.5t108 190.5 h99q-29 -158 -145.5 -253t-284.5 -95q-213 0 -318 159q-88 133 -88 350z" /> -<glyph unicode="ª" horiz-adv-x="856" d="M61 1284q0 134 91.5 233.5t222.5 99.5q53 0 88 -13q24 -9 71 -42v42h260v-171h-67v-270h67v-181h-255v48q-41 -29 -75 -42.5t-78 -13.5q-134 0 -229.5 90t-95.5 220zM79 752v133h710v-133h-710zM254 1301q0 -60 40 -103.5t99 -43.5q60 0 103 39t43 99q0 59 -41.5 103 t-99.5 44q-59 0 -101.5 -40t-42.5 -98z" /> -<glyph unicode="«" horiz-adv-x="1217" d="M67 530v237l480 353v-232l-341 -244l334 -235v-248zM669 530v237l479 353v-232l-340 -244l334 -235v-248z" /> -<glyph unicode="¬" horiz-adv-x="1784" d="M61 574v126h1646v-700h-135v574h-1511z" /> -<glyph unicode="­" d="M64 604v246l510 2v-248h-510z" /> -<glyph unicode="®" horiz-adv-x="1776" d="M57 821q0 335 204 566q228 257 616 256q387 0 616 -256q206 -232 206 -566t-205 -564q-228 -257 -617 -257q-387 0 -615 257q-205 232 -205 564zM145 821q0 -298 182 -504q204 -231 550 -231q347 0 551 229q184 206 184 506q0 298 -184 504q-205 230 -551 231 q-345 0 -548 -229q-184 -208 -184 -506zM544 317v987h364q157 0 243 -46q117 -63 117 -212q0 -90 -42 -151t-121 -94q55 -32 65 -41q19 -16 30 -41q17 -35 23.5 -65.5t6.5 -70.5q0 -15 -1.5 -47t-1.5 -48q0 -36 4.5 -67.5t16.5 -66.5q4 -13 11 -21.5t12 -15.5h-103h-8 q-20 40 -24.5 210t-84.5 213q-23 13 -49.5 18t-56.5 5h-41h-264v-446h-96zM640 1220l1 -374h276q112 0 174 35q83 47 83 153q0 104 -80 150q-63 36 -172 36h-282z" /> -<glyph unicode="°" horiz-adv-x="864" d="M97 1287q0 138 100 235.5t237 97.5q138 0 236.5 -98.5t98.5 -238.5q0 -138 -97.5 -237.5t-237.5 -99.5t-238.5 100t-98.5 241zM252 1285q0 -75 53 -129t129 -54q75 0 128 53t53 128t-53.5 129t-127.5 54q-75 0 -128.5 -52.5t-53.5 -128.5z" /> -<glyph unicode="±" horiz-adv-x="1056" d="M65 -1v84h917v-84h-917zM81 673l3 115h399v403h107v-405h401v-113h-404v-402h-104v402h-402z" /> -<glyph unicode="´" horiz-adv-x="799" d="M69 1658l559 233l115 -317l-579 -183z" /> -<glyph unicode="µ" horiz-adv-x="1356" d="M-12 -387q0 77 17 135q53 180 55.5 194.5t3 26t0.5 31.5v1195h201v-824q0 -102 62 -179.5t157 -77.5q96 0 195 76q105 81 105 179v826h197v-932q0 -73 35 -134.5t93 -61.5q12 0 18 1q41 9 66.5 35.5t38.5 70.5l19 63h42l-15 -73q-17 -88 -110 -152q-83 -57 -159 -57 q-13 0 -20 1q-83 12 -144 76q-67 69 -67 160l-61 -62q-75 -72 -158.5 -119t-145.5 -47q-63 0 -136 32q-89 39 -140 105v-84q0 -68 27 -142q59 -164 58 -246q0 -64 -30 -108q-35 -49 -91 -49q-49 0 -81 42.5t-32 98.5z" /> -<glyph unicode="¶" horiz-adv-x="1173" d="M68 1235q0 172 115.5 295.5t284.5 123.5h644v-152h-200v-1812h-128v1812h-183v-1812h-126v1130q-168 0 -287.5 122.5t-119.5 292.5z" /> -<glyph unicode="·" horiz-adv-x="507" d="M69 652v391h382v-391h-382z" /> -<glyph unicode="º" horiz-adv-x="847" d="M79 752v133h710v-133h-710zM96 1308q0 134 97.5 228t233.5 94q133 0 227.5 -97.5t94.5 -231.5q0 -133 -98.5 -226t-233.5 -93q-133 0 -227 96.5t-94 229.5zM283 1299q0 -56 41.5 -94.5t97.5 -38.5q59 0 98.5 42t39.5 105q0 56 -41 96t-100 40q-57 0 -96.5 -44.5 t-39.5 -105.5z" /> -<glyph unicode="»" horiz-adv-x="1224" d="M64 888v232l480 -353v-237l-473 -369v248l334 235zM667 888v232l479 -353v-237l-473 -369v248l333 235z" /> -<glyph unicode="¿" horiz-adv-x="1276" d="M75 84q0 112 31.5 195t106.5 151l108 97q27 24 44.5 43.5t35.5 42.5t30 53t17 61h390v-50q0 -45 -12.5 -87.5t-35 -78.5t-52 -72t-55.5 -58l-148 -131q-31 -27 -49.5 -61.5t-18.5 -79.5q0 -69 48.5 -119t116.5 -50q75 0 124 49.5t49 119.5l1 28h412q0 -241 -170 -417 t-409 -176q-228 0 -396 160t-168 380zM446 832v390h391v-390h-391z" /> -<glyph unicode="À" horiz-adv-x="1823" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM462 1960l113 317l559 -233l-93 -267zM768 768h242l-118 371z" /> -<glyph unicode="Á" horiz-adv-x="1844" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM488 2041l559 233l115 -317l-579 -183zM768 768h242l-118 371z" /> -<glyph unicode="Â" horiz-adv-x="1844" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM428 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302zM768 768h242l-118 371z" /> -<glyph unicode="Ã" horiz-adv-x="1817" d="M42 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM355 2013q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4 q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5zM741 768h242l-118 371z" /> -<glyph unicode="Ä" horiz-adv-x="1820" d="M61 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM339 1778v377h386v-377h-386zM760 768h242l-118 371zM849 1778v377h386v-377h-386z" /> -<glyph unicode="Å" horiz-adv-x="1828" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM608 2023q0 112 80 189t190 77t189 -78.5t79 -190.5q0 -110 -78 -189.5t-190 -79.5q-110 0 -190 80t-80 192zM761 2023q0 -49 33.5 -84t83.5 -35q48 0 82 34 t34 82t-33 82.5t-83 34.5q-48 0 -82.5 -33t-34.5 -81zM768 768h242l-118 371z" /> -<glyph unicode="Æ" horiz-adv-x="2259" d="M71 0v351h142l717 936h-149v346h1407v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h392v-570h-1171l2 313h133l-5 133h-436l-91 -129h164v-317h-709zM918 768h242l2 364z" /> -<glyph unicode="Ç" horiz-adv-x="1805" d="M63 802q0 349 249.5 600t596.5 251q146 0 270.5 -60t159.5 -137v158h347v-615h-402q-118 229 -371 229q-173 0 -299 -120.5t-126 -290.5q0 -177 121.5 -306t294.5 -129q126 0 220.5 52.5t155.5 160.5h455q-33 -148 -91.5 -245t-173.5 -194q-108 -92 -209.5 -135.5 t-241.5 -55.5l-28 -69q121 0 192 -80q67 -75 67 -187q0 -117 -86.5 -205t-206.5 -88q-124 0 -212 81t-88 209h213q7 -29 27 -50.5t53 -21.5q29 0 51 20.5t22 51.5q0 33 -22.5 57t-55.5 24q-21 0 -36 -9t-27 -28l-185 72l87 221q-319 49 -520 282t-201 557z" /> -<glyph unicode="È" horiz-adv-x="1377" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252zM352 1957l113 317l559 -233l-93 -267z" /> -<glyph unicode="É" horiz-adv-x="1387" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252zM420 2035l559 233l115 -317l-579 -183z" /> -<glyph unicode="Ê" horiz-adv-x="1377" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252zM309 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" /> -<glyph unicode="Ë" horiz-adv-x="1377" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252zM261 1767v377h386v-377h-386zM771 1767v377h386v-377h-386z" /> -<glyph unicode="Ì" horiz-adv-x="874" d="M63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751zM161 1957l113 317l559 -233l-93 -267z" /> -<glyph unicode="Í" horiz-adv-x="874" d="M63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751zM117 2041l559 233l115 -317l-579 -183z" /> -<glyph unicode="Î" horiz-adv-x="874" d="M21 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302zM63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751z" /> -<glyph unicode="Ï" horiz-adv-x="874" d="M-27 1779v377h386v-377h-386zM63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751zM483 1779v377h386v-377h-386z" /> -<glyph unicode="Ñ" horiz-adv-x="1852" d="M61 1281v352h519l639 -900v548h-173v352h737v-352h-153v-1281h-380l-619 872v-515h162v-357h-722v357h154v924h-164zM506 2004q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4 q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5z" /> -<glyph unicode="Ò" horiz-adv-x="1820" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z M568 1957l113 317l559 -233l-93 -267z" /> -<glyph unicode="Ó" horiz-adv-x="1820" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z M596 2041l559 233l115 -317l-579 -183z" /> -<glyph unicode="Ô" horiz-adv-x="1820" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z M560 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" /> -<glyph unicode="Õ" horiz-adv-x="1831" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM443 2009q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55 t-112.5 -28q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z" /> -<glyph unicode="Ö" horiz-adv-x="1823" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z M494 1771v377h386v-377h-386zM1004 1771v377h386v-377h-386z" /> -<glyph unicode="Ø" horiz-adv-x="1816" d="M68 817q0 347 249.5 594t596.5 247q65 0 112 -6.5t113 -25.5l108 241h271l-146 -345q196 -126 292.5 -296t96.5 -400q0 -354 -249.5 -610t-602.5 -256q-59 0 -106.5 4t-86.5 16l-95 -220h-286l133 317q-102 48 -177 119q-100 94 -155 230q-68 168 -68 391zM488 806 q0 -108 37 -185t119 -143l327 750l-51 4q-176 0 -304 -125t-128 -301zM889 383l15 -1q12 -1 23.5 -2t23.5 -1q156 0 270 129.5t114 297.5q0 98 -30.5 171.5t-102.5 141.5z" /> -<glyph unicode="Ù" horiz-adv-x="1652" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149zM460 1957l113 317l559 -233l-93 -267z" /> -<glyph unicode="Ú" horiz-adv-x="1652" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149zM524 2041l559 233l115 -317l-579 -183z" /> -<glyph unicode="Û" horiz-adv-x="1652" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149zM440 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302 z" /> -<glyph unicode="Ü" horiz-adv-x="1642" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149zM383 1784v377h386v-377h-386zM893 1784v377h386v-377h-386z " /> -<glyph unicode="ß" horiz-adv-x="1538" d="M63 0v357h127v732q0 250 169 432t415 182q222 0 380 -149q150 -142 150 -326q0 -117 -37 -189q-41 -79 -131 -113q154 -21 247.5 -143.5t93.5 -302.5q0 -221 -153.5 -373t-370.5 -152q-80 0 -134 12t-123 48v351q40 -28 83 -39.5t98 -11.5q83 0 137.5 53.5t54.5 137.5 q0 112 -94 161q-75 40 -205 40h-74v327h55q59 0 101 42.5t42 101.5q0 60 -38.5 97t-110.5 37q-79 0 -114 -65q-31 -55 -31 -153v-1094h-537z" /> -<glyph unicode="à" horiz-adv-x="1592" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM459 1631l113 317l559 -233l-93 -267z" /> -<glyph unicode="á" horiz-adv-x="1592" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM448 1717l559 233l115 -317l-579 -183z" /> -<glyph unicode="â" horiz-adv-x="1594" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM459 1448l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" /> -<glyph unicode="ã" horiz-adv-x="1586" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM449 1682q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5z" /> -<glyph unicode="ä" horiz-adv-x="1592" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM380 1454v377h386v-377h-386zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5 q0 120 -82 206.5t-199 86.5q-116 0 -202 -79t-86 -194zM890 1454v377h386v-377h-386z" /> -<glyph unicode="å" horiz-adv-x="1592" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM487 1697q0 112 80 189t190 77t189 -78.5t79 -190.5q0 -110 -78 -189.5t-190 -79.5q-110 0 -190 80t-80 192zM640 1697q0 -49 33.5 -84t83.5 -35q48 0 82 34t34 82t-33.5 82.5t-82.5 34.5q-48 0 -82.5 -33t-34.5 -81z" /> -<glyph unicode="æ" horiz-adv-x="2568" d="M69 599q0 270 183 467t447 197q104 0 174 -27q53 -20 142 -82v84h381v-84q114 67 208.5 90t262.5 23q241 0 442 -208q206 -213 206 -484q0 -54 -11 -115h-924q39 -89 111 -135.5t171 -46.5q71 0 134 35q51 32 79 49h386q-106 -194 -241 -287q-150 -105 -364 -106 q-162 0 -263 24q-121 29 -233 105v-103h-335v94q-81 -57 -150 -83t-158 -26q-269 0 -458.5 179t-189.5 440zM455 633q0 -120 80.5 -208t197.5 -88q118 0 205 79.5t87 196.5q0 120 -82 206.5t-200 86.5q-116 0 -202 -79t-86 -194zM1580 748h558q-41 89 -116.5 133.5 t-179.5 44.5q-89 0 -155.5 -47t-106.5 -131z" /> -<glyph unicode="ç" horiz-adv-x="1411" d="M69 639q0 253 176.5 438.5t418.5 185.5q102 0 189 -29q77 -25 137 -74v83h322v-455h-357q-79 118 -239 118q-117 0 -196.5 -88.5t-79.5 -208.5q0 -113 81.5 -195.5t195.5 -82.5q77 0 133 27.5t100 87.5h401q0 -68 -62 -191t-122 -169q-80 -59 -152 -87t-162 -28l-27 -69 q120 0 191 -80q67 -76 66 -188q0 -118 -85 -204.5t-206 -86.5q-125 0 -210 78q-89 83 -90 210h212q7 -29 27 -50t53 -21q29 0 51.5 21t22.5 50q0 33 -23 58t-57 25q-20 0 -35 -10t-26 -27l-186 71l86 220q-245 40 -396.5 227.5t-151.5 443.5z" /> -<glyph unicode="è" horiz-adv-x="1441" d="M63 604q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM388 1635l113 317l559 -233l-93 -267zM438 748h560 q-43 89 -119.5 133.5t-178.5 44.5q-89 0 -155.5 -47t-106.5 -131z" /> -<glyph unicode="é" horiz-adv-x="1439" d="M63 604q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM406 1719l559 233l115 -317l-579 -183zM438 748h560 q-43 89 -119.5 133.5t-178.5 44.5q-89 0 -155.5 -47t-106.5 -131z" /> -<glyph unicode="ê" horiz-adv-x="1441" d="M63 595q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM315 1451l242 431h322l219 -431h-282l-104 207l-95 -207h-302z M438 739h560q-43 89 -119.5 133.5t-178.5 44.5q-89 0 -155.5 -47t-106.5 -131z" /> -<glyph unicode="ë" horiz-adv-x="1441" d="M63 604q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM309 1444v377h386v-377h-386zM438 748h560q-43 89 -119.5 133.5 t-178.5 44.5q-89 0 -155.5 -47t-106.5 -131zM819 1444v377h386v-377h-386z" /> -<glyph unicode="ì" horiz-adv-x="781" d="M36 1634l113 317l559 -233l-93 -268zM61 0v347h139v545h-139v346h506v-881h138v-357h-644z" /> -<glyph unicode="í" horiz-adv-x="790" d="M57 1718l559 233l115 -317l-579 -184zM81 0v347h139v545h-139v346h506v-881h138v-357h-644z" /> -<glyph unicode="î" horiz-adv-x="779" d="M-41 1449l242 431h322l218 -431h-282l-104 208l-94 -208h-302zM68 0v347h138v545h-138v346h504v-881h139v-357h-643z" /> -<glyph unicode="ï" horiz-adv-x="783" d="M-94 1444v376h385v-376h-385zM75 0v347h138v545h-138v346h505v-881h139v-357h-644zM415 1444v376h386v-376h-386z" /> -<glyph unicode="ñ" horiz-adv-x="1566" d="M69 0v357h149v539h-149v342h521v-124q57 81 140 115t196 34q240 0 353 -160q92 -130 92 -346v-400h129v-357h-519v713q0 90 -31 140q-40 64 -134 64q-19 0 -30 -1q-85 -8 -138.5 -73.5t-53.5 -154.5v-331h119v-357h-644zM319 1681q48 28 85 41.5t93 23.5q27 4 49 4 q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5z" /> -<glyph unicode="ò" horiz-adv-x="1425" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM358 1634l113 317l559 -233l-93 -267zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5t-198.5 79.5 q-116 0 -194.5 -90t-78.5 -211z" /> -<glyph unicode="ó" horiz-adv-x="1425" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM356 1718l559 233l115 -317l-579 -183zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5 t-198.5 79.5q-116 0 -194.5 -90t-78.5 -211z" /> -<glyph unicode="ô" horiz-adv-x="1433" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM334 1451l242 431h322l219 -431h-282l-104 207l-95 -207h-302zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5 q0 113 -83.5 192.5t-198.5 79.5q-116 0 -194.5 -90t-78.5 -211z" /> -<glyph unicode="õ" horiz-adv-x="1438" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM293 1682q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28 q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5t-198.5 79.5q-116 0 -194.5 -90t-78.5 -211z" /> -<glyph unicode="ö" horiz-adv-x="1438" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM249 1444v377h386v-377h-386zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5t-198.5 79.5 q-116 0 -194.5 -90t-78.5 -211zM759 1444v377h386v-377h-386z" /> -<glyph unicode="÷" horiz-adv-x="1529" d="M60 600v152h1390v-152h-1390zM594 314q0 60 43.5 104t105.5 44q60 0 103.5 -44t43.5 -107t-44 -106.5t-106 -43.5q-60 0 -103 46t-43 107zM595 1041q0 60 44 103.5t105 43.5t105 -43.5t44 -106.5t-44.5 -107.5t-107.5 -44.5q-60 0 -103 46t-43 109z" /> -<glyph unicode="ø" horiz-adv-x="1429" d="M63 613q0 267 196 456t468 189q37 0 62 -4t55 -10l80 181h272l-107 -270q121 -61 200.5 -218.5t79.5 -337.5q0 -265 -196 -452t-466 -187q-35 0 -62.5 3.5t-66.5 12.5l-70 -165h-287l116 270q-141 98 -207.5 228t-66.5 304zM439 595q0 -80 56 -156l200 457 q-112 -11 -184 -97.5t-72 -203.5zM728 329q105 0 185 86.5t80 208.5q0 64 -27 117q-17 33 -40 55z" /> -<glyph unicode="ù" horiz-adv-x="1491" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113zM412 1633l113 317l559 -233l-93 -267z" /> -<glyph unicode="ú" horiz-adv-x="1499" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113zM432 1717l559 233l115 -317l-579 -183z" /> -<glyph unicode="û" horiz-adv-x="1491" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113zM386 1450l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" /> -<glyph unicode="ü" horiz-adv-x="1498" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113zM273 1444v377h386v-377h-386zM783 1444v377h386v-377h-386z" /> -<glyph unicode="ý" horiz-adv-x="0" /> -<glyph unicode="ÿ" horiz-adv-x="1466" d="M97 896v342h609v-357h-69l128 -375l138 375h-64v357h590v-342h-114l-406 -980h118v-347h-613v342h109l49 129l-341 856h-134zM313 1444v377h386v-377h-386zM823 1444v377h386v-377h-386z" /> -<glyph unicode="Œ" horiz-adv-x="2412" d="M61 817q0 346 250.5 593.5t596.5 247.5q68 0 121.5 -5.5t142.5 -19.5h1175v-528h-395v153h-273v-228h372v-386h-372v-273h273v199h390v-570h-1170q-67 -19 -130.5 -29.5t-139.5 -10.5q-355 0 -595 237q-246 244 -246 620zM482 806q0 -173 121.5 -298.5t293.5 -125.5 q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -303.5 -125t-127.5 -301z" /> -<glyph unicode="œ" horiz-adv-x="2298" d="M63 599q0 269 182.5 466.5t445.5 197.5q132 0 218 -19q114 -25 217 -90q114 67 208.5 90t262.5 23q241 0 442 -208q206 -213 206 -484q0 -54 -11 -115h-925q39 -89 111.5 -135.5t171.5 -46.5q71 0 134 35q51 32 78 49h386q-106 -194 -240 -287q-150 -105 -364 -106 q-162 0 -263 24q-121 29 -233 105q-88 -63 -184.5 -90.5t-194.5 -27.5q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5q-116 0 -202 -79t-86 -194zM1309 748h559q-41 89 -117.5 133.5t-178.5 44.5 q-90 0 -157 -46.5t-106 -131.5z" /> -<glyph unicode="Ÿ" horiz-adv-x="1628" d="M63 1281v352h673v-341h-100l173 -362l189 362h-114v341h668v-352h-139l-406 -691v-233h144v-357h-728v357h173v218l-380 706h-153zM356 1767v377h386v-377h-386zM866 1767v377h386v-377h-386z" /> -<glyph unicode=" " horiz-adv-x="1144" /> -<glyph unicode=" " horiz-adv-x="2289" /> -<glyph unicode=" " horiz-adv-x="1144" /> -<glyph unicode=" " horiz-adv-x="2289" /> -<glyph unicode=" " horiz-adv-x="763" /> -<glyph unicode=" " horiz-adv-x="572" /> -<glyph unicode=" " horiz-adv-x="381" /> -<glyph unicode=" " horiz-adv-x="381" /> -<glyph unicode=" " horiz-adv-x="286" /> -<glyph unicode=" " horiz-adv-x="457" /> -<glyph unicode=" " horiz-adv-x="127" /> -<glyph unicode="‐" d="M64 604v246l510 2v-248h-510z" /> -<glyph unicode="‑" d="M64 604v246l510 2v-248h-510z" /> -<glyph unicode="‒" d="M64 604v246l510 2v-248h-510z" /> -<glyph unicode="–" horiz-adv-x="999" d="M67 611v242h851v-242h-851z" /> -<glyph unicode="—" horiz-adv-x="1788" d="M67 605v248h1642v-244z" /> -<glyph unicode="‘" horiz-adv-x="514" d="M60 870v447q0 73 14 127t52 101t115 68q57 16 136 16h51v-196h-37q-60 0 -94 -44q-12 -16 -17 -34t-5 -43v-29v-27h173v-386h-388z" /> -<glyph unicode="’" horiz-adv-x="514" d="M65 1247v386h389v-447q0 -73 -14 -127t-50 -98q-40 -49 -117 -71q-57 -16 -136 -16h-52v196h37q60 0 95 44q12 16 16.5 34t4.5 43v29v27h-173z" /> -<glyph unicode="‚" horiz-adv-x="514" d="M65 -11v386h389v-447q0 -73 -14 -127t-50 -98q-40 -49 -117 -70q-57 -16 -136 -16h-52v195h37q60 0 95 44q12 16 16.5 34t4.5 43v30v26h-173z" /> -<glyph unicode="“" horiz-adv-x="1167" d="M60 870v447q0 75 14 127t52.5 100t114.5 69q57 16 136 16h51v-196h-35q-60 0 -95 -44q-16 -19 -19.5 -38t-3.5 -54v-14v-27h173v-386h-388zM580 870v447q0 73 14 127t52 101t115 68q57 16 136 16h52v-196h-37q-60 0 -95 -44q-12 -16 -16.5 -34t-4.5 -43v-29v-27h173v-386 h-389z" /> -<glyph unicode="”" horiz-adv-x="1039" d="M67 1247v386h388v-447q0 -75 -14 -127t-52.5 -99.5t-114.5 -69.5q-57 -16 -136 -16h-52v196h36q60 0 95 44q19 24 21 52t2 54v27h-173zM586 1247v386h388v-447q0 -73 -14 -127t-50 -98q-40 -49 -117 -71q-57 -16 -136 -16h-52v196h38q60 0 94 44q12 16 17 34t5 43v29v27 h-173z" /> -<glyph unicode="„" horiz-adv-x="1039" d="M67 -11v386h388v-447q0 -75 -14 -126.5t-52.5 -99.5t-114.5 -69q-57 -16 -136 -16h-52v195h36q60 0 95 44q19 24 21 52t2 55v26h-173zM586 -11v386h388v-447q0 -73 -14 -127t-50 -98q-40 -49 -117 -70q-57 -16 -136 -16h-52v195h38q60 0 94 44q12 16 17 34t5 43v30v26 h-173z" /> -<glyph unicode="•" horiz-adv-x="726" d="M69 515v590h590v-590h-590z" /> -<glyph unicode="…" horiz-adv-x="2375" d="M60 -9v391h382v-391h-382zM1014 -19v391h382v-391h-382zM1937 -19v391h382v-391h-382z" /> -<glyph unicode=" " horiz-adv-x="457" /> -<glyph unicode=" " horiz-adv-x="572" /> -<glyph unicode="™" horiz-adv-x="1543" d="M55 1576v69h592v-71h-257v-753h-80v755h-255zM708 1639h125l257 -717l267 716h117v-817h-79v729l-273 -726h-71l-262 729v-732h-80z" /> -<glyph unicode="◼" horiz-adv-x="1237" d="M0 0v1238h1238v-1238h-1238z" /> -<hkern u1=""" u2="A" k="176" /> -<hkern u1="A" u2="”" k="290" /> -<hkern u1="A" u2="’" k="286" /> -<hkern u1="A" u2="y" k="193" /> -<hkern u1="A" u2="w" k="205" /> -<hkern u1="A" u2="v" k="205" /> -<hkern u1="A" u2="q" k="69" /> -<hkern u1="A" u2="o" k="69" /> -<hkern u1="A" u2="e" k="69" /> -<hkern u1="A" u2="d" k="84" /> -<hkern u1="A" u2="c" k="69" /> -<hkern u1="A" u2="Y" k="303" /> -<hkern u1="A" u2="W" k="317" /> -<hkern u1="A" u2="V" k="406" /> -<hkern u1="A" u2="T" k="270" /> -<hkern u1="A" u2="C" k="148" /> -<hkern u1="A" u2="'" k="237" /> -<hkern u1="A" u2=""" k="294" /> -<hkern u1="F" u2="A" k="232" /> -<hkern u1="F" u2="." k="237" /> -<hkern u1="F" u2="," k="221" /> -<hkern u1="K" u2="o" k="29" /> -<hkern u1="K" u2="e" k="29" /> -<hkern u1="K" u2="a" k="29" /> -<hkern u1="K" u2="O" k="86" /> -<hkern u1="K" u2="-" k="102" /> -<hkern u1="L" u2="’" k="168" /> -<hkern u1="L" u2="y" k="73" /> -<hkern u1="L" u2="Y" k="229" /> -<hkern u1="L" u2="W" k="274" /> -<hkern u1="L" u2="V" k="274" /> -<hkern u1="L" u2="T" k="126" /> -<hkern u1="L" u2="'" k="144" /> -<hkern u1="O" u2="W" k="73" /> -<hkern u1="O" u2="V" k="45" /> -<hkern u1="P" u2="A" k="225" /> -<hkern u1="P" u2="." k="237" /> -<hkern u1="P" u2="," k="233" /> -<hkern u1="R" u2="Y" k="12" /> -<hkern u1="R" u2="W" k="11" /> -<hkern u1="R" u2="V" k="11" /> -<hkern u1="T" u2="o" k="45" /> -<hkern u1="T" u2="e" k="29" /> -<hkern u1="T" u2="c" k="45" /> -<hkern u1="T" u2="a" k="45" /> -<hkern u1="T" u2="A" k="209" /> -<hkern u1="T" u2=";" k="3" /> -<hkern u1="T" u2=":" k="3" /> -<hkern u1="T" u2="." k="61" /> -<hkern u1="T" u2="," k="77" /> -<hkern u1="V" u2="o" k="217" /> -<hkern u1="V" u2="e" k="201" /> -<hkern u1="V" u2="c" k="217" /> -<hkern u1="V" u2="a" k="214" /> -<hkern u1="V" u2="O" k="96" /> -<hkern u1="V" u2="C" k="125" /> -<hkern u1="V" u2="A" k="274" /> -<hkern u1="V" u2=";" k="92" /> -<hkern u1="V" u2=":" k="94" /> -<hkern u1="V" u2="." k="258" /> -<hkern u1="V" u2="-" k="217" /> -<hkern u1="V" u2="," k="258" /> -<hkern u1="W" u2="u" k="16" /> -<hkern u1="W" u2="r" k="16" /> -<hkern u1="W" u2="o" k="106" /> -<hkern u1="W" u2="i" k="23" /> -<hkern u1="W" u2="e" k="106" /> -<hkern u1="W" u2="c" k="102" /> -<hkern u1="W" u2="a" k="106" /> -<hkern u1="W" u2="O" k="102" /> -<hkern u1="W" u2="C" k="144" /> -<hkern u1="W" u2="A" k="290" /> -<hkern u1="W" u2=";" k="184" /> -<hkern u1="W" u2=":" k="184" /> -<hkern u1="W" u2="." k="184" /> -<hkern u1="W" u2="-" k="209" /> -<hkern u1="W" u2="," k="198" /> -<hkern u1="Y" u2="v" k="12" /> -<hkern u1="Y" u2="q" k="109" /> -<hkern u1="Y" u2="p" k="12" /> -<hkern u1="Y" u2="o" k="110" /> -<hkern u1="Y" u2="i" k="4" /> -<hkern u1="Y" u2="e" k="140" /> -<hkern u1="Y" u2="a" k="156" /> -<hkern u1="Y" u2="A" k="237" /> -<hkern u1="Y" u2=";" k="-4" /> -<hkern u1="Y" u2="." k="193" /> -<hkern u1="Y" u2="-" k="193" /> -<hkern u1="Y" u2="," k="176" /> -<hkern u1="b" u2="y" k="23" /> -<hkern u1="e" u2="y" k="20" /> -<hkern u1="e" u2="x" k="20" /> -<hkern u1="e" u2="w" k="23" /> -<hkern u1="e" u2="v" k="23" /> -<hkern u1="o" u2="y" k="20" /> -<hkern u1="o" u2="x" k="8" /> -<hkern u1="o" u2="w" k="8" /> -<hkern u1="o" u2="v" k="8" /> -<hkern u1="p" u2="y" k="20" /> -<hkern u1="v" u2="o" k="8" /> -<hkern u1="v" u2="e" k="24" /> -<hkern u1="v" u2="a" k="8" /> -<hkern u1="v" u2="." k="184" /> -<hkern u1="v" u2="," k="184" /> -<hkern u1="w" u2="o" k="8" /> -<hkern u1="w" u2="e" k="8" /> -<hkern u1="w" u2="a" k="8" /> -<hkern u1="w" u2="." k="228" /> -<hkern u1="w" u2="," k="201" /> -<hkern u1="x" u2="o" k="7" /> -<hkern u1="x" u2="e" k="8" /> -<hkern u1="x" u2="a" k="8" /> -<hkern u1="y" u2="o" k="8" /> -<hkern u1="y" u2="e" k="-8" /> -<hkern u1="y" u2="a" k="8" /> -<hkern u1="y" u2="." k="184" /> -<hkern u1="y" u2="," k="184" /> -<hkern u1="‘" u2="A" k="418" /> -<hkern u1="“" u2="A" k="290" /> -</font> -</defs></svg> \ No newline at end of file diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.ttf b/lib/katex/fonts/lubalin_graph_bold-webfont.ttf deleted file mode 100755 index ed8aa292aa6eb85463e59ddde50bf295dc877e34..0000000000000000000000000000000000000000 Binary files a/lib/katex/fonts/lubalin_graph_bold-webfont.ttf and /dev/null differ diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.woff b/lib/katex/fonts/lubalin_graph_bold-webfont.woff deleted file mode 100755 index 83c14ee623d7ed22439912aeae8f63c1f56f29a3..0000000000000000000000000000000000000000 Binary files a/lib/katex/fonts/lubalin_graph_bold-webfont.woff and /dev/null differ diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.woff2 b/lib/katex/fonts/lubalin_graph_bold-webfont.woff2 deleted file mode 100755 index a269c291846c4e00bc1925e15cb658c02ee12d1d..0000000000000000000000000000000000000000 Binary files a/lib/katex/fonts/lubalin_graph_bold-webfont.woff2 and /dev/null differ diff --git a/static.html b/static.html index dfeff481626e75b98c6b62772aa03ef590d58a0b..f61f3ea0244a7c13f6b51bdfaca5ba9e35449602 100644 --- a/static.html +++ b/static.html @@ -19,6 +19,12 @@ \REQUIRE {asd}{jios}{adf} jioasdfjioas aijosfaisjo asjdf asjoi asdfasdf jo asdjd j asdjo $n \geq 0$ \ENSURE $y = x^n$ \STATE asjo aosd j asodij jdsf $y \leftarrow 1$ a js j djioas jo j + \STATE Test text-style commands: + \STATE different font-family: {\sffamily sffamily \ttfamily ttfamily \rmfamily rmfamily} + \STATE different wieghts: {normal weight \bfseries bold \mdseries medium \lfseries lighter} + \STATE different shapes: {\itshape itshape \scshape Small-Caps \slshape slshape \upshape upshape} + \STATE {normal text vs. \slshape after slshape} + \STATE {\uppercase all is uppercase} vs. {\lowercase ALL lOWER Case} \STATE $X \leftarrow x$ \STATE $N \leftarrow n$ \WHILE{$N \neq 0$}