/** * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/ * * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License: * http://www.opensource.org/licenses/mit-license.php * */ if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="";_19+="";var _1d=this.getParams();for(var key in _1d){_19+="";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="";}_19+="";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.majorfv.major){return true;}if(this.minorfv.minor){return true;}if(this.rev=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;/* SWFObject v2.2 is released under the MIT License */ var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab -1, Gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1, MobileSafari: /Apple.*Mobile.*Safari/.test(ua) } })(), BrowserFeatures: { XPath: !!document.evaluate, SelectorsAPI: !!document.querySelector, ElementExtensions: (function() { var constructor = window.Element || window.HTMLElement; return !!(constructor && constructor.prototype); })(), SpecificElementExtensions: (function() { if (typeof window.HTMLDivElement !== 'undefined') return true; var div = document.createElement('div'); var form = document.createElement('form'); var isSupported = false; if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) { isSupported = true; } div = form = null; return isSupported; })() }, ScriptFragment: ']*>([\\S\\s]*?)<\/script>', JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, emptyFunction: function() { }, K: function(x) { return x } }; if (Prototype.Browser.MobileSafari) Prototype.BrowserFeatures.SpecificElementExtensions = false; var Abstract = { }; var Try = { these: function() { var returnValue; for (var i = 0, length = arguments.length; i < length; i++) { var lambda = arguments[i]; try { returnValue = lambda(); break; } catch (e) { } } return returnValue; } }; /* Based on Alex Arnell's inheritance implementation. */ var Class = (function() { function subclass() {}; function create() { var parent = null, properties = $A(arguments); if (Object.isFunction(properties[0])) parent = properties.shift(); function klass() { this.initialize.apply(this, arguments); } Object.extend(klass, Class.Methods); klass.superclass = parent; klass.subclasses = []; if (parent) { subclass.prototype = parent.prototype; klass.prototype = new subclass; parent.subclasses.push(klass); } for (var i = 0; i < properties.length; i++) klass.addMethods(properties[i]); if (!klass.prototype.initialize) klass.prototype.initialize = Prototype.emptyFunction; klass.prototype.constructor = klass; return klass; } function addMethods(source) { var ancestor = this.superclass && this.superclass.prototype; var properties = Object.keys(source); if (!Object.keys({ toString: true }).length) { if (source.toString != Object.prototype.toString) properties.push("toString"); if (source.valueOf != Object.prototype.valueOf) properties.push("valueOf"); } for (var i = 0, length = properties.length; i < length; i++) { var property = properties[i], value = source[property]; if (ancestor && Object.isFunction(value) && value.argumentNames().first() == "$super") { var method = value; value = (function(m) { return function() { return ancestor[m].apply(this, arguments); }; })(property).wrap(method); value.valueOf = method.valueOf.bind(method); value.toString = method.toString.bind(method); } this.prototype[property] = value; } return this; } return { create: create, Methods: { addMethods: addMethods } }; })(); (function() { var _toString = Object.prototype.toString; function extend(destination, source) { for (var property in source) destination[property] = source[property]; return destination; } function inspect(object) { try { if (isUndefined(object)) return 'undefined'; if (object === null) return 'null'; return object.inspect ? object.inspect() : String(object); } catch (e) { if (e instanceof RangeError) return '...'; throw e; } } function toJSON(object) { var type = typeof object; switch (type) { case 'undefined': case 'function': case 'unknown': return; case 'boolean': return object.toString(); } if (object === null) return 'null'; if (object.toJSON) return object.toJSON(); if (isElement(object)) return; var results = []; for (var property in object) { var value = toJSON(object[property]); if (!isUndefined(value)) results.push(property.toJSON() + ': ' + value); } return '{' + results.join(', ') + '}'; } function toQueryString(object) { return $H(object).toQueryString(); } function toHTML(object) { return object && object.toHTML ? object.toHTML() : String.interpret(object); } function keys(object) { var results = []; for (var property in object) results.push(property); return results; } function values(object) { var results = []; for (var property in object) results.push(object[property]); return results; } function clone(object) { return extend({ }, object); } function isElement(object) { return !!(object && object.nodeType == 1); } function isArray(object) { return _toString.call(object) == "[object Array]"; } function isHash(object) { return object instanceof Hash; } function isFunction(object) { return typeof object === "function"; } function isString(object) { return _toString.call(object) == "[object String]"; } function isNumber(object) { return _toString.call(object) == "[object Number]"; } function isUndefined(object) { return typeof object === "undefined"; } extend(Object, { extend: extend, inspect: inspect, toJSON: toJSON, toQueryString: toQueryString, toHTML: toHTML, keys: keys, values: values, clone: clone, isElement: isElement, isArray: isArray, isHash: isHash, isFunction: isFunction, isString: isString, isNumber: isNumber, isUndefined: isUndefined }); })(); Object.extend(Function.prototype, (function() { var slice = Array.prototype.slice; function update(array, args) { var arrayLength = array.length, length = args.length; while (length--) array[arrayLength + length] = args[length]; return array; } function merge(array, args) { array = slice.call(array, 0); return update(array, args); } function argumentNames() { var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1] .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '') .replace(/\s+/g, '').split(','); return names.length == 1 && !names[0] ? [] : names; } function bind(context) { if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; var __method = this, args = slice.call(arguments, 1); return function() { var a = merge(args, arguments); return __method.apply(context, a); } } function bindAsEventListener(context) { var __method = this, args = slice.call(arguments, 1); return function(event) { var a = update([event || window.event], args); return __method.apply(context, a); } } function curry() { if (!arguments.length) return this; var __method = this, args = slice.call(arguments, 0); return function() { var a = merge(args, arguments); return __method.apply(this, a); } } function delay(timeout) { var __method = this, args = slice.call(arguments, 1); timeout = timeout * 1000 return window.setTimeout(function() { return __method.apply(__method, args); }, timeout); } function defer() { var args = update([0.01], arguments); return this.delay.apply(this, args); } function wrap(wrapper) { var __method = this; return function() { var a = update([__method.bind(this)], arguments); return wrapper.apply(this, a); } } function methodize() { if (this._methodized) return this._methodized; var __method = this; return this._methodized = function() { var a = update([this], arguments); return __method.apply(null, a); }; } return { argumentNames: argumentNames, bind: bind, bindAsEventListener: bindAsEventListener, curry: curry, delay: delay, defer: defer, wrap: wrap, methodize: methodize } })()); Date.prototype.toJSON = function() { return '"' + this.getUTCFullYear() + '-' + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + this.getUTCDate().toPaddedString(2) + 'T' + this.getUTCHours().toPaddedString(2) + ':' + this.getUTCMinutes().toPaddedString(2) + ':' + this.getUTCSeconds().toPaddedString(2) + 'Z"'; }; RegExp.prototype.match = RegExp.prototype.test; RegExp.escape = function(str) { return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); }; var PeriodicalExecuter = Class.create({ initialize: function(callback, frequency) { this.callback = callback; this.frequency = frequency; this.currentlyExecuting = false; this.registerCallback(); }, registerCallback: function() { this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); }, execute: function() { this.callback(this); }, stop: function() { if (!this.timer) return; clearInterval(this.timer); this.timer = null; }, onTimerEvent: function() { if (!this.currentlyExecuting) { try { this.currentlyExecuting = true; this.execute(); this.currentlyExecuting = false; } catch(e) { this.currentlyExecuting = false; throw e; } } } }); Object.extend(String, { interpret: function(value) { return value == null ? '' : String(value); }, specialChar: { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\' } }); Object.extend(String.prototype, (function() { function prepareReplacement(replacement) { if (Object.isFunction(replacement)) return replacement; var template = new Template(replacement); return function(match) { return template.evaluate(match) }; } function gsub(pattern, replacement) { var result = '', source = this, match; replacement = prepareReplacement(replacement); if (Object.isString(pattern)) pattern = RegExp.escape(pattern); if (!(pattern.length || pattern.source)) { replacement = replacement(''); return replacement + source.split('').join(replacement) + replacement; } while (source.length > 0) { if (match = source.match(pattern)) { result += source.slice(0, match.index); result += String.interpret(replacement(match)); source = source.slice(match.index + match[0].length); } else { result += source, source = ''; } } return result; } function sub(pattern, replacement, count) { replacement = prepareReplacement(replacement); count = Object.isUndefined(count) ? 1 : count; return this.gsub(pattern, function(match) { if (--count < 0) return match[0]; return replacement(match); }); } function scan(pattern, iterator) { this.gsub(pattern, iterator); return String(this); } function truncate(length, truncation) { length = length || 30; truncation = Object.isUndefined(truncation) ? '...' : truncation; return this.length > length ? this.slice(0, length - truncation.length) + truncation : String(this); } function strip() { return this.replace(/^\s+/, '').replace(/\s+$/, ''); } function stripTags() { return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, ''); } function stripScripts() { return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); } function extractScripts() { var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); return (this.match(matchAll) || []).map(function(scriptTag) { return (scriptTag.match(matchOne) || ['', ''])[1]; }); } function evalScripts() { return this.extractScripts().map(function(script) { return eval(script) }); } function escapeHTML() { return this.replace(/&/g,'&').replace(//g,'>'); } function unescapeHTML() { return this.stripTags().replace(/</g,'<').replace(/>/g,'>').replace(/&/g,'&'); } function toQueryParams(separator) { var match = this.strip().match(/([^?#]*)(#.*)?$/); if (!match) return { }; return match[1].split(separator || '&').inject({ }, function(hash, pair) { if ((pair = pair.split('='))[0]) { var key = decodeURIComponent(pair.shift()); var value = pair.length > 1 ? pair.join('=') : pair[0]; if (value != undefined) value = decodeURIComponent(value); if (key in hash) { if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; hash[key].push(value); } else hash[key] = value; } return hash; }); } function toArray() { return this.split(''); } function succ() { return this.slice(0, this.length - 1) + String.fromCharCode(this.charCodeAt(this.length - 1) + 1); } function times(count) { return count < 1 ? '' : new Array(count + 1).join(this); } function camelize() { var parts = this.split('-'), len = parts.length; if (len == 1) return parts[0]; var camelized = this.charAt(0) == '-' ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) : parts[0]; for (var i = 1; i < len; i++) camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); return camelized; } function capitalize() { return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); } function underscore() { return this.replace(/::/g, '/') .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') .replace(/([a-z\d])([A-Z])/g, '$1_$2') .replace(/-/g, '_') .toLowerCase(); } function dasherize() { return this.replace(/_/g, '-'); } function inspect(useDoubleQuotes) { var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) { if (character in String.specialChar) { return String.specialChar[character]; } return '\\u00' + character.charCodeAt().toPaddedString(2, 16); }); if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; return "'" + escapedString.replace(/'/g, '\\\'') + "'"; } function toJSON() { return this.inspect(true); } function unfilterJSON(filter) { return this.replace(filter || Prototype.JSONFilter, '$1'); } function isJSON() { var str = this; if (str.blank()) return false; str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); } function evalJSON(sanitize) { var json = this.unfilterJSON(); try { if (!sanitize || json.isJSON()) return eval('(' + json + ')'); } catch (e) { } throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); } function include(pattern) { return this.indexOf(pattern) > -1; } function startsWith(pattern) { return this.indexOf(pattern) === 0; } function endsWith(pattern) { var d = this.length - pattern.length; return d >= 0 && this.lastIndexOf(pattern) === d; } function empty() { return this == ''; } function blank() { return /^\s*$/.test(this); } function interpolate(object, pattern) { return new Template(this, pattern).evaluate(object); } return { gsub: gsub, sub: sub, scan: scan, truncate: truncate, strip: String.prototype.trim ? String.prototype.trim : strip, stripTags: stripTags, stripScripts: stripScripts, extractScripts: extractScripts, evalScripts: evalScripts, escapeHTML: escapeHTML, unescapeHTML: unescapeHTML, toQueryParams: toQueryParams, parseQuery: toQueryParams, toArray: toArray, succ: succ, times: times, camelize: camelize, capitalize: capitalize, underscore: underscore, dasherize: dasherize, inspect: inspect, toJSON: toJSON, unfilterJSON: unfilterJSON, isJSON: isJSON, evalJSON: evalJSON, include: include, startsWith: startsWith, endsWith: endsWith, empty: empty, blank: blank, interpolate: interpolate }; })()); var Template = Class.create({ initialize: function(template, pattern) { this.template = template.toString(); this.pattern = pattern || Template.Pattern; }, evaluate: function(object) { if (object && Object.isFunction(object.toTemplateReplacements)) object = object.toTemplateReplacements(); return this.template.gsub(this.pattern, function(match) { if (object == null) return (match[1] + ''); var before = match[1] || ''; if (before == '\\') return match[2]; var ctx = object, expr = match[3]; var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; match = pattern.exec(expr); if (match == null) return before; while (match != null) { var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1]; ctx = ctx[comp]; if (null == ctx || '' == match[3]) break; expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); match = pattern.exec(expr); } return before + String.interpret(ctx); }); } }); Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; var $break = { }; var Enumerable = (function() { function each(iterator, context) { var index = 0; try { this._each(function(value) { iterator.call(context, value, index++); }); } catch (e) { if (e != $break) throw e; } return this; } function eachSlice(number, iterator, context) { var index = -number, slices = [], array = this.toArray(); if (number < 1) return array; while ((index += number) < array.length) slices.push(array.slice(index, index+number)); return slices.collect(iterator, context); } function all(iterator, context) { iterator = iterator || Prototype.K; var result = true; this.each(function(value, index) { result = result && !!iterator.call(context, value, index); if (!result) throw $break; }); return result; } function any(iterator, context) { iterator = iterator || Prototype.K; var result = false; this.each(function(value, index) { if (result = !!iterator.call(context, value, index)) throw $break; }); return result; } function collect(iterator, context) { iterator = iterator || Prototype.K; var results = []; this.each(function(value, index) { results.push(iterator.call(context, value, index)); }); return results; } function detect(iterator, context) { var result; this.each(function(value, index) { if (iterator.call(context, value, index)) { result = value; throw $break; } }); return result; } function findAll(iterator, context) { var results = []; this.each(function(value, index) { if (iterator.call(context, value, index)) results.push(value); }); return results; } function grep(filter, iterator, context) { iterator = iterator || Prototype.K; var results = []; if (Object.isString(filter)) filter = new RegExp(RegExp.escape(filter)); this.each(function(value, index) { if (filter.match(value)) results.push(iterator.call(context, value, index)); }); return results; } function include(object) { if (Object.isFunction(this.indexOf)) if (this.indexOf(object) != -1) return true; var found = false; this.each(function(value) { if (value == object) { found = true; throw $break; } }); return found; } function inGroupsOf(number, fillWith) { fillWith = Object.isUndefined(fillWith) ? null : fillWith; return this.eachSlice(number, function(slice) { while(slice.length < number) slice.push(fillWith); return slice; }); } function inject(memo, iterator, context) { this.each(function(value, index) { memo = iterator.call(context, memo, value, index); }); return memo; } function invoke(method) { var args = $A(arguments).slice(1); return this.map(function(value) { return value[method].apply(value, args); }); } function max(iterator, context) { iterator = iterator || Prototype.K; var result; this.each(function(value, index) { value = iterator.call(context, value, index); if (result == null || value >= result) result = value; }); return result; } function min(iterator, context) { iterator = iterator || Prototype.K; var result; this.each(function(value, index) { value = iterator.call(context, value, index); if (result == null || value < result) result = value; }); return result; } function partition(iterator, context) { iterator = iterator || Prototype.K; var trues = [], falses = []; this.each(function(value, index) { (iterator.call(context, value, index) ? trues : falses).push(value); }); return [trues, falses]; } function pluck(property) { var results = []; this.each(function(value) { results.push(value[property]); }); return results; } function reject(iterator, context) { var results = []; this.each(function(value, index) { if (!iterator.call(context, value, index)) results.push(value); }); return results; } function sortBy(iterator, context) { return this.map(function(value, index) { return { value: value, criteria: iterator.call(context, value, index) }; }).sort(function(left, right) { var a = left.criteria, b = right.criteria; return a < b ? -1 : a > b ? 1 : 0; }).pluck('value'); } function toArray() { return this.map(); } function zip() { var iterator = Prototype.K, args = $A(arguments); if (Object.isFunction(args.last())) iterator = args.pop(); var collections = [this].concat(args).map($A); return this.map(function(value, index) { return iterator(collections.pluck(index)); }); } function size() { return this.toArray().length; } function inspect() { return '#'; } return { each: each, eachSlice: eachSlice, all: all, every: all, any: any, some: any, collect: collect, map: collect, detect: detect, findAll: findAll, select: findAll, filter: findAll, grep: grep, include: include, member: include, inGroupsOf: inGroupsOf, inject: inject, invoke: invoke, max: max, min: min, partition: partition, pluck: pluck, reject: reject, sortBy: sortBy, toArray: toArray, entries: toArray, zip: zip, size: size, inspect: inspect, find: detect }; })(); function $A(iterable) { if (!iterable) return []; if ('toArray' in Object(iterable)) return iterable.toArray(); var length = iterable.length || 0, results = new Array(length); while (length--) results[length] = iterable[length]; return results; } function $w(string) { if (!Object.isString(string)) return []; string = string.strip(); return string ? string.split(/\s+/) : []; } Array.from = $A; (function() { var arrayProto = Array.prototype, slice = arrayProto.slice, _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available function each(iterator) { for (var i = 0, length = this.length; i < length; i++) iterator(this[i]); } if (!_each) _each = each; function clear() { this.length = 0; return this; } function first() { return this[0]; } function last() { return this[this.length - 1]; } function compact() { return this.select(function(value) { return value != null; }); } function flatten() { return this.inject([], function(array, value) { if (Object.isArray(value)) return array.concat(value.flatten()); array.push(value); return array; }); } function without() { var values = slice.call(arguments, 0); return this.select(function(value) { return !values.include(value); }); } function reverse(inline) { return (inline !== false ? this : this.toArray())._reverse(); } function uniq(sorted) { return this.inject([], function(array, value, index) { if (0 == index || (sorted ? array.last() != value : !array.include(value))) array.push(value); return array; }); } function intersect(array) { return this.uniq().findAll(function(item) { return array.detect(function(value) { return item === value }); }); } function clone() { return slice.call(this, 0); } function size() { return this.length; } function inspect() { return '[' + this.map(Object.inspect).join(', ') + ']'; } function toJSON() { var results = []; this.each(function(object) { var value = Object.toJSON(object); if (!Object.isUndefined(value)) results.push(value); }); return '[' + results.join(', ') + ']'; } function indexOf(item, i) { i || (i = 0); var length = this.length; if (i < 0) i = length + i; for (; i < length; i++) if (this[i] === item) return i; return -1; } function lastIndexOf(item, i) { i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; var n = this.slice(0, i).reverse().indexOf(item); return (n < 0) ? n : i - n - 1; } function concat() { var array = slice.call(this, 0), item; for (var i = 0, length = arguments.length; i < length; i++) { item = arguments[i]; if (Object.isArray(item) && !('callee' in item)) { for (var j = 0, arrayLength = item.length; j < arrayLength; j++) array.push(item[j]); } else { array.push(item); } } return array; } Object.extend(arrayProto, Enumerable); if (!arrayProto._reverse) arrayProto._reverse = arrayProto.reverse; Object.extend(arrayProto, { _each: _each, clear: clear, first: first, last: last, compact: compact, flatten: flatten, without: without, reverse: reverse, uniq: uniq, intersect: intersect, clone: clone, toArray: clone, size: size, inspect: inspect, toJSON: toJSON }); var CONCAT_ARGUMENTS_BUGGY = (function() { return [].concat(arguments)[0][0] !== 1; })(1,2) if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat; if (!arrayProto.indexOf) arrayProto.indexOf = indexOf; if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf; })(); function $H(object) { return new Hash(object); }; var Hash = Class.create(Enumerable, (function() { function initialize(object) { this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); } function _each(iterator) { for (var key in this._object) { var value = this._object[key], pair = [key, value]; pair.key = key; pair.value = value; iterator(pair); } } function set(key, value) { return this._object[key] = value; } function get(key) { if (this._object[key] !== Object.prototype[key]) return this._object[key]; } function unset(key) { var value = this._object[key]; delete this._object[key]; return value; } function toObject() { return Object.clone(this._object); } function keys() { return this.pluck('key'); } function values() { return this.pluck('value'); } function index(value) { var match = this.detect(function(pair) { return pair.value === value; }); return match && match.key; } function merge(object) { return this.clone().update(object); } function update(object) { return new Hash(object).inject(this, function(result, pair) { result.set(pair.key, pair.value); return result; }); } function toQueryPair(key, value) { if (Object.isUndefined(value)) return key; return key + '=' + encodeURIComponent(String.interpret(value)); } function toQueryString() { return this.inject([], function(results, pair) { var key = encodeURIComponent(pair.key), values = pair.value; if (values && typeof values == 'object') { if (Object.isArray(values)) return results.concat(values.map(toQueryPair.curry(key))); } else results.push(toQueryPair(key, values)); return results; }).join('&'); } function inspect() { return '#'; } function toJSON() { return Object.toJSON(this.toObject()); } function clone() { return new Hash(this); } return { initialize: initialize, _each: _each, set: set, get: get, unset: unset, toObject: toObject, toTemplateReplacements: toObject, keys: keys, values: values, index: index, merge: merge, update: update, toQueryString: toQueryString, inspect: inspect, toJSON: toJSON, clone: clone }; })()); Hash.from = $H; Object.extend(Number.prototype, (function() { function toColorPart() { return this.toPaddedString(2, 16); } function succ() { return this + 1; } function times(iterator, context) { $R(0, this, true).each(iterator, context); return this; } function toPaddedString(length, radix) { var string = this.toString(radix || 10); return '0'.times(length - string.length) + string; } function toJSON() { return isFinite(this) ? this.toString() : 'null'; } function abs() { return Math.abs(this); } function round() { return Math.round(this); } function ceil() { return Math.ceil(this); } function floor() { return Math.floor(this); } return { toColorPart: toColorPart, succ: succ, times: times, toPaddedString: toPaddedString, toJSON: toJSON, abs: abs, round: round, ceil: ceil, floor: floor }; })()); function $R(start, end, exclusive) { return new ObjectRange(start, end, exclusive); } var ObjectRange = Class.create(Enumerable, (function() { function initialize(start, end, exclusive) { this.start = start; this.end = end; this.exclusive = exclusive; } function _each(iterator) { var value = this.start; while (this.include(value)) { iterator(value); value = value.succ(); } } function include(value) { if (value < this.start) return false; if (this.exclusive) return value < this.end; return value <= this.end; } return { initialize: initialize, _each: _each, include: include }; })()); var Ajax = { getTransport: function() { return Try.these( function() {return new XMLHttpRequest()}, function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')} ) || false; }, activeRequestCount: 0 }; Ajax.Responders = { responders: [], _each: function(iterator) { this.responders._each(iterator); }, register: function(responder) { if (!this.include(responder)) this.responders.push(responder); }, unregister: function(responder) { this.responders = this.responders.without(responder); }, dispatch: function(callback, request, transport, json) { this.each(function(responder) { if (Object.isFunction(responder[callback])) { try { responder[callback].apply(responder, [request, transport, json]); } catch (e) { } } }); } }; Object.extend(Ajax.Responders, Enumerable); Ajax.Responders.register({ onCreate: function() { Ajax.activeRequestCount++ }, onComplete: function() { Ajax.activeRequestCount-- } }); Ajax.Base = Class.create({ initialize: function(options) { this.options = { method: 'post', asynchronous: true, contentType: 'application/x-www-form-urlencoded', encoding: 'UTF-8', parameters: '', evalJSON: true, evalJS: true }; Object.extend(this.options, options || { }); this.options.method = this.options.method.toLowerCase(); if (Object.isString(this.options.parameters)) this.options.parameters = this.options.parameters.toQueryParams(); else if (Object.isHash(this.options.parameters)) this.options.parameters = this.options.parameters.toObject(); } }); Ajax.Request = Class.create(Ajax.Base, { _complete: false, initialize: function($super, url, options) { $super(options); this.transport = Ajax.getTransport(); this.request(url); }, request: function(url) { this.url = url; this.method = this.options.method; var params = Object.clone(this.options.parameters); if (!['get', 'post'].include(this.method)) { params['_method'] = this.method; this.method = 'post'; } this.parameters = params; if (params = Object.toQueryString(params)) { if (this.method == 'get') this.url += (this.url.include('?') ? '&' : '?') + params; else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='; } try { var response = new Ajax.Response(this); if (this.options.onCreate) this.options.onCreate(response); Ajax.Responders.dispatch('onCreate', this, response); this.transport.open(this.method.toUpperCase(), this.url, this.options.asynchronous); if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); this.transport.onreadystatechange = this.onStateChange.bind(this); this.setRequestHeaders(); this.body = this.method == 'post' ? (this.options.postBody || params) : null; this.transport.send(this.body); /* Force Firefox to handle ready state 4 for synchronous requests */ if (!this.options.asynchronous && this.transport.overrideMimeType) this.onStateChange(); } catch (e) { this.dispatchException(e); } }, onStateChange: function() { var readyState = this.transport.readyState; if (readyState > 1 && !((readyState == 4) && this._complete)) this.respondToReadyState(this.transport.readyState); }, setRequestHeaders: function() { var headers = { 'X-Requested-With': 'XMLHttpRequest', 'X-Prototype-Version': Prototype.Version, 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' }; if (this.method == 'post') { headers['Content-type'] = this.options.contentType + (this.options.encoding ? '; charset=' + this.options.encoding : ''); /* Force "Connection: close" for older Mozilla browsers to work * around a bug where XMLHttpRequest sends an incorrect * Content-length header. See Mozilla Bugzilla #246651. */ if (this.transport.overrideMimeType && (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) headers['Connection'] = 'close'; } if (typeof this.options.requestHeaders == 'object') { var extras = this.options.requestHeaders; if (Object.isFunction(extras.push)) for (var i = 0, length = extras.length; i < length; i += 2) headers[extras[i]] = extras[i+1]; else $H(extras).each(function(pair) { headers[pair.key] = pair.value }); } for (var name in headers) this.transport.setRequestHeader(name, headers[name]); }, success: function() { var status = this.getStatus(); return !status || (status >= 200 && status < 300); }, getStatus: function() { try { return this.transport.status || 0; } catch (e) { return 0 } }, respondToReadyState: function(readyState) { var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); if (state == 'Complete') { try { this._complete = true; (this.options['on' + response.status] || this.options['on' + (this.success() ? 'Success' : 'Failure')] || Prototype.emptyFunction)(response, response.headerJSON); } catch (e) { this.dispatchException(e); } var contentType = response.getHeader('Content-type'); if (this.options.evalJS == 'force' || (this.options.evalJS && this.isSameOrigin() && contentType && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) this.evalResponse(); } try { (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); } catch (e) { this.dispatchException(e); } if (state == 'Complete') { this.transport.onreadystatechange = Prototype.emptyFunction; } }, isSameOrigin: function() { var m = this.url.match(/^\s*https?:\/\/[^\/]*/); return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ protocol: location.protocol, domain: document.domain, port: location.port ? ':' + location.port : '' })); }, getHeader: function(name) { try { return this.transport.getResponseHeader(name) || null; } catch (e) { return null; } }, evalResponse: function() { try { return eval((this.transport.responseText || '').unfilterJSON()); } catch (e) { this.dispatchException(e); } }, dispatchException: function(exception) { (this.options.onException || Prototype.emptyFunction)(this, exception); Ajax.Responders.dispatch('onException', this, exception); } }); Ajax.Request.Events = ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; Ajax.Response = Class.create({ initialize: function(request){ this.request = request; var transport = this.transport = request.transport, readyState = this.readyState = transport.readyState; if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { this.status = this.getStatus(); this.statusText = this.getStatusText(); this.responseText = String.interpret(transport.responseText); this.headerJSON = this._getHeaderJSON(); } if(readyState == 4) { var xml = transport.responseXML; this.responseXML = Object.isUndefined(xml) ? null : xml; this.responseJSON = this._getResponseJSON(); } }, status: 0, statusText: '', getStatus: Ajax.Request.prototype.getStatus, getStatusText: function() { try { return this.transport.statusText || ''; } catch (e) { return '' } }, getHeader: Ajax.Request.prototype.getHeader, getAllHeaders: function() { try { return this.getAllResponseHeaders(); } catch (e) { return null } }, getResponseHeader: function(name) { return this.transport.getResponseHeader(name); }, getAllResponseHeaders: function() { return this.transport.getAllResponseHeaders(); }, _getHeaderJSON: function() { var json = this.getHeader('X-JSON'); if (!json) return null; json = decodeURIComponent(escape(json)); try { return json.evalJSON(this.request.options.sanitizeJSON || !this.request.isSameOrigin()); } catch (e) { this.request.dispatchException(e); } }, _getResponseJSON: function() { var options = this.request.options; if (!options.evalJSON || (options.evalJSON != 'force' && !(this.getHeader('Content-type') || '').include('application/json')) || this.responseText.blank()) return null; try { return this.responseText.evalJSON(options.sanitizeJSON || !this.request.isSameOrigin()); } catch (e) { this.request.dispatchException(e); } } }); Ajax.Updater = Class.create(Ajax.Request, { initialize: function($super, container, url, options) { this.container = { success: (container.success || container), failure: (container.failure || (container.success ? null : container)) }; options = Object.clone(options); var onComplete = options.onComplete; options.onComplete = (function(response, json) { this.updateContent(response.responseText); if (Object.isFunction(onComplete)) onComplete(response, json); }).bind(this); $super(url, options); }, updateContent: function(responseText) { var receiver = this.container[this.success() ? 'success' : 'failure'], options = this.options; if (!options.evalScripts) responseText = responseText.stripScripts(); if (receiver = $(receiver)) { if (options.insertion) { if (Object.isString(options.insertion)) { var insertion = { }; insertion[options.insertion] = responseText; receiver.insert(insertion); } else options.insertion(receiver, responseText); } else receiver.update(responseText); } } }); Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { initialize: function($super, container, url, options) { $super(options); this.onComplete = this.options.onComplete; this.frequency = (this.options.frequency || 2); this.decay = (this.options.decay || 1); this.updater = { }; this.container = container; this.url = url; this.start(); }, start: function() { this.options.onComplete = this.updateComplete.bind(this); this.onTimerEvent(); }, stop: function() { this.updater.options.onComplete = undefined; clearTimeout(this.timer); (this.onComplete || Prototype.emptyFunction).apply(this, arguments); }, updateComplete: function(response) { if (this.options.decay) { this.decay = (response.responseText == this.lastText ? this.decay * this.options.decay : 1); this.lastText = response.responseText; } this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); }, onTimerEvent: function() { this.updater = new Ajax.Updater(this.container, this.url, this.options); } }); function $(element) { if (arguments.length > 1) { for (var i = 0, elements = [], length = arguments.length; i < length; i++) elements.push($(arguments[i])); return elements; } if (Object.isString(element)) element = document.getElementById(element); return Element.extend(element); } if (Prototype.BrowserFeatures.XPath) { document._getElementsByXPath = function(expression, parentElement) { var results = []; var query = document.evaluate(expression, $(parentElement) || document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0, length = query.snapshotLength; i < length; i++) results.push(Element.extend(query.snapshotItem(i))); return results; }; } /*--------------------------------------------------------------------------*/ if (!window.Node) var Node = { }; if (!Node.ELEMENT_NODE) { Object.extend(Node, { ELEMENT_NODE: 1, ATTRIBUTE_NODE: 2, TEXT_NODE: 3, CDATA_SECTION_NODE: 4, ENTITY_REFERENCE_NODE: 5, ENTITY_NODE: 6, PROCESSING_INSTRUCTION_NODE: 7, COMMENT_NODE: 8, DOCUMENT_NODE: 9, DOCUMENT_TYPE_NODE: 10, DOCUMENT_FRAGMENT_NODE: 11, NOTATION_NODE: 12 }); } (function(global) { var SETATTRIBUTE_IGNORES_NAME = (function(){ var elForm = document.createElement("form"); var elInput = document.createElement("input"); var root = document.documentElement; elInput.setAttribute("name", "test"); elForm.appendChild(elInput); root.appendChild(elForm); var isBuggy = elForm.elements ? (typeof elForm.elements.test == "undefined") : null; root.removeChild(elForm); elForm = elInput = null; return isBuggy; })(); var element = global.Element; global.Element = function(tagName, attributes) { attributes = attributes || { }; tagName = tagName.toLowerCase(); var cache = Element.cache; if (SETATTRIBUTE_IGNORES_NAME && attributes.name) { tagName = '<' + tagName + ' name="' + attributes.name + '">'; delete attributes.name; return Element.writeAttribute(document.createElement(tagName), attributes); } if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); }; Object.extend(global.Element, element || { }); if (element) global.Element.prototype = element.prototype; })(this); Element.cache = { }; Element.idCounter = 1; Element.Methods = { visible: function(element) { return $(element).style.display != 'none'; }, toggle: function(element) { element = $(element); Element[Element.visible(element) ? 'hide' : 'show'](element); return element; }, hide: function(element) { element = $(element); element.style.display = 'none'; return element; }, show: function(element) { element = $(element); element.style.display = ''; return element; }, remove: function(element) { element = $(element); element.parentNode.removeChild(element); return element; }, update: (function(){ var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){ var el = document.createElement("select"), isBuggy = true; el.innerHTML = ""; if (el.options && el.options[0]) { isBuggy = el.options[0].nodeName.toUpperCase() !== "OPTION"; } el = null; return isBuggy; })(); var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){ try { var el = document.createElement("table"); if (el && el.tBodies) { el.innerHTML = "test"; var isBuggy = typeof el.tBodies[0] == "undefined"; el = null; return isBuggy; } } catch (e) { return true; } })(); var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () { var s = document.createElement("script"), isBuggy = false; try { s.appendChild(document.createTextNode("")); isBuggy = !s.firstChild || s.firstChild && s.firstChild.nodeType !== 3; } catch (e) { isBuggy = true; } s = null; return isBuggy; })(); function update(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) return element.update().insert(content); content = Object.toHTML(content); var tagName = element.tagName.toUpperCase(); if (tagName === 'SCRIPT' && SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) { element.text = content; return element; } if (SELECT_ELEMENT_INNERHTML_BUGGY || TABLE_ELEMENT_INNERHTML_BUGGY) { if (tagName in Element._insertionTranslations.tags) { while (element.firstChild) { element.removeChild(element.firstChild); } Element._getContentFromAnonymousElement(tagName, content.stripScripts()) .each(function(node) { element.appendChild(node) }); } else { element.innerHTML = content.stripScripts(); } } else { element.innerHTML = content.stripScripts(); } content.evalScripts.bind(content).defer(); return element; } return update; })(), replace: function(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); else if (!Object.isElement(content)) { content = Object.toHTML(content); var range = element.ownerDocument.createRange(); range.selectNode(element); content.evalScripts.bind(content).defer(); content = range.createContextualFragment(content.stripScripts()); } element.parentNode.replaceChild(content, element); return element; }, insert: function(element, insertions) { element = $(element); if (Object.isString(insertions) || Object.isNumber(insertions) || Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) insertions = {bottom:insertions}; var content, insert, tagName, childNodes; for (var position in insertions) { content = insertions[position]; position = position.toLowerCase(); insert = Element._insertionTranslations[position]; if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) { insert(element, content); continue; } content = Object.toHTML(content); tagName = ((position == 'before' || position == 'after') ? element.parentNode : element).tagName.toUpperCase(); childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); if (position == 'top' || position == 'after') childNodes.reverse(); childNodes.each(insert.curry(element)); content.evalScripts.bind(content).defer(); } return element; }, wrap: function(element, wrapper, attributes) { element = $(element); if (Object.isElement(wrapper)) $(wrapper).writeAttribute(attributes || { }); else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); else wrapper = new Element('div', wrapper); if (element.parentNode) element.parentNode.replaceChild(wrapper, element); wrapper.appendChild(element); return wrapper; }, inspect: function(element) { element = $(element); var result = '<' + element.tagName.toLowerCase(); $H({'id': 'id', 'className': 'class'}).each(function(pair) { var property = pair.first(), attribute = pair.last(); var value = (element[property] || '').toString(); if (value) result += ' ' + attribute + '=' + value.inspect(true); }); return result + '>'; }, recursivelyCollect: function(element, property) { element = $(element); var elements = []; while (element = element[property]) if (element.nodeType == 1) elements.push(Element.extend(element)); return elements; }, ancestors: function(element) { return Element.recursivelyCollect(element, 'parentNode'); }, descendants: function(element) { return Element.select(element, "*"); }, firstDescendant: function(element) { element = $(element).firstChild; while (element && element.nodeType != 1) element = element.nextSibling; return $(element); }, immediateDescendants: function(element) { if (!(element = $(element).firstChild)) return []; while (element && element.nodeType != 1) element = element.nextSibling; if (element) return [element].concat($(element).nextSiblings()); return []; }, previousSiblings: function(element) { return Element.recursivelyCollect(element, 'previousSibling'); }, nextSiblings: function(element) { return Element.recursivelyCollect(element, 'nextSibling'); }, siblings: function(element) { element = $(element); return Element.previousSiblings(element).reverse() .concat(Element.nextSiblings(element)); }, match: function(element, selector) { if (Object.isString(selector)) selector = new Selector(selector); return selector.match($(element)); }, up: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(element.parentNode); var ancestors = Element.ancestors(element); return Object.isNumber(expression) ? ancestors[expression] : Selector.findElement(ancestors, expression, index); }, down: function(element, expression, index) { element = $(element); if (arguments.length == 1) return Element.firstDescendant(element); return Object.isNumber(expression) ? Element.descendants(element)[expression] : Element.select(element, expression)[index || 0]; }, previous: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); var previousSiblings = Element.previousSiblings(element); return Object.isNumber(expression) ? previousSiblings[expression] : Selector.findElement(previousSiblings, expression, index); }, next: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); var nextSiblings = Element.nextSiblings(element); return Object.isNumber(expression) ? nextSiblings[expression] : Selector.findElement(nextSiblings, expression, index); }, select: function(element) { var args = Array.prototype.slice.call(arguments, 1); return Selector.findChildElements(element, args); }, adjacent: function(element) { var args = Array.prototype.slice.call(arguments, 1); return Selector.findChildElements(element.parentNode, args).without(element); }, identify: function(element) { element = $(element); var id = Element.readAttribute(element, 'id'); if (id) return id; do { id = 'anonymous_element_' + Element.idCounter++ } while ($(id)); Element.writeAttribute(element, 'id', id); return id; }, readAttribute: function(element, name) { element = $(element); if (Prototype.Browser.IE) { var t = Element._attributeTranslations.read; if (t.values[name]) return t.values[name](element, name); if (t.names[name]) name = t.names[name]; if (name.include(':')) { return (!element.attributes || !element.attributes[name]) ? null : element.attributes[name].value; } } return element.getAttribute(name); }, writeAttribute: function(element, name, value) { element = $(element); var attributes = { }, t = Element._attributeTranslations.write; if (typeof name == 'object') attributes = name; else attributes[name] = Object.isUndefined(value) ? true : value; for (var attr in attributes) { name = t.names[attr] || attr; value = attributes[attr]; if (t.values[attr]) name = t.values[attr](element, value); if (value === false || value === null) element.removeAttribute(name); else if (value === true) element.setAttribute(name, name); else element.setAttribute(name, value); } return element; }, getHeight: function(element) { return Element.getDimensions(element).height; }, getWidth: function(element) { return Element.getDimensions(element).width; }, classNames: function(element) { return new Element.ClassNames(element); }, hasClassName: function(element, className) { if (!(element = $(element))) return; var elementClassName = element.className; return (elementClassName.length > 0 && (elementClassName == className || new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); }, addClassName: function(element, className) { if (!(element = $(element))) return; if (!Element.hasClassName(element, className)) element.className += (element.className ? ' ' : '') + className; return element; }, removeClassName: function(element, className) { if (!(element = $(element))) return; element.className = element.className.replace( new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); return element; }, toggleClassName: function(element, className) { if (!(element = $(element))) return; return Element[Element.hasClassName(element, className) ? 'removeClassName' : 'addClassName'](element, className); }, cleanWhitespace: function(element) { element = $(element); var node = element.firstChild; while (node) { var nextNode = node.nextSibling; if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) element.removeChild(node); node = nextNode; } return element; }, empty: function(element) { return $(element).innerHTML.blank(); }, descendantOf: function(element, ancestor) { element = $(element), ancestor = $(ancestor); if (element.compareDocumentPosition) return (element.compareDocumentPosition(ancestor) & 8) === 8; if (ancestor.contains) return ancestor.contains(element) && ancestor !== element; while (element = element.parentNode) if (element == ancestor) return true; return false; }, scrollTo: function(element) { element = $(element); var pos = Element.cumulativeOffset(element); window.scrollTo(pos[0], pos[1]); return element; }, getStyle: function(element, style) { element = $(element); style = style == 'float' ? 'cssFloat' : style.camelize(); var value = element.style[style]; if (!value || value == 'auto') { var css = document.defaultView.getComputedStyle(element, null); value = css ? css[style] : null; } if (style == 'opacity') return value ? parseFloat(value) : 1.0; return value == 'auto' ? null : value; }, getOpacity: function(element) { return $(element).getStyle('opacity'); }, setStyle: function(element, styles) { element = $(element); var elementStyle = element.style, match; if (Object.isString(styles)) { element.style.cssText += ';' + styles; return styles.include('opacity') ? element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; } for (var property in styles) if (property == 'opacity') element.setOpacity(styles[property]); else elementStyle[(property == 'float' || property == 'cssFloat') ? (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : property] = styles[property]; return element; }, setOpacity: function(element, value) { element = $(element); element.style.opacity = (value == 1 || value === '') ? '' : (value < 0.00001) ? 0 : value; return element; }, getDimensions: function(element) { element = $(element); var display = Element.getStyle(element, 'display'); if (display != 'none' && display != null) // Safari bug return {width: element.offsetWidth, height: element.offsetHeight}; var els = element.style; var originalVisibility = els.visibility; var originalPosition = els.position; var originalDisplay = els.display; els.visibility = 'hidden'; if (originalPosition != 'fixed') // Switching fixed to absolute causes issues in Safari els.position = 'absolute'; els.display = 'block'; var originalWidth = element.clientWidth; var originalHeight = element.clientHeight; els.display = originalDisplay; els.position = originalPosition; els.visibility = originalVisibility; return {width: originalWidth, height: originalHeight}; }, makePositioned: function(element) { element = $(element); var pos = Element.getStyle(element, 'position'); if (pos == 'static' || !pos) { element._madePositioned = true; element.style.position = 'relative'; if (Prototype.Browser.Opera) { element.style.top = 0; element.style.left = 0; } } return element; }, undoPositioned: function(element) { element = $(element); if (element._madePositioned) { element._madePositioned = undefined; element.style.position = element.style.top = element.style.left = element.style.bottom = element.style.right = ''; } return element; }, makeClipping: function(element) { element = $(element); if (element._overflow) return element; element._overflow = Element.getStyle(element, 'overflow') || 'auto'; if (element._overflow !== 'hidden') element.style.overflow = 'hidden'; return element; }, undoClipping: function(element) { element = $(element); if (!element._overflow) return element; element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; element._overflow = null; return element; }, cumulativeOffset: function(element) { var valueT = 0, valueL = 0; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; element = element.offsetParent; } while (element); return Element._returnOffset(valueL, valueT); }, positionedOffset: function(element) { var valueT = 0, valueL = 0; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; element = element.offsetParent; if (element) { if (element.tagName.toUpperCase() == 'BODY') break; var p = Element.getStyle(element, 'position'); if (p !== 'static') break; } } while (element); return Element._returnOffset(valueL, valueT); }, absolutize: function(element) { element = $(element); if (Element.getStyle(element, 'position') == 'absolute') return element; var offsets = Element.positionedOffset(element); var top = offsets[1]; var left = offsets[0]; var width = element.clientWidth; var height = element.clientHeight; element._originalLeft = left - parseFloat(element.style.left || 0); element._originalTop = top - parseFloat(element.style.top || 0); element._originalWidth = element.style.width; element._originalHeight = element.style.height; element.style.position = 'absolute'; element.style.top = top + 'px'; element.style.left = left + 'px'; element.style.width = width + 'px'; element.style.height = height + 'px'; return element; }, relativize: function(element) { element = $(element); if (Element.getStyle(element, 'position') == 'relative') return element; element.style.position = 'relative'; var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); element.style.top = top + 'px'; element.style.left = left + 'px'; element.style.height = element._originalHeight; element.style.width = element._originalWidth; return element; }, cumulativeScrollOffset: function(element) { var valueT = 0, valueL = 0; do { valueT += element.scrollTop || 0; valueL += element.scrollLeft || 0; element = element.parentNode; } while (element); return Element._returnOffset(valueL, valueT); }, getOffsetParent: function(element) { if (element.offsetParent) return $(element.offsetParent); if (element == document.body) return $(element); while ((element = element.parentNode) && element != document.body) if (Element.getStyle(element, 'position') != 'static') return $(element); return $(document.body); }, viewportOffset: function(forElement) { var valueT = 0, valueL = 0; var element = forElement; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; if (element.offsetParent == document.body && Element.getStyle(element, 'position') == 'absolute') break; } while (element = element.offsetParent); element = forElement; do { if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) { valueT -= element.scrollTop || 0; valueL -= element.scrollLeft || 0; } } while (element = element.parentNode); return Element._returnOffset(valueL, valueT); }, clonePosition: function(element, source) { var options = Object.extend({ setLeft: true, setTop: true, setWidth: true, setHeight: true, offsetTop: 0, offsetLeft: 0 }, arguments[2] || { }); source = $(source); var p = Element.viewportOffset(source); element = $(element); var delta = [0, 0]; var parent = null; if (Element.getStyle(element, 'position') == 'absolute') { parent = Element.getOffsetParent(element); delta = Element.viewportOffset(parent); } if (parent == document.body) { delta[0] -= document.body.offsetLeft; delta[1] -= document.body.offsetTop; } if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; if (options.setWidth) element.style.width = source.offsetWidth + 'px'; if (options.setHeight) element.style.height = source.offsetHeight + 'px'; return element; } }; Object.extend(Element.Methods, { getElementsBySelector: Element.Methods.select, childElements: Element.Methods.immediateDescendants }); Element._attributeTranslations = { write: { names: { className: 'class', htmlFor: 'for' }, values: { } } }; if (Prototype.Browser.Opera) { Element.Methods.getStyle = Element.Methods.getStyle.wrap( function(proceed, element, style) { switch (style) { case 'left': case 'top': case 'right': case 'bottom': if (proceed(element, 'position') === 'static') return null; case 'height': case 'width': if (!Element.visible(element)) return null; var dim = parseInt(proceed(element, style), 10); if (dim !== element['offset' + style.capitalize()]) return dim + 'px'; var properties; if (style === 'height') { properties = ['border-top-width', 'padding-top', 'padding-bottom', 'border-bottom-width']; } else { properties = ['border-left-width', 'padding-left', 'padding-right', 'border-right-width']; } return properties.inject(dim, function(memo, property) { var val = proceed(element, property); return val === null ? memo : memo - parseInt(val, 10); }) + 'px'; default: return proceed(element, style); } } ); Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( function(proceed, element, attribute) { if (attribute === 'title') return element.title; return proceed(element, attribute); } ); } else if (Prototype.Browser.IE) { Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( function(proceed, element) { element = $(element); try { element.offsetParent } catch(e) { return $(document.body) } var position = element.getStyle('position'); if (position !== 'static') return proceed(element); element.setStyle({ position: 'relative' }); var value = proceed(element); element.setStyle({ position: position }); return value; } ); $w('positionedOffset viewportOffset').each(function(method) { Element.Methods[method] = Element.Methods[method].wrap( function(proceed, element) { element = $(element); try { element.offsetParent } catch(e) { return Element._returnOffset(0,0) } var position = element.getStyle('position'); if (position !== 'static') return proceed(element); var offsetParent = element.getOffsetParent(); if (offsetParent && offsetParent.getStyle('position') === 'fixed') offsetParent.setStyle({ zoom: 1 }); element.setStyle({ position: 'relative' }); var value = proceed(element); element.setStyle({ position: position }); return value; } ); }); Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap( function(proceed, element) { try { element.offsetParent } catch(e) { return Element._returnOffset(0,0) } return proceed(element); } ); Element.Methods.getStyle = function(element, style) { element = $(element); style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); var value = element.style[style]; if (!value && element.currentStyle) value = element.currentStyle[style]; if (style == 'opacity') { if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) if (value[1]) return parseFloat(value[1]) / 100; return 1.0; } if (value == 'auto') { if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) return element['offset' + style.capitalize()] + 'px'; return null; } return value; }; Element.Methods.setOpacity = function(element, value) { function stripAlpha(filter){ return filter.replace(/alpha\([^\)]*\)/gi,''); } element = $(element); var currentStyle = element.currentStyle; if ((currentStyle && !currentStyle.hasLayout) || (!currentStyle && element.style.zoom == 'normal')) element.style.zoom = 1; var filter = element.getStyle('filter'), style = element.style; if (value == 1 || value === '') { (filter = stripAlpha(filter)) ? style.filter = filter : style.removeAttribute('filter'); return element; } else if (value < 0.00001) value = 0; style.filter = stripAlpha(filter) + 'alpha(opacity=' + (value * 100) + ')'; return element; }; Element._attributeTranslations = (function(){ var classProp = 'className'; var forProp = 'for'; var el = document.createElement('div'); el.setAttribute(classProp, 'x'); if (el.className !== 'x') { el.setAttribute('class', 'x'); if (el.className === 'x') { classProp = 'class'; } } el = null; el = document.createElement('label'); el.setAttribute(forProp, 'x'); if (el.htmlFor !== 'x') { el.setAttribute('htmlFor', 'x'); if (el.htmlFor === 'x') { forProp = 'htmlFor'; } } el = null; return { read: { names: { 'class': classProp, 'className': classProp, 'for': forProp, 'htmlFor': forProp }, values: { _getAttr: function(element, attribute) { return element.getAttribute(attribute); }, _getAttr2: function(element, attribute) { return element.getAttribute(attribute, 2); }, _getAttrNode: function(element, attribute) { var node = element.getAttributeNode(attribute); return node ? node.value : ""; }, _getEv: (function(){ var el = document.createElement('div'); el.onclick = Prototype.emptyFunction; var value = el.getAttribute('onclick'); var f; if (String(value).indexOf('{') > -1) { f = function(element, attribute) { attribute = element.getAttribute(attribute); if (!attribute) return null; attribute = attribute.toString(); attribute = attribute.split('{')[1]; attribute = attribute.split('}')[0]; return attribute.strip(); }; } else if (value === '') { f = function(element, attribute) { attribute = element.getAttribute(attribute); if (!attribute) return null; return attribute.strip(); }; } el = null; return f; })(), _flag: function(element, attribute) { return $(element).hasAttribute(attribute) ? attribute : null; }, style: function(element) { return element.style.cssText.toLowerCase(); }, title: function(element) { return element.title; } } } } })(); Element._attributeTranslations.write = { names: Object.extend({ cellpadding: 'cellPadding', cellspacing: 'cellSpacing' }, Element._attributeTranslations.read.names), values: { checked: function(element, value) { element.checked = !!value; }, style: function(element, value) { element.style.cssText = value ? value : ''; } } }; Element._attributeTranslations.has = {}; $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + 'encType maxLength readOnly longDesc frameBorder').each(function(attr) { Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; Element._attributeTranslations.has[attr.toLowerCase()] = attr; }); (function(v) { Object.extend(v, { href: v._getAttr2, src: v._getAttr2, type: v._getAttr, action: v._getAttrNode, disabled: v._flag, checked: v._flag, readonly: v._flag, multiple: v._flag, onload: v._getEv, onunload: v._getEv, onclick: v._getEv, ondblclick: v._getEv, onmousedown: v._getEv, onmouseup: v._getEv, onmouseover: v._getEv, onmousemove: v._getEv, onmouseout: v._getEv, onfocus: v._getEv, onblur: v._getEv, onkeypress: v._getEv, onkeydown: v._getEv, onkeyup: v._getEv, onsubmit: v._getEv, onreset: v._getEv, onselect: v._getEv, onchange: v._getEv }); })(Element._attributeTranslations.read.values); if (Prototype.BrowserFeatures.ElementExtensions) { (function() { function _descendants(element) { var nodes = element.getElementsByTagName('*'), results = []; for (var i = 0, node; node = nodes[i]; i++) if (node.tagName !== "!") // Filter out comment nodes. results.push(node); return results; } Element.Methods.down = function(element, expression, index) { element = $(element); if (arguments.length == 1) return element.firstDescendant(); return Object.isNumber(expression) ? _descendants(element)[expression] : Element.select(element, expression)[index || 0]; } })(); } } else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { Element.Methods.setOpacity = function(element, value) { element = $(element); element.style.opacity = (value == 1) ? 0.999999 : (value === '') ? '' : (value < 0.00001) ? 0 : value; return element; }; } else if (Prototype.Browser.WebKit) { Element.Methods.setOpacity = function(element, value) { element = $(element); element.style.opacity = (value == 1 || value === '') ? '' : (value < 0.00001) ? 0 : value; if (value == 1) if(element.tagName.toUpperCase() == 'IMG' && element.width) { element.width++; element.width--; } else try { var n = document.createTextNode(' '); element.appendChild(n); element.removeChild(n); } catch (e) { } return element; }; Element.Methods.cumulativeOffset = function(element) { var valueT = 0, valueL = 0; do { valueT += element.offsetTop || 0; valueL += element.offsetLeft || 0; if (element.offsetParent == document.body) if (Element.getStyle(element, 'position') == 'absolute') break; element = element.offsetParent; } while (element); return Element._returnOffset(valueL, valueT); }; } if ('outerHTML' in document.documentElement) { Element.Methods.replace = function(element, content) { element = $(element); if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) { element.parentNode.replaceChild(content, element); return element; } content = Object.toHTML(content); var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); if (Element._insertionTranslations.tags[tagName]) { var nextSibling = element.next(); var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); parent.removeChild(element); if (nextSibling) fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); else fragments.each(function(node) { parent.appendChild(node) }); } else element.outerHTML = content.stripScripts(); content.evalScripts.bind(content).defer(); return element; }; } Element._returnOffset = function(l, t) { var result = [l, t]; result.left = l; result.top = t; return result; }; Element._getContentFromAnonymousElement = function(tagName, html) { var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; if (t) { div.innerHTML = t[0] + html + t[1]; t[2].times(function() { div = div.firstChild }); } else div.innerHTML = html; return $A(div.childNodes); }; Element._insertionTranslations = { before: function(element, node) { element.parentNode.insertBefore(node, element); }, top: function(element, node) { element.insertBefore(node, element.firstChild); }, bottom: function(element, node) { element.appendChild(node); }, after: function(element, node) { element.parentNode.insertBefore(node, element.nextSibling); }, tags: { TABLE: ['', '
', 1], TBODY: ['', '
', 2], TR: ['', '
', 3], TD: ['
', '
', 4], SELECT: ['', 1] } }; (function() { var tags = Element._insertionTranslations.tags; Object.extend(tags, { THEAD: tags.TBODY, TFOOT: tags.TBODY, TH: tags.TD }); })(); Element.Methods.Simulated = { hasAttribute: function(element, attribute) { attribute = Element._attributeTranslations.has[attribute] || attribute; var node = $(element).getAttributeNode(attribute); return !!(node && node.specified); } }; Element.Methods.ByTag = { }; Object.extend(Element, Element.Methods); (function(div) { if (!Prototype.BrowserFeatures.ElementExtensions && div['__proto__']) { window.HTMLElement = { }; window.HTMLElement.prototype = div['__proto__']; Prototype.BrowserFeatures.ElementExtensions = true; } div = null; })(document.createElement('div')) Element.extend = (function() { function checkDeficiency(tagName) { if (typeof window.Element != 'undefined') { var proto = window.Element.prototype; if (proto) { var id = '_' + (Math.random()+'').slice(2); var el = document.createElement(tagName); proto[id] = 'x'; var isBuggy = (el[id] !== 'x'); delete proto[id]; el = null; return isBuggy; } } return false; } function extendElementWith(element, methods) { for (var property in methods) { var value = methods[property]; if (Object.isFunction(value) && !(property in element)) element[property] = value.methodize(); } } var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY = checkDeficiency('object'); if (Prototype.BrowserFeatures.SpecificElementExtensions) { if (HTMLOBJECTELEMENT_PROTOTYPE_BUGGY) { return function(element) { if (element && typeof element._extendedByPrototype == 'undefined') { var t = element.tagName; if (t && (/^(?:object|applet|embed)$/i.test(t))) { extendElementWith(element, Element.Methods); extendElementWith(element, Element.Methods.Simulated); extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]); } } return element; } } return Prototype.K; } var Methods = { }, ByTag = Element.Methods.ByTag; var extend = Object.extend(function(element) { if (!element || typeof element._extendedByPrototype != 'undefined' || element.nodeType != 1 || element == window) return element; var methods = Object.clone(Methods), tagName = element.tagName.toUpperCase(); if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); extendElementWith(element, methods); element._extendedByPrototype = Prototype.emptyFunction; return element; }, { refresh: function() { if (!Prototype.BrowserFeatures.ElementExtensions) { Object.extend(Methods, Element.Methods); Object.extend(Methods, Element.Methods.Simulated); } } }); extend.refresh(); return extend; })(); Element.hasAttribute = function(element, attribute) { if (element.hasAttribute) return element.hasAttribute(attribute); return Element.Methods.Simulated.hasAttribute(element, attribute); }; Element.addMethods = function(methods) { var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; if (!methods) { Object.extend(Form, Form.Methods); Object.extend(Form.Element, Form.Element.Methods); Object.extend(Element.Methods.ByTag, { "FORM": Object.clone(Form.Methods), "INPUT": Object.clone(Form.Element.Methods), "SELECT": Object.clone(Form.Element.Methods), "TEXTAREA": Object.clone(Form.Element.Methods) }); } if (arguments.length == 2) { var tagName = methods; methods = arguments[1]; } if (!tagName) Object.extend(Element.Methods, methods || { }); else { if (Object.isArray(tagName)) tagName.each(extend); else extend(tagName); } function extend(tagName) { tagName = tagName.toUpperCase(); if (!Element.Methods.ByTag[tagName]) Element.Methods.ByTag[tagName] = { }; Object.extend(Element.Methods.ByTag[tagName], methods); } function copy(methods, destination, onlyIfAbsent) { onlyIfAbsent = onlyIfAbsent || false; for (var property in methods) { var value = methods[property]; if (!Object.isFunction(value)) continue; if (!onlyIfAbsent || !(property in destination)) destination[property] = value.methodize(); } } function findDOMClass(tagName) { var klass; var trans = { "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": "FrameSet", "IFRAME": "IFrame" }; if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; if (window[klass]) return window[klass]; klass = 'HTML' + tagName + 'Element'; if (window[klass]) return window[klass]; klass = 'HTML' + tagName.capitalize() + 'Element'; if (window[klass]) return window[klass]; var element = document.createElement(tagName); var proto = element['__proto__'] || element.constructor.prototype; element = null; return proto; } var elementPrototype = window.HTMLElement ? HTMLElement.prototype : Element.prototype; if (F.ElementExtensions) { copy(Element.Methods, elementPrototype); copy(Element.Methods.Simulated, elementPrototype, true); } if (F.SpecificElementExtensions) { for (var tag in Element.Methods.ByTag) { var klass = findDOMClass(tag); if (Object.isUndefined(klass)) continue; copy(T[tag], klass.prototype); } } Object.extend(Element, Element.Methods); delete Element.ByTag; if (Element.extend.refresh) Element.extend.refresh(); Element.cache = { }; }; document.viewport = { getDimensions: function() { return { width: this.getWidth(), height: this.getHeight() }; }, getScrollOffsets: function() { return Element._returnOffset( window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); } }; (function(viewport) { var B = Prototype.Browser, doc = document, element, property = {}; function getRootElement() { if (B.WebKit && !doc.evaluate) return document; if (B.Opera && window.parseFloat(window.opera.version()) < 9.5) return document.body; return document.documentElement; } function define(D) { if (!element) element = getRootElement(); property[D] = 'client' + D; viewport['get' + D] = function() { return element[property[D]] }; return viewport['get' + D](); } viewport.getWidth = define.curry('Width'); viewport.getHeight = define.curry('Height'); })(document.viewport); Element.Storage = { UID: 1 }; Element.addMethods({ getStorage: function(element) { if (!(element = $(element))) return; var uid; if (element === window) { uid = 0; } else { if (typeof element._prototypeUID === "undefined") element._prototypeUID = [Element.Storage.UID++]; uid = element._prototypeUID[0]; } if (!Element.Storage[uid]) Element.Storage[uid] = $H(); return Element.Storage[uid]; }, store: function(element, key, value) { if (!(element = $(element))) return; if (arguments.length === 2) { Element.getStorage(element).update(key); } else { Element.getStorage(element).set(key, value); } return element; }, retrieve: function(element, key, defaultValue) { if (!(element = $(element))) return; var hash = Element.getStorage(element), value = hash.get(key); if (Object.isUndefined(value)) { hash.set(key, defaultValue); value = defaultValue; } return value; }, clone: function(element, deep) { if (!(element = $(element))) return; var clone = element.cloneNode(deep); clone._prototypeUID = void 0; if (deep) { var descendants = Element.select(clone, '*'), i = descendants.length; while (i--) { descendants[i]._prototypeUID = void 0; } } return Element.extend(clone); } }); /* Portions of the Selector class are derived from Jack Slocum's DomQuery, * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style * license. Please see http://www.yui-ext.com/ for more information. */ var Selector = Class.create({ initialize: function(expression) { this.expression = expression.strip(); if (this.shouldUseSelectorsAPI()) { this.mode = 'selectorsAPI'; } else if (this.shouldUseXPath()) { this.mode = 'xpath'; this.compileXPathMatcher(); } else { this.mode = "normal"; this.compileMatcher(); } }, shouldUseXPath: (function() { var IS_DESCENDANT_SELECTOR_BUGGY = (function(){ var isBuggy = false; if (document.evaluate && window.XPathResult) { var el = document.createElement('div'); el.innerHTML = '
'; var xpath = ".//*[local-name()='ul' or local-name()='UL']" + "//*[local-name()='li' or local-name()='LI']"; var result = document.evaluate(xpath, el, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); isBuggy = (result.snapshotLength !== 2); el = null; } return isBuggy; })(); return function() { if (!Prototype.BrowserFeatures.XPath) return false; var e = this.expression; if (Prototype.Browser.WebKit && (e.include("-of-type") || e.include(":empty"))) return false; if ((/(\[[\w-]*?:|:checked)/).test(e)) return false; if (IS_DESCENDANT_SELECTOR_BUGGY) return false; return true; } })(), shouldUseSelectorsAPI: function() { if (!Prototype.BrowserFeatures.SelectorsAPI) return false; if (Selector.CASE_INSENSITIVE_CLASS_NAMES) return false; if (!Selector._div) Selector._div = new Element('div'); try { Selector._div.querySelector(this.expression); } catch(e) { return false; } return true; }, compileMatcher: function() { var e = this.expression, ps = Selector.patterns, h = Selector.handlers, c = Selector.criteria, le, p, m, len = ps.length, name; if (Selector._cache[e]) { this.matcher = Selector._cache[e]; return; } this.matcher = ["this.matcher = function(root) {", "var r = root, h = Selector.handlers, c = false, n;"]; while (e && le != e && (/\S/).test(e)) { le = e; for (var i = 0; i"; } }); if (Prototype.BrowserFeatures.SelectorsAPI && document.compatMode === 'BackCompat') { Selector.CASE_INSENSITIVE_CLASS_NAMES = (function(){ var div = document.createElement('div'), span = document.createElement('span'); div.id = "prototype_test_id"; span.className = 'Test'; div.appendChild(span); var isIgnored = (div.querySelector('#prototype_test_id .test') !== null); div = span = null; return isIgnored; })(); } Object.extend(Selector, { _cache: { }, xpath: { descendant: "//*", child: "/*", adjacent: "/following-sibling::*[1]", laterSibling: '/following-sibling::*', tagName: function(m) { if (m[1] == '*') return ''; return "[local-name()='" + m[1].toLowerCase() + "' or local-name()='" + m[1].toUpperCase() + "']"; }, className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", id: "[@id='#{1}']", attrPresence: function(m) { m[1] = m[1].toLowerCase(); return new Template("[@#{1}]").evaluate(m); }, attr: function(m) { m[1] = m[1].toLowerCase(); m[3] = m[5] || m[6]; return new Template(Selector.xpath.operators[m[2]]).evaluate(m); }, pseudo: function(m) { var h = Selector.xpath.pseudos[m[1]]; if (!h) return ''; if (Object.isFunction(h)) return h(m); return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); }, operators: { '=': "[@#{1}='#{3}']", '!=': "[@#{1}!='#{3}']", '^=': "[starts-with(@#{1}, '#{3}')]", '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", '*=': "[contains(@#{1}, '#{3}')]", '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" }, pseudos: { 'first-child': '[not(preceding-sibling::*)]', 'last-child': '[not(following-sibling::*)]', 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', 'empty': "[count(*) = 0 and (count(text()) = 0)]", 'checked': "[@checked]", 'disabled': "[(@disabled) and (@type!='hidden')]", 'enabled': "[not(@disabled) and (@type!='hidden')]", 'not': function(m) { var e = m[6], p = Selector.patterns, x = Selector.xpath, le, v, len = p.length, name; var exclusion = []; while (e && le != e && (/\S/).test(e)) { le = e; for (var i = 0; i= 0)]"; return new Template(predicate).evaluate({ fragment: fragment, a: a, b: b }); } } } }, criteria: { tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', className: 'n = h.className(n, r, "#{1}", c); c = false;', id: 'n = h.id(n, r, "#{1}", c); c = false;', attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', attr: function(m) { m[3] = (m[5] || m[6]); return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); }, pseudo: function(m) { if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); }, descendant: 'c = "descendant";', child: 'c = "child";', adjacent: 'c = "adjacent";', laterSibling: 'c = "laterSibling";' }, patterns: [ { name: 'laterSibling', re: /^\s*~\s*/ }, { name: 'child', re: /^\s*>\s*/ }, { name: 'adjacent', re: /^\s*\+\s*/ }, { name: 'descendant', re: /^\s/ }, { name: 'tagName', re: /^\s*(\*|[\w\-]+)(\b|$)?/ }, { name: 'id', re: /^#([\w\-\*]+)(\b|$)/ }, { name: 'className', re: /^\.([\w\-\*]+)(\b|$)/ }, { name: 'pseudo', re: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/ }, { name: 'attrPresence', re: /^\[((?:[\w-]+:)?[\w-]+)\]/ }, { name: 'attr', re: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ } ], assertions: { tagName: function(element, matches) { return matches[1].toUpperCase() == element.tagName.toUpperCase(); }, className: function(element, matches) { return Element.hasClassName(element, matches[1]); }, id: function(element, matches) { return element.id === matches[1]; }, attrPresence: function(element, matches) { return Element.hasAttribute(element, matches[1]); }, attr: function(element, matches) { var nodeValue = Element.readAttribute(element, matches[1]); return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); } }, handlers: { concat: function(a, b) { for (var i = 0, node; node = b[i]; i++) a.push(node); return a; }, mark: function(nodes) { var _true = Prototype.emptyFunction; for (var i = 0, node; node = nodes[i]; i++) node._countedByPrototype = _true; return nodes; }, unmark: (function(){ var PROPERTIES_ATTRIBUTES_MAP = (function(){ var el = document.createElement('div'), isBuggy = false, propName = '_countedByPrototype', value = 'x' el[propName] = value; isBuggy = (el.getAttribute(propName) === value); el = null; return isBuggy; })(); return PROPERTIES_ATTRIBUTES_MAP ? function(nodes) { for (var i = 0, node; node = nodes[i]; i++) node.removeAttribute('_countedByPrototype'); return nodes; } : function(nodes) { for (var i = 0, node; node = nodes[i]; i++) node._countedByPrototype = void 0; return nodes; } })(), index: function(parentNode, reverse, ofType) { parentNode._countedByPrototype = Prototype.emptyFunction; if (reverse) { for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { var node = nodes[i]; if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; } } else { for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; } }, unique: function(nodes) { if (nodes.length == 0) return nodes; var results = [], n; for (var i = 0, l = nodes.length; i < l; i++) if (typeof (n = nodes[i])._countedByPrototype == 'undefined') { n._countedByPrototype = Prototype.emptyFunction; results.push(Element.extend(n)); } return Selector.handlers.unmark(results); }, descendant: function(nodes) { var h = Selector.handlers; for (var i = 0, results = [], node; node = nodes[i]; i++) h.concat(results, node.getElementsByTagName('*')); return results; }, child: function(nodes) { var h = Selector.handlers; for (var i = 0, results = [], node; node = nodes[i]; i++) { for (var j = 0, child; child = node.childNodes[j]; j++) if (child.nodeType == 1 && child.tagName != '!') results.push(child); } return results; }, adjacent: function(nodes) { for (var i = 0, results = [], node; node = nodes[i]; i++) { var next = this.nextElementSibling(node); if (next) results.push(next); } return results; }, laterSibling: function(nodes) { var h = Selector.handlers; for (var i = 0, results = [], node; node = nodes[i]; i++) h.concat(results, Element.nextSiblings(node)); return results; }, nextElementSibling: function(node) { while (node = node.nextSibling) if (node.nodeType == 1) return node; return null; }, previousElementSibling: function(node) { while (node = node.previousSibling) if (node.nodeType == 1) return node; return null; }, tagName: function(nodes, root, tagName, combinator) { var uTagName = tagName.toUpperCase(); var results = [], h = Selector.handlers; if (nodes) { if (combinator) { if (combinator == "descendant") { for (var i = 0, node; node = nodes[i]; i++) h.concat(results, node.getElementsByTagName(tagName)); return results; } else nodes = this[combinator](nodes); if (tagName == "*") return nodes; } for (var i = 0, node; node = nodes[i]; i++) if (node.tagName.toUpperCase() === uTagName) results.push(node); return results; } else return root.getElementsByTagName(tagName); }, id: function(nodes, root, id, combinator) { var targetNode = $(id), h = Selector.handlers; if (root == document) { if (!targetNode) return []; if (!nodes) return [targetNode]; } else { if (!root.sourceIndex || root.sourceIndex < 1) { var nodes = root.getElementsByTagName('*'); for (var j = 0, node; node = nodes[j]; j++) { if (node.id === id) return [node]; } } } if (nodes) { if (combinator) { if (combinator == 'child') { for (var i = 0, node; node = nodes[i]; i++) if (targetNode.parentNode == node) return [targetNode]; } else if (combinator == 'descendant') { for (var i = 0, node; node = nodes[i]; i++) if (Element.descendantOf(targetNode, node)) return [targetNode]; } else if (combinator == 'adjacent') { for (var i = 0, node; node = nodes[i]; i++) if (Selector.handlers.previousElementSibling(targetNode) == node) return [targetNode]; } else nodes = h[combinator](nodes); } for (var i = 0, node; node = nodes[i]; i++) if (node == targetNode) return [targetNode]; return []; } return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; }, className: function(nodes, root, className, combinator) { if (nodes && combinator) nodes = this[combinator](nodes); return Selector.handlers.byClassName(nodes, root, className); }, byClassName: function(nodes, root, className) { if (!nodes) nodes = Selector.handlers.descendant([root]); var needle = ' ' + className + ' '; for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { nodeClassName = node.className; if (nodeClassName.length == 0) continue; if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) results.push(node); } return results; }, attrPresence: function(nodes, root, attr, combinator) { if (!nodes) nodes = root.getElementsByTagName("*"); if (nodes && combinator) nodes = this[combinator](nodes); var results = []; for (var i = 0, node; node = nodes[i]; i++) if (Element.hasAttribute(node, attr)) results.push(node); return results; }, attr: function(nodes, root, attr, value, operator, combinator) { if (!nodes) nodes = root.getElementsByTagName("*"); if (nodes && combinator) nodes = this[combinator](nodes); var handler = Selector.operators[operator], results = []; for (var i = 0, node; node = nodes[i]; i++) { var nodeValue = Element.readAttribute(node, attr); if (nodeValue === null) continue; if (handler(nodeValue, value)) results.push(node); } return results; }, pseudo: function(nodes, name, value, root, combinator) { if (nodes && combinator) nodes = this[combinator](nodes); if (!nodes) nodes = root.getElementsByTagName("*"); return Selector.pseudos[name](nodes, value, root); } }, pseudos: { 'first-child': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) { if (Selector.handlers.previousElementSibling(node)) continue; results.push(node); } return results; }, 'last-child': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) { if (Selector.handlers.nextElementSibling(node)) continue; results.push(node); } return results; }, 'only-child': function(nodes, value, root) { var h = Selector.handlers; for (var i = 0, results = [], node; node = nodes[i]; i++) if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) results.push(node); return results; }, 'nth-child': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root); }, 'nth-last-child': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, true); }, 'nth-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, false, true); }, 'nth-last-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, true, true); }, 'first-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, "1", root, false, true); }, 'last-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, "1", root, true, true); }, 'only-of-type': function(nodes, formula, root) { var p = Selector.pseudos; return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); }, getIndices: function(a, b, total) { if (a == 0) return b > 0 ? [b] : []; return $R(1, total).inject([], function(memo, i) { if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); return memo; }); }, nth: function(nodes, formula, root, reverse, ofType) { if (nodes.length == 0) return []; if (formula == 'even') formula = '2n+0'; if (formula == 'odd') formula = '2n+1'; var h = Selector.handlers, results = [], indexed = [], m; h.mark(nodes); for (var i = 0, node; node = nodes[i]; i++) { if (!node.parentNode._countedByPrototype) { h.index(node.parentNode, reverse, ofType); indexed.push(node.parentNode); } } if (formula.match(/^\d+$/)) { // just a number formula = Number(formula); for (var i = 0, node; node = nodes[i]; i++) if (node.nodeIndex == formula) results.push(node); } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b if (m[1] == "-") m[1] = -1; var a = m[1] ? Number(m[1]) : 1; var b = m[2] ? Number(m[2]) : 0; var indices = Selector.pseudos.getIndices(a, b, nodes.length); for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { for (var j = 0; j < l; j++) if (node.nodeIndex == indices[j]) results.push(node); } } h.unmark(nodes); h.unmark(indexed); return results; }, 'empty': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) { if (node.tagName == '!' || node.firstChild) continue; results.push(node); } return results; }, 'not': function(nodes, selector, root) { var h = Selector.handlers, selectorType, m; var exclusions = new Selector(selector).findElements(root); h.mark(exclusions); for (var i = 0, results = [], node; node = nodes[i]; i++) if (!node._countedByPrototype) results.push(node); h.unmark(exclusions); return results; }, 'enabled': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) if (!node.disabled && (!node.type || node.type !== 'hidden')) results.push(node); return results; }, 'disabled': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) if (node.disabled) results.push(node); return results; }, 'checked': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) if (node.checked) results.push(node); return results; } }, operators: { '=': function(nv, v) { return nv == v; }, '!=': function(nv, v) { return nv != v; }, '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); }, '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); }, '*=': function(nv, v) { return nv == v || nv && nv.include(v); }, '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() + '-').include('-' + (v || "").toUpperCase() + '-'); } }, split: function(expression) { var expressions = []; expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { expressions.push(m[1].strip()); }); return expressions; }, matchElements: function(elements, expression) { var matches = $$(expression), h = Selector.handlers; h.mark(matches); for (var i = 0, results = [], element; element = elements[i]; i++) if (element._countedByPrototype) results.push(element); h.unmark(matches); return results; }, findElement: function(elements, expression, index) { if (Object.isNumber(expression)) { index = expression; expression = false; } return Selector.matchElements(elements, expression || '*')[index || 0]; }, findChildElements: function(element, expressions) { expressions = Selector.split(expressions.join(',')); var results = [], h = Selector.handlers; for (var i = 0, l = expressions.length, selector; i < l; i++) { selector = new Selector(expressions[i].strip()); h.concat(results, selector.findElements(element)); } return (l > 1) ? h.unique(results) : results; } }); if (Prototype.Browser.IE) { Object.extend(Selector.handlers, { concat: function(a, b) { for (var i = 0, node; node = b[i]; i++) if (node.tagName !== "!") a.push(node); return a; } }); } function $$() { return Selector.findChildElements(document, $A(arguments)); } var Form = { reset: function(form) { form = $(form); form.reset(); return form; }, serializeElements: function(elements, options) { if (typeof options != 'object') options = { hash: !!options }; else if (Object.isUndefined(options.hash)) options.hash = true; var key, value, submitted = false, submit = options.submit; var data = elements.inject({ }, function(result, element) { if (!element.disabled && element.name) { key = element.name; value = $(element).getValue(); if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted && submit !== false && (!submit || key == submit) && (submitted = true)))) { if (key in result) { if (!Object.isArray(result[key])) result[key] = [result[key]]; result[key].push(value); } else result[key] = value; } } return result; }); return options.hash ? data : Object.toQueryString(data); } }; Form.Methods = { serialize: function(form, options) { return Form.serializeElements(Form.getElements(form), options); }, getElements: function(form) { var elements = $(form).getElementsByTagName('*'), element, arr = [ ], serializers = Form.Element.Serializers; for (var i = 0; element = elements[i]; i++) { arr.push(element); } return arr.inject([], function(elements, child) { if (serializers[child.tagName.toLowerCase()]) elements.push(Element.extend(child)); return elements; }) }, getInputs: function(form, typeName, name) { form = $(form); var inputs = form.getElementsByTagName('input'); if (!typeName && !name) return $A(inputs).map(Element.extend); for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { var input = inputs[i]; if ((typeName && input.type != typeName) || (name && input.name != name)) continue; matchingInputs.push(Element.extend(input)); } return matchingInputs; }, disable: function(form) { form = $(form); Form.getElements(form).invoke('disable'); return form; }, enable: function(form) { form = $(form); Form.getElements(form).invoke('enable'); return form; }, findFirstElement: function(form) { var elements = $(form).getElements().findAll(function(element) { return 'hidden' != element.type && !element.disabled; }); var firstByIndex = elements.findAll(function(element) { return element.hasAttribute('tabIndex') && element.tabIndex >= 0; }).sortBy(function(element) { return element.tabIndex }).first(); return firstByIndex ? firstByIndex : elements.find(function(element) { return /^(?:input|select|textarea)$/i.test(element.tagName); }); }, focusFirstElement: function(form) { form = $(form); form.findFirstElement().activate(); return form; }, request: function(form, options) { form = $(form), options = Object.clone(options || { }); var params = options.parameters, action = form.readAttribute('action') || ''; if (action.blank()) action = window.location.href; options.parameters = form.serialize(true); if (params) { if (Object.isString(params)) params = params.toQueryParams(); Object.extend(options.parameters, params); } if (form.hasAttribute('method') && !options.method) options.method = form.method; return new Ajax.Request(action, options); } }; /*--------------------------------------------------------------------------*/ Form.Element = { focus: function(element) { $(element).focus(); return element; }, select: function(element) { $(element).select(); return element; } }; Form.Element.Methods = { serialize: function(element) { element = $(element); if (!element.disabled && element.name) { var value = element.getValue(); if (value != undefined) { var pair = { }; pair[element.name] = value; return Object.toQueryString(pair); } } return ''; }, getValue: function(element) { element = $(element); var method = element.tagName.toLowerCase(); return Form.Element.Serializers[method](element); }, setValue: function(element, value) { element = $(element); var method = element.tagName.toLowerCase(); Form.Element.Serializers[method](element, value); return element; }, clear: function(element) { $(element).value = ''; return element; }, present: function(element) { return $(element).value != ''; }, activate: function(element) { element = $(element); try { element.focus(); if (element.select && (element.tagName.toLowerCase() != 'input' || !(/^(?:button|reset|submit)$/i.test(element.type)))) element.select(); } catch (e) { } return element; }, disable: function(element) { element = $(element); element.disabled = true; return element; }, enable: function(element) { element = $(element); element.disabled = false; return element; } }; /*--------------------------------------------------------------------------*/ var Field = Form.Element; var $F = Form.Element.Methods.getValue; /*--------------------------------------------------------------------------*/ Form.Element.Serializers = { input: function(element, value) { switch (element.type.toLowerCase()) { case 'checkbox': case 'radio': return Form.Element.Serializers.inputSelector(element, value); default: return Form.Element.Serializers.textarea(element, value); } }, inputSelector: function(element, value) { if (Object.isUndefined(value)) return element.checked ? element.value : null; else element.checked = !!value; }, textarea: function(element, value) { if (Object.isUndefined(value)) return element.value; else element.value = value; }, select: function(element, value) { if (Object.isUndefined(value)) return this[element.type == 'select-one' ? 'selectOne' : 'selectMany'](element); else { var opt, currentValue, single = !Object.isArray(value); for (var i = 0, length = element.length; i < length; i++) { opt = element.options[i]; currentValue = this.optionValue(opt); if (single) { if (currentValue == value) { opt.selected = true; return; } } else opt.selected = value.include(currentValue); } } }, selectOne: function(element) { var index = element.selectedIndex; return index >= 0 ? this.optionValue(element.options[index]) : null; }, selectMany: function(element) { var values, length = element.length; if (!length) return null; for (var i = 0, values = []; i < length; i++) { var opt = element.options[i]; if (opt.selected) values.push(this.optionValue(opt)); } return values; }, optionValue: function(opt) { return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; } }; /*--------------------------------------------------------------------------*/ Abstract.TimedObserver = Class.create(PeriodicalExecuter, { initialize: function($super, element, frequency, callback) { $super(callback, frequency); this.element = $(element); this.lastValue = this.getValue(); }, execute: function() { var value = this.getValue(); if (Object.isString(this.lastValue) && Object.isString(value) ? this.lastValue != value : String(this.lastValue) != String(value)) { this.callback(this.element, value); this.lastValue = value; } } }); Form.Element.Observer = Class.create(Abstract.TimedObserver, { getValue: function() { return Form.Element.getValue(this.element); } }); Form.Observer = Class.create(Abstract.TimedObserver, { getValue: function() { return Form.serialize(this.element); } }); /*--------------------------------------------------------------------------*/ Abstract.EventObserver = Class.create({ initialize: function(element, callback) { this.element = $(element); this.callback = callback; this.lastValue = this.getValue(); if (this.element.tagName.toLowerCase() == 'form') this.registerFormCallbacks(); else this.registerCallback(this.element); }, onElementEvent: function() { var value = this.getValue(); if (this.lastValue != value) { this.callback(this.element, value); this.lastValue = value; } }, registerFormCallbacks: function() { Form.getElements(this.element).each(this.registerCallback, this); }, registerCallback: function(element) { if (element.type) { switch (element.type.toLowerCase()) { case 'checkbox': case 'radio': Event.observe(element, 'click', this.onElementEvent.bind(this)); break; default: Event.observe(element, 'change', this.onElementEvent.bind(this)); break; } } } }); Form.Element.EventObserver = Class.create(Abstract.EventObserver, { getValue: function() { return Form.Element.getValue(this.element); } }); Form.EventObserver = Class.create(Abstract.EventObserver, { getValue: function() { return Form.serialize(this.element); } }); (function() { var Event = { KEY_BACKSPACE: 8, KEY_TAB: 9, KEY_RETURN: 13, KEY_ESC: 27, KEY_LEFT: 37, KEY_UP: 38, KEY_RIGHT: 39, KEY_DOWN: 40, KEY_DELETE: 46, KEY_HOME: 36, KEY_END: 35, KEY_PAGEUP: 33, KEY_PAGEDOWN: 34, KEY_INSERT: 45, cache: {} }; var docEl = document.documentElement; var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl && 'onmouseleave' in docEl; var _isButton; if (Prototype.Browser.IE) { var buttonMap = { 0: 1, 1: 4, 2: 2 }; _isButton = function(event, code) { return event.button === buttonMap[code]; }; } else if (Prototype.Browser.WebKit) { _isButton = function(event, code) { switch (code) { case 0: return event.which == 1 && !event.metaKey; case 1: return event.which == 1 && event.metaKey; default: return false; } }; } else { _isButton = function(event, code) { return event.which ? (event.which === code + 1) : (event.button === code); }; } function isLeftClick(event) { return _isButton(event, 0) } function isMiddleClick(event) { return _isButton(event, 1) } function isRightClick(event) { return _isButton(event, 2) } function element(event) { event = Event.extend(event); var node = event.target, type = event.type, currentTarget = event.currentTarget; if (currentTarget && currentTarget.tagName) { if (type === 'load' || type === 'error' || (type === 'click' && currentTarget.tagName.toLowerCase() === 'input' && currentTarget.type === 'radio')) node = currentTarget; } if (node.nodeType == Node.TEXT_NODE) node = node.parentNode; return Element.extend(node); } function findElement(event, expression) { var element = Event.element(event); if (!expression) return element; var elements = [element].concat(element.ancestors()); return Selector.findElement(elements, expression, 0); } function pointer(event) { return { x: pointerX(event), y: pointerY(event) }; } function pointerX(event) { var docElement = document.documentElement, body = document.body || { scrollLeft: 0 }; return event.pageX || (event.clientX + (docElement.scrollLeft || body.scrollLeft) - (docElement.clientLeft || 0)); } function pointerY(event) { var docElement = document.documentElement, body = document.body || { scrollTop: 0 }; return event.pageY || (event.clientY + (docElement.scrollTop || body.scrollTop) - (docElement.clientTop || 0)); } function stop(event) { Event.extend(event); event.preventDefault(); event.stopPropagation(); event.stopped = true; } Event.Methods = { isLeftClick: isLeftClick, isMiddleClick: isMiddleClick, isRightClick: isRightClick, element: element, findElement: findElement, pointer: pointer, pointerX: pointerX, pointerY: pointerY, stop: stop }; var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { m[name] = Event.Methods[name].methodize(); return m; }); if (Prototype.Browser.IE) { function _relatedTarget(event) { var element; switch (event.type) { case 'mouseover': element = event.fromElement; break; case 'mouseout': element = event.toElement; break; default: return null; } return Element.extend(element); } Object.extend(methods, { stopPropagation: function() { this.cancelBubble = true }, preventDefault: function() { this.returnValue = false }, inspect: function() { return '[object Event]' } }); Event.extend = function(event, element) { if (!event) return false; if (event._extendedByPrototype) return event; event._extendedByPrototype = Prototype.emptyFunction; var pointer = Event.pointer(event); Object.extend(event, { target: event.srcElement || element, relatedTarget: _relatedTarget(event), pageX: pointer.x, pageY: pointer.y }); return Object.extend(event, methods); }; } else { Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__; Object.extend(Event.prototype, methods); Event.extend = Prototype.K; } function _createResponder(element, eventName, handler) { var registry = Element.retrieve(element, 'prototype_event_registry'); if (Object.isUndefined(registry)) { CACHE.push(element); registry = Element.retrieve(element, 'prototype_event_registry', $H()); } var respondersForEvent = registry.get(eventName); if (Object.isUndefined(respondersForEvent)) { respondersForEvent = []; registry.set(eventName, respondersForEvent); } if (respondersForEvent.pluck('handler').include(handler)) return false; var responder; if (eventName.include(":")) { responder = function(event) { if (Object.isUndefined(event.eventName)) return false; if (event.eventName !== eventName) return false; Event.extend(event, element); handler.call(element, event); }; } else { if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED && (eventName === "mouseenter" || eventName === "mouseleave")) { if (eventName === "mouseenter" || eventName === "mouseleave") { responder = function(event) { Event.extend(event, element); var parent = event.relatedTarget; while (parent && parent !== element) { try { parent = parent.parentNode; } catch(e) { parent = element; } } if (parent === element) return; handler.call(element, event); }; } } else { responder = function(event) { Event.extend(event, element); handler.call(element, event); }; } } responder.handler = handler; respondersForEvent.push(responder); return responder; } function _destroyCache() { for (var i = 0, length = CACHE.length; i < length; i++) { Event.stopObserving(CACHE[i]); CACHE[i] = null; } } var CACHE = []; if (Prototype.Browser.IE) window.attachEvent('onunload', _destroyCache); if (Prototype.Browser.WebKit) window.addEventListener('unload', Prototype.emptyFunction, false); var _getDOMEventName = Prototype.K; if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED) { _getDOMEventName = function(eventName) { var translations = { mouseenter: "mouseover", mouseleave: "mouseout" }; return eventName in translations ? translations[eventName] : eventName; }; } function observe(element, eventName, handler) { element = $(element); var responder = _createResponder(element, eventName, handler); if (!responder) return element; if (eventName.include(':')) { if (element.addEventListener) element.addEventListener("dataavailable", responder, false); else { element.attachEvent("ondataavailable", responder); element.attachEvent("onfilterchange", responder); } } else { var actualEventName = _getDOMEventName(eventName); if (element.addEventListener) element.addEventListener(actualEventName, responder, false); else element.attachEvent("on" + actualEventName, responder); } return element; } function stopObserving(element, eventName, handler) { element = $(element); var registry = Element.retrieve(element, 'prototype_event_registry'); if (Object.isUndefined(registry)) return element; if (eventName && !handler) { var responders = registry.get(eventName); if (Object.isUndefined(responders)) return element; responders.each( function(r) { Element.stopObserving(element, eventName, r.handler); }); return element; } else if (!eventName) { registry.each( function(pair) { var eventName = pair.key, responders = pair.value; responders.each( function(r) { Element.stopObserving(element, eventName, r.handler); }); }); return element; } var responders = registry.get(eventName); if (!responders) return; var responder = responders.find( function(r) { return r.handler === handler; }); if (!responder) return element; var actualEventName = _getDOMEventName(eventName); if (eventName.include(':')) { if (element.removeEventListener) element.removeEventListener("dataavailable", responder, false); else { element.detachEvent("ondataavailable", responder); element.detachEvent("onfilterchange", responder); } } else { if (element.removeEventListener) element.removeEventListener(actualEventName, responder, false); else element.detachEvent('on' + actualEventName, responder); } registry.set(eventName, responders.without(responder)); return element; } function fire(element, eventName, memo, bubble) { element = $(element); if (Object.isUndefined(bubble)) bubble = true; if (element == document && document.createEvent && !element.dispatchEvent) element = document.documentElement; var event; if (document.createEvent) { event = document.createEvent('HTMLEvents'); event.initEvent('dataavailable', true, true); } else { event = document.createEventObject(); event.eventType = bubble ? 'ondataavailable' : 'onfilterchange'; } event.eventName = eventName; event.memo = memo || { }; if (document.createEvent) element.dispatchEvent(event); else element.fireEvent(event.eventType, event); return Event.extend(event); } Object.extend(Event, Event.Methods); Object.extend(Event, { fire: fire, observe: observe, stopObserving: stopObserving }); Element.addMethods({ fire: fire, observe: observe, stopObserving: stopObserving }); Object.extend(document, { fire: fire.methodize(), observe: observe.methodize(), stopObserving: stopObserving.methodize(), loaded: false }); if (window.Event) Object.extend(window.Event, Event); else window.Event = Event; })(); (function() { /* Support for the DOMContentLoaded event is based on work by Dan Webb, Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */ var timer; function fireContentLoadedEvent() { if (document.loaded) return; if (timer) window.clearTimeout(timer); document.loaded = true; document.fire('dom:loaded'); } function checkReadyState() { if (document.readyState === 'complete') { document.stopObserving('readystatechange', checkReadyState); fireContentLoadedEvent(); } } function pollDoScroll() { try { document.documentElement.doScroll('left'); } catch(e) { timer = pollDoScroll.defer(); return; } fireContentLoadedEvent(); } if (document.addEventListener) { document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false); } else { document.observe('readystatechange', checkReadyState); if (window == top) timer = pollDoScroll.defer(); } Event.observe(window, 'load', fireContentLoadedEvent); })(); Element.addMethods(); /*------------------------------- DEPRECATED -------------------------------*/ Hash.toQueryString = Object.toQueryString; var Toggle = { display: Element.toggle }; Element.Methods.childOf = Element.Methods.descendantOf; var Insertion = { Before: function(element, content) { return Element.insert(element, {before:content}); }, Top: function(element, content) { return Element.insert(element, {top:content}); }, Bottom: function(element, content) { return Element.insert(element, {bottom:content}); }, After: function(element, content) { return Element.insert(element, {after:content}); } }; var $continue = new Error('"throw $continue" is deprecated, use "return" instead'); var Position = { includeScrollOffsets: false, prepare: function() { this.deltaX = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; this.deltaY = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; }, within: function(element, x, y) { if (this.includeScrollOffsets) return this.withinIncludingScrolloffsets(element, x, y); this.xcomp = x; this.ycomp = y; this.offset = Element.cumulativeOffset(element); return (y >= this.offset[1] && y < this.offset[1] + element.offsetHeight && x >= this.offset[0] && x < this.offset[0] + element.offsetWidth); }, withinIncludingScrolloffsets: function(element, x, y) { var offsetcache = Element.cumulativeScrollOffset(element); this.xcomp = x + offsetcache[0] - this.deltaX; this.ycomp = y + offsetcache[1] - this.deltaY; this.offset = Element.cumulativeOffset(element); return (this.ycomp >= this.offset[1] && this.ycomp < this.offset[1] + element.offsetHeight && this.xcomp >= this.offset[0] && this.xcomp < this.offset[0] + element.offsetWidth); }, overlap: function(mode, element) { if (!mode) return 0; if (mode == 'vertical') return ((this.offset[1] + element.offsetHeight) - this.ycomp) / element.offsetHeight; if (mode == 'horizontal') return ((this.offset[0] + element.offsetWidth) - this.xcomp) / element.offsetWidth; }, cumulativeOffset: Element.Methods.cumulativeOffset, positionedOffset: Element.Methods.positionedOffset, absolutize: function(element) { Position.prepare(); return Element.absolutize(element); }, relativize: function(element) { Position.prepare(); return Element.relativize(element); }, realOffset: Element.Methods.cumulativeScrollOffset, offsetParent: Element.Methods.getOffsetParent, page: Element.Methods.viewportOffset, clone: function(source, target, options) { options = options || { }; return Element.clonePosition(target, source, options); } }; /*--------------------------------------------------------------------------*/ if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){ function iter(name) { return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]"; } instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ? function(element, className) { className = className.toString().strip(); var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className); return cond ? document._getElementsByXPath('.//*' + cond, element) : []; } : function(element, className) { className = className.toString().strip(); var elements = [], classNames = (/\s/.test(className) ? $w(className) : null); if (!classNames && !className) return elements; var nodes = $(element).getElementsByTagName('*'); className = ' ' + className + ' '; for (var i = 0, child, cn; child = nodes[i]; i++) { if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) || (classNames && classNames.all(function(name) { return !name.toString().blank() && cn.include(' ' + name + ' '); })))) elements.push(Element.extend(child)); } return elements; }; return function(className, parentElement) { return $(parentElement || document.body).getElementsByClassName(className); }; }(Element.Methods); /*--------------------------------------------------------------------------*/ Element.ClassNames = Class.create(); Element.ClassNames.prototype = { initialize: function(element) { this.element = $(element); }, _each: function(iterator) { this.element.className.split(/\s+/).select(function(name) { return name.length > 0; })._each(iterator); }, set: function(className) { this.element.className = className; }, add: function(classNameToAdd) { if (this.include(classNameToAdd)) return; this.set($A(this).concat(classNameToAdd).join(' ')); }, remove: function(classNameToRemove) { if (!this.include(classNameToRemove)) return; this.set($A(this).without(classNameToRemove).join(' ')); }, toString: function() { return $A(this).join(' '); } }; Object.extend(Element.ClassNames.prototype, Enumerable); /*--------------------------------------------------------------------------*/ // ----------------------------------------------------------------------------------- // // Lightbox v2.03.2 // by Lokesh Dhakar - http://www.huddletogether.com // 4/30/06 // // For more information on this script, visit: // http://huddletogether.com/projects/lightbox2/ // // Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/ // // Credit also due to those who have helped, inspired, and made their code available to the public. // Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.org), Thomas Fuchs(mir.aculo.us), and others. // // // ----------------------------------------------------------------------------------- /* Table of Contents ----------------- Configuration Global Variables Extending Built-in Objects - Object.extend(Element) - Array.prototype.removeDuplicates() - Array.prototype.empty() Lightbox Class Declaration - initialize() - start() - changeImage() - resizeImageContainer() - showImage() - updateDetails() - updateNav() - enableKeyboardNav() - disableKeyboardNav() - keyboardAction() - preloadNeighborImages() - end() Miscellaneous Functions - getPageScroll() - getPageSize() - getKey() - listenKey() - showSelectBoxes() - hideSelectBoxes() - showFlash() - hideFlash() - pause() - initLightbox() Function Calls - addLoadEvent(initLightbox) */ // ----------------------------------------------------------------------------------- // // Configuration // var fileLoadingImage = "/fend/images/loading.gif"; var fileBottomNavCloseImage = "/fend/images/closelabel.gif"; var overlayOpacity = 0.8; // controls transparency of shadow overlay var animate = true; // toggles resizing animations var resizeSpeed = 7; // controls the speed of the image resizing animations (1=slowest and 10=fastest) var borderSize = 10; //if you adjust the padding in the CSS, you will need to update this variable // ----------------------------------------------------------------------------------- // // Global Variables // var imageArray = new Array; var activeImage; if(animate == true){ overlayDuration = 0.2; // shadow fade in/out duration if(resizeSpeed > 10){ resizeSpeed = 10;} if(resizeSpeed < 1){ resizeSpeed = 1;} resizeDuration = (11 - resizeSpeed) * 0.15; } else { overlayDuration = 0; resizeDuration = 0; } // ----------------------------------------------------------------------------------- // // Additional methods for Element added by SU, Couloir // - further additions by Lokesh Dhakar (huddletogether.com) // Object.extend(Element, { getWidth: function(element) { element = $(element); return element.offsetWidth; }, setWidth: function(element,w) { element = $(element); element.style.width = w +"px"; }, setHeight: function(element,h) { element = $(element); element.style.height = h +"px"; }, setTop: function(element,t) { element = $(element); element.style.top = t +"px"; }, setSrc: function(element,src) { element = $(element); element.src = src; }, setHref: function(element,href) { element = $(element); element.href = href; }, setInnerHTML: function(element,content) { element = $(element); element.innerHTML = content; } }); // ----------------------------------------------------------------------------------- // // Extending built-in Array object // - array.removeDuplicates() // - array.empty() // Array.prototype.removeDuplicates = function () { for(i = 0; i < this.length; i++){ for(j = this.length-1; j>i; j--){ if(this[i][0] == this[j][0]){ this.splice(j,1); } } } } // ----------------------------------------------------------------------------------- Array.prototype.empty = function () { for(i = 0; i <= this.length; i++){ this.shift(); } } // ----------------------------------------------------------------------------------- // // Lightbox Class Declaration // - initialize() // - start() // - changeImage() // - resizeImageContainer() // - showImage() // - updateDetails() // - updateNav() // - enableKeyboardNav() // - disableKeyboardNav() // - keyboardNavAction() // - preloadNeighborImages() // - end() // // Structuring of code inspired by Scott Upton (http://www.uptonic.com/) // var Lightbox = Class.create(); Lightbox.prototype = { // initialize() // Constructor runs on completion of the DOM loading. Loops through anchor tags looking for // 'lightbox' references and applies onclick events to appropriate links. The 2nd section of // the function inserts html at the bottom of the page which is used to display the shadow // overlay and the image container. // initialize: function() { if (!document.getElementsByTagName){ return; } var anchors = document.getElementsByTagName('a'); var areas = document.getElementsByTagName('area'); // loop through all anchor tags for (var i=0; i // var objBody = document.getElementsByTagName("body").item(0); var objOverlay = document.createElement("div"); objOverlay.setAttribute('id','overlay'); objOverlay.style.display = 'none'; objOverlay.onclick = function() { myLightbox.end(); } objBody.appendChild(objOverlay); var objLightbox = document.createElement("div"); objLightbox.setAttribute('id','lightbox'); objLightbox.style.display = 'none'; objLightbox.onclick = function(e) { // close Lightbox is user clicks shadow overlay if (!e) var e = window.event; var clickObj = Event.element(e).id; if ( clickObj == 'lightbox') { myLightbox.end(); } }; objBody.appendChild(objLightbox); var objOuterImageContainer = document.createElement("div"); objOuterImageContainer.setAttribute('id','outerImageContainer'); objLightbox.appendChild(objOuterImageContainer); // When Lightbox starts it will resize itself from 250 by 250 to the current image dimension. // If animations are turned off, it will be hidden as to prevent a flicker of a // white 250 by 250 box. if(animate){ Element.setWidth('outerImageContainer', 250); Element.setHeight('outerImageContainer', 250); } else { Element.setWidth('outerImageContainer', 1); Element.setHeight('outerImageContainer', 1); } var objImageContainer = document.createElement("div"); objImageContainer.setAttribute('id','imageContainer'); objOuterImageContainer.appendChild(objImageContainer); var objLightboxImage = document.createElement("img"); objLightboxImage.setAttribute('id','lightboxImage'); objImageContainer.appendChild(objLightboxImage); var objHoverNav = document.createElement("div"); objHoverNav.setAttribute('id','hoverNav'); objImageContainer.appendChild(objHoverNav); var objPrevLink = document.createElement("a"); objPrevLink.setAttribute('id','prevLink'); objPrevLink.setAttribute('href','#'); objHoverNav.appendChild(objPrevLink); var objNextLink = document.createElement("a"); objNextLink.setAttribute('id','nextLink'); objNextLink.setAttribute('href','#'); objHoverNav.appendChild(objNextLink); var objLoading = document.createElement("div"); objLoading.setAttribute('id','loading'); objImageContainer.appendChild(objLoading); var objLoadingLink = document.createElement("a"); objLoadingLink.setAttribute('id','loadingLink'); objLoadingLink.setAttribute('href','#'); objLoadingLink.onclick = function() { myLightbox.end(); return false; } objLoading.appendChild(objLoadingLink); var objLoadingImage = document.createElement("img"); objLoadingImage.setAttribute('src', fileLoadingImage); objLoadingLink.appendChild(objLoadingImage); var objImageDataContainer = document.createElement("div"); objImageDataContainer.setAttribute('id','imageDataContainer'); objLightbox.appendChild(objImageDataContainer); var objImageData = document.createElement("div"); objImageData.setAttribute('id','imageData'); objImageDataContainer.appendChild(objImageData); var objImageDetails = document.createElement("div"); objImageDetails.setAttribute('id','imageDetails'); objImageData.appendChild(objImageDetails); var objCaption = document.createElement("span"); objCaption.setAttribute('id','caption'); objImageDetails.appendChild(objCaption); var objNumberDisplay = document.createElement("span"); objNumberDisplay.setAttribute('id','numberDisplay'); objImageDetails.appendChild(objNumberDisplay); var objBottomNav = document.createElement("div"); objBottomNav.setAttribute('id','bottomNav'); objImageData.appendChild(objBottomNav); var objBottomNavCloseLink = document.createElement("a"); objBottomNavCloseLink.setAttribute('id','bottomNavClose'); objBottomNavCloseLink.setAttribute('href','#'); objBottomNavCloseLink.onclick = function() { myLightbox.end(); return false; } objBottomNav.appendChild(objBottomNavCloseLink); var objBottomNavCloseImage = document.createElement("img"); objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage); objBottomNavCloseLink.appendChild(objBottomNavCloseImage); }, // // start() // Display overlay and lightbox. If image is part of a set, add siblings to imageArray. // start: function(imageLink) { hideSelectBoxes(); hideFlash(); // stretch overlay to fill page and fade in var arrayPageSize = getPageSize(); Element.setHeight('overlay', arrayPageSize[1]); new Effect.Appear('overlay', { duration: overlayDuration, from: 0.0, to: overlayOpacity }); imageArray = []; imageNum = 0; if (!document.getElementsByTagName){ return; } var anchors = document.getElementsByTagName( imageLink.tagName); // if image is NOT part of a set.. if((imageLink.getAttribute('rel') == 'lightbox')){ // add single image to imageArray imageArray.push(new Array(imageLink.getAttribute('href'), imageLink.getAttribute('title'))); } else { // if image is part of a set.. // loop through anchors, find other images in set, and add them to imageArray for (var i=0; i 1){ Element.show('numberDisplay'); Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + 1) + " of " + imageArray.length); } new Effect.Parallel( [ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: resizeDuration, from: 0.0, to: 1.0 }), new Effect.Appear('imageDataContainer', { sync: true, duration: resizeDuration }) ], { duration: resizeDuration, afterFinish: function() { // update overlay size and update nav var arrayPageSize = getPageSize(); Element.setHeight('overlay', arrayPageSize[1]); myLightbox.updateNav(); } } ); }, // // updateNav() // Display appropriate previous and next hover navigation. // updateNav: function() { Element.show('hoverNav'); // if not first image in set, display prev image button if(activeImage != 0){ Element.show('prevLink'); document.getElementById('prevLink').onclick = function() { myLightbox.changeImage(activeImage - 1); return false; } } // if not last image in set, display next image button if(activeImage != (imageArray.length - 1)){ Element.show('nextLink'); document.getElementById('nextLink').onclick = function() { myLightbox.changeImage(activeImage + 1); return false; } } this.enableKeyboardNav(); }, // // enableKeyboardNav() // enableKeyboardNav: function() { document.onkeydown = this.keyboardAction; }, // // disableKeyboardNav() // disableKeyboardNav: function() { document.onkeydown = ''; }, // // keyboardAction() // keyboardAction: function(e) { if (e == null) { // ie keycode = event.keyCode; escapeKey = 27; } else { // mozilla keycode = e.keyCode; escapeKey = e.DOM_VK_ESCAPE; } key = String.fromCharCode(keycode).toLowerCase(); if((key == 'x') || (key == 'o') || (key == 'c') || (keycode == escapeKey)){ // close lightbox myLightbox.end(); } else if((key == 'p') || (keycode == 37)){ // display previous image if(activeImage != 0){ myLightbox.disableKeyboardNav(); myLightbox.changeImage(activeImage - 1); } } else if((key == 'n') || (keycode == 39)){ // display next image if(activeImage != (imageArray.length - 1)){ myLightbox.disableKeyboardNav(); myLightbox.changeImage(activeImage + 1); } } }, // // preloadNeighborImages() // Preload previous and next images. // preloadNeighborImages: function(){ if((imageArray.length - 1) > activeImage){ preloadNextImage = new Image(); preloadNextImage.src = imageArray[activeImage + 1][0]; } if(activeImage > 0){ preloadPrevImage = new Image(); preloadPrevImage.src = imageArray[activeImage - 1][0]; } }, // // end() // end: function() { this.disableKeyboardNav(); Element.hide('lightbox'); new Effect.Fade('overlay', { duration: overlayDuration}); showSelectBoxes(); showFlash(); } } // ----------------------------------------------------------------------------------- // // getPageScroll() // Returns array with x,y page scroll values. // Core code from - quirksmode.org // function getPageScroll(){ var yScroll; if (self.pageYOffset) { yScroll = self.pageYOffset; } else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict yScroll = document.documentElement.scrollTop; } else if (document.body) {// all other Explorers yScroll = document.body.scrollTop; } arrayPageScroll = new Array('',yScroll) return arrayPageScroll; } // ----------------------------------------------------------------------------------- // // getPageSize() // Returns array with page width, height and window width, height // Core code from - quirksmode.org // Edit for Firefox by pHaez // function getPageSize(){ var xScroll, yScroll; if (window.innerHeight && window.scrollMaxY) { xScroll = document.body.scrollWidth; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } var windowWidth, windowHeight; if (self.innerHeight) { // all except Explorer windowWidth = self.innerWidth; windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; } // for small pages with total height less then height of the viewport if(yScroll < windowHeight){ pageHeight = windowHeight; } else { pageHeight = yScroll; } // for small pages with total width less then width of the viewport if(xScroll < windowWidth){ pageWidth = windowWidth; } else { pageWidth = xScroll; } arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) return arrayPageSize; } // ----------------------------------------------------------------------------------- // // getKey(key) // Gets keycode. If 'x' is pressed then it hides the lightbox. // function getKey(e){ if (e == null) { // ie keycode = event.keyCode; } else { // mozilla keycode = e.which; } key = String.fromCharCode(keycode).toLowerCase(); if(key == 'x'){ } } // ----------------------------------------------------------------------------------- // // listenKey() // function listenKey () { document.onkeypress = getKey; } // --------------------------------------------------- function showSelectBoxes(){ var selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "visible"; } } // --------------------------------------------------- function hideSelectBoxes(){ var selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "hidden"; } } // --------------------------------------------------- function showFlash(){ var flashObjects = document.getElementsByTagName("object"); for (i = 0; i < flashObjects.length; i++) { flashObjects[i].style.visibility = "visible"; } var flashEmbeds = document.getElementsByTagName("embed"); for (i = 0; i < flashEmbeds.length; i++) { flashEmbeds[i].style.visibility = "visible"; } } // --------------------------------------------------- function hideFlash(){ var flashObjects = document.getElementsByTagName("object"); for (i = 0; i < flashObjects.length; i++) { flashObjects[i].style.visibility = "hidden"; } var flashEmbeds = document.getElementsByTagName("embed"); for (i = 0; i < flashEmbeds.length; i++) { flashEmbeds[i].style.visibility = "hidden"; } } // --------------------------------------------------- // // pause(numberMillis) // Pauses code execution for specified time. Uses busy code, not good. // Help from Ran Bar-On [ran2103@gmail.com] // function pause(ms){ var date = new Date(); curDate = null; do{var curDate = new Date();} while( curDate - date < ms); } /* function pause(numberMillis) { var curently = new Date().getTime() + sender; while (new Date().getTime(); } */ // --------------------------------------------------- function initLightbox() { myLightbox = new Lightbox(); } Event.observe(window, 'load', initLightbox, false);// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // Contributors: // Justin Palmer (http://encytemedia.com/) // Mark Pilgrim (http://diveintomark.org/) // Martin Bialasinki // // See scriptaculous.js for full license. /* ------------- element ext -------------- */ // converts rgb() and #xxx to #xxxxxx format, // returns self (or first argument) if not convertable String.prototype.parseColor = function() { var color = '#'; if(this.slice(0,4) == 'rgb(') { var cols = this.slice(4,this.length-1).split(','); var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); } else { if(this.slice(0,1) == '#') { if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); if(this.length==7) color = this.toLowerCase(); } } return(color.length==7 ? color : (arguments[0] || this)); } Element.collectTextNodes = function(element) { return $A($(element).childNodes).collect( function(node) { return (node.nodeType==3 ? node.nodeValue : (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); }).flatten().join(''); } Element.collectTextNodesIgnoreClass = function(element, className) { return $A($(element).childNodes).collect( function(node) { return (node.nodeType==3 ? node.nodeValue : ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? Element.collectTextNodes(node) : '')); }).flatten().join(''); } Element.setStyle = function(element, style) { element = $(element); for(k in style) element.style[k.camelize()] = style[k]; } Element.setContentZoom = function(element, percent) { Element.setStyle(element, {fontSize: (percent/100) + 'em'}); if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0); } Element.getOpacity = function(element){ var opacity; if (opacity = Element.getStyle(element, 'opacity')) return parseFloat(opacity); if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/)) if(opacity[1]) return parseFloat(opacity[1]) / 100; return 1.0; } Element.setOpacity = function(element, value){ element= $(element); if (value == 1){ Element.setStyle(element, { opacity: (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 0.999999 : null }); if(/MSIE/.test(navigator.userAgent)) Element.setStyle(element, {filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')}); } else { if(value < 0.00001) value = 0; Element.setStyle(element, {opacity: value}); if(/MSIE/.test(navigator.userAgent)) Element.setStyle(element, { filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') + 'alpha(opacity='+value*100+')' }); } } Element.getInlineOpacity = function(element){ return $(element).style.opacity || ''; } Element.childrenWithClassName = function(element, className) { return $A($(element).getElementsByTagName('*')).select( function(c) { return Element.hasClassName(c, className) }); } Array.prototype.call = function() { var args = arguments; this.each(function(f){ f.apply(this, args) }); } /*--------------------------------------------------------------------------*/ var Effect = { tagifyText: function(element) { var tagifyStyle = 'position:relative'; if(/MSIE/.test(navigator.userAgent)) tagifyStyle += ';zoom:1'; element = $(element); $A(element.childNodes).each( function(child) { if(child.nodeType==3) { child.nodeValue.toArray().each( function(character) { element.insertBefore( Builder.node('span',{style: tagifyStyle}, character == ' ' ? String.fromCharCode(160) : character), child); }); Element.remove(child); } }); }, multiple: function(element, effect) { var elements; if(((typeof element == 'object') || (typeof element == 'function')) && (element.length)) elements = element; else elements = $(element).childNodes; var options = Object.extend({ speed: 0.1, delay: 0.0 }, arguments[2] || {}); var masterDelay = options.delay; $A(elements).each( function(element, index) { new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); }); }, PAIRS: { 'slide': ['SlideDown','SlideUp'], 'blind': ['BlindDown','BlindUp'], 'appear': ['Appear','Fade'] }, toggle: function(element, effect) { element = $(element); effect = (effect || 'appear').toLowerCase(); var options = Object.extend({ queue: { position:'end', scope:(element.id || 'global') } }, arguments[2] || {}); Effect[Element.visible(element) ? Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); } }; var Effect2 = Effect; // deprecated /* ------------- transitions ------------- */ Effect.Transitions = {} Effect.Transitions.linear = function(pos) { return pos; } Effect.Transitions.sinoidal = function(pos) { return (-Math.cos(pos*Math.PI)/2) + 0.5; } Effect.Transitions.reverse = function(pos) { return 1-pos; } Effect.Transitions.flicker = function(pos) { return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; } Effect.Transitions.wobble = function(pos) { return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; } Effect.Transitions.pulse = function(pos) { return (Math.floor(pos*10) % 2 == 0 ? (pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10))); } Effect.Transitions.none = function(pos) { return 0; } Effect.Transitions.full = function(pos) { return 1; } /* ------------- core effects ------------- */ Effect.ScopedQueue = Class.create(); Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), { initialize: function() { this.effects = []; this.interval = null; }, _each: function(iterator) { this.effects._each(iterator); }, add: function(effect) { var timestamp = new Date().getTime(); var position = (typeof effect.options.queue == 'string') ? effect.options.queue : effect.options.queue.position; switch(position) { case 'front': // move unstarted effects after this effect this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { e.startOn += effect.finishOn; e.finishOn += effect.finishOn; }); break; case 'end': // start effect after last queued effect has finished timestamp = this.effects.pluck('finishOn').max() || timestamp; break; } effect.startOn += timestamp; effect.finishOn += timestamp; this.effects.push(effect); if(!this.interval) this.interval = setInterval(this.loop.bind(this), 40); }, remove: function(effect) { this.effects = this.effects.reject(function(e) { return e==effect }); if(this.effects.length == 0) { clearInterval(this.interval); this.interval = null; } }, loop: function() { var timePos = new Date().getTime(); this.effects.invoke('loop', timePos); } }); Effect.Queues = { instances: $H(), get: function(queueName) { if(typeof queueName != 'string') return queueName; if(!this.instances[queueName]) this.instances[queueName] = new Effect.ScopedQueue(); return this.instances[queueName]; } } Effect.Queue = Effect.Queues.get('global'); Effect.DefaultOptions = { transition: Effect.Transitions.sinoidal, duration: 1.0, // seconds fps: 25.0, // max. 25fps due to Effect.Queue implementation sync: false, // true for combining from: 0.0, to: 1.0, delay: 0.0, queue: 'parallel' } Effect.Base = function() {}; Effect.Base.prototype = { position: null, start: function(options) { this.options = Object.extend(Object.extend({},Effect.DefaultOptions), options || {}); this.currentFrame = 0; this.state = 'idle'; this.startOn = this.options.delay*1000; this.finishOn = this.startOn + (this.options.duration*1000); this.event('beforeStart'); if(!this.options.sync) Effect.Queues.get(typeof this.options.queue == 'string' ? 'global' : this.options.queue.scope).add(this); }, loop: function(timePos) { if(timePos >= this.startOn) { if(timePos >= this.finishOn) { this.render(1.0); this.cancel(); this.event('beforeFinish'); if(this.finish) this.finish(); this.event('afterFinish'); return; } var pos = (timePos - this.startOn) / (this.finishOn - this.startOn); var frame = Math.round(pos * this.options.fps * this.options.duration); if(frame > this.currentFrame) { this.render(pos); this.currentFrame = frame; } } }, render: function(pos) { if(this.state == 'idle') { this.state = 'running'; this.event('beforeSetup'); if(this.setup) this.setup(); this.event('afterSetup'); } if(this.state == 'running') { if(this.options.transition) pos = this.options.transition(pos); pos *= (this.options.to-this.options.from); pos += this.options.from; this.position = pos; this.event('beforeUpdate'); if(this.update) this.update(pos); this.event('afterUpdate'); } }, cancel: function() { if(!this.options.sync) Effect.Queues.get(typeof this.options.queue == 'string' ? 'global' : this.options.queue.scope).remove(this); this.state = 'finished'; }, event: function(eventName) { if(this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); if(this.options[eventName]) this.options[eventName](this); }, inspect: function() { return '#'; } } Effect.Parallel = Class.create(); Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), { initialize: function(effects) { this.effects = effects || []; this.start(arguments[1]); }, update: function(position) { this.effects.invoke('render', position); }, finish: function(position) { this.effects.each( function(effect) { effect.render(1.0); effect.cancel(); effect.event('beforeFinish'); if(effect.finish) effect.finish(position); effect.event('afterFinish'); }); } }); Effect.Opacity = Class.create(); Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); // make this work on IE on elements without 'layout' if(/MSIE/.test(navigator.userAgent) && (!this.element.hasLayout)) Element.setStyle(this.element, {zoom: 1}); var options = Object.extend({ from: Element.getOpacity(this.element) || 0.0, to: 1.0 }, arguments[1] || {}); this.start(options); }, update: function(position) { Element.setOpacity(this.element, position); } }); Effect.Move = Class.create(); Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); var options = Object.extend({ x: 0, y: 0, mode: 'relative' }, arguments[1] || {}); this.start(options); }, setup: function() { // Bug in Opera: Opera returns the "real" position of a static element or // relative element that does not have top/left explicitly set. // ==> Always set top and left for position relative elements in your stylesheets // (to 0 if you do not need them) Element.makePositioned(this.element); this.originalLeft = parseFloat(Element.getStyle(this.element,'left') || '0'); this.originalTop = parseFloat(Element.getStyle(this.element,'top') || '0'); if(this.options.mode == 'absolute') { // absolute movement, so we need to calc deltaX and deltaY this.options.x = this.options.x - this.originalLeft; this.options.y = this.options.y - this.originalTop; } }, update: function(position) { Element.setStyle(this.element, { left: this.options.x * position + this.originalLeft + 'px', top: this.options.y * position + this.originalTop + 'px' }); } }); // for backwards compatibility Effect.MoveBy = function(element, toTop, toLeft) { return new Effect.Move(element, Object.extend({ x: toLeft, y: toTop }, arguments[3] || {})); }; Effect.Scale = Class.create(); Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), { initialize: function(element, percent) { this.element = $(element) var options = Object.extend({ scaleX: true, scaleY: true, scaleContent: true, scaleFromCenter: false, scaleMode: 'box', // 'box' or 'contents' or {} with provided values scaleFrom: 100.0, scaleTo: percent }, arguments[2] || {}); this.start(options); }, setup: function() { this.restoreAfterFinish = this.options.restoreAfterFinish || false; this.elementPositioning = Element.getStyle(this.element,'position'); this.originalStyle = {}; ['top','left','width','height','fontSize'].each( function(k) { this.originalStyle[k] = this.element.style[k]; }.bind(this)); this.originalTop = this.element.offsetTop; this.originalLeft = this.element.offsetLeft; var fontSize = Element.getStyle(this.element,'font-size') || '100%'; ['em','px','%'].each( function(fontSizeType) { if(fontSize.indexOf(fontSizeType)>0) { this.fontSize = parseFloat(fontSize); this.fontSizeType = fontSizeType; } }.bind(this)); this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; this.dims = null; if(this.options.scaleMode=='box') this.dims = [this.element.offsetHeight, this.element.offsetWidth]; if(/^content/.test(this.options.scaleMode)) this.dims = [this.element.scrollHeight, this.element.scrollWidth]; if(!this.dims) this.dims = [this.options.scaleMode.originalHeight, this.options.scaleMode.originalWidth]; }, update: function(position) { var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); if(this.options.scaleContent && this.fontSize) Element.setStyle(this.element, {fontSize: this.fontSize * currentScale + this.fontSizeType }); this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); }, finish: function(position) { if (this.restoreAfterFinish) Element.setStyle(this.element, this.originalStyle); }, setDimensions: function(height, width) { var d = {}; if(this.options.scaleX) d.width = width + 'px'; if(this.options.scaleY) d.height = height + 'px'; if(this.options.scaleFromCenter) { var topd = (height - this.dims[0])/2; var leftd = (width - this.dims[1])/2; if(this.elementPositioning == 'absolute') { if(this.options.scaleY) d.top = this.originalTop-topd + 'px'; if(this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; } else { if(this.options.scaleY) d.top = -topd + 'px'; if(this.options.scaleX) d.left = -leftd + 'px'; } } Element.setStyle(this.element, d); } }); Effect.Highlight = Class.create(); Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {}); this.start(options); }, setup: function() { // Prevent executing on elements not in the layout flow if(Element.getStyle(this.element, 'display')=='none') { this.cancel(); return; } // Disable background image during the effect this.oldStyle = { backgroundImage: Element.getStyle(this.element, 'background-image') }; Element.setStyle(this.element, {backgroundImage: 'none'}); if(!this.options.endcolor) this.options.endcolor = Element.getStyle(this.element, 'background-color').parseColor('#ffffff'); if(!this.options.restorecolor) this.options.restorecolor = Element.getStyle(this.element, 'background-color'); // init color calculations this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); }, update: function(position) { Element.setStyle(this.element,{backgroundColor: $R(0,2).inject('#',function(m,v,i){ return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) }); }, finish: function() { Element.setStyle(this.element, Object.extend(this.oldStyle, { backgroundColor: this.options.restorecolor })); } }); Effect.ScrollTo = Class.create(); Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); this.start(arguments[1] || {}); }, setup: function() { Position.prepare(); var offsets = Position.cumulativeOffset(this.element); if(this.options.offset) offsets[1] += this.options.offset; var max = window.innerHeight ? window.height - window.innerHeight : document.body.scrollHeight - (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight); this.scrollStart = Position.deltaY; this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart; }, update: function(position) { Position.prepare(); window.scrollTo(Position.deltaX, this.scrollStart + (position*this.delta)); } }); /* ------------- combination effects ------------- */ Effect.Fade = function(element) { var oldOpacity = Element.getInlineOpacity(element); var options = Object.extend({ from: Element.getOpacity(element) || 1.0, to: 0.0, afterFinishInternal: function(effect) { with(Element) { if(effect.options.to!=0) return; hide(effect.element); setStyle(effect.element, {opacity: oldOpacity}); }} }, arguments[1] || {}); return new Effect.Opacity(element,options); } Effect.Appear = function(element) { var options = Object.extend({ from: (Element.getStyle(element, 'display') == 'none' ? 0.0 : Element.getOpacity(element) || 0.0), to: 1.0, beforeSetup: function(effect) { with(Element) { setOpacity(effect.element, effect.options.from); show(effect.element); }} }, arguments[1] || {}); return new Effect.Opacity(element,options); } Effect.Puff = function(element) { element = $(element); var oldStyle = { opacity: Element.getInlineOpacity(element), position: Element.getStyle(element, 'position') }; return new Effect.Parallel( [ new Effect.Scale(element, 200, { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], Object.extend({ duration: 1.0, beforeSetupInternal: function(effect) { with(Element) { setStyle(effect.effects[0].element, {position: 'absolute'}); }}, afterFinishInternal: function(effect) { with(Element) { hide(effect.effects[0].element); setStyle(effect.effects[0].element, oldStyle); }} }, arguments[1] || {}) ); } Effect.BlindUp = function(element) { element = $(element); Element.makeClipping(element); return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, scaleX: false, restoreAfterFinish: true, afterFinishInternal: function(effect) { with(Element) { [hide, undoClipping].call(effect.element); }} }, arguments[1] || {}) ); } Effect.BlindDown = function(element) { element = $(element); var oldHeight = Element.getStyle(element, 'height'); var elementDimensions = Element.getDimensions(element); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: 0, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { with(Element) { makeClipping(effect.element); setStyle(effect.element, {height: '0px'}); show(effect.element); }}, afterFinishInternal: function(effect) { with(Element) { undoClipping(effect.element); setStyle(effect.element, {height: oldHeight}); }} }, arguments[1] || {}) ); } Effect.SwitchOff = function(element) { element = $(element); var oldOpacity = Element.getInlineOpacity(element); return new Effect.Appear(element, { duration: 0.4, from: 0, transition: Effect.Transitions.flicker, afterFinishInternal: function(effect) { new Effect.Scale(effect.element, 1, { duration: 0.3, scaleFromCenter: true, scaleX: false, scaleContent: false, restoreAfterFinish: true, beforeSetup: function(effect) { with(Element) { [makePositioned,makeClipping].call(effect.element); }}, afterFinishInternal: function(effect) { with(Element) { [hide,undoClipping,undoPositioned].call(effect.element); setStyle(effect.element, {opacity: oldOpacity}); }} }) } }); } Effect.DropOut = function(element) { element = $(element); var oldStyle = { top: Element.getStyle(element, 'top'), left: Element.getStyle(element, 'left'), opacity: Element.getInlineOpacity(element) }; return new Effect.Parallel( [ new Effect.Move(element, {x: 0, y: 100, sync: true }), new Effect.Opacity(element, { sync: true, to: 0.0 }) ], Object.extend( { duration: 0.5, beforeSetup: function(effect) { with(Element) { makePositioned(effect.effects[0].element); }}, afterFinishInternal: function(effect) { with(Element) { [hide, undoPositioned].call(effect.effects[0].element); setStyle(effect.effects[0].element, oldStyle); }} }, arguments[1] || {})); } Effect.Shake = function(element) { element = $(element); var oldStyle = { top: Element.getStyle(element, 'top'), left: Element.getStyle(element, 'left') }; return new Effect.Move(element, { x: 20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { with(Element) { undoPositioned(effect.element); setStyle(effect.element, oldStyle); }}}) }}) }}) }}) }}) }}); } Effect.SlideDown = function(element) { element = $(element); Element.cleanWhitespace(element); // SlideDown need to have the content of the element wrapped in a container element with fixed height! var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom'); var elementDimensions = Element.getDimensions(element); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: 0, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { with(Element) { makePositioned(effect.element); makePositioned(effect.element.firstChild); if(window.opera) setStyle(effect.element, {top: ''}); makeClipping(effect.element); setStyle(effect.element, {height: '0px'}); show(element); }}, afterUpdateInternal: function(effect) { with(Element) { setStyle(effect.element.firstChild, {bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); }}, afterFinishInternal: function(effect) { with(Element) { undoClipping(effect.element); undoPositioned(effect.element.firstChild); undoPositioned(effect.element); setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }} }, arguments[1] || {}) ); } Effect.SlideUp = function(element) { element = $(element); Element.cleanWhitespace(element); var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom'); return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, scaleX: false, scaleMode: 'box', scaleFrom: 100, restoreAfterFinish: true, beforeStartInternal: function(effect) { with(Element) { makePositioned(effect.element); makePositioned(effect.element.firstChild); if(window.opera) setStyle(effect.element, {top: ''}); makeClipping(effect.element); show(element); }}, afterUpdateInternal: function(effect) { with(Element) { setStyle(effect.element.firstChild, {bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); }}, afterFinishInternal: function(effect) { with(Element) { [hide, undoClipping].call(effect.element); undoPositioned(effect.element.firstChild); undoPositioned(effect.element); setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }} }, arguments[1] || {}) ); } // Bug in opera makes the TD containing this element expand for a instance after finish Effect.Squish = function(element) { return new Effect.Scale(element, window.opera ? 1 : 0, { restoreAfterFinish: true, beforeSetup: function(effect) { with(Element) { makeClipping(effect.element); }}, afterFinishInternal: function(effect) { with(Element) { hide(effect.element); undoClipping(effect.element); }} }); } Effect.Grow = function(element) { element = $(element); var options = Object.extend({ direction: 'center', moveTransistion: Effect.Transitions.sinoidal, scaleTransition: Effect.Transitions.sinoidal, opacityTransition: Effect.Transitions.full }, arguments[1] || {}); var oldStyle = { top: element.style.top, left: element.style.left, height: element.style.height, width: element.style.width, opacity: Element.getInlineOpacity(element) }; var dims = Element.getDimensions(element); var initialMoveX, initialMoveY; var moveX, moveY; switch (options.direction) { case 'top-left': initialMoveX = initialMoveY = moveX = moveY = 0; break; case 'top-right': initialMoveX = dims.width; initialMoveY = moveY = 0; moveX = -dims.width; break; case 'bottom-left': initialMoveX = moveX = 0; initialMoveY = dims.height; moveY = -dims.height; break; case 'bottom-right': initialMoveX = dims.width; initialMoveY = dims.height; moveX = -dims.width; moveY = -dims.height; break; case 'center': initialMoveX = dims.width / 2; initialMoveY = dims.height / 2; moveX = -dims.width / 2; moveY = -dims.height / 2; break; } return new Effect.Move(element, { x: initialMoveX, y: initialMoveY, duration: 0.01, beforeSetup: function(effect) { with(Element) { hide(effect.element); makeClipping(effect.element); makePositioned(effect.element); }}, afterFinishInternal: function(effect) { new Effect.Parallel( [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), new Effect.Scale(effect.element, 100, { scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) ], Object.extend({ beforeSetup: function(effect) { with(Element) { setStyle(effect.effects[0].element, {height: '0px'}); show(effect.effects[0].element); }}, afterFinishInternal: function(effect) { with(Element) { [undoClipping, undoPositioned].call(effect.effects[0].element); setStyle(effect.effects[0].element, oldStyle); }} }, options) ) } }); } Effect.Shrink = function(element) { element = $(element); var options = Object.extend({ direction: 'center', moveTransistion: Effect.Transitions.sinoidal, scaleTransition: Effect.Transitions.sinoidal, opacityTransition: Effect.Transitions.none }, arguments[1] || {}); var oldStyle = { top: element.style.top, left: element.style.left, height: element.style.height, width: element.style.width, opacity: Element.getInlineOpacity(element) }; var dims = Element.getDimensions(element); var moveX, moveY; switch (options.direction) { case 'top-left': moveX = moveY = 0; break; case 'top-right': moveX = dims.width; moveY = 0; break; case 'bottom-left': moveX = 0; moveY = dims.height; break; case 'bottom-right': moveX = dims.width; moveY = dims.height; break; case 'center': moveX = dims.width / 2; moveY = dims.height / 2; break; } return new Effect.Parallel( [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) ], Object.extend({ beforeStartInternal: function(effect) { with(Element) { [makePositioned, makeClipping].call(effect.effects[0].element) }}, afterFinishInternal: function(effect) { with(Element) { [hide, undoClipping, undoPositioned].call(effect.effects[0].element); setStyle(effect.effects[0].element, oldStyle); }} }, options) ); } Effect.Pulsate = function(element) { element = $(element); var options = arguments[1] || {}; var oldOpacity = Element.getInlineOpacity(element); var transition = options.transition || Effect.Transitions.sinoidal; var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) }; reverser.bind(transition); return new Effect.Opacity(element, Object.extend(Object.extend({ duration: 3.0, from: 0, afterFinishInternal: function(effect) { Element.setStyle(effect.element, {opacity: oldOpacity}); } }, options), {transition: reverser})); } Effect.Fold = function(element) { element = $(element); var oldStyle = { top: element.style.top, left: element.style.left, width: element.style.width, height: element.style.height }; Element.makeClipping(element); return new Effect.Scale(element, 5, Object.extend({ scaleContent: false, scaleX: false, afterFinishInternal: function(effect) { new Effect.Scale(element, 1, { scaleContent: false, scaleY: false, afterFinishInternal: function(effect) { with(Element) { [hide, undoClipping].call(effect.element); setStyle(effect.element, oldStyle); }} }); }}, arguments[1] || {})); } Effect.divSwap = function(element,container){ var div = document.getElementById(container); var nodeList = div.childNodes; var queue = Effect.Queues.get('menuScope'); if(queue.toArray().length<1){ if(Element.visible(element)==false){ for(i=0;i'); }, load: function() { if((typeof Prototype=='undefined') || parseFloat(Prototype.Version.split(".")[0] + "." + Prototype.Version.split(".")[1]) < 1.4) throw("script.aculo.us requires the Prototype JavaScript framework >= 1.4.0"); $A(document.getElementsByTagName("script")).findAll( function(s) { return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/)) }).each( function(s) { var path = s.src.replace(/scriptaculous\.js(\?.*)?$/,''); var includes = s.src.match(/\?.*load=([a-z,]*)/); (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider').split(',').each( function(include) { Scriptaculous.require(path+include+'.js') }); }); } } Scriptaculous.load();function unscrambleMailto(sDom, sUser) { address = sUser + '@' + sDom.replace(/%23/g, '.'); return ('mail' + 'to:' + address); } function unscrambleEmail(sDom, sUser) { return (sUser + '@' + sDom.replace(/%23/g, '.')); } function displayWindow2(url, width, height) { var Win = window.open(url, "displayWindow", 'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=no'); } function checkSearchForm(theform) { if ((!theform.search_string.value) || (theform.search_string.value == 'Enter Keyword') || (theform.search_string.value == 'Enter Search') || (theform.search_string.value == 'Search Here')) { alert('Please enter search criteria.'); theform.search_string.focus(); return false; } return true; } function checkSearchFormFrench(theform) { if ((!theform.search_string.value) || (theform.search_string.value == 'Recherche ici') || (theform.search_string.value == 'Enter Search')) { alert('Veuillez insérer un mot pour votre recherche!'); theform.search_string.focus(); return false; } return true; } function openPopup(url, name, widgets, openerUrl) { var host = location.hostname; var popupWin = window.open(url, name, widgets); if (popupWin && popupWin.opener) { if (openerUrl) { popupWin.opener.location = openerUrl; } popupWin.opener.top.name = 'opener'; } popupWin.focus(); } function insert_desc(thedesc) { document.getElementById('desc_div').innerHTML = thedesc; document.location = '#desc_div'; } function checkSubscribeForm(theform) { if (!theform.subscribe_email.value || theform.subscribe_email.value == 'Enter Email Here') { alert("Please enter an email address!"); theform.subscribe_email.focus(); return false; } if (theform.subscribe_email.value.indexOf('@', 0) == -1 || theform.subscribe_email.value.indexOf('.', 0) == -1 || theform.subscribe_email.value.length < 8 || theform.subscribe_email.value.length == (theform.subscribe_email.value.indexOf('.', 0) + 1)) { alert("Please enter a valid email address!"); theform.subscribe_email.focus(); return false; } return true; } function printit() { window.print(); } function Go() { return; } function submitPollCheck(form) { var blnchoice = ''; for (i = 0; i < form.poll_vote.length; i++) { if (form.poll_vote[i].checked) { blnchoice = true; return true; } } if (!blnchoice) { alert("Please click the radio button of choice before voting!"); } return false; } function submitForm(formId) { document.getElementById(formId).submit(); } function iGallery(theImage) { larger_image = new Image(); larger_image.src = theImage.src.replace('_thumb', ''); document.getElementById('main_image').src = larger_image.src; document.getElementById('main_image').width = larger_image.width; document.getElementById('main_image').height = larger_image.height; } function swapTabs(targetDiv, srcDiv, srcEl) { //alert(divId); $(targetDiv).innerHTML = $(srcDiv).innerHTML; $(activeTab).removeClassName('active'); //alert($('activetab').id); $(srcEl).toggleClassName('active'); activeTab = srcEl; } function playFLV(width, height, file, image, div) { var s1 = new SWFObject("/fend/images/mediaplayer.swf", "mediaplayer", width, height, "8"); s1.useExpressInstall('/modules/jslib/expressinstall.swf'); s1.addParam("allowfullscreen", "true"); s1.addVariable("width", width); s1.addVariable("height", height); s1.addVariable("file", file); s1.addVariable("autostart", "true"); s1.addVariable("image", image); var version = deconcept.SWFObjectUtil.getPlayerVersion(); if (version['major'] < 8) { document.getElementById(div).style.background = 'transparent none'; document.getElementById(div).innerHTML = '

This video requires Flash 8 or higher, please update Flash with the following button.

Get Flash
'; } else { s1.write(div); } } //Returns the result of appending two functions together so that multiple functions //can be called for a single event handler such as window.onload function appendFunction(function1, function2) { return function() { if (function1) function1(); if (function2) function2(); } } /* give anchors with attribute rel="external" a target attribute of "_blank" */ Event.observe(window, 'load', function() { a = $('body').getElementsBySelector('[rel="external"]') for (i in a) { a[i].target = '_blank'; } a = $('body').getElementsBySelector('[rel="nofollow external"]') for (i in a) { a[i].target = '_blank'; a[i].rel = 'nofollow'; } }); /* ------------- */ /* loads a font size css file */ function changeFontSize(size) { if ($('fontSizeCss')) { $('fontSizeCss').href = '/fend/include/font_' + size + '.css'; } else { var headID = document.getElementsByTagName("head")[0]; var cssNode = document.createElement('link'); cssNode.type = 'text/css'; cssNode.rel = 'stylesheet'; cssNode.href = '/fend/include/font_' + size + '.css'; cssNode.id = 'fontSizeCss'; headID.appendChild(cssNode); } new Ajax.Request('/fend/request/set-font-size.asp?fontSize=' + size + '&rndNum=' + Math.floor(Math.random() * 100000), {}); } /*----------------------------*/ var modalOffset = ''; function showModal(article) { var objModalBody = $('body'); var objModalOverlay = document.createElement("div"); objModalOverlay.setAttribute('id', 'modaloverlay'); objModalOverlay.style.display = 'none'; objModalBody.appendChild(objModalOverlay); Event.observe('modaloverlay', 'click', function(event) { closeModal(); }); var objModal = document.createElement("div"); objModal.setAttribute('id', 'modalwindow'); objModal.style.display = 'none'; objModalBody.appendChild(objModal); modalTop = $('modalwindow').viewportOffset().top; modalTop = modalTop - modalOffset; //alert(modalTop); objModal.style.top = (modalTop+'px').replace('-',''); Event.observe('modalwindow', 'click', function(event) { var targ; if (!e) var e = event; if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement; if (targ.nodeType == 3) // defeat Safari bug targ = targ.parentNode; if (targ.id == 'modalwindow') { closeModal(); } }); var objModalInner = document.createElement("div"); objModalInner.setAttribute('id', 'modalinner'); objModal.appendChild(objModalInner); if (isNaN(article)) { $('modalinner').innerHTML = article + ''; } else { var url = '/fend/request/reqArticle.asp'; new Ajax.Request(url, { parameters: { article_id: article }, onSuccess: function(transport) { var response = transport.responseText || "no response text"; $('modalinner').innerHTML = response; } }); } //set the height of the overlay to fill the container var bodyHeight = $('body').getHeight(); var viewHeight = document.viewport.getHeight(); if (bodyHeight > viewHeight) { overlayHeight = bodyHeight; } else { overlayHeight = viewHeight; } $('modaloverlay').setStyle({ height: overlayHeight + 'px' }); var selectElements = $('container').select('select'); for(var i=0;i' + address); } }); } }); Event.observe(window, 'unload', function() { if($('mapshell') != null){ GUnload(); } }); navHover = function() { try { var lis = document.getElementById("body").getElementsByTagName("LI"); for (var i=0; i0){d=" "+d}}else{if(a400}if(h==500){h=400}for(var i in f){if(!J(f,i)){continue}i=parseInt(i,10);if(!e||ic){c=i}j.push(i)}if(hc){h=c}j.sort(function(l,k){return(d?(l>h&&k>h)?lk:(lk:lv){v=q}if(o>t){t=o}if(q.cufon-vml-canvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}.cufon-vml-canvas{position:absolute;text-align:left;}.cufon-vml{display:inline-block;position:relative;vertical-align:middle;}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px;}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none;}.cufon-vml .cufon-alt{display:inline;}}').replace(/;/g,"!important;"));function C(F,G){return A(F,/(?:em|ex|%)$/i.test(G)?"1em":G)}function A(I,J){if(/px$/i.test(J)){return parseFloat(J)}var H=I.style.left,G=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;I.style.left=J;var F=I.style.pixelLeft;I.style.left=H;I.runtimeStyle.left=G;return F}var E={};function D(K){var L=K.id;if(!E[L]){var I=K.stops,J=document.createElement("cvml:fill"),F=[];J.type="gradient";J.angle=180;J.focus="0";J.method="sigma";J.color=I[0][1];for(var H=1,G=I.length-1;H":{"d":"1442,-641r0,61r-1178,482r0,-88r1045,-424r-1045,-424r0,-90","w":1706},"?":{"d":"504,39v-56,0,-103,-46,-103,-102v0,-56,47,-103,103,-103v56,0,102,47,102,103v0,56,-46,102,-102,102xm528,-1370v-159,1,-240,107,-237,274r-119,0v-12,-249,127,-400,363,-401v200,-1,336,132,333,332v0,74,-18,135,-48,186v-35,60,-171,157,-267,215v-133,81,-199,159,-199,232v-1,96,70,159,168,159v122,0,193,-69,187,-196r110,0v8,204,-110,303,-311,303v-160,0,-284,-111,-281,-269v0,-58,17,-108,46,-153v36,-56,158,-143,244,-196v152,-94,226,-186,226,-273v1,-129,-85,-214,-215,-213","w":1053},"@":{"d":"1047,-997v135,1,218,65,256,170r61,-129r80,0r-152,618v-23,87,25,137,111,135v81,-2,147,-36,203,-76v126,-89,223,-282,223,-489v0,-381,-322,-606,-725,-606v-408,0,-669,215,-801,489v-54,112,-78,238,-78,375v-3,449,347,724,813,717v243,-3,465,-85,623,-193r29,45v-172,130,-375,218,-648,220v-417,4,-708,-182,-846,-453v-93,-182,-96,-449,-24,-655v84,-240,272,-432,492,-531v214,-97,508,-120,754,-46v200,60,357,188,443,350v91,172,83,410,3,586v-64,141,-177,256,-326,314v-147,57,-391,41,-348,-155v-56,102,-151,183,-291,184v-208,2,-313,-116,-313,-326v0,-280,197,-547,461,-544xm690,-446v0,146,76,246,217,245v163,-1,277,-123,312,-266r63,-254v-26,-120,-98,-202,-233,-203v-218,-1,-359,239,-359,478","w":2048},"A":{"d":"356,-610r510,0r-250,-637xm-18,0r643,-1522r616,1522r-145,0r-187,-496r-598,0r-194,496r-135,0","w":1223,"k":{"\u201e":-38,"\u201a":-38,"\u2019":243,"\u2018":264,"\u201d":243,"\u201c":264,"\u0152":36,"\u00ab":73,"\u00d8":36,"Y":112,"W":36,"V":36,"U":36,"T":112,"Q":36,"O":36,"G":36,"C":36,";":-38,":":-38,"-":45}},"B":{"d":"815,-1073v0,-220,-99,-272,-334,-275r-166,0r0,535r166,0v226,-2,334,-52,334,-260xm315,-115r170,0v222,4,304,-19,368,-153v67,-139,9,-334,-89,-389v-97,-54,-290,-36,-449,-41r0,583xm723,-776v178,24,301,150,301,346v0,220,-107,355,-279,406v-102,31,-392,23,-563,24r0,-1464r254,0v191,2,271,3,367,71v90,64,148,168,149,310v1,161,-94,277,-229,307","w":1133,"k":{"\u201e":36,"\u201a":36,"\u2019":36,"\u201d":36,"Y":36,"W":36,"V":36,".":55,"-":-57,",":55}},"C":{"d":"580,-1440v262,-106,608,-53,780,97r-2,147v-126,-108,-259,-180,-463,-184v-375,-7,-639,272,-639,649v0,313,156,508,378,601v251,105,554,17,716,-124r0,156v-192,127,-515,187,-771,80v-273,-114,-466,-341,-466,-713v0,-368,193,-598,467,-709","w":1464,"k":{"\u2019":-57,"\u201d":-57,";":-38,":":-38,"-":-47}},"D":{"d":"315,-115v161,1,422,0,509,-25v154,-45,246,-159,300,-301v63,-165,63,-425,0,-588v-56,-146,-154,-254,-312,-299v-78,-22,-333,-28,-497,-26r0,1239xm182,0r0,-1464v209,-1,550,1,661,30v306,80,470,329,470,703v0,372,-168,619,-465,700v-125,34,-456,31,-666,31","w":1427,"k":{"\u201e":188,"\u201a":188,"\u2019":36,"\u2018":36,"\u201d":36,"\u201c":36,"\u00c5":36,"Y":36,"W":36,"V":36,"A":36,".":120,"-":-65,",":120}},"E":{"d":"182,0r0,-1464r725,0r0,125r-592,0r0,458r592,0r0,125r-592,0r0,631r592,0r0,125r-725,0","w":1051,"k":{";":-38,":":-38,".":-38,"-":-38,",":-38}},"F":{"d":"182,0r0,-1464r725,0r0,125r-592,0r0,458r570,0r0,125r-570,0r0,756r-133,0","w":1026,"k":{"\u201e":415,"\u201a":415,"\u203a":-38,"\u2019":-38,"\u201d":-38,"\u0153":73,"\u00bb":-38,"\u00ab":73,"\u00f8":73,"\u00e6":73,"\u00c5":149,"u":73,"r":112,"o":73,"i":73,"e":73,"a":73,"A":149,";":83,":":83,".":405,"-":102,",":405}},"G":{"d":"858,39v-442,0,-751,-322,-745,-768v5,-357,189,-602,441,-712v199,-87,502,-67,680,25v105,55,188,132,245,236r-97,84v-106,-165,-266,-276,-512,-280v-366,-5,-620,287,-614,661v5,295,162,499,375,587v218,90,494,42,639,-101v101,-99,156,-223,159,-379r-505,0r0,-115r651,0v10,468,-262,762,-717,762","w":1673,"k":{"\u2019":92,"\u201d":92,"Y":36,"T":36,";":-38,":":-38,".":55,"-":-47,",":55}},"H":{"d":"182,0r0,-1464r133,0r0,594r797,0r0,-594r133,0r0,1464r-133,0r0,-756r-797,0r0,756r-133,0","w":1427,"k":{".":36,",":36}},"I":{"d":"182,0r0,-1464r133,0r0,1464r-133,0","w":498},"J":{"d":"285,-88v161,0,182,-120,182,-313r0,-1063r133,0r0,1149v1,222,-98,354,-311,354v-137,0,-227,-61,-283,-152r94,-86v47,63,95,111,185,111","w":764,"k":{"\u201e":112,"\u201a":112,"\u2019":36,"\u201d":36,";":63,":":63,".":102,"-":36,",":102}},"K":{"d":"182,0r0,-1464r133,0r0,686r662,-686r174,0r-694,700r727,764r-193,0r-676,-743r0,743r-133,0","w":1176,"k":{"\u201e":-65,"\u201a":-65,"\u2019":45,"\u2018":73,"\u201d":45,"\u201c":73,"\u0153":36,"\u0152":73,"\u00ab":55,"\u00f8":36,"\u00e6":36,"\u00d8":73,"y":73,"u":36,"o":36,"e":36,"a":36,"Y":73,"W":73,"U":36,"T":73,"O":73,"C":73,";":-38,":":-38,".":-38,"-":102,",":-38}},"L":{"d":"182,0r0,-1464r133,0r0,1339r502,0r0,125r-635,0","w":846,"k":{"\u2019":311,"\u2018":339,"\u201d":311,"\u201c":339,"\u0153":36,"\u0152":73,"\u00f8":36,"\u00e6":36,"\u00d8":73,"y":73,"u":36,"o":36,"e":36,"a":36,"Y":149,"W":112,"V":112,"U":36,"T":112,"O":73,";":-38,":":-38,".":-38,"-":36,",":-38}},"M":{"d":"850,57r-514,-1175r-111,1118r-137,0r199,-1526r561,1303r582,-1303r188,1526r-137,0r-109,-1118","w":1712,"k":{"\u2018":36,"\u201c":36}},"N":{"d":"182,0r0,-1526r1037,1225r0,-1163r124,0r0,1507r-1036,-1227r0,1184r-125,0","w":1526,"k":{"\u201e":73,"\u201a":73,"\u2018":36,"\u201c":36,";":55,":":55,".":92,",":92}},"O":{"d":"648,-128v149,65,342,65,493,0v221,-95,397,-297,397,-601v0,-304,-175,-506,-396,-601v-151,-65,-341,-66,-492,0v-220,96,-396,296,-396,601v0,303,176,506,394,601xm1620,-1026v79,182,80,410,0,592v-116,264,-359,473,-725,473v-366,0,-608,-213,-723,-475v-80,-182,-79,-408,0,-590v115,-264,353,-471,723,-471v369,0,610,207,725,471","w":1792,"k":{"\u201e":112,"\u201a":112,"\u2019":36,"\u201d":36,"\u00c5":36,"Y":73,"X":36,"V":36,"T":112,"A":36,";":-38,":":-38,".":83,"-":-57,",":83}},"P":{"d":"956,-1061v-3,299,-170,403,-487,404r-154,0r0,657r-133,0r0,-1464v230,7,502,-25,629,73v85,66,146,184,145,330xm406,-774v284,-6,409,-31,409,-277v0,-145,-63,-244,-182,-279v-52,-15,-212,-19,-318,-18r0,574r91,0","k":{"\u201e":491,"\u201a":491,"\u203a":36,"\u2019":-47,"\u2018":-38,"\u201d":-47,"\u201c":-38,"\u0153":112,"\u00bb":36,"\u00ab":112,"\u00f8":112,"\u00e6":112,"\u00c5":112,"u":73,"s":73,"r":73,"o":112,"n":73,"i":36,"e":112,"a":112,"A":112,";":92,":":92,".":491,"-":159,",":491}},"Q":{"d":"1362,-283v104,-113,176,-252,176,-448v0,-304,-175,-504,-396,-600v-153,-66,-338,-68,-491,-1v-219,96,-395,295,-395,601v0,305,176,502,395,599v201,89,491,43,615,-73r-340,-395r164,0xm1679,-731v0,246,-96,411,-235,545r248,288r-162,0r-178,-206v-185,131,-511,181,-763,78v-185,-76,-341,-231,-417,-412v-77,-182,-80,-407,0,-588v115,-263,357,-471,723,-471v366,0,610,208,725,471v40,92,59,191,59,295","w":1792,"k":{";":-38,":":-38,"-":-57}},"R":{"d":"782,-1069v0,-217,-104,-277,-333,-279r-134,0r0,541r134,0v230,-3,333,-50,333,-262xm926,-1065v2,229,-149,370,-381,367r526,698r-162,0r-514,-698r-80,0r0,698r-133,0r0,-1464r269,0v300,0,472,114,475,399","w":1081,"k":{"\u2019":36,"\u2018":36,"\u201d":36,"\u201c":36,"\u0153":36,"\u00f8":36,"\u00e6":36,"y":36,"u":36,"o":36,"e":36,"a":36,"Y":36,"T":36,"-":55}},"S":{"d":"905,-389v0,260,-167,431,-428,428v-216,-3,-339,-116,-407,-285r114,-61v38,132,140,226,299,227v186,1,297,-120,295,-309v0,-71,-17,-129,-52,-176v-35,-47,-111,-101,-226,-162v-147,-78,-245,-147,-294,-206v-49,-59,-73,-131,-73,-214v0,-210,164,-355,379,-352v162,3,263,73,324,186r-103,62v-39,-79,-116,-129,-229,-129v-142,-2,-236,93,-236,235v0,103,84,200,254,287v122,62,277,163,320,232v39,63,63,140,63,237","w":1020,"k":{";":-38,":":-38,".":36,"-":-65,",":36}},"T":{"d":"442,0r0,-1339r-403,0r0,-125r940,0r0,125r-404,0r0,1339r-133,0","w":1018,"k":{"\u201e":225,"\u201a":225,"\u203a":112,"\u0153":243,"\u0152":112,"\u00bb":112,"\u00ab":188,"\u00f8":243,"\u00e6":243,"\u00d8":112,"\u00c5":149,"y":243,"w":243,"u":206,"s":243,"r":206,"o":243,"i":55,"e":243,"c":243,"a":243,"O":112,"C":73,"A":149,";":131,":":131,".":264,"-":188,",":264}},"U":{"d":"709,39v-372,0,-533,-207,-533,-590r0,-913r131,0r0,956v0,284,123,428,402,428v275,0,399,-146,399,-428r0,-956r133,0r0,913v0,383,-161,590,-532,590","w":1417,"k":{"\u201e":149,"\u201a":149,"\u00ab":73,"\u00c5":36,"A":36,";":63,":":63,".":120,"-":55,",":120}},"V":{"d":"555,57r-573,-1521r153,0r422,1192r444,-1192r146,0","w":1128,"k":{"\u201e":339,"\u201a":339,"\u203a":112,"\u2019":-57,"\u201d":-57,"\u0153":112,"\u0152":36,"\u00bb":112,"\u00ab":225,"\u00f8":112,"\u00e6":112,"\u00d8":36,"\u00c5":36,"y":55,"u":112,"o":112,"e":112,"a":112,"O":36,"A":36,";":139,":":139,".":339,"-":167,",":339}},"W":{"d":"530,57r-505,-1521r139,0r366,1169r390,-1227r405,1217r352,-1159r138,0r-490,1521r-405,-1243","w":1839,"k":{"\u201e":339,"\u201a":339,"\u203a":112,"\u2019":-38,"\u201d":-38,"\u0153":112,"\u00bb":112,"\u00ab":188,"\u00f8":112,"\u00e6":112,"\u00c5":36,"y":36,"u":112,"r":73,"o":112,"i":36,"e":112,"a":112,"A":36,";":120,":":120,".":253,"-":120,",":253}},"X":{"d":"121,0r-146,0r447,-770r-404,-694r150,0r330,581r333,-581r144,0r-404,690r445,774r-148,0r-372,-649","w":991,"k":{"\u201e":-114,"\u201a":-114,"\u2018":73,"\u201c":73,"\u0152":36,"\u00ab":112,"\u00d8":36,"O":36,"C":36,";":36,":":36,".":-38,"-":102,",":-38}},"Y":{"d":"496,0r0,-674r-486,-790r160,0r393,671r395,-671r152,0r-481,790r0,674r-133,0","w":1118,"k":{"\u201e":264,"\u201a":264,"\u203a":149,"\u0153":225,"\u0152":73,"\u00bb":149,"\u00ab":225,"\u00f8":225,"\u00e6":225,"\u00d8":73,"\u00c5":112,"u":215,"o":225,"i":36,"e":225,"a":225,"O":73,"C":36,"A":112,";":215,":":215,".":272,"-":243,",":272}},"Z":{"d":"25,0r870,-1343r-743,0r0,-121r970,0r-866,1341r778,0r0,123r-1009,0","w":1147,"k":{"\u2018":36,"\u201c":36,";":-38,":":-38,".":-38,"-":36,",":-38}},"[":{"d":"221,-1497r291,0r0,98r-174,0r0,1712r174,0r0,99r-291,0r0,-1909","w":559},"\\":{"d":"717,190r-717,-1687r109,0r716,1687r-108,0","w":825},"]":{"d":"338,-1497r0,1909r-291,0r0,-99r176,0r0,-1712r-176,0r0,-98r291,0","w":559},"^":{"d":"1081,-1458r541,557r-125,0r-473,-469r-475,469r-125,0r539,-557r118,0","w":2048},"_":{"d":"1024,403r0,80r-1024,0r0,-80r1024,0"},"`":{"d":"645,-1030r-94,0r-283,-350r164,0"},"a":{"d":"522,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v201,0,301,-164,301,-381v0,-204,-105,-350,-299,-350xm496,-920v163,1,269,77,323,195r0,-162r123,0r0,887r-123,0r0,-162v-53,119,-152,199,-311,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482","w":1108,"k":{"\u2019":73,"\u2018":112,"\u201d":73,"\u201c":112}},"b":{"d":"586,-76v202,0,297,-143,297,-358v0,-214,-102,-372,-301,-373v-194,-1,-297,146,-297,350v0,217,100,381,301,381xm596,39v-158,-2,-257,-82,-309,-201r0,162r-123,0r0,-1550r123,0r0,825v55,-119,158,-194,321,-195v251,-2,412,218,412,482v0,272,-163,479,-424,477","w":1108,"k":{"\u201e":36,"\u201a":36,"\u2019":73,"\u2018":112,"\u201d":73,"\u201c":112,"-":-38}},"c":{"d":"580,-920v108,0,205,22,276,60r-2,135v-73,-51,-163,-85,-276,-86v-222,-2,-361,161,-361,387v0,205,155,362,361,358v118,-2,210,-44,290,-100r0,135v-82,47,-187,72,-313,74v-268,3,-463,-205,-463,-475v0,-285,203,-488,488,-488","w":934},"d":{"d":"526,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v200,0,299,-165,299,-381v0,-204,-103,-350,-297,-350xm500,-920v163,1,266,77,321,195r0,-825r125,0r0,1550r-125,0r0,-162v-52,120,-150,199,-309,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482","w":1108},"e":{"d":"780,-545v-10,-158,-109,-256,-276,-256v-154,0,-263,110,-275,256r551,0xm520,-920v260,1,419,200,406,480r-705,0v3,208,106,368,303,368v155,0,239,-91,295,-213r113,62v-83,161,-189,259,-408,262v-263,4,-436,-203,-436,-473v0,-275,168,-487,432,-486","w":1018,"k":{"-":-38}},"f":{"d":"522,-1440v-57,-33,-153,-36,-180,28v-46,106,-21,364,-27,525r195,0r0,105r-195,0r0,782r-122,0r0,-782r-166,0r0,-105r166,0v0,-190,-10,-528,50,-603v40,-82,199,-98,302,-58","w":530,"k":{"\u201e":112,"\u201a":112,"\u2019":-141,"\u2018":-180,"\u201d":-141,"\u201c":-180,".":73,",":73}},"g":{"d":"506,-920v147,0,271,88,313,199r0,-166r125,0r0,733v-2,182,4,301,-41,404v-58,134,-188,196,-381,196v-228,0,-365,-84,-395,-276r154,0v21,114,112,168,251,166v145,-2,252,-63,278,-186v15,-71,8,-218,9,-314v-49,117,-163,202,-319,203v-260,1,-410,-206,-410,-479v0,-272,156,-480,416,-480xm821,-449v0,-209,-103,-358,-301,-358v-197,0,-297,158,-297,369v0,209,92,361,285,362v199,1,313,-162,313,-373","w":1108,"k":{".":36,"-":36,",":36}},"h":{"d":"561,-809v-205,0,-274,125,-274,346r0,463r-123,0r0,-1550r117,0r0,800v65,-102,160,-168,313,-170v199,-2,319,119,319,318r0,602r-125,0r0,-547v0,-170,-64,-262,-227,-262","w":1067,"k":{"\u2019":112,"\u2018":112,"\u201d":112,"\u201c":112}},"i":{"d":"236,-1139v-52,0,-95,-42,-95,-94v0,-51,45,-94,95,-94v50,0,96,43,96,94v0,53,-43,94,-96,94xm172,0r0,-887r127,0r0,887r-127,0","w":471,"k":{"\u2018":36,"\u201c":36}},"j":{"d":"236,-1139v-52,0,-95,-42,-95,-94v0,-51,45,-94,95,-94v50,0,96,43,96,94v0,53,-43,94,-96,94xm172,446r0,-1333r127,0r0,1333r-127,0","w":471,"k":{"\u2019":36,"\u201d":36}},"k":{"d":"164,0r0,-1550r123,0r0,1056r442,-393r170,0r-475,398r510,489r-170,0r-477,-459r0,459r-123,0","w":938,"k":{"\u201e":-38,"\u201a":-38,"\u2019":-75,"\u201d":-75,"-":83}},"l":{"d":"299,0r-127,0r0,-1550r127,0r0,1550","w":471},"m":{"d":"539,-813v-194,0,-251,132,-252,346r0,467r-123,0r0,-887r123,0r0,139v52,-101,142,-172,282,-172v141,0,226,70,271,175v64,-106,155,-173,309,-175v190,-2,303,127,303,320r0,600r-123,0r0,-551v0,-162,-61,-262,-213,-262v-192,0,-245,132,-246,346r0,467r-122,0r0,-551v0,-168,-53,-262,-209,-262","w":1616,"k":{"\u2019":112,"\u2018":112,"\u201d":112,"\u201c":112}},"n":{"d":"561,-809v-205,0,-274,125,-274,346r0,463r-123,0r0,-887r117,0r0,137v65,-102,160,-168,313,-170v199,-2,319,119,319,318r0,602r-125,0r0,-547v0,-170,-64,-262,-227,-262","w":1067,"k":{"\u2019":112,"\u2018":112,"\u201d":112,"\u201c":112}},"o":{"d":"223,-440v0,196,155,364,348,364v193,0,349,-168,349,-364v0,-198,-154,-365,-349,-365v-194,0,-348,167,-348,365xm913,-106v-104,110,-331,196,-528,108v-161,-72,-295,-216,-295,-444v0,-225,131,-372,294,-442v115,-49,255,-49,370,0v165,70,299,216,299,442v0,145,-63,254,-140,336","w":1143,"k":{"\u2018":73,"\u201c":73,"-":-38}},"p":{"d":"600,-76v193,-1,283,-154,283,-362v0,-211,-98,-368,-295,-369v-198,-1,-303,150,-303,358v0,211,116,374,315,373xm606,39v-162,-1,-262,-85,-323,-203r0,610r-119,0r0,-1333r119,0r0,166v59,-113,162,-197,317,-199v258,-3,416,209,416,480v0,272,-151,481,-410,479","w":1108,"k":{"\u201e":73,"\u201a":73,"\u2019":112,"\u2018":73,"\u201d":112,"\u201c":73,"-":-38}},"q":{"d":"821,-449v0,-209,-103,-358,-301,-358v-197,0,-297,158,-297,369v0,209,92,361,285,362v199,1,313,-162,313,-373xm506,-920v155,1,261,87,319,199r0,-166r119,0r0,1333r-119,0r0,-610v-61,119,-161,201,-325,203v-258,2,-410,-207,-410,-479v0,-272,156,-482,416,-480","w":1108,"k":{"\u201e":-38,"\u201a":-38}},"r":{"d":"638,-785v-213,-69,-351,141,-351,349r0,436r-123,0r0,-887r123,0r0,178v78,-123,128,-211,286,-211v39,0,74,8,105,19","w":645,"k":{"\u201e":272,"\u201a":272,"\u2019":-86,"\u201d":-86,"\u00ab":36,".":206,"-":73,",":206}},"s":{"d":"696,-229v5,171,-139,270,-321,268v-157,-2,-268,-78,-312,-197r117,-67v35,91,102,148,219,149v97,2,170,-53,170,-145v0,-74,-97,-143,-211,-185v-94,-35,-159,-75,-196,-114v-37,-39,-56,-87,-56,-144v-2,-154,127,-258,287,-258v150,0,252,70,295,181r-113,63v-26,-79,-90,-128,-190,-129v-80,-1,-148,55,-147,131v0,37,14,67,41,91v27,24,85,48,170,79v164,61,242,94,247,277","w":782,"k":{"\u2018":73,"\u201c":73,"-":-38}},"t":{"d":"190,-782r-163,0r0,-105r163,0r0,-364r121,0r0,364r178,0r0,105r-178,0r0,782r-121,0r0,-782","w":508,"k":{"\u201e":73,"\u201a":73,"\u2019":-57,"\u2018":-38,"\u201d":-57,"\u201c":-38,"-":45}},"u":{"d":"541,39v-256,0,-377,-155,-377,-420r0,-506r123,0r0,443v4,240,40,368,252,368v210,0,254,-131,254,-368r0,-443r122,0r0,506v1,265,-119,420,-374,420","w":1079,"k":{"\u2019":73,"\u201d":73}},"v":{"d":"31,-887r135,0r272,672r271,-672r137,0r-408,944","w":874,"k":{"\u201e":235,"\u201a":235,"\u2019":-114,"\u2018":-94,"\u201d":-114,"\u201c":-94,".":159,",":159}},"w":{"d":"379,57r-354,-944r129,0r231,639r279,-686r278,686r232,-639r129,0r-355,944r-282,-706","w":1327,"k":{"\u201e":159,"\u201a":159,"\u2019":-114,"\u2018":-57,"\u201d":-114,"\u201c":-57,".":149,"-":-38,",":149}},"x":{"d":"31,-887r153,0r217,326r217,-326r150,0r-299,426r330,461r-152,0r-248,-358r-245,358r-154,0r332,-461","w":807,"k":{"-":63}},"y":{"d":"43,-887r131,0r254,694r234,-694r131,0r-459,1333r-127,0r155,-452","w":825,"k":{"\u201e":264,"\u201a":264,"\u2019":-114,"\u2018":-114,"\u201d":-114,"\u201c":-114,".":178,"-":36,",":178}},"z":{"d":"23,0r495,-776r-461,0r0,-111r674,0r-491,776r505,0r0,111r-722,0","w":780},"{":{"d":"479,-1100v-2,-308,74,-380,369,-377r0,88v-211,-3,-266,42,-266,265r0,241v-3,222,-35,301,-195,353v160,52,195,129,195,352r0,241v-3,224,53,265,266,263r0,88r-43,0v-274,-7,-320,-85,-326,-375r0,-240v4,-223,-84,-297,-303,-284r0,-90v217,14,303,-62,303,-285r0,-240"},"|":{"d":"557,-1565r0,2048r-90,0r0,-2048r90,0"},"}":{"d":"219,-1477v274,7,320,87,326,377r0,240v-4,222,84,298,303,285r0,90v-217,-13,-303,61,-303,284r0,240v2,307,-74,378,-369,375r0,-88v211,3,266,-39,266,-263r0,-241v3,-222,37,-300,197,-352v-160,-52,-197,-131,-197,-353r0,-241v2,-223,-53,-267,-266,-265r0,-88r43,0"},"~":{"d":"1143,-580v163,-9,259,-73,387,-159r0,92v-117,80,-227,139,-387,147v-139,7,-442,-148,-578,-141v-163,9,-259,73,-387,160r0,-92v116,-80,226,-137,387,-146v137,-8,441,146,578,139","w":1706},"\u00c4":{"d":"356,-610r510,0r-250,-637xm-18,0r643,-1522r616,1522r-145,0r-187,-496r-598,0r-194,496r-135,0xm788,-1670v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm436,-1670v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1223},"\u00c5":{"d":"625,-1870v-73,0,-133,60,-133,133v0,73,60,133,133,133v72,0,133,-61,133,-133v0,-73,-60,-133,-133,-133xm625,-1501v-129,0,-236,-107,-236,-236v0,-130,106,-235,236,-235v129,0,235,105,235,235v0,129,-106,236,-235,236xm356,-610r510,0r-250,-633xm-18,0r624,-1460r39,0r596,1460r-145,0r-187,-496r-598,0r-194,496r-135,0","w":1223,"k":{"\u201e":-38,"\u201a":-38,"\u2019":243,"\u2018":264,"\u201d":243,"\u201c":264,"\u00ab":73,"Y":112,"W":36,"V":36,"U":36,"T":112,"Q":36,"O":36,"G":36,"C":36,";":-38,":":-38,"-":45}},"\u00c7":{"d":"580,-1440v262,-106,608,-53,780,97r-2,147v-126,-108,-259,-180,-463,-184v-375,-7,-639,272,-639,649v0,313,156,508,378,601v251,105,554,17,716,-124r0,156v-192,127,-515,187,-771,80v-273,-114,-466,-341,-466,-713v0,-368,193,-598,467,-709xm1106,252v4,212,-293,174,-457,127r0,-70v100,19,141,33,225,33v75,0,124,-21,125,-88v1,-85,-90,-95,-182,-88r0,-166r61,0r0,100v129,-4,225,38,228,152","w":1464},"\u00c9":{"d":"182,0r0,-1464r725,0r0,125r-592,0r0,458r592,0r0,125r-592,0r0,631r592,0r0,125r-725,0xm408,-1608r213,-350r164,0r-283,350r-94,0","w":1051},"\u00d1":{"d":"182,0r0,-1526r1037,1225r0,-1163r124,0r0,1507r-1036,-1227r0,1184r-125,0xm809,-1815v68,24,143,3,158,-57r88,0v-29,122,-118,213,-264,174v-45,-13,-80,-36,-138,-35v-48,0,-73,25,-92,61r-88,0v25,-119,116,-203,258,-170","w":1526},"\u00d6":{"d":"648,-128v149,65,342,65,493,0v221,-95,397,-297,397,-601v0,-304,-175,-506,-396,-601v-151,-65,-341,-66,-492,0v-220,96,-396,296,-396,601v0,303,176,506,394,601xm1620,-1026v79,182,80,410,0,592v-116,264,-359,473,-725,473v-366,0,-608,-213,-723,-475v-80,-182,-79,-408,0,-590v115,-264,353,-471,723,-471v369,0,610,207,725,471xm1073,-1670v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm721,-1670v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1792},"\u00dc":{"d":"709,39v-372,0,-533,-207,-533,-590r0,-913r131,0r0,956v0,284,123,428,402,428v275,0,399,-146,399,-428r0,-956r133,0r0,913v0,383,-161,590,-532,590xm885,-1670v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm533,-1670v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1417},"\u00e1":{"d":"522,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v201,0,301,-164,301,-381v0,-204,-105,-350,-299,-350xm496,-920v163,1,269,77,323,195r0,-162r123,0r0,887r-123,0r0,-162v-53,119,-152,199,-311,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482xm422,-1030r213,-350r164,0r-283,350r-94,0","w":1108},"\u00e0":{"d":"522,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v201,0,301,-164,301,-381v0,-204,-105,-350,-299,-350xm496,-920v163,1,269,77,323,195r0,-162r123,0r0,887r-123,0r0,-162v-53,119,-152,199,-311,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482xm688,-1030r-94,0r-283,-350r164,0","w":1108},"\u00e2":{"d":"522,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v201,0,301,-164,301,-381v0,-204,-105,-350,-299,-350xm496,-920v163,1,269,77,323,195r0,-162r123,0r0,887r-123,0r0,-162v-53,119,-152,199,-311,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482xm268,-1030r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":1108},"\u00e4":{"d":"522,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v201,0,301,-164,301,-381v0,-204,-105,-350,-299,-350xm496,-920v163,1,269,77,323,195r0,-162r123,0r0,887r-123,0r0,-162v-53,119,-152,199,-311,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482xm731,-1092v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm379,-1092v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1108},"\u00e3":{"d":"522,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v201,0,301,-164,301,-381v0,-204,-105,-350,-299,-350xm496,-920v163,1,269,77,323,195r0,-162r123,0r0,887r-123,0r0,-162v-53,119,-152,199,-311,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482xm600,-1237v68,24,143,3,158,-57r88,0v-29,122,-118,213,-264,174v-45,-13,-80,-36,-138,-35v-48,0,-73,25,-92,61r-88,0v25,-119,116,-203,258,-170","w":1108},"\u00e5":{"d":"522,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v201,0,301,-164,301,-381v0,-204,-105,-350,-299,-350xm496,-920v163,1,269,77,323,195r0,-162r123,0r0,887r-123,0r0,-162v-53,119,-152,199,-311,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482xm526,-1356v-72,0,-133,63,-133,135v0,72,61,134,133,134v73,0,133,-61,133,-134v0,-73,-60,-135,-133,-135xm526,-985v-128,0,-235,-108,-235,-236v0,-129,105,-235,235,-235v130,0,236,106,236,235v0,129,-106,236,-236,236","w":1108,"k":{"\u2019":73,"\u2018":112,"\u201d":73,"\u201c":112}},"\u00e7":{"d":"580,-920v108,0,205,22,276,60r-2,135v-73,-51,-163,-85,-276,-86v-222,-2,-361,161,-361,387v0,205,155,362,361,358v118,-2,210,-44,290,-100r0,135v-82,47,-187,72,-313,74v-268,3,-463,-205,-463,-475v0,-285,203,-488,488,-488xm791,252v4,212,-293,174,-457,127r0,-70v100,19,141,33,225,33v75,0,124,-21,125,-88v1,-85,-90,-95,-182,-88r0,-166r61,0r0,100v129,-4,225,38,228,152","w":934},"\u00e9":{"d":"780,-545v-10,-158,-109,-256,-276,-256v-154,0,-263,110,-275,256r551,0xm520,-920v260,1,419,200,406,480r-705,0v3,208,106,368,303,368v155,0,239,-91,295,-213r113,62v-83,161,-189,259,-408,262v-263,4,-436,-203,-436,-473v0,-275,168,-487,432,-486xm377,-1030r213,-350r164,0r-283,350r-94,0","w":1018},"\u00e8":{"d":"780,-545v-10,-158,-109,-256,-276,-256v-154,0,-263,110,-275,256r551,0xm520,-920v260,1,419,200,406,480r-705,0v3,208,106,368,303,368v155,0,239,-91,295,-213r113,62v-83,161,-189,259,-408,262v-263,4,-436,-203,-436,-473v0,-275,168,-487,432,-486xm643,-1030r-94,0r-283,-350r164,0","w":1018},"\u00ea":{"d":"780,-545v-10,-158,-109,-256,-276,-256v-154,0,-263,110,-275,256r551,0xm520,-920v260,1,419,200,406,480r-705,0v3,208,106,368,303,368v155,0,239,-91,295,-213r113,62v-83,161,-189,259,-408,262v-263,4,-436,-203,-436,-473v0,-275,168,-487,432,-486xm223,-1030r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":1018},"\u00eb":{"d":"780,-545v-10,-158,-109,-256,-276,-256v-154,0,-263,110,-275,256r551,0xm520,-920v260,1,419,200,406,480r-705,0v3,208,106,368,303,368v155,0,239,-91,295,-213r113,62v-83,161,-189,259,-408,262v-263,4,-436,-203,-436,-473v0,-275,168,-487,432,-486xm686,-1092v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm334,-1092v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1018},"\u00ed":{"d":"172,0r0,-887r127,0r0,887r-127,0xm103,-1030r213,-350r164,0r-283,350r-94,0","w":471},"\u00ec":{"d":"172,0r0,-887r127,0r0,887r-127,0xm369,-1030r-94,0r-283,-350r164,0","w":471},"\u00ee":{"d":"172,0r0,-887r127,0r0,887r-127,0xm-51,-1030r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":471},"\u00ef":{"d":"172,0r0,-887r127,0r0,887r-127,0xm412,-1092v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm60,-1092v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":471},"\u00f1":{"d":"561,-809v-205,0,-274,125,-274,346r0,463r-123,0r0,-887r117,0r0,137v65,-102,160,-168,313,-170v199,-2,319,119,319,318r0,602r-125,0r0,-547v0,-170,-64,-262,-227,-262xm580,-1237v68,24,143,3,158,-57r88,0v-29,122,-118,213,-264,174v-45,-13,-80,-36,-138,-35v-48,0,-73,25,-92,61r-88,0v25,-119,116,-203,258,-170","w":1067},"\u00f3":{"d":"223,-440v0,196,155,364,348,364v193,0,349,-168,349,-364v0,-198,-154,-365,-349,-365v-194,0,-348,167,-348,365xm913,-106v-104,110,-331,196,-528,108v-161,-72,-295,-216,-295,-444v0,-225,131,-372,294,-442v115,-49,255,-49,370,0v165,70,299,216,299,442v0,145,-63,254,-140,336xm438,-1030r213,-350r164,0r-283,350r-94,0","w":1143},"\u00f2":{"d":"223,-440v0,196,155,364,348,364v193,0,349,-168,349,-364v0,-198,-154,-365,-349,-365v-194,0,-348,167,-348,365xm913,-106v-104,110,-331,196,-528,108v-161,-72,-295,-216,-295,-444v0,-225,131,-372,294,-442v115,-49,255,-49,370,0v165,70,299,216,299,442v0,145,-63,254,-140,336xm704,-1030r-94,0r-283,-350r164,0","w":1143},"\u00f4":{"d":"223,-440v0,196,155,364,348,364v193,0,349,-168,349,-364v0,-198,-154,-365,-349,-365v-194,0,-348,167,-348,365xm913,-106v-104,110,-331,196,-528,108v-161,-72,-295,-216,-295,-444v0,-225,131,-372,294,-442v115,-49,255,-49,370,0v165,70,299,216,299,442v0,145,-63,254,-140,336xm284,-1030r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":1143},"\u00f6":{"d":"223,-440v0,196,155,364,348,364v193,0,349,-168,349,-364v0,-198,-154,-365,-349,-365v-194,0,-348,167,-348,365xm913,-106v-104,110,-331,196,-528,108v-161,-72,-295,-216,-295,-444v0,-225,131,-372,294,-442v115,-49,255,-49,370,0v165,70,299,216,299,442v0,145,-63,254,-140,336xm747,-1092v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm395,-1092v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1143},"\u00f5":{"d":"223,-440v0,196,155,364,348,364v193,0,349,-168,349,-364v0,-198,-154,-365,-349,-365v-194,0,-348,167,-348,365xm913,-106v-104,110,-331,196,-528,108v-161,-72,-295,-216,-295,-444v0,-225,131,-372,294,-442v115,-49,255,-49,370,0v165,70,299,216,299,442v0,145,-63,254,-140,336xm616,-1237v68,24,143,3,158,-57r88,0v-29,122,-118,213,-264,174v-45,-13,-80,-36,-138,-35v-48,0,-73,25,-92,61r-88,0v25,-119,116,-203,258,-170","w":1143},"\u00fa":{"d":"541,39v-256,0,-377,-155,-377,-420r0,-506r123,0r0,443v4,240,40,368,252,368v210,0,254,-131,254,-368r0,-443r122,0r0,506v1,265,-119,420,-374,420xm408,-1030r213,-350r164,0r-283,350r-94,0","w":1079},"\u00f9":{"d":"541,39v-256,0,-377,-155,-377,-420r0,-506r123,0r0,443v4,240,40,368,252,368v210,0,254,-131,254,-368r0,-443r122,0r0,506v1,265,-119,420,-374,420xm674,-1030r-94,0r-283,-350r164,0","w":1079},"\u00fb":{"d":"541,39v-256,0,-377,-155,-377,-420r0,-506r123,0r0,443v4,240,40,368,252,368v210,0,254,-131,254,-368r0,-443r122,0r0,506v1,265,-119,420,-374,420xm254,-1030r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":1079},"\u00fc":{"d":"541,39v-256,0,-377,-155,-377,-420r0,-506r123,0r0,443v4,240,40,368,252,368v210,0,254,-131,254,-368r0,-443r122,0r0,506v1,265,-119,420,-374,420xm717,-1092v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm365,-1092v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1079},"\u2020":{"d":"461,446r0,-1220r-361,0r0,-115r361,0r0,-575r123,0r0,575r360,0r0,115r-360,0r0,1220r-123,0","w":1042},"\u00b0":{"d":"338,-963v115,0,213,-98,213,-213v0,-113,-100,-213,-213,-213v-116,0,-213,97,-213,213v0,115,98,213,213,213xm63,-1176v0,-148,127,-274,275,-274v146,0,272,128,272,274v0,148,-126,273,-274,273v-150,0,-273,-123,-273,-273","w":674},"\u00a2":{"d":"567,-1110v-175,14,-313,172,-313,362v0,208,125,350,313,373r0,-735xm647,-1223v108,1,197,25,283,60r0,135v-77,-50,-167,-81,-282,-86r-1,745v121,-14,212,-40,283,-96r0,131v-75,46,-166,69,-282,72r-1,205r-80,0r0,-207v-254,-9,-444,-208,-444,-471v0,-277,187,-459,444,-486r0,-161r80,0r0,159","w":1180},"\u00a3":{"d":"395,-84v-100,6,-156,56,-209,125r-86,-61v44,-83,103,-142,195,-170v44,-63,80,-118,80,-205v0,-78,-20,-136,-45,-205r-230,0r0,-90r185,0v-55,-116,-100,-230,-103,-371v-5,-247,195,-418,449,-418v271,0,435,163,442,428r-127,22v-2,-200,-113,-333,-311,-333v-189,0,-322,118,-318,303v3,135,50,244,101,369r389,0r0,90r-358,0v21,60,38,110,38,176v0,105,-40,177,-101,229v95,-11,336,118,417,115v107,-5,159,-63,211,-143r88,59v-64,117,-138,189,-291,201v-91,7,-337,-126,-416,-121","w":1180},"\u00a7":{"d":"250,-530v0,166,110,276,276,276v148,0,275,-127,275,-276v0,-160,-114,-275,-275,-275v-149,0,-276,126,-276,275xm532,455v-220,0,-366,-136,-356,-363r127,1v4,151,75,232,227,233v136,1,223,-79,222,-213v0,-54,-17,-96,-46,-129v-71,-81,-387,-154,-473,-236v-71,-68,-118,-149,-118,-278v0,-181,120,-304,270,-349v-131,-55,-217,-133,-219,-297v-3,-203,158,-323,371,-323v227,0,355,122,348,354r-135,0v-6,-153,-71,-244,-222,-246v-124,-2,-223,85,-221,207v0,59,17,107,51,144v34,37,104,74,209,112v137,49,232,104,286,163v54,59,81,136,81,230v-2,196,-104,308,-264,357v127,55,214,143,217,305v3,191,-157,328,-355,328","w":1042},"\u2022":{"d":"602,-465v-160,0,-295,-138,-295,-297v0,-160,138,-295,297,-295v158,0,295,137,295,295v0,158,-139,297,-297,297","w":1208},"\u00b6":{"d":"90,-1130v-1,-215,171,-349,395,-349r447,0r0,64r-129,0r0,1415r-70,0r0,-1415r-192,0r0,1415r-70,0r0,-782v-216,-6,-380,-135,-381,-348"},"\u00df":{"d":"500,-1458v-185,0,-224,132,-224,348r0,1110r-122,0r0,-782r-121,0r0,-105r121,0r0,-297v-2,-240,122,-387,356,-387v225,0,361,158,358,389v-2,170,-85,267,-217,318v211,24,310,187,310,432v0,277,-159,479,-426,477v-47,-1,-84,-10,-123,-25r0,-131v38,19,78,31,131,31v196,-1,288,-145,288,-354v0,-254,-135,-394,-397,-363r0,-124v205,14,307,-70,307,-269v0,-168,-78,-268,-241,-268","w":1059,"k":{"\u2018":36,"\u201c":36,"-":-75}},"\u00ae":{"d":"1106,-926v4,-178,-234,-149,-422,-151r0,313r168,0v168,-4,251,-18,254,-162xm1223,-922v3,123,-88,209,-203,220r190,393r-131,0r-182,-377r-213,0r0,377r-115,0r0,-846r305,0v211,1,344,48,349,233xm1462,-470v66,-154,66,-349,0,-504v-97,-227,-299,-406,-610,-406v-311,0,-510,184,-606,408v-68,158,-70,342,-1,500v97,224,300,409,607,409v305,0,514,-183,610,-407xm572,-1398v172,-74,389,-73,562,1v249,107,449,331,449,676v0,348,-205,566,-453,675v-175,77,-381,77,-555,0v-247,-108,-452,-332,-452,-675v0,-338,200,-570,449,-677","w":1706},"\u00a9":{"d":"471,-725v0,-256,146,-451,389,-451v171,0,311,107,326,258r-105,0v-24,-102,-105,-173,-227,-172v-187,2,-266,163,-266,371v0,201,85,363,266,365v127,2,219,-84,240,-193r102,0v-12,165,-165,279,-348,279v-243,0,-377,-198,-377,-457xm1462,-470v66,-154,66,-349,0,-504v-97,-227,-299,-406,-610,-406v-311,0,-510,184,-606,408v-68,158,-70,342,-1,500v97,224,300,409,607,409v305,0,514,-183,610,-407xm572,-1398v172,-74,389,-73,562,1v249,107,449,331,449,676v0,348,-205,566,-453,675v-175,77,-381,77,-555,0v-247,-108,-452,-332,-452,-675v0,-338,200,-570,449,-677","w":1706},"\u2122":{"d":"926,-1454r174,440r162,-440r102,0r0,530r-59,0r0,-479r-181,479r-49,0r-190,-479r0,479r-60,0r0,-530r101,0xm694,-1454r0,51r-174,0r0,479r-67,0r0,-479r-179,0r0,-51r420,0","w":1706},"\u00b4":{"d":"379,-1030r213,-350r164,0r-283,350r-94,0"},"\u00a8":{"d":"688,-1092v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm336,-1092v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96"},"\u2260":{"d":"1280,-1108r-217,277r389,0r0,79r-440,0r-219,283r659,0r0,82r-711,0r-254,324r-61,-48r215,-276r-387,0r0,-82r436,0r221,-283r-657,0r0,-79r709,0r254,-326","w":1706},"\u00c6":{"d":"348,-610r457,0r-217,-662xm135,0r-127,0r529,-1464r618,0r41,125r-506,0r158,458r526,0r43,125r-526,0r215,631r532,0r41,125r-665,0r-170,-496r-533,0","w":1688,"k":{"\u2019":92,"\u201d":92,";":-38,":":-38,".":-38,"-":-38,",":-38}},"\u00d8":{"d":"489,-233v113,88,229,149,406,149v300,0,502,-180,595,-399v61,-142,64,-321,10,-469v-25,-69,-63,-136,-116,-201xm1319,-1221v-109,-94,-240,-159,-424,-159v-302,0,-498,178,-591,398v-61,144,-64,332,-8,479v27,70,69,139,126,206xm885,33v-214,0,-357,-67,-488,-172r-178,184r-65,-70r176,-180v-128,-122,-217,-296,-217,-526v0,-364,217,-597,482,-710v94,-40,195,-58,300,-58v222,1,389,74,514,186r184,-192r70,67r-186,191v115,123,202,299,202,516v0,363,-216,598,-484,708v-95,39,-199,56,-310,56","w":1792,"k":{"\u201e":112,"\u201a":112,"\u2019":36,"\u201d":36,"Y":73,"X":36,"V":36,"T":112,"A":36,";":-38,":":-38,".":83,"-":-57,",":83}},"\u221e":{"d":"1421,-629v0,-145,-88,-275,-223,-274v-58,0,-111,25,-158,77v-47,52,-97,142,-151,269v62,115,137,201,287,205v146,4,245,-125,245,-277xm287,-598v0,144,88,273,223,272v59,0,111,-25,158,-76v47,-51,97,-140,151,-268v-60,-115,-138,-200,-287,-204v-147,-3,-245,124,-245,276xm528,-981v172,0,239,119,308,268v44,-93,93,-162,146,-207v53,-45,112,-67,177,-67v181,-2,309,177,309,371v0,200,-104,367,-290,368v-63,0,-118,-20,-166,-60v-48,-40,-95,-108,-142,-202v-47,93,-96,161,-148,204v-52,43,-110,64,-173,64v-180,2,-311,-178,-311,-370v0,-201,104,-369,290,-369","w":1706},"\u00b1":{"d":"1452,-141r0,82r-1198,0r0,-82r1198,0xm893,-1161r0,354r559,0r0,80r-559,0r0,352r-80,0r0,-352r-559,0r0,-80r559,0r0,-354r80,0","w":1706},"\u2264":{"d":"1442,-129r0,80r-1178,0r0,-80r1178,0xm1442,-1083r-1043,350r1043,352r0,88r-1178,-405r0,-70r1178,-403r0,88","w":1706},"\u2265":{"d":"1442,-129r0,80r-1178,0r0,-80r1178,0xm1442,-768r0,70r-1178,405r0,-88r1043,-352r-1043,-350r0,-88","w":1706},"\u00a5":{"d":"530,0r0,-631r-497,0r0,-98r456,0r-98,-162r-358,0r0,-100r293,0r-283,-461r147,0r402,676r412,-676r135,0r-281,461r289,0r0,100r-352,0r-99,162r451,0r0,98r-490,0r0,631r-127,0","w":1182},"\u00b5":{"d":"403,29v-135,0,-236,-70,-274,-172r-119,567r-121,0r316,-1487r121,0r-123,590v-10,49,-17,90,-17,141v-1,162,77,258,234,258v85,0,158,-36,220,-109v62,-73,107,-177,136,-313r125,-567r121,0r-171,810v-13,61,-20,99,-20,112v-2,57,49,70,107,61r-18,96v-127,42,-236,-15,-205,-159v-53,105,-160,172,-312,172","w":1094},"\u2202":{"d":"500,-778v145,2,214,77,250,200v27,-161,38,-450,-16,-572v-25,-58,-64,-87,-116,-87v-30,0,-64,24,-100,73v-36,49,-72,74,-108,74v-37,1,-69,-28,-68,-65v1,-87,110,-145,209,-145v107,0,195,47,254,147v220,372,51,1181,-361,1180v-198,-1,-309,-172,-309,-385v0,-214,160,-424,365,-420xm264,-260v-1,142,54,242,185,242v76,0,139,-42,189,-126v50,-84,75,-188,75,-315v0,-150,-50,-256,-185,-256v-78,0,-141,42,-190,125v-49,83,-74,193,-74,330"},"\u2211":{"d":"45,-1473r1208,0r0,123r-1038,0r721,787r-760,835r1077,0r0,121r-1243,0r0,-127r752,-829r-717,-787r0,-123","w":1290},"\u220f":{"d":"164,-1473r1163,0r0,1866r-135,0r0,-1743r-893,0r0,1743r-135,0r0,-1866","w":1491},"\u03c0":{"d":"6,-825v37,-177,85,-238,291,-238r829,0r-24,105r-182,0r-140,676v-18,104,-12,184,101,184v35,0,64,-3,92,-10r-25,108v-151,52,-303,-26,-295,-186v7,-125,25,-199,56,-351r88,-421r-381,0r-203,958r-121,0r201,-958v-109,-8,-153,37,-166,133r-121,0","w":1155},"\u222b":{"d":"45,252v-7,-112,158,-145,201,-51v12,14,8,75,37,75v44,0,75,-55,92,-165v17,-110,26,-340,26,-689v0,-332,29,-576,87,-733v58,-157,147,-235,268,-235v81,0,147,49,147,125v1,60,-41,99,-102,98v-51,0,-85,-22,-101,-65v-16,-43,-28,-64,-34,-64v-45,0,-76,53,-93,159v-17,106,-26,335,-26,687v0,339,-28,587,-85,743v-57,156,-147,234,-269,234v-77,0,-143,-48,-148,-119","w":948},"\u00aa":{"d":"391,-1409v-144,0,-225,111,-225,262v0,154,76,250,225,250v146,0,225,-112,225,-266v0,-147,-82,-246,-225,-246xm373,-1487v119,1,200,52,241,135r0,-112r93,0r0,620r-93,0r0,-112v-41,83,-117,138,-233,139v-192,2,-318,-139,-318,-334v0,-190,125,-338,310,-336","w":831},"\u00ba":{"d":"168,-1153v0,140,119,256,260,256v142,0,262,-115,262,-256v0,-141,-119,-254,-262,-254v-142,0,-260,114,-260,254xm764,-1026v-67,151,-267,263,-475,184v-120,-45,-221,-147,-221,-311v0,-161,99,-261,220,-309v144,-56,315,-4,396,71v84,78,140,230,80,365","w":858},"\u03a9":{"d":"1456,-786v-8,323,-148,511,-360,665r356,0r0,121r-573,0r0,-102v145,-91,255,-194,328,-308v73,-114,110,-239,110,-376v0,-335,-205,-607,-524,-607v-318,0,-525,272,-525,607v0,137,37,262,110,376v73,114,183,217,329,308r0,102r-572,0r0,-121r354,0v-213,-155,-353,-340,-360,-665v-10,-401,276,-727,664,-727v387,0,672,327,663,727","w":1585},"\u00e6":{"d":"1120,-920v265,0,425,199,414,482r-705,0v5,205,101,364,295,364v159,0,244,-87,299,-211r117,62v-83,159,-196,264,-414,264v-187,0,-289,-87,-362,-221v-46,136,-177,221,-356,221v-189,0,-336,-108,-336,-287v0,-186,163,-300,362,-297v120,2,210,31,276,88v21,-219,-57,-363,-272,-358v-120,3,-213,32,-301,78r2,-131v93,-33,190,-54,310,-54v168,-2,307,63,342,187v58,-109,172,-186,329,-187xm1389,-543v-9,-158,-111,-258,-277,-258v-153,0,-262,113,-274,258r551,0xm440,-74v138,0,262,-71,262,-196v0,-114,-118,-168,-247,-168v-141,0,-248,59,-248,188v0,124,98,176,233,176","w":1624,"k":{"-":-38}},"\u00f8":{"d":"559,39v-130,-2,-215,-46,-295,-113r-117,115r-55,-59r111,-113v-67,-84,-112,-170,-115,-301v-6,-271,216,-494,487,-488v134,3,218,45,302,111r110,-113r62,58r-113,110v68,85,114,175,117,310v6,272,-221,490,-494,483xm563,-78v240,5,412,-226,338,-480v-11,-36,-28,-71,-51,-106r-504,504v59,48,122,80,217,82xm582,-805v-246,-6,-416,225,-342,481v10,35,29,69,53,103r500,-502v-54,-50,-116,-80,-211,-82","w":1143,"k":{"\u2018":73,"\u201c":73,"-":-38}},"\u00bf":{"d":"537,-1497v56,0,102,46,102,102v0,56,-46,103,-102,103v-56,0,-101,-46,-101,-103v0,-56,45,-102,101,-102xm512,-90v159,-1,242,-108,238,-275r118,0v13,249,-128,402,-362,404v-200,1,-337,-134,-334,-334v0,-74,18,-135,48,-186v35,-61,174,-158,270,-217v132,-81,198,-158,198,-230v1,-97,-71,-159,-170,-159v-122,0,-192,69,-186,196r-111,0v-8,-204,111,-303,311,-303v161,0,283,110,281,268v-2,194,-150,257,-289,350v-149,100,-227,186,-227,273v0,128,86,214,215,213","w":1053},"\u00a1":{"d":"256,-1157r123,0r0,1157r-123,0r0,-1157xm317,-1292v-56,0,-102,-47,-102,-103v0,-56,46,-102,102,-102v56,0,103,46,103,102v0,56,-47,103,-103,103","w":635},"\u00ac":{"d":"1452,-856r0,502r-78,0r0,-420r-1120,0r0,-82r1198,0","w":1706},"\u221a":{"d":"1264,-1626r0,61r-129,0r-596,1606r-31,0r-330,-907r-110,39r-15,-50r230,-79r278,759r531,-1429r172,0","w":1264},"\u0192":{"d":"956,-1343v-70,-30,-172,-34,-214,26v-36,51,-60,277,-72,397r194,0r-6,95r-199,0r-88,800v-21,185,-54,310,-95,377v-54,89,-170,119,-289,84r31,-118v63,27,136,7,164,-56v20,-46,43,-161,64,-348r82,-739r-163,0r10,-95r164,0v34,-269,27,-565,311,-559v52,1,91,10,127,29","w":1180},"\u2248":{"d":"1143,-418v169,-12,250,-70,387,-160r0,93v-117,80,-227,135,-387,147v-120,9,-464,-149,-578,-141v-169,12,-250,70,-387,160r0,-93v116,-79,227,-134,387,-145v120,-8,464,147,578,139xm1143,-741v169,-13,247,-71,387,-162r0,94v-117,79,-226,134,-387,145v-120,8,-464,-147,-578,-139v-169,12,-250,70,-387,160r0,-92v116,-81,227,-136,387,-148v120,-9,464,151,578,142","w":1706},"\u2206":{"d":"1155,-121r-487,-1233r-490,1233r977,0xm754,-1473r592,1473r-1358,0r594,-1473r172,0","w":1335},"\u00ab":{"d":"655,-49r-254,-387r246,-395r86,53r-211,344r215,332xm297,-49r-252,-387r244,-395r86,53r-209,344r213,332","w":782,"k":{"\u00c6":-151,"Y":149,"W":112,"V":112,"T":112,"J":-38}},"\u00bb":{"d":"127,-49r-82,-53r215,-332r-211,-344r86,-53r244,395xm485,-49r-84,-53r215,-332r-208,-344r86,-53r243,395","w":782,"k":{"\u00c5":73,"Y":225,"X":112,"W":188,"V":225,"U":73,"T":188,"J":-75,"A":73}},"\u2026":{"d":"342,18v-56,0,-102,-46,-102,-102v0,-56,46,-102,102,-102v56,0,102,46,102,102v0,56,-46,102,-102,102xm1024,18v-56,0,-102,-46,-102,-102v0,-56,46,-102,102,-102v56,0,102,46,102,102v0,56,-46,102,-102,102xm1708,18v-56,0,-102,-46,-102,-102v0,-56,46,-102,102,-102v56,0,102,46,102,102v0,56,-46,102,-102,102","w":2048},"\u00a0":{"w":1180},"\u00c0":{"d":"356,-610r510,0r-250,-637xm-18,0r643,-1522r616,1522r-145,0r-187,-496r-598,0r-194,496r-135,0xm745,-1608r-94,0r-283,-350r164,0","w":1223},"\u00c3":{"d":"356,-610r510,0r-250,-637xm-18,0r643,-1522r616,1522r-145,0r-187,-496r-598,0r-194,496r-135,0xm657,-1815v68,24,143,3,158,-57r88,0v-29,122,-118,213,-264,174v-45,-13,-80,-36,-138,-35v-48,0,-73,25,-92,61r-88,0v25,-119,116,-203,258,-170","w":1223},"\u00d5":{"d":"648,-128v149,65,342,65,493,0v221,-95,397,-297,397,-601v0,-304,-175,-506,-396,-601v-151,-65,-341,-66,-492,0v-220,96,-396,296,-396,601v0,303,176,506,394,601xm1620,-1026v79,182,80,410,0,592v-116,264,-359,473,-725,473v-366,0,-608,-213,-723,-475v-80,-182,-79,-408,0,-590v115,-264,353,-471,723,-471v369,0,610,207,725,471xm942,-1815v68,24,143,3,158,-57r88,0v-29,122,-118,213,-264,174v-45,-13,-80,-36,-138,-35v-48,0,-73,25,-92,61r-88,0v25,-119,116,-203,258,-170","w":1792},"\u0152":{"d":"879,-1499v296,0,483,137,604,338r0,-303r698,0r0,125r-575,0r0,458r575,0r0,125r-575,0r0,631r575,0r0,125r-698,0r0,-311v-132,246,-452,415,-816,320v-207,-54,-364,-195,-457,-358v-110,-192,-132,-461,-41,-679v111,-265,348,-471,710,-471xm288,-980v-63,152,-63,344,0,496v89,215,278,398,574,398v299,0,480,-178,570,-396v63,-153,63,-353,4,-504v-87,-221,-277,-392,-574,-392v-295,0,-485,183,-574,398","w":2320,"k":{";":-38,":":-38,".":-38,"-":-38,",":-38}},"\u0153":{"d":"225,-440v0,196,155,364,348,364v193,0,349,-168,349,-364v0,-198,-154,-365,-349,-365v-194,0,-348,167,-348,365xm1604,-545v-9,-159,-111,-260,-277,-260v-150,0,-266,116,-274,260r551,0xm1339,-922v263,0,421,199,410,480r-705,0v-4,201,108,366,293,366v159,0,246,-88,301,-213r117,64v-81,155,-194,261,-403,264v-182,3,-333,-99,-377,-238v-68,139,-211,238,-406,238v-225,0,-372,-131,-441,-295v-48,-114,-48,-255,0,-370v69,-162,217,-296,435,-296v206,0,339,90,412,234v49,-137,184,-234,364,-234","w":1841,"k":{"-":-38}},"\u2013":{"d":"0,-481r1024,0r0,80r-1024,0r0,-80"},"\u2014":{"d":"0,-401r0,-80r2048,0r0,80r-2048,0","w":2048},"\u201c":{"d":"772,-1466r-194,540r-150,-67r262,-504xm449,-1466r-195,540r-148,-67r261,-504","w":877,"k":{"\u0111":73,"\u0142":-38,"\uf002":-57,"\uf001":-57,"\u0152":83,"\u00d8":83,"\u00c6":319,"\u00c5":272,"v":-57,"r":112,"q":73,"l":-38,"k":-38,"h":-38,"g":73,"f":-57,"d":73,"b":-94,"Y":-65,"X":-65,"W":-47,"V":-57,"T":-38,"Q":36,"O":83,"J":272,"A":272}},"\u201d":{"d":"428,-958r195,-539r149,65r-262,506xm106,-958r193,-539r150,65r-263,506","w":877},"\u2018":{"d":"467,-1466r-195,540r-149,-67r262,-504","w":590,"k":{"\u0111":73,"\u0142":-38,"\uf002":-57,"\uf001":-57,"\u0152":83,"\u00d8":83,"\u00c6":319,"\u00c5":272,"v":-57,"r":112,"q":73,"l":-38,"k":-38,"h":-38,"g":73,"f":-57,"d":73,"b":-94,"Y":-65,"X":-65,"W":-47,"V":-57,"T":-38,"Q":36,"O":83,"J":272,"A":272}},"\u2019":{"d":"123,-958r194,-539r150,65r-262,506","w":590},"\u00f7":{"d":"756,-264v0,-53,46,-101,98,-101v54,0,98,47,98,101v0,52,-45,98,-98,98v-53,0,-98,-45,-98,-98xm1452,-651r0,82r-1198,0r0,-82r1198,0xm756,-956v0,-53,45,-99,98,-99v54,0,98,45,98,99v0,52,-45,100,-98,100v-53,0,-98,-47,-98,-100","w":1706},"\u25ca":{"d":"506,-1409r-385,817r385,825r385,-825xm506,-1653r500,1061r-500,1069r-500,-1069","w":1012},"\u00ff":{"d":"43,-887r131,0r254,694r234,-694r131,0r-459,1333r-127,0r155,-452xm590,-1092v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm238,-1092v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":825},"\u0178":{"d":"496,0r0,-674r-486,-790r160,0r393,671r395,-671r152,0r-481,790r0,674r-133,0xm735,-1670v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm383,-1670v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1118},"\u2215":{"d":"-342,39r917,-1518r107,0r-915,1518r-109,0","w":342},"\u00a4":{"d":"623,-555v178,0,331,-153,331,-332v0,-178,-152,-330,-331,-330v-178,0,-332,153,-332,330v0,179,153,332,332,332xm209,-885v0,-109,39,-194,92,-262r-207,-205r58,-59r206,207v71,-56,149,-94,263,-94v112,0,194,39,264,94r205,-207r59,59r-207,205v53,68,92,153,92,262v0,112,-38,194,-92,262r207,205r-59,60r-205,-207v-68,53,-154,92,-264,92v-113,0,-193,-38,-263,-92r-206,207r-58,-60r207,-205v-53,-67,-92,-152,-92,-262","w":1241},"\u2039":{"d":"295,-51r-252,-385r244,-395r86,51r-209,346r215,332","w":422,"k":{"\u00c6":-151,"Y":149,"W":112,"V":112,"T":112,"J":-38}},"\u203a":{"d":"125,-51r-82,-51r215,-332r-211,-346r88,-51r244,395","w":422},"\uf001":{"d":"731,-1139v-52,0,-94,-42,-94,-94v0,-51,43,-94,94,-94v51,0,94,43,94,94v0,54,-40,94,-94,94xm668,0r0,-887r127,0r0,887r-127,0xm522,-1440v-57,-33,-153,-36,-180,28v-46,106,-21,364,-27,525r195,0r0,105r-195,0r0,782r-122,0r0,-782r-166,0r0,-105r166,0v0,-190,-10,-528,50,-603v40,-82,199,-98,302,-58","w":967,"k":{"\u2018":36,"\u201c":36}},"\uf002":{"d":"678,0r0,-1550r125,0r0,1550r-125,0xm522,-1440v-57,-33,-153,-36,-180,28v-46,106,-21,364,-27,525r195,0r0,105r-195,0r0,782r-122,0r0,-782r-166,0r0,-105r166,0v0,-190,-10,-528,50,-603v40,-82,199,-98,302,-58","w":977},"\u2021":{"d":"459,446r0,-485r-359,0r0,-113r359,0r0,-720r-359,0r0,-113r359,0r0,-479r123,0r0,479r362,0r0,113r-362,0r0,720r362,0r0,113r-362,0r0,485r-123,0","w":1042},"\u00b7":{"d":"295,-616v-56,0,-102,-47,-102,-103v0,-56,46,-102,102,-102v56,0,102,46,102,102v0,56,-46,103,-102,103","w":590},"\u201a":{"d":"324,-254r145,61r-264,515r-84,-39","w":590,"k":{"\uf002":-38,"\uf001":-38,"\u0152":112,"\u00d8":112,"\u00c6":-227,"\u00df":-38,"\u00c5":-75,"w":83,"v":83,"u":36,"t":73,"j":-47,"f":-38,"Y":225,"X":-86,"W":292,"V":339,"U":188,"T":206,"Q":112,"O":112,"J":-38,"G":73,"C":112,"A":-75}},"\u201e":{"d":"428,287r195,-541r149,68r-262,505xm106,287r193,-541r150,68r-263,505","w":877,"k":{"\uf002":-38,"\uf001":-38,"\u0152":112,"\u00d8":112,"\u00c6":-227,"\u00df":-38,"\u00c5":-75,"w":83,"v":83,"u":36,"t":73,"j":-47,"f":-38,"Y":225,"X":-86,"W":292,"V":339,"U":188,"T":206,"Q":112,"O":112,"J":-38,"G":73,"C":112,"A":-75}},"\u2030":{"d":"1849,-616v-131,0,-176,127,-176,280v0,156,43,283,176,283v132,0,175,-128,174,-283v0,-159,-37,-280,-174,-280xm1849,-709v200,0,293,159,293,375v0,216,-93,373,-293,373v-200,0,-295,-157,-295,-373v0,-216,95,-375,295,-375xm1139,-616v-133,0,-174,126,-174,280v0,157,40,283,174,283v131,0,176,-129,176,-283v0,-158,-41,-280,-176,-280xm1139,-709v200,0,295,159,295,375v0,216,-95,373,-295,373v-200,0,-293,-157,-293,-373v0,-216,93,-375,293,-375xm354,-1386v-132,0,-175,126,-174,280v0,157,40,283,174,283v133,0,177,-129,176,-283v0,-158,-40,-280,-176,-280xm354,-1479v200,0,295,159,295,375v0,216,-95,375,-295,375v-199,0,-293,-159,-293,-375v0,-216,94,-375,293,-375xm270,39r840,-1518r109,0r-842,1518r-107,0","w":2204},"\u00c2":{"d":"356,-610r510,0r-250,-637xm-18,0r643,-1522r616,1522r-145,0r-187,-496r-598,0r-194,496r-135,0xm325,-1608r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":1223},"\u00ca":{"d":"182,0r0,-1464r725,0r0,125r-592,0r0,458r592,0r0,125r-592,0r0,631r592,0r0,125r-725,0xm254,-1608r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":1051},"\u00c1":{"d":"356,-610r510,0r-250,-637xm-18,0r643,-1522r616,1522r-145,0r-187,-496r-598,0r-194,496r-135,0xm479,-1608r213,-350r164,0r-283,350r-94,0","w":1223},"\u00cb":{"d":"182,0r0,-1464r725,0r0,125r-592,0r0,458r592,0r0,125r-592,0r0,631r592,0r0,125r-725,0xm717,-1670v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm365,-1670v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":1051},"\u00c8":{"d":"182,0r0,-1464r725,0r0,125r-592,0r0,458r592,0r0,125r-592,0r0,631r592,0r0,125r-725,0xm674,-1608r-94,0r-283,-350r164,0","w":1051},"\u00cd":{"d":"182,0r0,-1464r133,0r0,1464r-133,0xm117,-1608r213,-350r164,0r-283,350r-94,0","w":498},"\u00ce":{"d":"182,0r0,-1464r133,0r0,1464r-133,0xm-37,-1608r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":498},"\u00cf":{"d":"182,0r0,-1464r133,0r0,1464r-133,0xm426,-1670v-55,0,-98,-41,-98,-96v0,-52,46,-98,98,-98v52,0,96,46,96,98v0,55,-41,96,-96,96xm74,-1670v-55,0,-96,-40,-96,-96v0,-52,44,-98,96,-98v52,0,98,46,98,98v0,54,-44,96,-98,96","w":498},"\u00cc":{"d":"182,0r0,-1464r133,0r0,1464r-133,0xm383,-1608r-94,0r-283,-350r164,0","w":498},"\u00d3":{"d":"648,-128v149,65,342,65,493,0v221,-95,397,-297,397,-601v0,-304,-175,-506,-396,-601v-151,-65,-341,-66,-492,0v-220,96,-396,296,-396,601v0,303,176,506,394,601xm1620,-1026v79,182,80,410,0,592v-116,264,-359,473,-725,473v-366,0,-608,-213,-723,-475v-80,-182,-79,-408,0,-590v115,-264,353,-471,723,-471v369,0,610,207,725,471xm764,-1608r213,-350r164,0r-283,350r-94,0","w":1792},"\u00d4":{"d":"648,-128v149,65,342,65,493,0v221,-95,397,-297,397,-601v0,-304,-175,-506,-396,-601v-151,-65,-341,-66,-492,0v-220,96,-396,296,-396,601v0,303,176,506,394,601xm1620,-1026v79,182,80,410,0,592v-116,264,-359,473,-725,473v-366,0,-608,-213,-723,-475v-80,-182,-79,-408,0,-590v115,-264,353,-471,723,-471v369,0,610,207,725,471xm610,-1608r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":1792},"\uf000":{"d":"860,-1214r-24,-2v-22,-205,151,-367,329,-398v2,21,0,34,2,62v11,155,-170,340,-307,338xm1272,-741v0,172,101,279,233,338v-76,165,-144,279,-205,343v-61,64,-129,95,-204,95v-57,0,-202,-71,-254,-66v-51,-6,-209,70,-258,66v-121,-10,-190,-85,-258,-176v-116,-156,-208,-360,-213,-596v-6,-278,179,-494,448,-494v72,0,222,68,279,68v52,0,208,-73,274,-70v168,9,272,64,359,164v-116,75,-201,163,-201,328","w":1618},"\u00d2":{"d":"648,-128v149,65,342,65,493,0v221,-95,397,-297,397,-601v0,-304,-175,-506,-396,-601v-151,-65,-341,-66,-492,0v-220,96,-396,296,-396,601v0,303,176,506,394,601xm1620,-1026v79,182,80,410,0,592v-116,264,-359,473,-725,473v-366,0,-608,-213,-723,-475v-80,-182,-79,-408,0,-590v115,-264,353,-471,723,-471v369,0,610,207,725,471xm1030,-1608r-94,0r-283,-350r164,0","w":1792},"\u00da":{"d":"709,39v-372,0,-533,-207,-533,-590r0,-913r131,0r0,956v0,284,123,428,402,428v275,0,399,-146,399,-428r0,-956r133,0r0,913v0,383,-161,590,-532,590xm576,-1608r213,-350r164,0r-283,350r-94,0","w":1417},"\u00db":{"d":"709,39v-372,0,-533,-207,-533,-590r0,-913r131,0r0,956v0,284,123,428,402,428v275,0,399,-146,399,-428r0,-956r133,0r0,913v0,383,-161,590,-532,590xm422,-1608r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0","w":1417},"\u00d9":{"d":"709,39v-372,0,-533,-207,-533,-590r0,-913r131,0r0,956v0,284,123,428,402,428v275,0,399,-146,399,-428r0,-956r133,0r0,913v0,383,-161,590,-532,590xm842,-1608r-94,0r-283,-350r164,0","w":1417},"\u0131":{"d":"172,0r0,-887r127,0r0,887r-127,0","w":471},"\u02c6":{"d":"225,-1030r213,-350r146,0r213,350r-92,0r-193,-250r-195,250r-92,0"},"\u02dc":{"d":"557,-1237v68,24,143,3,158,-57r88,0v-29,122,-118,213,-264,174v-45,-13,-80,-36,-138,-35v-48,0,-73,25,-92,61r-88,0v25,-119,116,-203,258,-170"},"\u00af":{"d":"254,-1118r0,-117r516,0r0,117r-516,0"},"\u02d8":{"d":"786,-1284v-17,164,-96,240,-274,240v-178,0,-257,-76,-274,-240r79,0v17,94,80,129,195,129v116,-1,176,-33,193,-129r81,0"},"\u02d9":{"d":"512,-1085v-53,0,-102,-49,-102,-103v0,-54,49,-104,102,-104v55,0,102,49,102,104v0,54,-49,103,-102,103"},"\u02da":{"d":"512,-1401v-79,0,-141,62,-141,141v0,79,62,144,141,144v78,0,143,-66,143,-144v0,-77,-65,-141,-143,-141xm512,-1012v-136,0,-248,-112,-248,-248v0,-135,113,-247,248,-247v135,0,248,112,248,247v0,136,-112,248,-248,248"},"\u00b8":{"d":"758,252v4,212,-293,174,-457,127r0,-70v100,19,141,33,225,33v75,0,124,-21,125,-88v1,-85,-90,-95,-182,-88r0,-166r61,0r0,100v129,-4,225,38,228,152"},"\u02dd":{"d":"580,-1030r168,-350r155,0r-239,350r-84,0xm322,-1030r147,-350r158,0r-221,350r-84,0"},"\u02db":{"d":"614,434v-165,6,-304,-11,-301,-164v0,-43,14,-85,41,-125v27,-40,77,-88,148,-145r71,0v-75,69,-134,128,-143,236v-7,98,91,87,184,86r0,112"},"\u02c7":{"d":"797,-1380r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0"},"\u0141":{"d":"193,0r0,-672r-195,135r-66,-79r261,-185r0,-663r133,0r0,592r237,-166r64,86r-301,209r0,618r501,0r0,125r-634,0","w":856,"k":{"\u2019":311,"\u2018":339,"\u201d":311,"\u201c":339,"y":73,"u":36,"o":36,"e":36,"a":36,"Y":149,"W":112,"V":112,"U":36,"T":112,"O":73,";":-38,":":-38,".":-38,"-":36,",":-38}},"\u0142":{"d":"313,-831r152,-107r55,82r-207,147r0,709r-127,0r0,-635r-149,109r-57,-82r206,-148r0,-794r127,0r0,719","w":500},"\u0160":{"d":"905,-389v0,260,-167,431,-428,428v-216,-3,-339,-116,-407,-285r114,-61v38,132,140,226,299,227v186,1,297,-120,295,-309v0,-71,-17,-129,-52,-176v-35,-47,-111,-101,-226,-162v-147,-78,-245,-147,-294,-206v-49,-59,-73,-131,-73,-214v0,-210,164,-355,379,-352v162,3,263,73,324,186r-103,62v-39,-79,-116,-129,-229,-129v-142,-2,-236,93,-236,235v0,103,84,200,254,287v122,62,277,163,320,232v39,63,63,140,63,237xm795,-1958r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":1020},"\u0161":{"d":"696,-229v5,171,-139,270,-321,268v-157,-2,-268,-78,-312,-197r117,-67v35,91,102,148,219,149v97,2,170,-53,170,-145v0,-74,-97,-143,-211,-185v-94,-35,-159,-75,-196,-114v-37,-39,-56,-87,-56,-144v-2,-154,127,-258,287,-258v150,0,252,70,295,181r-113,63v-26,-79,-90,-128,-190,-129v-80,-1,-148,55,-147,131v0,37,14,67,41,91v27,24,85,48,170,79v164,61,242,94,247,277xm676,-1380r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":782},"\u00a6":{"d":"557,-408r0,758r-90,0r0,-758r90,0xm557,-1432r0,758r-90,0r0,-758r90,0"},"\u00d0":{"d":"326,-115v161,1,422,0,508,-25v154,-44,246,-159,300,-300v62,-164,61,-428,-2,-590v-56,-147,-152,-253,-310,-298v-77,-22,-331,-28,-496,-26r0,490r426,0r0,102r-426,0r0,647xm193,0r0,-762r-193,0r0,-102r193,0r0,-600v209,-1,553,2,663,30v200,51,330,181,404,355v85,196,83,499,-1,695v-74,172,-208,302,-403,354v-115,31,-455,31,-663,30","w":1436,"k":{"\u201e":188,"\u201a":188,"\u2019":36,"\u2018":36,"\u201d":36,"\u201c":36,"Y":36,"W":36,"V":36,"A":36,".":120,"-":-65,",":120}},"\u00f0":{"d":"219,-428v0,191,158,352,348,352v189,0,348,-162,348,-352v0,-192,-157,-352,-348,-352v-191,0,-348,161,-348,352xm1053,-496v0,311,-185,540,-486,535v-219,-4,-377,-127,-447,-287v-48,-110,-45,-243,0,-354v81,-198,343,-356,605,-249v57,24,113,61,168,110v-55,-198,-178,-364,-324,-492r-313,146r-47,-82r276,-131v-72,-59,-149,-107,-243,-158r59,-90v114,66,210,127,297,196r342,-159r51,84r-307,147v123,123,214,249,276,380v62,131,93,266,93,404","w":1139},"\u00dd":{"d":"496,0r0,-674r-486,-790r160,0r393,671r395,-671r152,0r-481,790r0,674r-133,0xm426,-1608r213,-350r164,0r-283,350r-94,0","w":1118},"\u00fd":{"d":"43,-887r131,0r254,694r234,-694r131,0r-459,1333r-127,0r155,-452xm281,-1030r213,-350r164,0r-283,350r-94,0","w":825},"\u00de":{"d":"406,-473v284,-6,409,-31,409,-277v0,-145,-62,-245,-180,-280v-49,-15,-214,-18,-320,-17r0,574r91,0xm956,-762v0,300,-170,405,-487,406r-154,0r0,356r-133,0r0,-1464r133,0r0,299v212,2,390,-7,496,75v85,66,145,182,145,328"},"\u00fe":{"d":"600,-76v193,-1,283,-154,283,-362v0,-211,-98,-368,-295,-369v-198,-1,-303,150,-303,358v0,211,116,374,315,373xm606,39v-162,-1,-262,-85,-323,-203r0,610r-119,0r0,-1996r119,0r0,829v49,-114,163,-198,317,-199v258,-2,416,209,416,480v0,274,-150,481,-410,479","w":1108},"\u2212":{"d":"1452,-651r0,82r-1198,0r0,-82r1198,0","w":1706},"\u00d7":{"d":"854,-668r487,-487r58,57r-488,488r488,487r-58,57r-487,-487r-487,487r-58,-57r488,-487r-488,-488r58,-57","w":1706},"\u00b9":{"d":"360,-575r0,-799r-174,0r41,-72r217,0r0,871r-84,0","w":778},"\u00b2":{"d":"373,-1462v166,0,299,88,299,243v0,91,-93,233,-234,369r-213,205r443,0r0,70r-621,0r269,-267v175,-173,262,-296,262,-370v1,-110,-97,-179,-213,-179v-130,0,-212,79,-211,207r-86,0v-4,-179,123,-278,305,-278","w":778},"\u00b3":{"d":"678,-809v2,164,-133,256,-307,256v-179,0,-293,-82,-305,-244r94,0v8,117,82,174,211,174v126,0,215,-65,215,-186v0,-135,-106,-200,-254,-187r0,-75v133,14,239,-37,239,-158v1,-102,-83,-164,-190,-164v-101,0,-171,53,-182,141r-95,1v14,-132,127,-211,277,-211v153,0,282,83,281,227v-1,109,-74,178,-168,203v103,32,183,102,184,223","w":778},"\u00bc":{"d":"1540,-272r0,-369r-291,369r291,0xm1540,0r0,-207r-416,0r500,-633r0,568r94,0r0,65r-94,0r0,207r-84,0xm401,39r918,-1518r106,0r-915,1518r-109,0xm344,-633r0,-745r-168,0r41,-66r207,0r0,811r-80,0","w":1829},"\u00bd":{"d":"1442,-827v159,0,282,79,284,227v1,86,-81,210,-223,344r-203,193r422,0r0,63r-592,0r252,-245v169,-163,254,-280,254,-351v1,-103,-94,-166,-204,-166v-122,0,-200,74,-199,195r-82,0v-4,-171,117,-260,291,-260xm401,39r918,-1518r106,0r-915,1518r-109,0xm344,-633r0,-745r-168,0r41,-66r207,0r0,811r-80,0","w":1829},"\u00be":{"d":"1540,-272r0,-369r-291,369r291,0xm1540,0r0,-207r-416,0r500,-633r0,568r94,0r0,65r-94,0r0,207r-84,0xm401,39r918,-1518r106,0r-915,1518r-109,0xm647,-850v1,154,-129,240,-293,240v-170,0,-278,-78,-293,-230r91,0v8,109,82,162,202,162v119,0,205,-59,205,-172v0,-130,-101,-185,-244,-176r0,-70v125,13,230,-31,230,-145v0,-97,-78,-154,-180,-154v-97,0,-165,47,-175,131r-89,0v11,-125,122,-196,264,-196v145,0,266,77,266,211v0,105,-69,167,-160,190v99,29,175,95,176,209","w":1829},"\u20a3":{"d":"182,0r0,-1464r725,0r0,125r-592,0r0,458r570,0r0,125r-570,0r0,756r-133,0xm1664,-785v-213,-69,-351,141,-351,349r0,436r-123,0r0,-887r123,0r0,178v78,-123,128,-211,286,-211v39,0,74,8,105,19","w":1671},"\u011e":{"d":"858,39v-442,0,-751,-322,-745,-768v5,-357,189,-602,441,-712v199,-87,502,-67,680,25v105,55,188,132,245,236r-97,84v-106,-165,-266,-276,-512,-280v-366,-5,-620,287,-614,661v5,295,162,499,375,587v218,90,494,42,639,-101v101,-99,156,-223,159,-379r-505,0r0,-115r651,0v10,468,-262,762,-717,762xm1112,-1862v-17,164,-96,240,-274,240v-178,0,-257,-76,-274,-240r79,0v17,94,80,129,195,129v116,-1,176,-33,193,-129r81,0","w":1673},"\u011f":{"d":"506,-920v147,0,271,88,313,199r0,-166r125,0r0,733v-2,182,4,301,-41,404v-58,134,-188,196,-381,196v-228,0,-365,-84,-395,-276r154,0v21,114,112,168,251,166v145,-2,252,-63,278,-186v15,-71,8,-218,9,-314v-49,117,-163,202,-319,203v-260,1,-410,-206,-410,-479v0,-272,156,-480,416,-480xm821,-449v0,-209,-103,-358,-301,-358v-197,0,-297,158,-297,369v0,209,92,361,285,362v199,1,313,-162,313,-373xm829,-1284v-17,164,-96,240,-274,240v-178,0,-257,-76,-274,-240r79,0v17,94,80,129,195,129v116,-1,176,-33,193,-129r81,0","w":1108},"\u0130":{"d":"182,0r0,-1464r133,0r0,1464r-133,0xm250,-1663v-53,0,-102,-49,-102,-103v0,-54,49,-104,102,-104v55,0,102,49,102,104v0,54,-49,103,-102,103","w":498},"\u015e":{"d":"905,-389v0,260,-167,431,-428,428v-216,-3,-339,-116,-407,-285r114,-61v38,132,140,226,299,227v186,1,297,-120,295,-309v0,-71,-17,-129,-52,-176v-35,-47,-111,-101,-226,-162v-147,-78,-245,-147,-294,-206v-49,-59,-73,-131,-73,-214v0,-210,164,-355,379,-352v162,3,263,73,324,186r-103,62v-39,-79,-116,-129,-229,-129v-142,-2,-236,93,-236,235v0,103,84,200,254,287v122,62,277,163,320,232v39,63,63,140,63,237xm756,252v4,212,-293,174,-457,127r0,-70v100,19,141,33,225,33v75,0,124,-21,125,-88v1,-85,-90,-95,-182,-88r0,-166r61,0r0,100v129,-4,225,38,228,152","w":1020},"\u015f":{"d":"696,-229v5,171,-139,270,-321,268v-157,-2,-268,-78,-312,-197r117,-67v35,91,102,148,219,149v97,2,170,-53,170,-145v0,-74,-97,-143,-211,-185v-94,-35,-159,-75,-196,-114v-37,-39,-56,-87,-56,-144v-2,-154,127,-258,287,-258v150,0,252,70,295,181r-113,63v-26,-79,-90,-128,-190,-129v-80,-1,-148,55,-147,131v0,37,14,67,41,91v27,24,85,48,170,79v164,61,242,94,247,277xm637,252v4,212,-293,174,-457,127r0,-70v100,19,141,33,225,33v75,0,124,-21,125,-88v1,-85,-90,-95,-182,-88r0,-166r61,0r0,100v129,-4,225,38,228,152","w":782},"\u0106":{"d":"580,-1440v262,-106,608,-53,780,97r-2,147v-126,-108,-259,-180,-463,-184v-375,-7,-639,272,-639,649v0,313,156,508,378,601v251,105,554,17,716,-124r0,156v-192,127,-515,187,-771,80v-273,-114,-466,-341,-466,-713v0,-368,193,-598,467,-709xm741,-1608r213,-350r164,0r-283,350r-94,0","w":1464},"\u0107":{"d":"580,-920v108,0,205,22,276,60r-2,135v-73,-51,-163,-85,-276,-86v-222,-2,-361,161,-361,387v0,205,155,362,361,358v118,-2,210,-44,290,-100r0,135v-82,47,-187,72,-313,74v-268,3,-463,-205,-463,-475v0,-285,203,-488,488,-488xm428,-1030r213,-350r164,0r-283,350r-94,0","w":934},"\u010c":{"d":"580,-1440v262,-106,608,-53,780,97r-2,147v-126,-108,-259,-180,-463,-184v-375,-7,-639,272,-639,649v0,313,156,508,378,601v251,105,554,17,716,-124r0,156v-192,127,-515,187,-771,80v-273,-114,-466,-341,-466,-713v0,-368,193,-598,467,-709xm1159,-1958r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":1464},"\u010d":{"d":"580,-920v108,0,205,22,276,60r-2,135v-73,-51,-163,-85,-276,-86v-222,-2,-361,161,-361,387v0,205,155,362,361,358v118,-2,210,-44,290,-100r0,135v-82,47,-187,72,-313,74v-268,3,-463,-205,-463,-475v0,-285,203,-488,488,-488xm846,-1380r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":934},"\u0111":{"d":"526,-807v-197,1,-301,162,-301,373v0,215,96,358,299,358v200,0,299,-165,299,-381v0,-204,-104,-350,-297,-350xm500,-920v163,1,266,77,321,195r0,-436r-360,0r0,-101r360,0r0,-288r125,0r0,288r170,0r0,101r-170,0r0,1161r-125,0r0,-162v-52,119,-150,199,-309,201v-261,2,-424,-206,-424,-477v0,-263,162,-484,412,-482","w":1116},"\u00ad":{"d":"137,-506r436,0r0,129r-436,0r0,-129","w":711},"\u2219":{"d":"295,-616v-56,0,-102,-47,-102,-103v0,-56,46,-102,102,-102v56,0,102,46,102,102v0,56,-46,103,-102,103","w":590},"\u20ac":{"d":"116,-935v57,-332,304,-556,678,-556v124,0,228,27,313,81r-40,186v-145,-133,-403,-128,-559,-20v-81,56,-176,195,-189,309r682,0r-27,134r-671,0v-2,36,-1,124,0,132r644,0r-28,134r-595,0v38,239,200,394,451,394v125,0,222,-33,292,-98r0,206v-83,39,-175,58,-276,58v-374,0,-601,-211,-666,-560r-153,0r28,-134r105,0v-3,-40,-4,-88,-2,-132r-131,0r28,-134r116,0","w":1139},"\u010e":{"d":"315,-115v161,1,422,0,509,-25v154,-45,246,-159,300,-301v63,-165,63,-425,0,-588v-56,-146,-154,-254,-312,-299v-78,-22,-333,-28,-497,-26r0,1239xm182,0r0,-1464v209,-1,550,1,661,30v306,80,470,329,470,703v0,372,-168,619,-465,700v-125,34,-456,31,-666,31xm989,-1956r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":1424},"\u010f":{"d":"526,-807v-198,1,-301,160,-301,373v0,215,96,358,299,358v200,0,299,-165,299,-381v0,-204,-103,-350,-297,-350xm500,-920v163,1,266,77,321,195r0,-825r125,0r0,1550r-125,0r0,-162v-52,120,-150,199,-309,201v-261,2,-424,-206,-424,-477v0,-265,160,-484,412,-482xm1011,-1206r213,-350r164,0r-283,350r-94,0","w":1408},"\u011b":{"d":"780,-545v-10,-158,-109,-256,-276,-256v-154,0,-263,110,-275,256r551,0xm520,-920v260,1,419,200,406,480r-705,0v3,208,106,368,303,368v155,0,239,-91,295,-213r113,62v-83,161,-189,259,-408,262v-263,4,-436,-203,-436,-473v0,-275,168,-487,432,-486xm797,-1380r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":1016},"\u0148":{"d":"561,-809v-205,0,-274,125,-274,346r0,463r-123,0r0,-887r117,0r0,137v65,-102,160,-168,313,-170v199,-2,319,119,319,318r0,602r-125,0r0,-547v0,-170,-64,-262,-227,-262xm797,-1380r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":1064},"\u0159":{"d":"638,-785v-213,-69,-351,141,-351,349r0,436r-123,0r0,-887r123,0r0,178v78,-123,128,-211,286,-211v39,0,74,8,105,19xm613,-1388r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":648},"\u0165":{"d":"190,-782r-163,0r0,-105r163,0r0,-364r121,0r0,364r178,0r0,105r-178,0r0,782r-121,0r0,-782xm379,-1030r213,-350r164,0r-283,350r-94,0","w":752},"\u016f":{"d":"541,39v-256,0,-377,-155,-377,-420r0,-506r123,0r0,443v4,240,40,368,252,368v210,0,254,-131,254,-368r0,-443r122,0r0,506v1,265,-119,420,-374,420xm536,-1401v-79,0,-141,62,-141,141v0,79,62,144,141,144v78,0,143,-66,143,-144v0,-77,-65,-141,-143,-141xm536,-1012v-136,0,-248,-112,-248,-248v0,-135,113,-247,248,-247v135,0,248,112,248,247v0,136,-112,248,-248,248","w":1080},"\u017d":{"d":"25,0r870,-1343r-743,0r0,-121r970,0r-866,1341r778,0r0,123r-1009,0xm901,-1948r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":1144},"\u017e":{"d":"23,0r495,-776r-461,0r0,-111r674,0r-491,776r505,0r0,111r-722,0xm677,-1380r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":784},"\u0158":{"d":"782,-1069v0,-217,-104,-277,-333,-279r-134,0r0,541r134,0v230,-3,333,-50,333,-262xm926,-1065v2,229,-149,370,-381,367r526,698r-162,0r-514,-698r-80,0r0,698r-133,0r0,-1464r269,0v300,0,472,114,475,399xm813,-1956r-213,350r-146,0r-213,-350r92,0r195,250r193,-250r92,0","w":1080}}});Cufon.registerFont({"w":1024,"face":{"font-family":"futura","font-weight":700,"font-stretch":"normal","units-per-em":"2048","panose-1":"2 11 8 2 2 2 4 2 2 4","ascent":"1556","descent":"-492","x-height":"39","bbox":"-342 -1972 2669 485.042","underline-thickness":"272","underline-position":"-97","unicode-range":"U+0020-U+F002"},"glyphs":{" ":{"w":641},"!":{"d":"166,-487r0,-1045r371,0r0,1045r-371,0xm350,39v-110,0,-200,-93,-200,-203v0,-110,89,-203,200,-203v112,0,203,91,203,203v0,110,-93,203,-203,203","w":702},"\"":{"d":"416,-1438r223,0r0,561r-223,0r0,-561xm76,-1438r219,0r0,561r-219,0r0,-561","w":713},"#":{"d":"707,-842r-82,232r245,0r82,-232r-245,0xm684,-1466r250,0r-139,393r235,0r141,-393r250,0r-139,393r270,0r-86,231r-268,0r-80,230r277,0r-84,231r-275,0r-141,393r-250,0r139,-393r-235,0r-141,393r-250,0r139,-393r-274,0r86,-231r270,0r82,-230r-283,0r86,-231r279,0","w":1575},"$":{"d":"1139,-479v2,284,-196,481,-463,504r0,243r-129,0r0,-239v-223,-7,-361,-86,-490,-211r181,-293v95,108,191,192,356,199v93,4,175,-63,174,-152v0,-47,-14,-84,-42,-110v-28,-26,-90,-51,-189,-78v-150,-41,-255,-92,-315,-154v-60,-62,-91,-147,-91,-254v2,-283,198,-442,473,-467r0,-139r129,0r1,137v133,15,240,62,337,127r-127,285v-75,-64,-162,-112,-280,-115v-86,-2,-160,43,-160,121v0,112,90,119,205,155v243,75,332,101,403,275v20,49,27,105,27,166","w":1280},"%":{"d":"426,-1325v-114,0,-127,106,-127,250v0,89,10,152,30,191v20,39,52,59,97,59v114,0,127,-106,127,-250v0,-89,-10,-152,-30,-191v-20,-39,-52,-59,-97,-59xm426,-1479v233,0,377,166,377,404v0,237,-145,403,-377,403v-233,0,-377,-165,-377,-403v0,-238,144,-404,377,-404xm1444,-616v-114,0,-127,105,-127,249v0,89,12,153,30,193v35,78,155,76,194,0v34,-68,38,-318,0,-384v-22,-38,-52,-58,-97,-58xm1444,-770v232,0,375,165,375,403v0,238,-143,406,-375,406v-234,0,-377,-167,-377,-406v0,-238,144,-403,377,-403xm393,39r879,-1518r188,0r-885,1518r-182,0","w":1851},"&":{"d":"1491,-535v-64,79,-127,146,-201,207r318,328r-443,0r-129,-150v-126,117,-260,185,-479,189v-248,5,-442,-167,-442,-408v0,-92,27,-173,81,-243v54,-70,140,-137,259,-199v-74,-87,-133,-170,-136,-301v-5,-203,191,-344,406,-344v248,0,430,126,430,360v0,182,-115,282,-250,369r172,180v73,-61,140,-127,205,-203xm467,-395v-6,124,142,189,257,125v34,-19,73,-43,112,-78r-236,-258v-70,65,-128,112,-133,211xm758,-1221v-105,0,-163,92,-120,189v24,54,62,89,95,133v62,-53,146,-106,150,-203v3,-71,-53,-119,-125,-119","w":1651},"'":{"d":"76,-1438r219,0r0,561r-219,0r0,-561","w":371},"(":{"d":"403,-518v0,365,107,617,281,835r-219,152v-218,-266,-361,-551,-361,-987v0,-434,144,-726,361,-989r227,147v-183,221,-289,463,-289,842","w":743},")":{"d":"281,-1507v216,265,358,553,358,989v0,433,-143,724,-358,987r-220,-152v176,-219,281,-469,281,-835v0,-377,-107,-622,-291,-842","w":743},"*":{"d":"600,-1208r205,-160r100,178r-239,96r241,99r-102,176r-205,-160r35,258r-203,0r33,-258r-203,160r-102,-176r243,-99r-243,-96r102,-176r205,158r-37,-256r205,0","w":1067},"+":{"d":"735,-1221r238,0r0,494r479,0r0,231r-479,0r0,496r-238,0r0,-496r-481,0r0,-231r481,0r0,-494","w":1706},",":{"d":"240,-332r372,0r-309,627r-276,0","w":639},"-":{"d":"127,-340r0,-326r680,0r0,326r-680,0","w":934,"k":{"\u0111":-38,"\u0153":-38,"\u0152":-75,"\u00f8":-38,"\u00d8":-75,"\u00c6":-57,"\u00c5":36,"x":36,"s":-75,"q":-38,"o":-38,"g":-38,"e":-38,"d":-38,"c":-38,"Y":159,"X":73,"W":112,"V":120,"T":188,"S":-38,"Q":-75,"O":-75,"J":-114,"G":-75,"C":-38,"A":36}},".":{"d":"319,39v-110,0,-200,-93,-200,-203v0,-111,89,-201,200,-201v113,0,203,90,203,201v0,111,-92,203,-203,203","w":639},"\/":{"d":"0,190r717,-1687r221,0r-715,1687r-223,0","w":938},"0":{"d":"1194,-707v0,232,-50,414,-148,547v-98,133,-233,199,-405,199v-172,0,-304,-71,-407,-203v-193,-246,-194,-867,0,-1113v103,-131,235,-202,407,-202v175,0,310,68,407,203v97,135,146,324,146,569xm499,-1072v-51,126,-55,577,1,702v33,72,76,110,141,110v63,0,107,-38,139,-111v57,-127,51,-569,0,-699v-58,-146,-223,-145,-281,-2","w":1280},"1":{"d":"492,0r0,-1118r-314,0r172,-332r506,0r0,1450r-364,0","w":1280},"2":{"d":"633,-1481v308,0,544,172,538,465v-4,190,-84,288,-198,414r-264,291r448,0r0,311r-1118,0r657,-778v61,-75,112,-135,117,-236v5,-102,-73,-175,-176,-174v-139,2,-201,100,-195,252r-352,0v-7,-338,209,-545,543,-545","w":1280},"3":{"d":"639,39v-332,0,-563,-193,-555,-524r371,0v-6,137,49,219,178,219v121,1,190,-65,190,-185v0,-156,-97,-206,-262,-195r0,-235v137,5,229,-46,230,-172v1,-90,-71,-151,-162,-151v-101,0,-160,58,-162,157r-354,0v6,-289,222,-432,534,-432v272,0,481,126,481,377v0,163,-95,260,-231,301v175,30,289,160,289,361v0,292,-242,479,-547,479","w":1280},"4":{"d":"721,-616r0,-426v0,-67,2,-117,10,-166v-30,67,-59,118,-100,182r-269,410r359,0xm721,0r0,-328r-666,0r0,-288r545,-840r455,0r0,840r162,0r0,288r-162,0r0,328r-334,0","w":1280},"5":{"d":"512,-770v-131,2,-218,46,-287,119r-49,-29r121,-770r797,0r0,299r-555,0r-29,188v55,-12,116,-20,180,-20v297,-3,481,197,481,496v0,337,-248,526,-600,526v-182,0,-339,-43,-450,-117r26,-354r31,6v64,98,187,173,338,174v176,2,290,-86,291,-254v1,-158,-130,-267,-295,-264","w":1280},"6":{"d":"862,-475v0,-136,-86,-225,-221,-225v-135,0,-221,89,-221,225v0,135,86,223,221,223v135,0,221,-88,221,-223xm645,39v-331,0,-558,-206,-555,-531v0,-83,17,-169,50,-257v63,-170,295,-511,417,-701r408,0r-342,516v319,-98,583,131,583,440v0,325,-231,533,-561,533","w":1280},"7":{"d":"195,0r550,-1122r-618,0r0,-328r1118,0r0,70r-637,1380r-413,0","w":1280},"8":{"d":"467,-1069v0,102,69,168,172,168v105,0,174,-64,174,-168v0,-105,-67,-166,-174,-166v-104,0,-172,63,-172,166xm438,-449v0,120,81,195,201,195v123,0,203,-73,203,-195v0,-120,-81,-192,-203,-192v-121,0,-201,73,-201,192xm1139,-1083v0,166,-99,268,-242,301v183,31,302,168,301,379v-2,299,-237,442,-559,442v-322,0,-555,-143,-557,-442v-1,-210,118,-348,301,-379v-143,-33,-242,-135,-242,-301v0,-268,210,-396,498,-396v289,0,500,128,500,396","w":1280},"9":{"d":"430,-965v0,136,86,224,221,224v136,0,221,-87,221,-224v0,-136,-86,-225,-221,-225v-135,0,-221,89,-221,225xm645,-1481v331,0,558,206,555,531v0,87,-20,177,-58,274v-74,187,-283,483,-407,676r-407,0r341,-507v-318,98,-583,-131,-583,-439v0,-325,229,-535,559,-535","w":1280},":":{"d":"350,-596v-110,0,-200,-93,-200,-203v0,-111,89,-200,200,-200v113,0,203,88,203,200v0,112,-92,203,-203,203xm350,39v-110,0,-200,-93,-200,-203v0,-111,89,-201,200,-201v113,0,203,90,203,201v0,110,-93,203,-203,203","w":702},";":{"d":"446,-596v-109,0,-202,-93,-202,-203v0,-111,91,-200,202,-200v112,0,201,88,201,200v0,112,-90,203,-201,203xm266,-332r373,0r-309,627r-277,0","w":702},"<":{"d":"1442,-1214r0,253r-854,351r854,348r0,254r-1178,-486r0,-233","w":1706},"=":{"d":"254,-502r1198,0r0,230r-1198,0r0,-230xm254,-950r1198,0r0,231r-1198,0r0,-231","w":1706},">":{"d":"264,-1214r1178,487r0,233r-1178,486r0,-254r854,-348r-854,-351r0,-253","w":1706},"?":{"d":"602,39v-109,0,-203,-93,-203,-203v0,-110,93,-203,203,-203v112,0,201,91,201,203v0,112,-90,203,-201,203xm639,-1536v273,0,471,178,471,446v0,211,-126,377,-323,381r-1,213r-344,0r0,-413r107,0v137,1,229,-52,231,-178v2,-88,-70,-165,-157,-164v-96,1,-148,54,-154,147r-342,0v-3,-277,222,-432,512,-432","w":1239},"@":{"d":"1382,-102v-131,2,-212,-45,-221,-160v-68,98,-145,157,-295,158v-220,2,-331,-122,-331,-345v0,-299,206,-571,491,-567v113,1,183,47,229,123r52,-92r206,0r-153,610v-12,50,4,92,59,92v198,0,344,-258,344,-479v0,-334,-293,-546,-647,-541v-374,5,-614,175,-743,421v-57,109,-84,228,-84,356v-3,414,317,667,747,661v243,-3,443,-76,596,-186r97,135v-185,139,-399,231,-693,233v-432,3,-735,-192,-877,-475v-95,-191,-103,-468,-24,-682v142,-383,475,-647,983,-651v380,-3,657,172,783,421v89,177,90,433,1,613v-91,184,-249,351,-520,355xm778,-444v0,100,41,174,133,174v127,0,208,-103,236,-217r51,-209v-11,-94,-61,-156,-160,-156v-156,0,-260,225,-260,408","w":2048},"A":{"d":"543,-547r397,0r-149,-483r-50,-197r-51,197xm-16,0r505,-1464r500,0r506,1464r-397,0r-74,-262r-567,0r-76,262r-397,0","w":1479,"k":{"\u201e":-38,"\u201a":-38,"\u2019":131,"\u2018":149,"\u201d":131,"\u201c":149,"\u0152":36,"\u00ab":73,"\u00d8":36,"y":36,"Y":73,"W":36,"V":36,"U":36,"T":83,"Q":36,"O":36,"G":36,"C":36,";":-38,":":-38,"-":45}},"B":{"d":"864,-1024v0,-139,-84,-146,-252,-150r-86,0r0,295r80,0v165,-4,258,-10,258,-145xm973,-788v204,14,335,152,332,370v-4,245,-150,368,-376,401v-165,24,-547,15,-773,17r0,-1464r401,0v272,3,369,-4,516,71v101,51,166,151,166,295v0,190,-100,263,-266,310xm926,-453v0,-147,-84,-161,-254,-165r-146,0r0,319r140,0v161,-3,260,-19,260,-154","w":1389,"k":{"\u201e":36,"\u201a":36,"\u2019":36,"\u201d":36,"-":-57}},"C":{"d":"548,-1446v207,-85,493,-58,669,39r0,436v-93,-100,-177,-172,-338,-176v-233,-5,-385,184,-385,424v0,226,162,414,385,408v160,-4,246,-76,338,-177r0,437v-157,84,-396,122,-601,63v-199,-57,-349,-199,-436,-363v-100,-189,-115,-472,-32,-681v69,-176,225,-338,400,-410","w":1286,"k":{"\u2019":-57,"\u201d":-57,";":-38,":":-38,"-":-47}},"D":{"d":"156,0r0,-1464r305,0v391,4,530,7,731,139v175,116,283,317,283,594v0,386,-207,620,-525,699v-162,40,-549,31,-794,32xm1069,-731v0,-317,-182,-419,-518,-406r0,809v334,12,518,-85,518,-403","w":1569,"k":{"\u201e":188,"\u201a":188,"\u00c5":36,"Y":36,"W":36,"V":36,"A":36,";":-38,":":-38,".":83,"-":-65,",":83}},"E":{"d":"156,0r0,-1464r897,0r0,321r-508,0r0,254r479,0r0,314r-479,0r0,247r508,0r0,328r-897,0","w":1161,"k":{";":-38,":":-38,".":-38,"-":-38,",":-38}},"F":{"d":"156,0r0,-1464r897,0r0,321r-508,0r0,254r479,0r0,314r-479,0r0,575r-389,0","w":1114,"k":{"\u201e":376,"\u201a":376,"\u2019":-38,"\u201d":-38,"\u00c5":36,"A":36,";":83,":":83,".":329,",":329}},"G":{"d":"492,-715v0,262,136,449,385,449v195,0,351,-106,372,-273r-397,0r0,-307r784,0v34,545,-243,883,-759,881v-384,-1,-609,-190,-725,-465v-78,-185,-78,-420,-2,-602v112,-265,356,-465,727,-465v316,0,523,134,659,338r-346,166v-73,-99,-162,-166,-313,-168v-248,-3,-385,186,-385,446","w":1726,"k":{"Y":36,"T":36,";":-38,":":-38,".":55,"-":-47,",":55}},"H":{"d":"156,0r0,-1464r399,0r0,569r532,0r0,-569r400,0r0,1464r-400,0r0,-596r-532,0r0,596r-399,0","w":1642,"k":{".":36,",":36}},"I":{"d":"166,0r0,-1464r403,0r0,1464r-403,0","w":735},"J":{"d":"219,-416v10,76,49,135,125,135v38,0,64,-21,78,-63v14,-42,22,-147,22,-315r0,-805r398,0r0,950v8,280,-66,422,-236,510v-131,67,-323,53,-446,-16v-72,-40,-134,-98,-185,-175","w":981,"k":{"\u201e":112,"\u201a":112,";":63,":":63,".":102,"-":36,",":102}},"K":{"d":"156,0r0,-1464r395,0r0,665r463,-665r465,0r-541,714r588,750r-498,0r-477,-657r0,657r-395,0","w":1485,"k":{"\u201e":-65,"\u201a":-65,"\u2019":45,"\u2018":73,"\u201d":45,"\u201c":73,"\u0152":73,"\u00ab":55,"\u00d8":73,"\u00c5":36,"y":36,"Y":36,"W":36,"O":73,"C":73,"A":36,";":-38,":":-38,".":-38,"-":102,",":-38}},"L":{"d":"156,0r0,-1464r399,0r0,1122r496,0r0,342r-895,0","w":1090,"k":{"\u2019":272,"\u2018":264,"\u201d":272,"\u201c":264,"\u0152":36,"\u00d8":36,"y":73,"Y":112,"W":73,"V":112,"T":73,"O":36,";":-38,":":-38,".":-38,"-":36,",":-38}},"M":{"d":"1835,0r-373,0r-86,-633v-6,-45,-11,-94,-16,-149v-5,-55,-10,-114,-14,-179v-9,67,-42,186,-68,275r-199,686r-266,0r-211,-729v-28,-93,-46,-170,-55,-231v-4,55,-9,110,-14,164v-5,54,-12,109,-19,163r-86,633r-371,0r226,-1464r395,0r229,781v21,67,34,125,39,173v8,-71,23,-128,45,-201r223,-753r396,0","w":1894,"k":{"\u2018":36,"\u201c":36}},"N":{"d":"1227,-453v-43,-313,-16,-667,-23,-1011r383,0r0,1464r-383,0r-553,-756v-40,-60,-93,-167,-133,-256v8,61,14,116,18,163v4,47,5,89,5,126r0,723r-385,0r0,-1464r385,0r553,753v40,63,92,167,133,258","w":1745,"k":{"\u201e":73,"\u201a":73,";":55,":":55,".":55,",":55}},"O":{"d":"1600,-1025v79,181,79,411,1,592v-114,263,-362,472,-724,472v-364,0,-610,-212,-725,-473v-80,-181,-80,-409,0,-590v115,-262,361,-473,725,-473v362,0,609,209,723,472xm494,-729v0,237,153,430,383,430v225,0,383,-197,383,-430v0,-231,-162,-430,-383,-430v-225,0,-383,198,-383,430","w":1753,"k":{"\u201e":225,"\u201a":225,"\u2019":-38,"\u201d":-38,"\u00c5":36,"Y":36,"X":73,"V":36,"T":36,"A":36,";":-38,":":-38,".":83,"-":-57,",":83}},"P":{"d":"530,0r-374,0r0,-1464v229,3,603,-14,761,24v210,51,334,220,334,473v0,249,-112,408,-312,463v-74,20,-277,22,-409,21r0,483xm864,-979v0,-145,-88,-168,-254,-170r-80,0r0,344r76,0v170,-3,258,-25,258,-174","w":1298,"k":{"\u201e":528,"\u201a":528,"\u2019":-47,"\u2018":-75,"\u201d":-47,"\u201c":-75,"\u0153":36,"\u00ab":36,"\u00f8":36,"\u00e6":36,"\u00c5":102,"o":36,"e":36,"a":36,"A":102,";":55,":":55,".":452,"-":83,",":452}},"Q":{"d":"494,-729v0,249,174,468,432,429v17,-3,34,-10,53,-17r-207,-267r346,0r76,101v40,-62,64,-140,66,-236v4,-240,-155,-442,-383,-442v-221,0,-383,202,-383,432xm1659,-731v-2,244,-97,424,-236,549r267,354r-340,0r-156,-205v-135,77,-374,87,-550,35v-207,-61,-366,-196,-460,-372v-105,-195,-123,-446,-31,-656v115,-263,358,-471,724,-471v364,0,607,209,723,471v41,92,59,191,59,295","w":1753,"k":{";":-38,":":-38,".":63,"-":-57,",":63}},"R":{"d":"1245,-1008v0,237,-124,375,-327,418r399,590r-451,0r-336,-573r0,573r-374,0r0,-1464r417,0v277,3,372,2,508,98v99,70,164,197,164,358xm852,-954v0,-188,-127,-210,-322,-203r0,385v180,6,322,-15,322,-182","w":1313,"k":{"\u0153":36,"\u00f8":36,"o":36,"e":36,".":-38,"-":55,",":-38}},"S":{"d":"1122,-477v3,316,-236,522,-561,516v-239,-4,-383,-85,-520,-215r180,-297v97,106,189,193,348,201v98,5,184,-60,183,-152v0,-49,-14,-86,-44,-112v-30,-26,-97,-54,-202,-82v-143,-39,-245,-89,-304,-151v-59,-62,-89,-147,-89,-255v0,-281,218,-480,505,-475v181,3,318,51,435,131r-125,287v-76,-64,-163,-114,-281,-117v-86,-2,-161,45,-162,123v0,37,13,65,39,88v26,23,99,47,171,68v243,71,331,101,400,275v20,50,27,106,27,167","w":1190,"k":{";":-38,":":-38,".":36,"-":-65,",":36}},"T":{"d":"367,0r0,-1118r-328,0r0,-346r1055,0r0,346r-328,0r0,1118r-399,0","w":1133,"k":{"\u201e":264,"\u201a":264,"\u203a":112,"\u0153":167,"\u0152":36,"\u00bb":112,"\u00ab":188,"\u00f8":167,"\u00e6":167,"\u00d8":36,"\u00c5":83,"y":167,"w":167,"u":167,"s":131,"r":92,"o":167,"e":167,"c":167,"a":167,"O":36,"C":36,"A":83,";":167,":":167,".":264,"-":188,",":264}},"U":{"d":"147,-1464r398,0r0,712v2,169,-2,241,35,340v29,76,112,115,219,115v159,-1,236,-78,246,-229v18,-266,4,-646,8,-938r397,0r0,774v-2,284,-13,412,-127,551v-103,126,-286,178,-524,178v-339,0,-552,-109,-623,-373v-25,-94,-29,-338,-29,-508r0,-622","w":1597,"k":{"\u201e":149,"\u201a":149,"\u00ab":73,"\u00c5":36,"A":36,";":63,":":63,".":120,"-":55,",":120}},"V":{"d":"575,0r-614,-1464r424,0r293,819r49,196r51,-196r291,-819r424,0r-614,1464r-304,0","w":1456,"k":{"\u201e":339,"\u201a":339,"\u203a":112,"\u2019":-57,"\u201d":-57,"\u0153":149,"\u0152":36,"\u00bb":112,"\u00ab":225,"\u00f8":149,"\u00e6":149,"\u00d8":36,"\u00c5":36,"y":36,"u":112,"o":149,"e":149,"a":149,"O":36,"A":36,";":102,":":102,".":301,"-":167,",":301}},"W":{"d":"1153,-1464r208,794v7,34,15,73,23,117r26,-129r192,-782r403,0r-414,1464r-370,0r-181,-625v-9,-27,-36,-140,-49,-196r-49,196r-178,625r-371,0r-413,-1464r403,0r168,700r45,219r51,-219r184,-700r322,0","w":1987,"k":{"\u201e":339,"\u201a":339,"\u203a":36,"\u2019":-38,"\u201d":-38,"\u0153":73,"\u00bb":36,"\u00ab":112,"\u00f8":73,"\u00e6":73,"\u00c5":36,"u":36,"r":55,"o":73,"i":-38,"e":73,"a":73,"A":36,";":120,":":120,".":253,"-":120,",":253}},"X":{"d":"498,-1464r178,344v23,44,39,83,47,116v7,-32,30,-79,51,-120r176,-340r473,0r-489,704r541,760r-453,0r-248,-434v-21,-36,-40,-77,-51,-121v-12,46,-28,85,-49,121r-250,434r-453,0r543,-768r-491,-696r475,0","w":1446,"k":{"\u201e":-75,"\u201a":-75,"\u2018":73,"\u201c":73,"\u0152":73,"\u00ab":112,"\u00d8":73,"e":36,"O":73,"C":73,";":36,":":36,".":-38,"-":102,",":-38}},"Y":{"d":"416,0r0,-668r-512,-796r458,0r203,388v21,39,35,77,43,113v6,-35,31,-85,51,-124r195,-377r459,0r-512,796r0,668r-385,0","w":1223,"k":{"\u201e":264,"\u201a":264,"\u203a":149,"\u0153":188,"\u0152":36,"\u00bb":149,"\u00ab":225,"\u00f8":188,"\u00e6":188,"\u00d8":36,"\u00c5":73,"u":120,"o":188,"e":188,"a":188,"O":36,"C":36,"A":73,";":215,":":215,".":272,"-":243,",":272}},"Z":{"d":"1298,0r-1294,0r739,-1147r-593,0r0,-317r1232,0r-737,1145r653,0r0,319","w":1386,"k":{"\u2018":36,"\u201c":36,";":-38,":":-38,".":-38,"-":36,",":-38}},"[":{"d":"180,-1497r508,0r0,242r-219,0r0,1474r219,0r0,242r-508,0r0,-1958","w":743},"\\":{"d":"717,190r-717,-1687r223,0r715,1687r-221,0","w":938},"]":{"d":"563,-1497r0,1958r-506,0r0,-242r217,0r0,-1474r-217,0r0,-242r506,0","w":743},"^":{"d":"879,-1462r288,0r465,563r-264,0r-344,-342r-346,342r-264,0","w":2048},"_":{"d":"0,244r1024,0r0,239r-1024,0r0,-239"},"`":{"d":"223,-1497r281,0r182,350r-154,0"},"a":{"d":"666,-252v148,0,235,-103,235,-254v0,-151,-87,-256,-235,-256v-148,0,-234,104,-234,256v0,151,87,254,234,254xm547,-1042v173,1,267,78,338,198r0,-166r329,0r0,1010r-327,0r0,-164v-84,124,-179,201,-363,203v-285,2,-444,-239,-444,-543v0,-310,171,-540,467,-538","w":1352,"k":{"\u2019":36,"\u2018":36,"\u201d":36,"\u201c":36}},"b":{"d":"680,-758v-147,0,-231,103,-231,254v0,151,84,254,231,254v148,0,233,-101,233,-254v0,-151,-86,-254,-233,-254xm803,39v-167,-2,-264,-87,-342,-203r0,164r-328,0r0,-1550r340,0r0,528v0,72,-2,125,-10,180v79,-132,158,-198,352,-200v281,-3,453,240,453,538v0,311,-170,546,-465,543","w":1352,"k":{"\u201e":149,"\u201a":149,"\u2019":36,"\u2018":73,"\u201d":36,"\u201c":73,"-":-38}},"c":{"d":"600,-1042v109,1,186,21,256,63r0,301v-59,-51,-109,-86,-201,-88v-146,-2,-231,108,-231,260v0,150,92,255,240,254v87,-2,143,-37,192,-88r0,309v-76,42,-154,69,-260,70v-311,4,-522,-228,-522,-543v0,-308,221,-542,526,-538","w":944},"d":{"d":"670,-250v147,0,233,-103,233,-254v0,-151,-86,-254,-233,-254v-147,0,-232,103,-232,254v0,153,83,254,232,254xm889,-842v-25,-213,-7,-475,-12,-708r342,0r0,1550r-328,0r0,-164v-78,116,-174,201,-342,203v-296,4,-465,-232,-465,-543v0,-298,171,-540,453,-538v193,2,273,68,352,200","w":1352},"e":{"d":"827,-635v-10,-107,-89,-191,-202,-190v-127,1,-186,74,-207,190r409,0xm637,-1042v347,0,551,244,541,608r-768,0v0,151,79,244,227,244v112,0,184,-44,221,-121r268,108v-65,158,-241,242,-469,242v-336,0,-583,-207,-583,-533v0,-312,248,-548,563,-548","w":1251,"k":{"x":36,"-":-38}},"f":{"d":"612,-1298v-130,-6,-89,167,-96,288r178,0r0,252r-178,0r0,758r-350,0r0,-758r-152,0r0,-252r152,0r0,-207v1,-241,136,-355,383,-354v48,1,99,9,145,19r0,272v-26,-10,-52,-17,-82,-18","w":719,"k":{"\u201e":112,"\u201a":112,"\u2019":-141,"\u2018":-141,"\u201d":-141,"\u201c":-141,".":36,",":36}},"g":{"d":"666,-258v147,0,235,-100,235,-250v0,-151,-87,-250,-235,-250v-149,0,-238,98,-238,250v0,151,89,250,238,250xm547,-1042v172,2,266,75,338,194r0,-162r329,0r0,1008v-5,333,-212,447,-571,448v-280,1,-494,-96,-512,-335r369,0v13,69,82,103,170,100v183,-5,197,-79,202,-289r0,-92v-69,118,-175,187,-350,188v-280,2,-442,-233,-442,-530v0,-307,172,-533,467,-530","w":1352,"k":{".":36,",":36}},"h":{"d":"694,-772v-178,0,-213,139,-213,348r0,424r-350,0r0,-1550r350,0r0,544v0,67,-3,129,-12,183v81,-134,181,-219,375,-219v193,0,325,84,356,246v40,211,10,547,17,796r-357,0r0,-541v-1,-145,-35,-231,-166,-231","w":1337,"k":{"\u2019":73,"\u2018":73,"\u201d":73,"\u201c":73}},"i":{"d":"319,-1126v-104,0,-196,-95,-196,-199v0,-105,91,-195,196,-195v109,0,197,86,197,195v0,107,-90,199,-197,199xm141,0r0,-1010r357,0r0,1010r-357,0","w":639,"k":{"\u2018":-38,"\u201c":-38}},"j":{"d":"319,-1126v-104,0,-196,-95,-196,-199v0,-105,91,-195,196,-195v109,0,197,86,197,195v0,107,-90,199,-197,199xm141,446r0,-1456r357,0r0,1456r-357,0","w":639},"k":{"d":"133,0r0,-1550r350,0r0,981r367,-441r442,0r-454,486r495,524r-469,0r-381,-449r0,449r-350,0","w":1313,"k":{"\u201e":-75,"\u201a":-75,"\u2019":-75,"\u201d":-75,"\u0153":73,"\u00f8":73,"\u00e6":36,"o":73,"e":73,"a":36,"-":83}},"l":{"d":"141,0r0,-1550r357,0r0,1550r-357,0","w":639},"m":{"d":"1135,-852v72,-116,172,-190,344,-190v180,0,288,89,327,234v11,42,16,136,15,230r0,578r-353,0r0,-551v-3,-151,-16,-231,-145,-231v-67,0,-115,23,-139,70v-64,126,-32,499,-39,712r-344,0r0,-551v-3,-153,-14,-231,-144,-231v-67,0,-115,21,-140,68v-66,124,-33,501,-40,714r-346,0r0,-1010r350,0r0,176v75,-125,164,-208,340,-208v167,0,270,65,314,190","w":1942,"k":{"\u2019":36,"\u2018":36,"\u201d":36,"\u201c":36}},"n":{"d":"694,-772v-178,0,-213,139,-213,348r0,424r-350,0r0,-1010r326,0r0,205v85,-144,184,-237,387,-237v193,0,325,84,356,246v40,211,10,547,17,796r-357,0r0,-541v-1,-145,-35,-231,-166,-231","w":1337,"k":{"\u2019":36,"\u2018":36,"\u201d":36,"\u201c":36}},"o":{"d":"637,-260v136,0,211,-100,211,-242v0,-142,-76,-243,-211,-243v-136,0,-211,101,-211,243v0,143,74,242,211,242xm1160,-710v57,128,58,287,0,415v-85,187,-260,334,-523,334v-263,0,-437,-146,-521,-333v-58,-128,-57,-289,0,-417v83,-187,256,-331,521,-331v265,0,439,146,523,332","w":1276,"k":{"\u2018":36,"\u201c":36,"x":36,"-":-38}},"p":{"d":"680,-756v-147,0,-231,103,-231,254v0,151,84,254,231,254v147,0,233,-103,233,-254v0,-152,-85,-254,-233,-254xm463,-163v21,180,6,411,10,609r-340,0r0,-1456r328,0r0,170v78,-116,174,-200,342,-202v296,-4,465,229,465,540v0,299,-171,543,-453,541v-192,-2,-273,-71,-352,-202","w":1352,"k":{"\u201e":112,"\u201a":112,"\u2019":36,"\u201d":36,"-":-38}},"q":{"d":"670,-248v147,0,233,-103,233,-254v0,-150,-86,-254,-233,-254v-148,0,-232,102,-232,254v0,151,85,254,232,254xm549,-1042v167,2,264,86,342,202r0,-170r328,0r0,1456r-342,0r0,-430v0,-65,3,-127,12,-180v-79,132,-160,201,-352,203v-282,3,-453,-243,-453,-541v0,-312,169,-543,465,-540","w":1352},"r":{"d":"758,-723v-179,0,-271,119,-271,305r0,418r-354,0r0,-1010r336,0r0,238v67,-177,206,-286,446,-254r-34,324v-37,-13,-77,-21,-123,-21","w":915,"k":{"\u201e":235,"\u201a":235,"\u2019":-161,"\u201d":-161,".":206,",":206}},"s":{"d":"932,-307v0,221,-196,349,-434,346v-191,-3,-337,-46,-461,-123r74,-272v89,79,211,139,360,141v76,1,137,-19,137,-84v0,-45,-47,-77,-141,-100v-202,-50,-379,-103,-379,-320v0,-211,181,-327,410,-323v155,2,282,38,403,92r-74,245v-81,-54,-171,-98,-290,-98v-69,0,-123,16,-123,74v0,36,47,64,140,91v213,61,378,102,378,331","w":991,"k":{"-":-38}},"t":{"d":"186,0r0,-758r-151,0r0,-252r151,0r0,-301r351,0r0,301r151,0r0,252r-151,0r0,758r-351,0","w":723,"k":{"\u201e":36,"\u201a":36,"\u2019":-94,"\u2018":-38,"\u201d":-94,"\u201c":-38,"-":45}},"u":{"d":"641,-231v142,0,178,-84,178,-240r0,-539r348,0r0,516v-1,214,-21,299,-120,400v-89,91,-222,133,-402,133v-255,1,-436,-91,-495,-279v-57,-184,-19,-529,-27,-770r340,0r0,539v1,154,37,240,178,240","w":1292},"v":{"d":"436,0r-454,-1010r380,0r179,463v22,59,36,106,41,141v3,-34,30,-109,49,-158r172,-446r371,0r-459,1010r-279,0","w":1155,"k":{"\u201e":120,"\u201a":120,"\u2019":-114,"\u2018":-94,"\u201d":-114,"\u201c":-94,".":159,"-":-75,",":159}},"w":{"d":"930,-1010r152,454v22,63,36,113,42,150v49,-210,132,-405,195,-604r369,0r-424,1010r-252,0r-150,-457v-16,-50,-28,-103,-39,-157v-45,204,-130,417,-190,614r-252,0r-422,-1010r367,0r178,532v7,24,12,49,16,72v49,-196,134,-412,195,-604r215,0","w":1645,"k":{"\u201e":120,"\u201a":120,"\u2019":-114,"\u2018":-94,"\u201d":-114,"\u201c":-94,".":149,"-":-75,",":149}},"x":{"d":"535,-717v27,-109,98,-199,145,-293r403,0r-346,469r404,541r-402,0r-151,-254v-22,-37,-38,-75,-49,-120v-12,45,-27,83,-50,120r-149,254r-395,0r397,-541r-340,-469r389,0v48,94,114,187,144,293","w":1085,"k":{"\u0153":36,"\u00f8":36,"o":36,"e":36,"c":36}},"y":{"d":"76,446r284,-600r-407,-856r395,0r141,365v21,53,38,103,48,159v10,-57,26,-105,47,-159r143,-365r381,0r-635,1456r-397,0","w":1090,"k":{"\u201e":264,"\u201a":264,"\u2019":-114,"\u2018":-75,"\u201d":-114,"\u201c":-75,".":178,"-":36,",":178}},"z":{"d":"1024,0r-1024,0r518,-750r-455,0r0,-260r1006,0r-537,736r492,0r0,274","w":1110},"{":{"d":"430,-1340v57,-139,259,-142,463,-137r0,242r-41,-2v-139,3,-166,37,-166,182r0,240v-2,192,-52,248,-211,285v161,36,211,88,211,282r0,242v-6,161,54,186,207,178r0,242v-204,6,-405,2,-463,-136v-37,-89,-24,-310,-24,-448v0,-186,-71,-252,-254,-240r0,-241v180,12,254,-57,254,-242v0,-140,-13,-356,24,-447"},"|":{"d":"393,-1565r240,0r0,2048r-240,0r0,-2048"},"}":{"d":"180,-1237r-47,2r0,-242v204,-5,404,-2,463,137v37,89,25,308,25,447v0,187,70,254,253,242r0,241v-181,-12,-253,55,-253,240v0,141,13,359,-25,450v-58,138,-259,140,-463,134r0,-242r43,2v139,-3,164,-35,164,-180r0,-242v2,-192,51,-246,211,-282v-161,-37,-211,-90,-211,-285r0,-240v-3,-143,-25,-178,-160,-182"},"~":{"d":"1159,-668v157,0,254,-68,371,-151r0,254v-147,113,-376,177,-587,95v-168,-65,-297,-89,-382,-89v-162,0,-259,73,-383,158r0,-254v121,-77,229,-137,387,-144v196,-8,427,131,594,131","w":1706},"\u00c4":{"d":"543,-547r397,0r-149,-483r-50,-197r-51,197xm-16,0r505,-1464r500,0r506,1464r-397,0r-74,-262r-567,0r-76,262r-397,0xm934,-1661v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm544,-1661v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1479},"\u00c5":{"d":"739,-1821v-59,0,-110,54,-110,113v0,60,50,109,110,109v62,0,113,-48,113,-109v0,-61,-52,-113,-113,-113xm543,-547r397,0r-149,-483r-50,-197r-51,197xm1004,-1710v-2,124,-77,212,-177,246r0,4r154,-4r514,1464r-397,0r-74,-262r-567,0r-76,262r-397,0r516,-1464r159,4r0,-4v-102,-25,-182,-123,-182,-246v0,-144,119,-262,262,-262v143,0,268,120,265,262","w":1479,"k":{"\u201e":-38,"\u201a":-38,"\u2019":131,"\u2018":149,"\u201d":131,"\u201c":149,"\u00ab":73,"y":36,"Y":73,"W":36,"V":36,"U":36,"T":83,"Q":36,"O":36,"G":36,"C":36,";":-38,":":-38,"-":45}},"\u00c7":{"d":"548,-1446v207,-85,493,-58,669,39r0,436v-93,-100,-177,-172,-338,-176v-233,-5,-385,184,-385,424v0,226,162,414,385,408v160,-4,246,-76,338,-177r0,437v-157,84,-396,122,-601,63v-199,-57,-349,-199,-436,-363v-100,-189,-115,-472,-32,-681v69,-176,225,-338,400,-410xm844,485v-103,-1,-198,-19,-291,-45r0,-139v87,24,177,45,271,45v54,0,86,-20,86,-72v0,-70,-98,-64,-174,-61r0,-213r114,0r0,84v149,-5,248,54,248,192v0,142,-103,211,-254,209","w":1286},"\u00c9":{"d":"156,0r0,-1464r897,0r0,321r-508,0r0,254r479,0r0,314r-479,0r0,247r508,0r0,328r-897,0xm903,-1970r-309,350r-154,0r182,-350r281,0","w":1161},"\u00d1":{"d":"1227,-453v-43,-313,-16,-667,-23,-1011r383,0r0,1464r-383,0r-553,-756v-40,-60,-93,-167,-133,-256v8,61,14,116,18,163v4,47,5,89,5,126r0,723r-385,0r0,-1464r385,0r553,753v40,63,92,167,133,258xm940,-1868v71,22,135,-8,145,-73r119,0v-34,164,-110,281,-296,239r-94,-27v-91,-33,-131,-4,-155,68r-119,0v33,-140,75,-250,215,-250v66,0,127,25,185,43","w":1745},"\u00d6":{"d":"1600,-1025v79,181,79,411,1,592v-114,263,-362,472,-724,472v-364,0,-610,-212,-725,-473v-80,-181,-80,-409,0,-590v115,-262,361,-473,725,-473v362,0,609,209,723,472xm494,-729v0,237,153,430,383,430v225,0,383,-197,383,-430v0,-231,-162,-430,-383,-430v-225,0,-383,198,-383,430xm1072,-1661v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm682,-1661v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1753},"\u00dc":{"d":"147,-1464r398,0r0,712v2,169,-2,241,35,340v29,76,112,115,219,115v159,-1,236,-78,246,-229v18,-266,4,-646,8,-938r397,0r0,774v-2,284,-13,412,-127,551v-103,126,-286,178,-524,178v-339,0,-552,-109,-623,-373v-25,-94,-29,-338,-29,-508r0,-622xm994,-1661v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm604,-1661v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1597},"\u00e1":{"d":"666,-252v148,0,235,-103,235,-254v0,-151,-87,-256,-235,-256v-148,0,-234,104,-234,256v0,151,87,254,234,254xm547,-1042v173,1,267,78,338,198r0,-166r329,0r0,1010r-327,0r0,-164v-84,124,-179,201,-363,203v-285,2,-444,-239,-444,-543v0,-310,171,-540,467,-538xm965,-1497r-309,350r-154,0r182,-350r281,0","w":1352},"\u00e0":{"d":"666,-252v148,0,235,-103,235,-254v0,-151,-87,-256,-235,-256v-148,0,-234,104,-234,256v0,151,87,254,234,254xm547,-1042v173,1,267,78,338,198r0,-166r329,0r0,1010r-327,0r0,-164v-84,124,-179,201,-363,203v-285,2,-444,-239,-444,-543v0,-310,171,-540,467,-538xm387,-1497r281,0r182,350r-154,0","w":1352},"\u00e2":{"d":"666,-252v148,0,235,-103,235,-254v0,-151,-87,-256,-235,-256v-148,0,-234,104,-234,256v0,151,87,254,234,254xm547,-1042v173,1,267,78,338,198r0,-166r329,0r0,1010r-327,0r0,-164v-84,124,-179,201,-363,203v-285,2,-444,-239,-444,-543v0,-310,171,-540,467,-538xm354,-1147r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":1352},"\u00e4":{"d":"666,-252v148,0,235,-103,235,-254v0,-151,-87,-256,-235,-256v-148,0,-234,104,-234,256v0,151,87,254,234,254xm547,-1042v173,1,267,78,338,198r0,-166r329,0r0,1010r-327,0r0,-164v-84,124,-179,201,-363,203v-285,2,-444,-239,-444,-543v0,-310,171,-540,467,-538xm871,-1188v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm481,-1188v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1352},"\u00e3":{"d":"666,-252v148,0,235,-103,235,-254v0,-151,-87,-256,-235,-256v-148,0,-234,104,-234,256v0,151,87,254,234,254xm547,-1042v173,1,267,78,338,198r0,-166r329,0r0,1010r-327,0r0,-164v-84,124,-179,201,-363,203v-285,2,-444,-239,-444,-543v0,-310,171,-540,467,-538xm744,-1395v71,22,135,-8,145,-73r119,0v-34,164,-110,281,-296,239r-94,-27v-91,-33,-131,-4,-155,68r-119,0v33,-140,75,-250,215,-250v66,0,127,25,185,43","w":1352},"\u00e5":{"d":"684,-1483v-60,0,-113,54,-113,113v0,60,54,113,113,113v61,0,111,-52,111,-113v0,-62,-49,-113,-111,-113xm684,-1104v-146,0,-266,-120,-266,-266v0,-145,121,-266,266,-266v143,0,264,122,264,266v0,144,-121,266,-264,266xm666,-252v148,0,235,-103,235,-254v0,-151,-87,-256,-235,-256v-148,0,-234,104,-234,256v0,151,87,254,234,254xm547,-1042v173,1,267,78,338,198r0,-166r329,0r0,1010r-327,0r0,-164v-84,124,-179,201,-363,203v-285,2,-444,-239,-444,-543v0,-310,171,-540,467,-538","w":1352,"k":{"\u2019":36,"\u2018":36,"\u201d":36,"\u201c":36}},"\u00e7":{"d":"600,-1042v109,1,186,21,256,63r0,301v-59,-51,-109,-86,-201,-88v-146,-2,-231,108,-231,260v0,150,92,255,240,254v87,-2,143,-37,192,-88r0,309v-76,42,-154,69,-260,70v-311,4,-522,-228,-522,-543v0,-308,221,-542,526,-538xm600,485v-103,-1,-198,-19,-291,-45r0,-139v87,24,177,45,271,45v54,0,86,-20,86,-72v0,-70,-98,-64,-174,-61r0,-213r114,0r0,84v149,-5,248,54,248,192v0,142,-103,211,-254,209","w":944},"\u00e9":{"d":"827,-635v-10,-107,-89,-191,-202,-190v-127,1,-186,74,-207,190r409,0xm637,-1042v347,0,551,244,541,608r-768,0v0,151,79,244,227,244v112,0,184,-44,221,-121r268,108v-65,158,-241,242,-469,242v-336,0,-583,-207,-583,-533v0,-312,248,-548,563,-548xm916,-1497r-309,350r-154,0r182,-350r281,0","w":1251},"\u00e8":{"d":"827,-635v-10,-107,-89,-191,-202,-190v-127,1,-186,74,-207,190r409,0xm637,-1042v347,0,551,244,541,608r-768,0v0,151,79,244,227,244v112,0,184,-44,221,-121r268,108v-65,158,-241,242,-469,242v-336,0,-583,-207,-583,-533v0,-312,248,-548,563,-548xm338,-1497r281,0r182,350r-154,0","w":1251},"\u00ea":{"d":"827,-635v-10,-107,-89,-191,-202,-190v-127,1,-186,74,-207,190r409,0xm637,-1042v347,0,551,244,541,608r-768,0v0,151,79,244,227,244v112,0,184,-44,221,-121r268,108v-65,158,-241,242,-469,242v-336,0,-583,-207,-583,-533v0,-312,248,-548,563,-548xm305,-1147r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":1251},"\u00eb":{"d":"827,-635v-10,-107,-89,-191,-202,-190v-127,1,-186,74,-207,190r409,0xm637,-1042v347,0,551,244,541,608r-768,0v0,151,79,244,227,244v112,0,184,-44,221,-121r268,108v-65,158,-241,242,-469,242v-336,0,-583,-207,-583,-533v0,-312,248,-548,563,-548xm822,-1188v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm432,-1188v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1251},"\u00ed":{"d":"141,0r0,-1010r357,0r0,1010r-357,0xm608,-1497r-309,350r-154,0r182,-350r281,0","w":639},"\u00ec":{"d":"141,0r0,-1010r357,0r0,1010r-357,0xm30,-1497r281,0r182,350r-154,0","w":639},"\u00ee":{"d":"141,0r0,-1010r357,0r0,1010r-357,0xm-3,-1147r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":639},"\u00ef":{"d":"141,0r0,-1010r357,0r0,1010r-357,0xm514,-1188v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm124,-1188v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":639},"\u00f1":{"d":"694,-772v-178,0,-213,139,-213,348r0,424r-350,0r0,-1010r326,0r0,205v85,-144,184,-237,387,-237v193,0,325,84,356,246v40,211,10,547,17,796r-357,0r0,-541v-1,-145,-35,-231,-166,-231xm738,-1395v71,22,135,-8,145,-73r119,0v-34,164,-110,281,-296,239r-94,-27v-91,-33,-131,-4,-155,68r-119,0v33,-140,75,-250,215,-250v66,0,127,25,185,43","w":1337},"\u00f3":{"d":"637,-260v136,0,211,-100,211,-242v0,-142,-76,-243,-211,-243v-136,0,-211,101,-211,243v0,143,74,242,211,242xm1160,-710v57,128,58,287,0,415v-85,187,-260,334,-523,334v-263,0,-437,-146,-521,-333v-58,-128,-57,-289,0,-417v83,-187,256,-331,521,-331v265,0,439,146,523,332xm928,-1497r-309,350r-154,0r182,-350r281,0","w":1276},"\u00f2":{"d":"637,-260v136,0,211,-100,211,-242v0,-142,-76,-243,-211,-243v-136,0,-211,101,-211,243v0,143,74,242,211,242xm1160,-710v57,128,58,287,0,415v-85,187,-260,334,-523,334v-263,0,-437,-146,-521,-333v-58,-128,-57,-289,0,-417v83,-187,256,-331,521,-331v265,0,439,146,523,332xm350,-1497r281,0r182,350r-154,0","w":1276},"\u00f4":{"d":"637,-260v136,0,211,-100,211,-242v0,-142,-76,-243,-211,-243v-136,0,-211,101,-211,243v0,143,74,242,211,242xm1160,-710v57,128,58,287,0,415v-85,187,-260,334,-523,334v-263,0,-437,-146,-521,-333v-58,-128,-57,-289,0,-417v83,-187,256,-331,521,-331v265,0,439,146,523,332xm317,-1147r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":1276},"\u00f6":{"d":"637,-260v136,0,211,-100,211,-242v0,-142,-76,-243,-211,-243v-136,0,-211,101,-211,243v0,143,74,242,211,242xm1160,-710v57,128,58,287,0,415v-85,187,-260,334,-523,334v-263,0,-437,-146,-521,-333v-58,-128,-57,-289,0,-417v83,-187,256,-331,521,-331v265,0,439,146,523,332xm834,-1188v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm444,-1188v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1276},"\u00f5":{"d":"637,-260v136,0,211,-100,211,-242v0,-142,-76,-243,-211,-243v-136,0,-211,101,-211,243v0,143,74,242,211,242xm1160,-710v57,128,58,287,0,415v-85,187,-260,334,-523,334v-263,0,-437,-146,-521,-333v-58,-128,-57,-289,0,-417v83,-187,256,-331,521,-331v265,0,439,146,523,332xm707,-1395v71,22,135,-8,145,-73r119,0v-34,164,-110,281,-296,239r-94,-27v-91,-33,-131,-4,-155,68r-119,0v33,-140,75,-250,215,-250v66,0,127,25,185,43","w":1276},"\u00fa":{"d":"641,-231v142,0,178,-84,178,-240r0,-539r348,0r0,516v-1,214,-21,299,-120,400v-89,91,-222,133,-402,133v-255,1,-436,-91,-495,-279v-57,-184,-19,-529,-27,-770r340,0r0,539v1,154,37,240,178,240xm936,-1497r-309,350r-154,0r182,-350r281,0","w":1292},"\u00f9":{"d":"641,-231v142,0,178,-84,178,-240r0,-539r348,0r0,516v-1,214,-21,299,-120,400v-89,91,-222,133,-402,133v-255,1,-436,-91,-495,-279v-57,-184,-19,-529,-27,-770r340,0r0,539v1,154,37,240,178,240xm358,-1497r281,0r182,350r-154,0","w":1292},"\u00fb":{"d":"641,-231v142,0,178,-84,178,-240r0,-539r348,0r0,516v-1,214,-21,299,-120,400v-89,91,-222,133,-402,133v-255,1,-436,-91,-495,-279v-57,-184,-19,-529,-27,-770r340,0r0,539v1,154,37,240,178,240xm325,-1147r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":1292},"\u00fc":{"d":"641,-231v142,0,178,-84,178,-240r0,-539r348,0r0,516v-1,214,-21,299,-120,400v-89,91,-222,133,-402,133v-255,1,-436,-91,-495,-279v-57,-184,-19,-529,-27,-770r340,0r0,539v1,154,37,240,178,240xm842,-1188v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm452,-1188v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1292},"\u2020":{"d":"446,414r0,-1059r-376,0r0,-316r376,0r0,-503r326,0r0,503r377,0r0,316r-377,0r0,1059r-326,0","w":1219},"\u00b0":{"d":"502,-1157v0,-88,-76,-164,-164,-164v-89,0,-166,75,-166,164v0,91,75,166,166,166v88,0,164,-78,164,-166xm27,-1155v0,-170,142,-311,311,-311v167,0,311,144,311,311v0,167,-145,311,-313,311v-168,0,-309,-143,-309,-311","w":674},"\u00a2":{"d":"766,-1253v82,9,151,30,211,63r0,303v-61,-51,-110,-88,-201,-90v-146,-3,-231,110,-231,262v0,152,90,258,239,256v90,-1,142,-35,193,-88r0,309v-64,33,-130,57,-211,64r0,203r-115,0r0,-203v-283,-52,-454,-220,-456,-539v-1,-300,186,-500,456,-538r0,-170r115,0r0,168","w":1280},"\u00a3":{"d":"317,-356v56,-57,76,-168,43,-267r-233,0r0,-141r162,0v-64,-89,-108,-175,-109,-309v-2,-252,232,-406,504,-406v311,0,491,168,498,471r-344,0v-2,-114,-50,-187,-160,-188v-86,-1,-146,59,-146,145v0,47,91,230,113,287r334,0r0,141r-315,0v-2,138,-66,211,-172,254r4,21v101,-32,257,49,340,49v82,0,108,-38,143,-100r240,190v-63,150,-181,237,-377,248v-91,5,-346,-104,-418,-102v-80,3,-117,38,-162,90r-180,-222v58,-82,125,-146,235,-161","w":1280},"\u00a7":{"d":"66,-514v0,-171,85,-285,217,-330v-98,-44,-152,-127,-152,-264v0,-254,219,-391,494,-391v295,0,475,144,483,424r-371,0v6,-101,-44,-160,-139,-160v-82,0,-140,54,-139,135v0,73,64,117,193,132v302,34,499,117,499,431v-1,177,-80,283,-215,332v99,47,151,124,151,264v0,255,-218,394,-493,394v-298,0,-479,-150,-483,-437r370,0v-6,107,40,172,140,172v81,0,139,-54,139,-135v0,-73,-66,-119,-197,-134v-302,-35,-496,-119,-497,-433xm786,-520v0,-102,-75,-187,-174,-187v-101,0,-178,77,-178,179v0,105,72,190,172,190v100,0,180,-82,180,-182","w":1219},"\u2022":{"d":"602,-465v-160,0,-295,-138,-295,-297v0,-160,138,-295,297,-295v158,0,295,137,295,295v0,158,-139,297,-297,297","w":1208},"\u00b6":{"d":"29,-1130v0,-216,165,-349,389,-349r579,0r0,123r-106,0r0,1356r-176,0r0,-1356r-150,0r0,1356r-174,0r0,-784v-207,-4,-362,-140,-362,-346"},"\u00df":{"d":"868,-1149v1,-102,-72,-164,-178,-162v-142,1,-199,80,-199,226v0,57,-4,197,-4,284r0,801r-350,0r0,-1028v-7,-296,76,-422,279,-501v73,-28,157,-40,248,-40v298,-3,528,120,528,391v0,173,-101,263,-248,306v208,20,336,172,336,401v0,324,-211,497,-545,494r-112,-3r0,-266v190,18,303,-65,303,-250v0,-177,-117,-260,-303,-245r0,-226v149,2,243,-45,245,-182","w":1352,"k":{"\u2018":36,"\u201c":36,"-":-75}},"\u00ae":{"d":"989,-909v0,-113,-107,-116,-227,-113r0,219v114,3,227,2,227,-106xm1221,-926v0,118,-75,193,-174,221r182,361r-248,0r-154,-326r-65,0r0,326r-225,0r0,-819r329,0v203,0,355,58,355,237xm1092,-1303v-143,-63,-326,-64,-470,-3v-211,89,-378,281,-378,569v0,286,169,470,373,562v145,65,319,65,467,3v211,-89,380,-274,380,-565v0,-289,-167,-475,-372,-566xm571,-1432v178,-72,400,-72,575,4v253,110,453,339,453,691v0,356,-209,581,-466,691v-180,77,-390,74,-568,-2v-177,-75,-329,-232,-403,-410v-75,-181,-73,-390,3,-569v75,-177,227,-332,406,-405","w":1706},"\u00a9":{"d":"446,-731v0,-264,154,-451,410,-451v198,0,355,111,365,291r-213,0v-8,-86,-63,-143,-156,-141v-131,4,-176,138,-176,293v0,162,45,284,186,284v94,0,146,-63,152,-155r215,0v-6,193,-164,317,-371,317v-256,0,-412,-176,-412,-438xm1090,-1304v-143,-63,-328,-62,-471,0v-207,91,-377,283,-377,567v0,283,173,473,380,563v147,64,319,64,466,0v209,-90,376,-271,376,-563v0,-289,-167,-477,-374,-567xm566,-1430v175,-76,401,-75,576,1v255,110,457,337,457,692v0,356,-205,579,-460,689v-180,78,-392,80,-571,1v-254,-111,-462,-339,-462,-690v0,-346,207,-583,460,-693","w":1706},"\u2122":{"d":"797,-1464r223,0r113,303r114,-303r221,0r0,551r-155,0r0,-390r-146,390r-65,0r-150,-390r0,390r-155,0r0,-551xm188,-1464r502,0r0,127r-164,0r0,424r-174,0r0,-424r-164,0r0,-127","w":1706},"\u00b4":{"d":"801,-1497r-309,350r-154,0r182,-350r281,0"},"\u00a8":{"d":"707,-1188v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm317,-1188v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145"},"\u2260":{"d":"1194,-1251r168,137r-135,168r225,0r0,221r-377,0r-180,227r557,0r0,222r-704,0r-246,307r-170,-137r135,-170r-213,0r0,-222r360,0r183,-227r-543,0r0,-221r694,0","w":1706},"\u00c6":{"d":"514,-547r289,0r-115,-398r-29,-120r-51,197xm-33,0r506,-1464r875,0r98,321r-473,0r84,254r467,0r96,314r-461,0r82,247r455,0r98,328r-831,0r-76,-262r-451,0r-74,262r-395,0","w":1763,"k":{"\u2019":92,"\u201d":92,";":-38,":":-38,".":-38,"-":-38,",":-38}},"\u00d8":{"d":"877,-326v262,4,468,-262,379,-544v-13,-40,-33,-74,-60,-105r-553,572v58,49,133,76,234,77xm877,-1139v-257,-3,-462,251,-381,530v11,38,29,75,53,111r549,-569v-60,-43,-127,-71,-221,-72xm877,35v-217,-2,-367,-65,-496,-170r-176,182r-92,-94r170,-176v-113,-135,-189,-285,-189,-508v0,-365,220,-599,487,-711v95,-40,199,-57,308,-57v205,0,344,63,469,162r155,-162r97,94r-152,158v117,122,201,296,201,516v0,363,-216,597,-482,709v-94,40,-195,57,-300,57","w":1753,"k":{"\u201e":225,"\u201a":225,"\u2019":-38,"\u201d":-38,"Y":36,"X":73,"V":36,"T":36,"A":36,";":-38,":":-38,".":83,"-":-57,",":83}},"\u221e":{"d":"1393,-606v0,-100,-80,-180,-179,-178v-48,0,-92,16,-132,50v-40,34,-81,92,-126,173v50,78,120,133,234,135v113,3,203,-72,203,-180xm315,-612v0,101,79,178,179,178v47,0,91,-17,132,-52v41,-35,83,-92,126,-171v-51,-79,-118,-132,-234,-134v-113,-2,-203,71,-203,179xm1513,-610v0,225,-111,422,-315,424v-61,0,-116,-18,-166,-55v-50,-37,-109,-104,-176,-201v-45,87,-95,151,-148,193v-53,42,-111,63,-176,63v-197,1,-337,-208,-337,-422v0,-224,111,-420,315,-422v60,0,115,18,166,56v51,38,110,105,176,200v47,-88,97,-153,150,-195v53,-42,111,-63,174,-63v198,-1,337,206,337,422","w":1706},"\u00b1":{"d":"254,-213r1198,0r0,231r-1198,0r0,-231xm735,-1241r238,0r0,319r479,0r0,232r-479,0r0,319r-238,0r0,-319r-481,0r0,-232r481,0r0,-319","w":1706},"\u2264":{"d":"256,-213r1196,0r0,229r-1196,0r0,-229xm1450,-1257r0,239r-776,240r776,239r0,240r-1194,-379r0,-201","w":1706},"\u2265":{"d":"256,-213r1196,0r0,229r-1196,0r0,-229xm258,-1257r1192,378r0,201r-1192,379r0,-240r776,-239r-776,-240r0,-239","w":1706},"\u00a5":{"d":"496,0r0,-502r-486,0r0,-203r449,0r-99,-149r-350,0r0,-203r217,0r-256,-395r387,0r250,414v24,38,45,93,62,145v15,-52,35,-102,59,-143r252,-416r385,0r-258,395r219,0r0,203r-354,0r-94,149r448,0r0,203r-485,0r0,502r-346,0","w":1335},"\u00b5":{"d":"573,16v-91,0,-150,-53,-184,-120r-82,532r-352,0r238,-1518r358,0r-80,529v-7,47,-12,95,-12,143v0,107,41,169,143,170v59,0,104,-22,138,-68v34,-46,59,-120,75,-221r88,-553r357,0r-175,1090r-321,0r18,-125v-47,86,-95,141,-209,141","w":1315},"\u2202":{"d":"477,-860v153,2,229,67,289,176v22,-118,41,-243,43,-356v2,-90,-31,-209,-98,-209v-23,0,-67,31,-132,93v-65,62,-125,93,-180,93v-63,0,-115,-53,-112,-117v4,-109,178,-185,313,-182v306,7,455,267,455,602v0,229,-55,417,-163,564v-108,147,-247,221,-417,221v-239,0,-416,-177,-416,-416v0,-254,174,-472,418,-469xm332,-287v0,131,32,236,143,236v65,0,118,-45,160,-135v42,-90,63,-206,63,-346v0,-128,-33,-238,-141,-238v-64,0,-118,45,-161,136v-43,91,-64,207,-64,347","w":1114},"\u2211":{"d":"72,-1473r1335,0r0,302r-838,0r596,608r-587,651r895,0r0,305r-1424,0r0,-184r684,-756r-661,-665r0,-261","w":1520},"\u220f":{"d":"145,-1473r1348,0r0,1866r-399,0r0,-1532r-549,0r0,1532r-400,0r0,-1866","w":1645},"\u03c0":{"d":"6,-725v49,-274,126,-365,436,-365r1096,0r-39,232r-178,0r-135,858r-357,0r134,-858r-232,0r-135,858r-354,0r133,-858v-90,-9,-123,55,-134,133r-235,0","w":1530},"\u222b":{"d":"330,178v-1,33,-6,70,32,70v66,0,110,-222,119,-667v8,-368,48,-740,135,-907v79,-152,192,-230,349,-230v128,0,234,71,235,190v1,84,-62,144,-147,143v-90,-1,-129,-57,-129,-151v0,-41,-1,-60,-33,-60v-67,0,-109,222,-124,667r-3,91v-15,354,-11,500,-88,717v-66,187,-173,325,-389,332v-131,4,-236,-68,-236,-191v-1,-88,64,-143,154,-143v83,0,128,54,125,139","w":1249},"\u00aa":{"d":"500,-934v108,0,176,-69,176,-178v0,-109,-68,-178,-176,-178v-109,0,-176,69,-176,178v0,109,67,178,176,178xm410,-1487v129,1,201,52,254,139r0,-116r247,0r0,706r-245,0r0,-114v-63,88,-136,140,-273,141v-207,2,-334,-163,-334,-379v0,-223,134,-379,351,-377","w":1014},"\u00ba":{"d":"477,-940v101,0,160,-68,160,-170v0,-101,-61,-170,-160,-170v-99,0,-158,69,-158,170v0,103,58,170,158,170xm870,-1254v42,89,42,201,0,290v-64,133,-200,233,-393,233v-193,0,-327,-99,-391,-233v-43,-89,-43,-203,0,-292v64,-133,197,-231,391,-231v195,0,330,99,393,233","w":956},"\u03a9":{"d":"1534,-836v-3,247,-110,417,-268,529r333,0r0,307r-636,0r0,-352v111,-98,190,-248,192,-443v3,-227,-119,-395,-334,-395v-214,-1,-337,171,-334,397v2,193,80,346,193,441r0,352r-635,0r0,-307r332,0v-158,-113,-265,-281,-268,-529v-5,-406,299,-675,712,-675v417,0,718,266,713,675","w":1645},"\u00e6":{"d":"1423,-633v-10,-107,-89,-191,-202,-190v-127,1,-186,74,-207,190r409,0xm549,-180v98,0,176,-41,176,-129v0,-86,-70,-129,-162,-129v-86,0,-162,44,-162,121v0,92,54,137,148,137xm510,-1042v173,0,282,47,356,147v82,-94,187,-146,355,-147v352,-1,563,240,553,608r-768,0v0,151,79,244,227,244v110,0,185,-44,221,-119r268,106v-68,159,-241,243,-473,242v-193,0,-319,-49,-401,-160v-77,99,-203,152,-377,152v-239,0,-403,-110,-405,-334v-2,-210,157,-347,372,-344v122,1,213,26,289,76v14,-159,-87,-215,-252,-215v-127,0,-249,28,-332,75r-2,-262v115,-41,230,-69,369,-69","w":1864,"k":{"x":36,"-":-38}},"\u00f8":{"d":"635,-760v-163,-2,-244,159,-213,336v4,19,9,36,18,51r336,-344v-37,-29,-77,-43,-141,-43xm641,-246v186,6,264,-209,199,-389r-338,342v32,30,79,45,139,47xm854,-4v-181,74,-438,41,-553,-66r-117,117r-84,-84r111,-113v-81,-98,-137,-198,-137,-354v0,-258,155,-420,346,-500v188,-78,433,-35,561,70r133,-137r86,76r-131,139v121,115,176,368,91,560v-58,130,-172,237,-306,292","w":1276,"k":{"\u2018":36,"\u201c":36,"x":36,"-":-38}},"\u00bf":{"d":"631,-1532v109,0,203,93,203,203v0,110,-93,203,-203,203v-112,0,-201,-91,-201,-203v0,-112,90,-203,201,-203xm123,-403v0,-211,126,-377,323,-381r0,-213r345,0r0,413r-107,0v-137,-1,-229,54,-231,181v-2,88,70,162,157,161v96,-1,148,-54,154,-147r342,0v3,278,-221,434,-512,434v-274,0,-471,-179,-471,-448","w":1239},"\u00a1":{"d":"166,-1006r371,0r0,1045r-371,0r0,-1045xm350,-1126v-111,0,-200,-93,-200,-203v0,-110,90,-203,200,-203v110,0,203,93,203,203v0,112,-91,203,-203,203","w":702},"\u00ac":{"d":"254,-866r1198,0r0,501r-229,0r0,-274r-969,0r0,-227","w":1706},"\u221a":{"d":"1155,-1714r215,0r0,149r-96,0r-590,1606r-119,0r-307,-846r-145,55r-37,-129r360,-127r223,635","w":1366},"\u0192":{"d":"1081,-1192v-50,-27,-123,-39,-160,6v-37,45,-48,169,-63,248r180,0r-41,248r-182,0v-56,298,-106,815,-239,971v-87,102,-301,130,-478,88r58,-252v20,5,40,8,63,8v81,0,140,-114,178,-341r80,-474r-186,0r41,-248r186,0r27,-152v52,-266,126,-391,397,-391v67,0,128,12,184,29","w":1280},"\u2248":{"d":"1159,-451v160,-9,248,-67,371,-151r0,254v-117,77,-217,129,-377,137v-116,6,-466,-141,-592,-131v-162,13,-255,72,-383,158r0,-254v125,-81,234,-132,404,-144v124,-9,468,137,577,131xm1159,-885v159,-9,249,-68,371,-151r0,254v-119,76,-216,127,-375,135v-117,6,-466,-139,-594,-129v-166,13,-251,70,-383,158r0,-256v126,-81,232,-130,404,-142v124,-9,468,137,577,131","w":1706},"\u2206":{"d":"733,-1059r-262,774r526,0xm537,-1473r395,0r541,1473r-1475,0","w":1468},"\u00ab":{"d":"403,-991r193,133r-264,356r264,348r-193,140r-358,-488xm879,-991r190,133r-262,356r262,348r-190,140r-361,-488","w":1114,"k":{"\u00c6":-151,"Y":149,"W":36,"V":112,"T":112,"J":-38}},"\u00bb":{"d":"709,-991r360,489r-360,488r-191,-140r262,-348r-262,-356xm236,-991r358,489r-358,488r-191,-140r262,-348r-262,-356","w":1114,"k":{"\u00c5":73,"Y":225,"X":112,"W":112,"V":225,"U":73,"T":188,"J":-75,"A":73}},"\u2026":{"d":"342,39v-110,0,-200,-93,-200,-203v0,-111,89,-201,200,-201v113,0,203,90,203,201v0,111,-92,203,-203,203xm1024,39v-110,0,-200,-93,-200,-203v0,-111,89,-201,200,-201v113,0,203,90,203,201v0,111,-92,203,-203,203xm1708,39v-110,0,-200,-93,-200,-203v0,-111,89,-201,200,-201v113,0,203,90,203,201v0,111,-92,203,-203,203","w":2048},"\u00a0":{"w":1280},"\u00c0":{"d":"543,-547r397,0r-149,-483r-50,-197r-51,197xm-16,0r505,-1464r500,0r506,1464r-397,0r-74,-262r-567,0r-76,262r-397,0xm450,-1970r281,0r182,350r-154,0","w":1479},"\u00c3":{"d":"543,-547r397,0r-149,-483r-50,-197r-51,197xm-16,0r505,-1464r500,0r506,1464r-397,0r-74,-262r-567,0r-76,262r-397,0xm807,-1868v71,22,135,-8,145,-73r119,0v-34,164,-110,281,-296,239r-94,-27v-91,-33,-131,-4,-155,68r-119,0v33,-140,75,-250,215,-250v66,0,127,25,185,43","w":1479},"\u00d5":{"d":"1600,-1025v79,181,79,411,1,592v-114,263,-362,472,-724,472v-364,0,-610,-212,-725,-473v-80,-181,-80,-409,0,-590v115,-262,361,-473,725,-473v362,0,609,209,723,472xm494,-729v0,237,153,430,383,430v225,0,383,-197,383,-430v0,-231,-162,-430,-383,-430v-225,0,-383,198,-383,430xm945,-1868v71,22,135,-8,145,-73r119,0v-34,164,-110,281,-296,239r-94,-27v-91,-33,-131,-4,-155,68r-119,0v33,-140,75,-250,215,-250v66,0,127,25,185,43","w":1753},"\u0152":{"d":"481,-731v0,245,158,442,396,442v240,0,395,-192,395,-442v0,-249,-157,-445,-395,-445v-232,0,-396,205,-396,445xm852,-1503v207,1,350,80,444,207r0,-168r861,0r0,321r-508,0r0,254r479,0r0,314r-479,0r0,247r508,0r0,328r-861,0r0,-199v-108,149,-244,238,-481,238v-351,0,-559,-211,-665,-461v-79,-188,-74,-430,2,-622v74,-188,219,-336,402,-408v88,-34,188,-51,298,-51","w":2224,"k":{";":-38,":":-38,".":-38,"-":-38,",":-38}},"\u0153":{"d":"1587,-623v-10,-111,-87,-196,-203,-196v-127,0,-188,76,-206,196r409,0xm647,-238v144,0,219,-111,219,-264v0,-153,-75,-266,-219,-266v-143,0,-221,114,-221,266v0,153,76,264,221,264xm621,-1044v185,3,306,58,397,161v80,-105,196,-160,375,-161v354,0,556,248,544,622r-765,0v0,136,92,224,229,223v110,-1,185,-44,219,-123r268,111v-67,162,-241,251,-475,250v-194,0,-320,-49,-401,-160v-80,111,-198,157,-389,160v-310,4,-549,-224,-549,-531v0,-308,242,-557,547,-552","w":2009,"k":{"x":36,"-":-38}},"\u2013":{"d":"0,-367r0,-272r1024,0r0,272r-1024,0"},"\u2014":{"d":"0,-367r0,-272r2048,0r0,272r-2048,0","w":2048},"\u201c":{"d":"918,-838r-373,0r309,-626r276,0xm401,-838r-374,0r309,-626r276,0","w":1157,"k":{"\u0111":149,"\u0152":83,"\u00d8":83,"\u00c6":282,"\u00c5":272,"r":36,"q":149,"g":149,"d":149,"Y":-141,"X":-65,"W":-86,"V":-133,"T":-38,"Q":36,"O":83,"J":272,"A":272}},"\u201d":{"d":"240,-1464r372,0r-309,626r-276,0xm756,-1464r374,0r-309,626r-276,0","w":1157},"\u2018":{"d":"401,-838r-374,0r309,-626r276,0","w":639,"k":{"\u0111":149,"\u0152":83,"\u00d8":83,"\u00c6":282,"\u00c5":272,"r":36,"q":149,"g":149,"d":149,"Y":-141,"X":-65,"W":-86,"V":-133,"T":-38,"Q":36,"O":83,"J":272,"A":272}},"\u2019":{"d":"240,-1464r372,0r-309,626r-276,0","w":639},"\u00f7":{"d":"688,-205v0,-88,78,-166,166,-166v89,0,164,77,164,166v0,89,-75,164,-164,164v-89,0,-166,-75,-166,-164xm254,-727r1198,0r0,231r-1198,0r0,-231xm688,-1016v0,-88,78,-166,166,-166v87,0,164,78,164,166v0,89,-77,164,-166,164v-89,0,-164,-75,-164,-164","w":1706},"\u25ca":{"d":"506,-1409r-385,817r385,825r385,-825xm506,-1653r500,1061r-500,1069r-500,-1069","w":1012},"\u00ff":{"d":"76,446r284,-600r-407,-856r395,0r141,365v21,53,38,103,48,159v10,-57,26,-105,47,-159r143,-365r381,0r-635,1456r-397,0xm740,-1188v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm350,-1188v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1090},"\u0178":{"d":"416,0r0,-668r-512,-796r458,0r203,388v21,39,35,77,43,113v6,-35,31,-85,51,-124r195,-377r459,0r-512,796r0,668r-385,0xm807,-1661v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm417,-1661v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1223},"\u2215":{"d":"-342,39r836,-1518r188,0r-840,1518r-184,0","w":342},"\u00a4":{"d":"895,-270v144,-2,228,-60,330,-136r-13,351v-97,54,-213,93,-350,94v-379,2,-633,-239,-688,-576r-174,0r27,-122r131,-1v-4,-40,-1,-92,2,-133r-160,0r27,-125r147,0v64,-329,314,-561,692,-561v141,0,259,44,351,105r0,346v-83,-81,-179,-143,-322,-143v-178,0,-293,107,-336,253r498,0r-43,125r-477,0v-4,43,-10,87,-5,133r439,1r-45,122r-375,0v33,155,163,270,344,267","w":1280},"\u2039":{"d":"403,-14r-358,-488r358,-489r193,139r-264,350r264,355","w":639,"k":{"\u00c6":-151,"Y":149,"W":36,"V":112,"T":112,"J":-38}},"\u203a":{"d":"236,-14r-191,-133r262,-355r-262,-350r191,-139r360,489","w":639},"\uf001":{"d":"1026,-1126v-104,0,-197,-95,-197,-199v0,-106,91,-195,197,-195v108,0,197,87,197,195v0,107,-90,199,-197,199xm848,0r0,-1010r356,0r0,1010r-356,0xm612,-1298v-130,-6,-89,167,-96,288r178,0r0,252r-178,0r0,758r-350,0r0,-758r-152,0r0,-252r152,0r0,-207v1,-241,136,-355,383,-354v48,1,99,9,145,19r0,272v-26,-10,-52,-17,-82,-18","w":1346,"k":{"\u2018":-38,"\u201c":-38}},"\uf002":{"d":"848,0r0,-1550r356,0r0,1550r-356,0xm612,-1298v-130,-6,-89,167,-96,288r178,0r0,252r-178,0r0,758r-350,0r0,-758r-152,0r0,-252r152,0r0,-207v1,-241,136,-355,383,-354v48,1,99,9,145,19r0,272v-26,-10,-52,-17,-82,-18","w":1346},"\u2021":{"d":"442,-750r-379,0r0,-288r379,0r0,-426r332,0r0,426r381,0r0,288r-381,0r0,447r381,0r0,289r-381,0r0,426r-332,0r0,-426r-379,0r0,-289r379,0r0,-447","w":1219},"\u00b7":{"d":"319,-518v-110,0,-200,-93,-200,-203v0,-111,89,-201,200,-201v113,0,203,88,203,201v0,111,-92,203,-203,203","w":639},"\u201a":{"d":"240,-332r372,0r-309,627r-276,0","w":639,"k":{"\uf002":-38,"\uf001":-38,"\u0152":112,"\u00d8":112,"\u00c6":-114,"\u00c5":-75,"w":120,"v":159,"u":36,"t":36,"f":-38,"Y":225,"W":178,"V":339,"U":73,"T":206,"Q":112,"O":112,"J":-38,"G":73,"C":112,"A":-75}},"\u201e":{"d":"240,-332r372,0r-309,627r-276,0xm756,-332r374,0r-309,627r-276,0","w":1157,"k":{"\uf002":-38,"\uf001":-38,"\u0152":112,"\u00d8":112,"\u00c6":-114,"\u00c5":-75,"w":120,"v":159,"u":36,"t":36,"f":-38,"Y":225,"W":178,"V":339,"U":73,"T":206,"Q":112,"O":112,"J":-38,"G":73,"C":112,"A":-75}},"\u2030":{"d":"426,-1325v-114,0,-127,106,-127,250v0,89,10,152,30,191v20,39,52,59,97,59v114,0,127,-106,127,-250v0,-89,-10,-152,-30,-191v-20,-39,-52,-59,-97,-59xm426,-1479v233,0,377,166,377,404v0,237,-145,403,-377,403v-233,0,-377,-165,-377,-403v0,-238,144,-404,377,-404xm2292,-616v-114,0,-127,105,-127,249v0,89,12,153,30,193v35,78,155,76,194,0v34,-68,38,-318,0,-384v-22,-38,-52,-58,-97,-58xm2292,-770v233,0,377,165,377,403v0,238,-145,406,-377,406v-233,0,-375,-168,-375,-406v0,-238,142,-403,375,-403xm1444,-616v-114,0,-127,105,-127,249v0,89,12,153,30,193v35,78,155,76,194,0v34,-68,38,-318,0,-384v-22,-38,-52,-58,-97,-58xm1444,-770v232,0,375,165,375,403v0,238,-143,406,-375,406v-234,0,-377,-167,-377,-406v0,-238,144,-403,377,-403xm393,39r879,-1518r188,0r-885,1518r-182,0","w":2701},"\u00c2":{"d":"543,-547r397,0r-149,-483r-50,-197r-51,197xm-16,0r505,-1464r500,0r506,1464r-397,0r-74,-262r-567,0r-76,262r-397,0xm417,-1620r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":1479},"\u00ca":{"d":"156,0r0,-1464r897,0r0,321r-508,0r0,254r479,0r0,314r-479,0r0,247r508,0r0,328r-897,0xm292,-1620r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":1161},"\u00c1":{"d":"543,-547r397,0r-149,-483r-50,-197r-51,197xm-16,0r505,-1464r500,0r506,1464r-397,0r-74,-262r-567,0r-76,262r-397,0xm1028,-1970r-309,350r-154,0r182,-350r281,0","w":1479},"\u00cb":{"d":"156,0r0,-1464r897,0r0,321r-508,0r0,254r479,0r0,314r-479,0r0,247r508,0r0,328r-897,0xm809,-1661v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm419,-1661v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":1161},"\u00c8":{"d":"156,0r0,-1464r897,0r0,321r-508,0r0,254r479,0r0,314r-479,0r0,247r508,0r0,328r-897,0xm325,-1970r281,0r182,350r-154,0","w":1161},"\u00cd":{"d":"166,0r0,-1464r403,0r0,1464r-403,0xm658,-1970r-309,350r-154,0r182,-350r281,0","w":735},"\u00ce":{"d":"166,0r0,-1464r403,0r0,1464r-403,0xm47,-1620r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":735},"\u00cf":{"d":"166,0r0,-1464r403,0r0,1464r-403,0xm564,-1661v-79,0,-144,-66,-144,-145v0,-74,69,-142,144,-142v77,0,143,65,143,142v0,80,-63,145,-143,145xm174,-1661v-78,0,-145,-66,-145,-145v0,-74,71,-142,145,-142v78,0,142,65,142,142v0,82,-60,145,-142,145","w":735},"\u00cc":{"d":"166,0r0,-1464r403,0r0,1464r-403,0xm80,-1970r281,0r182,350r-154,0","w":735},"\u00d3":{"d":"1600,-1025v79,181,79,411,1,592v-114,263,-362,472,-724,472v-364,0,-610,-212,-725,-473v-80,-181,-80,-409,0,-590v115,-262,361,-473,725,-473v362,0,609,209,723,472xm494,-729v0,237,153,430,383,430v225,0,383,-197,383,-430v0,-231,-162,-430,-383,-430v-225,0,-383,198,-383,430xm1166,-1970r-309,350r-154,0r182,-350r281,0","w":1753},"\u00d4":{"d":"1600,-1025v79,181,79,411,1,592v-114,263,-362,472,-724,472v-364,0,-610,-212,-725,-473v-80,-181,-80,-409,0,-590v115,-262,361,-473,725,-473v362,0,609,209,723,472xm494,-729v0,237,153,430,383,430v225,0,383,-197,383,-430v0,-231,-162,-430,-383,-430v-225,0,-383,198,-383,430xm555,-1620r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":1753},"\uf000":{"d":"860,-1214r-24,-2v-22,-205,151,-367,329,-398v2,21,0,34,2,62v11,155,-170,340,-307,338xm1272,-741v0,172,101,279,233,338v-76,165,-144,279,-205,343v-61,64,-129,95,-204,95v-57,0,-202,-71,-254,-66v-51,-6,-209,70,-258,66v-121,-10,-190,-85,-258,-176v-116,-156,-208,-360,-213,-596v-6,-278,179,-494,448,-494v72,0,222,68,279,68v52,0,208,-73,274,-70v168,9,272,64,359,164v-116,75,-201,163,-201,328","w":1618},"\u00d2":{"d":"1600,-1025v79,181,79,411,1,592v-114,263,-362,472,-724,472v-364,0,-610,-212,-725,-473v-80,-181,-80,-409,0,-590v115,-262,361,-473,725,-473v362,0,609,209,723,472xm494,-729v0,237,153,430,383,430v225,0,383,-197,383,-430v0,-231,-162,-430,-383,-430v-225,0,-383,198,-383,430xm588,-1970r281,0r182,350r-154,0","w":1753},"\u00da":{"d":"147,-1464r398,0r0,712v2,169,-2,241,35,340v29,76,112,115,219,115v159,-1,236,-78,246,-229v18,-266,4,-646,8,-938r397,0r0,774v-2,284,-13,412,-127,551v-103,126,-286,178,-524,178v-339,0,-552,-109,-623,-373v-25,-94,-29,-338,-29,-508r0,-622xm1088,-1970r-309,350r-154,0r182,-350r281,0","w":1597},"\u00db":{"d":"147,-1464r398,0r0,712v2,169,-2,241,35,340v29,76,112,115,219,115v159,-1,236,-78,246,-229v18,-266,4,-646,8,-938r397,0r0,774v-2,284,-13,412,-127,551v-103,126,-286,178,-524,178v-339,0,-552,-109,-623,-373v-25,-94,-29,-338,-29,-508r0,-622xm477,-1620r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0","w":1597},"\u00d9":{"d":"147,-1464r398,0r0,712v2,169,-2,241,35,340v29,76,112,115,219,115v159,-1,236,-78,246,-229v18,-266,4,-646,8,-938r397,0r0,774v-2,284,-13,412,-127,551v-103,126,-286,178,-524,178v-339,0,-552,-109,-623,-373v-25,-94,-29,-338,-29,-508r0,-622xm510,-1970r281,0r182,350r-154,0","w":1597},"\u0131":{"d":"141,0r0,-1010r357,0r0,1010r-357,0","w":639},"\u02c6":{"d":"190,-1147r183,-350r276,0r182,350r-153,0r-166,-180r-168,180r-154,0"},"\u02dc":{"d":"580,-1395v71,22,135,-8,145,-73r119,0v-34,164,-110,281,-296,239r-94,-27v-91,-33,-131,-4,-155,68r-119,0v33,-140,75,-250,215,-250v66,0,127,25,185,43"},"\u00af":{"d":"205,-1247r0,-168r614,0r0,168r-614,0"},"\u02d8":{"d":"825,-1485v-16,204,-102,307,-313,307v-208,0,-302,-106,-315,-307r131,0v9,101,70,139,184,139v112,0,176,-38,183,-139r130,0"},"\u02d9":{"d":"512,-1182v-78,0,-147,-70,-147,-149v0,-75,72,-150,147,-150v80,0,150,70,150,150v0,84,-66,149,-150,149"},"\u02da":{"d":"512,-1513v-62,0,-115,53,-115,114v0,63,52,115,115,115v62,0,115,-53,115,-115v0,-61,-53,-114,-115,-114xm512,-1128v-149,0,-270,-122,-270,-271v0,-148,123,-272,270,-272v148,0,272,125,272,272v0,147,-124,271,-272,271"},"\u00b8":{"d":"563,485v-103,-1,-198,-19,-291,-45r0,-139v87,24,177,45,271,45v54,0,86,-20,86,-72v0,-70,-98,-64,-174,-61r0,-213r114,0r0,84v149,-5,248,54,248,192v0,142,-103,211,-254,209"},"\u02dd":{"d":"569,-1147r148,-350r248,0r-277,350r-119,0xm393,-1497r238,0r-240,350r-110,0"},"\u02db":{"d":"332,270v0,-137,88,-199,192,-270r109,0v-64,62,-119,104,-119,197v0,54,23,79,76,79r102,0r0,191r-74,0v-185,-2,-286,-33,-286,-197"},"\u02c7":{"d":"190,-1497r154,0r168,180r166,-180r153,0r-182,350r-276,0"},"\u0141":{"d":"186,0r0,-500r-125,86r-135,-219r260,-180r0,-651r400,0r0,422r198,-140r146,213r-344,240r0,387r495,0r0,342r-895,0","w":1120,"k":{"\u2019":272,"\u2018":264,"\u201d":272,"\u201c":264,"y":73,"Y":112,"W":73,"V":112,"T":73,"O":36,";":-38,":":-38,".":-38,"-":36,",":-38}},"\u0142":{"d":"166,0r0,-500r-96,70r-123,-154r219,-157r0,-809r356,0r0,589r96,-69r121,153r-217,160r0,717r-356,0","w":688},"\u0160":{"d":"1122,-477v3,316,-236,522,-561,516v-239,-4,-383,-85,-520,-215r180,-297v97,106,189,193,348,201v98,5,184,-60,183,-152v0,-49,-14,-86,-44,-112v-30,-26,-97,-54,-202,-82v-143,-39,-245,-89,-304,-151v-59,-62,-89,-147,-89,-255v0,-281,218,-480,505,-475v181,3,318,51,435,131r-125,287v-76,-64,-163,-114,-281,-117v-86,-2,-161,45,-162,123v0,37,13,65,39,88v26,23,99,47,171,68v243,71,331,101,400,275v20,50,27,106,27,167xm274,-1970r154,0r168,180r166,-180r153,0r-182,350r-276,0","w":1190},"\u0161":{"d":"932,-307v0,221,-196,349,-434,346v-191,-3,-337,-46,-461,-123r74,-272v89,79,211,139,360,141v76,1,137,-19,137,-84v0,-45,-47,-77,-141,-100v-202,-50,-379,-103,-379,-320v0,-211,181,-327,410,-323v155,2,282,38,403,92r-74,245v-81,-54,-171,-98,-290,-98v-69,0,-123,16,-123,74v0,36,47,64,140,91v213,61,378,102,378,331xm174,-1497r154,0r168,180r166,-180r153,0r-182,350r-276,0","w":991},"\u017d":{"d":"1298,0r-1294,0r739,-1147r-593,0r0,-317r1232,0r-737,1145r653,0r0,319xm372,-1970r154,0r168,180r166,-180r153,0r-182,350r-276,0","w":1386},"\u017e":{"d":"1024,0r-1024,0r518,-750r-455,0r0,-260r1006,0r-537,736r492,0r0,274xm233,-1497r154,0r168,180r166,-180r153,0r-182,350r-276,0","w":1110},"\u00a6":{"d":"393,-408r240,0r0,758r-240,0r0,-758xm393,-1432r240,0r0,758r-240,0r0,-758"},"\u00d0":{"d":"178,0r0,-614r-178,0r0,-258r178,0r0,-592r303,0v392,4,532,6,733,139v175,116,283,317,283,594v0,386,-206,620,-525,699v-162,40,-549,31,-794,32xm1092,-731v0,-317,-185,-420,-521,-406r0,265r273,0r0,258r-273,0r0,286v335,12,521,-84,521,-403","w":1591,"k":{"\u201e":188,"\u201a":188,"Y":36,"W":36,"V":36,"A":36,";":-38,":":-38,".":83,"-":-65,",":83}},"\u00f0":{"d":"637,-258v128,0,211,-86,211,-215v0,-131,-82,-217,-211,-217v-130,0,-211,86,-211,217v0,130,81,215,211,215xm1202,-549v6,363,-207,590,-565,588v-259,-2,-435,-134,-521,-311v-58,-119,-57,-272,-1,-392v77,-166,237,-303,477,-303v93,0,161,28,223,68v-60,-99,-130,-183,-219,-254r-297,137r-70,-127r242,-106r-97,-56v-24,-13,-46,-25,-65,-34r119,-209v110,48,209,108,313,178r314,-146r71,130r-262,118v195,184,333,390,338,719","w":1276},"\u00dd":{"d":"416,0r0,-668r-512,-796r458,0r203,388v21,39,35,77,43,113v6,-35,31,-85,51,-124r195,-377r459,0r-512,796r0,668r-385,0xm901,-1970r-309,350r-154,0r182,-350r281,0","w":1223},"\u00fd":{"d":"76,446r284,-600r-407,-856r395,0r141,365v21,53,38,103,48,159v10,-57,26,-105,47,-159r143,-365r381,0r-635,1456r-397,0xm834,-1497r-309,350r-154,0r182,-350r281,0","w":1090},"\u00de":{"d":"864,-754v0,-146,-86,-167,-254,-170r-80,0r0,342r76,0v169,-3,258,-24,258,-172xm530,-260r0,260r-374,0r0,-1464r374,0r0,223v277,2,424,-1,555,106v102,83,166,217,166,394v0,251,-109,406,-309,461v-80,22,-280,21,-412,20","w":1298},"\u00fe":{"d":"680,-756v-147,0,-231,103,-231,254v0,151,84,254,231,254v147,0,233,-103,233,-254v0,-152,-85,-254,-233,-254xm1268,-502v0,299,-171,543,-453,541v-192,-2,-273,-71,-352,-202v20,181,6,410,10,609r-340,0r0,-1996r340,0r0,540v0,71,-2,117,-12,170v82,-119,170,-200,342,-202v296,-4,465,229,465,540","w":1352},"\u2212":{"d":"254,-729r1198,0r0,235r-1198,0r0,-235","w":1706},"\u00d7":{"d":"430,-1214r440,440r441,-440r162,161r-441,443r441,440r-162,162r-441,-441r-440,441r-162,-162r441,-440r-441,-443","w":1706},"\u00b9":{"d":"324,-575r0,-672r-207,0r112,-199r334,0r0,871r-239,0","w":846},"\u00b2":{"d":"418,-1464v196,0,356,97,356,278v0,117,-55,174,-131,250r-176,174r297,0r0,187r-737,0r432,-467v40,-46,75,-80,78,-142v3,-64,-50,-104,-117,-104v-89,0,-131,57,-127,151r-234,0v-4,-209,146,-327,359,-327","w":846},"\u00b3":{"d":"422,-553v-212,0,-371,-108,-367,-313r246,0v-4,86,35,131,117,131v78,0,124,-36,125,-111v1,-97,-71,-127,-172,-117r0,-141v86,3,150,-25,151,-102v1,-56,-47,-92,-106,-92v-66,0,-106,33,-109,94r-233,0v7,-179,154,-258,354,-258v173,0,317,70,317,225v0,100,-65,157,-153,180v111,18,189,94,190,217v0,183,-164,287,-360,287","w":846},"\u00bc":{"d":"1604,-346r1,-298v1,-12,2,-22,4,-31v-65,119,-156,219,-231,329r226,0xm1604,0r0,-184r-420,0r0,-162r344,-469r284,0r0,469r103,0r0,162r-103,0r0,184r-208,0xm465,39r835,-1518r189,0r-840,1518r-184,0xm309,-633r0,-627r-196,0r108,-184r318,0r0,811r-230,0","w":1956},"\u00bd":{"d":"1548,-829v187,0,338,88,338,260v0,109,-56,162,-125,231r-166,164r283,0r0,174r-704,0r413,-436v37,-41,71,-75,74,-131v3,-60,-48,-100,-111,-99v-82,1,-127,54,-123,142r-221,0v-3,-198,140,-305,342,-305xm465,39r835,-1518r189,0r-840,1518r-184,0xm309,-633r0,-627r-196,0r108,-184r318,0r0,811r-230,0","w":1956},"\u00be":{"d":"1604,-346r1,-298v1,-12,2,-22,4,-31v-65,119,-156,219,-231,329r226,0xm1604,0r0,-184r-420,0r0,-162r344,-469r284,0r0,469r103,0r0,162r-103,0r0,184r-208,0xm465,39r835,-1518r189,0r-840,1518r-184,0xm403,-610v-201,0,-353,-101,-350,-295r234,0v-4,81,34,123,112,123v72,0,119,-35,119,-103v1,-92,-66,-115,-164,-109r0,-132v82,3,143,-24,144,-97v0,-51,-48,-84,-103,-84v-59,0,-100,31,-100,88r-223,0v7,-170,145,-241,336,-241v164,0,303,64,303,211v0,95,-62,145,-146,168v108,15,183,85,183,202v0,170,-161,269,-345,269","w":1956},"\u20a3":{"d":"156,0r0,-1464r897,0r0,321r-508,0r0,254r479,0r0,314r-479,0r0,575r-389,0xm1872,-723v-179,0,-271,119,-271,305r0,418r-354,0r0,-1010r336,0r0,238v67,-177,206,-286,446,-254r-34,324v-37,-13,-77,-21,-123,-21","w":2030},"\u011e":{"d":"492,-715v0,262,136,449,385,449v195,0,351,-106,372,-273r-397,0r0,-307r784,0v34,545,-243,883,-759,881v-384,-1,-609,-190,-725,-465v-78,-185,-78,-420,-2,-602v112,-265,356,-465,727,-465v316,0,523,134,659,338r-346,166v-73,-99,-162,-166,-313,-168v-248,-3,-385,186,-385,446xm1177,-1958v-16,204,-102,307,-313,307v-208,0,-302,-106,-315,-307r131,0v9,101,70,139,184,139v112,0,176,-38,183,-139r130,0","w":1726},"\u011f":{"d":"666,-258v147,0,235,-100,235,-250v0,-151,-87,-250,-235,-250v-149,0,-238,98,-238,250v0,151,89,250,238,250xm547,-1042v172,2,266,75,338,194r0,-162r329,0r0,1008v-5,333,-212,447,-571,448v-280,1,-494,-96,-512,-335r369,0v13,69,82,103,170,100v183,-5,197,-79,202,-289r0,-92v-69,118,-175,187,-350,188v-280,2,-442,-233,-442,-530v0,-307,172,-533,467,-530xm989,-1485v-16,204,-102,307,-313,307v-208,0,-302,-106,-315,-307r131,0v9,101,70,139,184,139v112,0,176,-38,183,-139r130,0","w":1352},"\u0130":{"d":"166,0r0,-1464r403,0r0,1464r-403,0xm369,-1655v-78,0,-147,-70,-147,-149v0,-75,72,-150,147,-150v80,0,150,70,150,150v0,84,-66,149,-150,149","w":735},"\u015e":{"d":"1122,-477v3,316,-236,522,-561,516v-239,-4,-383,-85,-520,-215r180,-297v97,106,189,193,348,201v98,5,184,-60,183,-152v0,-49,-14,-86,-44,-112v-30,-26,-97,-54,-202,-82v-143,-39,-245,-89,-304,-151v-59,-62,-89,-147,-89,-255v0,-281,218,-480,505,-475v181,3,318,51,435,131r-125,287v-76,-64,-163,-114,-281,-117v-86,-2,-161,45,-162,123v0,37,13,65,39,88v26,23,99,47,171,68v243,71,331,101,400,275v20,50,27,106,27,167xm647,485v-103,-1,-198,-19,-291,-45r0,-139v87,24,177,45,271,45v54,0,86,-20,86,-72v0,-70,-98,-64,-174,-61r0,-213r114,0r0,84v149,-5,248,54,248,192v0,142,-103,211,-254,209","w":1190},"\u015f":{"d":"932,-307v0,221,-196,349,-434,346v-191,-3,-337,-46,-461,-123r74,-272v89,79,211,139,360,141v76,1,137,-19,137,-84v0,-45,-47,-77,-141,-100v-202,-50,-379,-103,-379,-320v0,-211,181,-327,410,-323v155,2,282,38,403,92r-74,245v-81,-54,-171,-98,-290,-98v-69,0,-123,16,-123,74v0,36,47,64,140,91v213,61,378,102,378,331xm547,485v-103,-1,-198,-19,-291,-45r0,-139v87,24,177,45,271,45v54,0,86,-20,86,-72v0,-70,-98,-64,-174,-61r0,-213r114,0r0,84v149,-5,248,54,248,192v0,142,-103,211,-254,209","w":991},"\u0106":{"d":"548,-1446v207,-85,493,-58,669,39r0,436v-93,-100,-177,-172,-338,-176v-233,-5,-385,184,-385,424v0,226,162,414,385,408v160,-4,246,-76,338,-177r0,437v-157,84,-396,122,-601,63v-199,-57,-349,-199,-436,-363v-100,-189,-115,-472,-32,-681v69,-176,225,-338,400,-410xm1094,-1970r-309,350r-154,0r182,-350r281,0","w":1286},"\u0107":{"d":"600,-1042v109,1,186,21,256,63r0,301v-59,-51,-109,-86,-201,-88v-146,-2,-231,108,-231,260v0,150,92,255,240,254v87,-2,143,-37,192,-88r0,309v-76,42,-154,69,-260,70v-311,4,-522,-228,-522,-543v0,-308,221,-542,526,-538xm852,-1497r-309,350r-154,0r182,-350r281,0","w":944},"\u010c":{"d":"548,-1446v207,-85,493,-58,669,39r0,436v-93,-100,-177,-172,-338,-176v-233,-5,-385,184,-385,424v0,226,162,414,385,408v160,-4,246,-76,338,-177r0,437v-157,84,-396,122,-601,63v-199,-57,-349,-199,-436,-363v-100,-189,-115,-472,-32,-681v69,-176,225,-338,400,-410xm483,-1970r154,0r168,180r166,-180r153,0r-182,350r-276,0","w":1286},"\u010d":{"d":"600,-1042v109,1,186,21,256,63r0,301v-59,-51,-109,-86,-201,-88v-146,-2,-231,108,-231,260v0,150,92,255,240,254v87,-2,143,-37,192,-88r0,309v-76,42,-154,69,-260,70v-311,4,-522,-228,-522,-543v0,-308,221,-542,526,-538xm241,-1497r154,0r168,180r166,-180r153,0r-182,350r-276,0","w":944},"\u0111":{"d":"670,-250v146,0,233,-95,233,-242v0,-145,-89,-241,-233,-241v-144,0,-232,95,-232,241v0,149,86,242,232,242xm889,-827v-16,-101,-11,-221,-12,-338r-332,0r0,-205r332,0r0,-180r342,0r0,180r153,0r0,205r-153,0r0,1165r-328,0r0,-164v-78,116,-174,200,-342,203v-284,5,-465,-229,-465,-524v0,-292,176,-534,453,-531v189,2,263,66,352,189","w":1372},"\u00ad":{"d":"127,-340r0,-326r680,0r0,326r-680,0","w":934},"\u2219":{"d":"319,-518v-110,0,-200,-93,-200,-203v0,-111,89,-201,200,-201v113,0,203,88,203,201v0,111,-92,203,-203,203","w":639},"\u20ac":{"d":"895,-270v144,-2,228,-60,330,-136r-13,351v-97,54,-213,93,-350,94v-379,2,-633,-239,-688,-576r-174,0r27,-122r131,-1v-4,-40,-1,-92,2,-133r-160,0r27,-125r147,0v64,-329,314,-561,692,-561v141,0,259,44,351,105r0,346v-83,-81,-179,-143,-322,-143v-178,0,-293,107,-336,253r498,0r-43,125r-477,0v-4,43,-10,87,-5,133r439,1r-45,122r-375,0v33,155,163,270,344,267","w":1280}}});