[
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]\npatreon: # Replace with a single Patreon username\nopen_collective: # Replace with a single Open Collective username\nko_fi: # Replace with a single Ko-fi username\ntidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\ncommunity_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\nliberapay: # Replace with a single Liberapay username\nissuehunt: # Replace with a single IssueHunt username\nlfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry\npolar: # Replace with a single Polar username\nbuy_me_a_coffee: # Replace with a single Buy Me a Coffee username\nthanks_dev: # Replace with a single thanks.dev username\ncustom: ['https://paypal.me/KenNil'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']\n"
  },
  {
    "path": "CHANGE.log",
    "content": "Change log for Cardinal Spline JS\n---------------------------------\n\n3.0.0\nChanges from this version can be seen in the git log itself.\n\n2.3.8\nBMP: Bumping version for NPM to obtain correct readme.\n\n2.3.7\nBMP: Bumping version for bower.\n\n2.3.6\nADD: Support empty point array as input (issue #5). Returns empty Float32Array.\n\n2.3.5\nADD: Documentation only (# of points required). Patch touched for bower (new tag).\n\n2.3.4\nADD: Node.js support for curve_func.js (added by @asmuelle)\n\n2.3.3\nADD: Node.js support for curve_calc.js\nIMP: Minor speed improvement\nFIX: Docs stated default segments value was 20, corrected to 25.\n\n2.3.1\nFIX: Made the extension more \"bullet-proof\" in case other extensions should happen to have the same name.\nFIX: JSDoc return type fixed (Array -> Float32Array).\nFIX: Minor touch-ups/improvements\nADD: Added two new file versions of the implementation - one pure function if you don't feel comfortable using\nextensions, as well as a pure mathematical function to return a point\narray for the spline without drawing anything (canvas not required with this version).\n\n2.3\nCHG: Using typed arrays also for resulting array (Float32)\nCHG: Default segment value is now 25 instead of 20 (dynamic approach is being considered).\nIMP: Speed improvements\nFIX: Fixed double point entries in result array\n\n2.2\nIMP: Using typed arrays internally for cached tension values for speed improvement\nREM: A left over and unnecessary console.log removed\n\n2.1.1\nFIX: When closed, length of close array was still reflecting total length internally resulting in empty entries\nas the closed section is calculated separately.\n\n2.1\nADD: New option: closed loop\nFIX: End point wasn't properly considered\n\n2.0\nADD: Optimized inner loop with a caching step\nCHG: Removed redundant code\nCHG: Cleaned up var declarations\nCHG: Removed internal moveTo() to conform better to context behavior in general\n\n\n(c) Epistemex 2013-2015\nLicense: MIT\n"
  },
  {
    "path": "MIT-LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2013-2018, 2024 Epistemex\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "﻿Cardinal spline\n===============\n\nA Cardinal spline (basically a Catmull-Rom with a tension option)\nimplementation for JavaScript which creates an interpolated\nsmooth curve through each point pair in the given array. There is no\nneed to specify control points.\n\n![Demo snapshot](https://i.imgur.com/5e69T5C.png)\n\nAdditional options are to provide a closed spline as well as segment\nresolution (between each point) and of course a tension value.\n\n_Help keep the project alive by supporting the developer:_\n\n[![PayPalMe](https://github.com/epistemex/transformation-matrix-js/assets/70324091/04203267-58f0-402b-9589-e2dee6e7c510)](https://paypal.me/KenNil)\n\nThe archive comes with three separate versions for the sake of convenience:\n\n**curve.js**<br>\nCanvas 2D context extension. Call curve() on the context (ctx.curve(...))\n\n**curve_draw.js**<br>\nIf you prefer not to use an extension then this version provides a clean\nfunction that takes the context as an argument instead.\n\n**curve_calc.js**<br>\nJust the internal function that calculates the points. Does not draw\nanything.\n\nAs well as their minified equivalent. There are no dependencies between\nthese implementations.\n\n\nInstall\n=======\n\n- Git using HTTPS: `git clone https://github.com/epistemex/cardinal-spline-js.git`\n- Git using SSH: `git clone git@github.com:epistemex/cardinal-spline-js.git`\n- NPM: `npm install /downloads/cardinal-spline-js/` (curve_calc.js / curve_func.js)\n\n\nUsage\n=====\n\ncurve.js\n--------\n\nMake sure the script is loaded before a 2D context is obtained from the canvas element.\n\nThen use `curve()` as any other method/function on the context -\n\n**Examples**\n\n    ctx.moveTo(points[0], points[1]);  // optionally move to first point\n    ctx.curve(points);                 // add cardinal spline to path\n    ctx.stroke();                      // stroke path\n\nwill draw the points in the array which are arranged in the following manner:\n\n    var points = [x1, y1,  x2, y2, ... xn, yn];\n\nAn optional tension value can be given *(default: 0.5)*:\n\n    ctx.curve(points, 0.5);            // sets tension [0.0, 1.0] +/-\n\na segment resolution value *(default: 25)*:\n\n    ctx.curve(points, 0.5, 25);        // points in each segment\n\nThe curve can be drawn closed. All arguments must be given in this\ncase *(default: false (open))*:\n\n    ctx.curve(points, 0.5, 25, true);  // make a closed loop\n\nThe function returns a new (typed) array with the spline points which can be used for\ntracking, calculate length and so forth. The values are in floating points:\n\n    var splinePoints = ctx.curve(points);\n\n\ncurve_draw.js\n-------------\n\nIf you use the function file instead the arguments will be the same as\nabove except that the context is passed in as the first argument and\nthen the function is instead called as:\n\n    ctx.moveTo(points[0], points[1]);  // optionally move to first point\n    curve(ctx, points);                // add cardinal spline to path\n    ctx.stroke();                      // stroke path\n\nTip: This variant also returns a spline point array.\n\n\ncurve_calc.js\n-------------\n\nIf you just want to calculate the spline points without drawing anything,\nyou can use the `curve_calc.js` file and call (please observe that the\nname has been changed to better reflect its purpose):\n\n    var splinePoints = getCurvePoints(points, ...);\n\nContext is not required with this function.\n\n\nIn Node.js\n----------\n\nRequire the package after installing it using npm, then:\n\n    const getCurvePoints = require(\"cardinal-spline-js\").getCurvePoints;\n    const outPoints = getCurvePoints(inPoints);\n\nor using ES5 module:\n\n    import { getCurvePoints } from './path/to/curve_calc.js'\n    const outPoints = getCurvePoints(inPoints);\n\nRequirements\n============\n\nA modern HTML5 compliant browser with support for Typed Arrays and\nJavaScript enabled. Except from `curve_calc.js` the canvas element and\na 2D context is required as well.\n\n\nLicense\n=======\n\nReleased under [MIT license](http://choosealicense.com/licenses/mit/).\n\n*&copy; 2013-2018, 2024 Epistemex*\n\n![Epistemex](https://i.imgur.com/wZSsyt8.png)\n"
  },
  {
    "path": "demos/demo.html",
    "content": "<!DOCTYPE html>\n<html>\n\n<!-- *******************************************************************\n\t **\t    Cardinal spline for canvas extension demo.\n\t **\n\t **\t    (c) Epistemex\n\t ** \tLicense: MIT.\n\t *******************************************************************\n-->\n\n<head>\n\t<title>Canvas cardinal (smooth) curve extension - Epistemex</title>\n\n\t<style>\n\t\tbody {\n\t\t\twidth            : 100%;\n\t\t\tpadding          : 0;\n\t\t\tmargin           : 0;\n\t\t\tfont             : 14px sans-serif;\n\t\t\tcolor            : #ccd;\n\t\t\tbackground-color : #272727;\n\t\t\t}\n\n\t\th1 {\n\t\t\tfont-size   : 32px;\n\t\t\tfont-weight : normal;\n\t\t\tmargin      : 20px 0;\n\t\t\tcolor       : #fff;\n\t\t\t}\n\n\t\tp {\n\t\t\tline-height : 19px;\n\t\t\t}\n\n\t\t#container {\n\t\t\twidth  : 1024px;\n\t\t\tmargin : 0 auto;\n\t\t\t}\n\n\t\t#demoCanvas {\n\t\t\tbackground-color : #b7b7bb;\n\t\t\tmargin-bottom    : 12px;\n\t\t\tcursor           : crosshair;\n\t\t\t}\n\n\t\t.options {\n\t\t\tfont-size        : 12px;\n\t\t\tpadding          : 9px 5px 9px 5px;\n\t\t\tbackground-color : #555;\n\t\t\tcolor            : #fff;\n\t\t\twidth            : 1014px;\n\t\t\tmargin           : 0;\n\t\t\t}\n\n\t\t.options > input[type=text] {\n\t\t\twidth       : 30px;\n\t\t\tmargin-left : 5px;\n\t\t\ttext-align  : center;\n\t\t\tborder      : 1px solid #fff;\n\t\t\t}\n\n\t\t.options > input[type=range] {\n\t\t\twidth : 120px;\n\t\t\t}\n\n\t\t.options > span {\n\t\t\tcolor      : #ff7;\n\t\t\tdisplay    : inline-block;\n\t\t\twidth      : 30px;\n\t\t\ttext-align : right;\n\t\t\t}\n\n\t\tbutton {\n\t\t\tborder        : 0;\n\t\t\tbackground    : #888;\n\t\t\tborder-radius : 2px;\n\t\t\tfont-weight   : bold;\n\t\t\tcolor         : #fff;\n\t\t\tpadding       : 3px 9px;\n\t\t\tfloat         : right;\n\t\t\tmargin        : -3px 3px 0 0;\n\t\t\t}\n\n\t\tbutton:hover {\n\t\t\tbackground : #ca2;\n\t\t\t}\n\n\t\t.options > label {\n\t\t\tmargin-left : 12px;\n\t\t\t}\n\n\t\tinput {\n\t\t\theight         : 9px;\n\t\t\tvertical-align : middle;\n\t\t\t}\n\n\t\ta {\n\t\t\tcolor           : #fff;\n\t\t\ttext-decoration : none;\n\t\t\t}\n\n\t\ta:hover {\n\t\t\tcolor           : #ffa;\n\t\t\ttext-decoration : underline;\n\t\t\t}\n\n\t\t.footerl {\n\t\t\tfloat : left;\n\t\t\t}\n\n\t\t.footerr {\n\t\t\tfloat      : right;\n\t\t\tmargin-top : -7px;\n\t\t\t}\n\t</style>\n</head>\n<body>\n\n\t<div id=\"container\">\n\n\t\t<h1>Cardinal spline for canvas</h1>\n\n\t\t<p>Draw a smooth curve (cardinal spline, or Catmull-Rom with tension option) through a point set with open or closed end, variable tension and number of segments.\n\t\tThe implementation is highly optimized for performance still preserving quality.</p>\n\n\t\t<!-- Option panel -->\n\t\t<div class=\"options\">\n\t\t\t<label for=\"numTension\">Tension:</label>\n\t\t\t<input id=\"numTension\" type=\"range\" value=\"5\" min=\"-10\" max=\"20\"/>\n\t\t\t<span id=\"numTensionValue\">0.5</span>\n\n\t\t\t<label for=\"numSegments\">Segments:</label>\n\t\t\t<input id=\"numSegments\" type=\"range\" value=\"25\" min=1 max=100/>\n\t\t\t<span id=\"numSegmentsValue\">25</span>\n\n\t\t\t<label for=\"chkClosed\">Closed:</label>\n\t\t\t<input id=\"chkClosed\" type=\"checkbox\">\n\n\t\t\t<label for=\"chkPoints\">Points:</label>\n\t\t\t<input id=\"chkPoints\" type=\"checkbox\" checked>\n\n\t\t\t<label for=\"chkFill\">Fill:</label>\n\t\t\t<input id=\"chkFill\" type=\"checkbox\">\n\n\t\t\t<button onclick=\"randomize();renderCurve()\">Randomize</button>\n\t\t</div>\n\n\t\t<canvas id=\"demoCanvas\" width=\"1024\" height=\"450\"></canvas>\n\n\t\t<div class=\"footerl\">\n\t\t\t&copy; by <a href=\"http://github.com/epistemex/\">Epistemex</a>.\n\t\t\t<a href=\"https://github.com/epistemex/cardinal-spline-js/\">Cardinal spline</a> is licensed with a <a href=\"http://opensource.org/licenses/MIT\">MIT license</a>.\n\t\t</div>\n\t\t<div class=\"footerr\">\n\t\t\t<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAAAgCAYAAADKbvy8AAAJcklEQVRoge1Ze1BTVxrPdKfd3Wo77nZ31t3pH4zrdsAAySUJSQiB8BCLyEMwaitF1BW0QI0uAhLAFKpYFYLyOD1X8ZaHoOERHyQhMZpxa6mtttht7fqoRezUrqs0C6u88e4fe489hARBovxBfjN3IOd85zvfOb/vlVwWy4WZBVrFeo42hs2iNbLZ9ynB3PuUYC6tYb9Aq9izp9s2FxyAplnP3TcL/0CbBfNoHf+twSYibaiRyBqp5W0bPEAcHIDEZ737iMbevdyjvTuIXfeV3NXTbbMLDOhzkpe6jfyVA2eE0YMmXz5t4PgPNXL2DWqIooEPfZoHIPH1wAfEhf5S4u99u4gf+3YRdx9sJyp/SuVWWdO8E6bb/hmL83rhyzeMglW3zYL4O2ahd69FsIk283bSBl7DiJa4ONzg0zJ02EczQBI3+wFxu19NDPbtJPofvEd09xYQP/Vkc//blepdd3c9R2tVcOdM93lmFM7rhS9/0yoouXJalHP7jJB318TLu2/mVw2buIvpVvZv7a15sM+H11tAHO/NJz7rSef2WhXcB93pxOf33uYqf1zl1faszzBjccYgDvnUIProHwZhw7VTothbJkF+l1nwOn2R9+JE1vfm84TWTdxvu1I4D7tSOCP3Nngfu73Ki/w+lvP+07Z9puDAgQOvQgi9qqurZ42aMLf4zzurFx0/qxdbz7eKU64ZhenfmXzl9EXe85PdpCuF03hvI2fk3+u8H96JZyd0Rnouv7mEvcVpp7ADAIAMQtgOAEh8mvtMJ8rKyl4hSTIcALADAOD5aEKjEf9ap/M/dErn131aJ7nUZhDLvzKIZFPZ7G6S9/YfVnr3dkawqY5Fnpuuh7ILp3qA8UCSpAVCSEMIrU9zn+lEeXn5bADAcgCApLKy8k+PJppbJHtO6iS9J3SSEaNBtPqCUbz1uj78l1Pd8Ga059KbEZ4914I8Y6/4eWRelXhLp6rTESCEMRBCK4RQPdE1KGpJkuQ+Lbucjerq6lkVFRW/GTVYp5fqmnWShw06/y7zSb9lFovsd87a8NtQT+31QPbpqxJ26mWh1xpn6Z0MKIqy2wkzBNIAANkzNsl5ONIS4HFYJ+0+rJMO1+ukNUa930Zn6v9czJ5/WezVcVHAKWgXcHda2GN/tSFJkgshbGdSIHoeRRJFUXMAACpGxopkSJKkkAwAwI2pgTK0BkKotpVHZDK60J4dzP9qR2shhFo8Uhny1ZhNVgihmiRJymadGncgiqLmjCfDzGnx+0FngxAqxlxwtV6qqNVLH9bqpA8pvVSt0QnmPjldY3GZzX7hS19u3SU+UX+Bz3/vU19fPj7PXJaVMTAGQhjDkPWIRIZgGkKoBgAkQghjmIOOkUFNDLokAICKWaNAZDGXooIQajFyKHRBGHkKAICMWW9FaxmZDghhB6NHgelqR3siGwEAKmydFteN2dWOkUXjJKI1djPJB60BoEYnpQ/pA/rK9YGVTmMOQxvBX/cJj0e28fnqczzRBnyOIY22rUPIaBbrZ3ImIoMRaLH1ZJIkuXiXijlGDBpDDoVfOos1Kt0mMnt34BkAjdnZ0+LIRkx3IjPuht8J81dha+MolBgC60pbZUMlxsDOCkPAQbtCU8Q5vijcIvRvNYkCu8+KRJk2xqsQOfjDRAHNpBy7BKK1LJbDCKSRp9uzyx6BeLTj9iACsSi1R6AWRRI2pkYEImKY6MR1IwJlNrpo+LjGrMQYdFptlA0WG2XWolZZqWManhxGntjdLAr82CiW9RnEYevwOSxdWu087SyW4wgcj0Cs1uB1td0BWfbG7NljRZc8FQId6cbPh9lBO2rCWCwWi1VkCNQVG2WDRa1Bd1Sm4IYJMTJJaHnBfz7pF9rWIll494Q0LA2fw0lwhCch0EbOjfHydvxCHkPg2IYBwxQjUDaebsb5LExKHlUPx2C3MehIoTGoZ7sxWJtjCvpoPMVPilpZ+KtNAREdjdLIO83SxbvxOUc1kElZMSzWk9VApnbE2MiPukCm3o0iCxsblbaYcQWma9IEIt22TmZbmxnHtKI7GLcGKk+F+r9rCv4h0xSizzCFfJ1okf3KruAUUC2KFh6RxVw6GhjVUCeLGeXZ2IVZUYeJDk2SpAUdEHkiIgbVSOigC4VYtwf/39miCBzVzTFe3sHUSjdsLc1cZAzzdDA2IplJE8h8brfRrYBYh8uQNqqJQmdBe4+C6mTki9mm4LMZp0IMW0wLb20wLl4yeYrGR61s6erDQXFXDwcty60KkW+ynWeMRumCZsij7KS6dhsZC5JhHKEDeaqdGmglSdJim77QhUHsK4a9+kmSpAXPABBCrW2nypChtR1Djsjs5wZ/blBwu9yQXgih1va7IzNuv5nJNIWcUBjD9iebwkFSa7jT0ygVvEJRGxR3syp4+XYq5I2Fj5W3KdpYdMnQ53ELuw0AAG4Tkbfr4XbscSacojvdvCh0sym0af2piPR1uqjO+OPyKCfY9giFS1IBCEsoLw9fm7B7ceKkfyiwJdAFO1hvDF+7/ljEooRj8gvxjW8ao2ri5ztDb9oq1YKMZRlAteydlTnR7yx+P2rtS5PVgVKaowhxgcVibTRHzFvbEqV+QyMPXFGX2C6vXX8slnpbMBWd8jU7f58cX1CiWL5NslWemaVamvKaRi7/hbNsdsEGa1qi/eKbVyTEVv9VEUMln1hamVq3qDT9zUiomtAbeRwhKVWvRCaValauVqcsX1dcn7Yyn4C8pEm/HHZhkoirS3SPo5JiIsnU9PCKLcdDS5SfBO/JrfHbsTfJV1X22vy0/Y99TyhMpv4SlkI2RyRX7IpOKjPL1xSVyl2R9+wQW5soWHooOTqsdOvm4KI8jbRwxzd+BXs6RfnqS/y88iNEHrmfk3NoDUdJvcXe9qHEPVfj5ZGtiWArG+M8srQnPTKavuNtrv9y4Ub41esbQHFSEnRF3rMGDyY9v7Aoe2fArvxC/4LdVcJ3i9t8Vfs+9smF3UQO7OXkHOzxUlb1eOXUDHlkH+13Vzb0eygbh9yzmv/Dzmi+x/9bfZdoU7Vhus8x4xFcrPQNKNzxnrhg7xe+eaUtPrkHbnBzyU7v3ENXvJTVw17KmmEP5dFBd2XDsHt2w4h7VvMN96ymfy7IbAifbttdwMDPK4kTqsoofg44y80h73BzKy97Kmv/tSCnvm9Bjub7BUrNLXdlwxce2U27PLJb/zjd9rrgggsuPF38Dzl7boef7zUEAAAAAElFTkSuQmCC\">\n\t\t</div>\n\t</div>\n\n<script src=\"../src/curve.js\"></script>\n<script>\n\n\tconst canvas = document.getElementById('demoCanvas');\n\tconst ctx = canvas.getContext(\"2d\");\n\tlet w = canvas.width, h;\n\tlet isDown = false, pIndex = -1;\n\tconst pts = [];\n\n\tsetCanvas();\n\n\tfunction setCanvas() {\n\t\tconst ih = window.innerHeight;\n\t\tconst r = canvas.getBoundingClientRect();\n\t\tconst nh = Math.max(100, ih - r.top * 1.5);\n\n\t\tcanvas.height = h = nh;\n\n\t\tctx.translate(0.5, 0.5);\n\t\tctx.lineJoin = 'round';\n\n\t\trandomize();\n\t\trenderCurve();\n\t}\n\n\twindow.onresize = setCanvas;\n\n\tdocument.getElementById('numSegments').addEventListener('input', renderCurve);\n\tdocument.getElementById('numTension').addEventListener('input', renderCurve);\n\tdocument.getElementById('chkPoints').addEventListener('input', renderCurve);\n\tdocument.getElementById('chkClosed').addEventListener('input', renderCurve);\n\tdocument.getElementById('chkFill').addEventListener('input', renderCurve);\n\n\tdocument.getElementById('numSegments').addEventListener('change', renderCurve);\n\tdocument.getElementById('numTension').addEventListener('change', renderCurve);\n\tdocument.getElementById('chkPoints').addEventListener('change', renderCurve);\n\tdocument.getElementById('chkClosed').addEventListener('change', renderCurve);\n\tdocument.getElementById('chkFill').addEventListener('change', renderCurve);\n\n\tcanvas.onmousedown = function(e) {\n\t\tconst pos = getPos(e);\n\t\tlet i = 0;\n\t\tlet m = 5;\n\n\t\tpIndex = -1;\n\t\tisDown = false;\n\n\t\tfor(; i < pts.length; i += 2) {\n\t\t\tif (pos.x >= pts[i] - m && pos.x < pts[i] + m &&\n\t\t\t\tpos.y >= pts[i + 1] - m && pos.y < pts[i + 1] + m) {\n\t\t\t\tisDown = true;\n\t\t\t\tpIndex = i;\n\t\t\t}\n\t\t}\n\t};\n\n\twindow.onmousemove = function(e) {\n\t\tif (isDown) {\n\t\t\tconst pos = getPos(e);\n\t\t\tpts[pIndex] = pos.x;\n\t\t\tpts[pIndex + 1] = pos.y;\n\t\t\trenderCurve()\n\t\t}\n\t};\n\n\twindow.onmouseup = function() {\n\t\tisDown = false;\n\t};\n\n\tfunction getPos(e) {\n\t\tvar r = canvas.getBoundingClientRect();\n\t\treturn {x: e.clientX - r.left, y: e.clientY - r.top}\n\t}\n\n\t/*\n\t *\tRandomize points\n\t*/\n\tfunction randomize() {\n\t\tconst numOfPoints = 7; //min. 2\n\t\tpts.length = 0;\n\n\t\tfor(let i = 0; i < numOfPoints; i++) {\n\t\t\tpts.push((w * Math.random() * 0.9 + w * 0.05) | 0,\n\t\t\t\t(h * Math.random() * 0.9 + h * 0.05) | 0);\n\t\t}\n\t}\n\n\t/*\n\t *\tCollect options\n\t */\n\tfunction CurveOptions() {\n\t\tthis.closed = !!document.getElementById('chkClosed').checked;\n\t\tthis.fill = !!document.getElementById('chkFill').checked;\n\t\tthis.points = !!document.getElementById('chkPoints').checked;\n\t\tthis.segments = +document.getElementById('numSegments').value;\n\t\tthis.tension = document.getElementById('numTension').value * 0.1;\n\t}\n\n\t/*\n\t *\tDraw curve with current settings and points\n\t */\n\tfunction renderCurve() {\n\t\tctx.clearRect(0, 0, w, h);\n\n\t\t// get current options\n\t\tconst o = new CurveOptions();\n\n\t\tdocument.getElementById('numSegmentsValue').innerHTML = o.segments;\n\t\tdocument.getElementById('numTensionValue').innerHTML = o.tension.toFixed(1);\n\n\t\t// draw our cardinal spline\n\t\tctx.beginPath();\n\t\tctx.moveTo(pts[0], pts[1]);\n\t\tctx.curve(pts, o.tension, o.segments, o.closed);\n\t\tif (o.closed && !o.fill) ctx.closePath();\n\t\tctx.strokeStyle = '#6677cc';\n\t\tctx.lineWidth = 3;\n\t\tif (o.fill) {\n\t\t\tctx.fillStyle = '#ca7';\n\t\t\tctx.fill();\n\t\t}\n\t\tctx.stroke();\n\n\t\tif (o.points) {\n\t\t\tctx.beginPath();\n\t\t\tctx.strokeStyle = '#aa0011';\n\t\t\tfor(let i = 0; i < pts.length; i+=2) {\n\t\t\t\tctx.rect(pts[i]-2,pts[i+1]-2,4,4);\n\t\t\t}\n\t\t\tctx.stroke();\n\n\t\t}\n\t}\n\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "docs/global.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"en\">\n<head>\n\t<meta charset=\"utf-8\">\n\t<title>cardinal-spline-js Global</title>\n\n\t<!--[if lt IE 9]>\n\t<script src=\"//html5shiv.googlecode.com/svn/trunk/html5.js\"></script>\n\t<![endif]-->\n\t<link type=\"text/css\" rel=\"stylesheet\" href=\"styles/sunlight.dark.css\">\n\n\t<link type=\"text/css\" rel=\"stylesheet\" href=\"styles/site.cerulean.css\">\n\n</head>\n\n<body>\n<div class=\"container-fluid\">\n\t<div class=\"navbar navbar-fixed-top \">\n\t\t<div class=\"navbar-inner\">\n\t\t\t<a class=\"brand\" href=\"index.html\">cardinal-spline-js</a>\n\t\t\t<ul class=\"nav\">\n\t\t\t\t\n\t\t\t\t<li class=\"dropdown\">\n\t\t\t\t\t<a href=\"global.html\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Global<b\n\t\t\t\t\t\tclass=\"caret\"></b></a>\n\n\t\t\t\t\t<ul class=\"dropdown-menu \">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<a href=\"global.html#curve\">curve</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<a href=\"global.html#getCurvePoints\">getCurvePoints</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\n\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\n\t<div class=\"row-fluid\">\n\n\t\t\n\t\t<div class=\"span8\">\n\t\t\t\n\t\t\t\t<div id=\"main\">\n\t\t\t\t\t\n\n\n\t<h1 class=\"page-title\">Global</h1>\n<section>\n\n<header>\n    <h2>\n    \n    </h2>\n    \n</header>\n\n<article>\n    <div class=\"container-overview\">\n    \n\n    \n        \n\n        \n<dl class=\"details\">\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\n\n\t\n\n\t\n\n\t\n\n\t\n</dl>\n\n\n        \n    \n    </div>\n\n    \n\n    \n\n    \n\n    \n\n    \n\n    \n\n    \n        <h3 class=\"subsection-title\">Methods</h3>\n\n        <dl>\n            \n<dt>\n    <h4 class=\"name\" id=\"curve\"><span class=\"type-signature\"></span>curve<span class=\"signature\">(ctx, points, <span class=\"optional\">tension</span>, <span class=\"optional\">numOfSeg</span>, <span class=\"optional\">close</span>)</span><span class=\"type-signature\"> &rarr; {Float32Array}</span></h4>\n    \n    \n</dt>\n<dd>\n    \n    \n    <div class=\"description\">\n        <p>Draws a cardinal spline through given point array. Points must be arranged<br>as: [x1, y1, x2, y2, ..., xn, yn]. It adds the points to the current path.</p>\n<p>There must be a minimum of two points in the input array but the function<br>is only useful where there are three points or more.</p>\n<p>The method continues previous path of the context. If you don't want that<br>then you need to use moveTo() with the first point from the input array.</p>\n<p>The points for the cardinal spline are returned as a new array.</p>\n    </div>\n    \n\n    \n    \n    \n    \n    \n        <h5>Parameters:</h5>\n        \n\n<table class=\"params table table-striped\">\n    <thead>\n\t<tr>\n\t\t\n\t\t<th>Name</th>\n\t\t\n\n\t\t<th>Type</th>\n\n\t\t\n\t\t<th>Argument</th>\n\t\t\n\n\t\t\n\t\t<th>Default</th>\n\t\t\n\n\t\t<th class=\"last\">Description</th>\n\t</tr>\n\t</thead>\n\n\t<tbody>\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>ctx</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\"><a href=\"CanvasRenderingContext2D.html\">CanvasRenderingContext2D</a></span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>context to use</p></td>\n        </tr>\n\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>points</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\">Array</span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>point array</p></td>\n        </tr>\n\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>tension</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\">Number</span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n                    &lt;optional><br>\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                    0.5\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>tension. Typically between [0.0, 1.0] but can be exceeded</p></td>\n        </tr>\n\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>numOfSeg</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\">Number</span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n                    &lt;optional><br>\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                    25\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>number of segments between two points (line resolution)</p></td>\n        </tr>\n\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>close</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\">Boolean</span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n                    &lt;optional><br>\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                    false\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>Close the ends making the line continuous</p></td>\n        </tr>\n\n\t\n\t</tbody>\n</table>\n\n    \n    \n    \n<dl class=\"details\">\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\n\n\t\n\n\t\n\n\t\n\n\t\n</dl>\n\n    \n    \n\n    \n\n    \n    \n    \n    \n    \n    <h5>Returns:</h5>\n    \n            \n<div class=\"param-desc\">\n    <p>New array with the calculated points that was added to the path</p>\n</div>\n\n\n\n<dl>\n\t<dt>\n\t\tType\n\t</dt>\n\t<dd>\n\t\t\n<span class=\"param-type\">Float32Array</span>\n\n\n\t</dd>\n</dl>\n\n\n        \n    \n    \n</dd>\n\n        \n            \n<dt>\n    <h4 class=\"name\" id=\"getCurvePoints\"><span class=\"type-signature\"></span>getCurvePoints<span class=\"signature\">(points, <span class=\"optional\">tension</span>, <span class=\"optional\">numOfSeg</span>, <span class=\"optional\">close</span>)</span><span class=\"type-signature\"> &rarr; {Float32Array}</span></h4>\n    \n    \n</dt>\n<dd>\n    \n    \n    <div class=\"description\">\n        <p>Calculates an array containing points representing a cardinal spline through given point array.<br>Points must be arranged as: [x1, y1, x2, y2, ..., xn, yn].</p>\n<p>There must be a minimum of two points in the input array but the function<br>is only useful where there are three points or more.</p>\n<p>The points for the cardinal spline are returned as a new array.</p>\n    </div>\n    \n\n    \n    \n    \n    \n    \n        <h5>Parameters:</h5>\n        \n\n<table class=\"params table table-striped\">\n    <thead>\n\t<tr>\n\t\t\n\t\t<th>Name</th>\n\t\t\n\n\t\t<th>Type</th>\n\n\t\t\n\t\t<th>Argument</th>\n\t\t\n\n\t\t\n\t\t<th>Default</th>\n\t\t\n\n\t\t<th class=\"last\">Description</th>\n\t</tr>\n\t</thead>\n\n\t<tbody>\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>points</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\">Array</span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>point array</p></td>\n        </tr>\n\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>tension</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\">Number</span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n                    &lt;optional><br>\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                    0.5\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>tension. Typically between [0.0, 1.0] but can be exceeded</p></td>\n        </tr>\n\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>numOfSeg</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\">Number</span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n                    &lt;optional><br>\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                    25\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>number of segments between two points (line resolution)</p></td>\n        </tr>\n\n\t\n\n        <tr>\n            \n                <td class=\"name\"><code>close</code></td>\n            \n\n            <td class=\"type\">\n            \n                \n<span class=\"param-type\">Boolean</span>\n\n\n            \n            </td>\n\n            \n                <td class=\"attributes\">\n                \n                    &lt;optional><br>\n                \n\n                \n\n                \n                </td>\n            \n\n            \n                <td class=\"default\">\n                \n                    false\n                \n                </td>\n            \n\n            <td class=\"description last\"><p>Close the ends making the line continuous</p></td>\n        </tr>\n\n\t\n\t</tbody>\n</table>\n\n    \n    \n    \n<dl class=\"details\">\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\t\n\n\n\n\t\n\n\t\n\n\t\n\n\t\n</dl>\n\n    \n    \n\n    \n\n    \n    \n    \n    \n    \n    <h5>Returns:</h5>\n    \n            \n<div class=\"param-desc\">\n    <p>New array with the calculated points that was added to the path</p>\n</div>\n\n\n\n<dl>\n\t<dt>\n\t\tType\n\t</dt>\n\t<dd>\n\t\t\n<span class=\"param-type\">Float32Array</span>\n\n\n\t</dd>\n</dl>\n\n\n        \n    \n    \n</dd>\n\n        </dl>\n    \n\n    \n\n    \n</article>\n\n</section>\n\n\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"clearfix\"></div>\n\t\t\t\t<footer>\n\t\t\t\t\t\n\t\t\t\t\t<p><b><a href='https://gitlab.com/epistemex/'>Epistemex at GitLab</a></b></p>\n\t\t\t\t\t<br />\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t<span class=\"copyright\">\n\t\tCopyright &copy; 2013-2018 Epistemex\n\t\t</span>\n\t\t\t\t\t<br />\n\t\t\t\t\t\n\t\t<span class=\"jsdoc-message\">\n\t\tDocumentation generated by <a href=\"https://github.com/jsdoc3/jsdoc\">JSDoc 3.5.5</a>\n\t\ton Fri Jun 8th 2018 using the <a\n\t\t\thref=\"https://github.com/terryweiss/docstrap\">DocStrap template</a>.\n\t\t</span>\n\t\t\t\t</footer>\n\t\t\t</div>\n\n\t\t\t\n\t\t\t<div class=\"span3\">\n\t\t\t\t<div id=\"toc\"></div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<br clear=\"both\">\n\t\t</div>\n\n\t</div>\n\t<!--<script src=\"scripts/sunlight.js\"></script>-->\n\t<script src=\"scripts/docstrap.lib.js\"></script>\n\t<script src=\"scripts/bootstrap-dropdown.js\"></script>\n\t<script src=\"scripts/toc.js\"></script>\n\n\t<script>\n\t\t$( function () {\n\t\t\t$( \"[id*='$']\" ).each( function () {\n\t\t\t\tvar $this = $( this );\n\n\t\t\t\t$this.attr( \"id\", $this.attr( \"id\" ).replace( \"$\", \"__\" ) );\n\t\t\t} );\n\n\t\t\t$( \"#toc\" ).toc( {\n\t\t\t\tanchorName  : function ( i, heading, prefix ) {\n\t\t\t\t\treturn $( heading ).attr( \"id\" ) || ( prefix + i );\n\t\t\t\t},\n\t\t\t\tselectors   : \"h1,h2,h3,h4\",\n\t\t\t\tshowAndHide : false,\n\t\t\t\tscrollTo    : \"100px\"\n\t\t\t} );\n\n\t\t\t$( \"#toc>ul\" ).addClass( \"nav nav-pills nav-stacked\" );\n\t\t\t$( \"#main span[id^='toc']\" ).addClass( \"toc-shim\" );\n\t\t\t$( '.dropdown-toggle' ).dropdown();\n//\t\t\t$( \".tutorial-section pre, .readme-section pre\" ).addClass( \"sunlight-highlight-javascript\" ).addClass( \"linenums\" );\n\n\t\t\t$( \".tutorial-section pre, .readme-section pre\" ).each( function () {\n\t\t\t\tvar $this = $( this );\n\n\t\t\t\tvar example = $this.find( \"code\" );\n\t\t\t\texampleText = example.html();\n\t\t\t\tvar lang = /{@lang (.*?)}/.exec( exampleText );\n\t\t\t\tif ( lang && lang[1] ) {\n\t\t\t\t\texampleText = exampleText.replace( lang[0], \"\" );\n\t\t\t\t\texample.html( exampleText );\n\t\t\t\t\tlang = lang[1];\n\t\t\t\t} else {\n\t\t\t\t\tlang = \"javascript\";\n\t\t\t\t}\n\n\t\t\t\tif ( lang ) {\n\n\t\t\t\t\t$this\n\t\t\t\t\t\t.addClass( \"sunlight-highlight-\" + lang )\n\t\t\t\t\t\t.addClass( \"linenums\" )\n\t\t\t\t\t\t.html( example.html() );\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tSunlight.highlightAll( {\n\t\t\t\tlineNumbers : false,\n\t\t\t\tshowMenu : true,\n\t\t\t\tenableDoclinks : true\n\t\t\t} );\n\t\t} );\n\t </script>\n\n\n\n\t<!--Navigation and Symbol Display-->\n\t\n\n\n\t<!--Google Analytics-->\n\t\n\n</body>\n</html>"
  },
  {
    "path": "docs/index.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"en\">\n<head>\n\t<meta charset=\"utf-8\">\n\t<title>cardinal-spline-js Index</title>\n\n\t<!--[if lt IE 9]>\n\t<script src=\"//html5shiv.googlecode.com/svn/trunk/html5.js\"></script>\n\t<![endif]-->\n\t<link type=\"text/css\" rel=\"stylesheet\" href=\"styles/sunlight.dark.css\">\n\n\t<link type=\"text/css\" rel=\"stylesheet\" href=\"styles/site.cerulean.css\">\n\n</head>\n\n<body>\n<div class=\"container-fluid\">\n\t<div class=\"navbar navbar-fixed-top \">\n\t\t<div class=\"navbar-inner\">\n\t\t\t<a class=\"brand\" href=\"index.html\">cardinal-spline-js</a>\n\t\t\t<ul class=\"nav\">\n\t\t\t\t\n\t\t\t\t<li class=\"dropdown\">\n\t\t\t\t\t<a href=\"global.html\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">Global<b\n\t\t\t\t\t\tclass=\"caret\"></b></a>\n\n\t\t\t\t\t<ul class=\"dropdown-menu \">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<a href=\"global.html#curve\">curve</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<a href=\"global.html#getCurvePoints\">getCurvePoints</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\n\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\n\t<div class=\"row-fluid\">\n\n\t\t\n\t\t<div class=\"span8\">\n\t\t\t\n\t\t\t\t<div id=\"main\">\n\t\t\t\t\t\n\n\n\t\n\t<span class=\"page-title\">Index</span>\n\t\n\t\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\n\n\n\n\n\n    <section class=\"readme-section\">\n        <article><h1>﻿Cardinal spline</h1><p>A Cardinal spline (basically a Catmull-Rom with a tension option)<br>implementation for  JavaScript/HTML5 which creates an interpolated<br>smooth curve through each point pair in the given array. There is no<br>need to specify control points.</p>\n<p><img src=\"https://i.imgur.com/5e69T5C.png\" alt=\"Demo snapshot\"></p>\n<p>Additional options are to provide a closed spline as well as segment<br>resolution (between each point) and of course a tension value.</p>\n<p>The archive comes with three separate versions for the sake of convenience:</p>\n<p><strong>curve.js</strong><br><br>Canvas 2D context extension. Call curve() on the context (ctx.curve(...))</p>\n<p><strong>curve_func.js</strong><br><br>If you prefer not to use an extension then this version provide a pure<br>function that takes the context as an argument instead.</p>\n<p><strong>curve_calc.js</strong><br><br>Just the internal function that calculates the points. Does not draw<br>anything.</p>\n<p>As well as their minified equivalent. There are no dependencies between<br>these implementations.</p>\n<h1>Install</h1><ul>\n<li>Git using HTTPS: <code>git clone https://gitlab.com/epistemex/cardinal-spline-js.git</code></li>\n<li>Git using SSH: <code>git clone git@gitlab.com:epistemex/cardinal-spline-js.git</code></li>\n<li>Bower: <code>bower install cardinal-spline-js</code></li>\n<li>NPM: <code>npm install cardinal-spline-js</code> (curve_calc.js / curve_func.js)</li>\n</ul>\n<h1>Usage</h1><h2>curve.js</h2><p>Make sure the script is loaded before a 2D context is obtained from the canvas element.</p>\n<p>Then use <code>curve()</code> as any other method/function on the context -</p>\n<p><strong>Examples</strong></p>\n<pre class=\"prettyprint source\"><code>ctx.moveTo(points[0], points[1]);  // optionally move to first point\nctx.curve(points);                 // add cardinal spline to path\nctx.stroke();                      // stroke path</code></pre><p>will draw the points in the array which are arranged in the following manner:</p>\n<pre class=\"prettyprint source\"><code>var points = [x1, y1,  x2, y2, ... xn, yn];</code></pre><p>An optional tension value can be given <em>(default: 0.5)</em>:</p>\n<pre class=\"prettyprint source\"><code>ctx.curve(points, 0.5);            // sets tension [0.0, 1.0] +/-</code></pre><p>a segment resolution value <em>(default: 25)</em>:</p>\n<pre class=\"prettyprint source\"><code>ctx.curve(points, 0.5, 25);        // points in each segment</code></pre><p>The curve can be drawn closed. All arguments must be given in this<br>case <em>(default: false (open))</em>:</p>\n<pre class=\"prettyprint source\"><code>ctx.curve(points, 0.5, 25, true);  // make a closed loop</code></pre><p>The function returns a new (typed) array with the spline points which can be used for<br>tracking, calculate length and so forth. The values are in floating points:</p>\n<pre class=\"prettyprint source\"><code>var splinePoints = ctx.curve(points);</code></pre><h2>curve_func.js</h2><p>If you use the function file instead the arguments will be the same as<br>above except that the context is passed in as the first argument and<br>then the function is instead called as:</p>\n<pre class=\"prettyprint source\"><code>ctx.moveTo(points[0], points[1]);  // optionally move to first point\ncurve(ctx, points);                // add cardinal spline to path\nctx.stroke();                      // stroke path</code></pre><p>Also this variant returns a spline point array.</p>\n<h2>curve_calc.js</h2><p>If you just want to calculate the spline points without drawing anything,<br>you can use the <code>curve_calc.js</code> file and call (please observe that the<br>name has been changed to better reflect its purpose):</p>\n<pre class=\"prettyprint source\"><code>var splinePoints = getCurvePoints(points, ...);</code></pre><p>Context is not required with this function.</p>\n<h2>In Node.js</h2><p>Require the package after installing it using npm, then:</p>\n<pre class=\"prettyprint source\"><code>var getCurvePoints = require(&quot;cardinal-spline-js&quot;).getCurvePoints;\nvar outPoints = getCurvePoints(inPoints);</code></pre><h1>Requirements</h1><p>A modern HTML5 compliant browser with support for Typed Arrays and<br>JavaScript enabled. Except from <code>curve_calc.js</code> the canvas element and<br>a 2D context is required as well.</p>\n<h1>License</h1><p>Released under <a href=\"http://choosealicense.com/licenses/mit/\">MIT license</a>. You can use this class in both commercial and non-commercial projects provided that full header (minified and developer versions) is included.</p>\n<p><em>&copy; 2013-2018 Epistemex</em></p>\n<p><img src=\"https://i.imgur.com/wZSsyt8.png\" alt=\"Epistemex\"></p></article>\n    </section>\n\n\n\n\n\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"clearfix\"></div>\n\t\t\t\t<footer>\n\t\t\t\t\t\n\t\t\t\t\t<p><b><a href='https://gitlab.com/epistemex/'>Epistemex at GitLab</a></b></p>\n\t\t\t\t\t<br />\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t<span class=\"copyright\">\n\t\tCopyright &copy; 2013-2018 Epistemex\n\t\t</span>\n\t\t\t\t\t<br />\n\t\t\t\t\t\n\t\t<span class=\"jsdoc-message\">\n\t\tDocumentation generated by <a href=\"https://github.com/jsdoc3/jsdoc\">JSDoc 3.5.5</a>\n\t\ton Fri Jun 8th 2018 using the <a\n\t\t\thref=\"https://github.com/terryweiss/docstrap\">DocStrap template</a>.\n\t\t</span>\n\t\t\t\t</footer>\n\t\t\t</div>\n\n\t\t\t\n\t\t\t<div class=\"span3\">\n\t\t\t\t<div id=\"toc\"></div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<br clear=\"both\">\n\t\t</div>\n\n\t</div>\n\t<!--<script src=\"scripts/sunlight.js\"></script>-->\n\t<script src=\"scripts/docstrap.lib.js\"></script>\n\t<script src=\"scripts/bootstrap-dropdown.js\"></script>\n\t<script src=\"scripts/toc.js\"></script>\n\n\t<script>\n\t\t$( function () {\n\t\t\t$( \"[id*='$']\" ).each( function () {\n\t\t\t\tvar $this = $( this );\n\n\t\t\t\t$this.attr( \"id\", $this.attr( \"id\" ).replace( \"$\", \"__\" ) );\n\t\t\t} );\n\n\t\t\t$( \"#toc\" ).toc( {\n\t\t\t\tanchorName  : function ( i, heading, prefix ) {\n\t\t\t\t\treturn $( heading ).attr( \"id\" ) || ( prefix + i );\n\t\t\t\t},\n\t\t\t\tselectors   : \"h1,h2,h3,h4\",\n\t\t\t\tshowAndHide : false,\n\t\t\t\tscrollTo    : \"100px\"\n\t\t\t} );\n\n\t\t\t$( \"#toc>ul\" ).addClass( \"nav nav-pills nav-stacked\" );\n\t\t\t$( \"#main span[id^='toc']\" ).addClass( \"toc-shim\" );\n\t\t\t$( '.dropdown-toggle' ).dropdown();\n//\t\t\t$( \".tutorial-section pre, .readme-section pre\" ).addClass( \"sunlight-highlight-javascript\" ).addClass( \"linenums\" );\n\n\t\t\t$( \".tutorial-section pre, .readme-section pre\" ).each( function () {\n\t\t\t\tvar $this = $( this );\n\n\t\t\t\tvar example = $this.find( \"code\" );\n\t\t\t\texampleText = example.html();\n\t\t\t\tvar lang = /{@lang (.*?)}/.exec( exampleText );\n\t\t\t\tif ( lang && lang[1] ) {\n\t\t\t\t\texampleText = exampleText.replace( lang[0], \"\" );\n\t\t\t\t\texample.html( exampleText );\n\t\t\t\t\tlang = lang[1];\n\t\t\t\t} else {\n\t\t\t\t\tlang = \"javascript\";\n\t\t\t\t}\n\n\t\t\t\tif ( lang ) {\n\n\t\t\t\t\t$this\n\t\t\t\t\t\t.addClass( \"sunlight-highlight-\" + lang )\n\t\t\t\t\t\t.addClass( \"linenums\" )\n\t\t\t\t\t\t.html( example.html() );\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tSunlight.highlightAll( {\n\t\t\t\tlineNumbers : false,\n\t\t\t\tshowMenu : true,\n\t\t\t\tenableDoclinks : true\n\t\t\t} );\n\t\t} );\n\t </script>\n\n\n\n\t<!--Navigation and Symbol Display-->\n\t\n\n\n\t<!--Google Analytics-->\n\t\n\n</body>\n</html>"
  },
  {
    "path": "docs/scripts/docstrap.lib.js",
    "content": "!function(a,b){function c(a){var b=a.length,c=fb.type(a);return fb.isWindow(a)?!1:1===a.nodeType&&b?!0:\"array\"===c||\"function\"!==c&&(0===b||\"number\"==typeof b&&b>0&&b-1 in a)}function d(a){var b=ob[a]={};return fb.each(a.match(hb)||[],function(a,c){b[c]=!0}),b}function e(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=fb.expando+Math.random()}function f(a,c,d){var e;if(d===b&&1===a.nodeType)if(e=\"data-\"+c.replace(sb,\"-$1\").toLowerCase(),d=a.getAttribute(e),\"string\"==typeof d){try{d=\"true\"===d?!0:\"false\"===d?!1:\"null\"===d?null:+d+\"\"===d?+d:rb.test(d)?JSON.parse(d):d}catch(f){}pb.set(a,c,d)}else d=b;return d}function g(){return!0}function h(){return!1}function i(){try{return T.activeElement}catch(a){}}function j(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function k(a,b,c){if(fb.isFunction(b))return fb.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fb.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(Cb.test(b))return fb.filter(b,a,c);b=fb.filter(b,a)}return fb.grep(a,function(a){return bb.call(b,a)>=0!==c})}function l(a,b){return fb.nodeName(a,\"table\")&&fb.nodeName(1===b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\")):a}function m(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function n(a){var b=Nb.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function o(a,b){for(var c=a.length,d=0;c>d;d++)qb.set(a[d],\"globalEval\",!b||qb.get(b[d],\"globalEval\"))}function p(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(qb.hasData(a)&&(f=qb.access(a),g=qb.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)fb.event.add(b,e,j[e][c])}pb.hasData(a)&&(h=pb.access(a),i=fb.extend({},h),pb.set(b,i))}}function q(a,c){var d=a.getElementsByTagName?a.getElementsByTagName(c||\"*\"):a.querySelectorAll?a.querySelectorAll(c||\"*\"):[];return c===b||c&&fb.nodeName(a,c)?fb.merge([a],d):d}function r(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&Kb.test(a.type)?b.checked=a.checked:(\"input\"===c||\"textarea\"===c)&&(b.defaultValue=a.defaultValue)}function s(a,b){if(b in a)return b;for(var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=_b.length;e--;)if(b=_b[e]+c,b in a)return b;return d}function t(a,b){return a=b||a,\"none\"===fb.css(a,\"display\")||!fb.contains(a.ownerDocument,a)}function u(b){return a.getComputedStyle(b,null)}function v(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=qb.get(d,\"olddisplay\"),c=d.style.display,b?(f[g]||\"none\"!==c||(d.style.display=\"\"),\"\"===d.style.display&&t(d)&&(f[g]=qb.access(d,\"olddisplay\",z(d.nodeName)))):f[g]||(e=t(d),(c&&\"none\"!==c||!e)&&qb.set(d,\"olddisplay\",e?c:fb.css(d,\"display\"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&\"none\"!==d.style.display&&\"\"!==d.style.display||(d.style.display=b?f[g]||\"\":\"none\"));return a}function w(a,b,c){var d=Ub.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||\"px\"):b}function x(a,b,c,d,e){for(var f=c===(d?\"border\":\"content\")?4:\"width\"===b?1:0,g=0;4>f;f+=2)\"margin\"===c&&(g+=fb.css(a,c+$b[f],!0,e)),d?(\"content\"===c&&(g-=fb.css(a,\"padding\"+$b[f],!0,e)),\"margin\"!==c&&(g-=fb.css(a,\"border\"+$b[f]+\"Width\",!0,e))):(g+=fb.css(a,\"padding\"+$b[f],!0,e),\"padding\"!==c&&(g+=fb.css(a,\"border\"+$b[f]+\"Width\",!0,e)));return g}function y(a,b,c){var d=!0,e=\"width\"===b?a.offsetWidth:a.offsetHeight,f=u(a),g=fb.support.boxSizing&&\"border-box\"===fb.css(a,\"boxSizing\",!1,f);if(0>=e||null==e){if(e=Qb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Vb.test(e))return e;d=g&&(fb.support.boxSizingReliable||e===a.style[b]),e=parseFloat(e)||0}return e+x(a,b,c||(g?\"border\":\"content\"),d,f)+\"px\"}function z(a){var b=T,c=Xb[a];return c||(c=A(a,b),\"none\"!==c&&c||(Rb=(Rb||fb(\"<iframe frameborder='0' width='0' height='0'/>\").css(\"cssText\",\"display:block !important\")).appendTo(b.documentElement),b=(Rb[0].contentWindow||Rb[0].contentDocument).document,b.write(\"<!doctype html><html><body>\"),b.close(),c=A(a,b),Rb.detach()),Xb[a]=c),c}function A(a,b){var c=fb(b.createElement(a)).appendTo(b.body),d=fb.css(c[0],\"display\");return c.remove(),d}function B(a,b,c,d){var e;if(fb.isArray(b))fb.each(b,function(b,e){c||bc.test(a)?d(a,e):B(a+\"[\"+(\"object\"==typeof e?b:\"\")+\"]\",e,c,d)});else if(c||\"object\"!==fb.type(b))d(a,b);else for(e in b)B(a+\"[\"+e+\"]\",b[e],c,d)}function C(a){return function(b,c){\"string\"!=typeof b&&(c=b,b=\"*\");var d,e=0,f=b.toLowerCase().match(hb)||[];if(fb.isFunction(c))for(;d=f[e++];)\"+\"===d[0]?(d=d.slice(1)||\"*\",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function D(a,c,d,e){function f(i){var j;return g[i]=!0,fb.each(a[i]||[],function(a,i){var k=i(c,d,e);return\"string\"!=typeof k||h||g[k]?h?!(j=k):b:(c.dataTypes.unshift(k),f(k),!1)}),j}var g={},h=a===sc;return f(c.dataTypes[0])||!g[\"*\"]&&f(\"*\")}function E(a,c){var d,e,f=fb.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);return e&&fb.extend(!0,a,e),a}function F(a,c,d){for(var e,f,g,h,i=a.contents,j=a.dataTypes;\"*\"===j[0];)j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader(\"Content-Type\"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+\" \"+j[0]]){g=f;break}h||(h=f)}g=g||h}return g?(g!==j[0]&&j.unshift(g),d[g]):b}function G(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(\"*\"===f)f=i;else if(\"*\"!==i&&i!==f){if(g=j[i+\" \"+f]||j[\"* \"+f],!g)for(e in j)if(h=e.split(\" \"),h[1]===f&&(g=j[i+\" \"+h[0]]||j[\"* \"+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a[\"throws\"])b=g(b);else try{b=g(b)}catch(l){return{state:\"parsererror\",error:g?l:\"No conversion from \"+i+\" to \"+f}}}return{state:\"success\",data:b}}function H(){return setTimeout(function(){Bc=b}),Bc=fb.now()}function I(a,b,c){for(var d,e=(Hc[b]||[]).concat(Hc[\"*\"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function J(a,b,c){var d,e,f=0,g=Gc.length,h=fb.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Bc||H(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:fb.extend({},b),opts:fb.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Bc||H(),duration:c.duration,tweens:[],createTween:function(b,c){var d=fb.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(K(k,j.opts.specialEasing);g>f;f++)if(d=Gc[f].call(j,a,k,j.opts))return d;return fb.map(k,I,j),fb.isFunction(j.opts.start)&&j.opts.start.call(a,j),fb.fx.timer(fb.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function K(a,b){var c,d,e,f,g;for(c in a)if(d=fb.camelCase(c),e=b[d],f=a[c],fb.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=fb.cssHooks[d],g&&\"expand\"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function L(a,c,d){var e,f,g,h,i,j,k=this,l={},m=a.style,n=a.nodeType&&t(a),o=qb.get(a,\"fxshow\");d.queue||(i=fb._queueHooks(a,\"fx\"),null==i.unqueued&&(i.unqueued=0,j=i.empty.fire,i.empty.fire=function(){i.unqueued||j()}),i.unqueued++,k.always(function(){k.always(function(){i.unqueued--,fb.queue(a,\"fx\").length||i.empty.fire()})})),1===a.nodeType&&(\"height\"in c||\"width\"in c)&&(d.overflow=[m.overflow,m.overflowX,m.overflowY],\"inline\"===fb.css(a,\"display\")&&\"none\"===fb.css(a,\"float\")&&(m.display=\"inline-block\")),d.overflow&&(m.overflow=\"hidden\",k.always(function(){m.overflow=d.overflow[0],m.overflowX=d.overflow[1],m.overflowY=d.overflow[2]}));for(e in c)if(f=c[e],Dc.exec(f)){if(delete c[e],g=g||\"toggle\"===f,f===(n?\"hide\":\"show\")){if(\"show\"!==f||!o||o[e]===b)continue;n=!0}l[e]=o&&o[e]||fb.style(a,e)}if(!fb.isEmptyObject(l)){o?\"hidden\"in o&&(n=o.hidden):o=qb.access(a,\"fxshow\",{}),g&&(o.hidden=!n),n?fb(a).show():k.done(function(){fb(a).hide()}),k.done(function(){var b;qb.remove(a,\"fxshow\");for(b in l)fb.style(a,b,l[b])});for(e in l)h=I(n?o[e]:0,e,k),e in o||(o[e]=h.start,n&&(h.end=h.start,h.start=\"width\"===e||\"height\"===e?1:0))}}function M(a,b,c,d,e){return new M.prototype.init(a,b,c,d,e)}function N(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=$b[e],d[\"margin\"+c]=d[\"padding\"+c]=a;return b&&(d.opacity=d.width=a),d}function O(a){return fb.isWindow(a)?a:9===a.nodeType&&a.defaultView}var P,Q,R=typeof b,S=a.location,T=a.document,U=T.documentElement,V=a.jQuery,W=a.$,X={},Y=[],Z=\"2.0.3\",$=Y.concat,_=Y.push,ab=Y.slice,bb=Y.indexOf,cb=X.toString,db=X.hasOwnProperty,eb=Z.trim,fb=function(a,b){return new fb.fn.init(a,b,P)},gb=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,hb=/\\S+/g,ib=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,jb=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,kb=/^-ms-/,lb=/-([\\da-z])/gi,mb=function(a,b){return b.toUpperCase()},nb=function(){T.removeEventListener(\"DOMContentLoaded\",nb,!1),a.removeEventListener(\"load\",nb,!1),fb.ready()};fb.fn=fb.prototype={jquery:Z,constructor:fb,init:function(a,c,d){var e,f;if(!a)return this;if(\"string\"==typeof a){if(e=\"<\"===a.charAt(0)&&\">\"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:ib.exec(a),!e||!e[1]&&c)return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a);if(e[1]){if(c=c instanceof fb?c[0]:c,fb.merge(this,fb.parseHTML(e[1],c&&c.nodeType?c.ownerDocument||c:T,!0)),jb.test(e[1])&&fb.isPlainObject(c))for(e in c)fb.isFunction(this[e])?this[e](c[e]):this.attr(e,c[e]);return this}return f=T.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=T,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):fb.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),fb.makeArray(a,this))},selector:\"\",length:0,toArray:function(){return ab.call(this)},get:function(a){return null==a?this.toArray():0>a?this[this.length+a]:this[a]},pushStack:function(a){var b=fb.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return fb.each(this,a,b)},ready:function(a){return fb.ready.promise().done(a),this},slice:function(){return this.pushStack(ab.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},map:function(a){return this.pushStack(fb.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:_,sort:[].sort,splice:[].splice},fb.fn.init.prototype=fb.fn,fb.extend=fb.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for(\"boolean\"==typeof h&&(k=h,h=arguments[1]||{},i=2),\"object\"==typeof h||fb.isFunction(h)||(h={}),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(c in a)d=h[c],e=a[c],h!==e&&(k&&e&&(fb.isPlainObject(e)||(f=fb.isArray(e)))?(f?(f=!1,g=d&&fb.isArray(d)?d:[]):g=d&&fb.isPlainObject(d)?d:{},h[c]=fb.extend(k,g,e)):e!==b&&(h[c]=e));return h},fb.extend({expando:\"jQuery\"+(Z+Math.random()).replace(/\\D/g,\"\"),noConflict:function(b){return a.$===fb&&(a.$=W),b&&a.jQuery===fb&&(a.jQuery=V),fb},isReady:!1,readyWait:1,holdReady:function(a){a?fb.readyWait++:fb.ready(!0)},ready:function(a){(a===!0?--fb.readyWait:fb.isReady)||(fb.isReady=!0,a!==!0&&--fb.readyWait>0||(Q.resolveWith(T,[fb]),fb.fn.trigger&&fb(T).trigger(\"ready\").off(\"ready\")))},isFunction:function(a){return\"function\"===fb.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?X[cb.call(a)]||\"object\":typeof a},isPlainObject:function(a){if(\"object\"!==fb.type(a)||a.nodeType||fb.isWindow(a))return!1;try{if(a.constructor&&!db.call(a.constructor.prototype,\"isPrototypeOf\"))return!1}catch(b){return!1}return!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw Error(a)},parseHTML:function(a,b,c){if(!a||\"string\"!=typeof a)return null;\"boolean\"==typeof b&&(c=b,b=!1),b=b||T;var d=jb.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=fb.buildFragment([a],b,e),e&&fb(e).remove(),fb.merge([],d.childNodes))},parseJSON:JSON.parse,parseXML:function(a){var c,d;if(!a||\"string\"!=typeof a)return null;try{d=new DOMParser,c=d.parseFromString(a,\"text/xml\")}catch(e){c=b}return(!c||c.getElementsByTagName(\"parsererror\").length)&&fb.error(\"Invalid XML: \"+a),c},noop:function(){},globalEval:function(a){var b,c=eval;a=fb.trim(a),a&&(1===a.indexOf(\"use strict\")?(b=T.createElement(\"script\"),b.text=a,T.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(kb,\"ms-\").replace(lb,mb)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?\"\":eb.call(a)},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?fb.merge(d,\"string\"==typeof a?[a]:a):_.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:bb.call(b,a,c)},merge:function(a,c){var d=c.length,e=a.length,f=0;if(\"number\"==typeof d)for(;d>f;f++)a[e++]=c[f];else for(;c[f]!==b;)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;for(c=!!c;g>f;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&(i[i.length]=e);else for(f in a)e=b(a[f],f,d),null!=e&&(i[i.length]=e);return $.apply([],i)},guid:1,proxy:function(a,c){var d,e,f;return\"string\"==typeof c&&(d=a[c],c=a,a=d),fb.isFunction(a)?(e=ab.call(arguments,2),f=function(){return a.apply(c||this,e.concat(ab.call(arguments)))},f.guid=a.guid=a.guid||fb.guid++,f):b},access:function(a,c,d,e,f,g,h){var i=0,j=a.length,k=null==d;if(\"object\"===fb.type(d)){f=!0;for(i in d)fb.access(a,c,i,d[i],!0,g,h)}else if(e!==b&&(f=!0,fb.isFunction(e)||(h=!0),k&&(h?(c.call(a,e),c=null):(k=c,c=function(a,b,c){return k.call(fb(a),c)})),c))for(;j>i;i++)c(a[i],d,h?e:e.call(a[i],i,c(a[i],d)));return f?a:k?c.call(a):j?c(a[0],d):g},now:Date.now,swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e}}),fb.ready.promise=function(b){return Q||(Q=fb.Deferred(),\"complete\"===T.readyState?setTimeout(fb.ready):(T.addEventListener(\"DOMContentLoaded\",nb,!1),a.addEventListener(\"load\",nb,!1))),Q.promise(b)},fb.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(a,b){X[\"[object \"+b+\"]\"]=b.toLowerCase()}),P=fb(T),function(a,b){function c(a,b,c,d){var e,f,g,h,i,j,k,l,o,p;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],!a||\"string\"!=typeof a)return c;if(1!==(h=b.nodeType)&&9!==h)return[];if(I&&!d){if(e=tb.exec(a))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return ab.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&x.getElementsByClassName&&b.getElementsByClassName)return ab.apply(c,b.getElementsByClassName(g)),c}if(x.qsa&&(!J||!J.test(a))){if(l=k=N,o=b,p=9===h&&a,1===h&&\"object\"!==b.nodeName.toLowerCase()){for(j=m(a),(k=b.getAttribute(\"id\"))?l=k.replace(wb,\"\\\\$&\"):b.setAttribute(\"id\",l),l=\"[id='\"+l+\"'] \",i=j.length;i--;)j[i]=l+n(j[i]);o=nb.test(a)&&b.parentNode||b,p=j.join(\",\")}if(p)try{return ab.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{k||b.removeAttribute(\"id\")}}}return v(a.replace(kb,\"$1\"),b,c,d)}function d(){function a(c,d){return b.push(c+=\" \")>z.cacheLength&&delete a[b.shift()],a[c]=d}var b=[];return a}function e(a){return a[N]=!0,a}function f(a){var b=G.createElement(\"div\");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function g(a,b){for(var c=a.split(\"|\"),d=a.length;d--;)z.attrHandle[c[d]]=b}function h(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||X)-(~a.sourceIndex||X);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function i(a){return function(b){var c=b.nodeName.toLowerCase();return\"input\"===c&&b.type===a}}function j(a){return function(b){var c=b.nodeName.toLowerCase();return(\"input\"===c||\"button\"===c)&&b.type===a}}function k(a){return e(function(b){return b=+b,e(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function l(){}function m(a,b){var d,e,f,g,h,i,j,k=S[a+\" \"];if(k)return b?0:k.slice(0);for(h=a,i=[],j=z.preFilter;h;){(!d||(e=lb.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=mb.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(kb,\" \")}),h=h.slice(d.length));for(g in z.filter)!(e=rb[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return b?h.length:h?c.error(a):S(a,i).slice(0)}function n(a){for(var b=0,c=a.length,d=\"\";c>b;b++)d+=a[b].value;return d}function o(a,b,c){var d=b.dir,e=c&&\"parentNode\"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=P+\" \"+f;if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e)if(j=b[N]||(b[N]={}),(i=j[d])&&i[0]===k){if((h=i[1])===!0||h===y)return h===!0}else if(i=j[d]=[k],i[1]=a(b,c,g)||y,i[1]===!0)return!0}}function p(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function r(a,b,c,d,f,g){return d&&!d[N]&&(d=r(d)),f&&!f[N]&&(f=r(f,g)),e(function(e,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=e||u(b||\"*\",h.nodeType?[h]:h,[]),r=!a||!e&&b?p:q(p,m,a,h,i),s=c?f||(e?a:o||d)?[]:g:r;if(c&&c(r,s,h,i),d)for(j=q(s,n),d(j,[],h,i),k=j.length;k--;)(l=j[k])&&(s[n[k]]=!(r[n[k]]=l));if(e){if(f||a){if(f){for(j=[],k=s.length;k--;)(l=s[k])&&j.push(r[k]=l);f(null,s=[],j,i)}for(k=s.length;k--;)(l=s[k])&&(j=f?cb.call(e,l):m[k])>-1&&(e[j]=!(g[j]=l))}}else s=q(s===g?s.splice(o,s.length):s),f?f(null,g,s,i):ab.apply(g,s)})}function s(a){for(var b,c,d,e=a.length,f=z.relative[a[0].type],g=f||z.relative[\" \"],h=f?1:0,i=o(function(a){return a===b},g,!0),j=o(function(a){return cb.call(b,a)>-1},g,!0),k=[function(a,c,d){return!f&&(d||c!==D)||((b=c).nodeType?i(a,c,d):j(a,c,d))}];e>h;h++)if(c=z.relative[a[h].type])k=[o(p(k),c)];else{if(c=z.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!z.relative[a[d].type];d++);return r(h>1&&p(k),h>1&&n(a.slice(0,h-1).concat({value:\" \"===a[h-2].type?\"*\":\"\"})).replace(kb,\"$1\"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&n(a))}k.push(c)}return p(k)}function t(a,b){var d=0,f=b.length>0,g=a.length>0,h=function(e,h,i,j,k){var l,m,n,o=[],p=0,r=\"0\",s=e&&[],t=null!=k,u=D,v=e||g&&z.find.TAG(\"*\",k&&h.parentNode||h),w=P+=null==u?1:Math.random()||.1;for(t&&(D=h!==G&&h,y=d);null!=(l=v[r]);r++){if(g&&l){for(m=0;n=a[m++];)if(n(l,h,i)){j.push(l);break}t&&(P=w,y=++d)}f&&((l=!n&&l)&&p--,e&&s.push(l))}if(p+=r,f&&r!==p){for(m=0;n=b[m++];)n(s,o,h,i);if(e){if(p>0)for(;r--;)s[r]||o[r]||(o[r]=$.call(j));o=q(o)}ab.apply(j,o),t&&!e&&o.length>0&&p+b.length>1&&c.uniqueSort(j)}return t&&(P=w,D=u),s};return f?e(h):h}function u(a,b,d){for(var e=0,f=b.length;f>e;e++)c(a,b[e],d);return d}function v(a,b,c,d){var e,f,g,h,i,j=m(a);if(!d&&1===j.length){if(f=j[0]=j[0].slice(0),f.length>2&&\"ID\"===(g=f[0]).type&&x.getById&&9===b.nodeType&&I&&z.relative[f[1].type]){if(b=(z.find.ID(g.matches[0].replace(xb,yb),b)||[])[0],!b)return c;a=a.slice(f.shift().value.length)}for(e=rb.needsContext.test(a)?0:f.length;e--&&(g=f[e],!z.relative[h=g.type]);)if((i=z.find[h])&&(d=i(g.matches[0].replace(xb,yb),nb.test(f[0].type)&&b.parentNode||b))){if(f.splice(e,1),a=d.length&&n(f),!a)return ab.apply(c,d),c;break}}return C(a,j)(d,b,!I,c,nb.test(a)),c}var w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N=\"sizzle\"+-new Date,O=a.document,P=0,Q=0,R=d(),S=d(),T=d(),U=!1,V=function(a,b){return a===b?(U=!0,0):0},W=typeof b,X=1<<31,Y={}.hasOwnProperty,Z=[],$=Z.pop,_=Z.push,ab=Z.push,bb=Z.slice,cb=Z.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},db=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",eb=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",gb=\"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",hb=gb.replace(\"w\",\"w#\"),ib=\"\\\\[\"+eb+\"*(\"+gb+\")\"+eb+\"*(?:([*^$|!~]?=)\"+eb+\"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\"+hb+\")|)|)\"+eb+\"*\\\\]\",jb=\":(\"+gb+\")(?:\\\\(((['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+ib.replace(3,8)+\")*)|.*)\\\\)|)\",kb=RegExp(\"^\"+eb+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+eb+\"+$\",\"g\"),lb=RegExp(\"^\"+eb+\"*,\"+eb+\"*\"),mb=RegExp(\"^\"+eb+\"*([>+~]|\"+eb+\")\"+eb+\"*\"),nb=RegExp(eb+\"*[+~]\"),ob=RegExp(\"=\"+eb+\"*([^\\\\]'\\\"]*)\"+eb+\"*\\\\]\",\"g\"),pb=RegExp(jb),qb=RegExp(\"^\"+hb+\"$\"),rb={ID:RegExp(\"^#(\"+gb+\")\"),CLASS:RegExp(\"^\\\\.(\"+gb+\")\"),TAG:RegExp(\"^(\"+gb.replace(\"w\",\"w*\")+\")\"),ATTR:RegExp(\"^\"+ib),PSEUDO:RegExp(\"^\"+jb),CHILD:RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+eb+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+eb+\"*(?:([+-]|)\"+eb+\"*(\\\\d+)|))\"+eb+\"*\\\\)|)\",\"i\"),bool:RegExp(\"^(?:\"+db+\")$\",\"i\"),needsContext:RegExp(\"^\"+eb+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+eb+\"*((?:-\\\\d)?\\\\d*)\"+eb+\"*\\\\)|)(?=[^-]|$)\",\"i\")},sb=/^[^{]+\\{\\s*\\[native \\w/,tb=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ub=/^(?:input|select|textarea|button)$/i,vb=/^h\\d$/i,wb=/'|\\\\/g,xb=RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+eb+\"?|(\"+eb+\")|.)\",\"ig\"),yb=function(a,b,c){var d=\"0x\"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(55296|d>>10,56320|1023&d)};try{ab.apply(Z=bb.call(O.childNodes),O.childNodes),Z[O.childNodes.length].nodeType}catch(zb){ab={apply:Z.length?function(a,b){_.apply(a,bb.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}B=c.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?\"HTML\"!==b.nodeName:!1},x=c.support={},F=c.setDocument=function(a){var c=a?a.ownerDocument||a:O,d=c.defaultView;return c!==G&&9===c.nodeType&&c.documentElement?(G=c,H=c.documentElement,I=!B(c),d&&d.attachEvent&&d!==d.top&&d.attachEvent(\"onbeforeunload\",function(){F()}),x.attributes=f(function(a){return a.className=\"i\",!a.getAttribute(\"className\")}),x.getElementsByTagName=f(function(a){return a.appendChild(c.createComment(\"\")),!a.getElementsByTagName(\"*\").length}),x.getElementsByClassName=f(function(a){return a.innerHTML=\"<div class='a'></div><div class='a i'></div>\",a.firstChild.className=\"i\",2===a.getElementsByClassName(\"i\").length}),x.getById=f(function(a){return H.appendChild(a).id=N,!c.getElementsByName||!c.getElementsByName(N).length}),x.getById?(z.find.ID=function(a,b){if(typeof b.getElementById!==W&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},z.filter.ID=function(a){var b=a.replace(xb,yb);return function(a){return a.getAttribute(\"id\")===b}}):(delete z.find.ID,z.filter.ID=function(a){var b=a.replace(xb,yb);return function(a){var c=typeof a.getAttributeNode!==W&&a.getAttributeNode(\"id\");return c&&c.value===b}}),z.find.TAG=x.getElementsByTagName?function(a,c){return typeof c.getElementsByTagName!==W?c.getElementsByTagName(a):b}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(\"*\"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},z.find.CLASS=x.getElementsByClassName&&function(a,c){return typeof c.getElementsByClassName!==W&&I?c.getElementsByClassName(a):b},K=[],J=[],(x.qsa=sb.test(c.querySelectorAll))&&(f(function(a){a.innerHTML=\"<select><option selected=''></option></select>\",a.querySelectorAll(\"[selected]\").length||J.push(\"\\\\[\"+eb+\"*(?:value|\"+db+\")\"),a.querySelectorAll(\":checked\").length||J.push(\":checked\")}),f(function(a){var b=c.createElement(\"input\");b.setAttribute(\"type\",\"hidden\"),a.appendChild(b).setAttribute(\"t\",\"\"),a.querySelectorAll(\"[t^='']\").length&&J.push(\"[*^$]=\"+eb+\"*(?:''|\\\"\\\")\"),a.querySelectorAll(\":enabled\").length||J.push(\":enabled\",\":disabled\"),a.querySelectorAll(\"*,:x\"),J.push(\",.*:\")})),(x.matchesSelector=sb.test(L=H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&f(function(a){x.disconnectedMatch=L.call(a,\"div\"),L.call(a,\"[s!='']:x\"),K.push(\"!=\",jb)}),J=J.length&&RegExp(J.join(\"|\")),K=K.length&&RegExp(K.join(\"|\")),M=sb.test(H.contains)||H.compareDocumentPosition?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},V=H.compareDocumentPosition?function(a,b){if(a===b)return U=!0,0;var d=b.compareDocumentPosition&&a.compareDocumentPosition&&a.compareDocumentPosition(b);return d?1&d||!x.sortDetached&&b.compareDocumentPosition(a)===d?a===c||M(O,a)?-1:b===c||M(O,b)?1:E?cb.call(E,a)-cb.call(E,b):0:4&d?-1:1:a.compareDocumentPosition?-1:1}:function(a,b){var d,e=0,f=a.parentNode,g=b.parentNode,i=[a],j=[b];if(a===b)return U=!0,0;if(!f||!g)return a===c?-1:b===c?1:f?-1:g?1:E?cb.call(E,a)-cb.call(E,b):0;if(f===g)return h(a,b);for(d=a;d=d.parentNode;)i.unshift(d);for(d=b;d=d.parentNode;)j.unshift(d);for(;i[e]===j[e];)e++;return e?h(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},c):G},c.matches=function(a,b){return c(a,null,null,b)},c.matchesSelector=function(a,b){if((a.ownerDocument||a)!==G&&F(a),b=b.replace(ob,\"='$1']\"),!(!x.matchesSelector||!I||K&&K.test(b)||J&&J.test(b)))try{var d=L.call(a,b);if(d||x.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return c(b,G,null,[a]).length>0},c.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},c.attr=function(a,c){(a.ownerDocument||a)!==G&&F(a);var d=z.attrHandle[c.toLowerCase()],e=d&&Y.call(z.attrHandle,c.toLowerCase())?d(a,c,!I):b;return e===b?x.attributes||!I?a.getAttribute(c):(e=a.getAttributeNode(c))&&e.specified?e.value:null:e},c.error=function(a){throw Error(\"Syntax error, unrecognized expression: \"+a)},c.uniqueSort=function(a){var b,c=[],d=0,e=0;if(U=!x.detectDuplicates,E=!x.sortStable&&a.slice(0),a.sort(V),U){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return a},A=c.getText=function(a){var b,c=\"\",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if(\"string\"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=A(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d];d++)c+=A(b);return c},z=c.selectors={cacheLength:50,createPseudo:e,match:rb,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(xb,yb),a[3]=(a[4]||a[5]||\"\").replace(xb,yb),\"~=\"===a[2]&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),\"nth\"===a[1].slice(0,3)?(a[3]||c.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(\"even\"===a[3]||\"odd\"===a[3])),a[5]=+(a[7]+a[8]||\"odd\"===a[3])):a[3]&&c.error(a[0]),a},PSEUDO:function(a){var c,d=!a[5]&&a[2];return rb.CHILD.test(a[0])?null:(a[3]&&a[4]!==b?a[2]=a[4]:d&&pb.test(d)&&(c=m(d,!0))&&(c=d.indexOf(\")\",d.length-c)-d.length)&&(a[0]=a[0].slice(0,c),a[2]=d.slice(0,c)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(xb,yb).toLowerCase();return\"*\"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+\" \"];return b||(b=RegExp(\"(^|\"+eb+\")\"+a+\"(\"+eb+\"|$)\"))&&R(a,function(a){return b.test(\"string\"==typeof a.className&&a.className||typeof a.getAttribute!==W&&a.getAttribute(\"class\")||\"\")})},ATTR:function(a,b,d){return function(e){var f=c.attr(e,a);return null==f?\"!=\"===b:b?(f+=\"\",\"=\"===b?f===d:\"!=\"===b?f!==d:\"^=\"===b?d&&0===f.indexOf(d):\"*=\"===b?d&&f.indexOf(d)>-1:\"$=\"===b?d&&f.slice(-d.length)===d:\"~=\"===b?(\" \"+f+\" \").indexOf(d)>-1:\"|=\"===b?f===d||f.slice(0,d.length+1)===d+\"-\":!1):!0}},CHILD:function(a,b,c,d,e){var f=\"nth\"!==a.slice(0,3),g=\"last\"!==a.slice(-4),h=\"of-type\"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?\"nextSibling\":\"previousSibling\",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p=\"only\"===a&&!o&&\"nextSibling\"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||0===m%d&&m/d>=0}}},PSEUDO:function(a,b){var d,f=z.pseudos[a]||z.setFilters[a.toLowerCase()]||c.error(\"unsupported pseudo: \"+a);return f[N]?f(b):f.length>1?(d=[a,a,\"\",b],z.setFilters.hasOwnProperty(a.toLowerCase())?e(function(a,c){for(var d,e=f(a,b),g=e.length;g--;)d=cb.call(a,e[g]),a[d]=!(c[d]=e[g])}):function(a){return f(a,0,d)}):f}},pseudos:{not:e(function(a){var b=[],c=[],d=C(a.replace(kb,\"$1\"));return d[N]?e(function(a,b,c,e){for(var f,g=d(a,null,e,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:e(function(a){return function(b){return c(a,b).length>0}}),contains:e(function(a){return function(b){return(b.textContent||b.innerText||A(b)).indexOf(a)>-1}}),lang:e(function(a){return qb.test(a||\"\")||c.error(\"unsupported lang: \"+a),a=a.replace(xb,yb).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute(\"xml:lang\")||b.getAttribute(\"lang\"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+\"-\");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&!!a.checked||\"option\"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeName>\"@\"||3===a.nodeType||4===a.nodeType)return!1;return!0},parent:function(a){return!z.pseudos.empty(a)},header:function(a){return vb.test(a.nodeName)},input:function(a){return ub.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&\"button\"===a.type||\"button\"===b},text:function(a){var b;return\"input\"===a.nodeName.toLowerCase()&&\"text\"===a.type&&(null==(b=a.getAttribute(\"type\"))||b.toLowerCase()===a.type)},first:k(function(){return[0]}),last:k(function(a,b){return[b-1]}),eq:k(function(a,b,c){return[0>c?c+b:c]}),even:k(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:k(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:k(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:k(function(a,b,c){for(var d=0>c?c+b:c;b>++d;)a.push(d);return a})}},z.pseudos.nth=z.pseudos.eq;for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})z.pseudos[w]=i(w);for(w in{submit:!0,reset:!0})z.pseudos[w]=j(w);\nl.prototype=z.filters=z.pseudos,z.setFilters=new l,C=c.compile=function(a,b){var c,d=[],e=[],f=T[a+\" \"];if(!f){for(b||(b=m(a)),c=b.length;c--;)f=s(b[c]),f[N]?d.push(f):e.push(f);f=T(a,t(e,d))}return f},x.sortStable=N.split(\"\").sort(V).join(\"\")===N,x.detectDuplicates=U,F(),x.sortDetached=f(function(a){return 1&a.compareDocumentPosition(G.createElement(\"div\"))}),f(function(a){return a.innerHTML=\"<a href='#'></a>\",\"#\"===a.firstChild.getAttribute(\"href\")})||g(\"type|href|height|width\",function(a,c,d){return d?b:a.getAttribute(c,\"type\"===c.toLowerCase()?1:2)}),x.attributes&&f(function(a){return a.innerHTML=\"<input/>\",a.firstChild.setAttribute(\"value\",\"\"),\"\"===a.firstChild.getAttribute(\"value\")})||g(\"value\",function(a,c,d){return d||\"input\"!==a.nodeName.toLowerCase()?b:a.defaultValue}),f(function(a){return null==a.getAttribute(\"disabled\")})||g(db,function(a,c,d){var e;return d?b:(e=a.getAttributeNode(c))&&e.specified?e.value:a[c]===!0?c.toLowerCase():null}),fb.find=c,fb.expr=c.selectors,fb.expr[\":\"]=fb.expr.pseudos,fb.unique=c.uniqueSort,fb.text=c.getText,fb.isXMLDoc=c.isXML,fb.contains=c.contains}(a);var ob={};fb.Callbacks=function(a){a=\"string\"==typeof a?ob[a]||d(a):fb.extend({},a);var c,e,f,g,h,i,j=[],k=!a.once&&[],l=function(b){for(c=a.memory&&b,e=!0,i=g||0,g=0,h=j.length,f=!0;j&&h>i;i++)if(j[i].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}f=!1,j&&(k?k.length&&l(k.shift()):c?j=[]:m.disable())},m={add:function(){if(j){var b=j.length;!function d(b){fb.each(b,function(b,c){var e=fb.type(c);\"function\"===e?a.unique&&m.has(c)||j.push(c):c&&c.length&&\"string\"!==e&&d(c)})}(arguments),f?h=j.length:c&&(g=b,l(c))}return this},remove:function(){return j&&fb.each(arguments,function(a,b){for(var c;(c=fb.inArray(b,j,c))>-1;)j.splice(c,1),f&&(h>=c&&h--,i>=c&&i--)}),this},has:function(a){return a?fb.inArray(a,j)>-1:!(!j||!j.length)},empty:function(){return j=[],h=0,this},disable:function(){return j=k=c=b,this},disabled:function(){return!j},lock:function(){return k=b,c||m.disable(),this},locked:function(){return!k},fireWith:function(a,b){return!j||e&&!k||(b=b||[],b=[a,b.slice?b.slice():b],f?k.push(b):l(b)),this},fire:function(){return m.fireWith(this,arguments),this},fired:function(){return!!e}};return m},fb.extend({Deferred:function(a){var b=[[\"resolve\",\"done\",fb.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",fb.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",fb.Callbacks(\"memory\")]],c=\"pending\",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return fb.Deferred(function(c){fb.each(b,function(b,f){var g=f[0],h=fb.isFunction(a[b])&&a[b];e[f[1]](function(){var a=h&&h.apply(this,arguments);a&&fb.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g+\"With\"](this===d?c.promise():this,h?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?fb.extend(a,d):d}},e={};return d.pipe=d.then,fb.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+\"With\"](this===e?d:this,arguments),this},e[f[0]+\"With\"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=ab.call(arguments),g=f.length,h=1!==g||a&&fb.isFunction(a.promise)?g:0,i=1===h?a:fb.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?ab.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=Array(g),c=Array(g),d=Array(g);g>e;e++)f[e]&&fb.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}}),fb.support=function(b){var c=T.createElement(\"input\"),d=T.createDocumentFragment(),e=T.createElement(\"div\"),f=T.createElement(\"select\"),g=f.appendChild(T.createElement(\"option\"));return c.type?(c.type=\"checkbox\",b.checkOn=\"\"!==c.value,b.optSelected=g.selected,b.reliableMarginRight=!0,b.boxSizingReliable=!0,b.pixelPosition=!1,c.checked=!0,b.noCloneChecked=c.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled,c=T.createElement(\"input\"),c.value=\"t\",c.type=\"radio\",b.radioValue=\"t\"===c.value,c.setAttribute(\"checked\",\"t\"),c.setAttribute(\"name\",\"t\"),d.appendChild(c),b.checkClone=d.cloneNode(!0).cloneNode(!0).lastChild.checked,b.focusinBubbles=\"onfocusin\"in a,e.style.backgroundClip=\"content-box\",e.cloneNode(!0).style.backgroundClip=\"\",b.clearCloneStyle=\"content-box\"===e.style.backgroundClip,fb(function(){var c,d,f=\"padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box\",g=T.getElementsByTagName(\"body\")[0];g&&(c=T.createElement(\"div\"),c.style.cssText=\"border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px\",g.appendChild(c).appendChild(e),e.innerHTML=\"\",e.style.cssText=\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%\",fb.swap(g,null!=g.style.zoom?{zoom:1}:{},function(){b.boxSizing=4===e.offsetWidth}),a.getComputedStyle&&(b.pixelPosition=\"1%\"!==(a.getComputedStyle(e,null)||{}).top,b.boxSizingReliable=\"4px\"===(a.getComputedStyle(e,null)||{width:\"4px\"}).width,d=e.appendChild(T.createElement(\"div\")),d.style.cssText=e.style.cssText=f,d.style.marginRight=d.style.width=\"0\",e.style.width=\"1px\",b.reliableMarginRight=!parseFloat((a.getComputedStyle(d,null)||{}).marginRight)),g.removeChild(c))}),b):b}({});var pb,qb,rb=/(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/,sb=/([A-Z])/g;e.uid=1,e.accepts=function(a){return a.nodeType?1===a.nodeType||9===a.nodeType:!0},e.prototype={key:function(a){if(!e.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=e.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,fb.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if(\"string\"==typeof b)f[b]=c;else if(fb.isEmptyObject(f))fb.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,c){var d=this.cache[this.key(a)];return c===b?d:d[c]},access:function(a,c,d){var e;return c===b||c&&\"string\"==typeof c&&d===b?(e=this.get(a,c),e!==b?e:this.get(a,fb.camelCase(c))):(this.set(a,c,d),d!==b?d:c)},remove:function(a,c){var d,e,f,g=this.key(a),h=this.cache[g];if(c===b)this.cache[g]={};else{fb.isArray(c)?e=c.concat(c.map(fb.camelCase)):(f=fb.camelCase(c),c in h?e=[c,f]:(e=f,e=e in h?[e]:e.match(hb)||[])),d=e.length;for(;d--;)delete h[e[d]]}},hasData:function(a){return!fb.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}},pb=new e,qb=new e,fb.extend({acceptData:e.accepts,hasData:function(a){return pb.hasData(a)||qb.hasData(a)},data:function(a,b,c){return pb.access(a,b,c)},removeData:function(a,b){pb.remove(a,b)},_data:function(a,b,c){return qb.access(a,b,c)},_removeData:function(a,b){qb.remove(a,b)}}),fb.fn.extend({data:function(a,c){var d,e,g=this[0],h=0,i=null;if(a===b){if(this.length&&(i=pb.get(g),1===g.nodeType&&!qb.get(g,\"hasDataAttrs\"))){for(d=g.attributes;d.length>h;h++)e=d[h].name,0===e.indexOf(\"data-\")&&(e=fb.camelCase(e.slice(5)),f(g,e,i[e]));qb.set(g,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof a?this.each(function(){pb.set(this,a)}):fb.access(this,function(c){var d,e=fb.camelCase(a);if(g&&c===b){if(d=pb.get(g,a),d!==b)return d;if(d=pb.get(g,e),d!==b)return d;if(d=f(g,e,b),d!==b)return d}else this.each(function(){var d=pb.get(this,e);pb.set(this,e,c),-1!==a.indexOf(\"-\")&&d!==b&&pb.set(this,a,c)})},null,c,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){pb.remove(this,a)})}}),fb.extend({queue:function(a,c,d){var e;return a?(c=(c||\"fx\")+\"queue\",e=qb.get(a,c),d&&(!e||fb.isArray(d)?e=qb.access(a,c,fb.makeArray(d)):e.push(d)),e||[]):b},dequeue:function(a,b){b=b||\"fx\";var c=fb.queue(a,b),d=c.length,e=c.shift(),f=fb._queueHooks(a,b),g=function(){fb.dequeue(a,b)};\"inprogress\"===e&&(e=c.shift(),d--),e&&(\"fx\"===b&&c.unshift(\"inprogress\"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return qb.get(a,c)||qb.access(a,c,{empty:fb.Callbacks(\"once memory\").add(function(){qb.remove(a,[b+\"queue\",c])})})}}),fb.fn.extend({queue:function(a,c){var d=2;return\"string\"!=typeof a&&(c=a,a=\"fx\",d--),d>arguments.length?fb.queue(this[0],a):c===b?this:this.each(function(){var b=fb.queue(this,a,c);fb._queueHooks(this,a),\"fx\"===a&&\"inprogress\"!==b[0]&&fb.dequeue(this,a)})},dequeue:function(a){return this.each(function(){fb.dequeue(this,a)})},delay:function(a,b){return a=fb.fx?fb.fx.speeds[a]||a:a,b=b||\"fx\",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||\"fx\",[])},promise:function(a,c){var d,e=1,f=fb.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};for(\"string\"!=typeof a&&(c=a,a=b),a=a||\"fx\";h--;)d=qb.get(g[h],a+\"queueHooks\"),d&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var tb,ub,vb=/[\\t\\r\\n\\f]/g,wb=/\\r/g,xb=/^(?:input|select|textarea|button)$/i;fb.fn.extend({attr:function(a,b){return fb.access(this,fb.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){fb.removeAttr(this,a)})},prop:function(a,b){return fb.access(this,fb.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[fb.propFix[a]||a]})},addClass:function(a){var b,c,d,e,f,g=0,h=this.length,i=\"string\"==typeof a&&a;if(fb.isFunction(a))return this.each(function(b){fb(this).addClass(a.call(this,b,this.className))});if(i)for(b=(a||\"\").match(hb)||[];h>g;g++)if(c=this[g],d=1===c.nodeType&&(c.className?(\" \"+c.className+\" \").replace(vb,\" \"):\" \")){for(f=0;e=b[f++];)0>d.indexOf(\" \"+e+\" \")&&(d+=e+\" \");c.className=fb.trim(d)}return this},removeClass:function(a){var b,c,d,e,f,g=0,h=this.length,i=0===arguments.length||\"string\"==typeof a&&a;if(fb.isFunction(a))return this.each(function(b){fb(this).removeClass(a.call(this,b,this.className))});if(i)for(b=(a||\"\").match(hb)||[];h>g;g++)if(c=this[g],d=1===c.nodeType&&(c.className?(\" \"+c.className+\" \").replace(vb,\" \"):\"\")){for(f=0;e=b[f++];)for(;d.indexOf(\" \"+e+\" \")>=0;)d=d.replace(\" \"+e+\" \",\" \");c.className=a?fb.trim(d):\"\"}return this},toggleClass:function(a,b){var c=typeof a;return\"boolean\"==typeof b&&\"string\"===c?b?this.addClass(a):this.removeClass(a):this.each(fb.isFunction(a)?function(c){fb(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if(\"string\"===c)for(var b,d=0,e=fb(this),f=a.match(hb)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===R||\"boolean\"===c)&&(this.className&&qb.set(this,\"__className__\",this.className),this.className=this.className||a===!1?\"\":qb.get(this,\"__className__\")||\"\")})},hasClass:function(a){for(var b=\" \"+a+\" \",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(\" \"+this[c].className+\" \").replace(vb,\" \").indexOf(b)>=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];return arguments.length?(e=fb.isFunction(a),this.each(function(d){var f;1===this.nodeType&&(f=e?a.call(this,d,fb(this).val()):a,null==f?f=\"\":\"number\"==typeof f?f+=\"\":fb.isArray(f)&&(f=fb.map(f,function(a){return null==a?\"\":a+\"\"})),c=fb.valHooks[this.type]||fb.valHooks[this.nodeName.toLowerCase()],c&&\"set\"in c&&c.set(this,f,\"value\")!==b||(this.value=f))})):f?(c=fb.valHooks[f.type]||fb.valHooks[f.nodeName.toLowerCase()],c&&\"get\"in c&&(d=c.get(f,\"value\"))!==b?d:(d=f.value,\"string\"==typeof d?d.replace(wb,\"\"):null==d?\"\":d)):void 0}}),fb.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f=\"select-one\"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(fb.support.optDisabled?c.disabled:null!==c.getAttribute(\"disabled\"))||c.parentNode.disabled&&fb.nodeName(c.parentNode,\"optgroup\"))){if(b=fb(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=fb.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=fb.inArray(fb(d).val(),f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}},attr:function(a,c,d){var e,f,g=a.nodeType;return a&&3!==g&&8!==g&&2!==g?typeof a.getAttribute===R?fb.prop(a,c,d):(1===g&&fb.isXMLDoc(a)||(c=c.toLowerCase(),e=fb.attrHooks[c]||(fb.expr.match.bool.test(c)?ub:tb)),d===b?e&&\"get\"in e&&null!==(f=e.get(a,c))?f:(f=fb.find.attr(a,c),null==f?b:f):null!==d?e&&\"set\"in e&&(f=e.set(a,d,c))!==b?f:(a.setAttribute(c,d+\"\"),d):(fb.removeAttr(a,c),b)):void 0},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(hb);if(f&&1===a.nodeType)for(;c=f[e++];)d=fb.propFix[c]||c,fb.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!fb.support.radioValue&&\"radio\"===b&&fb.nodeName(a,\"input\")){var c=a.value;return a.setAttribute(\"type\",b),c&&(a.value=c),b}}}},propFix:{\"for\":\"htmlFor\",\"class\":\"className\"},prop:function(a,c,d){var e,f,g,h=a.nodeType;return a&&3!==h&&8!==h&&2!==h?(g=1!==h||!fb.isXMLDoc(a),g&&(c=fb.propFix[c]||c,f=fb.propHooks[c]),d!==b?f&&\"set\"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&\"get\"in f&&null!==(e=f.get(a,c))?e:a[c]):void 0},propHooks:{tabIndex:{get:function(a){return a.hasAttribute(\"tabindex\")||xb.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),ub={set:function(a,b,c){return b===!1?fb.removeAttr(a,c):a.setAttribute(c,c),c}},fb.each(fb.expr.match.bool.source.match(/\\w+/g),function(a,c){var d=fb.expr.attrHandle[c]||fb.find.attr;fb.expr.attrHandle[c]=function(a,c,e){var f=fb.expr.attrHandle[c],g=e?b:(fb.expr.attrHandle[c]=b)!=d(a,c,e)?c.toLowerCase():null;return fb.expr.attrHandle[c]=f,g}}),fb.support.optSelected||(fb.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),fb.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){fb.propFix[this.toLowerCase()]=this}),fb.each([\"radio\",\"checkbox\"],function(){fb.valHooks[this]={set:function(a,c){return fb.isArray(c)?a.checked=fb.inArray(fb(a).val(),c)>=0:b}},fb.support.checkOn||(fb.valHooks[this].get=function(a){return null===a.getAttribute(\"value\")?\"on\":a.value})});var yb=/^key/,zb=/^(?:mouse|contextmenu)|click/,Ab=/^(?:focusinfocus|focusoutblur)$/,Bb=/^([^.]*)(?:\\.(.+)|)$/;fb.event={global:{},add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r=qb.get(a);if(r){for(d.handler&&(g=d,d=g.handler,f=g.selector),d.guid||(d.guid=fb.guid++),(j=r.events)||(j=r.events={}),(h=r.handle)||(h=r.handle=function(a){return typeof fb===R||a&&fb.event.triggered===a.type?b:fb.event.dispatch.apply(h.elem,arguments)},h.elem=a),c=(c||\"\").match(hb)||[\"\"],k=c.length;k--;)i=Bb.exec(c[k])||[],o=q=i[1],p=(i[2]||\"\").split(\".\").sort(),o&&(m=fb.event.special[o]||{},o=(f?m.delegateType:m.bindType)||o,m=fb.event.special[o]||{},l=fb.extend({type:o,origType:q,data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&fb.expr.match.needsContext.test(f),namespace:p.join(\".\")},g),(n=j[o])||(n=j[o]=[],n.delegateCount=0,m.setup&&m.setup.call(a,e,p,h)!==!1||a.addEventListener&&a.addEventListener(o,h,!1)),m.add&&(m.add.call(a,l),l.handler.guid||(l.handler.guid=d.guid)),f?n.splice(n.delegateCount++,0,l):n.push(l),fb.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=qb.hasData(a)&&qb.get(a);if(q&&(i=q.events)){for(b=(b||\"\").match(hb)||[\"\"],j=b.length;j--;)if(h=Bb.exec(b[j])||[],n=p=h[1],o=(h[2]||\"\").split(\".\").sort(),n){for(l=fb.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&RegExp(\"(^|\\\\.)\"+o.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||fb.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)fb.event.remove(a,n+b[j],c,d,!0);fb.isEmptyObject(i)&&(delete q.handle,qb.remove(a,\"events\"))}},trigger:function(c,d,e,f){var g,h,i,j,k,l,m,n=[e||T],o=db.call(c,\"type\")?c.type:c,p=db.call(c,\"namespace\")?c.namespace.split(\".\"):[];if(h=i=e=e||T,3!==e.nodeType&&8!==e.nodeType&&!Ab.test(o+fb.event.triggered)&&(o.indexOf(\".\")>=0&&(p=o.split(\".\"),o=p.shift(),p.sort()),k=0>o.indexOf(\":\")&&\"on\"+o,c=c[fb.expando]?c:new fb.Event(o,\"object\"==typeof c&&c),c.isTrigger=f?2:3,c.namespace=p.join(\".\"),c.namespace_re=c.namespace?RegExp(\"(^|\\\\.)\"+p.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,c.result=b,c.target||(c.target=e),d=null==d?[c]:fb.makeArray(d,[c]),m=fb.event.special[o]||{},f||!m.trigger||m.trigger.apply(e,d)!==!1)){if(!f&&!m.noBubble&&!fb.isWindow(e)){for(j=m.delegateType||o,Ab.test(j+o)||(h=h.parentNode);h;h=h.parentNode)n.push(h),i=h;i===(e.ownerDocument||T)&&n.push(i.defaultView||i.parentWindow||a)}for(g=0;(h=n[g++])&&!c.isPropagationStopped();)c.type=g>1?j:m.bindType||o,l=(qb.get(h,\"events\")||{})[c.type]&&qb.get(h,\"handle\"),l&&l.apply(h,d),l=k&&h[k],l&&fb.acceptData(h)&&l.apply&&l.apply(h,d)===!1&&c.preventDefault();return c.type=o,f||c.isDefaultPrevented()||m._default&&m._default.apply(n.pop(),d)!==!1||!fb.acceptData(e)||k&&fb.isFunction(e[o])&&!fb.isWindow(e)&&(i=e[k],i&&(e[k]=null),fb.event.triggered=o,e[o](),fb.event.triggered=b,i&&(e[k]=i)),c.result}},dispatch:function(a){a=fb.event.fix(a);var c,d,e,f,g,h=[],i=ab.call(arguments),j=(qb.get(this,\"events\")||{})[a.type]||[],k=fb.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){for(h=fb.event.handlers.call(this,a,j),c=0;(f=h[c++])&&!a.isPropagationStopped();)for(a.currentTarget=f.elem,d=0;(g=f.handlers[d++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((fb.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),e!==b&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()));return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,c){var d,e,f,g,h=[],i=c.delegateCount,j=a.target;if(i&&j.nodeType&&(!a.button||\"click\"!==a.type))for(;j!==this;j=j.parentNode||this)if(j.disabled!==!0||\"click\"!==a.type){for(e=[],d=0;i>d;d++)g=c[d],f=g.selector+\" \",e[f]===b&&(e[f]=g.needsContext?fb(f,this).index(j)>=0:fb.find(f,this,null,[j]).length),e[f]&&e.push(g);e.length&&h.push({elem:j,handlers:e})}return c.length>i&&h.push({elem:this,handlers:c.slice(i)}),h},props:\"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\"char charCode key keyCode\".split(\" \"),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:\"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),filter:function(a,c){var d,e,f,g=c.button;return null==a.pageX&&null!=c.clientX&&(d=a.target.ownerDocument||T,e=d.documentElement,f=d.body,a.pageX=c.clientX+(e&&e.scrollLeft||f&&f.scrollLeft||0)-(e&&e.clientLeft||f&&f.clientLeft||0),a.pageY=c.clientY+(e&&e.scrollTop||f&&f.scrollTop||0)-(e&&e.clientTop||f&&f.clientTop||0)),a.which||g===b||(a.which=1&g?1:2&g?3:4&g?2:0),a}},fix:function(a){if(a[fb.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=zb.test(e)?this.mouseHooks:yb.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new fb.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=T),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==i()&&this.focus?(this.focus(),!1):b},delegateType:\"focusin\"},blur:{trigger:function(){return this===i()&&this.blur?(this.blur(),!1):b},delegateType:\"focusout\"},click:{trigger:function(){return\"checkbox\"===this.type&&this.click&&fb.nodeName(this,\"input\")?(this.click(),!1):b},_default:function(a){return fb.nodeName(a.target,\"a\")}},beforeunload:{postDispatch:function(a){a.result!==b&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=fb.extend(new fb.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?fb.event.trigger(e,null,b):fb.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},fb.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},fb.Event=function(a,c){return this instanceof fb.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.getPreventDefault&&a.getPreventDefault()?g:h):this.type=a,c&&fb.extend(this,c),this.timeStamp=a&&a.timeStamp||fb.now(),this[fb.expando]=!0,b):new fb.Event(a,c)},fb.Event.prototype={isDefaultPrevented:h,isPropagationStopped:h,isImmediatePropagationStopped:h,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=g,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=g,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=g,this.stopPropagation()}},fb.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\"},function(a,b){fb.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!fb.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),fb.support.focusinBubbles||fb.each({focus:\"focusin\",blur:\"focusout\"},function(a,b){var c=0,d=function(a){fb.event.simulate(b,a.target,fb.event.fix(a),!0)};fb.event.special[b]={setup:function(){0===c++&&T.addEventListener(a,d,!0)},teardown:function(){0===--c&&T.removeEventListener(a,d,!0)}}}),fb.fn.extend({on:function(a,c,d,e,f){var g,i;if(\"object\"==typeof a){\"string\"!=typeof c&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],f);return this}if(null==d&&null==e?(e=c,d=c=b):null==e&&(\"string\"==typeof c?(e=d,d=b):(e=d,d=c,c=b)),e===!1)e=h;else if(!e)return this;return 1===f&&(g=e,e=function(a){return fb().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=fb.guid++)),this.each(function(){fb.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,fb(a.delegateTarget).off(e.namespace?e.origType+\".\"+e.namespace:e.origType,e.selector,e.handler),this;if(\"object\"==typeof a){for(f in a)this.off(f,c,a[f]);return this}return(c===!1||\"function\"==typeof c)&&(d=c,c=b),d===!1&&(d=h),this.each(function(){fb.event.remove(this,a,d,c)})},trigger:function(a,b){return this.each(function(){fb.event.trigger(a,b,this)})},triggerHandler:function(a,c){var d=this[0];return d?fb.event.trigger(a,c,d,!0):b}});var Cb=/^.[^:#\\[\\.,]*$/,Db=/^(?:parents|prev(?:Until|All))/,Eb=fb.expr.match.needsContext,Fb={children:!0,contents:!0,next:!0,prev:!0};fb.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if(\"string\"!=typeof a)return this.pushStack(fb(a).filter(function(){for(b=0;e>b;b++)if(fb.contains(d[b],this))return!0}));for(b=0;e>b;b++)fb.find(a,d[b],c);return c=this.pushStack(e>1?fb.unique(c):c),c.selector=this.selector?this.selector+\" \"+a:a,c},has:function(a){var b=fb(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(fb.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(k(this,a||[],!0))},filter:function(a){return this.pushStack(k(this,a||[],!1))},is:function(a){return!!k(this,\"string\"==typeof a&&Eb.test(a)?fb(a):a||[],!1).length},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=Eb.test(a)||\"string\"!=typeof a?fb(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(11>c.nodeType&&(g?g.index(c)>-1:1===c.nodeType&&fb.find.matchesSelector(c,a))){c=f.push(c);break}return this.pushStack(f.length>1?fb.unique(f):f)},index:function(a){return a?\"string\"==typeof a?bb.call(fb(a),this[0]):bb.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){var c=\"string\"==typeof a?fb(a,b):fb.makeArray(a&&a.nodeType?[a]:a),d=fb.merge(this.get(),c);return this.pushStack(fb.unique(d))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),fb.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return fb.dir(a,\"parentNode\")},parentsUntil:function(a,b,c){return fb.dir(a,\"parentNode\",c)},next:function(a){return j(a,\"nextSibling\")},prev:function(a){return j(a,\"previousSibling\")},nextAll:function(a){return fb.dir(a,\"nextSibling\")},prevAll:function(a){return fb.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return fb.dir(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return fb.dir(a,\"previousSibling\",c)},siblings:function(a){return fb.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return fb.sibling(a.firstChild)},contents:function(a){return a.contentDocument||fb.merge([],a.childNodes)}},function(a,b){fb.fn[a]=function(c,d){var e=fb.map(this,b,c);return\"Until\"!==a.slice(-5)&&(d=c),d&&\"string\"==typeof d&&(e=fb.filter(d,e)),this.length>1&&(Fb[a]||fb.unique(e),Db.test(a)&&e.reverse()),this.pushStack(e)}}),fb.extend({filter:function(a,b,c){var d=b[0];return c&&(a=\":not(\"+a+\")\"),1===b.length&&1===d.nodeType?fb.find.matchesSelector(d,a)?[d]:[]:fb.find.matches(a,fb.grep(b,function(a){return 1===a.nodeType}))},dir:function(a,c,d){for(var e=[],f=d!==b;(a=a[c])&&9!==a.nodeType;)if(1===a.nodeType){if(f&&fb(a).is(d))break;e.push(a)}return e},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}});var Gb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,Hb=/<([\\w:]+)/,Ib=/<|&#?\\w+;/,Jb=/<(?:script|style|link)/i,Kb=/^(?:checkbox|radio)$/i,Lb=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Mb=/^$|\\/(?:java|ecma)script/i,Nb=/^true\\/(.*)/,Ob=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,Pb={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};Pb.optgroup=Pb.option,Pb.tbody=Pb.tfoot=Pb.colgroup=Pb.caption=Pb.thead,Pb.th=Pb.td,fb.fn.extend({text:function(a){return fb.access(this,function(a){return a===b?fb.text(this):this.empty().append((this[0]&&this[0].ownerDocument||T).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=l(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=l(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?fb.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||fb.cleanData(q(c)),c.parentNode&&(b&&fb.contains(c.ownerDocument,c)&&o(q(c,\"script\")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(fb.cleanData(q(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return fb.clone(this,a,b)})},html:function(a){return fb.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b&&1===c.nodeType)return c.innerHTML;if(\"string\"==typeof a&&!Jb.test(a)&&!Pb[(Hb.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(Gb,\"<$1></$2>\");try{for(;e>d;d++)c=this[d]||{},1===c.nodeType&&(fb.cleanData(q(c,!1)),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=fb.map(this,function(a){return[a.nextSibling,a.parentNode]}),b=0;return this.domManip(arguments,function(c){var d=a[b++],e=a[b++];e&&(d&&d.parentNode!==e&&(d=this.nextSibling),fb(this).remove(),e.insertBefore(c,d))},!0),b?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b,c){a=$.apply([],a);var d,e,f,g,h,i,j=0,k=this.length,l=this,o=k-1,p=a[0],r=fb.isFunction(p);if(r||!(1>=k||\"string\"!=typeof p||fb.support.checkClone)&&Lb.test(p))return this.each(function(d){var e=l.eq(d);r&&(a[0]=p.call(this,d,e.html())),e.domManip(a,b,c)});if(k&&(d=fb.buildFragment(a,this[0].ownerDocument,!1,!c&&this),e=d.firstChild,1===d.childNodes.length&&(d=e),e)){for(f=fb.map(q(d,\"script\"),m),g=f.length;k>j;j++)h=d,j!==o&&(h=fb.clone(h,!0,!0),g&&fb.merge(f,q(h,\"script\"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,fb.map(f,n),j=0;g>j;j++)h=f[j],Mb.test(h.type||\"\")&&!qb.access(h,\"globalEval\")&&fb.contains(i,h)&&(h.src?fb._evalUrl(h.src):fb.globalEval(h.textContent.replace(Ob,\"\")))}return this}}),fb.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){fb.fn[a]=function(a){for(var c,d=[],e=fb(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),fb(e[g])[b](c),_.apply(d,c.get());return this.pushStack(d)}}),fb.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=fb.contains(a.ownerDocument,a);if(!(fb.support.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||fb.isXMLDoc(a)))for(g=q(h),f=q(a),d=0,e=f.length;e>d;d++)r(f[d],g[d]);if(b)if(c)for(f=f||q(a),g=g||q(h),d=0,e=f.length;e>d;d++)p(f[d],g[d]);else p(a,h);return g=q(h,\"script\"),g.length>0&&o(g,!i&&q(a,\"script\")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=0,l=a.length,m=b.createDocumentFragment(),n=[];l>k;k++)if(e=a[k],e||0===e)if(\"object\"===fb.type(e))fb.merge(n,e.nodeType?[e]:e);else if(Ib.test(e)){for(f=f||m.appendChild(b.createElement(\"div\")),g=(Hb.exec(e)||[\"\",\"\"])[1].toLowerCase(),h=Pb[g]||Pb._default,f.innerHTML=h[1]+e.replace(Gb,\"<$1></$2>\")+h[2],j=h[0];j--;)f=f.lastChild;fb.merge(n,f.childNodes),f=m.firstChild,f.textContent=\"\"}else n.push(b.createTextNode(e));for(m.textContent=\"\",k=0;e=n[k++];)if((!d||-1===fb.inArray(e,d))&&(i=fb.contains(e.ownerDocument,e),f=q(m.appendChild(e),\"script\"),i&&o(f),c))for(j=0;e=f[j++];)Mb.test(e.type||\"\")&&c.push(e);return m},cleanData:function(a){for(var c,d,f,g,h,i,j=fb.event.special,k=0;(d=a[k])!==b;k++){if(e.accepts(d)&&(h=d[qb.expando],h&&(c=qb.cache[h]))){if(f=Object.keys(c.events||{}),f.length)for(i=0;(g=f[i])!==b;i++)j[g]?fb.event.remove(d,g):fb.removeEvent(d,g,c.handle);qb.cache[h]&&delete qb.cache[h]}delete pb.cache[d[pb.expando]]}},_evalUrl:function(a){return fb.ajax({url:a,type:\"GET\",dataType:\"script\",async:!1,global:!1,\"throws\":!0})}}),fb.fn.extend({wrapAll:function(a){var b;return fb.isFunction(a)?this.each(function(b){fb(this).wrapAll(a.call(this,b))}):(this[0]&&(b=fb(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(fb.isFunction(a)?function(b){fb(this).wrapInner(a.call(this,b))}:function(){var b=fb(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=fb.isFunction(a);return this.each(function(c){fb(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){fb.nodeName(this,\"body\")||fb(this).replaceWith(this.childNodes)}).end()}});var Qb,Rb,Sb=/^(none|table(?!-c[ea]).+)/,Tb=/^margin/,Ub=RegExp(\"^(\"+gb+\")(.*)$\",\"i\"),Vb=RegExp(\"^(\"+gb+\")(?!px)[a-z%]+$\",\"i\"),Wb=RegExp(\"^([+-])=(\"+gb+\")\",\"i\"),Xb={BODY:\"block\"},Yb={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Zb={letterSpacing:0,fontWeight:400},$b=[\"Top\",\"Right\",\"Bottom\",\"Left\"],_b=[\"Webkit\",\"O\",\"Moz\",\"ms\"];fb.fn.extend({css:function(a,c){return fb.access(this,function(a,c,d){var e,f,g={},h=0;if(fb.isArray(c)){for(e=u(a),f=c.length;f>h;h++)g[c[h]]=fb.css(a,c[h],!1,e);return g}return d!==b?fb.style(a,c,d):fb.css(a,c)\n},a,c,arguments.length>1)},show:function(){return v(this,!0)},hide:function(){return v(this)},toggle:function(a){return\"boolean\"==typeof a?a?this.show():this.hide():this.each(function(){t(this)?fb(this).show():fb(this).hide()})}}),fb.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Qb(a,\"opacity\");return\"\"===c?\"1\":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{\"float\":\"cssFloat\"},style:function(a,c,d,e){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var f,g,h,i=fb.camelCase(c),j=a.style;return c=fb.cssProps[i]||(fb.cssProps[i]=s(j,i)),h=fb.cssHooks[c]||fb.cssHooks[i],d===b?h&&\"get\"in h&&(f=h.get(a,!1,e))!==b?f:j[c]:(g=typeof d,\"string\"===g&&(f=Wb.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(fb.css(a,c)),g=\"number\"),null==d||\"number\"===g&&isNaN(d)||(\"number\"!==g||fb.cssNumber[i]||(d+=\"px\"),fb.support.clearCloneStyle||\"\"!==d||0!==c.indexOf(\"background\")||(j[c]=\"inherit\"),h&&\"set\"in h&&(d=h.set(a,d,e))===b||(j[c]=d)),b)}},css:function(a,c,d,e){var f,g,h,i=fb.camelCase(c);return c=fb.cssProps[i]||(fb.cssProps[i]=s(a.style,i)),h=fb.cssHooks[c]||fb.cssHooks[i],h&&\"get\"in h&&(f=h.get(a,!0,d)),f===b&&(f=Qb(a,c,e)),\"normal\"===f&&c in Zb&&(f=Zb[c]),\"\"===d||d?(g=parseFloat(f),d===!0||fb.isNumeric(g)?g||0:f):f}}),Qb=function(a,c,d){var e,f,g,h=d||u(a),i=h?h.getPropertyValue(c)||h[c]:b,j=a.style;return h&&(\"\"!==i||fb.contains(a.ownerDocument,a)||(i=fb.style(a,c)),Vb.test(i)&&Tb.test(c)&&(e=j.width,f=j.minWidth,g=j.maxWidth,j.minWidth=j.maxWidth=j.width=i,i=h.width,j.width=e,j.minWidth=f,j.maxWidth=g)),i},fb.each([\"height\",\"width\"],function(a,c){fb.cssHooks[c]={get:function(a,d,e){return d?0===a.offsetWidth&&Sb.test(fb.css(a,\"display\"))?fb.swap(a,Yb,function(){return y(a,c,e)}):y(a,c,e):b},set:function(a,b,d){var e=d&&u(a);return w(a,b,d?x(a,c,d,fb.support.boxSizing&&\"border-box\"===fb.css(a,\"boxSizing\",!1,e),e):0)}}}),fb(function(){fb.support.reliableMarginRight||(fb.cssHooks.marginRight={get:function(a,c){return c?fb.swap(a,{display:\"inline-block\"},Qb,[a,\"marginRight\"]):b}}),!fb.support.pixelPosition&&fb.fn.position&&fb.each([\"top\",\"left\"],function(a,c){fb.cssHooks[c]={get:function(a,d){return d?(d=Qb(a,c),Vb.test(d)?fb(a).position()[c]+\"px\":d):b}}})}),fb.expr&&fb.expr.filters&&(fb.expr.filters.hidden=function(a){return 0>=a.offsetWidth&&0>=a.offsetHeight},fb.expr.filters.visible=function(a){return!fb.expr.filters.hidden(a)}),fb.each({margin:\"\",padding:\"\",border:\"Width\"},function(a,b){fb.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f=\"string\"==typeof c?c.split(\" \"):[c];4>d;d++)e[a+$b[d]+b]=f[d]||f[d-2]||f[0];return e}},Tb.test(a)||(fb.cssHooks[a+b].set=w)});var ac=/%20/g,bc=/\\[\\]$/,cc=/\\r?\\n/g,dc=/^(?:submit|button|image|reset|file)$/i,ec=/^(?:input|select|textarea|keygen)/i;fb.fn.extend({serialize:function(){return fb.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=fb.prop(this,\"elements\");return a?fb.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!fb(this).is(\":disabled\")&&ec.test(this.nodeName)&&!dc.test(a)&&(this.checked||!Kb.test(a))}).map(function(a,b){var c=fb(this).val();return null==c?null:fb.isArray(c)?fb.map(c,function(a){return{name:b.name,value:a.replace(cc,\"\\r\\n\")}}):{name:b.name,value:c.replace(cc,\"\\r\\n\")}}).get()}}),fb.param=function(a,c){var d,e=[],f=function(a,b){b=fb.isFunction(b)?b():null==b?\"\":b,e[e.length]=encodeURIComponent(a)+\"=\"+encodeURIComponent(b)};if(c===b&&(c=fb.ajaxSettings&&fb.ajaxSettings.traditional),fb.isArray(a)||a.jquery&&!fb.isPlainObject(a))fb.each(a,function(){f(this.name,this.value)});else for(d in a)B(d,a[d],c,f);return e.join(\"&\").replace(ac,\"+\")},fb.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 contextmenu\".split(\" \"),function(a,b){fb.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),fb.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,\"**\"):this.off(b,a||\"**\",c)}});var fc,gc,hc=fb.now(),ic=/\\?/,jc=/#.*$/,kc=/([?&])_=[^&]*/,lc=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,mc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,nc=/^(?:GET|HEAD)$/,oc=/^\\/\\//,pc=/^([\\w.+-]+:)(?:\\/\\/([^\\/?#:]*)(?::(\\d+)|)|)/,qc=fb.fn.load,rc={},sc={},tc=\"*/\".concat(\"*\");try{gc=S.href}catch(uc){gc=T.createElement(\"a\"),gc.href=\"\",gc=gc.href}fc=pc.exec(gc.toLowerCase())||[],fb.fn.load=function(a,c,d){if(\"string\"!=typeof a&&qc)return qc.apply(this,arguments);var e,f,g,h=this,i=a.indexOf(\" \");return i>=0&&(e=a.slice(i),a=a.slice(0,i)),fb.isFunction(c)?(d=c,c=b):c&&\"object\"==typeof c&&(f=\"POST\"),h.length>0&&fb.ajax({url:a,type:f,dataType:\"html\",data:c}).done(function(a){g=arguments,h.html(e?fb(\"<div>\").append(fb.parseHTML(a)).find(e):a)}).complete(d&&function(a,b){h.each(d,g||[a.responseText,b,a])}),this},fb.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(a,b){fb.fn[b]=function(a){return this.on(b,a)}}),fb.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:gc,type:\"GET\",isLocal:mc.test(fc[1]),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":tc,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":fb.parseJSON,\"text xml\":fb.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?E(E(a,fb.ajaxSettings),b):E(fb.ajaxSettings,a)},ajaxPrefilter:C(rc),ajaxTransport:C(sc),ajax:function(a,c){function d(a,c,d,h){var j,l,s,t,v,x=c;2!==u&&(u=2,i&&clearTimeout(i),e=b,g=h||\"\",w.readyState=a>0?4:0,j=a>=200&&300>a||304===a,d&&(t=F(m,w,d)),t=G(m,t,w,j),j?(m.ifModified&&(v=w.getResponseHeader(\"Last-Modified\"),v&&(fb.lastModified[f]=v),v=w.getResponseHeader(\"etag\"),v&&(fb.etag[f]=v)),204===a||\"HEAD\"===m.type?x=\"nocontent\":304===a?x=\"notmodified\":(x=t.state,l=t.data,s=t.error,j=!s)):(s=x,(a||!x)&&(x=\"error\",0>a&&(a=0))),w.status=a,w.statusText=(c||x)+\"\",j?p.resolveWith(n,[l,x,w]):p.rejectWith(n,[w,x,s]),w.statusCode(r),r=b,k&&o.trigger(j?\"ajaxSuccess\":\"ajaxError\",[w,m,j?l:s]),q.fireWith(n,[w,x]),k&&(o.trigger(\"ajaxComplete\",[w,m]),--fb.active||fb.event.trigger(\"ajaxStop\")))}\"object\"==typeof a&&(c=a,a=b),c=c||{};var e,f,g,h,i,j,k,l,m=fb.ajaxSetup({},c),n=m.context||m,o=m.context&&(n.nodeType||n.jquery)?fb(n):fb.event,p=fb.Deferred(),q=fb.Callbacks(\"once memory\"),r=m.statusCode||{},s={},t={},u=0,v=\"canceled\",w={readyState:0,getResponseHeader:function(a){var b;if(2===u){if(!h)for(h={};b=lc.exec(g);)h[b[1].toLowerCase()]=b[2];b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(m.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return e&&e.abort(b),d(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,m.url=((a||m.url||gc)+\"\").replace(jc,\"\").replace(oc,fc[1]+\"//\"),m.type=c.method||c.type||m.method||m.type,m.dataTypes=fb.trim(m.dataType||\"*\").toLowerCase().match(hb)||[\"\"],null==m.crossDomain&&(j=pc.exec(m.url.toLowerCase()),m.crossDomain=!(!j||j[1]===fc[1]&&j[2]===fc[2]&&(j[3]||(\"http:\"===j[1]?\"80\":\"443\"))===(fc[3]||(\"http:\"===fc[1]?\"80\":\"443\")))),m.data&&m.processData&&\"string\"!=typeof m.data&&(m.data=fb.param(m.data,m.traditional)),D(rc,m,c,w),2===u)return w;k=m.global,k&&0===fb.active++&&fb.event.trigger(\"ajaxStart\"),m.type=m.type.toUpperCase(),m.hasContent=!nc.test(m.type),f=m.url,m.hasContent||(m.data&&(f=m.url+=(ic.test(f)?\"&\":\"?\")+m.data,delete m.data),m.cache===!1&&(m.url=kc.test(f)?f.replace(kc,\"$1_=\"+hc++):f+(ic.test(f)?\"&\":\"?\")+\"_=\"+hc++)),m.ifModified&&(fb.lastModified[f]&&w.setRequestHeader(\"If-Modified-Since\",fb.lastModified[f]),fb.etag[f]&&w.setRequestHeader(\"If-None-Match\",fb.etag[f])),(m.data&&m.hasContent&&m.contentType!==!1||c.contentType)&&w.setRequestHeader(\"Content-Type\",m.contentType),w.setRequestHeader(\"Accept\",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+(\"*\"!==m.dataTypes[0]?\", \"+tc+\"; q=0.01\":\"\"):m.accepts[\"*\"]);for(l in m.headers)w.setRequestHeader(l,m.headers[l]);if(m.beforeSend&&(m.beforeSend.call(n,w,m)===!1||2===u))return w.abort();v=\"abort\";for(l in{success:1,error:1,complete:1})w[l](m[l]);if(e=D(sc,m,c,w)){w.readyState=1,k&&o.trigger(\"ajaxSend\",[w,m]),m.async&&m.timeout>0&&(i=setTimeout(function(){w.abort(\"timeout\")},m.timeout));try{u=1,e.send(s,d)}catch(x){if(!(2>u))throw x;d(-1,x)}}else d(-1,\"No Transport\");return w},getJSON:function(a,b,c){return fb.get(a,b,c,\"json\")},getScript:function(a,c){return fb.get(a,b,c,\"script\")}}),fb.each([\"get\",\"post\"],function(a,c){fb[c]=function(a,d,e,f){return fb.isFunction(d)&&(f=f||e,e=d,d=b),fb.ajax({url:a,type:c,dataType:f,data:d,success:e})}}),fb.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/(?:java|ecma)script/},converters:{\"text script\":function(a){return fb.globalEval(a),a}}}),fb.ajaxPrefilter(\"script\",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type=\"GET\")}),fb.ajaxTransport(\"script\",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=fb(\"<script>\").prop({async:!0,charset:a.scriptCharset,src:a.url}).on(\"load error\",c=function(a){b.remove(),c=null,a&&e(\"error\"===a.type?404:200,a.type)}),T.head.appendChild(b[0])},abort:function(){c&&c()}}}});var vc=[],wc=/(=)\\?(?=&|$)|\\?\\?/;fb.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var a=vc.pop()||fb.expando+\"_\"+hc++;return this[a]=!0,a}}),fb.ajaxPrefilter(\"json jsonp\",function(c,d,e){var f,g,h,i=c.jsonp!==!1&&(wc.test(c.url)?\"url\":\"string\"==typeof c.data&&!(c.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&wc.test(c.data)&&\"data\");return i||\"jsonp\"===c.dataTypes[0]?(f=c.jsonpCallback=fb.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,i?c[i]=c[i].replace(wc,\"$1\"+f):c.jsonp!==!1&&(c.url+=(ic.test(c.url)?\"&\":\"?\")+c.jsonp+\"=\"+f),c.converters[\"script json\"]=function(){return h||fb.error(f+\" was not called\"),h[0]},c.dataTypes[0]=\"json\",g=a[f],a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,vc.push(f)),h&&fb.isFunction(g)&&g(h[0]),h=g=b}),\"script\"):b}),fb.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var xc=fb.ajaxSettings.xhr(),yc={0:200,1223:204},zc=0,Ac={};a.ActiveXObject&&fb(a).on(\"unload\",function(){for(var a in Ac)Ac[a]();Ac=b}),fb.support.cors=!!xc&&\"withCredentials\"in xc,fb.support.ajax=xc=!!xc,fb.ajaxTransport(function(a){var c;return fb.support.cors||xc&&!a.crossDomain?{send:function(d,e){var f,g,h=a.xhr();if(h.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(f in a.xhrFields)h[f]=a.xhrFields[f];a.mimeType&&h.overrideMimeType&&h.overrideMimeType(a.mimeType),a.crossDomain||d[\"X-Requested-With\"]||(d[\"X-Requested-With\"]=\"XMLHttpRequest\");for(f in d)h.setRequestHeader(f,d[f]);c=function(a){return function(){c&&(delete Ac[g],c=h.onload=h.onerror=null,\"abort\"===a?h.abort():\"error\"===a?e(h.status||404,h.statusText):e(yc[h.status]||h.status,h.statusText,\"string\"==typeof h.responseText?{text:h.responseText}:b,h.getAllResponseHeaders()))}},h.onload=c(),h.onerror=c(\"error\"),c=Ac[g=zc++]=c(\"abort\"),h.send(a.hasContent&&a.data||null)},abort:function(){c&&c()}}:b});var Bc,Cc,Dc=/^(?:toggle|show|hide)$/,Ec=RegExp(\"^(?:([+-])=|)(\"+gb+\")([a-z%]*)$\",\"i\"),Fc=/queueHooks$/,Gc=[L],Hc={\"*\":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ec.exec(b),f=e&&e[3]||(fb.cssNumber[a]?\"\":\"px\"),g=(fb.cssNumber[a]||\"px\"!==f&&+d)&&Ec.exec(fb.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||\".5\",g/=h,fb.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};fb.Animation=fb.extend(J,{tweener:function(a,b){fb.isFunction(a)?(b=a,a=[\"*\"]):a=a.split(\" \");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Hc[c]=Hc[c]||[],Hc[c].unshift(b)},prefilter:function(a,b){b?Gc.unshift(a):Gc.push(a)}}),fb.Tween=M,M.prototype={constructor:M,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||\"swing\",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(fb.cssNumber[c]?\"\":\"px\")},cur:function(){var a=M.propHooks[this.prop];return a&&a.get?a.get(this):M.propHooks._default.get(this)},run:function(a){var b,c=M.propHooks[this.prop];return this.pos=b=this.options.duration?fb.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):M.propHooks._default.set(this),this}},M.prototype.init.prototype=M.prototype,M.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=fb.css(a.elem,a.prop,\"\"),b&&\"auto\"!==b?b:0):a.elem[a.prop]},set:function(a){fb.fx.step[a.prop]?fb.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[fb.cssProps[a.prop]]||fb.cssHooks[a.prop])?fb.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},M.propHooks.scrollTop=M.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},fb.each([\"toggle\",\"show\",\"hide\"],function(a,b){var c=fb.fn[b];fb.fn[b]=function(a,d,e){return null==a||\"boolean\"==typeof a?c.apply(this,arguments):this.animate(N(b,!0),a,d,e)}}),fb.fn.extend({fadeTo:function(a,b,c,d){return this.filter(t).css(\"opacity\",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=fb.isEmptyObject(a),f=fb.speed(b,c,d),g=function(){var b=J(this,fb.extend({},a),f);(e||qb.get(this,\"finish\"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return\"string\"!=typeof a&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||\"fx\",[]),this.each(function(){var b=!0,c=null!=a&&a+\"queueHooks\",f=fb.timers,g=qb.get(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&Fc.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem!==this||null!=a&&f[c].queue!==a||(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&fb.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||\"fx\"),this.each(function(){var b,c=qb.get(this),d=c[a+\"queue\"],e=c[a+\"queueHooks\"],f=fb.timers,g=d?d.length:0;for(c.finish=!0,fb.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),fb.each({slideDown:N(\"show\"),slideUp:N(\"hide\"),slideToggle:N(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(a,b){fb.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),fb.speed=function(a,b,c){var d=a&&\"object\"==typeof a?fb.extend({},a):{complete:c||!c&&b||fb.isFunction(a)&&a,duration:a,easing:c&&b||b&&!fb.isFunction(b)&&b};return d.duration=fb.fx.off?0:\"number\"==typeof d.duration?d.duration:d.duration in fb.fx.speeds?fb.fx.speeds[d.duration]:fb.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue=\"fx\"),d.old=d.complete,d.complete=function(){fb.isFunction(d.old)&&d.old.call(this),d.queue&&fb.dequeue(this,d.queue)},d},fb.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},fb.timers=[],fb.fx=M.prototype.init,fb.fx.tick=function(){var a,c=fb.timers,d=0;for(Bc=fb.now();c.length>d;d++)a=c[d],a()||c[d]!==a||c.splice(d--,1);c.length||fb.fx.stop(),Bc=b},fb.fx.timer=function(a){a()&&fb.timers.push(a)&&fb.fx.start()},fb.fx.interval=13,fb.fx.start=function(){Cc||(Cc=setInterval(fb.fx.tick,fb.fx.interval))},fb.fx.stop=function(){clearInterval(Cc),Cc=null},fb.fx.speeds={slow:600,fast:200,_default:400},fb.fx.step={},fb.expr&&fb.expr.filters&&(fb.expr.filters.animated=function(a){return fb.grep(fb.timers,function(b){return a===b.elem}).length}),fb.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){fb.offset.setOffset(this,a,b)});var c,d,e=this[0],f={top:0,left:0},g=e&&e.ownerDocument;return g?(c=g.documentElement,fb.contains(c,e)?(typeof e.getBoundingClientRect!==R&&(f=e.getBoundingClientRect()),d=O(g),{top:f.top+d.pageYOffset-c.clientTop,left:f.left+d.pageXOffset-c.clientLeft}):f):void 0},fb.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=fb.css(a,\"position\"),l=fb(a),m={};\"static\"===k&&(a.style.position=\"relative\"),h=l.offset(),f=fb.css(a,\"top\"),i=fb.css(a,\"left\"),j=(\"absolute\"===k||\"fixed\"===k)&&(f+i).indexOf(\"auto\")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),fb.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),\"using\"in b?b.using.call(a,m):l.css(m)}},fb.fn.extend({position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return\"fixed\"===fb.css(c,\"position\")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),fb.nodeName(a[0],\"html\")||(d=a.offset()),d.top+=fb.css(a[0],\"borderTopWidth\",!0),d.left+=fb.css(a[0],\"borderLeftWidth\",!0)),{top:b.top-d.top-fb.css(c,\"marginTop\",!0),left:b.left-d.left-fb.css(c,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||U;a&&!fb.nodeName(a,\"html\")&&\"static\"===fb.css(a,\"position\");)a=a.offsetParent;return a||U})}}),fb.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(c,d){var e=\"pageYOffset\"===d;fb.fn[c]=function(f){return fb.access(this,function(c,f,g){var h=O(c);return g===b?h?h[d]:c[f]:(h?h.scrollTo(e?a.pageXOffset:g,e?g:a.pageYOffset):c[f]=g,b)},c,f,arguments.length,null)}}),fb.each({Height:\"height\",Width:\"width\"},function(a,c){fb.each({padding:\"inner\"+a,content:c,\"\":\"outer\"+a},function(d,e){fb.fn[e]=function(e,f){var g=arguments.length&&(d||\"boolean\"!=typeof e),h=d||(e===!0||f===!0?\"margin\":\"border\");return fb.access(this,function(c,d,e){var f;return fb.isWindow(c)?c.document.documentElement[\"client\"+a]:9===c.nodeType?(f=c.documentElement,Math.max(c.body[\"scroll\"+a],f[\"scroll\"+a],c.body[\"offset\"+a],f[\"offset\"+a],f[\"client\"+a])):e===b?fb.css(c,d,h):fb.style(c,d,e,h)},c,g?e:b,g,null)}})}),fb.fn.size=function(){return this.length},fb.fn.andSelf=fb.fn.addBack,\"object\"==typeof module&&module&&\"object\"==typeof module.exports?module.exports=fb:\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return fb}),\"object\"==typeof a&&\"object\"==typeof a.document&&(a.jQuery=a.$=fb)}(window),function(a,b,c){function d(a){function b(b){var c;return 0===b?\"\":(b=b||1,c=a.substring(h+1,h+b+1),\"\"===c?k:c)}var d,e,f,h=0,i=1,j=1,k=c;return a=a.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\"),d=a.length,e=d>0?a.charAt(0):k,{toString:function(){return\"length: \"+d+\", index: \"+h+\", line: \"+i+\", column: \"+j+\", current: [\"+e+\"]\"},peek:function(a){return b(a)},substring:function(){return a.substring(h)},peekSubstring:function(){return a.substring(h+1)},read:function(a){var c,l,m=b(a);return\"\"===m?m:(m!==k?(h+=m.length,j+=m.length,f&&(i++,j=1,f=!1),c=m.substring(0,m.length-1).replace(/[^\\n]/g,\"\").length,c>0&&(i+=c,j=1),l=g(m),\"\\n\"===l&&(f=!0),e=l):(h=d,e=k),m)},text:function(){return a},getLine:function(){return i},getColumn:function(){return j},isEof:function(){return h>=d},isSol:function(){return 1===j},isSolWs:function(){var b,c=h;if(1===j)return!0;for(;\"\"!==(b=a.charAt(--c));){if(\"\\n\"===b)return!0;if(!/\\s/.test(b))return!1}return!0},isEol:function(){return f},EOF:k,current:function(){return e}}}function e(a){function b(){}return b.prototype=a,new b}function f(a,b){var c;for(c=0;c<b.length;c++)a.appendChild(b[c])}function g(a){return a.charAt?a.charAt(a.length-1):a[a.length-1]}function h(a,b,c){var d;if(a.indexOf&&!c)return a.indexOf(b)>=0;for(d=0;d<a.length;d++){if(a[d]===b)return!0;if(c&&\"string\"==typeof a[d]&&\"string\"==typeof b&&a[d].toUpperCase()===b.toUpperCase())return!0}return!1}function i(a,b){var c;if(!b)return a;for(c in b)a[c]=b[c];return a}function j(a){return i({},a)}function k(a){return a.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function l(a,b,d,e){return d=d.slice(0),function(f){var g,i,j,k=a;for(1===b&&d.reverse(),g=0;g<d.length;g++)if(j=f[k+g*b],i=d[d.length-1-g],j===c){if(i.optional===c||!i.optional)return!1;k-=b}else{if(j.name===i.token&&(i.values===c||h(i.values,j.value,e)))continue;if(i.optional===c||!i.optional)return!1;k-=b}return!0}}function m(a,b,d,e){return function(f){for(var g,i=a,j=!1;(g=f[--i])!==c;){if(g.name===d.token&&h(d.values,g.value)){if(g.name===b.token&&h(b.values,g.value,e)){j=!0;break}return!1}if(g.name===b.token&&h(b.values,g.value,e)){j=!0;break}}if(!j)return!1;for(i=a;(g=f[++i])!==c;){if(g.name===b.token&&h(b.values,g.value,e)){if(g.name===d.token&&h(d.values,g.value,e)){j=!0;break}return!1}if(g.name===d.token&&h(d.values,g.value,e)){j=!0;break}}return j}}function n(a,b,c,d){var e,f,g,h=a.reader.current(),i=a.reader.getLine(),j=a.reader.getColumn();if(b=b||[],a.language.caseInsensitive&&(h=h.toUpperCase()),!b[h])return null;for(b=b[h],e=0;e<b.length;e++)if(f=b[e].value,g=h+a.reader.peek(f.length),f===g||b[e].regex.test(g))return a.createToken(c,a.reader.current()+a.reader[d?\"peek\":\"read\"](f.length-1),i,j);return null}function o(a,b,d,e){var f,g=1;for(d=d||1;f=a[b+d*g++];)if(!e(f))return f;return c}function p(a,b,c){var d,e,f,g={};for(d=0;d<a.length;d++)e=c?a[d].toUpperCase():a[d],f=e.charAt(0),g[f]||(g[f]=[]),g[f].push({value:e,regex:new RegExp(\"^\"+k(e)+b,c?\"i\":\"\")});return g}function q(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn(),g=!0;if(/\\d/.test(d))b=d,\"0\"===d&&\".\"!==a.reader.peek()&&(g=!1);else{if(\".\"!==d||!/\\d/.test(a.reader.peek()))return null;b=d+a.reader.read(),g=!1}for(;(c=a.reader.peek())!==a.reader.EOF;){if(!/[A-Za-z0-9]/.test(c)){if(\".\"===c&&g&&/\\d$/.test(a.reader.peek(2))){b+=a.reader.read(),g=!1;continue}break}b+=a.reader.read()}return a.createToken(\"number\",b,e,f)}function r(a,b,c){var d,e=E[a]||[];for(d=0;d<e.length;d++)e[d].call(b,c)}function s(a){this.options=i(j(B),a)}var t,u,v=!1,w=v?\"\\r\":\"\\n\",x=function(){return null},y=0,z=\"plaintext\",A=\"sunlight-\",B={tabWidth:4,classPrefix:A,showWhitespace:!1,maxHeight:!1},C={},D={},E={beforeHighlightNode:[],beforeHighlight:[],beforeTokenize:[],afterTokenize:[],beforeAnalyze:[],afterAnalyze:[],afterHighlight:[],afterHighlightNode:[]};t=function(){function a(a){return function(c){var d=b.createElement(\"span\");return d.className=c.options.classPrefix+a,d.appendChild(c.createTextNode(c.tokens[c.index])),c.addNode(d)||!0}}return{handleToken:function(b){return a(b.tokens[b.index].name)(b)},handle_default:function(a){return a.addNode(a.createTextNode(a.tokens[a.index]))},handle_ident:function(b){var c=function(c,d){var e;for(c=c||[],e=0;e<c.length;e++)if(\"function\"==typeof c[e]){if(c[e](b))return a(\"named-ident\")(b)}else if(d&&d(c[e])(b.tokens))return a(\"named-ident\")(b);return!1};return c(b.language.namedIdentRules.custom)||c(b.language.namedIdentRules.follows,function(a){return l(b.index-1,-1,a,b.language.caseInsensitive)})||c(b.language.namedIdentRules.precedes,function(a){return l(b.index+1,1,a,b.language.caseInsensitive)})||c(b.language.namedIdentRules.between,function(a){return m(b.index,a.opener,a.closer,b.language.caseInsensitive)})||a(\"ident\")(b)}}}(),D={analyzer:e(t),customTokens:[],namedIdentRules:{},punctuation:/[^\\w\\s]/,numberParser:q,caseInsensitive:!1,doNotParse:/\\s/,contextItems:{},embeddedLanguages:{}},u=function(){var a=null;return a=b.defaultView&&b.defaultView.getComputedStyle?b.defaultView.getComputedStyle:function(a){return a.currentStyle||{}},function(b,c){return a(b,null)[c]}}(),s.prototype=function(){function a(a,b){var c=a[2]||[],d=a[1].length,e=\"string\"==typeof a[1]?new RegExp(k(a[1])):a[1].regex,f=a[3]||!1;return function(a,g,h,i,j,k){function l(b){var f,g,i=a.reader.current();for(g=0;g<c.length;g++)if(f=(b?i:\"\")+a.reader.peek(c[g].length-b),f===c[g])return h+=a.reader.read(f.length-b),!0;return f=(b?i:\"\")+a.reader.peek(d-b),e.test(f)?(m=!0,!1):(h+=b?i:a.reader.read(),!0)}var m=!1;if(h=h||\"\",k=k?1:0,!k||l(!0))for(;a.reader.peek()!==a.reader.EOF&&l(!1););return k?(h+=a.reader.current(),a.reader.read()):h+=f||a.reader.peek()===a.reader.EOF?\"\":a.reader.read(d),m||(a.continuation=g),a.createToken(b,h,i,j)}}function e(a){var b,c;for(b=0;b<a.language.embeddedLanguages.length;b++)if(C[a.language.embeddedLanguages[b].language]&&(c=j(a.language.embeddedLanguages[b]),c.switchTo(a))){c.oldItems=j(a.items),a.embeddedLanguageStack.push(c),a.language=C[c.language],a.items=i(a.items,j(a.language.contextItems));break}}function h(a){var b,c=g(a.embeddedLanguageStack);c&&c.switchBack(a)&&(a.language=C[c.parentLanguage],b=a.embeddedLanguageStack.pop(),a.items=j(b.oldItems),b.oldItems={})}function l(a,b,f,g){var i,k,l,m=[];for(r(\"beforeTokenize\",this,{code:a,language:b}),i={reader:d(a),language:b,items:j(b.contextItems),token:function(a){return m[a]},getAllTokens:function(){return m.slice(0)},count:function(){return m.length},options:g,embeddedLanguageStack:[],defaultData:{text:\"\",line:1,column:1},createToken:function(a,b,c,d){return{name:a,line:c,value:v?b.replace(/\\n/g,\"\\r\"):b,column:d,language:this.language.name}}},f.continuation&&(k=f.continuation,f.continuation=null,m.push(k(i,k,\"\",i.reader.getLine(),i.reader.getColumn(),!0)));!i.reader.isEof();)e(i),l=s(i),null!==l&&(\"\"!==i.defaultData.text&&(m.push(i.createToken(\"default\",i.defaultData.text,i.defaultData.line,i.defaultData.column)),i.defaultData.text=\"\"),l[0]!==c?m=m.concat(l):m.push(l)),h(i),i.reader.read();return\"\"!==i.defaultData.text&&m.push(i.createToken(\"default\",i.defaultData.text,i.defaultData.line,i.defaultData.column)),r(\"afterTokenize\",this,{code:a,parserContext:i}),i}function m(a,c,d){var e=[],f=function(){var a,b;return d.showWhitespace?(a=String.fromCharCode(183),b=new Array(d.tabWidth).join(String.fromCharCode(8212))+String.fromCharCode(8594)):(a=String.fromCharCode(160),b=new Array(d.tabWidth+1).join(a)),function(c){for(var e,f,g,h,i=c.value.split(\" \").join(a);(e=i.indexOf(\"\t\"))>=0;)f=i.lastIndexOf(w,e),g=-1===f?e:e-f-1,h=d.tabWidth-g%d.tabWidth,i=i.substring(0,e)+b.substring(d.tabWidth-h)+i.substring(e+1);return i}}();return{tokens:(c.tokens||[]).concat(a.getAllTokens()),index:c.index?c.index+1:0,language:null,getAnalyzer:x,options:d,continuation:a.continuation,addNode:function(a){e.push(a)},createTextNode:function(a){return b.createTextNode(f(a))},getNodes:function(){return e},resetNodes:function(){e=[]},items:a.items}}function o(a,b,d){var e,f=C[b];return d=d||{},f===c&&(f=C[z]),r(\"beforeHighlight\",this,{code:a,language:f,previousContext:d}),e=m(l.call(this,a,f,d,this.options),d,this.options),q.call(this,e,d.index?d.index+1:0),r(\"afterHighlight\",this,{analyzerContext:e}),e}function p(a){var c=b.createElement(\"span\");return c.className=a.options.classPrefix+a.language.name,c}function q(a,b){var c,d,e,g,h,i,j,k;if(r(\"beforeAnalyze\",this,{analyzerContext:a}),a.tokens.length>0){for(a.language=C[a.tokens[0].language]||C[z],c=[],d=0,e=p(a),g=b;g<a.tokens.length;g++)j=C[a.tokens[g].language]||C[z],j.name!==a.language.name&&(f(e,a.getNodes()),a.resetNodes(),c.push(e),a.language=j,e=p(a)),a.index=g,h=a.tokens[g].name,i=\"handle_\"+h,k=a.getAnalyzer.call(a)||a.language.analyzer,k[i]?k[i](a):k.handleToken(a);for(f(e,a.getNodes()),c.push(e),a.resetNodes(),g=0;g<c.length;g++)a.addNode(c[g])}r(\"afterAnalyze\",this,{analyzerContext:a})}var s=function(){function b(a){return a.language.identFirstLetter&&a.language.identFirstLetter.test(a.reader.current())}function d(a){return n(a,a.language.keywords,\"keyword\")}function e(a){var b,d;if(a.language.customTokens===c)return null;for(b in a.language.customTokens)if(d=n(a,a.language.customTokens[b],b),null!==d)return d;return null}function f(a){return n(a,a.language.operators,\"operator\")}function g(a){var b=a.reader.current();return a.language.punctuation.test(k(b))?a.createToken(\"punctuation\",b,a.reader.getLine(),a.reader.getColumn()):null}function h(a){var c,d,e=a.reader.getLine(),f=a.reader.getColumn();if(!b(a))return null;for(c=a.reader.current();(d=a.reader.peek())!==a.reader.EOF&&a.language.identAfterFirstLetter.test(d);)c+=a.reader.read();return a.createToken(\"ident\",c,e,f)}function i(a){return\"\"===a.defaultData.text&&(a.defaultData.line=a.reader.getLine(),a.defaultData.column=a.reader.getColumn()),a.defaultData.text+=a.reader.current(),null}function j(b){var c,d,e,f,g,h,i,j,k=b.reader.current();for(c in b.language.scopes)for(d=b.language.scopes[c],e=0;e<d.length;e++)if(f=d[e][0],j=k+b.reader.peek(f.length-1),f===j||b.language.caseInsensitive&&j.toUpperCase()===f.toUpperCase())return g=b.reader.getLine(),h=b.reader.getColumn(),b.reader.read(f.length-1),(i=a(d[e],c))(b,i,j,g,h);return null}function l(a){return a.language.numberParser(a)}function m(a){var b,d,e=a.language.customParseRules;if(e===c)return null;for(b=0;b<e.length;b++)if(d=e[b](a))return d;return null}return function(a){return a.language.doNotParse.test(a.reader.current())?i(a):m(a)||e(a)||d(a)||j(a)||h(a)||l(a)||f(a)||g(a)||i(a)}}();return{matchSunlightNode:function(){var a;return function(b){return a||(a=new RegExp(\"(?:\\\\s|^)\"+this.options.classPrefix+\"highlight-(\\\\S+)(?:\\\\s|$)\")),a.exec(b.className)}}(),isAlreadyHighlighted:function(){var a;return function(b){return a||(a=new RegExp(\"(?:\\\\s|^)\"+this.options.classPrefix+\"highlighted(?:\\\\s|$)\")),a.test(b.className)}}(),highlight:function(a,b){return o.call(this,a,b)},highlightNode:function t(a){var c,d,e,f,g,h,i,j,k;if(!this.isAlreadyHighlighted(a)&&null!==(c=this.matchSunlightNode(a))){for(d=c[1],e=0,r(\"beforeHighlightNode\",this,{node:a}),f=0;f<a.childNodes.length;f++)if(3===a.childNodes[f].nodeType)for(i=o.call(this,a.childNodes[f].nodeValue,d,i),y++,e=e||y,g=i.getNodes(),a.replaceChild(g[0],a.childNodes[f]),h=1;h<g.length;h++)a.insertBefore(g[h],g[h-1].nextSibling);else 1===a.childNodes[f].nodeType&&t.call(this,a.childNodes[f]);a.className+=\" \"+this.options.classPrefix+\"highlighted\",\"block\"===u(a,\"display\")&&(j=b.createElement(\"div\"),j.className=this.options.classPrefix+\"container\",k=b.createElement(\"div\"),k.className=this.options.classPrefix+\"code-container\",this.options.maxHeight!==!1&&(k.style.overflowY=\"auto\",k.style.maxHeight=this.options.maxHeight+(/^\\d+$/.test(this.options.maxHeight)?\"px\":\"\")),j.appendChild(k),a.parentNode.insertBefore(k,a),a.parentNode.removeChild(a),k.appendChild(a),k.parentNode.insertBefore(j,k),k.parentNode.removeChild(k),j.appendChild(k)),r(\"afterHighlightNode\",this,{container:j,codeContainer:k,node:a,count:e})}}}}(),a.Sunlight={version:\"1.22.0\",Highlighter:s,createAnalyzer:function(){return e(t)},globalOptions:B,highlightAll:function(a){var c,d=new s(a),e=b.getElementsByTagName(\"*\");for(c=0;c<e.length;c++)d.highlightNode(e[c])},registerLanguage:function(a,b){var c,d,e;if(!a)throw'Languages must be registered with an identifier, e.g. \"php\" for PHP';b=i(i({},D),b),b.name=a,b.keywords=p(b.keywords||[],\"\\\\b\",b.caseInsensitive),b.operators=p(b.operators||[],\"\",b.caseInsensitive);for(c in b.customTokens)b.customTokens[c]=p(b.customTokens[c].values,b.customTokens[c].boundary,b.caseInsensitive);d=[];for(e in b.embeddedLanguages)d.push({parentLanguage:b.name,language:e,switchTo:b.embeddedLanguages[e].switchTo,switchBack:b.embeddedLanguages[e].switchBack});b.embeddedLanguages=d,C[b.name]=b},isRegistered:function(a){return C[a]!==c},bind:function(a,b){if(!E[a])throw'Unknown event \"'+a+'\"';\nE[a].push(b)},util:{last:g,regexEscape:k,eol:w,clone:j,escapeSequences:[\"\\\\n\",\"\\\\t\",\"\\\\r\",\"\\\\\\\\\",\"\\\\v\",\"\\\\f\"],contains:h,matchWord:n,createHashMap:p,createBetweenRule:m,createProceduralRule:l,getNextNonWsToken:function(a,b){return o(a,b,1,function(a){return\"default\"===a.name})},getPreviousNonWsToken:function(a,b){return o(a,b,-1,function(a){return\"default\"===a.name})},getNextWhile:function(a,b,c){return o(a,b,1,c)},getPreviousWhile:function(a,b,c){return o(a,b,-1,c)},whitespace:{token:\"default\",optional:!0},getComputedStyle:u}},a.Sunlight.registerLanguage(z,{punctuation:/(?!x)x/,numberParser:x})}(this,document),function(a,b){function c(a){for(var b,c=a.count();b=a.token(--c);){if(\"operator\"===b.name&&(\">\"===b.value||\"/>\"===b.value||\"</\"===b.value))return!1;if(\"tagName\"===b.name||\"xmlOpenTag\"===b.name)return!0}return!1}if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"xml\",{caseInsensitive:!0,scopes:{comment:[[\"<!--\",\"-->\"],[\"<%--\",\"--%>\"]],cdata:[[\"<![CDATA[\",\"]]>\"]],doctype:[[\"<!DOCTYPE\",\">\"]]},punctuation:/(?!x)x/,numberParser:function(){},customTokens:{xmlOpenTag:{values:[\"<?xml\"],boundary:\"\"},xmlCloseTag:{values:[\"?>\"],boundary:\"\"},aspOpenTag:{values:[\"<%@\",\"<%$\",\"<%#\",\"<%=\",\"<%\"],boundary:\"\"},aspCloseTag:{values:[\"%>\"],boundary:\"\"}},customParseRules:[function(b){var c,d,e=b.reader.current(),f=e,g=b.reader.getLine(),h=b.reader.getColumn();if(!/[A-Za-z_]/.test(e))return null;if(c=b.token(b.count()-1),!c||\"operator\"!==c.name||!a.util.contains([\"<\",\"</\"],c.value))return null;for(;(d=b.reader.peek())&&/[.\\w-]/.test(d);)f+=b.reader.read();return b.createToken(\"tagName\",f,g,h)},function(a){var b,d,e=a.reader.current(),f=a.reader.getLine(),g=a.reader.getColumn();if('\"'!==e&&\"'\"!==e)return null;if(!c(a))return null;for(b=e;(d=a.reader.peek())&&(b+=a.reader.read(),d!==e););return a.createToken(\"string\",b,f,g)},function(a){var b,d,e=a.reader.current(),f=1,g=a.reader.getLine(),h=a.reader.getColumn();if(!/[A-Za-z_]/.test(e))return null;if(!c(a))return null;for(b=a.reader.peek();b.length===f;){if(/<$/.test(b))return null;if(/>$/.test(b))return d=d||e+b.substring(0,b.length-1),a.reader.read(d.length-1),a.createToken(\"attribute\",d,g,h);!d&&/[=\\s:]$/.test(b)&&(d=e+b.substring(0,b.length-1)),b=a.reader.peek(++f)}return null},function(a){var b,c=a.reader.current(),d=1,e=a.reader.getLine(),f=a.reader.getColumn();if(\"&\"!==c)return null;for(b=a.reader.peek(d);b.length===d;){if(\";\"===b.charAt(b.length-1))return a.createToken(\"entity\",c+a.reader.read(d),e,f);if(!/[A-Za-z0-9]$/.test(b))break;b=a.reader.peek(++d)}return null},function(a){var b,c=\"<%--\",d=a.reader.getLine(),e=a.reader.getColumn();if(\"<\"!==a.reader.current()||\"%--\"!==a.reader.peek(3))return null;for(a.reader.read(3);b=a.reader.peek();){if(\"--%>\"===a.reader.peek(4)){c+=a.reader.read(4);break}c+=a.reader.read()}return a.createToken(\"comment\",c,d,e)}],embeddedLanguages:{css:{switchTo:function(a){var b,c=a.token(a.count()-1);if(!c||a.reader.current()+a.reader.peek(6)===\"</style\")return!1;if(\"operator\"!==c.name||\">\"!==c.value)return!1;for(b=a.count()-1;c=a.token(--b);)if(\"tagName\"===c.name){if(\"style\"===c.value&&(c=a.token(--b),c&&\"operator\"===c.name&&\"<\"===c.value))return!0;break}return!1},switchBack:function(a){return\"</style\"===a.reader.peek(7)}},javascript:{switchTo:function(a){var b,c=a.token(a.count()-1);if(!c||a.reader.current()+a.reader.peek(7)===\"</script\")return!1;if(\"operator\"!==c.name||\">\"!==c.value)return!1;for(b=a.count()-1;c=a.token(--b);)if(\"tagName\"===c.name){if(\"script\"===c.value&&(c=a.token(--b),c&&\"operator\"===c.name&&\"<\"===c.value))return!0;break}return!1},switchBack:function(a){return\"</script\"===a.reader.peek(8)}},php:{switchTo:function(a){var b=a.reader.peek(4);return\"<\"===a.reader.current()&&(\"?php\"===b||/^\\?(?!xml)/.test(b))},switchBack:function(a){var b=a.token(a.count()-1);return b&&\"closeTag\"===b.name}},csharp:{switchTo:function(a){var b=a.token(a.count()-1);return b&&\"aspOpenTag\"===b.name},switchBack:function(a){return\"%>\"===a.reader.peek(2)}},scala:{switchTo:function(a){return a.options.enableScalaXmlInterpolation&&\"{\"===a.reader.current()?!0:!1},switchBack:function(a){var b=a.token(a.count()-1);if(\"punctuation\"===b.name)if(\"{\"===b.value)a.items.scalaBracketNestingLevel++;else if(\"}\"===b.value&&(a.items.scalaBracketNestingLevel--,0===a.items.scalaBracketNestingLevel))return!0;return!1}}},contextItems:{scalaBracketNestingLevel:0},operators:[\"=\",\"/>\",\"</\",\"<\",\">\",\":\"]})}(this.Sunlight),function(a,b){a.fn.sunlight=function(a){var c=new b.Sunlight.Highlighter(a);return this.each(function(){c.highlightNode(this)}),this}}(jQuery,this),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"6502asm\",{keywords:[\"BCC\",\"BCS\",\"BEQ\",\"BMI\",\"BNE\",\"BPL\",\"BVC\",\"BVS\",\"CMP\",\"CPX\",\"CPY\",\"CLC\",\"CLD\",\"CLI\",\"CLV\",\"SEC\",\"SED\",\"SEI\",\"DEX\",\"DEY\",\"INX\",\"INY\",\"TAX\",\"TAY\",\"TXA\",\"TYA\",\"BRK\",\"NOP\",\"RTI\",\"RTS\",\"ASL\",\"LSR\",\"ROL\",\"ROR\",\"ADC\",\"AND\",\"BIT\",\"DEC\",\"EOR\",\"INC\",\"JMP\",\"JSR\",\"LDA\",\"LDX\",\"LDY\",\"ORA\",\"SBC\",\"STA\",\"STX\",\"STY\",\"PHA\",\"PHP\",\"PLA\",\"PLP\",\"TSX\",\"TXS\"],scopes:{string:[['\"','\"']],comment:[[\";\",\"\\n\",null,!0]]},operators:[\">>\",\"<<\",\">=\",\"<=\",\"==\",\"!=\",\"&&\",\"||\",\"~\",\"-\",\"<\",\">\",\"*\",\"/\",\"%\",\"+\",\"-\",\"=\",\"&\",\"^\",\"|\",\"?\"],identFirstLetter:/[A-Za-z]/,identAfterFirstLetter:/\\w/,customTokens:{illegalOpcode:{values:[\"SLO\",\"RLA\",\"SRE\",\"RRA\",\"SAX\",\"LAX\",\"DCP\",\"ISC\",\"ANC\",\"ALR\",\"ARR\",\"XAA\",\"AXS\",\"AHX\",\"SHY\",\"SHX\",\"TAS\",\"LAS\"],boundary:\"\\\\b\"},pseudoOp:{values:[\"BYTE\",\"WORD\",\"DS\",\"ORG\",\"RORG\",\"ALIGN\",\"MAC\",\"ENDM\",\"SUBROUTINE\"],boundary:\"\\\\b\"}},customParseRules:[function(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn(),g=0,h=0;if(\"#\"!==d)return null;for(b=a.reader.peek(),c=d;g>0||h>0||!/\\s/.test(b);)\")\"===b&&g>0&&g--,\"]\"===b&&h>0&&h--,\"(\"===b&&g++,\"[\"===b&&h++,c+=a.reader.read(),b=a.reader.peek();return a.createToken(\"constant\",c,e,f)},function(){var b=[\"BCC\",\"BCS\",\"BEQ\",\"BMI\",\"BNE\",\"BPL\",\"BVC\",\"BVS\",\"JMP\",\"JSR\"];return function(c){var d,e,f,g=c.reader.getLine(),h=c.reader.getColumn();if(!/[A-Za-z]/.test(c.reader.current()))return null;if(d=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count()),(!d||\"keyword\"!==d.name||!a.util.contains(b,d.value,!0))&&c.count()>0&&!/\\n$/.test(c.defaultData.text))return null;for(e=c.reader.current();(f=c.reader.peek())!==c.reader.EOF&&/\\w/.test(f);)e+=c.reader.read();return c.createToken(\"label\",e,g,h)}}()],caseInsensitive:!0,numberParser:function(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn();if(/\\d/.test(d))b=d,\".\"===a.reader.peek()&&(b+=a.reader.read());else{if(\"$\"!==d&&\"%\"!==d)return null;b=d+a.reader.read()}for(;(c=a.reader.peek())!==a.reader.EOF&&/[A-Fa-f0-9]/.test(c);)b+=a.reader.read();return a.createToken(\"number\",b,e,f)}})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"actionscript\",{keywords:[\"default xml namespace\",\"use namespace\",\"break\",\"case\",\"catch\",\"continue\",\"default\",\"do\",\"else\",\"finally\",\"for\",\"if\",\"in\",\"label\",\"return\",\"super\",\"switch\",\"throw\",\"try\",\"while\",\"with\",\"dynamic\",\"final\",\"internal\",\"native\",\"override\",\"private\",\"protected\",\"public\",\"static\",\"class\",\"const\",\"extends\",\"function\",\"get\",\"implements\",\"interface\",\"namespace\",\"package\",\"set\",\"var\",\"import\",\"include\",\"false\",\"null\",\"this\",\"true\",\"typeof\",\"void\",\"as\",\"instanceof\",\"is\",\"new\"],customTokens:{varArgs:{values:[\"...rest\"],boundary:\"[\\\\W]\"},constant:{values:[\"Infinity\",\"NaN\",\"undefined\"],boundary:\"\\\\b\"},globalObject:{values:[\"ArgumentError\",\"arguments\",\"Array\",\"Boolean\",\"Class\",\"Date\",\"DefinitionError\",\"Error\",\"EvalError\",\"Function\",\"int\",\"Math\",\"Namespace\",\"Number\",\"Object\",\"QName\",\"RangeError\",\"ReferenceError\",\"RegExp\",\"SecurityError\",\"String\",\"SyntaxError\",\"TypeError\",\"uint\",\"URIError\",\"Vector\",\"VerifyError\",\"XMLList\",\"XML\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",a.util.escapeSequences.concat([\"\\\\'\",\"\\\\\\\\\"])]],comment:[[\"//\",\"\\n\",null,!0],[\"/*\",\"*/\"]],xmlAttribute:[[\"@\",\"\\\\b\"]]},customParseRules:[function(){var b=a.util.createHashMap([\"Array\",\"Boolean\",\"decodeURIComponent\",\"decodeURI\",\"encodeURIComponent\",\"encodeURI\",\"escape\",\"int\",\"isFinite\",\"isNaN\",\"isXMLName\",\"Number\",\"Object\",\"parseFloat\",\"parseInt\",\"String\",\"trace\",\"uint\",\"unescape\",\"Vector\",\"XML\",\"XMLList\"],\"\\\\b\",!1);return function(c){var d,e,f,g;if(!/[A-Za-z]/.test(c.reader.current()))return null;if(d=c.token(c.count()-1),d&&(\"keyword\"===d.name&&\"new\"===d.value||\"operator\"===d.name&&\":\"===d.value))return null;if(e=a.util.matchWord(c,b,\"globalFunction\",!0),!e)return null;for(g=e.value.length;(f=c.reader.peek(g))&&f.length===g;)if(!/\\s$/.test(f)){if(\"(\"===a.util.last(f))return e.line=c.reader.getLine(),e.column=c.reader.getColumn(),c.reader.read(e.value.length-1),e;break}return null}}(),function(c){var d,e,f,g=c.reader.peek(),h=\"/\",i=c.reader.getLine(),j=c.reader.getColumn();if(\"/\"!==c.reader.current()||\"/\"===g||\"*\"===g)return null;if(d=function(){var d=c.token(c.count()-1),e=null;return\"\"!==c.defaultData.text&&(e=c.createToken(\"default\",c.defaultData.text)),e||(e=d),e===b?!0:\"default\"===e.name&&e.value.indexOf(\"\\n\")>-1?!0:a.util.contains([\"keyword\",\"ident\",\"number\"],d.name)?!1:\"punctuation\"!==d.name||a.util.contains([\"(\",\"{\",\"[\",\",\",\";\"],d.value)?!0:!1}(),!d)return null;for(;c.reader.peek()!==c.reader.EOF;)if(e=c.reader.peek(2),\"\\\\/\"!==e&&\"\\\\\\\\\"!==e){if(h+=f=c.reader.read(),\"/\"===f)break}else h+=c.reader.read(2);for(;c.reader.peek()!==c.reader.EOF&&/[A-Za-z]/.test(c.reader.peek());)h+=c.reader.read();return c.createToken(\"regexLiteral\",h,i,j)}],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{custom:[function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index);if(g&&\"operator\"===g.name&&\".\"===g.value)return!1;for(e=c.index,f=c.tokens[e];(d=c.tokens[--e])!==b;){if(\"keyword\"===d.name&&a.util.contains([\"new\",\"is\",\"instanceof\",\"import\"],d.value))return!0;if(\"default\"!==d.name)if(\"ident\"!==d.name){if(\"operator\"!==d.name||\".\"!==d.value)break;if(f&&\"ident\"!==f.name)return!1;f=d}else{if(f&&\"ident\"===f.name)return!1;f=d}}return!1}],follows:[[{token:\"keyword\",values:[\"class\",\"extends\"]},{token:\"default\"}],[{token:\"operator\",values:[\":\"]},a.util.whitespace]],between:[{opener:{token:\"keyword\",values:[\"implements\"]},closer:{token:\"punctuation\",values:[\"{\"]}}]},operators:[\"++\",\"+=\",\"+\",\"--\",\"-=\",\"-\",\"*=\",\"*\",\"/=\",\"/\",\"%=\",\"%\",\"&&=\",\"&&\",\"||=\",\"||\",\"|=\",\"|\",\"&=\",\"&\",\"^=\",\"^\",\">>>=\",\">>>\",\">>=\",\">>\",\"<<=\",\"<<\",\"<=\",\"<\",\">=\",\">\",\"===\",\"==\",\"!==\",\"!=\",\"!\",\"~\",\"::\",\"?\",\":\",\".\",\"=\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"bash\",{keywords:[\"while\",\"for\",\"in\",\"do\",\"done\",\"until\",\"if\",\"fi\",\"then\",\"else\",\"case\",\"esac\",\"break\",\"continue\",\"select\"],customTokens:{command:{values:[\"return\",\"source\",\"ac\",\"adduser\",\"agetty\",\"agrep\",\"arch\",\"ar\",\"at\",\"autoload\",\"awk\",\"badblocks\",\"banner\",\"basename\",\"batch\",\"bc\",\"bg\",\"bind\",\"bison\",\"builtin\",\"bzgrep\",\"bzip2\",\"caller\",\"cal\",\"cat\",\"cd\",\"chattr\",\"chfn\",\"chgrp\",\"chkconfig\",\"chmod\",\"chown\",\"chroot\",\"cksum\",\"clear\",\"clock\",\"cmp\",\"colrm\",\"column\",\"col\",\"command\",\"comm\",\"compgen\",\"complete\",\"compress\",\"coproc\",\"cpio\",\"cp\",\"cron\",\"crypt\",\"csplit\",\"cut\",\"cu\",\"date\",\"dc\",\"dd\",\"debugfs\",\"declare\",\"depmod\",\"df\",\"dialog\",\"diff3\",\"diffstat\",\"diff\",\"dig\",\"dirname\",\"dirs\",\"disown\",\"dmesg\",\"doexec\",\"dos2unix\",\"dump\",\"dumpe2fs\",\"du\",\"e2fsck\",\"echo\",\"egrep\",\"enable\",\"enscript\",\"env\",\"eqn\",\"eval\",\"exec\",\"exit\",\"expand\",\"export\",\"expr\",\"factor\",\"false\",\"fdformat\",\"fdisk\",\"fgrep\",\"fg\",\"file\",\"find\",\"finger\",\"flex\",\"flock\",\"fmt\",\"fold\",\"free\",\"fsck\",\"ftp\",\"fuser\",\"getfacl\",\"getopts\",\"getopt\",\"gettext\",\"getty\",\"gnome-mount\",\"grep\",\"groff\",\"groupmod\",\"groups\",\"gs\",\"gzip\",\"halt\",\"hash\",\"hdparm\",\"head\",\"help\",\"hexdump\",\"hostid\",\"hostname\",\"host\",\"hwclock\",\"iconv\",\"id\",\"ifconfig\",\"infocmp\",\"info\",\"init\",\"insmod\",\"install\",\"ipcalc\",\"ip\",\"iwconfig\",\"jobs\",\"join\",\"jot\",\"killall\",\"kill\",\"lastcomm\",\"lastlog\",\"last\",\"ldd\",\"less\",\"let\",\"lex\",\"lid\",\"ln\",\"locate\",\"lockfile\",\"logger\",\"logname\",\"logout\",\"logrotate\",\"look\",\"losetup\",\"lp\",\"lsdev\",\"lsmod\",\"lsof\",\"lspci\",\"lsusb\",\"ls\",\"ltrace\",\"lynx\",\"lzcat\",\"lzma\",\"m4\",\"mailstats\",\"mailto\",\"mail\",\"makedev\",\"make\",\"man\",\"mapfile\",\"mcookie\",\"md5sum\",\"merge\",\"mesg\",\"mimencode\",\"mkbootdisk\",\"mkdir\",\"mke2fs\",\"mkfifo\",\"mkisofs\",\"mknod\",\"mkswap\",\"mktemp\",\"mmencode\",\"modinfo\",\"modprobe\",\"more\",\"mount\",\"msgfmt\",\"mv\",\"nc\",\"netconfig\",\"netstat\",\"newgrp\",\"nice\",\"nl\",\"nmap\",\"nm\",\"nohup\",\"nslookup\",\"objdump\",\"od\",\"openssl\",\"passwd\",\"paste\",\"patch\",\"diff\",\"pathchk\",\"pax\",\"pgrep\",\"pidof\",\"ping\",\"pkill\",\"popd\",\"pr\",\"printenv\",\"printf\",\"procinfo\",\"pstree\",\"ps\",\"ptx\",\"pushd\",\"pwd\",\"quota\",\"rcp\",\"rdev\",\"rdist\",\"readelf\",\"readlink\",\"readonly\",\"read\",\"reboot\",\"recode\",\"renice\",\"reset\",\"resize\",\"restore\",\"rev\",\"rlogin\",\"rmdir\",\"rmmod\",\"rm\",\"route\",\"rpm2cpio\",\"rpm\",\"rsh\",\"rsync\",\"runlevel\",\"run-parts\",\"rx\",\"rz\",\"sar\",\"scp\",\"script\",\"sdiff\",\"sed\",\"seq\",\"service\",\"setfacl\",\"setquota\",\"setserial\",\"setterm\",\"set\",\"sha1sum\",\"shar\",\"shopt\",\"shred\",\"shutdown\",\"size\",\"skill\",\"sleep\",\"slocate\",\"snice\",\"sort\",\"source\",\"sox\",\"split\",\"sq\",\"ssh\",\"stat\",\"strace\",\"strings\",\"strip\",\"stty\",\"sudo\",\"sum\",\"suspend\",\"su\",\"swapoff\",\"swapon\",\"sx\",\"sync\",\"sz\",\"tac\",\"tail\",\"tar\",\"tbl\",\"tcpdump\",\"tee\",\"telinit\",\"telnet\",\"tex\",\"texexec\",\"time\",\"times\",\"tmpwatch\",\"top\",\"touch\",\"tput\",\"traceroute\",\"true\",\"tr\",\"tset\",\"tsort\",\"tty\",\"tune2fs\",\"typeset\",\"type\",\"ulimit\",\"umask\",\"umount\",\"uname\",\"unarc\",\"unarj\",\"uncompress\",\"unexpand\",\"uniq\",\"units\",\"unlzma\",\"unrar\",\"unset\",\"unsq\",\"unzip\",\"uptime\",\"usbmodules\",\"useradd\",\"userdel\",\"usermod\",\"users\",\"usleep\",\"uucp\",\"uudecode\",\"uuencode\",\"uux\",\"vacation\",\"vdir\",\"vmstat\",\"vrfy\",\"wait\",\"wall\",\"watch\",\"wc\",\"wget\",\"whatis\",\"whereis\",\"which\",\"whoami\",\"whois\",\"who\",\"write\",\"w\",\"xargs\",\"yacc\",\"yes\",\"zcat\",\"zdiff\",\"zdump\",\"zegrep\",\"zfgrep\",\"zgrep\",\"zip\"],boundary:\"\\\\b\"},specialVariable:{values:[\"$$\",\"$?\",\"$#\"],boundary:\"\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",[\"'\",\"\\\\\\\\\"]]],hashBang:[[\"#!\",\"\\n\",null,!0]],comment:[[\"#\",\"\\n\",null,!0]],verbatimCommand:[[\"`\",\"`\",[\"\\\\`\",\"\\\\\\\\\"]]],variable:[[\"$\",{length:1,regex:/[\\W]/},null,!0]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{precedes:[[a.util.whitespace,{token:\"punctuation\",values:[\"(\"]},a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"punctuation\",values:[\"{\"]}]]},operators:[\"++\",\"--\",\"=\",\"/\",\"+\",\"*\",\"-\",\"!=\",\".\",\"|\",\":\",\",\",\"!\",\"?\",\">>\",\">\",\"<\",\";;\",\";\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"batch\",{caseInsensitive:!0,scopes:{string:[['\"','\"',['\\\\\"',\"\\\\\\\\\"]]],comment:[[\"REM\",\"\\n\",null,!0],[\"::\",\"\\n\",null,!0]],variable:[[\"%\",{regex:/[^\\w%]/,length:1},null,!0]]},customParseRules:[function(a){var b,c,d,e,f=\"\";if(!a.reader.isSolWs()||\":\"!==a.reader.current()||\":\"===a.reader.peek())return null;for(b=a.createToken(\"operator\",\":\",a.reader.getLine(),a.reader.getColumn());(c=a.reader.peek())&&!/\\s/.test(c);)f+=a.reader.read(),d||(d=a.reader.getLine(),e=a.reader.getColumn());return\"\"===f?null:[b,a.createToken(\"label\",f,d,e)]},function(b){var c,d,e=a.util.createProceduralRule(b.count()-1,-1,[{token:\"keyword\",values:[\"goto\"]},{token:\"operator\",values:[\":\"],optional:!0}],!0),f=b.reader.getLine(),g=b.reader.getColumn();if(!e(b.getAllTokens()))return null;for(d=b.reader.current();(c=b.reader.peek())&&!/[\\W]/.test(c);)d+=b.reader.read();return b.createToken(\"label\",d,f,g)},function(){var b=a.util.createHashMap([\"assoc\",\"attrib\",\"break\",\"bcdedit\",\"cacls\",\"call\",\"cd\",\"chcp\",\"chdir\",\"chkdsk\",\"chkntfs\",\"cls\",\"cmd\",\"color\",\"comp\",\"compact\",\"convertfcopy\",\"date\",\"del\",\"dir\",\"diskcomp\",\"diskcopy\",\"diskpart\",\"doskey\",\"driverquery\",\"echo\",\"endlocal\",\"erase\",\"exit\",\"fc\",\"findstr\",\"find\",\"format\",\"for\",\"fsutil\",\"ftype\",\"goto\",\"gpresult\",\"graftabl\",\"help\",\"icacls\",\"if\",\"label\",\"md\",\"mkdir\",\"mklink\",\"mode\",\"more\",\"move\",\"openfiles\",\"path\",\"pause\",\"popd\",\"print\",\"prompt\",\"pushd\",\"rd\",\"recover\",\"rename\",\"ren\",\"replace\",\"rmdir\",\"robocopy\",\"setlocal\",\"set\",\"schtasks\",\"sc\",\"shift\",\"shutdown\",\"sort\",\"start\",\"subst\",\"systeminfo\",\"tasklist\",\"taskkill\",\"time\",\"title\",\"tree\",\"type\",\"verify\",\"ver\",\"vol\",\"xcopy\",\"wmic\",\"lfnfor\",\"do\",\"else\",\"errorlevel\",\"exist\",\"in\",\"not\",\"choice\",\"com1\",\"con\",\"prn\",\"aux\",\"nul\",\"lpt1\",\"exit\",\"eof\",\"off\",\"on\",\"equ\",\"neq\",\"lss\",\"leq\",\"gtr\",\"geq\"],\"\\\\b\",!0);return function(c){var d,e,f=a.util.matchWord(c,b,\"keyword\",!0);if(!f)return null;if(!c.reader.isSolWs())for(e=c.count();d=c.token(--e);){if(\"keyword\"===d.name&&a.util.contains([\"echo\",\"title\",\"set\"],d.value))return null;if(\"operator\"===d.name&&\"=\"===d.value)return null;if(\"operator\"===d.name&&\"|\"===d.value)break;if(\"default\"===d.name&&d.value.indexOf(\"\\n\")>=0)break}return c.reader.read(f.value.length-1),f}}()],identFirstLetter:/[A-Za-z_\\.]/,identAfterFirstLetter:/[\\w-]/,operators:[\"&&\",\"||\",\"&\",\":\",\"/\",\"==\",\"|\",\"@\",\"*\",\">>\",\">\",\"<\",\"==!\",\"!\",\"=\",\"+\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"brainfuck\",{customTokens:{increment:{values:[\">\"],boundary:\"\"},decrement:{values:[\"<\"],boundary:\"\"},incrementPointer:{values:[\"+\"],boundary:\"\"},decrementPointer:{values:[\"-\"],boundary:\"\"},write:{values:[\".\"],boundary:\"\"},read:{values:[\",\"],boundary:\"\"},openLoop:{values:[\"[\"],boundary:\"\"},closeLoop:{values:[\"]\"],boundary:\"\"}}})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";var c=[\"int\",\"char\",\"void\",\"long\",\"signed\",\"unsigned\",\"double\",\"bool\",\"typename\",\"class\",\"short\",\"wchar_t\",\"struct\"],d=[\"int\",\"char\",\"void\",\"long\",\"signed\",\"unsigned\",\"double\",\"bool\",\"typename\",\"class\",\"short\",\"wchar_t\"];a.registerLanguage(\"cpp\",{keywords:[\"and\",\"default\",\"noexcept\",\"template\",\"and_eq\",\"delete\",\"not\",\"this\",\"alignof\",\"double\",\"not_eq\",\"thread_local\",\"asm\",\"dynamic_cast\",\"nullptr\",\"throw\",\"auto\",\"else\",\"operator\",\"true\",\"bitand\",\"enum\",\"or\",\"try\",\"bitor\",\"explicittodo\",\"or_eq\",\"typedef\",\"bool\",\"export\",\"private\",\"typeid\",\"break\",\"externtodo\",\"protected\",\"typename\",\"case\",\"false\",\"public\",\"union\",\"catch\",\"float\",\"register\",\"using\",\"char\",\"for\",\"reinterpret_cast\",\"unsigned\",\"char16_t\",\"friend\",\"return\",\"void\",\"char32_t\",\"goto\",\"short\",\"wchar_t\",\"class\",\"if\",\"signed\",\"virtual\",\"compl\",\"inline\",\"sizeof\",\"volatile\",\"const\",\"int\",\"static\",\"while\",\"constexpr\",\"long\",\"static_assert\",\"xor\",\"const_cast\",\"mutable\",\"static_cast\",\"xor_eq\",\"continue\",\"namespace\",\"struct\",\"decltype\",\"new\",\"switch\"],customTokens:{constant:{values:[\"EXIT_SUCCESS\",\"EXIT_FAILURE\",\"SIG_DFL\",\"SIG_IGN\",\"SIG_ERR\",\"SIGABRT\",\"SIGFPE\",\"SIGILL\",\"SIGINT\",\"SIGSEGV\",\"SIGTERM\"],boundary:\"\\\\b\"},basicType:{values:[\"ptrdiff_t\",\"size_t\",\"nullptr_t\",\"max_align_t\"],boundary:\"\\\\b\"},ellipsis:{values:[\"...\"],boundary:\"\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])]],\"char\":[[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"//\",\"\\n\",null,!0],[\"/*\",\"*/\"]],preprocessorDirective:[[\"#\",\"\\n\",null,!0]]},customParseRules:[],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{custom:[function(){var b=[[a.util.whitespace,{token:\"operator\",values:[\"*\",\"**\"]},{token:\"default\"},{token:\"ident\"},a.util.whitespace,{token:\"punctuation\",values:[\";\"]}],[{token:\"default\"},{token:\"operator\",values:[\"&\"]},a.util.whitespace,{token:\"ident\"}]];return function(c){var d,e,f=function(d){for(var e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens);if(!f)return!1;for(e=c.index;d=c.tokens[--e];){if(\"punctuation\"===d.name&&(\";\"===d.value||\"{\"===d.value))return!0;if(\"operator\"===d.name&&\"=\"===d.value)return!1}return!1}}(),function(){var b=[[a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"ident\"}],[{token:\"operator\",values:[\"*\",\"**\"]},a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"operator\",values:[\"&\"],optional:!0},{token:\"ident\"}]];return function(c){var d,e,f,g=function(d){for(var e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens);if(!g)return!1;for(e=c.index;d=c.tokens[--e];)if(\"punctuation\"===d.name&&\"(\"===d.value)return f=a.util.getPreviousNonWsToken(c.tokens,e),f&&\"keyword\"===f.name?!1:!0;return!1}}(),function(c){var e,f,g=c.index,h=a.util.getPreviousNonWsToken(c.tokens,c.index),i=!1;if(!h||\"keyword\"===h.name)return!1;for(f=[0,0];(e=c.tokens[--g])!==b;){if(\"keyword\"===e.name&&\"class\"===e.value)return!1;if(\"operator\"!==e.name){if(!(\"keyword\"===e.name&&a.util.contains(d,e.value)||\"default\"===e.name||\"punctuation\"===e.name&&\",\"===e.value)){if(\"ident\"!==e.name)break;i=!0}}else switch(e.value){case\"<\":case\"<<\":f[0]+=e.value.length;break;case\">\":case\">>\":if(0===f[0])return!1;f[1]+=e.value.length;break;case\".\":break;default:return!1}}if(!i||0===f[0])return!1;for(g=c.index;(e=c.tokens[++g])!==b;){if(\"operator\"===e.name&&(\">\"===e.value||\">>\"===e.value))return!0;if(!(\"keyword\"===e.name&&a.util.contains(d,e.value)||\"operator\"===e.name&&a.util.contains([\"<\",\"<<\",\">\",\">>\"],e.value)||\"punctuation\"===e.name&&\",\"===e.value||\"ident\"===e.name||\"default\"===e.name))return!1}return!1},function(e){var f,g,h=a.util.getPreviousNonWsToken(e.tokens,e.index);if(h!==b&&(\"ident\"===h.name||\"keyword\"===h.name&&a.util.contains(c.concat([\"string\",\"object\",\"void\"]),h.value)||\"operator\"===h.name&&\".\"===h.value))return!1;if(h=a.util.getNextNonWsToken(e.tokens,e.index),!h||\"operator\"!==h.name||\"<\"!==h.value)return!1;for(f=e.index,g=[0,0];(h=e.tokens[++f])!==b;)if(\"operator\"!==h.name){if(!(\"default\"===h.name||\"ident\"===h.name||\"keyword\"===h.name&&a.util.contains(d,h.value)||\"punctuation\"===h.name&&\",\"===h.value))return!1}else{switch(h.value){case\"<\":g[0]++;break;case\"<<\":g[0]+=2;break;case\">\":g[1]++;break;case\">>\":g[1]+=2;break;default:return!1}if(g[0]===g[1])break}return g[0]!==g[1]?!1:(h=e.tokens[++f],!h||\"default\"!==h.name&&\"ident\"!==h.name?!1:\"default\"!==h.name||(h=e.tokens[++f],h&&\"ident\"===h.name)?!0:!1)},function(b){var c,d,e=a.util.getPreviousNonWsToken(b.tokens,b.index);if(!e||\"keyword\"!==e.name||\"class\"!==e.value)return!1;for(d=b.index;c=b.tokens[++d];){if(\"punctuation\"===c.name&&\"{\"===c.value)return!0;if(\"operator\"===c.name&&a.util.contains([\">\",\">>\"],c.value))return!1}return!1}],follows:[[{token:\"keyword\",values:[\"enum\",\"struct\",\"union\"]},a.util.whitespace]],precedes:[[{token:\"default\"},{token:\"ident\"}],[a.util.whitespace,{token:\"operator\",values:[\"*\",\"**\"]},{token:\"default\"},{token:\"ident\"},a.util.whitespace,{token:\"operator\",values:[\"=\",\",\"]}],[a.util.whitespace,{token:\"operator\",values:[\"*\",\"**\"]},{token:\"default\"},{token:\"operator\",values:[\"&\"]},a.util.whitespace,{token:\"ident\"},a.util.whitespace,{token:\"operator\",values:[\"=\",\",\"]}],[a.util.whitespace,{token:\"operator\",values:[\"::\"]}]]},operators:[\"==\",\"=\",\"+=\",\"++\",\"+\",\"->*\",\"->\",\"-=\",\"--\",\"-\",\"**\",\"*=\",\"*\",\"/=\",\"/\",\"%=\",\"%\",\"!=\",\"!\",\">>=\",\">>\",\">=\",\">\",\"<<=\",\"<<\",\"<=\",\"<\",\"&=\",\"&&\",\"&\",\"|=\",\"||\",\"|\",\"~\",\"^=\",\"^\",\".*\",\".\",\"?\",\"::\",\":\",\",\"]})}(this.Sunlight),function(a,b){function c(a){var b=/^T([A-Z0-9]\\w*)?$/;return function(c){return!b.test(c.tokens[c.index].value)&&a(c)}}if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";var d=[\"int\",\"bool\",\"double\",\"float\",\"char\",\"byte\",\"sbyte\",\"uint\",\"long\",\"ulong\",\"char\",\"decimal\",\"short\",\"ushort\"],e=d.concat([\"in\",\"out\",\"string\",\"object\"]);a.registerLanguage(\"csharp\",{keywords:d.concat([\"extern alias\",\"public\",\"private\",\"protected\",\"internal\",\"static\",\"sealed\",\"abstract\",\"partial\",\"virtual\",\"override\",\"new\",\"implicit\",\"explicit\",\"extern\",\"override\",\"operator\",\"const\",\"readonly\",\"volatile\",\"class\",\"interface\",\"enum\",\"struct\",\"event\",\"delegate\",\"null\",\"true\",\"false\",\"string\",\"object\",\"void\",\"for\",\"foreach\",\"do\",\"while\",\"fixed\",\"unchecked\",\"using\",\"lock\",\"namespace\",\"checked\",\"unsafe\",\"if\",\"else\",\"try\",\"catch\",\"finally\",\"break\",\"continue\",\"goto\",\"case\",\"throw\",\"return\",\"switch\",\"yield return\",\"yield break\",\"in\",\"out\",\"ref\",\"params\",\"as\",\"is\",\"typeof\",\"this\",\"sizeof\",\"stackalloc\",\"var\",\"default\",\"from\",\"select\",\"where\",\"groupby\",\"orderby\"]),customParseRules:[function(a){var b,c,d=\"xmlDocCommentMeta\",e=\"xmlDocCommentContent\",f={line:0,column:0,value:\"\",name:null};if(\"/\"!==a.reader.current()||\"//\"!==a.reader.peek(2))return null;for(b=[a.createToken(d,\"///\",a.reader.getLine(),a.reader.getColumn())],a.reader.read(2);(c=a.reader.peek())!==a.reader.EOF;)if(\"<\"!==c||f.name===d)if(\">\"!==c||f.name!==d){if(\"\\n\"===c)break;null===f.name&&(f.name=e,f.line=a.reader.getLine(),f.column=a.reader.getColumn()),f.value+=a.reader.read()}else f.value+=a.reader.read(),b.push(a.createToken(f.name,f.value,f.line,f.column)),f.name=null,f.value=\"\";else\"\"!==f.value&&b.push(a.createToken(f.name,f.value,f.line,f.column)),f.line=a.reader.getLine(),f.column=a.reader.getColumn(),f.name=d,f.value=a.reader.read();return f.name===e&&b.push(a.createToken(f.name,f.value,f.line,f.column)),b.length>0?b:null},function(b){var c,d,e,f,g=!1,h=b.reader.getLine(),i=b.reader.getColumn();if(!/^(get|set)\\b/.test(b.reader.current()+b.reader.peek(3)))return null;if(c=a.util.createProceduralRule(b.count()-1,-1,[{token:\"punctuation\",values:[\"}\",\"{\",\";\"]},a.util.whitespace,{token:\"keyword\",values:[\"public\",\"private\",\"protected\",\"internal\"],optional:!0}]),!c(b.getAllTokens()))return null;for(d=\"get\".length,e=b.reader.peek(d);e.length===d;){if(!/\\s$/.test(e)){if(!/[\\{;]$/.test(e))return null;g=!0;break}e=b.reader.peek(++d)}return g?(f=b.reader.current()+b.reader.read(2),b.createToken(\"keyword\",f,h,i)):null},function(a){var c,d,e,f,g,h,i,j=a.reader.getLine(),k=a.reader.getColumn();if(!/^value\\b/.test(a.reader.current()+a.reader.peek(5)))return null;for(c=\"value\".length,d=a.reader.peek(c);d.length===c;){if(!/\\s$/.test(d)){if(i=a.reader.peek(c+1),\"=\"===d.charAt(d.length-1)&&\"=\"!==i.charAt(i.length-1))return null;e=!0;break}d=a.reader.peek(++c)}if(!e)return null;g=a.count()-1,h=[0,0];a:for(;(f=a.token(g--))!==b;)if(\"punctuation\"===f.name)\"{\"===f.value?h[0]++:\"}\"===f.value&&h[1]++;else if(\"keyword\"===f.name)switch(f.value){case\"set\":break a;case\"class\":case\"public\":case\"private\":case\"protected\":case\"internal\":return null}return f===b?null:h[1]>=h[0]?null:(a.reader.read(4),a.createToken(\"keyword\",\"value\",j,k))}],scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],['@\"','\"',['\"\"']]],\"char\":[[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"//\",\"\\n\",null,!0],[\"/*\",\"*/\"]],pragma:[[\"#\",\"\\n\",null,!0]]},identFirstLetter:/[A-Za-z_@]/,identAfterFirstLetter:/\\w/,namedIdentRules:{custom:[c(function(a){for(var c,d,e=a.index,f=!1;(c=a.tokens[--e])!==b;){if(\"punctuation\"===c.name&&\"{\"===c.value)return!1;if(\"keyword\"===c.name&&\"case\"===c.value)return!1;if(\"keyword\"===c.name&&(\"class\"===c.value||\"where\"===c.value)){if(d=\"default\"===a.tokens[e+1].name?a.tokens[e+2]:a.tokens[e+1],\"punctuation\"===d.name&&\",\"===d.value)continue;break}\"operator\"===c.name&&\":\"===c.value&&(f=!0)}return f?!0:!1}),c(function(c){for(var d,f=c.index,g=!1,h=[0,0];(d=c.tokens[--f])!==b;){if(\"keyword\"===d.name&&\"class\"===d.value)return!1;if(\"operator\"===d.name){switch(d.value){case\"<\":case\"<<\":h[0]+=d.value.length;continue;case\">\":case\">>\":if(0===h[0])return!1;h[1]+=d.value.length;continue}break}if(!(\"keyword\"===d.name&&a.util.contains(e,d.value)||\"default\"===d.name||\"punctuation\"===d.name&&\",\"===d.value)){if(\"ident\"!==d.name)break;g=!0}}if(!g||0===h[0])return!1;for(f=c.index;(d=c.tokens[++f])!==b;){if(\"operator\"===d.name&&(\">\"===d.value||\">>\"===d.value))return!0;if(!(\"keyword\"===d.name&&a.util.contains(e,d.value)||\"operator\"===d.name&&a.util.contains([\"<\",\"<<\",\">\",\">>\"],d.value)||\"punctuation\"===d.name&&\",\"===d.value||\"ident\"===d.name||\"default\"===d.name))return!1}return!1}),c(function(c){var f,g,h=a.util.getPreviousNonWsToken(c.tokens,c.index);if(h!==b&&(\"ident\"===h.name||\"keyword\"===h.name&&a.util.contains(d.concat([\"string\",\"object\",\"void\"]),h.value)||\"operator\"===h.name&&\".\"===h.value))return!1;if(h=a.util.getNextNonWsToken(c.tokens,c.index),!h||\"operator\"!==h.name||\"<\"!==h.value)return!1;for(f=c.index,g=[0,0];(h=c.tokens[++f])!==b;)if(\"operator\"!==h.name){if(!(\"default\"===h.name||\"ident\"===h.name||\"keyword\"===h.name&&a.util.contains(e,h.value)||\"punctuation\"===h.name&&\",\"===h.value))return!1}else{switch(h.value){case\"<\":g[0]++;break;case\"<<\":g[0]+=2;break;case\">\":g[1]++;break;case\">>\":g[1]+=2;break;default:return!1}if(g[0]===g[1])break}return g[0]!==g[1]?!1:(h=c.tokens[++f],!h||\"default\"!==h.name&&\"ident\"!==h.name?!1:\"default\"!==h.name||(h=c.tokens[++f],h&&\"ident\"===h.name)?!0:!1)}),function(b){var c,d=a.util.getPreviousNonWsToken(b.tokens,b.index);return d&&\"keyword\"===d.name&&\"using\"===d.value?(c=a.util.getNextNonWsToken(b.tokens,b.index),c&&\"operator\"===c.name&&\"=\"===c.value?!0:!1):!1},c(function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index),h=!1;if(g&&\"operator\"===g.name&&(\"=\"===g.value||\".\"===g.value))return!1;for(d=c.index,e=[0,0],h=!1;(g=c.tokens[--d])!==b;)if(\"punctuation\"===g.name){if(\"[\"===g.value){e[0]++;continue}if(\"]\"===g.value){e[1]++;continue}if(\",\"===g.value&&(h=!0),\"{\"===g.value||\"}\"===g.value||\";\"===g.value)break}if(0===e[0]||e[0]===e[1])return!1;for(d=c.index,f=-1;(g=c.tokens[++d])!==b;)if(\"punctuation\"===g.name){if(\"[\"===g.value){e[0]++;continue}if(\"]\"===g.value){f=d,e[1]++;continue}if(\"{\"===g.value||\"}\"===g.value||\";\"===g.value)break}return 0>f||e[0]!==e[1]?!1:(g=a.util.getNextNonWsToken(c.tokens,f),!g||\"keyword\"!==g.name&&\"ident\"!==g.name?!1:!0)}),c(function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index);if(g&&\"operator\"===g.name&&\".\"===g.value)return!1;for(e=c.index,f=c.tokens[e];(d=c.tokens[--e])!==b;){if(\"keyword\"===d.name&&(\"new\"===d.value||\"is\"===d.value))return!0;if(\"default\"!==d.name)if(\"ident\"!==d.name){if(\"operator\"!==d.name||\".\"!==d.value)break;if(f&&\"ident\"!==f.name)return!1;f=d}else{if(f&&\"ident\"===f.name)return!1;f=d}}return!1}),function(){var b=[[a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"ident\"}],[a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"keyword\",values:[\"this\"]}]];return c(function(c){var d,e,f,g=function(d){for(var e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens);if(!g)return!1;for(e=c.index;d=c.tokens[--e];)if(\"punctuation\"===d.name&&\"(\"===d.value)return f=a.util.getPreviousNonWsToken(c.tokens,e),f&&\"keyword\"===f.name?!1:!0;return!1})}(),function(b){var c,d,e=a.util.getNextNonWsToken(b.tokens,b.index);if(!e||\"punctuation\"!==e.name||\";\"!==e.value)return!1;for(d=b.index;c=b.tokens[--d];)if(\"ident\"!==c.name&&\"default\"!==c.name&&(\"operator\"!==c.name||\".\"!==c.value))return\"operator\"!==c.name||\"=\"!==c.value?!1:a.util.createProceduralRule(d-1,-1,[{token:\"keyword\",values:[\"using\"]},{token:\"default\"},{token:\"ident\"},a.util.whitespace])(b.tokens);return!1},c(function(b){var c,d=[[{token:\"keyword\",values:[\"class\",\"interface\",\"event\",\"struct\",\"enum\",\"delegate\",\"public\",\"private\",\"protected\",\"internal\",\"static\",\"virtual\",\"sealed\",\"params\"]},a.util.whitespace],[{token:\"keyword\",values:[\"typeof\",\"default\"]},a.util.whitespace,{token:\"punctuation\",values:[\"(\"]},a.util.whitespace],[{token:\"keyword\",values:[\"as\"]},a.util.whitespace]],e=[[a.util.whitespace,{token:\"punctuation\",values:[\"[\"]},a.util.whitespace,{token:\"punctuation\",values:[\"]\"]}],[{token:\"default\"},{token:\"ident\"}]];for(c=0;c<d.length;c++)if(a.util.createProceduralRule(b.index-1,-1,d[c],!1)(b.tokens))return!0;for(c=0;c<e.length;c++)if(a.util.createProceduralRule(b.index+1,1,e[c],!1)(b.tokens))return!0;return!1})]},operators:[\"++\",\"+=\",\"+\",\"--\",\"-=\",\"-\",\"*=\",\"*\",\"/=\",\"/\",\"%=\",\"%\",\"&&\",\"||\",\"|=\",\"|\",\"&=\",\"&\",\"^=\",\"^\",\">>=\",\">>\",\"<<=\",\"<<\",\"<=\",\"<\",\">=\",\">\",\"==\",\"!=\",\"!\",\"~\",\"??\",\"?\",\"::\",\":\",\".\",\"=>\",\"=\"]})}(this.Sunlight),function(a,b){function c(a){for(var c,d,e=a.count(),f=\"\",g=!0,h=1;(c=a.token(--e))!==b&&(\"punctuation\"!==c.name||\"}\"!==c.value);)if(\"punctuation\"===c.name&&\"{\"===c.value)return null;\nfor(d=a.reader.peek();d.length===h;){if(letter=d.charAt(d.length-1),/[^\\w-]$/.test(d)){if(g=!1,\"{\"===letter)break;if(\";\"===letter)return null}g&&(f+=letter),d=a.reader.peek(++h)}return f}if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"css\",{caseInsensitive:!0,keywords:[\"background-color\",\"background-image\",\"background-repeat\",\"background-attachment\",\"background-position\",\"background-clip\",\"background-origin\",\"background-size\",\"background\",\"border-collapse\",\"border-top-style\",\"border-right-style\",\"border-left-style\",\"border-bottom-style\",\"border-style\",\"border-top-width\",\"border-right-width\",\"border-left-width\",\"border-bottom-width\",\"border-width\",\"border-top-color\",\"border-right-color\",\"border-left-color\",\"border-bottom-color\",\"border-color\",\"border-radius\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-bottom-right-radius\",\"border-bottom-left-radius\",\"border-image-repeat\",\"border-image-source\",\"border-image-slice\",\"border-image-width\",\"border-image-outset\",\"border-image\",\"border-top\",\"border-bottom\",\"border-right\",\"border-left\",\"border-spacing\",\"border\",\"box-decoration-break\",\"box-shadow\",\"voice-volume\",\"voice-balance\",\"pause-before\",\"pause-after\",\"pause\",\"rest-before\",\"rest-after\",\"rest\",\"cue-before\",\"cue-after\",\"cue\",\"mark-before\",\"mark-after\",\"mark\",\"voice-family\",\"voice-rate\",\"voice-pitch\",\"voice-pitch-range\",\"voice-stress\",\"voice-duration\",\"phonemes\",\"speak-header\",\"speak-numeral\",\"speak-punctuation\",\"pitch-range\",\"play-during\",\"richness\",\"speak\",\"speech-rate\",\"appearance\",\"icon\",\"box-sizing\",\"outline-width\",\"outline-style\",\"outline-color\",\"outline-offset\",\"outline\",\"resize\",\"cursor\",\"nav-index\",\"nav-up\",\"nav-right\",\"nav-down\",\"nav-left\",\"display\",\"position\",\"float\",\"clear\",\"visibility\",\"bottom\",\"top\",\"left\",\"right\",\"overflow\",\"overflow-x\",\"overflow-y\",\"overflow-style\",\"marquee-style\",\"marquee-direction\",\"marquee-play-count\",\"marquee-speed\",\"padding-top\",\"padding-right\",\"padding-bottom\",\"padding-left\",\"padding\",\"margin-top\",\"margin-right\",\"margin-bottom\",\"margin-left\",\"margin\",\"width\",\"height\",\"min-width\",\"max-width\",\"min-height\",\"max-height\",\"rotation-point\",\"rotation\",\"white-space-collapsing\",\"white-space\",\"line-break\",\"word-break\",\"hyphens\",\"hyphenate-character\",\"hyphenate-limit-before\",\"hyphenate-limit-after\",\"hyphenate-limit-lines\",\"hyphenate-limit-last\",\"hyphenate-resource\",\"text-wrap\",\"word-wrap\",\"text-align-first\",\"text-align-last\",\"text-align\",\"text-justify\",\"word-spacing\",\"letter-spacing\",\"text-trim\",\"text-autospace\",\"text-indent\",\"hanging-punctuation\",\"text-decoration-line\",\"text-decoration-color\",\"text-decoration-style\",\"text-decoration-skip\",\"text-decoration\",\"text-underline-position\",\"text-emphasis-position\",\"text-emphasis-style\",\"text-emphasis-color\",\"text-emphasis\",\"text-shadow\",\"text-outline\",\"text-transform\",\"vertical-align\",\"direction\",\"unicode-bidi\",\"writing-mode\",\"text-orientation\",\"text-combine\",\"color\",\"opacity\",\"font-family\",\"font-weight\",\"font-stretch\",\"font-style\",\"font-size-adjust\",\"font-size\",\"font-synthesis\",\"src\",\"unicode-range\",\"font-feature-settings\",\"font-kerning\",\"vertical-position\",\"font-variant-ligatures\",\"font-variant-caps\",\"font-variant-numeric\",\"font-variant-alternates\",\"font-variant-east-asian\",\"font-variant\",\"font-feature-settings\",\"font-language-override\",\"font\",\"line-height\",\"text-height\",\"transform-origin\",\"transform-style\",\"perspective-origin\",\"perspective\",\"backface-visibility\",\"transform\",\"transition-property\",\"transition-duration\",\"transition-timing-function\",\"transition-delay\",\"list-style-type\",\"list-style-image\",\"list-style-position\",\"list-style\",\"column-width\",\"column-count\",\"colunns\",\"column-gap\",\"column-rule-color\",\"column-rule-style\",\"column-rule-width\",\"column-rule\",\"break-before\",\"break-after\",\"break-inside\",\"column-span\",\"column-fill\",\"caption-side\",\"table-layout\",\"empty-cells\",\"fit-position\",\"fit\",\"image-orientation\",\"orphans\",\"page-break-after\",\"page-break-before\",\"page-break-inside\",\"page\",\"size\",\"widows\",\"content\",\"z-index\",\"counter-increment\",\"counter-reset\",\"azimuth\",\"elevation\",\"quotes\",\"filter\",\"zoom\",\"-moz-appearance\",\"-moz-background-clip\",\"-moz-background-inline-policy\",\"-moz-background-origin\",\"-moz-background-size\",\"-moz-binding\",\"-moz-border-bottom-colors\",\"-moz-border-left-colors\",\"-moz-border-right-colors\",\"-moz-border-top-colors\",\"-moz-border-end\",\"-moz-border-end-color\",\"-moz-border-end-style\",\"-moz-border-end-width\",\"-moz-border-image\",\"-moz-border-start\",\"-moz-border-start-color\",\"-moz-border-start-style\",\"-moz-border-start-width\",\"-moz-box-align\",\"-moz-box-direction\",\"-moz-box-flex\",\"-moz-box-flexgroup\",\"-moz-box-ordinal-group\",\"-moz-box-orient\",\"-moz-box-pack\",\"-moz-box-sizing\",\"-moz-column-count\",\"-moz-column-gap\",\"-moz-column-width\",\"-moz-column-rule\",\"-moz-column-rule-width\",\"-moz-column-rule-style\",\"-moz-column-rule-color\",\"-moz-float-edge\",\"-moz-font-feature-settings\",\"-moz-font-language-override\",\"-moz-force-broken-image-icon\",\"-moz-image-region\",\"-moz-margin-end\",\"-moz-margin\",\"-moz-opacity\",\"-moz-outline\",\"-moz-outline-color\",\"-moz-outline-offset\",\"-moz-outline-radius\",\"-moz-outline-radius-bottomleft\",\"-moz-outline-radius-bottomright\",\"-moz-outline-radius-topleft\",\"-moz-outline-radius-topright\",\"-moz-outline-style\",\"-moz-outline-width\",\"-moz-padding-end\",\"-moz-padding-start\",\"-moz-stack-sizing\",\"-moz-tab-size\",\"-moz-transform\",\"-moz-transform-origin\",\"-moz-transition\",\"-moz-transition-delay\",\"-moz-transition-duration\",\"-moz-transition-property\",\"-moz-transition-timing-function\",\"-moz-user-focus\",\"-moz-user-input\",\"-moz-user-modify\",\"-moz-user-select\",\"-moz-window-shadow\",\"-webkit-appearance\",\"-webkit-background-clip\",\"-webkit-background-composite\",\"-webkit-background-origin\",\"-webkit-background-size\",\"-webkit-binding\",\"-webkit-border-bottom-left-radius\",\"-webkit-border-bottom-right-radius\",\"-webkit-border-fit\",\"-webkit-border-horizontal-spacing\",\"-webkit-border-image\",\"-webkit-border-radius\",\"-webkit-border-top-left-radius\",\"-webkit-border-top-right-radius\",\"-webkit-border-vertical-spacing\",\"-webkit-box-align\",\"-webkit-box-direction\",\"-webkit-box-flex\",\"-webkit-box-flex-group\",\"-webkit-box-lines\",\"-webkit-box-ordinal-group\",\"-webkit-box-orient\",\"-webkit-box-pack\",\"-webkit-box-shadow\",\"-webkit-box-sizing\",\"-webkit-column-break-after\",\"-webkit-column-break-before\",\"-webkit-column-break-inside\",\"-webkit-column-count\",\"-webkit-column-gap\",\"-webkit-column-rule\",\"-webkit-column-rule-color\",\"-webkit-column-rule-style\",\"-webkit-column-rule-width\",\"-webkit-column-width\",\"-webkit-columns\",\"-webkit-dashboard-region\",\"-webkit-font-size-delta\",\"-webkit-highlight\",\"-webkit-line-break\",\"-webkit-line-clamp\",\"-webkit-margin-bottom-collapse\",\"-webkit-margin-collapse\t#\",\"-webkit-margin-start\",\"-webkit-margin-top-collapse\",\"-webkit-marquee\",\"-webkit-marquee-direction\",\"-webkit-marquee-increment\",\"-webkit-marquee-repetition\",\"-webkit-marquee-speed\",\"-webkit-marquee-style\",\"-webkit-match-nearest-mail-blockquote-color\",\"-webkit-nbsp-mode\",\"-webkit-padding-start\",\"-webkit-rtl-ordering\",\"-webkit-text-decorations-in-effect\",\"-webkit-text-fill-color\",\"-webkit-text-security\",\"-webkit-text-size-adjust\",\"-webkit-text-stroke\",\"-webkit-text-stroke-color\",\"-webkit-text-stroke-width\",\"-webkit-user-drag\",\"-webkit-user-modify\",\"-webkit-user-select\",\"-o-border-image\",\"-o-device-pixel-ratio\",\"-o-linear-gradient\",\"-o-repeating-linear-gradient\",\"-o-object-fit\",\"-o-object-position\",\"-o-tab-size\",\"-o-table-baseline\",\"-o-transform\",\"-o-transform-origin\",\"-o-transition\",\"-o-transition-delay\",\"-o-transition-duration\",\"-o-transition-property\",\"-o-transition-timing-function\",\"-o-zoom-in\",\"-o-zoom-out\",\"-ms-accelerator\",\"-ms-background-position-x\",\"-ms-background-position-y\",\"-ms-behavior\",\"-ms-block-progression\",\"-ms-filter\",\"-ms-ime-mode\",\"-ms-layout-grid\",\"-ms-layout-grid-char\",\"-ms-layout-grid-line\",\"-ms-layout-grid-mode\",\"-ms-layout-grid-type\",\"-ms-line-break\",\"-ms-line-grid-mode\",\"-ms-interpolation-mode\",\"-ms-overflow-x\",\"-ms-overflow-y\",\"-ms-scrollbar-3dlight-color\",\"-ms-scrollbar-arrow-color\",\"-ms-scrollbar-base-color\",\"-ms-scrollbar-darkshadow-color\",\"-ms-scrollbar-face-color\",\"-ms-scrollbar-highlight-color\",\"-ms-scrollbar-shadow-color\",\"-ms-scrollbar-track-color\",\"-ms-text-align-last\",\"-ms-text-autospace\",\"-ms-text-justify\",\"-ms-text-kashida-space\",\"-ms-text-overflow\",\"-ms-text-underline-position\",\"-ms-word-break\",\"-ms-word-wrap\",\"-ms-writing-mode\",\"-ms-zoom\"],customParseRules:[function(){var b=a.util.createHashMap([\"matrix\",\"translate\",\"translateX\",\"translateY\",\"scaleX\",\"scaleY\",\"rotate\",\"skewX\",\"skewY\",\"skew\",\"translate3d\",\"scaleZ\",\"translateZ\",\"rotate3d\",\"perspective\",\"url\",\"alpha\",\"basicimage\",\"blur\",\"dropshadow\",\"engrave\",\"glow\",\"light\",\"maskfilter\",\"motionblur\",\"shadow\",\"wave\"],\"\\\\b\",!0);return function(c){var d,e,f=a.util.matchWord(c,b,\"function\",!0);if(null===f)return null;for(d=f.value.length,e=c.reader.peek(d);e.length===d&&e!==c.reader.EOF;){if(!/\\s$/.test(e)){if(\"(\"===e.charAt(e.length-1))return c.reader.read(f.value.length-1),f;break}e=c.reader.peek(++d)}return null}}(),function(){var b=a.util.createHashMap([\"root\",\"nth-child\",\"nth-last-child\",\"nth-of-type\",\"nth-last-of-type\",\"first-child\",\"last-child\",\"first-of-type\",\"last-of-type\",\"only-child\",\"only-of-type\",\"empty\",\"link\",\"visited\",\"active\",\"hover\",\"focus\",\"target\",\"lang\",\"enabled\",\"disabled\",\"checked\",\"first-line\",\"first-letter\",\"before\",\"after\",\"not\",\"read-only\",\"read-write\",\"default\",\"valid\",\"invalid\",\"in-range\",\"out-of-range\",\"required\",\"optional\"],\"\\\\b\",!0);return function(c){var d=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count());return d&&\"operator\"===d.name&&\":\"===d.value?a.util.matchWord(c,b,\"pseudoClass\"):null}}(),function(){var b=a.util.createHashMap([\"before\",\"after\",\"value\",\"choices\",\"repeat-item\",\"repeat-index\",\"marker\"],\"\\\\b\",!0);return function(c){var d=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count());return d&&\"operator\"===d.name&&\"::\"===d.value?a.util.matchWord(c,b,\"pseudoElement\"):null}}(),function(a){var b,d=a.reader.getLine(),e=a.reader.getColumn();return\".\"!==a.reader.current()?null:(b=c(a),null===b?null:(a.reader.read(b.length),[a.createToken(\"operator\",\".\",d,e),a.createToken(\"class\",b,d,e+1)]))},function(b){var d,e,f=b.reader.current(),g=b.reader.getLine(),h=b.reader.getColumn();return/[A-Za-z_]/.test(f)?(d=a.util.getPreviousNonWsToken(b.getAllTokens(),b.count()),!d||\"operator\"!==d.name||\":\"!==d.value&&\"::\"!==d.value?(e=c(b),null===e?null:(b.reader.read(e.length),b.createToken(\"element\",f+e,g,h))):null):null},function(a){var b,c,d=1,e=\"#\",f=!0,g=a.reader.getLine(),h=a.reader.getColumn();if(\"#\"!==a.reader.current())return null;for(b=a.reader.peek();b.length===d&&(c=b.charAt(b.length-1),\"}\"!==c&&\";\"!==c);){if(\"{\"===c)return null;f&&/[A-Fa-f0-9]/.test(c)?e+=c:f=!1,b=a.reader.peek(++d)}return a.reader.read(e.length-1),a.createToken(\"hexColor\",e,g,h)}],numberParser:function(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn(),g=!0;if(/\\d/.test(d))b=d,\"0\"===d&&\".\"!==a.reader.peek()&&(g=!1);else{if(\".\"!==d||!/\\d/.test(a.reader.peek()))return null;b=d+a.reader.read(),g=!1}for(;(c=a.reader.peek())!==a.reader.EOF;){if(!/[A-Za-z0-9%]/.test(c)){if(\".\"===c&&g&&/\\d$/.test(a.reader.peek(2))){b+=a.reader.read(),g=!1;continue}break}b+=a.reader.read()}return a.createToken(\"number\",b,e,f)},customTokens:{rule:{values:[\"@import\",\"@media\",\"@font-face\",\"@phonetic-alphabet\",\"@hyphenate-resource\",\"@font-feature-values\",\"@charset\",\"@namespace\",\"@page\",\"@bottom-left-corner\",\"@bottom-left\",\"@bottom-center\",\"@bottom-right\",\"@bottom-right-corner\",\"@top-left-corner\",\"@top-left\",\"@top-center\",\"@top-right\",\"@top-right-corner\"],boundary:\"\\\\b\"},microsoftFilterPrefix:{values:[\"progid:DXImageTransform.Microsoft\"],boundary:\"\\\\b\"},importantFlag:{values:[\"!important\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',['\\\\\"',\"\\\\\\\\\"]],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"/*\",\"*/\"]],id:[[\"#\",{length:1,regex:/[^-\\w]/},null,!0]]},identFirstLetter:/[A-Za-z-]/,identAfterFirstLetter:/[\\w-]/,operators:[\"::\",\":\",\">\",\"+\",\"~=\",\"^=\",\"$=\",\"|=\",\"=\",\".\",\"*\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"diff\",{doNotParse:/(?!x)x/,scopes:{header:[[\"---\",\"\\n\",null,!0],[\"+++\",\"\\n\",null,!0],[\"***\",\"\\n\",null,!0]],added:[[\"+\",\"\\n\",null,!0]],removed:[[\"-\",\"\\n\",null,!0]],modified:[[\"!\",\"\\n\",null,!0]],unchanged:[[\" \",\"\\n\",null,!0]],rangeInfo:[[\"@@\",\"\\n\",null,!0]],mergeHeader:[[\"Index:\",\"\\n\",null,!0],[\"=\",\"\\n\",null,!0]]},customTokens:{noNewLine:{values:[\"\\\\ No newline at end of file\"],boundary:\"\\\\b\"}}})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"erlang\",{keywords:[\"after\",\"andalso\",\"and\",\"band\",\"begin\",\"bnot\",\"bor\",\"bsl\",\"bsr\",\"bxor\",\"case\",\"catch\",\"cond\",\"div\",\"end\",\"fun\",\"if\",\"let\",\"not\",\"of\",\"orelse\",\"or\",\"query\",\"receive\",\"rem\",\"try\",\"when\",\"xor\",\"true\",\"false\"],customParseRules:[function(a){var b,c,d,e=a.reader.getLine(),f=a.reader.getColumn(),g=0,h=!1,i=1;if(!/[A-Za-z_]/.test(a.reader.current()))return null;for(;(b=a.reader.peek(++g))&&b.length===g&&/[\\w@]$/.test(b););for(c=a.reader.current()+b.substring(0,b.length-1),g--;(b=a.reader.peek(++g))&&b.length===g;)if(!/\\s$/.test(b)){/\\($/.test(b)&&(h=!0);break}if(!h&&!/^[A-Z_]/.test(c))return null;if(a.reader.read(c.length-1),g=1,h){for(;(b=a.reader.peek(++g))&&b.length===g;){if(d=b.charAt(b.length-1),0===i){for(;(b=a.reader.peek(++g))&&b.length===g;)if(!/\\s$/.test(b)){if(/->$/.test(a.reader.peek(g+1)))return a.items.userDefinedFunctions.push(c),a.createToken(\"userDefinedFunction\",c,e,f);break}break}\"(\"===d?i++:\")\"===d&&i--}return a.createToken(\"function\",c,e,f)}return a.createToken(\"ident\",c,e,f)}],customTokens:{moduleAttribute:{values:[\"-module\",\"-export\",\"-import\",\"-compile\",\"-vsn\",\"-behaviour\",\"-record\",\"-include\",\"-define\",\"-file\",\"-type\",\"-spec\",\"on_load\"],boundary:\"\\\\b\"},macroDirective:{values:[\"-undef\",\"-ifdef\",\"-ifndef\",\"-else\",\"-endif\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])]],quotedAtom:[[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"%\",\"\\n\",null,!0]],\"char\":[[\"$\",{regex:/[^\\w\\\\]/,length:1},null,!0]],macro:[[\"?\",{regex:/[^\\w?]/,length:1},null,!0]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/[\\w@]/,namedIdentRules:{custom:[function(b){return a.util.contains(b.items.userDefinedFunctions,b.tokens[b.index].value)}],precedes:[[{token:\"operator\",values:[\":\"]}]]},contextItems:{userDefinedFunctions:[]},operators:[\"<-\",\"<\",\"||\",\"=:=\",\"=/=\",\"==\",\"=<\",\"=\",\"*\",\"<<\",\",\",\">=\",\">>\",\">\",\":\",\"#\",\"!\",\"++\",\"+\",\"->\",\"--\",\"-\",\"/=\",\"/\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"haskell\",{keywords:[\"as\",\"case\",\"of\",\"class\",\"datafamily\",\"datainstance\",\"data\",\"default\",\"derivinginstance\",\"deriving\",\"do\",\"forall\",\"foreign\",\"hiding\",\"if\",\"then\",\"else\",\"import\",\"infix\",\"infixl\",\"infixr\",\"instance\",\"let\",\"in\",\"mdo\",\"module\",\"newtype\",\"proc\",\"qualified\",\"rec\",\"typefamily\",\"typeinstance\",\"type\",\"where\"],customParseRules:[function(a){var b=a.reader.peek(),c=2,d=a.reader.getLine(),e=a.reader.getColumn();return\"'\"!==a.reader.current()&&\"'\"!==b?null:(b&&\"\\\\\"===b&&c++,/'$/.test(a.reader.peek(c))?a.createToken(\"char\",\"'\"+a.reader.read(c),d,e):null)},function(b){var c,d,e,f=0,g=b.reader.getLine(),h=b.reader.getColumn();if(!/[A-Za-z_]/.test(b.reader.current()))return null;for(;(c=b.reader.peek(++f))&&c.length===f&&/[\\w']$/.test(c););if(d=b.reader.current()+c.substring(0,c.length-1),e=b.token(b.count()-1),e&&\"keyword\"===e.name&&a.util.contains([\"class\",\"newtype\",\"data\",\"type\"],e.value))return b.items.userDefinedFunctions.push(d),b.reader.read(d.length-1),b.createToken(\"ident\",d,g,h);if(b.reader.isSolWs())for(;(c=b.reader.peek(++f))&&c.length===f;)if(!/\\s$/.test(c))return/::$/.test(b.reader.peek(++f))?(b.items.userDefinedFunctions.push(d),b.reader.read(d.length-1),b.createToken(\"ident\",d,g,h)):null;return null}],customTokens:{\"function\":{values:[\"abs\",\"acosh\",\"acos\",\"all\",\"and\",\"any\",\"appendFile\",\"asinh\",\"asin\",\"asTypeOf\",\"atan2\",\"atanh\",\"atan\",\"break\",\"catch\",\"ceiling\",\"compare\",\"concatMap\",\"concat\",\"const\",\"cosh\",\"cos\",\"curry\",\"cycle\",\"decodeFloat\",\"divMod\",\"div\",\"dropWhile\",\"drop\",\"either\",\"elem\",\"encodeFloat\",\"enumFromThenTo\",\"enumFromThen\",\"enumFromTo\",\"enumFrom\",\"error\",\"even\",\"exponent\",\"exp\",\"fail\",\"filter\",\"flip\",\"floatDigits\",\"floatRadix\",\"floatRange\",\"floor\",\"fmap\",\"foldl1\",\"foldl\",\"foldr1\",\"foldr\",\"fromEnum\",\"fromInteger\",\"fromIntegral\",\"fromRational\",\"fst\",\"gcd\",\"getChar\",\"getContents\",\"getLine\",\"head\",\"id\",\"init\",\"interact\",\"ioError\",\"isDenormalized\",\"isIEEE\",\"isInfinite\",\"isNaN\",\"isNegativeZero\",\"iterate\",\"last\",\"lcm\",\"length\",\"lex\",\"lines\",\"logBase\",\"log\",\"lookup\",\"mapM_\",\"mapM\",\"map\",\"maxBound\",\"maximum\",\"max\",\"maybe\",\"minBound\",\"minimum\",\"min\",\"mod\",\"negate\",\"notElem\",\"not\",\"null\",\"odd\",\"or\",\"otherwise\",\"pi\",\"pred\",\"print\",\"product\",\"properFraction\",\"putChar\",\"putStrLn\",\"putStr\",\"quotRem\",\"quot\",\"readFile\",\"readIO\",\"readList\",\"readLn\",\"readParen\",\"readsPrec\",\"reads\",\"realToFrac\",\"read\",\"recip\",\"rem\",\"repeat\",\"replicate\",\"return\",\"reverse\",\"round\",\"scaleFloat\",\"scanl1\",\"scanl\",\"scanr1\",\"scanr\",\"sequence_\",\"sequence\",\"seq\",\"showChar\",\"showList\",\"showParen\",\"showsPrec\",\"showString\",\"shows\",\"show\",\"significand\",\"signum\",\"sinh\",\"sin\",\"snd\",\"splitAt\",\"sqrt\",\"subtract\",\"succ\",\"sum\",\"tail\",\"takeWhile\",\"take\",\"tanh\",\"tan\",\"toEnum\",\"toInteger\",\"toRational\",\"truncate\",\"uncurry\",\"undefined\",\"unlines\",\"until\",\"unwords\",\"unzip3\",\"unzip\",\"userError\",\"words\",\"writeFile\",\"zip3\",\"zipWith3\",\"zipWith\",\"zip\"],boundary:\"\\\\b\"},\"class\":{values:[\"Bounded\",\"Enum\",\"Eq\",\"Floating\",\"Fractional\",\"Functor\",\"Integral\",\"Monad\",\"Num\",\"Ord\",\"Read\",\"RealFloat\",\"RealFrac\",\"Real\",\"Show\"],boundary:\"\\\\b\"},type:{values:[\"Bool\",\"Char\",\"Double\",\"Either\",\"FilePath\",\"Float\",\"Integer\",\"Int\",\"IOError\",\"IO\",\"Maybe\",\"Ordering\",\"ReadS\",\"ShowS\",\"String\",\"False\",\"True\",\"LT\",\"GT\",\"EQ\",\"Nothing\",\"Just\",\"Left\",\"Right\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])]],comment:[[\"--\",\"\\n\",null,!0],[\"{-\",\"-}\"]],infixOperator:[[\"`\",\"`\",[\"\\\\`\"]]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/[\\w']/,namedIdentRules:{custom:[function(b){return a.util.contains(b.items.userDefinedFunctions,b.tokens[b.index].value)}]},contextItems:{userDefinedFunctions:[]},operators:[\"::\",\":\",\"=>\",\"==\",\"=\",\"@\",\"[|\",\"|]\",\"\\\\\\\\\",\"\\\\\",\"/=\",\"/\",\"++\",\"+\",\"-<<\",\"-<\",\"->\",\"-\",\"&&\",\"!!\",\"!\",\"''\",\"'\",\"??\",\"?\",\"#\",\"<-\",\"<=\",\"<\",\">@>\",\">>=\",\">>\",\">=\",\">\",\"^^\",\"^\",\"**\",\"*\",\"||\",\"|\",\"~\",\"_\",\"..\",\".\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"httpd\",{scopes:{string:[['\"','\"',['\\\\\"',\"\\\\\\\\\"]]],comment:[[\"#\",\"\\n\",null,!0]],environmentVariable:[[\"${\",\"}\"],[\"%{\",\"}\"]]},customParseRules:[function(){var b=a.util.createHashMap([\"AuthnProviderAlias\",\"Directory\",\"DirectoryMatch\",\"Files\",\"FilesMatch\",\"IfDefine\",\"IfModule\",\"IfVersion\",\"Limit\",\"LimitExcept\",\"Location\",\"LocationMatch\",\"ProxyMatch\",\"Proxy\",\"VirtualHost\",\"IfDefine\"],\"\\\\b\",!1);return function(c){var d,e,f=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count());if(!f||\"operator\"!==f.name||\"<\"!==f.value&&\"</\"!==f.value)return!1;if(f=a.util.matchWord(c,b,\"context\",!0),!f)return null;for(e=f.value.length;(d=c.reader.peek(e++))!==c.reader.EOF;){if(/>$/.test(d))return c.reader.read(f.value.length-1),f;if(/\\n$/.test(d))break}return null}}(),function(b){var c,d,e,f,g=b.reader.current(),h=b.reader.getLine(),i=b.reader.getColumn();if(/[\\s\\n]/.test(g))return null;if(c=b.getAllTokens(),d=a.util.getPreviousNonWsToken(c,b.count()),!d)return null;if((\"keyword\"!==d.name||\"RewriteRule\"!==d.value)&&(d=a.util.getPreviousNonWsToken(c,b.count()-1),!d||\"keyword\"!==d.name||\"RewriteCond\"!==d.value))return null;for(e=g;(f=b.reader.peek())!==b.reader.EOF&&!/[\\s\\n]/.test(f);)e+=b.reader.read();return b.createToken(\"regexLiteral\",e,h,i)},function(){var b=a.util.createHashMap([\"AcceptFilter\",\"AcceptMutex\",\"AcceptPathInfo\",\"AccessFileName\",\"Action\",\"AddAltByEncoding\",\"AddAltByType\",\"AddAlt\",\"AddCharset\",\"AddDefaultCharset\",\"AddDescription\",\"AddEncoding\",\"AddHandler\",\"AddIconByEncoding\",\"AddIconByType\",\"AddIcon\",\"AddInputFilter\",\"AddLanguage\",\"AddModuleInfo\",\"AddOutputFilterByType\",\"AddOutputFilter\",\"AddType\",\"AliasMatch\",\"Alias\",\"AllowCONNECT\",\"AllowEncodedSlashes\",\"AllowOverride\",\"Allow\",\"Anonymous_LogEmail\",\"Anonymous_MustGiveEmail\",\"Anonymous_NoUserID\",\"Anonymous_VerifyEmail\",\"Anonymous\",\"AuthBasicAuthoritative\",\"AuthBasicProvider\",\"AuthDBDUserPWQuery\",\"AuthDBDUserRealmQuery\",\"AuthDBMGroupFile\",\"AuthDBMType\",\"AuthDBMUserFile\",\"AuthDefaultAuthoritative\",\"AuthDigestAlgorithm\",\"AuthDigestDomain\",\"AuthDigestNcCheck\",\"AuthDigestNonceFormat\",\"AuthDigestNonceLifetime\",\"AuthDigestProvider\",\"AuthDigestQop\",\"AuthDigestShmemSize\",\"AuthGroupFile\",\"AuthLDAPBindAuthoritative\",\"AuthLDAPBindDN\",\"AuthLDAPBindPassword\",\"AuthLDAPCharsetConfig\",\"AuthLDAPCompareDNOnServer\",\"AuthLDAPDereferenceAliases\",\"AuthLDAPGroupAttributeIsDN\",\"AuthLDAPGroupAttribute\",\"AuthLDAPRemoteUserAttribute\",\"AuthLDAPRemoteUserIsDN\",\"AuthLDAPUrl\",\"AuthName\",\"AuthType\",\"AuthUserFile\",\"AuthzDBMAuthoritative\",\"AuthzDBMType\",\"AuthzDefaultAuthoritative\",\"AuthzGroupFileAuthoritative\",\"AuthzLDAPAuthoritative\",\"AuthzOwnerAuthoritative\",\"AuthzUserAuthoritative\",\"BalancerMember\",\"BrowserMatch\",\"BrowserMatchNoCase\",\"BufferedLogs\",\"CacheDefaultExpire\",\"CacheDirLength\",\"CacheDirLevels\",\"CacheDisable\",\"CacheEnable\",\"CacheFile\",\"CacheIgnoreCacheControl\",\"CacheIgnoreHeaders\",\"CacheIgnoreNoLastMod\",\"CacheIgnoreQueryString\",\"CacheIgnoreURLSessionIdentifiers\",\"CacheLastModifiedFactor\",\"CacheLockMaxAge\",\"CacheLockPath\",\"CacheLock\",\"CacheMaxExpire\",\"CacheMaxFileSize\",\"CacheMinFileSize\",\"CacheNegotiatedDocs\",\"CacheRoot\",\"CacheStoreNoStore\",\"CacheStorePrivate\",\"CGIMapExtension\",\"CharsetDefault\",\"CharsetOptions\",\"CharsetSourceEnc\",\"CheckCaseOnly\",\"CheckSpelling\",\"ChrootDir\",\"ContentDigest\",\"CookieDomain\",\"CookieExpires\",\"CookieLog\",\"CookieName\",\"CookieStyle\",\"CookieTracking\",\"CoreDumpDirectory\",\"CustomLog\",\"DavDepthInfinity\",\"DavGenericLockDB\",\"DavLockDB\",\"DavMinTimeout\",\"Dav\",\"DBDExptime\",\"DBDKeep\",\"DBDMax\",\"DBDMin\",\"DBDParams\",\"DBDPersist\",\"DBDPrepareSQL\",\"DBDriver\",\"DefaultIcon\",\"DefaultLanguage\",\"DefaultType\",\"DeflateBufferSize\",\"DeflateCompressionLevel\",\"DeflateFilterNote\",\"DeflateMemLevel\",\"DeflateWindowSize\",\"Deny\",\"DirectoryIndex\",\"DirectorySlash\",\"DocumentRoot\",\"DumpIOInput\",\"DumpIOLogLevel\",\"DumpIOOutput\",\"EnableExceptionHook\",\"EnableMMAP\",\"EnableSendfile\",\"ErrorDocument\",\"ErrorLog\",\"Example\",\"ExpiresActive\",\"ExpiresByType\",\"ExpiresDefault\",\"ExtendedStatus\",\"ExtFilterDefine\",\"ExtFilterOptions\",\"FallbackResource\",\"FileETag\",\"FilterChain\",\"FilterDeclare\",\"FilterProtocol\",\"FilterProvider\",\"FilterTrace\",\"ForceLanguagePriority\",\"ForceType\",\"ForensicLog\",\"GprofDir\",\"GracefulShutDownTimeout\",\"Group\",\"HeaderName\",\"Header\",\"HostnameLookups\",\"IdentityCheckTimeout\",\"IdentityCheck\",\"ImapBase\",\"ImapDefault\",\"ImapMenu\",\"Include\",\"IndexHeadInsert\",\"IndexIgnore\",\"IndexOptions\",\"IndexOrderDefault\",\"IndexStyleSheet\",\"ISAPIAppendLogToErrors\",\"ISAPIAppendLogToQuery\",\"ISAPICacheFile\",\"ISAPIFakeAsync\",\"ISAPILogNotSupported\",\"ISAPIReadAheadBuffer\",\"KeepAliveTimeout\",\"KeepAlive\",\"LanguagePriority\",\"LDAPCacheEntries\",\"LDAPCacheTTL\",\"LDAPConnectionTimeout\",\"LDAPOpCacheEntries\",\"LDAPOpCacheTTL\",\"LDAPSharedCacheFile\",\"LDAPSharedCacheSize\",\"LDAPTrustedClientCert\",\"LDAPTrustedGlobalCert\",\"LDAPTrustedMode\",\"LDAPVerifyServerCert\",\"LimitInternalRecursion\",\"LimitRequestBody\",\"LimitRequestFields\",\"LimitRequestFieldSize\",\"LimitRequestLine\",\"LimitXMLRequestBody\",\"ListenBacklog\",\"Listen\",\"LoadFile\",\"LoadModule\",\"LockFile\",\"LogFormat\",\"LogLevel\",\"MaxClients\",\"MaxKeepAliveRequests\",\"MaxMemFree\",\"MaxRequestsPerChild\",\"MaxRequestsPerThread\",\"MaxSpareServers\",\"MaxSpareThreads\",\"MaxThreads\",\"MCacheMaxObjectCount\",\"MCacheMaxObjectSize\",\"MCacheMaxStreamingBuffer\",\"MCacheMinObjectSize\",\"MCacheRemovalAlgorithm\",\"MCacheSize\",\"MetaDir\",\"MetaFiles\",\"MetaSuffix\",\"MimeMagicFile\",\"MinSpareServers\",\"MinSpareThreads\",\"MMapFile\",\"ModMimeUsePathInfo\",\"MultiviewsMatch\",\"NameVirtualHost\",\"NoProxy\",\"NWSSLTrustedCerts\",\"NWSSLUpgradeable\",\"Options\",\"Order\",\"PassEnv\",\"PidFile\",\"ProtocolEcho\",\"Protocol\",\"ProxyBadHeader\",\"ProxyBlock\",\"ProxyDomain\",\"ProxyErrorOverride\",\"ProxyFtpDirCharset\",\"ProxyIOBufferSize\",\"ProxyMaxForwards\",\"ProxyPassInterpolateEnv\",\"ProxyPassMatch\",\"ProxyPassReverse\",\"ProxyPassReverseCookieDomain\",\"ProxyPassReverseCookiePath\",\"ProxyPass\",\"ProxyPreserveHost\",\"ProxyReceiveBufferSize\",\"ProxyRemoteMatch\",\"ProxyRemote\",\"ProxyRequests\",\"ProxySCGIInternalRedirect\",\"ProxySCGISendfile\",\"ProxySet\",\"ProxyStatus\",\"ProxyTimeout\",\"ProxyVia\",\"ReadmeName\",\"ReceiveBufferSize\",\"RedirectMatch\",\"RedirectPermanent\",\"RedirectTemp\",\"Redirect\",\"RemoveCharset\",\"RemoveEncoding\",\"RemoveHandler\",\"RemoveInputFilter\",\"RemoveLanguage\",\"RemoveOutputFilter\",\"RemoveType\",\"RequestHeader\",\"RequestReadTimeout\",\"Require\",\"RewriteBase\",\"RewriteCond\",\"RewriteEngine\",\"RewriteLock\",\"RewriteLogLevel\",\"RewriteLog\",\"RewriteMap\",\"RewriteOptions\",\"RewriteRule\",\"RLimitCPU\",\"RLimitMEM\",\"RLimitNPROC\",\"Satisfy\",\"ScoreBoardFile\",\"ScriptAliasMatch\",\"ScriptAlias\",\"ScriptInterpreterSource\",\"ScriptLogBuffer\",\"ScriptLogLength\",\"ScriptLog\",\"ScriptSock\",\"Script\",\"SecureListen\",\"SeeRequestTail\",\"SendBufferSize\",\"ServerAdmin\",\"ServerAlias\",\"ServerLimit\",\"ServerName\",\"ServerPath\",\"ServerRoot\",\"ServerSignature\",\"ServerTokens\",\"SetEnvIfNoCase\",\"SetEnvIf\",\"SetEnv\",\"SetHandler\",\"SetInputFilter\",\"SetOutputFilter\",\"SSIEnableAccess\",\"SSIEndTag\",\"SSIErrorMsg\",\"SSIETag\",\"SSILastModified\",\"SSIStartTag\",\"SSITimeFormat\",\"SSIUndefinedEcho\",\"SSLCACertificateFile\",\"SSLCACertificatePath\",\"SSLCADNRequestFile\",\"SSLCADNRequestPath\",\"SSLCARevocationFile\",\"SSLCARevocationPath\",\"SSLCertificateChainFile\",\"SSLCertificateFile\",\"SSLCertificateKeyFile\",\"SSLCipherSuite\",\"SSLCryptoDevice\",\"SSLEngine\",\"SSLFIPS\",\"SSLHonorCipherOrder\",\"SSLInsecureRenegotiation\",\"SSLMutex\",\"SSLOptions\",\"SSLPassPhraseDialog\",\"SSLProtocol\",\"SSLProxyCACertificateFile\",\"SSLProxyCACertificatePath\",\"SSLProxyCARevocationFile\",\"SSLProxyCARevocationPath\",\"SSLProxyCheckPeerCN\",\"SSLProxyCheckPeerExpire\",\"SSLProxyCipherSuite\",\"SSLProxyEngine\",\"SSLProxyMachineCertificateFile\",\"SSLProxyMachineCertificatePath\",\"SSLProxyProtocol\",\"SSLProxyVerify\",\"SSLProxyVerifyDepth\",\"SSLRandomSeed\",\"SSLRenegBufferSize\",\"SSLRequireSSL\",\"SSLRequire\",\"SSLSessionCacheTimeout\",\"SSLSessionCache\",\"SSLStrictSNIVHostCheck\",\"SSLUserName\",\"SSLVerifyClient\",\"SSLVerifyDepth\",\"StartServers\",\"StartThreads\",\"Substitute\",\"SuexecUserGroup\",\"Suexec\",\"ThreadLimit\",\"ThreadsPerChild\",\"ThreadStackSize\",\"TimeOut\",\"TraceEnable\",\"TransferLog\",\"TypesConfig\",\"UnsetEnv\",\"UseCanonicalName\",\"UseCanonicalPhysicalPort\",\"UserDir\",\"User\",\"VirtualDocumentRootIP\",\"VirtualDocumentRoot\",\"VirtualScriptAliasIP\",\"VirtualScriptAlias\",\"Win32DisableAcceptEx\",\"XBitHack\",\"ServerType\"],\"\\\\b\",!0);return function(c){return c.reader.isSolWs()?a.util.matchWord(c,b,\"keyword\"):!1}}()],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/[\\w]/,operators:[\"</\",\"<\",\">\",\"\\\\\"]})}(this.Sunlight),function(a,b){function c(a){var b=/^T([A-Z0-9]\\w*)?$/;return function(c){return!b.test(c.tokens[c.index].value)&&a(c)}}if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";var d=[\"boolean\",\"byte\",\"char\",\"double\",\"float\",\"int\",\"long\",\"short\"],e=d.concat([\"extends\"]);a.registerLanguage(\"java\",{keywords:[\"abstract\",\"assert\",\"boolean\",\"break\",\"byte\",\"case\",\"catch\",\"char\",\"class\",\"const\",\"continue\",\"default\",\"do\",\"double\",\"else\",\"enum\",\"extends\",\"final\",\"finally\",\"float\",\"for\",\"goto\",\"if\",\"implements\",\"import\",\"instanceof\",\"int\",\"interface\",\"long\",\"native\",\"new\",\"package\",\"private\",\"protected\",\"public\",\"return\",\"short\",\"static\",\"strictfp\",\"super\",\"switch\",\"synchronized\",\"this\",\"throw\",\"throws\",\"transient\",\"try\",\"void\",\"volatile\",\"while\",\"null\",\"false\",\"true\"],scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",[\"'\",\"\\\\\\\\\"]]],comment:[[\"//\",\"\\n\",null,!0],[\"/*\",\"*/\"]],annotation:[[\"@\",{length:1,regex:/[\\s\\(]/},null,!0]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{custom:[c(function(c){for(var d,f=c.index,g=!1,h=[0,0];(d=c.tokens[--f])!==b;){if(\"keyword\"===d.name&&\"class\"===d.value)return!1;if(\"operator\"!==d.name){if(!(\"keyword\"===d.name&&a.util.contains(e,d.value)||\"default\"===d.name||\"punctuation\"===d.name&&\",\"===d.value)){if(\"ident\"!==d.name)break;g=!0}}else switch(d.value){case\"<\":case\"<<\":h[0]+=d.value.length;break;case\">\":case\">>\":if(0===h[0])return!1;h[1]+=d.value.length;break;case\".\":case\"?\":case\"&\":break;default:return!1}}if(!g||0===h[0])return!1;for(f=c.index;(d=c.tokens[++f])!==b;){if(\"operator\"===d.name&&(\">\"===d.value||\">>\"===d.value))return!0;if(!(\"keyword\"===d.name&&a.util.contains(e,d.value)||\"operator\"===d.name&&a.util.contains([\"<\",\"<<\",\">\",\">>\"],d.value)||\"punctuation\"===d.name&&\",\"===d.value||\"ident\"===d.name||\"default\"===d.name))return!1}return!1}),c(function(c){var f,g,h=a.util.getPreviousNonWsToken(c.tokens,c.index);if(h!==b&&(\"ident\"===h.name||\"keyword\"===h.name&&a.util.contains(d.concat([\"void\"]),h.value)||\"operator\"===h.name&&\".\"===h.value))return!1;if(h=a.util.getNextNonWsToken(c.tokens,c.index),!h||\"operator\"!==h.name||\"<\"!==h.value)return!1;for(f=c.index,g=[0,0];(h=c.tokens[++f])!==b;)if(\"operator\"!==h.name){if(!(\"default\"===h.name||\"ident\"===h.name||\"keyword\"===h.name&&a.util.contains(e,h.value)||\"punctuation\"===h.name&&\",\"===h.value))return!1}else{switch(h.value){case\"<\":g[0]++;break;case\"<<\":g[0]+=2;break;case\">\":g[1]++;break;case\">>\":g[1]+=2;break;case\"?\":case\"&\":break;default:return!1}if(g[0]>0&&g[0]===g[1])break}return g[0]!==g[1]?!1:(h=c.tokens[++f],!h||\"default\"!==h.name&&\"ident\"!==h.name?!1:\"default\"!==h.name||(h=c.tokens[++f],h&&\"ident\"===h.name)?!0:!1)}),c(function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index);if(g&&\"operator\"===g.name&&\".\"===g.value)return!1;for(e=c.index,f=c.tokens[e];(d=c.tokens[--e])!==b;){if(\"keyword\"===d.name&&(\"new\"===d.value||\"import\"===d.value||\"instanceof\"===d.value))return!0;if(\"default\"!==d.name)if(\"ident\"!==d.name){if(\"operator\"!==d.name||\".\"!==d.value)break;if(f&&\"ident\"!==f.name)return!1;f=d}else{if(f&&\"ident\"===f.name)return!1;f=d}}return!1}),function(){var b=[[a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"ident\"}],[a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"keyword\",values:[\"this\"]}]];return c(function(c){var d,e,f,g=function(d){for(var e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens);if(!g)return!1;for(e=c.index;d=c.tokens[--e];)if(\"punctuation\"===d.name&&\"(\"===d.value)return f=a.util.getPreviousNonWsToken(c.tokens,e),f&&\"keyword\"===f.name?!1:!0;return!1})}(),c(function(b){var c,d=[[{token:\"ident\"},a.util.whitespace,{token:\"keyword\",values:[\"extends\",\"implements\"]},a.util.whitespace],[{token:\"keyword\",values:[\"class\",\"interface\",\"enum\",\"public\",\"private\",\"protected\",\"static\",\"final\"]},a.util.whitespace],[{token:\"keyword\",values:[\"extends\"]},{token:\"default\"},{token:\"ident\"},{token:\"default\"},{token:\"operator\",values:[\"&\"]},{token:\"default\"}]],e=[[a.util.whitespace,{token:\"punctuation\",values:[\"[\"]},a.util.whitespace,{token:\"punctuation\",values:[\"]\"]}],[{token:\"default\"},{token:\"ident\"}]],f=[{opener:{token:\"keyword\",values:[\"implements\",\"throws\"]},closer:{token:\"punctuation\",values:[\"{\"]}}];for(c=0;c<d.length;c++)if(a.util.createProceduralRule(b.index-1,-1,d[c],!1)(b.tokens))return!0;for(c=0;c<e.length;c++)if(a.util.createProceduralRule(b.index+1,1,e[c],!1)(b.tokens))return!0;for(c=0;c<f.length;c++)if(a.util.createBetweenRule(b.index,f[c].opener,f[c].closer,!1)(b.tokens))return!0;return!1})]},operators:[\"++\",\"+=\",\"+\",\"--\",\"-=\",\"-\",\"*=\",\"*\",\"/=\",\"/\",\"%=\",\"%\",\"&&\",\"||\",\"|=\",\"|\",\"&=\",\"&\",\"^=\",\"^\",\">>>=\",\">>>\",\">>=\",\">>\",\"<<=\",\"<<\",\"<=\",\"<\",\">=\",\">\",\"==\",\"!=\",\"!\",\"~\",\"?\",\":\",\".\",\"=\"]})\n}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"javascript\",{keywords:[\"break\",\"case\",\"catch\",\"continue\",\"default\",\"delete\",\"do\",\"else\",\"finally\",\"for\",\"function\",\"if\",\"in\",\"instanceof\",\"new\",\"return\",\"switch\",\"this\",\"throw\",\"try\",\"typeof\",\"var\",\"void\",\"while\",\"with\",\"true\",\"false\",\"null\"],customTokens:{reservedWord:{values:[\"abstract\",\"boolean\",\"byte\",\"char\",\"class\",\"const\",\"debugger\",\"double\",\"enum\",\"export\",\"extends\",\"final\",\"float\",\"goto\",\"implements\",\"import\",\"int\",\"interface\",\"long\",\"native\",\"package\",\"private\",\"protected\",\"public\",\"short\",\"static\",\"super\",\"synchronized\",\"throws\",\"transient\",\"volatile\"],boundary:\"\\\\b\"},globalVariable:{values:[\"NaN\",\"Infinity\",\"undefined\"],boundary:\"\\\\b\"},globalFunction:{values:[\"encodeURI\",\"encodeURIComponent\",\"decodeURI\",\"decodeURIComponent\",\"parseInt\",\"parseFloat\",\"isNaN\",\"isFinite\",\"eval\"],boundary:\"\\\\b\"},globalObject:{values:[\"Math\",\"JSON\",\"XMLHttpRequest\",\"XDomainRequest\",\"ActiveXObject\",\"Boolean\",\"Date\",\"Array\",\"Image\",\"Function\",\"Object\",\"Number\",\"RegExp\",\"String\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",a.util.escapeSequences.concat([\"\\\\'\",\"\\\\\\\\\"])]],comment:[[\"//\",\"\\n\",null,!0],[\"/*\",\"*/\"]]},customParseRules:[function(c){var d,e,f,g=c.reader.peek(),h=\"/\",i=c.reader.getLine(),j=c.reader.getColumn(),k=!1;if(\"/\"!==c.reader.current()||\"/\"===g||\"*\"===g)return null;if(d=function(){var d=c.token(c.count()-1),e=null;return\"\"!==c.defaultData.text&&(e=c.createToken(\"default\",c.defaultData.text)),e||(e=d),e===b?!0:\"default\"===e.name&&e.value.indexOf(\"\\n\")>-1?!0:a.util.contains([\"keyword\",\"ident\",\"number\"],d.name)?!1:\"punctuation\"!==d.name||a.util.contains([\"(\",\"{\",\"[\",\",\",\";\"],d.value)?!0:!1}(),!d)return null;for(;c.reader.peek()!==c.reader.EOF;)if(e=c.reader.peek(2),\"\\\\/\"!==e&&\"\\\\\\\\\"!==e)if(\"\\\\[\"!==e&&\"\\\\]\"!==e){if(\"[\"===f?k=!0:\"]\"===f&&(k=!1),h+=f=c.reader.read(),\"/\"===f&&!k)break}else h+=c.reader.read(2);else h+=c.reader.read(2);for(;c.reader.peek()!==c.reader.EOF&&/[A-Za-z]/.test(c.reader.peek());)h+=c.reader.read();return c.createToken(\"regexLiteral\",h,i,j)}],identFirstLetter:/[$A-Za-z_]/,identAfterFirstLetter:/[\\w\\$]/,namedIdentRules:{follows:[[{token:\"keyword\",values:[\"function\"]},a.util.whitespace]]},operators:[\"++\",\"+=\",\"+\",\"--\",\"-=\",\"-\",\"*=\",\"*\",\"/=\",\"/\",\"%=\",\"%\",\"&&\",\"||\",\"|=\",\"|\",\"&=\",\"&\",\"^=\",\"^\",\">>>=\",\">>>\",\">>=\",\">>\",\"<<=\",\"<<\",\"<=\",\"<\",\">=\",\">\",\"===\",\"==\",\"!==\",\"!=\",\"!\",\"~\",\"?\",\":\",\".\",\"=\"]})}(this.Sunlight),function(a,b){function c(b,c){var e=a.util.createHashMap(b,d,!1);return function(b){var d=a.util.getPreviousNonWsToken(b.getAllTokens(),b.count());return d?\"punctuation\"!==d.name||\"(\"!==d.value&&(\"operator\"!==d.name||\"#'\"!==d.value)?null:a.util.matchWord(b,e,c):null}}if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";var d=\"[\\\\s\\\\(\\\\)]\";a.registerLanguage(\"lisp\",{scopes:{string:[['\"','\"']],comment:[[\";\",\"\\n\",null,!0]],keywordArgument:[[\":\",{regex:/[\\s\\)\\(]/,length:1},null,!0]]},customTokens:{keyword:{values:[\"always\",\"appending\",\"append\",\"as\",\"collecting\",\"collect\",\"counting\",\"count\",\"doing\",\"do\",\"finally\",\"for\",\"if\",\"initially\",\"maximize\",\"maximizing\",\"minimize\",\"minimizing\",\"named\",\"nconcing\",\"nconc\",\"never\",\"repeat\",\"return\",\"summing\",\"sum\",\"thereis\",\"unless\",\"until\",\"when\",\"while\",\"with\",\"into\",\"in\"],boundary:\"[^\\\\w-]\"},globalVariable:{values:[\"*applyhook*\",\"*break-on-signals*\",\"*break-on-warnings*\",\"*compile-file-pathname*\",\"*compile-file-truename*\",\"*compile-print*\",\"*compile-verbose*\",\"*debug-io*\",\"*debugger-hook*\",\"*gensym-counter*\",\"*terminal-io*\",\"*default-pathname-defaults*\",\"*error-output*\",\"*evalhook*\",\"*features*\",\"*load-pathname*\",\"*load-print*\",\"*load-truename*\",\"*load-verbose*\",\"*macroexpand-hook*\",\"*modules*\",\"*package*\",\"*print-array*\",\"*print-base*\",\"*print-case*\",\"*print-circle*\",\"*print-escape*\",\"*print-gensym*\",\"*print-length*\",\"*print-level*\",\"*print-lines*\",\"*print-miser-width*\",\"*print-pprint-dispatch*\",\"*print-pretty*\",\"*print-radix*\",\"*print-readably*\",\"*print-right-margin*\",\"*query-io*\",\"*random-state*\",\"*read-base*\",\"*read-default-float-format*\",\"*read-eval*\",\"*read-suppress*\",\"*readtable*\",\"*standard-input*\",\"*standard-output*\",\"*suppress-series-warnings*\",\"*trace-output*\",\"***\",\"**\",\"*\",\"+++\",\"++\",\"+\",\"-\",\"///\",\"//\",\"/\"],boundary:d},constant:{values:[\"array-dimension-limit\",\"array-rank-limit\",\"array-total-size-limit\",\"call-arguments-limit\",\"char-bits-limit\",\"char-code-limit\",\"char-control-bit\",\"char-font-limit\",\"char-hyper-bit\",\"char-meta-bit\",\"char-super-bit\",\"double-float-epsilon\",\"double-float-negative-epsilon\",\"internal-time-units-per-second\",\"lambda-list-keywords\",\"lambda-parameters-limit\",\"least-negative-double-float\",\"least-negative-long-float\",\"least-negative-normalized-double-float\",\"least-negative-normalized-long-float\",\"least-negative-normalized-short-float\",\"least-negative-normalized-single-float\",\"least-negative-short-float\",\"least-negative-single-float\",\"least-positive-double-float\",\"least-positive-long-float\",\"least-positive-normalized-double-float\",\"least-positive-normalized-long-float\",\"least-positive-normalized-short-float\",\"least-positive-normalized-single-float\",\"least-positive-short-float\",\"least-positive-single-float\",\"long-float-epsilon\",\"long-float-negative-epsilon\",\"most-negative-double-float\",\"most-negative-fixnum\",\"most-negative-long-float\",\"most-negative-short-float\",\"most-negative-single-float\",\"most-positive-double-float\",\"most-positive-fixnum\",\"most-positive-long-float\",\"most-positive-short-float\",\"most-positive-single-float\",\"multiple-values-limit\",\"nil\",\"pi\",\"short-float-epsilon\",\"short-float-negative-epsilon\",\"single-float-epsilon\",\"single-float-negative-epsilon\",\"t\"],boundary:d},declarationSpecifier:{values:[\"off-line-port\",\"optimizable-series-function\",\"propagate-alterability\"],boundary:d}},customParseRules:[function(a){var b,c,d=0;if(\"#\"!==a.reader.current())return null;for(;(b=a.reader.peek(++d))!==a.reader.EOF&&b.length===d;)if(!/\\d$/.test(b)){if(/[AR]$/i.test(b))break;return null}return b.length!==d?null:(c=a.createToken(\"operator\",\"#\"+b,a.reader.getLine(),a.reader.getColumn()),a.reader.read(b.length),c)},function(a){var b,c,d,e=a.reader.getLine(),f=a.reader.getColumn();if(\"\"!==a.defaultData.text||/\\s/.test(a.reader.current()))return null;if(b=a.getAllTokens()[a.count()-1],!b||\"operator\"!==b.name||\"#\\\\\"!==b.value)return null;for(d=a.reader.current();(c=a.reader.peek())!==a.reader.EOF&&!/[\\s\\(\\)]/.test(c);)d+=a.reader.read();return a.createToken(\"ident\",d,e,f)},function(b){var c,d,e=\"*\",f=b.reader.getLine(),g=b.reader.getColumn();if(\"*\"!==b.reader.current())return null;if(c=a.util.getPreviousNonWsToken(b.getAllTokens(),b.count()),c&&\"punctuation\"===c.name&&\"(\"===c.value)return null;if(/[\\s\\*\\)\\(]/.test(b.reader.peek()))return null;for(;(d=b.reader.peek())!==b.reader.EOF&&(e+=b.reader.read(),\"*\"!==d););return b.createToken(\"variable\",e,f,g)},function(){var a=new RegExp(d);return function(b){var c,d,e,f=b.reader.getLine(),g=b.reader.getColumn();if(\"\"!==b.defaultData.text||a.test(b.reader.current()))return null;if(c=b.getAllTokens()[b.count()-1],!c||\"operator\"!==c.name||\"#'\"!==c.value)return null;for(e=b.reader.current();(d=b.reader.peek())!==b.reader.EOF&&!a.test(d);)e+=b.reader.read();return b.createToken(\"function\",e,f,g)}}(),c([\"arithmetic-error\",\"cell-error\",\"condition\",\"control-error\",\"division-by-zero\",\"end-of-file\",\"error\",\"file-error\",\"floating-point-overflow\",\"floating-point-underflow\",\"package-error\",\"program-error\",\"restart\",\"series\",\"series-element-type\",\"serious-condition\",\"simple-condition\",\"simple-error\",\"simple-type-error\",\"simple-warning\",\"storage-condition\",\"stream-error\",\"type-error\",\"unbound-variable\",\"undefined-function\",\"warning\"],\"type\"),c([\"block\",\"catch\",\"compiler-let\",\"declare\",\"eval-when\",\"flet\",\"function\",\"generic-flet\",\"generic-labels\",\"go\",\"if\",\"let*\",\"let\",\"load-time-value\",\"locally\",\"multiple-value-call\",\"multiple-value-prog1\",\"progn\",\"progv\",\"quote\",\"return-from\",\"setq\",\"symbol-macrolet\",\"tagbody\",\"the\",\"throw\",\"unwind-protect\",\"with-added-methods\"],\"specialForm\"),c([\"and\",\"assert\",\"call-method\",\"case\",\"ccase\",\"check-type\",\"compiler-let\",\"cond\",\"ctypecase\",\"decf\",\"declaim\",\"defclass\",\"defgeneric\",\"define-compiler-macro\",\"define-condition\",\"define-declaration\",\"define-method-combination\",\"define-modify-macro\",\"define-setf-method\",\"defmacro\",\"defmethod\",\"defpackage\",\"defstruct\",\"deftype\",\"defun\",\"defvar\",\"destructuring-bind\",\"do*\",\"do-all-symbols\",\"do-external-symbols\",\"do-symbols\",\"dolist\",\"dotimes\",\"do\",\"ecase\",\"encapsulated\",\"etypecase\",\"formatter\",\"gathering\",\"generic-function\",\"handler-bind\",\"handler-case\",\"ignore-errors\",\"in-package\",\"incf\",\"iterate\",\"locally\",\"loop-finish\",\"loop\",\"mapping\",\"multiple-value-bind\",\"multiple-value-list\",\"multiple-value-setq\",\"next-in\",\"nth-value\",\"or\",\"pop\",\"pprint-exit-if-list-exhausted\",\"pprint-logical-block\",\"pprint-pop\",\"print-unreadable-object\",\"producing\",\"prog*\",\"prog1\",\"prog2\",\"prog\",\"psetf\",\"psetq\",\"pushnew\",\"push\",\"remf\",\"restart-bind\",\"restart-case\",\"return\",\"rotatef\",\"setf\",\"shiftf\",\"step\",\"terminate-producing\",\"time\",\"trace\",\"typecase\",\"unless\",\"untrace\",\"when\",\"with-accessors\",\"with-compilation-unit\",\"with-condition-restarts\",\"with-hash-table-iterator\",\"with-input-from-string\",\"with-open-file\",\"with-open-stream\",\"with-output-to-string\",\"with-package-iterator\",\"with-simple-restart\",\"with-slots\",\"with-standard-io-syntax\",\"defparameter\"],\"macro\"),c([\"*\",\"+\",\"-\",\"/\",\"1+\",\"1-\",\"<=\",\"<\",\">=\",\">\",\"=\",\"lambda\",\"abort\",\"abs\",\"acons\",\"acosh\",\"acos\",\"add-method\",\"adjoin\",\"adjust-array\",\"adjustable-array-p\",\"alpha-char-p\",\"alphanumericp\",\"alter\",\"append\",\"applyhook\",\"apply\",\"apropos-list\",\"apropos\",\"aref\",\"arithmetic-error-operands\",\"arithmetic-error-operation\",\"array-dimensions\",\"array-dimension\",\"array-element-type\",\"array-has-fill-pointer-p\",\"array-in-bounds-p\",\"array-rank\",\"array-row-major-index\",\"array-total-size\",\"arrayp\",\"ash\",\"asinh\",\"asin\",\"assoc-if\",\"assoc-if-not\",\"assoc\",\"atanh\",\"atan\",\"atom\",\"augment-environment\",\"bit-andc1\",\"bit-andc2\",\"bit-and\",\"bit-eqv\",\"bit-ior\",\"bit-nand\",\"bit-nor\",\"bit-not\",\"bit-orc1\",\"bit-orc2\",\"bit-vector-p\",\"bit-xor\",\"bit\",\"boole\",\"both-case-p\",\"boundp\",\"break\",\"broadcast-stream-streams\",\"butlast\",\"byte-position\",\"byte-size\",\"byte\",\"caaaar\",\"caaadr\",\"caaar\",\"caadar\",\"caaddr\",\"caadr\",\"caar\",\"cadaar\",\"cadadr\",\"cadar\",\"caddar\",\"cadddr\",\"caddr\",\"cadr\",\"call-next-method\",\"car\",\"catenate\",\"cdaaar\",\"cdaadr\",\"cdaar\",\"cdadar\",\"cdaddr\",\"cdadr\",\"cdar\",\"cddaar\",\"cddadr\",\"cddar\",\"cdddar\",\"cddddr\",\"cdddr\",\"cddr\",\"cdr\",\"ceiling\",\"cell-error-name\",\"cerror\",\"change-class\",\"char-bits\",\"char-bit\",\"char-code\",\"char-downcase\",\"char-equal\",\"char-font\",\"char-greaterp\",\"char-int\",\"char-lessp\",\"char-name\",\"char-not-equal\",\"char-not-greaterp\",\"char-not-lessp\",\"char-upcase\",\"char/=\",\"char<=\",\"char<\",\"char=\",\"char>=\",\"char>\",\"char\",\"characterp\",\"character\",\"choose-if\",\"choose\",\"chunk\",\"cis\",\"class-name\",\"class-of\",\"clear-input\",\"close\",\"clrhash\",\"code-char\",\"coerce\",\"collect-alist\",\"collect-and\",\"collect-append\",\"collect-file\",\"collect-first\",\"collect-fn\",\"collect-hash\",\"collect-last\",\"collect-length\",\"collect-max\",\"collect-min\",\"collect-nconc\",\"collect-nth\",\"collect-or\",\"collect-plist\",\"collect-sum\",\"collecting-fn\",\"collect\",\"commonp\",\"compile-file\",\"compile-file-pathname\",\"compiled-function-p\",\"compiler-macro-function\",\"compiler-macroexpand\",\"compiler-macroexpand-1\",\"compile\",\"complement\",\"complexp\",\"complex\",\"compute-applicable-methods\",\"compute-restarts\",\"concatenated-stream-streams\",\"concatenate\",\"conjugate\",\"consp\",\"constantp\",\"cons\",\"continue\",\"copy-alist\",\"copy-list\",\"copy-pprint-dispatch\",\"copy-readtable\",\"copy-seq\",\"copy-symbol\",\"copy-tree\",\"cosh\",\"cos\",\"cotruncate\",\"count-if\",\"count-if-not\",\"count\",\"declaration-information\",\"decode-float\",\"decode-universal-time\",\"delete-duplicates\",\"delete-file\",\"delete-if\",\"delete-if-not\",\"delete-package\",\"delete\",\"denominator\",\"deposit-field\",\"describe-object\",\"describe\",\"digit-char-p\",\"digit-char\",\"directory-namestring\",\"directory\",\"disassemble\",\"documentation\",\"dpb\",\"dribble\",\"echo-stream-input-stream\",\"echo-stream-output-stream\",\"ed\",\"eighth\",\"elt\",\"enclose\",\"encode-universal-time\",\"endp\",\"enough-namestring\",\"ensure-generic-function\",\"eql\",\"eq\",\"equalp\",\"equal\",\"error\",\"evalhook\",\"eval\",\"evenp\",\"every\",\"expand\",\"export\",\"expt\",\"exp\",\"fboundp\",\"fdefinition\",\"ffloor\",\"fifth\",\"file-author\",\"file-error-pathname\",\"file-length\",\"file-namestring\",\"file-position\",\"file-string-length\",\"file-write-date\",\"fill-pointer\",\"fill\",\"find-all-symbols\",\"find-class\",\"find-if-not\",\"find-if\",\"find-method\",\"find-package\",\"find-restart\",\"find-symbol\",\"find\",\"finish-output\",\"first\",\"float-digits\",\"float-precision\",\"float-radix\",\"float-sign\",\"floatp\",\"float\",\"floor\",\"format\",\"fourth\",\"funcall\",\"function-information\",\"function-keywords\",\"function-lambda-expression\",\"functionp\",\"f\",\"gatherer\",\"gcd\",\"generator\",\"gensym\",\"gentemp\",\"get-decoded-time\",\"get-internal-real-time\",\"get-internal-run-time\",\"get-output-stream-string\",\"get-properties\",\"get-setf-method-multiple-value\",\"get-setf-method\",\"get-universal-time\",\"getf\",\"gethash\",\"get\",\"graphic-char-p\",\"hash-table-count\",\"hash-table-p\",\"hash-table-rehash-size\",\"hash-table-rehash-threshold\",\"hash-table-size\",\"hash-table-test\",\"host-namestring\",\"identity\",\"imagpart\",\"import\",\"in-package\",\"initialize-instance\",\"input-stream-p\",\"inspect\",\"int-char\",\"integer-decode-float\",\"integer-length\",\"integerp\",\"interactive-stream-p\",\"intern\",\"intersection\",\"invalid-method-error\",\"invoke-debugger\",\"invoke-restart\",\"isqrt\",\"keywordp\",\"last\",\"latch\",\"lcm\",\"ldb-test\",\"ldb\",\"ldiff\",\"length\",\"lisp-implementation-type\",\"lisp-implementation-version\",\"list*\",\"list-all-packages\",\"list-length\",\"listen\",\"listp\",\"list\",\"load-logical-pathname-translations\",\"load\",\"logandc1\",\"logandc2\",\"logand\",\"logbitp\",\"logcount\",\"logeqv\",\"logical-pathname-translations\",\"logical-pathname\",\"logior\",\"lognand\",\"lognor\",\"lognot\",\"logorc1\",\"logorc2\",\"logtest\",\"logxor\",\"log\",\"long-site-name\",\"lower-case-p\",\"machine-instance\",\"machine-type\",\"machine-version\",\"macro-function\",\"macroexpand-1\",\"macroexpand\",\"make-array\",\"make-broadcast-stream\",\"make-char\",\"make-concatenated-stream\",\"make-condition\",\"make-dispatch-macro-character\",\"make-echo-stream\",\"make-hash-table\",\"make-instances-obsolete\",\"make-instance\",\"make-list\",\"make-load-form-saving-slots\",\"make-load-form\",\"make-package\",\"make-pathname\",\"make-random-state\",\"make-sequence\",\"make-string-input-stream\",\"make-string-output-stream\",\"make-string\",\"make-symbol\",\"make-synonym-stream\",\"make-two-way-stream\",\"makunbound\",\"map-fn\",\"map-into\",\"mapcan\",\"mapcar\",\"mapcon\",\"mapc\",\"maphash\",\"maplist\",\"mapl\",\"map\",\"mask-field\",\"mask\",\"max\",\"member-if\",\"member-if-not\",\"member\",\"merge-pathnames\",\"merge\",\"method-combination-error\",\"method-qualifiers\",\"mingle\",\"minusp\",\"min\",\"mismatch\",\"mod\",\"muffle-warning\",\"name-char\",\"namestring\",\"nbutlast\",\"nconc\",\"next-method-p\",\"next-out\",\"nintersection\",\"ninth\",\"no-applicable-method\",\"no-next-method\",\"notany\",\"notevery\",\"not\",\"nreconc\",\"nreverse\",\"nset-difference\",\"nset-exclusive-or\",\"nstring-capitalize\",\"nstring-downcase\",\"nstring-upcase\",\"nsublis\",\"nsubst\",\"nsubst-if-not\",\"nsubst-if\",\"nsubstitute-if-not\",\"nsubstitute-if\",\"nsubstitute\",\"nthcdr\",\"nth\",\"null\",\"numberp\",\"numerator\",\"nunion\",\"oddp\",\"open-stream-p\",\"open\",\"output-stream-p\",\"package-error-package\",\"package-name\",\"package-nicknames\",\"package-shadowing-symbols\",\"package-use-list\",\"package-used-by-list\",\"packagep\",\"pairlis\",\"parse-integer\",\"parse-macro\",\"parse-namestring\",\"pathname-device\",\"pathname-directory\",\"pathname-host\",\"pathname-match-p\",\"pathname-name\",\"pathname-type\",\"pathname-version\",\"pathnamep\",\"pathname\",\"peek-char\",\"phase\",\"plusp\",\"position-if-not\",\"position-if\",\"positions\",\"position\",\"pprint-dispatch\",\"pprint-fill\",\"pprint-indent\",\"pprint-linear\",\"pprint-newline\",\"pprint-tabular\",\"pprint-tab\",\"previous\",\"prin1\",\"print-object\",\"probe-file\",\"proclaim\",\"provide\",\"random-state-p\",\"random\",\"rassoc-if-not\",\"rassoc-if\",\"rassoc\",\"rationalize\",\"rationalp\",\"rational\",\"read-byte\",\"read-char-no-hang\",\"read-char\",\"read-delimited-list\",\"read-from-string\",\"read-line\",\"read\",\"read-preserving-whitespace\",\"readtable-case\",\"readtablep\",\"realpart\",\"realp\",\"reduce\",\"reinitialize-instance\",\"remhash\",\"remove-duplicates\",\"remove-method\",\"remove\",\"remprop\",\"rem\",\"rename-file\",\"rename-package\",\"replace\",\"require\",\"restart-name\",\"rest\",\"result-of\",\"revappend\",\"reverse\",\"room\",\"round\",\"row-major-aref\",\"rplaca\",\"rplacd\",\"sbit\",\"scale-float\",\"scan-alist\",\"scan-file\",\"scan-fn-inclusive\",\"scan-fn\",\"scan-hash\",\"scan-lists-of-lists-fringe\",\"scan-lists-of-lists\",\"scan-multiple\",\"scan-plist\",\"scan-range\",\"scan-sublists\",\"scan-symbols\",\"scan\",\"schar\",\"search\",\"second\",\"series\",\"set-char-bit\",\"set-difference\",\"set-dispatch-macro-character\",\"set-exclusive-or\",\"set-macro-character\",\"set-pprint-dispatch\",\"set-syntax-from-char\",\"set\",\"seventh\",\"shadow\",\"shadowing-import\",\"shared-initialize\",\"short-site-name\",\"signal\",\"signum\",\"simple-bit-vector-p\",\"simple-condition-format-arguments\",\"simple-condition-format-string\",\"simple-string-p\",\"simple-vector-p\",\"sinh\",\"sin\",\"sixth\",\"sleep\",\"slot-boundp\",\"slot-exists-p\",\"slot-makunbound\",\"slot-missing\",\"slot-unbound\",\"slot-value\",\"software-type\",\"software-version\",\"some\",\"sort\",\"special-form-p\",\"split-if\",\"split\",\"sqrt\",\"stable-sort\",\"standard-char-p\",\"store-value\",\"stream-element-type\",\"stream-error-stream\",\"stream-external-format\",\"streamp\",\"string-capitalize\",\"string-char-p\",\"string-downcase\",\"string-equal\",\"string-greaterp\",\"string-left-trim\",\"string-lessp\",\"string-not-equal\",\"string-not-greaterp\",\"string-not-lessp\",\"string-right-trim\",\"string-trim\",\"string-upcase\",\"string/=\",\"string<\",\"string<=\",\"string=\",\"string>\",\"string>=\",\"stringp\",\"string\",\"sublis\",\"subseq\",\"subseries\",\"subsetp\",\"subst-if-not\",\"subst-if\",\"substitute-if-not\",\"substitute-if\",\"substitute\",\"subst\",\"subtypep\",\"svref\",\"sxhash\",\"symbol-function\",\"symbol-name\",\"symbol-package\",\"symbol-plist\",\"symbol-value\",\"symbolp\",\"synonym-stream-symbol\",\"tailp\",\"tanh\",\"tan\",\"tenth\",\"terpri\",\"third\",\"to-alter\",\"translate-logical-pathname\",\"translate-pathname\",\"tree-equal\",\"truename\",\"truncate\",\"two-way-stream-input-stream\",\"two-way-stream-output-stream\",\"type-error-datum\",\"type-error-expected-type\",\"type-of\",\"typep\",\"unexport\",\"unintern\",\"union\",\"unread-char\",\"until-if\",\"until\",\"unuse-package\",\"update-instance-for-different-class\",\"update-instance-for-redefined-class\",\"upgraded-array-element-type\",\"upgraded-complex-part-type\",\"upper-case-p\",\"use-package\",\"use-value\",\"user-homedir-pathname\",\"values-list\",\"values\",\"variable-information\",\"vector-pop\",\"vector-push-extend\",\"vector-push\",\"vectorp\",\"vector\",\"warn\",\"wild-pathname-p\",\"write-byte\",\"write-char\",\"write-string\",\"write-to-string\",\"write\",\"y-or-n-p\",\"yes-or-no-p\",\"zerop\"],\"function\")],identFirstLetter:/[A-Za-z]/,identAfterFirstLetter:/[\\w-]/,namedIdentRules:{custom:[function(){var b=[\"defmacro\",\"defmethod\",\"defpackage\",\"defstruct\",\"deftype\",\"defun\",\"defvar\",\"define-compiler-macro\",\"define-condition\",\"define-declaration\",\"define-method-combination\",\"define-modify-macro\",\"define-setf-method\"];return function(c){var d=a.util.getPreviousNonWsToken(c.tokens,c.index),e=c.tokens[c.index].value;return d&&\"macro\"===d.name&&a.util.contains(b,d.value)&&c.items.userDefinedFunctions.push(e),a.util.contains(c.items.userDefinedFunctions,e)}}()]},contextItems:{userDefinedFunctions:[]},operators:[\"=>\",\"#B\",\"#b\",\"#O\",\"#o\",\"#X\",\"#x\",\"#C\",\"#c\",\"#S\",\"#s\",\"#P\",\"#p\",\"#.\",\"#:\",\"#\\\\\",\"#'\",\"#\",\"'\",\"...\",\"..\",\".\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"lua\",{keywords:[\"and\",\"break\",\"do\",\"elseif\",\"else\",\"end\",\"false\",\"for\",\"function\",\"if\",\"in\",\"local\",\"nil\",\"not\",\"or\",\"repeat\",\"return\",\"then\",\"true\",\"until\",\"while\"],scopes:{string:[['\"','\"',['\\\\\"',\"\\\\\\\\\"]],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"--[[\",\"]]\"],[\"--\",\"\\n\",null,!0]]},customTokens:{globalVariable:{values:[\"_G\",\"_VERSION\"],boundary:\"\\\\b\"}},customParseRules:[function(){var b=a.util.createHashMap([\"assert\",\"collectgarbage\",\"dofile\",\"error\",\"getfenv\",\"getmetatable\",\"ipairs\",\"load\",\"loadfile\",\"loadstring\",\"next\",\"pairs\",\"pcall\",\"print\",\"rawequal\",\"rawget\",\"rawset\",\"select\",\"setfenv\",\"setmetatable\",\"tonumber\",\"tostring\",\"type\",\"unpack\",\"xpcall\",\"module\",\"require\"],\"\\\\b\");return function(c){var d=c.token(c.count()-1);return d&&\"operator\"===d.name&&\".\"===d.value?null:a.util.matchWord(c,b,\"function\")}}(),function(){var b=a.util.createHashMap([\"close\",\"flush\",\"lines\",\"read\",\"seek\",\"setvbuf\",\"write\"],\"\\\\b\");return function(c){var d=c.token(c.count()-1);return d&&\"operator\"===d.name&&\":\"===d.value?a.util.matchWord(c,b,\"function\"):null}}(),function(a){var b,c,d,e=0,f=0,g=a.reader.getLine(),h=a.reader.getColumn();if(\"[\"!==a.reader.current())return null;for(;(b=a.reader.peek(++f))&&b.length===f;)if(!/=$/.test(b)){if(!/\\[$/.test(b))return null;e=b.length-1;break}for(c=\"[\"+b,a.reader.read(b.length),d=\"]\"+new Array(e+1).join(\"=\")+\"]\";b=a.reader.peek();){if(\"]\"===b&&a.reader.peek(d.length)===d){c+=a.reader.read(d.length);break}c+=a.reader.read()}return a.createToken(\"verbatimString\",c,g,h)}],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{custom:[function(){var b=[\"coroutine\",\"package\",\"string\",\"table\",\"math\",\"io\",\"os\",\"debug\"];return function(c){var d;return a.util.contains(b,c.tokens[c.index].value)?(d=a.util.getNextNonWsToken(c.tokens,c.index),d&&(\"operator\"!==d.name||\":\"!==d.value)):!1}}()],follows:[[{token:\"keyword\",values:[\"function\"]},{token:\"default\"}]]},operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"^\",\"#\",\"==\",\"~=\",\"=\",\"<=\",\"<\",\">=\",\">\",\":\",\"...\",\"..\",\".\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"mysql\",{caseInsensitive:!0,keywords:[\"accessible\",\"add\",\"all\",\"alter\",\"analyze\",\"and\",\"as\",\"asc\",\"asensitive\",\"before\",\"between\",\"bigint\",\"binary\",\"blob\",\"both\",\"by\",\"call\",\"cascade\",\"case\",\"change\",\"char\",\"character\",\"check\",\"collate\",\"column\",\"condition\",\"constraint\",\"continue\",\"convert\",\"create\",\"cross\",\"current_date\",\"current_time\",\"current_timestamp\",\"current_user\",\"cursor\",\"database\",\"databases\",\"day_hour\",\"day_microsecond\",\"day_minute\",\"day_second\",\"dec\",\"decimal\",\"declare\",\"default\",\"delayed\",\"delete\",\"desc\",\"describe\",\"deterministic\",\"distinct\",\"distinctrow\",\"div\",\"double\",\"drop\",\"dual\",\"each\",\"else\",\"elseif\",\"enclosed\",\"escaped\",\"exists\",\"exit\",\"explain\",\"false\",\"fetch\",\"float\",\"float4\",\"float8\",\"for\",\"force\",\"foreign\",\"from\",\"fulltext\",\"grant\",\"group\",\"having\",\"high_priority\",\"hour_microsecond\",\"hour_minute\",\"hour_second\",\"if\",\"ignore\",\"in\",\"index\",\"infile\",\"inner\",\"inout\",\"insensitive\",\"insert\",\"int\",\"int1\",\"int2\",\"int3\",\"int4\",\"int8\",\"integer\",\"interval\",\"into\",\"is\",\"iterate\",\"join\",\"key\",\"keys\",\"kill\",\"leading\",\"leave\",\"left\",\"like\",\"limit\",\"linear\",\"lines\",\"load\",\"localtime\",\"localtimestamp\",\"lock\",\"long\",\"longblob\",\"longtext\",\"loop\",\"low_priority\",\"master_ssl_verify_server_cert\",\"match\",\"maxvalue\",\"mediumblob\",\"mediumint\",\"mediumtext\",\"middleint\",\"minute_microsecond\",\"minute_second\",\"mod\",\"modifies\",\"natural\",\"not\",\"no_write_to_binlog\",\"null\",\"numeric\",\"on\",\"optimize\",\"option\",\"optionally\",\"or\",\"order\",\"out\",\"outer\",\"outfile\",\"precision\",\"primary\",\"procedure\",\"purge\",\"range\",\"read\",\"reads\",\"read_write\",\"real\",\"references\",\"regexp\",\"release\",\"rename\",\"repeat\",\"replace\",\"require\",\"resignal\",\"restrict\",\"return\",\"revoke\",\"right\",\"rlike\",\"schema\",\"schemas\",\"second_microsecond\",\"select\",\"sensitive\",\"separator\",\"set\",\"show\",\"signal\",\"smallint\",\"spatial\",\"specific\",\"sql\",\"sqlexception\",\"sqlstate\",\"sqlwarning\",\"sql_big_result\",\"sql_calc_found_rows\",\"sql_small_result\",\"ssl\",\"starting\",\"straight_join\",\"table\",\"terminated\",\"then\",\"tinyblob\",\"tinyint\",\"tinytext\",\"to\",\"trailing\",\"trigger\",\"true\",\"undo\",\"union\",\"unique\",\"unlock\",\"unsigned\",\"update\",\"usage\",\"use\",\"using\",\"utc_date\",\"utc_time\",\"utc_timestamp\",\"values\",\"varbinary\",\"varchar\",\"varcharacter\",\"varying\",\"when\",\"where\",\"while\",\"with\",\"write\",\"xor\",\"year_month\",\"zerofill\",\"general\",\"ignore_server_ids\",\"master_heartbeat_period\",\"slow\",\"action\",\"bit\",\"date\",\"enum\",\"no\",\"text\",\"time\",\"timestamp\",\"prepare\",\"execute\",\"deallocate prepare\",\"begin\",\"end\",\"delimiter\",\"repeat\",\"open\",\"close\",\"do\",\"handler\",\"load data infile\",\"start transaction\",\"commit\",\"rollback\",\"flush\",\"with read lock\",\"sounds\"],customParseRules:[function(){var b=a.util.createHashMap([\"abs\",\"acos\",\"adddate\",\"addtime\",\"aes_decrypt\",\"aes_encrypt\",\"ascii\",\"asin\",\"atan2\",\"atan\",\"atan\",\"avg\",\"benchmark\",\"bin\",\"binary\",\"bit_and\",\"bit_count\",\"bit_length\",\"bit_or\",\"bit_xor\",\"cast\",\"ceil\",\"ceiling\",\"char_length\",\"char\",\"character_length\",\"charset\",\"coalesce\",\"coercibility\",\"collation\",\"compress\",\"concat_ws\",\"concat\",\"connection_id\",\"conv\",\"convert_tz\",\"convert\",\"cos\",\"cot\",\"countdistinct\",\"count\",\"crc32\",\"curdate\",\"current_date\",\"current_time\",\"current_timestamp\",\"current_user\",\"curtime\",\"database\",\"date_add\",\"date_format\",\"date_sub\",\"date\",\"datediff\",\"day\",\"dayname\",\"dayofmonth\",\"dayofweek\",\"dayofyear\",\"decode\",\"default\",\"degrees\",\"des_decrypt\",\"des_encrypt\",\"elt\",\"encode\",\"encrypt\",\"exp\",\"export_set\",\"extract\",\"extractvalue\",\"field\",\"find_in_set\",\"floor\",\"format\",\"found_rows\",\"from_days\",\"from_unixtime\",\"get_format\",\"get_lock\",\"greatest\",\"group_concat\",\"hex\",\"hour\",\"if\",\"ifnull\",\"in\",\"inet_aton\",\"inet_ntoa\",\"insert\",\"instr\",\"interval\",\"is_free_lock\",\"is_used_lock\",\"isnull\",\"last_insert_id\",\"lcase\",\"least\",\"left\",\"length\",\"ln\",\"load_file\",\"localtime\",\"localtimestamp\",\"locate\",\"log10\",\"log2\",\"log\",\"lower\",\"lpad\",\"ltrim\",\"make_set\",\"makedate\",\"master_pos_wait\",\"max\",\"md5\",\"microsecond\",\"mid\",\"min\",\"minute\",\"mod\",\"month\",\"monthname\",\"name_const\",\"now\",\"nullif\",\"oct\",\"octet_length\",\"old_password\",\"ord\",\"password\",\"period_add\",\"period_diff\",\"pi\",\"position\",\"pow\",\"power\",\"procedureanalyse\",\"quarter\",\"quote\",\"radians\",\"rand\",\"release_lock\",\"repeat\",\"replace\",\"reverse\",\"right\",\"rlike\",\"round\",\"row_count\",\"rpad\",\"rtrim\",\"schema\",\"sec_to_time\",\"second\",\"session_user\",\"sha1\",\"sha\",\"sha2\",\"sign\",\"sin\",\"sleep\",\"soundex\",\"space\",\"sqrt\",\"std\",\"stddev_pop\",\"stddev_samp\",\"stddev\",\"str_to_date\",\"strcmp\",\"subdate\",\"substr\",\"substring_index\",\"substring\",\"subtime\",\"sum\",\"sysdate\",\"system_user\",\"tan\",\"time_format\",\"time_to_sec\",\"time\",\"timediff\",\"timestamp\",\"timestampadd\",\"timestampdiff\",\"to_days\",\"to_seconds\",\"trim\",\"truncate\",\"ucase\",\"uncompress\",\"uncompressed_length\",\"unhex\",\"unix_timestamp\",\"updatexml\",\"upper\",\"user\",\"utc_date\",\"utc_time\",\"utc_timestamp\",\"uuid_short\",\"uuid\",\"values\",\"var_pop\",\"var_samp\",\"variance\",\"version\",\"week\",\"weekday\",\"weekofyear\",\"year\",\"yearweek\"],\"\\\\b\",!0);return function(c){var d,e,f=a.util.matchWord(c,b,\"function\",!0);if(null===f)return null;for(d=f.value.length,e=c.reader.peek(d);e.length===d&&e!==c.reader.EOF;){if(!/\\s$/.test(e)){if(\"(\"===e.charAt(e.length-1))return c.reader.read(f.value.length-1),f;break}e=c.reader.peek(++d)}return null}}()],scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"--\",\"\\n\",null,!0],[\"/*\",\"*/\"],[\"#\",\"\\n\",null,!0]],quotedIdent:[[\"`\",\"`\",[\"`\\\\`\",\"\\\\\\\\\"]]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{follows:[[{token:\"keyword\",values:[\"from\",\"join\"]},{token:\"default\"}],[{token:\"keyword\",values:[\"from\",\"join\"]},{token:\"default\"},{token:\"ident\"},a.util.whitespace,{token:\"operator\",values:[\".\"]},a.util.whitespace]]},operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"&&\",\"||\",\"|\",\"&\",\"^\",\">>\",\"<<\",\"<>\",\"<=>\",\"<=\",\"<\",\">=\",\">\",\"==\",\"!=\",\"!\",\"~\",\":=\",\"=\",\".\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"nginx\",{scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"#\",\"\\n\",null,!0]],variable:[[\"$\",{length:1,regex:/[\\W]/},null,!0]],label:[[\"@\",{length:1,regex:/[\\W]/},null,!0]],ssiCommand:[[\"<!--#\",\"-->\"]]},customParseRules:[function(){var b=a.util.createHashMap([\"server\",\"location\",\"upstream\",\"http\",\"mail\",\"types\",\"map\",\"split-clients\",\"geo\",\"limit_except\"],\"\\\\b\",!1);return function(c){var d,e,f=a.util.matchWord(c,b,\"context\",!0);if(!f)return null;for(e=f.value.length;(d=c.reader.peek(e++))!==c.reader.EOF;){if(/\\{$/.test(d))return c.reader.read(f.value.length-1),f;if(/;$/.test(d))break}return null}}(),function(b){var c,d,e,f,g=b.reader.current(),h=!1,i=g,j=b.reader.getLine(),k=b.reader.getColumn();if(/[\\s\\n]/.test(g))return null;for(d=b.count()-1;(c=b.token(d--))!==b.reader.EOF;){if(\"regexLiteral\"===c.name||\"punctuation\"===c.name&&(\"{\"===c.value||\"}\"===c.value||\";\"===c.value))return null;if(\"operator\"===c.name&&a.util.contains([\"^~\",\"~\",\"~*\"],c.value)){if(f=a.util.getPreviousWhile(b.getAllTokens(),d,function(a){return\"default\"===a.name||\"comment\"===a.name}),\"context\"===f.name&&\"location\"===f.value){h=!0;break}}else if(\"keyword\"===c.name&&\"server_name\"===c.value){if(\"~\"!==g)return null;h=!0;break}}if(!h)return null;for(;(e=b.reader.peek())!==b.reader.EOF&&!/[\\s;\\n]/.test(e);)i+=b.reader.read();return b.createToken(\"regexLiteral\",i,j,k)},function(){var b=a.util.createHashMap([\"daemon\",\"env\",\"debug_points\",\"error_log\",\"include\",\"lock_file\",\"master_process\",\"pid\",\"ssl_engine\",\"timer_resolution\",\"user\",\"worker_cpu_affinity\",\"worker_priority\",\"worker_processes\",\"worker_rlimit_core\",\"worker_rlimit_nofile\",\"worker_rlimit_sigpending\",\"working_directory\",\"accept_mutext_delay\",\"accept_mutex\",\"debug_connection\",\"devpoll_changes\",\"devpoll_events\",\"kqueue_changes\",\"kqueue_events\",\"epoll_events\",\"multi_accept\",\"rtsig_signo\",\"rtsig_overflow_events\",\"rtsig_overflow_text\",\"rtsig_overflow_threshold\",\"use\",\"worker_connections\",\"aio\",\"alias\",\"chunked_transfer_encoding\",\"client_body_in_file_only\",\"client_body_in_single_buffer\",\"client_body_buffer_size\",\"client_body_temp_path\",\"client_body_timeout\",\"client_header_buffer_size\",\"client_header_timeout\",\"client_max_body_size\",\"default_type\",\"directio\",\"error_page\",\"if_modified_since\",\"internal\",\"keepalive_timeout\",\"keepalive_requests\",\"large_client_header_buffers\",\"limit_except\",\"limit_rate_after\",\"limit_rate\",\"listen\",\"location\",\"log_not_found\",\"log_subrequest\",\"msie_padding\",\"msie_refresh\",\"open_file_cache_errors\",\"open_file_cache_min_uses\",\"open_file_cache_valid\",\"open_file_cache\",\"optimize_server_names\",\"port_in_redirect\",\"post_action\",\"recursive_error_pages\",\"resolver_timeout\",\"resolver\",\"root\",\"satisfy_any\",\"satisfy\",\"send_timeout\",\"sendfile\",\"server_name\",\"server_name_in_redirect\",\"server_names_hash_max_size\",\"server_names_hash_bucket_size\",\"server_tokens\",\"server\",\"tcp_nodelay\",\"tcp_nopush\",\"try_files\",\"types\",\"underscores_in_headers\",\"allow\",\"deny\",\"auth_basic_user_file\",\"auth_basic\",\"autoindex_exact_size\",\"autoindex_localtime\",\"autoindex\",\"ancient_browser_value\",\"ancient_browser\",\"modern_browser_value\",\"modern_browser\",\"charset_map\",\"override_charset\",\"source_charset\",\"charset\",\"empty_gif\",\"fastcgi_bind\",\"fastcgi_buffer_size\",\"fastcgi_buffers\",\"fastcgi_cache_key\",\"fastcgi_cache_path\",\"fastcgi_cache_methods\",\"fastcgi_cache_min_uses\",\"fastcgi_cache_use_stale\",\"fastcgi_cache_valid\",\"fastcgi_cache\",\"fastcgi_connect_timeout\",\"fastcgi_index\",\"fastcgi_hide_header\",\"fastcgi_ignore_client_abort\",\"fastcgi_ignore_headers\",\"fastcgi_intercept_errors\",\"fastcgi_max_temp_file_size\",\"fastcgi_no_cache\",\"fastcgi_next_upstream\",\"fastcgi_param\",\"fastcgi_pass_header\",\"fastcgi_pass\",\"fastcgi_read_timeout\",\"fastcgi_redirect_errors\",\"fastcgi_send_timeout\",\"fastcgi_split_path_info\",\"fastcgi_store_access\",\"fastcgi_store\",\"fastcgi_temp_path\",\"geo\",\"gzip_buffers\",\"gzip_comp_level\",\"gzip_disable\",\"gzip_http_version\",\"gzip_min_length\",\"gzip_proxied\",\"gzip_types\",\"gzip_vary\",\"gzip\",\"add_header\",\"expires\",\"index\",\"limit_req_log_level\",\"limit_req_zone\",\"limit_req\",\"limit_zone\",\"limit_conn_log_level\",\"limit_conn\",\"access_log\",\"log_format\",\"open_log_file_cache\",\"map_hash_max_size\",\"map_hash_bucket_size\",\"map\",\"memcached_pass\",\"memcached_connect_timeout\",\"memcached_read_timeout\",\"memcached_send_timeout\",\"memcached_buffer_size\",\"memcached_next_upstream\",\"proxy_bind\",\"proxy_buffer_size\",\"proxy_buffering\",\"proxy_buffers\",\"proxy_busy_buffers_size\",\"proxy_cache_bypass\",\"proxy_cache_key\",\"proxy_cache_methods\",\"proxy_cache_min_uses\",\"proxy_cache_path\",\"proxy_cache_use_stale\",\"proxy_cache_valid\",\"proxy_cache\",\"proxy_connect_timeout\",\"proxy_headers_hash_bucket_size\",\"proxy_headers_hash_max_size\",\"proxy_hide_header\",\"proxy_ignore_client_abort\",\"proxy_ignore_headers\",\"proxy_intercept_errors\",\"proxy_max_temp_file_size\",\"proxy_method\",\"proxy_next_upstream\",\"proxy_no_cache\",\"proxy_pass_header\",\"proxy_pass_request_body\",\"proxy_pass_request_headers\",\"proxy_pass\",\"proxy_read_timeout\",\"proxy_redirect_errors\",\"proxy_redirect\",\"proxy_send_lowat\",\"proxy_send_timeout\",\"proxy_set_body\",\"proxy_set_header\",\"proxy_ssl_session_reuse\",\"proxy_store_access\",\"proxy_store\",\"proxy_temp_file_write_size\",\"proxy_temp_path\",\"proxy_upstream_fail_timeout\",\"proxy_upstream_max_fails\",\"valid_referers\",\"break\",\"if\",\"return\",\"rewrite\",\"set\",\"uninitialized_variable_warn\",\"scgi_bind\",\"scgi_buffer_size\",\"scgi_buffers\",\"scgi_busy_buffers_size\",\"scgi_cache_bypass\",\"scgi_cache_key\",\"scgi_cache_methods\",\"scgi_cache_min_uses\",\"scgi_cache_path\",\"scgi_cache_use_stale\",\"scgi_cache_valid\",\"scgi_cache\",\"scgi_connect_timeout\",\"scgi_hide_header\",\"scgi_ignore_client_abort\",\"scgi_ignore_headers\",\"scgi_intercept_errors\",\"scgi_max_temp_file_size\",\"scgi_next_upstream\",\"scgi_no_cache\",\"scgi_param\",\"scgi_pass_header\",\"scgi_pass_request_body\",\"scgi_pass_request_headers\",\"scgi_pass\",\"scgi_read_timeout\",\"scgi_send_timeout\",\"scgi_store_access\",\"scgi_store\",\"scgi_temp_file_write_size\",\"scgi_temp_path\",\"split-clients\",\"ssi\",\"ssi_silent_errors\",\"ssi_types\",\"ssi_value_length\",\"ip_hash\",\"server\",\"upstream\",\"userid_domain\",\"userid_expires\",\"userid_name\",\"userid_p3p\",\"userid_path\",\"userid_service\",\"userid\",\"uwsgi_bind\",\"uwsgi_buffer_size\",\"uwsgi_buffers\",\"uwsgi_busy_buffers_size\",\"uwsgi_cache_bypass\",\"uwsgi_cache_key\",\"uwsgi_cache_methods\",\"uwsgi_cache_min_uses\",\"uwsgi_cache_path\",\"uwsgi_cache_use_stale\",\"uwsgi_cache_valid\",\"uwsgi_cache\",\"uwsgi_connect_timeout\",\"uwsgi_hide_header\",\"uwsgi_ignore_client_abort\",\"uwsgi_ignore_headers\",\"uwsgi_intercept_errors\",\"uwsgi_max_temp_file_size\",\"uwsgi_modifier1\",\"uwsgi_modifier2\",\"uwsgi_next_upstream\",\"uwsgi_no_cache\",\"uwsgi_param\",\"uwsgi_pass_header\",\"uwsgi_pass_request_body\",\"uwsgi_pass_request_headers\",\"uwsgi_pass\",\"uwsgi_read_timeout\",\"uwsgi_send_timeout\",\"uwsgi_store_access\",\"uwsgi_store\",\"uwsgi_string\",\"uwsgi_temp_file_write_size\",\"uwsgi_temp_path\",\"add_before_body\",\"add_after_body\",\"addition_types\",\"perl_modules\",\"perl_require\",\"perl_set\",\"perl\",\"flv\",\"geoip_country\",\"geoip_city\",\"google_perftools_profiles\",\"gzip_static\",\"gzip_http_version\",\"gzip_proxied\",\"image_filter_buffer\",\"image_filter_jpeg_quality\",\"image_filter_transparency\",\"image_filter\",\"random_index\",\"set_real_ip_from\",\"real_ip_header\",\"secure_link_secret\",\"secure_link_md5\",\"secure_link\",\"ssl_certificate_key\",\"ssl_client_certificate\",\"ssl_certificate\",\"ssl_dhparam\",\"ssl_ciphers\",\"ssl_crl\",\"ssl_prefer_server_ciphers\",\"ssl_protocols\",\"ssl_verify_client\",\"ssl_verify_depth\",\"ssl_session_cache\",\"ssl_session_timeout\",\"ssl_engine\",\"ssl\",\"stub_status\",\"sub_filter_once\",\"sub_filter_types\",\"sub_filter\",\"dav_access\",\"dav_methods\",\"create_full_put_path\",\"xml_entities\",\"xslt_stylesheet\",\"xslt_types\",\"auth\",\"imap_capabilities\",\"imap_client_buffer\",\"listen\",\"pop3_auth\",\"pop3_capabilities\",\"protocol\",\"server\",\"server_name\",\"smtp_auth\",\"smtp_capabilities\",\"so_keepalive\",\"timeout\",\"auth_http\",\"auth_http_header\",\"auth_http_timeout\",\"proxy_buffer\",\"proxy_pass_error_message\",\"proxy_timeout\",\"proxy\",\"xclient\",\"starttls\",\"echo_duplicate\",\"echo_flush\",\"echo_sleep\",\"echo_blocking_sleep\",\"echo_reset_timer\",\"echo_read_request_body\",\"echo_location_async\",\"echo_location\",\"echo_subrequest_async\",\"echo_subrequest\",\"echo_foreach_split\",\"echo_end\",\"echo_request_body\",\"echo_exec\",\"echo_before_body\",\"echo_after_body\",\"echo\",\"default\",\"output_buffers\"],\"[\\\\s;]\",!1);\nreturn function(c){var d,e=a.util.matchWord(c,b,\"keyword\",!0);return e?(d=a.util.getPreviousWhile(c.getAllTokens(),c.count(),function(a){return\"default\"===a.name||\"comment\"===a.name}),!d||\"punctuation\"===d.name&&a.util.contains([\"{\",\"}\",\";\"],d.value)?(c.reader.read(e.value.length-1),e):null):null}}()],identFirstLetter:/[A-Za-z_-]/,identAfterFirstLetter:/[\\w-]/,operators:[\"~*\",\"~\",\"^~\",\"=\",\"::\",\":\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"objective-c\",{keywords:[\"and\",\"default\",\"noexcept\",\"template\",\"and_eq\",\"delete\",\"not\",\"this\",\"alignof\",\"double\",\"not_eq\",\"thread_local\",\"asm\",\"dynamic_cast\",\"nullptr\",\"throw\",\"auto\",\"else\",\"operator\",\"true\",\"bitand\",\"enum\",\"or\",\"try\",\"bitor\",\"explicittodo\",\"or_eq\",\"typedef\",\"bool\",\"export\",\"private\",\"typeid\",\"break\",\"externtodo\",\"protected\",\"typename\",\"case\",\"false\",\"public\",\"union\",\"catch\",\"float\",\"register\",\"using\",\"char\",\"for\",\"reinterpret_cast\",\"unsigned\",\"char16_t\",\"friend\",\"return\",\"void\",\"char32_t\",\"goto\",\"short\",\"wchar_t\",\"if\",\"signed\",\"virtual\",\"compl\",\"inline\",\"sizeof\",\"volatile\",\"const\",\"int\",\"static\",\"while\",\"constexpr\",\"long\",\"static_assert\",\"xor\",\"const_cast\",\"mutable\",\"static_cast\",\"xor_eq\",\"continue\",\"namespace\",\"struct\",\"decltype\",\"new\",\"switch\",\"id\",\"self\",\"nil\",\"super\",\"in\",\"out\",\"inout\",\"bycopy\",\"byval\",\"oneway\",\"SEL\",\"BOOL\",\"YES\",\"NO\",\"@interface\",\"@implementation\",\"@end\",\"@class\",\"@private\",\"@public\",\"@package\",\"@protected\",\"@protocol\",\"@optional\",\"@required\",\"@property\",\"@synthesize\",\"@dynamic\",\"@selector\",\"@try\",\"@catch\",\"@finally\",\"@throw\",\"@synchronized\",\"@encode\",\"__attribute__\",\"__weak\",\"__strong\"],customTokens:{constant:{values:[\"EXIT_SUCCESS\",\"EXIT_FAILURE\",\"SIG_DFL\",\"SIG_IGN\",\"SIG_ERR\",\"SIGABRT\",\"SIGFPE\",\"SIGILL\",\"SIGINT\",\"SIGSEGV\",\"SIGTERM\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],['@\"','\"',[\"\\\\\\\\\",'\\\\\"']]],\"char\":[[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"//\",\"\\n\",null,!0],[\"/*\",\"*/\"]],preprocessorDirective:[[\"#\",\"\\n\",null,!0]]},customParseRules:[function(b){var c,d,e,f,g,h,i,j,k,l;if(!b.language.identFirstLetter.test(b.reader.current()))return null;for(d=0;(c=b.reader.peek(++d))&&c.length===d&&b.language.identAfterFirstLetter.test(a.util.last(c)););for(e=b.reader.current()+c.substring(0,c.length-1),d-=1,f=!1;(c=b.reader.peek(++d))&&c.length===d;)if(!/\\s$/.test(c)){if(g=/([\\]:])$/.exec(c),null===g)return null;f=\":\"===g[1]&&!/::$/.test(b.reader.peek(d+1));break}for(h=0,i=0,k=b.count(),l=1;j=b.token(--k);){if(l>1&&!f)return null;if(\"punctuation\"===j.name)switch(j.value){case\";\":case\"{\":case\"}\":return null;case\"(\":h--;break;case\")\":h++;break;case\"[\":if(0===i&&0===h)return l>=1?(j=b.createToken(f&&l>1?\"messageArgumentName\":\"messageDestination\",e,b.reader.getLine(),b.reader.getColumn()),b.reader.read(e.length-1),j):null;i--;break;case\"]\":i++}0===i&&0===h&&\"default\"===j.name&&l++}return null},function(){var b=a.util.createHashMap([\"getter\",\"setter\",\"readonly\",\"readwrite\",\"assign\",\"retain\",\"copy\",\"nonatomic\"],\"\\\\b\");return function(c){var d,e,f=a.util.matchWord(c,b,\"keyword\",!0);if(!f)return null;for(e=c.count();d=c.token(--e);)if(\"punctuation\"===d.name){if(\"(\"===d.value)return d=a.util.getPreviousNonWsToken(c.getAllTokens(),e),d&&\"keyword\"===d.name&&\"@property\"===d.value?(f.line=c.reader.getLine(),f.column=c.reader.getColumn(),c.reader.read(f.value.length-1),f):null;if(\";\"===d.value)return null}return null}}()],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{custom:[function(b){var c=/^(NS|CG).+$/,d=a.util.getNextNonWsToken(b.tokens,b.index);return c.test(b.tokens[b.index].value)&&(!d||\"punctuation\"!==d.name||\"(\"!==d.value)},function(b){var c=a.util.getNextNonWsToken(b.tokens,b.index);return c&&\"messageDestination\"===c.name&&(\"class\"===c.value||\"alloc\"===c.value)},function(b){var c,d,e;if(!a.util.createProceduralRule(b.index+1,1,[{token:\"default\"},{token:\"ident\"}])(b.tokens))return!1;if(a.util.createProceduralRule(b.index+1,1,[{token:\"default\"},{token:\"ident\"},a.util.whitespace,{token:\"operator\",value:\":\"}])(b.tokens))return!1;for(d=b.index,e=0;c=b.tokens[--d];)if(\"punctuation\"===c.name)switch(c.value){case\"[\":return!1;case\"{\":case\",\":return!0;case\"(\":if(0===e)return!0;e++;break;case\")\":e--}return!0},function(){var b=[[a.util.whitespace,{token:\"operator\",values:[\"*\",\"**\"]},a.util.whitespace,{token:\"ident\"},a.util.whitespace,{token:\"punctuation\",values:[\";\"]}],[a.util.whitespace,{token:\"operator\",values:[\"&\",\"*\",\"**\"]},a.util.whitespace,{token:\"ident\"}]];return function(c){var d,e,f,g,h;if(d=function(d){var e;for(e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens),!d)return!1;for(e=!1,f=!1,h=c.index;g=c.tokens[--h];){if(\"punctuation\"===g.name&&(\";\"===g.value||\"{\"===g.value))return e||!f;\"operator\"===g.name&&\"=\"===g.value?f=!0:\"keyword\"===g.name&&\"@property\"===g.value&&(e=!0)}return!1}}(),function(){var b=[[a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"ident\"}],[a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"punctuation\",values:[\"[\"]}],[a.util.whitespace,{token:\"operator\",values:[\"*\",\"**\"]},a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"operator\",values:[\"&\"],optional:!0},{token:\"ident\"}],[a.util.whitespace,{token:\"operator\",values:[\"*\",\"**\"]},a.util.whitespace,{token:\"punctuation\",values:[\")\"]},a.util.whitespace,{token:\"operator\",values:[\"&\"],optional:!0},{token:\"punctuation\",values:[\"[\"]}]];return function(c){var d,e,f,g;if(g=function(d){var e;for(e=0;e<b.length;e++)if(a.util.createProceduralRule(c.index+1,1,b[e],!1)(d))return!0;return!1}(c.tokens),!g)return!1;for(e=c.index;d=c.tokens[--e];)if(\"punctuation\"===d.name&&\"(\"===d.value){if(f=a.util.getPreviousNonWsToken(c.tokens,e)){if(\"ident\"===f.name)return!1;if(\"keyword\"===f.name&&a.util.contains([\"if\",\"while\"],f.value))return!1}return!0}return!1}}(),function(c){var d,e,f,g,h=c.index;if(g=a.util.getPreviousNonWsToken(c.tokens,c.index),!g||\"keyword\"===g.name)return!1;for(e=!1,f=[0,0];(d=c.tokens[--h])!==b;){if(\"operator\"===d.name)switch(d.value){case\"<\":case\"<<\":f[0]+=d.value.length;continue;case\">\":case\">>\":if(0===f[0])return!1;f[1]+=d.value.length;continue;case\".\":case\"::\":case\"*\":continue}if(\"default\"!==d.name&&(\"punctuation\"!==d.name||\",\"!==d.value)){if(!(\"ident\"===d.name||\"keyword\"===d.name&&a.util.contains([\"id\",\"static_cast\"],d.value)))break;e=!0}}if(!e||0===f[0])return!1;for(h=c.index;(d=c.tokens[++h])!==b;){if(\"operator\"===d.name&&(\">\"===d.value||\">>\"===d.value))return!0;if(!(\"operator\"===d.name&&a.util.contains([\"<\",\"<<\",\">\",\">>\",\"::\",\"*\"],d.value)||\"punctuation\"===d.name&&\",\"===d.value||\"ident\"===d.name||\"default\"===d.name))return!1}return!1},function(c){var d,e,f=a.util.getPreviousNonWsToken(c.tokens,c.index);if(f!==b&&(\"ident\"===f.name||\"operator\"===f.name&&\".\"===f.value))return!1;if(f=a.util.getNextNonWsToken(c.tokens,c.index),!f||\"operator\"!==f.name||\"<\"!==f.value)return!1;for(d=c.index,e=[0,0];(f=c.tokens[++d])!==b;)if(\"operator\"!==f.name){if(\"default\"!==f.name&&\"ident\"!==f.name&&(\"punctuation\"!==f.name||\",\"!==f.value))return!1}else{switch(f.value){case\"<\":e[0]++;break;case\"<<\":e[0]+=2;break;case\">\":e[1]++;break;case\">>\":e[1]+=2;break;default:return!1}if(e[0]===e[1])break}return e[0]!==e[1]?!1:(f=c.tokens[++d],!f||\"default\"!==f.name&&\"ident\"!==f.name?!1:\"default\"!==f.name||(f=c.tokens[++d],f&&\"ident\"===f.name)?!0:!1)}],follows:[[{token:\"keyword\",values:[\"@interface\",\"@protocol\",\"@implementation\"]},{token:\"default\"}]],precedes:[[{token:\"operator\",values:[\"::\"]}],[a.util.whitespace,{token:\"operator\",values:[\"*\",\"**\"]},{token:\"default\"},{token:\"ident\"},a.util.whitespace,{token:\"operator\",values:[\"=\",\",\"]}],[a.util.whitespace,{token:\"operator\",values:[\"*\",\"**\"]},a.util.whitespace,{token:\"operator\",values:[\"&\"]},a.util.whitespace,{token:\"ident\"},a.util.whitespace,{token:\"operator\",values:[\"=\",\",\"]}]]},operators:[\"==\",\"=\",\"+=\",\"++\",\"+\",\"->*\",\"->\",\"-=\",\"--\",\"-\",\"**\",\"*=\",\"*\",\"/=\",\"/\",\"%=\",\"%\",\"!=\",\"!\",\">>=\",\">>\",\">=\",\">\",\"<<=\",\"<<\",\"<=\",\"<\",\"&=\",\"&&\",\"&\",\"|=\",\"||\",\"|\",\"~\",\"^=\",\"^\",\".*\",\".\",\"?\",\"::\",\":\",\",\"]})}(this.Sunlight),function(a,b){function c(c){var d=c.token(c.count()-1),e=null;return\"\"!==c.defaultData.text&&(e=c.createToken(\"default\",c.defaultData.text)),e||(e=d),e===b?!0:a.util.contains([\"keyword\",\"ident\",\"number\",\"variable\",\"specialVariable\"],d.name)?!1:\"punctuation\"!==d.name||a.util.contains([\"(\",\"{\",\"[\",\",\",\";\"],d.value)?!0:!1}function d(a){for(var b,c=\"\";(b=a.reader.peek())!==a.reader.EOF&&/\\s/.test(b);)c+=a.reader.read();return c}function e(b,c,d){var e,f,g=c,h=c,i=a.util.contains([\"[\",\"(\",\"{\"],g),j=g,k=1;switch(c){case\"[\":h=\"]\";break;case\"(\":h=\")\";break;case\"{\":h=\"}\"}for(;b.reader.peek()!==b.reader.EOF;)if(e=b.reader.peek(2),e!==\"\\\\\"+h&&\"\\\\\\\\\"!==e){if(f=b.reader.read(),f===g&&i)k++;else if(f===h&&--k<=0){(i||d)&&(j+=f);break}j+=f}else j+=b.reader.read(2);return j}function f(a,b){for(var c=a.reader.peek(b);c.length===b&&/\\s$/.test(c);)c=a.reader.peek(++b);return/[\\w]$/.test(c)?!1:(a.reader.read(b),{delimiter:a.reader.current(),value:c.substring(0,c.length-1)})}if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"perl\",{keywords:[\"caller\",\"die\",\"dump\",\"eval\",\"exit\",\"goto\",\"last\",\"next\",\"redo\",\"return\",\"sub\",\"wantarray\",\"break\",\"continue\",\"given\",\"when\",\"default\",\"import\",\"local\",\"my\",\"our\",\"state\",\"do\",\"no\",\"package\",\"require\",\"use\",\"bless\",\"dbmclose\",\"dbmopen\",\"ref\",\"tied\",\"untie\",\"tie\",\"if\",\"elsif\",\"else\",\"unless\",\"while\",\"foreach\",\"for\",\"until\",\"not\",\"or\",\"and\"],customTokens:{\"function\":{values:[\"chomp\",\"chop\",\"chr\",\"crypt\",\"hex\",\"index\",\"length\",\"oct\",\"ord\",\"rindex\",\"sprintf\",\"substr\",\"pos\",\"quotemeta\",\"split\",\"study\",\"abs\",\"atan2\",\"cos\",\"exp\",\"hex\",\"int\",\"log\",\"oct\",\"rand\",\"sin\",\"sqrt\",\"srand\",\"pop\",\"push\",\"shift\",\"splice\",\"unshift\",\"grep\",\"join\",\"map\",\"reverse\",\"sort\",\"delete\",\"each\",\"exists\",\"keys\",\"values\",\"binmode\",\"closedir\",\"close\",\"eof\",\"fileno\",\"flock\",\"format\",\"getc\",\"print\",\"printf\",\"readdir\",\"rewinddir\",\"say\",\"seekdir\",\"seek\",\"select\",\"syscall\",\"sysread\",\"sysseek\",\"tell\",\"telldir\",\"truncate\",\"warn\",\"write\",\"pack\",\"syswrite\",\"unpack\",\"vec\",\"chdir\",\"chmod\",\"chown\",\"chroot\",\"fcntl\",\"glob\",\"ioctl\",\"link\",\"lstat\",\"mkdir\",\"open\",\"opendir\",\"readlink\",\"rename\",\"rmdir\",\"stat\",\"symlink\",\"sysopen\",\"umask\",\"unlink\",\"utime\",\"defined\",\"dump\",\"eval\",\"formline\",\"reset\",\"scalar\",\"undef\",\"alarm\",\"exec\",\"fork\",\"getpgrp\",\"getppid\",\"getpriority\",\"kill\",\"pipe\",\"setpgrp\",\"setpriority\",\"sleep\",\"system\",\"wait\",\"waitpid\",\"accept\",\"bind\",\"connect\",\"getpeername\",\"getsockname\",\"getsockopt\",\"listen\",\"recv\",\"send\",\"setsockopt\",\"shutdown\",\"socket\",\"socketpair\",\"msgctl\",\"msgget\",\"msgrcv\",\"msgsnd\",\"semctl\",\"semget\",\"semop\",\"shmctl\",\"shmget\",\"shmread\",\"shmwrite\",\"endgrent\",\"endhostent\",\"endnetent\",\"endpwent\",\"getgrent\",\"getgrgid\",\"getgrnam\",\"getlogin\",\"getpwent\",\"getpwnam\",\"getpwuid\",\"setgrent\",\"setpwent\",\"endprotoent\",\"endservent\",\"gethostbyaddr\",\"gethostbyname\",\"gethostent\",\"getnetbyaddr\",\"getnetbyname\",\"getnetent\",\"getprotobyname\",\"getprotobynumber\",\"getprotoent\",\"getservbyname\",\"getservbyport\",\"getservent\",\"sethostent\",\"setnetent\",\"setprotoent\",\"setservent\",\"gmtime\",\"localtime\",\"times\",\"time\",\"lcfirst\",\"lc\",\"lock\",\"prototype\",\"readline\",\"readpipe\",\"read\",\"ucfirst\",\"uc\"],boundary:\"\\\\b\"},specialVariable:{values:[\"$.\",\"$<\",\"$_\",\"$/\",\"$!\",\"$ARG\",\"$&\",\"$a\",\"$b\",\"$MATCH\",\"$PREMATCH\",\"${^MATCH}\",\"${^PREMATCH}\",\"$POSTMATCH\",\"$'\",\"$LAST_PAREN_MATCH\",\"$+\",\"$LAST_SUBMATCH_RESULT\",\"$^N\",\"$INPUT_LINE_NUMBER\",\"$NR\",\"$.\",\"$INPUT_RECORD_SEPARATOR\",\"$RS\",\"$OUTPUT_AUTOFLUSH\",\"$OFS\",\"$,\",\"@LAST_MATCH_END\",\"@+\",\"%LAST_PAREN_MATCH\",\"%+\",\"$OUTPUT_RECORD_SEPARATOR\",\"$ORS\",\"$LIST_SEPARATOR\",'$\"',\"$SUBSCRIPT_SEPARATOR\",\"$SUBSEP\",\"$;\",\"$FORMAT_PAGE_NUMBER\",\"$%\",\"$FORMAT_LINES_PER_PAGE\",\"$=\",\"$FORMAT_LINES_LEFT\",\"$-\",\"@LAST_MATCH_START\",\"@-\",\"%-\",\"$FORMAT_NAME\",\"$~\",\"$FORMAT_TOP_NAME\",\"$FORMAT_LINE_BREAK_CHARACTERS\",\"$:\",\"$FORMAT_FORMFEED\",\"$^L\",\"$ACCUMULATOR\",\"$^A\",\"$CHILD_ERROR\",\"$?\",\"${^CHILD_ERROR_NATIVE}\",\"${^ENCODING}\",\"$OS_ERROR\",\"$ERRNO\",\"$!\",\"%OS_ERROR\",\"%ERRNO\",\"%!\",\"$EXTENDED_OS_ERROR\",\"$^E\",\"$EVAL_ERROR\",\"$@\",\"$PROCESS_ID\",\"$PID\",\"$$\",\"$REAL_USER_ID\",\"$UID\",\"$<\",\"$EFFECTIVE_USER_ID\",\"$EUID\",\"$>\",\"$REAL_GROUP_ID\",\"$GID\",\"$(\",\"$EFFECTIVE_GROUP_ID\",\"$EGID\",\"$)\",\"$PROGRAM_NAME\",\"$0\",\"$[\",\"$]\",\"$COMPILING\",\"$^C\",\"$DEBUGGING\",\"$^D\",\"${^RE_DEBUG_FLAGS}\",\"${^RE_TRIE_MAXBUF}\",\"$SYSTEM_FD_MAX\",\"$^F\",\"$^H\",\"%^H\",\"$INPLACE_EDIT\",\"$^I\",\"$^M\",\"$OSNAME\",\"$^O\",\"${^OPEN}\",\"$PERLDB\",\"$^P\",\"$LAST_REGEXP_CODE_RESULT\",\"$^R\",\"$EXCEPTIONS_BEING_CAUGHT\",\"$^S\",\"$BASETIME\",\"$^T\",\"${^TAINT}\",\"${^UNICODE}\",\"${^UTF8CACHE}\",\"${^UTF8LOCALE}\",\"$PERL_VERSION\",\"$^V\",\"$WARNING\",\"$^W\",\"${^WARNING_BITS}\",\"${^WIN32_SLOPPY_STAT}\",\"$EXECUTABLE_NAME\",\"$^X\",\"ARGV\",\"$ARGV\",\"@ARGV\",\"ARGVOUT\",\"@F\",\"@INC\",\"@ARG\",\"@_\",\"%INC\",\"%ENV\",\"$ENV\",\"%SIG\",\"$SIG\",\"$^\",\"$#array\"],boundary:\"\\\\W\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"#\",\"\\n\",null,!0]],variable:[[\"$#\",{length:1,regex:/[\\W]/},null,!0],[\"$\",{length:1,regex:/[\\W]/},null,!0],[\"@\",{length:1,regex:/[\\W]/},null,!0],[\"%\",{length:1,regex:/[\\W]/},null,!0]]},customParseRules:[function(b){var g,h,i,j,k,l=!1,m=\"\",n=b.reader.getLine(),o=b.reader.getColumn();if(!c(b))return null;if(g=b.reader.current(),h=b.reader.peek(),\"/\"===g||\"?\"===g)i=g;else if(\"m\"===g||\"y\"===g||\"s\"===g){if(!(j=f(b,1)))return null;m=g+j.value,i=j.delimiter,l=\"y\"===g||\"s\"===g}else{if(\"t\"!==g&&\"q\"!==g||\"r\"!==h)return null;if(!(j=f(b,2)))return null;l=\"t\"===g,m=g+j.value,i=j.delimiter}for(m+=e(b,i,!l),l&&(m+=d(b),k=a.util.contains([\"[\",\"(\",\"{\"],i),k&&(j=f(b,1),j&&(m+=j.value,i=j.delimiter)),m+=e(b,i,!0));b.reader.peek()!==b.reader.EOF&&/[A-Za-z]/.test(b.reader.peek());)m+=b.reader.read();return b.createToken(\"regexLiteral\",m,n,o)},function(a){var b,c=\"q\",d=1,f=a.reader.getLine(),g=a.reader.getColumn();return\"q\"!==a.reader.current()?null:(b=a.reader.peek(),(\"q\"===b||\"w\"===b||\"x\"==b)&&d++,/[A-Za-z0-9]$/.test(a.reader.peek(d))?null:(c+=a.reader.read(d-1)+e(a,a.reader.read(),!0),a.createToken(\"rawString\",c,f,g)))},function(b){var c,d,e,f,g=b.reader.getLine(),h=b.reader.getColumn(),i=\"<<\",j=\"\",k=\"\";if(\"<\"!==b.reader.current()||\"<\"!==b.reader.peek())return null;if(c=a.util.getPreviousNonWsToken(b.getAllTokens(),b.count()-1),c&&(\"ident\"===c.name||\"number\"===c.name||\"string\"===c.name))return null;for(b.reader.read(2),d=b.reader.current(),\"-\"===d&&(b.reader.read(),i+=d,d=b.reader.current()),a.util.contains(['\"',\"'\",\"`\"],d)?k=d:j=d,i+=d;(e=b.reader.peek())!==b.reader.EOF&&!(\"\\n\"===e||\"\"===k&&/\\W/.test(e));)if(\"\\\\\"===e&&(f=b.reader.peek(2),\"\"!==k&&a.util.contains([\"\\\\\"+k,\"\\\\\\\\\"],f)))i+=f,j+=b.reader.read(2);else{if(i+=b.reader.read(),\"\"!==k&&e===k)break;j+=e}return b.items.heredocQueue.push(j),b.createToken(\"heredocDeclaration\",i,g,h)},function(a){var b,c,d,e,f,g=[];if(0===a.items.heredocQueue.length)return null;if(0===a.defaultData.text.replace(/[^\\n]/g,\"\").length)return null;for(e=a.reader.current();a.items.heredocQueue.length>0&&a.reader.peek()!==a.reader.EOF;){for(b=a.items.heredocQueue.shift(),c=a.reader.getLine(),d=a.reader.getColumn();a.reader.peek()!==a.reader.EOF;){if(f=a.reader.peek(b.length+2),f===\"\\n\"+b||f===\"\\n\"+b+\"\\n\"){e+=a.reader.read(b.length+2);break}e+=a.reader.read()}g.push(a.createToken(\"heredoc\",e,c,d)),e=\"\"}return g.length>0?g:null},function(a){var b,c=\"=\",d=a.reader.getLine(),e=a.reader.getColumn(),f=!1;if(\"=\"!==a.reader.current()||!a.reader.isSol())return null;for(;(b=a.reader.peek())!==a.reader.EOF;)if(f||\"\\n=cut\"!==a.reader.peek(5)){if(f&&\"\\n\"===b)break;c+=a.reader.read()}else f=!0,c+=a.reader.read(5);return a.createToken(\"docComment\",c,d,e)}],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{follows:[[{token:\"keyword\",values:[\"sub\"]},{token:\"default\"}],[{token:\"operator\",values:[\"\\\\&\"]},a.util.whitespace]]},operators:[\"++\",\"+=\",\"+\",\"--\",\"-=\",\"-\",\"**=\",\"**\",\"*=\",\"*\",\"//=\",\"/=\",\"//\",\"/\",\"%=\",\"%\",\"=>\",\"=~\",\"==\",\"=\",\"!\",\"!~\",\"!=\",\"~\",\"~~\",\"\\\\&\",\"\\\\\",\"&&=\",\"&=\",\"&&\",\"&\",\"||=\",\"||\",\"|=\",\"|\",\"<<=\",\"<=>\",\"<<\",\"<=\",\"<\",\">>=\",\">>\",\">=\",\">\",\"^=\",\"^\",\"?\",\"::\",\":\",\"...\",\".=\",\"..\",\".\",\",\",\"x=\",\"x\",\"lt\",\"gt\",\"le\",\"ge\",\"eq\",\"ne\",\"cmp\"],contextItems:{heredocQueue:[]}})}(this.Sunlight),function(a,b,c){if(a===c||a.registerLanguage===c)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"php\",{keywords:[\"public\",\"private\",\"protected\",\"static\",\"final\",\"abstract\",\"extends\",\"implements\",\"const\",\"var\",\"class\",\"interface\",\"integer\",\"boolean\",\"int\",\"bool\",\"double\",\"float\",\"real\",\"string\",\"null\",\"true\",\"false\",\"for\",\"foreach\",\"do\",\"while\",\"as\",\"endwhile\",\"endfor\",\"endforeach\",\"namespace\",\"if\",\"else\",\"elseif\",\"try\",\"catch\",\"break\",\"continue\",\"goto\",\"case\",\"throw\",\"switch\",\"endif\",\"endswitch\",\"endwhile\",\"instanceof\",\"use\",\"and\",\"or\",\"xor\",\"self\",\"parent\",\"clone\",\"default\",\"new\",\"function\",\"declare\",\"enddeclare\",\"global\"],customTokens:{\"function\":{values:[\"zlib_get_coding_type\",\"zip_read\",\"zip_open\",\"zip_entry_read\",\"zip_entry_open\",\"zip_entry_name\",\"zip_entry_filesize\",\"zip_entry_compressionmethod\",\"zip_entry_compressedsize\",\"zip_entry_close\",\"zip_close\",\"zend_version\",\"zend_logo_guid\",\"xmlwriter_write_raw\",\"xmlwriter_write_pi\",\"xmlwriter_write_element_ns\",\"xmlwriter_write_element\",\"xmlwriter_write_dtd_entity\",\"xmlwriter_write_dtd_element\",\"xmlwriter_write_dtd_attlist\",\"xmlwriter_write_dtd\",\"xmlwriter_write_comment\",\"xmlwriter_write_cdata\",\"xmlwriter_write_attribute_ns\",\"xmlwriter_write_attribute\",\"xmlwriter_text\",\"xmlwriter_start_pi\",\"xmlwriter_start_element_ns\",\"xmlwriter_start_element\",\"xmlwriter_start_dtd_entity\",\"xmlwriter_start_dtd_element\",\"xmlwriter_start_dtd_attlist\",\"xmlwriter_start_dtd\",\"xmlwriter_start_document\",\"xmlwriter_start_comment\",\"xmlwriter_start_cdata\",\"xmlwriter_start_attribute_ns\",\"xmlwriter_start_attribute\",\"xmlwriter_set_indent_string\",\"xmlwriter_set_indent\",\"xmlwriter_output_memory\",\"xmlwriter_open_uri\",\"xmlwriter_open_memory\",\"xmlwriter_full_end_element\",\"xmlwriter_flush\",\"xmlwriter_end_pi\",\"xmlwriter_end_element\",\"xmlwriter_end_dtd_entity\",\"xmlwriter_end_dtd_element\",\"xmlwriter_end_dtd_attlist\",\"xmlwriter_end_dtd\",\"xmlwriter_end_document\",\"xmlwriter_end_comment\",\"xmlwriter_end_cdata\",\"xmlwriter_end_attribute\",\"xmlrpc_set_type\",\"xmlrpc_server_register_method\",\"xmlrpc_server_register_introspection_callback\",\"xmlrpc_server_destroy\",\"xmlrpc_server_create\",\"xmlrpc_server_call_method\",\"xmlrpc_server_add_introspection_data\",\"xmlrpc_parse_method_descriptions\",\"xmlrpc_is_fault\",\"xmlrpc_get_type\",\"xmlrpc_encode_request\",\"xmlrpc_encode\",\"xmlrpc_decode_request\",\"xmlrpc_decode\",\"xml_set_unparsed_entity_decl_handler\",\"xml_set_start_namespace_decl_handler\",\"xml_set_processing_instruction_handler\",\"xml_set_object\",\"xml_set_notation_decl_handler\",\"xml_set_external_entity_ref_handler\",\"xml_set_end_namespace_decl_handler\",\"xml_set_element_handler\",\"xml_set_default_handler\",\"xml_set_character_data_handler\",\"xml_parser_set_option\",\"xml_parser_get_option\",\"xml_parser_free\",\"xml_parser_create_ns\",\"xml_parser_create\",\"xml_parse_into_struct\",\"xml_parse\",\"xml_get_error_code\",\"xml_get_current_line_number\",\"xml_get_current_column_number\",\"xml_get_current_byte_index\",\"xml_error_string\",\"wordwrap\",\"wddx_serialize_vars\",\"wddx_serialize_value\",\"wddx_packet_start\",\"wddx_packet_end\",\"wddx_deserialize\",\"wddx_add_vars\",\"vsprintf\",\"vprintf\",\"vfprintf\",\"version_compare\",\"variant_xor\",\"variant_sub\",\"variant_set_type\",\"variant_set\",\"variant_round\",\"variant_pow\",\"variant_or\",\"variant_not\",\"variant_neg\",\"variant_mul\",\"variant_mod\",\"variant_int\",\"variant_imp\",\"variant_idiv\",\"variant_get_type\",\"variant_fix\",\"variant_eqv\",\"variant_div\",\"variant_date_to_timestamp\",\"variant_date_from_timestamp\",\"variant_cmp\",\"variant_cat\",\"variant_cast\",\"variant_and\",\"variant_add\",\"variant_abs\",\"var_export\",\"var_dump\",\"utf8_encode\",\"utf8_decode\",\"usort\",\"usleep\",\"user_error\",\"use_soap_error_handler\",\"urlencode\",\"urldecode\",\"unserialize\",\"unregister_tick_function\",\"unpack\",\"unlink\",\"unixtojd\",\"uniqid\",\"umask\",\"uksort\",\"ucwords\",\"ucfirst\",\"uasort\",\"trim\",\"trigger_error\",\"touch\",\"token_name\",\"token_get_all\",\"tmpfile\",\"timezone_version_get\",\"timezone_transitions_get\",\"timezone_open\",\"timezone_offset_get\",\"timezone_name_get\",\"timezone_name_from_abbr\",\"timezone_location_get\",\"timezone_identifiers_list\",\"timezone_abbreviations_list\",\"time_sleep_until\",\"time_nanosleep\",\"time\",\"tidy_warning_count\",\"tidy_repair_string\",\"tidy_repair_file\",\"tidy_parse_string\",\"tidy_parse_file\",\"tidy_is_xml\",\"tidy_is_xhtml\",\"tidy_getopt\",\"tidy_get_status\",\"tidy_get_root\",\"tidy_get_release\",\"tidy_get_output\",\"tidy_get_html_ver\",\"tidy_get_html\",\"tidy_get_head\",\"tidy_get_error_buffer\",\"tidy_get_config\",\"tidy_get_body\",\"tidy_error_count\",\"tidy_diagnose\",\"tidy_config_count\",\"tidy_clean_repair\",\"tidy_access_count\",\"textdomain\",\"tempnam\",\"tanh\",\"tan\",\"system\",\"syslog\",\"sys_get_temp_dir\",\"symlink\",\"substr_replace\",\"substr_count\",\"substr_compare\",\"substr\",\"strval\",\"strtr\",\"strtoupper\",\"strtotime\",\"strtolower\",\"strtok\",\"strstr\",\"strspn\",\"strrpos\",\"strripos\",\"strrev\",\"strrchr\",\"strpos\",\"strpbrk\",\"strncmp\",\"strncasecmp\",\"strnatcmp\",\"strnatcasecmp\",\"strlen\",\"stristr\",\"stripslashes\",\"stripos\",\"stripcslashes\",\"strip_tags\",\"strftime\",\"stream_wrapper_unregister\",\"stream_wrapper_restore\",\"stream_wrapper_register\",\"stream_supports_lock\",\"stream_socket_shutdown\",\"stream_socket_server\",\"stream_socket_sendto\",\"stream_socket_recvfrom\",\"stream_socket_pair\",\"stream_socket_get_name\",\"stream_socket_enable_crypto\",\"stream_socket_client\",\"stream_socket_accept\",\"stream_set_write_buffer\",\"stream_set_timeout\",\"stream_set_blocking\",\"stream_select\",\"stream_resolve_include_path\",\"stream_register_wrapper\",\"stream_is_local\",\"stream_get_wrappers\",\"stream_get_transports\",\"stream_get_meta_data\",\"stream_get_line\",\"stream_get_filters\",\"stream_get_contents\",\"stream_filter_remove\",\"stream_filter_register\",\"stream_filter_prepend\",\"stream_filter_append\",\"stream_copy_to_stream\",\"stream_context_set_params\",\"stream_context_set_option\",\"stream_context_set_default\",\"stream_context_get_params\",\"stream_context_get_options\",\"stream_context_get_default\",\"stream_context_create\",\"stream_bucket_prepend\",\"stream_bucket_new\",\"stream_bucket_make_writeable\",\"stream_bucket_append\",\"strcspn\",\"strcoll\",\"strcmp\",\"strchr\",\"strcasecmp\",\"str_word_count\",\"str_split\",\"str_shuffle\",\"str_rot13\",\"str_replace\",\"str_repeat\",\"str_pad\",\"str_ireplace\",\"str_getcsv\",\"stat\",\"sscanf\",\"srand\",\"sqrt\",\"sqlite_valid\",\"sqlite_unbuffered_query\",\"sqlite_udf_encode_binary\",\"sqlite_udf_decode_binary\",\"sqlite_single_query\",\"sqlite_seek\",\"sqlite_rewind\",\"sqlite_query\",\"sqlite_prev\",\"sqlite_popen\",\"sqlite_open\",\"sqlite_num_rows\",\"sqlite_num_fields\",\"sqlite_next\",\"sqlite_libversion\",\"sqlite_libencoding\",\"sqlite_last_insert_rowid\",\"sqlite_last_error\",\"sqlite_has_prev\",\"sqlite_has_more\",\"sqlite_field_name\",\"sqlite_fetch_string\",\"sqlite_fetch_single\",\"sqlite_fetch_object\",\"sqlite_fetch_column_types\",\"sqlite_fetch_array\",\"sqlite_fetch_all\",\"sqlite_factory\",\"sqlite_exec\",\"sqlite_escape_string\",\"sqlite_error_string\",\"sqlite_current\",\"sqlite_create_function\",\"sqlite_create_aggregate\",\"sqlite_column\",\"sqlite_close\",\"sqlite_changes\",\"sqlite_busy_timeout\",\"sqlite_array_query\",\"sql_regcase\",\"sprintf\",\"spliti\",\"split\",\"spl_object_hash\",\"spl_classes\",\"spl_autoload_unregister\",\"spl_autoload_register\",\"spl_autoload_functions\",\"spl_autoload_extensions\",\"spl_autoload_call\",\"spl_autoload\",\"soundex\",\"sort\",\"socket_write\",\"socket_strerror\",\"socket_shutdown\",\"socket_setopt\",\"socket_set_timeout\",\"socket_set_option\",\"socket_set_nonblock\",\"socket_set_blocking\",\"socket_set_block\",\"socket_sendto\",\"socket_send\",\"socket_select\",\"socket_recvfrom\",\"socket_recv\",\"socket_read\",\"socket_listen\",\"socket_last_error\",\"socket_getsockname\",\"socket_getpeername\",\"socket_getopt\",\"socket_get_status\",\"socket_get_option\",\"socket_create_pair\",\"socket_create_listen\",\"socket_create\",\"socket_connect\",\"socket_close\",\"socket_clear_error\",\"socket_bind\",\"socket_accept\",\"sleep\",\"sizeof\",\"sinh\",\"sin\",\"simplexml_load_string\",\"simplexml_load_file\",\"simplexml_import_dom\",\"similar_text\",\"shuffle\",\"show_source\",\"shmop_write\",\"shmop_size\",\"shmop_read\",\"shmop_open\",\"shmop_delete\",\"shmop_close\",\"shell_exec\",\"sha1_file\",\"sha1\",\"settype\",\"setrawcookie\",\"setlocale\",\"setcookie\",\"set_time_limit\",\"set_socket_blocking\",\"set_magic_quotes_runtime\",\"set_include_path\",\"set_file_buffer\",\"set_exception_handler\",\"set_error_handler\",\"session_write_close\",\"session_unset\",\"session_unregister\",\"session_start\",\"session_set_save_handler\",\"session_set_cookie_params\",\"session_save_path\",\"session_register\",\"session_regenerate_id\",\"session_name\",\"session_module_name\",\"session_is_registered\",\"session_id\",\"session_get_cookie_params\",\"session_encode\",\"session_destroy\",\"session_decode\",\"session_commit\",\"session_cache_limiter\",\"session_cache_expire\",\"serialize\",\"scandir\",\"rtrim\",\"rsort\",\"round\",\"rmdir\",\"rewinddir\",\"rewind\",\"restore_include_path\",\"restore_exception_handler\",\"restore_error_handler\",\"reset\",\"rename\",\"register_tick_function\",\"register_shutdown_function\",\"realpath_cache_size\",\"realpath_cache_get\",\"realpath\",\"readlink\",\"readgzfile\",\"readfile\",\"readdir\",\"read_exif_data\",\"rawurlencode\",\"rawurldecode\",\"range\",\"rand\",\"rad2deg\",\"quotemeta\",\"quoted_printable_encode\",\"quoted_printable_decode\",\"putenv\",\"property_exists\",\"proc_terminate\",\"proc_open\",\"proc_get_status\",\"proc_close\",\"printf\",\"print_r\",\"prev\",\"preg_split\",\"preg_replace_callback\",\"preg_replace\",\"preg_quote\",\"preg_match_all\",\"preg_match\",\"preg_last_error\",\"preg_grep\",\"preg_filter\",\"pow\",\"pos\",\"popen\",\"pi\",\"phpversion\",\"phpinfo\",\"phpcredits\",\"php_uname\",\"php_strip_whitespace\",\"php_sapi_name\",\"php_real_logo_guid\",\"php_logo_guid\",\"php_ini_scanned_files\",\"php_ini_loaded_file\",\"php_egg_logo_guid\",\"pg_version\",\"pg_update\",\"pg_untrace\",\"pg_unescape_bytea\",\"pg_tty\",\"pg_transaction_status\",\"pg_trace\",\"pg_setclientencoding\",\"pg_set_error_verbosity\",\"pg_set_client_encoding\",\"pg_send_query_params\",\"pg_send_query\",\"pg_send_prepare\",\"pg_send_execute\",\"pg_select\",\"pg_result_status\",\"pg_result_seek\",\"pg_result_error_field\",\"pg_result_error\",\"pg_result\",\"pg_query_params\",\"pg_query\",\"pg_put_line\",\"pg_prepare\",\"pg_port\",\"pg_ping\",\"pg_pconnect\",\"pg_parameter_status\",\"pg_options\",\"pg_numrows\",\"pg_numfields\",\"pg_num_rows\",\"pg_num_fields\",\"pg_meta_data\",\"pg_lowrite\",\"pg_lounlink\",\"pg_loreadall\",\"pg_loread\",\"pg_loopen\",\"pg_loimport\",\"pg_loexport\",\"pg_locreate\",\"pg_loclose\",\"pg_lo_write\",\"pg_lo_unlink\",\"pg_lo_tell\",\"pg_lo_seek\",\"pg_lo_read_all\",\"pg_lo_read\",\"pg_lo_open\",\"pg_lo_import\",\"pg_lo_export\",\"pg_lo_create\",\"pg_lo_close\",\"pg_last_oid\",\"pg_last_notice\",\"pg_last_error\",\"pg_insert\",\"pg_host\",\"pg_getlastoid\",\"pg_get_result\",\"pg_get_pid\",\"pg_get_notify\",\"pg_freeresult\",\"pg_free_result\",\"pg_fieldtype\",\"pg_fieldsize\",\"pg_fieldprtlen\",\"pg_fieldnum\",\"pg_fieldname\",\"pg_fieldisnull\",\"pg_field_type_oid\",\"pg_field_type\",\"pg_field_table\",\"pg_field_size\",\"pg_field_prtlen\",\"pg_field_num\",\"pg_field_name\",\"pg_field_is_null\",\"pg_fetch_row\",\"pg_fetch_result\",\"pg_fetch_object\",\"pg_fetch_assoc\",\"pg_fetch_array\",\"pg_fetch_all_columns\",\"pg_fetch_all\",\"pg_execute\",\"pg_exec\",\"pg_escape_string\",\"pg_escape_bytea\",\"pg_errormessage\",\"pg_end_copy\",\"pg_delete\",\"pg_dbname\",\"pg_copy_to\",\"pg_copy_from\",\"pg_convert\",\"pg_connection_status\",\"pg_connection_reset\",\"pg_connection_busy\",\"pg_connect\",\"pg_cmdtuples\",\"pg_close\",\"pg_clientencoding\",\"pg_client_encoding\",\"pg_cancel_query\",\"pg_affected_rows\",\"pfsockopen\",\"pdo_drivers\",\"pclose\",\"pathinfo\",\"passthru\",\"parse_url\",\"parse_str\",\"parse_ini_string\",\"parse_ini_file\",\"pack\",\"output_reset_rewrite_vars\",\"output_add_rewrite_var\",\"ord\",\"openssl_x509_read\",\"openssl_x509_parse\",\"openssl_x509_free\",\"openssl_x509_export_to_file\",\"openssl_x509_export\",\"openssl_x509_checkpurpose\",\"openssl_x509_check_private_key\",\"openssl_verify\",\"openssl_sign\",\"openssl_seal\",\"openssl_random_pseudo_bytes\",\"openssl_public_encrypt\",\"openssl_public_decrypt\",\"openssl_private_encrypt\",\"openssl_private_decrypt\",\"openssl_pkey_new\",\"openssl_pkey_get_public\",\"openssl_pkey_get_private\",\"openssl_pkey_get_details\",\"openssl_pkey_free\",\"openssl_pkey_export_to_file\",\"openssl_pkey_export\",\"openssl_pkcs7_verify\",\"openssl_pkcs7_sign\",\"openssl_pkcs7_encrypt\",\"openssl_pkcs7_decrypt\",\"openssl_pkcs12_read\",\"openssl_pkcs12_export_to_file\",\"openssl_pkcs12_export\",\"openssl_open\",\"openssl_get_publickey\",\"openssl_get_privatekey\",\"openssl_get_md_methods\",\"openssl_get_cipher_methods\",\"openssl_free_key\",\"openssl_error_string\",\"openssl_encrypt\",\"openssl_digest\",\"openssl_dh_compute_key\",\"openssl_decrypt\",\"openssl_csr_sign\",\"openssl_csr_new\",\"openssl_csr_get_subject\",\"openssl_csr_get_public_key\",\"openssl_csr_export_to_file\",\"openssl_csr_export\",\"openlog\",\"opendir\",\"odbc_tables\",\"odbc_tableprivileges\",\"odbc_statistics\",\"odbc_specialcolumns\",\"odbc_setoption\",\"odbc_rollback\",\"odbc_result_all\",\"odbc_result\",\"odbc_procedures\",\"odbc_procedurecolumns\",\"odbc_primarykeys\",\"odbc_prepare\",\"odbc_pconnect\",\"odbc_num_rows\",\"odbc_num_fields\",\"odbc_next_result\",\"odbc_longreadlen\",\"odbc_gettypeinfo\",\"odbc_free_result\",\"odbc_foreignkeys\",\"odbc_field_type\",\"odbc_field_scale\",\"odbc_field_precision\",\"odbc_field_num\",\"odbc_field_name\",\"odbc_field_len\",\"odbc_fetch_row\",\"odbc_fetch_object\",\"odbc_fetch_into\",\"odbc_fetch_array\",\"odbc_execute\",\"odbc_exec\",\"odbc_errormsg\",\"odbc_error\",\"odbc_do\",\"odbc_data_source\",\"odbc_cursor\",\"odbc_connect\",\"odbc_commit\",\"odbc_columns\",\"odbc_columnprivileges\",\"odbc_close_all\",\"odbc_close\",\"odbc_binmode\",\"odbc_autocommit\",\"octdec\",\"ob_tidyhandler\",\"ob_start\",\"ob_list_handlers\",\"ob_inflatehandler\",\"ob_implicit_flush\",\"ob_iconv_handler\",\"ob_gzhandler\",\"ob_get_status\",\"ob_get_level\",\"ob_get_length\",\"ob_get_flush\",\"ob_get_contents\",\"ob_get_clean\",\"ob_flush\",\"ob_etaghandler\",\"ob_end_flush\",\"ob_end_clean\",\"ob_deflatehandler\",\"ob_clean\",\"number_format\",\"nl2br\",\"ngettext\",\"next\",\"natsort\",\"natcasesort\",\"mysqli_warning_count\",\"mysqli_use_result\",\"mysqli_thread_safe\",\"mysqli_thread_id\",\"mysqli_store_result\",\"mysqli_stmt_store_result\",\"mysqli_stmt_sqlstate\",\"mysqli_stmt_send_long_data\",\"mysqli_stmt_result_metadata\",\"mysqli_stmt_reset\",\"mysqli_stmt_prepare\",\"mysqli_stmt_param_count\",\"mysqli_stmt_num_rows\",\"mysqli_stmt_next_result\",\"mysqli_stmt_more_results\",\"mysqli_stmt_insert_id\",\"mysqli_stmt_init\",\"mysqli_stmt_get_warnings\",\"mysqli_stmt_get_result\",\"mysqli_stmt_free_result\",\"mysqli_stmt_field_count\",\"mysqli_stmt_fetch\",\"mysqli_stmt_execute\",\"mysqli_stmt_error\",\"mysqli_stmt_errno\",\"mysqli_stmt_data_seek\",\"mysqli_stmt_close\",\"mysqli_stmt_bind_result\",\"mysqli_stmt_bind_param\",\"mysqli_stmt_attr_set\",\"mysqli_stmt_attr_get\",\"mysqli_stmt_affected_rows\",\"mysqli_stat\",\"mysqli_sqlstate\",\"mysqli_set_opt\",\"mysqli_set_charset\",\"mysqli_send_long_data\",\"mysqli_select_db\",\"mysqli_rollback\",\"mysqli_report\",\"mysqli_refresh\",\"mysqli_reap_async_query\",\"mysqli_real_query\",\"mysqli_real_escape_string\",\"mysqli_real_connect\",\"mysqli_query\",\"mysqli_prepare\",\"mysqli_poll\",\"mysqli_ping\",\"mysqli_param_count\",\"mysqli_options\",\"mysqli_num_rows\",\"mysqli_num_fields\",\"mysqli_next_result\",\"mysqli_multi_query\",\"mysqli_more_results\",\"mysqli_kill\",\"mysqli_insert_id\",\"mysqli_init\",\"mysqli_info\",\"mysqli_get_warnings\",\"mysqli_get_server_version\",\"mysqli_get_server_info\",\"mysqli_get_proto_info\",\"mysqli_get_metadata\",\"mysqli_get_host_info\",\"mysqli_get_connection_stats\",\"mysqli_get_client_version\",\"mysqli_get_client_stats\",\"mysqli_get_client_info\",\"mysqli_get_charset\",\"mysqli_get_cache_stats\",\"mysqli_free_result\",\"mysqli_field_tell\",\"mysqli_field_seek\",\"mysqli_field_count\",\"mysqli_fetch_row\",\"mysqli_fetch_object\",\"mysqli_fetch_lengths\",\"mysqli_fetch_fields\",\"mysqli_fetch_field_direct\",\"mysqli_fetch_field\",\"mysqli_fetch_assoc\",\"mysqli_fetch_array\",\"mysqli_fetch_all\",\"mysqli_fetch\",\"mysqli_execute\",\"mysqli_escape_string\",\"mysqli_error\",\"mysqli_errno\",\"mysqli_dump_debug_info\",\"mysqli_debug\",\"mysqli_data_seek\",\"mysqli_connect_error\",\"mysqli_connect_errno\",\"mysqli_connect\",\"mysqli_commit\",\"mysqli_close\",\"mysqli_client_encoding\",\"mysqli_character_set_name\",\"mysqli_change_user\",\"mysqli_bind_result\",\"mysqli_bind_param\",\"mysqli_autocommit\",\"mysqli_affected_rows\",\"mysql_unbuffered_query\",\"mysql_thread_id\",\"mysql_tablename\",\"mysql_table_name\",\"mysql_stat\",\"mysql_set_charset\",\"mysql_selectdb\",\"mysql_select_db\",\"mysql_result\",\"mysql_real_escape_string\",\"mysql_query\",\"mysql_ping\",\"mysql_pconnect\",\"mysql_numrows\",\"mysql_numfields\",\"mysql_num_rows\",\"mysql_num_fields\",\"mysql_listtables\",\"mysql_listfields\",\"mysql_listdbs\",\"mysql_list_tables\",\"mysql_list_processes\",\"mysql_list_fields\",\"mysql_list_dbs\",\"mysql_insert_id\",\"mysql_info\",\"mysql_get_server_info\",\"mysql_get_proto_info\",\"mysql_get_host_info\",\"mysql_get_client_info\",\"mysql_freeresult\",\"mysql_free_result\",\"mysql_fieldtype\",\"mysql_fieldtable\",\"mysql_fieldname\",\"mysql_fieldlen\",\"mysql_fieldflags\",\"mysql_field_type\",\"mysql_field_table\",\"mysql_field_seek\",\"mysql_field_name\",\"mysql_field_len\",\"mysql_field_flags\",\"mysql_fetch_row\",\"mysql_fetch_object\",\"mysql_fetch_lengths\",\"mysql_fetch_field\",\"mysql_fetch_assoc\",\"mysql_fetch_array\",\"mysql_escape_string\",\"mysql_error\",\"mysql_errno\",\"mysql_dbname\",\"mysql_db_query\",\"mysql_db_name\",\"mysql_data_seek\",\"mysql_connect\",\"mysql_close\",\"mysql_client_encoding\",\"mysql_affected_rows\",\"mysql\",\"mt_srand\",\"mt_rand\",\"mt_getrandmax\",\"move_uploaded_file\",\"mktime\",\"mkdir\",\"min\",\"microtime\",\"method_exists\",\"metaphone\",\"memory_get_usage\",\"memory_get_peak_usage\",\"mdecrypt_generic\",\"md5_file\",\"md5\",\"mcrypt_ofb\",\"mcrypt_module_self_test\",\"mcrypt_module_open\",\"mcrypt_module_is_block_mode\",\"mcrypt_module_is_block_algorithm_mode\",\"mcrypt_module_is_block_algorithm\",\"mcrypt_module_get_supported_key_sizes\",\"mcrypt_module_get_algo_key_size\",\"mcrypt_module_get_algo_block_size\",\"mcrypt_module_close\",\"mcrypt_list_modes\",\"mcrypt_list_algorithms\",\"mcrypt_get_key_size\",\"mcrypt_get_iv_size\",\"mcrypt_get_cipher_name\",\"mcrypt_get_block_size\",\"mcrypt_generic_init\",\"mcrypt_generic_end\",\"mcrypt_generic_deinit\",\"mcrypt_generic\",\"mcrypt_encrypt\",\"mcrypt_enc_self_test\",\"mcrypt_enc_is_block_mode\",\"mcrypt_enc_is_block_algorithm_mode\",\"mcrypt_enc_is_block_algorithm\",\"mcrypt_enc_get_supported_key_sizes\",\"mcrypt_enc_get_modes_name\",\"mcrypt_enc_get_key_size\",\"mcrypt_enc_get_iv_size\",\"mcrypt_enc_get_block_size\",\"mcrypt_enc_get_algorithms_name\",\"mcrypt_ecb\",\"mcrypt_decrypt\",\"mcrypt_create_iv\",\"mcrypt_cfb\",\"mcrypt_cbc\",\"mbsplit\",\"mbregex_encoding\",\"mberegi_replace\",\"mberegi\",\"mbereg_search_setpos\",\"mbereg_search_regs\",\"mbereg_search_pos\",\"mbereg_search_init\",\"mbereg_search_getregs\",\"mbereg_search_getpos\",\"mbereg_search\",\"mbereg_replace\",\"mbereg_match\",\"mbereg\",\"mb_substr_count\",\"mb_substr\",\"mb_substitute_character\",\"mb_strwidth\",\"mb_strtoupper\",\"mb_strtolower\",\"mb_strstr\",\"mb_strrpos\",\"mb_strripos\",\"mb_strrichr\",\"mb_strrchr\",\"mb_strpos\",\"mb_strlen\",\"mb_stristr\",\"mb_stripos\",\"mb_strimwidth\",\"mb_strcut\",\"mb_split\",\"mb_send_mail\",\"mb_regex_set_options\",\"mb_regex_encoding\",\"mb_preferred_mime_name\",\"mb_parse_str\",\"mb_output_handler\",\"mb_list_encodings\",\"mb_language\",\"mb_internal_encoding\",\"mb_http_output\",\"mb_http_input\",\"mb_get_info\",\"mb_eregi_replace\",\"mb_eregi\",\"mb_ereg_search_setpos\",\"mb_ereg_search_regs\",\"mb_ereg_search_pos\",\"mb_ereg_search_init\",\"mb_ereg_search_getregs\",\"mb_ereg_search_getpos\",\"mb_ereg_search\",\"mb_ereg_replace\",\"mb_ereg_match\",\"mb_ereg\",\"mb_encoding_aliases\",\"mb_encode_numericentity\",\"mb_encode_mimeheader\",\"mb_detect_order\",\"mb_detect_encoding\",\"mb_decode_numericentity\",\"mb_decode_mimeheader\",\"mb_convert_variables\",\"mb_convert_kana\",\"mb_convert_encoding\",\"mb_convert_case\",\"mb_check_encoding\",\"max\",\"mail\",\"magic_quotes_runtime\",\"ltrim\",\"lstat\",\"long2ip\",\"log1p\",\"log10\",\"log\",\"localtime\",\"localeconv\",\"linkinfo\",\"link\",\"libxml_use_internal_errors\",\"libxml_set_streams_context\",\"libxml_get_last_error\",\"libxml_get_errors\",\"libxml_disable_entity_loader\",\"libxml_clear_errors\",\"levenshtein\",\"ldap_unbind\",\"ldap_start_tls\",\"ldap_sort\",\"ldap_set_option\",\"ldap_search\",\"ldap_rename\",\"ldap_read\",\"ldap_parse_result\",\"ldap_parse_reference\",\"ldap_next_reference\",\"ldap_next_entry\",\"ldap_next_attribute\",\"ldap_modify\",\"ldap_mod_replace\",\"ldap_mod_del\",\"ldap_mod_add\",\"ldap_list\",\"ldap_get_values_len\",\"ldap_get_values\",\"ldap_get_option\",\"ldap_get_entries\",\"ldap_get_dn\",\"ldap_get_attributes\",\"ldap_free_result\",\"ldap_first_reference\",\"ldap_first_entry\",\"ldap_first_attribute\",\"ldap_explode_dn\",\"ldap_error\",\"ldap_errno\",\"ldap_err2str\",\"ldap_dn2ufn\",\"ldap_delete\",\"ldap_count_entries\",\"ldap_connect\",\"ldap_compare\",\"ldap_close\",\"ldap_bind\",\"ldap_add\",\"lcg_value\",\"lcfirst\",\"ksort\",\"krsort\",\"key_exists\",\"key\",\"juliantojd\",\"json_last_error\",\"json_encode\",\"json_decode\",\"join\",\"jewishtojd\",\"jdtounix\",\"jdtojulian\",\"jdtojewish\",\"jdtogregorian\",\"jdtofrench\",\"jdmonthname\",\"jddayofweek\",\"iterator_to_array\",\"iterator_count\",\"iterator_apply\",\"is_writeable\",\"is_writable\",\"is_uploaded_file\",\"is_subclass_of\",\"is_string\",\"is_soap_fault\",\"is_scalar\",\"is_resource\",\"is_real\",\"is_readable\",\"is_object\",\"is_numeric\",\"is_null\",\"is_nan\",\"is_long\",\"is_link\",\"is_integer\",\"is_int\",\"is_infinite\",\"is_float\",\"is_finite\",\"is_file\",\"is_executable\",\"is_double\",\"is_dir\",\"is_callable\",\"is_bool\",\"is_array\",\"is_a\",\"iptcparse\",\"iptcembed\",\"ip2long\",\"intval\",\"interface_exists\",\"ini_set\",\"ini_restore\",\"ini_get_all\",\"ini_get\",\"ini_alter\",\"inet_pton\",\"inet_ntop\",\"in_array\",\"import_request_variables\",\"implode\",\"image_type_to_mime_type\",\"image_type_to_extension\",\"ignore_user_abort\",\"idate\",\"iconv_substr\",\"iconv_strrpos\",\"iconv_strpos\",\"iconv_strlen\",\"iconv_set_encoding\",\"iconv_mime_encode\",\"iconv_mime_decode_headers\",\"iconv_mime_decode\",\"iconv_get_encoding\",\"iconv\",\"hypot\",\"http_throttle\",\"http_support\",\"http_send_stream\",\"http_send_status\",\"http_send_last_modified\",\"http_send_file\",\"http_send_data\",\"http_send_content_type\",\"http_send_content_disposition\",\"http_request_method_unregister\",\"http_request_method_register\",\"http_request_method_name\",\"http_request_method_exists\",\"http_request_body_encode\",\"http_request\",\"http_redirect\",\"http_put_stream\",\"http_put_file\",\"http_put_data\",\"http_post_fields\",\"http_post_data\",\"http_persistent_handles_ident\",\"http_persistent_handles_count\",\"http_persistent_handles_clean\",\"http_parse_params\",\"http_parse_message\",\"http_parse_headers\",\"http_parse_cookie\",\"http_negotiate_language\",\"http_negotiate_content_type\",\"http_negotiate_charset\",\"http_match_request_header\",\"http_match_modified\",\"http_match_etag\",\"http_inflate\",\"http_head\",\"http_get_request_headers\",\"http_get_request_body_stream\",\"http_get_request_body\",\"http_get\",\"http_deflate\",\"http_date\",\"http_chunked_decode\",\"http_cache_last_modified\",\"http_cache_etag\",\"http_build_url\",\"http_build_str\",\"http_build_query\",\"http_build_cookie\",\"htmlspecialchars_decode\",\"htmlspecialchars\",\"htmlentities\",\"html_entity_decode\",\"highlight_string\",\"highlight_file\",\"hexdec\",\"hebrevc\",\"hebrev\",\"headers_sent\",\"headers_list\",\"header_remove\",\"header\",\"hash_update_stream\",\"hash_update_file\",\"hash_update\",\"hash_init\",\"hash_hmac_file\",\"hash_hmac\",\"hash_final\",\"hash_file\",\"hash_copy\",\"hash_algos\",\"hash\",\"gzwrite\",\"gzuncompress\",\"gztell\",\"gzseek\",\"gzrewind\",\"gzread\",\"gzputs\",\"gzpassthru\",\"gzopen\",\"gzinflate\",\"gzgetss\",\"gzgets\",\"gzgetc\",\"gzfile\",\"gzeof\",\"gzencode\",\"gzdeflate\",\"gzcompress\",\"gzclose\",\"gregoriantojd\",\"gmstrftime\",\"gmmktime\",\"gmdate\",\"glob\",\"gettype\",\"gettimeofday\",\"gettext\",\"getservbyport\",\"getservbyname\",\"getrandmax\",\"getprotobynumber\",\"getprotobyname\",\"getopt\",\"getmyuid\",\"getmypid\",\"getmyinode\",\"getmygid\",\"getmxrr\",\"getlastmod\",\"getimagesize\",\"gethostname\",\"gethostbynamel\",\"gethostbyname\",\"gethostbyaddr\",\"getenv\",\"getdate\",\"getcwd\",\"get_resource_type\",\"get_required_files\",\"get_parent_class\",\"get_object_vars\",\"get_meta_tags\",\"get_magic_quotes_runtime\",\"get_magic_quotes_gpc\",\"get_loaded_extensions\",\"get_included_files\",\"get_include_path\",\"get_html_translation_table\",\"get_headers\",\"get_extension_funcs\",\"get_defined_vars\",\"get_defined_functions\",\"get_defined_constants\",\"get_declared_interfaces\",\"get_declared_classes\",\"get_current_user\",\"get_class_vars\",\"get_class_methods\",\"get_class\",\"get_cfg_var\",\"get_called_class\",\"get_browser\",\"gc_enabled\",\"gc_enable\",\"gc_disable\",\"gc_collect_cycles\",\"fwrite\",\"function_exists\",\"func_num_args\",\"func_get_args\",\"func_get_arg\",\"ftruncate\",\"ftp_systype\",\"ftp_ssl_connect\",\"ftp_size\",\"ftp_site\",\"ftp_set_option\",\"ftp_rmdir\",\"ftp_rename\",\"ftp_rawlist\",\"ftp_raw\",\"ftp_quit\",\"ftp_pwd\",\"ftp_put\",\"ftp_pasv\",\"ftp_nlist\",\"ftp_nb_put\",\"ftp_nb_get\",\"ftp_nb_fput\",\"ftp_nb_fget\",\"ftp_nb_continue\",\"ftp_mkdir\",\"ftp_mdtm\",\"ftp_login\",\"ftp_get_option\",\"ftp_get\",\"ftp_fput\",\"ftp_fget\",\"ftp_exec\",\"ftp_delete\",\"ftp_connect\",\"ftp_close\",\"ftp_chmod\",\"ftp_chdir\",\"ftp_cdup\",\"ftp_alloc\",\"ftell\",\"fstat\",\"fsockopen\",\"fseek\",\"fscanf\",\"frenchtojd\",\"fread\",\"fputs\",\"fputcsv\",\"fprintf\",\"fpassthru\",\"forward_static_call_array\",\"forward_static_call\",\"fopen\",\"fnmatch\",\"fmod\",\"flush\",\"floor\",\"flock\",\"floatval\",\"filter_var_array\",\"filter_var\",\"filter_list\",\"filter_input_array\",\"filter_input\",\"filter_id\",\"filter_has_var\",\"filetype\",\"filesize\",\"fileperms\",\"fileowner\",\"filemtime\",\"fileinode\",\"filegroup\",\"filectime\",\"fileatime\",\"file_put_contents\",\"file_get_contents\",\"file_exists\",\"file\",\"fgetss\",\"fgets\",\"fgetcsv\",\"fgetc\",\"fflush\",\"feof\",\"fclose\",\"ezmlm_hash\",\"extract\",\"extension_loaded\",\"expm1\",\"explode\",\"exp\",\"exif_thumbnail\",\"exif_tagname\",\"exif_read_data\",\"exif_imagetype\",\"exec\",\"escapeshellcmd\",\"escapeshellarg\",\"error_reporting\",\"error_log\",\"error_get_last\",\"eregi_replace\",\"eregi\",\"ereg_replace\",\"ereg\",\"end\",\"easter_days\",\"easter_date\",\"each\",\"doubleval\",\"dom_import_simplexml\",\"dns_get_record\",\"dns_get_mx\",\"dns_check_record\",\"dngettext\",\"dl\",\"diskfreespace\",\"disk_total_space\",\"disk_free_space\",\"dirname\",\"dir\",\"dgettext\",\"deg2rad\",\"defined\",\"define_syslog_variables\",\"define\",\"decoct\",\"dechex\",\"decbin\",\"debug_zval_dump\",\"debug_print_backtrace\",\"debug_backtrace\",\"dcngettext\",\"dcgettext\",\"date_timezone_set\",\"date_timezone_get\",\"date_timestamp_set\",\"date_timestamp_get\",\"date_time_set\",\"date_sunset\",\"date_sunrise\",\"date_sun_info\",\"date_sub\",\"date_parse_from_format\",\"date_parse\",\"date_offset_get\",\"date_modify\",\"date_isodate_set\",\"date_interval_format\",\"date_interval_create_from_date_string\",\"date_get_last_errors\",\"date_format\",\"date_diff\",\"date_default_timezone_set\",\"date_default_timezone_get\",\"date_date_set\",\"date_create_from_format\",\"date_create\",\"date_add\",\"date\",\"current\",\"ctype_xdigit\",\"ctype_upper\",\"ctype_space\",\"ctype_punct\",\"ctype_print\",\"ctype_lower\",\"ctype_graph\",\"ctype_digit\",\"ctype_cntrl\",\"ctype_alpha\",\"ctype_alnum\",\"crypt\",\"create_function\",\"crc32\",\"count_chars\",\"count\",\"cosh\",\"cos\",\"copy\",\"convert_uuencode\",\"convert_uudecode\",\"convert_cyr_string\",\"constant\",\"connection_status\",\"connection_aborted\",\"compact\",\"com_print_typeinfo\",\"com_message_pump\",\"com_load_typelib\",\"com_get_active_object\",\"com_event_sink\",\"com_create_guid\",\"closelog\",\"closedir\",\"clearstatcache\",\"class_parents\",\"class_implements\",\"class_exists\",\"class_alias\",\"chunk_split\",\"chr\",\"chown\",\"chop\",\"chmod\",\"chgrp\",\"checkdnsrr\",\"checkdate\",\"chdir\",\"ceil\",\"call_user_method_array\",\"call_user_method\",\"call_user_func_array\",\"call_user_func\",\"cal_to_jd\",\"cal_info\",\"cal_from_jd\",\"cal_days_in_month\",\"bindtextdomain\",\"bindec\",\"bind_textdomain_codeset\",\"bin2hex\",\"bcsub\",\"bcsqrt\",\"bcscale\",\"bcpowmod\",\"bcpow\",\"bcmul\",\"bcmod\",\"bcdiv\",\"bccomp\",\"bcadd\",\"basename\",\"base_convert\",\"base64_encode\",\"base64_decode\",\"atanh\",\"atan2\",\"atan\",\"assert_options\",\"assert\",\"asort\",\"asinh\",\"asin\",\"arsort\",\"array_walk_recursive\",\"array_walk\",\"array_values\",\"array_unshift\",\"array_unique\",\"array_uintersect_uassoc\",\"array_uintersect_assoc\",\"array_uintersect\",\"array_udiff_uassoc\",\"array_udiff_assoc\",\"array_udiff\",\"array_sum\",\"array_splice\",\"array_slice\",\"array_shift\",\"array_search\",\"array_reverse\",\"array_replace_recursive\",\"array_replace\",\"array_reduce\",\"array_rand\",\"array_push\",\"array_product\",\"array_pop\",\"array_pad\",\"array_multisort\",\"array_merge_recursive\",\"array_merge\",\"array_map\",\"array_keys\",\"array_key_exists\",\"array_intersect_ukey\",\"array_intersect_uassoc\",\"array_intersect_key\",\"array_intersect_assoc\",\"array_intersect\",\"array_flip\",\"array_filter\",\"array_fill_keys\",\"array_fill\",\"array_diff_ukey\",\"array_diff_uassoc\",\"array_diff_key\",\"array_diff_assoc\",\"array_diff\",\"array_count_values\",\"array_combine\",\"array_chunk\",\"array_change_key_case\",\"addslashes\",\"addcslashes\",\"acosh\",\"acos\",\"abs\"],boundary:\"\\\\b\"},languageConstruct:{values:[\"isset\",\"array\",\"unset\",\"list\",\"echo\",\"include_once\",\"include\",\"require_once\",\"require\",\"print\",\"empty\",\"return\",\"die\",\"eval\",\"exit\"],boundary:\"\\\\b\"},constant:{values:[\"__CLASS__\",\"__DIR__\",\"__FILE__\",\"__LINE__\",\"__FUNCTION__\",\"__METHOD__\",\"__NAMESPACE__\",\"ZEND_THREAD_SAFE\",\"ZEND_DEBUG_BUILD\",\"XSL_CLONE_NEVER\",\"XSL_CLONE_AUTO\",\"XSL_CLONE_ALWAYS\",\"XSD_UNSIGNEDSHORT\",\"XSD_UNSIGNEDLONG\",\"XSD_UNSIGNEDINT\",\"XSD_UNSIGNEDBYTE\",\"XSD_TOKEN\",\"XSD_TIME\",\"XSD_STRING\",\"XSD_SHORT\",\"XSD_QNAME\",\"XSD_POSITIVEINTEGER\",\"XSD_NOTATION\",\"XSD_NORMALIZEDSTRING\",\"XSD_NONPOSITIVEINTEGER\",\"XSD_NONNEGATIVEINTEGER\",\"XSD_NMTOKENS\",\"XSD_NMTOKEN\",\"XSD_NEGATIVEINTEGER\",\"XSD_NCNAME\",\"XSD_NAMESPACE\",\"XSD_NAME\",\"XSD_LONG\",\"XSD_LANGUAGE\",\"XSD_INTEGER\",\"XSD_INT\",\"XSD_IDREFS\",\"XSD_IDREF\",\"XSD_ID\",\"XSD_HEXBINARY\",\"XSD_GYEARMONTH\",\"XSD_GYEAR\",\"XSD_GMONTHDAY\",\"XSD_GMONTH\",\"XSD_GDAY\",\"XSD_FLOAT\",\"XSD_ENTITY\",\"XSD_ENTITIES\",\"XSD_DURATION\",\"XSD_DOUBLE\",\"XSD_DECIMAL\",\"XSD_DATETIME\",\"XSD_DATE\",\"XSD_BYTE\",\"XSD_BOOLEAN\",\"XSD_BASE64BINARY\",\"XSD_ANYXML\",\"XSD_ANYURI\",\"XSD_ANYTYPE\",\"XSD_1999_TIMEINSTANT\",\"XSD_1999_NAMESPACE\",\"XML_TEXT_NODE\",\"XML_SAX_IMPL\",\"XML_PI_NODE\",\"XML_OPTION_TARGET_ENCODING\",\"XML_OPTION_SKIP_WHITE\",\"XML_OPTION_SKIP_TAGSTART\",\"XML_OPTION_CASE_FOLDING\",\"XML_NOTATION_NODE\",\"XML_NAMESPACE_DECL_NODE\",\"XML_LOCAL_NAMESPACE\",\"XML_HTML_DOCUMENT_NODE\",\"XML_ERROR_UNKNOWN_ENCODING\",\"XML_ERROR_UNDEFINED_ENTITY\",\"XML_ERROR_UNCLOSED_TOKEN\",\"XML_ERROR_UNCLOSED_CDATA_SECTION\",\"XML_ERROR_TAG_MISMATCH\",\"XML_ERROR_SYNTAX\",\"XML_ERROR_RECURSIVE_ENTITY_REF\",\"XML_ERROR_PARTIAL_CHAR\",\"XML_ERROR_PARAM_ENTITY_REF\",\"XML_ERROR_NO_MEMORY\",\"XML_ERROR_NO_ELEMENTS\",\"XML_ERROR_NONE\",\"XML_ERROR_MISPLACED_XML_PI\",\"XML_ERROR_JUNK_AFTER_DOC_ELEMENT\",\"XML_ERROR_INVALID_TOKEN\",\"XML_ERROR_INCORRECT_ENCODING\",\"XML_ERROR_EXTERNAL_ENTITY_HANDLING\",\"XML_ERROR_DUPLICATE_ATTRIBUTE\",\"XML_ERROR_BINARY_ENTITY_REF\",\"XML_ERROR_BAD_CHAR_REF\",\"XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF\",\"XML_ERROR_ASYNC_ENTITY\",\"XML_ENTITY_REF_NODE\",\"XML_ENTITY_NODE\",\"XML_ENTITY_DECL_NODE\",\"XML_ELEMENT_NODE\",\"XML_ELEMENT_DECL_NODE\",\"XML_DTD_NODE\",\"XML_DOCUMENT_TYPE_NODE\",\"XML_DOCUMENT_NODE\",\"XML_DOCUMENT_FRAG_NODE\",\"XML_COMMENT_NODE\",\"XML_CDATA_SECTION_NODE\",\"XML_ATTRIBUTE_NOTATION\",\"XML_ATTRIBUTE_NODE\",\"XML_ATTRIBUTE_NMTOKENS\",\"XML_ATTRIBUTE_NMTOKEN\",\"XML_ATTRIBUTE_IDREFS\",\"XML_ATTRIBUTE_IDREF\",\"XML_ATTRIBUTE_ID\",\"XML_ATTRIBUTE_ENUMERATION\",\"XML_ATTRIBUTE_ENTITY\",\"XML_ATTRIBUTE_DECL_NODE\",\"XML_ATTRIBUTE_CDATA\",\"X509_PURPOSE_SSL_SERVER\",\"X509_PURPOSE_SSL_CLIENT\",\"X509_PURPOSE_SMIME_SIGN\",\"X509_PURPOSE_SMIME_ENCRYPT\",\"X509_PURPOSE_NS_SSL_SERVER\",\"X509_PURPOSE_CRL_SIGN\",\"X509_PURPOSE_ANY\",\"WSDL_CACHE_NONE\",\"WSDL_CACHE_MEMORY\",\"WSDL_CACHE_DISK\",\"WSDL_CACHE_BOTH\",\"VT_VARIANT\",\"VT_UNKNOWN\",\"VT_UINT\",\"VT_UI4\",\"VT_UI2\",\"VT_UI1\",\"VT_R8\",\"VT_R4\",\"VT_NULL\",\"VT_INT\",\"VT_I4\",\"VT_I2\",\"VT_I1\",\"VT_ERROR\",\"VT_EMPTY\",\"VT_DISPATCH\",\"VT_DECIMAL\",\"VT_DATE\",\"VT_CY\",\"VT_BYREF\",\"VT_BSTR\",\"VT_BOOL\",\"VT_ARRAY\",\"VARCMP_NULL\",\"VARCMP_LT\",\"VARCMP_GT\",\"VARCMP_EQ\",\"UPLOAD_ERR_PARTIAL\",\"UPLOAD_ERR_OK\",\"UPLOAD_ERR_NO_TMP_DIR\",\"UPLOAD_ERR_NO_FILE\",\"UPLOAD_ERR_INI_SIZE\",\"UPLOAD_ERR_FORM_SIZE\",\"UPLOAD_ERR_EXTENSION\",\"UPLOAD_ERR_CANT_WRITE\",\"UNKNOWN_TYPE\",\"T_XOR_EQUAL\",\"T_WHITESPACE\",\"T_WHILE\",\"T_VARIABLE\",\"T_VAR\",\"T_USE\",\"T_UNSET_CAST\",\"T_UNSET\",\"T_TRY\",\"T_THROW\",\"T_SWITCH\",\"T_STRING_VARNAME\",\"T_STRING_CAST\",\"T_STRING\",\"T_STATIC\",\"T_START_HEREDOC\",\"T_SR_EQUAL\",\"T_SR\",\"T_SL_EQUAL\",\"T_SL\",\"T_RETURN\",\"T_REQUIRE_ONCE\",\"T_REQUIRE\",\"T_PUBLIC\",\"T_PROTECTED\",\"T_PRIVATE\",\"T_PRINT\",\"T_PLUS_EQUAL\",\"T_PAAMAYIM_NEKUDOTAYIM\",\"T_OR_EQUAL\",\"T_OPEN_TAG_WITH_ECHO\",\"T_OPEN_TAG\",\"T_OBJECT_OPERATOR\",\"T_OBJECT_CAST\",\"T_NUM_STRING\",\"T_NS_SEPARATOR\",\"T_NS_C\",\"T_NEW\",\"T_NAMESPACE\",\"T_MUL_EQUAL\",\"T_MOD_EQUAL\",\"T_MINUS_EQUAL\",\"T_METHOD_C\",\"T_LOGICAL_XOR\",\"T_LOGICAL_OR\",\"T_LOGICAL_AND\",\"T_LNUMBER\",\"T_LIST\",\"T_LINE\",\"T_IS_SMALLER_OR_EQUAL\",\"T_IS_NOT_IDENTICAL\",\"T_IS_NOT_EQUAL\",\"T_IS_IDENTICAL\",\"T_IS_GREATER_OR_EQUAL\",\"T_IS_EQUAL\",\"T_ISSET\",\"T_INT_CAST\",\"T_INTERFACE\",\"T_INSTANCEOF\",\"T_INLINE_HTML\",\"T_INCLUDE_ONCE\",\"T_INCLUDE\",\"T_INC\",\"T_IMPLEMENTS\",\"T_IF\",\"T_HALT_COMPILER\",\"T_GOTO\",\"T_GLOBAL\",\"T_FUNC_C\",\"T_FUNCTION\",\"T_FOREACH\",\"T_FOR\",\"T_FINAL\",\"T_FILE\",\"T_EXTENDS\",\"T_EXIT\",\"T_EVAL\",\"T_END_HEREDOC\",\"T_ENDWHILE\",\"T_ENDSWITCH\",\"T_ENDIF\",\"T_ENDFOREACH\",\"T_ENDFOR\",\"T_ENDDECLARE\",\"T_ENCAPSED_AND_WHITESPACE\",\"T_EMPTY\",\"T_ELSEIF\",\"T_ELSE\",\"T_ECHO\",\"T_DOUBLE_COLON\",\"T_DOUBLE_CAST\",\"T_DOUBLE_ARROW\",\"T_DOLLAR_OPEN_CURLY_BRACES\",\"T_DOC_COMMENT\",\"T_DO\",\"T_DNUMBER\",\"T_DIV_EQUAL\",\"T_DIR\",\"T_DEFAULT\",\"T_DECLARE\",\"T_DEC\",\"T_CURLY_OPEN\",\"T_CONTINUE\",\"T_CONSTANT_ENCAPSED_STRING\",\"T_CONST\",\"T_CONCAT_EQUAL\",\"T_COMMENT\",\"T_CLOSE_TAG\",\"T_CLONE\",\"T_CLASS_C\",\"T_CLASS\",\"T_CHARACTER\",\"T_CATCH\",\"T_CASE\",\"T_BREAK\",\"T_BOOL_CAST\",\"T_BOOLEAN_OR\",\"T_BOOLEAN_AND\",\"T_BAD_CHARACTER\",\"T_AS\",\"T_ARRAY_CAST\",\"T_ARRAY\",\"T_AND_EQUAL\",\"T_ABSTRACT\",\"TRUE\",\"TIDY_TAG_XMP\",\"TIDY_TAG_WBR\",\"TIDY_TAG_VAR\",\"TIDY_TAG_UNKNOWN\",\"TIDY_TAG_UL\",\"TIDY_TAG_U\",\"TIDY_TAG_TT\",\"TIDY_TAG_TR\",\"TIDY_TAG_TITLE\",\"TIDY_TAG_THEAD\",\"TIDY_TAG_TH\",\"TIDY_TAG_TFOOT\",\"TIDY_TAG_TEXTAREA\",\"TIDY_TAG_TD\",\"TIDY_TAG_TBODY\",\"TIDY_TAG_TABLE\",\"TIDY_TAG_SUP\",\"TIDY_TAG_SUB\",\"TIDY_TAG_STYLE\",\"TIDY_TAG_STRONG\",\"TIDY_TAG_STRIKE\",\"TIDY_TAG_SPAN\",\"TIDY_TAG_SPACER\",\"TIDY_TAG_SMALL\",\"TIDY_TAG_SERVLET\",\"TIDY_TAG_SERVER\",\"TIDY_TAG_SELECT\",\"TIDY_TAG_SCRIPT\",\"TIDY_TAG_SAMP\",\"TIDY_TAG_S\",\"TIDY_TAG_RUBY\",\"TIDY_TAG_RTC\",\"TIDY_TAG_RT\",\"TIDY_TAG_RP\",\"TIDY_TAG_RBC\",\"TIDY_TAG_RB\",\"TIDY_TAG_Q\",\"TIDY_TAG_PRE\",\"TIDY_TAG_PLAINTEXT\",\"TIDY_TAG_PARAM\",\"TIDY_TAG_P\",\"TIDY_TAG_OPTION\",\"TIDY_TAG_OPTGROUP\",\"TIDY_TAG_OL\",\"TIDY_TAG_OBJECT\",\"TIDY_TAG_NOSCRIPT\",\"TIDY_TAG_NOSAVE\",\"TIDY_TAG_NOLAYER\",\"TIDY_TAG_NOFRAMES\",\"TIDY_TAG_NOEMBED\",\"TIDY_TAG_NOBR\",\"TIDY_TAG_MULTICOL\",\"TIDY_TAG_META\",\"TIDY_TAG_MENU\",\"TIDY_TAG_MARQUEE\",\"TIDY_TAG_MAP\",\"TIDY_TAG_LISTING\",\"TIDY_TAG_LINK\",\"TIDY_TAG_LI\",\"TIDY_TAG_LEGEND\",\"TIDY_TAG_LAYER\",\"TIDY_TAG_LABEL\",\"TIDY_TAG_KEYGEN\",\"TIDY_TAG_KBD\",\"TIDY_TAG_ISINDEX\",\"TIDY_TAG_INS\",\"TIDY_TAG_INPUT\",\"TIDY_TAG_IMG\",\"TIDY_TAG_ILAYER\",\"TIDY_TAG_IFRAME\",\"TIDY_TAG_I\",\"TIDY_TAG_HTML\",\"TIDY_TAG_HR\",\"TIDY_TAG_HEAD\",\"TIDY_TAG_H6\",\"TIDY_TAG_H5\",\"TIDY_TAG_H4\",\"TIDY_TAG_H3\",\"TIDY_TAG_H2\",\"TIDY_TAG_H1\",\"TIDY_TAG_FRAMESET\",\"TIDY_TAG_FRAME\",\"TIDY_TAG_FORM\",\"TIDY_TAG_FONT\",\"TIDY_TAG_FIELDSET\",\"TIDY_TAG_EMBED\",\"TIDY_TAG_EM\",\"TIDY_TAG_DT\",\"TIDY_TAG_DL\",\"TIDY_TAG_DIV\",\"TIDY_TAG_DIR\",\"TIDY_TAG_DFN\",\"TIDY_TAG_DEL\",\"TIDY_TAG_DD\",\"TIDY_TAG_COMMENT\",\"TIDY_TAG_COLGROUP\",\"TIDY_TAG_COL\",\"TIDY_TAG_CODE\",\"TIDY_TAG_CITE\",\"TIDY_TAG_CENTER\",\"TIDY_TAG_CAPTION\",\"TIDY_TAG_BUTTON\",\"TIDY_TAG_BR\",\"TIDY_TAG_BODY\",\"TIDY_TAG_BLOCKQUOTE\",\"TIDY_TAG_BLINK\",\"TIDY_TAG_BIG\",\"TIDY_TAG_BGSOUND\",\"TIDY_TAG_BDO\",\"TIDY_TAG_BASEFONT\",\"TIDY_TAG_BASE\",\"TIDY_TAG_B\",\"TIDY_TAG_AREA\",\"TIDY_TAG_APPLET\",\"TIDY_TAG_ALIGN\",\"TIDY_TAG_ADDRESS\",\"TIDY_TAG_ACRONYM\",\"TIDY_TAG_ABBR\",\"TIDY_TAG_A\",\"TIDY_NODETYPE_XMLDECL\",\"TIDY_NODETYPE_TEXT\",\"TIDY_NODETYPE_STARTEND\",\"TIDY_NODETYPE_START\",\"TIDY_NODETYPE_SECTION\",\"TIDY_NODETYPE_ROOT\",\"TIDY_NODETYPE_PROCINS\",\"TIDY_NODETYPE_PHP\",\"TIDY_NODETYPE_JSTE\",\"TIDY_NODETYPE_END\",\"TIDY_NODETYPE_DOCTYPE\",\"TIDY_NODETYPE_COMMENT\",\"TIDY_NODETYPE_CDATA\",\"TIDY_NODETYPE_ASP\",\"TCP_NODELAY\",\"SUNFUNCS_RET_TIMESTAMP\",\"SUNFUNCS_RET_STRING\",\"SUNFUNCS_RET_DOUBLE\",\"STR_PAD_RIGHT\",\"STR_PAD_LEFT\",\"STR_PAD_BOTH\",\"STREAM_USE_PATH\",\"STREAM_URL_STAT_QUIET\",\"STREAM_URL_STAT_LINK\",\"STREAM_SOCK_STREAM\",\"STREAM_SOCK_SEQPACKET\",\"STREAM_SOCK_RDM\",\"STREAM_SOCK_RAW\",\"STREAM_SOCK_DGRAM\",\"STREAM_SHUT_WR\",\"STREAM_SHUT_RDWR\",\"STREAM_SHUT_RD\",\"STREAM_SERVER_LISTEN\",\"STREAM_SERVER_BIND\",\"STREAM_REPORT_ERRORS\",\"STREAM_PF_UNIX\",\"STREAM_PF_INET6\",\"STREAM_PF_INET\",\"STREAM_PEEK\",\"STREAM_OPTION_WRITE_BUFFER\",\"STREAM_OPTION_READ_TIMEOUT\",\"STREAM_OPTION_READ_BUFFER\",\"STREAM_OPTION_BLOCKING\",\"STREAM_OOB\",\"STREAM_NOTIFY_SEVERITY_WARN\",\"STREAM_NOTIFY_SEVERITY_INFO\",\"STREAM_NOTIFY_SEVERITY_ERR\",\"STREAM_NOTIFY_RESOLVE\",\"STREAM_NOTIFY_REDIRECTED\",\"STREAM_NOTIFY_PROGRESS\",\"STREAM_NOTIFY_MIME_TYPE_IS\",\"STREAM_NOTIFY_FILE_SIZE_IS\",\"STREAM_NOTIFY_FAILURE\",\"STREAM_NOTIFY_CONNECT\",\"STREAM_NOTIFY_COMPLETED\",\"STREAM_NOTIFY_AUTH_RESULT\",\"STREAM_NOTIFY_AUTH_REQUIRED\",\"STREAM_MUST_SEEK\",\"STREAM_MKDIR_RECURSIVE\",\"STREAM_IS_URL\",\"STREAM_IPPROTO_IP\",\"STREAM_IGNORE_URL\",\"STREAM_FILTER_WRITE\",\"STREAM_FILTER_READ\",\"STREAM_FILTER_ALL\",\"STREAM_ENFORCE_SAFE_MODE\",\"STREAM_CRYPTO_METHOD_TLS_SERVER\",\"STREAM_CRYPTO_METHOD_TLS_CLIENT\",\"STREAM_CRYPTO_METHOD_SSLv3_SERVER\",\"STREAM_CRYPTO_METHOD_SSLv3_CLIENT\",\"STREAM_CRYPTO_METHOD_SSLv2_SERVER\",\"STREAM_CRYPTO_METHOD_SSLv2_CLIENT\",\"STREAM_CRYPTO_METHOD_SSLv23_SERVER\",\"STREAM_CRYPTO_METHOD_SSLv23_CLIENT\",\"STREAM_CLIENT_PERSISTENT\",\"STREAM_CLIENT_CONNECT\",\"STREAM_CLIENT_ASYNC_CONNECT\",\"STREAM_CAST_FOR_SELECT\",\"STREAM_CAST_AS_STREAM\",\"STREAM_BUFFER_NONE\",\"STREAM_BUFFER_LINE\",\"STREAM_BUFFER_FULL\",\"STDOUT\",\"STDIN\",\"STDERR\",\"SQL_VARCHAR\",\"SQL_VARBINARY\",\"SQL_TINYINT\",\"SQL_TIMESTAMP\",\"SQL_TIME\",\"SQL_SMALLINT\",\"SQL_REAL\",\"SQL_ODBC_CURSORS\",\"SQL_NUMERIC\",\"SQL_LONGVARCHAR\",\"SQL_LONGVARBINARY\",\"SQL_KEYSET_SIZE\",\"SQL_INTEGER\",\"SQL_FLOAT\",\"SQL_FETCH_NEXT\",\"SQL_FETCH_FIRST\",\"SQL_DOUBLE\",\"SQL_DECIMAL\",\"SQL_DATE\",\"SQL_CUR_USE_ODBC\",\"SQL_CUR_USE_IF_NEEDED\",\"SQL_CUR_USE_DRIVER\",\"SQL_CURSOR_TYPE\",\"SQL_CURSOR_STATIC\",\"SQL_CURSOR_KEYSET_DRIVEN\",\"SQL_CURSOR_FORWARD_ONLY\",\"SQL_CURSOR_DYNAMIC\",\"SQL_CONCUR_VALUES\",\"SQL_CONCUR_ROWVER\",\"SQL_CONCUR_READ_ONLY\",\"SQL_CONCUR_LOCK\",\"SQL_CONCURRENCY\",\"SQL_CHAR\",\"SQL_BIT\",\"SQL_BINARY\",\"SQL_BIGINT\",\"SQLITE_TOOBIG\",\"SQLITE_SCHEMA\",\"SQLITE_ROW\",\"SQLITE_READONLY\",\"SQLITE_PROTOCOL\",\"SQLITE_PERM\",\"SQLITE_OK\",\"SQLITE_NUM\",\"SQLITE_NOTFOUND\",\"SQLITE_NOTADB\",\"SQLITE_NOMEM\",\"SQLITE_NOLFS\",\"SQLITE_MISUSE\",\"SQLITE_MISMATCH\",\"SQLITE_LOCKED\",\"SQLITE_IOERR\",\"SQLITE_INTERRUPT\",\"SQLITE_INTERNAL\",\"SQLITE_FULL\",\"SQLITE_FORMAT\",\"SQLITE_ERROR\",\"SQLITE_EMPTY\",\"SQLITE_DONE\",\"SQLITE_CORRUPT\",\"SQLITE_CONSTRAINT\",\"SQLITE_CANTOPEN\",\"SQLITE_BUSY\",\"SQLITE_BOTH\",\"SQLITE_AUTH\",\"SQLITE_ASSOC\",\"SQLITE_ABORT\",\"SQLITE3_TEXT\",\"SQLITE3_OPEN_READWRITE\",\"SQLITE3_OPEN_READONLY\",\"SQLITE3_OPEN_CREATE\",\"SQLITE3_NUM\",\"SQLITE3_NULL\",\"SQLITE3_INTEGER\",\"SQLITE3_FLOAT\",\"SQLITE3_BOTH\",\"SQLITE3_BLOB\",\"SQLITE3_ASSOC\",\"SO_TYPE\",\"SO_SNDTIMEO\",\"SO_SNDLOWAT\",\"SO_SNDBUF\",\"SO_REUSEADDR\",\"SO_RCVTIMEO\",\"SO_RCVLOWAT\",\"SO_RCVBUF\",\"SO_OOBINLINE\",\"SO_LINGER\",\"SO_KEEPALIVE\",\"SO_ERROR\",\"SO_DONTROUTE\",\"SO_DEBUG\",\"SO_BROADCAST\",\"SORT_STRING\",\"SORT_REGULAR\",\"SORT_NUMERIC\",\"SORT_LOCALE_STRING\",\"SORT_DESC\",\"SORT_ASC\",\"SOMAXCONN\",\"SOL_UDP\",\"SOL_TCP\",\"SOL_SOCKET\",\"SOCK_STREAM\",\"SOCK_SEQPACKET\",\"SOCK_RDM\",\"SOCK_RAW\",\"SOCK_DGRAM\",\"SOCKET_VERNOTSUPPORTED\",\"SOCKET_TRY_AGAIN\",\"SOCKET_SYSNOTREADY\",\"SOCKET_NO_RECOVERY\",\"SOCKET_NO_DATA\",\"SOCKET_NO_ADDRESS\",\"SOCKET_NOTINITIALISED\",\"SOCKET_HOST_NOT_FOUND\",\"SOCKET_EWOULDBLOCK\",\"SOCKET_EUSERS\",\"SOCKET_ETOOMANYREFS\",\"SOCKET_ETIMEDOUT\",\"SOCKET_ESTALE\",\"SOCKET_ESOCKTNOSUPPORT\",\"SOCKET_ESHUTDOWN\",\"SOCKET_EREMOTE\",\"SOCKET_EPROTOTYPE\",\"SOCKET_EPROTONOSUPPORT\",\"SOCKET_EPROCLIM\",\"SOCKET_EPFNOSUPPORT\",\"SOCKET_EOPNOTSUPP\",\"SOCKET_ENOTSOCK\",\"SOCKET_ENOTEMPTY\",\"SOCKET_ENOTCONN\",\"SOCKET_ENOPROTOOPT\",\"SOCKET_ENOBUFS\",\"SOCKET_ENETUNREACH\",\"SOCKET_ENETRESET\",\"SOCKET_ENETDOWN\",\"SOCKET_ENAMETOOLONG\",\"SOCKET_EMSGSIZE\",\"SOCKET_EMFILE\",\"SOCKET_ELOOP\",\"SOCKET_EISCONN\",\"SOCKET_EINVAL\",\"SOCKET_EINTR\",\"SOCKET_EINPROGRESS\",\"SOCKET_EHOSTUNREACH\",\"SOCKET_EHOSTDOWN\",\"SOCKET_EFAULT\",\"SOCKET_EDQUOT\",\"SOCKET_EDISCON\",\"SOCKET_EDESTADDRREQ\",\"SOCKET_ECONNRESET\",\"SOCKET_ECONNREFUSED\",\"SOCKET_ECONNABORTED\",\"SOCKET_EBADF\",\"SOCKET_EALREADY\",\"SOCKET_EAFNOSUPPORT\",\"SOCKET_EADDRNOTAVAIL\",\"SOCKET_EADDRINUSE\",\"SOCKET_EACCES\",\"SOAP_WAIT_ONE_WAY_CALLS\",\"SOAP_USE_XSI_ARRAY_TYPE\",\"SOAP_SINGLE_ELEMENT_ARRAYS\",\"SOAP_RPC\",\"SOAP_PERSISTENCE_SESSION\",\"SOAP_PERSISTENCE_REQUEST\",\"SOAP_LITERAL\",\"SOAP_FUNCTIONS_ALL\",\"SOAP_ENC_OBJECT\",\"SOAP_ENC_ARRAY\",\"SOAP_ENCODED\",\"SOAP_DOCUMENT\",\"SOAP_COMPRESSION_GZIP\",\"SOAP_COMPRESSION_DEFLATE\",\"SOAP_COMPRESSION_ACCEPT\",\"SOAP_AUTHENTICATION_DIGEST\",\"SOAP_AUTHENTICATION_BASIC\",\"SOAP_ACTOR_UNLIMATERECEIVER\",\"SOAP_ACTOR_NONE\",\"SOAP_ACTOR_NEXT\",\"SOAP_1_2\",\"SOAP_1_1\",\"SEEK_SET\",\"SEEK_END\",\"SEEK_CUR\",\"PSFS_PASS_ON\",\"PSFS_FLAG_NORMAL\",\"PSFS_FLAG_FLUSH_INC\",\"PSFS_FLAG_FLUSH_CLOSE\",\"PSFS_FEED_ME\",\"PSFS_ERR_FATAL\",\"PREG_SPLIT_OFFSET_CAPTURE\",\"PREG_SPLIT_NO_EMPTY\",\"PREG_SPLIT_DELIM_CAPTURE\",\"PREG_SET_ORDER\",\"PREG_RECURSION_LIMIT_ERROR\",\"PREG_PATTERN_ORDER\",\"PREG_OFFSET_CAPTURE\",\"PREG_NO_ERROR\",\"PREG_INTERNAL_ERROR\",\"PREG_GREP_INVERT\",\"PREG_BAD_UTF8_OFFSET_ERROR\",\"PREG_BAD_UTF8_ERROR\",\"PREG_BACKTRACK_LIMIT_ERROR\",\"PKCS7_TEXT\",\"PKCS7_NOVERIFY\",\"PKCS7_NOSIGS\",\"PKCS7_NOINTERN\",\"PKCS7_NOCHAIN\",\"PKCS7_NOCERTS\",\"PKCS7_NOATTR\",\"PKCS7_DETACHED\",\"PKCS7_BINARY\",\"PHP_ZTS\",\"PHP_WINDOWS_VERSION_SUITEMASK\",\"PHP_WINDOWS_VERSION_SP_MINOR\",\"PHP_WINDOWS_VERSION_SP_MAJOR\",\"PHP_WINDOWS_VERSION_PRODUCTTYPE\",\"PHP_WINDOWS_VERSION_PLATFORM\",\"PHP_WINDOWS_VERSION_MINOR\",\"PHP_WINDOWS_VERSION_MAJOR\",\"PHP_WINDOWS_VERSION_BUILD\",\"PHP_WINDOWS_NT_WORKSTATION\",\"PHP_WINDOWS_NT_SERVER\",\"PHP_WINDOWS_NT_DOMAIN_CONTROLLER\",\"PHP_VERSION_ID\",\"PHP_VERSION\",\"PHP_URL_USER\",\"PHP_URL_SCHEME\",\"PHP_URL_QUERY\",\"PHP_URL_PORT\",\"PHP_URL_PATH\",\"PHP_URL_PASS\",\"PHP_URL_HOST\",\"PHP_URL_FRAGMENT\",\"PHP_SYSCONFDIR\",\"PHP_SHLIB_SUFFIX\",\"PHP_SAPI\",\"PHP_ROUND_HALF_UP\",\"PHP_ROUND_HALF_ODD\",\"PHP_ROUND_HALF_EVEN\",\"PHP_ROUND_HALF_DOWN\",\"PHP_RELEASE_VERSION\",\"PHP_PREFIX\",\"PHP_OUTPUT_HANDLER_START\",\"PHP_OUTPUT_HANDLER_END\",\"PHP_OUTPUT_HANDLER_CONT\",\"PHP_OS\",\"PHP_NORMAL_READ\",\"PHP_MINOR_VERSION\",\"PHP_MAXPATHLEN\",\"PHP_MAJOR_VERSION\",\"PHP_LOCALSTATEDIR\",\"PHP_LIBDIR\",\"PHP_INT_SIZE\",\"PHP_INT_MAX\",\"PHP_EXTRA_VERSION\",\"PHP_EXTENSION_DIR\",\"PHP_EOL\",\"PHP_DEBUG\",\"PHP_DATADIR\",\"PHP_CONFIG_FILE_SCAN_DIR\",\"PHP_CONFIG_FILE_PATH\",\"PHP_BINDIR\",\"PHP_BINARY_READ\",\"PGSQL_TUPLES_OK\",\"PGSQL_TRANSACTION_UNKNOWN\",\"PGSQL_TRANSACTION_INTRANS\",\"PGSQL_TRANSACTION_INERROR\",\"PGSQL_TRANSACTION_IDLE\",\"PGSQL_TRANSACTION_ACTIVE\",\"PGSQL_STATUS_STRING\",\"PGSQL_STATUS_LONG\",\"PGSQL_SEEK_SET\",\"PGSQL_SEEK_END\",\"PGSQL_SEEK_CUR\",\"PGSQL_NUM\",\"PGSQL_NONFATAL_ERROR\",\"PGSQL_FATAL_ERROR\",\"PGSQL_ERRORS_VERBOSE\",\"PGSQL_ERRORS_TERSE\",\"PGSQL_ERRORS_DEFAULT\",\"PGSQL_EMPTY_QUERY\",\"PGSQL_DML_STRING\",\"PGSQL_DML_NO_CONV\",\"PGSQL_DML_EXEC\",\"PGSQL_DML_ASYNC\",\"PGSQL_DIAG_STATEMENT_POSITION\",\"PGSQL_DIAG_SQLSTATE\",\"PGSQL_DIAG_SOURCE_LINE\",\"PGSQL_DIAG_SOURCE_FUNCTION\",\"PGSQL_DIAG_SOURCE_FILE\",\"PGSQL_DIAG_SEVERITY\",\"PGSQL_DIAG_MESSAGE_PRIMARY\",\"PGSQL_DIAG_MESSAGE_HINT\",\"PGSQL_DIAG_MESSAGE_DETAIL\",\"PGSQL_DIAG_INTERNAL_QUERY\",\"PGSQL_DIAG_INTERNAL_POSITION\",\"PGSQL_DIAG_CONTEXT\",\"PGSQL_COPY_OUT\",\"PGSQL_COPY_IN\",\"PGSQL_CONV_IGNORE_NOT_NULL\",\"PGSQL_CONV_IGNORE_DEFAULT\",\"PGSQL_CONV_FORCE_NULL\",\"PGSQL_CONNECT_FORCE_NEW\",\"PGSQL_CONNECTION_OK\",\"PGSQL_CONNECTION_BAD\",\"PGSQL_COMMAND_OK\",\"PGSQL_BOTH\",\"PGSQL_BAD_RESPONSE\",\"PGSQL_ASSOC\",\"PEAR_INSTALL_DIR\",\"PEAR_EXTENSION_DIR\",\"PCRE_VERSION\",\"PATH_SEPARATOR\",\"PATHINFO_FILENAME\",\"PATHINFO_EXTENSION\",\"PATHINFO_DIRNAME\",\"PATHINFO_BASENAME\",\"OPENSSL_VERSION_TEXT\",\"OPENSSL_VERSION_NUMBER\",\"OPENSSL_TLSEXT_SERVER_NAME\",\"OPENSSL_SSLV23_PADDING\",\"OPENSSL_PKCS1_PADDING\",\"OPENSSL_PKCS1_OAEP_PADDING\",\"OPENSSL_NO_PADDING\",\"OPENSSL_KEYTYPE_RSA\",\"OPENSSL_KEYTYPE_EC\",\"OPENSSL_KEYTYPE_DSA\",\"OPENSSL_KEYTYPE_DH\",\"OPENSSL_CIPHER_RC2_64\",\"OPENSSL_CIPHER_RC2_40\",\"OPENSSL_CIPHER_RC2_128\",\"OPENSSL_CIPHER_DES\",\"OPENSSL_CIPHER_3DES\",\"OPENSSL_ALGO_SHA1\",\"OPENSSL_ALGO_MD5\",\"OPENSSL_ALGO_MD4\",\"OPENSSL_ALGO_DSS1\",\"ODBC_TYPE\",\"ODBC_BINMODE_RETURN\",\"ODBC_BINMODE_PASSTHRU\",\"ODBC_BINMODE_CONVERT\",\"NULL\",\"NORM_IGNOREWIDTH\",\"NORM_IGNORESYMBOLS\",\"NORM_IGNORENONSPACE\",\"NORM_IGNOREKANATYPE\",\"NORM_IGNORECASE\",\"NAN\",\"M_SQRTPI\",\"M_SQRT3\",\"M_SQRT2\",\"M_SQRT1_2\",\"M_PI_4\",\"M_PI_2\",\"M_PI\",\"M_LOG2E\",\"M_LOG10E\",\"M_LNPI\",\"M_LN2\",\"M_LN10\",\"M_EULER\",\"M_E\",\"M_2_SQRTPI\",\"M_2_PI\",\"M_1_PI\",\"MYSQL_NUM\",\"MYSQL_CLIENT_SSL\",\"MYSQL_CLIENT_INTERACTIVE\",\"MYSQL_CLIENT_IGNORE_SPACE\",\"MYSQL_CLIENT_COMPRESS\",\"MYSQL_BOTH\",\"MYSQL_ASSOC\",\"MYSQLI_ZEROFILL_FLAG\",\"MYSQLI_USE_RESULT\",\"MYSQLI_UNSIGNED_FLAG\",\"MYSQLI_UNIQUE_KEY_FLAG\",\"MYSQLI_TYPE_YEAR\",\"MYSQLI_TYPE_VAR_STRING\",\"MYSQLI_TYPE_TINY_BLOB\",\"MYSQLI_TYPE_TINY\",\"MYSQLI_TYPE_TIMESTAMP\",\"MYSQLI_TYPE_TIME\",\"MYSQLI_TYPE_STRING\",\"MYSQLI_TYPE_SHORT\",\"MYSQLI_TYPE_SET\",\"MYSQLI_TYPE_NULL\",\"MYSQLI_TYPE_NEWDECIMAL\",\"MYSQLI_TYPE_NEWDATE\",\"MYSQLI_TYPE_MEDIUM_BLOB\",\"MYSQLI_TYPE_LONG_BLOB\",\"MYSQLI_TYPE_LONGLONG\",\"MYSQLI_TYPE_LONG\",\"MYSQLI_TYPE_INTERVAL\",\"MYSQLI_TYPE_INT24\",\"MYSQLI_TYPE_GEOMETRY\",\"MYSQLI_TYPE_FLOAT\",\"MYSQLI_TYPE_ENUM\",\"MYSQLI_TYPE_DOUBLE\",\"MYSQLI_TYPE_DECIMAL\",\"MYSQLI_TYPE_DATETIME\",\"MYSQLI_TYPE_DATE\",\"MYSQLI_TYPE_CHAR\",\"MYSQLI_TYPE_BLOB\",\"MYSQLI_TYPE_BIT\",\"MYSQLI_TIMESTAMP_FLAG\",\"MYSQLI_STORE_RESULT\",\"MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH\",\"MYSQLI_STMT_ATTR_PREFETCH_ROWS\",\"MYSQLI_STMT_ATTR_CURSOR_TYPE\",\"MYSQLI_SET_FLAG\",\"MYSQLI_SET_CHARSET_NAME\",\"MYSQLI_SERVER_QUERY_WAS_SLOW\",\"MYSQLI_SERVER_QUERY_NO_INDEX_USED\",\"MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED\",\"MYSQLI_REPORT_STRICT\",\"MYSQLI_REPORT_OFF\",\"MYSQLI_REPORT_INDEX\",\"MYSQLI_REPORT_ERROR\",\"MYSQLI_REPORT_ALL\",\"MYSQLI_REFRESH_THREADS\",\"MYSQLI_REFRESH_TABLES\",\"MYSQLI_REFRESH_STATUS\",\"MYSQLI_REFRESH_SLAVE\",\"MYSQLI_REFRESH_MASTER\",\"MYSQLI_REFRESH_LOG\",\"MYSQLI_REFRESH_HOSTS\",\"MYSQLI_REFRESH_GRANT\",\"MYSQLI_REFRESH_BACKUP_LOG\",\"MYSQLI_READ_DEFAULT_GROUP\",\"MYSQLI_READ_DEFAULT_FILE\",\"MYSQLI_PRI_KEY_FLAG\",\"MYSQLI_PART_KEY_FLAG\",\"MYSQLI_OPT_NET_READ_BUFFER_SIZE\",\"MYSQLI_OPT_NET_CMD_BUFFER_SIZE\",\"MYSQLI_OPT_LOCAL_INFILE\",\"MYSQLI_OPT_INT_AND_FLOAT_NATIVE\",\"MYSQLI_OPT_CONNECT_TIMEOUT\",\"MYSQLI_ON_UPDATE_NOW_FLAG\",\"MYSQLI_NUM_FLAG\",\"MYSQLI_NUM\",\"MYSQLI_NO_DEFAULT_VALUE_FLAG\",\"MYSQLI_NO_DATA\",\"MYSQLI_NOT_NULL_FLAG\",\"MYSQLI_MULTIPLE_KEY_FLAG\",\"MYSQLI_INIT_COMMAND\",\"MYSQLI_GROUP_FLAG\",\"MYSQLI_ENUM_FLAG\",\"MYSQLI_DEBUG_TRACE_ENABLED\",\"MYSQLI_DATA_TRUNCATED\",\"MYSQLI_CURSOR_TYPE_SCROLLABLE\",\"MYSQLI_CURSOR_TYPE_READ_ONLY\",\"MYSQLI_CURSOR_TYPE_NO_CURSOR\",\"MYSQLI_CURSOR_TYPE_FOR_UPDATE\",\"MYSQLI_CLIENT_SSL\",\"MYSQLI_CLIENT_NO_SCHEMA\",\"MYSQLI_CLIENT_INTERACTIVE\",\"MYSQLI_CLIENT_IGNORE_SPACE\",\"MYSQLI_CLIENT_FOUND_ROWS\",\"MYSQLI_CLIENT_COMPRESS\",\"MYSQLI_BOTH\",\"MYSQLI_BLOB_FLAG\",\"MYSQLI_BINARY_FLAG\",\"MYSQLI_AUTO_INCREMENT_FLAG\",\"MYSQLI_ASYNC\",\"MYSQLI_ASSOC\",\"MSG_WAITALL\",\"MSG_PEEK\",\"MSG_OOB\",\"MSG_DONTROUTE\",\"MK_E_UNAVAILABLE\",\"MCRYPT_XTEA\",\"MCRYPT_WAKE\",\"MCRYPT_TWOFISH\",\"MCRYPT_TRIPLEDES\",\"MCRYPT_THREEWAY\",\"MCRYPT_SKIPJACK\",\"MCRYPT_SERPENT\",\"MCRYPT_SAFERPLUS\",\"MCRYPT_SAFER64\",\"MCRYPT_SAFER128\",\"MCRYPT_RIJNDAEL_256\",\"MCRYPT_RIJNDAEL_192\",\"MCRYPT_RIJNDAEL_128\",\"MCRYPT_RC6\",\"MCRYPT_RC2\",\"MCRYPT_RAND\",\"MCRYPT_PANAMA\",\"MCRYPT_MODE_STREAM\",\"MCRYPT_MODE_OFB\",\"MCRYPT_MODE_NOFB\",\"MCRYPT_MODE_ECB\",\"MCRYPT_MODE_CFB\",\"MCRYPT_MODE_CBC\",\"MCRYPT_MARS\",\"MCRYPT_LOKI97\",\"MCRYPT_IDEA\",\"MCRYPT_GOST\",\"MCRYPT_ENIGNA\",\"MCRYPT_ENCRYPT\",\"MCRYPT_DEV_URANDOM\",\"MCRYPT_DEV_RANDOM\",\"MCRYPT_DES\",\"MCRYPT_DECRYPT\",\"MCRYPT_CRYPT\",\"MCRYPT_CAST_256\",\"MCRYPT_CAST_128\",\"MCRYPT_BLOWFISH_COMPAT\",\"MCRYPT_BLOWFISH\",\"MCRYPT_ARCFOUR_IV\",\"MCRYPT_ARCFOUR\",\"MCRYPT_3DES\",\"MB_OVERLOAD_STRING\",\"MB_OVERLOAD_REGEX\",\"MB_OVERLOAD_MAIL\",\"MB_CASE_UPPER\",\"MB_CASE_TITLE\",\"MB_CASE_LOWER\",\"LOG_WARNING\",\"LOG_UUCP\",\"LOG_USER\",\"LOG_SYSLOG\",\"LOG_PID\",\"LOG_PERROR\",\"LOG_ODELAY\",\"LOG_NOWAIT\",\"LOG_NOTICE\",\"LOG_NEWS\",\"LOG_NDELAY\",\"LOG_MAIL\",\"LOG_LPR\",\"LOG_KERN\",\"LOG_INFO\",\"LOG_ERR\",\"LOG_EMERG\",\"LOG_DEBUG\",\"LOG_DAEMON\",\"LOG_CRON\",\"LOG_CRIT\",\"LOG_CONS\",\"LOG_AUTHPRIV\",\"LOG_AUTH\",\"LOG_ALERT\",\"LOCK_UN\",\"LOCK_SH\",\"LOCK_NB\",\"LOCK_EX\",\"LIBXSLT_VERSION\",\"LIBXSLT_DOTTED_VERSION\",\"LIBXML_XINCLUDE\",\"LIBXML_VERSION\",\"LIBXML_PARSEHUGE\",\"LIBXML_NSCLEAN\",\"LIBXML_NOXMLDECL\",\"LIBXML_NOWARNING\",\"LIBXML_NONET\",\"LIBXML_NOERROR\",\"LIBXML_NOENT\",\"LIBXML_NOEMPTYTAG\",\"LIBXML_NOCDATA\",\"LIBXML_NOBLANKS\",\"LIBXML_LOADED_VERSION\",\"LIBXML_ERR_WARNING\",\"LIBXML_ERR_NONE\",\"LIBXML_ERR_FATAL\",\"LIBXML_ERR_ERROR\",\"LIBXML_DTDVALID\",\"LIBXML_DTDLOAD\",\"LIBXML_DTDATTR\",\"LIBXML_DOTTED_VERSION\",\"LIBXML_COMPACT\",\"LIBEXSLT_VERSION\",\"LIBEXSLT_DOTTED_VERSION\",\"LDAP_OPT_TIMELIMIT\",\"LDAP_OPT_SIZELIMIT\",\"LDAP_OPT_SERVER_CONTROLS\",\"LDAP_OPT_RESTART\",\"LDAP_OPT_REFERRALS\",\"LDAP_OPT_PROTOCOL_VERSION\",\"LDAP_OPT_NETWORK_TIMEOUT\",\"LDAP_OPT_MATCHED_DN\",\"LDAP_OPT_HOST_NAME\",\"LDAP_OPT_ERROR_STRING\",\"LDAP_OPT_ERROR_NUMBER\",\"LDAP_OPT_DEREF\",\"LDAP_OPT_DEBUG_LEVEL\",\"LDAP_OPT_CLIENT_CONTROLS\",\"LDAP_DEREF_SEARCHING\",\"LDAP_DEREF_NEVER\",\"LDAP_DEREF_FINDING\",\"LDAP_DEREF_ALWAYS\",\"LC_TIME\",\"LC_NUMERIC\",\"LC_MONETARY\",\"LC_CTYPE\",\"LC_COLLATE\",\"LC_ALL\",\"JSON_HEX_TAG\",\"JSON_HEX_QUOT\",\"JSON_HEX_APOS\",\"JSON_HEX_AMP\",\"JSON_FORCE_OBJECT\",\"JSON_ERROR_SYNTAX\",\"JSON_ERROR_STATE_MISMATCH\",\"JSON_ERROR_NONE\",\"JSON_ERROR_DEPTH\",\"JSON_ERROR_CTRL_CHAR\",\"INPUT_SESSION\",\"INPUT_SERVER\",\"INPUT_REQUEST\",\"INPUT_POST\",\"INPUT_GET\",\"INPUT_ENV\",\"INPUT_COOKIE\",\"INI_USER\",\"INI_SYSTEM\",\"INI_SCANNER_RAW\",\"INI_SCANNER_NORMAL\",\"INI_PERDIR\",\"INI_ALL\",\"INFO_VARIABLES\",\"INFO_MODULES\",\"INFO_LICENSE\",\"INFO_GENERAL\",\"INFO_ENVIRONMENT\",\"INFO_CREDITS\",\"INFO_CONFIGURATION\",\"INFO_ALL\",\"INF\",\"IMAGETYPE_XBM\",\"IMAGETYPE_WBMP\",\"IMAGETYPE_UNKNOWN\",\"IMAGETYPE_TIFF_MM\",\"IMAGETYPE_TIFF_II\",\"IMAGETYPE_SWF\",\"IMAGETYPE_SWC\",\"IMAGETYPE_PSD\",\"IMAGETYPE_PNG\",\"IMAGETYPE_JPX\",\"IMAGETYPE_JPEG2000\",\"IMAGETYPE_JPEG\",\"IMAGETYPE_JPC\",\"IMAGETYPE_JP2\",\"IMAGETYPE_JB2\",\"IMAGETYPE_IFF\",\"IMAGETYPE_ICO\",\"IMAGETYPE_GIF\",\"IMAGETYPE_COUNT\",\"IMAGETYPE_BMP\",\"ICONV_VERSION\",\"ICONV_MIME_DECODE_STRICT\",\"ICONV_MIME_DECODE_CONTINUE_ON_ERROR\",\"ICONV_IMPL\",\"HTTP_VERSION_NONE\",\"HTTP_VERSION_ANY\",\"HTTP_VERSION_1_1\",\"HTTP_VERSION_1_0\",\"HTTP_URL_STRIP_USER\",\"HTTP_URL_STRIP_QUERY\",\"HTTP_URL_STRIP_PORT\",\"HTTP_URL_STRIP_PATH\",\"HTTP_URL_STRIP_PASS\",\"HTTP_URL_STRIP_FRAGMENT\",\"HTTP_URL_STRIP_AUTH\",\"HTTP_URL_STRIP_ALL\",\"HTTP_URL_REPLACE\",\"HTTP_URL_JOIN_QUERY\",\"HTTP_URL_JOIN_PATH\",\"HTTP_URL_FROM_ENV\",\"HTTP_SUPPORT_SSLREQUESTS\",\"HTTP_SUPPORT_REQUESTS\",\"HTTP_SUPPORT_MAGICMIME\",\"HTTP_SUPPORT_EVENTS\",\"HTTP_SUPPORT_ENCODINGS\",\"HTTP_SUPPORT\",\"HTTP_SSL_VERSION_TLSv1\",\"HTTP_SSL_VERSION_SSLv3\",\"HTTP_SSL_VERSION_SSLv2\",\"HTTP_SSL_VERSION_ANY\",\"HTTP_REDIRECT_TEMP\",\"HTTP_REDIRECT_PROXY\",\"HTTP_REDIRECT_POST\",\"HTTP_REDIRECT_PERM\",\"HTTP_REDIRECT_FOUND\",\"HTTP_REDIRECT\",\"HTTP_QUERYSTRING_TYPE_STRING\",\"HTTP_QUERYSTRING_TYPE_OBJECT\",\"HTTP_QUERYSTRING_TYPE_INT\",\"HTTP_QUERYSTRING_TYPE_FLOAT\",\"HTTP_QUERYSTRING_TYPE_BOOL\",\"HTTP_QUERYSTRING_TYPE_ARRAY\",\"HTTP_PROXY_SOCKS5\",\"HTTP_PROXY_SOCKS4\",\"HTTP_PROXY_HTTP\",\"HTTP_PARAMS_RAISE_ERROR\",\"HTTP_PARAMS_DEFAULT\",\"HTTP_PARAMS_ALLOW_FAILURE\",\"HTTP_PARAMS_ALLOW_COMMA\",\"HTTP_MSG_RESPONSE\",\"HTTP_MSG_REQUEST\",\"HTTP_MSG_NONE\",\"HTTP_METH_VERSION_CONTROL\",\"HTTP_METH_UPDATE\",\"HTTP_METH_UNLOCK\",\"HTTP_METH_UNCHECKOUT\",\"HTTP_METH_TRACE\",\"HTTP_METH_REPORT\",\"HTTP_METH_PUT\",\"HTTP_METH_PROPPATCH\",\"HTTP_METH_PROPFIND\",\"HTTP_METH_POST\",\"HTTP_METH_OPTIONS\",\"HTTP_METH_MOVE\",\"HTTP_METH_MKWORKSPACE\",\"HTTP_METH_MKCOL\",\"HTTP_METH_MKACTIVITY\",\"HTTP_METH_MERGE\",\"HTTP_METH_LOCK\",\"HTTP_METH_LABEL\",\"HTTP_METH_HEAD\",\"HTTP_METH_GET\",\"HTTP_METH_DELETE\",\"HTTP_METH_COPY\",\"HTTP_METH_CONNECT\",\"HTTP_METH_CHECKOUT\",\"HTTP_METH_CHECKIN\",\"HTTP_METH_BASELINE_CONTROL\",\"HTTP_METH_ACL\",\"HTTP_IPRESOLVE_V6\",\"HTTP_IPRESOLVE_V4\",\"HTTP_IPRESOLVE_ANY\",\"HTTP_E_URL\",\"HTTP_E_SOCKET\",\"HTTP_E_RUNTIME\",\"HTTP_E_RESPONSE\",\"HTTP_E_REQUEST_POOL\",\"HTTP_E_REQUEST_METHOD\",\"HTTP_E_REQUEST\",\"HTTP_E_QUERYSTRING\",\"HTTP_E_MESSAGE_TYPE\",\"HTTP_E_MALFORMED_HEADERS\",\"HTTP_E_INVALID_PARAM\",\"HTTP_E_HEADER\",\"HTTP_E_ENCODING\",\"HTTP_ENCODING_STREAM_FLUSH_SYNC\",\"HTTP_ENCODING_STREAM_FLUSH_NONE\",\"HTTP_ENCODING_STREAM_FLUSH_FULL\",\"HTTP_DEFLATE_TYPE_ZLIB\",\"HTTP_DEFLATE_TYPE_RAW\",\"HTTP_DEFLATE_TYPE_GZIP\",\"HTTP_DEFLATE_STRATEGY_RLE\",\"HTTP_DEFLATE_STRATEGY_HUFF\",\"HTTP_DEFLATE_STRATEGY_FIXED\",\"HTTP_DEFLATE_STRATEGY_FILT\",\"HTTP_DEFLATE_STRATEGY_DEF\",\"HTTP_DEFLATE_LEVEL_MIN\",\"HTTP_DEFLATE_LEVEL_MAX\",\"HTTP_DEFLATE_LEVEL_DEF\",\"HTTP_COOKIE_SECURE\",\"HTTP_COOKIE_PARSE_RAW\",\"HTTP_COOKIE_HTTPONLY\",\"HTTP_AUTH_NTLM\",\"HTTP_AUTH_GSSNEG\",\"HTTP_AUTH_DIGEST\",\"HTTP_AUTH_BASIC\",\"HTTP_AUTH_ANY\",\"HTML_SPECIALCHARS\",\"HTML_ENTITIES\",\"HASH_HMAC\",\"GLOB_ONLYDIR\",\"GLOB_NOSORT\",\"GLOB_NOESCAPE\",\"GLOB_NOCHECK\",\"GLOB_MARK\",\"GLOB_ERR\",\"GLOB_BRACE\",\"GLOB_AVAILABLE_FLAGS\",\"FTP_TIMEOUT_SEC\",\"FTP_TEXT\",\"FTP_MOREDATA\",\"FTP_IMAGE\",\"FTP_FINISHED\",\"FTP_FAILED\",\"FTP_BINARY\",\"FTP_AUTOSEEK\",\"FTP_AUTORESUME\",\"FTP_ASCII\",\"FORCE_GZIP\",\"FORCE_DEFLATE\",\"FNM_PERIOD\",\"FNM_PATHNAME\",\"FNM_NOESCAPE\",\"FNM_CASEFOLD\",\"FILTER_VALIDATE_URL\",\"FILTER_VALIDATE_REGEXP\",\"FILTER_VALIDATE_IP\",\"FILTER_VALIDATE_INT\",\"FILTER_VALIDATE_FLOAT\",\"FILTER_VALIDATE_EMAIL\",\"FILTER_VALIDATE_BOOLEAN\",\"FILTER_UNSAFE_RAW\",\"FILTER_SANITIZE_URL\",\"FILTER_SANITIZE_STRIPPED\",\"FILTER_SANITIZE_STRING\",\"FILTER_SANITIZE_SPECIAL_CHARS\",\"FILTER_SANITIZE_NUMBER_INT\",\"FILTER_SANITIZE_NUMBER_FLOAT\",\"FILTER_SANITIZE_MAGIC_QUOTES\",\"FILTER_SANITIZE_ENCODED\",\"FILTER_SANITIZE_EMAIL\",\"FILTER_REQUIRE_SCALAR\",\"FILTER_REQUIRE_ARRAY\",\"FILTER_NULL_ON_FAILURE\",\"FILTER_FORCE_ARRAY\",\"FILTER_FLAG_STRIP_LOW\",\"FILTER_FLAG_STRIP_HIGH\",\"FILTER_FLAG_STRIP_BACKTICK\",\"FILTER_FLAG_SCHEME_REQUIRED\",\"FILTER_FLAG_QUERY_REQUIRED\",\"FILTER_FLAG_PATH_REQUIRED\",\"FILTER_FLAG_NO_RES_RANGE\",\"FILTER_FLAG_NO_PRIV_RANGE\",\"FILTER_FLAG_NO_ENCODE_QUOTES\",\"FILTER_FLAG_NONE\",\"FILTER_FLAG_IPV6\",\"FILTER_FLAG_IPV4\",\"FILTER_FLAG_HOST_REQUIRED\",\"FILTER_FLAG_ENCODE_LOW\",\"FILTER_FLAG_ENCODE_HIGH\",\"FILTER_FLAG_ENCODE_AMP\",\"FILTER_FLAG_EMPTY_STRING_NULL\",\"FILTER_FLAG_ALLOW_THOUSAND\",\"FILTER_FLAG_ALLOW_SCIENTIFIC\",\"FILTER_FLAG_ALLOW_OCTAL\",\"FILTER_FLAG_ALLOW_HEX\",\"FILTER_FLAG_ALLOW_FRACTION\",\"FILTER_DEFAULT\",\"FILTER_CALLBACK\",\"FILE_USE_INCLUDE_PATH\",\"FILE_TEXT\",\"FILE_SKIP_EMPTY_LINES\",\"FILE_NO_DEFAULT_CONTEXT\",\"FILE_IGNORE_NEW_LINES\",\"FILE_BINARY\",\"FILE_APPEND\",\"FALSE\",\"E_WARNING\",\"E_USER_WARNING\",\"E_USER_NOTICE\",\"E_USER_ERROR\",\"E_USER_DEPRECATED\",\"E_STRICT\",\"E_RECOVERABLE_ERROR\",\"E_PARSE\",\"E_NOTICE\",\"E_ERROR\",\"E_DEPRECATED\",\"E_CORE_WARNING\",\"E_CORE_ERROR\",\"E_COMPILE_WARNING\",\"E_COMPILE_ERROR\",\"E_ALL\",\"EXTR_SKIP\",\"EXTR_REFS\",\"EXTR_PREFIX_SAME\",\"EXTR_PREFIX_INVALID\",\"EXTR_PREFIX_IF_EXISTS\",\"EXTR_PREFIX_ALL\",\"EXTR_OVERWRITE\",\"EXTR_IF_EXISTS\",\"EXIF_USE_MBSTRING\",\"ENT_QUOTES\",\"ENT_NOQUOTES\",\"ENT_IGNORE\",\"ENT_COMPAT\",\"DOM_WRONG_DOCUMENT_ERR\",\"DOM_VALIDATION_ERR\",\"DOM_SYNTAX_ERR\",\"DOM_PHP_ERR\",\"DOM_NO_MODIFICATION_ALLOWED_ERR\",\"DOM_NO_DATA_ALLOWED_ERR\",\"DOM_NOT_SUPPORTED_ERR\",\"DOM_NOT_FOUND_ERR\",\"DOM_NAMESPACE_ERR\",\"DOM_INVALID_STATE_ERR\",\"DOM_INVALID_MODIFICATION_ERR\",\"DOM_INVALID_CHARACTER_ERR\",\"DOM_INVALID_ACCESS_ERR\",\"DOM_INUSE_ATTRIBUTE_ERR\",\"DOM_INDEX_SIZE_ERR\",\"DOM_HIERARCHY_REQUEST_ERR\",\"DOMSTRING_SIZE_ERR\",\"DNS_TXT\",\"DNS_SRV\",\"DNS_SOA\",\"DNS_PTR\",\"DNS_NS\",\"DNS_NAPTR\",\"DNS_MX\",\"DNS_HINFO\",\"DNS_CNAME\",\"DNS_ANY\",\"DNS_ALL\",\"DNS_AAAA\",\"DNS_A6\",\"DNS_A\",\"DISP_E_OVERFLOW\",\"DISP_E_DIVBYZERO\",\"DISP_E_BADINDEX\",\"DIRECTORY_SEPARATOR\",\"DEFAULT_INCLUDE_PATH\",\"DATE_W3C\",\"DATE_RSS\",\"DATE_RFC850\",\"DATE_RFC822\",\"DATE_RFC3339\",\"DATE_RFC2822\",\"DATE_RFC1123\",\"DATE_RFC1036\",\"DATE_ISO8601\",\"DATE_COOKIE\",\"DATE_ATOM\",\"CRYPT_STD_DES\",\"CRYPT_SHA512\",\"CRYPT_SHA256\",\"CRYPT_SALT_LENGTH\",\"CRYPT_MD5\",\"CRYPT_EXT_DES\",\"CRYPT_BLOWFISH\",\"CREDITS_SAPI\",\"CREDITS_QA\",\"CREDITS_MODULES\",\"CREDITS_GROUP\",\"CREDITS_GENERAL\",\"CREDITS_FULLPAGE\",\"CREDITS_DOCS\",\"CREDITS_ALL\",\"CP_UTF8\",\"CP_UTF7\",\"CP_THREAD_ACP\",\"CP_SYMBOL\",\"CP_OEMCP\",\"CP_MACCP\",\"CP_ACP\",\"COUNT_RECURSIVE\",\"COUNT_NORMAL\",\"CONNECTION_TIMEOUT\",\"CONNECTION_NORMAL\",\"CONNECTION_ABORTED\",\"CLSCTX_SERVER\",\"CLSCTX_REMOTE_SERVER\",\"CLSCTX_LOCAL_SERVER\",\"CLSCTX_INPROC_SERVER\",\"CLSCTX_INPROC_HANDLER\",\"CLSCTX_ALL\",\"CHAR_MAX\",\"CASE_UPPER\",\"CASE_LOWER\",\"CAL_NUM_CALS\",\"CAL_MONTH_JULIAN_SHORT\",\"CAL_MONTH_JULIAN_LONG\",\"CAL_MONTH_JEWISH\",\"CAL_MONTH_GREGORIAN_SHORT\",\"CAL_MONTH_GREGORIAN_LONG\",\"CAL_MONTH_FRENCH\",\"CAL_JULIAN\",\"CAL_JEWISH_ADD_GERESHAYIM\",\"CAL_JEWISH_ADD_ALAFIM_GERESH\",\"CAL_JEWISH_ADD_ALAFIM\",\"CAL_JEWISH\",\"CAL_GREGORIAN\",\"CAL_FRENCH\",\"CAL_EASTER_ROMAN\",\"CAL_EASTER_DEFAULT\",\"CAL_EASTER_ALWAYS_JULIAN\",\"CAL_EASTER_ALWAYS_GREGORIAN\",\"CAL_DOW_SHORT\",\"CAL_DOW_LONG\",\"CAL_DOW_DAYNO\",\"ASSERT_WARNING\",\"ASSERT_QUIET_EVAL\",\"ASSERT_CALLBACK\",\"ASSERT_BAIL\",\"ASSERT_ACTIVE\",\"APACHE_MAP\",\"AF_UNIX\",\"AF_INET6\",\"AF_INET\"],boundary:\"\\\\b\"},openTag:{values:[\"<?php\"],boundary:\"\\\\s\"},shortOpenTag:{values:[\"<?=\",\"<?\"],boundary:\"\"},closeTag:{values:[\"?>\"],boundary:\"\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"//\",\"\\n\",null,!0],[\"/*\",\"*/\"],[\"#\",\"\\n\",null,!0]],variable:[[\"$\",{length:1,regex:/[^\\$A-Za-z0-9_]/},null,!0]]},customParseRules:[function(a){var b,c=\"<<<\",d=a.reader.getLine(),e=a.reader.getColumn(),f=\"\",g=!1;\nif(\"<\"!==a.reader.current()||\"<<\"!==a.reader.peek(2))return null;for(a.reader.read(2),b=a.reader.peek();b!==a.reader.EOF&&\"\\n\"!==b;)c+=a.reader.read(),\"'\"!==b?f+=a.reader.current():g=!0,b=a.reader.peek();if(b!==a.reader.EOF){for(c+=a.reader.read();a.reader.peek()!==a.reader.EOF&&a.reader.peek(f.length+2)!==\"\\n\"+f+\";\";)c+=a.reader.read();a.reader.peek()!==a.reader.EOF&&(c+=a.reader.read(f.length+1))}return a.createToken(g?\"nowdoc\":\"heredoc\",c,d,e)}],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{custom:[function(b){var c,d=a.util.getPreviousNonWsToken(b.tokens,b.index);return d&&\"keyword\"===d.name&&\"new\"===d.value?(c=a.util.getNextNonWsToken(b.tokens,b.index),c&&\"operator\"===c.name&&\"\\\\\"===c.value?!1:!0):!1},function(b){var c,d,e=a.util.getNextNonWsToken(b.tokens,b.index);if(!e||\"punctuation\"!==e.name||\";\"!==e.value&&\",\"!==e.value)return!1;for(d=b.index;c=b.tokens[--d];)if(!(\"ident\"===c.name||\"default\"===c.name||\"operator\"===c.name&&\"\\\\\"===c.value||\"punctuation\"===c.name&&\",\"===c.value))return\"keyword\"===c.name&&\"use\"===c.value;return!1},function(b){var d,e,f,g=a.util.getNextNonWsToken(b.tokens,b.index);if(g&&\"operator\"===g.name&&\"\\\\\"===g.value)return!1;for(e=b.index,f=b.tokens[e];(d=b.tokens[--e])!==c;){if(\"keyword\"===d.name&&(\"new\"===d.value||\"instanceof\"===d.value))return!0;if(\"default\"!==d.name)if(\"ident\"!==d.name){if(\"operator\"!==d.name||\"\\\\\"!==d.value)break;if(f&&\"ident\"!==f.name)return!1;f=d}else{if(f&&\"ident\"===f.name)return!1;f=d}}return!1}],follows:[[{token:\"ident\"},a.util.whitespace,{token:\"keyword\",values:[\"extends\",\"implements\"]},a.util.whitespace],[{token:\"keyword\",values:[\"class\",\"interface\",\"abstract\",\"final\"]},a.util.whitespace]],precedes:[[a.util.whitespace,{token:\"operator\",values:[\"::\"]}],[{token:\"default\"},{token:\"variable\"}]],between:[{opener:{token:\"keyword\",values:[\"implements\"]},closer:{token:\"punctuation\",values:[\"{\"]}}]},operators:[\"::\",\"->\",\"++\",\"+=\",\"+\",\"--\",\"-=\",\"-\",\"*=\",\"*\",\"/=\",\"/\",\"%=\",\"%\",\"&&\",\"||\",\"|=\",\"|\",\"&=\",\"&\",\"^=\",\"^\",\">>=\",\">>\",\"<<=\",\"<<\",\"<=\",\"<\",\">=\",\">\",\"===\",\"==\",\"!==\",\"!=\",\"!\",\"~\",\"?:\",\"?\",\":\",\".=\",\".\",\"=>\",\"=\",\"\\\\\"]})}(this.Sunlight,document),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"powershell\",{scopes:{string:[['\"','\"',['\\\\\"',\"\\\\\\\\\"]],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"#\",\"\\n\",null,!0]]},customParseRules:[function(){var b=[\"-not\",\"-band\",\"-bor\",\"bnot\",\"-replace\",\"-ireplace\",\"-creplace\",\"-and\",\"-or\",\"-isnot\",\"-is\",\"-as\",\"-F\",\"-lt\",\"-le\",\"-gt\",\"-ge\",\"-eq\",\"-ne\",\"-contains\",\"-notcontains\",\"-like\",\"-notlike\",\"-match\",\"-notmatch\"],c=[\"elseif\",\"begin\",\"function\",\"for\",\"foreach\",\"return\",\"else\",\"trap\",\"while\",\"using\",\"do\",\"data\",\"dynamicparam\",\"class\",\"define\",\"until\",\"end\",\"break\",\"if\",\"throw\",\"param\",\"continue\",\"finally\",\"in\",\"switch\",\"exit\",\"filter\",\"from\",\"try\",\"process\",\"var\",\"catch\"];return function(d){var e,f,g=d.reader.current(),h=d.reader.getLine(),i=d.reader.getColumn();if(!/[A-Za-z_-]/.test(d.reader.current())||!/[\\w-]/.test(d.reader.peek()))return null;for(;(e=d.reader.peek())&&/[\\w-]/.test(e);)g+=d.reader.read();return f=a.util.contains(b,g)?\"specialOperator\":a.util.contains(c,g)?\"keyword\":\"-\"===g.charAt(0)?\"switch\":\"ident\",d.createToken(f,g,h,i)}}(),function(){var b=/[!@#%&,\\.\\s]/,c=[\"$$\",\"$?\",\"$^\",\"$_\",\"$ARGS\",\"$CONSOLEFILENAME\",\"$ERROR\",\"$EVENT\",\"$EVENTSUBSCRIBER\",\"$EXECUTIONCONTEXT\",\"$FALSE\",\"$FOREACH\",\"$HOME\",\"$HOST\",\"$INPUT\",\"$LASTEXITCODE\",\"$MATCHES\",\"$MYINVOCATION\",\"$NESTEDPROMPTLEVEL\",\"$NULL\",\"$PID\",\"$PROFILE\",\"$PSBOUNDPARAMETERS\",\"$PSCMDLET\",\"$PSCULTURE\",\"$PSDEBUGCONTEXT\",\"$PSHOME\",\"$PSSCRIPTROOT\",\"$PSUICULTURE\",\"$PSVERSIONTABLE\",\"$PWD\",\"$SENDER\",\"$SHELLID\",\"$SOURCEARGS\",\"$SOURCEEVENTARGS\",\"$THIS\",\"$TRUE\"];return function(d){var e,f=\"$\",g=d.reader.getLine(),h=d.reader.getColumn();if(\"$\"!==d.reader.current()||b.test(d.reader.peek()))return null;for(;(e=d.reader.peek())&&!b.test(e);)f+=d.reader.read();return d.createToken(a.util.contains(c,f.toUpperCase())?\"specialVariable\":\"variable\",f,g,h)}}()],namedIdentRules:{custom:[function(b){var c=b.tokens[b.index-1];return c?\"default\"===c.name&&c.value.indexOf(a.util.eol)>=0?(c=b.tokens[b.index-2],c&&\"operator\"===c.name&&\"`\"===c.value?!1:!0):(c=a.util.getPreviousNonWsToken(b.tokens,b.index),c&&(\"operator\"===c.name&&\"=\"===c.value||\"punctuation\"===c.name&&\"{\"===c.value)?!0:!1):!0},function(b){var c,d=a.util.getNextNonWsToken(b.tokens,b.index);return d&&\"operator\"===d.name&&\".\"===d.value?!1:(c=a.util.createBetweenRule(b.index,{token:\"punctuation\",values:[\"[\"]},{token:\"punctuation\",values:[\"]\"]}),c(b.tokens)?!0:!1)}]},operators:[\"@(\",\"::\",\"..\",\".\",\"=\",\"!=\",\"!\",\"|\",\">>\",\">\",\"++\",\"+=\",\"+\",\"`\",\"*=\",\"*\",\"/=\",\"/\",\"--\",\"-=\",\"-\",\"%{\",\"%=\",\"%\",\"${\",\"&\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"python\",{keywords:[\"False\",\"class\",\"finally\",\"is\",\"return\",\"None\",\"continue\",\"for\",\"lambda\",\"try\",\"True\",\"def\",\"from\",\"nonlocal\",\"while\",\"and\",\"del\",\"global\",\"not\",\"with\",\"as\",\"elif\",\"if\",\"or\",\"yield\",\"assert\",\"else\",\"import\",\"pass\",\"break\",\"except\",\"in\",\"raise\"],customTokens:{ellipsis:{values:[\"...\"],boundary:\"\"},delimiter:{values:[\"(\",\")\",\"[\",\"]\",\"{\",\"}\",\",\",\":\",\".\",\";\",\"@\",\"=\",\"+=\",\"-=\",\"*=\",\"/=\",\"//=\",\"%=\",\"&=\",\"|=\",\"^=\",\">>=\",\"<<=\",\"**=\"],boundary:\"\"},constant:{values:[\"NotImplemented\",\"Ellipsis\",\"False\",\"True\",\"None\",\"__debug__\"],boundary:\"\\\\b\"},attribute:{values:[\"__doc__\",\"__name__\",\"__module__\",\"__defaults__\",\"__code__\",\"__globals__\",\"__dict__\",\"__closure__\",\"__annotations__\",\"__kwedefaults__\",\"__self__\",\"__func__\",\"__bases__\"],boundary:\"\\\\b\"},specialMethod:{values:[\"__next__\",\"__new__\",\"__init__\",\"__del__\",\"__repr__\",\"__str__\",\"__format__\",\"__lt__\",\"__le__\",\"__eq__\",\"__ne__\",\"__gt__\",\"__ge__\",\"__hash__\",\"__bool__\",\"__call__\",\"__prepare__\",\"__getattr__\",\"__getattribute__\",\"__setattr__\",\"__setattribute__\",\"__delattr__\",\"__dir__\",\"__get__\",\"__set__\",\"__delete__\",\"__slots__\",\"__instancecheck__\",\"__subclasscheck__\",\"__getitem__\",\"__setitem__\",\"__delitem__\",\"__iter__\",\"__reversed__\",\"__contains__\",\"__add__\",\"__sub__\",\"__mul__\",\"__truediv__\",\"__floordiv__\",\"__mod__\",\"__divmod__\",\"__pow__\",\"__lshift__\",\"__rshift__\",\"__and__\",\"__xor__\",\"__or__\",\"__radd__\",\"__rsub__\",\"__rmul__\",\"__rtruediv__\",\"__rfloordiv__\",\"__rmod__\",\"__rdivmod__\",\"__rpow__\",\"__rlshift__\",\"__rrshift__\",\"__rand__\",\"__xror__\",\"__ror__\",\"__iadd__\",\"__isub__\",\"__imul__\",\"__itruediv__\",\"__ifloordiv__\",\"__imod__\",\"__idivmod__\",\"__ipow__\",\"__ilshift__\",\"__irshift__\",\"__iand__\",\"__xror__\",\"__ior__\",\"__neg__\",\"__pos__\",\"__abs__\",\"__invert__\",\"__complex__\",\"__int__\",\"__float__\",\"__round__\",\"__index__\",\"__enter__\",\"__exit__\"],boundary:\"\\\\b\"},\"function\":{values:[\"abs\",\"dict\",\"help\",\"min\",\"setattr\",\"all\",\"dir\",\"hex\",\"next\",\"slice\",\"any\",\"divmod\",\"id\",\"object\",\"sorted\",\"ascii\",\"enumerate\",\"input\",\"oct\",\"staticmethod\",\"bin\",\"eval\",\"int\",\"open\",\"str\",\"bool\",\"exec\",\"isinstance\",\"ord\",\"sum\",\"bytearray\",\"filter\",\"issubclass\",\"pow\",\"super\",\"bytes\",\"float\",\"iter\",\"print\",\"tuple\",\"callable\",\"format\",\"len\",\"property\",\"type\",\"chr\",\"frozenset\",\"list\",\"range\",\"vars\",\"classmethod\",\"getattr\",\"locals\",\"repr\",\"zip\",\"compile\",\"globals\",\"map\",\"reversed\",\"__import__\",\"complex\",\"hasattr\",\"max\",\"round\",\"delattr\",\"hash\",\"memoryview\",\"set\"],boundary:\"\\\\b\"}},scopes:{longString:[['\"\"\"','\"\"\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'''\",\"'''\",a.util.escapeSequences.concat([\"\\\\'\"])]],rawLongString:[['r\"\"\"','\"\"\"'],['R\"\"\"','\"\"\"'],[\"r'''\",\"'''\"],[\"R'''\",\"'''\"]],binaryLongString:[['br\"\"\"','\"\"\"'],['bR\"\"\"','\"\"\"'],['Br\"\"\"','\"\"\"'],['BR\"\"\"','\"\"\"'],[\"br'''\",\"'''\"],[\"bR'''\",\"'''\"],[\"Br'''\",\"'''\"],[\"BR'''\",\"'''\"],['b\"\"\"','\"\"\"',a.util.escapeSequences.concat(['\\\\\"'])],['B\"\"\"','\"\"\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"b'''\",\"'''\",a.util.escapeSequences.concat([\"\\\\'\"])],[\"B'''\",\"'''\",a.util.escapeSequences.concat([\"\\\\'\"])]],string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",a.util.escapeSequences.concat([\"\\\\'\",\"\\\\\\\\\"])]],rawString:[['r\"','\"'],['R\"','\"'],[\"r'\",\"'\"],[\"R'\",\"'\"]],binaryString:[['b\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"b'\",\"'\",a.util.escapeSequences.concat([\"\\\\'\"])],['B\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"B'\",\"'\",a.util.escapeSequences.concat([\"\\\\'\"])],['br\"','\"'],['bR\"','\"'],['Br\"','\"'],['BR\"','\"'],[\"br'\",\"'\"],[\"bR'\",\"'\"],[\"Br'\",\"'\"],[\"BR'\",\"'\"]],comment:[[\"#\",\"\\n\",null,!0]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{follows:[[{token:\"keyword\",values:[\"class\",\"def\",\"raise\",\"except\"]},a.util.whitespace]]},operators:[\"+\",\"-\",\"**\",\"*\",\"//\",\"/\",\"%\",\"&\",\"|\",\"^\",\"~\",\"<<\",\"<=\",\"<\",\">>\",\">=\",\">\",\"==\",\"!=\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"ruby\",{keywords:[\"BEGIN\",\"END\",\"__ENCODING__\",\"__END__\",\"__FILE__\",\"__LINE__\",\"alias\",\"and\",\"begin\",\"break\",\"case\",\"class\",\"def\",\"defined?\",\"do\",\"else\",\"elsif\",\"end\",\"ensure\",\"false\",\"for\",\"if\",\"in\",\"module\",\"next\",\"nil\",\"not\",\"or\",\"redo\",\"rescue\",\"retry\",\"return\",\"self\",\"super\",\"then\",\"true\",\"undef\",\"unless\",\"until\",\"when\",\"while\",\"yield\"],customTokens:{\"function\":{values:[\"Array\",\"Float\",\"Integer\",\"String\",\"at_exit\",\"autoload\",\"binding\",\"caller\",\"catch\",\"chop!\",\"chop\",\"chomp!\",\"chomp\",\"eval\",\"exec\",\"exit!\",\"exit\",\"fail\",\"fork\",\"format\",\"gets\",\"global_variables\",\"gsub!\",\"gsub\",\"iterator?\",\"lambda\",\"load\",\"local_variables\",\"loop\",\"open\",\"p\",\"print\",\"printf\",\"proc\",\"putc\",\"puts\",\"raise\",\"rand\",\"readline\",\"readlines\",\"require\",\"select\",\"sleep\",\"split\",\"sprintf\",\"srand\",\"sub!\",\"sub\",\"syscall\",\"system\",\"test\",\"trace_var\",\"trap\",\"untrace_var\"],boundary:\"\\\\W\"},specialOperator:{values:[\"defined?\",\"eql?\",\"equal?\"],boundary:\"\\\\W\"}},customParseRules:[function(c){var d,e,f,g=\"/\",h=c.reader.getLine(),i=c.reader.getColumn();if(\"/\"!==c.reader.current())return null;if(d=function(){var d=c.token(c.count()-1),e=null;return\"\"!==c.defaultData.text&&(e=c.createToken(\"default\",c.defaultData.text)),e||(e=d),e===b?!0:\"default\"===e.name&&e.value.indexOf(\"\\n\")>-1?!0:a.util.contains([\"keyword\",\"ident\",\"number\"],d.name)?!1:\"punctuation\"!==d.name||a.util.contains([\"(\",\"{\",\"[\",\",\"],d.value)?!0:!1}(),!d)return null;for(;c.reader.peek()!==c.reader.EOF;)if(e=c.reader.peek(2),\"\\\\/\"!==e&&\"\\\\\\\\\"!==e){if(g+=f=c.reader.read(),\"/\"===f)break}else g+=c.reader.read(2);for(;c.reader.peek()!==c.reader.EOF&&/[A-Za-z]/.test(c.reader.peek());)g+=c.reader.read();return c.createToken(\"regexLiteral\",g,h,i)},function(a){var b,c,d,e=a.count(),f=0,g=e-1;if(\":\"!==a.reader.current()||!/[a-zA-Z_]/.test(a.reader.peek()))return null;for(;b=a.token(--e);)if(\"operator\"===b.name){if(0===f){if(\"?\"===b.value&&g>e)return null;if(\":\"===b.value)break}}else if(\"punctuation\"===b.name)switch(b.value){case\"(\":f--;break;case\")\":f++}else if(\"default\"===b.name&&/\\n/.test(b.value)){if(c=a.token(e-1),c&&(\"operator\"===c.name||\"punctuation\"===c.name&&\",\"===c.value))continue;break}return d=/^:\\w+/.exec(a.reader.substring())[0],b=a.createToken(\"symbol\",d,a.reader.getLine(),a.reader.getColumn()),a.reader.read(d.length-1),b},function(b){var c,d,e,f,g=b.reader.getLine(),h=b.reader.getColumn(),i=\"<<\",j=\"\",k=\"\";if(\"<\"!==b.reader.current()||!/<[\\w'\"`-]/.test(b.reader.peek(2)))return null;if(c=b.token(b.count()-1),c&&a.util.contains([\"number\",\"string\"],c.name))return null;for(b.reader.read(2),d=b.reader.current(),\"-\"===d&&(b.reader.read(),i+=d,j+=d,d=b.reader.current()),a.util.contains(['\"',\"'\",\"`\"],d)?k=d:j+=d,i+=d;(e=b.reader.peek())!==b.reader.EOF&&!(\"\\n\"===e||\"\"===k&&/\\W/.test(e));)if(\"\\\\\"===e&&(f=b.reader.peek(2),\"\"!==k&&a.util.contains([\"\\\\\"+k,\"\\\\\\\\\"],f)))i+=f,j+=b.reader.read(2);else{if(i+=b.reader.read(),\"\"!==k&&e===k)break;j+=e}return b.items.heredocQueue.push(j),b.createToken(\"heredocDeclaration\",i,g,h)},function(b){var c,d,e,f,g,h=[],i=b.reader.current(),j=!1;if(0===b.items.heredocQueue.length)return null;if(0===b.defaultData.text.replace(/[^\\n]/g,\"\").length)return null;for(;b.items.heredocQueue.length>0&&b.reader.peek()!==b.reader.EOF;){for(c=b.items.heredocQueue.shift(),\"-\"===c.charAt(0)&&(c=c.substring(1),j=!0),d=b.reader.getLine(),e=b.reader.getColumn(),f=new RegExp(\"^\\\\n\"+(j?\"[ \\\\t]*\":\"\")+a.util.regexEscape(c)+\"\\\\n\");b.reader.peek()!==b.reader.EOF;){if(g=f.exec(b.reader.peekSubstring()),null!==g){i+=b.reader.read(g[0].length);break}i+=b.reader.read()}h.push(b.createToken(\"heredoc\",i,d,e)),i=\"\"}return h.length>0?h:null},function(b){var c,d,e=\"%\",f=1,g=!1,h=b.reader.getLine(),i=b.reader.getColumn();if(\"%\"!==b.reader.current())return null;if(c=b.reader.peek(),(\"q\"===c||\"Q\"===c||\"r\"===c)&&(f++,\"r\"===c&&(g=!0)),/[A-Za-z0-9=]$/.test(b.reader.peek(f)))return null;switch(e+=b.reader.read(f),d=e.charAt(e.length-1)){case\"(\":d=\")\";break;case\"[\":d=\"]\";break;case\"{\":d=\"}\"}for(;(c=b.reader.peek())!==b.reader.EOF;)if(\"\\\\\"===c&&a.util.contains([\"\\\\\"+d,\"\\\\\\\\\"],b.reader.peek(2)))e+=b.reader.read(2);else if(e+=b.reader.read(),c===d)break;if(g)for(;b.reader.peek()!==b.reader.EOF&&/[A-Za-z]/.test(b.reader.peek());)e+=b.reader.read();return b.createToken(g?\"regexLiteral\":\"rawString\",e,h,i)},function(a){var b,c=\"=begin\",d=a.reader.getLine(),e=a.reader.getColumn(),f=!1;if(!a.reader.isSol()||\"=\"!==a.reader.current()||\"begin\"!==a.reader.peek(5))return null;for(a.reader.read(5);(b=a.reader.peek())!==a.reader.EOF;)if(f||\"\\n=end\"!==a.reader.peek(5)){if(f&&\"\\n\"===b)break;c+=a.reader.read()}else f=!0,c+=a.reader.read(5);return a.createToken(\"docComment\",c,d,e)}],scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"#\",\"\\n\",null,!0]],subshellCommand:[[\"`\",\"`\",[\"\\\\`\"]]],globalVariable:[[\"$\",{length:1,regex:/[\\W]/},null,!0]],instanceVariable:[[\"@\",{length:1,regex:/[\\W]/},null,!0]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{follows:[[{token:\"keyword\",values:[\"class\",\"def\"]},a.util.whitespace],[{token:\"keyword\",values:[\"class\"]},a.util.whitespace,{token:\"ident\"},a.util.whitespace,{token:\"operator\",values:[\"<\",\"<<\"]},a.util.whitespace]],precedes:[[a.util.whitespace,{token:\"operator\",values:[\"::\"]}],[a.util.whitespace,{token:\"operator\",values:[\".\"]},a.util.whitespace,{token:\"ident\",values:[\"new\"]},a.util.whitespace,{token:\"punctuation\",values:[\"(\"]}]]},operators:[\"?\",\"...\",\"..\",\".\",\"::\",\":\",\"[]\",\"+=\",\"+\",\"-=\",\"-\",\"**=\",\"*=\",\"**\",\"*\",\"/=\",\"/\",\"%=\",\"%\",\"&&=\",\"&=\",\"&&\",\"&\",\"||=\",\"|=\",\"||\",\"|\",\"^=\",\"^\",\"~\",\"\\\\\",\"<=>\",\"<<=\",\"<<\",\"<=\",\"<\",\">>=\",\">>\",\">=\",\">\",\"!~\",\"!=\",\"!\",\"=>\",\"===\",\"==\",\"=~\",\"=\"],contextItems:{heredocQueue:[]}})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";if(!a.isRegistered(\"xml\"))throw\"Scala requires the XML language to be registered\";a.registerLanguage(\"scala\",{keywords:[\"abstract\",\"case\",\"catch\",\"class\",\"def\",\"do\",\"else\",\"extends\",\"false\",\"final\",\"finally\",\"forSome\",\"for\",\"if\",\"implicit\",\"import\",\"lazy\",\"match\",\"new\",\"null\",\"object\",\"override\",\"package\",\"private\",\"protected\",\"return\",\"sealed\",\"super\",\"this\",\"throw\",\"trait\",\"try\",\"true\",\"type\",\"val\",\"var\",\"while\",\"with\",\"yield\"],embeddedLanguages:{xml:{switchTo:function(b){var c;return\"<\"===b.reader.current()&&/[\\w!?]/.test(b.reader.peek())?\"\"!==b.defaultData.text?!0:(c=b.token(b.count()-1),c&&\"punctuation\"===c.name&&a.util.contains([\"(\",\"{\"],c.value)):!1},switchBack:function(a){var b=a.token(a.count()-1);if(!b)return!1;if(\"tagName\"===b.name)a.items.literalXmlOpenTag||(a.items.literalXmlOpenTag=b.value);else if(\"operator\"===b.name)switch(b.value){case\"<\":a.items.literalXmlNestingLevel++;break;case\"</\":case\"/>\":a.items.literalXmlNestingLevel--}return!a.items.literalXmlOpenTag||0!==a.items.literalXmlNestingLevel||\">\"!==b.value&&\"/>\"!==b.value?!1:!0}}},scopes:{string:[['\"\"\"','\"\"\"'],['\"','\"',[\"\\\\\\\\\",'\\\\\"']]],\"char\":[[\"'\",\"'\",[\"\\\\\\\\\",\"\\\\'\"]]],quotedIdent:[[\"`\",\"`\",[\"\\\\`\",\"\\\\\\\\\"]]],comment:[[\"//\",\"\\n\",null,!0],[\"/*\",\"*/\"]],annotation:[[\"@\",{length:1,regex:/\\W/},null,!0]]},identFirstLetter:/[A-Za-z]/,identAfterFirstLetter:/\\w/,customParseRules:[function(a){var b=a.reader.getLine(),c=a.reader.getColumn();if(\"'\"!==a.reader.current())return!1;var d=/^(\\w+)(?!')/i.exec(a.reader.peekSubstring());return d?(a.reader.read(d[1].length),a.createToken(\"symbolLiteral\",\"'\"+d[1],b,c)):!1},function(b){var c,d,e=b.reader.current(),f=b.reader.getLine(),g=b.reader.getColumn();if(\"\"===b.defaultData.text)return!1;if(!/[A-Za-z]/.test(b.reader.current()))return!1;if(c=b.token(b.count()-1),\"\"===b.defaultData.text||!c||\"keyword\"!==c.name||!a.util.contains([\"class\",\"type\",\"trait\",\"object\"],c.value))return!1;for(;(d=b.reader.peek())&&/\\w/.test(d);)e+=b.reader.read();return b.items.userDefinedTypes.push(e),b.createToken(\"ident\",e,f,g)}],namedIdentRules:{custom:[function(){var b=[\"Nil\",\"Nothing\",\"Unit\",\"Pair\",\"Map\",\"String\",\"List\",\"Int\",\"Seq\",\"Option\",\"Double\",\"AnyRef\",\"AnyVal\",\"Any\",\"ScalaObject\",\"Float\",\"Long\",\"Short\",\"Byte\",\"Char\",\"Boolean\"];return function(c){var d=a.util.getNextNonWsToken(c.tokens,c.index);return d&&\"operator\"===d.name&&\".\"===d.value?!1:a.util.contains(b,c.tokens[c.index].value)}}(),function(b){return a.util.contains(b.items.userDefinedTypes,b.tokens[b.index].value)},function(c){var d,e,f,g=a.util.getNextNonWsToken(c.tokens,c.index);if(g&&\"operator\"===g.name&&\".\"===g.value)return!1;for(e=c.index,f=c.tokens[e];(d=c.tokens[--e])!==b;){if(\"keyword\"===d.name&&\"new\"===d.value)return!0;if(\"default\"!==d.name)if(\"ident\"!==d.name){if(\"operator\"!==d.name||\".\"!==d.value)break;if(f&&\"ident\"!==f.name)return!1;f=d}else{if(f&&\"ident\"===f.name)return!1;f=d}}return!1},function(){var b=[[{token:\"keyword\",values:[\"class\",\"object\",\"extends\",\"new\",\"type\",\"trait\"]},{token:\"default\"}],[{token:\"operator\",values:[\":\"]},a.util.whitespace],[{token:\"operator\",values:[\"#\"]}],[{token:\"keyword\",values:[\"type\"]},{token:\"default\"},{token:\"ident\"},a.util.whitespace,{token:\"operator\",values:[\"=\"]},a.util.whitespace]],c=[{opener:{token:\"punctuation\",values:[\"[\"]},closer:{token:\"punctuation\",values:[\"]\"]}}];return function(d){var e;if(/^[A-Z]([A-Z0-9]\\w*)?$/.test(d.tokens[d.index].value))return!1;for(e=0;e<b.length;e++)if(a.util.createProceduralRule(d.index-1,-1,b[e],!1)(d.tokens))return!0;for(e=0;e<c.length;e++)if(a.util.createBetweenRule(d.index,c[e].opener,c[e].closer,!1)(d.tokens))return!0;return!1}}()]},contextItems:{literalXmlOpenTag:null,literalXmlNestingLevel:0,userDefinedTypes:[]},operators:[\"++\",\"+=\",\"+\",\"--\",\"-=\",\"->\",\"-\",\"*=\",\"*\",\"^=\",\"^^\",\"^\",\"~>\",\"~\",\"!=\",\"!\",\"&&\",\"&=\",\"&\",\"||\",\"|=\",\"|\",\">>>\",\">>=\",\">>\",\">\",\"<<=\",\"<<\",\"<~\",\"<=\",\"<%\",\"<\",\"%>\",\"%=\",\"%\",\"::\",\":<\",\":>\",\":\",\"==\",\"=\",\"@\",\"#\",\"_\",\".\"]}),a.globalOptions.enableScalaXmlInterpolation=!1,a.bind(\"beforeHighlight\",function(a){\"scala\"===a.language.name&&(this.options.enableScalaXmlInterpolation=!0)}),a.bind(\"afterHighlight\",function(){this.options.enableScalaXmlInterpolation=!1})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"sln\",{keywords:[\"Project\",\"EndProject\",\"GlobalSection\",\"Global\",\"EndGlobalSection\",\"EndGlobal\"],customTokens:{sectionName:{values:[\"preSolution\",\"postSolution\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',['\\\\\"',\"\\\\\\\\\"]]],comment:[[\"#\",\"\\n\",null,!0]],guid:[[\"{\",\"}\"]],formatDeclaration:[[\"Microsoft Visual Studio Solution File, Format Version\",\"\\n\",null,!0]]},identFirstLetter:/[A-Za-z_\\.]/,identAfterFirstLetter:/[\\w-\\.]/,namedIdentRules:{follows:[[{token:\"keyword\",values:[\"GlobalSection\"]},a.util.whitespace,{token:\"punctuation\",values:[\"(\"]},a.util.whitespace]]},operators:[\"=\",\"|\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"tsql\",{caseInsensitive:!0,keywords:[\"ddw\",\"existsw\",\"precisionwall\",\"exit\",\"primary\",\"alter\",\"external\",\"print\",\"and\",\"fetch\",\"proc\",\"any\",\"file\",\"procedure\",\"as\",\"fillfactor\",\"public\",\"asc\",\"for\",\"raiserror\",\"authorization\",\"foreign\",\"read\",\"backup\",\"freetext\",\"readtext\",\"begin\",\"freetexttable\",\"reconfigure\",\"between\",\"from\",\"references\",\"break\",\"full\",\"replication\",\"browse\",\"function\",\"restore\",\"bulk\",\"goto\",\"restrict\",\"by\",\"grant\",\"return\",\"cascade\",\"group\",\"revert\",\"case\",\"having\",\"revoke\",\"check\",\"holdlock\",\"right\",\"checkpoint\",\"identity\",\"rollback\",\"close\",\"identity_insert\",\"rowcount\",\"clustered\",\"identitycol\",\"rowguidcol\",\"coalesce\",\"if\",\"rule\",\"collate\",\"in\",\"save\",\"column\",\"index\",\"schema\",\"commit\",\"inner\",\"securityaudit\",\"compute\",\"insert\",\"select\",\"constraint\",\"intersect\",\"session_user\",\"contains\",\"into\",\"set\",\"containstable\",\"is\",\"setuser\",\"continue\",\"join\",\"shutdown\",\"convert\",\"key\",\"some\",\"create\",\"kill\",\"statistics\",\"cross\",\"left\",\"system_user\",\"current\",\"like\",\"table\",\"current_date\",\"lineno\",\"tablesample\",\"current_time\",\"load\",\"textsize\",\"current_timestamp\",\"merge\",\"then\",\"current_user\",\"national\",\"to\",\"cursor\",\"nocheck\",\"top\",\"database\",\"nonclustered\",\"tran\",\"dbcc\",\"not\",\"transaction\",\"deallocate\",\"null\",\"trigger\",\"declare\",\"nullif\",\"truncate\",\"default\",\"of\",\"tsequal\",\"delete\",\"off\",\"union\",\"deny\",\"offsets\",\"unique\",\"desc\",\"on\",\"unpivot\",\"disk\",\"open\",\"update\",\"distinct\",\"opendatasource\",\"updatetext\",\"distributed\",\"openquery\",\"use\",\"double\",\"openrowset\",\"user\",\"drop\",\"openxml\",\"values\",\"dump\",\"option\",\"varying\",\"else\",\"or\",\"view\",\"end\",\"order\",\"waitfor\",\"errlvl\",\"outer\",\"when\",\"escape\",\"over\",\"where\",\"except\",\"percent\",\"while\",\"exec\",\"pivot\",\"with\",\"execute\",\"plan\",\"writetext\"],customParseRules:[function(){var b=a.util.createHashMap([\"encryptbykey\",\"decryptbykey\",\"encryptbypassphrase\",\"decryptbypassphrase\",\"key_id\",\"key_guid\",\"encryptbyasmkey\",\"decryptbyasmkey\",\"encryptbycert\",\"decryptbycert\",\"cert_id\",\"asymkey_id\",\"certproperty\",\"signbyasymkey\",\"verifysignedbyasmkey\",\"signbycert\",\"verifysignedbycert\",\"decryptbykeyautocert\",\"hashbytes\",\"cursor_status\",\"datalength\",\"ident_seed\",\"ident_current\",\"identity\",\"ident_incr\",\"sql_variant_property\",\"sysdatetime\",\"sysdatetimeoffset\",\"sysutcdatetime\",\"current_timestamp\",\"getdate\",\"getutcdate\",\"datename\",\"datepart\",\"day\",\"month\",\"year\",\"datediff\",\"dateadd\",\"switchoffset\",\"todatetimeoffset\",\"set datefirst\",\"set dateformat\",\"set language\",\"sp_helplanguage\",\"isdate\",\"abs\",\"degrees\",\"rand\",\"acos\",\"exp\",\"round\",\"asin\",\"floor\",\"sign\",\"atan\",\"log\",\"sin\",\"atn2\",\"log10\",\"sqrt\",\"ceiling\",\"pi\",\"square\",\"cos\",\"power\",\"tan\",\"cot\",\"radians\",\"fulltextcatalogproperty\",\"asymkey_id\",\"fulltextserviceproperty\",\"asymkeyproperty\",\"index_col\",\"assemblyproperty\",\"indexkey_property\",\"cert_id\",\"indexproperty\",\"col_length\",\"key_id\",\"col_name\",\"key_guid\",\"columnproperty\",\"key_name\",\"database_principal_id\",\"object_definition\",\"databaseproperty\",\"object_id\",\"databasepropertyex\",\"object_name\",\"db_id\",\"object_schema_name\",\"db_name\",\"objectproperty\",\"file_id\",\"objectpropertyex\",\"file_idex\",\"schema_id\",\"file_name\",\"schema_name\",\"filegroup_id\",\"sql_variant_property\",\"filegroup_name\",\"symkeyproperty\",\"filegroupproperty\",\"type_id\",\"fileproperty\",\"type_name\",\"fn_listextendedproperty\",\"typeproperty\",\"bit_length\",\"concat\",\"octet_length\",\"truncate\",\"current_date\",\"current_time\",\"dayname\",\"dayofweek\",\"hour\",\"minute\",\"monthname\",\"quarter\",\"week\",\"publishingservername\",\"current_user\",\"schema_id\",\"database_principal_id\",\"schema_name\",\"sys.fn_builtin_permissions\",\"session_user\",\"sys.fn_my_permissions\",\"setuser\",\"has_perms_by_name\",\"suser_id\",\"is_member\",\"suser_sid\",\"is_srvrolemember\",\"suser_sname\",\"original_login\",\"system_user\",\"permissions\",\"suser_name\",\"pwdcompare\",\"user_id\",\"pwdencrypt\",\"user_name\",\"ascii\",\"nchar\",\"soundex\",\"char\",\"patindex\",\"space\",\"charindex\",\"quotename\",\"str\",\"difference\",\"replace\",\"stuff\",\"left\",\"replicate\",\"substring\",\"len\",\"reverse\",\"unicode\",\"lower\",\"right\",\"upper\",\"ltrim\",\"rtrim\",\"app_namexx\",\"case\",\"cast\",\"convert\",\"coalesce\",\"collationproperty\",\"columns_updated\",\"current_timestamp\",\"current_user\",\"datalength\",\"error_line\",\"error_message\",\"error_number\",\"error_procedure\",\"error_severity\",\"error_state\",\"fn_helpcollations\",\"fn_servershareddrives\",\"fn_virtualfilestats\",\"formatmessage\",\"getansinull\",\"host_id\",\"host_name\",\"ident_current\",\"ident_incr\",\"ident_seed\",\"identity\",\"isdate\",\"isnull\",\"isnumeric\",\"newid\",\"nullif\",\"parsename\",\"original_login\",\"rowcount_big\",\"scope_identity\",\"serverproperty\",\"sessionproperty\",\"session_user\",\"stats_date\",\"dm_db_index_physical_stats\",\"system_user\",\"user_name\",\"xact_state\",\"fn_virtualfilestats\",\"patindex\",\"textvalid\",\"textptr\",\"columns_updated\",\"eventdata\",\"trigger_nestlevel\",\"update\",\"containstable\",\"openquery\",\"freetexttable\",\"openrowset\",\"opendatasource\",\"openxml\",\"vg\",\"min\",\"checksum_agg\",\"over clause\",\"count\",\"rowcount_big\",\"count_big\",\"stdev\",\"grouping\",\"stdevp\",\"grouping_id\",\"sum\",\"max\",\"var\",\"rank\",\"ntile\",\"dense_rank\",\"row_number\",\"varp\"],\"\\\\b\",!0);return function(c){var d,e,f=a.util.matchWord(c,b,\"function\",!0);if(null===f)return null;for(d=f.value.length,e=c.reader.peek(d);e.length===d&&e!==c.reader.EOF;){if(!/\\s$/.test(e)){if(\"(\"===e.charAt(e.length-1))return c.reader.read(f.value.length-1),f;break}e=c.reader.peek(++d)}return null}}()],customTokens:{constant:{values:[\"@@FETCH_STATUS\",\"@@DATEFIRST\",\"@@OPTIONS\",\"@@DBTS\",\"@@REMSERVER\",\"@@LANGID\",\"@@SERVERNAME\",\"@@LANGUAGE\",\"@@SERVICENAME\",\"@@LOCK_TIMEOUT\",\"@@SPID\",\"@@MAX_CONNECTIONS\",\"@@TEXTSIZE\",\"@@MAX_PRECISION\",\"@@VERSION\",\"@@NESTLEVEL\",\"@@CURSOR_ROWS\",\"@@PROCID\",\"@@IDENTITY\",\"@@TRANCOUNT\",\"@@ERROR\",\"@@ROWCOUNT\",\"@@CONNECTIONS\",\"@@PACK_RECEIVED\",\"@@CPU_BUSY\",\"@@PACK_SENT\",\"@@TIMETICKS\",\"@@IDLE\",\"@@TOTAL_ERRORS\",\"@@IO_BUSY\",\"@@TOTAL_READ\",\"@@PACKET_ERRORS\",\"@@TOTAL_WRITE\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])],[\"'\",\"'\",[\"\\\\'\",\"\\\\\\\\\"]]],comment:[[\"--\",\"\\n\",null,!0],[\"/*\",\"*/\"]],quotedIdent:[[\"[\",\"]\",[\"\\\\[\",\"\\\\\\\\\"]]]},identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{follows:[[{token:\"keyword\",values:[\"from\",\"join\"]},{token:\"default\"}],[{token:\"keyword\",values:[\"from\",\"join\"]},{token:\"default\"},{token:\"ident\"},a.util.whitespace,{token:\"operator\",values:[\".\"]},a.util.whitespace]]},operators:[\"+\",\"-\",\"*\",\"/\",\"%\",\"&&\",\"||\",\"|\",\"&\",\"^\",\">>\",\"<<\",\"<>\",\"<=>\",\"<=\",\"<\",\">=\",\">\",\"==\",\"!=\",\"!\",\"~\",\":=\",\"=\",\".\"]})}(this.Sunlight),function(a,b){if(a===b||a.registerLanguage===b)throw\"Include sunlight.js before including language files\";a.registerLanguage(\"vb\",{keywords:[\"AddHandler\",\"AddressOf\",\"Alias\",\"AndAlso\",\"And\",\"As\",\"Boolean\",\"ByRef\",\"Byte\",\"ByVal\",\"Call\",\"Case\",\"Catch\",\"CBool\",\"CByte\",\"CChar\",\"CDate\",\"CDbl\",\"CDec\",\"Char\",\"CInt\",\"Class\",\"CLng\",\"CObj\",\"Const\",\"Continue\",\"CSByte\",\"CShort\",\"CSng\",\"CStr\",\"CType\",\"CUInt\",\"CULng\",\"CUShort\",\"Date\",\"Decimal\",\"Declare\",\"Default\",\"Delegate\",\"Dim\",\"DirectCast\",\"Double\",\"Do\",\"Each\",\"ElseIf\",\"Else\",\"EndStatement\",\"EndIf\",\"End\",\"Enum\",\"Erase\",\"Error\",\"Event\",\"Exit\",\"False\",\"Finally\",\"ForEach\",\"For\",\"Friend\",\"Function\",\"GetType\",\"GetXMLNamespace\",\"Get\",\"Global\",\"GoSub\",\"GoTo\",\"Handles\",\"If\",\"Implements\",\"Imports\",\"Inherits\",\"Integer\",\"Interface\",\"In\",\"IsNot\",\"Is\",\"Let\",\"Lib\",\"Like\",\"Long\",\"Loop\",\"Me\",\"Module\",\"Mod\",\"MustInherit\",\"MustOverride\",\"MyBase\",\"MyClass\",\"Namespace\",\"Narrowing\",\"New\",\"Next\",\"Nothing\",\"NotInheritable\",\"NotOverridable\",\"Not\",\"Object\",\"Of\",\"On\",\"Operator\",\"Option\",\"Optional\",\"OrElse\",\"Or\",\"Out\",\"Overloads\",\"Overridable\",\"Overrides\",\"ParamArray\",\"Partial\",\"Private\",\"Property\",\"Protected\",\"Public\",\"RaiseEvent\",\"ReadOnly\",\"ReDim\",\"RemoveHandler\",\"Resume\",\"Return\",\"SByte\",\"Select\",\"Set\",\"Shadows\",\"Shared\",\"Short\",\"Single\",\"Static\",\"Step\",\"Stop\",\"String\",\"Structure\",\"Sub\",\"SyncLock\",\"Then\",\"Throw\",\"To\",\"True\",\"TryCast\",\"Try\",\"TypeOf\",\"UInteger\",\"ULong\",\"UShort\",\"Using\",\"Variant\",\"Wend\",\"When\",\"While\",\"Widening\",\"WithEvents\",\"With\",\"WriteOnly\",\"Xor\"],customTokens:{reservedWord:{values:[\"Aggregate\",\"Ansi\",\"Assembly\",\"Auto\",\"Binary\",\"Compare\",\"Custom\",\"Distinct\",\"Equals\",\"Explicit\",\"From\",\"Group By\",\"Group Join\",\"Into\",\"IsFalse\",\"IsTrue\",\"Join\",\"Key\",\"Mid\",\"Off\",\"Order By\",\"Preserve\",\"Skip\",\"Skip While\",\"Strict\",\"Take While\",\"Take\",\"Text\",\"Unicode\",\"Until\",\"Where\"],boundary:\"\\\\b\"}},scopes:{string:[['\"','\"',a.util.escapeSequences.concat(['\\\\\"'])]],comment:[[\"'\",\"\\n\",null,!0],[\"REM\",\"\\n\",null,!0]],compilerDirective:[[\"#\",\"\\n\",null,!0]]},customParseRules:[function(a){var b,c,d,e=\"xmlDocCommentMeta\",f=\"xmlDocCommentContent\";if(\"'\"!==a.reader.current()||\"''\"!==a.reader.peek(2))return null;for(b=[a.createToken(e,\"'''\",a.reader.getLine(),a.reader.getColumn())],d={line:0,column:0,value:\"\",name:null},a.reader.read(2);(c=a.reader.peek())!==a.reader.EOF;)if(\"<\"!==c||d.name===e)if(\">\"!==c||d.name!==e){if(\"\\n\"===c)break;null===d.name&&(d.name=f,d.line=a.reader.getLine(),d.column=a.reader.getColumn()),d.value+=a.reader.read()}else d.value+=a.reader.read(),b.push(a.createToken(d.name,d.value,d.line,d.column)),d.name=null,d.value=\"\";else\"\"!==d.value&&b.push(a.createToken(d.name,d.value,d.line,d.column)),d.line=a.reader.getLine(),d.column=a.reader.getColumn(),d.name=e,d.value=a.reader.read();return d.name===f&&b.push(a.createToken(d.name,d.value,d.line,d.column)),b.length>0?b:null},function(a){var b,c=a.reader.getLine(),d=a.reader.getColumn(),e=\"[\";if(\"[\"!==a.reader.current())return null;for(b=a.reader.read();b!==a.reader.EOF&&(e+=b,\"]\"!==b);)b=a.reader.read();return a.createToken(\"escapedKeyword\",e,c,d)},function(){var b=a.util.createHashMap([\"New\",\"GetType\"],\"\\\\b\");return function(c){var d,e=a.util.matchWord(c,b,\"keyword\");return e?(d=a.util.getPreviousNonWsToken(c.getAllTokens(),c.count()),d&&(\"operator\"===d.name&&\".\"===d.value||\"keyword\"===d.name&&\"Sub\"===d.value)&&(e.name=\"ident\"),e):null}}()],identFirstLetter:/[A-Za-z_]/,identAfterFirstLetter:/\\w/,namedIdentRules:{custom:[function(c){var d,e=a.util.getNextNonWsToken(c.tokens,c.index),f=c.index,g=[0,0],h=-1;if(e&&\"operator\"===e.name&&(\"=\"===e.value||\".\"===e.value))return!1;for(;(d=c.tokens[--f])!==b;)if(\"operator\"===d.name)\"<\"===d.value?g[0]++:\">\"===d.value&&g[1]++;else if(\"keyword\"===d.name&&a.util.contains([\"Public\",\"Class\",\"Protected\",\"Private\",\"Friend\"],d.value))break;if(0===g[0]||g[0]===g[1])return!1;for(f=c.index;(d=c.tokens[++f])!==b;)if(\"operator\"===d.name)\"<\"===d.value?g[0]++:\">\"===d.value&&(h=f,g[1]++);else if(\"keyword\"===d.name&&a.util.contains([\"Public\",\"Class\",\"Protected\",\"Private\",\"Friend\",\"ByVal\"],d.value))break;return 0>h||g[0]!==g[1]?!1:(d=a.util.getNextNonWsToken(c.tokens,h),!d||\"keyword\"!==d.name&&\"ident\"!==d.name?!1:!0)},function(b){var c,d=b.index,e=1;if(!a.util.createProceduralRule(b.index-1,-1,[{token:\"punctuation\",values:[\",\"]},a.util.whitespace])(b.tokens))return!1;for(;c=b.tokens[--d];)if(\"punctuation\"===c.name&&\"(\"===c.value){if(e--,0===e)return c=b.tokens[--d],c&&\"keyword\"===c.name&&a.util.contains([\"CType\",\"DirectCast\",\"TryCast\"],c.value)?!0:!1}else\"punctuation\"===c.name&&\")\"===c.value&&e++;return!1},function(b){var c,d=a.util.getPreviousNonWsToken(b.tokens,b.index),e=b.index;if(d&&\"operator\"===d.name&&\".\"===d.value)return!1;for(;c=b.tokens[--e];)if(\"keyword\"===c.name)switch(c.value){case\"Class\":case\"New\":break;case\"Implements\":return!0;default:return!1}else if(\"default\"===c.name&&c.value.indexOf(a.util.eol)>=0)return!1;return!1},function(b){var c,d=b.index,e=function(){for(;c=b.tokens[--d];)if(\"punctuation\"===c.name)switch(c.value){case\"(\":case\")\":return!1;case\"{\":return c=a.util.getPreviousNonWsToken(b.tokens,d),c&&\"keyword\"===c.name&&\"As\"===c.value?!0:!1}else if(\"keyword\"===c.name&&a.util.contains([\"Public\",\"Protected\",\"Friend\",\"Private\",\"End\"],c.value))return!1;return!1}();if(!e)return!1;for(d=b.index;c=b.tokens[++d];)if(\"punctuation\"===c.name)switch(c.value){case\"}\":return!0;case\"(\":case\")\":case\";\":return!1}return!1}],follows:[[{token:\"keyword\",values:[\"Of\",\"As\",\"Class\",\"Implements\",\"Inherits\",\"New\",\"AddressOf\",\"Interface\",\"Structure\",\"Event\",\"Module\",\"Enum\"]},{token:\"default\"}],[{token:\"keyword\",values:[\"GetType\"]},a.util.whitespace,{token:\"punctuation\",values:[\"(\"]},a.util.whitespace]]},numberParser:function(a){var b,c,d=a.reader.current(),e=a.reader.getLine(),f=a.reader.getColumn(),g=!0;if(\"&\"===d&&/[Hh][A-Fa-f0-9]/.test(a.reader.peek(2)))b=d+a.reader.read(2),g=!1;else if(/\\d/.test(d))b=d;\nelse{if(\".\"!==d||!/\\d/.test(a.reader.peek()))return null;b=d+a.reader.read(),g=!1}for(;(c=a.reader.peek())!==a.reader.EOF;){if(!/[A-Za-z0-9]/.test(c)){if(\".\"===c&&g&&/\\d$/.test(a.reader.peek(2))){b+=a.reader.read(),g=!1;continue}break}b+=a.reader.read()}return a.createToken(\"number\",b,e,f)},operators:[\".\",\"<>\",\"=\",\"&=\",\"&\",\"*=\",\"*\",\"/=\",\"/\",\"\\\\=\",\"\\\\\",\"^=\",\"^\",\"+=\",\"+\",\"-=\",\"-\",\">>=\",\">>\",\"<<=\",\"<<\",\"<=\",\">=\",\"<\",\">\"]})}(this.Sunlight),function(a,b,c){function d(a){return function(c){var d=b.createElement(\"a\");d.className=c.options.classPrefix+c.tokens[c.index].name,d.setAttribute(\"href\",a(c.tokens[c.index].value)),d.appendChild(c.createTextNode(c.tokens[c.index])),c.addNode(d)}}if(a===c)throw\"Include sunlight.js before including plugin files\";var e={php:{\"function\":function(a){return\"http://php.net/\"+a},languageConstruct:function(a){return\"http://php.net/\"+a}},ruby:{\"function\":function(a){return\"http://www.ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/function.html#\"+a.replace(/!/g,\"_bang\").replace(/\\?/g,\"_p\")}},python:{\"function\":function(a){return\"http://docs.python.org/py3k/library/functions.html#\"+a}},perl:{\"function\":function(a){return\"http://perldoc.perl.org/functions/\"+a+\".html\"}},lua:{\"function\":function(a){return\"http://www.lua.org/manual/5.1/manual.html#pdf-\"+a}}};a.bind(\"beforeAnalyze\",function(b){this.options.enableDocLinks&&(b.analyzerContext.getAnalyzer=function(){var c,f,g=e[this.language.name];if(g){c=a.util.clone(b.analyzerContext.language.analyzer);for(f in g)g.hasOwnProperty(f)&&(c[\"handle_\"+f]=d(g[f]));return c}})}),a.globalOptions.enableDocLinks=!1}(this.Sunlight,document),function(a,b,c){function d(a){var b=function c(a){return a.lastChild?3===a.lastChild.nodeType?a.lastChild:c(a.lastChild):null}(a)||{lastChild:\"\"};return a.innerHTML.replace(/[^\\n]/g,\"\").length-/\\n$/.test(b.nodeValue)}if(a===c)throw\"Include sunlight.js before including plugin files\";a.bind(\"afterHighlightNode\",function(c){var e,f,g,h,i,j,k,l,m;if(this.options.lineNumbers&&(\"automatic\"!==this.options.lineNumbers||\"block\"===a.util.getComputedStyle(c.node,\"display\"))){for(e=b.createElement(\"pre\"),f=d(c.node),i=this.options.lineHighlight.length>0,i&&(g=b.createElement(\"div\"),g.className=this.options.classPrefix+\"line-highlight-overlay\"),e.className=this.options.classPrefix+\"line-number-margin\",k=b.createTextNode(a.util.eol),j=this.options.lineNumberStart;j<=this.options.lineNumberStart+f;j++)l=b.createElement(\"a\"),m=(c.node.id?c.node.id:this.options.classPrefix+c.count)+\"-line-\"+j,l.setAttribute(\"name\",m),l.setAttribute(\"href\",\"#\"+m),l.appendChild(b.createTextNode(j)),e.appendChild(l),e.appendChild(k.cloneNode(!1)),i&&(h=b.createElement(\"div\"),a.util.contains(this.options.lineHighlight,j)&&(h.className=this.options.classPrefix+\"line-highlight-active\"),g.appendChild(h));c.codeContainer.insertBefore(e,c.codeContainer.firstChild),i&&c.codeContainer.appendChild(g),c.codeContainer.style.borderWidth=\"1px\",c.codeContainer.style.borderStyle=\"solid\"}}),a.globalOptions.lineNumbers=\"automatic\",a.globalOptions.lineNumberStart=1,a.globalOptions.lineHighlight=[]}(this.Sunlight,document),function(sunlight,document,undefined){function createLink(a,b,c){var d=document.createElement(\"a\");return d.setAttribute(\"href\",a),d.setAttribute(\"title\",b),c&&d.appendChild(document.createTextNode(c)),d}function getTextRecursive(a){var b=\"\",c=0;if(3===a.nodeType)return a.nodeValue;for(b=\"\",c=0;c<a.childNodes.length;c++)b+=getTextRecursive(a.childNodes[c]);return b}if(sunlight===undefined)throw\"Include sunlight.js before including plugin files\";var ieVersion=eval(\"0 /*@cc_on+ScriptEngineMajorVersion()@*/\");sunlight.bind(\"afterHighlightNode\",function(a){var b,c,d,e,f,g,h,i,j,k,l;ieVersion&&7>ieVersion||!this.options.showMenu||\"block\"!==sunlight.util.getComputedStyle(a.node,\"display\")||(b=document.createElement(\"div\"),b.className=this.options.classPrefix+\"menu\",c=\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41Ljg3O4BdAAAAl0lEQVQ4jWP4P9n9PyWYgTYGzAr+///Q9P//Ty/HjhfEETDg1oH/YPDgNKbm4wsIuGBO+H84WJJKhhd2dkA0v3tEZhjcPQox4MVN7P7fUEHAgM112DX++Qkx+PEFMqPxwSmIAQenkWHAvCicAUucAbCAfX2PQCCCEtDGKkz86RXEgL39BAwAKcAFbh/6/39GIL3yAj0NAAB+LQeDCZ9tvgAAAABJRU5ErkJggg==\",d=document.createElement(\"ul\"),e=document.createElement(\"li\"),f=String.fromCharCode(8212),g=createLink(\"#\",\"collapse code block\",f),g.onclick=function(){var b=sunlight.util.getComputedStyle(a.codeContainer,\"height\"),c=sunlight.util.getComputedStyle(a.codeContainer,\"overflowY\");return function(){var d=sunlight.util.getComputedStyle(a.codeContainer,\"height\")!==b;return this.replaceChild(document.createTextNode(d?f:\"+\"),this.firstChild),this.setAttribute(\"title\",(d?\"collapse\":\"expand\")+\" clode block\"),a.codeContainer.style.height=d?b:\"0px\",a.codeContainer.style.overflowY=d?c:\"hidden\",!1}}(),e.appendChild(g),h=document.createElement(\"li\"),i=createLink(\"#\",\"view raw code\",\"raw\"),i.onclick=function(){var b;return function(){var c;return b?(b.parentNode.removeChild(b),b=null,a.node.style.display=\"block\",this.replaceChild(document.createTextNode(\"raw\"),this.firstChild),this.setAttribute(\"title\",\"view raw code\")):(c=getTextRecursive(a.node),b=document.createElement(\"textarea\"),b.value=c,b.setAttribute(\"readonly\",\"readonly\"),b.style.width=parseInt(sunlight.util.getComputedStyle(a.node,\"width\"))-5+\"px\",b.style.height=sunlight.util.getComputedStyle(a.node,\"height\"),b.style.border=\"none\",b.style.overflowX=\"hidden\",b.setAttribute(\"wrap\",\"off\"),a.codeContainer.insertBefore(b,a.node),a.node.style.display=\"none\",this.replaceChild(document.createTextNode(\"highlighted\"),this.firstChild),this.setAttribute(\"title\",\"view highlighted code\"),b.select()),!1}}(),h.appendChild(i),j=document.createElement(\"li\"),k=createLink(\"http://sunlightjs.com/\",\"Sunlight: JavaScript syntax highlighter by Tommy Montgomery\"),l=document.createElement(\"img\"),l.setAttribute(\"src\",\"data:image/png;base64,\"+c),l.setAttribute(\"alt\",\"about\"),k.appendChild(l),j.appendChild(k),d.appendChild(j),d.appendChild(h),d.appendChild(e),b.appendChild(d),a.container.insertBefore(b,a.container.firstChild),this.options.autoCollapse&&g.onclick.call(g))}),sunlight.globalOptions.showMenu=!1,sunlight.globalOptions.autoCollapse=!1}(this.Sunlight,document),function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):a(jQuery)}(function(a){function b(b){return a.isFunction(b)||\"object\"==typeof b?b:{top:b,left:b}}var c=a.scrollTo=function(b,c,d){return a(window).scrollTo(b,c,d)};return c.defaults={axis:\"xy\",duration:parseFloat(a.fn.jquery)>=1.3?0:1,limit:!0},c.window=function(){return a(window)._scrollable()},a.fn._scrollable=function(){return this.map(function(){var b=this,c=!b.nodeName||-1!=a.inArray(b.nodeName.toLowerCase(),[\"iframe\",\"#document\",\"html\",\"body\"]);if(!c)return b;var d=(b.contentWindow||b).document||b.ownerDocument||b;return/webkit/i.test(navigator.userAgent)||\"BackCompat\"==d.compatMode?d.body:d.documentElement})},a.fn.scrollTo=function(d,e,f){return\"object\"==typeof e&&(f=e,e=0),\"function\"==typeof f&&(f={onAfter:f}),\"max\"==d&&(d=9e9),f=a.extend({},c.defaults,f),e=e||f.duration,f.queue=f.queue&&f.axis.length>1,f.queue&&(e/=2),f.offset=b(f.offset),f.over=b(f.over),this._scrollable().each(function(){function g(a){j.animate(l,e,f.easing,a&&function(){a.call(this,k,f)})}if(null!=d){var h,i=this,j=a(i),k=d,l={},m=j.is(\"html,body\");switch(typeof k){case\"number\":case\"string\":if(/^([+-]=?)?\\d+(\\.\\d+)?(px|%)?$/.test(k)){k=b(k);break}if(k=m?a(k):a(k,this),!k.length)return;case\"object\":(k.is||k.style)&&(h=(k=a(k)).offset())}var n=a.isFunction(f.offset)&&f.offset(i,k)||f.offset;a.each(f.axis.split(\"\"),function(a,b){var d=\"x\"==b?\"Left\":\"Top\",e=d.toLowerCase(),o=\"scroll\"+d,p=i[o],q=c.max(i,b);if(h)l[o]=h[e]+(m?0:p-j.offset()[e]),f.margin&&(l[o]-=parseInt(k.css(\"margin\"+d))||0,l[o]-=parseInt(k.css(\"border\"+d+\"Width\"))||0),l[o]+=n[e]||0,f.over[e]&&(l[o]+=k[\"x\"==b?\"width\":\"height\"]()*f.over[e]);else{var r=k[e];l[o]=r.slice&&\"%\"==r.slice(-1)?parseFloat(r)/100*q:r}f.limit&&/^\\d+$/.test(l[o])&&(l[o]=l[o]<=0?0:Math.min(l[o],q)),!a&&f.queue&&(p!=l[o]&&g(f.onAfterFirst),delete l[o])}),g(f.onAfter)}}).end()},c.max=function(b,c){var d=\"x\"==c?\"Width\":\"Height\",e=\"scroll\"+d;if(!a(b).is(\"html,body\"))return b[e]-a(b)[d.toLowerCase()]();var f=\"client\"+d,g=b.ownerDocument.documentElement,h=b.ownerDocument.body;return Math.max(g[e],h[e])-Math.min(g[f],h[f])},c}),function(a){function b(b,c,d){var e=c.hash.slice(1),f=document.getElementById(e)||document.getElementsByName(e)[0];if(f){b&&b.preventDefault();var g=a(d.target);if(!(d.lock&&g.is(\":animated\")||d.onBefore&&d.onBefore(b,f,g)===!1)){if(d.stop&&g._scrollable().stop(!0),d.hash){var h=d.offset;h=h&&h.top||h||0;var i=f.id==e?\"id\":\"name\",j=a(\"<a> </a>\").attr(i,e).css({position:\"absolute\",top:a(window).scrollTop()+h,left:a(window).scrollLeft()});f[i]=\"\",a(\"body\").prepend(j),location=c.hash,j.remove(),f[i]=e}g.scrollTo(f,d).trigger(\"notify.serialScroll\",[f])}}}var c=location.href.replace(/#.*/,\"\"),d=a.localScroll=function(b){a(\"body\").localScroll(b)};d.defaults={duration:1e3,axis:\"y\",event:\"click\",stop:!0,target:window},d.hash=function(c){if(location.hash){if(c=a.extend({},d.defaults,c),c.hash=!1,c.reset){var e=c.duration;delete c.duration,a(c.target).scrollTo(0,c),c.duration=e}b(0,location,c)}},a.fn.localScroll=function(e){function f(){return!(!this.href||!this.hash||this.href.replace(this.hash,\"\")!=c||e.filter&&!a(this).is(e.filter))}return e=a.extend({},d.defaults,e),e.lazy?this.bind(e.event,function(c){var d=a([c.target,c.target.parentNode]).filter(f)[0];d&&b(c,d,e)}):this.find(\"a,area\").filter(f).bind(e.event,function(a){b(a,this,e)}).end().end()}}(jQuery),!function(a){\"use strict\";function b(){a(\".dropdown-backdrop\").remove(),a(d).each(function(){c(a(this)).removeClass(\"open\")})}function c(b){var c,d=b.attr(\"data-target\");return d||(d=b.attr(\"href\"),d=d&&/#/.test(d)&&d.replace(/.*(?=#[^\\s]*$)/,\"\")),c=d&&a(d),c&&c.length||(c=b.parent()),c}var d=\"[data-toggle=dropdown]\",e=function(b){var c=a(b).on(\"click.dropdown.data-api\",this.toggle);a(\"html\").on(\"click.dropdown.data-api\",function(){c.parent().removeClass(\"open\")})};e.prototype={constructor:e,toggle:function(){var d,e,f=a(this);if(!f.is(\".disabled, :disabled\"))return d=c(f),e=d.hasClass(\"open\"),b(),e||(\"ontouchstart\"in document.documentElement&&a('<div class=\"dropdown-backdrop\"/>').insertBefore(a(this)).on(\"click\",b),d.toggleClass(\"open\")),f.focus(),!1},keydown:function(b){var e,f,g,h,i;if(/(38|40|27)/.test(b.keyCode)&&(e=a(this),b.preventDefault(),b.stopPropagation(),!e.is(\".disabled, :disabled\"))){if(g=c(e),h=g.hasClass(\"open\"),!h||h&&27==b.keyCode)return 27==b.which&&g.find(d).focus(),e.click();f=a(\"[role=menu] li:not(.divider):visible a\",g),f.length&&(i=f.index(f.filter(\":focus\")),38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<f.length-1&&i++,~i||(i=0),f.eq(i).focus())}}};var f=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data(\"dropdown\");d||c.data(\"dropdown\",d=new e(this)),\"string\"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=e,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=f,this},a(document).on(\"click.dropdown.data-api\",b).on(\"click.dropdown.data-api\",\".dropdown form\",function(a){a.stopPropagation()}).on(\"click.dropdown.data-api\",d,e.prototype.toggle).on(\"keydown.dropdown.data-api\",d+\", [role=menu]\",e.prototype.keydown)}(window.jQuery);"
  },
  {
    "path": "docs/scripts/toc.js",
    "content": "(function($) {\n$.fn.toc = function(options) {\n  var self = this;\n  var opts = $.extend({}, jQuery.fn.toc.defaults, options);\n\n  var container = $(opts.container);\n  var headings = $(opts.selectors, container);\n  var headingOffsets = [];\n  var activeClassName = opts.prefix+'-active';\n  var navbarHeight = $('.navbar').height();\n\n  var scrollTo = function(e) {\n    if (opts.smoothScrolling) {\n      e.preventDefault();\n      var elScrollTo = $(e.target).attr('href');\n      var $el = $(elScrollTo);\n      var offsetTop = $el.offset().top - navbarHeight;\n\n      $('body,html').animate({ scrollTop: offsetTop }, 400, 'swing', function() {\n        location.hash = elScrollTo;\n      });\n    }\n    $('li', self).removeClass(activeClassName);\n    $(e.target).parent().addClass(activeClassName);\n  };\n\n  //highlight on scroll\n  var timeout;\n  var highlightOnScroll = function(e) {\n    if (timeout) {\n      clearTimeout(timeout);\n    }\n    timeout = setTimeout(function() {\n      var top = $(window).scrollTop(),\n        highlighted;\n      for (var i = 0, c = headingOffsets.length; i < c; i++) {\n        if (headingOffsets[i] >= top) {\n          $('li', self).removeClass(activeClassName);\n          if (i > 0) {\n            highlighted = $('li:eq('+(i-1)+')', self).addClass(activeClassName);\n            opts.onHighlight(highlighted);\n          }\n          break;\n        }\n      }\n    }, 50);\n  };\n  if (opts.highlightOnScroll) {\n    $(window).bind('scroll', highlightOnScroll);\n    highlightOnScroll();\n  }\n\n  return this.each(function() {\n    //build TOC\n    var el = $(this);\n    var ul = $('<ul/>');\n    headings.each(function(i, heading) {\n      var $h = $(heading);\n      headingOffsets.push($h.offset().top - opts.highlightOffset);\n\n      //add anchor\n      var anchor = $('<span/>').attr('id', opts.anchorName(i, heading, opts.prefix)).insertBefore($h);\n\n      //build TOC item\n      var a = $('<a/>')\n        .text(opts.headerText(i, heading, $h))\n        .attr('href', '#' + opts.anchorName(i, heading, opts.prefix))\n        .bind('click', function(e) { \n          scrollTo(e);\n          el.trigger('selected', $(this).attr('href'));\n        });\n\n      var li = $('<li/>')\n        .addClass(opts.itemClass(i, heading, $h, opts.prefix))\n        .append(a);\n\n      ul.append(li);\n    });\n    el.html(ul);\n  });\n};\n\n\njQuery.fn.toc.defaults = {\n  container: 'body',\n  selectors: 'h1,h2,h3',\n  smoothScrolling: true,\n  prefix: 'toc',\n  onHighlight: function() {},\n  highlightOnScroll: true,\n  highlightOffset: 100,\n  anchorName: function(i, heading, prefix) {\n    return prefix+i;\n  },\n  headerText: function(i, heading, $heading) {\n    return $heading.text();\n  },\n  itemClass: function(i, heading, $heading, prefix) {\n    return prefix + '-' + $heading[0].tagName.toLowerCase();\n  }\n\n};\n\n})(jQuery);\n"
  },
  {
    "path": "docs/styles/sunlight.default.css",
    "content": "/* global styles */\n.sunlight-container {\n\tclear: both !important;\n\tposition: relative !important;\n\tmargin: 10px 0 !important;\n}\n.sunlight-code-container {\n\tclear: both !important;\n\tposition: relative !important;\n\tborder: none;\n\tborder-color: #969696 !important;\n\tbackground-color: #FFFFFF !important;\n}\n.sunlight-highlighted, .sunlight-container, .sunlight-container textarea {\n\tfont-family: Consolas, Inconsolata, Monaco, \"Courier New\" !important;\n\tfont-size: 12px !important;\n\tline-height: 15px !important;\n}\n.sunlight-highlighted, .sunlight-container textarea {\n\tcolor: #000000 !important;\n\tmargin: 0 !important;\n}\n.sunlight-container textarea {\n\tpadding-left: 0 !important;\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\tpadding-right: 0 !important;\n}\n.sunlight-code-container > .sunlight-highlighted {\n\twhite-space: pre;\n\toverflow-x: auto;\n\toverflow-y: hidden; /* ie requires this wtf? */\n}\n.sunlight-highlighted {\n\tz-index: 1;\n\tposition: relative;\n}\n.sunlight-highlighted * {\n\tbackground: transparent;\n}\n.sunlight-line-number-margin {\n\tfloat: left !important;\n\tmargin-right: 5px !important;\n\tmargin-top: 0 !important;\n\tmargin-bottom: 0 !important;\n\tpadding: 0 !important;\n\tpadding-right: 4px !important;\n\tpadding-left: 4px !important;\n\tborder-right: 1px solid #CCCCCC !important;\n\tbackground-color: #EEEEEE !important;\n\tcolor: #848484 !important;\n\ttext-align: right !important;\n\tposition: relative;\n\tz-index: 3;\n}\n.sunlight-highlighted a, .sunlight-line-number-margin a  {\n\tborder: none !important;\n\ttext-decoration: none !important;\n\tfont-weight: normal !important;\n\tfont-style: normal !important;\n\tpadding: 0 !important;\n}\n.sunlight-line-number-margin a {\n\tcolor: inherit !important;\n}\n.sunlight-line-highlight-overlay {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\tz-index: 0;\n}\n.sunlight-line-highlight-overlay div {\n\theight: 15px;\n\twidth: 100%;\n}\n.sunlight-line-highlight-overlay .sunlight-line-highlight-active {\n\tbackground-color: #E7FCFA;\n}\n\n/* menu */\n.sunlight-menu {\n\tbackground-color: #FFFFCC;\n\tcolor: #000000;\n}\n.sunlight-menu ul {\n\tmargin: 0 !important;\n\tpadding: 0 !important;\n\tlist-style-type: none !important;\n}\n.sunlight-menu li {\n\tfloat: right !important;\n\tmargin-left: 5px !important;\n}\n.sunlight-menu a, .sunlight-menu img {\n\tcolor: #000099 !important;\n\ttext-decoration: none !important;\n\tborder: none !important;\n}\n\n\n\n\n.sunlight-string,\n.sunlight-char,\n.sunlight-heredoc,\n.sunlight-heredocDeclaration,\n.sunlight-nowdoc,\n.sunlight-longString,\n.sunlight-rawString,\n.sunlight-binaryString,\n.sunlight-rawLongString,\n.sunlight-binaryLongString,\n.sunlight-verbatimString,\n.sunlight-diff .sunlight-removed {\n\tcolor: #990000 !important;\n}\n\n.sunlight-ident,\n.sunlight-operator,\n.sunlight-punctuation,\n.sunlight-delimiter,\n.sunlight-diff .sunlight-unchanged {\n\tcolor: #000000 !important;\n}\n\n.sunlight-comment,\n.sunlight-xmlDocCommentContent,\n.sunlight-nginx .sunlight-ssiCommand,\n.sunlight-sln .sunlight-formatDeclaration,\n.sunlight-diff .sunlight-added {\n\tcolor: #009900 !important;\n}\n.sunlight-number,\n.sunlight-guid,\n.sunlight-cdata {\n\tcolor: #CC6600 !important;\n}\n\n.sunlight-named-ident,\n.sunlight-constant,\n.sunlight-javascript .sunlight-globalVariable,\n.sunlight-globalObject,\n.sunlight-python .sunlight-attribute,\n.sunlight-nginx .sunlight-context,\n.sunlight-httpd .sunlight-context,\n.sunlight-haskell .sunlight-class,\n.sunlight-haskell .sunlight-type,\n.sunlight-lisp .sunlight-declarationSpecifier,\n.sunlight-erlang .sunlight-userDefinedFunction,\n.sunlight-diff .sunlight-header {\n\tcolor: #2B91AF !important;\n}\n.sunlight-keyword,\n.sunlight-languageConstruct,\n.sunlight-css\n.sunlight-element,\n.sunlight-bash .sunlight-command,\n.sunlight-specialOperator,\n.sunlight-erlang .sunlight-moduleAttribute,\n.sunlight-xml .sunlight-tagName,\n.sunlight-xml .sunlight-operator,\n.sunlight-diff .sunlight-modified {\n\tcolor: #0000FF !important;\n}\n.sunlight-shortOpenTag,\n.sunlight-openTag,\n.sunlight-closeTag,\n.sunlight-xmlOpenTag,\n.sunlight-xmlCloseTag,\n.sunlight-aspOpenTag,\n.sunlight-aspCloseTag,\n.sunlight-label,\n.sunlight-css .sunlight-importantFlag {\n\tbackground-color: #FFFF99 !important;\n\tcolor: #000000 !important;\n}\n.sunlight-function,\n.sunlight-globalFunction,\n.sunlight-ruby .sunlight-specialFunction,\n.sunlight-objective-c .sunlight-messageDestination,\n.sunlight-6502asm .sunlight-illegalOpcode,\n.sunlight-powershell .sunlight-switch,\n.sunlight-lisp .sunlight-macro,\n.sunlight-lisp .sunlight-specialForm,\n.sunlight-lisp .sunlight-type,\n.sunlight-sln .sunlight-sectionName,\n.sunlight-diff .sunlight-rangeInfo {\n\tcolor: #B069AF !important;\n}\n\n.sunlight-variable,\n.sunlight-specialVariable,\n.sunlight-environmentVariable,\n.sunlight-objective-c .sunlight-messageArgumentName,\n.sunlight-lisp .sunlight-globalVariable,\n.sunlight-ruby .sunlight-globalVariable,\n.sunlight-ruby .sunlight-instanceVariable,\n.sunlight-sln .sunlight-operator {\n\tcolor: #325484 !important;\n}\n.sunlight-regexLiteral,\n.sunlight-lisp .sunlight-operator,\n.sunlight-6502asm .sunlight-pseudoOp,\n.sunlight-erlang .sunlight-macro {\n\tcolor: #FF00B2 !important;\n}\n.sunlight-specialVariable {\n\tfont-style: italic !important;\n\tfont-weight: bold !important;\n}\n.sunlight-csharp .sunlight-pragma,\n.sunlight-preprocessorDirective,\n.sunlight-vb .sunlight-compilerDirective,\n.sunlight-diff .sunlight-mergeHeader,\n.sunlight-diff .sunlight-noNewLine {\n\tcolor: #999999 !important;\n\tfont-style: italic !important;\n}\n.sunlight-xmlDocCommentMeta,\n.sunlight-java .sunlight-annotation,\n.sunlight-scala .sunlight-annotation,\n.sunlight-docComment {\n\tcolor: #808080 !important;\n}\n.sunlight-quotedIdent,\n.sunlight-ruby .sunlight-subshellCommand,\n.sunlight-lisp .sunlight-keywordArgument,\n.sunlight-haskell .sunlight-infixOperator,\n.sunlight-erlang .sunlight-quotedAtom {\n\tcolor: #999900 !important;\n}\n\n\n\n/* xml */\n.sunlight-xml .sunlight-string {\n\tcolor: #990099 !important;\n}\n.sunlight-xml .sunlight-attribute {\n\tcolor: #FF0000 !important;\n}\n.sunlight-xml .sunlight-entity {\n\tbackground-color: #EEEEEE !important;\n\tcolor: #000000 !important;\n\tborder: 1px solid #000000 !important;\n}\n.sunlight-xml .sunlight-doctype {\n\tcolor: #2B91AF !important;\n}\n\n/* javascript */\n.sunlight-javascript .sunlight-reservedWord {\n\tfont-style: italic !important;\n}\n\n/* css */\n.sunlight-css .sunlight-microsoftFilterPrefix {\n\tcolor: #FF00FF !important;\n}\n.sunlight-css .sunlight-rule {\n\tcolor: #0099FF !important;\n}\n.sunlight-css .sunlight-keyword {\n\tcolor: #4E65B8 !important;\n}\n.sunlight-css .sunlight-class {\n\tcolor: #FF0000 !important;\n}\n.sunlight-css .sunlight-id {\n\tcolor: #8A8E13 !important;\n}\n.sunlight-css .sunlight-pseudoClass,\n.sunlight-css .sunlight-pseudoElement {\n\tcolor: #368B87 !important;\n}\n\n/* bash */\n.sunlight-bash .sunlight-hashBang {\n\tcolor: #3D97F5 !important;\n}\n.sunlight-bash .sunlight-verbatimCommand {\n\tcolor: #999900 !important;\n}\n.sunlight-bash .sunlight-variable,\n.sunlight-bash .sunlight-specialVariable {\n\tcolor: #FF0000 !important;\n}\n\n/* python */\n.sunlight-python .sunlight-specialMethod {\n\tfont-weight: bold !important;\n\tcolor: #A07DD3;\n}\n\n/* ruby */\n.sunlight-ruby .sunlight-symbol {\n\tfont-weight: bold !important;\n\tcolor: #ED7272 !important;\n}\n\n/* brainfuck */\n.sunlight-brainfuck {\n\tfont-weight: bold !important;\n\tcolor: #000000 !important;\n}\n.sunlight-brainfuck .sunlight-increment {\n\tbackground-color: #FF9900 !important;\n}\n.sunlight-brainfuck .sunlight-decrement {\n\tbackground-color: #FF99FF !important;\n}\n.sunlight-brainfuck .sunlight-incrementPointer {\n\tbackground-color: #FFFF99 !important;\n}\n.sunlight-brainfuck .sunlight-decrementPointer {\n\tbackground-color: #66CCFF !important;\n}\n.sunlight-brainfuck .sunlight-read {\n\tbackground-color: #FFFFFF !important;\n}\n.sunlight-brainfuck .sunlight-write {\n\tbackground-color: #99FF99 !important;\n}\n.sunlight-brainfuck .sunlight-openLoop, .sunlight-brainfuck .sunlight-closeLoop {\n\tbackground-color: #FFFFFF !important;\n}\n\n/* 6502 asm */\n.sunlight-6502asm .sunlight-label {\n\tfont-weight: bold !important;\n\tcolor: #000000 !important;\n\tbackground: none !important;\n}\n\n/* lisp */\n.sunlight-lisp .sunlight-macro {\n\tfont-style: italic !important;\n}\n\n/* erlang */\n.sunlight-erlang .sunlight-atom {\n\tfont-weight: bold !important;\n}"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"cardinal-spline-js\",\n  \"version\": \"3.0.0\",\n  \"description\": \"Smooth curve through points with tension and resolution options.\",\n  \"main\": \"curve_calc.min.js\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/epistemex/cardinal-spline-js.git\"\n  },\n  \"keywords\": [\n    \"cardinal\",\n    \"spline\",\n    \"catmull\",\n    \"rom\"\n  ],\n  \"author\": \"epistemex <70324091+epistemex@users.noreply.github.com>\",\n  \"license\": \"MIT\",\n  \"files\": [\n    \"src/\",\n    \"demos/\",\n    \"docs/\",\n    \"package.json\",\n    \"README.md\",\n    \"curve.min.js\",\n    \"curve_calc.min.js\",\n    \"curve_func.min.js\",\n    \"MIT-LICENSE.md\",\n    \"CHANGE.log\"\n  ],\n  \"bugs\": {\n    \"url\": \"https://github.com/epistemex/cardinal-spline-js/issues\"\n  },\n  \"homepage\": \"https://github.com/epistemex/cardinal-spline-js#readme\"\n}\n"
  },
  {
    "path": "src/curve.js",
    "content": "/*!\tCurve patch for canvas 2D drawing context 3.0.1\n *\t(c) Epistemex 2013-2018, 2024\n *\tLicense: MIT\n */\n\n'use strict';\n\n/**\n * Draws a cardinal spline through given point array. Points must be arranged\n * as: [x1, y1, x2, y2, ..., xn, yn]. It adds the points to the current path.\n *\n * There must be a minimum of two points in the input array but the function\n * is only useful where there are three points or more.\n *\n * This method continues previous path of the context. If you don't want that\n * then you need to use moveTo() with the first point from the input array or\n * call on a cleared path.\n *\n * The points for the cardinal spline are returned as a new array.\n *\n * @param {Array} points - point array\n * @param {Number} [tension=0.5] - tension. Typically between [0.0, 1.0] but can be exceeded\n * @param {Number} [numOfSeg=25] - number of segments between two points (line resolution)\n * @param {Boolean} [close=false] - Close the ends making the line continuous\n * @returns {Float32Array} New array with the calculated points that was added to the path\n */\nCanvasRenderingContext2D.prototype.curve = CanvasRenderingContext2D.prototype.curve || function(points, tension, numOfSeg, close) {\n\n\tif (typeof points === \"undefined\" || points.length < 2) {\n\t\treturn new Float32Array(0);\n\t}\n\n\t// options or defaults\n\ttension = typeof tension === \"number\" ? tension : 0.5;\n\tnumOfSeg = (typeof numOfSeg === \"number\" ? numOfSeg : 25) | 0;\n\n\tif (numOfSeg < 1) {\n\t\tthrow new Error('Number of segments cannot be less than one.');\n\t}\n\n\tlet ptsClone;                                                       // for cloning point array\n\tlet i = 1;\n\tlet l = points.length;\n\tlet resPos = 0;\n\tlet cachePtr = 4;\n\n\tconst resLength = (l - 2) * numOfSeg + 2 + (closed ? 2 * numOfSeg : 0);\n\tconst result = new Float32Array(resLength);\n\tconst cache = new Float32Array((numOfSeg + 2) << 2);\n\n\tptsClone = points.slice(0);\n\n\tif (closed) {\n\t\tptsClone.unshift(points[l - 1]);                                // insert end point as first point\n\t\tptsClone.unshift(points[l - 2]);\n\t\tptsClone.push(points[0], points[1]);                            // first point as last point\n\t}\n\telse {\n\t\tptsClone.unshift(points[1]);                                    // copy 1. point and insert at beginning\n\t\tptsClone.unshift(points[0]);\n\t\tptsClone.push(points[l - 2], points[l - 1]);                    // duplicate end-points\n\t}\n\n\t// cache inner-loop calculations as they are based on t alone\n\tcache[0] = 1;                                                       // 1,0,0,0\n\n\tfor(; i < numOfSeg; i++) {\n\t\tconst st = i / numOfSeg;\n\t\tconst st2 = st * st;\n\t\tconst st3 = st2 * st;\n\t\tconst st23 = st3 * 2;\n\t\tconst st32 = st2 * 3;\n\n\t\tcache[cachePtr++] = st23 - st32 + 1;                            // c1\n\t\tcache[cachePtr++] = st32 - st23;                                // c2\n\t\tcache[cachePtr++] = st3 - 2 * st2 + st;                         // c3\n\t\tcache[cachePtr++] = st3 - st2;                                  // c4\n\t}\n\n\tcache[++cachePtr] = 1;                                              // 0,1,0,0\n\n\t// calc. points\n\n\tfill(ptsClone, cache, l, tension);\n\n\tif (closed) {\n\t\t//l = points.length;\n\t\tptsClone = [];\n\t\tptsClone.push(points[l - 4], points[l - 3],\n\t\t\tpoints[l - 2], points[l - 1],                               // second last and last\n\t\t\tpoints[0], points[1],\n\t\t\tpoints[2], points[3]);                                      // first and second\n\t\tfill(ptsClone, cache, 4, tension);\n\t}\n\n\tfunction fill(pts, cache, l, tension) {\n\t\tfor(let i = 2; i < l; i += 2) {\n\t\t\tconst pt1 = pts[i];                                         // x1\n\t\t\tconst pt2 = pts[i + 1];                                     // y1\n\t\t\tconst pt3 = pts[i + 2];                                     // x2\n\t\t\tconst pt4 = pts[i + 3];                                     // y2\n\n\t\t\tconst t1x = (pt3 - pts[i - 2]) * tension;                   // x2-x0\n\t\t\tconst t1y = (pt4 - pts[i - 1]) * tension;                   // y2-y0\n\t\t\tconst t2x = (pts[i + 4] - pt1) * tension;                   // x3-x1\n\t\t\tconst t2y = (pts[i + 5] - pt2) * tension;                   // y3-y1\n\t\t\tlet c = 0, c1, c2, c3, c4;\n\n\t\t\tfor(let t = 0; t < numOfSeg; t++) {\n\t\t\t\tc1 = cache[c++];\n\t\t\t\tc2 = cache[c++];\n\t\t\t\tc3 = cache[c++];\n\t\t\t\tc4 = cache[c++];\n\n\t\t\t\tresult[resPos++] = c1 * pt1 + c2 * pt3 + c3 * t1x + c4 * t2x;\n\t\t\t\tresult[resPos++] = c1 * pt2 + c2 * pt4 + c3 * t1y + c4 * t2y;\n\t\t\t}\n\t\t}\n\t}\n\n\t// append last point\n\tl = closed ? 0 : points.length - 2;\n\tresult[resPos++] = points[l++];\n\tresult[resPos] = points[l];\n\n\t// add lines to path\n\tfor(i = 0, l = result.length; i < l; i += 2)\n\t\tthis.lineTo(result[i], result[i+1]);\n\n\treturn result\n};\n"
  },
  {
    "path": "src/curve_calc.js",
    "content": "/*!\tCurve calc function for canvas 3.0.1\n *\t(c) Epistemex 2013-2018, 2024\n *\tLicense: MIT\n */\n\n'use strict';\n\n/**\n * Calculates an array containing points representing a cardinal spline through given point array.\n * Points must be arranged as: [x1, y1, x2, y2, ..., xn, yn].\n *\n * There must be a minimum of two points in the input array but the function\n * is only useful where there are three points or more.\n *\n * The points for the cardinal spline are returned as a new array.\n *\n * @param {Array} points - point array\n * @param {Number} [tension=0.5] - tension. Typically between [0.0, 1.0] but can be exceeded\n * @param {Number} [numOfSeg=25] - number of segments between two points (line resolution)\n * @param {Boolean} [closed=false] - Close the ends making the line continuous\n * @returns {Float32Array} New array with the calculated points that was added to the path\n */\nfunction getCurvePoints(points, tension, numOfSeg, closed) {\n\n\tif (typeof points === \"undefined\" || points.length < 2) {\n\t\treturn new Float32Array(0);\n\t}\n\n\t// options or defaults\n\ttension = typeof tension === \"number\" ? tension : 0.5;\n\tnumOfSeg = (typeof numOfSeg === \"number\" ? numOfSeg : 25) | 0;\n\n\tif (numOfSeg < 1) {\n\t\tthrow new Error('Number of segments cannot be less than one.');\n\t}\n\n\tlet ptsClone;                                                       // for cloning point array\n\tlet i = 1;\n\tlet l = points.length;\n\tlet resPos = 0;\n\tlet cachePtr = 4;\n\n\tconst resLength = (l - 2) * numOfSeg + 2 + (closed ? 2 * numOfSeg : 0);\n\tconst result = new Float32Array(resLength);\n\tconst cache = new Float32Array((numOfSeg + 2) << 2);\n\n\tptsClone = points.slice(0);\n\n\tif (closed) {\n\t\tptsClone.unshift(points[l - 1]);                                // insert end point as first point\n\t\tptsClone.unshift(points[l - 2]);\n\t\tptsClone.push(points[0], points[1]);                            // first point as last point\n\t}\n\telse {\n\t\tptsClone.unshift(points[1]);                                    // copy 1. point and insert at beginning\n\t\tptsClone.unshift(points[0]);\n\t\tptsClone.push(points[l - 2], points[l - 1]);                    // duplicate end-points\n\t}\n\n\t// cache inner-loop calculations as they are based on t alone\n\tcache[0] = 1;                                                       // 1,0,0,0\n\n\tfor(; i < numOfSeg; i++) {\n\t\tconst st = i / numOfSeg;\n\t\tconst st2 = st * st;\n\t\tconst st3 = st2 * st;\n\t\tconst st23 = st3 * 2;\n\t\tconst st32 = st2 * 3;\n\n\t\tcache[cachePtr++] = st23 - st32 + 1;                            // c1\n\t\tcache[cachePtr++] = st32 - st23;                                // c2\n\t\tcache[cachePtr++] = st3 - 2 * st2 + st;                         // c3\n\t\tcache[cachePtr++] = st3 - st2;                                  // c4\n\t}\n\n\tcache[++cachePtr] = 1;                                              // 0,1,0,0\n\n\t// calc. points\n\n\tfill(ptsClone, cache, l, tension);\n\n\tif (closed) {\n\t\t//l = points.length;\n\t\tptsClone = [];\n\t\tptsClone.push(points[l - 4], points[l - 3],\n\t\t\tpoints[l - 2], points[l - 1],                               // second last and last\n\t\t\tpoints[0], points[1],\n\t\t\tpoints[2], points[3]);                                      // first and second\n\t\tfill(ptsClone, cache, 4, tension);\n\t}\n\n\tfunction fill(pts, cache, l, tension) {\n\t\tfor(let i = 2; i < l; i += 2) {\n\t\t\tconst pt1 = pts[i];                                         // x1\n\t\t\tconst pt2 = pts[i + 1];                                     // y1\n\t\t\tconst pt3 = pts[i + 2];                                     // x2\n\t\t\tconst pt4 = pts[i + 3];                                     // y2\n\n\t\t\tconst t1x = (pt3 - pts[i - 2]) * tension;                   // x2-x0\n\t\t\tconst t1y = (pt4 - pts[i - 1]) * tension;                   // y2-y0\n\t\t\tconst t2x = (pts[i + 4] - pt1) * tension;                   // x3-x1\n\t\t\tconst t2y = (pts[i + 5] - pt2) * tension;                   // y3-y1\n\t\t\tlet c = 0, c1, c2, c3, c4;\n\n\t\t\tfor(let t = 0; t < numOfSeg; t++) {\n\t\t\t\tc1 = cache[c++];\n\t\t\t\tc2 = cache[c++];\n\t\t\t\tc3 = cache[c++];\n\t\t\t\tc4 = cache[c++];\n\n\t\t\t\tresult[resPos++] = c1 * pt1 + c2 * pt3 + c3 * t1x + c4 * t2x;\n\t\t\t\tresult[resPos++] = c1 * pt2 + c2 * pt4 + c3 * t1y + c4 * t2y;\n\t\t\t}\n\t\t}\n\t}\n\n\t// append last point\n\tl = closed ? 0 : points.length - 2;\n\tresult[resPos++] = points[l++];\n\tresult[resPos] = points[l];\n\n\treturn result\n}\n\n// node support\nif (typeof exports !== \"undefined\") {\n\tmodule.exports.getCurvePoints = getCurvePoints;\n}\n"
  },
  {
    "path": "src/curve_draw.js",
    "content": "/*!\tCurve function for canvas 3.0.1\n *\t(c) Epistemex 2013-2018, 2024\n *\tLicense: MIT\n */\n\n'use strict';\n\n/**\n * Draws a cardinal spline through given point array. Points must be arranged\n * as: [x1, y1, x2, y2, ..., xn, yn]. It adds the points to the current path.\n *\n * There must be a minimum of two points in the input array but the function\n * is only useful where there are three points or more.\n *\n * The method continues previous path of the context. If you don't want that\n * then you need to use moveTo() with the first point from the input array.\n *\n * The points for the cardinal spline are returned as a new array.\n *\n * @param {CanvasRenderingContext2D} ctx - context to use\n * @param {Array} points - point array\n * @param {Number} [tension=0.5] - tension. Typically between [0.0, 1.0] but can be exceeded\n * @param {Number} [numOfSeg=25] - number of segments between two points (line resolution)\n * @param {Boolean} [close=false] - Close the ends making the line continuous\n * @returns {Float32Array} New array with the calculated points that was added to the path\n */\nfunction curve(ctx, points, tension, numOfSeg, close) {\n\n\tif (typeof points === \"undefined\" || points.length < 2) {\n\t\treturn new Float32Array(0);\n\t}\n\n\t// options or defaults\n\ttension = typeof tension === \"number\" ? tension : 0.5;\n\tnumOfSeg = (typeof numOfSeg === \"number\" ? numOfSeg : 25) | 0;\n\n\tif (numOfSeg < 1) {\n\t\tthrow new Error('Number of segments cannot be less than one.');\n\t}\n\n\tlet ptsClone;                                                       // for cloning point array\n\tlet i = 1;\n\tlet l = points.length;\n\tlet resPos = 0;\n\tlet cachePtr = 4;\n\n\tconst resLength = (l - 2) * numOfSeg + 2 + (closed ? 2 * numOfSeg : 0);\n\tconst result = new Float32Array(resLength);\n\tconst cache = new Float32Array((numOfSeg + 2) << 2);\n\n\tptsClone = points.slice(0);\n\n\tif (closed) {\n\t\tptsClone.unshift(points[l - 1]);                                // insert end point as first point\n\t\tptsClone.unshift(points[l - 2]);\n\t\tptsClone.push(points[0], points[1]);                            // first point as last point\n\t}\n\telse {\n\t\tptsClone.unshift(points[1]);                                    // copy 1. point and insert at beginning\n\t\tptsClone.unshift(points[0]);\n\t\tptsClone.push(points[l - 2], points[l - 1]);                    // duplicate end-points\n\t}\n\n\t// cache inner-loop calculations as they are based on t alone\n\tcache[0] = 1;                                                       // 1,0,0,0\n\n\tfor(; i < numOfSeg; i++) {\n\t\tconst st = i / numOfSeg;\n\t\tconst st2 = st * st;\n\t\tconst st3 = st2 * st;\n\t\tconst st23 = st3 * 2;\n\t\tconst st32 = st2 * 3;\n\n\t\tcache[cachePtr++] = st23 - st32 + 1;                            // c1\n\t\tcache[cachePtr++] = st32 - st23;                                // c2\n\t\tcache[cachePtr++] = st3 - 2 * st2 + st;                         // c3\n\t\tcache[cachePtr++] = st3 - st2;                                  // c4\n\t}\n\n\tcache[++cachePtr] = 1;                                              // 0,1,0,0\n\n\t// calc. points\n\n\tfill(ptsClone, cache, l, tension);\n\n\tif (closed) {\n\t\t//l = points.length;\n\t\tptsClone = [];\n\t\tptsClone.push(points[l - 4], points[l - 3],\n\t\t\tpoints[l - 2], points[l - 1],                               // second last and last\n\t\t\tpoints[0], points[1],\n\t\t\tpoints[2], points[3]);                                      // first and second\n\t\tfill(ptsClone, cache, 4, tension);\n\t}\n\n\tfunction fill(pts, cache, l, tension) {\n\t\tfor(let i = 2; i < l; i += 2) {\n\t\t\tconst pt1 = pts[i];                                         // x1\n\t\t\tconst pt2 = pts[i + 1];                                     // y1\n\t\t\tconst pt3 = pts[i + 2];                                     // x2\n\t\t\tconst pt4 = pts[i + 3];                                     // y2\n\n\t\t\tconst t1x = (pt3 - pts[i - 2]) * tension;                   // x2-x0\n\t\t\tconst t1y = (pt4 - pts[i - 1]) * tension;                   // y2-y0\n\t\t\tconst t2x = (pts[i + 4] - pt1) * tension;                   // x3-x1\n\t\t\tconst t2y = (pts[i + 5] - pt2) * tension;                   // y3-y1\n\t\t\tlet c = 0, c1, c2, c3, c4;\n\n\t\t\tfor(let t = 0; t < numOfSeg; t++) {\n\t\t\t\tc1 = cache[c++];\n\t\t\t\tc2 = cache[c++];\n\t\t\t\tc3 = cache[c++];\n\t\t\t\tc4 = cache[c++];\n\n\t\t\t\tresult[resPos++] = c1 * pt1 + c2 * pt3 + c3 * t1x + c4 * t2x;\n\t\t\t\tresult[resPos++] = c1 * pt2 + c2 * pt4 + c3 * t1y + c4 * t2y;\n\t\t\t}\n\t\t}\n\t}\n\n\t// append last point\n\tl = closed ? 0 : points.length - 2;\n\tresult[resPos++] = points[l++];\n\tresult[resPos] = points[l];\n\n\t// add lines to path\n\tfor(i = 0, l = result.length; i < l; i += 2)\n\t\tctx.lineTo(result[i], result[i+1]);\n\n\treturn result\n}\n\nif (typeof exports !== \"undefined\") exports.curve = curve;\n"
  }
]