﻿//--shcore.js
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*
* @version
* 2.1.364 (October 15 2009)
* 
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* @license
* This file is part of SyntaxHighlighter.
* 
* SyntaxHighlighter is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* 
* SyntaxHighlighter is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License
* along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
*/
//
// Begin anonymous function. This is used to contain local scope variables without polutting global scope.
//
if (!window.SyntaxHighlighter) var SyntaxHighlighter = function () {

    // Shortcut object which will be assigned to the SyntaxHighlighter variable.
    // This is a shorthand for local reference in order to avoid long namespace 
    // references to SyntaxHighlighter.whatever...
    var sh = {
        defaults: {
            /** Additional CSS class names to be added to highlighter elements. */
            'class-name': '',

            /** First line number. */
            'first-line': 1,

            /**
            * Pads line numbers. Possible values are:
            *
            *   false - don't pad line numbers.
            *   true  - automaticaly pad numbers with minimum required number of leading zeroes.
            *   [int] - length up to which pad line numbers.
            */
            'pad-line-numbers': true,

            /** Lines to highlight. */
            'highlight': null,

            /** Enables or disables smart tabs. */
            'smart-tabs': true,

            /** Gets or sets tab size. */
            'tab-size': 4,

            /** Enables or disables gutter. */
            'gutter': true,

            /** Enables or disables toolbar. */
            'toolbar': true,

            /** Forces code view to be collapsed. */
            'collapse': false,

            /** Enables or disables automatic links. */
            'auto-links': true,

            /** Gets or sets light mode. Equavalent to turning off gutter and toolbar. */
            'light': false,

            /** Enables or disables automatic line wrapping. */
            'wrap-lines': true,

            'html-script': false
        },

        config: {
            /** Enables use of <SCRIPT type="syntaxhighlighter" /> tags. */
            useScriptTags: true,

            /** Path to the copy to clipboard SWF file. */
            clipboardSwf: null,

            /** Width of an item in the toolbar. */
            toolbarItemWidth: 16,

            /** Height of an item in the toolbar. */
            toolbarItemHeight: 16,

            /** Blogger mode flag. */
            bloggerMode: false,

            stripBrs: false,

            /** Name of the tag that SyntaxHighlighter will automatically look for. */
            tagName: 'pre',

            strings: {
                expandSource: 'show source',
                viewSource: 'view source',
                copyToClipboard: 'copy to clipboard',
                copyToClipboardConfirmation: 'The code is in your clipboard now',
                print: 'print',
                help: '?',
                alert: 'SyntaxHighlighter\n\n',
                noBrush: 'Can\'t find brush for: ',
                brushNotHtmlScript: 'Brush wasn\'t configured for html-script option: ',

                // this is populated by the build script
                aboutDialog: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>About SyntaxHighlighter</title></head><body style="font-family:Geneva,Arial,Helvetica,sans-serif;background-color:#fff;color:#000;font-size:1em;text-align:center;"><div style="text-align:center;margin-top:3em;"><div style="font-size:xx-large;">SyntaxHighlighter</div><div style="font-size:.75em;margin-bottom:4em;"><div>version 2.1.364 (October 15 2009)</div><div><a href="http://alexgorbatchev.com" target="_blank" style="color:#0099FF;text-decoration:none;">http://alexgorbatchev.com</a></div><div>If you like this script, please <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2930402" style="color:#0099FF;text-decoration:none;">donate</a> to keep development active!</div></div><div>JavaScript code syntax highlighter.</div><div>Copyright 2004-2009 Alex Gorbatchev.</div></div></body></html>'
            },

            /** If true, output will show HTML produces instead. */
            debug: false
        },

        /** Internal 'global' variables. */
        vars: {
            discoveredBrushes: null,
            spaceWidth: null,
            printFrame: null,
            highlighters: {}
        },

        /** This object is populated by user included external brush files. */
        brushes: {},

        /** Common regular expressions. */
        regexLib: {
            multiLineCComments: /\/\*[\s\S]*?\*\//gm,
            singleLineCComments: /\/\/.*$/gm,
            singleLinePerlComments: /#.*$/gm,
            doubleQuotedString: /"([^\\"\n]|\\.)*"/g,
            singleQuotedString: /'([^\\'\n]|\\.)*'/g,
            multiLineDoubleQuotedString: /"([^\\"]|\\.)*"/g,
            multiLineSingleQuotedString: /'([^\\']|\\.)*'/g,
            xmlComments: /(&lt;|<)!--[\s\S]*?--(&gt;|>)/gm,
            url: /&lt;\w+:\/\/[\w-.\/?%&=@:;]*&gt;|\w+:\/\/[\w-.\/?%&=@:;]*/g,

            /** <?= ?> tags. */
            phpScriptTags: { left: /(&lt;|<)\?=?/g, right: /\?(&gt;|>)/g },

            /** <%= %> tags. */
            aspScriptTags: { left: /(&lt;|<)%=?/g, right: /%(&gt;|>)/g },

            /** <script></script> tags. */
            scriptScriptTags: { left: /(&lt;|<)\s*script.*?(&gt;|>)/gi, right: /(&lt;|<)\/\s*script\s*(&gt;|>)/gi }
        },

        toolbar: {
            /**
            * Creates new toolbar for a highlighter.
            * @param {Highlighter} highlighter    Target highlighter.
            */
            create: function (highlighter) {
                var div = document.createElement('DIV'),
				items = sh.toolbar.items
				;

                div.className = 'toolbar';

                for (var name in items) {
                    var constructor = items[name],
					command = new constructor(highlighter),
					element = command.create()
					;

                    highlighter.toolbarCommands[name] = command;

                    if (element == null)
                        continue;

                    if (typeof (element) == 'string')
                        element = sh.toolbar.createButton(element, highlighter.id, name);

                    element.className += 'item ' + name;
                    div.appendChild(element);
                }

                return div;
            },

            /**
            * Create a standard anchor button for the toolbar.
            * @param {String} label			Label text to display.
            * @param {String} highlighterId	Highlighter ID that this button would belong to.
            * @param {String} commandName		Command name that would be executed.
            * @return {Element}				Returns an 'A' element.
            */
            createButton: function (label, highlighterId, commandName) {
                var a = document.createElement('a'),
				style = a.style,
				config = sh.config,
				width = config.toolbarItemWidth,
				height = config.toolbarItemHeight
				;

                a.href = '#' + commandName;
                a.title = label;
                a.highlighterId = highlighterId;
                a.commandName = commandName;
                a.innerHTML = label;

                if (isNaN(width) == false)
                    style.width = width + 'px';

                if (isNaN(height) == false)
                    style.height = height + 'px';

                a.onclick = function (e) {
                    try {
                        sh.toolbar.executeCommand(
						this,
						e || window.event,
						this.highlighterId,
						this.commandName
					);
                    }
                    catch (e) {
                        sh.utils.alert(e.message);
                    }

                    return false;
                };

                return a;
            },

            /**
            * Executes a toolbar command.
            * @param {Element}		sender  		Sender element.
            * @param {MouseEvent}	event			Original mouse event object.
            * @param {String}		highlighterId	Highlighter DIV element ID.
            * @param {String}		commandName		Name of the command to execute.
            * @return {Object} Passes out return value from command execution.
            */
            executeCommand: function (sender, event, highlighterId, commandName, args) {
                var highlighter = sh.vars.highlighters[highlighterId],
				command
				;

                if (highlighter == null || (command = highlighter.toolbarCommands[commandName]) == null)
                    return null;

                return command.execute(sender, event, args);
            },

            /** Collection of toolbar items. */
            items: {
                expandSource: function (highlighter) {
                    this.create = function () {
                        if (highlighter.getParam('collapse') != true)
                            return;

                        return sh.config.strings.expandSource;
                    };

                    this.execute = function (sender, event, args) {
                        var div = highlighter.div;

                        sender.parentNode.removeChild(sender);
                        div.className = div.className.replace('collapsed', '');
                    };
                },

                /** 
                * Command to open a new window and display the original unformatted source code inside.
                */
                viewSource: function (highlighter) {
                    this.create = function () {
                        return sh.config.strings.viewSource;
                    };

                    this.execute = function (sender, event, args) {
                        var code = sh.utils.fixInputString(highlighter.originalCode).replace(/</g, '&lt;'),
						wnd = sh.utils.popup('', '_blank', 750, 400, 'location=0, resizable=1, menubar=0, scrollbars=1')
						;

                        code = sh.utils.unindent(code);

                        wnd.document.write('<pre>' + code + '</pre>');
                        wnd.document.close();
                    };
                },

                /**
                * Command to copy the original source code in to the clipboard.
                * Uses Flash method if <code>clipboardSwf</code> is configured.
                */
                copyToClipboard: function (highlighter) {
                    var flashDiv, flashSwf,
					highlighterId = highlighter.id
					;

                    this.create = function () {
                        var config = sh.config;

                        // disable functionality if running locally
                        if (config.clipboardSwf == null)
                            return null;

                        function params(list) {
                            var result = '';

                            for (var name in list)
                                result += "<param name='" + name + "' value='" + list[name] + "'/>";

                            return result;
                        };

                        function attributes(list) {
                            var result = '';

                            for (var name in list)
                                result += " " + name + "='" + list[name] + "'";

                            return result;
                        };

                        var args1 = {
                            width: config.toolbarItemWidth,
                            height: config.toolbarItemHeight,
                            id: highlighterId + '_clipboard',
                            type: 'application/x-shockwave-flash',
                            title: sh.config.strings.copyToClipboard
                        },

                        // these arguments are used in IE's <param /> collection
						args2 = {
						    allowScriptAccess: 'always',
						    wmode: 'transparent',
						    flashVars: 'highlighterId=' + highlighterId,
						    menu: 'false'
						},
						swf = config.clipboardSwf,
						html
					;

                        if (/msie/i.test(navigator.userAgent)) {
                            html = '<object'
							+ attributes({
							    classid: 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
							    codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0'
							})
							+ attributes(args1)
							+ '>'
							+ params(args2)
							+ params({ movie: swf })
							+ '</object>'
						;
                        }
                        else {
                            html = '<embed'
							+ attributes(args1)
							+ attributes(args2)
							+ attributes({ src: swf })
							+ '/>'
						;
                        }

                        flashDiv = document.createElement('div');
                        flashDiv.innerHTML = html;

                        return flashDiv;
                    };

                    this.execute = function (sender, event, args) {
                        var command = args.command;

                        switch (command) {
                            case 'get':
                                var code = sh.utils.unindent(
								sh.utils.fixInputString(highlighter.originalCode)
									.replace(/&lt;/g, '<')
									.replace(/&gt;/g, '>')
									.replace(/&amp;/g, '&')
								);

                                if (window.clipboardData)
                                // will fall through to the confirmation because there isn't a break
                                    window.clipboardData.setData('text', code);
                                else
                                    return sh.utils.unindent(code);

                            case 'ok':
                                sh.utils.alert(sh.config.strings.copyToClipboardConfirmation);
                                break;

                            case 'error':
                                sh.utils.alert(args.message);
                                break;
                        }
                    };
                },

                /** Command to print the colored source code. */
                printSource: function (highlighter) {
                    this.create = function () {
                        return sh.config.strings.print;
                    };

                    this.execute = function (sender, event, args) {
                        var iframe = document.createElement('IFRAME'),
						doc = null
						;

                        // make sure there is never more than one hidden iframe created by SH
                        if (sh.vars.printFrame != null)
                            document.body.removeChild(sh.vars.printFrame);

                        sh.vars.printFrame = iframe;

                        // this hides the iframe
                        iframe.style.cssText = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';

                        document.body.appendChild(iframe);
                        doc = iframe.contentWindow.document;

                        copyStyles(doc, window.document);
                        doc.write('<div class="' + highlighter.div.className.replace('collapsed', '') + ' printing">' + highlighter.div.innerHTML + '</div>');
                        doc.close();

                        iframe.contentWindow.focus();
                        iframe.contentWindow.print();

                        function copyStyles(destDoc, sourceDoc) {
                            var links = sourceDoc.getElementsByTagName('link');

                            for (var i = 0; i < links.length; i++)
                                if (links[i].rel.toLowerCase() == 'stylesheet' && /shCore\.css$/.test(links[i].href))
                                    destDoc.write('<link type="text/css" rel="stylesheet" href="' + links[i].href + '"></link>');
                        };
                    };
                },

                /** Command to display the about dialog window. */
                about: function (highlighter) {
                    this.create = function () {
                        return sh.config.strings.help;
                    };

                    this.execute = function (sender, event) {
                        var wnd = sh.utils.popup('', '_blank', 500, 250, 'scrollbars=0'),
						doc = wnd.document
						;

                        doc.write(sh.config.strings.aboutDialog);
                        doc.close();
                        wnd.focus();
                    };
                }
            }
        },

        utils: {
            /**
            * Finds an index of element in the array.
            * @ignore
            * @param {Object} searchElement
            * @param {Number} fromIndex
            * @return {Number} Returns index of element if found; -1 otherwise.
            */
            indexOf: function (array, searchElement, fromIndex) {
                fromIndex = Math.max(fromIndex || 0, 0);

                for (var i = fromIndex; i < array.length; i++)
                    if (array[i] == searchElement)
                        return i;

                return -1;
            },

            /**
            * Generates a unique element ID.
            */
            guid: function (prefix) {
                return prefix + Math.round(Math.random() * 1000000).toString();
            },

            /**
            * Merges two objects. Values from obj2 override values in obj1.
            * Function is NOT recursive and works only for one dimensional objects.
            * @param {Object} obj1 First object.
            * @param {Object} obj2 Second object.
            * @return {Object} Returns combination of both objects.
            */
            merge: function (obj1, obj2) {
                var result = {}, name;

                for (name in obj1)
                    result[name] = obj1[name];

                for (name in obj2)
                    result[name] = obj2[name];

                return result;
            },

            /**
            * Attempts to convert string to boolean.
            * @param {String} value Input string.
            * @return {Boolean} Returns true if input was "true", false if input was "false" and value otherwise.
            */
            toBoolean: function (value) {
                switch (value) {
                    case "true":
                        return true;

                    case "false":
                        return false;
                }

                return value;
            },

            /**
            * Opens up a centered popup window.
            * @param {String} url		URL to open in the window.
            * @param {String} name		Popup name.
            * @param {int} width		Popup width.
            * @param {int} height		Popup height.
            * @param {String} options	window.open() options.
            * @return {Window}			Returns window instance.
            */
            popup: function (url, name, width, height, options) {
                var x = (screen.width - width) / 2,
				y = (screen.height - height) / 2
				;

                options += ', left=' + x +
						', top=' + y +
						', width=' + width +
						', height=' + height
				;
                options = options.replace(/^,/, '');

                var win = window.open(url, name, options);
                win.focus();
                return win;
            },

            /**
            * Adds event handler to the target object.
            * @param {Object} obj		Target object.
            * @param {String} type		Name of the event.
            * @param {Function} func	Handling function.
            */
            addEvent: function (obj, type, func) {
                if (obj.attachEvent) {
                    obj['e' + type + func] = func;
                    obj[type + func] = function () {
                        obj['e' + type + func](window.event);
                    }
                    obj.attachEvent('on' + type, obj[type + func]);
                }
                else {
                    obj.addEventListener(type, func, false);
                }
            },

            /**
            * Displays an alert.
            * @param {String} str String to display.
            */
            alert: function (str) {
                alert(sh.config.strings.alert + str)
            },

            /**
            * Finds a brush by its alias.
            *
            * @param {String} alias	Brush alias.
            * @param {Boolean} alert	Suppresses the alert if false.
            * @return {Brush}			Returns bursh constructor if found, null otherwise.
            */
            findBrush: function (alias, alert) {
                var brushes = sh.vars.discoveredBrushes,
				result = null
				;

                if (brushes == null) {
                    brushes = {};

                    // Find all brushes
                    for (var brush in sh.brushes) {
                        var aliases = sh.brushes[brush].aliases;

                        if (aliases == null)
                            continue;

                        // keep the brush name
                        sh.brushes[brush].name = brush.toLowerCase();

                        for (var i = 0; i < aliases.length; i++)
                            brushes[aliases[i]] = brush;
                    }

                    sh.vars.discoveredBrushes = brushes;
                }

                result = sh.brushes[brushes[alias]];

                if (result == null && alert != false)
                    sh.utils.alert(sh.config.strings.noBrush + alias);

                return result;
            },

            /**
            * Executes a callback on each line and replaces each line with result from the callback.
            * @param {Object} str			Input string.
            * @param {Object} callback		Callback function taking one string argument and returning a string.
            */
            eachLine: function (str, callback) {
                var lines = str.split('\n');

                for (var i = 0; i < lines.length; i++)
                    lines[i] = callback(lines[i]);

                return lines.join('\n');
            },

            /**
            * This is a special trim which only removes first and last empty lines
            * and doesn't affect valid leading space on the first line.
            * 
            * @param {String} str   Input string
            * @return {String}      Returns string without empty first and last lines.
            */
            trimFirstAndLastLines: function (str) {
                return str.replace(/^[ ]*[\n]+|[\n]*[ ]*$/g, '');
            },

            /**
            * Parses key/value pairs into hash object.
            * 
            * Understands the following formats:
            * - name: word;
            * - name: [word, word];
            * - name: "string";
            * - name: 'string';
            * 
            * For example:
            *   name1: value; name2: [value, value]; name3: 'value'
            *   
            * @param {String} str    Input string.
            * @return {Object}       Returns deserialized object.
            */
            parseParams: function (str) {
                var match,
				result = {},
				arrayRegex = new XRegExp("^\\[(?<values>(.*?))\\]$"),
				regex = new XRegExp(
					"(?<name>[\\w-]+)" +
					"\\s*:\\s*" +
					"(?<value>" +
						"[\\w-%#]+|" + 	// word
						"\\[.*?\\]|" + 	// [] array
						'".*?"|' + 		// "" string
						"'.*?'" + 		// '' string
					")\\s*;?",
					"g"
				)
				;

                while ((match = regex.exec(str)) != null) {
                    var value = match.value
					.replace(/^['"]|['"]$/g, '') // strip quotes from end of strings
					;

                    // try to parse array value
                    if (value != null && arrayRegex.test(value)) {
                        var m = arrayRegex.exec(value);
                        value = m.values.length > 0 ? m.values.split(/\s*,\s*/) : [];
                    }

                    result[match.name] = value;
                }

                return result;
            },

            /**
            * Wraps each line of the string into <code/> tag with given style applied to it.
            * 
            * @param {String} str   Input string.
            * @param {String} css   Style name to apply to the string.
            * @return {String}      Returns input string with each line surrounded by <span/> tag.
            */
            decorate: function (str, css) {
                if (str == null || str.length == 0 || str == '\n')
                    return str;

                str = str.replace(/</g, '&lt;');

                // Replace two or more sequential spaces with &nbsp; leaving last space untouched.
                str = str.replace(/ {2,}/g, function (m) {
                    var spaces = '';

                    for (var i = 0; i < m.length - 1; i++)
                        spaces += '&nbsp;';

                    return spaces + ' ';
                });

                // Split each line and apply <span class="...">...</span> to them so that
                // leading spaces aren't included.
                if (css != null)
                    str = sh.utils.eachLine(str, function (line) {
                        if (line.length == 0)
                            return '';

                        var spaces = '';

                        line = line.replace(/^(&nbsp;| )+/, function (s) {
                            spaces = s;
                            return '';
                        });

                        if (line.length == 0)
                            return spaces;

                        return spaces + '<code class="' + css + '">' + line + '</code>';
                    });

                return str;
            },

            /**
            * Pads number with zeros until it's length is the same as given length.
            * 
            * @param {Number} number	Number to pad.
            * @param {Number} length	Max string length with.
            * @return {String}			Returns a string padded with proper amount of '0'.
            */
            padNumber: function (number, length) {
                var result = number.toString();

                while (result.length < length)
                    result = '0' + result;

                return result;
            },

            /**
            * Measures width of a single space character.
            * @return {Number} Returns width of a single space character.
            */
            measureSpace: function () {
                var container = document.createElement('div'),
				span,
				result = 0,
				body = document.body,
				id = sh.utils.guid('measureSpace'),

                // variable names will be compressed, so it's better than a plain string
				divOpen = '<div class="',
				closeDiv = '</div>',
				closeSpan = '</span>'
				;

                // we have to duplicate highlighter nested structure in order to get an acurate space measurment
                container.innerHTML =
				divOpen + 'syntaxhighlighter">'
					+ divOpen + 'lines">'
						+ divOpen + 'line">'
							+ divOpen + 'content'
								+ '"><span class="block"><span id="' + id + '">&nbsp;' + closeSpan + closeSpan
							+ closeDiv
						+ closeDiv
					+ closeDiv
				+ closeDiv
				;

                body.appendChild(container);
                span = document.getElementById(id);

                if (/opera/i.test(navigator.userAgent)) {
                    var style = window.getComputedStyle(span, null);
                    result = parseInt(style.getPropertyValue("width"));
                }
                else {
                    result = span.offsetWidth;
                }

                body.removeChild(container);

                return result;
            },

            /**
            * Replaces tabs with spaces.
            * 
            * @param {String} code		Source code.
            * @param {Number} tabSize	Size of the tab.
            * @return {String}			Returns code with all tabs replaces by spaces.
            */
            processTabs: function (code, tabSize) {
                var tab = '';

                for (var i = 0; i < tabSize; i++)
                    tab += ' ';

                return code.replace(/\t/g, tab);
            },

            /**
            * Replaces tabs with smart spaces.
            * 
            * @param {String} code    Code to fix the tabs in.
            * @param {Number} tabSize Number of spaces in a column.
            * @return {String}        Returns code with all tabs replaces with roper amount of spaces.
            */
            processSmartTabs: function (code, tabSize) {
                var lines = code.split('\n'),
				tab = '\t',
				spaces = ''
				;

                // Create a string with 1000 spaces to copy spaces from... 
                // It's assumed that there would be no indentation longer than that.
                for (var i = 0; i < 50; i++)
                    spaces += '                    '; // 20 spaces * 50

                // This function inserts specified amount of spaces in the string
                // where a tab is while removing that given tab.
                function insertSpaces(line, pos, count) {
                    return line.substr(0, pos)
					+ spaces.substr(0, count)
					+ line.substr(pos + 1, line.length) // pos + 1 will get rid of the tab
					;
                };

                // Go through all the lines and do the 'smart tabs' magic.
                code = sh.utils.eachLine(code, function (line) {
                    if (line.indexOf(tab) == -1)
                        return line;

                    var pos = 0;

                    while ((pos = line.indexOf(tab)) != -1) {
                        // This is pretty much all there is to the 'smart tabs' logic.
                        // Based on the position within the line and size of a tab,
                        // calculate the amount of spaces we need to insert.
                        var spaces = tabSize - pos % tabSize;
                        line = insertSpaces(line, pos, spaces);
                    }

                    return line;
                });

                return code;
            },

            /**
            * Performs various string fixes based on configuration.
            */
            fixInputString: function (str) {
                var br = /<br\s*\/?>|&lt;br\s*\/?&gt;/gi;

                if (sh.config.bloggerMode == true)
                    str = str.replace(br, '\n');

                if (sh.config.stripBrs == true)
                    str = str.replace(br, '');

                return str;
            },

            /**
            * Removes all white space at the begining and end of a string.
            * 
            * @param {String} str   String to trim.
            * @return {String}      Returns string without leading and following white space characters.
            */
            trim: function (str) {
                return str.replace(/^\s+|\s+$/g, '');
            },

            /**
            * Unindents a block of text by the lowest common indent amount.
            * @param {String} str   Text to unindent.
            * @return {String}      Returns unindented text block.
            */
            unindent: function (str) {
                var lines = sh.utils.fixInputString(str).split('\n'),
				indents = new Array(),
				regex = /^\s*/,
				min = 1000
				;

                // go through every line and check for common number of indents
                for (var i = 0; i < lines.length && min > 0; i++) {
                    var line = lines[i];

                    if (sh.utils.trim(line).length == 0)
                        continue;

                    var matches = regex.exec(line);

                    // In the event that just one line doesn't have leading white space
                    // we can't unindent anything, so bail completely.
                    if (matches == null)
                        return str;

                    min = Math.min(matches[0].length, min);
                }

                // trim minimum common number of white space from the begining of every line
                if (min > 0)
                    for (var i = 0; i < lines.length; i++)
                        lines[i] = lines[i].substr(min);

                return lines.join('\n');
            },

            /**
            * Callback method for Array.sort() which sorts matches by
            * index position and then by length.
            * 
            * @param {Match} m1	Left object.
            * @param {Match} m2    Right object.
            * @return {Number}     Returns -1, 0 or -1 as a comparison result.
            */
            matchesSortCallback: function (m1, m2) {
                // sort matches by index first
                if (m1.index < m2.index)
                    return -1;
                else if (m1.index > m2.index)
                    return 1;
                else {
                    // if index is the same, sort by length
                    if (m1.length < m2.length)
                        return -1;
                    else if (m1.length > m2.length)
                        return 1;
                }

                return 0;
            },

            /**
            * Executes given regular expression on provided code and returns all
            * matches that are found.
            * 
            * @param {String} code    Code to execute regular expression on.
            * @param {Object} regex   Regular expression item info from <code>regexList</code> collection.
            * @return {Array}         Returns a list of Match objects.
            */
            getMatches: function (code, regexInfo) {
                function defaultAdd(match, regexInfo) {
                    return [new sh.Match(match[0], match.index, regexInfo.css)];
                };

                var index = 0,
				match = null,
				result = [],
				func = regexInfo.func ? regexInfo.func : defaultAdd
				;

                while ((match = regexInfo.regex.exec(code)) != null)
                    result = result.concat(func(match, regexInfo));

                return result;
            },

            processUrls: function (code) {
                var lt = '&lt;',
				gt = '&gt;'
				;

                return code.replace(sh.regexLib.url, function (m) {
                    var suffix = '', prefix = '';

                    // We include &lt; and &gt; in the URL for the common cases like <http://google.com>
                    // The problem is that they get transformed into &lt;http://google.com&gt;
                    // Where as &gt; easily looks like part of the URL string.

                    if (m.indexOf(lt) == 0) {
                        prefix = lt;
                        m = m.substring(lt.length);
                    }

                    if (m.indexOf(gt) == m.length - gt.length) {
                        m = m.substring(0, m.length - gt.length);
                        suffix = gt;
                    }

                    return prefix + '<a href="' + m + '">' + m + '</a>' + suffix;
                });
            },

            /**
            * Finds all <SCRIPT TYPE="syntaxhighlighter" /> elements.
            * @return {Array} Returns array of all found SyntaxHighlighter tags.
            */
            getSyntaxHighlighterScriptTags: function () {
                var tags = document.getElementsByTagName('script'),
				result = []
				;

                for (var i = 0; i < tags.length; i++)
                    if (tags[i].type == 'syntaxhighlighter')
                        result.push(tags[i]);

                return result;
            },

            /**
            * Strips <![CDATA[]]> from <SCRIPT /> content because it should be used
            * there in most cases for XHTML compliance.
            * @param {String} original	Input code.
            * @return {String} Returns code without leading <![CDATA[]]> tags.
            */
            stripCData: function (original) {
                var left = '<![CDATA[',
				right = ']]>',
                // for some reason IE inserts some leading blanks here
				copy = sh.utils.trim(original),
				changed = false
				;

                if (copy.indexOf(left) == 0) {
                    copy = copy.substring(left.length);
                    changed = true;
                }

                if (copy.indexOf(right) == copy.length - right.length) {
                    copy = copy.substring(0, copy.length - right.length);
                    changed = true;
                }

                return changed ? copy : original;
            }
        }, // end of utils

        /**
        * Shorthand to highlight all elements on the page that are marked as 
        * SyntaxHighlighter source code.
        * 
        * @param {Object} globalParams		Optional parameters which override element's 
        * 									parameters. Only used if element is specified.
        * 
        * @param {Object} element	Optional element to highlight. If none is
        * 							provided, all elements in the current document 
        * 							are highlighted.
        */
        highlight: function (globalParams, element) {
            function toArray(source) {
                var result = [];

                for (var i = 0; i < source.length; i++)
                    result.push(source[i]);

                return result;
            };

            var elements = element ? [element] : toArray(document.getElementsByTagName(sh.config.tagName)),
			propertyName = 'innerHTML',
			highlighter = null,
			conf = sh.config
			;

            // support for <SCRIPT TYPE="syntaxhighlighter" /> feature
            if (conf.useScriptTags)
                elements = elements.concat(sh.utils.getSyntaxHighlighterScriptTags());

            if (elements.length === 0)
                return;

            for (var i = 0; i < elements.length; i++) {
                var target = elements[i],
				params = sh.utils.parseParams(target.className),
				brushName,
				code,
				result
				;

                // local params take precedence over globals
                params = sh.utils.merge(globalParams, params);
                brushName = params['brush'];

                if (brushName == null)
                    continue;

                // Instantiate a brush
                if (params['html-script'] == 'true' || sh.defaults['html-script'] == true) {
                    highlighter = new sh.HtmlScript(brushName);
                    brushName = 'htmlscript';
                }
                else {
                    var brush = sh.utils.findBrush(brushName);

                    if (brush) {
                        brushName = brush.name;
                        highlighter = new brush();
                    }
                    else {
                        continue;
                    }
                }

                code = target[propertyName];

                // remove CDATA from <SCRIPT/> tags if it's present
                if (conf.useScriptTags)
                    code = sh.utils.stripCData(code);

                params['brush-name'] = brushName;
                highlighter.highlight(code, params);

                result = highlighter.div;

                if (sh.config.debug) {
                    result = document.createElement('textarea');
                    result.value = highlighter.div.innerHTML;
                    result.style.width = '70em';
                    result.style.height = '30em';
                }

                target.parentNode.replaceChild(result, target);
            }
        },

        /**
        * Main entry point for the SyntaxHighlighter.
        * @param {Object} params Optional params to apply to all highlighted elements.
        */
        all: function (params) {
            sh.utils.addEvent(
			window,
			'load',
			function () { sh.highlight(params); }
		);
        }
    }; // end of sh

    /**
    * Match object.
    */
    sh.Match = function (value, index, css) {
        this.value = value;
        this.index = index;
        this.length = value.length;
        this.css = css;
        this.brushName = null;
    };

    sh.Match.prototype.toString = function () {
        return this.value;
    };

    /**
    * Simulates HTML code with a scripting language embedded.
    * 
    * @param {String} scriptBrushName Brush name of the scripting language.
    */
    sh.HtmlScript = function (scriptBrushName) {
        var brushClass = sh.utils.findBrush(scriptBrushName),
		scriptBrush,
		xmlBrush = new sh.brushes.Xml(),
		bracketsRegex = null
		;

        if (brushClass == null)
            return;

        scriptBrush = new brushClass();
        this.xmlBrush = xmlBrush;

        if (scriptBrush.htmlScript == null) {
            sh.utils.alert(sh.config.strings.brushNotHtmlScript + scriptBrushName);
            return;
        }

        xmlBrush.regexList.push(
		{ regex: scriptBrush.htmlScript.code, func: process }
	);

        function offsetMatches(matches, offset) {
            for (var j = 0; j < matches.length; j++)
                matches[j].index += offset;
        }

        function process(match, info) {
            var code = match.code,
			matches = [],
			regexList = scriptBrush.regexList,
			offset = match.index + match.left.length,
			htmlScript = scriptBrush.htmlScript,
			result
			;

            // add all matches from the code
            for (var i = 0; i < regexList.length; i++) {
                result = sh.utils.getMatches(code, regexList[i]);
                offsetMatches(result, offset);
                matches = matches.concat(result);
            }

            // add left script bracket
            if (htmlScript.left != null && match.left != null) {
                result = sh.utils.getMatches(match.left, htmlScript.left);
                offsetMatches(result, match.index);
                matches = matches.concat(result);
            }

            // add right script bracket
            if (htmlScript.right != null && match.right != null) {
                result = sh.utils.getMatches(match.right, htmlScript.right);
                offsetMatches(result, match.index + match[0].lastIndexOf(match.right));
                matches = matches.concat(result);
            }

            for (var j = 0; j < matches.length; j++)
                matches[j].brushName = brushClass.name;

            return matches;
        }
    };

    sh.HtmlScript.prototype.highlight = function (code, params) {
        this.xmlBrush.highlight(code, params);
        this.div = this.xmlBrush.div;
    }

    /**
    * Main Highlither class.
    * @constructor
    */
    sh.Highlighter = function () {
    };

    sh.Highlighter.prototype = {
        /**
        * Returns value of the parameter passed to the highlighter.
        * @param {String} name				Name of the parameter.
        * @param {Object} defaultValue		Default value.
        * @return {Object}					Returns found value or default value otherwise.
        */
        getParam: function (name, defaultValue) {
            var result = this.params[name];
            return sh.utils.toBoolean(result == null ? defaultValue : result);
        },

        /**
        * Shortcut to document.createElement().
        * @param {String} name		Name of the element to create (DIV, A, etc).
        * @return {HTMLElement}	Returns new HTML element.
        */
        create: function (name) {
            return document.createElement(name);
        },

        /**
        * Applies all regular expression to the code and stores all found
        * matches in the `this.matches` array.
        * @param {Array} regexList		List of regular expressions.
        * @param {String} code			Source code.
        * @return {Array}				Returns list of matches.
        */
        findMatches: function (regexList, code) {
            var result = [];

            if (regexList != null)
                for (var i = 0; i < regexList.length; i++)
                // BUG: length returns len+1 for array if methods added to prototype chain (oising@gmail.com)
                    if (typeof (regexList[i]) == "object")
                        result = result.concat(sh.utils.getMatches(code, regexList[i]));

            // sort the matches
            return result.sort(sh.utils.matchesSortCallback);
        },

        /**
        * Checks to see if any of the matches are inside of other matches. 
        * This process would get rid of highligted strings inside comments, 
        * keywords inside strings and so on.
        */
        removeNestedMatches: function () {
            var matches = this.matches;

            // Optimized by Jose Prado (http://joseprado.com)
            for (var i = 0; i < matches.length; i++) {
                if (matches[i] === null)
                    continue;

                var itemI = matches[i],
				itemIEndPos = itemI.index + itemI.length
				;

                for (var j = i + 1; j < matches.length && matches[i] !== null; j++) {
                    var itemJ = matches[j];

                    if (itemJ === null)
                        continue;
                    else if (itemJ.index > itemIEndPos)
                        break;
                    else if (itemJ.index == itemI.index && itemJ.length > itemI.length)
                        this.matches[i] = null;
                    else if (itemJ.index >= itemI.index && itemJ.index < itemIEndPos)
                        this.matches[j] = null;
                }
            }
        },

        /**
        * Splits block of text into individual DIV lines.
        * @param {String} code     Code to highlight.
        * @return {String}         Returns highlighted code in HTML form.
        */
        createDisplayLines: function (code) {
            var lines = code.split(/\n/g),
			firstLine = parseInt(this.getParam('first-line')),
			padLength = this.getParam('pad-line-numbers'),
			highlightedLines = this.getParam('highlight', []),
			hasGutter = this.getParam('gutter')
			;

            code = '';

            if (padLength == true)
                padLength = (firstLine + lines.length - 1).toString().length;
            else if (isNaN(padLength) == true)
                padLength = 0;

            for (var i = 0; i < lines.length; i++) {
                var line = lines[i],
				indent = /^(&nbsp;|\s)+/.exec(line),
				lineClass = 'alt' + (i % 2 == 0 ? 1 : 2),
				lineNumber = sh.utils.padNumber(firstLine + i, padLength),
				highlighted = sh.utils.indexOf(highlightedLines, (firstLine + i).toString()) != -1,
				spaces = null
				;

                if (indent != null) {
                    spaces = indent[0].toString();
                    line = line.substr(spaces.length);
                }

                line = sh.utils.trim(line);

                if (line.length == 0)
                    line = '&nbsp;';

                if (highlighted)
                    lineClass += ' highlighted';

                code +=
				'<div class="line ' + lineClass + '">'
					+ '<table>'
						+ '<tr>'
							+ (hasGutter ? '<td class="number"><code>' + lineNumber + '</code></td>' : '')
							+ '<td class="content">'
								+ (spaces != null ? '<code class="spaces">' + spaces.replace(' ', '&nbsp;') + '</code>' : '')
								+ line
							+ '</td>'
						+ '</tr>'
					+ '</table>'
				+ '</div>'
				;
            }

            return code;
        },

        /**
        * Finds all matches in the source code.
        * @param {String} code		Source code to process matches in.
        * @param {Array} matches	Discovered regex matches.
        * @return {String} Returns formatted HTML with processed mathes.
        */
        processMatches: function (code, matches) {
            var pos = 0,
			result = '',
			decorate = sh.utils.decorate, // make an alias to save some bytes
			brushName = this.getParam('brush-name', '')
			;

            function getBrushNameCss(match) {
                var result = match ? (match.brushName || brushName) : brushName;
                return result ? result + ' ' : '';
            };

            // Finally, go through the final list of matches and pull the all
            // together adding everything in between that isn't a match.
            for (var i = 0; i < matches.length; i++) {
                var match = matches[i],
				matchBrushName
				;

                if (match === null || match.length === 0)
                    continue;

                matchBrushName = getBrushNameCss(match);

                result += decorate(code.substr(pos, match.index - pos), matchBrushName + 'plain')
					+ decorate(match.value, matchBrushName + match.css)
					;

                pos = match.index + match.length;
            }

            // don't forget to add whatever's remaining in the string
            result += decorate(code.substr(pos), getBrushNameCss() + 'plain');

            return result;
        },

        /**
        * Highlights the code and returns complete HTML.
        * @param {String} code     Code to highlight.
        * @param {Object} params   Parameters object.
        */
        highlight: function (code, params) {
            // using variables for shortcuts because JS compressor will shorten local variable names
            var conf = sh.config,
			vars = sh.vars,
			div,
			divClassName,
			tabSize,
			important = 'important'
			;

            this.params = {};
            this.div = null;
            this.lines = null;
            this.code = null;
            this.bar = null;
            this.toolbarCommands = {};
            this.id = sh.utils.guid('highlighter_');

            // register this instance in the highlighters list
            vars.highlighters[this.id] = this;

            if (code === null)
                code = '';

            // local params take precedence over defaults
            this.params = sh.utils.merge(sh.defaults, params || {});

            // process light mode
            if (this.getParam('light') == true)
                this.params.toolbar = this.params.gutter = false;

            this.div = div = this.create('DIV');
            this.lines = this.create('DIV');
            this.lines.className = 'lines';

            className = 'syntaxhighlighter';
            div.id = this.id;

            // make collapsed
            if (this.getParam('collapse'))
                className += ' collapsed';

            // disable gutter
            if (this.getParam('gutter') == false)
                className += ' nogutter';

            // disable line wrapping
            if (this.getParam('wrap-lines') == false)
                this.lines.className += ' no-wrap';

            // add custom user style name
            className += ' ' + this.getParam('class-name');

            // add brush alias to the class name for custom CSS
            className += ' ' + this.getParam('brush-name');

            div.className = className;

            this.originalCode = code;
            this.code = sh.utils.trimFirstAndLastLines(code)
			.replace(/\r/g, ' ') // IE lets these buggers through
			;

            tabSize = this.getParam('tab-size');

            // replace tabs with spaces
            this.code = this.getParam('smart-tabs') == true
			? sh.utils.processSmartTabs(this.code, tabSize)
			: sh.utils.processTabs(this.code, tabSize)
			;

            this.code = sh.utils.unindent(this.code);

            // add controls toolbar
            if (this.getParam('toolbar')) {
                this.bar = this.create('DIV');
                this.bar.className = 'bar';
                this.bar.appendChild(sh.toolbar.create(this));
                div.appendChild(this.bar);

                // set up toolbar rollover
                var bar = this.bar;
                function hide() { bar.className = bar.className.replace('show', ''); }
                div.onmouseover = function () { hide(); bar.className += ' show'; };
                div.onmouseout = function () { hide(); }
            }

            div.appendChild(this.lines);

            this.matches = this.findMatches(this.regexList, this.code);
            this.removeNestedMatches();

            code = this.processMatches(this.code, this.matches);

            // finally, split all lines so that they wrap well
            code = this.createDisplayLines(sh.utils.trim(code));

            // finally, process the links
            if (this.getParam('auto-links'))
                code = sh.utils.processUrls(code);

            this.lines.innerHTML = code;
        },

        /**
        * Converts space separated list of keywords into a regular expression string.
        * @param {String} str    Space separated keywords.
        * @return {String}       Returns regular expression string.
        */
        getKeywords: function (str) {
            str = str
			.replace(/^\s+|\s+$/g, '')
			.replace(/\s+/g, '|')
			;

            return '\\b(?:' + str + ')\\b';
        },

        /**
        * Makes a brush compatible with the `html-script` functionality.
        * @param {Object} regexGroup Object containing `left` and `right` regular expressions.
        */
        forHtmlScript: function (regexGroup) {
            this.htmlScript = {
                left: { regex: regexGroup.left, css: 'script' },
                right: { regex: regexGroup.right, css: 'script' },
                code: new XRegExp(
				"(?<left>" + regexGroup.left.source + ")" +
				"(?<code>.*?)" +
				"(?<right>" + regexGroup.right.source + ")",
				"sgi"
				)
            };
        }
    }; // end of Highlighter

    return sh;
} (); // end of anonymous function


/**
* XRegExp 0.6.1
* (c) 2007-2008 Steven Levithan
* <http://stevenlevithan.com/regex/xregexp/>
* MIT License
* 
* provides an augmented, cross-browser implementation of regular expressions
* including support for additional modifiers and syntax. several convenience
* methods and a recursive-construct parser are also included.
*/

// prevent running twice, which would break references to native globals
if (!window.XRegExp) {
    // anonymous function to avoid global variables
    (function () {
        // copy various native globals for reference. can't use the name ``native``
        // because it's a reserved JavaScript keyword.
        var real = {
            exec: RegExp.prototype.exec,
            match: String.prototype.match,
            replace: String.prototype.replace,
            split: String.prototype.split
        },
        /* regex syntax parsing with support for all the necessary cross-
        browser and context issues (escapings, character classes, etc.) */
    lib = {
        part: /(?:[^\\([#\s.]+|\\(?!k<[\w$]+>|[pP]{[^}]+})[\S\s]?|\((?=\?(?!#|<[\w$]+>)))+|(\()(?:\?(?:(#)[^)]*\)|<([$\w]+)>))?|\\(?:k<([\w$]+)>|[pP]{([^}]+)})|(\[\^?)|([\S\s])/g,
        replaceVar: /(?:[^$]+|\$(?![1-9$&`']|{[$\w]+}))+|\$(?:([1-9]\d*|[$&`'])|{([$\w]+)})/g,
        extended: /^(?:\s+|#.*)+/,
        quantifier: /^(?:[?*+]|{\d+(?:,\d*)?})/,
        classLeft: /&&\[\^?/g,
        classRight: /]/g
    },
    indexOf = function (array, item, from) {
        for (var i = from || 0; i < array.length; i++)
            if (array[i] === item) return i;
        return -1;
    },
    brokenExecUndef = /()??/.exec("")[1] !== undefined,
    plugins = {};

        /**
        * Accepts a pattern and flags, returns a new, extended RegExp object.
        * differs from a native regex in that additional flags and syntax are
        * supported and browser inconsistencies are ameliorated.
        * @ignore
        */
        XRegExp = function (pattern, flags) {
            if (pattern instanceof RegExp) {
                if (flags !== undefined)
                    throw TypeError("can't supply flags when constructing one RegExp from another");
                return pattern.addFlags(); // new copy
            }

            var flags = flags || "",
        singleline = flags.indexOf("s") > -1,
        extended = flags.indexOf("x") > -1,
        hasNamedCapture = false,
        captureNames = [],
        output = [],
        part = lib.part,
        match, cc, len, index, regex;

            part.lastIndex = 0; // in case the last XRegExp compilation threw an error (unbalanced character class)

            while (match = real.exec.call(part, pattern)) {
                // comment pattern. this check must come before the capturing group check,
                // because both match[1] and match[2] will be non-empty.
                if (match[2]) {
                    // keep tokens separated unless the following token is a quantifier
                    if (!lib.quantifier.test(pattern.slice(part.lastIndex)))
                        output.push("(?:)");
                    // capturing group
                } else if (match[1]) {
                    captureNames.push(match[3] || null);
                    if (match[3])
                        hasNamedCapture = true;
                    output.push("(");
                    // named backreference
                } else if (match[4]) {
                    index = indexOf(captureNames, match[4]);
                    // keep backreferences separate from subsequent literal numbers
                    // preserve backreferences to named groups that are undefined at this point as literal strings
                    output.push(index > -1 ?
                "\\" + (index + 1) + (isNaN(pattern.charAt(part.lastIndex)) ? "" : "(?:)") :
                match[0]
            );
                    // unicode element (requires plugin)
                } else if (match[5]) {
                    output.push(plugins.unicode ?
                plugins.unicode.get(match[5], match[0].charAt(1) === "P") :
                match[0]
            );
                    // character class opening delimiter ("[" or "[^")
                    // (non-native unicode elements are not supported within character classes)
                } else if (match[6]) {
                    if (pattern.charAt(part.lastIndex) === "]") {
                        // for cross-browser compatibility with ECMA-262 v3 behavior,
                        // convert [] to (?!) and [^] to [\S\s].
                        output.push(match[6] === "[" ? "(?!)" : "[\\S\\s]");
                        part.lastIndex++;
                    } else {
                        // parse the character class with support for inner escapes and
                        // ES4's infinitely nesting intersection syntax ([&&[^&&[]]]).
                        cc = XRegExp.matchRecursive("&&" + pattern.slice(match.index), lib.classLeft, lib.classRight, "", { escapeChar: "\\" })[0];
                        output.push(match[6] + cc + "]");
                        part.lastIndex += cc.length + 1;
                    }
                    // dot ("."), pound sign ("#"), or whitespace character
                } else if (match[7]) {
                    if (singleline && match[7] === ".") {
                        output.push("[\\S\\s]");
                    } else if (extended && lib.extended.test(match[7])) {
                        len = real.exec.call(lib.extended, pattern.slice(part.lastIndex - 1))[0].length;
                        // keep tokens separated unless the following token is a quantifier
                        if (!lib.quantifier.test(pattern.slice(part.lastIndex - 1 + len)))
                            output.push("(?:)");
                        part.lastIndex += len - 1;
                    } else {
                        output.push(match[7]);
                    }
                } else {
                    output.push(match[0]);
                }
            }

            regex = RegExp(output.join(""), real.replace.call(flags, /[sx]+/g, ""));
            regex._x = {
                source: pattern,
                captureNames: hasNamedCapture ? captureNames : null
            };
            return regex;
        };

        /**
        * Barebones plugin support for now (intentionally undocumented)
        * @ignore
        * @param {Object} name
        * @param {Object} o
        */
        XRegExp.addPlugin = function (name, o) {
            plugins[name] = o;
        };

        /**
        * Adds named capture support, with values returned as ``result.name``.
        * 
        * Also fixes two cross-browser issues, following the ECMA-262 v3 spec:
        *  - captured values for non-participating capturing groups should be returned
        *    as ``undefined``, rather than the empty string.
        *  - the regex's ``lastIndex`` should not be incremented after zero-length
        *    matches.
        * @ignore
        */
        RegExp.prototype.exec = function (str) {
            var match = real.exec.call(this, str),
        name, i, r2;
            if (match) {
                // fix browsers whose exec methods don't consistently return
                // undefined for non-participating capturing groups
                if (brokenExecUndef && match.length > 1) {
                    // r2 doesn't need /g or /y, but they shouldn't hurt
                    r2 = new RegExp("^" + this.source + "$(?!\\s)", this.getNativeFlags());
                    real.replace.call(match[0], r2, function () {
                        for (i = 1; i < arguments.length - 2; i++) {
                            if (arguments[i] === undefined) match[i] = undefined;
                        }
                    });
                }
                // attach named capture properties
                if (this._x && this._x.captureNames) {
                    for (i = 1; i < match.length; i++) {
                        name = this._x.captureNames[i - 1];
                        if (name) match[name] = match[i];
                    }
                }
                // fix browsers that increment lastIndex after zero-length matches
                if (this.global && this.lastIndex > (match.index + match[0].length))
                    this.lastIndex--;
            }
            return match;
        };
    })(); // end anonymous function
} // end if(!window.XRegExp)

/**
* intentionally undocumented
* @ignore
*/
RegExp.prototype.getNativeFlags = function () {
    return (this.global ? "g" : "") +
           (this.ignoreCase ? "i" : "") +
           (this.multiline ? "m" : "") +
           (this.extended ? "x" : "") +
           (this.sticky ? "y" : "");
};

/**
* Accepts flags; returns a new XRegExp object generated by recompiling
* the regex with the additional flags (may include non-native flags).
* The original regex object is not altered.
* @ignore
*/
RegExp.prototype.addFlags = function (flags) {
    var regex = new XRegExp(this.source, (flags || "") + this.getNativeFlags());
    if (this._x) {
        regex._x = {
            source: this._x.source,
            captureNames: this._x.captureNames ? this._x.captureNames.slice(0) : null
        };
    }
    return regex;
};

/**
* Accepts a context object and string; returns the result of calling
* ``exec`` with the provided string. the context is ignored but is
* accepted for congruity with ``Function.prototype.call``.
* @ignore
*/
RegExp.prototype.call = function (context, str) {
    return this.exec(str);
};

/**
* Accepts a context object and arguments array; returns the result of
* calling ``exec`` with the first value in the arguments array. the context
* is ignored but is accepted for congruity with ``Function.prototype.apply``.
* @ignore
*/
RegExp.prototype.apply = function (context, args) {
    return this.exec(args[0]);
};

/**
* Accepts a pattern and flags; returns an XRegExp object. if the pattern
* and flag combination has previously been cached, the cached copy is
* returned, otherwise the new object is cached.
* @ignore
*/
XRegExp.cache = function (pattern, flags) {
    var key = "/" + pattern + "/" + (flags || "");
    return XRegExp.cache[key] || (XRegExp.cache[key] = new XRegExp(pattern, flags));
};

/**
* Accepts a string; returns the string with regex metacharacters escaped.
* the returned string can safely be used within a regex to match a literal
* string. escaped characters are [, ], {, }, (, ), -, *, +, ?, ., \, ^, $,
* |, #, [comma], and whitespace.
* @ignore
*/
XRegExp.escape = function (str) {
    return str.replace(/[-[\]{}()*+?.\\^$|,#\s]/g, "\\$&");
};

/**
* Accepts a string to search, left and right delimiters as regex pattern
* strings, optional regex flags (may include non-native s, x, and y flags),
* and an options object which allows setting an escape character and changing
* the return format from an array of matches to a two-dimensional array of
* string parts with extended position data. returns an array of matches
* (optionally with extended data), allowing nested instances of left and right
* delimiters. use the g flag to return all matches, otherwise only the first
* is returned. if delimiters are unbalanced within the subject data, an error
* is thrown.
* 
* This function admittedly pushes the boundaries of what can be accomplished
* sensibly without a "real" parser. however, by doing so it provides flexible
* and powerful recursive parsing capabilities with minimal code weight.
* 
* Warning: the ``escapeChar`` option is considered experimental and might be
* changed or removed in future versions of XRegExp.
* 
* unsupported features:
*  - backreferences within delimiter patterns when using ``escapeChar``.
*  - although providing delimiters as regex objects adds the minor feature of
*    independent delimiter flags, it introduces other limitations and is only
*    intended to be done by the ``XRegExp`` constructor (which can't call
*    itself while building a regex).
* 
* @ignore
*/
XRegExp.matchRecursive = function (str, left, right, flags, options) {
    var options = options || {},
        escapeChar = options.escapeChar,
        vN = options.valueNames,
        flags = flags || "",
        global = flags.indexOf("g") > -1,
        ignoreCase = flags.indexOf("i") > -1,
        multiline = flags.indexOf("m") > -1,
        sticky = flags.indexOf("y") > -1,
    /* sticky mode has its own handling in this function, which means you
    can use flag "y" even in browsers which don't support it natively */
        flags = flags.replace(/y/g, ""),
        left = left instanceof RegExp ? (left.global ? left : left.addFlags("g")) : new XRegExp(left, "g" + flags),
        right = right instanceof RegExp ? (right.global ? right : right.addFlags("g")) : new XRegExp(right, "g" + flags),
        output = [],
        openTokens = 0,
        delimStart = 0,
        delimEnd = 0,
        lastOuterEnd = 0,
        outerStart, innerStart, leftMatch, rightMatch, escaped, esc;

    if (escapeChar) {
        if (escapeChar.length > 1) throw SyntaxError("can't supply more than one escape character");
        if (multiline) throw TypeError("can't supply escape character when using the multiline flag");
        escaped = XRegExp.escape(escapeChar);
        /* Escape pattern modifiers:
        /g - not needed here
        /i - included
        /m - **unsupported**, throws error
        /s - handled by XRegExp when delimiters are provided as strings
        /x - handled by XRegExp when delimiters are provided as strings
        /y - not needed here; supported by other handling in this function
        */
        esc = new RegExp(
            "^(?:" + escaped + "[\\S\\s]|(?:(?!" + left.source + "|" + right.source + ")[^" + escaped + "])+)+",
            ignoreCase ? "i" : ""
        );
    }

    while (true) {
        /* advance the starting search position to the end of the last delimiter match.
        a couple special cases are also covered:
        - if using an escape character, advance to the next delimiter's starting position,
        skipping any escaped characters
        - first time through, reset lastIndex in case delimiters were provided as regexes
        */
        left.lastIndex = right.lastIndex = delimEnd +
            (escapeChar ? (esc.exec(str.slice(delimEnd)) || [""])[0].length : 0);

        leftMatch = left.exec(str);
        rightMatch = right.exec(str);

        // only keep the result which matched earlier in the string
        if (leftMatch && rightMatch) {
            if (leftMatch.index <= rightMatch.index)
                rightMatch = null;
            else leftMatch = null;
        }

        /* paths*:
        leftMatch | rightMatch | openTokens | result
        1         | 0          | 1          | ...
        1         | 0          | 0          | ...
        0         | 1          | 1          | ...
        0         | 1          | 0          | throw
        0         | 0          | 1          | throw
        0         | 0          | 0          | break
        * - does not include the sticky mode special case
        - the loop ends after the first completed match if not in global mode
        */

        if (leftMatch || rightMatch) {
            delimStart = (leftMatch || rightMatch).index;
            delimEnd = (leftMatch ? left : right).lastIndex;
        } else if (!openTokens) {
            break;
        }

        if (sticky && !openTokens && delimStart > lastOuterEnd)
            break;

        if (leftMatch) {
            if (!openTokens++) {
                outerStart = delimStart;
                innerStart = delimEnd;
            }
        } else if (rightMatch && openTokens) {
            if (! --openTokens) {
                if (vN) {
                    if (vN[0] && outerStart > lastOuterEnd)
                        output.push([vN[0], str.slice(lastOuterEnd, outerStart), lastOuterEnd, outerStart]);
                    if (vN[1]) output.push([vN[1], str.slice(outerStart, innerStart), outerStart, innerStart]);
                    if (vN[2]) output.push([vN[2], str.slice(innerStart, delimStart), innerStart, delimStart]);
                    if (vN[3]) output.push([vN[3], str.slice(delimStart, delimEnd), delimStart, delimEnd]);
                } else {
                    output.push(str.slice(innerStart, delimStart));
                }
                lastOuterEnd = delimEnd;
                if (!global)
                    break;
            }
        } else {
            // reset lastIndex in case delimiters were provided as regexes
            left.lastIndex = right.lastIndex = 0;
            throw Error("subject data contains unbalanced delimiters");
        }

        // if the delimiter matched an empty string, advance delimEnd to avoid an infinite loop
        if (delimStart === delimEnd)
            delimEnd++;
    }

    if (global && !sticky && vN && vN[0] && str.length > lastOuterEnd)
        output.push([vN[0], str.slice(lastOuterEnd), lastOuterEnd, str.length]);

    // reset lastIndex in case delimiters were provided as regexes
    left.lastIndex = right.lastIndex = 0;

    return output;
};
//--shBrushJScript.js
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*
* @version
* 2.1.364 (October 15 2009)
* 
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* @license
* This file is part of SyntaxHighlighter.
* 
* SyntaxHighlighter is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* 
* SyntaxHighlighter is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License
* along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
*/
SyntaxHighlighter.brushes.JScript = function () {
    var keywords = 'break case catch continue ' +
					'default delete do else false  ' +
					'for function if in instanceof ' +
					'new null return super switch ' +
					'this throw true try typeof var while with'
					;

    this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, 		// one line comments
		{regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, 		// multiline comments
		{regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, 		// double quoted strings
		{regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, 		// single quoted strings
		{regex: /\s*#.*/gm, css: 'preprocessor' }, 	// preprocessor tags like #region and #endregion
		{regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword'}			// keywords
		];

    this.forHtmlScript(SyntaxHighlighter.regexLib.scriptScriptTags);
};

SyntaxHighlighter.brushes.JScript.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.JScript.aliases = ['js', 'jscript', 'javascript'];
//--shBrushCSharp.js
/**
* SyntaxHighlighter
* http://alexgorbatchev.com/
*
* SyntaxHighlighter is donationware. If you are using it, please donate.
* http://alexgorbatchev.com/wiki/SyntaxHighlighter:Donate
*
* @version
* 2.1.364 (October 15 2009)
* 
* @copyright
* Copyright (C) 2004-2009 Alex Gorbatchev.
*
* @license
* This file is part of SyntaxHighlighter.
* 
* SyntaxHighlighter is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* 
* SyntaxHighlighter is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License
* along with SyntaxHighlighter.  If not, see <http://www.gnu.org/copyleft/lesser.html>.
*/
SyntaxHighlighter.brushes.CSharp = function () {
    var keywords = 'abstract as base bool break byte case catch char checked class const ' +
					'continue decimal default delegate do double else enum event explicit ' +
					'extern false finally fixed float for foreach get goto if implicit in int ' +
					'interface internal is lock long namespace new null object operator out ' +
					'override params private protected public readonly ref return sbyte sealed set ' +
					'short sizeof stackalloc static string struct switch this throw true try ' +
					'typeof uint ulong unchecked unsafe ushort using virtual void while';

    function fixComments(match, regexInfo) {
        var css = (match[0].indexOf("///") == 0)
			? 'color1'
			: 'comments'
			;

        return [new SyntaxHighlighter.Match(match[0], match.index, css)];
    }

    this.regexList = [
		{ regex: SyntaxHighlighter.regexLib.singleLineCComments, func: fixComments }, 	// one line comments
		{regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, 		// multiline comments
		{regex: /@"(?:[^"]|"")*"/g, css: 'string' }, 		// @-quoted strings
		{regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, 		// strings
		{regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, 		// strings
		{regex: /^\s*#.*/gm, css: 'preprocessor' }, 	// preprocessor tags like #region and #endregion
		{regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' }, 		// c# keyword
		{regex: /\bpartial(?=\s+(?:class|interface|struct)\b)/g, css: 'keyword' }, 		// contextual keyword: 'partial'
		{regex: /\byield(?=\s+(?:return|break)\b)/g, css: 'keyword'}			// contextual keyword: 'yield'
		];

    this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};

SyntaxHighlighter.brushes.CSharp.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.CSharp.aliases = ['c#', 'c-sharp', 'csharp'];

//--jquery
/*!
* jQuery JavaScript Library v1.4.2
* http://jquery.com/
*
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* Includes Sizzle.js
* http://sizzlejs.com/
* Copyright 2010, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date: Sat Feb 13 22:33:48 2010 -0500
*/
(function (A, w) {
    function ma() { if (!c.isReady) { try { s.documentElement.doScroll("left") } catch (a) { setTimeout(ma, 1); return } c.ready() } } function Qa(a, b) { b.src ? c.ajax({ url: b.src, async: false, dataType: "script" }) : c.globalEval(b.text || b.textContent || b.innerHTML || ""); b.parentNode && b.parentNode.removeChild(b) } function X(a, b, d, f, e, j) {
        var i = a.length; if (typeof b === "object") { for (var o in b) X(a, o, b[o], f, e, d); return a } if (d !== w) { f = !j && f && c.isFunction(d); for (o = 0; o < i; o++) e(a[o], b, f ? d.call(a[o], o, e(a[o], b)) : d, j); return a } return i ?
e(a[0], b) : w
    } function J() { return (new Date).getTime() } function Y() { return false } function Z() { return true } function na(a, b, d) { d[0].type = a; return c.event.handle.apply(b, d) } function oa(a) {
        var b, d = [], f = [], e = arguments, j, i, o, k, n, r; i = c.data(this, "events"); if (!(a.liveFired === this || !i || !i.live || a.button && a.type === "click")) {
            a.liveFired = this; var u = i.live.slice(0); for (k = 0; k < u.length; k++) { i = u[k]; i.origType.replace(O, "") === a.type ? f.push(i.selector) : u.splice(k--, 1) } j = c(a.target).closest(f, a.currentTarget); n = 0; for (r =
j.length; n < r; n++) for (k = 0; k < u.length; k++) { i = u[k]; if (j[n].selector === i.selector) { o = j[n].elem; f = null; if (i.preType === "mouseenter" || i.preType === "mouseleave") f = c(a.relatedTarget).closest(i.selector)[0]; if (!f || f !== o) d.push({ elem: o, handleObj: i }) } } n = 0; for (r = d.length; n < r; n++) { j = d[n]; a.currentTarget = j.elem; a.data = j.handleObj.data; a.handleObj = j.handleObj; if (j.handleObj.origHandler.apply(j.elem, e) === false) { b = false; break } } return b
        }
    } function pa(a, b) {
        return "live." + (a && a !== "*" ? a + "." : "") + b.replace(/\./g, "`").replace(/ /g,
"&")
    } function qa(a) { return !a || !a.parentNode || a.parentNode.nodeType === 11 } function ra(a, b) { var d = 0; b.each(function () { if (this.nodeName === (a[d] && a[d].nodeName)) { var f = c.data(a[d++]), e = c.data(this, f); if (f = f && f.events) { delete e.handle; e.events = {}; for (var j in f) for (var i in f[j]) c.event.add(this, j, f[j][i], f[j][i].data) } } }) } function sa(a, b, d) {
        var f, e, j; b = b && b[0] ? b[0].ownerDocument || b[0] : s; if (a.length === 1 && typeof a[0] === "string" && a[0].length < 512 && b === s && !ta.test(a[0]) && (c.support.checkClone || !ua.test(a[0]))) {
            e =
true; if (j = c.fragments[a[0]]) if (j !== 1) f = j
        } if (!f) { f = b.createDocumentFragment(); c.clean(a, b, f, d) } if (e) c.fragments[a[0]] = j ? f : 1; return { fragment: f, cacheable: e }
    } function K(a, b) { var d = {}; c.each(va.concat.apply([], va.slice(0, b)), function () { d[this] = a }); return d } function wa(a) { return "scrollTo" in a && a.document ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : false } var c = function (a, b) { return new c.fn.init(a, b) }, Ra = A.jQuery, Sa = A.$, s = A.document, T, Ta = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, Ua = /^.[^:#\[\.,]*$/, Va = /\S/,
Wa = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, Xa = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, P = navigator.userAgent, xa = false, Q = [], L, $ = Object.prototype.toString, aa = Object.prototype.hasOwnProperty, ba = Array.prototype.push, R = Array.prototype.slice, ya = Array.prototype.indexOf; c.fn = c.prototype = { init: function (a, b) {
    var d, f; if (!a) return this; if (a.nodeType) { this.context = this[0] = a; this.length = 1; return this } if (a === "body" && !b) { this.context = s; this[0] = s.body; this.selector = "body"; this.length = 1; return this } if (typeof a === "string") if ((d = Ta.exec(a)) &&
(d[1] || !b)) if (d[1]) { f = b ? b.ownerDocument || b : s; if (a = Xa.exec(a)) if (c.isPlainObject(b)) { a = [s.createElement(a[1])]; c.fn.attr.call(a, b, true) } else a = [f.createElement(a[1])]; else { a = sa([d[1]], [f]); a = (a.cacheable ? a.fragment.cloneNode(true) : a.fragment).childNodes } return c.merge(this, a) } else { if (b = s.getElementById(d[2])) { if (b.id !== d[2]) return T.find(a); this.length = 1; this[0] = b } this.context = s; this.selector = a; return this } else if (!b && /^\w+$/.test(a)) {
        this.selector = a; this.context = s; a = s.getElementsByTagName(a); return c.merge(this,
a)
    } else return !b || b.jquery ? (b || T).find(a) : c(b).find(a); else if (c.isFunction(a)) return T.ready(a); if (a.selector !== w) { this.selector = a.selector; this.context = a.context } return c.makeArray(a, this)
}, selector: "", jquery: "1.4.2", length: 0, size: function () { return this.length }, toArray: function () { return R.call(this, 0) }, get: function (a) { return a == null ? this.toArray() : a < 0 ? this.slice(a)[0] : this[a] }, pushStack: function (a, b, d) {
    var f = c(); c.isArray(a) ? ba.apply(f, a) : c.merge(f, a); f.prevObject = this; f.context = this.context; if (b ===
"find") f.selector = this.selector + (this.selector ? " " : "") + d; else if (b) f.selector = this.selector + "." + b + "(" + d + ")"; return f
}, each: function (a, b) { return c.each(this, a, b) }, ready: function (a) { c.bindReady(); if (c.isReady) a.call(s, c); else Q && Q.push(a); return this }, eq: function (a) { return a === -1 ? this.slice(a) : this.slice(a, +a + 1) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, slice: function () { return this.pushStack(R.apply(this, arguments), "slice", R.call(arguments).join(",")) }, map: function (a) {
    return this.pushStack(c.map(this,
function (b, d) { return a.call(b, d, b) }))
}, end: function () { return this.prevObject || c(null) }, push: ba, sort: [].sort, splice: [].splice
}; c.fn.init.prototype = c.fn; c.extend = c.fn.extend = function () {
    var a = arguments[0] || {}, b = 1, d = arguments.length, f = false, e, j, i, o; if (typeof a === "boolean") { f = a; a = arguments[1] || {}; b = 2 } if (typeof a !== "object" && !c.isFunction(a)) a = {}; if (d === b) { a = this; --b } for (; b < d; b++) if ((e = arguments[b]) != null) for (j in e) {
        i = a[j]; o = e[j]; if (a !== o) if (f && o && (c.isPlainObject(o) || c.isArray(o))) {
            i = i && (c.isPlainObject(i) ||
c.isArray(i)) ? i : c.isArray(o) ? [] : {}; a[j] = c.extend(f, i, o)
        } else if (o !== w) a[j] = o
    } return a
}; c.extend({ noConflict: function (a) { A.$ = Sa; if (a) A.jQuery = Ra; return c }, isReady: false, ready: function () { if (!c.isReady) { if (!s.body) return setTimeout(c.ready, 13); c.isReady = true; if (Q) { for (var a, b = 0; a = Q[b++]; ) a.call(s, c); Q = null } c.fn.triggerHandler && c(s).triggerHandler("ready") } }, bindReady: function () {
    if (!xa) {
        xa = true; if (s.readyState === "complete") return c.ready(); if (s.addEventListener) {
            s.addEventListener("DOMContentLoaded",
L, false); A.addEventListener("load", c.ready, false)
        } else if (s.attachEvent) { s.attachEvent("onreadystatechange", L); A.attachEvent("onload", c.ready); var a = false; try { a = A.frameElement == null } catch (b) { } s.documentElement.doScroll && a && ma() }
    }
}, isFunction: function (a) { return $.call(a) === "[object Function]" }, isArray: function (a) { return $.call(a) === "[object Array]" }, isPlainObject: function (a) {
    if (!a || $.call(a) !== "[object Object]" || a.nodeType || a.setInterval) return false; if (a.constructor && !aa.call(a, "constructor") && !aa.call(a.constructor.prototype,
"isPrototypeOf")) return false; var b; for (b in a); return b === w || aa.call(a, b)
}, isEmptyObject: function (a) { for (var b in a) return false; return true }, error: function (a) { throw a; }, parseJSON: function (a) {
    if (typeof a !== "string" || !a) return null; a = c.trim(a); if (/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return A.JSON && A.JSON.parse ? A.JSON.parse(a) : (new Function("return " +
a))(); else c.error("Invalid JSON: " + a)
}, noop: function () { }, globalEval: function (a) { if (a && Va.test(a)) { var b = s.getElementsByTagName("head")[0] || s.documentElement, d = s.createElement("script"); d.type = "text/javascript"; if (c.support.scriptEval) d.appendChild(s.createTextNode(a)); else d.text = a; b.insertBefore(d, b.firstChild); b.removeChild(d) } }, nodeName: function (a, b) { return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase() }, each: function (a, b, d) {
    var f, e = 0, j = a.length, i = j === w || c.isFunction(a); if (d) if (i) for (f in a) {
        if (b.apply(a[f],
d) === false) break
    } else for (; e < j; ) { if (b.apply(a[e++], d) === false) break } else if (i) for (f in a) { if (b.call(a[f], f, a[f]) === false) break } else for (d = a[0]; e < j && b.call(d, e, d) !== false; d = a[++e]); return a
}, trim: function (a) { return (a || "").replace(Wa, "") }, makeArray: function (a, b) { b = b || []; if (a != null) a.length == null || typeof a === "string" || c.isFunction(a) || typeof a !== "function" && a.setInterval ? ba.call(b, a) : c.merge(b, a); return b }, inArray: function (a, b) {
    if (b.indexOf) return b.indexOf(a); for (var d = 0, f = b.length; d < f; d++) if (b[d] ===
a) return d; return -1
}, merge: function (a, b) { var d = a.length, f = 0; if (typeof b.length === "number") for (var e = b.length; f < e; f++) a[d++] = b[f]; else for (; b[f] !== w; ) a[d++] = b[f++]; a.length = d; return a }, grep: function (a, b, d) { for (var f = [], e = 0, j = a.length; e < j; e++) !d !== !b(a[e], e) && f.push(a[e]); return f }, map: function (a, b, d) { for (var f = [], e, j = 0, i = a.length; j < i; j++) { e = b(a[j], j, d); if (e != null) f[f.length] = e } return f.concat.apply([], f) }, guid: 1, proxy: function (a, b, d) {
    if (arguments.length === 2) if (typeof b === "string") { d = a; a = d[b]; b = w } else if (b &&
!c.isFunction(b)) { d = b; b = w } if (!b && a) b = function () { return a.apply(d || this, arguments) }; if (a) b.guid = a.guid = a.guid || b.guid || c.guid++; return b
}, uaMatch: function (a) { a = a.toLowerCase(); a = /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || !/compatible/.test(a) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec(a) || []; return { browser: a[1] || "", version: a[2] || "0"} }, browser: {}
}); P = c.uaMatch(P); if (P.browser) { c.browser[P.browser] = true; c.browser.version = P.version } if (c.browser.webkit) c.browser.safari =
true; if (ya) c.inArray = function (a, b) { return ya.call(b, a) }; T = c(s); if (s.addEventListener) L = function () { s.removeEventListener("DOMContentLoaded", L, false); c.ready() }; else if (s.attachEvent) L = function () { if (s.readyState === "complete") { s.detachEvent("onreadystatechange", L); c.ready() } }; (function () {
    c.support = {}; var a = s.documentElement, b = s.createElement("script"), d = s.createElement("div"), f = "script" + J(); d.style.display = "none"; d.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
    var e = d.getElementsByTagName("*"), j = d.getElementsByTagName("a")[0]; if (!(!e || !e.length || !j)) {
        c.support = { leadingWhitespace: d.firstChild.nodeType === 3, tbody: !d.getElementsByTagName("tbody").length, htmlSerialize: !!d.getElementsByTagName("link").length, style: /red/.test(j.getAttribute("style")), hrefNormalized: j.getAttribute("href") === "/a", opacity: /^0.55$/.test(j.style.opacity), cssFloat: !!j.style.cssFloat, checkOn: d.getElementsByTagName("input")[0].value === "on", optSelected: s.createElement("select").appendChild(s.createElement("option")).selected,
            parentNode: d.removeChild(d.appendChild(s.createElement("div"))).parentNode === null, deleteExpando: true, checkClone: false, scriptEval: false, noCloneEvent: true, boxModel: null
        }; b.type = "text/javascript"; try { b.appendChild(s.createTextNode("window." + f + "=1;")) } catch (i) { } a.insertBefore(b, a.firstChild); if (A[f]) { c.support.scriptEval = true; delete A[f] } try { delete b.test } catch (o) { c.support.deleteExpando = false } a.removeChild(b); if (d.attachEvent && d.fireEvent) {
            d.attachEvent("onclick", function k() {
                c.support.noCloneEvent =
false; d.detachEvent("onclick", k)
            }); d.cloneNode(true).fireEvent("onclick")
        } d = s.createElement("div"); d.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>"; a = s.createDocumentFragment(); a.appendChild(d.firstChild); c.support.checkClone = a.cloneNode(true).cloneNode(true).lastChild.checked; c(function () { var k = s.createElement("div"); k.style.width = k.style.paddingLeft = "1px"; s.body.appendChild(k); c.boxModel = c.support.boxModel = k.offsetWidth === 2; s.body.removeChild(k).style.display = "none" }); a = function (k) {
            var n =
s.createElement("div"); k = "on" + k; var r = k in n; if (!r) { n.setAttribute(k, "return;"); r = typeof n[k] === "function" } return r
        }; c.support.submitBubbles = a("submit"); c.support.changeBubbles = a("change"); a = b = d = e = j = null
    }
})(); c.props = { "for": "htmlFor", "class": "className", readonly: "readOnly", maxlength: "maxLength", cellspacing: "cellSpacing", rowspan: "rowSpan", colspan: "colSpan", tabindex: "tabIndex", usemap: "useMap", frameborder: "frameBorder" }; var G = "jQuery" + J(), Ya = 0, za = {}; c.extend({ cache: {}, expando: G, noData: { embed: true, object: true,
    applet: true
}, data: function (a, b, d) { if (!(a.nodeName && c.noData[a.nodeName.toLowerCase()])) { a = a == A ? za : a; var f = a[G], e = c.cache; if (!f && typeof b === "string" && d === w) return null; f || (f = ++Ya); if (typeof b === "object") { a[G] = f; e[f] = c.extend(true, {}, b) } else if (!e[f]) { a[G] = f; e[f] = {} } a = e[f]; if (d !== w) a[b] = d; return typeof b === "string" ? a[b] : a } }, removeData: function (a, b) {
    if (!(a.nodeName && c.noData[a.nodeName.toLowerCase()])) {
        a = a == A ? za : a; var d = a[G], f = c.cache, e = f[d]; if (b) { if (e) { delete e[b]; c.isEmptyObject(e) && c.removeData(a) } } else {
            if (c.support.deleteExpando) delete a[c.expando];
            else a.removeAttribute && a.removeAttribute(c.expando); delete f[d]
        }
    }
}
}); c.fn.extend({ data: function (a, b) {
    if (typeof a === "undefined" && this.length) return c.data(this[0]); else if (typeof a === "object") return this.each(function () { c.data(this, a) }); var d = a.split("."); d[1] = d[1] ? "." + d[1] : ""; if (b === w) { var f = this.triggerHandler("getData" + d[1] + "!", [d[0]]); if (f === w && this.length) f = c.data(this[0], a); return f === w && d[1] ? this.data(d[0]) : f } else return this.trigger("setData" + d[1] + "!", [d[0], b]).each(function () {
        c.data(this,
a, b)
    })
}, removeData: function (a) { return this.each(function () { c.removeData(this, a) }) }
}); c.extend({ queue: function (a, b, d) { if (a) { b = (b || "fx") + "queue"; var f = c.data(a, b); if (!d) return f || []; if (!f || c.isArray(d)) f = c.data(a, b, c.makeArray(d)); else f.push(d); return f } }, dequeue: function (a, b) { b = b || "fx"; var d = c.queue(a, b), f = d.shift(); if (f === "inprogress") f = d.shift(); if (f) { b === "fx" && d.unshift("inprogress"); f.call(a, function () { c.dequeue(a, b) }) } } }); c.fn.extend({ queue: function (a, b) {
    if (typeof a !== "string") { b = a; a = "fx" } if (b ===
w) return c.queue(this[0], a); return this.each(function () { var d = c.queue(this, a, b); a === "fx" && d[0] !== "inprogress" && c.dequeue(this, a) })
}, dequeue: function (a) { return this.each(function () { c.dequeue(this, a) }) }, delay: function (a, b) { a = c.fx ? c.fx.speeds[a] || a : a; b = b || "fx"; return this.queue(b, function () { var d = this; setTimeout(function () { c.dequeue(d, b) }, a) }) }, clearQueue: function (a) { return this.queue(a || "fx", []) }
}); var Aa = /[\n\t]/g, ca = /\s+/, Za = /\r/g, $a = /href|src|style/, ab = /(button|input)/i, bb = /(button|input|object|select|textarea)/i,
cb = /^(a|area)$/i, Ba = /radio|checkbox/; c.fn.extend({ attr: function (a, b) { return X(this, a, b, true, c.attr) }, removeAttr: function (a) { return this.each(function () { c.attr(this, a, ""); this.nodeType === 1 && this.removeAttribute(a) }) }, addClass: function (a) {
    if (c.isFunction(a)) return this.each(function (n) { var r = c(this); r.addClass(a.call(this, n, r.attr("class"))) }); if (a && typeof a === "string") for (var b = (a || "").split(ca), d = 0, f = this.length; d < f; d++) {
        var e = this[d]; if (e.nodeType === 1) if (e.className) {
            for (var j = " " + e.className + " ",
i = e.className, o = 0, k = b.length; o < k; o++) if (j.indexOf(" " + b[o] + " ") < 0) i += " " + b[o]; e.className = c.trim(i)
        } else e.className = a
    } return this
}, removeClass: function (a) {
    if (c.isFunction(a)) return this.each(function (k) { var n = c(this); n.removeClass(a.call(this, k, n.attr("class"))) }); if (a && typeof a === "string" || a === w) for (var b = (a || "").split(ca), d = 0, f = this.length; d < f; d++) {
        var e = this[d]; if (e.nodeType === 1 && e.className) if (a) {
            for (var j = (" " + e.className + " ").replace(Aa, " "), i = 0, o = b.length; i < o; i++) j = j.replace(" " + b[i] + " ",
" "); e.className = c.trim(j)
        } else e.className = ""
    } return this
}, toggleClass: function (a, b) {
    var d = typeof a, f = typeof b === "boolean"; if (c.isFunction(a)) return this.each(function (e) { var j = c(this); j.toggleClass(a.call(this, e, j.attr("class"), b), b) }); return this.each(function () {
        if (d === "string") for (var e, j = 0, i = c(this), o = b, k = a.split(ca); e = k[j++]; ) { o = f ? o : !i.hasClass(e); i[o ? "addClass" : "removeClass"](e) } else if (d === "undefined" || d === "boolean") {
            this.className && c.data(this, "__className__", this.className); this.className =
this.className || a === false ? "" : c.data(this, "__className__") || ""
        }
    })
}, hasClass: function (a) { a = " " + a + " "; for (var b = 0, d = this.length; b < d; b++) if ((" " + this[b].className + " ").replace(Aa, " ").indexOf(a) > -1) return true; return false }, val: function (a) {
    if (a === w) {
        var b = this[0]; if (b) {
            if (c.nodeName(b, "option")) return (b.attributes.value || {}).specified ? b.value : b.text; if (c.nodeName(b, "select")) {
                var d = b.selectedIndex, f = [], e = b.options; b = b.type === "select-one"; if (d < 0) return null; var j = b ? d : 0; for (d = b ? d + 1 : e.length; j < d; j++) {
                    var i =
e[j]; if (i.selected) { a = c(i).val(); if (b) return a; f.push(a) }
                } return f
            } if (Ba.test(b.type) && !c.support.checkOn) return b.getAttribute("value") === null ? "on" : b.value; return (b.value || "").replace(Za, "")
        } return w
    } var o = c.isFunction(a); return this.each(function (k) {
        var n = c(this), r = a; if (this.nodeType === 1) {
            if (o) r = a.call(this, k, n.val()); if (typeof r === "number") r += ""; if (c.isArray(r) && Ba.test(this.type)) this.checked = c.inArray(n.val(), r) >= 0; else if (c.nodeName(this, "select")) {
                var u = c.makeArray(r); c("option", this).each(function () {
                    this.selected =
c.inArray(c(this).val(), u) >= 0
                }); if (!u.length) this.selectedIndex = -1
            } else this.value = r
        }
    })
}
}); c.extend({ attrFn: { val: true, css: true, html: true, text: true, data: true, width: true, height: true, offset: true }, attr: function (a, b, d, f) {
    if (!a || a.nodeType === 3 || a.nodeType === 8) return w; if (f && b in c.attrFn) return c(a)[b](d); f = a.nodeType !== 1 || !c.isXMLDoc(a); var e = d !== w; b = f && c.props[b] || b; if (a.nodeType === 1) {
        var j = $a.test(b); if (b in a && f && !j) {
            if (e) {
                b === "type" && ab.test(a.nodeName) && a.parentNode && c.error("type property can't be changed");
                a[b] = d
            } if (c.nodeName(a, "form") && a.getAttributeNode(b)) return a.getAttributeNode(b).nodeValue; if (b === "tabIndex") return (b = a.getAttributeNode("tabIndex")) && b.specified ? b.value : bb.test(a.nodeName) || cb.test(a.nodeName) && a.href ? 0 : w; return a[b]
        } if (!c.support.style && f && b === "style") { if (e) a.style.cssText = "" + d; return a.style.cssText } e && a.setAttribute(b, "" + d); a = !c.support.hrefNormalized && f && j ? a.getAttribute(b, 2) : a.getAttribute(b); return a === null ? w : a
    } return c.style(a, b, d)
}
}); var O = /\.(.*)$/, db = function (a) {
    return a.replace(/[^\w\s\.\|`]/g,
function (b) { return "\\" + b })
}; c.event = { add: function (a, b, d, f) {
    if (!(a.nodeType === 3 || a.nodeType === 8)) {
        if (a.setInterval && a !== A && !a.frameElement) a = A; var e, j; if (d.handler) { e = d; d = e.handler } if (!d.guid) d.guid = c.guid++; if (j = c.data(a)) {
            var i = j.events = j.events || {}, o = j.handle; if (!o) j.handle = o = function () { return typeof c !== "undefined" && !c.event.triggered ? c.event.handle.apply(o.elem, arguments) : w }; o.elem = a; b = b.split(" "); for (var k, n = 0, r; k = b[n++]; ) {
                j = e ? c.extend({}, e) : { handler: d, data: f }; if (k.indexOf(".") > -1) {
                    r = k.split(".");
                    k = r.shift(); j.namespace = r.slice(0).sort().join(".")
                } else { r = []; j.namespace = "" } j.type = k; j.guid = d.guid; var u = i[k], z = c.event.special[k] || {}; if (!u) { u = i[k] = []; if (!z.setup || z.setup.call(a, f, r, o) === false) if (a.addEventListener) a.addEventListener(k, o, false); else a.attachEvent && a.attachEvent("on" + k, o) } if (z.add) { z.add.call(a, j); if (!j.handler.guid) j.handler.guid = d.guid } u.push(j); c.event.global[k] = true
            } a = null
        }
    }
}, global: {}, remove: function (a, b, d, f) {
    if (!(a.nodeType === 3 || a.nodeType === 8)) {
        var e, j = 0, i, o, k, n, r, u, z = c.data(a),
C = z && z.events; if (z && C) {
            if (b && b.type) { d = b.handler; b = b.type } if (!b || typeof b === "string" && b.charAt(0) === ".") { b = b || ""; for (e in C) c.event.remove(a, e + b) } else {
                for (b = b.split(" "); e = b[j++]; ) {
                    n = e; i = e.indexOf(".") < 0; o = []; if (!i) { o = e.split("."); e = o.shift(); k = new RegExp("(^|\\.)" + c.map(o.slice(0).sort(), db).join("\\.(?:.*\\.)?") + "(\\.|$)") } if (r = C[e]) if (d) {
                        n = c.event.special[e] || {}; for (B = f || 0; B < r.length; B++) {
                            u = r[B]; if (d.guid === u.guid) {
                                if (i || k.test(u.namespace)) { f == null && r.splice(B--, 1); n.remove && n.remove.call(a, u) } if (f !=
null) break
                            }
                        } if (r.length === 0 || f != null && r.length === 1) { if (!n.teardown || n.teardown.call(a, o) === false) Ca(a, e, z.handle); delete C[e] }
                    } else for (var B = 0; B < r.length; B++) { u = r[B]; if (i || k.test(u.namespace)) { c.event.remove(a, n, u.handler, B); r.splice(B--, 1) } }
                } if (c.isEmptyObject(C)) { if (b = z.handle) b.elem = null; delete z.events; delete z.handle; c.isEmptyObject(z) && c.removeData(a) }
            }
        }
    }
}, trigger: function (a, b, d, f) {
    var e = a.type || a; if (!f) {
        a = typeof a === "object" ? a[G] ? a : c.extend(c.Event(e), a) : c.Event(e); if (e.indexOf("!") >= 0) {
            a.type =
e = e.slice(0, -1); a.exclusive = true
        } if (!d) { a.stopPropagation(); c.event.global[e] && c.each(c.cache, function () { this.events && this.events[e] && c.event.trigger(a, b, this.handle.elem) }) } if (!d || d.nodeType === 3 || d.nodeType === 8) return w; a.result = w; a.target = d; b = c.makeArray(b); b.unshift(a)
    } a.currentTarget = d; (f = c.data(d, "handle")) && f.apply(d, b); f = d.parentNode || d.ownerDocument; try { if (!(d && d.nodeName && c.noData[d.nodeName.toLowerCase()])) if (d["on" + e] && d["on" + e].apply(d, b) === false) a.result = false } catch (j) { } if (!a.isPropagationStopped() &&
f) c.event.trigger(a, b, f, true); else if (!a.isDefaultPrevented()) { f = a.target; var i, o = c.nodeName(f, "a") && e === "click", k = c.event.special[e] || {}; if ((!k._default || k._default.call(d, a) === false) && !o && !(f && f.nodeName && c.noData[f.nodeName.toLowerCase()])) { try { if (f[e]) { if (i = f["on" + e]) f["on" + e] = null; c.event.triggered = true; f[e]() } } catch (n) { } if (i) f["on" + e] = i; c.event.triggered = false } }
}, handle: function (a) {
    var b, d, f, e; a = arguments[0] = c.event.fix(a || A.event); a.currentTarget = this; b = a.type.indexOf(".") < 0 && !a.exclusive;
    if (!b) { d = a.type.split("."); a.type = d.shift(); f = new RegExp("(^|\\.)" + d.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)") } e = c.data(this, "events"); d = e[a.type]; if (e && d) { d = d.slice(0); e = 0; for (var j = d.length; e < j; e++) { var i = d[e]; if (b || f.test(i.namespace)) { a.handler = i.handler; a.data = i.data; a.handleObj = i; i = i.handler.apply(this, arguments); if (i !== w) { a.result = i; if (i === false) { a.preventDefault(); a.stopPropagation() } } if (a.isImmediatePropagationStopped()) break } } } return a.result
}, props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
    fix: function (a) {
        if (a[G]) return a; var b = a; a = c.Event(b); for (var d = this.props.length, f; d; ) { f = this.props[--d]; a[f] = b[f] } if (!a.target) a.target = a.srcElement || s; if (a.target.nodeType === 3) a.target = a.target.parentNode; if (!a.relatedTarget && a.fromElement) a.relatedTarget = a.fromElement === a.target ? a.toElement : a.fromElement; if (a.pageX == null && a.clientX != null) {
            b = s.documentElement; d = s.body; a.pageX = a.clientX + (b && b.scrollLeft || d && d.scrollLeft || 0) - (b && b.clientLeft || d && d.clientLeft || 0); a.pageY = a.clientY + (b && b.scrollTop ||
d && d.scrollTop || 0) - (b && b.clientTop || d && d.clientTop || 0)
        } if (!a.which && (a.charCode || a.charCode === 0 ? a.charCode : a.keyCode)) a.which = a.charCode || a.keyCode; if (!a.metaKey && a.ctrlKey) a.metaKey = a.ctrlKey; if (!a.which && a.button !== w) a.which = a.button & 1 ? 1 : a.button & 2 ? 3 : a.button & 4 ? 2 : 0; return a
    }, guid: 1E8, proxy: c.proxy, special: { ready: { setup: c.bindReady, teardown: c.noop }, live: { add: function (a) { c.event.add(this, a.origType, c.extend({}, a, { handler: oa })) }, remove: function (a) {
        var b = true, d = a.origType.replace(O, ""); c.each(c.data(this,
"events").live || [], function () { if (d === this.origType.replace(O, "")) return b = false }); b && c.event.remove(this, a.origType, oa)
    }
    }, beforeunload: { setup: function (a, b, d) { if (this.setInterval) this.onbeforeunload = d; return false }, teardown: function (a, b) { if (this.onbeforeunload === b) this.onbeforeunload = null } }
    }
}; var Ca = s.removeEventListener ? function (a, b, d) { a.removeEventListener(b, d, false) } : function (a, b, d) { a.detachEvent("on" + b, d) }; c.Event = function (a) {
    if (!this.preventDefault) return new c.Event(a); if (a && a.type) {
        this.originalEvent =
a; this.type = a.type
    } else this.type = a; this.timeStamp = J(); this[G] = true
}; c.Event.prototype = { preventDefault: function () { this.isDefaultPrevented = Z; var a = this.originalEvent; if (a) { a.preventDefault && a.preventDefault(); a.returnValue = false } }, stopPropagation: function () { this.isPropagationStopped = Z; var a = this.originalEvent; if (a) { a.stopPropagation && a.stopPropagation(); a.cancelBubble = true } }, stopImmediatePropagation: function () { this.isImmediatePropagationStopped = Z; this.stopPropagation() }, isDefaultPrevented: Y, isPropagationStopped: Y,
    isImmediatePropagationStopped: Y
}; var Da = function (a) { var b = a.relatedTarget; try { for (; b && b !== this; ) b = b.parentNode; if (b !== this) { a.type = a.data; c.event.handle.apply(this, arguments) } } catch (d) { } }, Ea = function (a) { a.type = a.data; c.event.handle.apply(this, arguments) }; c.each({ mouseenter: "mouseover", mouseleave: "mouseout" }, function (a, b) { c.event.special[a] = { setup: function (d) { c.event.add(this, b, d && d.selector ? Ea : Da, a) }, teardown: function (d) { c.event.remove(this, b, d && d.selector ? Ea : Da) } } }); if (!c.support.submitBubbles) c.event.special.submit =
{ setup: function () { if (this.nodeName.toLowerCase() !== "form") { c.event.add(this, "click.specialSubmit", function (a) { var b = a.target, d = b.type; if ((d === "submit" || d === "image") && c(b).closest("form").length) return na("submit", this, arguments) }); c.event.add(this, "keypress.specialSubmit", function (a) { var b = a.target, d = b.type; if ((d === "text" || d === "password") && c(b).closest("form").length && a.keyCode === 13) return na("submit", this, arguments) }) } else return false }, teardown: function () { c.event.remove(this, ".specialSubmit") } };
    if (!c.support.changeBubbles) {
        var da = /textarea|input|select/i, ea, Fa = function (a) { var b = a.type, d = a.value; if (b === "radio" || b === "checkbox") d = a.checked; else if (b === "select-multiple") d = a.selectedIndex > -1 ? c.map(a.options, function (f) { return f.selected }).join("-") : ""; else if (a.nodeName.toLowerCase() === "select") d = a.selectedIndex; return d }, fa = function (a, b) {
            var d = a.target, f, e; if (!(!da.test(d.nodeName) || d.readOnly)) {
                f = c.data(d, "_change_data"); e = Fa(d); if (a.type !== "focusout" || d.type !== "radio") c.data(d, "_change_data",
e); if (!(f === w || e === f)) if (f != null || e) { a.type = "change"; return c.event.trigger(a, b, d) }
            }
        }; c.event.special.change = { filters: { focusout: fa, click: function (a) { var b = a.target, d = b.type; if (d === "radio" || d === "checkbox" || b.nodeName.toLowerCase() === "select") return fa.call(this, a) }, keydown: function (a) { var b = a.target, d = b.type; if (a.keyCode === 13 && b.nodeName.toLowerCase() !== "textarea" || a.keyCode === 32 && (d === "checkbox" || d === "radio") || d === "select-multiple") return fa.call(this, a) }, beforeactivate: function (a) {
            a = a.target; c.data(a,
"_change_data", Fa(a))
        }
        }, setup: function () { if (this.type === "file") return false; for (var a in ea) c.event.add(this, a + ".specialChange", ea[a]); return da.test(this.nodeName) }, teardown: function () { c.event.remove(this, ".specialChange"); return da.test(this.nodeName) }
        }; ea = c.event.special.change.filters
    } s.addEventListener && c.each({ focus: "focusin", blur: "focusout" }, function (a, b) {
        function d(f) { f = c.event.fix(f); f.type = b; return c.event.handle.call(this, f) } c.event.special[b] = { setup: function () {
            this.addEventListener(a,
d, true)
        }, teardown: function () { this.removeEventListener(a, d, true) }
        }
    }); c.each(["bind", "one"], function (a, b) { c.fn[b] = function (d, f, e) { if (typeof d === "object") { for (var j in d) this[b](j, f, d[j], e); return this } if (c.isFunction(f)) { e = f; f = w } var i = b === "one" ? c.proxy(e, function (k) { c(this).unbind(k, i); return e.apply(this, arguments) }) : e; if (d === "unload" && b !== "one") this.one(d, f, e); else { j = 0; for (var o = this.length; j < o; j++) c.event.add(this[j], d, i, f) } return this } }); c.fn.extend({ unbind: function (a, b) {
        if (typeof a === "object" &&
!a.preventDefault) for (var d in a) this.unbind(d, a[d]); else { d = 0; for (var f = this.length; d < f; d++) c.event.remove(this[d], a, b) } return this
    }, delegate: function (a, b, d, f) { return this.live(b, d, f, a) }, undelegate: function (a, b, d) { return arguments.length === 0 ? this.unbind("live") : this.die(b, null, d, a) }, trigger: function (a, b) { return this.each(function () { c.event.trigger(a, b, this) }) }, triggerHandler: function (a, b) { if (this[0]) { a = c.Event(a); a.preventDefault(); a.stopPropagation(); c.event.trigger(a, b, this[0]); return a.result } },
        toggle: function (a) { for (var b = arguments, d = 1; d < b.length; ) c.proxy(a, b[d++]); return this.click(c.proxy(a, function (f) { var e = (c.data(this, "lastToggle" + a.guid) || 0) % d; c.data(this, "lastToggle" + a.guid, e + 1); f.preventDefault(); return b[e].apply(this, arguments) || false })) }, hover: function (a, b) { return this.mouseenter(a).mouseleave(b || a) }
    }); var Ga = { focus: "focusin", blur: "focusout", mouseenter: "mouseover", mouseleave: "mouseout" }; c.each(["live", "die"], function (a, b) {
        c.fn[b] = function (d, f, e, j) {
            var i, o = 0, k, n, r = j || this.selector,
u = j ? this : c(this.context); if (c.isFunction(f)) { e = f; f = w } for (d = (d || "").split(" "); (i = d[o++]) != null; ) { j = O.exec(i); k = ""; if (j) { k = j[0]; i = i.replace(O, "") } if (i === "hover") d.push("mouseenter" + k, "mouseleave" + k); else { n = i; if (i === "focus" || i === "blur") { d.push(Ga[i] + k); i += k } else i = (Ga[i] || i) + k; b === "live" ? u.each(function () { c.event.add(this, pa(i, r), { data: f, selector: r, handler: e, origType: i, origHandler: e, preType: n }) }) : u.unbind(pa(i, r), e) } } return this
        }
    }); c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
function (a, b) { c.fn[b] = function (d) { return d ? this.bind(b, d) : this.trigger(b) }; if (c.attrFn) c.attrFn[b] = true }); A.attachEvent && !A.addEventListener && A.attachEvent("onunload", function () { for (var a in c.cache) if (c.cache[a].handle) try { c.event.remove(c.cache[a].handle.elem) } catch (b) { } }); (function () {
    function a(g) { for (var h = "", l, m = 0; g[m]; m++) { l = g[m]; if (l.nodeType === 3 || l.nodeType === 4) h += l.nodeValue; else if (l.nodeType !== 8) h += a(l.childNodes) } return h } function b(g, h, l, m, q, p) {
        q = 0; for (var v = m.length; q < v; q++) {
            var t = m[q];
            if (t) { t = t[g]; for (var y = false; t; ) { if (t.sizcache === l) { y = m[t.sizset]; break } if (t.nodeType === 1 && !p) { t.sizcache = l; t.sizset = q } if (t.nodeName.toLowerCase() === h) { y = t; break } t = t[g] } m[q] = y }
        }
    } function d(g, h, l, m, q, p) { q = 0; for (var v = m.length; q < v; q++) { var t = m[q]; if (t) { t = t[g]; for (var y = false; t; ) { if (t.sizcache === l) { y = m[t.sizset]; break } if (t.nodeType === 1) { if (!p) { t.sizcache = l; t.sizset = q } if (typeof h !== "string") { if (t === h) { y = true; break } } else if (k.filter(h, [t]).length > 0) { y = t; break } } t = t[g] } m[q] = y } } } var f = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e = 0, j = Object.prototype.toString, i = false, o = true; [0, 0].sort(function () { o = false; return 0 }); var k = function (g, h, l, m) {
    l = l || []; var q = h = h || s; if (h.nodeType !== 1 && h.nodeType !== 9) return []; if (!g || typeof g !== "string") return l; for (var p = [], v, t, y, S, H = true, M = x(h), I = g; (f.exec(""), v = f.exec(I)) !== null; ) { I = v[3]; p.push(v[1]); if (v[2]) { S = v[3]; break } } if (p.length > 1 && r.exec(g)) if (p.length === 2 && n.relative[p[0]]) t = ga(p[0] + p[1], h); else for (t = n.relative[p[0]] ? [h] : k(p.shift(), h); p.length; ) {
        g = p.shift(); if (n.relative[g]) g += p.shift();
        t = ga(g, t)
    } else { if (!m && p.length > 1 && h.nodeType === 9 && !M && n.match.ID.test(p[0]) && !n.match.ID.test(p[p.length - 1])) { v = k.find(p.shift(), h, M); h = v.expr ? k.filter(v.expr, v.set)[0] : v.set[0] } if (h) { v = m ? { expr: p.pop(), set: z(m)} : k.find(p.pop(), p.length === 1 && (p[0] === "~" || p[0] === "+") && h.parentNode ? h.parentNode : h, M); t = v.expr ? k.filter(v.expr, v.set) : v.set; if (p.length > 0) y = z(t); else H = false; for (; p.length; ) { var D = p.pop(); v = D; if (n.relative[D]) v = p.pop(); else D = ""; if (v == null) v = h; n.relative[D](y, v, M) } } else y = [] } y || (y = t); y || k.error(D ||
g); if (j.call(y) === "[object Array]") if (H) if (h && h.nodeType === 1) for (g = 0; y[g] != null; g++) { if (y[g] && (y[g] === true || y[g].nodeType === 1 && E(h, y[g]))) l.push(t[g]) } else for (g = 0; y[g] != null; g++) y[g] && y[g].nodeType === 1 && l.push(t[g]); else l.push.apply(l, y); else z(y, l); if (S) { k(S, q, l, m); k.uniqueSort(l) } return l
}; k.uniqueSort = function (g) { if (B) { i = o; g.sort(B); if (i) for (var h = 1; h < g.length; h++) g[h] === g[h - 1] && g.splice(h--, 1) } return g }; k.matches = function (g, h) { return k(g, null, null, h) }; k.find = function (g, h, l) {
    var m, q; if (!g) return [];
    for (var p = 0, v = n.order.length; p < v; p++) { var t = n.order[p]; if (q = n.leftMatch[t].exec(g)) { var y = q[1]; q.splice(1, 1); if (y.substr(y.length - 1) !== "\\") { q[1] = (q[1] || "").replace(/\\/g, ""); m = n.find[t](q, h, l); if (m != null) { g = g.replace(n.match[t], ""); break } } } } m || (m = h.getElementsByTagName("*")); return { set: m, expr: g }
}; k.filter = function (g, h, l, m) {
    for (var q = g, p = [], v = h, t, y, S = h && h[0] && x(h[0]); g && h.length; ) {
        for (var H in n.filter) if ((t = n.leftMatch[H].exec(g)) != null && t[2]) {
            var M = n.filter[H], I, D; D = t[1]; y = false; t.splice(1, 1); if (D.substr(D.length -
1) !== "\\") { if (v === p) p = []; if (n.preFilter[H]) if (t = n.preFilter[H](t, v, l, p, m, S)) { if (t === true) continue } else y = I = true; if (t) for (var U = 0; (D = v[U]) != null; U++) if (D) { I = M(D, t, U, v); var Ha = m ^ !!I; if (l && I != null) if (Ha) y = true; else v[U] = false; else if (Ha) { p.push(D); y = true } } if (I !== w) { l || (v = p); g = g.replace(n.match[H], ""); if (!y) return []; break } }
        } if (g === q) if (y == null) k.error(g); else break; q = g
    } return v
}; k.error = function (g) { throw "Syntax error, unrecognized expression: " + g; }; var n = k.selectors = { order: ["ID", "NAME", "TAG"], match: { ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
    CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/, NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/, ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/, CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
}, leftMatch: {}, attrMap: { "class": "className", "for": "htmlFor" }, attrHandle: { href: function (g) { return g.getAttribute("href") } },
    relative: { "+": function (g, h) { var l = typeof h === "string", m = l && !/\W/.test(h); l = l && !m; if (m) h = h.toLowerCase(); m = 0; for (var q = g.length, p; m < q; m++) if (p = g[m]) { for (; (p = p.previousSibling) && p.nodeType !== 1; ); g[m] = l || p && p.nodeName.toLowerCase() === h ? p || false : p === h } l && k.filter(h, g, true) }, ">": function (g, h) {
        var l = typeof h === "string"; if (l && !/\W/.test(h)) { h = h.toLowerCase(); for (var m = 0, q = g.length; m < q; m++) { var p = g[m]; if (p) { l = p.parentNode; g[m] = l.nodeName.toLowerCase() === h ? l : false } } } else {
            m = 0; for (q = g.length; m < q; m++) if (p = g[m]) g[m] =
l ? p.parentNode : p.parentNode === h; l && k.filter(h, g, true)
        }
    }, "": function (g, h, l) { var m = e++, q = d; if (typeof h === "string" && !/\W/.test(h)) { var p = h = h.toLowerCase(); q = b } q("parentNode", h, m, g, p, l) }, "~": function (g, h, l) { var m = e++, q = d; if (typeof h === "string" && !/\W/.test(h)) { var p = h = h.toLowerCase(); q = b } q("previousSibling", h, m, g, p, l) }
    }, find: { ID: function (g, h, l) { if (typeof h.getElementById !== "undefined" && !l) return (g = h.getElementById(g[1])) ? [g] : [] }, NAME: function (g, h) {
        if (typeof h.getElementsByName !== "undefined") {
            var l = [];
            h = h.getElementsByName(g[1]); for (var m = 0, q = h.length; m < q; m++) h[m].getAttribute("name") === g[1] && l.push(h[m]); return l.length === 0 ? null : l
        }
    }, TAG: function (g, h) { return h.getElementsByTagName(g[1]) }
    }, preFilter: { CLASS: function (g, h, l, m, q, p) { g = " " + g[1].replace(/\\/g, "") + " "; if (p) return g; p = 0; for (var v; (v = h[p]) != null; p++) if (v) if (q ^ (v.className && (" " + v.className + " ").replace(/[\t\n]/g, " ").indexOf(g) >= 0)) l || m.push(v); else if (l) h[p] = false; return false }, ID: function (g) { return g[1].replace(/\\/g, "") }, TAG: function (g) { return g[1].toLowerCase() },
        CHILD: function (g) { if (g[1] === "nth") { var h = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2] === "even" && "2n" || g[2] === "odd" && "2n+1" || !/\D/.test(g[2]) && "0n+" + g[2] || g[2]); g[2] = h[1] + (h[2] || 1) - 0; g[3] = h[3] - 0 } g[0] = e++; return g }, ATTR: function (g, h, l, m, q, p) { h = g[1].replace(/\\/g, ""); if (!p && n.attrMap[h]) g[1] = n.attrMap[h]; if (g[2] === "~=") g[4] = " " + g[4] + " "; return g }, PSEUDO: function (g, h, l, m, q) {
            if (g[1] === "not") if ((f.exec(g[3]) || "").length > 1 || /^\w/.test(g[3])) g[3] = k(g[3], null, null, h); else {
                g = k.filter(g[3], h, l, true ^ q); l || m.push.apply(m,
g); return false
            } else if (n.match.POS.test(g[0]) || n.match.CHILD.test(g[0])) return true; return g
        }, POS: function (g) { g.unshift(true); return g }
    }, filters: { enabled: function (g) { return g.disabled === false && g.type !== "hidden" }, disabled: function (g) { return g.disabled === true }, checked: function (g) { return g.checked === true }, selected: function (g) { return g.selected === true }, parent: function (g) { return !!g.firstChild }, empty: function (g) { return !g.firstChild }, has: function (g, h, l) { return !!k(l[3], g).length }, header: function (g) { return /h\d/i.test(g.nodeName) },
        text: function (g) { return "text" === g.type }, radio: function (g) { return "radio" === g.type }, checkbox: function (g) { return "checkbox" === g.type }, file: function (g) { return "file" === g.type }, password: function (g) { return "password" === g.type }, submit: function (g) { return "submit" === g.type }, image: function (g) { return "image" === g.type }, reset: function (g) { return "reset" === g.type }, button: function (g) { return "button" === g.type || g.nodeName.toLowerCase() === "button" }, input: function (g) { return /input|select|textarea|button/i.test(g.nodeName) }
    },
    setFilters: { first: function (g, h) { return h === 0 }, last: function (g, h, l, m) { return h === m.length - 1 }, even: function (g, h) { return h % 2 === 0 }, odd: function (g, h) { return h % 2 === 1 }, lt: function (g, h, l) { return h < l[3] - 0 }, gt: function (g, h, l) { return h > l[3] - 0 }, nth: function (g, h, l) { return l[3] - 0 === h }, eq: function (g, h, l) { return l[3] - 0 === h } }, filter: { PSEUDO: function (g, h, l, m) {
        var q = h[1], p = n.filters[q]; if (p) return p(g, l, h, m); else if (q === "contains") return (g.textContent || g.innerText || a([g]) || "").indexOf(h[3]) >= 0; else if (q === "not") {
            h =
h[3]; l = 0; for (m = h.length; l < m; l++) if (h[l] === g) return false; return true
        } else k.error("Syntax error, unrecognized expression: " + q)
    }, CHILD: function (g, h) {
        var l = h[1], m = g; switch (l) {
            case "only": case "first": for (; m = m.previousSibling; ) if (m.nodeType === 1) return false; if (l === "first") return true; m = g; case "last": for (; m = m.nextSibling; ) if (m.nodeType === 1) return false; return true; case "nth": l = h[2]; var q = h[3]; if (l === 1 && q === 0) return true; h = h[0]; var p = g.parentNode; if (p && (p.sizcache !== h || !g.nodeIndex)) {
                    var v = 0; for (m = p.firstChild; m; m =
m.nextSibling) if (m.nodeType === 1) m.nodeIndex = ++v; p.sizcache = h
                } g = g.nodeIndex - q; return l === 0 ? g === 0 : g % l === 0 && g / l >= 0
        }
    }, ID: function (g, h) { return g.nodeType === 1 && g.getAttribute("id") === h }, TAG: function (g, h) { return h === "*" && g.nodeType === 1 || g.nodeName.toLowerCase() === h }, CLASS: function (g, h) { return (" " + (g.className || g.getAttribute("class")) + " ").indexOf(h) > -1 }, ATTR: function (g, h) {
        var l = h[1]; g = n.attrHandle[l] ? n.attrHandle[l](g) : g[l] != null ? g[l] : g.getAttribute(l); l = g + ""; var m = h[2]; h = h[4]; return g == null ? m === "!=" : m ===
"=" ? l === h : m === "*=" ? l.indexOf(h) >= 0 : m === "~=" ? (" " + l + " ").indexOf(h) >= 0 : !h ? l && g !== false : m === "!=" ? l !== h : m === "^=" ? l.indexOf(h) === 0 : m === "$=" ? l.substr(l.length - h.length) === h : m === "|=" ? l === h || l.substr(0, h.length + 1) === h + "-" : false
    }, POS: function (g, h, l, m) { var q = n.setFilters[h[2]]; if (q) return q(g, l, h, m) }
    }
}, r = n.match.POS; for (var u in n.match) {
        n.match[u] = new RegExp(n.match[u].source + /(?![^\[]*\])(?![^\(]*\))/.source); n.leftMatch[u] = new RegExp(/(^(?:.|\r|\n)*?)/.source + n.match[u].source.replace(/\\(\d+)/g, function (g,
h) { return "\\" + (h - 0 + 1) }))
    } var z = function (g, h) { g = Array.prototype.slice.call(g, 0); if (h) { h.push.apply(h, g); return h } return g }; try { Array.prototype.slice.call(s.documentElement.childNodes, 0) } catch (C) { z = function (g, h) { h = h || []; if (j.call(g) === "[object Array]") Array.prototype.push.apply(h, g); else if (typeof g.length === "number") for (var l = 0, m = g.length; l < m; l++) h.push(g[l]); else for (l = 0; g[l]; l++) h.push(g[l]); return h } } var B; if (s.documentElement.compareDocumentPosition) B = function (g, h) {
        if (!g.compareDocumentPosition ||
!h.compareDocumentPosition) { if (g == h) i = true; return g.compareDocumentPosition ? -1 : 1 } g = g.compareDocumentPosition(h) & 4 ? -1 : g === h ? 0 : 1; if (g === 0) i = true; return g
    }; else if ("sourceIndex" in s.documentElement) B = function (g, h) { if (!g.sourceIndex || !h.sourceIndex) { if (g == h) i = true; return g.sourceIndex ? -1 : 1 } g = g.sourceIndex - h.sourceIndex; if (g === 0) i = true; return g }; else if (s.createRange) B = function (g, h) {
        if (!g.ownerDocument || !h.ownerDocument) { if (g == h) i = true; return g.ownerDocument ? -1 : 1 } var l = g.ownerDocument.createRange(), m =
h.ownerDocument.createRange(); l.setStart(g, 0); l.setEnd(g, 0); m.setStart(h, 0); m.setEnd(h, 0); g = l.compareBoundaryPoints(Range.START_TO_END, m); if (g === 0) i = true; return g
    }; (function () {
        var g = s.createElement("div"), h = "script" + (new Date).getTime(); g.innerHTML = "<a name='" + h + "'/>"; var l = s.documentElement; l.insertBefore(g, l.firstChild); if (s.getElementById(h)) {
            n.find.ID = function (m, q, p) {
                if (typeof q.getElementById !== "undefined" && !p) return (q = q.getElementById(m[1])) ? q.id === m[1] || typeof q.getAttributeNode !== "undefined" &&
q.getAttributeNode("id").nodeValue === m[1] ? [q] : w : []
            }; n.filter.ID = function (m, q) { var p = typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id"); return m.nodeType === 1 && p && p.nodeValue === q }
        } l.removeChild(g); l = g = null
    })(); (function () {
        var g = s.createElement("div"); g.appendChild(s.createComment("")); if (g.getElementsByTagName("*").length > 0) n.find.TAG = function (h, l) { l = l.getElementsByTagName(h[1]); if (h[1] === "*") { h = []; for (var m = 0; l[m]; m++) l[m].nodeType === 1 && h.push(l[m]); l = h } return l }; g.innerHTML = "<a href='#'></a>";
        if (g.firstChild && typeof g.firstChild.getAttribute !== "undefined" && g.firstChild.getAttribute("href") !== "#") n.attrHandle.href = function (h) { return h.getAttribute("href", 2) }; g = null
    })(); s.querySelectorAll && function () { var g = k, h = s.createElement("div"); h.innerHTML = "<p class='TEST'></p>"; if (!(h.querySelectorAll && h.querySelectorAll(".TEST").length === 0)) { k = function (m, q, p, v) { q = q || s; if (!v && q.nodeType === 9 && !x(q)) try { return z(q.querySelectorAll(m), p) } catch (t) { } return g(m, q, p, v) }; for (var l in g) k[l] = g[l]; h = null } } ();
    (function () { var g = s.createElement("div"); g.innerHTML = "<div class='test e'></div><div class='test'></div>"; if (!(!g.getElementsByClassName || g.getElementsByClassName("e").length === 0)) { g.lastChild.className = "e"; if (g.getElementsByClassName("e").length !== 1) { n.order.splice(1, 0, "CLASS"); n.find.CLASS = function (h, l, m) { if (typeof l.getElementsByClassName !== "undefined" && !m) return l.getElementsByClassName(h[1]) }; g = null } } })(); var E = s.compareDocumentPosition ? function (g, h) { return !!(g.compareDocumentPosition(h) & 16) } :
function (g, h) { return g !== h && (g.contains ? g.contains(h) : true) }, x = function (g) { return (g = (g ? g.ownerDocument || g : 0).documentElement) ? g.nodeName !== "HTML" : false }, ga = function (g, h) { var l = [], m = "", q; for (h = h.nodeType ? [h] : h; q = n.match.PSEUDO.exec(g); ) { m += q[0]; g = g.replace(n.match.PSEUDO, "") } g = n.relative[g] ? g + "*" : g; q = 0; for (var p = h.length; q < p; q++) k(g, h[q], l); return k.filter(m, l) }; c.find = k; c.expr = k.selectors; c.expr[":"] = c.expr.filters; c.unique = k.uniqueSort; c.text = a; c.isXMLDoc = x; c.contains = E
})(); var eb = /Until$/, fb = /^(?:parents|prevUntil|prevAll)/,
gb = /,/; R = Array.prototype.slice; var Ia = function (a, b, d) { if (c.isFunction(b)) return c.grep(a, function (e, j) { return !!b.call(e, j, e) === d }); else if (b.nodeType) return c.grep(a, function (e) { return e === b === d }); else if (typeof b === "string") { var f = c.grep(a, function (e) { return e.nodeType === 1 }); if (Ua.test(b)) return c.filter(b, f, !d); else b = c.filter(b, f) } return c.grep(a, function (e) { return c.inArray(e, b) >= 0 === d }) }; c.fn.extend({ find: function (a) {
    for (var b = this.pushStack("", "find", a), d = 0, f = 0, e = this.length; f < e; f++) {
        d = b.length;
        c.find(a, this[f], b); if (f > 0) for (var j = d; j < b.length; j++) for (var i = 0; i < d; i++) if (b[i] === b[j]) { b.splice(j--, 1); break }
    } return b
}, has: function (a) { var b = c(a); return this.filter(function () { for (var d = 0, f = b.length; d < f; d++) if (c.contains(this, b[d])) return true }) }, not: function (a) { return this.pushStack(Ia(this, a, false), "not", a) }, filter: function (a) { return this.pushStack(Ia(this, a, true), "filter", a) }, is: function (a) { return !!a && c.filter(a, this).length > 0 }, closest: function (a, b) {
    if (c.isArray(a)) {
        var d = [], f = this[0], e, j =
{}, i; if (f && a.length) { e = 0; for (var o = a.length; e < o; e++) { i = a[e]; j[i] || (j[i] = c.expr.match.POS.test(i) ? c(i, b || this.context) : i) } for (; f && f.ownerDocument && f !== b; ) { for (i in j) { e = j[i]; if (e.jquery ? e.index(f) > -1 : c(f).is(e)) { d.push({ selector: i, elem: f }); delete j[i] } } f = f.parentNode } } return d
    } var k = c.expr.match.POS.test(a) ? c(a, b || this.context) : null; return this.map(function (n, r) { for (; r && r.ownerDocument && r !== b; ) { if (k ? k.index(r) > -1 : c(r).is(a)) return r; r = r.parentNode } return null })
}, index: function (a) {
    if (!a || typeof a ===
"string") return c.inArray(this[0], a ? c(a) : this.parent().children()); return c.inArray(a.jquery ? a[0] : a, this)
}, add: function (a, b) { a = typeof a === "string" ? c(a, b || this.context) : c.makeArray(a); b = c.merge(this.get(), a); return this.pushStack(qa(a[0]) || qa(b[0]) ? b : c.unique(b)) }, andSelf: function () { return this.add(this.prevObject) }
}); c.each({ parent: function (a) { return (a = a.parentNode) && a.nodeType !== 11 ? a : null }, parents: function (a) { return c.dir(a, "parentNode") }, parentsUntil: function (a, b, d) {
    return c.dir(a, "parentNode",
d)
}, next: function (a) { return c.nth(a, 2, "nextSibling") }, prev: function (a) { return c.nth(a, 2, "previousSibling") }, nextAll: function (a) { return c.dir(a, "nextSibling") }, prevAll: function (a) { return c.dir(a, "previousSibling") }, nextUntil: function (a, b, d) { return c.dir(a, "nextSibling", d) }, prevUntil: function (a, b, d) { return c.dir(a, "previousSibling", d) }, siblings: function (a) { return c.sibling(a.parentNode.firstChild, a) }, children: function (a) { return c.sibling(a.firstChild) }, contents: function (a) {
    return c.nodeName(a, "iframe") ?
a.contentDocument || a.contentWindow.document : c.makeArray(a.childNodes)
}
}, function (a, b) { c.fn[a] = function (d, f) { var e = c.map(this, b, d); eb.test(a) || (f = d); if (f && typeof f === "string") e = c.filter(f, e); e = this.length > 1 ? c.unique(e) : e; if ((this.length > 1 || gb.test(f)) && fb.test(a)) e = e.reverse(); return this.pushStack(e, a, R.call(arguments).join(",")) } }); c.extend({ filter: function (a, b, d) { if (d) a = ":not(" + a + ")"; return c.find.matches(a, b) }, dir: function (a, b, d) {
    var f = []; for (a = a[b]; a && a.nodeType !== 9 && (d === w || a.nodeType !== 1 || !c(a).is(d)); ) {
        a.nodeType ===
1 && f.push(a); a = a[b]
    } return f
}, nth: function (a, b, d) { b = b || 1; for (var f = 0; a; a = a[d]) if (a.nodeType === 1 && ++f === b) break; return a }, sibling: function (a, b) { for (var d = []; a; a = a.nextSibling) a.nodeType === 1 && a !== b && d.push(a); return d }
}); var Ja = / jQuery\d+="(?:\d+|null)"/g, V = /^\s+/, Ka = /(<([\w:]+)[^>]*?)\/>/g, hb = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, La = /<([\w:]+)/, ib = /<tbody/i, jb = /<|&#?\w+;/, ta = /<script|<object|<embed|<option|<style/i, ua = /checked\s*(?:[^=]|=\s*.checked.)/i, Ma = function (a, b, d) {
    return hb.test(d) ?
a : b + "></" + d + ">"
}, F = { option: [1, "<select multiple='multiple'>", "</select>"], legend: [1, "<fieldset>", "</fieldset>"], thead: [1, "<table>", "</table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], area: [1, "<map>", "</map>"], _default: [0, "", ""] }; F.optgroup = F.option; F.tbody = F.tfoot = F.colgroup = F.caption = F.thead; F.th = F.td; if (!c.support.htmlSerialize) F._default = [1, "div<div>", "</div>"]; c.fn.extend({ text: function (a) {
    if (c.isFunction(a)) return this.each(function (b) {
        var d =
c(this); d.text(a.call(this, b, d.text()))
    }); if (typeof a !== "object" && a !== w) return this.empty().append((this[0] && this[0].ownerDocument || s).createTextNode(a)); return c.text(this)
}, wrapAll: function (a) { if (c.isFunction(a)) return this.each(function (d) { c(this).wrapAll(a.call(this, d)) }); if (this[0]) { var b = c(a, this[0].ownerDocument).eq(0).clone(true); this[0].parentNode && b.insertBefore(this[0]); b.map(function () { for (var d = this; d.firstChild && d.firstChild.nodeType === 1; ) d = d.firstChild; return d }).append(this) } return this },
    wrapInner: function (a) { if (c.isFunction(a)) return this.each(function (b) { c(this).wrapInner(a.call(this, b)) }); return this.each(function () { var b = c(this), d = b.contents(); d.length ? d.wrapAll(a) : b.append(a) }) }, wrap: function (a) { return this.each(function () { c(this).wrapAll(a) }) }, unwrap: function () { return this.parent().each(function () { c.nodeName(this, "body") || c(this).replaceWith(this.childNodes) }).end() }, append: function () { return this.domManip(arguments, true, function (a) { this.nodeType === 1 && this.appendChild(a) }) },
    prepend: function () { return this.domManip(arguments, true, function (a) { this.nodeType === 1 && this.insertBefore(a, this.firstChild) }) }, before: function () { if (this[0] && this[0].parentNode) return this.domManip(arguments, false, function (b) { this.parentNode.insertBefore(b, this) }); else if (arguments.length) { var a = c(arguments[0]); a.push.apply(a, this.toArray()); return this.pushStack(a, "before", arguments) } }, after: function () {
        if (this[0] && this[0].parentNode) return this.domManip(arguments, false, function (b) {
            this.parentNode.insertBefore(b,
this.nextSibling)
        }); else if (arguments.length) { var a = this.pushStack(this, "after", arguments); a.push.apply(a, c(arguments[0]).toArray()); return a }
    }, remove: function (a, b) { for (var d = 0, f; (f = this[d]) != null; d++) if (!a || c.filter(a, [f]).length) { if (!b && f.nodeType === 1) { c.cleanData(f.getElementsByTagName("*")); c.cleanData([f]) } f.parentNode && f.parentNode.removeChild(f) } return this }, empty: function () {
        for (var a = 0, b; (b = this[a]) != null; a++) for (b.nodeType === 1 && c.cleanData(b.getElementsByTagName("*")); b.firstChild; ) b.removeChild(b.firstChild);
        return this
    }, clone: function (a) { var b = this.map(function () { if (!c.support.noCloneEvent && !c.isXMLDoc(this)) { var d = this.outerHTML, f = this.ownerDocument; if (!d) { d = f.createElement("div"); d.appendChild(this.cloneNode(true)); d = d.innerHTML } return c.clean([d.replace(Ja, "").replace(/=([^="'>\s]+\/)>/g, '="$1">').replace(V, "")], f)[0] } else return this.cloneNode(true) }); if (a === true) { ra(this, b); ra(this.find("*"), b.find("*")) } return b }, html: function (a) {
        if (a === w) return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.replace(Ja,
"") : null; else if (typeof a === "string" && !ta.test(a) && (c.support.leadingWhitespace || !V.test(a)) && !F[(La.exec(a) || ["", ""])[1].toLowerCase()]) { a = a.replace(Ka, Ma); try { for (var b = 0, d = this.length; b < d; b++) if (this[b].nodeType === 1) { c.cleanData(this[b].getElementsByTagName("*")); this[b].innerHTML = a } } catch (f) { this.empty().append(a) } } else c.isFunction(a) ? this.each(function (e) { var j = c(this), i = j.html(); j.empty().append(function () { return a.call(this, e, i) }) }) : this.empty().append(a); return this
    }, replaceWith: function (a) {
        if (this[0] &&
this[0].parentNode) { if (c.isFunction(a)) return this.each(function (b) { var d = c(this), f = d.html(); d.replaceWith(a.call(this, b, f)) }); if (typeof a !== "string") a = c(a).detach(); return this.each(function () { var b = this.nextSibling, d = this.parentNode; c(this).remove(); b ? c(b).before(a) : c(d).append(a) }) } else return this.pushStack(c(c.isFunction(a) ? a() : a), "replaceWith", a)
    }, detach: function (a) { return this.remove(a, true) }, domManip: function (a, b, d) {
        function f(u) {
            return c.nodeName(u, "table") ? u.getElementsByTagName("tbody")[0] ||
u.appendChild(u.ownerDocument.createElement("tbody")) : u
        } var e, j, i = a[0], o = [], k; if (!c.support.checkClone && arguments.length === 3 && typeof i === "string" && ua.test(i)) return this.each(function () { c(this).domManip(a, b, d, true) }); if (c.isFunction(i)) return this.each(function (u) { var z = c(this); a[0] = i.call(this, u, b ? z.html() : w); z.domManip(a, b, d) }); if (this[0]) {
            e = i && i.parentNode; e = c.support.parentNode && e && e.nodeType === 11 && e.childNodes.length === this.length ? { fragment: e} : sa(a, this, o); k = e.fragment; if (j = k.childNodes.length ===
1 ? (k = k.firstChild) : k.firstChild) { b = b && c.nodeName(j, "tr"); for (var n = 0, r = this.length; n < r; n++) d.call(b ? f(this[n], j) : this[n], n > 0 || e.cacheable || this.length > 1 ? k.cloneNode(true) : k) } o.length && c.each(o, Qa)
        } return this
    }
}); c.fragments = {}; c.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (a, b) {
    c.fn[a] = function (d) {
        var f = []; d = c(d); var e = this.length === 1 && this[0].parentNode; if (e && e.nodeType === 11 && e.childNodes.length === 1 && d.length === 1) {
            d[b](this[0]);
            return this
        } else { e = 0; for (var j = d.length; e < j; e++) { var i = (e > 0 ? this.clone(true) : this).get(); c.fn[b].apply(c(d[e]), i); f = f.concat(i) } return this.pushStack(f, a, d.selector) }
    }
}); c.extend({ clean: function (a, b, d, f) {
    b = b || s; if (typeof b.createElement === "undefined") b = b.ownerDocument || b[0] && b[0].ownerDocument || s; for (var e = [], j = 0, i; (i = a[j]) != null; j++) {
        if (typeof i === "number") i += ""; if (i) {
            if (typeof i === "string" && !jb.test(i)) i = b.createTextNode(i); else if (typeof i === "string") {
                i = i.replace(Ka, Ma); var o = (La.exec(i) || ["",
""])[1].toLowerCase(), k = F[o] || F._default, n = k[0], r = b.createElement("div"); for (r.innerHTML = k[1] + i + k[2]; n--; ) r = r.lastChild; if (!c.support.tbody) { n = ib.test(i); o = o === "table" && !n ? r.firstChild && r.firstChild.childNodes : k[1] === "<table>" && !n ? r.childNodes : []; for (k = o.length - 1; k >= 0; --k) c.nodeName(o[k], "tbody") && !o[k].childNodes.length && o[k].parentNode.removeChild(o[k]) } !c.support.leadingWhitespace && V.test(i) && r.insertBefore(b.createTextNode(V.exec(i)[0]), r.firstChild); i = r.childNodes
            } if (i.nodeType) e.push(i); else e =
c.merge(e, i)
        }
    } if (d) for (j = 0; e[j]; j++) if (f && c.nodeName(e[j], "script") && (!e[j].type || e[j].type.toLowerCase() === "text/javascript")) f.push(e[j].parentNode ? e[j].parentNode.removeChild(e[j]) : e[j]); else { e[j].nodeType === 1 && e.splice.apply(e, [j + 1, 0].concat(c.makeArray(e[j].getElementsByTagName("script")))); d.appendChild(e[j]) } return e
}, cleanData: function (a) {
    for (var b, d, f = c.cache, e = c.event.special, j = c.support.deleteExpando, i = 0, o; (o = a[i]) != null; i++) if (d = o[c.expando]) {
        b = f[d]; if (b.events) for (var k in b.events) e[k] ?
c.event.remove(o, k) : Ca(o, k, b.handle); if (j) delete o[c.expando]; else o.removeAttribute && o.removeAttribute(c.expando); delete f[d]
    }
}
}); var kb = /z-?index|font-?weight|opacity|zoom|line-?height/i, Na = /alpha\([^)]*\)/, Oa = /opacity=([^)]*)/, ha = /float/i, ia = /-([a-z])/ig, lb = /([A-Z])/g, mb = /^-?\d+(?:px)?$/i, nb = /^-?\d/, ob = { position: "absolute", visibility: "hidden", display: "block" }, pb = ["Left", "Right"], qb = ["Top", "Bottom"], rb = s.defaultView && s.defaultView.getComputedStyle, Pa = c.support.cssFloat ? "cssFloat" : "styleFloat", ja =
function (a, b) { return b.toUpperCase() }; c.fn.css = function (a, b) { return X(this, a, b, true, function (d, f, e) { if (e === w) return c.curCSS(d, f); if (typeof e === "number" && !kb.test(f)) e += "px"; c.style(d, f, e) }) }; c.extend({ style: function (a, b, d) {
    if (!a || a.nodeType === 3 || a.nodeType === 8) return w; if ((b === "width" || b === "height") && parseFloat(d) < 0) d = w; var f = a.style || a, e = d !== w; if (!c.support.opacity && b === "opacity") {
        if (e) {
            f.zoom = 1; b = parseInt(d, 10) + "" === "NaN" ? "" : "alpha(opacity=" + d * 100 + ")"; a = f.filter || c.curCSS(a, "filter") || ""; f.filter =
Na.test(a) ? a.replace(Na, b) : b
        } return f.filter && f.filter.indexOf("opacity=") >= 0 ? parseFloat(Oa.exec(f.filter)[1]) / 100 + "" : ""
    } if (ha.test(b)) b = Pa; b = b.replace(ia, ja); if (e) f[b] = d; return f[b]
}, css: function (a, b, d, f) {
    if (b === "width" || b === "height") {
        var e, j = b === "width" ? pb : qb; function i() {
            e = b === "width" ? a.offsetWidth : a.offsetHeight; f !== "border" && c.each(j, function () {
                f || (e -= parseFloat(c.curCSS(a, "padding" + this, true)) || 0); if (f === "margin") e += parseFloat(c.curCSS(a, "margin" + this, true)) || 0; else e -= parseFloat(c.curCSS(a,
"border" + this + "Width", true)) || 0
            })
        } a.offsetWidth !== 0 ? i() : c.swap(a, ob, i); return Math.max(0, Math.round(e))
    } return c.curCSS(a, b, d)
}, curCSS: function (a, b, d) {
    var f, e = a.style; if (!c.support.opacity && b === "opacity" && a.currentStyle) { f = Oa.test(a.currentStyle.filter || "") ? parseFloat(RegExp.$1) / 100 + "" : ""; return f === "" ? "1" : f } if (ha.test(b)) b = Pa; if (!d && e && e[b]) f = e[b]; else if (rb) {
        if (ha.test(b)) b = "float"; b = b.replace(lb, "-$1").toLowerCase(); e = a.ownerDocument.defaultView; if (!e) return null; if (a = e.getComputedStyle(a, null)) f =
a.getPropertyValue(b); if (b === "opacity" && f === "") f = "1"
    } else if (a.currentStyle) { d = b.replace(ia, ja); f = a.currentStyle[b] || a.currentStyle[d]; if (!mb.test(f) && nb.test(f)) { b = e.left; var j = a.runtimeStyle.left; a.runtimeStyle.left = a.currentStyle.left; e.left = d === "fontSize" ? "1em" : f || 0; f = e.pixelLeft + "px"; e.left = b; a.runtimeStyle.left = j } } return f
}, swap: function (a, b, d) { var f = {}; for (var e in b) { f[e] = a.style[e]; a.style[e] = b[e] } d.call(a); for (e in b) a.style[e] = f[e] }
}); if (c.expr && c.expr.filters) {
        c.expr.filters.hidden = function (a) {
            var b =
a.offsetWidth, d = a.offsetHeight, f = a.nodeName.toLowerCase() === "tr"; return b === 0 && d === 0 && !f ? true : b > 0 && d > 0 && !f ? false : c.curCSS(a, "display") === "none"
        }; c.expr.filters.visible = function (a) { return !c.expr.filters.hidden(a) }
    } var sb = J(), tb = /<script(.|\s)*?\/script>/gi, ub = /select|textarea/i, vb = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i, N = /=\?(&|$)/, ka = /\?/, wb = /(\?|&)_=.*?(&|$)/, xb = /^(\w+:)?\/\/([^\/?#]+)/, yb = /%20/g, zb = c.fn.load; c.fn.extend({ load: function (a, b, d) {
        if (typeof a !==
"string") return zb.call(this, a); else if (!this.length) return this; var f = a.indexOf(" "); if (f >= 0) { var e = a.slice(f, a.length); a = a.slice(0, f) } f = "GET"; if (b) if (c.isFunction(b)) { d = b; b = null } else if (typeof b === "object") { b = c.param(b, c.ajaxSettings.traditional); f = "POST" } var j = this; c.ajax({ url: a, type: f, dataType: "html", data: b, complete: function (i, o) { if (o === "success" || o === "notmodified") j.html(e ? c("<div />").append(i.responseText.replace(tb, "")).find(e) : i.responseText); d && j.each(d, [i.responseText, o, i]) } }); return this
    },
        serialize: function () { return c.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { return this.elements ? c.makeArray(this.elements) : this }).filter(function () { return this.name && !this.disabled && (this.checked || ub.test(this.nodeName) || vb.test(this.type)) }).map(function (a, b) { a = c(this).val(); return a == null ? null : c.isArray(a) ? c.map(a, function (d) { return { name: b.name, value: d} }) : { name: b.name, value: a} }).get() }
    }); c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function (a, b) { c.fn[b] = function (d) { return this.bind(b, d) } }); c.extend({ get: function (a, b, d, f) { if (c.isFunction(b)) { f = f || d; d = b; b = null } return c.ajax({ type: "GET", url: a, data: b, success: d, dataType: f }) }, getScript: function (a, b) { return c.get(a, null, b, "script") }, getJSON: function (a, b, d) { return c.get(a, b, d, "json") }, post: function (a, b, d, f) { if (c.isFunction(b)) { f = f || d; d = b; b = {} } return c.ajax({ type: "POST", url: a, data: b, success: d, dataType: f }) }, ajaxSetup: function (a) { c.extend(c.ajaxSettings, a) }, ajaxSettings: { url: location.href,
    global: true, type: "GET", contentType: "application/x-www-form-urlencoded", processData: true, async: true, xhr: A.XMLHttpRequest && (A.location.protocol !== "file:" || !A.ActiveXObject) ? function () { return new A.XMLHttpRequest } : function () { try { return new A.ActiveXObject("Microsoft.XMLHTTP") } catch (a) { } }, accepts: { xml: "application/xml, text/xml", html: "text/html", script: "text/javascript, application/javascript", json: "application/json, text/javascript", text: "text/plain", _default: "*/*" }
}, lastModified: {}, etag: {}, ajax: function (a) {
    function b() {
        e.success &&
e.success.call(k, o, i, x); e.global && f("ajaxSuccess", [x, e])
    } function d() { e.complete && e.complete.call(k, x, i); e.global && f("ajaxComplete", [x, e]); e.global && ! --c.active && c.event.trigger("ajaxStop") } function f(q, p) { (e.context ? c(e.context) : c.event).trigger(q, p) } var e = c.extend(true, {}, c.ajaxSettings, a), j, i, o, k = a && a.context || e, n = e.type.toUpperCase(); if (e.data && e.processData && typeof e.data !== "string") e.data = c.param(e.data, e.traditional); if (e.dataType === "jsonp") {
        if (n === "GET") N.test(e.url) || (e.url += (ka.test(e.url) ?
"&" : "?") + (e.jsonp || "callback") + "=?"); else if (!e.data || !N.test(e.data)) e.data = (e.data ? e.data + "&" : "") + (e.jsonp || "callback") + "=?"; e.dataType = "json"
    } if (e.dataType === "json" && (e.data && N.test(e.data) || N.test(e.url))) { j = e.jsonpCallback || "jsonp" + sb++; if (e.data) e.data = (e.data + "").replace(N, "=" + j + "$1"); e.url = e.url.replace(N, "=" + j + "$1"); e.dataType = "script"; A[j] = A[j] || function (q) { o = q; b(); d(); A[j] = w; try { delete A[j] } catch (p) { } z && z.removeChild(C) } } if (e.dataType === "script" && e.cache === null) e.cache = false; if (e.cache ===
false && n === "GET") { var r = J(), u = e.url.replace(wb, "$1_=" + r + "$2"); e.url = u + (u === e.url ? (ka.test(e.url) ? "&" : "?") + "_=" + r : "") } if (e.data && n === "GET") e.url += (ka.test(e.url) ? "&" : "?") + e.data; e.global && !c.active++ && c.event.trigger("ajaxStart"); r = (r = xb.exec(e.url)) && (r[1] && r[1] !== location.protocol || r[2] !== location.host); if (e.dataType === "script" && n === "GET" && r) {
        var z = s.getElementsByTagName("head")[0] || s.documentElement, C = s.createElement("script"); C.src = e.url; if (e.scriptCharset) C.charset = e.scriptCharset; if (!j) {
            var B =
false; C.onload = C.onreadystatechange = function () { if (!B && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) { B = true; b(); d(); C.onload = C.onreadystatechange = null; z && C.parentNode && z.removeChild(C) } }
        } z.insertBefore(C, z.firstChild); return w
    } var E = false, x = e.xhr(); if (x) {
        e.username ? x.open(n, e.url, e.async, e.username, e.password) : x.open(n, e.url, e.async); try {
            if (e.data || a && a.contentType) x.setRequestHeader("Content-Type", e.contentType); if (e.ifModified) {
                c.lastModified[e.url] && x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]); c.etag[e.url] && x.setRequestHeader("If-None-Match", c.etag[e.url])
            } r || x.setRequestHeader("X-Requested-With", "XMLHttpRequest"); x.setRequestHeader("Accept", e.dataType && e.accepts[e.dataType] ? e.accepts[e.dataType] + ", */*" : e.accepts._default)
        } catch (ga) { } if (e.beforeSend && e.beforeSend.call(k, x, e) === false) { e.global && ! --c.active && c.event.trigger("ajaxStop"); x.abort(); return false } e.global && f("ajaxSend", [x, e]); var g = x.onreadystatechange = function (q) {
            if (!x || x.readyState === 0 || q === "abort") {
                E ||
d(); E = true; if (x) x.onreadystatechange = c.noop
            } else if (!E && x && (x.readyState === 4 || q === "timeout")) { E = true; x.onreadystatechange = c.noop; i = q === "timeout" ? "timeout" : !c.httpSuccess(x) ? "error" : e.ifModified && c.httpNotModified(x, e.url) ? "notmodified" : "success"; var p; if (i === "success") try { o = c.httpData(x, e.dataType, e) } catch (v) { i = "parsererror"; p = v } if (i === "success" || i === "notmodified") j || b(); else c.handleError(e, x, i, p); d(); q === "timeout" && x.abort(); if (e.async) x = null }
        }; try {
            var h = x.abort; x.abort = function () {
                x && h.call(x);
                g("abort")
            }
        } catch (l) { } e.async && e.timeout > 0 && setTimeout(function () { x && !E && g("timeout") }, e.timeout); try { x.send(n === "POST" || n === "PUT" || n === "DELETE" ? e.data : null) } catch (m) { c.handleError(e, x, null, m); d() } e.async || g(); return x
    }
}, handleError: function (a, b, d, f) { if (a.error) a.error.call(a.context || a, b, d, f); if (a.global) (a.context ? c(a.context) : c.event).trigger("ajaxError", [b, a, f]) }, active: 0, httpSuccess: function (a) {
    try {
        return !a.status && location.protocol === "file:" || a.status >= 200 && a.status < 300 || a.status === 304 || a.status ===
1223 || a.status === 0
    } catch (b) { } return false
}, httpNotModified: function (a, b) { var d = a.getResponseHeader("Last-Modified"), f = a.getResponseHeader("Etag"); if (d) c.lastModified[b] = d; if (f) c.etag[b] = f; return a.status === 304 || a.status === 0 }, httpData: function (a, b, d) {
    var f = a.getResponseHeader("content-type") || "", e = b === "xml" || !b && f.indexOf("xml") >= 0; a = e ? a.responseXML : a.responseText; e && a.documentElement.nodeName === "parsererror" && c.error("parsererror"); if (d && d.dataFilter) a = d.dataFilter(a, b); if (typeof a === "string") if (b ===
"json" || !b && f.indexOf("json") >= 0) a = c.parseJSON(a); else if (b === "script" || !b && f.indexOf("javascript") >= 0) c.globalEval(a); return a
}, param: function (a, b) {
    function d(i, o) { if (c.isArray(o)) c.each(o, function (k, n) { b || /\[\]$/.test(i) ? f(i, n) : d(i + "[" + (typeof n === "object" || c.isArray(n) ? k : "") + "]", n) }); else !b && o != null && typeof o === "object" ? c.each(o, function (k, n) { d(i + "[" + k + "]", n) }) : f(i, o) } function f(i, o) { o = c.isFunction(o) ? o() : o; e[e.length] = encodeURIComponent(i) + "=" + encodeURIComponent(o) } var e = []; if (b === w) b = c.ajaxSettings.traditional;
    if (c.isArray(a) || a.jquery) c.each(a, function () { f(this.name, this.value) }); else for (var j in a) d(j, a[j]); return e.join("&").replace(yb, "+")
}
}); var la = {}, Ab = /toggle|show|hide/, Bb = /^([+-]=)?([\d+-.]+)(.*)$/, W, va = [["height", "marginTop", "marginBottom", "paddingTop", "paddingBottom"], ["width", "marginLeft", "marginRight", "paddingLeft", "paddingRight"], ["opacity"]]; c.fn.extend({ show: function (a, b) {
    if (a || a === 0) return this.animate(K("show", 3), a, b); else {
        a = 0; for (b = this.length; a < b; a++) {
            var d = c.data(this[a], "olddisplay");
            this[a].style.display = d || ""; if (c.css(this[a], "display") === "none") { d = this[a].nodeName; var f; if (la[d]) f = la[d]; else { var e = c("<" + d + " />").appendTo("body"); f = e.css("display"); if (f === "none") f = "block"; e.remove(); la[d] = f } c.data(this[a], "olddisplay", f) }
        } a = 0; for (b = this.length; a < b; a++) this[a].style.display = c.data(this[a], "olddisplay") || ""; return this
    }
}, hide: function (a, b) {
    if (a || a === 0) return this.animate(K("hide", 3), a, b); else {
        a = 0; for (b = this.length; a < b; a++) {
            var d = c.data(this[a], "olddisplay"); !d && d !== "none" && c.data(this[a],
"olddisplay", c.css(this[a], "display"))
        } a = 0; for (b = this.length; a < b; a++) this[a].style.display = "none"; return this
    }
}, _toggle: c.fn.toggle, toggle: function (a, b) { var d = typeof a === "boolean"; if (c.isFunction(a) && c.isFunction(b)) this._toggle.apply(this, arguments); else a == null || d ? this.each(function () { var f = d ? a : c(this).is(":hidden"); c(this)[f ? "show" : "hide"]() }) : this.animate(K("toggle", 3), a, b); return this }, fadeTo: function (a, b, d) { return this.filter(":hidden").css("opacity", 0).show().end().animate({ opacity: b }, a, d) },
    animate: function (a, b, d, f) {
        var e = c.speed(b, d, f); if (c.isEmptyObject(a)) return this.each(e.complete); return this[e.queue === false ? "each" : "queue"](function () {
            var j = c.extend({}, e), i, o = this.nodeType === 1 && c(this).is(":hidden"), k = this; for (i in a) {
                var n = i.replace(ia, ja); if (i !== n) { a[n] = a[i]; delete a[i]; i = n } if (a[i] === "hide" && o || a[i] === "show" && !o) return j.complete.call(this); if ((i === "height" || i === "width") && this.style) { j.display = c.css(this, "display"); j.overflow = this.style.overflow } if (c.isArray(a[i])) {
                    (j.specialEasing =
j.specialEasing || {})[i] = a[i][1]; a[i] = a[i][0]
                }
            } if (j.overflow != null) this.style.overflow = "hidden"; j.curAnim = c.extend({}, a); c.each(a, function (r, u) { var z = new c.fx(k, j, r); if (Ab.test(u)) z[u === "toggle" ? o ? "show" : "hide" : u](a); else { var C = Bb.exec(u), B = z.cur(true) || 0; if (C) { u = parseFloat(C[2]); var E = C[3] || "px"; if (E !== "px") { k.style[r] = (u || 1) + E; B = (u || 1) / z.cur(true) * B; k.style[r] = B + E } if (C[1]) u = (C[1] === "-=" ? -1 : 1) * u + B; z.custom(B, u, E) } else z.custom(B, u, "") } }); return true
        })
    }, stop: function (a, b) {
        var d = c.timers; a && this.queue([]);
        this.each(function () { for (var f = d.length - 1; f >= 0; f--) if (d[f].elem === this) { b && d[f](true); d.splice(f, 1) } }); b || this.dequeue(); return this
    }
}); c.each({ slideDown: K("show", 1), slideUp: K("hide", 1), slideToggle: K("toggle", 1), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide"} }, function (a, b) { c.fn[a] = function (d, f) { return this.animate(b, d, f) } }); c.extend({ speed: function (a, b, d) {
    var f = a && typeof a === "object" ? a : { complete: d || !d && b || c.isFunction(a) && a, duration: a, easing: d && b || b && !c.isFunction(b) && b }; f.duration = c.fx.off ? 0 : typeof f.duration ===
"number" ? f.duration : c.fx.speeds[f.duration] || c.fx.speeds._default; f.old = f.complete; f.complete = function () { f.queue !== false && c(this).dequeue(); c.isFunction(f.old) && f.old.call(this) }; return f
}, easing: { linear: function (a, b, d, f) { return d + f * a }, swing: function (a, b, d, f) { return (-Math.cos(a * Math.PI) / 2 + 0.5) * f + d } }, timers: [], fx: function (a, b, d) { this.options = b; this.elem = a; this.prop = d; if (!b.orig) b.orig = {} }
}); c.fx.prototype = { update: function () {
    this.options.step && this.options.step.call(this.elem, this.now, this); (c.fx.step[this.prop] ||
c.fx.step._default)(this); if ((this.prop === "height" || this.prop === "width") && this.elem.style) this.elem.style.display = "block"
}, cur: function (a) { if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) return this.elem[this.prop]; return (a = parseFloat(c.css(this.elem, this.prop, a))) && a > -10000 ? a : parseFloat(c.curCSS(this.elem, this.prop)) || 0 }, custom: function (a, b, d) {
    function f(j) { return e.step(j) } this.startTime = J(); this.start = a; this.end = b; this.unit = d || this.unit || "px"; this.now = this.start;
    this.pos = this.state = 0; var e = this; f.elem = this.elem; if (f() && c.timers.push(f) && !W) W = setInterval(c.fx.tick, 13)
}, show: function () { this.options.orig[this.prop] = c.style(this.elem, this.prop); this.options.show = true; this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur()); c(this.elem).show() }, hide: function () { this.options.orig[this.prop] = c.style(this.elem, this.prop); this.options.hide = true; this.custom(this.cur(), 0) }, step: function (a) {
    var b = J(), d = true; if (a || b >= this.options.duration + this.startTime) {
        this.now =
this.end; this.pos = this.state = 1; this.update(); this.options.curAnim[this.prop] = true; for (var f in this.options.curAnim) if (this.options.curAnim[f] !== true) d = false; if (d) {
            if (this.options.display != null) { this.elem.style.overflow = this.options.overflow; a = c.data(this.elem, "olddisplay"); this.elem.style.display = a ? a : this.options.display; if (c.css(this.elem, "display") === "none") this.elem.style.display = "block" } this.options.hide && c(this.elem).hide(); if (this.options.hide || this.options.show) for (var e in this.options.curAnim) c.style(this.elem,
e, this.options.orig[e]); this.options.complete.call(this.elem)
        } return false
    } else { e = b - this.startTime; this.state = e / this.options.duration; a = this.options.easing || (c.easing.swing ? "swing" : "linear"); this.pos = c.easing[this.options.specialEasing && this.options.specialEasing[this.prop] || a](this.state, e, 0, 1, this.options.duration); this.now = this.start + (this.end - this.start) * this.pos; this.update() } return true
}
}; c.extend(c.fx, { tick: function () {
    for (var a = c.timers, b = 0; b < a.length; b++) a[b]() || a.splice(b--, 1); a.length ||
c.fx.stop()
}, stop: function () { clearInterval(W); W = null }, speeds: { slow: 600, fast: 200, _default: 400 }, step: { opacity: function (a) { c.style(a.elem, "opacity", a.now) }, _default: function (a) { if (a.elem.style && a.elem.style[a.prop] != null) a.elem.style[a.prop] = (a.prop === "width" || a.prop === "height" ? Math.max(0, a.now) : a.now) + a.unit; else a.elem[a.prop] = a.now } }
}); if (c.expr && c.expr.filters) c.expr.filters.animated = function (a) { return c.grep(c.timers, function (b) { return a === b.elem }).length }; c.fn.offset = "getBoundingClientRect" in s.documentElement ?
function (a) { var b = this[0]; if (a) return this.each(function (e) { c.offset.setOffset(this, a, e) }); if (!b || !b.ownerDocument) return null; if (b === b.ownerDocument.body) return c.offset.bodyOffset(b); var d = b.getBoundingClientRect(), f = b.ownerDocument; b = f.body; f = f.documentElement; return { top: d.top + (self.pageYOffset || c.support.boxModel && f.scrollTop || b.scrollTop) - (f.clientTop || b.clientTop || 0), left: d.left + (self.pageXOffset || c.support.boxModel && f.scrollLeft || b.scrollLeft) - (f.clientLeft || b.clientLeft || 0)} } : function (a) {
    var b =
this[0]; if (a) return this.each(function (r) { c.offset.setOffset(this, a, r) }); if (!b || !b.ownerDocument) return null; if (b === b.ownerDocument.body) return c.offset.bodyOffset(b); c.offset.initialize(); var d = b.offsetParent, f = b, e = b.ownerDocument, j, i = e.documentElement, o = e.body; f = (e = e.defaultView) ? e.getComputedStyle(b, null) : b.currentStyle; for (var k = b.offsetTop, n = b.offsetLeft; (b = b.parentNode) && b !== o && b !== i; ) {
        if (c.offset.supportsFixedPosition && f.position === "fixed") break; j = e ? e.getComputedStyle(b, null) : b.currentStyle;
        k -= b.scrollTop; n -= b.scrollLeft; if (b === d) { k += b.offsetTop; n += b.offsetLeft; if (c.offset.doesNotAddBorder && !(c.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(b.nodeName))) { k += parseFloat(j.borderTopWidth) || 0; n += parseFloat(j.borderLeftWidth) || 0 } f = d; d = b.offsetParent } if (c.offset.subtractsBorderForOverflowNotVisible && j.overflow !== "visible") { k += parseFloat(j.borderTopWidth) || 0; n += parseFloat(j.borderLeftWidth) || 0 } f = j
    } if (f.position === "relative" || f.position === "static") { k += o.offsetTop; n += o.offsetLeft } if (c.offset.supportsFixedPosition &&
f.position === "fixed") { k += Math.max(i.scrollTop, o.scrollTop); n += Math.max(i.scrollLeft, o.scrollLeft) } return { top: k, left: n }
}; c.offset = { initialize: function () {
    var a = s.body, b = s.createElement("div"), d, f, e, j = parseFloat(c.curCSS(a, "marginTop", true)) || 0; c.extend(b.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" }); b.innerHTML = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
    a.insertBefore(b, a.firstChild); d = b.firstChild; f = d.firstChild; e = d.nextSibling.firstChild.firstChild; this.doesNotAddBorder = f.offsetTop !== 5; this.doesAddBorderForTableAndCells = e.offsetTop === 5; f.style.position = "fixed"; f.style.top = "20px"; this.supportsFixedPosition = f.offsetTop === 20 || f.offsetTop === 15; f.style.position = f.style.top = ""; d.style.overflow = "hidden"; d.style.position = "relative"; this.subtractsBorderForOverflowNotVisible = f.offsetTop === -5; this.doesNotIncludeMarginInBodyOffset = a.offsetTop !== j; a.removeChild(b);
    c.offset.initialize = c.noop
}, bodyOffset: function (a) { var b = a.offsetTop, d = a.offsetLeft; c.offset.initialize(); if (c.offset.doesNotIncludeMarginInBodyOffset) { b += parseFloat(c.curCSS(a, "marginTop", true)) || 0; d += parseFloat(c.curCSS(a, "marginLeft", true)) || 0 } return { top: b, left: d} }, setOffset: function (a, b, d) {
    if (/static/.test(c.curCSS(a, "position"))) a.style.position = "relative"; var f = c(a), e = f.offset(), j = parseInt(c.curCSS(a, "top", true), 10) || 0, i = parseInt(c.curCSS(a, "left", true), 10) || 0; if (c.isFunction(b)) b = b.call(a,
d, e); d = { top: b.top - e.top + j, left: b.left - e.left + i }; "using" in b ? b.using.call(a, d) : f.css(d)
}
}; c.fn.extend({ position: function () {
    if (!this[0]) return null; var a = this[0], b = this.offsetParent(), d = this.offset(), f = /^body|html$/i.test(b[0].nodeName) ? { top: 0, left: 0} : b.offset(); d.top -= parseFloat(c.curCSS(a, "marginTop", true)) || 0; d.left -= parseFloat(c.curCSS(a, "marginLeft", true)) || 0; f.top += parseFloat(c.curCSS(b[0], "borderTopWidth", true)) || 0; f.left += parseFloat(c.curCSS(b[0], "borderLeftWidth", true)) || 0; return { top: d.top -
f.top, left: d.left - f.left
    }
}, offsetParent: function () { return this.map(function () { for (var a = this.offsetParent || s.body; a && !/^body|html$/i.test(a.nodeName) && c.css(a, "position") === "static"; ) a = a.offsetParent; return a }) }
}); c.each(["Left", "Top"], function (a, b) {
    var d = "scroll" + b; c.fn[d] = function (f) {
        var e = this[0], j; if (!e) return null; if (f !== w) return this.each(function () { if (j = wa(this)) j.scrollTo(!a ? f : c(j).scrollLeft(), a ? f : c(j).scrollTop()); else this[d] = f }); else return (j = wa(e)) ? "pageXOffset" in j ? j[a ? "pageYOffset" :
"pageXOffset"] : c.support.boxModel && j.document.documentElement[d] || j.document.body[d] : e[d]
    }
}); c.each(["Height", "Width"], function (a, b) {
    var d = b.toLowerCase(); c.fn["inner" + b] = function () { return this[0] ? c.css(this[0], d, false, "padding") : null }; c.fn["outer" + b] = function (f) { return this[0] ? c.css(this[0], d, false, f ? "margin" : "border") : null }; c.fn[d] = function (f) {
        var e = this[0]; if (!e) return f == null ? null : this; if (c.isFunction(f)) return this.each(function (j) { var i = c(this); i[d](f.call(this, j, i[d]())) }); return "scrollTo" in
e && e.document ? e.document.compatMode === "CSS1Compat" && e.document.documentElement["client" + b] || e.document.body["client" + b] : e.nodeType === 9 ? Math.max(e.documentElement["client" + b], e.body["scroll" + b], e.documentElement["scroll" + b], e.body["offset" + b], e.documentElement["offset" + b]) : f === w ? c.css(e, d) : this.css(d, typeof f === "string" ? f : f + "px")
    }
}); A.jQuery = A.$ = c
})(window);
//-- cufon-yui.js

/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09
 */
var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E<B;++E){D=C[E].split("=",2).reverse();G.stops.push([D[1]||E/(B-1),D[0]])}return G}),quotedList:j(function(E){var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;while(B=C.exec(E)){D.push(B[3]||B[1])}return D}),recognizesMedia:j(function(G){var E=document.createElement("style"),D,C,B;E.type="text/css";E.media=G;try{E.appendChild(document.createTextNode("/**/"))}catch(F){}C=g("head")[0];C.insertBefore(E,C.firstChild);D=(E.sheet||E.styleSheet);B=D&&!D.disabled;C.removeChild(E);return B}),removeClass:function(D,C){var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");D.className=D.className.replace(B,"");return D},supports:function(D,C){var B=document.createElement("span").style;if(B[D]===undefined){return false}B[D]=C;return B[D]===C},textAlign:function(E,D,B,C){if(D.get("textAlign")=="right"){if(B>0){E=" "+E}}else{if(B<C-1){E+=" "}}return E},textShadow:j(function(F){if(F=="none"){return null}var E=[],G={},B,C=0;var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(B=D.exec(F)){if(B[0]==","){E.push(G);G={};C=0}else{if(B[1]){G.color=B[1]}else{G[["offX","offY","blur"][C++]]=B[2]}}}E.push(G);return E}),textTransform:(function(){var B={uppercase:function(C){return C.toUpperCase()},lowercase:function(C){return C.toLowerCase()},capitalize:function(C){return C.replace(/\b./g,function(D){return D.toUpperCase()})}};return function(E,D){var C=B[D.get("textTransform")];return C?C(E):E}})(),whiteSpace:(function(){var D={inline:1,"inline-block":1,"run-in":1};var C=/^\s+/,B=/\s+$/;return function(H,F,G,E){if(E){if(E.nodeName.toLowerCase()=="br"){H=H.replace(C,"")}}if(D[F.get("display")]){return H}if(!G.previousSibling){H=H.replace(C,"")}if(!G.nextSibling){H=H.replace(B,"")}return H}})()};n.ready=(function(){var B=!n.recognizesMedia("all"),E=false;var D=[],H=function(){B=true;for(var K;K=D.shift();K()){}};var I=g("link"),J=g("style");function C(K){return K.disabled||G(K.sheet,K.media||"screen")}function G(M,P){if(!n.recognizesMedia(P||"all")){return true}if(!M||M.disabled){return false}try{var Q=M.cssRules,O;if(Q){search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){switch(O.type){case 2:break;case 3:if(!G(O.styleSheet,O.media.mediaText)){return false}break;default:break search}}}}catch(N){}return true}function F(){if(document.createStyleSheet){return true}var L,K;for(K=0;L=I[K];++K){if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){return false}}for(K=0;L=J[K];++K){if(!C(L)){return false}}return true}x.ready(function(){if(!E){E=n.getStyle(document.body).isUsable()}if(B||(E&&F())){H()}else{setTimeout(arguments.callee,10)}});return function(K){if(B){K()}else{D.push(K)}}})();function s(D){var C=this.face=D.face,B={"\u0020":1,"\u00a0":1,"\u3000":1};this.glyphs=D.glyphs;this.w=D.w;this.baseSize=parseInt(C["units-per-em"],10);this.family=C["font-family"].toLowerCase();this.weight=C["font-weight"];this.style=C["font-style"]||"normal";this.viewBox=(function(){var F=C.bbox.split(/\s+/);var E={minX:parseInt(F[0],10),minY:parseInt(F[1],10),maxX:parseInt(F[2],10),maxY:parseInt(F[3],10)};E.width=E.maxX-E.minX;E.height=E.maxY-E.minY;E.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return E})();this.ascent=-parseInt(C.ascent,10);this.descent=-parseInt(C.descent,10);this.height=-this.ascent+this.descent;this.spacing=function(L,N,E){var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;while(H=L[++J]){M=O[H]||this.missingGlyph;if(!M){continue}if(K){F-=G=K[H]||0;P[I]-=G}F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);K=M.k}P.total=F;return P}}function f(){var C={},B={oblique:"italic",italic:"oblique"};this.add=function(D){(C[D.style]||(C[D.style]={}))[D.weight]=D};this.get=function(H,I){var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;if(!G){return null}I={normal:400,bold:700}[I]||parseInt(I,10);if(G[I]){return G[I]}var E={1:1,99:0}[I%100],K=[],F,D;if(E===undefined){E=I>400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||J<F){F=J}if(!D||J>D){D=J}K.push(J)}if(I<F){I=F}if(I>D){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1});return G[K[0]]}}function r(){function D(F,G){if(F.contains){return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G){var F=G.relatedTarget;if(!F||D(this,F)){return}C(this,G.type=="mouseover")}function E(F){C(this,F.type=="mouseenter")}function C(F,G){setTimeout(function(){var H=d.get(F).options;m.replace(F,G?h(H,H.hover):H,true)},10)}this.attach=function(F){if(F.onmouseenter===undefined){q(F,"mouseover",B);q(F,"mouseout",B)}else{q(F,"mouseenter",E);q(F,"mouseleave",E)}}}function u(){var C=[],D={};function B(H){var E=[],G;for(var F=0;G=H[F];++F){E[F]=C[D[G]]}return E}this.add=function(F,E){D[F]=C.push(E)-1};this.repeat=function(){var E=arguments.length?B(arguments):C,F;for(var G=0;F=E[G++];){m.replace(F[0],F[1],true)}}}function A(){var D={},B=0;function C(E){return E.cufid||(E.cufid=++B)}this.get=function(E){var F=C(E);return D[F]||(D[F]={})}}function a(B){var D={},C={};this.extend=function(E){for(var F in E){if(k(E,F)){D[F]=E[F]}}return this};this.get=function(E){return D[E]!=undefined?D[E]:B[E]};this.getSize=function(F,E){return C[F]||(C[F]=new n.Size(this.get(F),E))};this.isUsable=function(){return !!B}}function q(C,B,D){if(C.addEventListener){C.addEventListener(B,D,false)}else{if(C.attachEvent){C.attachEvent("on"+B,function(){return D.call(C,window.event)})}}}function v(C,B){var D=d.get(C);if(D.options){return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){b.attach(C)}D.options=B;return C}function j(B){var C={};return function(D){if(!k(C,D)){C[D]=B.apply(null,arguments)}return C[D]}}function c(F,E){var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;for(var C=0;D=B[C];++C){if(i[D]){return i[D].get(E.get("fontStyle"),E.get("fontWeight"))}}return null}function g(B){return document.getElementsByTagName(B)}function k(C,B){return C.hasOwnProperty(B)}function h(){var C={},B,F;for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){for(F in B){if(k(B,F)){C[F]=B[F]}}}return C}function o(E,M,C,N,F,D){var K=document.createDocumentFragment(),H;if(M===""){return K}var L=N.separate;var I=M.split(p[L]),B=(L=="words");if(B&&t){if(/^\s/.test(M)){I.unshift("")}if(/\s$/.test(M)){I.push("")}}for(var J=0,G=I.length;J<G;++J){H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);if(H){K.appendChild(H)}}return K}function l(D,M){var C=D.nodeName.toLowerCase();if(M.ignore[C]){return}var E=!M.textless[C];var B=n.getStyle(v(D,M)).extend(M);var F=c(D,B),G,K,I,H,L,J;if(!F){return}for(G=D.firstChild;G;G=I){K=G.nodeType;I=G.nextSibling;if(E&&K==3){if(H){H.appendData(G.data);D.removeChild(G)}else{H=G}if(I){continue}}if(H){D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);H=null}if(K==1){if(G.firstChild){if(G.nodeName.toLowerCase()=="cufon"){z[M.engine](F,null,B,M,G,D)}else{arguments.callee(G,M)}}J=G}}}var t=" ".split(/\s+/).length==0;var d=new A();var b=new r();var y=new u();var e=false;var z={},i={},w={autoDetect:false,engine:null,forceHitArea:false,hover:false,hoverables:{a:true},ignore:{applet:1,canvas:1,col:1,colgroup:1,head:1,iframe:1,map:1,optgroup:1,option:1,script:1,select:1,style:1,textarea:1,title:1,pre:1},printable:true,selector:(window.Sizzle||(window.jQuery&&function(B){return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){return $$(B)})||(window.$&&function(B){return $(B)})||(document.querySelectorAll&&function(B){return document.querySelectorAll(B)})||g),separate:"words",textless:{dl:1,html:1,ol:1,table:1,tbody:1,thead:1,tfoot:1,tr:1,ul:1},textShadow:"none"};var p={words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,characters:"",none:/^/};m.now=function(){x.ready();return m};m.refresh=function(){y.repeat.apply(y,arguments);return m};m.registerEngine=function(C,B){if(!B){return m}z[C]=B;return m.set("engine",C)};m.registerFont=function(D){if(!D){return m}var B=new s(D),C=B.family;if(!i[C]){i[C]=new f()}i[C].add(B);return m.set("fontFamily",'"'+C+'"')};m.replace=function(D,C,B){C=h(w,C);if(!C.engine){return m}if(!e){n.addClass(x.root(),"cufon-active cufon-loading");n.ready(function(){n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")});e=true}if(C.hover){C.forceHitArea=true}if(C.autoDetect){delete C.fontFamily}if(typeof C.textShadow=="string"){C.textShadow=n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)){C.textGradient=n.gradient(C.color)}else{delete C.textGradient}if(!B){y.add(D,arguments)}if(D.nodeType||typeof D=="string"){D=[D]}n.ready(function(){for(var F=0,E=D.length;F<E;++F){var G=D[F];if(typeof G=="string"){m.replace(C.selector(G),C,true)}else{l(G,C)}}});return m};m.set=function(B,C){w[B]=C;return m};return m})();Cufon.registerEngine("canvas",(function(){var b=document.createElement("canvas");if(!b||!b.getContext||!b.getContext.apply){return}b=null;var a=Cufon.CSS.supports("display","inline-block");var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var f=document.createElement("style");f.type="text/css";f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));document.getElementsByTagName("head")[0].appendChild(f);function d(p,h){var n=0,m=0;var g=[],o=/([mrvxe])([^a-z]*)/g,k;generate:for(var j=0;k=o.exec(p);++j){var l=k[2].split(",");switch(k[1]){case"v":g[j]={m:"bezierCurveTo",a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]};break;case"r":g[j]={m:"lineTo",a:[n+=~~l[0],m+=~~l[1]]};break;case"m":g[j]={m:"moveTo",a:[n=~~l[0],m=~~l[1]]};break;case"x":g[j]={m:"closePath"};break;case"e":break generate}h[g[j].m].apply(h,g[j].a)}return g}function c(m,k){for(var j=0,h=m.length;j<h;++j){var g=m[j];k[g.m].apply(k,g.a)}}return function(V,w,P,t,C,W){var k=(w===null);if(k){w=C.getAttribute("alt")}var A=V.viewBox;var m=P.getSize("fontSize",V.baseSize);var B=0,O=0,N=0,u=0;var z=t.textShadow,L=[];if(z){for(var U=z.length;U--;){var F=z[U];var K=m.convertFrom(parseFloat(F.offX));var I=m.convertFrom(parseFloat(F.offY));L[U]=[K,I];if(I<B){B=I}if(K>O){O=K}if(I>N){N=I}if(K<u){u=K}}}var Z=Cufon.CSS.textTransform(w,P).split("");var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));if(!E.length){return null}var h=E.total;O+=A.width-E[E.length-1];u+=A.minX;var s,n;if(k){s=C;n=C.firstChild}else{s=document.createElement("cufon");s.className="cufon cufon-canvas";s.setAttribute("alt",w);n=document.createElement("canvas");s.appendChild(n);if(t.printable){var S=document.createElement("cufontext");S.appendChild(document.createTextNode(w));s.appendChild(S)}}var aa=s.style;var H=n.style;var j=m.convert(A.height);var Y=Math.ceil(j);var M=Y/j;var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));var J=h*G;var Q=Math.ceil(m.convert(J+O-u));var o=Math.ceil(m.convert(A.height-B+N));n.width=Q;n.height=o;H.width=Q+"px";H.height=o+"px";B+=A.minY;H.top=Math.round(m.convert(B-V.ascent))+"px";H.left=Math.round(m.convert(u))+"px";var r=Math.max(Math.ceil(m.convert(J)),0)+"px";if(a){aa.width=r;aa.height=m.convert(V.height)+"px"}else{aa.paddingLeft=r;aa.paddingBottom=(m.convert(V.height)-1)+"px"}var X=n.getContext("2d"),D=j/A.height;X.scale(D,D*M);X.translate(-u,-B);X.save();function T(){var x=V.glyphs,ab,l=-1,g=-1,y;X.scale(G,1);while(y=Z[++l]){var ab=x[Z[l]]||V.missingGlyph;if(!ab){continue}if(ab.d){X.beginPath();if(ab.code){c(ab.code,X)}else{ab.code=d("m"+ab.d,X)}X.fill()}X.translate(E[++g],0)}X.restore()}if(z){for(var U=z.length;U--;){var F=z[U];X.save();X.fillStyle=F.color;X.translate.apply(X,L[U]);T()}}var q=t.textGradient;if(q){var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);for(var U=0,R=v.length;U<R;++U){p.addColorStop.apply(p,v[U])}X.fillStyle=p}else{X.fillStyle=P.get("color")}T();return s}})());Cufon.registerEngine("vml",(function(){var e=document.namespaces;if(!e){return}e.add("cvml","urn:schemas-microsoft-com:vml");e=null;var b=document.createElement("cvml:shape");b.style.behavior="url(#default#VML)";if(!b.coordsize){return}b=null;var h=(document.documentMode||0)<8;document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m<l;++m){i.push(n[m][0]*100+"% "+n[m][1])}o.colors=i.join(",");o.color2=n[l][1];g[q]=o}return g[q]}return function(ac,G,Y,C,K,ad,W){var n=(G===null);if(n){G=K.alt}var I=ac.viewBox;var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));var y,q;if(n){y=K;q=K.firstChild}else{y=document.createElement("cufon");y.className="cufon cufon-vml";y.alt=G;q=document.createElement("cufoncanvas");y.appendChild(q);if(C.printable){var Z=document.createElement("cufontext");Z.appendChild(document.createTextNode(G));y.appendChild(Z)}if(!W){y.appendChild(document.createElement("cvml:shape"))}}var ai=y.style;var R=q.style;var l=p.convert(I.height),af=Math.ceil(l);var V=af/l;var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));var U=I.minX,T=I.minY;R.height=af;R.top=Math.round(p.convert(T-ac.ascent));R.left=Math.round(p.convert(U));ai.height=p.convert(ac.height)+"px";var F=Y.get("color");var ag=Cufon.CSS.textTransform(G,Y).split("");var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));if(!L.length){return null}var k=L.total;var x=-U+k+(I.width-L[L.length-1]);var ah=p.convert(x*P),X=Math.round(ah);var O=x+","+I.height,m;var J="r"+O+"ns";var u=C.textGradient&&d(C.textGradient);var o=ac.glyphs,S=0;var H=C.textShadow;var ab=-1,aa=0,w;while(w=ag[++ab]){var D=o[ag[ab]]||ac.missingGlyph,v;if(!D){continue}if(n){v=q.childNodes[aa];while(v.firstChild){v.removeChild(v.firstChild)}}else{v=document.createElement("cvml:shape");q.appendChild(v)}v.stroked="f";v.coordsize=O;v.coordorigin=m=(U-S)+","+T;v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;v.fillcolor=F;if(u){v.appendChild(u.cloneNode(false))}var ae=v.style;ae.width=X;ae.height=af;if(H){var s=H[0],r=H[1];var B=Cufon.CSS.color(s.color),z;var N=document.createElement("cvml:shadow");N.on="t";N.color=B.color;N.offset=s.offX+","+s.offY;if(r){z=Cufon.CSS.color(r.color);N.type="double";N.color2=z.color;N.offset2=r.offX+","+r.offY}N.opacity=B.opacity||(z&&z.opacity)||1;v.appendChild(N)}S+=L[aa++]}var M=v.nextSibling,t,A;if(C.forceHitArea){if(!M){M=document.createElement("cvml:rect");M.stroked="f";M.className="cufon-vml-cover";t=document.createElement("cvml:fill");t.opacity=0;M.appendChild(t);q.appendChild(M)}A=M.style;A.width=X;A.height=af}else{if(M){q.removeChild(M)}}ai.width=Math.max(Math.ceil(p.convert(k*P)),0);if(h){var Q=Y.computedYAdjust;if(Q===undefined){var E=Y.get("lineHeight");if(E=="normal"){E="1em"}else{if(!isNaN(E)){E+="em"}}Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))}if(Q){ai.marginTop=Math.ceil(Q)+"px";ai.marginBottom=Q+"px"}}return y}})());
//-- Museo_300-etc
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright (c) 2008 by Jos Buivenga/exljbris. All rights reserved.
 * 
 * Trademark:
 * Museo is a trademark of Jos Buivenga/exljbris.
 * 
 * Full name:
 * Museo-300
 * 
 * Description:
 * Copyright (c) 2008 by Jos Buivenga/exljbris. All rights reserved.
 * 
 * Manufacturer:
 * Jos Buivenga
 * 
 * Designer:
 * Jos Buivenga
 * 
 * Vendor URL:
 * http://www.josbuivenga.demon.nl
 */
Cufon.registerFont({"w":218,"face":{"font-family":"Museo","font-weight":300,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 0 0 0 0 0 0 0 0","ascent":"270","descent":"-90","x-height":"4","bbox":"-8 -314 334 76","underline-thickness":"18","underline-position":"-18","stemh":"22","stemv":"25","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":97,"k":{"Y":13,"W":8,"V":8,"T":7,".":18,",":18}},"\u00a0":{"w":97},"!":{"d":"42,-66r-1,-187r25,0r-1,187r-23,0xm40,0r0,-28r28,0r0,28r-28,0","w":106},"\"":{"d":"67,-196r0,-61r22,0r0,61r-22,0xm24,-196r0,-61r21,0r0,61r-21,0","w":112,"k":{"X":-7,"4":18,"T":-7,"Y":-7,"V":-7,"W":-7,"C":4,"G":4,"O":4,"Q":4,"a":17,"A":32,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4,"J":25,"M":8,"N":8,"s":4,"Z":-5}},"#":{"d":"54,0r12,-70r-51,0r3,-20r51,0r13,-71r-51,0r3,-20r51,0r13,-72r22,0r-13,72r63,0r12,-72r22,0r-12,72r50,0r-4,20r-50,0r-12,71r50,0r-4,20r-50,0r-12,70r-22,0r12,-70r-62,0r-12,70r-22,0xm91,-90r62,0r13,-71r-62,0","w":256},"$":{"d":"17,-43r18,-15v0,0,21,39,64,39v31,0,50,-20,50,-45v0,-63,-125,-49,-125,-130v0,-31,26,-57,65,-62r0,-35r20,0r0,34v30,2,67,17,59,61r-23,0v4,-27,-15,-38,-43,-38v-33,0,-52,18,-52,39v0,60,125,45,125,130v0,34,-25,65,-66,69r0,33r-20,0r0,-33v-50,-5,-72,-47,-72,-47","w":191,"k":{"7":7}},"%":{"d":"73,-157v-28,0,-51,-22,-51,-50v0,-27,23,-50,51,-50v28,0,50,23,50,50v0,28,-22,50,-50,50xm24,0r193,-253r26,0r-193,253r-26,0xm73,-177v17,0,29,-13,29,-30v0,-16,-12,-30,-29,-30v-17,0,-29,14,-29,30v0,17,12,30,29,30xm144,-45v0,-28,22,-51,50,-51v28,0,51,23,51,51v0,27,-23,49,-51,49v-28,0,-50,-22,-50,-49xm166,-46v0,17,11,30,28,30v17,0,30,-13,30,-30v0,-16,-13,-30,-30,-30v-17,0,-28,14,-28,30","w":267},"&":{"d":"102,4v-88,0,-117,-113,-40,-140v1,-3,-32,-10,-35,-57v-3,-47,56,-75,105,-60r-7,20v-32,-8,-72,7,-72,41v0,17,8,46,55,46r52,0r0,-35r25,0r0,35r34,0r0,22r-34,0v7,75,-19,128,-83,128xm42,-71v0,28,22,52,60,52v49,0,63,-46,58,-105v-58,-4,-118,2,-118,53","w":224},"'":{"d":"24,-196r0,-61r21,0r0,61r-21,0","w":68,"k":{"X":-7,"4":18,"T":-7,"Y":-7,"V":-7,"W":-7,"C":4,"G":4,"O":4,"Q":4,"a":17,"A":32,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4,"J":25,"M":8,"N":8,"s":4,"Z":-5}},"(":{"d":"72,34v-51,-82,-57,-213,-3,-297r24,0v-56,90,-51,206,2,297r-23,0","w":111,"k":{"j":-6,"4":14}},")":{"d":"17,34v52,-91,57,-207,2,-297r23,0v55,84,49,215,-3,297r-22,0","w":111},"*":{"d":"55,-121r-19,-14r33,-44r-52,-15r7,-23r52,19r-3,-55r25,0r-3,55r53,-18r7,22v-17,6,-38,8,-53,16r34,43r-19,14v-11,-15,-20,-32,-32,-46","w":171},"+":{"d":"15,-92r0,-21r83,0r0,-91r22,0r0,91r83,0r0,21r-83,0r0,92r-22,0r0,-92r-83,0","k":{"7":7}},",":{"d":"29,-30r26,0r-26,65r-21,0","w":77,"k":{"9":2,"7":7,"6":4,"4":6,"0":7,"T":25,"Y":29,"V":25,"W":25,"C":4,"G":4,"O":4,"Q":4,"v":14,"w":14,"y":14,"\u00ad":30,"@":5,"c":5,"d":5,"e":5,"g":5,"o":5,"q":5,"J":-9,"B":7,"D":7,"E":7,"F":7,"H":7,"K":7,"L":7,"P":7,"R":7}},"-":{"d":"27,-91r0,-22r102,0r0,22r-102,0","w":155,"k":{"x":9,"X":4,"9":13,"7":25,"5":10,"3":14,"1":11}},"\u00ad":{"d":"27,-91r0,-22r102,0r0,22r-102,0","w":155,"k":{"T":22,"Y":22,"V":11,"W":11,"C":-5,"G":-5,"O":-5,"Q":-5,"v":6,"w":6,"y":6,"A":6,"z":6,"S":9,"Z":4}},".":{"d":"25,0r0,-29r28,0r0,29r-28,0","w":77,"k":{"9":2,"7":7,"6":4,"4":6,"0":7,"T":25,"Y":29,"V":25,"W":25,"C":4,"G":4,"O":4,"Q":4,"v":14,"w":14,"y":14,"\u00ad":30,"@":5,"c":5,"d":5,"e":5,"g":5,"o":5,"q":5,"J":-9,"B":7,"D":7,"E":7,"F":7,"H":7,"K":7,"L":7,"P":7,"R":7}},"\/":{"d":"1,15r92,-282r22,0r-91,282r-23,0","w":117,"k":{"7":-4}},"0":{"d":"108,4v-66,0,-87,-58,-87,-131v0,-73,21,-130,87,-130v66,0,88,57,88,130v0,73,-22,131,-88,131xm108,-19v48,0,62,-48,62,-108v0,-60,-14,-107,-62,-107v-48,0,-61,47,-61,107v0,60,13,108,61,108","w":216,"k":{".":14,",":14,"8":4,"7":10,"3":3,"2":4,"1":5}},"1":{"d":"23,0r0,-22r57,0r-1,-200v-4,8,-30,33,-39,42r-16,-16r57,-57r24,0r0,231r55,0r0,22r-137,0","w":171,"k":{"-":18,"'":22,"\"":22,"9":4,"8":3,"7":4,"6":4,"5":3,"4":6,"3":1,"0":5,"\/":-10,"%":8}},"2":{"d":"15,-25v0,-94,134,-86,134,-161v0,-52,-90,-63,-97,-20r0,12r-24,0v-9,-48,37,-63,70,-63v48,0,77,32,77,71v0,89,-134,86,-134,156v0,5,3,8,8,8r106,0v11,0,7,-15,8,-25r23,0v0,23,4,47,-21,47r-127,0v-17,0,-23,-7,-23,-25","w":203,"k":{"-":10,"9":6,"7":1,"4":7,"0":2}},"3":{"d":"9,-31r15,-19v0,0,27,31,67,31v30,0,57,-23,57,-55v0,-40,-36,-57,-79,-53r-6,-15r75,-90v-20,2,-62,1,-86,1v-11,0,-7,15,-8,25r-23,0v0,-23,-4,-47,21,-47r128,0r0,16r-74,88v32,2,78,20,78,74v0,43,-36,79,-84,79v-50,0,-81,-35,-81,-35","w":190,"k":{"9":2,"7":2}},"4":{"d":"5,-70r0,-16r124,-167r27,0r0,161r40,0r0,22r-40,0r0,70r-26,0r0,-70r-125,0xm131,-92r0,-128r-96,129v25,-2,67,-1,96,-1","w":202,"k":{".":4,",":4,"9":4,"4":-11,"2":-7,"1":3}},"5":{"d":"19,-32r16,-17v0,0,19,30,59,30v36,0,63,-26,63,-59v0,-35,-30,-60,-66,-60v-42,0,-42,23,-61,9r11,-102v3,-40,69,-17,105,-22v25,-4,21,24,21,47r-23,0v-1,-10,3,-25,-8,-25r-64,0v-5,0,-7,3,-8,8v-2,23,-8,51,-8,72v0,0,16,-10,38,-10v51,0,89,37,89,83v0,45,-38,82,-89,82v-50,0,-75,-36,-75,-36","w":204,"k":{".":5,",":5,"9":1,"7":6,"5":3,"3":3,"2":2,"1":7,"0":3}},"6":{"d":"107,4v-55,0,-92,-49,-92,-115v0,-64,34,-146,112,-146v28,0,46,10,46,10r-9,22v0,0,-16,-9,-37,-9v-52,-1,-83,55,-84,104v38,-57,143,-30,143,50v0,53,-35,84,-79,84xm42,-95v0,33,27,76,65,76v34,0,54,-26,54,-61v0,-35,-22,-58,-57,-58v-34,0,-62,22,-62,43","w":201,"k":{"-":5,"9":4,"7":3,"5":2,"3":2,"0":3}},"7":{"d":"28,0r125,-231r-111,0v-11,0,-6,15,-7,25r-24,0v0,-23,-4,-47,21,-47r150,0r0,17r-125,236r-29,0","w":184,"k":{">":14,"=":14,"<":14,";":5,":":5,".":43,"-":19,",":43,"+":14,"?":-6,"9":3,"8":3,"7":-2,"5":1,"4":21,"2":3,"0":7,"\/":22}},"8":{"d":"17,-71v0,-46,46,-65,45,-68v-57,-24,-39,-118,42,-118v48,0,77,28,77,67v0,39,-34,63,-34,63v72,27,39,131,-44,131v-45,0,-86,-27,-86,-75xm53,-191v-1,34,41,44,71,53v9,0,32,-25,32,-51v0,-27,-21,-45,-52,-45v-32,0,-51,19,-51,43xm162,-69v0,-35,-49,-49,-78,-58v-10,0,-41,24,-41,55v0,33,29,53,60,53v30,0,59,-20,59,-50","w":205,"k":{"9":3,"7":4,"4":-1,"0":4}},"9":{"d":"28,-6r10,-22v0,0,16,9,37,9v52,1,83,-55,83,-104v-38,57,-143,28,-143,-50v0,-53,36,-84,80,-84v55,0,91,49,91,115v0,64,-33,146,-111,146v-28,0,-47,-10,-47,-10xm98,-115v34,0,61,-22,61,-43v0,-33,-26,-76,-64,-76v-34,0,-54,26,-54,61v0,35,22,58,57,58","w":201,"k":{".":14,",":14,"8":2,"7":5,"3":2,"2":2,"0":2}},":":{"d":"37,-152r0,-29r28,0r0,29r-28,0xm37,0r0,-29r28,0r0,29r-28,0","w":101},";":{"d":"37,-152r0,-29r28,0r0,29r-28,0xm19,35r18,-65r26,0r-23,65r-21,0","w":101},"<":{"d":"25,-93r0,-18r163,-73r0,24r-133,58r133,57r0,24","k":{"7":7}},"=":{"d":"25,-123r0,-21r168,0r0,21r-168,0xm25,-60r0,-21r168,0r0,21r-168,0","k":{"7":7}},">":{"d":"28,-21r0,-24r132,-58r-132,-57r0,-24r162,73r0,18","k":{"7":7}},"?":{"d":"55,-66v-9,-70,62,-79,63,-127v0,-23,-19,-41,-47,-41v-24,0,-44,15,-44,15r-13,-18v0,0,22,-21,58,-21v41,0,72,27,72,64v-1,67,-74,62,-64,128r-25,0xm54,0r0,-28r27,0r0,28r-27,0","w":155},"@":{"d":"15,-87v0,-73,57,-132,128,-132v116,0,83,86,88,181r26,0r0,20r-97,0v-41,0,-72,-32,-72,-69v0,-54,53,-77,119,-69v-1,-22,-20,-42,-62,-42v-59,0,-105,51,-105,111v0,61,45,110,107,110r0,22v-75,0,-132,-59,-132,-132xm113,-87v0,44,44,54,94,49r0,-99v-50,-5,-94,5,-94,50","w":266},"A":{"d":"4,0r0,-22v9,0,14,1,18,-8r83,-223r27,0r83,223v3,8,8,8,17,8r0,22v-54,8,-46,-51,-64,-81r-100,0v-18,30,-10,89,-64,81xm75,-103r87,0r-44,-123v-10,36,-30,87,-43,123","w":236,"k":{"X":3}},"B":{"d":"38,-22r0,-209r-24,0r0,-22v78,1,178,-17,176,64v0,28,-14,46,-32,55v26,7,43,32,43,63v0,70,-68,76,-141,71v-15,0,-22,-7,-22,-22xm63,-143v50,2,102,5,102,-45v0,-49,-54,-44,-102,-43r0,88xm63,-30v6,18,43,4,62,8v31,0,49,-20,49,-50v0,-55,-56,-52,-111,-50r0,92","k":{"w":2,"v":2,"Y":9,"W":4,"V":4,"T":7,"'":2,"\"":2}},"C":{"d":"14,-129v0,-73,54,-128,125,-128v43,0,106,16,94,74r-23,0v8,-40,-37,-51,-71,-51v-56,0,-99,44,-99,105v0,60,42,110,100,110v52,0,83,-36,83,-36r15,18v0,0,-35,41,-98,41v-74,0,-126,-59,-126,-133","w":249,"k":{"Y":4,"C":2,"G":2,"O":2,"Q":2,"\"":-8,"'":-8,")":-9,"]":-9,"|":-9,"}":-9}},"D":{"d":"39,-22r0,-209r-24,0r0,-22r102,0v76,0,127,46,127,126v0,103,-74,127,-184,127v-15,0,-21,-7,-21,-22xm64,-30v3,16,34,5,50,8v62,0,103,-37,103,-105v0,-86,-62,-112,-153,-104r0,201","w":257,"k":{"i":-3,"X":4,"T":7,"Y":13,"V":4,"W":4,"a":-2,"v":-1,"w":-1,"y":-1,"\u00ad":-5,"\"":4,"'":4,",":5,".":5,"A":5,"@":-2,"c":-2,"d":-2,"e":-2,"g":-2,"o":-2,"q":-2,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3}},"E":{"d":"39,-22r0,-209r-24,0r0,-22r145,0v25,-2,22,23,22,47r-24,0v-1,-10,3,-25,-8,-25r-86,0r0,92r95,0r0,23r-95,0r0,86v0,5,3,8,8,8r89,0v11,0,6,-15,7,-25r24,0v0,23,3,47,-22,47r-110,0v-15,0,-21,-7,-21,-22","w":200,"k":{"T":3,"V":5,"W":5,"v":1,"w":1,"J":-3,"f":-2}},"F":{"d":"39,0r0,-231r-24,0r0,-22r135,0v25,-2,21,24,21,47r-23,0v-1,-10,3,-25,-8,-25r-76,0r0,95r92,0r0,23r-92,0r0,113r-25,0","w":179,"k":{"q":2,"o":2,"g":2,"e":2,"d":2,"c":2,"a":5,"Q":4,"O":4,"N":3,"M":3,"J":6,"G":4,"C":4,"A":17,"@":2,".":36,",":36,"'":-7,"\"":-7}},"G":{"d":"14,-127v0,-73,54,-130,126,-130v59,0,89,31,89,31r-15,18v0,0,-28,-26,-73,-26v-57,0,-101,46,-101,107v0,62,43,108,100,108v50,0,80,-38,80,-38v-1,-19,8,-46,-23,-39r0,-22v23,0,47,-3,47,22r0,96r-23,0r0,-30v0,0,-30,34,-83,34v-69,0,-124,-55,-124,-131","w":262,"k":{"T":6,"U":3,"a":-3,"\u00ad":-7,"\"":2,"'":2,"@":-3,"c":-3,"d":-3,"e":-3,"g":-3,"o":-3,"q":-3,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3,":":-10,";":-10,"B":2,"D":2,"E":2,"F":2,"H":2,"K":2,"L":2,"P":2,"R":2}},"H":{"d":"39,0r0,-223v0,-11,-14,-7,-24,-8r0,-22v0,0,49,-4,49,22r0,93r145,0r0,-93v-2,-26,25,-22,49,-22r0,22v-10,1,-24,-3,-24,8r0,223r-25,0r0,-116r-145,0r0,116r-25,0","w":272,"k":{"a":4,"v":4,"w":4,"y":4,",":7,".":7,"@":2,"c":2,"d":2,"e":2,"g":2,"o":2,"q":2}},"I":{"d":"17,0r0,-22r23,0r0,-209r-23,0r0,-22r72,0r0,22r-24,0r0,209r24,0r0,22r-72,0","w":105},"J":{"d":"80,4v-38,0,-75,-26,-71,-85r25,0v-3,42,20,62,46,62v22,0,46,-14,46,-53r0,-151v0,-5,-3,-8,-8,-8r-63,0r0,-22v34,5,96,-16,96,22r0,160v0,55,-36,75,-71,75","w":181,"k":{",":4,".":4,"A":4,":":6,";":6}},"K":{"d":"39,0r0,-223v0,-11,-14,-7,-24,-8r0,-22v0,0,49,-4,49,22r0,88v19,-1,43,5,51,-9r61,-101r29,0v-26,39,-49,86,-78,121v22,23,38,71,56,101v5,10,14,9,26,9r0,22v-26,0,-38,1,-48,-19r-47,-93v-7,-14,-31,-8,-50,-9r0,121r-25,0","w":212,"k":{"x":2,"C":8,"G":8,"O":8,"Q":8,"v":11,"w":11,"y":7,"\u00ad":15,")":-9,"]":-9,"|":-9,"}":-9,",":-7,".":-7,"A":-4,"@":3,"c":3,"d":3,"e":3,"g":3,"o":3,"q":3,":":-11,";":-11,"z":4}},"L":{"d":"39,-22r0,-201v0,-11,-14,-7,-24,-8r0,-22v0,0,49,-4,49,22r0,201v0,5,3,8,8,8r84,0v11,0,6,-15,7,-25r24,0v0,23,3,47,-22,47r-105,0v-15,0,-21,-7,-21,-22","w":190,"k":{"*":28,"T":36,"Y":29,"V":14,"W":14,"C":7,"G":7,"O":7,"Q":7,"U":13,"v":17,"w":17,"y":14,"\u00ad":11,"\"":29,"'":29,",":-4,".":-4,"A":-4,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4,"m":2,"n":2,"p":2,"r":2,"u":2,"B":11,"D":11,"E":11,"F":11,"H":11,"K":11,"L":11,"P":11,"R":11,"b":5,"h":5,"k":5,"l":5}},"M":{"d":"8,0r0,-22v9,0,20,2,21,-8r18,-223r25,0r81,177r79,-177r25,0r18,223v0,10,12,8,22,8r0,22v-24,0,-45,3,-47,-22r-13,-189v-18,52,-51,113,-74,164r-22,0r-60,-129v-7,-13,-11,-37,-14,-36v-1,59,-13,131,-13,190v0,25,-22,23,-46,22","w":304,"k":{"u":-1,"r":-1,"p":-1,"n":-1,"m":-1,"T":6,"'":11,"\"":11}},"N":{"d":"15,0r0,-22v10,-1,24,3,24,-8r0,-223r23,0r129,180v10,13,18,34,21,33v-4,-54,0,-132,-2,-191v-1,-26,25,-22,49,-22r0,22v-10,1,-24,-3,-24,8r0,223r-23,0r-129,-180v-9,-12,-21,-33,-21,-33v4,54,0,132,2,191v1,26,-25,22,-49,22","w":273,"k":{"a":4,"v":4,"w":4,"y":4,",":7,".":7,"@":2,"c":2,"d":2,"e":2,"g":2,"o":2,"q":2}},"O":{"d":"14,-128v0,-73,57,-129,129,-129v72,0,128,56,128,129v0,74,-56,132,-128,132v-72,0,-129,-58,-129,-132xm40,-128v0,61,46,109,103,109v57,0,102,-48,102,-109v0,-60,-45,-106,-102,-106v-57,0,-103,46,-103,106","w":284,"k":{"i":-3,"X":4,"T":7,"Y":13,"V":4,"W":4,"a":-2,"v":-1,"w":-1,"y":-1,"\u00ad":-5,"\"":4,"'":4,",":5,".":5,"A":5,"@":-2,"c":-2,"d":-2,"e":-2,"g":-2,"o":-2,"q":-2,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3}},"P":{"d":"39,0r0,-231r-24,0r0,-22r107,0v45,0,78,29,78,76v0,70,-61,85,-136,78r0,99r-25,0xm64,-122v57,2,110,3,110,-55v0,-56,-53,-57,-110,-54r0,109","w":208,"k":{"z":2,"s":4,"q":7,"o":7,"g":7,"e":7,"d":7,"c":7,"a":7,"N":3,"M":3,"J":7,"A":21,"@":7,".":38,",":38,"'":-2,"\"":-2}},"Q":{"d":"14,-128v0,-73,56,-129,128,-129v110,0,168,137,98,216r31,31r-16,16r-31,-31v-79,69,-210,6,-210,-103xm40,-128v0,61,45,109,102,109v40,0,65,-23,65,-23r-31,-31r16,-16r30,31v53,-65,8,-175,-80,-175v-57,0,-102,45,-102,105","w":284,"k":{"i":-3,"X":4,"T":7,"Y":13,"V":4,"W":4,"a":-2,"v":-1,"w":-1,"y":-1,"\u00ad":-5,"\"":4,"'":4,",":5,".":5,"A":5,"@":-2,"c":-2,"d":-2,"e":-2,"g":-2,"o":-2,"q":-2,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3}},"R":{"d":"39,0r0,-231r-24,0r0,-22r107,0v42,0,73,28,73,72v0,39,-24,63,-49,68v19,20,30,57,45,82v5,10,11,9,23,9r0,22v-25,0,-36,1,-46,-19r-36,-72v-9,-25,-39,-13,-68,-16r0,107r-25,0xm64,-129v54,2,105,4,105,-51v0,-54,-51,-54,-105,-51r0,102","w":217,"k":{"T":8,"Y":11,"V":2,"W":2,"C":1,"G":1,"O":1,"Q":1,",":-7,".":-7,"A":-4,"@":3,"c":3,"d":3,"e":3,"g":3,"o":3,"q":3,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3}},"S":{"d":"13,-32r16,-18v0,0,25,31,65,31v28,0,50,-18,50,-45v0,-63,-125,-51,-125,-129v0,-35,31,-64,78,-64v30,0,78,14,68,61r-24,0v4,-28,-16,-38,-44,-38v-33,0,-52,19,-52,41v0,59,125,43,125,127v0,38,-28,70,-76,70v-52,0,-81,-36,-81,-36","w":186,"k":{"\u00ad":-3,"\"":-3,"'":-3,"@":-2,"c":-2,"d":-2,"e":-2,"g":-2,"o":-2,"q":-2,"m":-2,"n":-2,"p":-2,"r":-2,"u":-2,"z":2}},"T":{"d":"99,0r0,-231r-63,0v-11,-1,-7,15,-8,25r-23,0v1,-23,-5,-47,21,-47r171,0v26,-3,21,24,21,47r-24,0v-1,-10,3,-25,-8,-25r-62,0r0,231r-25,0","w":223,"k":{"j":14,"i":13," ":7,"Y":-4,"V":-3,"W":-3,"C":7,"G":7,"O":7,"Q":7,"a":22,"v":22,"w":22,"y":23,"\u00ad":22,"\"":-7,"'":-7,",":25,".":25,"A":31,"@":27,"c":27,"d":27,"e":27,"g":27,"o":27,"q":27,"m":16,"n":16,"p":16,"r":16,"u":16,"J":18,"z":22,"M":4,"N":4,"s":17}},"U":{"d":"36,-87r0,-136v0,-11,-14,-7,-24,-8r0,-22v0,0,49,-4,49,22r0,143v0,42,27,69,68,69v41,0,68,-27,68,-70r0,-142v-2,-26,25,-22,49,-22r0,22v-10,1,-24,-3,-24,8r0,136v0,55,-37,91,-93,91v-56,0,-93,-36,-93,-91","w":258,"k":{",":4,".":4,"A":7,"M":2,"N":2}},"V":{"d":"104,0r-83,-223v-3,-8,-8,-8,-17,-8r0,-22v23,0,34,1,41,21r73,203v18,-67,50,-138,72,-203v7,-21,17,-21,40,-21r0,22v-9,0,-13,0,-16,8r-83,223r-27,0","w":235,"k":{" ":8,"T":-3,"C":4,"G":4,"O":4,"Q":4,"a":17,"\u00ad":11,"\"":-7,"'":-7,",":25,".":25,"A":12,"@":19,"c":19,"d":19,"e":19,"g":19,"o":19,"q":19,"m":7,"n":7,"p":7,"r":7,"u":7,"J":12,"M":2,"N":2,"S":2}},"W":{"d":"82,0r-58,-223v-2,-8,-9,-8,-18,-8r0,-22v23,0,37,-1,42,21r50,201r63,-221r24,0r58,221v12,-65,35,-137,49,-201v5,-22,19,-21,42,-21r0,22v-9,0,-15,0,-17,8r-59,223r-29,0r-57,-213r-60,213r-30,0","w":340,"k":{" ":8,"T":-3,"C":4,"G":4,"O":4,"Q":4,"a":17,"\u00ad":11,"\"":-7,"'":-7,",":25,".":25,"A":12,"@":19,"c":19,"d":19,"e":19,"g":19,"o":19,"q":19,"m":7,"n":7,"p":7,"r":7,"u":7,"J":12,"M":2,"N":2,"S":2}},"X":{"d":"5,0r81,-132r-55,-89v-7,-10,-13,-10,-25,-10r0,-22v54,-8,57,47,80,74r17,29v9,-18,35,-61,48,-83v11,-21,22,-20,48,-20r0,22v-12,0,-18,0,-25,10r-55,89r81,132r-29,0r-69,-115r-68,115r-29,0","w":205,"k":{"}":-7,"|":-7,"q":3,"o":3,"g":3,"e":3,"d":3,"c":3,"]":-7,"Q":4,"O":4,"G":4,"C":4,"A":3,"@":3,"-":4,")":-7,"'":-7,"\"":-7}},"Y":{"d":"94,0r0,-110r-68,-111v-6,-10,-10,-10,-22,-10r0,-22v23,0,31,-1,44,20r59,100v13,-27,41,-72,58,-100v13,-21,21,-20,45,-20r0,22v-11,0,-18,0,-23,10r-68,111r0,110r-25,0","w":213,"k":{" ":13,"T":-4,"a":16,"\u00ad":22,"\"":-7,"'":-7,",":29,".":29,"A":29,"@":25,"c":25,"d":25,"e":25,"g":25,"o":25,"q":25,"m":13,"n":13,"p":13,"r":13,"u":13,"J":13,"z":11,"M":6,"N":6,"s":17}},"Z":{"d":"7,0r0,-18r154,-213r-119,0v-11,0,-7,15,-8,25r-24,0v0,-23,-3,-47,22,-47r160,0r0,18r-135,190v-9,13,-19,23,-19,23r128,0v11,0,7,-15,8,-25r23,0v0,23,3,47,-22,47r-168,0","w":207,"k":{"\u00ad":9}},"[":{"d":"36,12r0,-253v-2,-26,25,-22,49,-22r0,20v-10,1,-26,-4,-26,8r0,241v0,12,16,7,26,8r0,20v0,0,-49,4,-49,-22","w":109,"k":{"j":-6,"4":14}},"\\":{"d":"93,15r-91,-282r23,0r91,282r-23,0","w":114},"]":{"d":"24,14v10,-1,26,4,26,-8r0,-241v0,-12,-16,-7,-26,-8r0,-20v0,0,49,-4,49,22r0,253v2,26,-25,22,-49,22r0,-20","w":109},"^":{"d":"26,-90r72,-163r16,0r72,163r-24,0r-56,-133r-56,133r-24,0"},"_":{"d":"2,0r186,0r0,21r-186,0r0,-21","w":189},"`":{"d":"65,-271r-32,-43r28,0r25,43r-21,0","w":129},"a":{"d":"14,-49v0,-66,85,-59,121,-65v0,-38,-13,-51,-46,-51v-13,0,-43,3,-36,27r-23,0v-10,-40,37,-47,59,-47v94,-1,71,78,71,156v0,11,13,8,23,8r0,21v-31,5,-52,-5,-47,-35v0,0,-15,39,-60,39v-30,0,-62,-17,-62,-53xm40,-51v0,17,13,34,40,34v38,0,57,-38,55,-75v-35,0,-95,-3,-95,41","w":190,"k":{"T":31,"v":4,"w":4,"y":4,"\"":25,"'":25}},"b":{"d":"30,0r0,-224v0,-11,-13,-8,-23,-8r0,-21v24,0,48,-4,48,22v0,26,-3,56,0,80v0,0,15,-34,61,-34v49,0,79,39,79,95v0,57,-34,94,-82,94v-45,0,-57,-36,-60,-35r1,31r-24,0xm54,-90v0,36,19,73,58,73v32,0,58,-27,58,-73v0,-44,-24,-73,-57,-73v-30,0,-59,22,-59,73","w":210,"k":{"T":14,"Y":11,"a":2,"v":4,"w":4,"y":4,"\"":4,"'":4,",":5,".":5,"z":4,"b":3,"h":3,"k":3,"l":3}},"c":{"d":"14,-90v0,-55,42,-95,96,-95v26,0,73,11,64,54r-23,0v5,-25,-22,-32,-41,-32v-39,0,-70,29,-70,73v0,45,33,72,71,72v37,0,58,-26,58,-26r11,19v0,0,-25,29,-71,29v-54,0,-95,-38,-95,-94","w":190,"k":{"y":2,"l":1,"k":1,"h":1,"b":1,"T":11}},"d":{"d":"15,-91v0,-57,33,-94,81,-94v44,0,60,33,60,33r0,-72v0,-11,-14,-7,-24,-8r0,-21v24,0,48,-4,48,22r0,202v0,11,13,8,23,8r0,21v-30,4,-53,-4,-47,-32v0,0,-14,36,-62,36v-49,0,-79,-39,-79,-95xm98,-18v30,0,58,-22,58,-73v0,-37,-18,-72,-57,-72v-32,0,-59,26,-59,72v0,45,24,73,58,73","w":211},"e":{"d":"14,-90v0,-59,41,-95,90,-95v54,1,81,43,75,95r-139,0v1,46,33,72,70,72v33,0,55,-22,55,-22r11,18v0,0,-26,26,-67,26v-54,0,-95,-38,-95,-94xm41,-109r113,0v-2,-80,-106,-69,-113,0","w":197,"k":{"T":14}},"f":{"d":"32,0r0,-161r-23,0r0,-20r23,0v0,-65,39,-80,73,-73r0,22v-24,-6,-50,6,-49,51r46,0r0,20r-46,0r0,161r-24,0","w":109,"k":{"T":-7,"a":7,"\u00ad":6,")":-5,"]":-5,"|":-5,"}":-5,",":18,".":18,"@":8,"c":8,"d":8,"e":8,"g":8,"o":8,"q":8,"s":3}},"g":{"d":"15,-94v0,-54,30,-91,79,-91v49,0,60,31,60,31v-5,-28,20,-28,46,-27r0,21v-10,0,-23,-3,-23,8r0,148v0,83,-88,95,-146,65r10,-20v0,0,22,12,49,12v45,1,70,-29,63,-85v-11,20,-29,31,-57,31v-49,0,-81,-39,-81,-93xm99,-23v29,0,54,-18,54,-71v0,-53,-25,-69,-57,-69v-35,0,-56,26,-56,69v0,43,23,71,59,71","w":208},"h":{"d":"123,-162v-38,0,-68,30,-68,75r0,87r-25,0r0,-224v0,-11,-13,-8,-23,-8r0,-21v23,0,48,-5,48,21r0,92v7,-17,30,-45,71,-45v78,0,59,85,61,156v0,11,13,8,23,8r0,21v-23,0,-49,3,-47,-22v-7,-56,23,-140,-40,-140","w":217,"k":{"T":31,"v":4,"w":4,"y":4,"\"":25,"'":25}},"i":{"d":"32,-222r0,-31r24,0r0,31r-24,0xm33,-22r0,-130v0,-11,-13,-8,-23,-8r0,-21v24,0,48,-4,48,22r0,130v0,11,13,8,23,8r0,21v-24,0,-48,4,-48,-22","w":90,"k":{"v":2,"w":2,"y":2}},"j":{"d":"41,-222r0,-31r23,0r0,31r-23,0xm-8,52v24,0,49,-1,49,-46r0,-158v0,-11,-13,-8,-23,-8r0,-21v24,0,48,-4,48,22r0,166v-4,65,-42,69,-74,66r0,-21","w":96},"k":{"d":"30,0r0,-224v0,-11,-13,-8,-23,-8r0,-21v23,0,48,-5,48,21r0,120v17,0,30,1,39,-9r46,-60r30,0v-20,24,-43,60,-66,79v14,13,32,52,44,73v3,9,15,8,27,8r0,21v-25,0,-38,1,-49,-18r-36,-65v-8,-11,-20,-7,-35,-8r0,91r-25,0","w":179,"k":{"y":4,"w":4,"v":4,"q":4,"o":4,"l":3,"k":3,"h":3,"g":4,"e":4,"d":4,"c":4,"b":3,"a":3,"T":7,"@":4}},"l":{"d":"31,-22r0,-202v0,-11,-13,-8,-23,-8r0,-21v23,0,47,-3,47,22r0,202v0,11,13,8,23,8r0,21v-23,0,-47,3,-47,-22","w":88},"m":{"d":"118,-163v-67,2,-65,89,-62,163r-25,0r0,-152v0,-11,-13,-8,-23,-8r0,-21v33,-3,54,1,47,41v14,-50,116,-67,122,0v12,-22,35,-45,67,-45v77,0,61,85,61,156v0,11,13,7,23,8r0,21v-24,0,-48,4,-48,-22v0,-56,22,-141,-39,-141v-35,0,-61,36,-61,77r0,86r-24,0r0,-109v0,-27,-4,-54,-38,-54","w":335,"k":{"T":31,"v":4,"w":4,"y":4,"\"":25,"'":25}},"n":{"d":"125,-162v-38,0,-69,30,-69,75r0,87r-25,0r0,-152v0,-11,-13,-8,-23,-8r0,-21v33,-3,54,1,47,41v6,-17,30,-45,72,-45v78,0,59,85,61,156v0,11,13,8,23,8r0,21v-23,0,-49,3,-47,-22v-7,-55,24,-140,-39,-140","k":{"T":31,"v":4,"w":4,"y":4,"\"":25,"'":25}},"o":{"d":"14,-91v0,-54,43,-94,96,-94v53,0,96,40,96,94v0,55,-43,95,-96,95v-53,0,-96,-40,-96,-95xm40,-91v0,42,31,73,70,73v39,0,70,-31,70,-73v0,-41,-31,-72,-70,-72v-39,0,-70,31,-70,72","w":219,"k":{"T":14,"Y":11,"a":2,"v":4,"w":4,"y":4,"\"":4,"'":4,",":5,".":5,"z":4,"b":3,"h":3,"k":3,"l":3}},"p":{"d":"31,72r0,-224v0,-11,-13,-8,-23,-8r0,-21v29,-4,53,2,47,31v0,0,14,-35,62,-35v49,0,79,39,79,95v0,57,-34,94,-81,94v-46,0,-57,-35,-60,-34v2,29,1,70,1,102r-25,0xm55,-90v0,36,20,73,58,73v32,0,58,-27,58,-73v0,-44,-23,-73,-57,-73v-30,0,-59,22,-59,73","w":211,"k":{"T":14,"Y":11,"a":2,"v":4,"w":4,"y":4,"\"":4,"'":4,",":5,".":5,"z":4,"b":3,"h":3,"k":3,"l":3}},"q":{"d":"15,-91v0,-57,34,-94,82,-94v44,0,60,35,60,35v-6,-30,17,-33,46,-31r0,21v-10,0,-23,-3,-23,8r0,224r-24,0r0,-103v0,0,-16,35,-62,35v-49,0,-79,-39,-79,-95xm98,-18v30,0,59,-22,59,-73v0,-37,-19,-72,-58,-72v-32,0,-59,26,-59,72v0,45,24,73,58,73","w":211},"r":{"d":"122,-158v-73,-5,-68,83,-66,158r-25,0r0,-152v0,-11,-13,-8,-23,-8r0,-21v35,-4,54,4,47,46v10,-29,33,-53,67,-47r0,24","w":130,"k":{"a":12,"v":-5,"w":-5,"y":-5,"\u00ad":7,",":20,".":20,"@":7,"c":7,"d":7,"e":7,"g":7,"o":7,"q":7,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3,"b":4,"h":4,"k":4,"l":4}},"s":{"d":"10,-27r14,-17v0,0,20,27,56,27v20,0,38,-10,38,-29v0,-40,-101,-32,-101,-90v0,-33,28,-49,64,-49v23,0,64,9,55,48r-23,0v4,-21,-15,-27,-31,-27v-25,0,-40,8,-40,26v0,41,101,32,101,92v0,30,-27,50,-63,50v-47,0,-70,-31,-70,-31","w":158},"t":{"d":"33,-66r0,-95r-23,0r0,-20r24,0r0,-50r24,0r0,50r45,0r0,20r-45,0r0,93v3,46,25,47,49,47r0,22v-35,1,-74,-2,-74,-67","w":120,"k":{"a":3,"v":4,"w":4,"y":4,"\u00ad":5,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4,"b":3,"h":3,"k":3,"l":3}},"u":{"d":"91,4v-75,0,-59,-86,-60,-156v0,-11,-13,-8,-23,-8r0,-21v23,0,49,-4,47,21v7,56,-24,141,40,141v74,0,68,-86,66,-162r25,0r0,152v0,11,13,8,23,8r0,21v-26,0,-53,3,-47,-28v-1,-8,3,-14,0,-13v-7,18,-31,45,-71,45","w":217,"k":{"T":14}},"v":{"d":"80,0r-59,-152v-4,-7,-8,-8,-16,-8r0,-21v22,-1,32,1,39,20r50,134v13,-44,34,-91,50,-134v6,-19,15,-21,37,-20r0,21v-8,0,-13,1,-15,8r-59,152r-27,0","w":186,"k":{"T":11,"a":2,"\u00ad":6,",":14,".":14,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4}},"w":{"d":"73,0r-52,-152v-3,-7,-8,-8,-17,-8r0,-21v22,0,34,-1,41,20r43,134r50,-153r24,0r51,153v11,-43,31,-91,43,-134v6,-21,18,-20,41,-20r0,21v-9,0,-15,0,-18,8r-52,152r-27,0r-50,-148r-50,148r-27,0","w":300,"k":{"T":11,"a":2,"\u00ad":6,",":14,".":14,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4}},"x":{"d":"7,0r63,-94r-39,-58v-5,-8,-13,-8,-25,-8r0,-21v52,-8,57,43,80,71v21,-25,28,-79,79,-71r0,21v0,0,-19,-1,-24,7r-39,59r63,94r-29,0r-50,-77r-51,77r-28,0","w":171,"k":{"-":9}},"y":{"d":"14,40v0,0,12,14,27,14v26,0,35,-34,45,-55r-64,-151v-4,-7,-8,-8,-16,-8r0,-21v22,0,31,1,39,20r53,132v13,-43,36,-90,51,-132v7,-20,17,-21,39,-20r0,21v-8,0,-12,1,-16,8r-78,190v-9,23,-28,38,-52,38v-41,0,-45,-17,-28,-36","w":194,"k":{"a":3,"\u00ad":6,",":16,".":16,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4}},"z":{"d":"14,0r0,-16r116,-144v-21,2,-60,1,-84,1v-11,0,-8,12,-8,21r-23,0v-1,-23,-2,-43,22,-43r126,0r0,16r-117,144v24,-2,66,-1,93,-1v10,0,8,-12,8,-22r23,0v1,23,2,44,-22,44r-134,0","w":179,"k":{"v":6,"w":6,"y":5,"\u00ad":6,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4}},"{":{"d":"42,-30r0,-34v0,-37,-30,-41,-30,-41r0,-22v0,0,30,-4,30,-42r0,-29v3,-62,37,-65,60,-65r0,20v-16,0,-34,1,-37,45r0,36v0,37,-30,43,-29,46v0,0,29,9,29,46r0,39v2,43,22,45,37,45r0,21v-24,0,-56,-2,-60,-65","w":117,"k":{"j":-6,"4":14}},"|":{"d":"40,57r0,-341r23,0r0,341r-23,0","w":102,"k":{"j":-6,"4":14}},"}":{"d":"16,14v14,0,34,-2,36,-45r0,-39v0,-39,30,-44,29,-47v0,0,-29,-10,-29,-45r0,-36v-2,-44,-22,-45,-36,-45r0,-20v24,0,55,3,59,65r0,29v0,38,30,42,30,42r0,22v0,0,-30,4,-30,41r0,34v-3,63,-36,65,-59,65r0,-21","w":117},"~":{"d":"24,-75v0,-40,19,-56,46,-56v40,0,40,37,71,37v22,0,26,-23,26,-36r21,0v0,40,-18,56,-45,56v-40,0,-41,-37,-72,-37v-22,0,-26,23,-26,36r-21,0"}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright (c) 2008 by Jos Buivenga/exljbris. All rights reserved.
 * 
 * Trademark:
 * Museo is a trademark of Jos Buivenga/exljbris.
 * 
 * Full name:
 * Museo-500
 * 
 * Description:
 * Copyright (c) 2008 by Jos Buivenga/exljbris. All rights reserved.
 * 
 * Manufacturer:
 * Jos Buivenga
 * 
 * Designer:
 * Jos Buivenga
 * 
 * Vendor URL:
 * http://www.josbuivenga.demon.nl
 */
Cufon.registerFont({"w":220,"face":{"font-family":"Museo","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 0 0 0 0 0 0 0 0","ascent":"270","descent":"-90","x-height":"4","bbox":"-7 -318 342 76","underline-thickness":"18","underline-position":"-18","stemh":"31","stemv":"35","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":96,"k":{"Y":13,"W":8,"V":8,"T":7,".":18,",":18}},"\u00a0":{"w":96},"!":{"d":"41,-70r-2,-184r36,0r-3,184r-31,0xm39,0r0,-35r36,0r0,35r-36,0","w":113},"\"":{"d":"73,-191r0,-67r27,0r0,67r-27,0xm22,-191r0,-67r28,0r0,67r-28,0","w":122,"k":{"X":-7,"4":18,"T":-7,"Y":-7,"V":-7,"W":-7,"C":4,"G":4,"O":4,"Q":4,"a":17,"A":32,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4,"J":25,"M":8,"N":8,"s":4,"Z":-5}},"#":{"d":"48,0r12,-69r-47,0r5,-26r47,0r10,-61r-46,0r4,-26r47,0r13,-72r29,0r-13,72r56,0r12,-72r30,0r-13,72r47,0r-4,26r-47,0r-11,61r47,0r-5,26r-46,0r-13,69r-29,0r12,-69r-56,0r-12,69r-29,0xm94,-95r56,0r11,-61r-56,0","w":254},"$":{"d":"15,-45r26,-21v0,0,20,38,61,38v26,0,44,-16,44,-38v0,-54,-123,-45,-123,-127v0,-33,27,-59,66,-64r0,-34r27,0r0,33v33,3,67,20,59,67r-33,0v4,-25,-13,-35,-38,-35v-27,0,-44,15,-44,33v0,53,122,40,122,126v0,35,-25,65,-66,70r0,34r-27,0r0,-33v-51,-6,-74,-49,-74,-49","w":196,"k":{"7":7}},"%":{"d":"76,-152v-30,0,-55,-23,-55,-53v0,-29,25,-53,55,-53v30,0,54,24,54,53v0,30,-24,53,-54,53xm27,0r194,-254r34,0r-195,254r-33,0xm76,-179v15,0,26,-11,26,-26v0,-15,-11,-27,-26,-27v-15,0,-27,12,-27,27v0,15,12,26,27,26xm152,-49v0,-29,23,-53,54,-53v30,0,55,24,55,53v0,30,-25,53,-55,53v-31,0,-54,-23,-54,-53xm180,-49v0,15,11,27,26,27v15,0,27,-12,27,-27v0,-15,-12,-27,-27,-27v-15,0,-26,12,-26,27","w":281},"&":{"d":"104,4v-89,0,-121,-111,-44,-140v1,-3,-30,-11,-33,-57v-3,-50,58,-74,108,-62r-9,29v-27,-10,-63,7,-63,37v0,16,8,40,47,40r46,0r0,-33r34,0r0,33r32,0r0,31r-32,0v7,74,-21,122,-86,122xm52,-73v0,24,20,45,52,45v43,0,57,-39,52,-90v-50,-3,-104,0,-104,45","w":229},"'":{"d":"22,-191r0,-67r28,0r0,67r-28,0","w":72,"k":{"X":-7,"4":18,"T":-7,"Y":-7,"V":-7,"W":-7,"C":4,"G":4,"O":4,"Q":4,"a":17,"A":32,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4,"J":25,"M":8,"N":8,"s":4,"Z":-5}},"(":{"d":"72,34v-54,-83,-57,-216,-1,-299r30,0v-55,92,-50,206,2,299r-31,0","w":118,"k":{"j":-7,"4":14}},")":{"d":"16,34v52,-93,57,-207,2,-299r30,0v56,83,53,216,-1,299r-31,0","w":118},"*":{"d":"58,-118r-26,-19r32,-40r-49,-14r9,-30r48,18r-2,-51r33,0r-3,51r48,-18r10,30r-50,14r32,40r-26,19v-10,-14,-17,-30,-28,-43","w":172},"+":{"d":"15,-89r0,-28r81,0r0,-88r29,0r0,88r81,0r0,28r-81,0r0,89r-29,0r0,-89r-81,0","k":{"7":6}},",":{"d":"30,-38r36,0r-31,74r-27,0","w":86,"k":{"9":2,"7":6,"6":4,"4":5,"0":7,"T":25,"Y":29,"V":25,"W":25,"C":4,"G":4,"O":4,"Q":4,"v":14,"w":14,"y":14,"\u00ad":28,"@":5,"c":5,"d":5,"e":5,"g":5,"o":5,"q":5,"J":-9,"B":7,"D":7,"E":7,"F":7,"H":7,"K":7,"L":7,"P":7,"R":7}},"-":{"d":"25,-87r0,-31r105,0r0,31r-105,0","w":155,"k":{"x":8,"X":4,"9":12,"7":23,"5":9,"3":14,"1":11}},"\u00ad":{"d":"25,-87r0,-31r105,0r0,31r-105,0","w":155,"k":{"T":22,"Y":22,"V":11,"W":11,"C":-5,"G":-5,"O":-5,"Q":-5,"v":6,"w":6,"y":6,"A":5,"z":6,"S":8,"Z":4}},".":{"d":"25,0r0,-37r36,0r0,37r-36,0","w":86,"k":{"9":2,"7":6,"6":4,"4":5,"0":7,"T":25,"Y":29,"V":25,"W":25,"C":4,"G":4,"O":4,"Q":4,"v":14,"w":14,"y":14,"\u00ad":28,"@":5,"c":5,"d":5,"e":5,"g":5,"o":5,"q":5,"J":-9,"B":7,"D":7,"E":7,"F":7,"H":7,"K":7,"L":7,"P":7,"R":7}},"\/":{"d":"0,15r92,-283r31,0r-92,283r-31,0","w":124,"k":{"7":-5}},"0":{"d":"109,4v-68,0,-90,-58,-90,-131v0,-73,22,-131,90,-131v68,0,90,58,90,131v0,73,-22,131,-90,131xm109,-28v41,0,54,-44,54,-99v0,-55,-13,-99,-54,-99v-42,0,-53,44,-53,99v0,55,11,99,53,99","w":218,"k":{".":14,",":14,"8":4,"7":9,"3":3,"2":4,"1":5}},"1":{"d":"23,0r0,-31r56,0r-1,-180v-3,8,-26,30,-35,38r-22,-22r61,-59r33,0r0,223r55,0r0,31r-147,0","w":181,"k":{"-":18,"'":22,"\"":22,"9":4,"8":3,"7":4,"6":4,"5":3,"4":6,"3":1,"0":5,"\/":-9,"%":9}},"2":{"d":"14,-29v0,-94,129,-87,129,-156v0,-23,-18,-40,-45,-40v-28,0,-42,10,-39,35r-33,0v-10,-51,35,-67,74,-68v46,0,80,29,80,73v0,87,-129,88,-129,147v0,5,3,7,9,7r90,0v11,0,7,-14,8,-24r33,0v-1,26,6,55,-23,55r-130,0v-20,0,-24,-8,-24,-29","w":206,"k":{"-":8,"9":6,"7":1,"4":7,"0":2}},"3":{"d":"9,-31r20,-27v0,0,25,28,64,28v27,0,51,-19,51,-46v-1,-34,-33,-49,-73,-45r-8,-19r68,-84v-13,1,-53,1,-71,1v-11,0,-6,15,-7,24r-34,0v1,-25,-7,-55,22,-55r134,0r0,23r-67,80v33,4,72,26,72,75v0,42,-34,80,-87,80v-53,0,-84,-35,-84,-35","w":194,"k":{"9":2,"7":2}},"4":{"d":"6,-67r0,-23r115,-164r41,0r0,156r39,0r0,31r-39,0r0,67r-36,0r0,-67r-120,0xm126,-98r1,-114v-21,37,-57,81,-82,115v18,-2,58,-1,81,-1","w":207,"k":{".":4,",":4,"9":4,"4":-11,"2":-7,"1":3}},"5":{"d":"18,-31r20,-27v0,0,20,28,59,28v32,0,55,-22,55,-50v0,-32,-28,-52,-61,-52v-44,1,-43,22,-63,6r11,-105v3,-43,73,-17,111,-23v29,-4,23,29,23,55r-33,0v-1,-10,3,-25,-8,-24v-20,3,-54,-9,-61,8v-1,19,-7,42,-6,59v0,0,14,-7,33,-7v55,0,91,37,91,83v0,45,-37,84,-92,84v-53,0,-79,-35,-79,-35","w":209,"k":{".":5,",":5,"9":1,"7":6,"5":3,"3":3,"2":2,"1":7,"0":3}},"6":{"d":"109,4v-54,0,-95,-46,-95,-117v0,-66,35,-145,114,-145v30,0,49,10,49,10r-11,31v0,0,-16,-9,-36,-9v-45,-1,-75,45,-76,87v41,-51,136,-14,136,58v0,50,-33,85,-81,85xm51,-98v0,32,25,70,57,70v30,0,47,-23,47,-53v0,-31,-19,-52,-52,-52v-28,0,-52,17,-52,35","w":204,"k":{"-":5,"9":4,"7":3,"5":2,"3":2,"0":3}},"7":{"d":"23,0r122,-224v-24,2,-67,1,-95,1v-11,0,-7,14,-8,24r-33,0v1,-25,-7,-55,22,-55r155,0r0,24r-123,230r-40,0","w":189,"k":{">":14,"=":14,"<":14,";":5,":":5,".":43,"-":19,",":43,"+":14,"?":-6,"9":3,"8":3,"7":-2,"5":1,"4":21,"2":3,"1":1,"0":7,"\/":22}},"8":{"d":"15,-73v0,-44,43,-63,42,-66v0,0,-31,-16,-31,-51v0,-35,28,-68,79,-68v49,0,79,28,79,68v0,37,-30,61,-30,61v69,34,36,133,-50,133v-48,0,-89,-30,-89,-77xm61,-190v-1,27,35,38,61,46v9,0,27,-21,27,-44v0,-23,-18,-38,-44,-38v-28,0,-44,16,-44,36xm155,-71v0,-29,-45,-43,-69,-51v-9,0,-35,20,-35,47v0,28,25,47,53,47v27,0,51,-18,51,-43","w":207,"k":{"9":3,"7":4,"4":-1,"0":4}},"9":{"d":"27,-6r11,-31v0,0,17,9,37,9v45,1,74,-46,75,-88v-41,53,-136,14,-136,-58v0,-50,33,-84,81,-84v54,0,95,46,95,117v0,66,-35,145,-114,145v-30,0,-49,-10,-49,-10xm101,-121v28,0,52,-18,52,-36v0,-33,-25,-69,-57,-69v-30,0,-47,22,-47,52v0,30,19,53,52,53","w":204,"k":{".":14,",":14,"8":2,"7":5,"3":2,"2":2,"1":1,"0":2}},":":{"d":"35,-145r0,-37r36,0r0,37r-36,0xm35,0r0,-37r36,0r0,37r-36,0","w":105},";":{"d":"35,-145r0,-37r36,0r0,37r-36,0xm16,36r19,-74r34,0r-26,74r-27,0","w":105},"<":{"d":"24,-91r0,-23r168,-75r0,32r-129,55r129,54r0,32","k":{"7":6}},"=":{"d":"24,-122r0,-28r172,0r0,28r-172,0xm24,-54r0,-28r172,0r0,28r-172,0","k":{"7":6}},">":{"d":"27,-16r0,-32r128,-55r-128,-54r0,-32r167,75r0,23","k":{"7":6}},"?":{"d":"54,-70v-10,-68,59,-77,61,-121v0,-20,-17,-35,-41,-35v-23,0,-41,15,-41,15r-20,-25v0,0,24,-23,63,-23v41,0,76,26,76,66v-1,66,-73,61,-64,123r-34,0xm53,0r0,-35r36,0r0,35r-36,0","w":163},"@":{"d":"14,-87v0,-74,59,-133,132,-133v116,1,91,79,93,175r26,0r0,26r-98,0v-45,0,-74,-32,-74,-68v-1,-49,50,-75,113,-67v-1,-21,-21,-37,-58,-37v-56,0,-99,48,-99,104v0,57,42,104,103,104r0,28v-81,0,-138,-59,-138,-132xm128,-87v0,37,36,47,78,42r0,-85v-42,-4,-79,5,-78,43","w":274},"A":{"d":"4,0r0,-31v9,0,15,0,17,-8r80,-215r38,0r79,215v2,8,8,8,17,8r0,31v-26,0,-40,2,-49,-21r-19,-52r-94,0v-16,31,-11,84,-69,73xm82,-103r76,0r-39,-113v-7,30,-26,81,-37,113","w":239,"k":{"X":3}},"B":{"d":"37,-23r0,-200r-24,0r0,-31v80,1,183,-16,183,65v0,29,-17,45,-32,55v27,8,42,34,42,62v-1,72,-71,76,-146,72v-16,0,-23,-7,-23,-23xm73,-147v42,2,86,3,86,-39v0,-41,-45,-38,-86,-37r0,76xm73,-39v4,16,36,8,53,8v27,0,43,-17,43,-43v2,-47,-48,-46,-96,-44r0,79","w":222,"k":{"w":2,"v":2,"Y":9,"W":4,"V":4,"T":7,"'":2,"\"":2}},"C":{"d":"12,-129v0,-73,55,-129,128,-129v42,1,108,16,95,79r-33,0v7,-37,-30,-46,-62,-46v-51,0,-90,39,-90,96v0,55,39,99,91,99v50,0,81,-34,81,-34r19,26v0,0,-36,42,-100,42v-76,0,-129,-58,-129,-133","w":252,"k":{"Y":4,"C":2,"G":2,"O":2,"Q":2,"\"":-8,"'":-8,")":-8,"]":-8,"|":-8,"}":-8}},"D":{"d":"37,-23r0,-200r-23,0r0,-31r103,0v77,0,128,47,128,127v0,103,-75,127,-185,127v-16,0,-23,-7,-23,-23xm73,-39v1,15,27,8,41,8v57,0,94,-33,94,-96v-1,-78,-54,-103,-135,-96r0,184","w":257,"k":{"i":-3,"X":4,"T":7,"Y":13,"V":4,"W":4,"a":-2,"v":-1,"w":-1,"y":-1,"\u00ad":-5,"\"":4,"'":4,",":5,".":5,"A":5,"@":-2,"c":-2,"d":-2,"e":-2,"g":-2,"o":-2,"q":-2,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3}},"E":{"d":"37,-23r0,-200r-23,0r0,-31r149,0v29,-3,23,29,23,55r-33,0v-1,-10,3,-24,-8,-24r-72,0r0,79r89,0r0,31r-89,0r0,74v0,5,3,8,8,8r74,0v11,0,7,-14,8,-24r33,0v-1,26,6,55,-23,55r-113,0v-16,0,-23,-7,-23,-23","w":204,"k":{"T":3,"V":5,"W":5,"v":1,"w":1,"J":-3,"f":-2}},"F":{"d":"37,0r0,-223r-23,0r0,-31r140,0v29,-3,23,29,23,55r-33,0v-1,-10,3,-24,-8,-24r-63,0r0,83r87,0r0,31r-87,0r0,109r-36,0","w":184,"k":{"q":2,"o":2,"g":2,"e":2,"d":2,"c":2,"a":5,"Q":4,"O":4,"N":3,"M":3,"J":6,"G":4,"C":4,"A":17,"@":2,".":36,",":36,"'":-7,"\"":-7}},"G":{"d":"13,-128v0,-73,55,-130,128,-130v61,0,90,31,90,31r-20,26v0,0,-28,-24,-70,-24v-51,0,-91,40,-91,97v0,59,41,98,92,98v45,0,73,-31,73,-31v0,-19,5,-40,-24,-34r0,-31v26,1,57,-7,57,23r0,103r-32,0r0,-27v0,0,-29,31,-80,31v-68,0,-123,-53,-123,-132","w":264,"k":{"T":6,"U":3,"a":-3,"\u00ad":-7,"\"":2,"'":2,"@":-3,"c":-3,"d":-3,"e":-3,"g":-3,"o":-3,"q":-3,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3,":":-10,";":-10,"B":2,"D":2,"E":2,"F":2,"H":2,"K":2,"L":2,"P":2,"R":2}},"H":{"d":"37,0r0,-215v0,-11,-13,-8,-23,-8r0,-31v26,1,59,-7,59,23r0,89r129,0r0,-89v-3,-31,33,-22,60,-23r0,31v-10,1,-24,-3,-24,8r0,215r-36,0r0,-112r-129,0r0,112r-36,0","w":275,"k":{"a":4,"v":4,"w":4,"y":4,",":7,".":7,"@":2,"c":2,"d":2,"e":2,"g":2,"o":2,"q":2}},"I":{"d":"15,0r0,-31r25,0r0,-192r-25,0r0,-31r84,0r0,31r-25,0r0,192r25,0r0,31r-84,0","w":114},"J":{"d":"84,4v-41,0,-81,-29,-76,-90r36,0v-3,38,17,56,40,56v20,0,39,-12,39,-45r0,-140v0,-5,-2,-8,-7,-8r-63,0r0,-31r83,0v16,0,23,7,23,23r0,158v0,55,-38,77,-75,77","w":187,"k":{",":4,".":4,"A":4,":":6,";":6}},"K":{"d":"37,0r0,-215v0,-11,-13,-8,-23,-8r0,-31v26,1,59,-7,59,23r0,84v18,-1,38,4,45,-9r57,-98r40,0v-25,39,-47,88,-76,122v18,16,38,65,53,93v4,10,12,8,24,8r0,31v-27,0,-44,3,-55,-19r-44,-88v-6,-14,-26,-9,-44,-10r0,117r-36,0","w":219,"k":{"x":2,"C":8,"G":8,"O":8,"Q":8,"v":11,"w":11,"y":7,"\u00ad":13,")":-9,"]":-9,"|":-9,"}":-9,",":-7,".":-7,"A":-4,"@":3,"c":3,"d":3,"e":3,"g":3,"o":3,"q":3,":":-11,";":-11,"z":4}},"L":{"d":"37,-23r0,-192v0,-11,-13,-8,-23,-8r0,-31v26,1,59,-7,59,23r0,192v0,5,3,8,8,8r70,0v11,0,7,-14,8,-24r33,0v-1,26,6,55,-23,55r-109,0v-16,0,-23,-7,-23,-23","w":195,"k":{"*":27,"T":36,"Y":29,"V":14,"W":14,"C":7,"G":7,"O":7,"Q":7,"U":13,"v":17,"w":17,"y":14,"\u00ad":9,"\"":29,"'":29,",":-4,".":-4,"A":-4,"@":3,"c":3,"d":3,"e":3,"g":3,"o":3,"q":3,"m":2,"n":2,"p":2,"r":2,"u":2,"B":11,"D":11,"E":11,"F":11,"H":11,"K":11,"L":11,"P":11,"R":11,"b":5,"h":5,"k":5,"l":5}},"M":{"d":"7,0r0,-31v9,0,19,2,20,-8r18,-215r37,0r73,167v18,-52,50,-116,72,-167r37,0r18,215v-1,10,10,8,19,8r0,31v-26,-1,-53,6,-55,-23r-12,-172v-13,46,-45,105,-64,149r-31,0r-51,-111v-7,-13,-12,-39,-15,-38v1,52,-10,119,-10,172v0,29,-30,23,-56,23","w":308,"k":{"u":-1,"r":-1,"p":-1,"n":-1,"m":-1,"T":6,"'":11,"\"":11}},"N":{"d":"14,0r0,-31v10,0,23,3,23,-8r0,-215r33,0r113,161v8,11,13,24,22,34v-6,-46,-1,-119,-3,-172v-1,-30,33,-22,60,-23r0,31v-10,1,-24,-3,-24,8r0,215r-32,0r-113,-161v-8,-11,-13,-24,-22,-34v4,47,0,119,2,172v1,30,-33,22,-59,23","w":275,"k":{"a":4,"v":4,"w":4,"y":4,",":7,".":7,"@":2,"c":2,"d":2,"e":2,"g":2,"o":2,"q":2}},"O":{"d":"12,-129v0,-73,58,-129,131,-129v73,0,130,56,130,129v0,75,-57,133,-130,133v-73,0,-131,-58,-131,-133xm50,-129v0,56,42,99,93,99v51,0,93,-43,93,-99v0,-54,-42,-96,-93,-96v-51,0,-93,42,-93,96","w":285,"k":{"i":-3,"X":4,"T":7,"Y":13,"V":4,"W":4,"a":-2,"v":-1,"w":-1,"y":-1,"\u00ad":-5,"\"":4,"'":4,",":5,".":5,"A":5,"@":-2,"c":-2,"d":-2,"e":-2,"g":-2,"o":-2,"q":-2,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3}},"P":{"d":"37,0r0,-223r-23,0r0,-31r112,0v46,0,79,31,79,79v0,69,-57,89,-132,81r0,94r-36,0xm73,-125v51,3,95,1,95,-50v0,-50,-45,-50,-95,-48r0,98","w":213,"k":{"z":2,"s":4,"q":7,"o":7,"g":7,"e":7,"d":7,"c":7,"a":7,"N":3,"M":3,"J":6,"A":21,"@":7,".":38,",":38,"'":-2,"\"":-2}},"Q":{"d":"12,-129v0,-73,57,-129,130,-129v110,0,170,133,101,213r30,28r-22,23r-29,-29v-82,67,-210,1,-210,-106xm50,-129v0,56,40,99,92,99v33,0,54,-17,54,-17r-28,-28r21,-23r28,29v46,-60,3,-156,-75,-156v-52,0,-92,41,-92,96","w":285,"k":{"i":-3,"X":4,"T":7,"Y":13,"V":4,"W":4,"a":-2,"v":-1,"w":-1,"y":-1,"\u00ad":-5,"\"":4,"'":4,",":5,".":5,"A":5,"@":-2,"c":-2,"d":-2,"e":-2,"g":-2,"o":-2,"q":-2,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3}},"R":{"d":"37,0r0,-223r-23,0r0,-31r111,0v45,0,76,28,76,74v0,42,-28,64,-46,68v17,15,29,51,41,73v4,10,12,8,23,8r0,31v-26,0,-42,2,-53,-19r-35,-68v-7,-21,-34,-12,-58,-14r0,101r-36,0xm73,-132v47,2,90,2,90,-46v0,-48,-43,-47,-90,-45r0,91","w":222,"k":{"T":8,"Y":11,"V":2,"W":2,"C":1,"G":1,"O":1,"Q":1,",":-7,".":-7,"A":-4,"@":3,"c":3,"d":3,"e":3,"g":3,"o":3,"q":3,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3}},"S":{"d":"12,-33r21,-26v0,0,26,31,64,31v24,0,44,-15,44,-38v0,-53,-123,-45,-123,-124v0,-38,33,-68,81,-68v34,0,84,15,73,67r-33,0v4,-26,-15,-35,-40,-35v-27,0,-44,15,-44,34v0,51,122,40,122,124v0,39,-31,72,-81,72v-54,0,-84,-37,-84,-37","w":191,"k":{"\u00ad":-3,"\"":-3,"'":-3,"@":-2,"c":-2,"d":-2,"e":-2,"g":-2,"o":-2,"q":-2,"m":-2,"n":-2,"p":-2,"r":-2,"u":-2,"z":2}},"T":{"d":"96,0r0,-223v-23,5,-67,-16,-59,24r-32,0v1,-25,-8,-55,22,-55r175,0v30,-4,21,30,22,55r-32,0v-1,-10,3,-24,-8,-24r-52,0r0,223r-36,0","w":228,"k":{"j":14,"i":12," ":7,"Y":-4,"V":-3,"W":-3,"C":7,"G":7,"O":7,"Q":7,"a":22,"v":22,"w":22,"y":23,"\u00ad":22,"\"":-7,"'":-7,",":25,".":25,"A":31,"@":27,"c":27,"d":27,"e":27,"g":27,"o":27,"q":27,"m":16,"n":16,"p":16,"r":16,"u":16,"J":18,"z":22,"M":4,"N":4,"s":17}},"U":{"d":"34,-89r0,-126v0,-11,-13,-8,-23,-8r0,-31v26,1,59,-7,59,23r0,141v0,38,24,60,61,60v37,0,61,-22,61,-61r0,-140v-3,-30,33,-22,59,-23r0,31v-10,0,-23,-3,-23,8r0,126v0,55,-39,93,-97,93v-58,0,-97,-38,-97,-93","w":262,"k":{",":4,".":4,"A":7,"M":2,"N":2}},"V":{"d":"101,0r-80,-215v-2,-8,-8,-8,-17,-8r0,-31v26,0,42,-2,50,21r56,156v6,14,8,36,11,35v15,-63,46,-130,65,-191v7,-24,24,-21,50,-21r0,31v-9,0,-15,0,-17,8r-80,215r-38,0","w":240,"k":{" ":8,"T":-3,"C":4,"G":4,"O":4,"Q":4,"a":17,"\u00ad":11,"\"":-7,"'":-7,",":25,".":25,"A":12,"@":19,"c":19,"d":19,"e":19,"g":19,"o":19,"q":19,"m":7,"n":7,"p":7,"r":7,"u":7,"J":11,"M":2,"N":2,"S":2}},"W":{"d":"80,0r-56,-215v-3,-8,-9,-8,-18,-8r0,-31v26,0,46,-3,52,21r45,190r57,-210r33,0r53,210r45,-190v4,-24,25,-21,51,-21r0,31v-9,0,-15,0,-17,8r-56,215r-42,0r-51,-195r-54,195r-42,0","w":348,"k":{" ":8,"T":-3,"C":4,"G":4,"O":4,"Q":4,"a":17,"\u00ad":11,"\"":-7,"'":-7,",":25,".":25,"A":12,"@":19,"c":19,"d":19,"e":19,"g":19,"o":19,"q":19,"m":7,"n":7,"p":7,"r":7,"u":7,"J":11,"M":2,"N":2,"S":2}},"X":{"d":"4,0r80,-131r-52,-83v-7,-11,-13,-9,-26,-9r0,-31v27,0,43,-3,56,19r45,78v7,-16,34,-58,44,-78v11,-22,28,-19,55,-19r0,31v-13,0,-20,-2,-26,9r-51,83r80,131r-41,0r-63,-106v-14,29,-43,76,-61,106r-40,0","w":212,"k":{"}":-7,"|":-7,"q":3,"o":3,"g":3,"e":3,"d":3,"c":3,"]":-7,"Q":4,"O":4,"G":4,"C":4,"A":3,"@":3,"-":4,")":-7,"'":-7,"\"":-7}},"Y":{"d":"91,0r0,-111r-65,-103v-6,-10,-10,-9,-22,-9r0,-31v26,0,37,-3,50,19r55,93v11,-22,39,-68,54,-93v12,-22,24,-19,50,-19r0,31v-12,0,-16,-1,-22,9r-64,103r0,111r-36,0","w":217,"k":{" ":13,"T":-4,"a":16,"\u00ad":22,"\"":-7,"'":-7,",":29,".":29,"A":28,"@":25,"c":25,"d":25,"e":25,"g":25,"o":25,"q":25,"m":13,"n":13,"p":13,"r":13,"u":13,"J":13,"z":11,"M":6,"N":6,"s":17}},"Z":{"d":"6,0r0,-24r145,-200v-26,2,-71,1,-101,1v-11,0,-7,14,-8,24r-33,0v1,-26,-6,-55,23,-55r163,0r0,23r-125,177v-10,15,-19,21,-19,24v28,-2,76,-1,108,-1v11,0,7,-14,8,-24r34,0v0,26,5,55,-24,55r-171,0","w":209,"k":{"\u00ad":8}},"[":{"d":"35,11r0,-253v-3,-30,33,-22,59,-23r0,27v-11,1,-29,-5,-28,8r0,230v-1,13,17,7,28,8r0,26v-26,-1,-59,7,-59,-23","w":117,"k":{"j":-7,"4":14}},"\\":{"d":"93,15r-91,-283r31,0r91,283r-31,0","w":122},"]":{"d":"23,8v11,-1,29,4,29,-8r0,-230v0,-12,-18,-7,-29,-8r0,-27v26,1,60,-8,60,23r0,253v3,31,-34,22,-60,23r0,-26","w":117},"^":{"d":"25,-89r72,-165r23,0r71,165r-31,0r-52,-127r-51,127r-32,0"},"_":{"d":"2,0r193,0r0,28r-193,0r0,-28","w":197},"`":{"d":"64,-272r-34,-46r35,0r26,46r-27,0","w":136},"a":{"d":"13,-51v0,-65,84,-58,118,-64v0,-32,-12,-44,-40,-44v-13,0,-36,4,-30,25r-33,0v-10,-44,38,-52,63,-52v92,0,73,70,75,148v0,11,13,8,23,8r0,30v-31,2,-63,1,-56,-32v0,0,-14,36,-58,36v-31,0,-62,-19,-62,-55xm49,-53v0,15,11,29,34,29v32,-1,50,-32,48,-64v-32,0,-82,-1,-82,35","w":195,"k":{"T":31,"v":4,"w":4,"y":4,"\"":25,"'":25}},"b":{"d":"29,0r0,-216v0,-11,-13,-8,-23,-8r0,-30v26,1,58,-7,58,23v0,24,-3,52,0,74v0,0,16,-29,59,-29v49,0,80,38,80,95v0,58,-35,95,-83,95v-43,0,-55,-31,-58,-30r1,26r-34,0xm63,-90v0,32,17,64,52,64v29,0,52,-24,52,-65v0,-40,-20,-65,-51,-65v-27,0,-53,20,-53,66","w":216,"k":{"T":14,"Y":11,"a":2,"v":4,"w":4,"y":4,"\"":4,"'":4,",":5,".":5,"z":4,"b":3,"h":3,"k":3,"l":3}},"c":{"d":"13,-91v0,-54,39,-95,98,-95v29,0,75,12,65,58r-31,0v5,-23,-17,-28,-34,-29v-36,0,-62,27,-62,66v0,41,30,64,64,64v34,0,56,-25,56,-25r15,25v0,0,-26,31,-74,31v-57,0,-97,-40,-97,-95","w":191,"k":{"y":2,"l":1,"k":1,"h":1,"b":1,"T":11}},"d":{"d":"13,-91v0,-58,35,-95,83,-95v44,0,54,29,57,28v-2,-14,-1,-41,-1,-58v0,-11,-13,-8,-23,-8r0,-30v26,1,58,-7,58,23r0,193v0,11,13,8,23,8r0,30v-29,1,-62,5,-57,-29v0,0,-14,33,-59,33v-49,0,-81,-38,-81,-95xm100,-26v27,0,53,-19,53,-65v0,-32,-17,-65,-52,-65v-28,0,-52,24,-52,65v0,40,21,65,51,65","w":217},"e":{"d":"13,-91v0,-58,39,-95,91,-95v55,1,84,44,78,99r-133,0v2,39,31,61,63,61v31,0,53,-21,53,-21r15,25v0,0,-27,26,-70,26v-58,0,-97,-41,-97,-95xm50,-112r97,0v-1,-67,-92,-57,-97,0","w":198,"k":{"T":14}},"f":{"d":"31,0r0,-154r-23,0r0,-28r23,0v1,-67,43,-79,82,-73r0,30v-22,-5,-49,3,-47,43r43,0r0,28r-43,0r0,154r-35,0","w":117,"k":{"T":-7,"a":7,"\u00ad":6,")":-5,"]":-5,"|":-5,"}":-5,",":18,".":18,"@":8,"c":8,"d":8,"e":8,"g":8,"o":8,"q":8,"s":3}},"g":{"d":"13,-95v0,-52,29,-91,80,-91v45,0,59,28,59,28v-6,-29,28,-24,54,-24r0,30v-9,1,-22,-3,-22,7r0,137v-1,86,-93,100,-154,68r12,-28v0,0,22,13,49,13v41,0,65,-29,58,-75v-11,18,-27,28,-54,28v-50,0,-82,-40,-82,-93xm102,-32v25,0,48,-15,48,-63v0,-48,-23,-61,-51,-61v-32,0,-50,23,-50,60v0,38,20,64,53,64","w":214},"h":{"d":"125,-154v-35,0,-62,28,-61,69r0,85r-35,0r0,-216v0,-11,-13,-8,-23,-8r0,-30v26,1,58,-7,58,22r0,86v8,-18,32,-40,68,-40v74,0,62,79,62,148v0,11,13,8,23,8r0,30v-26,-1,-60,6,-58,-23v-7,-50,22,-131,-34,-131","w":223,"k":{"T":31,"v":4,"w":4,"y":4,"\"":25,"'":25}},"i":{"d":"33,-218r0,-36r31,0r0,36r-31,0xm32,-23r0,-121v0,-10,-12,-8,-22,-8r0,-30v26,1,57,-7,57,23r0,121v0,11,13,8,23,8r0,30v-26,-1,-58,7,-58,-23","w":99,"k":{"v":2,"w":2,"y":2}},"j":{"d":"40,-218r0,-36r32,0r0,36r-32,0xm-7,44v22,0,47,0,47,-40r0,-148v0,-11,-13,-8,-23,-8r0,-30v26,1,58,-6,58,23r0,165v-4,66,-47,70,-82,67r0,-29","w":102},"k":{"d":"29,0r0,-216v0,-11,-13,-8,-23,-8r0,-30v25,2,58,-8,58,21r0,118v15,0,27,3,35,-8r42,-59r40,0v-19,25,-41,62,-63,82v14,9,29,46,40,63v3,9,15,7,26,7r0,30v-26,-1,-44,3,-55,-17r-33,-61v-7,-11,-18,-7,-32,-8r0,86r-35,0","w":189,"k":{"y":4,"w":4,"v":4,"q":3,"o":3,"l":3,"k":3,"h":3,"g":3,"e":3,"d":3,"c":3,"b":3,"a":2,"T":7,"@":3}},"l":{"d":"30,-23r0,-193v0,-11,-13,-8,-23,-8r0,-30v26,1,58,-7,58,23r0,193v0,10,12,8,22,8r0,30v-26,-1,-57,7,-57,-23","w":96},"m":{"d":"120,-155v-62,1,-55,87,-54,155r-35,0r0,-144v0,-11,-13,-8,-23,-8r0,-30v33,-2,63,-3,57,37v13,-46,109,-60,117,0v12,-20,34,-41,65,-41v71,0,60,80,60,148v0,11,13,8,23,8r0,30v-26,-1,-60,7,-57,-23v-6,-49,20,-132,-33,-132v-61,0,-56,87,-54,155r-34,0r0,-109v0,-24,-4,-46,-32,-46","w":337,"k":{"T":31,"v":4,"w":4,"y":4,"\"":25,"'":25}},"n":{"d":"126,-154v-36,0,-60,27,-60,69r0,85r-35,0r0,-144v0,-11,-13,-8,-23,-8r0,-30v32,-1,65,-5,56,37v7,-16,29,-41,69,-41v74,0,62,79,62,148v0,11,13,8,23,8r0,30v-26,-1,-60,7,-57,-23v-6,-50,22,-131,-35,-131","w":225,"k":{"T":31,"v":4,"w":4,"y":4,"\"":25,"'":25}},"o":{"d":"13,-91v0,-55,44,-95,98,-95v54,0,98,40,98,95v0,55,-44,95,-98,95v-54,0,-98,-40,-98,-95xm49,-91v0,38,28,65,62,65v35,0,63,-27,63,-65v0,-38,-28,-65,-63,-65v-34,0,-62,27,-62,65","w":222,"k":{"T":14,"Y":11,"a":2,"v":4,"w":4,"y":4,"\"":4,"'":4,",":5,".":5,"z":4,"b":3,"h":3,"k":3,"l":3}},"p":{"d":"31,72r0,-216v0,-11,-13,-8,-23,-8r0,-30v27,1,63,-7,55,28v0,0,16,-32,61,-32v49,0,80,38,80,95v0,58,-35,95,-83,95v-42,0,-53,-30,-56,-29v2,27,1,67,1,97r-35,0xm64,-90v0,32,18,64,52,64v29,0,52,-24,52,-65v0,-40,-21,-65,-51,-65v-27,0,-53,20,-53,66","w":217,"k":{"T":14,"Y":11,"a":2,"v":4,"w":4,"y":4,"\"":4,"'":4,",":5,".":5,"z":4,"b":3,"h":3,"k":3,"l":3}},"q":{"d":"14,-91v0,-58,34,-95,82,-95v45,0,56,31,59,30v-7,-31,28,-26,55,-26r0,30v-10,0,-23,-3,-23,8r0,216r-35,0r0,-98v0,0,-15,30,-58,30v-49,0,-80,-38,-80,-95xm101,-26v27,0,52,-19,52,-65v0,-32,-16,-65,-51,-65v-29,0,-53,24,-53,65v0,40,21,65,52,65","w":217},"r":{"d":"131,-149v-39,-8,-65,29,-65,74r0,75r-35,0r0,-144v0,-11,-13,-8,-23,-8r0,-30v36,-2,66,-4,56,45v11,-30,31,-50,67,-47r0,35","w":139,"k":{"a":11,"v":-5,"w":-5,"y":-5,"\u00ad":7,",":20,".":20,"@":7,"c":7,"d":7,"e":7,"g":7,"o":7,"q":7,"m":-3,"n":-3,"p":-3,"r":-3,"u":-3,"b":4,"h":4,"k":4,"l":4}},"s":{"d":"10,-28r18,-23v0,0,22,27,55,27v17,0,31,-8,31,-24v0,-33,-99,-28,-99,-87v0,-35,31,-51,68,-51v28,0,69,10,60,52r-32,0v4,-19,-12,-24,-27,-24v-21,0,-34,7,-34,21v0,35,99,27,99,88v0,32,-29,53,-67,53v-49,0,-72,-32,-72,-32","w":163},"t":{"d":"32,-67r0,-87r-24,0r0,-28r25,0r0,-50r34,0r0,50r44,0r0,28r-44,0r0,83v3,40,24,42,47,41r0,31v-37,1,-82,-1,-82,-68","w":126,"k":{"a":2,"v":4,"w":4,"y":4,"\u00ad":5,"@":3,"c":3,"d":3,"e":3,"g":3,"o":3,"q":3,"b":3,"h":3,"k":3,"l":3}},"u":{"d":"92,4v-71,0,-64,-78,-62,-148v0,-11,-13,-8,-23,-8r0,-30v26,1,61,-6,58,22v7,50,-22,132,34,132v68,0,60,-84,59,-154r35,0r0,144v0,11,13,8,23,8r0,30v-32,0,-66,6,-57,-37v-8,18,-31,41,-67,41","w":223,"k":{"T":14}},"v":{"d":"76,0r-57,-145v-2,-6,-6,-7,-14,-7r0,-30v23,0,38,-1,45,18r47,129v10,-43,32,-88,45,-129v6,-19,22,-18,45,-18r0,30v-8,0,-14,1,-16,7r-55,145r-40,0","w":191,"k":{"T":11,"a":2,"\u00ad":6,",":14,".":14,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4}},"w":{"d":"68,0r-48,-145v-2,-8,-8,-7,-16,-7r0,-30v24,0,43,-3,49,19r37,128r44,-146r32,0r45,146r37,-128v5,-23,24,-19,49,-19r0,30v-8,0,-15,-1,-17,7r-47,145r-40,0r-43,-137v-11,45,-30,93,-43,137r-39,0","w":300,"k":{"T":11,"a":2,"\u00ad":6,",":14,".":14,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4}},"x":{"d":"5,0r62,-94r-35,-51v-5,-9,-14,-7,-26,-7r0,-30v27,1,42,-4,54,18v8,15,22,32,29,47v18,-28,27,-76,83,-65r0,30v-11,0,-21,-2,-26,6r-35,52r61,94r-39,0r-44,-69r-44,69r-40,0","w":177,"k":{"-":8}},"y":{"d":"16,32v0,0,12,13,27,13v22,1,33,-27,40,-46r-62,-144v-4,-7,-8,-7,-16,-7r0,-30v23,0,38,-3,46,18r49,125v10,-41,31,-85,44,-125v7,-21,24,-18,48,-18r0,30v-9,0,-13,-1,-17,7r-72,178v-11,28,-32,43,-58,43v-27,0,-43,-18,-43,-18","w":196,"k":{"a":3,"\u00ad":6,",":16,".":16,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4}},"z":{"d":"12,0r0,-20r108,-133v-14,2,-49,1,-67,1v-10,-1,-8,11,-8,20r-32,0v0,-25,-4,-50,23,-50r130,0r0,20r-108,133v17,-2,55,-1,76,-1v9,0,7,-11,7,-20r32,0v0,25,4,50,-23,50r-138,0","w":181,"k":{"v":6,"w":6,"y":5,"\u00ad":6,"@":4,"c":4,"d":4,"e":4,"g":4,"o":4,"q":4}},"{":{"d":"41,-28r0,-34v0,-37,-31,-40,-31,-40r0,-30v0,0,31,-3,31,-40r0,-31v4,-61,39,-62,67,-62r0,27v-16,0,-36,-1,-36,37r0,38v0,38,-31,43,-30,46v0,0,30,9,30,46r0,41v2,38,20,38,36,38r0,27v-29,0,-62,-2,-67,-63","w":122,"k":{"j":-7,"4":14}},"|":{"d":"39,57r0,-342r30,0r0,342r-30,0","w":107,"k":{"j":-7,"4":14}},"}":{"d":"14,8v16,0,36,0,36,-38r0,-41v0,-39,31,-44,30,-47v0,0,-30,-9,-30,-45r0,-38v-2,-38,-20,-37,-36,-37r0,-27v29,0,62,1,67,62r0,31v0,37,31,40,31,40r0,30v0,0,-31,3,-31,40r0,34v-4,61,-39,63,-67,63r0,-27","w":122},"~":{"d":"22,-73v0,-42,20,-61,51,-61v38,0,41,35,68,35v19,0,25,-19,25,-34r28,0v0,42,-19,61,-50,61v-38,0,-42,-35,-69,-35v-19,0,-24,19,-24,34r-29,0"}}});
//--studio-all.js

/*

 http://www.protofunc.com/scripts/jquery/backgroundPosition/
 MIT http://jquery.com/dev/svn/trunk/jquery/MIT-LICENSE.txt
 @author Alexander Farkas
 v. 1.02
*/
(function(a){a.extend(a.fx.step,{backgroundPosition:function(c){function g(e){e=e.replace(/left|top/g,"0px");e=e.replace(/right|bottom/g,"100%");e=e.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");e=e.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);return[parseFloat(e[1],10),e[2],parseFloat(e[3],10),e[4]]}if(c.state===0&&typeof c.end=="string"){var b=a.curCSS(c.elem,"backgroundPosition");b=g(b);c.start=[b[0],b[2]];b=g(c.end);c.end=[b[0],b[2]];c.unit=[b[1],b[3]]}b=[];b[0]=(c.end[0]-c.start[0])*
c.pos+c.start[0]+c.unit[0];b[1]=(c.end[1]-c.start[1])*c.pos+c.start[1]+c.unit[1];c.elem.style.backgroundPosition=b[0]+" "+b[1]}})})(jQuery);/*
 
 hoverIntent by Brian Cherne 
 <http://cherne.net/brian/resources/jquery.hoverIntent.html>

 hoverIntent is currently available for use in all personal or commercial 
 projects under both MIT and GPL licenses. This means that you can choose 
 the license that best suits your project, and use it accordingly.
*/
(function(a){a.fn.hoverIntent=function(c,g){var b={sensitivity:7,interval:100,timeout:0};b=a.extend(b,g?{over:c,out:g}:c);var e,h,j,r,o=function(w){e=w.pageX;h=w.pageY},t=function(w,A){A.hoverIntent_t=clearTimeout(A.hoverIntent_t);if(Math.abs(j-e)+Math.abs(r-h)<b.sensitivity){a(A).unbind("mousemove",o);A.hoverIntent_s=1;return b.over.apply(A,[w])}else{j=e;r=h;A.hoverIntent_t=setTimeout(function(){t(w,A)},b.interval)}},s=function(w,A){A.hoverIntent_t=clearTimeout(A.hoverIntent_t);A.hoverIntent_s=0;
return b.out.apply(A,[w])},u=function(w){for(var A=(w.type=="mouseover"?w.fromElement:w.toElement)||w.relatedTarget;A&&A!=this;)try{A=A.parentNode}catch(H){A=this}if(A==this)return false;var d=jQuery.extend({},w),f=this;if(f.hoverIntent_t)f.hoverIntent_t=clearTimeout(f.hoverIntent_t);if(w.type=="mouseover"){j=d.pageX;r=d.pageY;a(f).bind("mousemove",o);if(f.hoverIntent_s!=1)f.hoverIntent_t=setTimeout(function(){t(d,f)},b.interval)}else{a(f).unbind("mousemove",o);if(f.hoverIntent_s==1)f.hoverIntent_t=
setTimeout(function(){s(d,f)},b.timeout)}};return this.mouseover(u).mouseout(u)}})(jQuery);/*

 ColorBox v1.3.6 - a full featured, light-weight, customizable lightbox based on jQuery 1.3 
 http://colorpowered.com/colorbox/
 MIT license
*/
(function(a){function c(q,v){v=v==="x"?C.width():C.height();return typeof q==="string"?Math.round(q.match(/%/)?v/100*parseInt(q,10):parseInt(q,10)):q}function g(q){q=a.isFunction(q)?q.call(F):q;return l.photo||q.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i)}function b(){for(var q in l)if(a.isFunction(l[q])&&q.substring(0,2)!=="on")l[q]=l[q].call(F);l.rel=l.rel||F.rel;l.href=l.href||F.href;l.title=l.title||F.title}function e(q){F=q;l=a.extend({},a(F).data(h));b();if(l.rel&&l.rel!=="nofollow"){z=
a(".cboxElement").filter(function(){return(a(this).data(h).rel||this.rel)===l.rel});I=z.index(F);if(I<0){z=z.add(F);I=z.length-1}}else{z=a(F);I=0}if(!V){W=V=r;$=F;$.blur();a(document).bind("keydown.cbox_close",function(v){if(v.keyCode===27){v.preventDefault();o.close()}}).bind("keydown.cbox_arrows",function(v){if(z.length>1)if(v.keyCode===37){v.preventDefault();X.click()}else if(v.keyCode===39){v.preventDefault();O.click()}});l.overlayClose&&d.css({cursor:"pointer"}).one("click",o.close);a.event.trigger(u);
l.onOpen&&l.onOpen.call(F);d.css({opacity:l.opacity}).show();l.w=c(l.initialWidth,"x");l.h=c(l.initialHeight,"y");o.position(0);s&&C.bind("resize.cboxie6 scroll.cboxie6",function(){d.css({width:C.width(),height:C.height(),top:C.scrollTop(),left:C.scrollLeft()})}).trigger("scroll.cboxie6")}G.add(X).add(O).add(K).add(R).hide();aa.html(l.close).show();o.slideshow();o.load()}var h="colorbox",j="hover",r=true,o,t=a.browser.msie&&!a.support.opacity,s=t&&a.browser.version<7,u="cbox_open",w="cbox_load",A=
"cbox_complete",H="resize.cbox_resize",d,f,k,m,n,i,x,y,z,C,B,L,M,N,R,G,K,O,X,aa,S,T,P,Q,F,$,I,l,V,W,ba={transition:"elastic",speed:350,width:false,height:false,innerWidth:false,innerHeight:false,initialWidth:"400",initialHeight:"400",maxWidth:false,maxHeight:false,scalePhotos:r,scrolling:r,inline:false,html:false,iframe:false,photo:false,href:false,title:false,rel:false,opacity:0.9,preloading:r,current:"image {current} of {total}",previous:"previous",next:"next",close:"close",open:false,overlayClose:r,
slideshow:false,slideshowAuto:r,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",onOpen:false,onLoad:false,onComplete:false,onCleanup:false,onClosed:false};o=a.fn.colorbox=function(q,v){var E=this;if(!E.length)if(E.selector===""){E=a("<a/>");q.open=r}else return this;E.each(function(){var D=a.extend({},a(this).data(h)?a(this).data(h):ba,q);a(this).data(h,D).addClass("cboxElement");if(v)a(this).data(h).onComplete=v});q&&q.open&&e(E);return this};o.init=function(){function q(v){return a('<div id="cbox'+
v+'"/>')}C=a(window);f=a('<div id="colorbox"/>');d=q("Overlay").hide();k=q("Wrapper");m=q("Content").append(B=q("LoadedContent").css({width:0,height:0}),M=q("LoadingOverlay"),N=q("LoadingGraphic"),R=q("Title"),G=q("Current"),K=q("Slideshow"),O=q("Next"),X=q("Previous"),aa=q("Close"));k.append(a("<div/>").append(q("TopLeft"),n=q("TopCenter"),q("TopRight")),a("<div/>").append(i=q("MiddleLeft"),m,x=q("MiddleRight")),a("<div/>").append(q("BottomLeft"),y=q("BottomCenter"),q("BottomRight"))).children().children().css({"float":"left"});
L=a("<div style='position:absolute; top:0; left:0; width:9999px; height:0;'/>");a("body").prepend(d,f.append(k,L));if(t){f.addClass("cboxIE");s&&d.css("position","absolute")}m.children().bind("mouseover mouseout",function(){a(this).toggleClass(j)}).addClass(j);S=n.height()+y.height()+m.outerHeight(r)-m.height();T=i.width()+x.width()+m.outerWidth(r)-m.width();P=B.outerHeight(r);Q=B.outerWidth(r);f.css({"padding-bottom":S,"padding-right":T}).hide();O.click(o.next);X.click(o.prev);aa.click(o.close);
m.children().removeClass(j);a(".cboxElement").live("click",function(v){if(v.button!==0&&typeof v.button!=="undefined")return r;else{e(this);return false}})};o.position=function(q,v){function E(U){n[0].style.width=y[0].style.width=m[0].style.width=U.style.width;N[0].style.height=M[0].style.height=m[0].style.height=i[0].style.height=x[0].style.height=U.style.height}var D=C.height();D=Math.max(D-l.h-P-S,0)/2+C.scrollTop();var J=Math.max(document.documentElement.clientWidth-l.w-Q-T,0)/2+C.scrollLeft();
q=f.width()===l.w+Q&&f.height()===l.h+P?0:q;k[0].style.width=k[0].style.height="9999px";f.dequeue().animate({width:l.w+Q,height:l.h+P,top:D,left:J},{duration:q,complete:function(){E(this);W=false;k[0].style.width=l.w+Q+T+"px";k[0].style.height=l.h+P+S+"px";v&&v()},step:function(){E(this)}})};o.resize=function(q){function v(){l.w=l.w||B.width();l.w=l.mw&&l.mw<l.w?l.mw:l.w;return l.w}function E(){l.h=l.h||B.height();l.h=l.mh&&l.mh<l.h?l.mh:l.h;return l.h}function D(Y){o.position(Y,function(){if(V){if(t){U&&
B.fadeIn(100);f[0].style.removeAttribute("filter")}if(l.iframe)B.append("<iframe id='cboxIframe'"+(l.scrolling?" ":"scrolling='no'")+" name='iframe_"+(new Date).getTime()+"' frameborder=0 src='"+l.href+"' "+(t?"allowtransparency='true'":"")+" />");B.show();R.show().html(l.title);if(z.length>1){G.html(l.current.replace(/\{current\}/,I+1).replace(/\{total\}/,z.length)).show();O.html(l.next).show();X.html(l.previous).show();l.slideshow&&K.show()}M.hide();N.hide();a.event.trigger(A);l.onComplete&&l.onComplete.call(F);
l.transition==="fade"&&f.fadeTo(Z,1,function(){t&&f[0].style.removeAttribute("filter")});C.bind(H,function(){o.position(0)})}})}if(V){var J,U,Z=l.transition==="none"?0:l.speed;C.unbind(H);if(q){B.remove();B=a('<div id="cboxLoadedContent"/>').html(q);B.hide().appendTo(L).css({width:v(),overflow:l.scrolling?"auto":"hidden"}).css({height:E()}).prependTo(m);a("#cboxPhoto").css({cssFloat:"none"});s&&a("select:not(#colorbox select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("cbox_cleanup",
function(){this.style.visibility="inherit"});l.transition==="fade"&&f.fadeTo(Z,0,function(){D(0)})||D(Z);if(l.preloading&&z.length>1){q=I>0?z[I-1]:z[z.length-1];J=I<z.length-1?z[I+1]:z[0];J=a(J).data(h).href||J.href;q=a(q).data(h).href||q.href;g(J)&&a("<img />").attr("src",J);g(q)&&a("<img />").attr("src",q)}}else setTimeout(function(){var Y=B.wrapInner("<div style='overflow:auto'></div>").children();l.h=Y.height();B.css({height:l.h});Y.replaceWith(Y.children());o.position(Z)},1)}};o.load=function(){var q,
v,E,D=o.resize;W=r;F=z[I];l=a.extend({},a(F).data(h));b();a.event.trigger(w);l.onLoad&&l.onLoad.call(F);l.h=l.height?c(l.height,"y")-P-S:l.innerHeight?c(l.innerHeight,"y"):false;l.w=l.width?c(l.width,"x")-Q-T:l.innerWidth?c(l.innerWidth,"x"):false;l.mw=l.w;l.mh=l.h;if(l.maxWidth){l.mw=c(l.maxWidth,"x")-Q-T;l.mw=l.w&&l.w<l.mw?l.w:l.mw}if(l.maxHeight){l.mh=c(l.maxHeight,"y")-P-S;l.mh=l.h&&l.h<l.mh?l.h:l.mh}q=l.href;M.show();N.show();if(l.inline){a('<div id="cboxInlineTemp" />').hide().insertBefore(a(q)[0]).bind(w+
" cbox_cleanup",function(){a(this).replaceWith(B.children())});D(a(q))}else if(l.iframe)D(" ");else if(l.html)D(l.html);else if(g(q)){v=new Image;v.onload=function(){var J;v.onload=null;v.id="cboxPhoto";a(v).css({margin:"auto",border:"none",display:"block",cssFloat:"left"});if(l.scalePhotos){E=function(){v.height-=v.height*J;v.width-=v.width*J};if(l.mw&&v.width>l.mw){J=(v.width-l.mw)/v.width;E()}if(l.mh&&v.height>l.mh){J=(v.height-l.mh)/v.height;E()}}if(l.h)v.style.marginTop=Math.max(l.h-v.height,
0)/2+"px";D(v);z.length>1&&a(v).css({cursor:"pointer"}).click(o.next);if(t)v.style.msInterpolationMode="bicubic"};v.src=q}else a("<div />").appendTo(L).load(q,function(J,U){U==="success"?D(this):D(a("<p>Request unsuccessful.</p>"))})};o.next=function(){if(!W){I=I<z.length-1?I+1:0;o.load()}};o.prev=function(){if(!W){I=I>0?I-1:z.length-1;o.load()}};o.slideshow=function(){function q(){K.text(l.slideshowStop).bind(A,function(){E=setTimeout(o.next,l.slideshowSpeed)}).bind(w,function(){clearTimeout(E)}).one("click",
function(){v();a(this).removeClass(j)});f.removeClass(D+"off").addClass(D+"on")}var v,E,D="cboxSlideshow_";K.bind("cbox_closed",function(){K.unbind();clearTimeout(E);f.removeClass(D+"off "+D+"on")});v=function(){clearTimeout(E);K.text(l.slideshowStart).unbind(A+" "+w).one("click",function(){q();E=setTimeout(o.next,l.slideshowSpeed);a(this).removeClass(j)});f.removeClass(D+"on").addClass(D+"off")};if(l.slideshow&&z.length>1)l.slideshowAuto?q():v()};o.close=function(){a.event.trigger("cbox_cleanup");
l.onCleanup&&l.onCleanup.call(F);V=false;a(document).unbind("keydown.cbox_close keydown.cbox_arrows");C.unbind(H+" resize.cboxie6 scroll.cboxie6");d.css({cursor:"auto"}).fadeOut("fast");f.stop(r,false).fadeOut("fast",function(){a("#colorbox iframe").attr("src","about:blank");B.remove();f.css({opacity:1});try{$.focus()}catch(q){}a.event.trigger("cbox_closed");l.onClosed&&l.onClosed.call(F)})};o.element=function(){return a(F)};o.settings=ba;a(o.init)})(jQuery);/*

 jQuery Cycle Plugin (with Transition Definitions)
 Examples and documentation at: http://jquery.malsup.com/cycle/
 Copyright (c) 2007-2010 M. Alsup
 Version: 2.84 (30-MAR-2010)
 Dual licensed under the MIT and GPL licenses:
 http://www.opensource.org/licenses/mit-license.php
 http://www.gnu.org/licenses/gpl.html
 Requires: jQuery v1.2.6 or later
*/
(function(a){function c(d){a.fn.cycle.debug&&g(d)}function g(){window.console&&window.console.log&&window.console.log("[cycle] "+Array.prototype.join.call(arguments," "))}function b(d,f,k){if(d.cycleStop==undefined)d.cycleStop=0;if(f===undefined||f===null)f={};if(f.constructor==String){switch(f){case "destroy":case "stop":k=a(d).data("cycle.opts");if(!k)return false;d.cycleStop++;d.cycleTimeout&&clearTimeout(d.cycleTimeout);d.cycleTimeout=0;a(d).removeData("cycle.opts");f=="destroy"&&h(k);return false;
case "toggle":d.cyclePause=d.cyclePause===1?0:1;return false;case "pause":d.cyclePause=1;return false;case "resume":d.cyclePause=0;if(k===true){f=a(d).data("cycle.opts");if(!f){g("options not found, can not resume");return false}if(d.cycleTimeout){clearTimeout(d.cycleTimeout);d.cycleTimeout=0}s(f.elements,f,1,1)}return false;case "prev":case "next":k=a(d).data("cycle.opts");if(!k){g('options not found, "prev/next" ignored');return false}a.fn.cycle[f](k);return false;default:f={fx:f}}return f}else if(f.constructor==
Number){var m=f;f=a(d).data("cycle.opts");if(!f){g("options not found, can not advance slide");return false}if(m<0||m>=f.elements.length){g("invalid slide index: "+m);return false}f.nextSlide=m;if(d.cycleTimeout){clearTimeout(d.cycleTimeout);d.cycleTimeout=0}if(typeof k=="string")f.oneTimeFx=k;s(f.elements,f,1,m>=f.currSlide);return false}return f}function e(d,f){if(!a.support.opacity&&f.cleartype&&d.style.filter)try{d.style.removeAttribute("filter")}catch(k){}}function h(d){d.next&&a(d.next).unbind(d.prevNextEvent);
d.prev&&a(d.prev).unbind(d.prevNextEvent);if(d.pager||d.pagerAnchorBuilder)a.each(d.pagerAnchors||[],function(){this.unbind().remove()});d.pagerAnchors=null;d.destroy&&d.destroy(d)}function j(d,f,k,m,n){var i=a.extend({},a.fn.cycle.defaults,m||{},a.metadata?d.metadata():a.meta?d.data():{});if(i.autostop)i.countdown=i.autostopCount||k.length;var x=d[0];d.data("cycle.opts",i);i.$cont=d;i.stopCount=x.cycleStop;i.elements=k;i.before=i.before?[i.before]:[];i.after=i.after?[i.after]:[];i.after.unshift(function(){i.busy=
0});!a.support.opacity&&i.cleartype&&i.after.push(function(){e(this,i)});i.continuous&&i.after.push(function(){s(k,i,0,!i.rev)});r(i);!a.support.opacity&&i.cleartype&&!i.cleartypeNoBg&&H(f);d.css("position")=="static"&&d.css("position","relative");i.width&&d.width(i.width);i.height&&i.height!="auto"&&d.height(i.height);if(i.startingSlide)i.startingSlide=parseInt(i.startingSlide);if(i.random){i.randomMap=[];for(x=0;x<k.length;x++)i.randomMap.push(x);i.randomMap.sort(function(){return Math.random()-
0.5});i.randomIndex=1;i.startingSlide=i.randomMap[1]}else if(i.startingSlide>=k.length)i.startingSlide=0;i.currSlide=i.startingSlide||0;var y=i.startingSlide;f.css({position:"absolute",top:0,left:0}).hide().each(function(G){G=y?G>=y?k.length-(G-y):y-G:k.length-G;a(this).css("z-index",G)});a(k[y]).css("opacity",1).show();e(k[y],i);i.fit&&i.width&&f.width(i.width);i.fit&&i.height&&i.height!="auto"&&f.height(i.height);if(i.containerResize&&!d.innerHeight()){for(var z=x=0,C=0;C<k.length;C++){var B=a(k[C]),
L=B[0],M=B.outerWidth(),N=B.outerHeight();M||(M=L.offsetWidth||L.width||B.attr("width"));N||(N=L.offsetHeight||L.height||B.attr("height"));x=M>x?M:x;z=N>z?N:z}x>0&&z>0&&d.css({width:x+"px",height:z+"px"})}i.pause&&d.hover(function(){this.cyclePause++},function(){this.cyclePause--});if(o(i)===false)return false;var R=false;m.requeueAttempts=m.requeueAttempts||0;f.each(function(){var G=a(this);this.cycleH=i.fit&&i.height?i.height:G.height()||this.offsetHeight||this.height||G.attr("height")||0;this.cycleW=
i.fit&&i.width?i.width:G.width()||this.offsetWidth||this.width||G.attr("width")||0;if(G.is("img")){G=a.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete;var K=a.browser.opera&&(this.cycleW==42&&this.cycleH==19||this.cycleW==37&&this.cycleH==17)&&!this.complete,O=this.cycleH==0&&this.cycleW==0&&!this.complete;if(a.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete||G||K||O)if(n.s&&i.requeueOnImageNotLoaded&&++m.requeueAttempts<100){g(m.requeueAttempts," - img slide not loaded, requeuing slideshow: ",
this.src,this.cycleW,this.cycleH);setTimeout(function(){a(n.s,n.c).cycle(m)},i.requeueTimeout);R=true;return false}else g("could not determine size of image: "+this.src,this.cycleW,this.cycleH)}return true});if(R)return false;i.cssBefore=i.cssBefore||{};i.animIn=i.animIn||{};i.animOut=i.animOut||{};f.not(":eq("+y+")").css(i.cssBefore);i.cssFirst&&a(f[y]).css(i.cssFirst);if(i.timeout){i.timeout=parseInt(i.timeout);if(i.speed.constructor==String)i.speed=a.fx.speeds[i.speed]||parseInt(i.speed);i.sync||
(i.speed/=2);for(x=i.fx=="shuffle"?500:250;i.timeout-i.speed<x;)i.timeout+=i.speed}if(i.easing)i.easeIn=i.easeOut=i.easing;if(!i.speedIn)i.speedIn=i.speed;if(!i.speedOut)i.speedOut=i.speed;i.slideCount=k.length;i.currSlide=i.lastSlide=y;if(i.random){if(++i.randomIndex==k.length)i.randomIndex=0;i.nextSlide=i.randomMap[i.randomIndex]}else i.nextSlide=i.startingSlide>=k.length-1?0:i.startingSlide+1;if(!i.multiFx){x=a.fn.cycle.transitions[i.fx];if(a.isFunction(x))x(d,f,i);else if(i.fx!="custom"&&!i.multiFx){g("unknown transition: "+
i.fx,"; slideshow terminating");return false}}d=f[y];i.before.length&&i.before[0].apply(d,[d,d,i,true]);i.after.length>1&&i.after[1].apply(d,[d,d,i,true]);i.next&&a(i.next).bind(i.prevNextEvent,function(){return w(i,i.rev?-1:1)});i.prev&&a(i.prev).bind(i.prevNextEvent,function(){return w(i,i.rev?1:-1)});if(i.pager||i.pagerAnchorBuilder)A(k,i);t(i,k);return i}function r(d){d.original={before:[],after:[]};d.original.cssBefore=a.extend({},d.cssBefore);d.original.cssAfter=a.extend({},d.cssAfter);d.original.animIn=
a.extend({},d.animIn);d.original.animOut=a.extend({},d.animOut);a.each(d.before,function(){d.original.before.push(this)});a.each(d.after,function(){d.original.after.push(this)})}function o(d){var f,k,m=a.fn.cycle.transitions;if(d.fx.indexOf(",")>0){d.multiFx=true;d.fxs=d.fx.replace(/\s*/g,"").split(",");for(f=0;f<d.fxs.length;f++){var n=d.fxs[f];k=m[n];if(!k||!m.hasOwnProperty(n)||!a.isFunction(k)){g("discarding unknown transition: ",n);d.fxs.splice(f,1);f--}}if(!d.fxs.length){g("No valid transitions named; slideshow terminating.");
return false}}else if(d.fx=="all"){d.multiFx=true;d.fxs=[];for(p in m){k=m[p];m.hasOwnProperty(p)&&a.isFunction(k)&&d.fxs.push(p)}}if(d.multiFx&&d.randomizeEffects){k=Math.floor(Math.random()*20)+30;for(f=0;f<k;f++)d.fxs.push(d.fxs.splice(Math.floor(Math.random()*d.fxs.length),1)[0]);c("randomized fx sequence: ",d.fxs)}return true}function t(d,f){d.addSlide=function(k,m){var n=a(k),i=n[0];d.autostopCount||d.countdown++;f[m?"unshift":"push"](i);if(d.els)d.els[m?"unshift":"push"](i);d.slideCount=f.length;
n.css("position","absolute");n[m?"prependTo":"appendTo"](d.$cont);if(m){d.currSlide++;d.nextSlide++}!a.support.opacity&&d.cleartype&&!d.cleartypeNoBg&&H(n);d.fit&&d.width&&n.width(d.width);d.fit&&d.height&&d.height!="auto"&&$slides.height(d.height);i.cycleH=d.fit&&d.height?d.height:n.height();i.cycleW=d.fit&&d.width?d.width:n.width();n.css(d.cssBefore);if(d.pager||d.pagerAnchorBuilder)a.fn.cycle.createPagerAnchor(f.length-1,i,a(d.pager),f,d);a.isFunction(d.onAddSlide)?d.onAddSlide(n):n.hide()}}function s(d,
f,k,m){if(k&&f.busy&&f.manualTrump){c("manualTrump in go(), stopping active transition");a(d).stop(true,true);f.busy=false}if(f.busy)c("transition active, ignoring new tx request");else{var n=f.$cont[0],i=d[f.currSlide],x=d[f.nextSlide];if(!(n.cycleStop!=f.stopCount||n.cycleTimeout===0&&!k))if(!k&&!n.cyclePause&&(f.autostop&&--f.countdown<=0||f.nowrap&&!f.random&&f.nextSlide<f.currSlide))f.end&&f.end(f);else{var y=false;if((k||!n.cyclePause)&&f.nextSlide!=f.currSlide){y=true;var z=f.fx;i.cycleH=i.cycleH||
a(i).height();i.cycleW=i.cycleW||a(i).width();x.cycleH=x.cycleH||a(x).height();x.cycleW=x.cycleW||a(x).width();if(f.multiFx){if(f.lastFx==undefined||++f.lastFx>=f.fxs.length)f.lastFx=0;z=f.fxs[f.lastFx];f.currFx=z}if(f.oneTimeFx){z=f.oneTimeFx;f.oneTimeFx=null}a.fn.cycle.resetState(f,z);f.before.length&&a.each(f.before,function(C,B){n.cycleStop==f.stopCount&&B.apply(x,[i,x,f,m])});z=function(){a.each(f.after,function(C,B){n.cycleStop==f.stopCount&&B.apply(x,[i,x,f,m])})};c("tx firing; currSlide: "+
f.currSlide+"; nextSlide: "+f.nextSlide);f.busy=1;if(f.fxFn)f.fxFn(i,x,f,z,m,k&&f.fastOnEvent);else a.isFunction(a.fn.cycle[f.fx])?a.fn.cycle[f.fx](i,x,f,z,m,k&&f.fastOnEvent):a.fn.cycle.custom(i,x,f,z,m,k&&f.fastOnEvent)}if(!n.cyclePause){f.lastSlide=f.currSlide;if(f.random){f.currSlide=f.nextSlide;if(++f.randomIndex==d.length)f.randomIndex=0;f.nextSlide=f.randomMap[f.randomIndex];if(f.nextSlide==f.currSlide)f.nextSlide=f.currSlide==f.slideCount-1?0:f.currSlide+1}else{k=f.nextSlide+1==d.length;f.nextSlide=
k?0:f.nextSlide+1;f.currSlide=k?d.length-1:f.nextSlide-1}}y&&f.pager&&f.updateActivePagerLink(f.pager,f.currSlide,f.activePagerClass);y=0;if(f.timeout&&!f.continuous)y=u(i,x,f,m);else if(f.continuous&&n.cyclePause)y=10;if(y>0)n.cycleTimeout=setTimeout(function(){s(d,f,0,!f.rev)},y)}}}function u(d,f,k,m){if(k.timeoutFn){for(d=k.timeoutFn(d,f,k,m);d-k.speed<250;)d+=k.speed;c("calculated timeout: "+d+"; speed: "+k.speed);if(d!==false)return d}return k.timeout}function w(d,f){var k=d.elements,m=d.$cont[0],
n=m.cycleTimeout;if(n){clearTimeout(n);m.cycleTimeout=0}if(d.random&&f<0){d.randomIndex--;if(--d.randomIndex==-2)d.randomIndex=k.length-2;else if(d.randomIndex==-1)d.randomIndex=k.length-1;d.nextSlide=d.randomMap[d.randomIndex]}else if(d.random)d.nextSlide=d.randomMap[d.randomIndex];else{d.nextSlide=d.currSlide+f;if(d.nextSlide<0){if(d.nowrap)return false;d.nextSlide=k.length-1}else if(d.nextSlide>=k.length){if(d.nowrap)return false;d.nextSlide=0}}m=d.onPrevNextEvent||d.prevNextClick;a.isFunction(m)&&
m(f>0,d.nextSlide,k[d.nextSlide]);s(k,d,1,f>=0);return false}function A(d,f){var k=a(f.pager);a.each(d,function(m,n){a.fn.cycle.createPagerAnchor(m,n,k,d,f)});f.updateActivePagerLink(f.pager,f.startingSlide,f.activePagerClass)}function H(d){function f(m){m=parseInt(m).toString(16);return m.length<2?"0"+m:m}function k(m){for(;m&&m.nodeName.toLowerCase()!="html";m=m.parentNode){var n=a.css(m,"background-color");if(n.indexOf("rgb")>=0){m=n.match(/\d+/g);return"#"+f(m[0])+f(m[1])+f(m[2])}if(n&&n!="transparent")return n}return"#ffffff"}
c("applying clearType background-color hack");d.each(function(){a(this).css("background-color",k(this))})}if(a.support==undefined)a.support={opacity:!a.browser.msie};a.fn.cycle=function(d,f){var k={s:this.selector,c:this.context};if(this.length===0&&d!="stop"){if(!a.isReady&&k.s){g("DOM not ready, queuing slideshow");a(function(){a(k.s,k.c).cycle(d,f)});return this}g("terminating; zero elements found by selector"+(a.isReady?"":" (DOM not ready)"));return this}return this.each(function(){var m=b(this,
d,f);if(m!==false){m.updateActivePagerLink=m.updateActivePagerLink||a.fn.cycle.updateActivePagerLink;this.cycleTimeout&&clearTimeout(this.cycleTimeout);this.cycleTimeout=this.cyclePause=0;var n=a(this),i=m.slideExpr?a(m.slideExpr,this):n.children(),x=i.get();if(x.length<2)g("terminating; too few slides: "+x.length);else{var y=j(n,i,x,m,k);if(y!==false)if(m=y.continuous?10:u(y.currSlide,y.nextSlide,y,!y.rev)){m+=y.delay||0;if(m<10)m=10;c("first timeout: "+m);this.cycleTimeout=setTimeout(function(){s(x,
y,0,!y.rev)},m)}}}})};a.fn.cycle.resetState=function(d,f){f=f||d.fx;d.before=[];d.after=[];d.cssBefore=a.extend({},d.original.cssBefore);d.cssAfter=a.extend({},d.original.cssAfter);d.animIn=a.extend({},d.original.animIn);d.animOut=a.extend({},d.original.animOut);d.fxFn=null;a.each(d.original.before,function(){d.before.push(this)});a.each(d.original.after,function(){d.after.push(this)});var k=a.fn.cycle.transitions[f];a.isFunction(k)&&k(d.$cont,a(d.elements),d)};a.fn.cycle.updateActivePagerLink=function(d,
f,k){a(d).each(function(){a(this).children().removeClass(k).eq(f).addClass(k)})};a.fn.cycle.next=function(d){w(d,d.rev?-1:1)};a.fn.cycle.prev=function(d){w(d,d.rev?1:-1)};a.fn.cycle.createPagerAnchor=function(d,f,k,m,n){if(a.isFunction(n.pagerAnchorBuilder)){f=n.pagerAnchorBuilder(d,f);c("pagerAnchorBuilder("+d+", el) returned: "+f)}else f='<a href="#">'+(d+1)+"</a>";if(f){var i=a(f);if(i.parents("body").length===0){var x=[];if(k.length>1){k.each(function(){var y=i.clone(true);a(this).append(y);x.push(y[0])});
i=a(x)}else i.appendTo(k)}n.pagerAnchors=n.pagerAnchors||[];n.pagerAnchors.push(i);i.bind(n.pagerEvent,function(y){y.preventDefault();n.nextSlide=d;y=n.$cont[0];var z=y.cycleTimeout;if(z){clearTimeout(z);y.cycleTimeout=0}y=n.onPagerEvent||n.pagerClick;a.isFunction(y)&&y(n.nextSlide,m[n.nextSlide]);s(m,n,1,n.currSlide<d)});!/^click/.test(n.pagerEvent)&&!n.allowPagerClickBubble&&i.bind("click.cycle",function(){return false});n.pauseOnPagerHover&&i.hover(function(){n.$cont[0].cyclePause++},function(){n.$cont[0].cyclePause--})}};
a.fn.cycle.hopsFromLast=function(d,f){var k=d.lastSlide,m=d.currSlide;return f?m>k?m-k:d.slideCount-k:m<k?k-m:k+d.slideCount-m};a.fn.cycle.commonReset=function(d,f,k,m,n,i){a(k.elements).not(d).hide();k.cssBefore.opacity=1;k.cssBefore.display="block";if(m!==false&&f.cycleW>0)k.cssBefore.width=f.cycleW;if(n!==false&&f.cycleH>0)k.cssBefore.height=f.cycleH;k.cssAfter=k.cssAfter||{};k.cssAfter.display="none";a(d).css("zIndex",k.slideCount+(i===true?1:0));a(f).css("zIndex",k.slideCount+(i===true?0:1))};
a.fn.cycle.custom=function(d,f,k,m,n,i){var x=a(d),y=a(f),z=k.speedIn;d=k.speedOut;var C=k.easeIn;f=k.easeOut;y.css(k.cssBefore);if(i){z=typeof i=="number"?(d=i):(d=1);C=f=null}var B=function(){y.animate(k.animIn,z,C,m)};x.animate(k.animOut,d,f,function(){k.cssAfter&&x.css(k.cssAfter);k.sync||B()});k.sync&&B()};a.fn.cycle.transitions={fade:function(d,f,k){f.not(":eq("+k.currSlide+")").css("opacity",0);k.before.push(function(m,n,i){a.fn.cycle.commonReset(m,n,i);i.cssBefore.opacity=0});k.animIn={opacity:1};
k.animOut={opacity:0};k.cssBefore={top:0,left:0}}};a.fn.cycle.ver=function(){return"2.84"};a.fn.cycle.defaults={fx:"fade",timeout:4E3,timeoutFn:null,continuous:0,speed:1E3,speedIn:null,speedOut:null,next:null,prev:null,onPrevNextEvent:null,prevNextEvent:"click.cycle",pager:null,onPagerEvent:null,pagerEvent:"click.cycle",allowPagerClickBubble:false,pagerAnchorBuilder:null,before:null,after:null,end:null,easing:null,easeIn:null,easeOut:null,shuffle:null,animIn:null,animOut:null,cssBefore:null,cssAfter:null,
fxFn:null,height:"auto",startingSlide:0,sync:1,random:0,fit:0,containerResize:1,pause:0,pauseOnPagerHover:0,autostop:0,autostopCount:0,delay:0,slideExpr:null,cleartype:!a.support.opacity,cleartypeNoBg:false,nowrap:0,fastOnEvent:0,randomizeEffects:1,rev:0,manualTrump:true,requeueOnImageNotLoaded:true,requeueTimeout:250,activePagerClass:"activeSlide",updateActivePagerLink:null}})(jQuery);
(function(a){a.fn.cycle.transitions.none=function(c,g,b){b.fxFn=function(e,h,j,r){a(h).show();a(e).hide();r()}};a.fn.cycle.transitions.scrollUp=function(c,g,b){c.css("overflow","hidden");b.before.push(a.fn.cycle.commonReset);c=c.height();b.cssBefore={top:c,left:0};b.cssFirst={top:0};b.animIn={top:0};b.animOut={top:-c}};a.fn.cycle.transitions.scrollDown=function(c,g,b){c.css("overflow","hidden");b.before.push(a.fn.cycle.commonReset);c=c.height();b.cssFirst={top:0};b.cssBefore={top:-c,left:0};b.animIn=
{top:0};b.animOut={top:c}};a.fn.cycle.transitions.scrollLeft=function(c,g,b){c.css("overflow","hidden");b.before.push(a.fn.cycle.commonReset);c=c.width();b.cssFirst={left:0};b.cssBefore={left:c,top:0};b.animIn={left:0};b.animOut={left:0-c}};a.fn.cycle.transitions.scrollRight=function(c,g,b){c.css("overflow","hidden");b.before.push(a.fn.cycle.commonReset);c=c.width();b.cssFirst={left:0};b.cssBefore={left:-c,top:0};b.animIn={left:0};b.animOut={left:c}};a.fn.cycle.transitions.scrollHorz=function(c,g,
b){c.css("overflow","hidden").width();b.before.push(function(e,h,j,r){a.fn.cycle.commonReset(e,h,j);j.cssBefore.left=r?h.cycleW-1:1-h.cycleW;j.animOut.left=r?-e.cycleW:e.cycleW});b.cssFirst={left:0};b.cssBefore={top:0};b.animIn={left:0};b.animOut={top:0}};a.fn.cycle.transitions.scrollVert=function(c,g,b){c.css("overflow","hidden");b.before.push(function(e,h,j,r){a.fn.cycle.commonReset(e,h,j);j.cssBefore.top=r?1-h.cycleH:h.cycleH-1;j.animOut.top=r?e.cycleH:-e.cycleH});b.cssFirst={top:0};b.cssBefore=
{left:0};b.animIn={top:0};b.animOut={left:0}};a.fn.cycle.transitions.slideX=function(c,g,b){b.before.push(function(e,h,j){a(j.elements).not(e).hide();a.fn.cycle.commonReset(e,h,j,false,true);j.animIn.width=h.cycleW});b.cssBefore={left:0,top:0,width:0};b.animIn={width:"show"};b.animOut={width:0}};a.fn.cycle.transitions.slideY=function(c,g,b){b.before.push(function(e,h,j){a(j.elements).not(e).hide();a.fn.cycle.commonReset(e,h,j,true,false);j.animIn.height=h.cycleH});b.cssBefore={left:0,top:0,height:0};
b.animIn={height:"show"};b.animOut={height:0}};a.fn.cycle.transitions.shuffle=function(c,g,b){c=c.css("overflow","visible").width();g.css({left:0,top:0});b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j,true,true,true)});if(!b.speedAdjusted){b.speed/=2;b.speedAdjusted=true}b.random=0;b.shuffle=b.shuffle||{left:-c,top:15};b.els=[];for(c=0;c<g.length;c++)b.els.push(g[c]);for(c=0;c<b.currSlide;c++)b.els.push(b.els.shift());b.fxFn=function(e,h,j,r,o){var t=o?a(e):a(h);a(h).css(j.cssBefore);
var s=j.slideCount;t.animate(j.shuffle,j.speedIn,j.easeIn,function(){for(var u=a.fn.cycle.hopsFromLast(j,o),w=0;w<u;w++)o?j.els.push(j.els.shift()):j.els.unshift(j.els.pop());if(o){u=0;for(w=j.els.length;u<w;u++)a(j.els[u]).css("z-index",w-u+s)}else{u=a(e).css("z-index");t.css("z-index",parseInt(u)+1+s)}t.animate({left:0,top:0},j.speedOut,j.easeOut,function(){a(o?this:e).hide();r&&r()})})};b.cssBefore={display:"block",opacity:1,top:0,left:0}};a.fn.cycle.transitions.turnUp=function(c,g,b){b.before.push(function(e,
h,j){a.fn.cycle.commonReset(e,h,j,true,false);j.cssBefore.top=h.cycleH;j.animIn.height=h.cycleH});b.cssFirst={top:0};b.cssBefore={left:0,height:0};b.animIn={top:0};b.animOut={height:0}};a.fn.cycle.transitions.turnDown=function(c,g,b){b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j,true,false);j.animIn.height=h.cycleH;j.animOut.top=e.cycleH});b.cssFirst={top:0};b.cssBefore={left:0,top:0,height:0};b.animOut={height:0}};a.fn.cycle.transitions.turnLeft=function(c,g,b){b.before.push(function(e,
h,j){a.fn.cycle.commonReset(e,h,j,false,true);j.cssBefore.left=h.cycleW;j.animIn.width=h.cycleW});b.cssBefore={top:0,width:0};b.animIn={left:0};b.animOut={width:0}};a.fn.cycle.transitions.turnRight=function(c,g,b){b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j,false,true);j.animIn.width=h.cycleW;j.animOut.left=e.cycleW});b.cssBefore={top:0,left:0,width:0};b.animIn={left:0};b.animOut={width:0}};a.fn.cycle.transitions.zoom=function(c,g,b){b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,
h,j,false,false,true);j.cssBefore.top=h.cycleH/2;j.cssBefore.left=h.cycleW/2;j.animIn={top:0,left:0,width:h.cycleW,height:h.cycleH};j.animOut={width:0,height:0,top:e.cycleH/2,left:e.cycleW/2}});b.cssFirst={top:0,left:0};b.cssBefore={width:0,height:0}};a.fn.cycle.transitions.fadeZoom=function(c,g,b){b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j,false,false);j.cssBefore.left=h.cycleW/2;j.cssBefore.top=h.cycleH/2;j.animIn={top:0,left:0,width:h.cycleW,height:h.cycleH}});b.cssBefore={width:0,
height:0};b.animOut={opacity:0}};a.fn.cycle.transitions.blindX=function(c,g,b){c=c.css("overflow","hidden").width();b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j);j.animIn.width=h.cycleW;j.animOut.left=e.cycleW});b.cssBefore={left:c,top:0};b.animIn={left:0};b.animOut={left:c}};a.fn.cycle.transitions.blindY=function(c,g,b){c=c.css("overflow","hidden").height();b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j);j.animIn.height=h.cycleH;j.animOut.top=e.cycleH});b.cssBefore={top:c,
left:0};b.animIn={top:0};b.animOut={top:c}};a.fn.cycle.transitions.blindZ=function(c,g,b){g=c.css("overflow","hidden").height();c=c.width();b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j);j.animIn.height=h.cycleH;j.animOut.top=e.cycleH});b.cssBefore={top:g,left:c};b.animIn={top:0,left:0};b.animOut={top:g,left:c}};a.fn.cycle.transitions.growX=function(c,g,b){b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j,false,true);j.cssBefore.left=this.cycleW/2;j.animIn={left:0,width:this.cycleW};
j.animOut={left:0}});b.cssBefore={width:0,top:0}};a.fn.cycle.transitions.growY=function(c,g,b){b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j,true,false);j.cssBefore.top=this.cycleH/2;j.animIn={top:0,height:this.cycleH};j.animOut={top:0}});b.cssBefore={height:0,left:0}};a.fn.cycle.transitions.curtainX=function(c,g,b){b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j,false,true,true);j.cssBefore.left=h.cycleW/2;j.animIn={left:0,width:this.cycleW};j.animOut={left:e.cycleW/2,width:0}});
b.cssBefore={top:0,width:0}};a.fn.cycle.transitions.curtainY=function(c,g,b){b.before.push(function(e,h,j){a.fn.cycle.commonReset(e,h,j,true,false,true);j.cssBefore.top=h.cycleH/2;j.animIn={top:0,height:h.cycleH};j.animOut={top:e.cycleH/2,height:0}});b.cssBefore={left:0,height:0}};a.fn.cycle.transitions.cover=function(c,g,b){var e=b.direction||"left",h=c.css("overflow","hidden").width(),j=c.height();b.before.push(function(r,o,t){a.fn.cycle.commonReset(r,o,t);if(e=="right")t.cssBefore.left=-h;else if(e==
"up")t.cssBefore.top=j;else if(e=="down")t.cssBefore.top=-j;else t.cssBefore.left=h});b.animIn={left:0,top:0};b.animOut={opacity:1};b.cssBefore={top:0,left:0}};a.fn.cycle.transitions.uncover=function(c,g,b){var e=b.direction||"left",h=c.css("overflow","hidden").width(),j=c.height();b.before.push(function(r,o,t){a.fn.cycle.commonReset(r,o,t,true,true,true);if(e=="right")t.animOut.left=h;else if(e=="up")t.animOut.top=-j;else if(e=="down")t.animOut.top=j;else t.animOut.left=-h});b.animIn={left:0,top:0};
b.animOut={opacity:1};b.cssBefore={top:0,left:0}};a.fn.cycle.transitions.toss=function(c,g,b){var e=c.css("overflow","visible").width(),h=c.height();b.before.push(function(j,r,o){a.fn.cycle.commonReset(j,r,o,true,true,true);if(!o.animOut.left&&!o.animOut.top)o.animOut={left:e*2,top:-h/2,opacity:0};else o.animOut.opacity=0});b.cssBefore={left:0,top:0};b.animIn={left:0}};a.fn.cycle.transitions.wipe=function(c,g,b){var e=c.css("overflow","hidden").width(),h=c.height();b.cssBefore=b.cssBefore||{};var j;
if(b.clip)if(/l2r/.test(b.clip))j="rect(0px 0px "+h+"px 0px)";else if(/r2l/.test(b.clip))j="rect(0px "+e+"px "+h+"px "+e+"px)";else if(/t2b/.test(b.clip))j="rect(0px "+e+"px 0px 0px)";else if(/b2t/.test(b.clip))j="rect("+h+"px "+e+"px "+h+"px 0px)";else if(/zoom/.test(b.clip)){c=parseInt(h/2);g=parseInt(e/2);j="rect("+c+"px "+g+"px "+c+"px "+g+"px)"}b.cssBefore.clip=b.cssBefore.clip||j||"rect(0px 0px 0px 0px)";c=b.cssBefore.clip.match(/(\d+)/g);var r=parseInt(c[0]),o=parseInt(c[1]),t=parseInt(c[2]),
s=parseInt(c[3]);b.before.push(function(u,w,A){if(u!=w){var H=a(u),d=a(w);a.fn.cycle.commonReset(u,w,A,true,true,false);A.cssAfter.display="block";var f=1,k=parseInt(A.speedIn/13)-1;(function m(){var n=r?r-parseInt(f*(r/k)):0,i=s?s-parseInt(f*(s/k)):0,x=t<h?t+parseInt(f*((h-t)/k||1)):h,y=o<e?o+parseInt(f*((e-o)/k||1)):e;d.css({clip:"rect("+n+"px "+y+"px "+x+"px "+i+"px)"});f++<=k?setTimeout(m,13):H.css("display","none")})()}});b.cssBefore={display:"block",opacity:1,top:0,left:0};b.animIn={left:0};
b.animOut={left:0}}})(jQuery);jQuery.easing.jswing=jQuery.easing.swing;
jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(a,c,g,b,e){return jQuery.easing[jQuery.easing.def](a,c,g,b,e)},easeInQuad:function(a,c,g,b,e){return b*(c/=e)*c+g},easeOutQuad:function(a,c,g,b,e){return-b*(c/=e)*(c-2)+g},easeInOutQuad:function(a,c,g,b,e){if((c/=e/2)<1)return b/2*c*c+g;return-b/2*(--c*(c-2)-1)+g},easeInCubic:function(a,c,g,b,e){return b*(c/=e)*c*c+g},easeOutCubic:function(a,c,g,b,e){return b*((c=c/e-1)*c*c+1)+g},easeInOutCubic:function(a,c,g,b,e){if((c/=e/2)<1)return b/
2*c*c*c+g;return b/2*((c-=2)*c*c+2)+g},easeInQuart:function(a,c,g,b,e){return b*(c/=e)*c*c*c+g},easeOutQuart:function(a,c,g,b,e){return-b*((c=c/e-1)*c*c*c-1)+g},easeInOutQuart:function(a,c,g,b,e){if((c/=e/2)<1)return b/2*c*c*c*c+g;return-b/2*((c-=2)*c*c*c-2)+g},easeInQuint:function(a,c,g,b,e){return b*(c/=e)*c*c*c*c+g},easeOutQuint:function(a,c,g,b,e){return b*((c=c/e-1)*c*c*c*c+1)+g},easeInOutQuint:function(a,c,g,b,e){if((c/=e/2)<1)return b/2*c*c*c*c*c+g;return b/2*((c-=2)*c*c*c*c+2)+g},easeInSine:function(a,
c,g,b,e){return-b*Math.cos(c/e*(Math.PI/2))+b+g},easeOutSine:function(a,c,g,b,e){return b*Math.sin(c/e*(Math.PI/2))+g},easeInOutSine:function(a,c,g,b,e){return-b/2*(Math.cos(Math.PI*c/e)-1)+g},easeInExpo:function(a,c,g,b,e){return c==0?g:b*Math.pow(2,10*(c/e-1))+g},easeOutExpo:function(a,c,g,b,e){return c==e?g+b:b*(-Math.pow(2,-10*c/e)+1)+g},easeInOutExpo:function(a,c,g,b,e){if(c==0)return g;if(c==e)return g+b;if((c/=e/2)<1)return b/2*Math.pow(2,10*(c-1))+g;return b/2*(-Math.pow(2,-10*--c)+2)+g},
easeInCirc:function(a,c,g,b,e){return-b*(Math.sqrt(1-(c/=e)*c)-1)+g},easeOutCirc:function(a,c,g,b,e){return b*Math.sqrt(1-(c=c/e-1)*c)+g},easeInOutCirc:function(a,c,g,b,e){if((c/=e/2)<1)return-b/2*(Math.sqrt(1-c*c)-1)+g;return b/2*(Math.sqrt(1-(c-=2)*c)+1)+g},easeInElastic:function(a,c,g,b,e){a=1.70158;var h=0,j=b;if(c==0)return g;if((c/=e)==1)return g+b;h||(h=e*0.3);if(j<Math.abs(b)){j=b;a=h/4}else a=h/(2*Math.PI)*Math.asin(b/j);return-(j*Math.pow(2,10*(c-=1))*Math.sin((c*e-a)*2*Math.PI/h))+g},easeOutElastic:function(a,
c,g,b,e){a=1.70158;var h=0,j=b;if(c==0)return g;if((c/=e)==1)return g+b;h||(h=e*0.3);if(j<Math.abs(b)){j=b;a=h/4}else a=h/(2*Math.PI)*Math.asin(b/j);return j*Math.pow(2,-10*c)*Math.sin((c*e-a)*2*Math.PI/h)+b+g},easeInOutElastic:function(a,c,g,b,e){a=1.70158;var h=0,j=b;if(c==0)return g;if((c/=e/2)==2)return g+b;h||(h=e*0.3*1.5);if(j<Math.abs(b)){j=b;a=h/4}else a=h/(2*Math.PI)*Math.asin(b/j);if(c<1)return-0.5*j*Math.pow(2,10*(c-=1))*Math.sin((c*e-a)*2*Math.PI/h)+g;return j*Math.pow(2,-10*(c-=1))*Math.sin((c*
e-a)*2*Math.PI/h)*0.5+b+g},easeInBack:function(a,c,g,b,e,h){if(h==undefined)h=1.70158;return b*(c/=e)*c*((h+1)*c-h)+g},easeOutBack:function(a,c,g,b,e,h){if(h==undefined)h=1.70158;return b*((c=c/e-1)*c*((h+1)*c+h)+1)+g},easeInOutBack:function(a,c,g,b,e,h){if(h==undefined)h=1.70158;if((c/=e/2)<1)return b/2*c*c*(((h*=1.525)+1)*c-h)+g;return b/2*((c-=2)*c*(((h*=1.525)+1)*c+h)+2)+g},easeInBounce:function(a,c,g,b,e){return b-jQuery.easing.easeOutBounce(a,e-c,0,b,e)+g},easeOutBounce:function(a,c,g,b,e){return(c/=
e)<1/2.75?b*7.5625*c*c+g:c<2/2.75?b*(7.5625*(c-=1.5/2.75)*c+0.75)+g:c<2.5/2.75?b*(7.5625*(c-=2.25/2.75)*c+0.9375)+g:b*(7.5625*(c-=2.625/2.75)*c+0.984375)+g},easeInOutBounce:function(a,c,g,b,e){if(c<e/2)return jQuery.easing.easeInBounce(a,c*2,0,b,e)*0.5+g;return jQuery.easing.easeOutBounce(a,c*2-e,0,b,e)*0.5+b*0.5+g}});(function(a){a.fn.extend({elastic:function(){var c=["paddingTop","paddingRight","paddingBottom","paddingLeft","fontSize","lineHeight","fontFamily","width","fontWeight"];return this.each(function(){function g(s,u){curratedHeight=Math.floor(parseInt(s,10));e.height()!=curratedHeight&&e.css({height:curratedHeight+"px",overflow:u})}function b(){var s=e.val().replace(/&/g,"&amp;").replace(/  /g,"&nbsp;").replace(/<|>/g,"&gt;").replace(/\n/g,"<br />"),u=h.html();if(s+"&nbsp;"!=u){h.html(s+"&nbsp;");if(Math.abs(h.height()+
j-e.height())>3){s=h.height()+j;if(s>=o)g(o,"auto");else s<=r?g(r,"hidden"):g(s,"hidden")}}}if(this.type!="textarea")return false;var e=a(this),h=a("<div />").css({position:"absolute",display:"none","word-wrap":"break-word"}),j=parseInt(e.css("line-height"),10)||parseInt(e.css("font-size"),"10"),r=parseInt(e.css("height"),10)||j*3,o=parseInt(e.css("max-height"),10)||Number.MAX_VALUE,t=0;if(o<0)o=Number.MAX_VALUE;h.appendTo(e.parent());for(t=c.length;t--;)h.css(c[t].toString(),e.css(c[t].toString()));
e.css({overflow:"hidden"});e.keyup(function(){b()});e.live("input paste",function(){setTimeout(b,250)});b()})}})})(jQuery);/*

 over label effect from http://scott.sauyet.com/thoughts/archives/2007/03/31/overlabel-with-jquery/#comment-24381
*/
(function(a){a.fn.overlabel=function(){this.filter("label[for]").each(function(){var c=a(this),g=a('input[id="'+a(this).attr("for")+'"]');if(g.html()==null)g=a('textarea[id="'+a(this).attr("for")+'"]');if(g){var b=function(){if(g.val()==c.html()||g.val()==""){g.val(c.html());g.addClass("overlabel_shown")}};c.hide();g.focus(function(){if(g.val()==c.html()||g.val()==""){g.val("");g.removeClass("overlabel_shown")}}).blur(b).each(b)}})}})(jQuery);/*

 Superfish v1.4.8 - jQuery menu widget
 Copyright (c) 2008 Joel Birch

 Dual licensed under the MIT and GPL licenses:
 http://www.opensource.org/licenses/mit-license.php
 http://www.gnu.org/licenses/gpl.html

 CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
*/
(function(a){a.fn.superfish=function(g){var b=a.fn.superfish,e=b.c,h=a(['<span class="',e.arrowClass,'"> &#187;</span>'].join("")),j=function(){var s=a(this),u=o(s);clearTimeout(u.sfTimer);s.showSuperfishUl().siblings().hideSuperfishUl()},r=function(){var s=a(this),u=o(s),w=b.op;clearTimeout(u.sfTimer);u.sfTimer=setTimeout(function(){w.retainPath=a.inArray(s[0],w.$path)>-1;s.hideSuperfishUl();w.$path.length&&s.parents(["li.",w.hoverClass].join("")).length<1&&j.call(w.$path)},w.delay)},o=function(s){s=
s.parents(["ul.",e.menuClass,":first"].join(""))[0];b.op=b.o[s.serial];return s},t=function(s){s.addClass(e.anchorClass).append(h.clone())};return this.each(function(){var s=this.serial=b.o.length,u=a.extend({},b.defaults,g);u.$path=a("li."+u.pathClass,this).slice(0,u.pathLevels).each(function(){a(this).addClass([u.hoverClass,e.bcClass].join(" ")).filter("li:has(ul)").removeClass(u.pathClass)});b.o[s]=b.op=u;a("li:has(ul)",this)[a.fn.hoverIntent&&!u.disableHI?"hoverIntent":"hover"](j,r).each(function(){u.autoArrows&&
t(a(">a:first-child",this))}).not("."+e.bcClass).hideSuperfishUl();var w=a("a",this);w.each(function(A){var H=w.eq(A).parents("li");w.eq(A).focus(function(){j.call(H)}).blur(function(){r.call(H)})});u.onInit.call(this)}).each(function(){var s=[e.menuClass];b.op.dropShadows&&!(a.browser.msie&&a.browser.version<7)&&s.push(e.shadowClass);a(this).addClass(s.join(" "))})};var c=a.fn.superfish;c.o=[];c.op={};c.IE7fix=function(){var g=c.op;a.browser.msie&&a.browser.version>6&&g.dropShadows&&g.animation.opacity!=
undefined&&this.toggleClass(c.c.shadowClass+"-off")};c.c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator",shadowClass:"sf-shadow"};c.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},speed:"normal",autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};a.fn.extend({hideSuperfishUl:function(){var g=c.op,
b=g.retainPath===true?g.$path:"";g.retainPath=false;b=a(["li.",g.hoverClass].join(""),this).add(this).not(b).removeClass(g.hoverClass).find(">ul").hide().css("visibility","hidden");g.onHide.call(b);return this},showSuperfishUl:function(){var g=c.op,b=this.addClass(g.hoverClass).find(">ul:hidden").css("visibility","visible");c.IE7fix.call(b);g.onBeforeShow.call(b);b.animate(g.animation,g.speed,function(){c.IE7fix.call(b);g.onShow.call(b)});return this}})})(jQuery);/*

 Supersubs v0.2b - jQuery plugin
 Copyright (c) 2008 Joel Birch

 Dual licensed under the MIT and GPL licenses:
 http://www.opensource.org/licenses/mit-license.php
 http://www.gnu.org/licenses/gpl.html


 This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
 their longest list item children. If you use this, please expect bugs and report them
 to the jQuery Google Group with the word 'Superfish' in the subject line.

*/
(function(a){a.fn.supersubs=function(c){var g=a.extend({},a.fn.supersubs.defaults,c);return this.each(function(){var b=a(this),e=a.meta?a.extend({},g,b.data()):g,h=a('<li id="menu-fontsize">&#8212;</li>').css({padding:0,position:"absolute",top:"-999em",width:"auto"}).appendTo(b).width();a("#menu-fontsize").remove();$ULs=b.find("ul");$ULs.each(function(j){j=$ULs.eq(j);var r=j.children(),o=r.children("a"),t=r.css("white-space","nowrap").css("float"),s=j.add(r).add(o).css({"float":"none",width:"auto"}).end().end()[0].clientWidth/
h;s+=e.extraWidth;if(s>e.maxWidth)s=e.maxWidth;else if(s<e.minWidth)s=e.minWidth;s+="em";j.css("width",s);r.css({"float":t,width:"100%","white-space":"normal"}).each(function(){var u=a(">ul",this),w=u.css("left")!==undefined?"left":"right";u.css(w,s)})})})};a.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0}})(jQuery);/*

 jQuery.ScrollTo - Easy element scrolling using jQuery.
 Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 Dual licensed under MIT and GPL.
 Date: 5/25/2009
 @author Ariel Flesler
 @version 1.4.2

 http://flesler.blogspot.com/2007/10/jqueryscrollto.html
*/
(function(a){function c(b){return typeof b=="object"?b:{top:b,left:b}}var g=a.scrollTo=function(b,e,h){a(window).scrollTo(b,e,h)};g.defaults={axis:"xy",duration:parseFloat(a.fn.jquery)>=1.3?0:1};g.window=function(){return a(window)._scrollable()};a.fn._scrollable=function(){return this.map(function(){if(!(!this.nodeName||a.inArray(this.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1))return this;var b=(this.contentWindow||this).document||this.ownerDocument||this;return a.browser.safari||
b.compatMode=="BackCompat"?b.body:b.documentElement})};a.fn.scrollTo=function(b,e,h){if(typeof e=="object"){h=e;e=0}if(typeof h=="function")h={onAfter:h};if(b=="max")b=9E9;h=a.extend({},g.defaults,h);e=e||h.speed||h.duration;h.queue=h.queue&&h.axis.length>1;if(h.queue)e/=2;h.offset=c(h.offset);h.over=c(h.over);return this._scrollable().each(function(){function j(A){o.animate(u,e,h.easing,A&&function(){A.call(this,b,h)})}var r=this,o=a(r),t=b,s,u={},w=o.is("html,body");switch(typeof t){case "number":case "string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(t)){t=
c(t);break}t=a(t,this);case "object":if(t.is||t.style)s=(t=a(t)).offset()}a.each(h.axis.split(""),function(A,H){var d=H=="x"?"Left":"Top",f=d.toLowerCase(),k="scroll"+d,m=r[k],n=g.max(r,H);if(s){u[k]=s[f]+(w?0:m-o.offset()[f]);if(h.margin){u[k]-=parseInt(t.css("margin"+d))||0;u[k]-=parseInt(t.css("border"+d+"Width"))||0}u[k]+=h.offset[f]||0;if(h.over[f])u[k]+=t[H=="x"?"width":"height"]()*h.over[f]}else{d=t[f];u[k]=d.slice&&d.slice(-1)=="%"?parseFloat(d)/100*n:d}if(/^\d+$/.test(u[k]))u[k]=u[k]<=0?
0:Math.min(u[k],n);if(!A&&h.queue){m!=u[k]&&j(h.onAfterFirst);delete u[k]}});j(h.onAfter)}).end()};g.max=function(b,e){var h=e=="x"?"Width":"Height",j="scroll"+h;if(!a(b).is("html,body"))return b[j]-a(b)[h.toLowerCase()]();h="client"+h;var r=b.ownerDocument.documentElement,o=b.ownerDocument.body;return Math.max(r[j],o[j])-Math.min(r[h],o[h])}})(jQuery);/*

 jQuery Nivo Slider v1.9
 http://nivo.dev7studios.com

 Copyright 2010, Gilbert Pellegrom
 Free to use and abuse under the MIT license.
 http://www.opensource.org/licenses/mit-license.php

 April 2010 - controlNavThumbs option added by Jamie Thompson (http://jamiethompson.co.uk)
 March 2010 - manualAdvance option added by HelloPablo (http://hellopablo.co.uk)
*/
eval(function(a,c,g,b,e,h){e=function(j){return(j<c?"":e(parseInt(j/c)))+((j%=c)>35?String.fromCharCode(j+29):j.toString(36))};if(!"".replace(/^/,String)){for(;g--;)h[e(g)]=b[g]||e(g);b=[function(j){return h[j]}];e=function(){return"\\w+"};g=1}for(;g--;)if(b[g])a=a.replace(new RegExp("\\b"+e(g)+"\\b","g"),b[g]);return a}("(9($){$.1h.1i=9(1T){b 4=$.2b({},$.1h.1i.21,1T);K g.F(9(){b 3={e:0,n:'',T:0,u:'',H:l,1f:l,1O:l};b 5=$(g);5.1Q('7:3',3);5.f('2h','2i');5.w('1X');5.x('1X');5.1c('1i');b d=5.2f();d.F(9(){b o=$(g);6(!o.J('D')){6(o.J('a')){o.1c('7-2e')}o=o.1n('D:1m')}b 13=o.w();6(13==0)13=o.t('w');b 18=o.x();6(18==0)18=o.t('x');6(13>5.w()){5.w(13)}6(18>5.x()){5.x(18)}o.f('S','1z');3.T++});6(4.16>0){6(4.16>=3.T)4.16=3.T-1;3.e=4.16}6($(d[3.e]).J('D')){3.n=$(d[3.e])}k{3.n=$(d[3.e]).1n('D:1m')}6($(d[3.e]).J('a')){$(d[3.e]).f('S','1v')}5.f('Y','W('+3.n.t('M')+') Q-R');23(b i=0;i<4.h;i++){b E=1d.2a(5.w()/4.h);6(i==4.h-1){5.P($('<A B=\"7-c\"></A>').f({29:(E*i)+'12',w:(5.w()-(E*i))+'12'}))}k{5.P($('<A B=\"7-c\"></A>').f({29:(E*i)+'12',w:E+'12'}))}}5.P($('<A B=\"7-L\"><p></p></A>').f({S:'1z',y:4.20}));6(3.n.t('1a')!=''){$('.7-L p',5).1B(3.n.t('1a'));$('.7-L',5).1y(4.q)}b j=0;6(!4.1g){j=1o(9(){C(5,d,4,l)},4.1j)}6(4.V){5.P('<A B=\"7-V\"><a B=\"7-25\">2d</a><a B=\"7-27\">2k</a></A>');6(4.1N){$('.7-V',5).24();5.1W(9(){$('.7-V',5).2c()},9(){$('.7-V',5).24()})}$('a.7-25',5).1s('1u',9(){6(3.H)K l;X(j);j='';3.e-=2;C(5,d,4,'1r')});$('a.7-27',5).1s('1u',9(){6(3.H)K l;X(j);j='';C(5,d,4,'1q')})}6(4.G){b 1l=$('<A B=\"7-G\"></A>');5.P(1l);23(b i=0;i<d.22;i++){6(4.1L){b o=d.1w(i);6(!o.J('D')){o=o.1n('D:1m')}1l.P('<a B=\"7-1t\" 1x=\"'+i+'\"><D M=\"'+o.t('M').2g(4.1R,4.1S)+'\"></a>')}k{1l.P('<a B=\"7-1t\" 1x=\"'+i+'\">'+i+'</a>')}}$('.7-G a:1w('+3.e+')',5).1c('1b');$('.7-G a',5).1s('1u',9(){6(3.H)K l;6($(g).2j('1b'))K l;X(j);j='';5.f('Y','W('+3.n.t('M')+') Q-R');3.e=$(g).t('1x')-1;C(5,d,4,'1t')})}6(4.1Z){$(2m).2z(9(1A){6(1A.1V=='2w'){6(3.H)K l;X(j);j='';3.e-=2;C(5,d,4,'1r')}6(1A.1V=='2y'){6(3.H)K l;X(j);j='';C(5,d,4,'1q')}})}6(4.1U){5.1W(9(){3.1f=N;X(j);j=''},9(){3.1f=l;6(j==''&&!4.1g){j=1o(9(){C(5,d,4,l)},4.1j)}})}5.2A('7:U',9(){3.H=l;$(d).F(9(){6($(g).J('a')){$(g).f('S','1z')}});6($(d[3.e]).J('a')){$(d[3.e]).f('S','1v')}6(j==''&&!3.1f&&!4.1g){j=1o(9(){C(5,d,4,l)},4.1j)}4.1M.1p(g)})});9 C(5,d,4,14){b 3=5.1Q('7:3');6((!3||3.1O)&&!14)K l;4.1K.1p(g);6(!14){5.f('Y','W('+3.n.t('M')+') Q-R')}k{6(14=='1r'){5.f('Y','W('+3.n.t('M')+') Q-R')}6(14=='1q'){5.f('Y','W('+3.n.t('M')+') Q-R')}}3.e++;6(3.e==3.T){3.e=0;4.1P.1p(g)}6(3.e<0)3.e=(3.T-1);6($(d[3.e]).J('D')){3.n=$(d[3.e])}k{3.n=$(d[3.e]).1n('D:1m')}6(4.G){$('.7-G a',5).2B('1b');$('.7-G a:1w('+3.e+')',5).1c('1b')}6(3.n.t('1a')!=''){6($('.7-L',5).f('S')=='1v'){$('.7-L p',5).28(4.q,9(){$(g).1B(3.n.t('1a'));$(g).1y(4.q)})}k{$('.7-L p',5).1B(3.n.t('1a'))}$('.7-L',5).1y(4.q)}k{$('.7-L',5).28(4.q)}b i=0;$('.7-c',5).F(9(){b E=1d.2a(5.w()/4.h);$(g).f({x:'O',y:'0',Y:'W('+3.n.t('M')+') Q-R -'+((E+(i*E))-E)+'12 0%'});i++});6(4.m=='1G'){b 1J=2x 2u(\"1H\",\"10\",\"1I\",\"19\",\"1C\",\"Z\",\"1D\",\"1k\");3.u=1J[1d.2l(1d.1G()*(1J.22+1))];6(3.u==2n)3.u='1k'}3.H=N;6(4.m=='2v'||4.m=='1H'||3.u=='1H'||4.m=='10'||3.u=='10'){b r=0;b i=0;b h=$('.7-c',5);6(4.m=='10'||3.u=='10')h=$('.7-c',5).17();h.F(9(){b c=$(g);c.f('1E','O');6(i==4.h-1){I(9(){c.z({x:'s%',y:'1.0'},4.q,'',9(){5.11('7:U')})},(s+r))}k{I(9(){c.z({x:'s%',y:'1.0'},4.q)},(s+r))}r+=1e;i++})}k 6(4.m=='2p'||4.m=='1I'||3.u=='1I'||4.m=='19'||3.u=='19'){b r=0;b i=0;b h=$('.7-c',5);6(4.m=='19'||3.u=='19')h=$('.7-c',5).17();h.F(9(){b c=$(g);c.f('26','O');6(i==4.h-1){I(9(){c.z({x:'s%',y:'1.0'},4.q,'',9(){5.11('7:U')})},(s+r))}k{I(9(){c.z({x:'s%',y:'1.0'},4.q)},(s+r))}r+=1e;i++})}k 6(4.m=='1C'||4.m=='2q'||3.u=='1C'||4.m=='Z'||3.u=='Z'){b r=0;b i=0;b v=0;b h=$('.7-c',5);6(4.m=='Z'||3.u=='Z')h=$('.7-c',5).17();h.F(9(){b c=$(g);6(i==0){c.f('1E','O');i++}k{c.f('26','O');i=0}6(v==4.h-1){I(9(){c.z({x:'s%',y:'1.0'},4.q,'',9(){5.11('7:U')})},(s+r))}k{I(9(){c.z({x:'s%',y:'1.0'},4.q)},(s+r))}r+=1e;v++})}k 6(4.m=='1D'||3.u=='1D'){b r=0;b i=0;$('.7-c',5).F(9(){b c=$(g);b 1F=c.w();c.f({1E:'O',x:'s%',w:'O'});6(i==4.h-1){I(9(){c.z({w:1F,y:'1.0'},4.q,'',9(){5.11('7:U')})},(s+r))}k{I(9(){c.z({w:1F,y:'1.0'},4.q)},(s+r))}r+=1e;i++})}k 6(4.m=='1k'||3.u=='1k'){b i=0;$('.7-c',5).F(9(){$(g).f('x','s%');6(i==4.h-1){$(g).z({y:'1.0'},(4.q*2),'',9(){5.11('7:U')})}k{$(g).z({y:'1.0'},(4.q*2))}i++})}}};$.1h.1i.21={m:'1G',h:15,q:2t,1j:2s,16:0,V:N,1N:N,G:N,1L:l,1R:'.1Y',1S:'2r.1Y',1Z:N,1U:N,1g:l,20:0.8,1K:9(){},1M:9(){},1P:9(){}};$.1h.17=[].17})(2o);",
62,162,"|||vars|settings|slider|if|nivo||function||var|slice|kids|currentSlide|css|this|slices||timer|else|false|effect|currentImage|child||animSpeed|timeBuff|100|attr|randAnim||width|height|opacity|animate|div|class|nivoRun|img|sliceWidth|each|controlNav|running|setTimeout|is|return|caption|src|true|0px|append|no|repeat|display|totalSlides|animFinished|directionNav|url|clearInterval|background|sliceUpDownLeft|sliceDownLeft|trigger|px|childWidth|nudge||startSlide|reverse|childHeight|sliceUpLeft|title|active|addClass|Math|50|paused|manualAdvance|fn|nivoSlider|pauseTime|fade|nivoControl|first|find|setInterval|call|next|prev|live|control|click|block|eq|rel|fadeIn|none|event|html|sliceUpDown|fold|top|origWidth|random|sliceDownRight|sliceUpRight|anims|beforeChange|controlNavThumbs|afterChange|directionNavHide|stop|slideshowEnd|data|controlNavThumbsSearch|controlNavThumbsReplace|options|pauseOnHover|keyCode|hover|1px|jpg|keyboardNav|captionOpacity|defaults|length|for|hide|prevNav|bottom|nextNav|fadeOut|left|round|extend|show|Prev|imageLink|children|replace|position|relative|hasClass|Next|floor|window|undefined|jQuery|sliceUp|sliceUpDownRight|_thumb|3000|500|Array|sliceDown|37|new|39|keypress|bind|removeClass".split("|"),
0,{}));/*

 jQuery 'onImagesLoaded' plugin v1.1.1 (Updated January 27, 2010)
 Fires callback functions when images have loaded within a particular selector.

 Copyright (c) Cirkuit Networks, Inc. (http://www.cirkuit.net), 2008-2010.
 Dual licensed under the MIT and GPL licenses:
 http://www.opensource.org/licenses/mit-license.php
 http://www.gnu.org/licenses/gpl.html

 For documentation and usage, visit "http://includes.cirkuit.net/includes/js/jquery/plugins/onImagesLoad/1.1.1/documentation/"
*/
(function(a){a.fn.onImagesLoad=function(c){var g=this;g.opts=a.extend({},a.fn.onImagesLoad.defaults,c);g.bindEvents=function(e,h,j){if(e.length===0)g.opts.callbackIfNoImagesExist&&j&&j(h);else{var r=[];e.jquery||(e=a(e));e.each(function(o){var t=this.src;if(!a.browser.msie)this.src="";a(this).bind("load",function(){if(jQuery.inArray(o,r)<0){r.push(o);r.length==e.length&&j&&j.call(h,h)}});if(a.browser.msie){if(this.complete||this.complete===undefined)this.src=t}else this.src=t})}};var b=[];g.each(function(){if(g.opts.itemCallback){var e;
e=this.tagName=="IMG"?this:a("img",this);g.bindEvents(e,this,g.opts.itemCallback)}if(g.opts.selectorCallback)this.tagName=="IMG"?b.push(this):a("img",this).each(function(){b.push(this)})});g.opts.selectorCallback&&g.bindEvents(b,this,g.opts.selectorCallback);return g.each(function(){})};a.fn.onImagesLoad.defaults={selectorCallback:null,itemCallback:null,callbackIfNoImagesExist:false}})(jQuery);

//-- Function.js
/*custom fadeTo including IE8 opacity/cleartype fix - see http://blog.bmn.name/2008/03/jquery-fadeinfadeout-ie-cleartype-glitch/comment-page-2/#comment-368*/
jQuery.fn.fadeTo = function(speed,to,callback) {
    return this.animate({opacity: to}, speed, function() {
        if (to == 1 && jQuery.browser.msie)
            this.style.removeAttribute('filter');

        if (jQuery.isFunction(callback))
            callback();
    });
};

$(document).ready(function () {
    $ = jQuery;
    //reassign .jsactive class to html element (originally set in page using javascript before jquery had loaded)
    jQuery("html").addClass("jsactive"); //this must be set BEFORE a slider initiates

    //set Cufon to show hover state on blog article snippets - targeted via matching to div class='blog'. This must be before main Cufon call - don't move it!
    Cufon.replace('.blog h2', { hover: true });
    //IE8 suffers performance hit when using Cufon on 'hidden' elements with opacity, so use feature detection to find IE browsers and serve slightly different Cufon call omitting those elements
    if (jQuery.support.opacity == false) {
        Cufon.replace('#contentwrapper h1, .slider-controls h2, #contentwrapper h2, #contentwrapper h3, .banner-controls p, #banner-controls-testimonial blockquote, caption');
    }
    else {//modern browsers
        Cufon.replace('h1, h2, h3, .banner-controls p, #banner-controls-testimonial blockquote, caption');
    }

    //animate in the default slider text elements	
    jQuery("#slider-controls-left h2, #slider-controls-right h2").css({
        "visibility": "visible"
    }).fadeIn(700, function () {
        $(this).siblings().css({
            "visibility": "visible"
        }).fadeIn(500)
    });

    //animate in all h1, h2 elements with visibility hidden via css .jsactive rules. This enables smoother transitions and reduces chance of FOUC
    jQuery("h1, h2").css({ "visibility": "visible" }).fadeIn();

    /*animate back to top and comment reply scroll links*/
    jQuery("p#backtotop a").click(function () {
        jQuery.scrollTo($(this).attr("href"), 800);
        return false;
    });
    jQuery(".respond").click(function () {
        $.scrollTo($(this).attr("href"), 800);
        return false;
    });

    //superfish menu - see http://users.tpg.com.au/j_birch/plugins/superfish/
    $('#primarynav').supersubs({
        minWidth: 12,   // minimum width of sub-menus in em units 
        maxWidth: 27,   // maximum width of sub-menus in em units 
        extraWidth: 1     // extra width can ensure lines don't sometimes turn over 
        // due to slight rounding differences and font-family 
    }).superfish({
        delay: 200,                            // one second delay on mouseout 
        animation: { opacity: 'show', height: 'show' },  // fade-in and slide-down animation 
        speed: 50,
        dropShadows: false
    });

    $("#header label, #hp-bottom-col1 label, #content-contactfieldset label, #comment-contactfieldset label").overlabel(); //trigger overlabel for search and contact form		
    $("#feedslink").click(function () { $('#feeds ul').slideToggle('fast'); }); //slide toggle header feeds list	
    $("#feeds ul a").click(function () { $("#feeds ul").slideUp('fast'); });

    $('textarea').elastic(); //used in contact form for expandable text area				
    doButtonShadows(); //hover effect on buttons
    showOverlays(); //slide captions in image slider on homepage	
    layoutOptions(); //demo layout options 
    $("#customise, a.chooseoptions").colorbox({ inline: true, height: "420px", width: "670px", href: "#panel .content" });
    $("a#redfooter-preview").toggle(function ()//switch footer colours, triggered on content-red.htm
    {
        $("#bottom-contentwrapper, #footerwrapper").removeClass().addClass("red");
        $(this).html("<a href='#' title=''>Switch to the default grey footer</a>");
        $.scrollTo($("#bottom-contentwrapper"), 800);
    }, function () {
        $("#bottom-contentwrapper, #footerwrapper").removeClass();
        $(this).html("<a href='#' title=''>Preview the red footer version</a>");
        $.scrollTo($("#bottom-contentwrapper"), 800);
    });
}); //ends on load script

function onAfter(curr, next, opts) {//callback function for back/next dynamic nav used by cycle plugin
	var index = opts.currSlide;
	if (typeof strContainer == "undefined")
	{//set this to the default panel
		strContainer="#slider-controls-left";
	}
	$(strContainer+" .button-left")[index == 0 ? 'hide' : 'show']();
	$(strContainer+" .button-right")[index == opts.slideCount - 1 ? 'hide' : 'show']();
	if (strContainer == "#slider-controls-full"){
		showOverlays('hide');//close any open text overlays when user triggers prev/next buttons when using full width image slider					
	}	
}		
	
function setUpCycleSlider(strContainer, strCycleElementPrev, strCycleElementNext)
{//image slider - Cycle
	if (typeof strContainer == 'undefined')
	{//matches condition on page load when function is called from page	
	//sets up the default cycle slider - text to left, sliding images to right.  
		if (jQuery.support.opacity==false)	{	//IE 7 has issues with opacity applied to images, so if using IE, no fade transitions...
			  $('#slider-controls-left .panel').css({"visibility":"visible","left":"0"}).cycle({        
					next: "#slider-controls-left .button-right",
					prev: "#slider-controls-left .button-left",			
					fx: 'scrollHorz',						
					speed: 400,
					after: onAfter,
					timeout:0
				}).fadeIn();		
		}	
		else
		{//modern browsers are served this version
			$('#slider-controls-left .panel img:first').fadeIn(1000, function() {
				$('#slider-controls-left .panel').css({"visibility":"visible","left":"0"}).cycle({        
					next: "#slider-controls-left .button-right",
					prev: "#slider-controls-left .button-left",			
					fx: 'scrollHorz',						
					speed: 400,
					after: onAfter,
					timeout:0//this stops auto cycling. To enable auto cycling, set a value here (values are in milliseconds)
				}).fadeIn();		
			});
		}	
	}
else
	{//what's been called? Is it full width slider version?	
		if (strContainer == "#slider-controls-full")			
		{//full width slider	
			var strFxType = 'fade';//set fx type here, it is used for cycle prefs and to add class to target element for css
			$(strContainer+' .panel ul').cycle({   
				fx :strFxType,
				pause:1
			}).fadeIn().find('.overlay').css({"cursor":"pointer","opacity":"0.9"}).hover(function()
				{			
					$(this).animate({ opacity:"1" },200);
				},function(){
					$(this).animate({ opacity:"0.9" },200);
				});					
			//now add a class to this element based on fx type - if it's 'fade', hide nav buttons
			$(strContainer).addClass(strFxType);				
		}
	else	
		{
		//standard left/right slider
		$(strContainer+' .panel').css({"visibility":"visible","left":"0"}).cycle({        
			next: strCycleElementNext,
			prev: strCycleElementPrev,
			fx :"scrollHorz",
			speed: 400,
			timeout:0, //this stops auto cycling. To enable auto cycling, set a value here (values are in milliseconds)
			after: onAfter}).fadeIn();			
		}	
	}
}	

function setUpNivoSlider()
{//image slider - Nivo - http://www.readactor.com/articles/nivo-a-new-jquery-image-slider/
	$('#slider-controls-left .panel').css({"visibility":"visible","left":"0"}).nivoSlider({
		effect:'random',
		slices:7,
		animSpeed:500,
		pauseTime:3000,
		startSlide:0, //Set starting Slide (0 index)
		directionNav:true, //Next & Prev
		directionNavHide:false, //Only show on hover
		controlNav:false, //1,2,3...
		controlNavThumbs:false, //Use thumbnails for Control Nav
		controlNavThumbsSearch: '.jpg', //Replace this with...
		controlNavThumbsReplace: '_thumb.jpg', //...this in thumb Image src
		keyboardNav:true, //Use left & right arrows
		pauseOnHover:true, //Stop animation while hovering
		manualAdvance:true, //Force manual transitions
		captionOpacity:0.8, //Universal caption opacity
		beforeChange: function(){},
		afterChange: function(){},
		slideshowEnd: function(){} //Triggers after all slides have been shown
	}).fadeIn();
}

function showOverlays(strType)
{//pop up the overlays on the full width image slider	
	$('#slider-controls-full li .overlay').toggle(function(){
		$(this).stop().animate({bottom:'0'},{queue:false,duration:160});
		}, function() {
			$(this).stop().animate({bottom:'-78px'},{queue:false,duration:160});
		});
	if (strType == 'hide')
	{//used when it is open but the user navigates to another slide	
		$('#slider-controls-full li .overlay').stop().animate({bottom:'-78px'},{queue:false,duration:60});
	}			
}

function doButtonShadows()
/*
Main Javascript for jQuery Realistic Hover Effect
Created by Adrian Pelletier
http://www.adrianpelletier.com
This version amended to work with the go button and the shadow nav effect only. For the complete version, see http://www.adrianpelletier.com/2009/05/31/create-a-realistic-hover-effect-with-jquery-ui/	
Shadow Nav
-------------------------------------------------------------------------- */	
{
	// Append shadow image to each go button		
	$(".gotobutton").append('<img class="shadow" src="/public/images/slide-gotoproject-button-shadow.jpg" width="138" height="22" alt="" />');	
	// Animate buttons, shrink and fade shadow		
	$(".gotobutton").hover(function() {
		var e = this;
		$(e).find("a").stop().animate({ marginTop: "-10px" }, 250, function() {
			$(e).find("a").animate({ marginTop: "-6px" }, 250);
		});
		$(e).find("img.shadow").stop().animate({ width: "100px", height: "22px", marginLeft: "18px", opacity:"0.65"}, 250);
	},function(){
		var e = this;
		$(e).find("a").stop().animate({ marginTop: "4px" }, 250, function() {
			$(e).find("a").animate({ marginTop: "0px" }, 250);
		});
		$(e).find("img.shadow").stop().animate({ width: "138px", height: "22px", marginLeft: "0", opacity:"1"}, 250);
	});	

}//end doButtonShadows();

function processSelection(strTypeOfElement,element)
{//handle user selections on the customise popup, handling both inputs and label clicks
	if (strTypeOfElement=='input'){//radio buttons
		changeDemoDisplay($(element).attr("id"),$(element).parents("div").attr("id"));
		$(this).attr("checked", "checked");
	}
	else
	{//labels
		changeDemoDisplay($(element).attr("for"),$(element).parents("div").attr("id"));
		$(this).prev().attr("checked", "checked");
	}
	$.fn.colorbox.close();//choice made, hide popup;
}
	
function layoutOptions()
{		
	$("#explorelist div input").click(function(){	
		processSelection('input',this);
		}
	);
	$("#explorelist div label").click(function(){
		processSelection('label',this);
		}
	);
	
	$("#explorelist div input").each(function(i, element) {  //on load, reset checked radio buttons	
		if ($(element).attr("id")!=="red" && $(element).attr("id")!=="left" && $(element).attr("id")!="testimonial" && $(element).attr("id")!="stretchcolumn")//do not remove the default checked state for these
		{
			//handle nivo options (depends if we're on a cycle or nivo page) - check by seeing if nivo is active
			if($(".nivoSlider").length==0 && $(element).attr("id")!="nivo")
			{
				$(element).removeAttr("checked");		
			}
			
		}
		else
		{//go back to defaults, it's a page reload
			$(element).attr("checked", "checked");
		}
	});		
}

function changeDemoDisplay(strID, strParent)
{//logic for homepage panels
	$("#"+strID).attr("checked", "checked"); //set it checked (if label clicked there will be a delay otherwise)
	//strID + " " + strParent will equal, for example, 'right slider-controls' - so we know the label clicked and its control group
	var strContainer = "#"+strParent+"-"+strID;//eg #slider-controls-right
	
	if(strID=="nivo")
	{//in this case redirect to the nivo page (it's buggy if we add dynamically) 
		//which colour scheme should we redirect to?		
		window.location ="index-"+ $("#"+strID).val() +".htm";//eg index-nivo-blue.htm
	}
	if(strID=="cycle-left")
	{//in this case redirect to the cycle page
		window.location ="index-"+ $("#"+strID).val() +".htm";//eg index-red.htm
	}
	
	if (strParent=="colour-controls")//process colour options
	{
				window.location ="index-"+strID+".htm";//eg index-blue.htm
	}
	
	//is it visible? 		
	if ($(strContainer).css("display")=="none")//stop if it's already visible
	{			
		$("div").filter("."+strParent).fadeOut("fast");	//hide any visible - find all divs belonging to that group and hide them
		$('.panel ul').cycle('destroy');//find any cycle instances and destroy them
		$(strContainer).fadeIn(300);//show the new panel
		var strCycleElementPrev = $(strContainer +" .button-left");//assigns correct slider nav links to the slider
		var strCycleElementNext = $(strContainer +" .button-right");	
		setUpCycleSlider(strContainer, strCycleElementPrev, strCycleElementNext);//call slider setup function			
	}
	else
	{//is it the banner to hide?
		if (strContainer=='#banner-controls-hidebanner')
		{
			$("."+strParent).hide();
		}	
	}	
	
}