(function() {

var _typeface_js = {

	faces: {},

	loadFace: function(typefaceData) {

		var familyName = typefaceData.familyName.toLowerCase();
		
		if (!this.faces[familyName]) {
			this.faces[familyName] = {};
		}
		if (!this.faces[familyName][typefaceData.cssFontWeight]) {
			this.faces[familyName][typefaceData.cssFontWeight] = {};
		}

		var face = this.faces[familyName][typefaceData.cssFontWeight][typefaceData.cssFontStyle] = typefaceData;
		face.loaded = true;
	},

	log: function(message) {
		
		if (this.quiet) {
			return;
		}
		
		message = "typeface.js: " + message;
		
		if (this.customLogFn) {
			this.customLogFn(message);

		} else if (window.console && window.console.log) {
			window.console.log(message);
		}
		
	},
	
	pixelsFromPoints: function(face, style, points, dimension) {
		var pixels = points * parseInt(style.fontSize) * 72 / (face.resolution * 100);
		if (dimension == 'horizontal' && style.fontStretchPercent) {
			pixels *= style.fontStretchPercent;
		}
		return pixels;
	},

	pointsFromPixels: function(face, style, pixels, dimension) {
		var points = pixels * face.resolution / (parseInt(style.fontSize) * 72 / 100);
		if (dimension == 'horizontal' && style.fontStretchPrecent) {
			points *= style.fontStretchPercent;
		}
		return points;
	},

	cssFontWeightMap: {
		normal: 'normal',
		bold: 'bold',
		400: 'normal',
		700: 'bold'
	},

	cssFontStretchMap: {
		'ultra-condensed': 0.55,
		'extra-condensed': 0.77,
		'condensed': 0.85,
		'semi-condensed': 0.93,
		'normal': 1,
		'semi-expanded': 1.07,
		'expanded': 1.15,
		'extra-expanded': 1.23,
		'ultra-expanded': 1.45,
		'default': 1
	},
	
	fallbackCharacter: '.',

	configure: function(args) {
		var configurableOptionNames = [ 'customLogFn',  'customClassNameRegex', 'customTypefaceElementsList', 'quiet', 'verbose', 'disableSelection' ];
		
		for (var i = 0; i < configurableOptionNames.length; i++) {
			var optionName = configurableOptionNames[i];
			if (args[optionName]) {
				if (optionName == 'customLogFn') {
					if (typeof args[optionName] != 'function') {
						throw "customLogFn is not a function";
					} else {
						this.customLogFn = args.customLogFn;
					}
				} else {
					this[optionName] = args[optionName];
				}
			}
		}
	},

	getTextExtents: function(face, style, text) {
		var extentX = 0;
		var extentY = 0;
		var horizontalAdvance;
	
		var textLength = text.length;
		for (var i = 0; i < textLength; i++) {
			var glyph = face.glyphs[text.charAt(i)] ? face.glyphs[text.charAt(i)] : face.glyphs[this.fallbackCharacter];
			var letterSpacingAdjustment = this.pointsFromPixels(face, style, style.letterSpacing);

			// if we're on the last character, go with the glyph extent if that's more than the horizontal advance
			extentX += i + 1 == textLength ? Math.max(glyph.x_max, glyph.ha) : glyph.ha;
			extentX += letterSpacingAdjustment;

			horizontalAdvance += glyph.ha + letterSpacingAdjustment;
		}
		return { 
			x: extentX, 
			y: extentY,
			ha: horizontalAdvance
			
		};
	},

	pixelsFromCssAmount: function(cssAmount, defaultValue, element) {

		var matches = undefined;

		if (cssAmount == 'normal') {
			return defaultValue;

		} else if (matches = cssAmount.match(/([\-\d+\.]+)px/)) {
			return matches[1];

		} else {
			// thanks to Dean Edwards for this very sneaky way to get IE to convert 
			// relative values to pixel values
			
			var pixelAmount;
			
			var leftInlineStyle = element.style.left;
			var leftRuntimeStyle = element.runtimeStyle.left;

			element.runtimeStyle.left = element.currentStyle.left;

			if (!cssAmount.match(/\d(px|pt)$/)) {
				element.style.left = '1em';
			} else {
				element.style.left = cssAmount || 0;
			}

			pixelAmount = element.style.pixelLeft;
		
			element.style.left = leftInlineStyle;
			element.runtimeStyle.left = leftRuntimeStyle;
			
			return pixelAmount || defaultValue;
		}
	},

	capitalizeText: function(text) {
		return text.replace(/(^|\s)[a-z]/g, function(match) { return match.toUpperCase() } ); 
	},

	getElementStyle: function(e) {
		if (window.getComputedStyle) {
			return window.getComputedStyle(e, '');
		
		} else if (e.currentStyle) {
			return e.currentStyle;
		}
	},

	getRenderedText: function(e) {

		var browserStyle = this.getElementStyle(e.parentNode);

		var inlineStyleAttribute = e.parentNode.getAttribute('style');
		if (inlineStyleAttribute && typeof(inlineStyleAttribute) == 'object') {
			inlineStyleAttribute = inlineStyleAttribute.cssText;
		}

		if (inlineStyleAttribute) {

			var inlineStyleDeclarations = inlineStyleAttribute.split(/\s*\;\s*/);

			var inlineStyle = {};
			for (var i = 0; i < inlineStyleDeclarations.length; i++) {
				var declaration = inlineStyleDeclarations[i];
				var declarationOperands = declaration.split(/\s*\:\s*/);
				inlineStyle[declarationOperands[0]] = declarationOperands[1];
			}
		}

		var style = { 
			color: browserStyle.color, 
			fontFamily: browserStyle.fontFamily.split(/\s*,\s*/)[0].replace(/(^"|^'|'$|"$)/g, '').toLowerCase(), 
			fontSize: this.pixelsFromCssAmount(browserStyle.fontSize, 12, e.parentNode),
			fontWeight: this.cssFontWeightMap[browserStyle.fontWeight],
			fontStyle: browserStyle.fontStyle ? browserStyle.fontStyle : 'normal',
			fontStretchPercent: this.cssFontStretchMap[inlineStyle && inlineStyle['font-stretch'] ? inlineStyle['font-stretch'] : 'default'],
			textDecoration: browserStyle.textDecoration,
			lineHeight: this.pixelsFromCssAmount(browserStyle.lineHeight, 'normal', e.parentNode),
			letterSpacing: this.pixelsFromCssAmount(browserStyle.letterSpacing, 0, e.parentNode),
			textTransform: browserStyle.textTransform
		};

		var face;
		if (
			this.faces[style.fontFamily]  
			&& this.faces[style.fontFamily][style.fontWeight]
		) {
			face = this.faces[style.fontFamily][style.fontWeight][style.fontStyle];
		}

		var text = e.nodeValue;
		
		if (
			e.previousSibling 
			&& e.previousSibling.nodeType == 1 
			&& e.previousSibling.tagName != 'BR' 
			&& this.getElementStyle(e.previousSibling).display.match(/inline/)
		) {
			text = text.replace(/^\s+/, ' ');
		} else {
			text = text.replace(/^\s+/, '');
		}
		
		if (
			e.nextSibling 
			&& e.nextSibling.nodeType == 1 
			&& e.nextSibling.tagName != 'BR' 
			&& this.getElementStyle(e.nextSibling).display.match(/inline/)
		) {
			text = text.replace(/\s+$/, ' ');
		} else {
			text = text.replace(/\s+$/, '');
		}
		
		text = text.replace(/\s+/g, ' ');
	
		if (style.textTransform && style.textTransform != 'none') {
			switch (style.textTransform) {
				case 'capitalize':
					text = this.capitalizeText(text);
					break;
				case 'uppercase':
					text = text.toUpperCase();

					break;
				case 'lowercase':
					text = text.toLowerCase();
					break;
			}
		}

		if (!face) {
			var excerptLength = 12;
			var textExcerpt = text.substring(0, excerptLength);
			if (text.length > excerptLength) {
				textExcerpt += '...';
			}
		
			var fontDescription = style.fontFamily;
			if (style.fontWeight != 'normal') fontDescription += ' ' + style.fontWeight;
			if (style.fontStyle != 'normal') fontDescription += ' ' + style.fontStyle;
		
			this.log("couldn't find typeface font: " + fontDescription + ' for text "' + textExcerpt + '"');
			return;
		}
	
		var words = text.split(/\b(?=\w)/);

		var containerSpan = document.createElement('span');
		containerSpan.className = 'typeface-js-vector-container';
		
		var wordsLength = words.length;
		for (var i = 0; i < wordsLength; i++) {
			var word = words[i];
			
			var vector = this.renderWord(face, style, word);
			
			if (vector) {
				containerSpan.appendChild(vector.element);

				if (!this.disableSelection) {
					var selectableSpan = document.createElement('span');
					selectableSpan.className = 'typeface-js-selected-text';

					var wordNode = document.createTextNode(word);
					selectableSpan.appendChild(wordNode);

					if (this.vectorBackend != 'vml') {
						selectableSpan.style.marginLeft = -1 * (vector.width + 1) + 'px';
					}
					selectableSpan.targetWidth = vector.width;
					//selectableSpan.style.lineHeight = 1 + 'px';

					if (this.vectorBackend == 'vml') {
						vector.element.appendChild(selectableSpan);
					} else {
						containerSpan.appendChild(selectableSpan);
					}
				}
			}
		}

		return containerSpan;
	},

	renderDocument: function(callback) { 
		
		if (!callback)
			callback = function(e) { e.style.visibility = 'visible' };

		var elements = document.getElementsByTagName('*');
		
		var elementsLength = elements.length;
		for (var i = 0; i < elements.length; i++) {
			if (elements[i].className.match(/(^|\s)typeface-js(\s|$)/) || elements[i].tagName.match(/^(H1|H2|H3|H4|H5|H6)$/)) {
				this.replaceText(elements[i]);
				if (typeof callback == 'function') {
					callback(elements[i]);
				}
			}
		}

		if (this.vectorBackend == 'vml') {
			// lamely work around IE's quirky leaving off final dynamic shapes
			var dummyShape = document.createElement('v:shape');
			dummyShape.style.display = 'none';
			document.body.appendChild(dummyShape);
		}
	},

	replaceText: function(e) {

		var childNodes = [];
		var childNodesLength = e.childNodes.length;

		for (var i = 0; i < childNodesLength; i++) {
			this.replaceText(e.childNodes[i]);
		}

		if (e.nodeType == 3 && e.nodeValue.match(/\S/)) {
			var parentNode = e.parentNode;

			if (parentNode.className == 'typeface-js-selected-text') {
				return;
			}

			var renderedText = this.getRenderedText(e);
			
			if (
				parentNode.tagName == 'A' 
				&& this.vectorBackend == 'vml'
				&& this.getElementStyle(parentNode).display == 'inline'
			) {
				// something of a hack, use inline-block to get IE to accept clicks in whitespace regions
				parentNode.style.display = 'inline-block';
				parentNode.style.cursor = 'pointer';
			}

			if (this.getElementStyle(parentNode).display == 'inline') {
				parentNode.style.display = 'inline-block';
			}

			if (renderedText) {	
				if (parentNode.replaceChild) {
					parentNode.replaceChild(renderedText, e);
				} else {
					parentNode.insertBefore(renderedText, e);
					parentNode.removeChild(e);
				}
				if (this.vectorBackend == 'vml') {
					renderedText.innerHTML = renderedText.innerHTML;
				}

				var childNodesLength = renderedText.childNodes.length
				for (var i; i < childNodesLength; i++) {
					
					// do our best to line up selectable text with rendered text

					var e = renderedText.childNodes[i];
					if (e.hasChildNodes() && !e.targetWidth) {
						e = e.childNodes[0];
					}
					
					if (e && e.targetWidth) {
						var letterSpacingCount = e.innerHTML.length;
						var wordSpaceDelta = e.targetWidth - e.offsetWidth;
						var letterSpacing = wordSpaceDelta / (letterSpacingCount || 1);

						if (this.vectorBackend == 'vml') {
							letterSpacing = Math.ceil(letterSpacing);
						}

						e.style.letterSpacing = letterSpacing + 'px';
						e.style.width = e.targetWidth + 'px';
					}
				}
			}
		}
	},

	applyElementVerticalMetrics: function(face, style, e) {

		if (style.lineHeight == 'normal') {
			style.lineHeight = this.pixelsFromPoints(face, style, face.lineHeight);
		}

		var cssLineHeightAdjustment = style.lineHeight - this.pixelsFromPoints(face, style, face.lineHeight);

		e.style.marginTop = Math.round( cssLineHeightAdjustment / 2 ) + 'px';
		e.style.marginBottom = Math.round( cssLineHeightAdjustment / 2) + 'px';
	
	},

	vectorBackends: {

		canvas: {

			_initializeSurface: function(face, style, text) {

				var extents = this.getTextExtents(face, style, text);

				var canvas = document.createElement('canvas');
				if (this.disableSelection) {
					canvas.innerHTML = text;
				}

				canvas.height = Math.round(this.pixelsFromPoints(face, style, face.lineHeight));
				canvas.width = Math.round(this.pixelsFromPoints(face, style, extents.x, 'horizontal'));
	
				this.applyElementVerticalMetrics(face, style, canvas);

				if (extents.x > extents.ha) 
					canvas.style.marginRight = Math.round(this.pixelsFromPoints(face, style, extents.x - extents.ha, 'horizontal')) + 'px';

				var ctx = canvas.getContext('2d');

				var pointScale = this.pixelsFromPoints(face, style, 1);
				ctx.scale(pointScale * style.fontStretchPercent, -1 * pointScale);
				ctx.translate(0, -1 * face.ascender);
				ctx.fillStyle = style.color;

				return { context: ctx, canvas: canvas };
			},

			_renderGlyph: function(ctx, face, char, style) {

				var glyph = face.glyphs[char];

				if (!glyph) {
					//this.log.error("glyph not defined: " + char);
					return this.renderGlyph(ctx, face, this.fallbackCharacter, style);
				}

				if (glyph.o) {

					var outline;
					if (glyph.cached_outline) {
						outline = glyph.cached_outline;
					} else {
						outline = glyph.o.split(' ');
						glyph.cached_outline = outline;
					}

					var outlineLength = outline.length;
					for (var i = 0; i < outlineLength; ) {

						var action = outline[i++];

						switch(action) {
							case 'm':
								ctx.moveTo(outline[i++], outline[i++]);
								break;
							case 'l':
								ctx.lineTo(outline[i++], outline[i++]);
								break;

							case 'q':
								var cpx = outline[i++];
								var cpy = outline[i++];
								ctx.quadraticCurveTo(outline[i++], outline[i++], cpx, cpy);
								break;

							case 'b':
								var x = outline[i++];
								var y = outline[i++];
								ctx.bezierCurveTo(outline[i++], outline[i++], outline[i++], outline[i++], x, y);
								break;
						}
					}					
				}
				if (glyph.ha) {
					var letterSpacingPoints = 
						style.letterSpacing && style.letterSpacing != 'normal' ? 
							this.pointsFromPixels(face, style, style.letterSpacing) : 
							0;

					ctx.translate(glyph.ha + letterSpacingPoints, 0);
				}
			},

			_renderWord: function(face, style, text) {
				var surface = this.initializeSurface(face, style, text);
				var ctx = surface.context;
				var canvas = surface.canvas;
				ctx.beginPath();
				ctx.save();

				var chars = text.split('');
				var charsLength = chars.length;
				for (var i = 0; i < charsLength; i++) {
					this.renderGlyph(ctx, face, chars[i], style);
				}

				ctx.fill();

				if (style.textDecoration == 'underline') {

					ctx.beginPath();
					ctx.moveTo(0, face.underlinePosition);
					ctx.restore();
					ctx.lineTo(0, face.underlinePosition);
					ctx.strokeStyle = style.color;
					ctx.lineWidth = face.underlineThickness;
					ctx.stroke();
				}

				return { element: ctx.canvas, width: Math.floor(canvas.width) };
			
			}
		},

		vml: {

			_initializeSurface: function(face, style, text) {

				var shape = document.createElement('v:shape');

				var extents = this.getTextExtents(face, style, text);
				
				shape.style.width = shape.style.height = style.fontSize + 'px'; 
				shape.style.marginLeft = '-1px'; // this seems suspect...

				if (extents.x > extents.ha) {
					shape.style.marginRight = this.pixelsFromPoints(face, style, extents.x - extents.ha, 'horizontal') + 'px';
				}

				this.applyElementVerticalMetrics(face, style, shape);

				var resolutionScale = face.resolution * 100 / 72;
				shape.coordsize = (resolutionScale / style.fontStretchPercent) + "," + resolutionScale;
				
				shape.coordorigin = '0,' + face.ascender;
				shape.style.flip = 'y';

				shape.fillColor = style.color;
				shape.stroked = false;

				shape.path = 'hh m 0,' + face.ascender + ' l 0,' + face.descender + ' ';

				return shape;
			},

			_renderGlyph: function(shape, face, char, offsetX, style, vmlSegments) {

				var glyph = face.glyphs[char];

				if (!glyph) {
					this.log("glyph not defined: " + char);
					this.renderGlyph(shape, face, this.fallbackCharacter, offsetX, style);
					return;
				}
				
				vmlSegments.push('m');

				if (glyph.o) {
					
					var outline, outlineLength;
					
					if (glyph.cached_outline) {
						outline = glyph.cached_outline;
						outlineLength = outline.length;
					} else {
						outline = glyph.o.split(' ');
						outlineLength = outline.length;

						for (var i = 0; i < outlineLength;) {

							switch(outline[i++]) {
								case 'q':
									outline[i] = Math.round(outline[i++]);
									outline[i] = Math.round(outline[i++]);
								case 'm':
								case 'l':
									outline[i] = Math.round(outline[i++]);
									outline[i] = Math.round(outline[i++]);
									break;
							} 
						}	

						glyph.cached_outline = outline;
					}

					var prevX, prevY;
					
					for (var i = 0; i < outlineLength;) {

						var action = outline[i++];

						var x = Math.round(outline[i++]) + offsetX;
						var y = Math.round(outline[i++]);
	
						switch(action) {
							case 'm':
								vmlSegments.push('xm ', x, ',', y);
								break;
	
							case 'l':
								vmlSegments.push('l ', x, ',', y);
								break;

							case 'q':
								var cpx = outline[i++] + offsetX;
								var cpy = outline[i++];

								var cp1x = Math.round(prevX + 2.0 / 3.0 * (cpx - prevX));
								var cp1y = Math.round(prevY + 2.0 / 3.0 * (cpy - prevY));

								var cp2x = Math.round(cp1x + (x - prevX) / 3.0);
								var cp2y = Math.round(cp1y + (y - prevY) / 3.0);
								
								vmlSegments.push('c ', cp1x, ',', cp1y, ',', cp2x, ',', cp2y, ',', x, ',', y);
								break;

							case 'b':
								var cp1x = Math.round(outline[i++]) + offsetX;
								var cp1y = outline[i++];

								var cp2x = Math.round(outline[i++]) + offsetX;
								var cp2y = outline[i++];

								vmlSegments.push('c ', cp1x, ',', cp1y, ',', cp2x, ',', cp2y, ',', x, ',', y);
								break;
						}

						prevX = x;
						prevY = y;
					}					
				}

				vmlSegments.push('x e');
				return vmlSegments;
			},

			_renderWord: function(face, style, text) {
				var offsetX = 0;
				var shape = this.initializeSurface(face, style, text);
		
				var letterSpacingPoints = 
					style.letterSpacing && style.letterSpacing != 'normal' ? 
						this.pointsFromPixels(face, style, style.letterSpacing) : 
						0;

				letterSpacingPoints = Math.round(letterSpacingPoints);
				var chars = text.split('');
				var vmlSegments = [];
				for (var i = 0; i < chars.length; i++) {
					var char = chars[i];
					vmlSegments = this.renderGlyph(shape, face, char, offsetX, style, vmlSegments);
					offsetX += face.glyphs[char].ha + letterSpacingPoints ;	
				}

				if (style.textDecoration == 'underline') {
					var posY = face.underlinePosition - (face.underlineThickness / 2);
					vmlSegments.push('xm ', 0, ',', posY);
					vmlSegments.push('l ', offsetX, ',', posY);
					vmlSegments.push('l ', offsetX, ',', posY + face.underlineThickness);
					vmlSegments.push('l ', 0, ',', posY + face.underlineThickness);
					vmlSegments.push('l ', 0, ',', posY);
					vmlSegments.push('x e');
				}

				// make sure to preserve trailing whitespace
				shape.path += vmlSegments.join('') + 'm ' + offsetX + ' 0 l ' + offsetX + ' ' + face.ascender;
				
				return {
					element: shape,
					width: Math.floor(this.pixelsFromPoints(face, style, offsetX, 'horizontal'))
				};
			}

		}

	},

	setVectorBackend: function(backend) {

		this.vectorBackend = backend;
		var backendFunctions = ['renderWord', 'initializeSurface', 'renderGlyph'];

		for (var i = 0; i < backendFunctions.length; i++) {
			var backendFunction = backendFunctions[i];
			this[backendFunction] = this.vectorBackends[backend]['_' + backendFunction];
		}
	},
	
	initialize: function() {

		// quit if this function has already been called
		if (arguments.callee.done) return; 
		
		// flag this function so we don't do the same thing twice
		arguments.callee.done = true;

		// kill the timer
		if (window._typefaceTimer) clearInterval(_typefaceTimer);

		this.renderDocument( function(e) { e.style.visibility = 'visible' } );

	}
	
};

// IE won't accept real selectors...
var typefaceSelectors = ['.typeface-js', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'];

if (document.createStyleSheet) { 

	var styleSheet = document.createStyleSheet();
	for (var i = 0; i < typefaceSelectors.length; i++) {
		var selector = typefaceSelectors[i];
		styleSheet.addRule(selector, 'visibility: hidden');
	}

	styleSheet.addRule(
		'.typeface-js-selected-text', 
		'-ms-filter: \
			"Chroma(color=black) \
			progid:DXImageTransform.Microsoft.MaskFilter(Color=white) \
			progid:DXImageTransform.Microsoft.MaskFilter(Color=blue) \
			alpha(opacity=30)" !important; \
		color: black; \
		font-family: Modern; \
		position: absolute; \
		white-space: pre; \
		filter: alpha(opacity=0) !important;'
	);

	styleSheet.addRule(
		'.typeface-js-vector-container',
		'position: relative'
	);

} else if (document.styleSheets) {

	if (!document.styleSheets.length) { (function() {
		// create a stylesheet if we need to
		var styleSheet = document.createElement('style');
		styleSheet.type = 'text/css';
		document.getElementsByTagName('head')[0].appendChild(styleSheet);
	})() }

	var styleSheet = document.styleSheets[0];
	document.styleSheets[0].insertRule(typefaceSelectors.join(',') + ' { visibility: hidden; }', styleSheet.cssRules.length); 

	document.styleSheets[0].insertRule(
		'.typeface-js-selected-text { \
			color: rgba(128, 128, 128, 0); \
			opacity: 0.30; \
			position: absolute; \
			font-family: Arial, sans-serif; \
			white-space: pre \
		}', 
		styleSheet.cssRules.length
	);

	try { 
		// set selection style for Mozilla / Firefox
		document.styleSheets[0].insertRule(
			'.typeface-js-selected-text::-moz-selection { background: blue; }', 
			styleSheet.cssRules.length
		); 

	} catch(e) {};

	try { 
		// set styles for browsers with CSS3 selectors (Safari, Chrome)
		document.styleSheets[0].insertRule(
			'.typeface-js-selected-text::selection { background: blue; }', 
			styleSheet.cssRules.length
		); 

	} catch(e) {};

	// most unfortunately, sniff for WebKit's quirky selection behavior
	if (/WebKit/i.test(navigator.userAgent)) {
		document.styleSheets[0].insertRule(
			'.typeface-js-vector-container { position: relative }',
			styleSheet.cssRules.length
		);
	}

}

var backend = !!(window.attachEvent && !window.opera) ? 'vml' : window.CanvasRenderingContext2D || document.createElement('canvas').getContext ? 'canvas' : null;

if (backend == 'vml') {

	document.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML");

	var styleSheet = document.createStyleSheet();
	styleSheet.addRule('v\\:shape', "display: inline-block;");
}

_typeface_js.setVectorBackend(backend);
window._typeface_js = _typeface_js;
	
if (/WebKit/i.test(navigator.userAgent)) {

	var _typefaceTimer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			_typeface_js.initialize(); 
		}
	}, 10);
}

if (document.addEventListener) {
	window.addEventListener('DOMContentLoaded', function() { _typeface_js.initialize() }, false);
} 

/*@cc_on @*/
/*@if (@_win32)

document.write("<script id=__ie_onload_typeface defer src=//:><\/script>");
var script = document.getElementById("__ie_onload_typeface");
script.onreadystatechange = function() {
	if (this.readyState == "complete") {
		_typeface_js.initialize(); 
	}
};

/*@end @*/

try { console.log('initializing typeface.js') } catch(e) {};

})();


if (_typeface_js && _typeface_js.loadFace) _typeface_js.loadFace({"glyphs":{"S":{"x_min":61.609375,"x_max":614.53125,"ha":674,"o":"m 63 118 b 325 -12 115 41 213 -12 b 614 240 485 -12 614 98 b 345 501 614 370 499 480 b 122 714 218 512 122 607 b 357 910 122 823 235 910 b 558 819 440 910 513 875 l 606 857 b 357 964 546 925 463 964 b 61 708 193 964 61 854 b 338 444 61 573 178 459 l 342 444 b 552 234 461 430 552 341 b 328 45 552 127 447 45 b 110 155 231 45 154 88 l 63 118 "},"/":{"x_min":62.5,"x_max":475,"ha":525,"o":"m 475 960 l 412 960 l 62 0 l 126 0 l 475 960 "},"K":{"x_min":61.109375,"x_max":752.78125,"ha":810,"o":"m 61 960 l 62 0 l 120 0 l 119 347 l 250 498 l 677 0 l 752 0 l 287 543 l 645 960 l 566 960 l 119 437 l 119 960 l 61 960 "},"7":{"x_min":62.5,"x_max":577.78125,"ha":615,"o":"m 62 0 l 131 0 l 577 960 l 91 960 l 91 901 l 480 901 l 62 0 "},"d":{"x_min":70.828125,"x_max":677.78125,"ha":742,"o":"m 609 571 l 609 133 b 406 47 609 90 519 53 l 404 47 b 127 350 250 53 127 187 b 404 644 127 508 250 640 b 609 571 513 644 598 611 m 609 4 l 677 4 b 668 133 668 12 668 133 l 668 960 l 609 960 l 609 649 b 404 703 558 685 487 703 l 406 703 l 404 703 b 70 350 220 701 70 544 b 404 -9 70 151 220 -5 b 609 44 487 -5 562 12 l 609 4 "},",":{"x_min":52.78125,"x_max":175,"ha":240,"o":"m 108 0 l 52 -87 l 59 -96 l 175 0 l 173 88 l 106 88 l 108 0 "},"Y":{"x_min":48.609375,"x_max":894.453125,"ha":946,"o":"m 816 960 l 469 490 l 127 960 l 48 960 l 441 434 l 443 0 l 502 0 l 501 434 l 894 960 l 816 960 "},"E":{"x_min":61.109375,"x_max":616.671875,"ha":674,"o":"m 543 540 l 119 540 l 119 904 l 615 904 l 615 960 l 61 960 l 62 0 l 616 0 l 615 58 l 119 58 l 119 482 l 543 482 l 543 540 "},"y":{"x_min":73.609375,"x_max":670.828125,"ha":743,"o":"m 73 -270 b 123 -277 90 -275 106 -277 b 340 -126 209 -277 295 -223 l 343 -113 l 404 48 l 670 703 l 608 703 l 377 116 l 143 703 l 80 703 l 348 44 l 293 -93 b 126 -220 259 -175 191 -220 b 94 -219 115 -220 104 -219 l 91 -219 b 80 -211 87 -215 83 -215 l 73 -270 "},"\"":{"x_min":50,"x_max":230.5625,"ha":301,"o":"m 65 769 l 73 761 l 126 872 l 116 959 l 50 959 l 65 769 m 169 769 l 177 761 l 230 872 l 220 959 l 154 959 l 169 769 "},"g":{"x_min":47.4375,"x_max":723.125,"ha":765,"o":"m 293 161 b 268 159 287 161 277 159 b 219 204 245 159 219 165 b 265 241 219 233 244 241 b 379 225 298 241 333 225 b 655 462 531 225 655 330 b 578 629 655 530 627 587 l 666 629 l 723 687 l 483 687 b 379 703 451 696 419 703 b 102 462 225 703 102 594 b 205 276 102 389 141 322 b 176 201 189 261 176 233 b 191 136 176 176 182 152 b 47 -55 105 100 47 26 b 324 -277 47 -176 173 -277 b 603 -55 480 -277 603 -176 b 324 163 603 66 480 163 b 293 161 315 163 302 163 m 102 -55 b 324 111 102 33 205 111 b 549 -55 451 111 549 33 b 324 -222 549 -145 451 -222 b 102 -55 205 -222 102 -145 m 159 462 b 379 647 159 566 258 647 b 600 462 503 647 600 566 b 379 280 600 362 503 280 b 159 462 258 280 159 362 "},"ƒ":{"x_min":51.390625,"x_max":423.609375,"ha":456,"o":"m 423 962 b 356 965 401 965 380 965 b 154 732 248 965 161 858 l 154 715 b 155 689 154 715 155 698 b 154 679 155 683 155 679 l 51 679 l 51 619 l 156 619 b 158 0 156 409 158 0 l 212 0 l 211 619 l 394 619 l 394 679 l 211 679 l 211 715 b 356 908 211 819 275 905 b 406 905 373 908 394 908 l 423 962 "},"e":{"x_min":40.890625,"x_max":590.171875,"ha":633,"o":"m 332 44 b 100 319 208 45 108 165 l 590 319 l 590 352 b 316 704 590 551 470 704 b 40 345 165 704 40 543 l 40 319 b 332 -12 51 134 178 -12 b 368 -11 344 -12 357 -12 l 369 -11 b 536 44 432 0 488 18 l 512 95 b 332 44 466 73 391 44 m 100 376 b 316 644 113 526 205 644 b 534 376 430 644 523 526 l 100 376 "},"J":{"x_min":47.21875,"x_max":338.890625,"ha":424,"o":"m 338 960 l 279 960 l 279 230 b 159 45 279 123 225 45 b 84 86 133 45 105 62 l 47 45 b 159 -12 77 11 116 -12 b 338 233 255 -12 338 100 l 338 960 "},"|":{"x_min":77.78125,"x_max":113.890625,"ha":182,"o":"m 77 1 l 113 1 l 113 996 l 77 996 l 77 1 "},"^":{"x_min":43.0625,"x_max":722.21875,"ha":765,"o":"m 43 622 l 83 579 l 384 877 l 679 579 l 722 620 l 384 959 l 43 622 "},"q":{"x_min":52.78125,"x_max":631.9375,"ha":713,"o":"m 576 652 b 373 702 530 683 456 702 b 52 358 198 702 52 547 b 373 14 52 169 198 18 l 377 14 l 373 14 b 576 68 456 14 526 33 l 576 -270 l 631 -270 l 631 685 l 576 685 l 576 652 m 576 143 b 373 69 566 103 480 69 b 108 358 227 74 108 198 b 373 647 108 518 227 647 l 377 647 b 576 566 486 647 576 610 l 576 143 "},"b":{"x_min":72.21875,"x_max":681.953125,"ha":726,"o":"m 138 569 b 348 644 150 611 241 644 b 623 345 498 644 623 505 b 348 44 623 181 498 46 b 138 130 233 46 138 85 l 138 569 m 138 41 b 348 -14 187 10 262 -10 b 681 345 533 -10 681 148 b 348 703 681 539 533 703 b 143 649 266 703 191 683 l 143 960 l 84 960 l 84 130 b 72 0 84 130 79 10 l 140 0 l 138 41 "},"D":{"x_min":51.390625,"x_max":740.28125,"ha":799,"o":"m 405 902 b 681 482 559 900 681 710 b 408 59 681 252 559 64 l 408 57 l 109 57 l 109 902 l 405 902 m 52 -1 l 409 -1 l 408 1 b 740 482 594 5 740 218 b 405 961 740 745 591 958 l 109 961 l 51 961 l 52 -1 "},"z":{"x_min":62.5,"x_max":573.609375,"ha":628,"o":"m 63 0 l 573 0 l 572 59 l 138 59 l 572 634 l 572 694 l 66 694 l 66 634 l 495 634 l 62 59 l 63 0 "},"w":{"x_min":26.390625,"x_max":937.5,"ha":979,"o":"m 937 694 l 870 694 l 623 80 l 379 694 l 312 694 l 448 355 l 337 80 l 88 694 l 26 694 l 305 4 l 369 0 l 483 275 l 591 4 l 655 0 l 937 694 "},"$":{"x_min":48.609375,"x_max":601.53125,"ha":647,"o":"m 293 508 b 109 712 186 532 109 616 b 293 905 109 807 193 886 l 293 508 m 351 441 b 539 236 459 420 539 334 b 351 48 539 137 452 62 l 351 441 m 293 1023 l 293 961 b 48 707 151 940 48 839 b 293 448 48 580 150 475 l 293 45 b 97 155 208 45 134 98 l 50 118 b 277 -11 97 50 180 -1 b 293 -12 283 -11 287 -11 l 293 -91 l 351 -91 l 351 -9 b 601 240 491 6 601 109 b 351 498 601 365 494 470 l 351 910 b 545 819 430 910 501 872 l 593 857 b 351 964 534 922 452 964 l 351 1023 l 293 1023 "},"™":{"x_min":41.671875,"x_max":501.390625,"ha":579,"o":"m 169 908 l 250 908 l 250 949 l 41 949 l 41 908 l 125 908 l 125 666 l 169 666 l 169 908 m 466 949 b 390 817 441 905 415 864 l 312 949 l 276 949 l 276 666 l 319 666 l 319 858 l 377 758 l 400 758 b 459 858 415 787 438 825 l 459 666 l 501 666 l 501 949 l 466 949 "},"\\":{"x_min":61.109375,"x_max":476.390625,"ha":515,"o":"m 412 0 l 476 0 l 123 960 l 61 960 l 412 0 "},"~":{"x_min":44.4375,"x_max":438.890625,"ha":482,"o":"m 229 423 b 315 403 252 410 281 403 b 438 440 363 403 408 417 l 419 482 b 311 451 395 462 352 451 b 172 479 258 451 227 479 b 44 444 125 479 76 466 l 68 401 b 173 431 91 420 129 431 b 229 423 193 431 212 428 "},"-":{"x_min":56.9375,"x_max":536.109375,"ha":585,"o":"m 536 379 l 536 437 l 56 437 l 56 379 l 536 379 "},"Q":{"x_min":51.390625,"x_max":859.71875,"ha":924,"o":"m 691 806 b 804 511 762 733 804 627 b 506 112 804 312 670 145 b 386 217 498 174 450 219 l 386 167 b 451 109 422 169 448 142 b 104 511 259 115 104 292 b 454 915 104 736 263 915 b 691 806 548 915 629 873 m 730 184 b 859 511 808 265 859 383 b 454 965 859 766 672 965 b 51 511 238 965 51 769 b 454 58 51 259 238 63 b 570 -93 465 -25 513 -93 b 652 -40 602 -93 629 -72 l 613 -7 b 570 -39 605 -25 590 -39 b 506 63 540 -39 513 5 b 730 184 593 76 670 117 "},"M":{"x_min":47.21875,"x_max":795.828125,"ha":865,"o":"m 423 423 l 105 960 l 47 960 l 48 0 l 106 0 l 105 847 l 404 340 l 440 340 l 734 847 l 736 0 l 795 0 l 794 960 l 734 960 l 423 423 "},"C":{"x_min":40.28125,"x_max":773.609375,"ha":819,"o":"m 773 832 b 476 965 698 914 590 965 b 40 479 233 965 40 737 b 476 -12 40 209 247 -12 b 770 120 590 -12 693 38 l 731 159 b 476 47 662 90 575 47 b 100 479 259 47 100 245 b 476 907 100 716 270 907 b 734 793 575 907 666 864 l 734 789 l 773 832 "},"[":{"x_min":58.328125,"x_max":231.9375,"ha":292,"o":"m 206 65 l 206 419 b 147 464 198 447 175 464 l 147 522 b 206 568 175 522 198 544 l 206 897 b 230 900 206 900 216 900 l 230 960 b 147 904 190 960 152 937 l 147 900 b 147 897 147 897 147 897 l 147 584 b 86 522 147 550 120 522 l 58 522 l 58 464 l 86 464 b 147 401 120 464 147 437 l 147 65 b 231 0 147 26 198 0 l 230 58 b 206 65 216 58 206 62 "},"L":{"x_min":61.109375,"x_max":588.890625,"ha":629,"o":"m 119 960 l 61 960 l 62 0 l 588 0 l 587 58 l 119 58 l 119 960 "},"!":{"x_min":77.78125,"x_max":143.0625,"ha":244,"o":"m 143 20 b 111 52 141 38 130 52 b 77 20 93 52 77 38 b 111 -12 77 2 93 -12 b 143 20 129 -12 143 2 m 86 137 l 136 137 l 136 960 l 86 960 l 86 137 "}," ":{"x_min":0,"x_max":0,"ha":357},"{":{"x_min":58.328125,"x_max":231.9375,"ha":310,"o":"m 206 65 l 206 419 b 147 464 198 447 175 464 l 147 522 b 206 568 175 522 198 544 l 206 897 b 230 900 206 900 216 900 l 230 960 b 147 904 190 960 152 937 l 147 900 b 147 897 147 897 147 897 l 147 584 b 86 522 147 550 120 522 l 58 522 l 58 464 l 86 464 b 147 401 120 464 147 437 l 147 65 b 231 0 147 26 198 0 l 230 58 b 206 65 216 58 206 62 "},"X":{"x_min":54.171875,"x_max":697.21875,"ha":751,"o":"m 338 491 l 54 0 l 119 0 l 372 433 l 629 0 l 697 0 l 415 482 l 695 960 l 627 960 l 380 540 l 130 960 l 65 960 l 338 491 "},"P":{"x_min":73.609375,"x_max":620.828125,"ha":667,"o":"m 350 480 b 620 723 500 480 620 587 b 350 960 620 853 500 960 l 73 960 l 75 0 l 133 0 l 131 480 l 350 480 m 345 904 l 350 904 b 561 723 465 904 561 822 b 350 539 561 618 465 539 l 131 539 l 131 904 l 345 904 "},"#":{"x_min":44.4375,"x_max":959.71875,"ha":992,"o":"m 44 307 l 219 307 l 108 0 l 172 0 l 281 307 l 616 307 l 505 0 l 569 0 l 679 307 l 909 307 l 959 368 l 701 368 l 775 566 l 909 566 l 958 627 l 797 627 l 894 894 l 831 894 l 733 627 l 400 627 l 497 894 l 434 894 l 336 627 l 93 627 l 44 566 l 313 566 l 241 368 l 94 368 l 44 307 m 377 566 l 711 566 l 638 368 l 304 368 l 377 566 "},"_":{"x_min":56.9375,"x_max":641.671875,"ha":713,"o":"m 641 0 l 640 58 l 56 58 l 58 0 l 641 0 "},"+":{"x_min":76.390625,"x_max":555.5625,"ha":628,"o":"m 344 379 l 555 379 l 555 437 l 344 437 l 344 647 l 286 647 l 286 437 l 76 437 l 76 379 l 286 379 l 286 168 l 344 168 l 344 379 "},")":{"x_min":80.5625,"x_max":280.5625,"ha":342,"o":"m 98 896 b 213 400 168 810 213 619 b 80 -118 213 159 159 -43 l 115 -177 b 280 400 211 -82 280 139 b 125 965 280 649 215 867 l 98 896 "},"'":{"x_min":30.5625,"x_max":141.671875,"ha":168,"o":"m 75 865 l 30 772 l 38 764 l 141 872 l 131 960 l 65 953 l 75 865 "},"}":{"x_min":38.890625,"x_max":211.109375,"ha":261,"o":"m 66 65 b 38 58 62 62 52 58 l 40 0 b 125 65 79 0 125 27 l 125 401 b 181 464 125 437 148 464 l 211 464 l 211 522 l 181 522 b 125 584 148 522 125 550 l 125 897 b 125 900 125 897 125 897 l 122 904 b 38 960 116 936 86 960 l 38 900 b 66 897 52 900 62 900 l 66 568 b 125 522 72 544 94 522 l 122 464 b 66 419 94 464 72 447 l 66 65 "},"a":{"x_min":55.5625,"x_max":513.890625,"ha":564,"o":"m 448 0 b 513 0 448 0 513 0 b 502 217 505 6 502 109 b 505 452 502 332 505 452 l 505 466 b 300 704 498 597 408 701 l 298 704 b 123 680 234 704 176 696 l 137 625 b 298 645 184 638 240 645 l 300 645 b 447 438 387 643 447 551 l 447 407 l 288 407 b 55 196 162 407 55 320 b 279 -13 55 80 156 -13 b 447 55 345 -13 404 12 l 448 0 m 447 196 b 279 45 447 112 370 45 b 115 196 187 45 115 112 b 288 350 115 288 193 350 l 447 350 l 447 196 "},"T":{"x_min":58.328125,"x_max":743.0625,"ha":799,"o":"m 743 904 l 743 960 l 430 960 l 58 960 l 58 904 l 372 904 l 373 0 l 431 0 l 430 904 l 743 904 "},"=":{"x_min":95.828125,"x_max":561.109375,"ha":611,"o":"m 95 547 l 561 547 l 561 608 l 95 608 l 95 547 m 95 277 l 561 277 l 561 339 l 95 339 l 95 277 "},"N":{"x_min":65.28125,"x_max":679.171875,"ha":746,"o":"m 65 960 l 66 0 l 123 0 l 122 847 l 620 0 l 679 0 l 677 960 l 619 960 l 619 116 l 122 960 l 65 960 "},"2":{"x_min":77.78125,"x_max":602.78125,"ha":660,"o":"m 519 468 b 601 668 569 519 601 590 b 298 965 601 832 465 965 b 87 880 216 965 143 930 l 129 839 b 298 907 173 880 233 907 b 543 668 434 907 543 803 b 481 509 543 607 519 551 l 77 56 l 79 0 l 602 0 l 601 56 l 155 56 l 519 468 "},"j":{"x_min":72.21875,"x_max":347.21875,"ha":492,"o":"m 272 896 b 311 858 272 875 287 858 b 347 896 329 858 347 875 b 311 933 347 918 329 933 b 272 896 287 933 272 918 m 72 -269 b 138 -275 91 -270 115 -275 l 141 -275 b 341 -43 248 -270 333 -168 l 341 696 l 283 696 l 283 -29 b 141 -215 283 -130 220 -215 l 138 -219 b 77 -215 119 -219 98 -215 l 72 -269 "},"Z":{"x_min":48.609375,"x_max":712.5,"ha":761,"o":"m 712 960 l 663 960 l 87 960 l 87 901 l 609 901 l 48 0 l 88 0 l 665 0 l 663 58 l 152 58 l 712 960 "},"u":{"x_min":65.28125,"x_max":559.71875,"ha":625,"o":"m 494 0 b 559 0 494 0 559 0 b 551 67 555 3 551 33 l 551 695 l 493 695 l 493 222 b 311 47 481 126 404 47 b 125 243 211 47 127 136 l 122 250 l 122 692 l 65 692 l 65 250 l 69 243 b 301 -11 72 101 172 -11 b 493 97 380 -11 451 33 l 493 64 l 494 0 "},"1":{"x_min":50,"x_max":284.71875,"ha":365,"o":"m 91 775 l 225 885 l 226 0 l 284 0 l 283 960 l 225 960 l 50 815 l 91 775 "},"k":{"x_min":78.71875,"x_max":578.71875,"ha":611,"o":"m 142 960 l 84 960 l 84 62 b 78 0 84 26 80 2 b 144 0 78 0 144 0 l 142 387 l 241 469 l 510 0 l 578 0 l 285 511 l 496 686 l 407 686 l 142 464 l 142 960 "},"€":{"x_min":55.90625,"x_max":987.859375,"ha":1035,"o":"m 944 188 b 648 47 868 100 769 47 b 267 362 467 47 310 182 l 746 362 l 746 422 l 253 422 b 250 475 253 439 250 458 b 257 554 250 504 253 530 l 746 554 l 746 612 l 269 612 b 648 905 322 784 473 905 b 944 768 769 905 868 853 l 987 811 b 648 965 901 903 783 965 b 210 612 444 965 267 816 l 55 612 l 55 554 l 197 554 b 190 475 194 530 190 504 b 194 422 190 458 194 439 l 55 422 l 55 362 l 204 362 b 648 -12 253 148 430 -12 b 987 141 783 -12 901 50 l 944 188 "},"<":{"x_min":38.890625,"x_max":419.4375,"ha":458,"o":"m 38 343 l 377 6 l 419 49 l 120 343 l 419 645 l 376 685 l 38 343 "},"t":{"x_min":70.828125,"x_max":419.4375,"ha":472,"o":"m 173 960 l 173 684 l 70 684 l 70 625 l 176 625 b 177 0 176 412 177 0 l 233 0 l 231 625 l 419 625 l 419 684 l 231 684 l 231 960 l 173 960 "},"W":{"x_min":63.890625,"x_max":1198.609375,"ha":1271,"o":"m 1198 960 l 1136 960 l 813 86 l 630 577 l 490 960 l 429 960 l 600 495 l 450 86 l 125 960 l 63 960 l 419 0 l 481 0 l 630 409 l 783 0 l 847 0 l 1198 960 "},"v":{"x_min":33.328125,"x_max":658.328125,"ha":694,"o":"m 313 0 l 376 0 l 658 694 l 591 694 l 344 80 l 95 694 l 33 694 l 313 0 "},">":{"x_min":52.78125,"x_max":433.328125,"ha":467,"o":"m 95 686 l 52 645 l 351 343 l 52 49 l 94 6 l 433 343 l 95 686 "},"s":{"x_min":70.609375,"x_max":520.625,"ha":579,"o":"m 519 615 b 302 701 470 665 388 701 b 70 526 177 701 70 632 b 291 323 70 432 163 341 b 462 172 390 308 462 241 b 290 45 462 97 385 45 b 116 113 220 45 155 75 l 72 79 b 294 -11 119 22 208 -11 b 520 172 416 -11 520 62 b 302 377 520 270 428 358 b 130 523 202 393 130 457 b 297 643 130 594 202 643 b 472 580 365 643 430 621 l 519 615 "},"B":{"x_min":73.609375,"x_max":654.171875,"ha":711,"o":"m 380 1 b 654 271 534 4 654 126 b 497 508 654 374 593 468 b 634 724 579 550 634 629 b 380 961 634 849 520 958 l 131 961 l 73 961 l 75 -1 l 356 -1 l 380 1 m 380 905 b 576 724 490 900 576 819 b 380 540 576 622 490 543 l 131 540 l 131 905 l 355 905 l 380 905 m 355 57 l 131 57 l 131 482 l 380 482 b 595 271 500 475 595 381 b 380 57 595 157 500 62 l 355 57 "},"?":{"x_min":51.390625,"x_max":513.890625,"ha":569,"o":"m 322 0 l 190 445 l 263 445 b 513 703 402 445 513 565 b 259 965 513 847 400 965 b 51 848 173 965 95 918 l 91 808 b 259 908 126 866 187 908 b 456 703 368 908 456 816 b 263 502 456 594 372 505 l 133 502 l 133 445 l 261 0 l 322 0 m 286 -133 b 323 -173 286 -155 304 -173 b 359 -133 345 -173 359 -155 b 323 -97 359 -111 345 -97 b 286 -133 304 -97 286 -111 "},"H":{"x_min":68.0625,"x_max":715.28125,"ha":775,"o":"m 655 482 l 656 0 l 715 0 l 713 960 l 655 960 l 655 540 l 126 540 l 126 960 l 68 960 l 69 0 l 127 0 l 126 482 l 655 482 "},"c":{"x_min":31.9375,"x_max":602.78125,"ha":664,"o":"m 602 594 b 363 703 544 658 459 703 b 31 344 183 703 31 541 b 363 -12 31 148 183 -12 b 600 94 455 -12 537 29 l 558 134 b 363 45 508 79 438 45 b 90 344 212 45 90 180 b 363 644 90 511 212 644 b 561 551 443 644 513 607 l 602 594 "},"&":{"x_min":56.5625,"x_max":763.515625,"ha":829,"o":"m 344 0 b 605 123 444 -1 532 41 l 627 148 l 648 123 b 763 9 689 75 716 40 l 763 80 b 671 186 713 122 705 136 l 670 190 l 673 218 b 757 404 705 263 735 333 l 688 419 b 644 301 678 375 662 336 l 624 262 l 395 548 l 426 565 b 599 782 546 632 599 701 b 396 965 599 882 516 965 b 180 772 264 965 180 869 b 285 575 180 723 192 675 l 310 546 l 274 529 b 56 261 127 461 56 365 b 344 0 56 120 177 0 m 531 779 b 391 593 531 705 501 657 l 370 582 l 301 662 b 246 784 266 701 248 743 b 389 923 246 862 312 923 b 531 779 474 923 531 859 m 334 514 l 584 200 l 573 183 b 342 50 521 105 426 48 b 130 268 216 50 130 165 b 312 500 130 351 181 423 l 334 514 "},"-":{"x_min":56.9375,"x_max":536.109375,"ha":579,"o":"m 536 379 l 536 437 l 56 437 l 56 379 l 536 379 "},"I":{"x_min":68.0625,"x_max":127.78125,"ha":192,"o":"m 126 960 l 68 960 l 69 0 l 127 0 l 126 960 "},"G":{"x_min":34.125,"x_max":771.625,"ha":839,"o":"m 771 122 l 771 472 l 448 472 l 448 416 l 713 416 l 713 141 b 473 43 650 81 564 43 b 92 475 263 43 92 237 b 473 905 92 715 263 905 b 732 791 571 905 664 862 l 771 832 b 473 965 692 915 588 965 b 34 475 231 965 34 744 b 473 -12 34 207 231 -12 b 771 118 588 -12 692 36 l 771 122 "},"(":{"x_min":63.890625,"x_max":263.890625,"ha":361,"o":"m 219 965 b 63 400 129 867 63 649 b 229 -177 63 139 133 -82 l 263 -118 b 130 400 184 -43 130 159 b 245 896 130 619 176 810 l 219 965 "},"`":{"x_min":43.0625,"x_max":226.390625,"ha":283,"o":"m 194 768 l 226 768 l 134 889 l 43 889 l 194 768 "},"U":{"x_min":59.71875,"x_max":765.28125,"ha":831,"o":"m 122 960 l 59 960 l 59 240 b 418 -12 69 102 225 -12 b 765 240 604 -12 759 102 l 765 960 l 706 960 l 706 240 b 418 47 700 133 570 47 b 122 240 258 47 129 133 l 122 960 "},"F":{"x_min":66.671875,"x_max":620.828125,"ha":676,"o":"m 548 540 l 125 540 l 125 905 l 620 905 l 620 960 l 66 960 l 68 0 l 126 0 l 125 482 l 548 482 l 548 540 "},"r":{"x_min":55.5625,"x_max":345.828125,"ha":388,"o":"m 345 698 b 312 703 334 703 322 703 b 120 593 233 703 165 662 l 120 696 b 55 696 120 696 55 696 b 62 628 59 693 62 658 l 63 0 l 122 0 l 120 469 b 305 644 134 569 212 644 b 331 641 315 644 322 644 l 345 698 "},":":{"x_min":83.328125,"x_max":173.609375,"ha":253,"o":"m 84 0 l 173 0 l 172 88 l 83 88 l 84 0 m 83 605 l 172 605 l 172 694 l 83 694 l 83 605 "},"x":{"x_min":45.828125,"x_max":558.328125,"ha":617,"o":"m 263 359 l 45 0 l 115 0 l 298 300 l 488 0 l 558 0 l 341 348 l 556 694 l 484 694 l 302 408 l 125 694 l 51 694 l 263 359 "},"*":{"x_min":90.28125,"x_max":568.0625,"ha":654,"o":"m 356 708 l 477 589 l 518 629 l 398 750 l 568 750 l 568 808 l 398 808 l 518 928 l 476 968 l 356 848 l 356 1018 l 298 1018 l 298 848 l 179 968 l 138 926 l 258 807 l 90 807 l 90 750 l 256 750 l 137 629 l 179 589 l 298 707 l 298 539 l 356 539 l 356 708 "},"V":{"x_min":59.71875,"x_max":829.171875,"ha":888,"o":"m 415 0 l 476 0 l 829 960 l 768 960 l 444 86 l 120 960 l 59 960 l 415 0 "},"h":{"x_min":63.890625,"x_max":552.78125,"ha":632,"o":"m 63 962 l 65 0 l 123 0 l 122 472 b 306 647 136 571 216 647 b 494 451 408 647 490 561 l 494 4 l 552 4 l 548 451 b 315 704 545 591 445 704 b 122 596 234 704 166 664 l 122 962 l 63 962 "},"0":{"x_min":58.328125,"x_max":761.109375,"ha":814,"o":"m 116 477 b 411 907 116 715 250 907 b 704 477 575 907 704 715 b 411 45 704 237 575 45 b 116 477 250 45 116 237 m 58 477 b 411 -12 58 208 218 -12 b 761 477 605 -12 761 208 b 411 965 761 747 605 965 b 58 477 218 965 58 747 "},".":{"x_min":58.328125,"x_max":148.609375,"ha":201,"o":"m 59 0 l 148 0 l 147 88 l 58 88 l 59 0 "},"@":{"x_min":66.859375,"x_max":998.796875,"ha":1047,"o":"m 708 256 b 651 369 626 256 651 317 b 654 579 651 469 654 579 l 652 561 b 530 770 648 671 618 767 l 529 770 b 418 754 480 770 458 767 l 411 753 l 426 692 l 433 693 b 529 707 468 706 486 707 b 594 549 586 707 594 631 b 594 568 594 549 594 568 b 594 568 594 568 594 568 l 594 551 l 483 551 b 301 371 383 551 301 475 b 477 190 301 271 380 190 b 594 236 523 190 564 207 b 697 194 615 200 668 196 b 975 575 859 214 975 406 b 554 966 975 822 775 966 b 66 452 261 966 66 743 b 565 0 66 156 272 0 b 991 213 780 0 932 103 l 998 225 l 911 225 l 908 222 b 564 72 852 139 730 72 b 136 461 294 72 136 218 b 550 895 136 708 312 895 b 904 576 761 895 904 749 b 868 395 904 530 889 438 b 708 256 829 316 748 256 m 602 371 b 477 246 602 302 546 246 b 351 371 408 246 351 302 b 483 496 351 444 411 496 l 602 496 l 602 371 "},"f":{"x_min":51.390625,"x_max":423.609375,"ha":456,"o":"m 423 962 b 356 965 401 965 380 965 b 154 732 248 965 161 858 l 154 715 b 155 689 154 715 155 698 b 154 679 155 683 155 679 l 51 679 l 51 619 l 156 619 b 158 0 156 409 158 0 l 212 0 l 211 619 l 394 619 l 394 679 l 211 679 l 211 715 b 356 908 211 819 275 905 b 406 905 373 908 394 908 l 423 962 "},";":{"x_min":37.5,"x_max":172.21875,"ha":235,"o":"m 83 605 l 172 605 l 172 694 l 83 694 l 83 605 m 93 0 l 37 -87 l 44 -96 l 159 0 l 158 88 l 91 88 l 93 0 "},"i":{"x_min":79.171875,"x_max":159.71875,"ha":246,"o":"m 91 0 l 148 0 l 147 694 l 90 694 l 91 0 m 79 903 b 119 865 79 883 97 865 b 159 903 140 865 159 883 b 119 940 159 922 140 940 b 79 903 97 940 79 922 "},"A":{"x_min":44.4375,"x_max":801.390625,"ha":828,"o":"m 273 457 l 420 857 l 569 457 l 273 457 m 44 0 l 105 0 l 252 398 l 590 398 l 740 0 l 801 0 l 445 960 l 397 960 l 44 0 "},"6":{"x_min":74.53125,"x_max":656.59375,"ha":703,"o":"m 656 287 b 357 565 653 450 517 565 b 127 433 260 561 174 511 b 126 475 127 447 126 461 b 144 700 126 555 131 632 b 380 908 164 819 266 908 b 569 809 455 908 526 869 l 627 846 b 378 966 567 923 478 966 b 92 718 235 962 120 855 b 74 491 78 648 74 572 b 80 269 74 420 73 341 l 80 265 b 366 -11 87 109 212 -11 b 656 275 527 -11 656 112 b 656 287 656 279 656 283 m 599 284 b 599 272 599 280 599 276 b 369 44 599 147 495 44 b 137 270 244 44 137 145 b 366 508 137 397 235 508 b 599 284 494 508 595 411 "},"n":{"x_min":47.21875,"x_max":544.4375,"ha":601,"o":"m 112 688 b 47 688 112 688 47 688 b 54 630 50 685 54 660 l 55 0 l 113 0 l 112 471 b 298 646 126 571 205 646 b 484 450 398 646 481 560 l 486 0 l 544 0 l 540 450 b 305 705 536 592 436 705 b 112 595 226 705 156 664 l 112 632 l 112 688 "},"O":{"x_min":40.28125,"x_max":912.5,"ha":958,"o":"m 736 791 b 856 479 811 715 856 604 b 476 47 856 238 693 47 b 100 479 265 47 100 238 b 476 905 100 716 268 905 b 736 791 577 905 670 864 m 779 122 b 912 479 863 211 912 334 b 476 965 912 750 726 965 b 40 479 236 965 40 748 b 476 -12 40 200 243 -12 b 779 122 594 -12 700 36 "},"3":{"x_min":36.109375,"x_max":561.109375,"ha":599,"o":"m 36 83 b 261 -15 87 25 169 -15 b 554 254 423 -15 554 104 b 397 489 554 355 491 444 b 561 712 491 529 561 614 b 265 965 561 853 427 965 b 36 873 173 965 90 932 l 76 832 b 265 908 120 880 188 908 b 498 712 393 908 498 822 b 280 519 498 611 402 526 l 151 519 l 151 461 b 280 461 151 461 275 461 b 495 254 400 450 495 361 b 261 41 495 137 390 41 b 76 123 186 41 118 76 l 36 83 "},"]":{"x_min":38.890625,"x_max":211.109375,"ha":254,"o":"m 66 65 b 38 58 62 62 52 58 l 40 0 b 125 65 79 0 125 27 l 125 401 b 181 464 125 437 148 464 l 211 464 l 211 522 l 181 522 b 125 584 148 522 125 550 l 125 897 b 125 900 125 897 125 897 l 122 904 b 38 960 116 936 86 960 l 38 900 b 66 897 52 900 62 900 l 66 568 b 125 522 72 544 94 522 l 122 464 b 66 419 94 464 72 447 l 66 65 "},"m":{"x_min":50,"x_max":970.828125,"ha":1026,"o":"m 115 694 b 50 694 115 694 50 694 b 56 626 52 691 56 658 l 58 -1 l 116 -1 l 115 468 b 298 642 129 567 206 642 b 484 448 400 642 481 557 l 484 1 l 543 1 l 543 471 b 729 645 556 567 636 645 b 912 450 827 645 909 557 l 912 1 l 970 1 l 968 451 b 734 704 963 593 865 704 b 522 546 655 704 559 658 b 305 701 484 636 402 701 b 115 592 227 701 159 661 l 115 628 l 115 694 "},"9":{"x_min":52.84375,"x_max":637.734375,"ha":679,"o":"m 52 668 b 338 393 57 514 186 393 b 584 519 444 393 533 443 b 584 472 584 502 584 487 b 569 252 584 394 579 320 b 326 50 544 137 450 50 b 140 150 254 50 184 87 l 83 104 b 316 -9 137 37 225 -9 b 620 237 465 -9 593 91 b 637 450 633 304 637 376 b 633 683 637 525 638 608 l 633 687 b 341 966 626 841 502 966 b 52 677 182 966 52 836 b 52 668 52 675 52 671 m 108 671 b 343 907 108 797 211 907 b 575 682 465 907 575 804 b 338 450 575 551 470 450 b 108 671 216 450 115 548 "},"l":{"x_min":90.28125,"x_max":150,"ha":225,"o":"m 91 0 l 150 0 l 148 960 l 90 960 l 91 0 "},"8":{"x_min":44.4375,"x_max":601.390625,"ha":638,"o":"m 44 265 b 320 -12 44 112 169 -12 b 601 265 477 -12 601 112 b 444 518 601 377 540 472 b 570 725 522 558 570 636 b 320 965 570 857 461 965 b 75 725 186 965 75 857 b 200 518 75 636 126 558 b 44 265 109 472 44 377 m 133 725 b 320 907 133 826 218 907 b 511 725 426 907 511 826 b 320 544 511 626 426 544 b 133 725 218 544 133 626 m 102 265 b 320 487 102 387 202 487 b 543 265 444 487 543 387 b 320 45 543 147 444 45 b 102 265 202 45 102 147 "},"p":{"x_min":43.0625,"x_max":655.5625,"ha":703,"o":"m 112 121 l 112 567 b 320 647 112 611 205 647 b 597 350 473 647 597 514 b 320 46 597 183 473 50 b 112 121 215 50 122 80 m 112 693 l 43 693 b 56 567 52 682 56 567 l 56 -270 l 113 -270 l 113 43 b 320 -10 161 11 240 -10 b 655 350 506 -10 655 150 b 320 707 655 546 506 703 b 112 651 236 707 159 682 l 112 693 "},"4":{"x_min":51.75,"x_max":600.359375,"ha":657,"o":"m 404 352 l 405 0 l 464 0 l 462 352 l 600 352 l 600 411 l 462 411 l 462 625 l 404 625 l 404 411 l 119 411 l 421 932 l 371 960 l 54 411 l 51 411 l 51 352 l 404 352 "},"R":{"x_min":59.71875,"x_max":622.21875,"ha":658,"o":"m 120 482 l 547 0 l 622 0 l 197 482 l 334 482 b 606 722 486 482 606 589 b 334 960 606 854 486 960 l 59 960 l 61 0 l 119 0 l 118 482 l 120 482 m 331 905 l 334 905 b 548 722 451 905 548 822 b 334 540 548 619 451 540 l 118 540 l 118 905 l 331 905 "},"o":{"x_min":30.5625,"x_max":679.171875,"ha":713,"o":"m 88 343 b 356 644 88 509 208 644 b 619 343 501 644 619 509 b 356 44 619 179 501 44 b 88 343 208 44 88 179 m 30 343 b 356 -13 30 147 177 -13 b 679 343 534 -13 679 147 b 356 703 679 541 534 703 b 30 343 177 703 30 541 "},"5":{"x_min":68.0625,"x_max":651.390625,"ha":700,"o":"m 126 489 b 343 630 165 573 247 630 b 593 345 481 630 593 505 b 343 58 593 186 481 58 b 138 176 256 58 181 104 l 98 136 b 344 0 152 54 245 0 b 651 345 516 0 651 155 b 343 687 651 534 515 687 b 126 590 256 687 179 650 l 159 901 l 613 901 l 613 960 l 101 960 l 68 489 l 126 489 "}},"cssFontWeight":"normal","ascender":1202,"underlinePosition":-75,"cssFontStyle":"normal","boundingBox":{"yMin":-277.859375,"xMin":26.390625,"yMax":1023.9375,"xMax":1198.609375},"resolution":1000,"original_font_information":{"postscript_name":"CicleFina","version_string":"001.000","vendor_url":"","full_font_name":"CicleFina","font_family_name":"Cicle","copyright":"Llicència gratuïta / Free License (La Tipomatika)","description":"","trademark":"Please refer to the Copyright section for the font trademark attribution notices.","designer":"La Tipomatika (Digital Type Foundry)","designer_url":"","unique_font_identifier":"TPK: Cicle: 2007","license_url":"","license_description":"Llicència gratuïta / Free License (La Tipomatika)","manufacturer_name":"La Tipomatika","font_sub_family_name":"Fina"},"descender":-280,"familyName":"Cicle","lineHeight":1515,"underlineThickness":50});

