From 1942913370daf716b3096b98baebb4fe205b6f47 Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Tue, 30 Dec 2014 17:25:38 +0100 Subject: [PATCH 01/12] Merged plugins submodule to main repo --- src/plugins | 1 - src/plugins/README.md | 12 + src/plugins/src/blur.coffee | 69 ++++++ src/plugins/src/camera.coffee | 146 ++++++++++++ src/plugins/src/compoundBlur.coffee | 348 ++++++++++++++++++++++++++++ src/plugins/src/edges.coffee | 20 ++ src/plugins/src/posterize.coffee | 9 + src/plugins/src/presets.coffee | 256 ++++++++++++++++++++ src/plugins/src/rotate.coffee | 46 ++++ src/plugins/src/stackBlur.coffee | 238 +++++++++++++++++++ src/plugins/src/threshold.coffee | 14 ++ 11 files changed, 1158 insertions(+), 1 deletion(-) delete mode 160000 src/plugins create mode 100644 src/plugins/README.md create mode 100644 src/plugins/src/blur.coffee create mode 100644 src/plugins/src/camera.coffee create mode 100644 src/plugins/src/compoundBlur.coffee create mode 100644 src/plugins/src/edges.coffee create mode 100644 src/plugins/src/posterize.coffee create mode 100644 src/plugins/src/presets.coffee create mode 100644 src/plugins/src/rotate.coffee create mode 100644 src/plugins/src/stackBlur.coffee create mode 100644 src/plugins/src/threshold.coffee diff --git a/src/plugins b/src/plugins deleted file mode 160000 index 60696a50..00000000 --- a/src/plugins +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 60696a50de8987e0fed6e3dde52ef93d0c124fee diff --git a/src/plugins/README.md b/src/plugins/README.md new file mode 100644 index 00000000..698a0956 --- /dev/null +++ b/src/plugins/README.md @@ -0,0 +1,12 @@ +# CamanJS Plugins + +[CamanJS](https://github.com/meltingice/CamanJS) is an image manipulation library written in Javascript. This repository contains all plugins and features that are not a part of the core library. + +## Contributing + +Anyone is encouraged to contribute bug fixes or new features. The proper way to add a new feature is: + +1. Fork this repository. +2. Create a new branch for the feature/plugin you're adding. +3. Commit your changes. +4. Send a pull request! diff --git a/src/plugins/src/blur.coffee b/src/plugins/src/blur.coffee new file mode 100644 index 00000000..6aca5e0a --- /dev/null +++ b/src/plugins/src/blur.coffee @@ -0,0 +1,69 @@ +Caman.Filter.register "boxBlur", -> + @processKernel "Box Blur", [ + 1, 1, 1, + 1, 1, 1, + 1, 1, 1 + ] + +Caman.Filter.register "heavyRadialBlur", -> + @processKernel "Heavy Radial Blur", [ + 0, 0, 1, 0, 0, + 0, 1, 1, 1, 0, + 1, 1, 1, 1, 1, + 0, 1, 1, 1, 0, + 0, 0, 1, 0, 0 + ] + +Caman.Filter.register "gaussianBlur", -> + @processKernel "Gaussian Blur", [ + 1, 4, 6, 4, 1, + 4, 16, 24, 16, 4, + 6, 24, 36, 24, 6, + 4, 16, 24, 16, 4, + 1, 4, 6, 4, 1 + ] + +Caman.Filter.register "motionBlur", (degrees) -> + if degrees in [0, 180] + kernel = [ + 0, 0, 1, 0, 0, + 0, 0, 1, 0, 0, + 0, 0, 1, 0, 0, + 0, 0, 1, 0, 0, + 0, 0, 1, 0, 0 + ] + else if (degrees > 0 && degrees < 90) || (degrees > 180 && degrees < 270) + kernel = [ + 0, 0, 0, 0, 1, + 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, + 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0 + ] + else if degrees in [90, 270] + kernel = [ + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 + ] + else + kernel = [ + 1, 0, 0, 0, 0, + 0, 1, 0, 0, 0, + 0, 0, 1, 0, 0, + 0, 0, 0, 1, 0, + 0, 0, 0, 0, 1 + ] + + @processKernel "Motion Blur", kernel + +Caman.Filter.register "sharpen", (amt = 100) -> + amt /= 100 + + @processKernel "Sharpen", [ + 0, -amt, 0, + -amt, 4 * amt + 1, -amt, + 0, -amt, 0 + ] diff --git a/src/plugins/src/camera.coffee b/src/plugins/src/camera.coffee new file mode 100644 index 00000000..925d5df1 --- /dev/null +++ b/src/plugins/src/camera.coffee @@ -0,0 +1,146 @@ +vignetteFilters = + brightness: (rgba, amt, opts) -> + rgba.r = rgba.r - (rgba.r * amt * opts.strength) + rgba.g = rgba.g - (rgba.g * amt * opts.strength) + rgba.b = rgba.b - (rgba.b * amt * opts.strength) + rgba + + gamma: (rgba, amt, opts) -> + rgba.r = Math.pow(rgba.r / 255, Math.max(10 * amt * opts.strength, 1)) * 255 + rgba.g = Math.pow(rgba.g / 255, Math.max(10 * amt * opts.strength, 1)) * 255 + rgba.b = Math.pow(rgba.b / 255, Math.max(10 * amt * opts.strength, 1)) * 255 + rgba + + colorize: (rgba, amt, opts) -> + rgba.r -= (rgba.r - opts.color.r) * amt; + rgba.g -= (rgba.g - opts.color.g) * amt; + rgba.b -= (rgba.b - opts.color.b) * amt; + rgba + +Filter.register "vignette", (size, strength = 60) -> + if typeof size is "string" and size.substr(-1) is "%" + if @dimensions.height > @dimensions.width + size = @dimensions.width * (parseInt(size.substr(0, size.length - 1), 10) / 100) + else + size = @dimensions.height * (parseInt(size.substr(0, size.length - 1), 10) / 100) + + strength /= 100 + center = [@dimensions.width / 2, @dimensions.height / 2] + start = Math.sqrt Math.pow(center[0], 2) + Math.pow(center[1], 2) + end = start - size + bezier = Calculate.bezier [0, 1], [30, 30], [70, 60], [100, 80] + + @process "vignette", (rgba) -> + loc = rgba.locationXY() + dist = Calculate.distance loc.x, loc.y, center[0], center[1] + + if dist > end + div = Math.max 1, ((bezier[Math.round(((dist - end) / size) * 100)]/10) * strength) + + rgba.r = Math.pow(rgba.r / 255, div) * 255 + rgba.g = Math.pow(rgba.g / 255, div) * 255 + rgba.b = Math.pow(rgba.b / 255, div) * 255 + + rgba + +Filter.register "rectangularVignette", (opts) -> + defaults = + strength: 50 + cornerRadius: 0 + method: 'brightness' + color: + r: 0 + g: 0 + b: 0 + + opts = Util.extend defaults, opts + + if not opts.size + return @ + else if typeof opts.size is "string" + percent = parseInt(opts.size, 10) / 100 + opts.size = + width: @dimensions.width * percent + height: @dimensions.height * percent + else if typeof opts.size is "object" + for dim in ["width", "height"] + if typeof opts.size[dim] is "string" + opts.size[dim] = @dimensions[dim] * (parseInt(opts.size[dim], 10) / 100) + else if opts.size is "number" + size = opts.size + opts.size = + width: size + height: size + + if typeof opts.cornerRadius is "string" + opts.cornerRadius = (opts.size.width / 2) * (parseInt(opts.cornerRadius, 10) / 100) + + opts.strength /= 100 + + # Since pixels are discreet, force size to be an int + opts.size.width = Math.floor opts.size.width + opts.size.height = Math.floor opts.size.height + opts.image = + width: @dimensions.width + height: @dimensions.height + + if opts.method is "colorize" and typeof opts.color is "string" + opts.color = Convert.hexToRGB opts.color + + opts.coords = + left: (@dimensions.width - opts.size.width) / 2 + right: @dimensions.width - opts.coords.left + bottom: (@dimensions.height - opts.size.height) / 2 + top: @dimensions.height - opts.coords.bottom + + opts.corners = [ + {x: opts.coords.left + opts.cornerRadius, y: opts.coords.top - opts.cornerRadius}, + {x: opts.coords.right - opts.cornerRadius, y: opts.coords.top - opts.cornerRadius}, + {x: opts.coords.right - opts.cornerRadius, y: opts.coords.bottom + opts.cornerRadius}, + {x: opts.coords.left + opts.cornerRadius, y: opts.coords.bottom + opts.cornerRadius} + ] + + opts.maxDist = Calculate.distance(0, 0, opts.corners[3].x, opts.corners[3].y) - opts.cornerRadius + + @process "rectangularVignette", (rgba) -> + loc = rgba.locationXY() + + # Trivial rejects + if (loc.x > opts.corners[0].x and loc.x < opts.corners[1].x) and (loc.y > opts.coords.bottom and loc.y < opts.coords.top) + return rgba + if (loc.x > opts.coords.left && loc.x < opts.coords.right) && (loc.y > opts.corners[3].y && loc.y < opts.corners[2].y) + return rgba + + # Need to figure out which section we're in. First, the easy ones, then the harder ones. + if loc.x > opts.corners[0].x && loc.x < opts.corners[1].x && loc.y > opts.coords.top + # top-middle section + amt = (loc.y - opts.coords.top) / opts.maxDist + else if loc.y > opts.corners[2].y && loc.y < opts.corners[1].y && loc.x > opts.coords.right + # right-middle section + amt = (loc.x - opts.coords.right) / opts.maxDist + else if loc.x > opts.corners[0].x && loc.x < opts.corners[1].x && loc.y < opts.coords.bottom + # bottom-middle section + amt = (opts.coords.bottom - loc.y) / opts.maxDist + else if loc.y > opts.corners[2].y && loc.y < opts.corners[1].y && loc.x < opts.coords.left + # left-middle section + amt = (opts.coords.left - loc.x) / opts.maxDist + else if loc.x <= opts.corners[0].x && loc.y >= opts.corners[0].y + # top-left corner + radialDist = Caman.distance(loc.x, loc.y, opts.corners[0].x, opts.corners[0].y) + amt = (radialDist - opts.cornerRadius) / opts.maxDist + else if loc.x >= opts.corners[1].x && loc.y >= opts.corners[1].y + # top-right corner + radialDist = Caman.distance(loc.x, loc.y, opts.corners[1].x, opts.corners[1].y) + amt = (radialDist - opts.cornerRadius) / opts.maxDist + else if loc.x >= opts.corners[2].x && loc.y <= opts.corners[2].y + # bottom-right corner + radialDist = Caman.distance(loc.x, loc.y, opts.corners[2].x, opts.corners[2].y) + amt = (radialDist - opts.cornerRadius) / opts.maxDist + else if loc.x <= opts.corners[3].x && loc.y <= opts.corners[3].y + # bottom-left corner + radialDist = Caman.distance(loc.x, loc.y, opts.corners[3].x, opts.corners[3].y) + amt = (radialDist - opts.cornerRadius) / opts.maxDist + + return rgba if amt < 0 + return vignetteFilters[opts.method](rgba, amt, opts) + \ No newline at end of file diff --git a/src/plugins/src/compoundBlur.coffee b/src/plugins/src/compoundBlur.coffee new file mode 100644 index 00000000..c1e65ca5 --- /dev/null +++ b/src/plugins/src/compoundBlur.coffee @@ -0,0 +1,348 @@ +### +CompoundBlur - Blurring with varying radii for Canvas + +Version: 0.1 +Author: Mario Klingemann +Contact: mario@quasimondo.com +Website: http://www.quasimondo.com/StackBlurForCanvas +Twitter: @quasimondo +Modified By: Ryan LeFevre (@meltingice) + +In case you find this class useful - especially in commercial projects - +I am not totally unhappy for a small donation to my PayPal account +mario@quasimondo.de + +Copyright (c) 2011 Mario Klingemann + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. +### + +# Wrapping this in a closure since there's a bunch of extra functions this plugin requires +# and we don't want them clogging up the global scope. +do -> + mul_table = [ + 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259] + + + shg_table = [ + 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24] + + getLinearGradientMap = (width, height, centerX, centerY, angle, length, mirrored) -> + cnv = if exports? then new Canvas() else document.createElement('canvas') + cnv.width = width + cnv.height = height + + x1 = centerX + Math.cos(angle) * length * 0.5 + y1 = centerY + Math.sin(angle) * length * 0.5 + + x2 = centerX - Math.cos(angle) * length * 0.5 + y2 = centerY - Math.sin(angle) * length * 0.5 + + context = cnv.getContext("2d") + gradient = context.createLinearGradient(x1, y1, x2, y2) + if not mirrored + gradient.addColorStop(0, "white") + gradient.addColorStop(1, "black") + else + gradient.addColorStop(0, "white") + gradient.addColorStop(0.5, "black") + gradient.addColorStop(1, "white") + + context.fillStyle = gradient + context.fillRect(0, 0, width, height) + return context.getImageData(0, 0, width, height) + + getRadialGradientMap = (width, height, centerX, centerY, radius1, radius2) -> + cnv = if exports? then new Canvas() else document.createElement('canvas') + cnv.width = width + cnv.height = height + + context = cnv.getContext("2d") + gradient = context.createRadialGradient(centerX, centerY, radius1, centerX, centerY, radius2) + + gradient.addColorStop(1, "white") + gradient.addColorStop(0, "black") + + context.fillStyle = gradient + context.fillRect(0, 0, width, height) + return context.getImageData(0, 0, width, height) + + BlurStack = -> + @r = 0 + @g = 0 + @b = 0 + @a = 0 + @next = null + + Caman.Plugin.register "compoundBlur", (radiusData, radius, increaseFactor, blurLevels) -> + width = @dimensions.width + height = @dimensions.height + + imagePixels = @pixelData + radiusPixels = radiusData.data + + wh = width * height + wh4 = wh << 2 + pixels = [] + + pixels[i] = imagePixels[i] for i in [0...wh4] + + currentIndex = 0 + steps = blurLevels + blurLevels -= 1 + + while steps-- >= 0 + iradius = (radius + 0.5) | 0 + continue if iradius is 0 + iradius = 256 if iradius > 256 + + div = iradius + iradius + 1 + w4 = width << 2 + widthMinus1 = width - 1 + heightMinus1 = height - 1 + radiusPlus1 = iradius + 1 + sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2 + + stackStart = new BlurStack() + stackEnd = undefined + stack = stackStart + + for i in [1...div] + stack = stack.next = new BlurStack() + stackEnd = stack if i is radiusPlus1 + + stack.next = stackStart + stackIn = null + stackOut = null + + yw = yi = 0 + + mul_sum = mul_table[iradius] + shg_sum = shg_table[iradius] + + for y in [0...height] + r_in_sum = g_in_sum = b_in_sum = r_sum = g_sum = b_sum = 0 + + r_out_sum = radiusPlus1 * (pr = pixels[yi]) + g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]) + b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]) + + r_sum += sumFactor * pr + g_sum += sumFactor * pg + b_sum += sumFactor * pb + + stack = stackStart + + for i in [0...radiusPlus1] + stack.r = pr + stack.g = pg + stack.b = pb + stack = stack.next + + for i in [1...radiusPlus1] + p = yi + ((if widthMinus1 < i then widthMinus1 else i) << 2) + r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i) + g_sum += (stack.g = (pg = pixels[p + 1])) * rbs + b_sum += (stack.b = (pb = pixels[p + 2])) * rbs + + r_in_sum += pr + g_in_sum += pg + b_in_sum += pb + + stack = stack.next + + stackIn = stackStart + stackOut = stackEnd + + for x in [0...width] + pixels[yi] = (r_sum * mul_sum) >> shg_sum + pixels[yi + 1] = (g_sum * mul_sum) >> shg_sum + pixels[yi + 2] = (b_sum * mul_sum) >> shg_sum + + r_sum -= r_out_sum + g_sum -= g_out_sum + b_sum -= b_out_sum + + r_out_sum -= stackIn.r + g_out_sum -= stackIn.g + b_out_sum -= stackIn.b + + p = (yw + (if (p = x + radiusPlus1) < widthMinus1 then p else widthMinus1)) << 2 + + r_in_sum += (stackIn.r = pixels[p]) + g_in_sum += (stackIn.g = pixels[p + 1]) + b_in_sum += (stackIn.b = pixels[p + 2]) + + r_sum += r_in_sum + g_sum += g_in_sum + b_sum += b_in_sum + + stackIn = stackIn.next + + r_out_sum += (pr = stackOut.r) + g_out_sum += (pg = stackOut.g) + b_out_sum += (pb = stackOut.b) + + r_in_sum -= pr + g_in_sum -= pg + b_in_sum -= pb + + stackOut = stackOut.next + + yi += 4 + + yw += width + + for x in [0...width] + g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0 + + yi = x << 2 + r_out_sum = radiusPlus1 * (pr = pixels[yi]) + g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]) + b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]) + + r_sum += sumFactor * pr + g_sum += sumFactor * pg + b_sum += sumFactor * pb + + stack = stackStart + + for i in [0...radiusPlus1] + stack.r = pr + stack.g = pg + stack.b = pb + stack = stack.next + + yp = width + + for i in [1...radiusPlus1] + yi = (yp + x) << 2 + r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i) + g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs + b_sum += (stack.b = (pb = pixels[yi + 2])) * rbs + r_in_sum += pr + g_in_sum += pg + b_in_sum += pb + stack = stack.next + yp += width if i < heightMinus1 + + yi = x + stackIn = stackStart + stackOut = stackEnd + + for y in [0...height] + p = yi << 2 + pixels[p] = (r_sum * mul_sum) >> shg_sum + pixels[p + 1] = (g_sum * mul_sum) >> shg_sum + pixels[p + 2] = (b_sum * mul_sum) >> shg_sum + + r_sum -= r_out_sum + g_sum -= g_out_sum + b_sum -= b_out_sum + + r_out_sum -= stackIn.r + g_out_sum -= stackIn.g + b_out_sum -= stackIn.b + + p = (x + ((if (p = y + radiusPlus1) < heightMinus1 then p else heightMinus1) * width)) << 2 + + r_sum += (r_in_sum += (stackIn.r = pixels[p])) + g_sum += (g_in_sum += (stackIn.g = pixels[p + 1])) + b_sum += (b_in_sum += (stackIn.b = pixels[p + 2])) + + stackIn = stackIn.next + + r_out_sum += (pr = stackOut.r) + g_out_sum += (pg = stackOut.g) + b_out_sum += (pb = stackOut.b) + + r_in_sum -= pr + g_in_sum -= pg + b_in_sum -= pb + + stackOut = stackOut.next + + yi += width + + radius *= increaseFactor + + i = wh + while --i > -1 + idx = i << 2 + lookupValue = (radiusPixels[idx + 2] & 0xff) / 255.0 * blurLevels + index = lookupValue | 0 + + if index is currentIndex + blend = 256.0 * (lookupValue - (lookupValue | 0)) + iblend = 256 - blend + + imagePixels[idx] = (imagePixels[idx] * iblend + pixels[idx] * blend) >> 8 + imagePixels[idx + 1] = (imagePixels[idx + 1] * iblend + pixels[idx + 1] * blend) >> 8 + imagePixels[idx + 2] = (imagePixels[idx + 2] * iblend + pixels[idx + 2] * blend) >> 8 + else if index is currentIndex + 1 + imagePixels[idx] = pixels[idx] + imagePixels[idx + 1] = pixels[idx + 1] + imagePixels[idx + 2] = pixels[idx + 2] + currentIndex++ + + return @ + + Caman.Filter.register "tiltShift", (opts) -> + defaults = + center: + x: @dimensions.width / 2 + y: @dimensions.height / 2 + angle: 45 + focusWidth: 200 + startRadius: 3 + radiusFactor: 1.5 + steps: 3 + + opts = Util.extend defaults, opts + opts.angle *= Math.PI / 180 + gradient = getLinearGradientMap(@dimensions.width, @dimensions.height, opts.center.x, opts.center.y, opts.angle, opts.focusWidth, true) + + @processPlugin "compoundBlur", [gradient, opts.startRadius, opts.radiusFactor, opts.steps] + + Caman.Filter.register "radialBlur", (opts) -> + defaults = + size: 50 + center: + x: @dimensions.width / 2 + y: @dimensions.height / 2 + startRadius: 3 + radiusFactor: 1.5 + steps: 3 + radius: null + + opts = Util.extend defaults, opts + + if not opts.radius + opts.radius = if @dimensions.width < @dimensions.height then @dimensions.height else @dimensions.width + + radius1 = (opts.radius / 2) - opts.size + radius2 = (opts.radius / 2) + + gradient = getRadialGradientMap(@dimensions.width, @dimensions.height, opts.center.x, opts.center.y, radius1, radius2) + + @processPlugin "compoundBlur", [gradient, opts.startRadius, opts.radiusFactor, opts.steps] + \ No newline at end of file diff --git a/src/plugins/src/edges.coffee b/src/plugins/src/edges.coffee new file mode 100644 index 00000000..b7554944 --- /dev/null +++ b/src/plugins/src/edges.coffee @@ -0,0 +1,20 @@ +Caman.Filter.register "edgeEnhance", -> + @processKernel "Edge Enhance", [ + 0, 0, 0, + -1, 1, 0, + 0, 0, 0 + ] + +Caman.Filter.register "edgeDetect", -> + @processKernel "Edge Detect", [ + -1, -1, -1, + -1, 8, -1, + -1, -1, -1 + ] + +Caman.Filter.register "emboss", -> + @processKernel "Emboss", [ + -2, -1, 0, + -1, 1, 1, + 0, 1, 2 + ] \ No newline at end of file diff --git a/src/plugins/src/posterize.coffee b/src/plugins/src/posterize.coffee new file mode 100644 index 00000000..08209eae --- /dev/null +++ b/src/plugins/src/posterize.coffee @@ -0,0 +1,9 @@ +Caman.Filter.register "posterize", (adjust) -> + numOfAreas = 256 / adjust + numOfValues = 255 / (adjust - 1) + + @process "posterize", (rgba) -> + rgba.r = Math.floor Math.floor(rgba.r / numOfAreas) * numOfValues + rgba.g = Math.floor Math.floor(rgba.g / numOfAreas) * numOfValues + rgba.b = Math.floor Math.floor(rgba.b / numOfAreas) * numOfValues + rgba \ No newline at end of file diff --git a/src/plugins/src/presets.coffee b/src/plugins/src/presets.coffee new file mode 100644 index 00000000..3bed8804 --- /dev/null +++ b/src/plugins/src/presets.coffee @@ -0,0 +1,256 @@ +Caman.Filter.register "vintage", (vignette = true) -> + @greyscale() + @contrast 5 + @noise 3 + @sepia 100 + @channels red: 8, blue: 2, green: 4 + @gamma 0.87 + + @vignette("40%", 30) if vignette + +Caman.Filter.register "lomo", (vignette = true) -> + @brightness 15 + @exposure 15 + @curves 'rgb', [0, 0], [200, 0], [155, 255], [255, 255] + @saturation -20 + @gamma 1.8 + @vignette("50%", 60) if vignette + @brightness 5 + +Caman.Filter.register "clarity", (grey = false) -> + @vibrance 20 + @curves 'rgb', [5, 0], [130, 150], [190, 220], [250, 255] + @sharpen 15 + @vignette "45%", 20 + + if grey + @greyscale() + @contrast 4 + + @ + +Caman.Filter.register "sinCity", -> + @contrast 100 + @brightness 15 + @exposure 10 + @posterize 80 + @clip 30 + @greyscale() + +Caman.Filter.register "sunrise", -> + @exposure 3.5 + @saturation -5 + @vibrance 50 + @sepia 60 + @colorize "#e87b22", 10 + @channels red: 8, blue: 8 + @contrast 5 + @gamma 1.2 + @vignette "55%", 25 + +Caman.Filter.register "crossProcess", -> + @exposure 5 + @colorize "#e87b22", 4 + @sepia 20 + @channels blue: 8, red: 3 + @curves 'b', [0, 0], [100, 150], [180, 180], [255, 255] + @contrast 15 + @vibrance 75 + @gamma 1.6 + +Caman.Filter.register "orangePeel", -> + @curves 'rgb', [0, 0], [100, 50], [140, 200], [255, 255] + @vibrance -30 + @saturation -30 + @colorize '#ff9000', 30 + @contrast -5 + @gamma 1.4 + +Caman.Filter.register "love", -> + @brightness 5 + @exposure 8 + @contrast 4 + @colorize '#c42007', 30 + @vibrance 50 + @gamma 1.3 + +Caman.Filter.register "grungy", -> + @gamma 1.5 + @clip 25 + @saturation -60 + @contrast 5 + @noise 5 + @vignette "50%", 30 + +Caman.Filter.register "jarques", -> + @saturation -35 + @curves 'b', [20, 0], [90, 120], [186, 144], [255, 230] + @curves 'r', [0, 0], [144, 90], [138, 120], [255, 255] + @curves 'g', [10, 0], [115, 105], [148, 100], [255, 248] + @curves 'rgb', [0, 0], [120, 100], [128, 140], [255, 255] + @sharpen 20 + +Caman.Filter.register "pinhole", -> + @greyscale() + @sepia 10 + @exposure 10 + @contrast 15 + @vignette "60%", 35 + +Caman.Filter.register "oldBoot", -> + @saturation -20 + @vibrance -50 + @gamma 1.1 + @sepia 30 + @channels red: -10, blue: 5 + @curves 'rgb', [0, 0], [80, 50], [128, 230], [255, 255] + @vignette "60%", 30 + +Caman.Filter.register "glowingSun", (vignette = true) -> + @brightness 10 + + @newLayer -> + @setBlendingMode "multiply" + @opacity 80 + @copyParent() + + @filter.gamma 0.8 + @filter.contrast 50 + @filter.exposure 10 + + @newLayer -> + @setBlendingMode "softLight" + @opacity 80 + @fillColor "#f49600" + + @exposure 20 + @gamma 0.8 + @vignette "45%", 20 if vignette + +Caman.Filter.register "hazyDays", -> + @gamma 1.2 + + @newLayer -> + @setBlendingMode "overlay" + @opacity 60 + @copyParent() + + @filter.channels red: 5 + @filter.stackBlur 15 + + @newLayer -> + @setBlendingMode "addition" + @opacity 40 + @fillColor "#6899ba" + + @newLayer -> + @setBlendingMode "multiply" + @opacity 35 + @copyParent() + + @filter.brightness 40 + @filter.vibrance 40 + @filter.exposure 30 + @filter.contrast 15 + + @filter.curves 'r', [0, 40], [128, 128], [128, 128], [255, 215] + @filter.curves 'g', [0, 40], [128, 128], [128, 128], [255, 215] + @filter.curves 'b', [0, 40], [128, 128], [128, 128], [255, 215] + + @filter.stackBlur 5 + + @curves 'r', [20, 0], [128, 158], [128, 128], [235, 255] + @curves 'g', [20, 0], [128, 128], [128, 128], [235, 255] + @curves 'b', [20, 0], [128, 108], [128, 128], [235, 255] + + @vignette "45%", 20 + +Caman.Filter.register "herMajesty", -> + @brightness 40 + @colorize "#ea1c5d", 10 + @curves 'b', [0, 10], [128, 180], [190, 190], [255, 255] + + @newLayer -> + @setBlendingMode 'overlay' + @opacity 50 + @copyParent() + + @filter.gamma 0.7 + @newLayer -> + @setBlendingMode 'normal' + @opacity 60 + @fillColor '#ea1c5d' + + @newLayer -> + @setBlendingMode 'multiply' + @opacity 60 + @copyParent() + + @filter.saturation 50 + @filter.hue 90 + @filter.contrast 10 + + @gamma 1.4 + @vibrance -30 + + @newLayer -> + @opacity 10 + @fillColor '#e5f0ff' + + @ + +Caman.Filter.register "nostalgia", -> + @saturation 20 + @gamma 1.4 + @greyscale() + @contrast 5 + @sepia 100 + @channels red: 8, blue: 2, green: 4 + @gamma 0.8 + @contrast 5 + @exposure 10 + + @newLayer -> + @setBlendingMode 'overlay' + @copyParent() + @opacity 55 + + @filter.stackBlur 10 + + @vignette "50%", 30 + +Caman.Filter.register "hemingway", -> + @greyscale() + @contrast 10 + @gamma 0.9 + + @newLayer -> + @setBlendingMode "multiply" + @opacity 40 + @copyParent() + + @filter.exposure 15 + @filter.contrast 15 + @filter.channels green: 10, red: 5 + + @sepia 30 + @curves 'rgb', [0, 10], [120, 90], [180, 200], [235, 255] + @channels red: 5, green: -2 + @exposure 15 + +Caman.Filter.register "concentrate", -> + @sharpen 40 + @saturation -50 + @channels red: 3 + + @newLayer -> + @setBlendingMode "multiply" + @opacity 80 + @copyParent() + + @filter.sharpen 5 + @filter.contrast 50 + @filter.exposure 10 + @filter.channels blue: 5 + + @brightness 10 \ No newline at end of file diff --git a/src/plugins/src/rotate.coffee b/src/plugins/src/rotate.coffee new file mode 100644 index 00000000..96e358b2 --- /dev/null +++ b/src/plugins/src/rotate.coffee @@ -0,0 +1,46 @@ +Caman.Plugin.register "rotate", (degrees) -> + angle = degrees%360 + if angle == 0 + return @dimensions = + width: @canvas.width + height: @canvas.height + to_radians = Math.PI/180; + + if exports? + canvas = new Canvas() + else + canvas = document.createElement 'canvas' + Util.copyAttributes @canvas, canvas + + if angle == 90 or angle == -270 or angle == 270 or angle == -90 + width = @canvas.height + height = @canvas.width + x = width/2 + y = height/2 + else if angle == 180 + width = @canvas.width + height = @canvas.height + x = width/2 + y = height/2 + else + width = Math.sqrt(Math.pow(@originalWidth, 2) + Math.pow(@originalHeight, 2)) + height = width + x = @canvas.height/2 + y = @canvas.width/2 + + canvas.width = width + canvas.height = height + ctx = canvas.getContext '2d' + ctx.save() + ctx.translate x, y + ctx.rotate angle*to_radians + ctx.drawImage @canvas, -@canvas.width/2, -@canvas.height/2, @canvas.width, @canvas.height + ctx.restore() + + @rotationAngle += degrees + @rotated = true + + @replaceCanvas canvas + +Caman.Filter.register "rotate", -> + @processPlugin "rotate", Array.prototype.slice.call(arguments, 0) diff --git a/src/plugins/src/stackBlur.coffee b/src/plugins/src/stackBlur.coffee new file mode 100644 index 00000000..3aeb0566 --- /dev/null +++ b/src/plugins/src/stackBlur.coffee @@ -0,0 +1,238 @@ +### +StackBlur - a fast almost Gaussian Blur For Canvas v0.31 modified for CamanJS + +Version: 0.31 +Author: Mario Klingemann +Contact: mario@quasimondo.com +Website: http://www.quasimondo.com/StackBlurForCanvas +Twitter: @quasimondo +Modified By: Ryan LeFevre (@meltingice) + +In case you find this class useful - especially in commercial projects - +I am not totally unhappy for a small donation to my PayPal account +mario@quasimondo.de + +Or support me on flattr: +https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript + +Copyright (c) 2010 Mario Klingemann + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. +### + +do -> + + mul_table = [ 512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259 ] + + shg_table = [ 9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 ] + + BlurStack = -> + @r = 0 + @g = 0 + @b = 0 + @a = 0 + @next = null + + Caman.Plugin.register "stackBlur", (radius) -> + return if isNaN(radius) or radius < 1 + radius |= 0 + + pixels = @pixelData + width = @dimensions.width + height = @dimensions.height + + div = radius + radius + 1 + w4 = width << 2 + widthMinus1 = width - 1 + heightMinus1 = height - 1 + radiusPlus1 = radius + 1 + sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2 + + stackStart = new BlurStack() + stack = stackStart + + for i in [1...div] + stack = stack.next = new BlurStack() + stackEnd = stack if i is radiusPlus1 + + stack.next = stackStart + stackIn = null + stackOut = null + + yw = yi = 0 + + mul_sum = mul_table[radius] + shg_sum = shg_table[radius] + + for y in [0...height] + r_in_sum = g_in_sum = b_in_sum = r_sum = g_sum = b_sum = 0 + + r_out_sum = radiusPlus1 * (pr = pixels[yi]) + g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]) + b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]) + + r_sum += sumFactor * pr + g_sum += sumFactor * pg + b_sum += sumFactor * pb + + stack = stackStart + + for i in [0...radiusPlus1] + stack.r = pr + stack.g = pg + stack.b = pb + stack = stack.next + + for i in [1...radiusPlus1] + p = yi + ((if widthMinus1 < i then widthMinus1 else i) << 2) + r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i) + g_sum += (stack.g = (pg = pixels[p + 1])) * rbs + b_sum += (stack.b = (pb = pixels[p + 2])) * rbs + + r_in_sum += pr + g_in_sum += pg + b_in_sum += pb + + stack = stack.next + + stackIn = stackStart + stackOut = stackEnd + + for x in [0...width] + pixels[yi] = (r_sum * mul_sum) >> shg_sum + pixels[yi + 1] = (g_sum * mul_sum) >> shg_sum + pixels[yi + 2] = (b_sum * mul_sum) >> shg_sum + + r_sum -= r_out_sum + g_sum -= g_out_sum + b_sum -= b_out_sum + + r_out_sum -= stackIn.r + g_out_sum -= stackIn.g + b_out_sum -= stackIn.b + + p = (yw + (if (p = x + radius + 1) < widthMinus1 then p else widthMinus1)) << 2 + + r_in_sum += (stackIn.r = pixels[p]) + g_in_sum += (stackIn.g = pixels[p + 1]) + b_in_sum += (stackIn.b = pixels[p + 2]) + + r_sum += r_in_sum + g_sum += g_in_sum + b_sum += b_in_sum + + stackIn = stackIn.next + + r_out_sum += (pr = stackOut.r) + g_out_sum += (pg = stackOut.g) + b_out_sum += (pb = stackOut.b) + + r_in_sum -= pr + g_in_sum -= pg + b_in_sum -= pb + + stackOut = stackOut.next + + yi += 4 + + yw += width + + for x in [0...width] + g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0 + + yi = x << 2 + r_out_sum = radiusPlus1 * (pr = pixels[yi]) + g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]) + b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]) + + r_sum += sumFactor * pr + g_sum += sumFactor * pg + b_sum += sumFactor * pb + + stack = stackStart + + for i in [0...radiusPlus1] + stack.r = pr + stack.g = pg + stack.b = pb + stack = stack.next + + yp = width + + for i in [1..radius] + yi = (yp + x) << 2 + + r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i) + g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs + b_sum += (stack.b = (pb = pixels[yi + 2])) * rbs + + r_in_sum += pr + g_in_sum += pg + b_in_sum += pb + + stack = stack.next + + yp += width if i < heightMinus1 + + yi = x + stackIn = stackStart + stackOut = stackEnd + + for y in [0...height] + p = yi << 2 + pixels[p] = (r_sum * mul_sum) >> shg_sum + pixels[p + 1] = (g_sum * mul_sum) >> shg_sum + pixels[p + 2] = (b_sum * mul_sum) >> shg_sum + + r_sum -= r_out_sum + g_sum -= g_out_sum + b_sum -= b_out_sum + + r_out_sum -= stackIn.r + g_out_sum -= stackIn.g + b_out_sum -= stackIn.b + + p = (x + ((if (p = y + radiusPlus1) < heightMinus1 then p else heightMinus1) * width)) << 2 + + r_sum += (r_in_sum += (stackIn.r = pixels[p])) + g_sum += (g_in_sum += (stackIn.g = pixels[p + 1])) + b_sum += (b_in_sum += (stackIn.b = pixels[p + 2])) + + stackIn = stackIn.next + + r_out_sum += (pr = stackOut.r) + g_out_sum += (pg = stackOut.g) + b_out_sum += (pb = stackOut.b) + + r_in_sum -= pr + g_in_sum -= pg + b_in_sum -= pb + + stackOut = stackOut.next + + yi += width + + + @ + + Caman.Filter.register "stackBlur", (radius) -> + @processPlugin "stackBlur", [radius] \ No newline at end of file diff --git a/src/plugins/src/threshold.coffee b/src/plugins/src/threshold.coffee new file mode 100644 index 00000000..37d27875 --- /dev/null +++ b/src/plugins/src/threshold.coffee @@ -0,0 +1,14 @@ +Caman.Filter.register "threshold", (adjust) -> + @process "threshold", (rgba) -> + luminance = (0.2126 * rgba.r) + (0.7152 * rgba.g) + (0.0722 * rgba.b) + + if luminance < adjust + rgba.r = 0 + rgba.g = 0 + rgba.b = 0 + else + rgba.r = 255 + rgba.g = 255 + rgba.b = 255 + + rgba \ No newline at end of file From d612c31fd737f6c1d7a86959cdfcadbeca683542 Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Tue, 30 Dec 2014 17:35:53 +0100 Subject: [PATCH 02/12] Keep image rotated after revert --- .gitmodules | 3 - dist/caman.full.js | 196 +++++++++++++++++++++++++--------------- dist/caman.full.min.js | 33 +++---- dist/caman.full.pack.js | 2 +- dist/caman.js | 186 ++++++++++++++++++++++++-------------- dist/caman.min.js | 31 ++++--- dist/caman.pack.js | 2 +- src/core/caman.coffee | 33 +++++++ 8 files changed, 308 insertions(+), 178 deletions(-) delete mode 100644 .gitmodules diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 8450b4b8..00000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "src/plugins"] - path = src/plugins - url = https://github.com/meltingice/CamanJS-Plugins.git diff --git a/dist/caman.full.js b/dist/caman.full.js index 772007ff..3f33a376 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.6.3 +// Generated by CoffeeScript 1.8.0 (function() { var $, Analyze, Blender, Calculate, Caman, CamanParser, Canvas, Convert, Event, Fiber, Filter, IO, Image, Layer, Log, Module, Pixel, Plugin, Renderer, Root, Store, Util, fs, http, moduleKeywords, slice, vignetteFilters, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, @@ -53,12 +53,13 @@ }; Module.aliasFunction = function(to, from) { - var _this = this; - return this.prototype[to] = function() { - var args; - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - return _this.prototype[from].apply(_this, args); - }; + return this.prototype[to] = (function(_this) { + return function() { + var args; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + return _this.prototype[from].apply(_this, args); + }; + })(this); }; Module.aliasProperty = function(to, from) { @@ -212,8 +213,7 @@ function Caman() { this.nodeFileReady = __bind(this.nodeFileReady, this); - var args, callback, id, - _this = this; + var args, callback, id; if (arguments.length === 0) { throw "Invalid arguments"; } @@ -236,6 +236,8 @@ }; this.cropped = false; this.resized = false; + this.rotated = false; + this.rotationAngle = 0; this.pixelStack = []; this.layerStack = []; this.canvasQueue = []; @@ -243,10 +245,12 @@ this.scaled = false; this.analyze = new Analyze(this); this.renderer = new Renderer(this); - this.domIsLoaded(function() { - _this.parseArguments(args); - return _this.setup(); - }); + this.domIsLoaded((function(_this) { + return function() { + _this.parseArguments(args); + return _this.setup(); + }; + })(this)); return this; } else { return new Caman(arguments); @@ -254,25 +258,30 @@ } Caman.prototype.domIsLoaded = function(cb) { - var listener, - _this = this; + var listener; if (Caman.NodeJS) { - return setTimeout(function() { - return cb.call(_this); - }, 0); + return setTimeout((function(_this) { + return function() { + return cb.call(_this); + }; + })(this), 0); } else { if (document.readyState === "complete") { Log.debug("DOM initialized"); - return setTimeout(function() { - return cb.call(_this); - }, 0); - } else { - listener = function() { - if (document.readyState === "complete") { - Log.debug("DOM initialized"); + return setTimeout((function(_this) { + return function() { return cb.call(_this); - } - }; + }; + })(this), 0); + } else { + listener = (function(_this) { + return function() { + if (document.readyState === "complete") { + Log.debug("DOM initialized"); + return cb.call(_this); + } + }; + })(this); return document.addEventListener("readystatechange", listener, false); } } @@ -594,15 +603,16 @@ }; Caman.prototype.render = function(callback) { - var _this = this; if (callback == null) { callback = function() {}; } Event.trigger(this, "renderStart"); - return this.renderer.execute(function() { - _this.context.putImageData(_this.imageData, 0, 0); - return callback.call(_this); - }); + return this.renderer.execute((function(_this) { + return function() { + _this.context.putImageData(_this.imageData, 0, 0); + return callback.call(_this); + }; + })(this)); }; Caman.prototype.revert = function(updateContext) { @@ -647,7 +657,7 @@ }; Caman.prototype.originalVisiblePixels = function() { - var canvas, coord, ctx, endX, endY, i, imageData, pixel, pixelData, pixels, scaledCanvas, startX, startY, width, _i, _j, _len, _ref, _ref1, _ref2, _ref3; + var canvas, coord, ctx, endX, endY, i, imageData, pixel, pixelData, pixels, rotatedCanvas, rotatedCanvasCtx, scaledCanvas, startX, startY, width, x, y, _i, _j, _k, _len, _len1, _ref, _ref1, _ref2, _ref3, _ref4; if (!Caman.allowRevert) { throw "Revert disabled"; } @@ -676,13 +686,41 @@ ctx.drawImage(canvas, 0, 0, this.originalWidth, this.originalHeight, 0, 0, this.width, this.height); pixelData = ctx.getImageData(0, 0, this.width, this.height).data; width = this.width; + } else if (this.rotated) { + canvas = document.createElement('canvas'); + canvas.width = this.originalWidth; + canvas.height = this.originalHeight; + ctx = canvas.getContext('2d'); + imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); + pixelData = imageData.data; + _ref1 = this.originalPixelData; + for (i = _j = 0, _len1 = _ref1.length; _j < _len1; i = ++_j) { + pixel = _ref1[i]; + pixelData[i] = pixel; + } + ctx.putImageData(imageData, 0, 0); + rotatedCanvas = document.createElement('canvas'); + rotatedCanvas.width = this.width; + rotatedCanvas.height = this.height; + rotatedCanvasCtx = rotatedCanvas.getContext('2d'); + rotatedCanvas.width = this.canvas.width; + rotatedCanvas.height = this.canvas.height; + x = rotatedCanvas.width / 2; + y = rotatedCanvas.height / 2; + rotatedCanvasCtx.save(); + rotatedCanvasCtx.translate(x, y); + rotatedCanvasCtx.rotate(this.rotationAngle * Math.PI / 180); + rotatedCanvasCtx.drawImage(canvas, -canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height); + rotatedCanvasCtx.restore(); + pixelData = rotatedCanvasCtx.getImageData(0, 0, rotatedCanvas.width, rotatedCanvas.height).data; + width = rotatedCanvas.width; } else { pixelData = this.originalPixelData; width = this.originalWidth; } - for (i = _j = 0, _ref1 = pixelData.length; _j < _ref1; i = _j += 4) { + for (i = _k = 0, _ref2 = pixelData.length; _k < _ref2; i = _k += 4) { coord = Pixel.locationToCoordinates(i, width); - if (((startX <= (_ref2 = coord.x) && _ref2 < endX)) && ((startY <= (_ref3 = coord.y) && _ref3 < endY))) { + if (((startX <= (_ref3 = coord.x) && _ref3 < endX)) && ((startY <= (_ref4 = coord.y) && _ref4 < endY))) { pixels.push(pixelData[i], pixelData[i + 1], pixelData[i + 2], pixelData[i + 3]); } } @@ -858,7 +896,7 @@ for (_i = 0, _len = unparsedInstructions.length; _i < _len; _i++) { inst = unparsedInstructions[_i]; _ref = inst.match(r), m = _ref[0], filter = _ref[1], args = _ref[2]; - instFunc = new Function("return function() { this." + filter + "(" + args + "); };"); + instFunc = new Function("return function() { this." + filter + "(" + args + "); };"); try { func = instFunc(); _results.push(func.call(this.caman)); @@ -971,8 +1009,7 @@ }; Calculate.hermite = function(controlPoints, lowBound, highBound) { - var add, clamp, count, endX, fac0, fac1, fac2, fac3, i, j, lerp, m0, m1, mul, p, p0, p1, pointsPerSegment, pointsPerStep, pos, ret, sub, t, _i, _j, _ref, - _this = this; + var add, clamp, count, endX, fac0, fac1, fac2, fac3, i, j, lerp, m0, m1, mul, p, p0, p1, pointsPerSegment, pointsPerStep, pos, ret, sub, t, _i, _j, _ref; if (controlPoints.length < 2) { throw "Invalid number of arguments to hermite"; } @@ -980,15 +1017,21 @@ lerp = function(a, b, t) { return a * (1 - t) + b * t; }; - add = function(a, b, c, d) { - return [a[0] + b[0] + c[0] + d[0], a[1] + b[1] + c[1] + d[1]]; - }; - mul = function(a, b) { - return [a[0] * b[0], a[1] * b[1]]; - }; - sub = function(a, b) { - return [a[0] - b[0], a[1] - b[1]]; - }; + add = (function(_this) { + return function(a, b, c, d) { + return [a[0] + b[0] + c[0] + d[0], a[1] + b[1] + c[1] + d[1]]; + }; + })(this); + mul = (function(_this) { + return function(a, b) { + return [a[0] * b[0], a[1] * b[1]]; + }; + })(this); + sub = (function(_this) { + return function(a, b) { + return [a[0] - b[0], a[1] - b[1]]; + }; + })(this); clamp = function(a, min, max) { return Math.min(Math.max(a, min), max); }; @@ -1908,8 +1951,7 @@ }; Renderer.prototype.eachBlock = function(fn) { - var blockN, blockPixelLength, bnum, end, f, i, lastBlockN, n, start, _i, _ref, _results, - _this = this; + var blockN, blockPixelLength, bnum, end, f, i, lastBlockN, n, start, _i, _ref, _results; this.blocksDone = 0; n = this.c.pixelData.length; blockPixelLength = Math.floor((n / 4) / Renderer.Blocks); @@ -1920,17 +1962,21 @@ start = i * blockN; end = start + (i === Renderer.Blocks - 1 ? lastBlockN : blockN); if (Caman.NodeJS) { - f = Fiber(function() { - return fn.call(_this, i, start, end); - }); + f = Fiber((function(_this) { + return function() { + return fn.call(_this, i, start, end); + }; + })(this)); bnum = f.run(); _results.push(this.blockFinished(bnum)); } else { - _results.push(setTimeout((function(i, start, end) { - return function() { - return fn.call(_this, i, start, end); + _results.push(setTimeout((function(_this) { + return function(i, start, end) { + return function() { + return fn.call(_this, i, start, end); + }; }; - })(i, start, end), 0)); + })(this)(i, start, end), 0)); } } return _results; @@ -2066,16 +2112,17 @@ }; Renderer.prototype.loadOverlay = function(layer, src) { - var img, proxyUrl, - _this = this; + var img, proxyUrl; img = new Image(); - img.onload = function() { - layer.context.drawImage(img, 0, 0, _this.c.dimensions.width, _this.c.dimensions.height); - layer.imageData = layer.context.getImageData(0, 0, _this.c.dimensions.width, _this.c.dimensions.height); - layer.pixelData = layer.imageData.data; - _this.c.pixelData = layer.pixelData; - return _this.processNext(); - }; + img.onload = (function(_this) { + return function() { + layer.context.drawImage(img, 0, 0, _this.c.dimensions.width, _this.c.dimensions.height); + layer.imageData = layer.context.getImageData(0, 0, _this.c.dimensions.width, _this.c.dimensions.height); + layer.pixelData = layer.imageData.data; + _this.c.pixelData = layer.pixelData; + return _this.processNext(); + }; + })(this); proxyUrl = IO.remoteCheck(src); return img.src = proxyUrl != null ? proxyUrl : src; }; @@ -2104,10 +2151,11 @@ }; Store.execute = function(search, callback) { - var _this = this; - setTimeout(function() { - return callback.call(_this.get(search), _this.get(search)); - }, 0); + setTimeout((function(_this) { + return function() { + return callback.call(_this.get(search), _this.get(search)); + }; + })(this), 0); return this.get(search); }; @@ -2769,6 +2817,7 @@ }); }); + /* CompoundBlur - Blurring with varying radii for Canvas @@ -2805,8 +2854,7 @@ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - + */ (function() { var BlurStack, getLinearGradientMap, getRadialGradientMap, mul_table, shg_table; @@ -3445,6 +3493,8 @@ ctx.rotate(angle * to_radians); ctx.drawImage(this.canvas, -this.canvas.width / 2, -this.canvas.height / 2, this.canvas.width, this.canvas.height); ctx.restore(); + this.rotationAngle += degrees; + this.rotated = true; return this.replaceCanvas(canvas); }); @@ -3452,6 +3502,7 @@ return this.processPlugin("rotate", Array.prototype.slice.call(arguments, 0)); }); + /* StackBlur - a fast almost Gaussian Blur For Canvas v0.31 modified for CamanJS @@ -3491,8 +3542,7 @@ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - + */ (function() { var BlurStack, mul_table, shg_table; diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index 437fbcab..1c4a766f 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -5,7 +5,7 @@ if((_ref=obj.extended)!=null){_ref.apply(this);} return this;};Module.includes=function(obj){var key,value,_ref;for(key in obj){value=obj[key];if(__indexOf.call(moduleKeywords,key)<0){this.prototype[key]=value;}} if((_ref=obj.included)!=null){_ref.apply(this);} return this;};Module.delegate=function(){var args,source,target,_i,_len,_results;args=1<=arguments.length?__slice.call(arguments,0):[];target=args.pop();_results=[];for(_i=0,_len=args.length;_i<_len;_i++){source=args[_i];_results.push(this.prototype[source]=target.prototype[source]);} -return _results;};Module.aliasFunction=function(to,from){var _this=this;return this.prototype[to]=function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];return _this.prototype[from].apply(_this,args);};};Module.aliasProperty=function(to,from){return Object.defineProperty(this.prototype,to,{get:function(){return this[from];},set:function(val){return this[from]=val;}});};Module.included=function(func){return func.call(this,this.prototype);};return Module;})();slice=Array.prototype.slice;$=function(sel,root){if(root==null){root=document;} +return _results;};Module.aliasFunction=function(to,from){return this.prototype[to]=(function(_this){return function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];return _this.prototype[from].apply(_this,args);};})(this);};Module.aliasProperty=function(to,from){return Object.defineProperty(this.prototype,to,{get:function(){return this[from];},set:function(val){return this[from]=val;}});};Module.included=function(func){return func.call(this,this.prototype);};return Module;})();slice=Array.prototype.slice;$=function(sel,root){if(root==null){root=document;} if(typeof sel==="object"||(typeof exports!=="undefined"&&exports!==null)){return sel;} return root.querySelector(sel);};Util=(function(){function Util(){} Util.uniqid=(function(){var id;id=0;return{get:function(){return id++;}};})();Util.extend=function(){var copy,dest,obj,prop,src,_i,_len;obj=arguments[0],src=2<=arguments.length?__slice.call(arguments,1):[];dest=obj;for(_i=0,_len=src.length;_i<_len;_i++){copy=src[_i];for(prop in copy){if(!__hasProp.call(copy,prop))continue;dest[prop]=copy[prop];}} @@ -20,10 +20,10 @@ return new Array(length);};return Util;})();if(typeof exports!=="undefined"&&exp Caman=(function(_super){__extends(Caman,_super);Caman.version={release:"4.1.2",date:"7/27/2013"};Caman.DEBUG=false;Caman.allowRevert=true;Caman.crossOrigin="anonymous";Caman.remoteProxy="";Caman.proxyParam="camanProxyUrl";Caman.NodeJS=typeof exports!=="undefined"&&exports!==null;Caman.autoload=!Caman.NodeJS;Caman.toString=function(){return"Version "+Caman.version.release+", Released "+Caman.version.date;};Caman.getAttrId=function(canvas){if(Caman.NodeJS){return true;} if(typeof canvas==="string"){canvas=$(canvas);} if(!((canvas!=null)&&(canvas.getAttribute!=null))){return null;} -return canvas.getAttribute('data-caman-id');};function Caman(){this.nodeFileReady=__bind(this.nodeFileReady,this);var args,callback,id,_this=this;if(arguments.length===0){throw"Invalid arguments";} +return canvas.getAttribute('data-caman-id');};function Caman(){this.nodeFileReady=__bind(this.nodeFileReady,this);var args,callback,id;if(arguments.length===0){throw"Invalid arguments";} if(this instanceof Caman){this.finishInit=this.finishInit.bind(this);this.imageLoaded=this.imageLoaded.bind(this);args=arguments[0];if(!Caman.NodeJS){id=parseInt(Caman.getAttrId(args[0]),10);callback=typeof args[1]==="function"?args[1]:typeof args[2]==="function"?args[2]:function(){};if(!isNaN(id)&&Store.has(id)){return Store.execute(id,callback);}} -this.id=Util.uniqid.get();this.initializedPixelData=this.originalPixelData=null;this.cropCoordinates={x:0,y:0};this.cropped=false;this.resized=false;this.pixelStack=[];this.layerStack=[];this.canvasQueue=[];this.currentLayer=null;this.scaled=false;this.analyze=new Analyze(this);this.renderer=new Renderer(this);this.domIsLoaded(function(){_this.parseArguments(args);return _this.setup();});return this;}else{return new Caman(arguments);}} -Caman.prototype.domIsLoaded=function(cb){var listener,_this=this;if(Caman.NodeJS){return setTimeout(function(){return cb.call(_this);},0);}else{if(document.readyState==="complete"){Log.debug("DOM initialized");return setTimeout(function(){return cb.call(_this);},0);}else{listener=function(){if(document.readyState==="complete"){Log.debug("DOM initialized");return cb.call(_this);}};return document.addEventListener("readystatechange",listener,false);}}};Caman.prototype.parseArguments=function(args){var key,val,_ref,_results;if(args.length===0){throw"Invalid arguments given";} +this.id=Util.uniqid.get();this.initializedPixelData=this.originalPixelData=null;this.cropCoordinates={x:0,y:0};this.cropped=false;this.resized=false;this.rotated=false;this.rotationAngle=0;this.pixelStack=[];this.layerStack=[];this.canvasQueue=[];this.currentLayer=null;this.scaled=false;this.analyze=new Analyze(this);this.renderer=new Renderer(this);this.domIsLoaded((function(_this){return function(){_this.parseArguments(args);return _this.setup();};})(this));return this;}else{return new Caman(arguments);}} +Caman.prototype.domIsLoaded=function(cb){var listener;if(Caman.NodeJS){return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{if(document.readyState==="complete"){Log.debug("DOM initialized");return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{listener=(function(_this){return function(){if(document.readyState==="complete"){Log.debug("DOM initialized");return cb.call(_this);}};})(this);return document.addEventListener("readystatechange",listener,false);}}};Caman.prototype.parseArguments=function(args){var key,val,_ref,_results;if(args.length===0){throw"Invalid arguments given";} this.initObj=null;this.initType=null;this.imageUrl=null;this.callback=function(){};this.setInitObject(args[0]);if(args.length===1){return;} switch(typeof args[1]){case"string":this.imageUrl=args[1];break;case"function":this.callback=args[1];} if(args.length===2){return;} @@ -49,15 +49,16 @@ return this.canvas.setAttribute('data-caman-id',this.id);};Caman.prototype.hiDPI ratio=this.hiDPIRatio();if(ratio!==1){Log.debug("HiDPI ratio = "+ratio);this.scaled=true;this.preScaledWidth=this.canvas.width;this.preScaledHeight=this.canvas.height;this.canvas.width=this.preScaledWidth*ratio;this.canvas.height=this.preScaledHeight*ratio;this.canvas.style.width=""+this.preScaledWidth+"px";this.canvas.style.height=""+this.preScaledHeight+"px";this.context.scale(ratio,ratio);this.width=this.originalWidth=this.canvas.width;return this.height=this.originalHeight=this.canvas.height;}};Caman.prototype.hiDPIRatio=function(){var backingStoreRatio,devicePixelRatio;devicePixelRatio=window.devicePixelRatio||1;backingStoreRatio=this.context.webkitBackingStorePixelRatio||this.context.mozBackingStorePixelRatio||this.context.msBackingStorePixelRatio||this.context.oBackingStorePixelRatio||this.context.backingStorePixelRatio||1;return devicePixelRatio/backingStoreRatio;};Caman.prototype.hiDPICapable=function(){return(window.devicePixelRatio!=null)&&window.devicePixelRatio!==1;};Caman.prototype.needsHiDPISwap=function(){if(this.hiDPIDisabled()||!this.hiDPICapable()){return false;} return this.hiDPIReplacement()!==null;};Caman.prototype.hiDPIReplacement=function(){if(this.image==null){return null;} return this.image.getAttribute('data-caman-hidpi');};Caman.prototype.replaceCanvas=function(newCanvas){var oldCanvas;oldCanvas=this.canvas;this.canvas=newCanvas;this.context=this.canvas.getContext('2d');if(!Caman.NodeJS){oldCanvas.parentNode.replaceChild(this.canvas,oldCanvas);} -this.width=this.canvas.width;this.height=this.canvas.height;this.reloadCanvasData();return this.dimensions={width:this.canvas.width,height:this.canvas.height};};Caman.prototype.render=function(callback){var _this=this;if(callback==null){callback=function(){};} -Event.trigger(this,"renderStart");return this.renderer.execute(function(){_this.context.putImageData(_this.imageData,0,0);return callback.call(_this);});};Caman.prototype.revert=function(updateContext){var i,pixel,_i,_len,_ref;if(updateContext==null){updateContext=true;} +this.width=this.canvas.width;this.height=this.canvas.height;this.reloadCanvasData();return this.dimensions={width:this.canvas.width,height:this.canvas.height};};Caman.prototype.render=function(callback){if(callback==null){callback=function(){};} +Event.trigger(this,"renderStart");return this.renderer.execute((function(_this){return function(){_this.context.putImageData(_this.imageData,0,0);return callback.call(_this);};})(this));};Caman.prototype.revert=function(updateContext){var i,pixel,_i,_len,_ref;if(updateContext==null){updateContext=true;} if(!Caman.allowRevert){throw"Revert disabled";} _ref=this.originalVisiblePixels();for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.pixelData[i]=pixel;} if(updateContext){return this.context.putImageData(this.imageData,0,0);}};Caman.prototype.reset=function(){var canvas,ctx,i,imageData,pixel,pixelData,_i,_len,_ref;canvas=document.createElement('canvas');Util.copyAttributes(this.canvas,canvas);canvas.width=this.originalWidth;canvas.height=this.originalHeight;ctx=canvas.getContext('2d');imageData=ctx.getImageData(0,0,canvas.width,canvas.height);pixelData=imageData.data;_ref=this.initializedPixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];pixelData[i]=pixel;} -ctx.putImageData(imageData,0,0);this.cropCoordinates={x:0,y:0};this.resized=false;return this.replaceCanvas(canvas);};Caman.prototype.originalVisiblePixels=function(){var canvas,coord,ctx,endX,endY,i,imageData,pixel,pixelData,pixels,scaledCanvas,startX,startY,width,_i,_j,_len,_ref,_ref1,_ref2,_ref3;if(!Caman.allowRevert){throw"Revert disabled";} +ctx.putImageData(imageData,0,0);this.cropCoordinates={x:0,y:0};this.resized=false;return this.replaceCanvas(canvas);};Caman.prototype.originalVisiblePixels=function(){var canvas,coord,ctx,endX,endY,i,imageData,pixel,pixelData,pixels,rotatedCanvas,rotatedCanvasCtx,scaledCanvas,startX,startY,width,x,y,_i,_j,_k,_len,_len1,_ref,_ref1,_ref2,_ref3,_ref4;if(!Caman.allowRevert){throw"Revert disabled";} pixels=[];startX=this.cropCoordinates.x;endX=startX+this.width;startY=this.cropCoordinates.y;endY=startY+this.height;if(this.resized){canvas=document.createElement('canvas');canvas.width=this.originalWidth;canvas.height=this.originalHeight;ctx=canvas.getContext('2d');imageData=ctx.getImageData(0,0,canvas.width,canvas.height);pixelData=imageData.data;_ref=this.originalPixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];pixelData[i]=pixel;} -ctx.putImageData(imageData,0,0);scaledCanvas=document.createElement('canvas');scaledCanvas.width=this.width;scaledCanvas.height=this.height;ctx=scaledCanvas.getContext('2d');ctx.drawImage(canvas,0,0,this.originalWidth,this.originalHeight,0,0,this.width,this.height);pixelData=ctx.getImageData(0,0,this.width,this.height).data;width=this.width;}else{pixelData=this.originalPixelData;width=this.originalWidth;} -for(i=_j=0,_ref1=pixelData.length;_j<_ref1;i=_j+=4){coord=Pixel.locationToCoordinates(i,width);if(((startX<=(_ref2=coord.x)&&_ref2_ref;i=0<=_ref?++_i:--_i){divisor+=adjust[i];}} @@ -70,7 +71,7 @@ _results=[];for(_i=0,_len=imgs.length;_i<_len;_i++){img=imgs[_i];_results.push(p return _results;};if(Caman.autoload){(function(){if(document.readyState==="complete"){return Caman.DOMUpdated();}else{return document.addEventListener("DOMContentLoaded",Caman.DOMUpdated,false);}})();} CamanParser=(function(){var INST_REGEX;INST_REGEX="(\\w+)\\((.*?)\\)";function CamanParser(ele,ready){this.dataStr=ele.getAttribute('data-caman');this.caman=Caman(ele,ready.bind(this));} CamanParser.prototype.parse=function(){var args,e,filter,func,inst,instFunc,m,r,unparsedInstructions,_i,_len,_ref,_results;this.ele=this.caman.canvas;r=new RegExp(INST_REGEX,'g');unparsedInstructions=this.dataStr.match(r);if(!(unparsedInstructions.length>0)){return;} -r=new RegExp(INST_REGEX);_results=[];for(_i=0,_len=unparsedInstructions.length;_i<_len;_i++){inst=unparsedInstructions[_i];_ref=inst.match(r),m=_ref[0],filter=_ref[1],args=_ref[2];instFunc=new Function("return function() { this."+filter+"("+args+"); };");try{func=instFunc();_results.push(func.call(this.caman));}catch(_error){e=_error;_results.push(Log.debug(e));}} +r=new RegExp(INST_REGEX);_results=[];for(_i=0,_len=unparsedInstructions.length;_i<_len;_i++){inst=unparsedInstructions[_i];_ref=inst.match(r),m=_ref[0],filter=_ref[1],args=_ref[2];instFunc=new Function("return function() { this."+filter+"("+args+"); };");try{func=instFunc();_results.push(func.call(this.caman));}catch(_error){e=_error;_results.push(Log.debug(e));}} return _results;};CamanParser.prototype.execute=function(){var ele;ele=this.ele;return this.caman.render(function(){return ele.parentNode.replaceChild(this.toImage(),ele);});};return CamanParser;})();Caman.Blender=(function(){function Blender(){} Blender.blenders={};Blender.register=function(name,func){return this.blenders[name]=func;};Blender.execute=function(name,rgbaLayer,rgbaParent){return this.blenders[name](rgbaLayer,rgbaParent);};return Blender;})();Blender=Caman.Blender;Caman.Calculate=(function(){function Calculate(){} Calculate.distance=function(x1,y1,x2,y2){return Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));};Calculate.randomRange=function(min,max,getFloat){var rand;if(getFloat==null){getFloat=false;} @@ -82,8 +83,8 @@ bezier={};lerp=function(a,b,t){return a*(1-t)+b*t;};clamp=function(a,min,max){re prev=next;} bezier[Math.round(prev[0][0])]=Math.round(clamp(prev[0][1],lowBound,highBound));} endX=controlPoints[controlPoints.length-1][0];bezier=Caman.Calculate.missingValues(bezier,endX);if(bezier[endX]==null){bezier[endX]=bezier[endX-1];} -return bezier;};Calculate.hermite=function(controlPoints,lowBound,highBound){var add,clamp,count,endX,fac0,fac1,fac2,fac3,i,j,lerp,m0,m1,mul,p,p0,p1,pointsPerSegment,pointsPerStep,pos,ret,sub,t,_i,_j,_ref,_this=this;if(controlPoints.length<2){throw"Invalid number of arguments to hermite";} -ret={};lerp=function(a,b,t){return a*(1-t)+b*t;};add=function(a,b,c,d){return[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]];};mul=function(a,b){return[a[0]*b[0],a[1]*b[1]];};sub=function(a,b){return[a[0]-b[0],a[1]-b[1]];};clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};count=0;for(i=_i=0,_ref=controlPoints.length-2;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){p0=controlPoints[i];p1=controlPoints[i+1];pointsPerSegment=p1[0]-p0[0];pointsPerStep=1/pointsPerSegment;if(i===controlPoints.length-2){pointsPerStep=1/(pointsPerSegment-1);} +return bezier;};Calculate.hermite=function(controlPoints,lowBound,highBound){var add,clamp,count,endX,fac0,fac1,fac2,fac3,i,j,lerp,m0,m1,mul,p,p0,p1,pointsPerSegment,pointsPerStep,pos,ret,sub,t,_i,_j,_ref;if(controlPoints.length<2){throw"Invalid number of arguments to hermite";} +ret={};lerp=function(a,b,t){return a*(1-t)+b*t;};add=(function(_this){return function(a,b,c,d){return[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]];};})(this);mul=(function(_this){return function(a,b){return[a[0]*b[0],a[1]*b[1]];};})(this);sub=(function(_this){return function(a,b){return[a[0]-b[0],a[1]-b[1]];};})(this);clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};count=0;for(i=_i=0,_ref=controlPoints.length-2;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){p0=controlPoints[i];p1=controlPoints[i+1];pointsPerSegment=p1[0]-p0[0];pointsPerStep=1/pointsPerSegment;if(i===controlPoints.length-2){pointsPerStep=1/(pointsPerSegment-1);} p=i>0?controlPoints[i-1]:p0;m0=mul(sub(p1,p),[0.5,0.5]);p=i=pointsPerSegment;j=0<=pointsPerSegment?++_j:--_j){t=j*pointsPerStep;fac0=2.0*t*t*t-3.0*t*t+1.0;fac1=t*t*t-2.0*t*t+t;fac2=-2.0*t*t*t+3.0*t*t;fac3=t*t*t-t*t;pos=add(mul(p0,[fac0,fac0]),mul(m0,[fac1,fac1]),mul(p1,[fac2,fac2]),mul(m1,[fac3,fac3]));ret[Math.round(pos[0])]=Math.round(clamp(pos[1],lowBound,highBound));count+=1;}} endX=controlPoints[controlPoints.length-1][0];ret=Caman.Calculate.missingValues(ret,endX);return ret;};Calculate.missingValues=function(values,endX){var i,j,leftCoord,ret,rightCoord,_i,_j;if(Object.keys(values).length=endX;i=0<=endX?++_i:--_i){if(values[i]!=null){ret[i]=values[i];}else{leftCoord=[i-1,ret[i-1]];for(j=_j=i;i<=endX?_j<=endX:_j>=endX;j=i<=endX?++_j:--_j){if(values[j]!=null){rightCoord=[j,values[j]];break;}} ret[i]=leftCoord[1]+((rightCoord[1]-leftCoord[1])/(rightCoord[0]-leftCoord[0]))*(i-leftCoord[0]);}} @@ -158,7 +159,7 @@ Plugin.plugins={};Plugin.register=function(name,plugin){return this.plugins[name Renderer.prototype.add=function(job){if(job==null){return;} return this.renderQueue.push(job);};Renderer.prototype.processNext=function(){var layer;if(this.renderQueue.length===0){Event.trigger(this,"renderFinished");if(this.finishedFn!=null){this.finishedFn.call(this.c);} return this;} -this.currentJob=this.renderQueue.shift();switch(this.currentJob.type){case Filter.Type.LayerDequeue:layer=this.c.canvasQueue.shift();this.c.executeLayer(layer);return this.processNext();case Filter.Type.LayerFinished:this.c.applyCurrentLayer();this.c.popContext();return this.processNext();case Filter.Type.LoadOverlay:return this.loadOverlay(this.currentJob.layer,this.currentJob.src);case Filter.Type.Plugin:return this.executePlugin();default:return this.executeFilter();}};Renderer.prototype.execute=function(callback){this.finishedFn=callback;this.modPixelData=Util.dataArray(this.c.pixelData.length);return this.processNext();};Renderer.prototype.eachBlock=function(fn){var blockN,blockPixelLength,bnum,end,f,i,lastBlockN,n,start,_i,_ref,_results,_this=this;this.blocksDone=0;n=this.c.pixelData.length;blockPixelLength=Math.floor((n/4)/Renderer.Blocks);blockN=blockPixelLength*4;lastBlockN=blockN+((n/4)%Renderer.Blocks)*4;_results=[];for(i=_i=0,_ref=Renderer.Blocks;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){start=i*blockN;end=start+(i===Renderer.Blocks-1?lastBlockN:blockN);if(Caman.NodeJS){f=Fiber(function(){return fn.call(_this,i,start,end);});bnum=f.run();_results.push(this.blockFinished(bnum));}else{_results.push(setTimeout((function(i,start,end){return function(){return fn.call(_this,i,start,end);};})(i,start,end),0));}} +this.currentJob=this.renderQueue.shift();switch(this.currentJob.type){case Filter.Type.LayerDequeue:layer=this.c.canvasQueue.shift();this.c.executeLayer(layer);return this.processNext();case Filter.Type.LayerFinished:this.c.applyCurrentLayer();this.c.popContext();return this.processNext();case Filter.Type.LoadOverlay:return this.loadOverlay(this.currentJob.layer,this.currentJob.src);case Filter.Type.Plugin:return this.executePlugin();default:return this.executeFilter();}};Renderer.prototype.execute=function(callback){this.finishedFn=callback;this.modPixelData=Util.dataArray(this.c.pixelData.length);return this.processNext();};Renderer.prototype.eachBlock=function(fn){var blockN,blockPixelLength,bnum,end,f,i,lastBlockN,n,start,_i,_ref,_results;this.blocksDone=0;n=this.c.pixelData.length;blockPixelLength=Math.floor((n/4)/Renderer.Blocks);blockN=blockPixelLength*4;lastBlockN=blockN+((n/4)%Renderer.Blocks)*4;_results=[];for(i=_i=0,_ref=Renderer.Blocks;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){start=i*blockN;end=start+(i===Renderer.Blocks-1?lastBlockN:blockN);if(Caman.NodeJS){f=Fiber((function(_this){return function(){return fn.call(_this,i,start,end);};})(this));bnum=f.run();_results.push(this.blockFinished(bnum));}else{_results.push(setTimeout((function(_this){return function(i,start,end){return function(){return fn.call(_this,i,start,end);};};})(this)(i,start,end),0));}} return _results;};Renderer.prototype.executeFilter=function(){Event.trigger(this.c,"processStart",this.currentJob);if(this.currentJob.type===Filter.Type.Single){return this.eachBlock(this.renderBlock);}else{return this.eachBlock(this.renderKernel);}};Renderer.prototype.executePlugin=function(){Log.debug("Executing plugin "+this.currentJob.plugin);Plugin.execute(this.c,this.currentJob.plugin,this.currentJob.args);Log.debug("Plugin "+this.currentJob.plugin+" finished!");return this.processNext();};Renderer.prototype.renderBlock=function(bnum,start,end){var i,pixel,_i;Log.debug("Block #"+bnum+" - Filter: "+this.currentJob.name+", Start: "+start+", End: "+end);Event.trigger(this.c,"blockStarted",{blockNum:bnum,totalBlocks:Renderer.Blocks,startPixel:start,endPixel:end});pixel=new Pixel();pixel.setContext(this.c);for(i=_i=start;_i=builder;j=-builder<=builder?++_j:--_j){for(k=_k=builder;builder<=-builder?_k<=-builder:_k>=-builder;k=builder<=-builder?++_k:--_k){p=pixel.getPixelRelative(j,k);kernel[builderIndex*3]=p.r;kernel[builderIndex*3+1]=p.g;kernel[builderIndex*3+2]=p.b;builderIndex++;}} res=this.processKernel(adjust,kernel,divisor,bias);this.modPixelData[i]=Util.clampRGB(res.r);this.modPixelData[i+1]=Util.clampRGB(res.g);this.modPixelData[i+2]=Util.clampRGB(res.b);this.modPixelData[i+3]=this.c.pixelData[i+3];} @@ -166,8 +167,8 @@ if(Caman.NodeJS){return Fiber["yield"](bnum);}else{return this.blockFinished(bnu this.blocksDone++;Event.trigger(this.c,"blockFinished",{blockNum:bnum,blocksFinished:this.blocksDone,totalBlocks:Renderer.Blocks});if(this.blocksDone===Renderer.Blocks){if(this.currentJob.type===Filter.Type.Kernel){for(i=_i=0,_ref=this.c.pixelData.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){this.c.pixelData[i]=this.modPixelData[i];}} if(bnum>=0){Log.debug("Filter "+this.currentJob.name+" finished!");} Event.trigger(this.c,"processComplete",this.currentJob);return this.processNext();}};Renderer.prototype.processKernel=function(adjust,kernel,divisor,bias){var i,val,_i,_ref;val={r:0,g:0,b:0};for(i=_i=0,_ref=adjust.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){val.r+=adjust[i]*kernel[i*3];val.g+=adjust[i]*kernel[i*3+1];val.b+=adjust[i]*kernel[i*3+2];} -val.r=(val.r/divisor)+bias;val.g=(val.g/divisor)+bias;val.b=(val.b/divisor)+bias;return val;};Renderer.prototype.loadOverlay=function(layer,src){var img,proxyUrl,_this=this;img=new Image();img.onload=function(){layer.context.drawImage(img,0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.imageData=layer.context.getImageData(0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.pixelData=layer.imageData.data;_this.c.pixelData=layer.pixelData;return _this.processNext();};proxyUrl=IO.remoteCheck(src);return img.src=proxyUrl!=null?proxyUrl:src;};return Renderer;})();Renderer=Caman.Renderer;Caman.Store=(function(){function Store(){} -Store.items={};Store.has=function(search){return this.items[search]!=null;};Store.get=function(search){return this.items[search];};Store.put=function(name,obj){return this.items[name]=obj;};Store.execute=function(search,callback){var _this=this;setTimeout(function(){return callback.call(_this.get(search),_this.get(search));},0);return this.get(search);};Store.flush=function(name){if(name==null){name=false;} +val.r=(val.r/divisor)+bias;val.g=(val.g/divisor)+bias;val.b=(val.b/divisor)+bias;return val;};Renderer.prototype.loadOverlay=function(layer,src){var img,proxyUrl;img=new Image();img.onload=(function(_this){return function(){layer.context.drawImage(img,0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.imageData=layer.context.getImageData(0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.pixelData=layer.imageData.data;_this.c.pixelData=layer.pixelData;return _this.processNext();};})(this);proxyUrl=IO.remoteCheck(src);return img.src=proxyUrl!=null?proxyUrl:src;};return Renderer;})();Renderer=Caman.Renderer;Caman.Store=(function(){function Store(){} +Store.items={};Store.has=function(search){return this.items[search]!=null;};Store.get=function(search){return this.items[search];};Store.put=function(name,obj){return this.items[name]=obj;};Store.execute=function(search,callback){setTimeout((function(_this){return function(){return callback.call(_this.get(search),_this.get(search));};})(this),0);return this.get(search);};Store.flush=function(name){if(name==null){name=false;} if(name){return delete this.items[name];}else{return this.items={};}};return Store;})();Store=Caman.Store;Blender.register("normal",function(rgbaLayer,rgbaParent){return{r:rgbaLayer.r,g:rgbaLayer.g,b:rgbaLayer.b};});Blender.register("multiply",function(rgbaLayer,rgbaParent){return{r:(rgbaLayer.r*rgbaParent.r)/255,g:(rgbaLayer.g*rgbaParent.g)/255,b:(rgbaLayer.b*rgbaParent.b)/255};});Blender.register("screen",function(rgbaLayer,rgbaParent){return{r:255-(((255-rgbaLayer.r)*(255-rgbaParent.r))/255),g:255-(((255-rgbaLayer.g)*(255-rgbaParent.g))/255),b:255-(((255-rgbaLayer.b)*(255-rgbaParent.b))/255)};});Blender.register("overlay",function(rgbaLayer,rgbaParent){var result;result={};result.r=rgbaParent.r>128?255-2*(255-rgbaLayer.r)*(255-rgbaParent.r)/255:(rgbaParent.r*rgbaLayer.r*2)/255;result.g=rgbaParent.g>128?255-2*(255-rgbaLayer.g)*(255-rgbaParent.g)/255:(rgbaParent.g*rgbaLayer.g*2)/255;result.b=rgbaParent.b>128?255-2*(255-rgbaLayer.b)*(255-rgbaParent.b)/255:(rgbaParent.b*rgbaLayer.b*2)/255;return result;});Blender.register("difference",function(rgbaLayer,rgbaParent){return{r:rgbaLayer.r-rgbaParent.r,g:rgbaLayer.g-rgbaParent.g,b:rgbaLayer.b-rgbaParent.b};});Blender.register("addition",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r+rgbaLayer.r,g:rgbaParent.g+rgbaLayer.g,b:rgbaParent.b+rgbaLayer.b};});Blender.register("exclusion",function(rgbaLayer,rgbaParent){return{r:128-2*(rgbaParent.r-128)*(rgbaLayer.r-128)/255,g:128-2*(rgbaParent.g-128)*(rgbaLayer.g-128)/255,b:128-2*(rgbaParent.b-128)*(rgbaLayer.b-128)/255};});Blender.register("softLight",function(rgbaLayer,rgbaParent){var result;result={};result.r=rgbaParent.r>128?255-((255-rgbaParent.r)*(255-(rgbaLayer.r-128)))/255:(rgbaParent.r*(rgbaLayer.r+128))/255;result.g=rgbaParent.g>128?255-((255-rgbaParent.g)*(255-(rgbaLayer.g-128)))/255:(rgbaParent.g*(rgbaLayer.g+128))/255;result.b=rgbaParent.b>128?255-((255-rgbaParent.b)*(255-(rgbaLayer.b-128)))/255:(rgbaParent.b*(rgbaLayer.b+128))/255;return result;});Blender.register("lighten",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r>rgbaLayer.r?rgbaParent.r:rgbaLayer.r,g:rgbaParent.g>rgbaLayer.g?rgbaParent.g:rgbaLayer.g,b:rgbaParent.b>rgbaLayer.b?rgbaParent.b:rgbaLayer.b};});Blender.register("darken",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r>rgbaLayer.r?rgbaLayer.r:rgbaParent.r,g:rgbaParent.g>rgbaLayer.g?rgbaLayer.g:rgbaParent.g,b:rgbaParent.b>rgbaLayer.b?rgbaLayer.b:rgbaParent.b};});Filter.register("fillColor",function(){var color;if(arguments.length===1){color=Convert.hexToRGB(arguments[0]);}else{color={r:arguments[0],g:arguments[1],b:arguments[2]};} return this.process("fillColor",function(rgba){rgba.r=color.r;rgba.g=color.g;rgba.b=color.b;rgba.a=255;return rgba;});});Filter.register("brightness",function(adjust){adjust=Math.floor(255*(adjust/100));return this.process("brightness",function(rgba){rgba.r+=adjust;rgba.g+=adjust;rgba.b+=adjust;return rgba;});});Filter.register("saturation",function(adjust){adjust*=-0.01;return this.process("saturation",function(rgba){var max;max=Math.max(rgba.r,rgba.g,rgba.b);if(rgba.r!==max){rgba.r+=(max-rgba.r)*adjust;} if(rgba.g!==max){rgba.g+=(max-rgba.g)*adjust;} @@ -238,7 +239,7 @@ return this;});Caman.Filter.register("sinCity",function(){this.contrast(100);thi this.brightness(10);this.newLayer(function(){this.setBlendingMode("multiply");this.opacity(80);this.copyParent();this.filter.gamma(0.8);this.filter.contrast(50);return this.filter.exposure(10);});this.newLayer(function(){this.setBlendingMode("softLight");this.opacity(80);return this.fillColor("#f49600");});this.exposure(20);this.gamma(0.8);if(vignette){return this.vignette("45%",20);}});Caman.Filter.register("hazyDays",function(){this.gamma(1.2);this.newLayer(function(){this.setBlendingMode("overlay");this.opacity(60);this.copyParent();this.filter.channels({red:5});return this.filter.stackBlur(15);});this.newLayer(function(){this.setBlendingMode("addition");this.opacity(40);return this.fillColor("#6899ba");});this.newLayer(function(){this.setBlendingMode("multiply");this.opacity(35);this.copyParent();this.filter.brightness(40);this.filter.vibrance(40);this.filter.exposure(30);this.filter.contrast(15);this.filter.curves('r',[0,40],[128,128],[128,128],[255,215]);this.filter.curves('g',[0,40],[128,128],[128,128],[255,215]);this.filter.curves('b',[0,40],[128,128],[128,128],[255,215]);return this.filter.stackBlur(5);});this.curves('r',[20,0],[128,158],[128,128],[235,255]);this.curves('g',[20,0],[128,128],[128,128],[235,255]);this.curves('b',[20,0],[128,108],[128,128],[235,255]);return this.vignette("45%",20);});Caman.Filter.register("herMajesty",function(){this.brightness(40);this.colorize("#ea1c5d",10);this.curves('b',[0,10],[128,180],[190,190],[255,255]);this.newLayer(function(){this.setBlendingMode('overlay');this.opacity(50);this.copyParent();this.filter.gamma(0.7);return this.newLayer(function(){this.setBlendingMode('normal');this.opacity(60);return this.fillColor('#ea1c5d');});});this.newLayer(function(){this.setBlendingMode('multiply');this.opacity(60);this.copyParent();this.filter.saturation(50);this.filter.hue(90);return this.filter.contrast(10);});this.gamma(1.4);this.vibrance(-30);this.newLayer(function(){this.opacity(10);return this.fillColor('#e5f0ff');});return this;});Caman.Filter.register("nostalgia",function(){this.saturation(20);this.gamma(1.4);this.greyscale();this.contrast(5);this.sepia(100);this.channels({red:8,blue:2,green:4});this.gamma(0.8);this.contrast(5);this.exposure(10);this.newLayer(function(){this.setBlendingMode('overlay');this.copyParent();this.opacity(55);return this.filter.stackBlur(10);});return this.vignette("50%",30);});Caman.Filter.register("hemingway",function(){this.greyscale();this.contrast(10);this.gamma(0.9);this.newLayer(function(){this.setBlendingMode("multiply");this.opacity(40);this.copyParent();this.filter.exposure(15);this.filter.contrast(15);return this.filter.channels({green:10,red:5});});this.sepia(30);this.curves('rgb',[0,10],[120,90],[180,200],[235,255]);this.channels({red:5,green:-2});return this.exposure(15);});Caman.Filter.register("concentrate",function(){this.sharpen(40);this.saturation(-50);this.channels({red:3});this.newLayer(function(){this.setBlendingMode("multiply");this.opacity(80);this.copyParent();this.filter.sharpen(5);this.filter.contrast(50);this.filter.exposure(10);return this.filter.channels({blue:5});});return this.brightness(10);});Caman.Plugin.register("rotate",function(degrees){var angle,canvas,ctx,height,to_radians,width,x,y;angle=degrees%360;if(angle===0){return this.dimensions={width:this.canvas.width,height:this.canvas.height};} to_radians=Math.PI/180;if(typeof exports!=="undefined"&&exports!==null){canvas=new Canvas();}else{canvas=document.createElement('canvas');Util.copyAttributes(this.canvas,canvas);} if(angle===90||angle===-270||angle===270||angle===-90){width=this.canvas.height;height=this.canvas.width;x=width/2;y=height/2;}else if(angle===180){width=this.canvas.width;height=this.canvas.height;x=width/2;y=height/2;}else{width=Math.sqrt(Math.pow(this.originalWidth,2)+Math.pow(this.originalHeight,2));height=width;x=this.canvas.height/2;y=this.canvas.width/2;} -canvas.width=width;canvas.height=height;ctx=canvas.getContext('2d');ctx.save();ctx.translate(x,y);ctx.rotate(angle*to_radians);ctx.drawImage(this.canvas,-this.canvas.width/2,-this.canvas.height/2,this.canvas.width,this.canvas.height);ctx.restore();return this.replaceCanvas(canvas);});Caman.Filter.register("rotate",function(){return this.processPlugin("rotate",Array.prototype.slice.call(arguments,0));});(function(){var BlurStack,mul_table,shg_table;mul_table=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];shg_table=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];BlurStack=function(){this.r=0;this.g=0;this.b=0;this.a=0;return this.next=null;};Caman.Plugin.register("stackBlur",function(radius){var b_in_sum,b_out_sum,b_sum,div,g_in_sum,g_out_sum,g_sum,height,heightMinus1,i,mul_sum,p,pb,pg,pixels,pr,r_in_sum,r_out_sum,r_sum,radiusPlus1,rbs,shg_sum,stack,stackEnd,stackIn,stackOut,stackStart,sumFactor,w4,width,widthMinus1,x,y,yi,yp,yw,_i,_j,_k,_l,_m,_n,_o,_p,_q;if(isNaN(radius)||radius<1){return;} +canvas.width=width;canvas.height=height;ctx=canvas.getContext('2d');ctx.save();ctx.translate(x,y);ctx.rotate(angle*to_radians);ctx.drawImage(this.canvas,-this.canvas.width/2,-this.canvas.height/2,this.canvas.width,this.canvas.height);ctx.restore();this.rotationAngle+=degrees;this.rotated=true;return this.replaceCanvas(canvas);});Caman.Filter.register("rotate",function(){return this.processPlugin("rotate",Array.prototype.slice.call(arguments,0));});(function(){var BlurStack,mul_table,shg_table;mul_table=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];shg_table=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];BlurStack=function(){this.r=0;this.g=0;this.b=0;this.a=0;return this.next=null;};Caman.Plugin.register("stackBlur",function(radius){var b_in_sum,b_out_sum,b_sum,div,g_in_sum,g_out_sum,g_sum,height,heightMinus1,i,mul_sum,p,pb,pg,pixels,pr,r_in_sum,r_out_sum,r_sum,radiusPlus1,rbs,shg_sum,stack,stackEnd,stackIn,stackOut,stackStart,sumFactor,w4,width,widthMinus1,x,y,yi,yp,yw,_i,_j,_k,_l,_m,_n,_o,_p,_q;if(isNaN(radius)||radius<1){return;} radius|=0;pixels=this.pixelData;width=this.dimensions.width;height=this.dimensions.height;div=radius+radius+1;w4=width<<2;widthMinus1=width-1;heightMinus1=height-1;radiusPlus1=radius+1;sumFactor=radiusPlus1*(radiusPlus1+1)/2;stackStart=new BlurStack();stack=stackStart;for(i=_i=1;1<=div?_idiv;i=1<=div?++_i:--_i){stack=stack.next=new BlurStack();if(i===radiusPlus1){stackEnd=stack;}} stack.next=stackStart;stackIn=null;stackOut=null;yw=yi=0;mul_sum=mul_table[radius];shg_sum=shg_table[radius];for(y=_j=0;0<=height?_jheight;y=0<=height?++_j:--_j){r_in_sum=g_in_sum=b_in_sum=r_sum=g_sum=b_sum=0;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=_k=0;0<=radiusPlus1?_kradiusPlus1;i=0<=radiusPlus1?++_k:--_k){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} for(i=_l=1;1<=radiusPlus1?_lradiusPlus1;i=1<=radiusPlus1?++_l:--_l){p=yi+((widthMinus135?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4K,2k,2b,D,54,3S,1X,2Q,6B,R,2N,4V,39,1Y,3L,28,2w,1P,7V,32,1v,fs,6y,7Z,5f,9y,6s=[].fb||A(bS){W(M i=0,l=o.P;iE){u E}u 2f};1v.5H=A(4M,3N,G){M 6l,H,1n,K,3T,1o;B(G==L){G={}}K=4M.e6;1o=[];W(H=0,1n=K.P;H<1n;H++){6l=K[H];B((G.8W!=L)&&(3T=6l.9U,6s.1w(G.8W,3T)>=0)){5I}1o.2j(3N.cR(6l.9U,6l.dd))}u 1o};1v.6F=A(P){B(P==L){P=0}B(D.2O||(4N.cC!=L)){u 1y cC(P)}u 1y 5T(P)};u 1v})();B(1r 2g!=="42"&&2g!==L){7V=2g;3S=6x(\'I\');4V=3S.4V;6B=6x(\'eQ\');fs=6x(\'fs\');6y=6x(\'6y\')}S{7V=4N}D=(A(cv){cM(D,cv);D.9w={ct:"4.1.2",cs:"7/27/de"};D.co=2r;D.6r=31;D.9t="cm";D.8t="";D.ck="df";D.2O=1r 2g!=="42"&&2g!==L;D.ci=!D.2O;D.65=A(){u"dg "+D.9w.ct+", dh "+D.9w.cs};D.9m=A(I){B(D.2O){u 31}B(1r I==="3j"){I=$(I)}B(!((I!=L)&&(I.6c!=L))){u L}u I.6c(\'29-3E-2X\')};A D(){o.6d=9x(o.6d,o);M 1k,1N,2X,1D=o;B(1l.P===0){2V"6i 1l";}B(o bY D){o.6k=o.6k.98(o);o.6H=o.6H.98(o);1k=1l[0];B(!D.2O){2X=49(D.9m(1k[0]),10);1N=1r 1k[1]==="A"?1k[1]:1r 1k[2]==="A"?1k[2]:A(){};B(!bQ(2X)&&32.bP(2X)){u 32.3O(2X,1N)}}o.2X=1v.8Z.4i();o.7D=o.5g=L;o.6z={x:0,y:0};o.bH=2r;o.7R=2r;o.6D=[];o.8S=[];o.8P=[];o.6N=L;o.bl=2r;o.du=1y 4K(o);o.4S=1y 1P(o);o.bi(A(){1D.bh(1k);u 1D.bg()});u o}S{u 1y D(1l)}}D.N.bi=A(cb){M 8H,1D=o;B(D.2O){u 8q(A(){u cb.1w(1D)},0)}S{B(2p.9q==="8D"){1Y.2x("aU aT");u 8q(A(){u cb.1w(1D)},0)}S{8H=A(){B(2p.9q==="8D"){1Y.2x("aU aT");u cb.1w(1D)}};u 2p.aS("dE",8H,2r)}}};D.N.bh=A(1k){M 2t,2f,K,1o;B(1k.P===0){2V"6i 1l aQ";}o.3b=L;o.8A=L;o.8z=L;o.1N=A(){};o.aM(1k[0]);B(1k.P===1){u}61(1r 1k[1]){2i"3j":o.8z=1k[1];4Z;2i"A":o.1N=1k[1]}B(1k.P===2){u}o.1N=1k[2];B(1k.P===4){K=1k[4];1o=[];W(2t 5h K){B(!74.1w(K,2t))5I;2f=K[2t];1o.2j(o.1F[2t]=2f)}u 1o}};D.N.aM=A(2C){B(D.2O){o.3b=2C;o.8A=\'ay\';u}B(1r 2C==="44"){o.3b=2C}S{o.3b=$(2C)}B(o.3b==L){2V"dN dO dV 1f d3 I W dX.";}u o.8A=o.3b.9U.6P()};D.N.bg=A(){61(o.8A){2i"ay":u o.cN();2i"1K":u o.cE();2i"I":u o.cx()}};D.N.cN=A(){1Y.2x("e8 W 2O");B(1r o.3b==="3j"&&o.3b.7W(/^ch?:\\/\\//)){u o.cf(o.3b,o.6d)}S B(1r o.3b==="3j"){u fs.eb(o.3b,o.6d)}S{u o.6d(L,o.3b)}};D.N.cf=A(6u,1N){M 9z;1Y.2x("fj 1f 4M "+6u);9z=6y.4i(6u,A(4p){M 7O;7O=\'\';4p.fk(\'aP\');4p.9B(\'29\',A(at){u 7O+=at});u 4p.9B(\'1Q\',A(){u 1N(L,1y fp(7O,\'aP\'))})});u 9z.9B(\'9C\',1N)};D.N.6d=A(6G,29){B(6G){2V 6G;}o.1f=1y 4V();o.1f.1G=29;1Y.2x("4V cS. cD = "+(o.5b())+", cy = "+(o.4W()));o.I=1y 3S(o.5b(),o.4W());u o.6k()};D.N.cE=A(){o.1f=o.3b;o.I=2p.3K(\'I\');o.1i=o.I.3h(\'2d\');1v.5H(o.1f,o.I,{8W:[\'1G\']});B(o.1f.7c!=L){o.1f.7c.9D(o.I,o.1f)}o.9J();u o.9L()};D.N.cx=A(){o.I=o.3b;o.1i=o.I.3h(\'2d\');B(o.8z!=L){o.1f=2p.3K(\'1K\');o.1f.1G=o.8z;o.9J();u o.9L()}S{u o.6k()}};D.N.9J=A(){B(o.9M()){1Y.2x(o.1f.1G,"->",o.8m());o.bd=31;o.1f.1G=o.8m()}B(2N.bb(o.1f)){o.1f.1G=2N.57(o.1f.1G);u 1Y.2x("fu 1f fx, fD cQ = "+o.1f.1G)}};D.N.9L=A(){B(o.cB()){u o.6H()}S{u o.1f.cr=o.6H}};D.N.cB=A(){B(!o.1f.8D){u 2r}B((o.1f.9P!=L)&&o.1f.9P===0){u 2r}u 31};D.N.5b=A(){u o.1f.F||o.1f.9P};D.N.4W=A(){u o.1f.J||o.1f.fN};D.N.6H=A(){1Y.2x("4V cS. cD = "+(o.5b())+", cy = "+(o.4W()));B(o.bd){o.I.F=o.5b()/o.7G();o.I.J=o.4W()/o.7G()}S{o.I.F=o.5b();o.I.J=o.4W()}u o.6k()};D.N.6k=A(){M i,1u,H,1n,K;B(o.1i==L){o.1i=o.I.3h(\'2d\')}o.51=o.6W=o.F=o.I.F;o.5D=o.6Y=o.J=o.I.J;o.d9();B(!o.c7()){o.c6()}B(o.1f!=L){o.1i.5U(o.1f,0,0,o.5b(),o.4W(),0,0,o.6W,o.6Y)}o.2y=o.1i.48(0,0,o.I.F,o.I.J);o.T=o.2y.29;B(D.6r){o.7D=1v.6F(o.T.P);o.5g=1v.6F(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1u=K[i];o.7D[i]=1u;o.5g[i]=1u}}o.1d={F:o.I.F,J:o.I.J};B(!D.2O){32.c4(o.2X,o)}o.1N.1w(o,o);u o.1N=A(){}};D.N.c1=A(){o.2y=o.1i.48(0,0,o.I.F,o.I.J);u o.T=o.2y.29};D.N.g3=A(){M i,1u,H,1n,K,1o;B(!D.6r){2V"a0 7F";}o.5g=1v.6F(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1u=K[i];1o.2j(o.5g[i]=1u)}u 1o};D.N.c7=A(){u D.9m(o.I)!=L};D.N.c6=A(){B(D.2O||o.I.6c(\'29-3E-2X\')){u}u o.I.cR(\'29-3E-2X\',o.2X)};D.N.aE=A(){u o.I.6c(\'29-3E-cO-7F\')!==L};D.N.d9=A(){M 4d;B(D.2O||!o.9M()){u}4d=o.7G();B(4d!==1){1Y.2x("g4 4d = "+4d);o.bl=31;o.6W=o.I.F;o.6Y=o.I.J;o.I.F=o.6W*4d;o.I.J=o.6Y*4d;o.I.c8.F=""+o.6W+"c5";o.I.c8.J=""+o.6Y+"c5";o.1i.g6(4d,4d);o.F=o.51=o.I.F;u o.J=o.5D=o.I.J}};D.N.7G=A(){M a3,4j;4j=4N.4j||1;a3=o.1i.g7||o.1i.gi||o.1i.gk||o.1i.gm||o.1i.go||1;u 4j/a3};D.N.aZ=A(){u(4N.4j!=L)&&4N.4j!==1};D.N.9M=A(){B(o.aE()||!o.aZ()){u 2r}u o.8m()!==L};D.N.8m=A(){B(o.1f==L){u L}u o.1f.6c(\'29-3E-cO\')};D.N.73=A(aD){M 7z;7z=o.I;o.I=aD;o.1i=o.I.3h(\'2d\');B(!D.2O){7z.7c.9D(o.I,7z)}o.F=o.I.F;o.J=o.I.J;o.c1();u o.1d={F:o.I.F,J:o.I.J}};D.N.a8=A(1N){M 1D=o;B(1N==L){1N=A(){}}2Q.4Y(o,"aX");u o.4S.3O(A(){1D.1i.7x(1D.2y,0,0);u 1N.1w(1D)})};D.N.gu=A(8e){M i,1u,H,1n,K;B(8e==L){8e=31}B(!D.6r){2V"a0 7F";}K=o.d2();W(i=H=0,1n=K.P;H<1n;i=++H){1u=K[i];o.T[i]=1u}B(8e){u o.1i.7x(o.2y,0,0)}};D.N.gt=A(){M I,1W,i,2y,1u,T,H,1n,K;I=2p.3K(\'I\');1v.5H(o.I,I);I.F=o.51;I.J=o.5D;1W=I.3h(\'2d\');2y=1W.48(0,0,I.F,I.J);T=2y.29;K=o.7D;W(i=H=0,1n=K.P;H<1n;i=++H){1u=K[i];T[i]=1u}1W.7x(2y,0,0);o.6z={x:0,y:0};o.7R=2r;u o.73(I)};D.N.d2=A(){M I,7E,1W,26,a6,i,2y,1u,T,Y,72,8k,8w,F,H,1e,1n,K,3T,4o,a5;B(!D.6r){2V"a0 7F";}Y=[];8k=o.6z.x;26=8k+o.F;8w=o.6z.y;a6=8w+o.J;B(o.7R){I=2p.3K(\'I\');I.F=o.51;I.J=o.5D;1W=I.3h(\'2d\');2y=1W.48(0,0,I.F,I.J);T=2y.29;K=o.5g;W(i=H=0,1n=K.P;H<1n;i=++H){1u=K[i];T[i]=1u}1W.7x(2y,0,0);72=2p.3K(\'I\');72.F=o.F;72.J=o.J;1W=72.3h(\'2d\');1W.5U(I,0,0,o.51,o.5D,0,0,o.F,o.J);T=1W.48(0,0,o.F,o.J).29;F=o.F}S{T=o.5g;F=o.51}W(i=1e=0,3T=T.P;1e<3T;i=1e+=4){7E=28.cl(i,F);B(((8k<=(4o=7E.x)&&4o<26))&&((8w<=(a5=7E.y)&&a5K;i=0<=K?++H:--H){2K+=Q[i]}}o.4S.4k({1t:R.3g.a1,1q:1q,Q:Q,2K:2K,3e:3e});u o};D.N.5a=A(4b,1k){o.4S.4k({1t:R.3g.2w,4b:4b,1k:1k});u o};D.N.2Z=A(1N){M 2a;2a=1y 39(o);o.8P.2j(2a);o.4S.4k({1t:R.3g.9Z});1N.1w(2a);o.4S.4k({1t:R.3g.9Y});u o};D.N.bm=A(2a){u o.bn(2a)};D.N.bn=A(2a){o.8S.2j(o.6N);o.6D.2j(o.T);o.6N=2a;u o.T=2a.T};D.N.bx=A(){o.T=o.6D.6o();u o.6N=o.8S.6o()};D.N.bO=A(){u o.6N.bU()};u D})(3L);7V.D=D;D.4K=(A(){A 4K(c){o.c=c}4K.N.fX=A(){M i,3B,71,H,1e,1I,K;3B={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3B.r[i]=0;3B.g[i]=0;3B.b[i]=0}W(i=1e=0,K=o.c.T.P;1e0)){u}1o=[];W(H=0,1n=6Z.P;H<1n;H++){1K=6Z[H];1o.2j(cA=1y 54(1K,A(){o.cI();u o.3O()}))}u 1o};B(D.ci){(A(){B(2p.9q==="8D"){u D.9X()}S{u 2p.aS("fT",D.9X,2r)}})()}54=(A(){M 8g;8g="(\\\\w+)\\\\((.*?)\\\\)";A 54(46,db){o.ab=46.6c(\'29-3E\');o.3E=D(46,db.98(o))}54.N.cI=A(){M 1k,e,1C,5j,9W,9V,m,r,6X,H,1n,K,1o;o.46=o.3E.I;r=1y bf(8g,\'g\');6X=o.ab.7W(r);B(!(6X.P>0)){u}r=1y bf(8g);1o=[];W(H=0,1n=6X.P;H<1n;H++){9W=6X[H];K=9W.7W(r),m=K[0],1C=K[1],1k=K[2];9V=1y fO("u A() { o."+1C+"("+1k+"); };");9S{5j=9V();1o.2j(5j.1w(o.3E))}9R(5C){e=5C;1o.2j(1Y.2x(e))}}u 1o};54.N.3O=A(){M 46;46=o.46;u o.3E.a8(A(){u 46.7c.9D(o.bJ(),46)})};u 54})();D.2k=(A(){A 2k(){}2k.9Q={};2k.V=A(1q,5j){u o.9Q[1q]=5j};2k.3O=A(1q,Z,X){u o.9Q[1q](Z,X)};u 2k})();2k=D.2k;D.2b=(A(){A 2b(){}2b.52=A(6U,6S,6R,6Q){u O.7L(O.1T(6R-6U,2)+O.1T(6Q-6S,2))};2b.ce=A(1M,1c,6M){M 4s;B(6M==L){6M=2r}4s=1M+(O.fL()*(1c-1M));B(6M){u 4s.fH(6M)}S{u O.62(4s)}};2b.6L=A(C){u(0.9O*C.r)+(0.fF*C.g)+(0.fE*C.b)};2b.2h=A(1J,4H,4G,1Q,58,59){M 2h,5r,2F,26,i,j,5s,1S,3G,t,H,1e,K;B(58==L){58=0}B(59==L){59=E}B(1J[0]bY 5T){2F=1J;58=4H;59=4G}S{2F=[1J,4H,4G,1Q]}B(2F.P<2){2V"6i 8s 9K 1l 3N 2h";}2h={};5s=A(a,b,t){u a*(1-t)+b*t};5r=A(a,1M,1c){u O.1M(O.1c(a,1M),1c)};W(i=H=0;H1){1S=[];W(j=1e=0,K=3G.P-2;0<=K?1e<=K:1e>=K;j=0<=K?++1e:--1e){1S.2j([5s(3G[j][0],3G[j+1][0],t),5s(3G[j][1],3G[j+1][1],t)])}3G=1S}2h[O.62(3G[0][0])]=O.62(5r(3G[0][1],58,59))}26=2F[2F.P-1][0];2h=D.2b.9H(2h,26);B(2h[26]==L){2h[26]=2h[26-1]}u 2h};2b.bR=A(2F,58,59){M 4k,5r,9G,26,8C,76,77,78,i,j,5s,9F,9E,4A,p,5A,5B,4u,7g,7i,3p,7k,t,H,1e,K,1D=o;B(2F.P<2){2V"6i 8s 9K 1l 3N bR";}3p={};5s=A(a,b,t){u a*(1-t)+b*t};4k=A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]};4A=A(a,b){u[a[0]*b[0],a[1]*b[1]]};7k=A(a,b){u[a[0]-b[0],a[1]-b[1]]};5r=A(a,1M,1c){u O.1M(O.1c(a,1M),1c)};9G=0;W(i=H=0,K=2F.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5A=2F[i];5B=2F[i+1];4u=5B[0]-5A[0];7g=1/4u;B(i===2F.P-2){7g=1/(4u-1)}p=i>0?2F[i-1]:5A;9F=4A(7k(5B,p),[0.5,0.5]);p=i<2F.P-2?2F[i+2]:5B;9E=4A(7k(p,5A),[0.5,0.5]);W(j=1e=0;0<=4u?1e<=4u:1e>=4u;j=0<=4u?++1e:--1e){t=j*7g;8C=2.0*t*t*t-3.0*t*t+1.0;76=t*t*t-2.0*t*t+t;77=-2.0*t*t*t+3.0*t*t;78=t*t*t-t*t;7i=4k(4A(5A,[8C,8C]),4A(9F,[76,76]),4A(5B,[77,77]),4A(9E,[78,78]));3p[O.62(7i[0])]=O.62(5r(7i[1],58,59));9G+=1}}26=2F[2F.P-1][0];3p=D.2b.9H(3p,26);u 3p};2b.9H=A(5c,26){M i,j,5F,3p,7s,H,1e;B(bc.ft(5c).P<26+1){3p={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(5c[i]!=L){3p[i]=5c[i]}S{5F=[i-1,3p[i-1]];W(j=1e=i;i<=26?1e<=26:1e>=26;j=i<=26?++1e:--1e){B(5c[j]!=L){7s=[j,5c[j]];4Z}}3p[i]=5F[1]+((7s[1]-5F[1])/(7s[0]-5F[0]))*(i-5F[0])}}u 3p}u 5c};u 2b})();2b=D.2b;D.1X=(A(){A 1X(){}1X.7u=A(3F){M b,g,r;B(3F.fr(0)==="#"){3F=3F.5d(1)}r=49(3F.5d(0,2),16);g=49(3F.5d(2,2),16);b=49(3F.5d(4,2),16);u{r:r,g:g,b:b}};1X.fq=A(r,g,b){M d,h,l,1c,1M,s;B(1r r==="44"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1c=O.1c(r,g,b);1M=O.1M(r,g,b);l=(1c+1M)/2;B(1c===1M){h=s=0}S{d=1c-1M;s=l>0.5?d/(2-1c-1M):d/(1c+1M);h=(A(){61(1c){2i r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1X.aL=A(r,g,b){M d,h,1c,1M,s,v;r/=E;g/=E;b/=E;1c=O.1c(r,g,b);1M=O.1M(r,g,b);v=1c;d=1c-1M;s=1c===0?0:d/1c;B(1c===1M){h=0}S{h=(A(){61(1c){2i r:u(g-b)/d+(g0.9A){r=O.1T((r+0.3n)/1.3n,2.4)}S{r/=12.92}B(g>0.9A){g=O.1T((g+0.3n)/1.3n,2.4)}S{g/=12.92}B(b>0.9A){b=O.1T((b+0.3n)/1.3n,2.4)}S{b/=12.92}x=r*0.fi+g*0.fh+b*0.fg;y=r*0.bp+g*0.bs+b*0.bv;z=r*0.ff+g*0.fe+b*0.fd;u{x:x*1j,y:y*1j,z:z*1j}};1X.fc=A(x,y,z){M b,g,r;x/=1j;y/=1j;z/=1j;r=(3.fa*x)+(-1.f9*y)+(-0.f8*z);g=(-0.f7*x)+(1.f6*y)+(0.f5*z);b=(0.f4*x)+(-0.f3*y)+(1.f1*z);B(r>0.9v){r=(1.3n*O.1T(r,0.9u))-0.3n}S{r*=12.92}B(g>0.9v){g=(1.3n*O.1T(g,0.9u))-0.3n}S{g*=12.92}B(b>0.9v){b=(1.3n*O.1T(b,0.9u))-0.3n}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1X.c9=A(x,y,z){M a,b,l,9s,9r,8E;B(1r x==="44"){y=x.y;z=x.z;x=x.x}9s=95.cn;9r=1j.0;8E=9n.cu;x/=9s;y/=9r;z/=8E;B(x>0.9l){x=O.1T(x,0.9k)}S{x=(7.9j*x)+0.69}B(y>0.9l){y=O.1T(y,0.9k)}S{y=(7.9j*y)+0.69}B(z>0.9l){z=O.1T(z,0.9k)}S{z=(7.9j*z)+0.69}l=cF*y-16;a=cG*(x-y);b=6a*(y-z);u{l:l,a:a,b:b}};1X.f0=A(l,a,b){M x,y,z;B(1r l==="44"){a=l.a;b=l.b;l=l.l}y=(l+16)/cF;x=y+(a/cG);z=y-(b/6a);B(x>0.9i){x=x*x*x}S{x=0.9h*(x-0.69)}B(y>0.9i){y=y*y*y}S{y=0.9h*(y-0.69)}B(z>0.9i){z=z*z*z}S{z=0.9h*(z-0.69)}u{x:x*95.cn,y:y*1j.0,z:z*9n.cu}};1X.eZ=A(r,g,b){M 9f;B(1r r==="44"){g=r.g;b=r.b;r=r.r}9f=o.b1(r,g,b);u o.c9(9f)};1X.eY=A(l,a,b){};u 1X})();1X=D.1X;D.2Q=(A(){A 2Q(){}2Q.5n={};2Q.cU=["cV","cW","aX","d0","d1","6g"];2Q.4Y=A(38,1t,29){M 6m,H,1n,K,1o;B(29==L){29=L}B(o.5n[1t]&&o.5n[1t].P){K=o.5n[1t];1o=[];W(H=0,1n=K.P;H<1n;H++){6m=K[H];B(6m.38===L||38.2X===6m.38.2X){1o.2j(6m.fn.1w(38,29))}S{1o.2j(da 0)}}u 1o}};2Q.eX=A(38,1t,fn){M 9e,9d;B(1r 38==="3j"){9d=38;9e=1t;38=L;1t=9d;fn=9e}B(6s.1w(o.cU,1t)<0){u 2r}B(!o.5n[1t]){o.5n[1t]=[]}o.5n[1t].2j({38:38,fn:fn});u 31};u 2Q})();2Q=D.2Q;D.R=(A(){A R(){}R.3g={a2:1,a1:2,9Z:3,9Y:4,9c:5,2w:6};R.V=A(1q,ah){u D.N[1q]=ah};u R})();R=D.R;D.2N=(A(){A 2N(){}2N.aq=/(?:(?:6y|ch):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2N.bb=A(1K){B(1K==L){u 2r}B(o.as(1K)){u 2r}u o.7j(1K.1G)};2N.as=A(1K){M K;u(1K.9t!=L)&&((K=1K.9t.6P())===\'cm\'||K===\'ax-eW\')};2N.7j=A(6u){M 7l;7l=6u.7W(o.aq);B(7l){u 7l[1]!==2p.eV}S{u 2r}};2N.aK=A(1G){B(o.7j(1G)){B(!D.8t.P){1Y.99("eS 3N eR a aV 1f eN a eM aY. cQ: "+1G)}S{B(D.7j(D.8t)){1Y.99("eL ax a aV aY W eK eI.");u}u o.57(1G)}}};2N.57=A(1G){u""+D.8t+"?"+D.ck+"="+(eG(1G))};2N.eD=A(5k){M 7w;7w={eC:\'eB\',eA:\'ez\',ey:\'ex\',ew:\'ev\'};5k=5k.6P();B(7w[5k]!=L){5k=7w[5k]}u"eu/es."+5k};u 2N})();D.N.bB=A(){B(1r 2g!=="42"&&2g!==L){u o.bC.4r(o,1l)}S{u o.bD.4r(o,1l)}};D.N.bD=A(1t){M 1f;B(1t==L){1t="bG"}1t=1t.6P();1f=o.94(1t).er("1f/"+1t,"1f/eq-ep");u 2p.eo.en=1f};D.N.bC=A(5R,7J,1N){M e,91;B(7J==L){7J=31}B(1N==L){1N=L}9S{91=fs.em(5R);B(91.ek()&&!7J){u 2r}}9R(5C){e=5C;1Y.2x("ej eh 5R "+5R)}u fs.eg(5R,o.I.ef(),A(6G){1Y.2x("ee ed 3N "+5R);B(1N){u 1N.1w(o,6G)}})};D.N.bJ=A(1t){M 1K;1K=1y 4V();1K.1G=o.94(1t);1K.F=o.1d.F;1K.J=o.1d.J;B(4N.4j){1K.F/=4N.4j;1K.J/=4N.4j}u 1K};D.N.94=A(1t){B(1t==L){1t="bG"}1t=1t.6P();u o.I.ec("1f/"+1t)};2N=D.2N;D.39=(A(){A 39(c){o.c=c;o.1C=o.c;o.1F={8Y:\'8X\',2q:1.0};o.ea=1v.8Z.4i();o.I=1r 2g!=="42"&&2g!==L?1y 3S():2p.3K(\'I\');o.I.F=o.c.1d.F;o.I.J=o.c.1d.J;o.1i=o.I.3h(\'2d\');o.1i.e9(o.I.F,o.I.J);o.2y=o.1i.48(0,0,o.I.F,o.I.J);o.T=o.2y.29}39.N.2Z=A(cb){u o.c.2Z.1w(o.c,cb)};39.N.3q=A(cg){o.1F.8Y=cg;u o};39.N.2q=A(2q){o.1F.2q=2q/1j;u o};39.N.4n=A(){M i,2Y,H,K;2Y=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3M<0){u 1y 28(0,0,0,E,o.c)}u o.8O(3M)};28.N.e4=A(8c,8d,C){M cP;B(o.c==L){2V"6b a 67 1i";}cP=o.U+(o.c.1d.F*4*(8d*-1))+(4*8c);B(3M>o.c.T.P||3M<0){u}o.c.T[3M]=C.r;o.c.T[3M+1]=C.g;o.c.T[3M+2]=C.b;o.c.T[3M+3]=C.a;u 31};28.N.e3=A(x,y){M U;B(o.c==L){2V"6b a 67 1i";}U=o.8U(x,y,o.F);u o.8O(U)};28.N.e2=A(x,y,C){M U;B(o.c==L){2V"6b a 67 1i";}U=o.8U(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};28.N.65=A(){u o.e1()};28.N.e0=A(8f){M 3F;B(8f==L){8f=2r}3F=\'#\'+o.r.65(16)+o.g.65(16)+o.b.65(16);B(8f){u 3F+o.a.65(16)}S{u 3F}};u 28})();28=D.28;D.2w=(A(){A 2w(){}2w.8N={};2w.V=A(1q,4b){u o.8N[1q]=4b};2w.3O=A(1i,1q,1k){u o.8N[1q].4r(1i,1k)};u 2w})();2w=D.2w;D.1P=(A(){1P.4t=D.2O?6x(\'dZ\').dY().P:4;A 1P(c){o.c=c;o.4l=9x(o.4l,o);o.6I=[];o.53=L}1P.N.4k=A(8M){B(8M==L){u}u o.6I.2j(8M)};1P.N.4l=A(){M 2a;B(o.6I.P===0){2Q.4Y(o,"d0");B(o.8L!=L){o.8L.1w(o.c)}u o}o.2c=o.6I.d4();61(o.2c.1t){2i R.3g.9Z:2a=o.c.8P.d4();o.c.bm(2a);u o.4l();2i R.3g.9Y:o.c.bO();o.c.bx();u o.4l();2i R.3g.9c:u o.d5(o.2c.2a,o.2c.1G);2i R.3g.2w:u o.d6();dW:u o.d8()}};1P.N.3O=A(1N){o.8L=1N;o.53=1v.6F(o.c.T.P);u o.4l()};1P.N.8K=A(fn){M 6T,8J,2T,1Q,f,i,8I,n,1J,H,K,1o,1D=o;o.8p=0;n=o.c.T.P;8J=O.2P((n/4)/1P.4t);6T=8J*4;8I=6T+((n/4)%1P.4t)*4;1o=[];W(i=H=0,K=1P.4t;0<=K?HK;i=0<=K?++H:--H){1J=i*6T;1Q=1J+(i===1P.4t-1?8I:6T);B(D.2O){f=6B(A(){u fn.1w(1D,i,1J,1Q)});2T=f.dU();1o.2j(o.6g(2T))}S{1o.2j(8q((A(i,1J,1Q){u A(){u fn.1w(1D,i,1J,1Q)}})(i,1J,1Q),0))}}u 1o};1P.N.d8=A(){2Q.4Y(o.c,"cV",o.2c);B(o.2c.1t===R.3g.a2){u o.8K(o.ae)}S{u o.8K(o.af)}};1P.N.d6=A(){1Y.2x("dT 4b "+o.2c.4b);2w.3O(o.c,o.2c.4b,o.2c.1k);1Y.2x("2w "+o.2c.4b+" 8G!");u o.4l()};1P.N.ae=A(2T,1J,1Q){M i,1u,H;1Y.2x("ai #"+2T+" - R: "+o.2c.1q+", dS: "+1J+", dR: "+1Q);2Q.4Y(o.c,"d1",{al:2T,am:1P.4t,dQ:1J,dP:1Q});1u=1y 28();1u.8T(o.c);W(i=H=1J;H<1Q;i=H+=4){1u.U=i;1u.r=o.c.T[i];1u.g=o.c.T[i+1];1u.b=o.c.T[i+2];1u.a=o.c.T[i+3];o.2c.7n(1u);o.c.T[i]=1v.3H(1u.r);o.c.T[i+1]=1v.3H(1u.g);o.c.T[i+2]=1v.3H(1u.b);o.c.T[i+3]=1v.3H(1u.a)}B(D.2O){u 6B["ap"](2T)}S{u o.6g(2T)}};1P.N.af=A(2T,1J,1Q){M Q,6V,3e,2U,5E,2K,i,j,k,2I,n,1q,p,1u,4p,H,1e,1I;1q=o.2c.1q;3e=o.2c.3e;2K=o.2c.2K;n=o.c.T.P;Q=o.2c.Q;6V=O.7L(Q.P);2I=[];1Y.2x("dM 2I - R: "+o.2c.1q);1J=O.1c(1J,o.c.1d.F*4*((6V-1)/2));1Q=O.1M(1Q,n-(o.c.1d.F*4*((6V-1)/2)));2U=(6V-1)/2;1u=1y 28();1u.8T(o.c);W(i=H=1J;H<1Q;i=H+=4){1u.U=i;5E=0;W(j=1e=-2U;-2U<=2U?1e<=2U:1e>=2U;j=-2U<=2U?++1e:--1e){W(k=1I=2U;2U<=-2U?1I<=-2U:1I>=-2U;k=2U<=-2U?++1I:--1I){p=1u.cJ(j,k);2I[5E*3]=p.r;2I[5E*3+1]=p.g;2I[5E*3+2]=p.b;5E++}}4p=o.3I(Q,2I,2K,3e);o.53[i]=1v.3H(4p.r);o.53[i+1]=1v.3H(4p.g);o.53[i+2]=1v.3H(4p.b);o.53[i+3]=o.c.T[i+3]}B(D.2O){u 6B["ap"](2T)}S{u o.6g(2T)}};1P.N.6g=A(2T){M i,H,K;B(2T>=0){1Y.2x("ai #"+2T+" 8G! R: "+o.2c.1q)}o.8p++;2Q.4Y(o.c,"6g",{al:2T,dL:o.8p,am:1P.4t});B(o.8p===1P.4t){B(o.2c.1t===R.3g.a1){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.53[i]}}B(2T>=0){1Y.2x("R "+o.2c.1q+" 8G!")}2Q.4Y(o.c,"cW",o.2c);u o.4l()}};1P.N.3I=A(Q,2I,2K,3e){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2I[i*3];2f.g+=Q[i]*2I[i*3+1];2f.b+=Q[i]*2I[i*3+2]}2f.r=(2f.r/2K)+3e;2f.g=(2f.g/2K)+3e;2f.b=(2f.b/2K)+3e;u 2f};1P.N.d5=A(2a,1G){M 1K,57,1D=o;1K=1y 4V();1K.cr=A(){2a.1i.5U(1K,0,0,1D.c.1d.F,1D.c.1d.J);2a.2y=2a.1i.48(0,0,1D.c.1d.F,1D.c.1d.J);2a.T=2a.2y.29;1D.c.T=2a.T;u 1D.4l()};57=2N.aK(1G);u 1K.1G=57!=L?57:1G};u 1P})();1P=D.1P;D.32=(A(){A 32(){}32.5p={};32.bP=A(4Q){u o.5p[4Q]!=L};32.4i=A(4Q){u o.5p[4Q]};32.c4=A(1q,2C){u o.5p[1q]=2C};32.3O=A(4Q,1N){M 1D=o;8q(A(){u 1N.1w(1D.4i(4Q),1D.4i(4Q))},0);u o.4i(4Q)};32.dK=A(1q){B(1q==L){1q=2r}B(1q){u aA o.5p[1q]}S{u o.5p={}}};u 32})();32=D.32;2k.V("8X",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2k.V("5o",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2k.V("dJ",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2k.V("8v",A(Z,X){M 1E;1E={};1E.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1E.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1E.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1E});2k.V("dI",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2k.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2k.V("dH",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2k.V("aI",A(Z,X){M 1E;1E={};1E.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1E.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1E.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1E});2k.V("dG",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2k.V("gx",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4B",A(){M 3c;B(1l.P===1){3c=1X.7u(1l[0])}S{3c={r:1l[0],g:1l[1],b:1l[2]}}u o.2m("4B",A(C){C.r=3c.r;C.g=3c.g;C.b=3c.b;C.a=E;u C})});R.V("3A",A(Q){Q=O.2P(E*(Q/1j));u o.2m("3A",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3D",A(Q){Q*=-0.dF;u o.2m("3D",A(C){M 1c;1c=O.1c(C.r,C.g,C.b);B(C.r!==1c){C.r+=(1c-C.r)*Q}B(C.g!==1c){C.g+=(1c-C.g)*Q}B(C.b!==1c){C.b+=(1c-C.b)*Q}u C})});R.V("3Y",A(Q){Q*=-1;u o.2m("3Y",A(C){M 1p,4E,1c;1c=O.1c(C.r,C.g,C.b);4E=(C.r+C.g+C.b)/3;1p=((O.4D(1c-4E)*2/E)*Q)/1j;B(C.r!==1c){C.r+=(1c-C.r)*1p}B(C.g!==1c){C.g+=(1c-C.g)*1p}B(C.b!==1c){C.b+=(1c-C.b)*1p}u C})});R.V("4C",A(Q){u o.2m("4C",A(C){M 4E;4E=2b.6L(C);C.r=4E;C.g=4E;C.b=4E;u C})});R.V("2u",A(Q){Q=O.1T((Q+1j)/1j,2);u o.2m("2u",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("8F",A(Q){u o.2m("8F",A(C){M b,g,h,4X,r,K;4X=1X.aL(C.r,C.g,C.b);h=4X.h*1j;h+=O.4D(Q);h=h%1j;h/=1j;4X.h=h;K=1X.aW(4X.h,4X.s,4X.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4e",A(){M 5Q,3f;B(1l.P===2){3f=1X.7u(1l[0]);5Q=1l[1]}S B(1l.P===4){3f={r:1l[0],g:1l[1],b:1l[2]};5Q=1l[3]}u o.2m("4e",A(C){C.r-=(C.r-3f.r)*(5Q/1j);C.g-=(C.g-3f.g)*(5Q/1j);C.b-=(C.b-3f.b)*(5Q/1j);u C})});R.V("b0",A(){u o.2m("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4a",A(Q){B(Q==L){Q=1j}Q/=1j;u o.2m("4a",A(C){C.r=O.1M(E,(C.r*(1-(0.dD*Q)))+(C.g*(0.dC*Q))+(C.b*(0.dB*Q)));C.g=O.1M(E,(C.r*(0.dA*Q))+(C.g*(1-(0.dz*Q)))+(C.b*(0.dy*Q)));C.b=O.1M(E,(C.r*(0.dx*Q))+(C.g*(0.dw*Q))+(C.b*(1-(0.dv*Q))));u C})});R.V("2v",A(Q){u o.2m("2v",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8n",A(Q){Q=O.4D(Q)*2.55;u o.2m("8n",A(C){M 4s;4s=2b.ce(Q*-1,Q);C.r+=4s;C.g+=4s;C.b+=4s;u C})});R.V("8l",A(Q){Q=O.4D(Q)*2.55;u o.2m("8l",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1F.3d}S{C.r-=C.r*O.4D(1F.3d)}}B(1F.4U!=L){B(1F.4U>0){C.g+=(E-C.g)*1F.4U}S{C.g-=C.g*O.4D(1F.4U)}}B(1F.41!=L){B(1F.41>0){C.b+=(E-C.b)*1F.41}S{C.b-=C.b*O.4D(1F.41)}}u C})});R.V("2e",A(){M 6O,2h,43,3J,1Q,i,5X,1J,H,1e,K,3T;43=1l[0],3J=2<=1l.P?5W.1w(1l,1):[];5X=3J[3J.P-1];B(1r 5X==="A"){6O=5X;3J.6o()}S B(1r 5X==="3j"){6O=2b[5X];3J.6o()}S{6O=2b.2h}B(1r 43==="3j"){43=43.dt("")}B(43[0]==="v"){43=[\'r\',\'g\',\'b\']}B(3J.P<2){2V"6i 8s 9K 1l 3N 2e 1C";}2h=6O(3J,0,E);1J=3J[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){2h[i]=1J[1]}}1Q=3J[3J.P-1];B(1Q[0]=E;i=3T<=E?++1e:--1e){2h[i]=1Q[1]}}u o.2m("2e",A(C){M 1I,4o;W(i=1I=0,4o=43.P;0<=4o?1I<4o:1I>4o;i=0<=4o?++1I:--1I){C[43[i]]=2h[C[43[i]]]}u C})});R.V("33",A(Q){M 4H,4G,p;p=O.4D(Q)/1j;4H=[0,E*p];4G=[E-(E*p),E];B(Q<0){4H=4H.bq();4G=4G.bq()}u o.2e(\'3f\',[0,0],4H,4G,[E,E])});D.2w.V("8Q",A(F,J,x,y){M I,1W;B(x==L){x=0}B(y==L){y=0}B(1r 2g!=="42"&&2g!==L){I=1y 3S(F,J)}S{I=2p.3K(\'I\');1v.5H(o.I,I);I.F=F;I.J=J}1W=I.3h(\'2d\');1W.5U(o.I,x,y,F,J,0,0,F,J);o.6z={x:x,y:y};o.bH=31;u o.73(I)});D.2w.V("88",A(2B){M I,1W;B(2B==L){2B=L}B(2B===L||((2B.F==L)&&(2B.J==L))){1Y.9C("6i d3 ds 1d aQ W 88");u}B(2B.F==L){2B.F=o.I.F*2B.J/o.I.J}S B(2B.J==L){2B.J=o.I.J*2B.F/o.I.F}B(1r 2g!=="42"&&2g!==L){I=1y 3S(2B.F,2B.J)}S{I=2p.3K(\'I\');1v.5H(o.I,I);I.F=2B.F;I.J=2B.J}1W=I.3h(\'2d\');1W.5U(o.I,0,0,o.I.F,o.I.J,0,0,2B.F,2B.J);o.7R=31;u o.73(I)});D.R.V("8Q",A(){u o.5a("8Q",5T.N.5f.1w(1l,0))});D.R.V("88",A(){u o.5a("88",5T.N.5f.1w(1l,0))});D.R.V("dr",A(){u o.3I("dq 85",[1,1,1,1,1,1,1,1,1])});D.R.V("dp",A(){u o.3I("do dn 85",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dm",A(){u o.3I("dl 85",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("dk",A(3C){M 2I;B(3C===0||3C===47){2I=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3C>0&&3C<90)||(3C>47&&3C<7K)){2I=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3C===90||3C===7K){2I=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2I=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3I("dj 85",2I)});D.R.V("6w",A(1p){B(1p==L){1p=1j}1p/=1j;u o.3I("di",[0,-1p,0,-1p,4*1p+1,-1p,0,-1p,0])});9y={3A:A(C,1p,G){C.r=C.r-(C.r*1p*G.3i);C.g=C.g-(C.g*1p*G.3i);C.b=C.b-(C.b*1p*G.3i);u C},2v:A(C,1p,G){C.r=O.1T(C.r/E,O.1c(10*1p*G.3i,1))*E;C.g=O.1T(C.g/E,O.1c(10*1p*G.3i,1))*E;C.b=O.1T(C.b/E,O.1c(10*1p*G.3i,1))*E;u C},4e:A(C,1p,G){C.r-=(C.r-G.3c.r)*1p;C.g-=(C.g-G.3c.g)*1p;C.b-=(C.b-G.3c.b)*1p;u C}};R.V("1V",A(1s,3i){M 2h,3t,1Q,1J;B(3i==L){3i=60}B(1r 1s==="3j"&&1s.5d(-1)==="%"){B(o.1d.J>o.1d.F){1s=o.1d.F*(49(1s.5d(0,1s.P-1),10)/1j)}S{1s=o.1d.J*(49(1s.5d(0,1s.P-1),10)/1j)}}3i/=1j;3t=[o.1d.F/2,o.1d.J/2];1J=O.7L(O.1T(3t[0],2)+O.1T(3t[1],2));1Q=1J-1s;2h=2b.2h([0,1],[30,30],[70,60],[1j,80]);u o.2m("1V",A(C){M 7m,2J,U;U=C.8R();7m=2b.52(U.x,U.y,3t[0],3t[1]);B(7m>1Q){2J=O.1c(1,(2h[O.62(((7m-1Q)/1s)*1j)]/10)*3i);C.r=O.1T(C.r/E,2J)*E;C.g=O.1T(C.g/E,2J)*E;C.b=O.1T(C.b/E,2J)*E}u C})});R.V("bX",A(G){M 4c,6j,7h,1s,H,1n,K;4c={3i:50,2G:0,9g:\'3A\',3c:{r:0,g:0,b:0}};G=1v.7N(4c,G);B(!G.1s){u o}S B(1r G.1s==="3j"){7h=49(G.1s,10)/1j;G.1s={F:o.1d.F*7h,J:o.1d.J*7h}}S B(1r G.1s==="44"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){6j=K[H];B(1r G.1s[6j]==="3j"){G.1s[6j]=o.1d[6j]*(49(G.1s[6j],10)/1j)}}}S B(G.1s==="8s"){1s=G.1s;G.1s={F:1s,J:1s}}B(1r G.2G==="3j"){G.2G=(G.1s.F/2)*(49(G.2G,10)/1j)}G.3i/=1j;G.1s.F=O.2P(G.1s.F);G.1s.J=O.2P(G.1s.J);G.1f={F:o.1d.F,J:o.1d.J};B(G.9g==="4e"&&1r G.3c==="3j"){G.3c=1X.7u(G.3c)}G.1Z={5m:(o.1d.F-G.1s.F)/2,68:o.1d.F-G.1Z.5m,5l:(o.1d.J-G.1s.J)/2,66:o.1d.J-G.1Z.5l};G.1x=[{x:G.1Z.5m+G.2G,y:G.1Z.66-G.2G},{x:G.1Z.68-G.2G,y:G.1Z.66-G.2G},{x:G.1Z.68-G.2G,y:G.1Z.5l+G.2G},{x:G.1Z.5m+G.2G,y:G.1Z.5l+G.2G}];G.4f=2b.52(0,0,G.1x[3].x,G.1x[3].y)-G.2G;u o.2m("bX",A(C){M 1p,U,4g;U=C.8R();B((U.x>G.1x[0].x&&U.xG.1Z.5l&&U.yG.1Z.5m&&U.xG.1x[3].y&&U.yG.1x[0].x&&U.xG.1Z.66){1p=(U.y-G.1Z.66)/G.4f}S B(U.y>G.1x[2].y&&U.yG.1Z.68){1p=(U.x-G.1Z.68)/G.4f}S B(U.x>G.1x[0].x&&U.xG.1x[2].y&&U.y=G.1x[0].y){4g=D.52(U.x,U.y,G.1x[0].x,G.1x[0].y);1p=(4g-G.2G)/G.4f}S B(U.x>=G.1x[1].x&&U.y>=G.1x[1].y){4g=D.52(U.x,U.y,G.1x[1].x,G.1x[1].y);1p=(4g-G.2G)/G.4f}S B(U.x>=G.1x[2].x&&U.y<=G.1x[2].y){4g=D.52(U.x,U.y,G.1x[2].x,G.1x[2].y);1p=(4g-G.2G)/G.4f}S B(U.x<=G.1x[3].x&&U.y<=G.1x[3].y){4g=D.52(U.x,U.y,G.1x[3].x,G.1x[3].y);1p=(4g-G.2G)/G.4f}B(1p<0){u C}u 9y[G.9g](C,1p,G)})});(A(){M 4v,9o,9p,64,63;64=[2S,2S,37,2S,3u,37,3v,2S,3X,3u,3y,37,3W,3v,3V,2S,4J,3X,4I,3u,4F,3y,4z,37,4x,3W,4m,3v,34,3V,4T,2S,5Z,4J,3Q,3X,5P,4I,5N,3u,34,4F,5K,3y,4O,4z,4L,37,5z,4x,5y,3W,5x,4m,5w,3v,5v,34,5u,3V,5t,4T,3P,2S,8u,5Z,8r,4J,8o,3Q,8a,3X,7Y,5P,7M,4I,4y,5N,7e,3u,5q,34,7a,4F,79,5K,4w,3y,3P,4O,8y,4z,8x,4L,8j,37,8b,5z,3Q,4x,7X,5y,7U,3W,7S,5x,7P,4m,4y,5w,5G,3v,7p,5v,7o,34,7d,5u,8B,3V,5Y,5t,4w,4T,89,3P,81,2S,cK,8u,cw,5Z,4L,8r,cq,4J,cp,8o,cj,3Q,cc,8a,ca,3X,bT,7Y,bM,5P,bK,7M,bF,4I,bE,4y,83,5N,5G,7e,84,3u,bA,5q,bz,34,by,7a,bw,4F,86,79,5Y,5K,bu,4w,bo,3y,bj,3P,ba,4O,b9,8y,b8,4z,b7,8x,b6,4L,b5,8j,b4,37,b3,8b,b2,5z,aR,3Q,aO,4x,aJ,7X,aH,5y,aF,7U,aC,3W,az,7S,aw,5x,av,7P,au,4m,ar,4y,83,5w,ao,5G,an,3v,84,7p,ak,5v,5q,7o,aj,34,ag,7d,ad,5u,9O,8B,86,3V,a9,5Y,d7,5t,cZ,4w,cY,4T,3y,89,cX,3P,cT,81,4O];63=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];9o=A(F,J,5J,5M,2H,P,c2){M 3Z,1i,2s,6U,6R,6S,6Q;3Z=1r 2g!=="42"&&2g!==L?1y 3S():2p.3K(\'I\');3Z.F=F;3Z.J=J;6U=5J+O.c0(2H)*P*0.5;6S=5M+O.bZ(2H)*P*0.5;6R=5J-O.c0(2H)*P*0.5;6Q=5M-O.bZ(2H)*P*0.5;1i=3Z.3h("2d");2s=1i.el(6U,6S,6R,6Q);B(!c2){2s.5e(0,"7H");2s.5e(1,"93")}S{2s.5e(0,"7H");2s.5e(0.5,"93");2s.5e(1,"7H")}1i.bN=2s;1i.bL(0,0,F,J);u 1i.48(0,0,F,J)};9p=A(F,J,5J,5M,6v,6t){M 3Z,1i,2s;3Z=1r 2g!=="42"&&2g!==L?1y 3S():2p.3K(\'I\');3Z.F=F;3Z.J=J;1i=3Z.3h("2d");2s=1i.et(5J,5M,6v,5J,5M,6t);2s.5e(1,"7H");2s.5e(0,"93");1i.bN=2s;1i.bL(0,0,F,J);u 1i.48(0,0,F,J)};4v=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1S=L};D.2w.V("96",A(bt,1U,br,7B){M 2n,2A,1O,5L,6q,2J,2l,2D,1L,J,3U,i,6p,2z,3o,7r,3R,6n,2L,p,1z,1B,Y,1A,2o,2E,1R,9a,1a,3a,2R,1b,4h,1m,1H,2M,5i,2W,8i,8h,5V,F,3l,x,y,1h,4R,4P,H,1e,1I,3m,3r,3s,3k,3w,3z,5O;F=o.1d.F;J=o.1d.J;3o=o.T;9a=bt.29;8h=F*J;5V=8h<<2;Y=[];W(i=H=0;0<=5V?H<5V:H>5V;i=0<=5V?++H:--H){Y[i]=3o[i]}6q=0;5i=7B;7B-=1;9I(5i-->=0){3R=(1U+0.5)|0;B(3R===0){5I}B(3R>6A){3R=6A}2J=3R+3R+1;8i=F<<2;3l=F-1;3U=J-1;1a=3R+1;2W=1a*(1a+1)/2;2M=1y 4v();4h=da 0;1b=2M;W(i=1e=1;1<=2J?1e<2J:1e>2J;i=1<=2J?++1e:--1e){1b=1b.1S=1y 4v();B(i===1a){4h=1b}}1b.1S=2M;1m=L;1H=L;4P=1h=0;2L=64[3R];2R=63[3R];W(y=1I=0;0<=J?1IJ;y=0<=J?++1I:--1I){2o=2l=2n=1R=1L=1O=0;2E=1a*(1A=Y[1h]);2D=1a*(1B=Y[1h+1]);2A=1a*(1z=Y[1h+2]);1R+=2W*1A;1L+=2W*1B;1O+=2W*1z;1b=2M;W(i=3m=0;0<=1a?3m<1a:3m>1a;i=0<=1a?++3m:--3m){1b.r=1A;1b.g=1B;1b.b=1z;1b=1b.1S}W(i=3r=1;1<=1a?3r<1a:3r>1a;i=1<=1a?++3r:--3r){p=1h+((3lF;x=0<=F?++3s:--3s){Y[1h]=(1R*2L)>>2R;Y[1h+1]=(1L*2L)>>2R;Y[1h+2]=(1O*2L)>>2R;1R-=2E;1L-=2D;1O-=2A;2E-=1m.r;2D-=1m.g;2A-=1m.b;p=(4P+((p=x+1a)<3l?p:3l))<<2;2o+=(1m.r=Y[p]);2l+=(1m.g=Y[p+1]);2n+=(1m.b=Y[p+2]);1R+=2o;1L+=2l;1O+=2n;1m=1m.1S;2E+=(1A=1H.r);2D+=(1B=1H.g);2A+=(1z=1H.b);2o-=1A;2l-=1B;2n-=1z;1H=1H.1S;1h+=4}4P+=F}W(x=3k=0;0<=F?3kF;x=0<=F?++3k:--3k){2l=2n=2o=1L=1O=1R=0;1h=x<<2;2E=1a*(1A=Y[1h]);2D=1a*(1B=Y[1h+1]);2A=1a*(1z=Y[1h+2]);1R+=2W*1A;1L+=2W*1B;1O+=2W*1z;1b=2M;W(i=3w=0;0<=1a?3w<1a:3w>1a;i=0<=1a?++3w:--3w){1b.r=1A;1b.g=1B;1b.b=1z;1b=1b.1S}4R=F;W(i=3z=1;1<=1a?3z<1a:3z>1a;i=1<=1a?++3z:--3z){1h=(4R+x)<<2;1R+=(1b.r=(1A=Y[1h]))*(3a=1a-i);1L+=(1b.g=(1B=Y[1h+1]))*3a;1O+=(1b.b=(1z=Y[1h+2]))*3a;2o+=1A;2l+=1B;2n+=1z;1b=1b.1S;B(i<3U){4R+=F}}1h=x;1m=2M;1H=4h;W(y=5O=0;0<=J?5OJ;y=0<=J?++5O:--5O){p=1h<<2;Y[p]=(1R*2L)>>2R;Y[p+1]=(1L*2L)>>2R;Y[p+2]=(1O*2L)>>2R;1R-=2E;1L-=2D;1O-=2A;2E-=1m.r;2D-=1m.g;2A-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2o+=(1m.r=Y[p]));1L+=(2l+=(1m.g=Y[p+1]));1O+=(2n+=(1m.b=Y[p+2]));1m=1m.1S;2E+=(1A=1H.r);2D+=(1B=1H.g);2A+=(1z=1H.b);2o-=1A;2l-=1B;2n-=1z;1H=1H.1S;1h+=F}}1U*=br;i=8h;9I(--i>-1){2z=i<<2;6n=(9a[2z+2]&fl)/E.0*7B;7r=6n|0;B(7r===6q){5L=6A.0*(6n-(6n|0));6p=6A-5L;3o[2z]=(3o[2z]*6p+Y[2z]*5L)>>8;3o[2z+1]=(3o[2z+1]*6p+Y[2z+1]*5L)>>8;3o[2z+2]=(3o[2z+2]*6p+Y[2z+2]*5L)>>8}S B(7r===6q+1){3o[2z]=Y[2z];3o[2z+1]=Y[2z+1];3o[2z+2]=Y[2z+2]}}6q++}u o});D.R.V("fo",A(G){M 4c,2s;4c={3t:{x:o.1d.F/2,y:o.1d.J/2},2H:45,aa:6a,7v:3,7t:1.5,5i:3};G=1v.7N(4c,G);G.2H*=O.aB/47;2s=9o(o.1d.F,o.1d.J,G.3t.x,G.3t.y,G.2H,G.aa,31);u o.5a("96",[2s,G.7v,G.7t,G.5i])});u D.R.V("fv",A(G){M 4c,2s,6v,6t;4c={1s:50,3t:{x:o.1d.F/2,y:o.1d.J/2},7v:3,7t:1.5,5i:3,1U:L};G=1v.7N(4c,G);B(!G.1U){G.1U=o.1d.F2J;i=1<=2J?++H:--H){1b=1b.1S=1y 4v();B(i===1a){4h=1b}}1b.1S=2M;1m=L;1H=L;4P=1h=0;2L=64[1U];2R=63[1U];W(y=1e=0;0<=J?1eJ;y=0<=J?++1e:--1e){2o=2l=2n=1R=1L=1O=0;2E=1a*(1A=Y[1h]);2D=1a*(1B=Y[1h+1]);2A=1a*(1z=Y[1h+2]);1R+=2W*1A;1L+=2W*1B;1O+=2W*1z;1b=2M;W(i=1I=0;0<=1a?1I<1a:1I>1a;i=0<=1a?++1I:--1I){1b.r=1A;1b.g=1B;1b.b=1z;1b=1b.1S}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3lF;x=0<=F?++3r:--3r){Y[1h]=(1R*2L)>>2R;Y[1h+1]=(1L*2L)>>2R;Y[1h+2]=(1O*2L)>>2R;1R-=2E;1L-=2D;1O-=2A;2E-=1m.r;2D-=1m.g;2A-=1m.b;p=(4P+((p=x+1U+1)<3l?p:3l))<<2;2o+=(1m.r=Y[p]);2l+=(1m.g=Y[p+1]);2n+=(1m.b=Y[p+2]);1R+=2o;1L+=2l;1O+=2n;1m=1m.1S;2E+=(1A=1H.r);2D+=(1B=1H.g);2A+=(1z=1H.b);2o-=1A;2l-=1B;2n-=1z;1H=1H.1S;1h+=4}4P+=F}W(x=3s=0;0<=F?3sF;x=0<=F?++3s:--3s){2l=2n=2o=1L=1O=1R=0;1h=x<<2;2E=1a*(1A=Y[1h]);2D=1a*(1B=Y[1h+1]);2A=1a*(1z=Y[1h+2]);1R+=2W*1A;1L+=2W*1B;1O+=2W*1z;1b=2M;W(i=3k=0;0<=1a?3k<1a:3k>1a;i=0<=1a?++3k:--3k){1b.r=1A;1b.g=1B;1b.b=1z;1b=1b.1S}4R=F;W(i=3w=1;1<=1U?3w<=1U:3w>=1U;i=1<=1U?++3w:--3w){1h=(4R+x)<<2;1R+=(1b.r=(1A=Y[1h]))*(3a=1a-i);1L+=(1b.g=(1B=Y[1h+1]))*3a;1O+=(1b.b=(1z=Y[1h+2]))*3a;2o+=1A;2l+=1B;2n+=1z;1b=1b.1S;B(i<3U){4R+=F}}1h=x;1m=2M;1H=4h;W(y=3z=0;0<=J?3zJ;y=0<=J?++3z:--3z){p=1h<<2;Y[p]=(1R*2L)>>2R;Y[p+1]=(1L*2L)>>2R;Y[p+2]=(1O*2L)>>2R;1R-=2E;1L-=2D;1O-=2A;2E-=1m.r;2D-=1m.g;2A-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2o+=(1m.r=Y[p]));1L+=(2l+=(1m.g=Y[p+1]));1O+=(2n+=(1m.b=Y[p+2]));1m=1m.1S;2E+=(1A=1H.r);2D+=(1B=1H.g);2A+=(1z=1H.b);2o-=1A;2l-=1B;2n-=1z;1H=1H.1S;1h+=F}}u o});u D.R.V("6f",A(1U){u o.5a("6f",[1U])})})();D.R.V("c3",A(Q){u o.2m("c3",A(C){M 6L;6L=(0.bp*C.r)+(0.bs*C.g)+(0.bv*C.b);B(6L35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4y,2l,2j,D,5c,43,1Z,2N,6H,R,2P,4x,3c,26,3N,2a,2w,1S,7S,33,1v,fs,6A,7C,5d,9x,6x=[].fb||A(cR){W(M i=0,l=o.P;iF){u F}u 2i};1v.6j=A(4V,3O,H){M 6B,I,1o,K,3G,1n;B(H==L){H={}}K=4V.dl;1n=[];W(I=0,1o=K.P;I<1o;I++){6B=K[I];B((H.8Q!=L)&&(3G=6B.8P,6x.1x(H.8Q,3G)>=0)){6k}1n.2r(3O.bE(6B.8P,6B.dx))}u 1n};1v.6M=A(P){B(P==L){P=0}B(D.2R||(4v.br!=L)){u 1A br(P)}u 1A 5M(P)};u 1v})();B(1r 2h!=="47"&&2h!==L){7S=2h;43=74(\'G\');4x=43.4x;6H=74(\'dz\');fs=74(\'fs\');6A=74(\'6A\')}S{7S=4v}D=(A(b9){aH(D,b9);D.9v={b0:"4.1.2",aX:"7/27/dO"};D.aE=2n;D.6O=2K;D.8K="dd";D.7X="";D.cO="e8";D.2R=1r 2h!=="47"&&2h!==L;D.cD=!D.2R;D.69=A(){u"ec "+D.9v.b0+", fc "+D.9v.aX};D.9y=A(G){B(D.2R){u 2K}B(1r G==="3g"){G=$(G)}B(!((G!=L)&&(G.5w!=L))){u L}u G.5w(\'1V-3P-2T\')};A D(){o.5v=8G(o.5v,o);M 1m,1L,2T;B(1l.P===0){2O"5A 1l";}B(o cj D){o.5t=o.5t.9A(o);o.6z=o.6z.9A(o);1m=1l[0];B(!D.2R){2T=4r(D.9y(1m[0]),10);1L=1r 1m[1]==="A"?1m[1]:1r 1m[2]==="A"?1m[2]:A(){};B(!bY(2T)&&33.bR(2T)){u 33.3V(2T,1L)}}o.2T=1v.9c.4p();o.7f=o.4M=L;o.6C={x:0,y:0};o.al=2n;o.8j=2n;o.9H=2n;o.9I=0;o.6D=[];o.9J=[];o.9K=[];o.6F=L;o.cv=2n;o.ft=1A 4y(o);o.4W=1A 1S(o);o.c9((A(1w){u A(){1w.c8(1m);u 1w.c7()}})(o));u o}S{u 1A D(1l)}}D.N.c9=A(cb){M 9S;B(D.2R){u 8f((A(1w){u A(){u cb.1x(1w)}})(o),0)}S{B(29.9T==="89"){26.2v("aj cX");u 8f((A(1w){u A(){u cb.1x(1w)}})(o),0)}S{9S=(A(1w){u A(){B(29.9T==="89"){26.2v("aj cX");u cb.1x(1w)}}})(o);u 29.cW("fA",9S,2n)}}};D.N.c8=A(1m){M 2x,2i,K,1n;B(1m.P===0){2O"5A 1l cP";}o.39=L;o.7R=L;o.7N=L;o.1L=A(){};o.cC(1m[0]);B(1m.P===1){u}6g(1r 1m[1]){2g"3g":o.7N=1m[1];5g;2g"A":o.1L=1m[1]}B(1m.P===2){u}o.1L=1m[2];B(1m.P===4){K=1m[4];1n=[];W(2x 53 K){B(!6v.1x(K,2x))6k;2i=K[2x];1n.2r(o.1I[2x]=2i)}u 1n}};D.N.cC=A(2E){B(D.2R){o.39=2E;o.7R=\'cs\';u}B(1r 2E==="46"){o.39=2E}S{o.39=$(2E)}B(o.39==L){2O"fB fC fD 1f bz G W fG.";}u o.7R=o.39.8P.6X()};D.N.c7=A(){6g(o.7R){2g"cs":u o.aZ();2g"1T":u o.aL();2g"G":u o.b8()}};D.N.aZ=A(){26.2v("gc W 2R");B(1r o.39==="3g"&&o.39.7w(/^aI?:\\/\\//)){u o.cx(o.39,o.5v)}S B(1r o.39==="3g"){u fs.gf(o.39,o.5v)}S{u o.5v(L,o.39)}};D.N.cx=A(78,1L){M ae;26.2v("gv 1f 4V "+78);ae=6A.4p(78,A(4s){M 8c;8c=\'\';4s.gC(\'cS\');4s.8O(\'1V\',A(cN){u 8c+=cN});u 4s.8O(\'1Q\',A(){u 1L(L,1A gx(8c,\'cS\'))})});u ae.8O(\'af\',1L)};D.N.5v=A(6y,1V){B(6y){2O 6y;}o.1f=1A 4x();o.1f.1G=1V;26.2v("4x bA. bW = "+(o.59())+", cJ = "+(o.5p()));o.G=1A 43(o.59(),o.5p());u o.5t()};D.N.aL=A(){o.1f=o.39;o.G=29.3i(\'G\');o.1i=o.G.32(\'2d\');1v.6j(o.1f,o.G,{8Q:[\'1G\']});B(o.1f.8E!=L){o.1f.8E.ad(o.G,o.1f)}o.ac();u o.ab()};D.N.b8=A(){o.G=o.39;o.1i=o.G.32(\'2d\');B(o.7N!=L){o.1f=29.3i(\'1T\');o.1f.1G=o.7N;o.ac();u o.ab()}S{u o.5t()}};D.N.ac=A(){B(o.aa()){26.2v(o.1f.1G,"->",o.7Z());o.cu=2K;o.1f.1G=o.7Z()}B(2P.cA(o.1f)){o.1f.1G=2P.5o(o.1f.1G);u 26.2v("gt 1f gr, gg aW = "+o.1f.1G)}};D.N.ab=A(){B(o.b1()){u o.6z()}S{u o.1f.bx=o.6z}};D.N.b1=A(){B(!o.1f.89){u 2n}B((o.1f.a8!=L)&&o.1f.a8===0){u 2n}u 2K};D.N.59=A(){u o.1f.E||o.1f.a8};D.N.5p=A(){u o.1f.J||o.1f.gd};D.N.6z=A(){26.2v("4x bA. bW = "+(o.59())+", cJ = "+(o.5p()));B(o.cu){o.G.E=o.59()/o.8x();o.G.J=o.5p()/o.8x()}S{o.G.E=o.59();o.G.J=o.5p()}u o.5t()};D.N.5t=A(){M i,1s,I,1o,K;B(o.1i==L){o.1i=o.G.32(\'2d\')}o.4G=o.77=o.E=o.G.E;o.5m=o.76=o.J=o.G.J;o.cV();B(!o.d6()){o.am()}B(o.1f!=L){o.1i.5l(o.1f,0,0,o.59(),o.5p(),0,0,o.77,o.76)}o.2b=o.1i.3H(0,0,o.G.E,o.G.J);o.T=o.2b.1V;B(D.6O){o.7f=1v.6M(o.T.P);o.4M=1v.6M(o.T.P);K=o.T;W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];o.7f[i]=1s;o.4M[i]=1s}}o.1e={E:o.G.E,J:o.G.J};B(!D.2R){33.bn(o.2T,o)}o.1L.1x(o,o);u o.1L=A(){}};D.N.bo=A(){o.2b=o.1i.3H(0,0,o.G.E,o.G.J);u o.T=o.2b.1V};D.N.g6=A(){M i,1s,I,1o,K,1n;B(!D.6O){2O"a7 7I";}o.4M=1v.6M(o.T.P);K=o.T;1n=[];W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];1n.2r(o.4M[i]=1s)}u 1n};D.N.d6=A(){u D.9y(o.G)!=L};D.N.am=A(){B(D.2R||o.G.5w(\'1V-3P-2T\')){u}u o.G.bE(\'1V-3P-2T\',o.2T)};D.N.bC=A(){u o.G.5w(\'1V-3P-bS-7I\')!==L};D.N.cV=A(){M 4n;B(D.2R||!o.aa()){u}4n=o.8x();B(4n!==1){26.2v("g3 4n = "+4n);o.cv=2K;o.77=o.G.E;o.76=o.G.J;o.G.E=o.77*4n;o.G.J=o.76*4n;o.G.bX.E=""+o.77+"c3";o.G.bX.J=""+o.76+"c3";o.1i.g2(4n,4n);o.E=o.4G=o.G.E;u o.J=o.5m=o.G.J}};D.N.8x=A(){M a6,4m;4m=4v.4m||1;a6=o.1i.fX||o.1i.fW||o.1i.fU||o.1i.fQ||o.1i.fO||1;u 4m/a6};D.N.cM=A(){u(4v.4m!=L)&&4v.4m!==1};D.N.aa=A(){B(o.bC()||!o.cM()){u 2n}u o.7Z()!==L};D.N.7Z=A(){B(o.1f==L){u L}u o.1f.5w(\'1V-3P-bS\')};D.N.72=A(cQ){M 8n;8n=o.G;o.G=cQ;o.1i=o.G.32(\'2d\');B(!D.2R){8n.8E.ad(o.G,8n)}o.E=o.G.E;o.J=o.G.J;o.bo();u o.1e={E:o.G.E,J:o.G.J}};D.N.cT=A(1L){B(1L==L){1L=A(){}}2N.5k(o,"d4");u o.4W.3V((A(1w){u A(){1w.1i.71(1w.2b,0,0);u 1L.1x(1w)}})(o))};D.N.fN=A(8w){M i,1s,I,1o,K;B(8w==L){8w=2K}B(!D.6O){2O"a7 7I";}K=o.aA();W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];o.T[i]=1s}B(8w){u o.1i.71(o.2b,0,0)}};D.N.fM=A(){M G,1J,i,2b,1s,T,I,1o,K;G=29.3i(\'G\');1v.6j(o.G,G);G.E=o.4G;G.J=o.5m;1J=G.32(\'2d\');2b=1J.3H(0,0,G.E,G.J);T=2b.1V;K=o.7f;W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];T[i]=1s}1J.71(2b,0,0);o.6C={x:0,y:0};o.8j=2n;u o.72(G)};D.N.aA=A(){M G,8B,1J,28,a3,i,2b,1s,T,Y,3p,4w,6W,7i,7j,E,x,y,I,1d,1y,1o,a2,K,3G,4g,a1,a0;B(!D.6O){2O"a7 7I";}Y=[];7i=o.6C.x;28=7i+o.E;7j=o.6C.y;a3=7j+o.J;B(o.8j){G=29.3i(\'G\');G.E=o.4G;G.J=o.5m;1J=G.32(\'2d\');2b=1J.3H(0,0,G.E,G.J);T=2b.1V;K=o.4M;W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];T[i]=1s}1J.71(2b,0,0);6W=29.3i(\'G\');6W.E=o.E;6W.J=o.J;1J=6W.32(\'2d\');1J.5l(G,0,0,o.4G,o.5m,0,0,o.E,o.J);T=1J.3H(0,0,o.E,o.J).1V;E=o.E}S B(o.9H){G=29.3i(\'G\');G.E=o.4G;G.J=o.5m;1J=G.32(\'2d\');2b=1J.3H(0,0,G.E,G.J);T=2b.1V;3G=o.4M;W(i=1d=0,a2=3G.P;1dK;i=0<=K?++I:--I){2S+=Q[i]}}o.4W.4e({1u:R.3e.9W,1p:1p,Q:Q,2S:2S,3d:3d});u o};D.N.5e=A(4a,1m){o.4W.4e({1u:R.3e.2w,4a:4a,1m:1m});u o};D.N.2Z=A(1L){M 2c;2c=1A 3c(o);o.9K.2r(2c);o.4W.4e({1u:R.3e.9V});1L.1x(2c);o.4W.4e({1u:R.3e.9U});u o};D.N.d9=A(2c){u o.da(2c)};D.N.da=A(2c){o.9J.2r(o.6F);o.6D.2r(o.T);o.6F=2c;u o.T=2c.T};D.N.dc=A(){o.T=o.6D.6L();u o.6F=o.9J.6L()};D.N.dg=A(){u o.6F.ah()};u D})(3N);7S.D=D;D.4y=(A(){A 4y(c){o.c=c}4y.N.fy=A(){M i,3v,6U,I,1d,1y,K;3v={r:{},g:{},b:{}};W(i=I=0;I<=F;i=++I){3v.r[i]=0;3v.g[i]=0;3v.b[i]=0}W(i=1d=0,K=o.c.T.P;1d0)){u}1n=[];W(I=0,1o=6T.P;I<1o;I++){1T=6T[I];1n.2r(b7=1A 5c(1T,A(){o.bh();u o.3V()}))}u 1n};B(D.cD){(A(){B(29.9T==="89"){u D.9R()}S{u 29.cW("fv",D.9R,2n)}})()}5c=(A(){M 8q;8q="(\\\\w+)\\\\((.*?)\\\\)";A 5c(4c,bv){o.bw=4c.5w(\'1V-3P\');o.3P=D(4c,bv.9A(o))}5c.N.bh=A(){M 1m,e,1C,57,9Q,9P,m,r,6R,I,1o,K,1n;o.4c=o.3P.G;r=1A bU(8q,\'g\');6R=o.bw.7w(r);B(!(6R.P>0)){u}r=1A bU(8q);1n=[];W(I=0,1o=6R.P;I<1o;I++){9Q=6R[I];K=9Q.7w(r),m=K[0],1C=K[1],1m=K[2];9P=1A fu("u A() { o."+1C+"("+1m+"); };");9O{57=9P();1n.2r(57.1x(o.3P))}9N(5K){e=5K;1n.2r(26.2v(e))}}u 1n};5c.N.3V=A(){M 4c;4c=o.4c;u o.3P.cT(A(){u 4c.8E.ad(o.c2(),4c)})};u 5c})();D.2l=(A(){A 2l(){}2l.9M={};2l.V=A(1p,57){u o.9M[1p]=57};2l.3V=A(1p,Z,X){u o.9M[1p](Z,X)};u 2l})();2l=D.2l;D.2j=(A(){A 2j(){}2j.5b=A(6Q,6P,6n,6K){u O.7B(O.1U(6n-6Q,2)+O.1U(6K-6P,2))};2j.ct=A(1N,1c,6I){M 4h;B(6I==L){6I=2n}4h=1N+(O.fr()*(1c-1N));B(6I){u 4h.fq(6I)}S{u O.6i(4h)}};2j.6G=A(C){u(0.9L*C.r)+(0.fp*C.g)+(0.fo*C.b)};2j.2f=A(1K,4C,4D,1Q,5r,58){M 2f,5E,2D,28,i,j,5I,1O,3K,t,I,1d,K;B(5r==L){5r=0}B(58==L){58=F}B(1K[0]cj 5M){2D=1K;5r=4C;58=4D}S{2D=[1K,4C,4D,1Q]}B(2D.P<2){2O"5A 8k 9G 1l 3O 2f";}2f={};5I=A(a,b,t){u a*(1-t)+b*t};5E=A(a,1N,1c){u O.1N(O.1c(a,1N),1c)};W(i=I=0;I1){1O=[];W(j=1d=0,K=3K.P-2;0<=K?1d<=K:1d>=K;j=0<=K?++1d:--1d){1O.2r([5I(3K[j][0],3K[j+1][0],t),5I(3K[j][1],3K[j+1][1],t)])}3K=1O}2f[O.6i(3K[0][0])]=O.6i(5E(3K[0][1],5r,58))}28=2D[2D.P-1][0];2f=D.2j.9E(2f,28);B(2f[28]==L){2f[28]=2f[28-1]}u 2f};2j.aN=A(2D,5r,58){M 4e,5E,9D,28,8r,8s,8t,8u,i,j,5I,9C,9B,4L,p,63,64,4N,8F,7d,3A,7g,t,I,1d,K;B(2D.P<2){2O"5A 8k 9G 1l 3O aN";}3A={};5I=A(a,b,t){u a*(1-t)+b*t};4e=(A(1w){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4L=(A(1w){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7g=(A(1w){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);5E=A(a,1N,1c){u O.1N(O.1c(a,1N),1c)};9D=0;W(i=I=0,K=2D.P-2;0<=K?I<=K:I>=K;i=0<=K?++I:--I){63=2D[i];64=2D[i+1];4N=64[0]-63[0];8F=1/4N;B(i===2D.P-2){8F=1/(4N-1)}p=i>0?2D[i-1]:63;9C=4L(7g(64,p),[0.5,0.5]);p=i<2D.P-2?2D[i+2]:64;9B=4L(7g(p,63),[0.5,0.5]);W(j=1d=0;0<=4N?1d<=4N:1d>=4N;j=0<=4N?++1d:--1d){t=j*8F;8r=2.0*t*t*t-3.0*t*t+1.0;8s=t*t*t-2.0*t*t+t;8t=-2.0*t*t*t+3.0*t*t;8u=t*t*t-t*t;7d=4e(4L(63,[8r,8r]),4L(9C,[8s,8s]),4L(64,[8t,8t]),4L(9B,[8u,8u]));3A[O.6i(7d[0])]=O.6i(5E(7d[1],5r,58));9D+=1}}28=2D[2D.P-1][0];3A=D.2j.9E(3A,28);u 3A};2j.9E=A(56,28){M i,j,6b,3A,7l,I,1d;B(cr.fm(56).P<28+1){3A={};W(i=I=0;0<=28?I<=28:I>=28;i=0<=28?++I:--I){B(56[i]!=L){3A[i]=56[i]}S{6b=[i-1,3A[i-1]];W(j=1d=i;i<=28?1d<=28:1d>=28;j=i<=28?++1d:--1d){B(56[j]!=L){7l=[j,56[j]];5g}}3A[i]=6b[1]+((7l[1]-6b[1])/(7l[0]-6b[0]))*(i-6b[0])}}u 3A}u 56};u 2j})();2j=D.2j;D.1Z=(A(){A 1Z(){}1Z.7p=A(3F){M b,g,r;B(3F.fl(0)==="#"){3F=3F.54(1)}r=4r(3F.54(0,2),16);g=4r(3F.54(2,2),16);b=4r(3F.54(4,2),16);u{r:r,g:g,b:b}};1Z.fk=A(r,g,b){M d,h,l,1c,1N,s;B(1r r==="46"){g=r.g;b=r.b;r=r.r}r/=F;g/=F;b/=F;1c=O.1c(r,g,b);1N=O.1N(r,g,b);l=(1c+1N)/2;B(1c===1N){h=s=0}S{d=1c-1N;s=l>0.5?d/(2-1c-1N):d/(1c+1N);h=(A(){6g(1c){2g r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1Z.cl=A(r,g,b){M d,h,1c,1N,s,v;r/=F;g/=F;b/=F;1c=O.1c(r,g,b);1N=O.1N(r,g,b);v=1c;d=1c-1N;s=1c===0?0:d/1c;B(1c===1N){h=0}S{h=(A(){6g(1c){2g r:u(g-b)/d+(g0.9z){r=O.1U((r+0.3u)/1.3u,2.4)}S{r/=12.92}B(g>0.9z){g=O.1U((g+0.3u)/1.3u,2.4)}S{g/=12.92}B(b>0.9z){b=O.1U((b+0.3u)/1.3u,2.4)}S{b/=12.92}x=r*0.fi+g*0.fh+b*0.fg;y=r*0.cE+g*0.cG+b*0.cH;z=r*0.ff+g*0.fe+b*0.fd;u{x:x*1j,y:y*1j,z:z*1j}};1Z.fa=A(x,y,z){M b,g,r;x/=1j;y/=1j;z/=1j;r=(3.f9*x)+(-1.f8*y)+(-0.f7*z);g=(-0.f6*x)+(1.f5*y)+(0.f3*z);b=(0.f2*x)+(-0.f1*y)+(1.f0*z);B(r>0.9u){r=(1.3u*O.1U(r,0.9t))-0.3u}S{r*=12.92}B(g>0.9u){g=(1.3u*O.1U(g,0.9t))-0.3u}S{g*=12.92}B(b>0.9u){b=(1.3u*O.1U(b,0.9t))-0.3u}S{b*=12.92}u{r:r*F,g:g*F,b:b*F}};1Z.db=A(x,y,z){M a,b,l,9s,9r,9q;B(1r x==="46"){y=x.y;z=x.z;x=x.x}9s=95.ai;9r=1j.0;9q=9p.ak;x/=9s;y/=9r;z/=9q;B(x>0.9o){x=O.1U(x,0.9n)}S{x=(7.9k*x)+0.5T}B(y>0.9o){y=O.1U(y,0.9n)}S{y=(7.9k*y)+0.5T}B(z>0.9o){z=O.1U(z,0.9n)}S{z=(7.9k*z)+0.5T}l=aB*y-16;a=aC*(x-y);b=5U*(y-z);u{l:l,a:a,b:b}};1Z.eZ=A(l,a,b){M x,y,z;B(1r l==="46"){a=l.a;b=l.b;l=l.l}y=(l+16)/aB;x=y+(a/aC);z=y-(b/5U);B(x>0.9j){x=x*x*x}S{x=0.9i*(x-0.5T)}B(y>0.9j){y=y*y*y}S{y=0.9i*(y-0.5T)}B(z>0.9j){z=z*z*z}S{z=0.9i*(z-0.5T)}u{x:x*95.ai,y:y*1j.0,z:z*9p.ak}};1Z.eY=A(r,g,b){M 9h;B(1r r==="46"){g=r.g;b=r.b;r=r.r}9h=o.cq(r,g,b);u o.db(9h)};1Z.gD=A(l,a,b){};u 1Z})();1Z=D.1Z;D.2N=(A(){A 2N(){}2N.5f={};2N.b2=["b3","b4","d4","b5","b6","62"];2N.5k=A(37,1u,1V){M 6u,I,1o,K,1n;B(1V==L){1V=L}B(o.5f[1u]&&o.5f[1u].P){K=o.5f[1u];1n=[];W(I=0,1o=K.P;I<1o;I++){6u=K[I];B(6u.37===L||37.2T===6u.37.2T){1n.2r(6u.fn.1x(37,1V))}S{1n.2r(bb 0)}}u 1n}};2N.eX=A(37,1u,fn){M 9f,9e;B(1r 37==="3g"){9e=37;9f=1u;37=L;1u=9e;fn=9f}B(6x.1x(o.b2,1u)<0){u 2n}B(!o.5f[1u]){o.5f[1u]=[]}o.5f[1u].2r({37:37,fn:fn});u 2K};u 2N})();2N=D.2N;D.R=(A(){A R(){}R.3e={9X:1,9W:2,9V:3,9U:4,9d:5,2w:6};R.V=A(1p,bp){u D.N[1p]=bp};u R})();R=D.R;D.2P=(A(){A 2P(){}2P.bq=/(?:(?:6A|aI):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2P.cA=A(1T){B(1T==L){u 2n}B(o.bs(1T)){u 2n}u o.7a(1T.1G)};2P.bs=A(1T){M K;u(1T.8K!=L)&&((K=1T.8K.6X())===\'dd\'||K===\'bu-eW\')};2P.7a=A(78){M 7c;7c=78.7w(o.bq);B(7c){u 7c[1]!==29.eV}S{u 2n}};2P.by=A(1G){B(o.7a(1G)){B(!D.7X.P){26.9a("eU 3O eT a bD 1f eS a eP bQ. aW: "+1G)}S{B(D.7a(D.7X)){26.9a("eO bu a bD bQ W eN eM.");u}u o.5o(1G)}}};2P.5o=A(1G){u""+D.7X+"?"+D.cO+"="+(eK(1G))};2P.eJ=A(5n){M 7o;7o={eI:\'eG\',eF:\'eD\',eC:\'eB\',eA:\'ez\'};5n=5n.6X();B(7o[5n]!=L){5n=7o[5n]}u"ey/ex."+5n};u 2P})();D.N.9Z=A(){B(1r 2h!=="47"&&2h!==L){u o.ca.4k(o,1l)}S{u o.cc.4k(o,1l)}};D.N.cc=A(1u){M 1f;B(1u==L){1u="cd"}1u=1u.6X();1f=o.94(1u).ev("1f/"+1u,"1f/eu-es");u 29.er.eq=1f};D.N.ca=A(6l,7z,1L){M e,93;B(7z==L){7z=2K}B(1L==L){1L=L}9O{93=fs.ep(6l);B(93.eo()&&!7z){u 2n}}9N(5K){e=5K;26.2v("en el 6l "+6l)}u fs.ej(6l,o.G.eh(),A(6y){26.2v("ef ee 3O "+6l);B(1L){u 1L.1x(o,6y)}})};D.N.c2=A(1u){M 1T;1T=1A 4x();1T.1G=o.94(1u);1T.E=o.1e.E;1T.J=o.1e.J;B(4v.4m){1T.E/=4v.4m;1T.J/=4v.4m}u 1T};D.N.94=A(1u){B(1u==L){1u="cd"}1u=1u.6X();u o.G.ed("1f/"+1u)};2P=D.2P;D.3c=(A(){A 3c(c){o.c=c;o.1C=o.c;o.1I={91:\'8Z\',2p:1.0};o.eb=1v.9c.4p();o.G=1r 2h!=="47"&&2h!==L?1A 43():29.3i(\'G\');o.G.E=o.c.1e.E;o.G.J=o.c.1e.J;o.1i=o.G.32(\'2d\');o.1i.ea(o.G.E,o.G.J);o.2b=o.1i.3H(0,0,o.G.E,o.G.J);o.T=o.2b.1V}3c.N.2Z=A(cb){u o.c.2Z.1x(o.c,cb)};3c.N.3m=A(cB){o.1I.91=cB;u o};3c.N.2p=A(2p){o.1I.2p=2p/1j;u o};3c.N.4f=A(){M i,31,I,K;31=o.c.T;W(i=I=0,K=o.c.T.P;Io.c.T.P||3M<0){u 1A 2a(0,0,0,F,o.c)}u o.8U(3M)};2a.N.e6=A(7V,7W,C){M cZ;B(o.c==L){2O"5L a 5F 1i";}cZ=o.U+(o.c.1e.E*4*(7W*-1))+(4*7V);B(3M>o.c.T.P||3M<0){u}o.c.T[3M]=C.r;o.c.T[3M+1]=C.g;o.c.T[3M+2]=C.b;o.c.T[3M+3]=C.a;u 2K};2a.N.e5=A(x,y){M U;B(o.c==L){2O"5L a 5F 1i";}U=o.8X(x,y,o.E);u o.8U(U)};2a.N.e4=A(x,y,C){M U;B(o.c==L){2O"5L a 5F 1i";}U=o.8X(x,y,o.E);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};2a.N.69=A(){u o.e3()};2a.N.e2=A(7Y){M 3F;B(7Y==L){7Y=2n}3F=\'#\'+o.r.69(16)+o.g.69(16)+o.b.69(16);B(7Y){u 3F+o.a.69(16)}S{u 3F}};u 2a})();2a=D.2a;D.2w=(A(){A 2w(){}2w.8T={};2w.V=A(1p,4a){u o.8T[1p]=4a};2w.3V=A(1i,1p,1m){u o.8T[1p].4k(1i,1m)};u 2w})();2w=D.2w;D.1S=(A(){1S.4z=D.2R?74(\'e1\').e0().P:4;A 1S(c){o.c=c;o.49=8G(o.49,o);o.6w=[];o.5a=L}1S.N.4e=A(8S){B(8S==L){u}u o.6w.2r(8S)};1S.N.49=A(){M 2c;B(o.6w.P===0){2N.5k(o,"b5");B(o.8R!=L){o.8R.1x(o.c)}u o}o.2k=o.6w.de();6g(o.2k.1u){2g R.3e.9V:2c=o.c.9K.de();o.c.d9(2c);u o.49();2g R.3e.9U:o.c.dg();o.c.dc();u o.49();2g R.3e.9d:u o.df(o.2k.2c,o.2k.1G);2g R.3e.2w:u o.ag();dZ:u o.di()}};1S.N.3V=A(1L){o.8R=1L;o.5a=1v.6M(o.c.T.P);u o.49()};1S.N.8N=A(fn){M 6J,8L,2L,1Q,f,i,8J,n,1K,I,K,1n;o.8e=0;n=o.c.T.P;8L=O.2M((n/4)/1S.4z);6J=8L*4;8J=6J+((n/4)%1S.4z)*4;1n=[];W(i=I=0,K=1S.4z;0<=K?IK;i=0<=K?++I:--I){1K=i*6J;1Q=1K+(i===1S.4z-1?8J:6J);B(D.2R){f=6H((A(1w){u A(){u fn.1x(1w,i,1K,1Q)}})(o));2L=f.dY();1n.2r(o.62(2L))}S{1n.2r(8f((A(1w){u A(i,1K,1Q){u A(){u fn.1x(1w,i,1K,1Q)}}})(o)(i,1K,1Q),0))}}u 1n};1S.N.di=A(){2N.5k(o.c,"b3",o.2k);B(o.2k.1u===R.3e.9X){u o.8N(o.ao)}S{u o.8N(o.ap)}};1S.N.ag=A(){26.2v("dX 4a "+o.2k.4a);2w.3V(o.c,o.2k.4a,o.2k.1m);26.2v("2w "+o.2k.4a+" 8I!");u o.49()};1S.N.ao=A(2L,1K,1Q){M i,1s,I;26.2v("as #"+2L+" - R: "+o.2k.1p+", dW: "+1K+", dV: "+1Q);2N.5k(o.c,"b6",{av:2L,aw:1S.4z,dU:1K,dT:1Q});1s=1A 2a();1s.8W(o.c);W(i=I=1K;I<1Q;i=I+=4){1s.U=i;1s.r=o.c.T[i];1s.g=o.c.T[i+1];1s.b=o.c.T[i+2];1s.a=o.c.T[i+3];o.2k.7J(1s);o.c.T[i]=1v.3Q(1s.r);o.c.T[i+1]=1v.3Q(1s.g);o.c.T[i+2]=1v.3Q(1s.b);o.c.T[i+3]=1v.3Q(1s.a)}B(D.2R){u 6H["az"](2L)}S{u o.62(2L)}};1S.N.ap=A(2L,1K,1Q){M Q,6N,3d,2W,5V,2S,i,j,k,2I,n,1p,p,1s,4s,I,1d,1y;1p=o.2k.1p;3d=o.2k.3d;2S=o.2k.2S;n=o.c.T.P;Q=o.2k.Q;6N=O.7B(Q.P);2I=[];26.2v("dS 2I - R: "+o.2k.1p);1K=O.1c(1K,o.c.1e.E*4*((6N-1)/2));1Q=O.1N(1Q,n-(o.c.1e.E*4*((6N-1)/2)));2W=(6N-1)/2;1s=1A 2a();1s.8W(o.c);W(i=I=1K;I<1Q;i=I+=4){1s.U=i;5V=0;W(j=1d=-2W;-2W<=2W?1d<=2W:1d>=2W;j=-2W<=2W?++1d:--1d){W(k=1y=2W;2W<=-2W?1y<=-2W:1y>=-2W;k=2W<=-2W?++1y:--1y){p=1s.cU(j,k);2I[5V*3]=p.r;2I[5V*3+1]=p.g;2I[5V*3+2]=p.b;5V++}}4s=o.3L(Q,2I,2S,3d);o.5a[i]=1v.3Q(4s.r);o.5a[i+1]=1v.3Q(4s.g);o.5a[i+2]=1v.3Q(4s.b);o.5a[i+3]=o.c.T[i+3]}B(D.2R){u 6H["az"](2L)}S{u o.62(2L)}};1S.N.62=A(2L){M i,I,K;B(2L>=0){26.2v("as #"+2L+" 8I! R: "+o.2k.1p)}o.8e++;2N.5k(o.c,"62",{av:2L,dR:o.8e,aw:1S.4z});B(o.8e===1S.4z){B(o.2k.1u===R.3e.9W){W(i=I=0,K=o.c.T.P;0<=K?IK;i=0<=K?++I:--I){o.c.T[i]=o.5a[i]}}B(2L>=0){26.2v("R "+o.2k.1p+" 8I!")}2N.5k(o.c,"b4",o.2k);u o.49()}};1S.N.3L=A(Q,2I,2S,3d){M i,2i,I,K;2i={r:0,g:0,b:0};W(i=I=0,K=Q.P;0<=K?IK;i=0<=K?++I:--I){2i.r+=Q[i]*2I[i*3];2i.g+=Q[i]*2I[i*3+1];2i.b+=Q[i]*2I[i*3+2]}2i.r=(2i.r/2S)+3d;2i.g=(2i.g/2S)+3d;2i.b=(2i.b/2S)+3d;u 2i};1S.N.df=A(2c,1G){M 1T,5o;1T=1A 4x();1T.bx=(A(1w){u A(){2c.1i.5l(1T,0,0,1w.c.1e.E,1w.c.1e.J);2c.2b=2c.1i.3H(0,0,1w.c.1e.E,1w.c.1e.J);2c.T=2c.2b.1V;1w.c.T=2c.T;u 1w.49()}})(o);5o=2P.by(1G);u 1T.1G=5o!=L?5o:1G};u 1S})();1S=D.1S;D.33=(A(){A 33(){}33.5S={};33.bR=A(4O){u o.5S[4O]!=L};33.4p=A(4O){u o.5S[4O]};33.bn=A(1p,2E){u o.5S[1p]=2E};33.3V=A(4O,1L){8f((A(1w){u A(){u 1L.1x(1w.4p(4O),1w.4p(4O))}})(o),0);u o.4p(4O)};33.dQ=A(1p){B(1p==L){1p=2n}B(1p){u aK o.5S[1p]}S{u o.5S={}}};u 33})();33=D.33;2l.V("8Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2l.V("6a",A(Z,X){u{r:(Z.r*X.r)/F,g:(Z.g*X.g)/F,b:(Z.b*X.b)/F}});2l.V("dP",A(Z,X){u{r:F-(((F-Z.r)*(F-X.r))/F),g:F-(((F-Z.g)*(F-X.g))/F),b:F-(((F-Z.b)*(F-X.b))/F)}});2l.V("8m",A(Z,X){M 1F;1F={};1F.r=X.r>1g?F-2*(F-Z.r)*(F-X.r)/F:(X.r*Z.r*2)/F;1F.g=X.g>1g?F-2*(F-Z.g)*(F-X.g)/F:(X.g*Z.g*2)/F;1F.b=X.b>1g?F-2*(F-Z.b)*(F-X.b)/F:(X.b*Z.b*2)/F;u 1F});2l.V("dN",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2l.V("aQ",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2l.V("dM",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/F,g:1g-2*(X.g-1g)*(Z.g-1g)/F,b:1g-2*(X.b-1g)*(Z.b-1g)/F}});2l.V("aS",A(Z,X){M 1F;1F={};1F.r=X.r>1g?F-((F-X.r)*(F-(Z.r-1g)))/F:(X.r*(Z.r+1g))/F;1F.g=X.g>1g?F-((F-X.g)*(F-(Z.g-1g)))/F:(X.g*(Z.g+1g))/F;1F.b=X.b>1g?F-((F-X.b)*(F-(Z.b-1g)))/F:(X.b*(Z.b+1g))/F;u 1F});2l.V("dL",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2l.V("dK",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4S",A(){M 3j;B(1l.P===1){3j=1Z.7p(1l[0])}S{3j={r:1l[0],g:1l[1],b:1l[2]}}u o.2q("4S",A(C){C.r=3j.r;C.g=3j.g;C.b=3j.b;C.a=F;u C})});R.V("3s",A(Q){Q=O.2M(F*(Q/1j));u o.2q("3s",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3I",A(Q){Q*=-0.dJ;u o.2q("3I",A(C){M 1c;1c=O.1c(C.r,C.g,C.b);B(C.r!==1c){C.r+=(1c-C.r)*Q}B(C.g!==1c){C.g+=(1c-C.g)*Q}B(C.b!==1c){C.b+=(1c-C.b)*Q}u C})});R.V("48",A(Q){Q*=-1;u o.2q("48",A(C){M 1q,4E,1c;1c=O.1c(C.r,C.g,C.b);4E=(C.r+C.g+C.b)/3;1q=((O.4J(1c-4E)*2/F)*Q)/1j;B(C.r!==1c){C.r+=(1c-C.r)*1q}B(C.g!==1c){C.g+=(1c-C.g)*1q}B(C.b!==1c){C.b+=(1c-C.b)*1q}u C})});R.V("4F",A(Q){u o.2q("4F",A(C){M 4E;4E=2j.6G(C);C.r=4E;C.g=4E;C.b=4E;u C})});R.V("2t",A(Q){Q=O.1U((Q+1j)/1j,2);u o.2q("2t",A(C){C.r/=F;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=F;C.g/=F;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=F;C.b/=F;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=F;u C})});R.V("8H",A(Q){u o.2q("8H",A(C){M b,g,h,5h,r,K;5h=1Z.cl(C.r,C.g,C.b);h=5h.h*1j;h+=O.4J(Q);h=h%1j;h/=1j;5h.h=h;K=1Z.cn(5h.h,5h.s,5h.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4i",A(){M 5B,3h;B(1l.P===2){3h=1Z.7p(1l[0]);5B=1l[1]}S B(1l.P===4){3h={r:1l[0],g:1l[1],b:1l[2]};5B=1l[3]}u o.2q("4i",A(C){C.r-=(C.r-3h.r)*(5B/1j);C.g-=(C.g-3h.g)*(5B/1j);C.b-=(C.b-3h.b)*(5B/1j);u C})});R.V("ba",A(){u o.2q("ba",A(C){C.r=F-C.r;C.g=F-C.g;C.b=F-C.b;u C})});R.V("4l",A(Q){B(Q==L){Q=1j}Q/=1j;u o.2q("4l",A(C){C.r=O.1N(F,(C.r*(1-(0.dI*Q)))+(C.g*(0.dH*Q))+(C.b*(0.dG*Q)));C.g=O.1N(F,(C.r*(0.dF*Q))+(C.g*(1-(0.dE*Q)))+(C.b*(0.dD*Q)));C.b=O.1N(F,(C.r*(0.dC*Q))+(C.g*(0.dB*Q))+(C.b*(1-(0.dA*Q))));u C})});R.V("2y",A(Q){u o.2q("2y",A(C){C.r=O.1U(C.r/F,Q)*F;C.g=O.1U(C.g/F,Q)*F;C.b=O.1U(C.b/F,Q)*F;u C})});R.V("8z",A(Q){Q=O.4J(Q)*2.55;u o.2q("8z",A(C){M 4h;4h=2j.ct(Q*-1,Q);C.r+=4h;C.g+=4h;C.b+=4h;u C})});R.V("8A",A(Q){Q=O.4J(Q)*2.55;u o.2q("8A",A(C){B(C.r>F-Q){C.r=F}S B(C.rF-Q){C.g=F}S B(C.gF-Q){C.b=F}S B(C.b0){C.r+=(F-C.r)*1I.3f}S{C.r-=C.r*O.4J(1I.3f)}}B(1I.4T!=L){B(1I.4T>0){C.g+=(F-C.g)*1I.4T}S{C.g-=C.g*O.4J(1I.4T)}}B(1I.3T!=L){B(1I.3T>0){C.b+=(F-C.b)*1I.3T}S{C.b-=C.b*O.4J(1I.3T)}}u C})});R.V("2e",A(){M 6Y,2f,42,3J,1Q,i,61,1K,I,1d,K,3G;42=1l[0],3J=2<=1l.P?5G.1x(1l,1):[];61=3J[3J.P-1];B(1r 61==="A"){6Y=61;3J.6L()}S B(1r 61==="3g"){6Y=2j[61];3J.6L()}S{6Y=2j.2f}B(1r 42==="3g"){42=42.dy("")}B(42[0]==="v"){42=[\'r\',\'g\',\'b\']}B(3J.P<2){2O"5A 8k 9G 1l 3O 2e 1C";}2f=6Y(3J,0,F);1K=3J[0];B(1K[0]>0){W(i=I=0,K=1K[0];0<=K?IK;i=0<=K?++I:--I){2f[i]=1K[1]}}1Q=3J[3J.P-1];B(1Q[0]=F;i=3G<=F?++1d:--1d){2f[i]=1Q[1]}}u o.2q("2e",A(C){M 1y,4g;W(i=1y=0,4g=42.P;0<=4g?1y<4g:1y>4g;i=0<=4g?++1y:--1y){C[42[i]]=2f[C[42[i]]]}u C})});R.V("38",A(Q){M 4C,4D,p;p=O.4J(Q)/1j;4C=[0,F*p];4D=[F-(F*p),F];B(Q<0){4C=4C.bB();4D=4D.bB()}u o.2e(\'3h\',[0,0],4C,4D,[F,F])});D.2w.V("8M",A(E,J,x,y){M G,1J;B(x==L){x=0}B(y==L){y=0}B(1r 2h!=="47"&&2h!==L){G=1A 43(E,J)}S{G=29.3i(\'G\');1v.6j(o.G,G);G.E=E;G.J=J}1J=G.32(\'2d\');1J.5l(o.G,x,y,E,J,0,0,E,J);o.6C={x:x,y:y};o.al=2K;u o.72(G)});D.2w.V("88",A(2C){M G,1J;B(2C==L){2C=L}B(2C===L||((2C.E==L)&&(2C.J==L))){26.af("5A bz dw 1e cP W 88");u}B(2C.E==L){2C.E=o.G.E*2C.J/o.G.J}S B(2C.J==L){2C.J=o.G.J*2C.E/o.G.E}B(1r 2h!=="47"&&2h!==L){G=1A 43(2C.E,2C.J)}S{G=29.3i(\'G\');1v.6j(o.G,G);G.E=2C.E;G.J=2C.J}1J=G.32(\'2d\');1J.5l(o.G,0,0,o.G.E,o.G.J,0,0,2C.E,2C.J);o.8j=2K;u o.72(G)});D.R.V("8M",A(){u o.5e("8M",5M.N.5d.1x(1l,0))});D.R.V("88",A(){u o.5e("88",5M.N.5d.1x(1l,0))});D.R.V("dv",A(){u o.3L("du 86",[1,1,1,1,1,1,1,1,1])});D.R.V("dt",A(){u o.3L("ds dr 86",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dq",A(){u o.3L("dp 86",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("do",A(3B){M 2I;B(3B===0||3B===44){2I=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3B>0&&3B<90)||(3B>44&&3B<84)){2I=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3B===90||3B===84){2I=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2I=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3L("dn 86",2I)});D.R.V("6E",A(1q){B(1q==L){1q=1j}1q/=1j;u o.3L("dm",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});9x={3s:A(C,1q,H){C.r=C.r-(C.r*1q*H.3k);C.g=C.g-(C.g*1q*H.3k);C.b=C.b-(C.b*1q*H.3k);u C},2y:A(C,1q,H){C.r=O.1U(C.r/F,O.1c(10*1q*H.3k,1))*F;C.g=O.1U(C.g/F,O.1c(10*1q*H.3k,1))*F;C.b=O.1U(C.b/F,O.1c(10*1q*H.3k,1))*F;u C},4i:A(C,1q,H){C.r-=(C.r-H.3j.r)*1q;C.g-=(C.g-H.3j.g)*1q;C.b-=(C.b-H.3j.b)*1q;u C}};R.V("1W",A(1t,3k){M 2f,3C,1Q,1K;B(3k==L){3k=60}B(1r 1t==="3g"&&1t.54(-1)==="%"){B(o.1e.J>o.1e.E){1t=o.1e.E*(4r(1t.54(0,1t.P-1),10)/1j)}S{1t=o.1e.J*(4r(1t.54(0,1t.P-1),10)/1j)}}3k/=1j;3C=[o.1e.E/2,o.1e.J/2];1K=O.7B(O.1U(3C[0],2)+O.1U(3C[1],2));1Q=1K-1t;2f=2j.2f([0,1],[30,30],[70,60],[1j,80]);u o.2q("1W",A(C){M 7A,2J,U;U=C.8V();7A=2j.5b(U.x,U.y,3C[0],3C[1]);B(7A>1Q){2J=O.1c(1,(2f[O.6i(((7A-1Q)/1t)*1j)]/10)*3k);C.r=O.1U(C.r/F,2J)*F;C.g=O.1U(C.g/F,2J)*F;C.b=O.1U(C.b/F,2J)*F}u C})});R.V("c5",A(H){M 4j,6f,7k,1t,I,1o,K;4j={3k:50,2G:0,9b:\'3s\',3j:{r:0,g:0,b:0}};H=1v.7e(4j,H);B(!H.1t){u o}S B(1r H.1t==="3g"){7k=4r(H.1t,10)/1j;H.1t={E:o.1e.E*7k,J:o.1e.J*7k}}S B(1r H.1t==="46"){K=["E","J"];W(I=0,1o=K.P;I<1o;I++){6f=K[I];B(1r H.1t[6f]==="3g"){H.1t[6f]=o.1e[6f]*(4r(H.1t[6f],10)/1j)}}}S B(H.1t==="8k"){1t=H.1t;H.1t={E:1t,J:1t}}B(1r H.2G==="3g"){H.2G=(H.1t.E/2)*(4r(H.2G,10)/1j)}H.3k/=1j;H.1t.E=O.2M(H.1t.E);H.1t.J=O.2M(H.1t.J);H.1f={E:o.1e.E,J:o.1e.J};B(H.9b==="4i"&&1r H.3j==="3g"){H.3j=1Z.7p(H.3j)}H.1Y={5j:(o.1e.E-H.1t.E)/2,66:o.1e.E-H.1Y.5j,5i:(o.1e.J-H.1t.J)/2,5Z:o.1e.J-H.1Y.5i};H.1z=[{x:H.1Y.5j+H.2G,y:H.1Y.5Z-H.2G},{x:H.1Y.66-H.2G,y:H.1Y.5Z-H.2G},{x:H.1Y.66-H.2G,y:H.1Y.5i+H.2G},{x:H.1Y.5j+H.2G,y:H.1Y.5i+H.2G}];H.4b=2j.5b(0,0,H.1z[3].x,H.1z[3].y)-H.2G;u o.2q("c5",A(C){M 1q,U,4d;U=C.8V();B((U.x>H.1z[0].x&&U.xH.1Y.5i&&U.yH.1Y.5j&&U.xH.1z[3].y&&U.yH.1z[0].x&&U.xH.1Y.5Z){1q=(U.y-H.1Y.5Z)/H.4b}S B(U.y>H.1z[2].y&&U.yH.1Y.66){1q=(U.x-H.1Y.66)/H.4b}S B(U.x>H.1z[0].x&&U.xH.1z[2].y&&U.y=H.1z[0].y){4d=D.5b(U.x,U.y,H.1z[0].x,H.1z[0].y);1q=(4d-H.2G)/H.4b}S B(U.x>=H.1z[1].x&&U.y>=H.1z[1].y){4d=D.5b(U.x,U.y,H.1z[1].x,H.1z[1].y);1q=(4d-H.2G)/H.4b}S B(U.x>=H.1z[2].x&&U.y<=H.1z[2].y){4d=D.5b(U.x,U.y,H.1z[2].x,H.1z[2].y);1q=(4d-H.2G)/H.4b}S B(U.x<=H.1z[3].x&&U.y<=H.1z[3].y){4d=D.5b(U.x,U.y,H.1z[3].x,H.1z[3].y);1q=(4d-H.2G)/H.4b}B(1q<0){u C}u 9x[H.9b](C,1q,H)})});(A(){M 4P,9l,9m,5R,5Q;5R=[2Q,2Q,3b,2Q,3n,3b,3E,2Q,3Z,3n,3r,3b,3W,3E,3U,2Q,4Z,3Z,4Y,3n,4X,3r,4U,3b,4K,3W,4o,3E,3a,3U,4H,2Q,5N,4Z,3X,3Z,5J,4Y,5H,3n,3a,4X,5y,3r,4B,4U,4A,3b,5O,4K,5D,3W,5C,4o,5x,3E,5u,3a,6e,3U,65,4H,3R,2Q,8d,5N,83,4Z,82,3X,7T,3Z,7M,5J,7F,4Y,4I,5H,7u,3n,5s,3a,7q,4X,8C,5y,4u,3r,3R,4B,81,4U,7L,4A,7G,3b,7y,5O,3X,4K,8o,5D,8g,3W,7K,5C,7s,4o,4I,5x,5W,3E,7h,5u,8D,3a,8l,6e,7r,3U,5Y,65,4u,4H,7H,3R,7U,2Q,bV,8d,bT,5N,4A,83,bP,4Z,bO,82,bM,3X,bL,7T,bK,3Z,bJ,7M,bI,5J,bH,7F,bG,4Y,bF,4I,8a,5H,5W,7u,8b,3n,bl,5s,bk,3a,bj,7q,bi,4X,8y,8C,5Y,5y,bg,4u,bf,3r,be,3R,bd,4B,bc,81,aY,4U,aV,7L,aU,4A,aT,7G,aR,3b,aP,7y,aO,5O,aM,3X,aJ,4K,aG,8o,aF,5D,ay,8g,ax,3W,au,7K,at,5C,aq,7s,an,4o,dh,4I,8a,5x,d8,5W,d7,3E,8b,7h,d3,5u,5s,8D,d2,3a,d1,8l,d0,6e,9L,7r,8y,3U,cY,5Y,cL,65,cI,4u,cF,4H,3r,7H,cz,3R,cy,7U,4B];5Q=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];9l=A(E,J,6h,6m,2H,P,ci){M 3S,1i,2u,6Q,6n,6P,6K;3S=1r 2h!=="47"&&2h!==L?1A 43():29.3i(\'G\');3S.E=E;3S.J=J;6Q=6h+O.cg(2H)*P*0.5;6P=6m+O.cf(2H)*P*0.5;6n=6h-O.cg(2H)*P*0.5;6K=6m-O.cf(2H)*P*0.5;1i=3S.32("2d");2u=1i.ew(6Q,6P,6n,6K);B(!ci){2u.5q(0,"7t");2u.5q(1,"96")}S{2u.5q(0,"7t");2u.5q(0.5,"96");2u.5q(1,"7t")}1i.c6=2u;1i.c4(0,0,E,J);u 1i.3H(0,0,E,J)};9m=A(E,J,6h,6m,6o,6p){M 3S,1i,2u;3S=1r 2h!=="47"&&2h!==L?1A 43():29.3i(\'G\');3S.E=E;3S.J=J;1i=3S.32("2d");2u=1i.eE(6h,6m,6o,6h,6m,6p);2u.5q(1,"7t");2u.5q(0,"96");1i.c6=2u;1i.c4(0,0,E,J);u 1i.3H(0,0,E,J)};4P=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1O=L};D.2w.V("97",A(c0,1X,bZ,7m){M 2o,2z,1M,6c,6q,2J,2s,2A,1P,J,3Y,i,6r,2B,3D,7b,41,79,2V,p,1D,1B,Y,1E,2m,2F,1R,9w,1a,34,2U,1b,4t,1k,1H,2X,51,2Y,7Q,7P,5z,E,3z,x,y,1h,4R,4Q,I,1d,1y,3l,3o,3q,3t,3x,3y,6d;E=o.1e.E;J=o.1e.J;3D=o.T;9w=c0.1V;7P=E*J;5z=7P<<2;Y=[];W(i=I=0;0<=5z?I<5z:I>5z;i=0<=5z?++I:--I){Y[i]=3D[i]}6q=0;51=7m;7m-=1;9F(51-->=0){41=(1X+0.5)|0;B(41===0){6k}B(41>6S){41=6S}2J=41+41+1;7Q=E<<2;3z=E-1;3Y=J-1;1a=41+1;2Y=1a*(1a+1)/2;2X=1A 4P();4t=bb 0;1b=2X;W(i=1d=1;1<=2J?1d<2J:1d>2J;i=1<=2J?++1d:--1d){1b=1b.1O=1A 4P();B(i===1a){4t=1b}}1b.1O=2X;1k=L;1H=L;4Q=1h=0;2V=5R[41];2U=5Q[41];W(y=1y=0;0<=J?1yJ;y=0<=J?++1y:--1y){2m=2s=2o=1R=1P=1M=0;2F=1a*(1E=Y[1h]);2A=1a*(1B=Y[1h+1]);2z=1a*(1D=Y[1h+2]);1R+=2Y*1E;1P+=2Y*1B;1M+=2Y*1D;1b=2X;W(i=3l=0;0<=1a?3l<1a:3l>1a;i=0<=1a?++3l:--3l){1b.r=1E;1b.g=1B;1b.b=1D;1b=1b.1O}W(i=3o=1;1<=1a?3o<1a:3o>1a;i=1<=1a?++3o:--3o){p=1h+((3zE;x=0<=E?++3q:--3q){Y[1h]=(1R*2V)>>2U;Y[1h+1]=(1P*2V)>>2U;Y[1h+2]=(1M*2V)>>2U;1R-=2F;1P-=2A;1M-=2z;2F-=1k.r;2A-=1k.g;2z-=1k.b;p=(4Q+((p=x+1a)<3z?p:3z))<<2;2m+=(1k.r=Y[p]);2s+=(1k.g=Y[p+1]);2o+=(1k.b=Y[p+2]);1R+=2m;1P+=2s;1M+=2o;1k=1k.1O;2F+=(1E=1H.r);2A+=(1B=1H.g);2z+=(1D=1H.b);2m-=1E;2s-=1B;2o-=1D;1H=1H.1O;1h+=4}4Q+=E}W(x=3t=0;0<=E?3tE;x=0<=E?++3t:--3t){2s=2o=2m=1P=1M=1R=0;1h=x<<2;2F=1a*(1E=Y[1h]);2A=1a*(1B=Y[1h+1]);2z=1a*(1D=Y[1h+2]);1R+=2Y*1E;1P+=2Y*1B;1M+=2Y*1D;1b=2X;W(i=3x=0;0<=1a?3x<1a:3x>1a;i=0<=1a?++3x:--3x){1b.r=1E;1b.g=1B;1b.b=1D;1b=1b.1O}4R=E;W(i=3y=1;1<=1a?3y<1a:3y>1a;i=1<=1a?++3y:--3y){1h=(4R+x)<<2;1R+=(1b.r=(1E=Y[1h]))*(34=1a-i);1P+=(1b.g=(1B=Y[1h+1]))*34;1M+=(1b.b=(1D=Y[1h+2]))*34;2m+=1E;2s+=1B;2o+=1D;1b=1b.1O;B(i<3Y){4R+=E}}1h=x;1k=2X;1H=4t;W(y=6d=0;0<=J?6dJ;y=0<=J?++6d:--6d){p=1h<<2;Y[p]=(1R*2V)>>2U;Y[p+1]=(1P*2V)>>2U;Y[p+2]=(1M*2V)>>2U;1R-=2F;1P-=2A;1M-=2z;2F-=1k.r;2A-=1k.g;2z-=1k.b;p=(x+(((p=y+1a)<3Y?p:3Y)*E))<<2;1R+=(2m+=(1k.r=Y[p]));1P+=(2s+=(1k.g=Y[p+1]));1M+=(2o+=(1k.b=Y[p+2]));1k=1k.1O;2F+=(1E=1H.r);2A+=(1B=1H.g);2z+=(1D=1H.b);2m-=1E;2s-=1B;2o-=1D;1H=1H.1O;1h+=E}}1X*=bZ;i=7P;9F(--i>-1){2B=i<<2;79=(9w[2B+2]&fx)/F.0*7m;7b=79|0;B(7b===6q){6c=6S.0*(79-(79|0));6r=6S-6c;3D[2B]=(3D[2B]*6r+Y[2B]*6c)>>8;3D[2B+1]=(3D[2B+1]*6r+Y[2B+1]*6c)>>8;3D[2B+2]=(3D[2B+2]*6r+Y[2B+2]*6c)>>8}S B(7b===6q+1){3D[2B]=Y[2B];3D[2B+1]=Y[2B+1];3D[2B+2]=Y[2B+2]}}6q++}u o});D.R.V("fz",A(H){M 4j,2u;4j={3C:{x:o.1e.E/2,y:o.1e.J/2},2H:45,cp:5U,7E:3,7n:1.5,51:3};H=1v.7e(4j,H);H.2H*=O.9Y/44;2u=9l(o.1e.E,o.1e.J,H.3C.x,H.3C.y,H.2H,H.cp,2K);u o.5e("97",[2u,H.7E,H.7n,H.51])});u D.R.V("fE",A(H){M 4j,2u,6o,6p;4j={1t:50,3C:{x:o.1e.E/2,y:o.1e.J/2},7E:3,7n:1.5,51:3,1X:L};H=1v.7e(4j,H);B(!H.1X){H.1X=o.1e.E2J;i=1<=2J?++I:--I){1b=1b.1O=1A 4P();B(i===1a){4t=1b}}1b.1O=2X;1k=L;1H=L;4Q=1h=0;2V=5R[1X];2U=5Q[1X];W(y=1d=0;0<=J?1dJ;y=0<=J?++1d:--1d){2m=2s=2o=1R=1P=1M=0;2F=1a*(1E=Y[1h]);2A=1a*(1B=Y[1h+1]);2z=1a*(1D=Y[1h+2]);1R+=2Y*1E;1P+=2Y*1B;1M+=2Y*1D;1b=2X;W(i=1y=0;0<=1a?1y<1a:1y>1a;i=0<=1a?++1y:--1y){1b.r=1E;1b.g=1B;1b.b=1D;1b=1b.1O}W(i=3l=1;1<=1a?3l<1a:3l>1a;i=1<=1a?++3l:--3l){p=1h+((3zE;x=0<=E?++3o:--3o){Y[1h]=(1R*2V)>>2U;Y[1h+1]=(1P*2V)>>2U;Y[1h+2]=(1M*2V)>>2U;1R-=2F;1P-=2A;1M-=2z;2F-=1k.r;2A-=1k.g;2z-=1k.b;p=(4Q+((p=x+1X+1)<3z?p:3z))<<2;2m+=(1k.r=Y[p]);2s+=(1k.g=Y[p+1]);2o+=(1k.b=Y[p+2]);1R+=2m;1P+=2s;1M+=2o;1k=1k.1O;2F+=(1E=1H.r);2A+=(1B=1H.g);2z+=(1D=1H.b);2m-=1E;2s-=1B;2o-=1D;1H=1H.1O;1h+=4}4Q+=E}W(x=3q=0;0<=E?3qE;x=0<=E?++3q:--3q){2s=2o=2m=1P=1M=1R=0;1h=x<<2;2F=1a*(1E=Y[1h]);2A=1a*(1B=Y[1h+1]);2z=1a*(1D=Y[1h+2]);1R+=2Y*1E;1P+=2Y*1B;1M+=2Y*1D;1b=2X;W(i=3t=0;0<=1a?3t<1a:3t>1a;i=0<=1a?++3t:--3t){1b.r=1E;1b.g=1B;1b.b=1D;1b=1b.1O}4R=E;W(i=3x=1;1<=1X?3x<=1X:3x>=1X;i=1<=1X?++3x:--3x){1h=(4R+x)<<2;1R+=(1b.r=(1E=Y[1h]))*(34=1a-i);1P+=(1b.g=(1B=Y[1h+1]))*34;1M+=(1b.b=(1D=Y[1h+2]))*34;2m+=1E;2s+=1B;2o+=1D;1b=1b.1O;B(i<3Y){4R+=E}}1h=x;1k=2X;1H=4t;W(y=3y=0;0<=J?3yJ;y=0<=J?++3y:--3y){p=1h<<2;Y[p]=(1R*2V)>>2U;Y[p+1]=(1P*2V)>>2U;Y[p+2]=(1M*2V)>>2U;1R-=2F;1P-=2A;1M-=2z;2F-=1k.r;2A-=1k.g;2z-=1k.b;p=(x+(((p=y+1a)<3Y?p:3Y)*E))<<2;1R+=(2m+=(1k.r=Y[p]));1P+=(2s+=(1k.g=Y[p+1]));1M+=(2o+=(1k.b=Y[p+2]));1k=1k.1O;2F+=(1E=1H.r);2A+=(1B=1H.g);2z+=(1D=1H.b);2m-=1E;2s-=1B;2o-=1D;1H=1H.1O;1h+=E}}u o});u D.R.V("5P",A(1X){u o.5e("5P",[1X])})})();D.R.V("dj",A(Q){u o.2q("dj",A(C){M 6G;6G=(0.cE*C.r)+(0.cG*C.g)+(0.cH*C.b);B(6G_ref;i=0<=_ref?++_i:--_i){divisor+=adjust[i];}} @@ -70,7 +71,7 @@ _results=[];for(_i=0,_len=imgs.length;_i<_len;_i++){img=imgs[_i];_results.push(p return _results;};if(Caman.autoload){(function(){if(document.readyState==="complete"){return Caman.DOMUpdated();}else{return document.addEventListener("DOMContentLoaded",Caman.DOMUpdated,false);}})();} CamanParser=(function(){var INST_REGEX;INST_REGEX="(\\w+)\\((.*?)\\)";function CamanParser(ele,ready){this.dataStr=ele.getAttribute('data-caman');this.caman=Caman(ele,ready.bind(this));} CamanParser.prototype.parse=function(){var args,e,filter,func,inst,instFunc,m,r,unparsedInstructions,_i,_len,_ref,_results;this.ele=this.caman.canvas;r=new RegExp(INST_REGEX,'g');unparsedInstructions=this.dataStr.match(r);if(!(unparsedInstructions.length>0)){return;} -r=new RegExp(INST_REGEX);_results=[];for(_i=0,_len=unparsedInstructions.length;_i<_len;_i++){inst=unparsedInstructions[_i];_ref=inst.match(r),m=_ref[0],filter=_ref[1],args=_ref[2];instFunc=new Function("return function() { this."+filter+"("+args+"); };");try{func=instFunc();_results.push(func.call(this.caman));}catch(_error){e=_error;_results.push(Log.debug(e));}} +r=new RegExp(INST_REGEX);_results=[];for(_i=0,_len=unparsedInstructions.length;_i<_len;_i++){inst=unparsedInstructions[_i];_ref=inst.match(r),m=_ref[0],filter=_ref[1],args=_ref[2];instFunc=new Function("return function() { this."+filter+"("+args+"); };");try{func=instFunc();_results.push(func.call(this.caman));}catch(_error){e=_error;_results.push(Log.debug(e));}} return _results;};CamanParser.prototype.execute=function(){var ele;ele=this.ele;return this.caman.render(function(){return ele.parentNode.replaceChild(this.toImage(),ele);});};return CamanParser;})();Caman.Blender=(function(){function Blender(){} Blender.blenders={};Blender.register=function(name,func){return this.blenders[name]=func;};Blender.execute=function(name,rgbaLayer,rgbaParent){return this.blenders[name](rgbaLayer,rgbaParent);};return Blender;})();Blender=Caman.Blender;Caman.Calculate=(function(){function Calculate(){} Calculate.distance=function(x1,y1,x2,y2){return Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));};Calculate.randomRange=function(min,max,getFloat){var rand;if(getFloat==null){getFloat=false;} @@ -82,8 +83,8 @@ bezier={};lerp=function(a,b,t){return a*(1-t)+b*t;};clamp=function(a,min,max){re prev=next;} bezier[Math.round(prev[0][0])]=Math.round(clamp(prev[0][1],lowBound,highBound));} endX=controlPoints[controlPoints.length-1][0];bezier=Caman.Calculate.missingValues(bezier,endX);if(bezier[endX]==null){bezier[endX]=bezier[endX-1];} -return bezier;};Calculate.hermite=function(controlPoints,lowBound,highBound){var add,clamp,count,endX,fac0,fac1,fac2,fac3,i,j,lerp,m0,m1,mul,p,p0,p1,pointsPerSegment,pointsPerStep,pos,ret,sub,t,_i,_j,_ref,_this=this;if(controlPoints.length<2){throw"Invalid number of arguments to hermite";} -ret={};lerp=function(a,b,t){return a*(1-t)+b*t;};add=function(a,b,c,d){return[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]];};mul=function(a,b){return[a[0]*b[0],a[1]*b[1]];};sub=function(a,b){return[a[0]-b[0],a[1]-b[1]];};clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};count=0;for(i=_i=0,_ref=controlPoints.length-2;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){p0=controlPoints[i];p1=controlPoints[i+1];pointsPerSegment=p1[0]-p0[0];pointsPerStep=1/pointsPerSegment;if(i===controlPoints.length-2){pointsPerStep=1/(pointsPerSegment-1);} +return bezier;};Calculate.hermite=function(controlPoints,lowBound,highBound){var add,clamp,count,endX,fac0,fac1,fac2,fac3,i,j,lerp,m0,m1,mul,p,p0,p1,pointsPerSegment,pointsPerStep,pos,ret,sub,t,_i,_j,_ref;if(controlPoints.length<2){throw"Invalid number of arguments to hermite";} +ret={};lerp=function(a,b,t){return a*(1-t)+b*t;};add=(function(_this){return function(a,b,c,d){return[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]];};})(this);mul=(function(_this){return function(a,b){return[a[0]*b[0],a[1]*b[1]];};})(this);sub=(function(_this){return function(a,b){return[a[0]-b[0],a[1]-b[1]];};})(this);clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};count=0;for(i=_i=0,_ref=controlPoints.length-2;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){p0=controlPoints[i];p1=controlPoints[i+1];pointsPerSegment=p1[0]-p0[0];pointsPerStep=1/pointsPerSegment;if(i===controlPoints.length-2){pointsPerStep=1/(pointsPerSegment-1);} p=i>0?controlPoints[i-1]:p0;m0=mul(sub(p1,p),[0.5,0.5]);p=i=pointsPerSegment;j=0<=pointsPerSegment?++_j:--_j){t=j*pointsPerStep;fac0=2.0*t*t*t-3.0*t*t+1.0;fac1=t*t*t-2.0*t*t+t;fac2=-2.0*t*t*t+3.0*t*t;fac3=t*t*t-t*t;pos=add(mul(p0,[fac0,fac0]),mul(m0,[fac1,fac1]),mul(p1,[fac2,fac2]),mul(m1,[fac3,fac3]));ret[Math.round(pos[0])]=Math.round(clamp(pos[1],lowBound,highBound));count+=1;}} endX=controlPoints[controlPoints.length-1][0];ret=Caman.Calculate.missingValues(ret,endX);return ret;};Calculate.missingValues=function(values,endX){var i,j,leftCoord,ret,rightCoord,_i,_j;if(Object.keys(values).length=endX;i=0<=endX?++_i:--_i){if(values[i]!=null){ret[i]=values[i];}else{leftCoord=[i-1,ret[i-1]];for(j=_j=i;i<=endX?_j<=endX:_j>=endX;j=i<=endX?++_j:--_j){if(values[j]!=null){rightCoord=[j,values[j]];break;}} ret[i]=leftCoord[1]+((rightCoord[1]-leftCoord[1])/(rightCoord[0]-leftCoord[0]))*(i-leftCoord[0]);}} @@ -158,7 +159,7 @@ Plugin.plugins={};Plugin.register=function(name,plugin){return this.plugins[name Renderer.prototype.add=function(job){if(job==null){return;} return this.renderQueue.push(job);};Renderer.prototype.processNext=function(){var layer;if(this.renderQueue.length===0){Event.trigger(this,"renderFinished");if(this.finishedFn!=null){this.finishedFn.call(this.c);} return this;} -this.currentJob=this.renderQueue.shift();switch(this.currentJob.type){case Filter.Type.LayerDequeue:layer=this.c.canvasQueue.shift();this.c.executeLayer(layer);return this.processNext();case Filter.Type.LayerFinished:this.c.applyCurrentLayer();this.c.popContext();return this.processNext();case Filter.Type.LoadOverlay:return this.loadOverlay(this.currentJob.layer,this.currentJob.src);case Filter.Type.Plugin:return this.executePlugin();default:return this.executeFilter();}};Renderer.prototype.execute=function(callback){this.finishedFn=callback;this.modPixelData=Util.dataArray(this.c.pixelData.length);return this.processNext();};Renderer.prototype.eachBlock=function(fn){var blockN,blockPixelLength,bnum,end,f,i,lastBlockN,n,start,_i,_ref,_results,_this=this;this.blocksDone=0;n=this.c.pixelData.length;blockPixelLength=Math.floor((n/4)/Renderer.Blocks);blockN=blockPixelLength*4;lastBlockN=blockN+((n/4)%Renderer.Blocks)*4;_results=[];for(i=_i=0,_ref=Renderer.Blocks;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){start=i*blockN;end=start+(i===Renderer.Blocks-1?lastBlockN:blockN);if(Caman.NodeJS){f=Fiber(function(){return fn.call(_this,i,start,end);});bnum=f.run();_results.push(this.blockFinished(bnum));}else{_results.push(setTimeout((function(i,start,end){return function(){return fn.call(_this,i,start,end);};})(i,start,end),0));}} +this.currentJob=this.renderQueue.shift();switch(this.currentJob.type){case Filter.Type.LayerDequeue:layer=this.c.canvasQueue.shift();this.c.executeLayer(layer);return this.processNext();case Filter.Type.LayerFinished:this.c.applyCurrentLayer();this.c.popContext();return this.processNext();case Filter.Type.LoadOverlay:return this.loadOverlay(this.currentJob.layer,this.currentJob.src);case Filter.Type.Plugin:return this.executePlugin();default:return this.executeFilter();}};Renderer.prototype.execute=function(callback){this.finishedFn=callback;this.modPixelData=Util.dataArray(this.c.pixelData.length);return this.processNext();};Renderer.prototype.eachBlock=function(fn){var blockN,blockPixelLength,bnum,end,f,i,lastBlockN,n,start,_i,_ref,_results;this.blocksDone=0;n=this.c.pixelData.length;blockPixelLength=Math.floor((n/4)/Renderer.Blocks);blockN=blockPixelLength*4;lastBlockN=blockN+((n/4)%Renderer.Blocks)*4;_results=[];for(i=_i=0,_ref=Renderer.Blocks;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){start=i*blockN;end=start+(i===Renderer.Blocks-1?lastBlockN:blockN);if(Caman.NodeJS){f=Fiber((function(_this){return function(){return fn.call(_this,i,start,end);};})(this));bnum=f.run();_results.push(this.blockFinished(bnum));}else{_results.push(setTimeout((function(_this){return function(i,start,end){return function(){return fn.call(_this,i,start,end);};};})(this)(i,start,end),0));}} return _results;};Renderer.prototype.executeFilter=function(){Event.trigger(this.c,"processStart",this.currentJob);if(this.currentJob.type===Filter.Type.Single){return this.eachBlock(this.renderBlock);}else{return this.eachBlock(this.renderKernel);}};Renderer.prototype.executePlugin=function(){Log.debug("Executing plugin "+this.currentJob.plugin);Plugin.execute(this.c,this.currentJob.plugin,this.currentJob.args);Log.debug("Plugin "+this.currentJob.plugin+" finished!");return this.processNext();};Renderer.prototype.renderBlock=function(bnum,start,end){var i,pixel,_i;Log.debug("Block #"+bnum+" - Filter: "+this.currentJob.name+", Start: "+start+", End: "+end);Event.trigger(this.c,"blockStarted",{blockNum:bnum,totalBlocks:Renderer.Blocks,startPixel:start,endPixel:end});pixel=new Pixel();pixel.setContext(this.c);for(i=_i=start;_i=builder;j=-builder<=builder?++_j:--_j){for(k=_k=builder;builder<=-builder?_k<=-builder:_k>=-builder;k=builder<=-builder?++_k:--_k){p=pixel.getPixelRelative(j,k);kernel[builderIndex*3]=p.r;kernel[builderIndex*3+1]=p.g;kernel[builderIndex*3+2]=p.b;builderIndex++;}} res=this.processKernel(adjust,kernel,divisor,bias);this.modPixelData[i]=Util.clampRGB(res.r);this.modPixelData[i+1]=Util.clampRGB(res.g);this.modPixelData[i+2]=Util.clampRGB(res.b);this.modPixelData[i+3]=this.c.pixelData[i+3];} @@ -166,8 +167,8 @@ if(Caman.NodeJS){return Fiber["yield"](bnum);}else{return this.blockFinished(bnu this.blocksDone++;Event.trigger(this.c,"blockFinished",{blockNum:bnum,blocksFinished:this.blocksDone,totalBlocks:Renderer.Blocks});if(this.blocksDone===Renderer.Blocks){if(this.currentJob.type===Filter.Type.Kernel){for(i=_i=0,_ref=this.c.pixelData.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){this.c.pixelData[i]=this.modPixelData[i];}} if(bnum>=0){Log.debug("Filter "+this.currentJob.name+" finished!");} Event.trigger(this.c,"processComplete",this.currentJob);return this.processNext();}};Renderer.prototype.processKernel=function(adjust,kernel,divisor,bias){var i,val,_i,_ref;val={r:0,g:0,b:0};for(i=_i=0,_ref=adjust.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){val.r+=adjust[i]*kernel[i*3];val.g+=adjust[i]*kernel[i*3+1];val.b+=adjust[i]*kernel[i*3+2];} -val.r=(val.r/divisor)+bias;val.g=(val.g/divisor)+bias;val.b=(val.b/divisor)+bias;return val;};Renderer.prototype.loadOverlay=function(layer,src){var img,proxyUrl,_this=this;img=new Image();img.onload=function(){layer.context.drawImage(img,0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.imageData=layer.context.getImageData(0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.pixelData=layer.imageData.data;_this.c.pixelData=layer.pixelData;return _this.processNext();};proxyUrl=IO.remoteCheck(src);return img.src=proxyUrl!=null?proxyUrl:src;};return Renderer;})();Renderer=Caman.Renderer;Caman.Store=(function(){function Store(){} -Store.items={};Store.has=function(search){return this.items[search]!=null;};Store.get=function(search){return this.items[search];};Store.put=function(name,obj){return this.items[name]=obj;};Store.execute=function(search,callback){var _this=this;setTimeout(function(){return callback.call(_this.get(search),_this.get(search));},0);return this.get(search);};Store.flush=function(name){if(name==null){name=false;} +val.r=(val.r/divisor)+bias;val.g=(val.g/divisor)+bias;val.b=(val.b/divisor)+bias;return val;};Renderer.prototype.loadOverlay=function(layer,src){var img,proxyUrl;img=new Image();img.onload=(function(_this){return function(){layer.context.drawImage(img,0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.imageData=layer.context.getImageData(0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.pixelData=layer.imageData.data;_this.c.pixelData=layer.pixelData;return _this.processNext();};})(this);proxyUrl=IO.remoteCheck(src);return img.src=proxyUrl!=null?proxyUrl:src;};return Renderer;})();Renderer=Caman.Renderer;Caman.Store=(function(){function Store(){} +Store.items={};Store.has=function(search){return this.items[search]!=null;};Store.get=function(search){return this.items[search];};Store.put=function(name,obj){return this.items[name]=obj;};Store.execute=function(search,callback){setTimeout((function(_this){return function(){return callback.call(_this.get(search),_this.get(search));};})(this),0);return this.get(search);};Store.flush=function(name){if(name==null){name=false;} if(name){return delete this.items[name];}else{return this.items={};}};return Store;})();Store=Caman.Store;Blender.register("normal",function(rgbaLayer,rgbaParent){return{r:rgbaLayer.r,g:rgbaLayer.g,b:rgbaLayer.b};});Blender.register("multiply",function(rgbaLayer,rgbaParent){return{r:(rgbaLayer.r*rgbaParent.r)/255,g:(rgbaLayer.g*rgbaParent.g)/255,b:(rgbaLayer.b*rgbaParent.b)/255};});Blender.register("screen",function(rgbaLayer,rgbaParent){return{r:255-(((255-rgbaLayer.r)*(255-rgbaParent.r))/255),g:255-(((255-rgbaLayer.g)*(255-rgbaParent.g))/255),b:255-(((255-rgbaLayer.b)*(255-rgbaParent.b))/255)};});Blender.register("overlay",function(rgbaLayer,rgbaParent){var result;result={};result.r=rgbaParent.r>128?255-2*(255-rgbaLayer.r)*(255-rgbaParent.r)/255:(rgbaParent.r*rgbaLayer.r*2)/255;result.g=rgbaParent.g>128?255-2*(255-rgbaLayer.g)*(255-rgbaParent.g)/255:(rgbaParent.g*rgbaLayer.g*2)/255;result.b=rgbaParent.b>128?255-2*(255-rgbaLayer.b)*(255-rgbaParent.b)/255:(rgbaParent.b*rgbaLayer.b*2)/255;return result;});Blender.register("difference",function(rgbaLayer,rgbaParent){return{r:rgbaLayer.r-rgbaParent.r,g:rgbaLayer.g-rgbaParent.g,b:rgbaLayer.b-rgbaParent.b};});Blender.register("addition",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r+rgbaLayer.r,g:rgbaParent.g+rgbaLayer.g,b:rgbaParent.b+rgbaLayer.b};});Blender.register("exclusion",function(rgbaLayer,rgbaParent){return{r:128-2*(rgbaParent.r-128)*(rgbaLayer.r-128)/255,g:128-2*(rgbaParent.g-128)*(rgbaLayer.g-128)/255,b:128-2*(rgbaParent.b-128)*(rgbaLayer.b-128)/255};});Blender.register("softLight",function(rgbaLayer,rgbaParent){var result;result={};result.r=rgbaParent.r>128?255-((255-rgbaParent.r)*(255-(rgbaLayer.r-128)))/255:(rgbaParent.r*(rgbaLayer.r+128))/255;result.g=rgbaParent.g>128?255-((255-rgbaParent.g)*(255-(rgbaLayer.g-128)))/255:(rgbaParent.g*(rgbaLayer.g+128))/255;result.b=rgbaParent.b>128?255-((255-rgbaParent.b)*(255-(rgbaLayer.b-128)))/255:(rgbaParent.b*(rgbaLayer.b+128))/255;return result;});Blender.register("lighten",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r>rgbaLayer.r?rgbaParent.r:rgbaLayer.r,g:rgbaParent.g>rgbaLayer.g?rgbaParent.g:rgbaLayer.g,b:rgbaParent.b>rgbaLayer.b?rgbaParent.b:rgbaLayer.b};});Blender.register("darken",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r>rgbaLayer.r?rgbaLayer.r:rgbaParent.r,g:rgbaParent.g>rgbaLayer.g?rgbaLayer.g:rgbaParent.g,b:rgbaParent.b>rgbaLayer.b?rgbaLayer.b:rgbaParent.b};});Filter.register("fillColor",function(){var color;if(arguments.length===1){color=Convert.hexToRGB(arguments[0]);}else{color={r:arguments[0],g:arguments[1],b:arguments[2]};} return this.process("fillColor",function(rgba){rgba.r=color.r;rgba.g=color.g;rgba.b=color.b;rgba.a=255;return rgba;});});Filter.register("brightness",function(adjust){adjust=Math.floor(255*(adjust/100));return this.process("brightness",function(rgba){rgba.r+=adjust;rgba.g+=adjust;rgba.b+=adjust;return rgba;});});Filter.register("saturation",function(adjust){adjust*=-0.01;return this.process("saturation",function(rgba){var max;max=Math.max(rgba.r,rgba.g,rgba.b);if(rgba.r!==max){rgba.r+=(max-rgba.r)*adjust;} if(rgba.g!==max){rgba.g+=(max-rgba.g)*adjust;} diff --git a/dist/caman.pack.js b/dist/caman.pack.js index d6c3bac7..397e659e 100644 --- a/dist/caman.pack.js +++ b/dist/caman.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2F,1z,1J,B,2Y,30,1p,1O,3X,V,1Q,2I,22,1o,2g,1r,1V,1g,4o,21,1a,3q,49,4G,3r,4g=[].9q||o(7j){T(I i=0,l=8.L;iD){9 D}9 1x};1a.40=o(2R,2l,3Z){I 3W,C,13,F,2q,Y;u(3Z==G){3Z={}}F=2R.aH;Y=[];T(C=0,13=F.L;C<13;C++){3W=F[C];u((3Z.6m!=G)&&(2q=3W.6p,4g.18(3Z.6m,2q)>=0)){42}Y.1A(2l.7G(3W.6p,3W.am))}9 Y};1a.3T=o(L){u(L==G){L=0}u(B.1S||(2T.7B!=G)){9 1m 7B(L)}9 1m 4c(L)};9 1a})();u(1f 1Y!=="36"&&1Y!==G){4o=1Y;30=3S(\'E\');2I=30.2I;3X=3S(\'a0\');3q=3S(\'3q\');49=3S(\'49\')}R{4o=2T}B=(o(7d){6x(B,7d);B.6s={7M:"4.1.2",7s:"7/27/b8"};B.6V=1G;B.44=2c;B.6v="7x";B.5e="";B.7P="aP";B.1S=1f 1Y!=="36"&&1Y!==G;B.82=!B.1S;B.3D=o(){9"a2 "+B.6s.7M+", aO "+B.6s.7s};B.5V=o(E){u(B.1S){9 2c}u(1f E==="2S"){E=$(E)}u(!((E!=G)&&(E.3G!=G))){9 G}9 E.3G(\'1v-2h-1W\')};o B(){8.3n=5k(8.3n,8);I W,1j,1W,1b=8;u(X.L===0){1R"3l X";}u(8 8m B){8.3h=8.3h.5o(8);8.4f=8.4f.5o(8);W=X[0];u(!B.1S){1W=4D(B.5V(W[0]),10);1j=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!aT(1W)&&21.8z(1W)){9 21.2o(1W,1j)}}8.1W=1a.6e.2t();8.4Q=8.38=G;8.3U={x:0,y:0};8.84=1G;8.4w=1G;8.4b=[];8.63=[];8.5R=[];8.4j=G;8.76=1G;8.aN=1m 2F(8);8.2L=1m 1g(8);8.6L(o(){1b.8v(W);9 1b.86()});9 8}R{9 1m B(X)}}B.H.6L=o(3y){I 5m,1b=8;u(B.1S){9 59(o(){9 3y.18(1b)},0)}R{u(1M.5F==="4P"){1o.1C("6S 6R");9 59(o(){9 3y.18(1b)},0)}R{5m=o(){u(1M.5F==="4P"){1o.1C("6S 6R");9 3y.18(1b)}};9 1M.6B("a4",5m,1G)}}};B.H.8v=o(W){I 1B,1x,F,Y;u(W.L===0){1R"3l X 80";}8.23=G;8.4A=G;8.4F=G;8.1j=o(){};8.8D(W[0]);u(W.L===1){9}3I(1f W[1]){1t"2S":8.4F=W[1];3c;1t"o":8.1j=W[1]}u(W.L===2){9}8.1j=W[2];u(W.L===4){F=W[4];Y=[];T(1B 2X F){u(!3L.18(F,1B))42;1x=F[1B];Y.1A(8.1e[1B]=1x)}9 Y}};B.H.8D=o(1D){u(B.1S){8.23=1D;8.4A=\'7Q\';9}u(1f 1D==="2w"){8.23=1D}R{8.23=$(1D)}u(8.23==G){1R"bb 9F 9X S 85 E T ak.";}9 8.4A=8.23.6p.4m()};B.H.86=o(){3I(8.4A){1t"7Q":9 8.8F();1t"1i":9 8.8B();1t"E":9 8.8t()}};B.H.8F=o(){1o.1C("aU T 1S");u(1f 8.23==="2S"&&8.23.4N(/^8e?:\\/\\//)){9 8.89(8.23,8.3n)}R u(1f 8.23==="2S"){9 3q.9Y(8.23,8.3n)}R{9 8.3n(G,8.23)}};B.H.89=o(3Y,1j){I 6j;1o.1C("ac S 2R "+3Y);6j=49.2t(3Y,o(2r){I 4z;4z=\'\';2r.aK(\'7z\');2r.5X(\'1v\',o(7t){9 4z+=7t});9 2r.5X(\'1q\',o(){9 1j(G,1m aS(4z,\'7z\'))})});9 6j.5X(\'5K\',1j)};B.H.3n=o(4l,1v){u(4l){1R 4l;}8.S=1m 2I();8.S.1c=1v;1o.1C("2I 6E. 8u = "+(8.3f())+", 8j = "+(8.3e()));8.E=1m 30(8.3f(),8.3e());9 8.3h()};B.H.8B=o(){8.S=8.23;8.E=1M.2U(\'E\');8.19=8.E.2p(\'2d\');1a.40(8.S,8.E,{6m:[\'1c\']});u(8.S.58!=G){8.S.58.5S(8.E,8.S)}8.5i();9 8.5Z()};B.H.8t=o(){8.E=8.23;8.19=8.E.2p(\'2d\');u(8.4F!=G){8.S=1M.2U(\'1i\');8.S.1c=8.4F;8.5i();9 8.5Z()}R{9 8.3h()}};B.H.5i=o(){u(8.61()){1o.1C(8.S.1c,"->",8.4L());8.7c=2c;8.S.1c=8.4L()}u(1Q.7l(8.S)){8.S.1c=1Q.3b(8.S.1c);9 1o.1C("90 S 9f, 9j 7m = "+8.S.1c)}};B.H.5Z=o(){u(8.7F()){9 8.4f()}R{9 8.S.6T=8.4f}};B.H.7F=o(){u(!8.S.4P){9 1G}u((8.S.5A!=G)&&8.S.5A===0){9 1G}9 2c};B.H.3f=o(){9 8.S.K||8.S.5A};B.H.3e=o(){9 8.S.P||8.S.ag};B.H.4f=o(){1o.1C("2I 6E. 8u = "+(8.3f())+", 8j = "+(8.3e()));u(8.7c){8.E.K=8.3f()/8.4x();8.E.P=8.3e()/8.4x()}R{8.E.K=8.3f();8.E.P=8.3e()}9 8.3h()};B.H.3h=o(){I i,15,C,13,F;u(8.19==G){8.19=8.E.2p(\'2d\')}8.3J=8.3M=8.K=8.E.K;8.3N=8.3O=8.P=8.E.P;8.7O();u(!8.8d()){8.6J()}u(8.S!=G){8.19.3P(8.S,0,0,8.3f(),8.3e(),0,0,8.3M,8.3O)}8.1H=8.19.3a(0,0,8.E.K,8.E.P);8.M=8.1H.1v;u(B.44){8.4Q=1a.3T(8.M.L);8.38=1a.3T(8.M.L);F=8.M;T(i=C=0,13=F.L;C<13;i=++C){15=F[i];8.4Q[i]=15;8.38[i]=15}}8.1E={K:8.E.K,P:8.E.P};u(!B.1S){21.7f(8.1W,8)}8.1j.18(8,8);9 8.1j=o(){}};B.H.7k=o(){8.1H=8.19.3a(0,0,8.E.K,8.E.P);9 8.M=8.1H.1v};B.H.9r=o(){I i,15,C,13,F,Y;u(!B.44){1R"6u 4V";}8.38=1a.3T(8.M.L);F=8.M;Y=[];T(i=C=0,13=F.L;C<13;i=++C){15=F[i];Y.1A(8.38[i]=15)}9 Y};B.H.8d=o(){9 B.5V(8.E)!=G};B.H.6J=o(){u(B.1S||8.E.3G(\'1v-2h-1W\')){9}9 8.E.7G(\'1v-2h-1W\',8.1W)};B.H.7n=o(){9 8.E.3G(\'1v-2h-7p-4V\')!==G};B.H.7O=o(){I 2s;u(B.1S||!8.61()){9}2s=8.4x();u(2s!==1){1o.1C("a7 2s = "+2s);8.76=2c;8.3M=8.E.K;8.3O=8.E.P;8.E.K=8.3M*2s;8.E.P=8.3O*2s;8.E.7C.K=""+8.3M+"7E";8.E.7C.P=""+8.3O+"7E";8.19.ah(2s,2s);8.K=8.3J=8.E.K;9 8.P=8.3N=8.E.P}};B.H.4x=o(){I 6t,2C;2C=2T.2C||1;6t=8.19.ap||8.19.at||8.19.av||8.19.aG||8.19.aI||1;9 2C/6t};B.H.7N=o(){9(2T.2C!=G)&&2T.2C!==1};B.H.61=o(){u(8.7n()||!8.7N()){9 1G}9 8.4L()!==G};B.H.4L=o(){u(8.S==G){9 G}9 8.S.3G(\'1v-2h-7p\')};B.H.57=o(7V){I 5a;5a=8.E;8.E=7V;8.19=8.E.2p(\'2d\');u(!B.1S){5a.58.5S(8.E,5a)}8.K=8.E.K;8.P=8.E.P;8.7k();9 8.1E={K:8.E.K,P:8.E.P}};B.H.8f=o(1j){I 1b=8;u(1j==G){1j=o(){}}1O.39(8,"6D");9 8.2L.2o(o(){1b.19.5d(1b.1H,0,0);9 1j.18(1b)})};B.H.b5=o(4p){I i,15,C,13,F;u(4p==G){4p=2c}u(!B.44){1R"6u 4V";}F=8.6U();T(i=C=0,13=F.L;C<13;i=++C){15=F[i];8.M[i]=15}u(4p){9 8.19.5d(8.1H,0,0)}};B.H.bm=o(){I E,1K,i,1H,15,M,C,13,F;E=1M.2U(\'E\');1a.40(8.E,E);E.K=8.3J;E.P=8.3N;1K=E.2p(\'2d\');1H=1K.3a(0,0,E.K,E.P);M=1H.1v;F=8.4Q;T(i=C=0,13=F.L;C<13;i=++C){15=F[i];M[i]=15}1K.5d(1H,0,0);8.3U={x:0,y:0};8.4w=1G;9 8.57(E)};B.H.6U=o(){I E,4r,1K,1s,6r,i,1H,15,M,4u,3R,4B,4C,K,C,Z,13,F,2q,2x,6q;u(!B.44){1R"6u 4V";}4u=[];4B=8.3U.x;1s=4B+8.K;4C=8.3U.y;6r=4C+8.P;u(8.4w){E=1M.2U(\'E\');E.K=8.3J;E.P=8.3N;1K=E.2p(\'2d\');1H=1K.3a(0,0,E.K,E.P);M=1H.1v;F=8.38;T(i=C=0,13=F.L;C<13;i=++C){15=F[i];M[i]=15}1K.5d(1H,0,0);3R=1M.2U(\'E\');3R.K=8.K;3R.P=8.P;1K=3R.2p(\'2d\');1K.3P(E,0,0,8.3J,8.3N,0,0,8.K,8.P);M=1K.3a(0,0,8.K,8.P).1v;K=8.K}R{M=8.38;K=8.3J}T(i=Z=0,2q=M.L;Z<2q;i=Z+=4){4r=1r.7u(i,K);u(((4B<=(2x=4r.x)&&2x<1s))&&((4C<=(6q=4r.y)&&6q<6r))){4u.1A(M[i],M[i+1],M[i+2],M[i+3])}}9 4u};B.H.1T=o(11,4M){8.2L.2D({14:V.25.6o,11:11,4M:4M});9 8};B.H.6n=o(11,J,1P,26){I i,C,F;u(1P==G){1P=G}u(26==G){26=0}u(1P==G){1P=0;T(i=C=0,F=J.L;0<=F?CF;i=0<=F?++C:--C){1P+=J[i]}}8.2L.2D({14:V.25.6l,11:11,J:J,1P:1P,26:26});9 8};B.H.6k=o(2v,W){8.2L.2D({14:V.25.1V,2v:2v,W:W});9 8};B.H.6i=o(1j){I 1w;1w=1m 22(8);8.5R.1A(1w);8.2L.2D({14:V.25.6h});1j.18(1w);8.2L.2D({14:V.25.6g});9 8};B.H.6Z=o(1w){9 8.71(1w)};B.H.71=o(1w){8.63.1A(8.4j);8.4b.1A(8.M);8.4j=1w;9 8.M=1w.M};B.H.73=o(){8.M=8.4b.4h();9 8.4j=8.63.4h()};B.H.77=o(){9 8.4j.7b()};9 B})(2g);4o.B=B;B.2F=(o(){o 2F(c){8.c=c}2F.H.8T=o(){I i,2a,3K,C,Z,1N,F;2a={r:{},g:{},b:{}};T(i=C=0;C<=D;i=++C){2a.r[i]=0;2a.g[i]=0;2a.b[i]=0}T(i=Z=0,F=8.c.M.L;Z0)){9}Y=[];T(C=0,13=46.L;C<13;C++){1i=46[C];Y.1A(7q=1m 2Y(1i,o(){8.7r();9 8.2o()}))}9 Y};u(B.82){(o(){u(1M.5F==="4P"){9 B.6d()}R{9 1M.6B("a3",B.6d,1G)}})()}2Y=(o(){I 4y;4y="(\\\\w+)\\\\((.*?)\\\\)";o 2Y(2z,7v){8.7y=2z.3G(\'1v-2h\');8.2h=B(2z,7v.5o(8))}2Y.H.7r=o(){I W,e,47,35,6a,68,m,r,4a,C,13,F,Y;8.2z=8.2h.E;r=1m 7H(4y,\'g\');4a=8.7y.4N(r);u(!(4a.L>0)){9}r=1m 7H(4y);Y=[];T(C=0,13=4a.L;C<13;C++){6a=4a[C];F=6a.4N(r),m=F[0],47=F[1],W=F[2];68=1m az("9 o() { 8."+47+"("+W+"); };");65{35=68();Y.1A(35.18(8.2h))}64(3H){e=3H;Y.1A(1o.1C(e))}}9 Y};2Y.H.2o=o(){I 2z;2z=8.2z;9 8.2h.8f(o(){9 2z.58.5S(8.7R(),2z)})};9 2Y})();B.1z=(o(){o 1z(){}1z.60={};1z.17=o(11,35){9 8.60[11]=35};1z.2o=o(11,O,N){9 8.60[11](O,N)};9 1z})();1z=B.1z;B.1J=(o(){o 1J(){}1J.aQ=o(8l,8w,8x,8A){9 Q.8E(Q.1Z(8x-8l,2)+Q.1Z(8A-8w,2))};1J.6C=o(1h,U,4d){I 2A;u(4d==G){4d=1G}2A=1h+(Q.91()*(U-1h));u(4d){9 2A.9d(4d)}R{9 Q.4e(2A)}};1J.6K=o(A){9(0.9m*A.r)+(0.9o*A.g)+(0.9p*A.b)};1J.1L=o(1k,2Q,2P,1q,32,2V){I 1L,3F,1I,1s,i,j,3E,4U,2f,t,C,Z,F;u(32==G){32=0}u(2V==G){2V=D}u(1k[0]8m 4c){1I=1k;32=2Q;2V=2P}R{1I=[1k,2Q,2P,1q]}u(1I.L<2){1R"3l 5Q 5P X 2l 1L";}1L={};3E=o(a,b,t){9 a*(1-t)+b*t};3F=o(a,1h,U){9 Q.1h(Q.U(a,1h),U)};T(i=C=0;C<7e;i=++C){t=i/7e;2f=1I;ad(2f.L>1){4U=[];T(j=Z=0,F=2f.L-2;0<=F?Z<=F:Z>=F;j=0<=F?++Z:--Z){4U.1A([3E(2f[j][0],2f[j+1][0],t),3E(2f[j][1],2f[j+1][1],t)])}2f=4U}1L[Q.4e(2f[0][0])]=Q.4e(3F(2f[0][1],32,2V))}1s=1I[1I.L-1][0];1L=B.1J.5O(1L,1s);u(1L[1s]==G){1L[1s]=1L[1s-1]}9 1L};1J.7h=o(1I,32,2V){I 2D,3F,5L,1s,4Z,50,51,52,i,j,3E,5I,5G,2O,p,3g,3C,2N,4n,5b,28,5c,t,C,Z,F,1b=8;u(1I.L<2){1R"3l 5Q 5P X 2l 7h";}28={};3E=o(a,b,t){9 a*(1-t)+b*t};2D=o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]};2O=o(a,b){9[a[0]*b[0],a[1]*b[1]]};5c=o(a,b){9[a[0]-b[0],a[1]-b[1]]};3F=o(a,1h,U){9 Q.1h(Q.U(a,1h),U)};5L=0;T(i=C=0,F=1I.L-2;0<=F?C<=F:C>=F;i=0<=F?++C:--C){3g=1I[i];3C=1I[i+1];2N=3C[0]-3g[0];4n=1/2N;u(i===1I.L-2){4n=1/(2N-1)}p=i>0?1I[i-1]:3g;5I=2O(5c(3C,p),[0.5,0.5]);p=i<1I.L-2?1I[i+2]:3C;5G=2O(5c(p,3g),[0.5,0.5]);T(j=Z=0;0<=2N?Z<=2N:Z>=2N;j=0<=2N?++Z:--Z){t=j*4n;4Z=2.0*t*t*t-3.0*t*t+1.0;50=t*t*t-2.0*t*t+t;51=-2.0*t*t*t+3.0*t*t;52=t*t*t-t*t;5b=2D(2O(3g,[4Z,4Z]),2O(5I,[50,50]),2O(3C,[51,51]),2O(5G,[52,52]));28[Q.4e(5b[0])]=Q.4e(3F(5b[1],32,2V));5L+=1}}1s=1I[1I.L-1][0];28=B.1J.5O(28,1s);9 28};1J.5O=o(2Z,1s){I i,j,3B,28,5f,C,Z;u(6I.b7(2Z).L<1s+1){28={};T(i=C=0;0<=1s?C<=1s:C>=1s;i=0<=1s?++C:--C){u(2Z[i]!=G){28[i]=2Z[i]}R{3B=[i-1,28[i-1]];T(j=Z=i;i<=1s?Z<=1s:Z>=1s;j=i<=1s?++Z:--Z){u(2Z[j]!=G){5f=[j,2Z[j]];3c}}28[i]=3B[1]+((5f[1]-3B[1])/(5f[0]-3B[0]))*(i-3B[0])}}9 28}9 2Z};9 1J})();1J=B.1J;B.1p=(o(){o 1p(){}1p.5l=o(2e){I b,g,r;u(2e.be(0)==="#"){2e=2e.5h(1)}r=4D(2e.5h(0,2),16);g=4D(2e.5h(2,2),16);b=4D(2e.5h(4,2),16);9{r:r,g:g,b:b}};1p.8Q=o(r,g,b){I d,h,l,U,1h,s;u(1f r==="2w"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;U=Q.U(r,g,b);1h=Q.1h(r,g,b);l=(U+1h)/2;u(U===1h){h=s=0}R{d=U-1h;s=l>0.5?d/(2-U-1h):d/(U+1h);h=(o(){3I(U){1t r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1p.81=o(r,g,b){I d,h,U,1h,s,v;r/=D;g/=D;b/=D;U=Q.U(r,g,b);1h=Q.1h(r,g,b);v=U;d=U-1h;s=U===0?0:d/U;u(U===1h){h=0}R{h=(o(){3I(U){1t r:9(g-b)/d+(g0.5n){r=Q.1Z((r+0.29)/1.29,2.4)}R{r/=12.92}u(g>0.5n){g=Q.1Z((g+0.29)/1.29,2.4)}R{g/=12.92}u(b>0.5n){b=Q.1Z((b+0.29)/1.29,2.4)}R{b/=12.92}x=r*0.9v+g*0.9w+b*0.9x;y=r*0.9z+g*0.9A+b*0.9B;z=r*0.9C+g*0.9D+b*0.9E;9{x:x*1n,y:y*1n,z:z*1n}};1p.9H=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9M*x)+(-1.9N*y)+(-0.9O*z);g=(-0.9R*x)+(1.9S*y)+(0.9T*z);b=(0.9U*x)+(-0.9V*y)+(1.9W*z);u(r>0.5p){r=(1.29*Q.1Z(r,0.5q))-0.29}R{r*=12.92}u(g>0.5p){g=(1.29*Q.1Z(g,0.5q))-0.29}R{g*=12.92}u(b>0.5p){b=(1.29*Q.1Z(b,0.5q))-0.29}R{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1p.8y=o(x,y,z){I a,b,l,5r,5s,5t;u(1f x==="2w"){y=x.y;z=x.z;x=x.x}5r=95.6y;5s=1n.0;5t=6z.6A;x/=5r;y/=5s;z/=5t;u(x>0.5u){x=Q.1Z(x,0.5v)}R{x=(7.5w*x)+0.3w}u(y>0.5u){y=Q.1Z(y,0.5v)}R{y=(7.5w*y)+0.3w}u(z>0.5u){z=Q.1Z(z,0.5v)}R{z=(7.5w*z)+0.3w}l=6F*y-16;a=6G*(x-y);b=6H*(y-z);9{l:l,a:a,b:b}};1p.al=o(l,a,b){I x,y,z;u(1f l==="2w"){a=l.a;b=l.b;l=l.l}y=(l+16)/6F;x=y+(a/6G);z=y-(b/6H);u(x>0.5x){x=x*x*x}R{x=0.5y*(x-0.3w)}u(y>0.5x){y=y*y*y}R{y=0.5y*(y-0.3w)}u(z>0.5x){z=z*z*z}R{z=0.5y*(z-0.3w)}9{x:x*95.6y,y:y*1n.0,z:z*6z.6A}};1p.ao=o(r,g,b){I 5z;u(1f r==="2w"){g=r.g;b=r.b;r=r.r}5z=8.88(r,g,b);9 8.8y(5z)};1p.as=o(l,a,b){};9 1p})();1p=B.1p;B.1O=(o(){o 1O(){}1O.2W={};1O.6M=["6N","6O","6D","6P","6Q","3v"];1O.39=o(24,14,1v){I 4k,C,13,F,Y;u(1v==G){1v=G}u(8.2W[14]&&8.2W[14].L){F=8.2W[14];Y=[];T(C=0,13=F.L;C<13;C++){4k=F[C];u(4k.24===G||24.1W===4k.24.1W){Y.1A(4k.2n.18(24,1v))}R{Y.1A(aL 0)}}9 Y}};1O.aM=o(24,14,2n){I 5C,5D;u(1f 24==="2S"){5D=24;5C=14;24=G;14=5D;2n=5C}u(4g.18(8.6M,14)<0){9 1G}u(!8.2W[14]){8.2W[14]=[]}8.2W[14].1A({24:24,2n:2n});9 2c};9 1O})();1O=B.1O;B.V=(o(){o V(){}V.25={6o:1,6l:2,6h:3,6g:4,5E:5,1V:6};V.17=o(11,6W){9 B.H[11]=6W};9 V})();V=B.V;B.1Q=(o(){o 1Q(){}1Q.6X=/(?:(?:49|8e):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1Q.7l=o(1i){u(1i==G){9 1G}u(8.6Y(1i)){9 1G}9 8.56(1i.1c)};1Q.6Y=o(1i){I F;9(1i.6v!=G)&&((F=1i.6v.4m())===\'7x\'||F===\'70-aV\')};1Q.56=o(3Y){I 54;54=3Y.4N(8.6X);u(54){9 54[1]!==1M.b6}R{9 1G}};1Q.72=o(1c){u(8.56(1c)){u(!B.5e.L){1o.5H("b9 2l ba a 74 S bc a bd 75. 7m: "+1c)}R{u(B.56(B.5e)){1o.5H("bf 70 a 74 75 T bg bh.");9}9 8.3b(1c)}}};1Q.3b=o(1c){9""+B.5e+"?"+B.7P+"="+(bi(1c))};1Q.bl=o(3d){I 53;53={bn:\'8G\',8H:\'8I\',8J:\'8K\',8L:\'8M\'};3d=3d.4m();u(53[3d]!=G){3d=53[3d]}9"8N/8O."+3d};9 1Q})();B.H.8P=o(){u(1f 1Y!=="36"&&1Y!==G){9 8.78.2u(8,X)}R{9 8.79.2u(8,X)}};B.H.79=o(14){I S;u(14==G){14="7a"}14=14.4m();S=8.5J(14).8U("S/"+14,"S/8V-8W");9 1M.8X.8Y=S};B.H.78=o(3u,4Y,1j){I e,5M;u(4Y==G){4Y=2c}u(1j==G){1j=G}65{5M=3q.93(3u);u(5M.94()&&!4Y){9 1G}}64(3H){e=3H;1o.1C("96 97 3u "+3u)}9 3q.98(3u,8.E.99(),o(4l){1o.1C("9a 9b 2l "+3u);u(1j){9 1j.18(8,4l)}})};B.H.7R=o(14){I 1i;1i=1m 2I();1i.1c=8.5J(14);1i.K=8.1E.K;1i.P=8.1E.P;u(2T.2C){1i.K/=2T.2C;1i.P/=2T.2C}9 1i};B.H.5J=o(14){u(14==G){14="7a"}14=14.4m();9 8.E.9c("S/"+14)};1Q=B.1Q;B.22=(o(){o 22(c){8.c=c;8.47=8.c;8.1e={5N:\'7g\',2K:1.0};8.9g=1a.6e.2t();8.E=1f 1Y!=="36"&&1Y!==G?1m 30():1M.2U(\'E\');8.E.K=8.c.1E.K;8.E.P=8.c.1E.P;8.19=8.E.2p(\'2d\');8.19.9h(8.E.K,8.E.P);8.1H=8.19.3a(0,0,8.E.K,8.E.P);8.M=8.1H.1v}22.H.6i=o(3y){9 8.c.6i.18(8.c,3y)};22.H.9i=o(7i){8.1e.5N=7i;9 8};22.H.2K=o(2K){8.1e.2K=2K/1n;9 8};22.H.9k=o(){I i,20,C,F;20=8.c.M;T(i=C=0,F=8.c.M.L;C8.c.M.L||2k<0){9 1m 1r(0,0,0,D,8.c)}9 8.5Y(2k)};1r.H.9G=o(4O,4I,A){I 7A;u(8.c==G){1R"3t a 3s 19";}7A=8.1l+(8.c.1E.K*4*(4I*-1))+(4*4O);u(2k>8.c.M.L||2k<0){9}8.c.M[2k]=A.r;8.c.M[2k+1]=A.g;8.c.M[2k+2]=A.b;8.c.M[2k+3]=A.a;9 2c};1r.H.9I=o(x,y){I 1l;u(8.c==G){1R"3t a 3s 19";}1l=8.5U(x,y,8.K);9 8.5Y(1l)};1r.H.9J=o(x,y,A){I 1l;u(8.c==G){1R"3t a 3s 19";}1l=8.5U(x,y,8.K);8.c.M[1l]=A.r;8.c.M[1l+1]=A.g;8.c.M[1l+2]=A.b;9 8.c.M[1l+3]=A.a};1r.H.3D=o(){9 8.9K()};1r.H.9L=o(4H){I 2e;u(4H==G){4H=1G}2e=\'#\'+8.r.3D(16)+8.g.3D(16)+8.b.3D(16);u(4H){9 2e+8.a.3D(16)}R{9 2e}};9 1r})();1r=B.1r;B.1V=(o(){o 1V(){}1V.62={};1V.17=o(11,2v){9 8.62[11]=2v};1V.2o=o(19,11,W){9 8.62[11].2u(19,W)};9 1V})();1V=B.1V;B.1g=(o(){1g.2J=B.1S?3S(\'9P\').9Q().L:4;o 1g(c){8.c=c;8.2B=5k(8.2B,8);8.4i=[];8.33=G}1g.H.2D=o(66){u(66==G){9}9 8.4i.1A(66)};1g.H.2B=o(){I 1w;u(8.4i.L===0){1O.39(8,"6P");u(8.67!=G){8.67.18(8.c)}9 8}8.1u=8.4i.7I();3I(8.1u.14){1t V.25.6h:1w=8.c.5R.7I();8.c.6Z(1w);9 8.2B();1t V.25.6g:8.c.77();8.c.73();9 8.2B();1t V.25.5E:9 8.7J(8.1u.1w,8.1u.1c);1t V.25.1V:9 8.7K();9Z:9 8.7L()}};1g.H.2o=o(1j){8.67=1j;8.33=1a.3T(8.c.M.L);9 8.2B()};1g.H.69=o(2n){I 48,6b,1X,1q,f,i,6c,n,1k,C,F,Y,1b=8;8.4v=0;n=8.c.M.L;6b=Q.2E((n/4)/1g.2J);48=6b*4;6c=48+((n/4)%1g.2J)*4;Y=[];T(i=C=0,F=1g.2J;0<=F?CF;i=0<=F?++C:--C){1k=i*48;1q=1k+(i===1g.2J-1?6c:48);u(B.1S){f=3X(o(){9 2n.18(1b,i,1k,1q)});1X=f.a8();Y.1A(8.3v(1X))}R{Y.1A(59((o(i,1k,1q){9 o(){9 2n.18(1b,i,1k,1q)}})(i,1k,1q),0))}}9 Y};1g.H.7L=o(){1O.39(8.c,"6N",8.1u);u(8.1u.14===V.25.6o){9 8.69(8.7T)}R{9 8.69(8.7U)}};1g.H.7K=o(){1o.1C("ab 2v "+8.1u.2v);1V.2o(8.c,8.1u.2v,8.1u.W);1o.1C("1V "+8.1u.2v+" 6f!");9 8.2B()};1g.H.7T=o(1X,1k,1q){I i,15,C;1o.1C("7W #"+1X+" - V: "+8.1u.11+", ae: "+1k+", af: "+1q);1O.39(8.c,"6Q",{7X:1X,7Y:1g.2J,ai:1k,aj:1q});15=1m 1r();15.5W(8.c);T(i=C=1k;C<1q;i=C+=4){15.1l=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1u.4M(15);8.c.M[i]=1a.2j(15.r);8.c.M[i+1]=1a.2j(15.g);8.c.M[i+2]=1a.2j(15.b);8.c.M[i+3]=1a.2j(15.a)}u(B.1S){9 3X["7Z"](1X)}R{9 8.3v(1X)}};1g.H.7U=o(1X,1k,1q){I J,41,26,1U,3p,1P,i,j,k,2b,n,11,p,15,2r,C,Z,1N;11=8.1u.11;26=8.1u.26;1P=8.1u.1P;n=8.c.M.L;J=8.1u.J;41=Q.8E(J.L);2b=[];1o.1C("aq 2b - V: "+8.1u.11);1k=Q.U(1k,8.c.1E.K*4*((41-1)/2));1q=Q.1h(1q,n-(8.c.1E.K*4*((41-1)/2)));1U=(41-1)/2;15=1m 1r();15.5W(8.c);T(i=C=1k;C<1q;i=C+=4){15.1l=i;3p=0;T(j=Z=-1U;-1U<=1U?Z<=1U:Z>=1U;j=-1U<=1U?++Z:--Z){T(k=1N=1U;1U<=-1U?1N<=-1U:1N>=-1U;k=1U<=-1U?++1N:--1N){p=15.7w(j,k);2b[3p*3]=p.r;2b[3p*3+1]=p.g;2b[3p*3+2]=p.b;3p++}}2r=8.6n(J,2b,1P,26);8.33[i]=1a.2j(2r.r);8.33[i+1]=1a.2j(2r.g);8.33[i+2]=1a.2j(2r.b);8.33[i+3]=8.c.M[i+3]}u(B.1S){9 3X["7Z"](1X)}R{9 8.3v(1X)}};1g.H.3v=o(1X){I i,C,F;u(1X>=0){1o.1C("7W #"+1X+" 6f! V: "+8.1u.11)}8.4v++;1O.39(8.c,"3v",{7X:1X,ar:8.4v,7Y:1g.2J});u(8.4v===1g.2J){u(8.1u.14===V.25.6l){T(i=C=0,F=8.c.M.L;0<=F?CF;i=0<=F?++C:--C){8.c.M[i]=8.33[i]}}u(1X>=0){1o.1C("V "+8.1u.11+" 6f!")}1O.39(8.c,"6O",8.1u);9 8.2B()}};1g.H.6n=o(J,2b,1P,26){I i,1x,C,F;1x={r:0,g:0,b:0};T(i=C=0,F=J.L;0<=F?CF;i=0<=F?++C:--C){1x.r+=J[i]*2b[i*3];1x.g+=J[i]*2b[i*3+1];1x.b+=J[i]*2b[i*3+2]}1x.r=(1x.r/1P)+26;1x.g=(1x.g/1P)+26;1x.b=(1x.b/1P)+26;9 1x};1g.H.7J=o(1w,1c){I 1i,3b,1b=8;1i=1m 2I();1i.6T=o(){1w.19.3P(1i,0,0,1b.c.1E.K,1b.c.1E.P);1w.1H=1w.19.3a(0,0,1b.c.1E.K,1b.c.1E.P);1w.M=1w.1H.1v;1b.c.M=1w.M;9 1b.2B()};3b=1Q.72(1c);9 1i.1c=3b!=G?3b:1c};9 1g})();1g=B.1g;B.21=(o(){o 21(){}21.3o={};21.8z=o(2H){9 8.3o[2H]!=G};21.2t=o(2H){9 8.3o[2H]};21.7f=o(11,1D){9 8.3o[11]=1D};21.2o=o(2H,1j){I 1b=8;59(o(){9 1j.18(1b.2t(2H),1b.2t(2H))},0);9 8.2t(2H)};21.au=o(11){u(11==G){11=1G}u(11){9 87 8.3o[11]}R{9 8.3o={}}};9 21})();21=B.21;1z.17("7g",o(O,N){9{r:O.r,g:O.g,b:O.b}});1z.17("aw",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1z.17("ax",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1z.17("ay",o(O,N){I 1d;1d={};1d.r=N.r>1y?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1d.g=N.g>1y?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1d.b=N.b>1y?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1d});1z.17("aA",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1z.17("aB",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1z.17("aC",o(O,N){9{r:1y-2*(N.r-1y)*(O.r-1y)/D,g:1y-2*(N.g-1y)*(O.g-1y)/D,b:1y-2*(N.b-1y)*(O.b-1y)/D}});1z.17("aD",o(O,N){I 1d;1d={};1d.r=N.r>1y?D-((D-N.r)*(D-(O.r-1y)))/D:(N.r*(O.r+1y))/D;1d.g=N.g>1y?D-((D-N.g)*(D-(O.g-1y)))/D:(N.g*(O.g+1y))/D;1d.b=N.b>1y?D-((D-N.b)*(D-(O.b-1y)))/D:(N.b*(O.b+1y))/D;9 1d});1z.17("aE",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1z.17("aF",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.17("4W",o(){I 3m;u(X.L===1){3m=1p.5l(X[0])}R{3m={r:X[0],g:X[1],b:X[2]}}9 8.1T("4W",o(A){A.r=3m.r;A.g=3m.g;A.b=3m.b;A.a=D;9 A})});V.17("8a",o(J){J=Q.2E(D*(J/1n));9 8.1T("8a",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.17("8b",o(J){J*=-0.aJ;9 8.1T("8b",o(A){I U;U=Q.U(A.r,A.g,A.b);u(A.r!==U){A.r+=(U-A.r)*J}u(A.g!==U){A.g+=(U-A.g)*J}u(A.b!==U){A.b+=(U-A.b)*J}9 A})});V.17("8c",o(J){J*=-1;9 8.1T("8c",o(A){I 3V,2G,U;U=Q.U(A.r,A.g,A.b);2G=(A.r+A.g+A.b)/3;3V=((Q.2M(U-2G)*2/D)*J)/1n;u(A.r!==U){A.r+=(U-A.r)*3V}u(A.g!==U){A.g+=(U-A.g)*3V}u(A.b!==U){A.b+=(U-A.b)*3V}9 A})});V.17("8g",o(J){9 8.1T("8g",o(A){I 2G;2G=1J.6K(A);A.r=2G;A.g=2G;A.b=2G;9 A})});V.17("8h",o(J){J=Q.1Z((J+1n)/1n,2);9 8.1T("8h",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.17("8i",o(J){9 8.1T("8i",o(A){I b,g,h,34,r,F;34=1p.81(A.r,A.g,A.b);h=34.h*1n;h+=Q.2M(J);h=h%1n;h/=1n;34.h=h;F=1p.83(34.h,34.s,34.v),r=F.r,g=F.g,b=F.b;A.r=r;A.g=g;A.b=b;9 A})});V.17("8k",o(){I 3k,31;u(X.L===2){31=1p.5l(X[0]);3k=X[1]}R u(X.L===4){31={r:X[0],g:X[1],b:X[2]};3k=X[3]}9 8.1T("8k",o(A){A.r-=(A.r-31.r)*(3k/1n);A.g-=(A.g-31.g)*(3k/1n);A.b-=(A.b-31.b)*(3k/1n);9 A})});V.17("8n",o(){9 8.1T("8n",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.17("8o",o(J){u(J==G){J=1n}J/=1n;9 8.1T("8o",o(A){A.r=Q.1h(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=Q.1h(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=Q.1h(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.17("8p",o(J){9 8.1T("8p",o(A){A.r=Q.1Z(A.r/D,J)*D;A.g=Q.1Z(A.g/D,J)*D;A.b=Q.1Z(A.b/D,J)*D;9 A})});V.17("8q",o(J){J=Q.2M(J)*2.55;9 8.1T("8q",o(A){I 2A;2A=1J.6C(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.17("8r",o(J){J=Q.2M(J)*2.55;9 8.1T("8r",o(A){u(A.r>D-J){A.r=D}R u(A.rD-J){A.g=D}R u(A.gD-J){A.b=D}R u(A.b0){A.r+=(D-A.r)*1e.4E}R{A.r-=A.r*Q.2M(1e.4E)}}u(1e.4s!=G){u(1e.4s>0){A.g+=(D-A.g)*1e.4s}R{A.g-=A.g*Q.2M(1e.4s)}}u(1e.4q!=G){u(1e.4q>0){A.b+=(D-A.b)*1e.4q}R{A.b-=A.b*Q.2M(1e.4q)}}9 A})});V.17("4X",o(){I 3Q,1L,2m,2i,1q,i,3i,1k,C,Z,F,2q;2m=X[0],2i=2<=X.L?3x.18(X,1):[];3i=2i[2i.L-1];u(1f 3i==="o"){3Q=3i;2i.4h()}R u(1f 3i==="2S"){3Q=1J[3i];2i.4h()}R{3Q=1J.1L}u(1f 2m==="2S"){2m=2m.bj("")}u(2m[0]==="v"){2m=[\'r\',\'g\',\'b\']}u(2i.L<2){1R"3l 5Q 5P X 2l 4X 47";}1L=3Q(2i,0,D);1k=2i[0];u(1k[0]>0){T(i=C=0,F=1k[0];0<=F?CF;i=0<=F?++C:--C){1L[i]=1k[1]}}1q=2i[2i.L-1];u(1q[0]=D;i=2q<=D?++Z:--Z){1L[i]=1q[1]}}9 8.1T("4X",o(A){I 1N,2x;T(i=1N=0,2x=2m.L;0<=2x?1N<2x:1N>2x;i=0<=2x?++1N:--1N){A[2m[i]]=1L[A[2m[i]]]}9 A})});V.17("bk",o(J){I 2Q,2P,p;p=Q.2M(J)/1n;2Q=[0,D*p];2P=[D-(D*p),D];u(J<0){2Q=2Q.8C();2P=2P.8C()}9 8.4X(\'31\',[0,0],2Q,2P,[D,D])});B.1V.17("6w",o(K,P,x,y){I E,1K;u(x==G){x=0}u(y==G){y=0}u(1f 1Y!=="36"&&1Y!==G){E=1m 30(K,P)}R{E=1M.2U(\'E\');1a.40(8.E,E);E.K=K;E.P=P}1K=E.2p(\'2d\');1K.3P(8.E,x,y,K,P,0,0,K,P);8.3U={x:x,y:y};8.84=2c;9 8.57(E)});B.1V.17("4R",o(1F){I E,1K;u(1F==G){1F=G}u(1F===G||((1F.K==G)&&(1F.P==G))){1o.5K("3l 85 an 1E 80 T 4R");9}u(1F.K==G){1F.K=8.E.K*1F.P/8.E.P}R u(1F.P==G){1F.P=8.E.P*1F.K/8.E.K}u(1f 1Y!=="36"&&1Y!==G){E=1m 30(1F.K,1F.P)}R{E=1M.2U(\'E\');1a.40(8.E,E);E.K=1F.K;E.P=1F.P}1K=E.2p(\'2d\');1K.3P(8.E,0,0,8.E.K,8.E.P,0,0,1F.K,1F.P);8.4w=2c;9 8.57(E)});B.V.17("6w",o(){9 8.6k("6w",4c.H.3r.18(X,0))});B.V.17("4R",o(){9 8.6k("4R",4c.H.3r.18(X,0))})}).18(8);',62,707,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|canvas|_ref|null|prototype|var|adjust|width|length|pixelData|rgbaParent|rgbaLayer|height|Math|else|image|for|max|Filter|args|arguments|_results|_j||name||_len|type|pixel||register|call|context|Util|_this|src|result|options|typeof|Renderer|min|img|callback|start|loc|new|100|Log|Convert|end|Pixel|endX|case|currentJob|data|layer|val|128|Blender|push|key|debug|obj|dimensions|newDims|false|imageData|controlPoints|Calculate|ctx|bezier|document|_k|Event|divisor|IO|throw|NodeJS|process|builder|Plugin|id|bnum|exports|pow|parentData|Store|Layer|initObj|target|Type|bias||ret|055|levels|kernel|true||hex|prev|Module|caman|cps|clampRGB|newLoc|to|chans|fn|execute|getContext|_ref1|res|ratio|get|apply|plugin|object|_ref2|value|ele|rand|processNext|devicePixelRatio|add|floor|Analyze|avg|search|Image|Blocks|opacity|renderer|abs|pointsPerSegment|mul|ctrl2|ctrl1|from|string|window|createElement|highBound|events|in|CamanParser|values|Canvas|rgb|lowBound|modPixelData|hsv|func|undefined|layerData|originalPixelData|trigger|getImageData|proxyUrl|break|lang|imageHeight|imageWidth|p0|finishInit|last|chan|level|Invalid|color|nodeFileReady|items|builderIndex|fs|slice|CamanJS|Requires|file|blockFinished|1379310345|__slice|cb|child|parent|leftCoord|p1|toString|lerp|clamp|getAttribute|_error|switch|originalWidth|numPixels|__hasProp|preScaledWidth|originalHeight|preScaledHeight|drawImage|algo|scaledCanvas|require|dataArray|cropCoordinates|amt|attr|Fiber|url|opts|copyAttributes|adjustSize|continue|prop|allowRevert|copy|imgs|filter|blockN|http|unparsedInstructions|pixelStack|Array|getFloat|round|imageLoaded|__indexOf|pop|renderQueue|currentLayer|event|err|toLowerCase|pointsPerStep|Root|updateContext|blue|coord|green|dest|pixels|blocksDone|resized|hiDPIRatio|INST_REGEX|buf|initType|startX|startY|parseInt|red|imageUrl|moduleKeywords|includeAlpha|vert|root|sel|hiDPIReplacement|processFn|match|horiz|complete|initializedPixelData|resize|source|Logger|next|disabled|fillColor|curves|overwrite|fac0|fac1|fac2|fac3|langToExt|matches||isURLRemote|replaceCanvas|parentNode|setTimeout|oldCanvas|pos|sub|putImageData|remoteProxy|rightCoord|hueToRGB|substr|imageAdjustments|ctor|__bind|hexToRGB|listener|04045|bind|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|2068965517|1284185493|xyz|naturalWidth|included|_fn|_type|LoadOverlay|readyState|m1|info|m0|toBase64|error|count|stats|blendingMode|missingValues|of|number|canvasQueue|replaceChild|console|coordinatesToLocation|getAttrId|setContext|on|pixelAtLocation|waitForImageLoaded|blenders|needsHiDPISwap|plugins|layerStack|catch|try|job|finishedFn|instFunc|eachBlock|inst|blockPixelLength|lastBlockN|DOMUpdated|uniqid|finished|LayerFinished|LayerDequeue|newLayer|req|processPlugin|Kernel|except|processKernel|Single|nodeName|_ref3|endY|version|backingStoreRatio|Revert|crossOrigin|crop|__extends|047|108|883|addEventListener|randomRange|renderStart|loaded|116|500|200|Object|assignId|luminance|domIsLoaded|types|processStart|processComplete|renderFinished|blockStarted|initialized|DOM|onload|originalVisiblePixels|DEBUG|filterFunc|domainRegex|corsEnabled|executeLayer|use|pushContext|remoteCheck|popContext|remote|proxy|scaled|applyCurrentLayer|nodeSave|browserSave|png|applyToParent|swapped|_super|1000|put|normal|hermite|mode|item|reloadCanvasData|isRemote|URL|hiDPIDisabled|log|hidpi|parser|parse|date|chunk|locationToCoordinates|ready|getPixelRelative|anonymous|dataStr|binary|nowLoc|Uint8Array|style|extended|px|isImageLoaded|setAttribute|RegExp|shift|loadOverlay|executePlugin|executeFilter|release|hiDPICapable|hiDPIAdjustments|proxyParam|node|toImage|me|renderBlock|renderKernel|newCanvas|Block|blockNum|totalBlocks|yield|given|rgbToHSV|autoload|hsvToRGB|cropped|or|setup|delete|rgbToXYZ|readFromHttp|brightness|saturation|vibrance|hasId|https|render|greyscale|contrast|hue|Height|colorize|x1|instanceof|invert|sepia|gamma|noise|clip|channels|initCanvas|Width|parseArguments|y1|x2|xyzToLab|has|y2|initImage|reverse|setInitObject|sqrt|initNode|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|rgbToHSL|set|defineProperty|calculateLevels|replace|octet|stream|location|href|hslToRGB|Remote|random||statSync|isFile||Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|toFixed|hasOwnProperty|detected|layerID|createImageData|setBlendingMode|using|copyParent|aliasProperty|299|overlayImage|587|114|indexOf|resetOriginalPixelData|aliasFunction|warn|extend|4124|3576|1805|locationXY|2126|7152|0722|0193|1192|9505|not|putPixelRelative|xyzToRGB|getPixel|putPixel|toKey|toHex|2406|5372|4986|os|cpus|9689|8758|0415|0557|2040|0570|find|readFile|default|fibers|querySelectorAll|Version|DOMContentLoaded|readystatechange|delegate|includes|HiDPI|run|querySelector|extends|Executing|Fetching|while|Start|End|naturalHeight|scale|startPixel|endPixel|initialization|labToXYZ|nodeValue|missing|rgbToLab|webkitBackingStorePixelRatio|Rendering|blocksFinished|labToRGB|mozBackingStorePixelRatio|flush|msBackingStorePixelRatio|multiply|screen|overlay|Function|difference|addition|exclusion|softLight|lighten|darken|oBackingStorePixelRatio|attributes|backingStorePixelRatio|01|setEncoding|void|listen|analyze|Released|camanProxyUrl|distance|__super__|Buffer|isNaN|Initializing|credentials|607|769|189|349|314|168|272|534|869|revert|domain|keys|2013|Attempting|load|Could|without|configured|charAt|Cannot|loading|images|encodeURIComponent|split|exposure|useProxy|reset|ruby|constructor'.split('|'),0,{})) \ No newline at end of file +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2Q,1D,1K,B,32,34,1s,1U,4l,V,1Q,2K,22,1p,2j,1r,1P,1i,4S,1Z,1a,3y,40,4u,3m,3O=[].br||o(6U){S(I i=0,l=8.M;iE){9 E}9 1u};1a.3S=o(2O,2g,3V){I 3W,D,14,F,2e,X;u(3V==G){3V={}}F=2O.9K;X=[];S(D=0,14=F.M;D<14;D++){3W=F[D];u((3V.67!=G)&&(2e=3W.69,3O.19(3V.67,2e)>=0)){4p}X.1A(2g.87(3W.69,3W.9z))}9 X};1a.4b=o(M){u(M==G){M=0}u(B.1X||(2H.8b!=G)){9 1m 8b(M)}9 1m 48(M)};9 1a})();u(1f 1Y!=="31"&&1Y!==G){4S=1Y;34=4h(\'C\');2K=34.2K;4l=4h(\'9v\');3y=4h(\'3y\');40=4h(\'40\')}Q{4S=2H}B=(o(8h){6V(B,8h);B.6y={8M:"4.1.2",8o:"7/27/9A"};B.7K=1F;B.41=2k;B.5X="7A";B.59="";B.7x="a6";B.1X=1f 1Y!=="31"&&1Y!==G;B.7u=!B.1X;B.3F=o(){9"a7 "+B.6y.8M+", a8 "+B.6y.8o};B.5T=o(C){u(B.1X){9 2k}u(1f C==="2N"){C=$(C)}u(!((C!=G)&&(C.3K!=G))){9 G}9 C.3K(\'1o-2f-1R\')};o B(){8.3r=5x(8.3r,8);I W,1g,1R;u(Y.M===0){1S"3L Y";}u(8 7m B){8.3I=8.3I.5S(8);8.44=8.44.5S(8);W=Y[0];u(!B.1X){1R=57(B.5T(W[0]),10);1g=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!ag(1R)&&1Z.7b(1R)){9 1Z.2r(1R,1g)}}8.1R=1a.61.2v();8.51=8.2P=G;8.4g={x:0,y:0};8.79=1F;8.4Z=1F;8.74=1F;8.73=0;8.3P=[];8.5D=[];8.5C=[];8.3T=G;8.71=1F;8.aj=1m 2Q(8);8.2S=1m 1i(8);8.6M((o(17){9 o(){17.6L(W);9 17.6J()}})(8));9 8}Q{9 1m B(Y)}}B.H.6M=o(3B){I 5q;u(B.1X){9 4Q((o(17){9 o(){9 3B.19(17)}})(8),0)}Q{u(1E.5o==="4P"){1p.1G("6E 6D");9 4Q((o(17){9 o(){9 3B.19(17)}})(8),0)}Q{5q=(o(17){9 o(){u(1E.5o==="4P"){1p.1G("6E 6D");9 3B.19(17)}}})(8);9 1E.6C("al",5q,1F)}}};B.H.6L=o(W){I 1H,1u,F,X;u(W.M===0){1S"3L Y 8L";}8.23=G;8.4O=G;8.4N=G;8.1g=o(){};8.8s(W[0]);u(W.M===1){9}3x(1f W[1]){1y"2N":8.4N=W[1];3b;1y"o":8.1g=W[1]}u(W.M===2){9}8.1g=W[2];u(W.M===4){F=W[4];X=[];S(1H 38 F){u(!46.19(F,1H))4p;1u=F[1H];X.1A(8.1e[1H]=1u)}9 X}};B.H.8s=o(1J){u(B.1X){8.23=1J;8.4O=\'8r\';9}u(1f 1J==="2z"){8.23=1J}Q{8.23=$(1J)}u(8.23==G){1S"ax ay aE T 7Z C S aQ.";}9 8.4O=8.23.69.3Y()};B.H.6J=o(){3x(8.4O){1y"8r":9 8.7V();1y"1h":9 8.7R();1y"C":9 8.7L()}};B.H.7V=o(){1p.1G("aT S 1X");u(1f 8.23==="2N"&&8.23.4L(/^7C?:\\/\\//)){9 8.7k(8.23,8.3r)}Q u(1f 8.23==="2N"){9 3y.aY(8.23,8.3r)}Q{9 8.3r(G,8.23)}};B.H.7k=o(49,1g){I 5U;1p.1G("aZ T 2O "+49);5U=40.2v(49,o(2y){I 4J;4J=\'\';2y.b0(\'7c\');2y.5J(\'1o\',o(6Y){9 4J+=6Y});9 2y.5J(\'1t\',o(){9 1g(G,1m b2(4J,\'7c\'))})});9 5U.5J(\'5F\',1g)};B.H.3r=o(4o,1o){u(4o){1S 4o;}8.T=1m 2K();8.T.1c=1o;1p.1G("2K 6S. 6K = "+(8.3f())+", 6I = "+(8.3d()));8.C=1m 34(8.3f(),8.3d());9 8.3I()};B.H.7R=o(){8.T=8.23;8.C=1E.2p(\'C\');8.1b=8.C.2a(\'2d\');1a.3S(8.T,8.C,{67:[\'1c\']});u(8.T.4I!=G){8.T.4I.5w(8.C,8.T)}8.5v();9 8.5r()};B.H.7L=o(){8.C=8.23;8.1b=8.C.2a(\'2d\');u(8.4N!=G){8.T=1E.2p(\'1h\');8.T.1c=8.4N;8.5v();9 8.5r()}Q{9 8.3I()}};B.H.5v=o(){u(8.5p()){1p.1G(8.T.1c,"->",8.4G());8.7j=2k;8.T.1c=8.4G()}u(1Q.7h(8.T)){8.T.1c=1Q.39(8.T.1c);9 1p.1G("bh T bi, bj 6W = "+8.T.1c)}};B.H.5r=o(){u(8.6O()){9 8.44()}Q{9 8.T.6B=8.44}};B.H.6O=o(){u(!8.T.4P){9 1F}u((8.T.63!=G)&&8.T.63===0){9 1F}9 2k};B.H.3f=o(){9 8.T.J||8.T.63};B.H.3d=o(){9 8.T.O||8.T.bv};B.H.44=o(){1p.1G("2K 6S. 6K = "+(8.3f())+", 6I = "+(8.3d()));u(8.7j){8.C.J=8.3f()/8.4s();8.C.O=8.3d()/8.4s()}Q{8.C.J=8.3f();8.C.O=8.3d()}9 8.3I()};B.H.3I=o(){I i,13,D,14,F;u(8.1b==G){8.1b=8.C.2a(\'2d\')}8.36=8.4i=8.J=8.C.J;8.3J=8.4k=8.O=8.C.O;8.7U();u(!8.7Y()){8.7e()}u(8.T!=G){8.1b.3N(8.T,0,0,8.3f(),8.3d(),0,0,8.4i,8.4k)}8.1z=8.1b.2B(0,0,8.C.J,8.C.O);8.K=8.1z.1o;u(B.41){8.51=1a.4b(8.K.M);8.2P=1a.4b(8.K.M);F=8.K;S(i=D=0,14=F.M;D<14;i=++D){13=F[i];8.51[i]=13;8.2P[i]=13}}8.1L={J:8.C.J,O:8.C.O};u(!B.1X){1Z.6F(8.1R,8)}8.1g.19(8,8);9 8.1g=o(){}};B.H.6Z=o(){8.1z=8.1b.2B(0,0,8.C.J,8.C.O);9 8.K=8.1z.1o};B.H.by=o(){I i,13,D,14,F,X;u(!B.41){1S"5y 4R";}8.2P=1a.4b(8.K.M);F=8.K;X=[];S(i=D=0,14=F.M;D<14;i=++D){13=F[i];X.1A(8.2P[i]=13)}9 X};B.H.7Y=o(){9 B.5T(8.C)!=G};B.H.7e=o(){u(B.1X||8.C.3K(\'1o-2f-1R\')){9}9 8.C.87(\'1o-2f-1R\',8.1R)};B.H.6N=o(){9 8.C.3K(\'1o-2f-6X-4R\')!==G};B.H.7U=o(){I 2t;u(B.1X||!8.5p()){9}2t=8.4s();u(2t!==1){1p.1G("bx 2t = "+2t);8.71=2k;8.4i=8.C.J;8.4k=8.C.O;8.C.J=8.4i*2t;8.C.O=8.4k*2t;8.C.7z.J=""+8.4i+"7F";8.C.7z.O=""+8.4k+"7F";8.1b.bw(2t,2t);8.J=8.36=8.C.J;9 8.O=8.3J=8.C.O}};B.H.4s=o(){I 5k,2G;2G=2H.2G||1;5k=8.1b.bs||8.1b.bq||8.1b.bo||8.1b.bn||8.1b.bm||1;9 2G/5k};B.H.7f=o(){9(2H.2G!=G)&&2H.2G!==1};B.H.5p=o(){u(8.6N()||!8.7f()){9 1F}9 8.4G()!==G};B.H.4G=o(){u(8.T==G){9 G}9 8.T.3K(\'1o-2f-6X\')};B.H.4y=o(7B){I 4z;4z=8.C;8.C=7B;8.1b=8.C.2a(\'2d\');u(!B.1X){4z.4I.5w(8.C,4z)}8.J=8.C.J;8.O=8.C.O;8.6Z();9 8.1L={J:8.C.J,O:8.C.O}};B.H.7H=o(1g){u(1g==G){1g=o(){}}1U.33(8,"8B");9 8.2S.2r((o(17){9 o(){17.1b.4a(17.1z,0,0);9 1g.19(17)}})(8))};B.H.bl=o(4B){I i,13,D,14,F;u(4B==G){4B=2k}u(!B.41){1S"5y 4R";}F=8.6H();S(i=D=0,14=F.M;D<14;i=++D){13=F[i];8.K[i]=13}u(4B){9 8.1b.4a(8.1z,0,0)}};B.H.bk=o(){I C,1B,i,1z,13,K,D,14,F;C=1E.2p(\'C\');1a.3S(8.C,C);C.J=8.36;C.O=8.3J;1B=C.2a(\'2d\');1z=1B.2B(0,0,C.J,C.O);K=1z.1o;F=8.51;S(i=D=0,14=F.M;D<14;i=++D){13=F[i];K[i]=13}1B.4a(1z,0,0);8.4g={x:0,y:0};8.4Z=1F;9 8.4y(C)};B.H.6H=o(){I C,4C,1B,1q,5Q,i,1z,13,K,4D,29,2Y,45,4E,4F,J,x,y,D,Z,1C,14,6w,F,2e,2E,5l,5n;u(!B.41){1S"5y 4R";}4D=[];4E=8.4g.x;1q=4E+8.J;4F=8.4g.y;5Q=4F+8.O;u(8.4Z){C=1E.2p(\'C\');C.J=8.36;C.O=8.3J;1B=C.2a(\'2d\');1z=1B.2B(0,0,C.J,C.O);K=1z.1o;F=8.2P;S(i=D=0,14=F.M;D<14;i=++D){13=F[i];K[i]=13}1B.4a(1z,0,0);45=1E.2p(\'C\');45.J=8.J;45.O=8.O;1B=45.2a(\'2d\');1B.3N(C,0,0,8.36,8.3J,0,0,8.J,8.O);K=1B.2B(0,0,8.J,8.O).1o;J=8.J}Q u(8.74){C=1E.2p(\'C\');C.J=8.36;C.O=8.3J;1B=C.2a(\'2d\');1z=1B.2B(0,0,C.J,C.O);K=1z.1o;2e=8.2P;S(i=Z=0,6w=2e.M;Z<6w;i=++Z){13=2e[i];K[i]=13}1B.4a(1z,0,0);29=1E.2p(\'C\');29.J=8.J;29.O=8.O;2Y=29.2a(\'2d\');29.J=8.C.J;29.O=8.C.O;x=29.J/2;y=29.O/2;2Y.7J();2Y.bg(x,y);2Y.bf(8.73*R.b5/b4);2Y.3N(C,-C.J/2,-C.O/2,C.J,C.O);2Y.b3();K=2Y.2B(0,0,29.J,29.O).1o;J=29.J}Q{K=8.2P;J=8.36}S(i=1C=0,2E=K.M;1C<2E;i=1C+=4){4C=1r.8z(i,J);u(((4E<=(5l=4C.x)&&5l<1q))&&((4F<=(5n=4C.y)&&5n<5Q))){4D.1A(K[i],K[i+1],K[i+2],K[i+3])}}9 4D};B.H.1W=o(11,4H){8.2S.2x({15:V.26.5z,11:11,4H:4H});9 8};B.H.5E=o(11,L,1T,25){I i,D,F;u(1T==G){1T=G}u(25==G){25=0}u(1T==G){1T=0;S(i=D=0,F=L.M;0<=F?DF;i=0<=F?++D:--D){1T+=L[i]}}8.2S.2x({15:V.26.5G,11:11,L:L,1T:1T,25:25});9 8};B.H.5H=o(2C,W){8.2S.2x({15:V.26.1P,2C:2C,W:W});9 8};B.H.5I=o(1g){I 1x;1x=1m 22(8);8.5C.1A(1x);8.2S.2x({15:V.26.5K});1g.19(1x);8.2S.2x({15:V.26.5O});9 8};B.H.75=o(1x){9 8.76(1x)};B.H.76=o(1x){8.5D.1A(8.3T);8.3P.1A(8.K);8.3T=1x;9 8.K=1x.K};B.H.77=o(){8.K=8.3P.3Z();9 8.3T=8.5D.3Z()};B.H.78=o(){9 8.3T.7a()};9 B})(2j);4S.B=B;B.2Q=(o(){o 2Q(c){8.c=c}2Q.H.b1=o(){I i,28,4e,D,Z,1C,F;28={r:{},g:{},b:{}};S(i=D=0;D<=E;i=++D){28.r[i]=0;28.g[i]=0;28.b[i]=0}S(i=Z=0,F=8.c.K.M;Z0)){9}X=[];S(D=0,14=4n.M;D<14;D++){1h=4n[D];X.1A(7l=1m 32(1h,o(){8.7q();9 8.2r()}))}9 X};u(B.7u){(o(){u(1E.5o==="4P"){9 B.5W()}Q{9 1E.6C("aU",B.5W,1F)}})()}32=(o(){I 4K;4K="(\\\\w+)\\\\((.*?)\\\\)";o 32(2w,7D){8.7E=2w.3K(\'1o-2f\');8.2f=B(2w,7D.5S(8))}32.H.7q=o(){I W,e,43,3e,64,65,m,r,42,D,14,F,X;8.2w=8.2f.C;r=1m 7N(4K,\'g\');42=8.7E.4L(r);u(!(42.M>0)){9}r=1m 7N(4K);X=[];S(D=0,14=42.M;D<14;D++){64=42[D];F=64.4L(r),m=F[0],43=F[1],W=F[2];65=1m aR("9 o() { 8."+43+"("+W+"); };");6c{3e=65();X.1A(3e.19(8.2f))}6m(3p){e=3p;X.1A(1p.1G(e))}}9 X};32.H.2r=o(){I 2w;2w=8.2w;9 8.2f.7H(o(){9 2w.4I.5w(8.7S(),2w)})};9 32})();B.1D=(o(){o 1D(){}1D.6o={};1D.18=o(11,3e){9 8.6o[11]=3e};1D.2r=o(11,P,N){9 8.6o[11](P,N)};9 1D})();1D=B.1D;B.1K=(o(){o 1K(){}1K.aP=o(84,85,86,8c){9 R.8d(R.21(86-84,2)+R.21(8c-85,2))};1K.8f=o(1j,U,3R){I 2F;u(3R==G){3R=1F}2F=1j+(R.au()*(U-1j));u(3R){9 2F.at(3R)}Q{9 R.4m(2F)}};1K.8A=o(A){9(0.aq*A.r)+(0.ap*A.g)+(0.am*A.b)};1K.1N=o(1k,2L,2M,1t,2Z,3c){I 1N,3z,1M,1q,i,j,3C,4q,2n,t,D,Z,F;u(2Z==G){2Z=0}u(3c==G){3c=E}u(1k[0]7m 48){1M=1k;2Z=2L;3c=2M}Q{1M=[1k,2L,2M,1t]}u(1M.M<2){1S"3L 5s 5t Y 2g 1N";}1N={};3C=o(a,b,t){9 a*(1-t)+b*t};3z=o(a,1j,U){9 R.1j(R.U(a,1j),U)};S(i=D=0;D<6Q;i=++D){t=i/6Q;2n=1M;ai(2n.M>1){4q=[];S(j=Z=0,F=2n.M-2;0<=F?Z<=F:Z>=F;j=0<=F?++Z:--Z){4q.1A([3C(2n[j][0],2n[j+1][0],t),3C(2n[j][1],2n[j+1][1],t)])}2n=4q}1N[R.4m(2n[0][0])]=R.4m(3z(2n[0][1],2Z,3c))}1q=1M[1M.M-1][0];1N=B.1K.5u(1N,1q);u(1N[1q]==G){1N[1q]=1N[1q-1]}9 1N};1K.6T=o(1M,2Z,3c){I 2x,3z,6A,1q,4T,4U,4V,4W,i,j,3C,5A,5B,2T,p,3D,3E,2X,4X,4Y,2b,50,t,D,Z,F;u(1M.M<2){1S"3L 5s 5t Y 2g 6T";}2b={};3C=o(a,b,t){9 a*(1-t)+b*t};2x=(o(17){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2T=(o(17){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(17){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3z=o(a,1j,U){9 R.1j(R.U(a,1j),U)};6A=0;S(i=D=0,F=1M.M-2;0<=F?D<=F:D>=F;i=0<=F?++D:--D){3D=1M[i];3E=1M[i+1];2X=3E[0]-3D[0];4X=1/2X;u(i===1M.M-2){4X=1/(2X-1)}p=i>0?1M[i-1]:3D;5A=2T(50(3E,p),[0.5,0.5]);p=i<1M.M-2?1M[i+2]:3E;5B=2T(50(p,3D),[0.5,0.5]);S(j=Z=0;0<=2X?Z<=2X:Z>=2X;j=0<=2X?++Z:--Z){t=j*4X;4T=2.0*t*t*t-3.0*t*t+1.0;4U=t*t*t-2.0*t*t+t;4V=-2.0*t*t*t+3.0*t*t;4W=t*t*t-t*t;4Y=2x(2T(3D,[4T,4T]),2T(5A,[4U,4U]),2T(3E,[4V,4V]),2T(5B,[4W,4W]));2b[R.4m(4Y[0])]=R.4m(3z(4Y[1],2Z,3c));6A+=1}}1q=1M[1M.M-1][0];2b=B.1K.5u(2b,1q);9 2b};1K.5u=o(35,1q){I i,j,3H,2b,53,D,Z;u(8t.ae(35).M<1q+1){2b={};S(i=D=0;0<=1q?D<=1q:D>=1q;i=0<=1q?++D:--D){u(35[i]!=G){2b[i]=35[i]}Q{3H=[i-1,2b[i-1]];S(j=Z=i;i<=1q?Z<=1q:Z>=1q;j=i<=1q?++Z:--Z){u(35[j]!=G){53=[j,35[j]];3b}}2b[i]=3H[1]+((53[1]-3H[1])/(53[0]-3H[0]))*(i-3H[0])}}9 2b}9 35};9 1K})();1K=B.1K;B.1s=(o(){o 1s(){}1s.5M=o(2l){I b,g,r;u(2l.8N(0)==="#"){2l=2l.56(1)}r=57(2l.56(0,2),16);g=57(2l.56(2,2),16);b=57(2l.56(4,2),16);9{r:r,g:g,b:b}};1s.ab=o(r,g,b){I d,h,l,U,1j,s;u(1f r==="2z"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;U=R.U(r,g,b);1j=R.1j(r,g,b);l=(U+1j)/2;u(U===1j){h=s=0}Q{d=U-1j;s=l>0.5?d/(2-U-1j):d/(U+1j);h=(o(){3x(U){1y r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1s.7r=o(r,g,b){I d,h,U,1j,s,v;r/=E;g/=E;b/=E;U=R.U(r,g,b);1j=R.1j(r,g,b);v=U;d=U-1j;s=U===0?0:d/U;u(U===1j){h=0}Q{h=(o(){3x(U){1y r:9(g-b)/d+(g0.5V){r=R.21((r+0.2c)/1.2c,2.4)}Q{r/=12.92}u(g>0.5V){g=R.21((g+0.2c)/1.2c,2.4)}Q{g/=12.92}u(b>0.5V){b=R.21((b+0.2c)/1.2c,2.4)}Q{b/=12.92}x=r*0.a5+g*0.a4+b*0.a3;y=r*0.a1+g*0.9X+b*0.9W;z=r*0.9R+g*0.9P+b*0.9O;9{x:x*1n,y:y*1n,z:z*1n}};1s.9N=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9M*x)+(-1.9L*y)+(-0.9J*z);g=(-0.9H*x)+(1.9G*y)+(0.9F*z);b=(0.9E*x)+(-0.9C*y)+(1.9B*z);u(r>0.6d){r=(1.2c*R.21(r,0.6e))-0.2c}Q{r*=12.92}u(g>0.6d){g=(1.2c*R.21(g,0.6e))-0.2c}Q{g*=12.92}u(b>0.6d){b=(1.2c*R.21(b,0.6e))-0.2c}Q{b*=12.92}9{r:r*E,g:g*E,b:b*E}};1s.7X=o(x,y,z){I a,b,l,5Y,6f,6g;u(1f x==="2z"){y=x.y;z=x.z;x=x.x}5Y=95.81;6f=1n.0;6g=82.83;x/=5Y;y/=6f;z/=6g;u(x>0.6h){x=R.21(x,0.6i)}Q{x=(7.6j*x)+0.3n}u(y>0.6h){y=R.21(y,0.6i)}Q{y=(7.6j*y)+0.3n}u(z>0.6h){z=R.21(z,0.6i)}Q{z=(7.6j*z)+0.3n}l=88*y-16;a=89*(x-y);b=8a*(y-z);9{l:l,a:a,b:b}};1s.9y=o(l,a,b){I x,y,z;u(1f l==="2z"){a=l.a;b=l.b;l=l.l}y=(l+16)/88;x=y+(a/89);z=y-(b/8a);u(x>0.6k){x=x*x*x}Q{x=0.6l*(x-0.3n)}u(y>0.6k){y=y*y*y}Q{y=0.6l*(y-0.3n)}u(z>0.6k){z=z*z*z}Q{z=0.6l*(z-0.3n)}9{x:x*95.81,y:y*1n.0,z:z*82.83}};1s.9w=o(r,g,b){I 6n;u(1f r==="2z"){g=r.g;b=r.b;r=r.r}6n=8.7w(r,g,b);9 8.7X(6n)};1s.9t=o(l,a,b){};9 1s})();1s=B.1s;B.1U=(o(){o 1U(){}1U.3g={};1U.8i=["8j","8k","8B","8l","8m","3j"];1U.33=o(24,15,1o){I 3U,D,14,F,X;u(1o==G){1o=G}u(8.3g[15]&&8.3g[15].M){F=8.3g[15];X=[];S(D=0,14=F.M;D<14;D++){3U=F[D];u(3U.24===G||24.1R===3U.24.1R){X.1A(3U.2s.19(24,1o))}Q{X.1A(9p 0)}}9 X}};1U.9o=o(24,15,2s){I 6q,6r;u(1f 24==="2N"){6r=24;6q=15;24=G;15=6r;2s=6q}u(3O.19(8.8i,15)<0){9 1F}u(!8.3g[15]){8.3g[15]=[]}8.3g[15].1A({24:24,2s:2s});9 2k};9 1U})();1U=B.1U;B.V=(o(){o V(){}V.26={5z:1,5G:2,5K:3,5O:4,6s:5,1P:6};V.18=o(11,8u){9 B.H[11]=8u};9 V})();V=B.V;B.1Q=(o(){o 1Q(){}1Q.8v=/(?:(?:40|7C):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1Q.7h=o(1h){u(1h==G){9 1F}u(8.8w(1h)){9 1F}9 8.5h(1h.1c)};1Q.8w=o(1h){I F;9(1h.5X!=G)&&((F=1h.5X.3Y())===\'7A\'||F===\'8y-9e\')};1Q.5h=o(49){I 5i;5i=49.4L(8.8v);u(5i){9 5i[1]!==1E.9d}Q{9 1F}};1Q.8C=o(1c){u(8.5h(1c)){u(!B.59.M){1p.6x("9c 2g 96 a 8G T 94 a 93 8J. 6W: "+1c)}Q{u(B.5h(B.59)){1p.6x("91 8y a 8G 8J S 8Q 8P.");9}9 8.39(1c)}}};1Q.39=o(1c){9""+B.59+"?"+B.7x+"="+(8O(1c))};1Q.ac=o(3h){I 4r;4r={8R:\'8S\',8T:\'8U\',8V:\'8W\',8X:\'8Y\'};3h=3h.3Y();u(4r[3h]!=G){3h=4r[3h]}9"8Z/90."+3h};9 1Q})();B.H.7J=o(){u(1f 1Y!=="31"&&1Y!==G){9 8.8K.2D(8,Y)}Q{9 8.8I.2D(8,Y)}};B.H.8I=o(15){I T;u(15==G){15="8H"}15=15.3Y();T=8.6z(15).97("T/"+15,"T/98-99");9 1E.9a.9b=T};B.H.8K=o(3k,5j,1g){I e,6u;u(5j==G){5j=2k}u(1g==G){1g=G}6c{6u=3y.9f(3k);u(6u.9g()&&!5j){9 1F}}6m(3p){e=3p;1p.1G("9h 9i 3k "+3k)}9 3y.9j(3k,8.C.9k(),o(4o){1p.1G("9l 9m 2g "+3k);u(1g){9 1g.19(8,4o)}})};B.H.7S=o(15){I 1h;1h=1m 2K();1h.1c=8.6z(15);1h.J=8.1L.J;1h.O=8.1L.O;u(2H.2G){1h.J/=2H.2G;1h.O/=2H.2G}9 1h};B.H.6z=o(15){u(15==G){15="8H"}15=15.3Y();9 8.C.9n("T/"+15)};1Q=B.1Q;B.22=(o(){o 22(c){8.c=c;8.43=8.c;8.1e={6p:\'8p\',2W:1.0};8.9q=1a.61.2v();8.C=1f 1Y!=="31"&&1Y!==G?1m 34():1E.2p(\'C\');8.C.J=8.c.1L.J;8.C.O=8.c.1L.O;8.1b=8.C.2a(\'2d\');8.1b.9r(8.C.J,8.C.O);8.1z=8.1b.2B(0,0,8.C.J,8.C.O);8.K=8.1z.1o}22.H.5I=o(3B){9 8.c.5I.19(8.c,3B)};22.H.9s=o(8g){8.1e.6p=8g;9 8};22.H.2W=o(2W){8.1e.2W=2W/1n;9 8};22.H.9u=o(){I i,20,D,F;20=8.c.K;S(i=D=0,F=8.c.K.M;D8.c.K.M||2i<0){9 1m 1r(0,0,0,E,8.c)}9 8.66(2i)};1r.H.9Q=o(5e,5d,A){I 7I;u(8.c==G){1S"3v a 3w 1b";}7I=8.1l+(8.c.1L.J*4*(5d*-1))+(4*5e);u(2i>8.c.K.M||2i<0){9}8.c.K[2i]=A.r;8.c.K[2i+1]=A.g;8.c.K[2i+2]=A.b;8.c.K[2i+3]=A.a;9 2k};1r.H.9S=o(x,y){I 1l;u(8.c==G){1S"3v a 3w 1b";}1l=8.6a(x,y,8.J);9 8.66(1l)};1r.H.9T=o(x,y,A){I 1l;u(8.c==G){1S"3v a 3w 1b";}1l=8.6a(x,y,8.J);8.c.K[1l]=A.r;8.c.K[1l+1]=A.g;8.c.K[1l+2]=A.b;9 8.c.K[1l+3]=A.a};1r.H.3F=o(){9 8.9U()};1r.H.9V=o(5b){I 2l;u(5b==G){5b=1F}2l=\'#\'+8.r.3F(16)+8.g.3F(16)+8.b.3F(16);u(5b){9 2l+8.a.3F(16)}Q{9 2l}};9 1r})();1r=B.1r;B.1P=(o(){o 1P(){}1P.62={};1P.18=o(11,2C){9 8.62[11]=2C};1P.2r=o(1b,11,W){9 8.62[11].2D(1b,W)};9 1P})();1P=B.1P;B.1i=(o(){1i.2U=B.1X?4h(\'9Z\').a0().M:4;o 1i(c){8.c=c;8.2A=5x(8.2A,8);8.4f=[];8.37=G}1i.H.2x=o(60){u(60==G){9}9 8.4f.1A(60)};1i.H.2A=o(){I 1x;u(8.4f.M===0){1U.33(8,"8l");u(8.5Z!=G){8.5Z.19(8.c)}9 8}8.1w=8.4f.7v();3x(8.1w.15){1y V.26.5K:1x=8.c.5C.7v();8.c.75(1x);9 8.2A();1y V.26.5O:8.c.78();8.c.77();9 8.2A();1y V.26.6s:9 8.7s(8.1w.1x,8.1w.1c);1y V.26.1P:9 8.7p();a9:9 8.7o()}};1i.H.2r=o(1g){8.5Z=1g;8.37=1a.4b(8.c.K.M);9 8.2A()};1i.H.5R=o(2s){I 4d,5N,1O,1t,f,i,5L,n,1k,D,F,X;8.52=0;n=8.c.K.M;5N=R.2R((n/4)/1i.2U);4d=5N*4;5L=4d+((n/4)%1i.2U)*4;X=[];S(i=D=0,F=1i.2U;0<=F?DF;i=0<=F?++D:--D){1k=i*4d;1t=1k+(i===1i.2U-1?5L:4d);u(B.1X){f=4l((o(17){9 o(){9 2s.19(17,i,1k,1t)}})(8));1O=f.ah();X.1A(8.3j(1O))}Q{X.1A(4Q((o(17){9 o(i,1k,1t){9 o(){9 2s.19(17,i,1k,1t)}}})(8)(i,1k,1t),0))}}9 X};1i.H.7o=o(){1U.33(8.c,"8j",8.1w);u(8.1w.15===V.26.5z){9 8.5R(8.6R)}Q{9 8.5R(8.6P)}};1i.H.7p=o(){1p.1G("ak 2C "+8.1w.2C);1P.2r(8.c,8.1w.2C,8.1w.W);1p.1G("1P "+8.1w.2C+" 5m!");9 8.2A()};1i.H.6R=o(1O,1k,1t){I i,13,D;1p.1G("8F #"+1O+" - V: "+8.1w.11+", an: "+1k+", ao: "+1t);1U.33(8.c,"8m",{8E:1O,8D:1i.2U,ar:1k,as:1t});13=1m 1r();13.68(8.c);S(i=D=1k;D<1t;i=D+=4){13.1l=i;13.r=8.c.K[i];13.g=8.c.K[i+1];13.b=8.c.K[i+2];13.a=8.c.K[i+3];8.1w.4H(13);8.c.K[i]=1a.2m(13.r);8.c.K[i+1]=1a.2m(13.g);8.c.K[i+2]=1a.2m(13.b);8.c.K[i+3]=1a.2m(13.a)}u(B.1X){9 4l["8x"](1O)}Q{9 8.3j(1O)}};1i.H.6P=o(1O,1k,1t){I L,3Q,25,1V,3M,1T,i,j,k,2o,n,11,p,13,2y,D,Z,1C;11=8.1w.11;25=8.1w.25;1T=8.1w.1T;n=8.c.K.M;L=8.1w.L;3Q=R.8d(L.M);2o=[];1p.1G("az 2o - V: "+8.1w.11);1k=R.U(1k,8.c.1L.J*4*((3Q-1)/2));1t=R.1j(1t,n-(8.c.1L.J*4*((3Q-1)/2)));1V=(3Q-1)/2;13=1m 1r();13.68(8.c);S(i=D=1k;D<1t;i=D+=4){13.1l=i;3M=0;S(j=Z=-1V;-1V<=1V?Z<=1V:Z>=1V;j=-1V<=1V?++Z:--Z){S(k=1C=1V;1V<=-1V?1C<=-1V:1C>=-1V;k=1V<=-1V?++1C:--1C){p=13.7M(j,k);2o[3M*3]=p.r;2o[3M*3+1]=p.g;2o[3M*3+2]=p.b;3M++}}2y=8.5E(L,2o,1T,25);8.37[i]=1a.2m(2y.r);8.37[i+1]=1a.2m(2y.g);8.37[i+2]=1a.2m(2y.b);8.37[i+3]=8.c.K[i+3]}u(B.1X){9 4l["8x"](1O)}Q{9 8.3j(1O)}};1i.H.3j=o(1O){I i,D,F;u(1O>=0){1p.1G("8F #"+1O+" 5m! V: "+8.1w.11)}8.52++;1U.33(8.c,"3j",{8E:1O,aA:8.52,8D:1i.2U});u(8.52===1i.2U){u(8.1w.15===V.26.5G){S(i=D=0,F=8.c.K.M;0<=F?DF;i=0<=F?++D:--D){8.c.K[i]=8.37[i]}}u(1O>=0){1p.1G("V "+8.1w.11+" 5m!")}1U.33(8.c,"8k",8.1w);9 8.2A()}};1i.H.5E=o(L,2o,1T,25){I i,1u,D,F;1u={r:0,g:0,b:0};S(i=D=0,F=L.M;0<=F?DF;i=0<=F?++D:--D){1u.r+=L[i]*2o[i*3];1u.g+=L[i]*2o[i*3+1];1u.b+=L[i]*2o[i*3+2]}1u.r=(1u.r/1T)+25;1u.g=(1u.g/1T)+25;1u.b=(1u.b/1T)+25;9 1u};1i.H.7s=o(1x,1c){I 1h,39;1h=1m 2K();1h.6B=(o(17){9 o(){1x.1b.3N(1h,0,0,17.c.1L.J,17.c.1L.O);1x.1z=1x.1b.2B(0,0,17.c.1L.J,17.c.1L.O);1x.K=1x.1z.1o;17.c.K=1x.K;9 17.2A()}})(8);39=1Q.8C(1c);9 1h.1c=39!=G?39:1c};9 1i})();1i=B.1i;B.1Z=(o(){o 1Z(){}1Z.3G={};1Z.7b=o(2V){9 8.3G[2V]!=G};1Z.2v=o(2V){9 8.3G[2V]};1Z.6F=o(11,1J){9 8.3G[11]=1J};1Z.2r=o(2V,1g){4Q((o(17){9 o(){9 1g.19(17.2v(2V),17.2v(2V))}})(8),0);9 8.2v(2V)};1Z.aD=o(11){u(11==G){11=1F}u(11){9 8e 8.3G[11]}Q{9 8.3G={}}};9 1Z})();1Z=B.1Z;1D.18("8p",o(P,N){9{r:P.r,g:P.g,b:P.b}});1D.18("aF",o(P,N){9{r:(P.r*N.r)/E,g:(P.g*N.g)/E,b:(P.b*N.b)/E}});1D.18("aG",o(P,N){9{r:E-(((E-P.r)*(E-N.r))/E),g:E-(((E-P.g)*(E-N.g))/E),b:E-(((E-P.b)*(E-N.b))/E)}});1D.18("aH",o(P,N){I 1d;1d={};1d.r=N.r>1v?E-2*(E-P.r)*(E-N.r)/E:(N.r*P.r*2)/E;1d.g=N.g>1v?E-2*(E-P.g)*(E-N.g)/E:(N.g*P.g*2)/E;1d.b=N.b>1v?E-2*(E-P.b)*(E-N.b)/E:(N.b*P.b*2)/E;9 1d});1D.18("aJ",o(P,N){9{r:P.r-N.r,g:P.g-N.g,b:P.b-N.b}});1D.18("aK",o(P,N){9{r:N.r+P.r,g:N.g+P.g,b:N.b+P.b}});1D.18("aL",o(P,N){9{r:1v-2*(N.r-1v)*(P.r-1v)/E,g:1v-2*(N.g-1v)*(P.g-1v)/E,b:1v-2*(N.b-1v)*(P.b-1v)/E}});1D.18("aM",o(P,N){I 1d;1d={};1d.r=N.r>1v?E-((E-N.r)*(E-(P.r-1v)))/E:(N.r*(P.r+1v))/E;1d.g=N.g>1v?E-((E-N.g)*(E-(P.g-1v)))/E:(N.g*(P.g+1v))/E;1d.b=N.b>1v?E-((E-N.b)*(E-(P.b-1v)))/E:(N.b*(P.b+1v))/E;9 1d});1D.18("aN",o(P,N){9{r:N.r>P.r?N.r:P.r,g:N.g>P.g?N.g:P.g,b:N.b>P.b?N.b:P.b}});1D.18("aO",o(P,N){9{r:N.r>P.r?P.r:N.r,g:N.g>P.g?P.g:N.g,b:N.b>P.b?P.b:N.b}});V.18("5g",o(){I 3A;u(Y.M===1){3A=1s.5M(Y[0])}Q{3A={r:Y[0],g:Y[1],b:Y[2]}}9 8.1W("5g",o(A){A.r=3A.r;A.g=3A.g;A.b=3A.b;A.a=E;9 A})});V.18("7W",o(L){L=R.2R(E*(L/1n));9 8.1W("7W",o(A){A.r+=L;A.g+=L;A.b+=L;9 A})});V.18("7O",o(L){L*=-0.aS;9 8.1W("7O",o(A){I U;U=R.U(A.r,A.g,A.b);u(A.r!==U){A.r+=(U-A.r)*L}u(A.g!==U){A.g+=(U-A.g)*L}u(A.b!==U){A.b+=(U-A.b)*L}9 A})});V.18("7G",o(L){L*=-1;9 8.1W("7G",o(A){I 3X,2J,U;U=R.U(A.r,A.g,A.b);2J=(A.r+A.g+A.b)/3;3X=((R.2I(U-2J)*2/E)*L)/1n;u(A.r!==U){A.r+=(U-A.r)*3X}u(A.g!==U){A.g+=(U-A.g)*3X}u(A.b!==U){A.b+=(U-A.b)*3X}9 A})});V.18("7n",o(L){9 8.1W("7n",o(A){I 2J;2J=1K.8A(A);A.r=2J;A.g=2J;A.b=2J;9 A})});V.18("7i",o(L){L=R.21((L+1n)/1n,2);9 8.1W("7i",o(A){A.r/=E;A.r-=0.5;A.r*=L;A.r+=0.5;A.r*=E;A.g/=E;A.g-=0.5;A.g*=L;A.g+=0.5;A.g*=E;A.b/=E;A.b-=0.5;A.b*=L;A.b+=0.5;A.b*=E;9 A})});V.18("7g",o(L){9 8.1W("7g",o(A){I b,g,h,3a,r,F;3a=1s.7r(A.r,A.g,A.b);h=3a.h*1n;h+=R.2I(L);h=h%1n;h/=1n;3a.h=h;F=1s.7t(3a.h,3a.s,3a.v),r=F.r,g=F.g,b=F.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7d",o(){I 3s,3i;u(Y.M===2){3i=1s.5M(Y[0]);3s=Y[1]}Q u(Y.M===4){3i={r:Y[0],g:Y[1],b:Y[2]};3s=Y[3]}9 8.1W("7d",o(A){A.r-=(A.r-3i.r)*(3s/1n);A.g-=(A.g-3i.g)*(3s/1n);A.b-=(A.b-3i.b)*(3s/1n);9 A})});V.18("8n",o(){9 8.1W("8n",o(A){A.r=E-A.r;A.g=E-A.g;A.b=E-A.b;9 A})});V.18("80",o(L){u(L==G){L=1n}L/=1n;9 8.1W("80",o(A){A.r=R.1j(E,(A.r*(1-(0.b6*L)))+(A.g*(0.b7*L))+(A.b*(0.b8*L)));A.g=R.1j(E,(A.r*(0.b9*L))+(A.g*(1-(0.ba*L)))+(A.b*(0.bb*L)));A.b=R.1j(E,(A.r*(0.bc*L))+(A.g*(0.bd*L))+(A.b*(1-(0.be*L))));9 A})});V.18("7Q",o(L){9 8.1W("7Q",o(A){A.r=R.21(A.r/E,L)*E;A.g=R.21(A.g/E,L)*E;A.b=R.21(A.b/E,L)*E;9 A})});V.18("7P",o(L){L=R.2I(L)*2.55;9 8.1W("7P",o(A){I 2F;2F=1K.8f(L*-1,L);A.r+=2F;A.g+=2F;A.b+=2F;9 A})});V.18("72",o(L){L=R.2I(L)*2.55;9 8.1W("72",o(A){u(A.r>E-L){A.r=E}Q u(A.rE-L){A.g=E}Q u(A.gE-L){A.b=E}Q u(A.b0){A.r+=(E-A.r)*1e.4A}Q{A.r-=A.r*R.2I(1e.4A)}}u(1e.4x!=G){u(1e.4x>0){A.g+=(E-A.g)*1e.4x}Q{A.g-=A.g*R.2I(1e.4x)}}u(1e.4w!=G){u(1e.4w>0){A.b+=(E-A.b)*1e.4w}Q{A.b-=A.b*R.2I(1e.4w)}}9 A})});V.18("4v",o(){I 47,1N,2q,2h,1t,i,3l,1k,D,Z,F,2e;2q=Y[0],2h=2<=Y.M?3o.19(Y,1):[];3l=2h[2h.M-1];u(1f 3l==="o"){47=3l;2h.3Z()}Q u(1f 3l==="2N"){47=1K[3l];2h.3Z()}Q{47=1K.1N}u(1f 2q==="2N"){2q=2q.bt("")}u(2q[0]==="v"){2q=[\'r\',\'g\',\'b\']}u(2h.M<2){1S"3L 5s 5t Y 2g 4v 43";}1N=47(2h,0,E);1k=2h[0];u(1k[0]>0){S(i=D=0,F=1k[0];0<=F?DF;i=0<=F?++D:--D){1N[i]=1k[1]}}1t=2h[2h.M-1];u(1t[0]=E;i=2e<=E?++Z:--Z){1N[i]=1t[1]}}9 8.1W("4v",o(A){I 1C,2E;S(i=1C=0,2E=2q.M;0<=2E?1C<2E:1C>2E;i=0<=2E?++1C:--1C){A[2q[i]]=1N[A[2q[i]]]}9 A})});V.18("bu",o(L){I 2L,2M,p;p=R.2I(L)/1n;2L=[0,E*p];2M=[E-(E*p),E];u(L<0){2L=2L.6G();2M=2M.6G()}9 8.4v(\'3i\',[0,0],2L,2M,[E,E])});B.1P.18("6v",o(J,O,x,y){I C,1B;u(x==G){x=0}u(y==G){y=0}u(1f 1Y!=="31"&&1Y!==G){C=1m 34(J,O)}Q{C=1E.2p(\'C\');1a.3S(8.C,C);C.J=J;C.O=O}1B=C.2a(\'2d\');1B.3N(8.C,x,y,J,O,0,0,J,O);8.4g={x:x,y:y};8.79=2k;9 8.4y(C)});B.1P.18("4t",o(1I){I C,1B;u(1I==G){1I=G}u(1I===G||((1I.J==G)&&(1I.O==G))){1p.5F("3L 7Z bz 1L 8L S 4t");9}u(1I.J==G){1I.J=8.C.J*1I.O/8.C.O}Q u(1I.O==G){1I.O=8.C.O*1I.J/8.C.J}u(1f 1Y!=="31"&&1Y!==G){C=1m 34(1I.J,1I.O)}Q{C=1E.2p(\'C\');1a.3S(8.C,C);C.J=1I.J;C.O=1I.O}1B=C.2a(\'2d\');1B.3N(8.C,0,0,8.C.J,8.C.O,0,0,1I.J,1I.O);8.4Z=2k;9 8.4y(C)});B.V.18("6v",o(){9 8.5H("6v",48.H.3m.19(Y,0))});B.V.18("4t",o(){9 8.5H("4t",48.H.3m.19(Y,0))})}).19(8);',62,718,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|canvas|_i|255|_ref|null|prototype|var|width|pixelData|adjust|length|rgbaParent|height|rgbaLayer|else|Math|for|image|max|Filter|args|_results|arguments|_j||name||pixel|_len|type||_this|register|call|Util|context|src|result|options|typeof|callback|img|Renderer|min|start|loc|new|100|data|Log|endX|Pixel|Convert|end|val|128|currentJob|layer|case|imageData|push|ctx|_k|Blender|document|false|debug|key|newDims|obj|Calculate|dimensions|controlPoints|bezier|bnum|Plugin|IO|id|throw|divisor|Event|builder|process|NodeJS|exports|Store|parentData|pow|Layer|initObj|target|bias|Type||levels|rotatedCanvas|getContext|ret|055||_ref1|caman|to|cps|newLoc|Module|true|hex|clampRGB|prev|kernel|createElement|chans|execute|fn|ratio|value|get|ele|add|res|object|processNext|getImageData|plugin|apply|_ref2|rand|devicePixelRatio|window|abs|avg|Image|ctrl1|ctrl2|string|from|originalPixelData|Analyze|floor|renderer|mul|Blocks|search|opacity|pointsPerSegment|rotatedCanvasCtx|lowBound|layerData|undefined|CamanParser|trigger|Canvas|values|originalWidth|modPixelData|in|proxyUrl|hsv|break|highBound|imageHeight|func|imageWidth|events|lang|rgb|blockFinished|file|last|slice|1379310345|__slice|_error|chan|nodeFileReady|level|child|parent|Requires|CamanJS|switch|fs|clamp|color|cb|lerp|p0|p1|toString|items|leftCoord|finishInit|originalHeight|getAttribute|Invalid|builderIndex|drawImage|__indexOf|pixelStack|adjustSize|getFloat|copyAttributes|currentLayer|event|opts|attr|amt|toLowerCase|pop|http|allowRevert|unparsedInstructions|filter|imageLoaded|scaledCanvas|__hasProp|algo|Array|url|putImageData|dataArray|copy|blockN|numPixels|renderQueue|cropCoordinates|require|preScaledWidth|prop|preScaledHeight|Fiber|round|imgs|err|continue|next|langToExt|hiDPIRatio|resize|moduleKeywords|curves|blue|green|replaceCanvas|oldCanvas|red|updateContext|coord|pixels|startX|startY|hiDPIReplacement|processFn|parentNode|buf|INST_REGEX|match|source|imageUrl|initType|complete|setTimeout|disabled|Root|fac0|fac1|fac2|fac3|pointsPerStep|pos|resized|sub|initializedPixelData|blocksDone|rightCoord|sel||substr|parseInt|hueToRGB|remoteProxy|root|includeAlpha|dest|vert|horiz|Logger|fillColor|isURLRemote|matches|overwrite|backingStoreRatio|_ref3|finished|_ref4|readyState|needsHiDPISwap|listener|waitForImageLoaded|number|of|missingValues|imageAdjustments|replaceChild|__bind|Revert|Single|m0|m1|canvasQueue|layerStack|processKernel|error|Kernel|processPlugin|newLayer|on|LayerDequeue|lastBlockN|hexToRGB|blockPixelLength|LayerFinished|ctor|endY|eachBlock|bind|getAttrId|req|04045|DOMUpdated|crossOrigin|whiteX|finishedFn|job|uniqid|plugins|naturalWidth|inst|instFunc|pixelAtLocation|except|setContext|nodeName|coordinatesToLocation|console|try|0031308|4166666667|whiteY|whiteZ|008856451679|3333333333|787037037|2068965517|1284185493|catch|xyz|blenders|blendingMode|_fn|_type|LoadOverlay|included|stats|crop|_len1|info|version|toBase64|count|onload|addEventListener|initialized|DOM|put|reverse|originalVisiblePixels|Height|setup|Width|parseArguments|domIsLoaded|hiDPIDisabled|isImageLoaded|renderKernel|1000|renderBlock|loaded|hermite|item|__extends|URL|hidpi|chunk|reloadCanvasData|channels|scaled|clip|rotationAngle|rotated|executeLayer|pushContext|popContext|applyCurrentLayer|cropped|applyToParent|has|binary|colorize|assignId|hiDPICapable|hue|isRemote|contrast|swapped|readFromHttp|parser|instanceof|greyscale|executeFilter|executePlugin|parse|rgbToHSV|loadOverlay|hsvToRGB|autoload|shift|rgbToXYZ|proxyParam|extended|style|anonymous|newCanvas|https|ready|dataStr|px|vibrance|render|nowLoc|save|DEBUG|initCanvas|getPixelRelative|RegExp|saturation|noise|gamma|initImage|toImage|log|hiDPIAdjustments|initNode|brightness|xyzToLab|hasId|or|sepia|047|108|883|x1|y1|x2|setAttribute|116|500|200|Uint8Array|y2|sqrt|delete|randomRange|mode|_super|types|processStart|processComplete|renderFinished|blockStarted|invert|date|normal|me|node|setInitObject|Object|filterFunc|domainRegex|corsEnabled|yield|use|locationToCoordinates|luminance|renderStart|remoteCheck|totalBlocks|blockNum|Block|remote|png|browserSave|proxy|nodeSave|given|release|charAt|encodeURIComponent|images|loading|ruby|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|Cannot||configured|without||load|replace|octet|stream|location|href|Attempting|domain|credentials|statSync|isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|listen|void|layerID|createImageData|setBlendingMode|labToRGB|copyParent|fibers|rgbToLab|overlayImage|labToXYZ|nodeValue|2013|0570|2040|warn|0557|0415|8758|9689|locationXY|4986|attributes|5372|2406|xyzToRGB|9505|1192|putPixelRelative|0193|getPixel|putPixel|toKey|toHex|0722|7152|extend|os|cpus|2126|querySelector|1805|3576|4124|camanProxyUrl|Version|Released|default|hslToRGB|rgbToHSL|useProxy|set|keys|defineProperty|isNaN|run|while|analyze|Executing|readystatechange|114|Start|End|587|299|startPixel|endPixel|toFixed|random|aliasProperty|aliasFunction|Could|not|Rendering|blocksFinished|delegate|includes|flush|find|multiply|screen|overlay|extends|difference|addition|exclusion|softLight|lighten|darken|distance|initialization|Function|01|Initializing|DOMContentLoaded|__super__|constructor|querySelectorAll|readFile|Fetching|setEncoding|calculateLevels|Buffer|restore|180|PI|607|769|189|349|314|168|272|534|869|rotate|translate|Remote|detected|using|reset|revert|backingStorePixelRatio|oBackingStorePixelRatio|msBackingStorePixelRatio|hasOwnProperty|mozBackingStorePixelRatio|indexOf|webkitBackingStorePixelRatio|split|exposure|naturalHeight|scale|HiDPI|resetOriginalPixelData|missing'.split('|'),0,{})) \ No newline at end of file diff --git a/src/core/caman.coffee b/src/core/caman.coffee index b52dcf4c..3e213dd0 100644 --- a/src/core/caman.coffee +++ b/src/core/caman.coffee @@ -133,6 +133,9 @@ class Caman extends Module @cropped = false @resized = false + @rotated = false + @rotationAngle = 0 + @pixelStack = [] # Stores the pixel layers @layerStack = [] # Stores all of the layers waiting to be rendered @canvasQueue = [] # Stores all of the canvases to be processed @@ -567,6 +570,36 @@ class Caman extends Module pixelData = ctx.getImageData(0, 0, @width, @height).data width = @width + else if @rotated + canvas = document.createElement('canvas') + canvas.width = @originalWidth + canvas.height = @originalHeight + + ctx = canvas.getContext('2d') + imageData = ctx.getImageData 0, 0, canvas.width, canvas.height + pixelData = imageData.data + + pixelData[i] = pixel for pixel, i in @originalPixelData + + ctx.putImageData imageData, 0, 0 + + rotatedCanvas = document.createElement('canvas') + rotatedCanvas.width = @width + rotatedCanvas.height = @height + rotatedCanvasCtx = rotatedCanvas.getContext('2d') + rotatedCanvas.width = @canvas.width + rotatedCanvas.height = @canvas.height + x = rotatedCanvas.width / 2 + y = rotatedCanvas.height / 2 + + rotatedCanvasCtx.save() + rotatedCanvasCtx.translate x, y + rotatedCanvasCtx.rotate @rotationAngle * Math.PI / 180 + rotatedCanvasCtx.drawImage canvas, -canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height + rotatedCanvasCtx.restore() + + pixelData = rotatedCanvasCtx.getImageData(0, 0, rotatedCanvas.width, rotatedCanvas.height).data + width = rotatedCanvas.width else pixelData = @originalPixelData width = @originalWidth From 0988355e5d7c3098b7157d69692c4aad0f937899 Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Wed, 31 Dec 2014 11:08:49 +0100 Subject: [PATCH 03/12] Use separate canvas for rendering --- dist/caman.full.js | 100 ++++++++++++++------------------------- dist/caman.full.min.js | 21 ++++----- dist/caman.full.pack.js | 2 +- dist/caman.js | 100 ++++++++++++++------------------------- dist/caman.min.js | 21 ++++----- dist/caman.pack.js | 2 +- src/core/caman.coffee | 102 +++++++++++++++------------------------- 7 files changed, 130 insertions(+), 218 deletions(-) diff --git a/dist/caman.full.js b/dist/caman.full.js index 3f33a376..de3f60d1 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -394,11 +394,16 @@ this.image = this.initObj; this.canvas = document.createElement('canvas'); this.context = this.canvas.getContext('2d'); + this.renderingCanvas = document.createElement('canvas'); + this.renderingContext = this.renderingCanvas.getContext('2d'); Util.copyAttributes(this.image, this.canvas, { except: ['src'] }); + Util.copyAttributes(this.image, this.renderingCanvas, { + except: ['src'] + }); if (this.image.parentNode != null) { - this.image.parentNode.replaceChild(this.canvas, this.image); + this.image.parentNode.replaceChild(this.renderingCanvas, this.image); } this.imageAdjustments(); return this.waitForImageLoaded(); @@ -407,6 +412,8 @@ Caman.prototype.initCanvas = function() { this.canvas = this.initObj; this.context = this.canvas.getContext('2d'); + this.renderingCanvas = document.createElement('canvas'); + this.renderingContext = this.renderingCanvas.getContext('2d'); if (this.imageUrl != null) { this.image = document.createElement('img'); this.image.src = this.imageUrl; @@ -460,9 +467,13 @@ if (this.swapped) { this.canvas.width = this.imageWidth() / this.hiDPIRatio(); this.canvas.height = this.imageHeight() / this.hiDPIRatio(); + this.renderingCanvas.width = this.imageWidth() / this.hiDPIRatio(); + this.renderingCanvas.height = this.imageHeight() / this.hiDPIRatio(); } else { this.canvas.width = this.imageWidth(); this.canvas.height = this.imageHeight(); + this.renderingCanvas.width = this.imageWidth(); + this.renderingCanvas.height = this.imageHeight(); } return this.finishInit(); }; @@ -480,6 +491,7 @@ } if (this.image != null) { this.context.drawImage(this.image, 0, 0, this.imageWidth(), this.imageHeight(), 0, 0, this.preScaledWidth, this.preScaledHeight); + this.renderingContext.drawImage(this.image, 0, 0, this.imageWidth(), this.imageHeight(), 0, 0, this.preScaledWidth, this.preScaledHeight); } this.imageData = this.context.getImageData(0, 0, this.canvas.width, this.canvas.height); this.pixelData = this.imageData.data; @@ -586,12 +598,20 @@ }; Caman.prototype.replaceCanvas = function(newCanvas) { - var oldCanvas; - oldCanvas = this.canvas; + var i, pixel, _i, _len, _ref; this.canvas = newCanvas; this.context = this.canvas.getContext('2d'); - if (!Caman.NodeJS) { - oldCanvas.parentNode.replaceChild(this.canvas, oldCanvas); + this.imageData = this.context.getImageData(0, 0, this.canvas.width, this.canvas.height); + this.pixelData = this.imageData.data; + if (Caman.allowRevert) { + this.initializedPixelData = Util.dataArray(this.pixelData.length); + this.originalPixelData = Util.dataArray(this.pixelData.length); + _ref = this.pixelData; + for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { + pixel = _ref[i]; + this.initializedPixelData[i] = pixel; + this.originalPixelData[i] = pixel; + } } this.width = this.canvas.width; this.height = this.canvas.height; @@ -609,7 +629,9 @@ Event.trigger(this, "renderStart"); return this.renderer.execute((function(_this) { return function() { - _this.context.putImageData(_this.imageData, 0, 0); + _this.renderingCanvas.width = _this.canvas.width; + _this.renderingCanvas.height = _this.canvas.height; + _this.renderingContext.putImageData(_this.imageData, 0, 0); return callback.call(_this); }; })(this)); @@ -629,7 +651,7 @@ this.pixelData[i] = pixel; } if (updateContext) { - return this.context.putImageData(this.imageData, 0, 0); + return this.renderingContext.putImageData(this.imageData, 0, 0); } }; @@ -657,70 +679,20 @@ }; Caman.prototype.originalVisiblePixels = function() { - var canvas, coord, ctx, endX, endY, i, imageData, pixel, pixelData, pixels, rotatedCanvas, rotatedCanvasCtx, scaledCanvas, startX, startY, width, x, y, _i, _j, _k, _len, _len1, _ref, _ref1, _ref2, _ref3, _ref4; + var coord, endX, endY, i, pixelData, pixels, startX, startY, width, _i, _ref, _ref1, _ref2; if (!Caman.allowRevert) { throw "Revert disabled"; } pixels = []; - startX = this.cropCoordinates.x; + startX = 0; endX = startX + this.width; - startY = this.cropCoordinates.y; + startY = 0; endY = startY + this.height; - if (this.resized) { - canvas = document.createElement('canvas'); - canvas.width = this.originalWidth; - canvas.height = this.originalHeight; - ctx = canvas.getContext('2d'); - imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); - pixelData = imageData.data; - _ref = this.originalPixelData; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; - pixelData[i] = pixel; - } - ctx.putImageData(imageData, 0, 0); - scaledCanvas = document.createElement('canvas'); - scaledCanvas.width = this.width; - scaledCanvas.height = this.height; - ctx = scaledCanvas.getContext('2d'); - ctx.drawImage(canvas, 0, 0, this.originalWidth, this.originalHeight, 0, 0, this.width, this.height); - pixelData = ctx.getImageData(0, 0, this.width, this.height).data; - width = this.width; - } else if (this.rotated) { - canvas = document.createElement('canvas'); - canvas.width = this.originalWidth; - canvas.height = this.originalHeight; - ctx = canvas.getContext('2d'); - imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); - pixelData = imageData.data; - _ref1 = this.originalPixelData; - for (i = _j = 0, _len1 = _ref1.length; _j < _len1; i = ++_j) { - pixel = _ref1[i]; - pixelData[i] = pixel; - } - ctx.putImageData(imageData, 0, 0); - rotatedCanvas = document.createElement('canvas'); - rotatedCanvas.width = this.width; - rotatedCanvas.height = this.height; - rotatedCanvasCtx = rotatedCanvas.getContext('2d'); - rotatedCanvas.width = this.canvas.width; - rotatedCanvas.height = this.canvas.height; - x = rotatedCanvas.width / 2; - y = rotatedCanvas.height / 2; - rotatedCanvasCtx.save(); - rotatedCanvasCtx.translate(x, y); - rotatedCanvasCtx.rotate(this.rotationAngle * Math.PI / 180); - rotatedCanvasCtx.drawImage(canvas, -canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height); - rotatedCanvasCtx.restore(); - pixelData = rotatedCanvasCtx.getImageData(0, 0, rotatedCanvas.width, rotatedCanvas.height).data; - width = rotatedCanvas.width; - } else { - pixelData = this.originalPixelData; - width = this.originalWidth; - } - for (i = _k = 0, _ref2 = pixelData.length; _k < _ref2; i = _k += 4) { + pixelData = this.originalPixelData; + width = this.canvas.width; + for (i = _i = 0, _ref = pixelData.length; _i < _ref; i = _i += 4) { coord = Pixel.locationToCoordinates(i, width); - if (((startX <= (_ref3 = coord.x) && _ref3 < endX)) && ((startY <= (_ref4 = coord.y) && _ref4 < endY))) { + if (((startX <= (_ref1 = coord.x) && _ref1 < endX)) && ((startY <= (_ref2 = coord.y) && _ref2 < endY))) { pixels.push(pixelData[i], pixelData[i + 1], pixelData[i + 2], pixelData[i + 3]); } } diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index 1c4a766f..00f02ea5 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -32,14 +32,14 @@ return _results;}};Caman.prototype.setInitObject=function(obj){if(Caman.NodeJS){ if(typeof obj==="object"){this.initObj=obj;}else{this.initObj=$(obj);} if(this.initObj==null){throw"Could not find image or canvas for initialization.";} return this.initType=this.initObj.nodeName.toLowerCase();};Caman.prototype.setup=function(){switch(this.initType){case"node":return this.initNode();case"img":return this.initImage();case"canvas":return this.initCanvas();}};Caman.prototype.initNode=function(){Log.debug("Initializing for NodeJS");if(typeof this.initObj==="string"&&this.initObj.match(/^https?:\/\//)){return this.readFromHttp(this.initObj,this.nodeFileReady);}else if(typeof this.initObj==="string"){return fs.readFile(this.initObj,this.nodeFileReady);}else{return this.nodeFileReady(null,this.initObj);}};Caman.prototype.readFromHttp=function(url,callback){var req;Log.debug("Fetching image from "+url);req=http.get(url,function(res){var buf;buf='';res.setEncoding('binary');res.on('data',function(chunk){return buf+=chunk;});return res.on('end',function(){return callback(null,new Buffer(buf,'binary'));});});return req.on('error',callback);};Caman.prototype.nodeFileReady=function(err,data){if(err){throw err;} -this.image=new Image();this.image.src=data;Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));this.canvas=new Canvas(this.imageWidth(),this.imageHeight());return this.finishInit();};Caman.prototype.initImage=function(){this.image=this.initObj;this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');Util.copyAttributes(this.image,this.canvas,{except:['src']});if(this.image.parentNode!=null){this.image.parentNode.replaceChild(this.canvas,this.image);} -this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=this.initObj;this.context=this.canvas.getContext('2d');if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} +this.image=new Image();this.image.src=data;Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));this.canvas=new Canvas(this.imageWidth(),this.imageHeight());return this.finishInit();};Caman.prototype.initImage=function(){this.image=this.initObj;this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');Util.copyAttributes(this.image,this.canvas,{except:['src']});Util.copyAttributes(this.image,this.renderingCanvas,{except:['src']});if(this.image.parentNode!=null){this.image.parentNode.replaceChild(this.renderingCanvas,this.image);} +this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=this.initObj;this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} -return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();} +return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} return this.finishInit();};Caman.prototype.finishInit=function(){var i,pixel,_i,_len,_ref;if(this.context==null){this.context=this.canvas.getContext('2d');} this.originalWidth=this.preScaledWidth=this.width=this.canvas.width;this.originalHeight=this.preScaledHeight=this.height=this.canvas.height;this.hiDPIAdjustments();if(!this.hasId()){this.assignId();} -if(this.image!=null){this.context.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);} +if(this.image!=null){this.context.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);this.renderingContext.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);} this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} this.dimensions={width:this.canvas.width,height:this.canvas.height};if(!Caman.NodeJS){Store.put(this.id,this);} this.callback.call(this,this);return this.callback=function(){};};Caman.prototype.reloadCanvasData=function(){this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);return this.pixelData=this.imageData.data;};Caman.prototype.resetOriginalPixelData=function(){var i,pixel,_i,_len,_ref,_results;if(!Caman.allowRevert){throw"Revert disabled";} @@ -48,17 +48,14 @@ return _results;};Caman.prototype.hasId=function(){return Caman.getAttrId(this.c return this.canvas.setAttribute('data-caman-id',this.id);};Caman.prototype.hiDPIDisabled=function(){return this.canvas.getAttribute('data-caman-hidpi-disabled')!==null;};Caman.prototype.hiDPIAdjustments=function(){var ratio;if(Caman.NodeJS||!this.needsHiDPISwap()){return;} ratio=this.hiDPIRatio();if(ratio!==1){Log.debug("HiDPI ratio = "+ratio);this.scaled=true;this.preScaledWidth=this.canvas.width;this.preScaledHeight=this.canvas.height;this.canvas.width=this.preScaledWidth*ratio;this.canvas.height=this.preScaledHeight*ratio;this.canvas.style.width=""+this.preScaledWidth+"px";this.canvas.style.height=""+this.preScaledHeight+"px";this.context.scale(ratio,ratio);this.width=this.originalWidth=this.canvas.width;return this.height=this.originalHeight=this.canvas.height;}};Caman.prototype.hiDPIRatio=function(){var backingStoreRatio,devicePixelRatio;devicePixelRatio=window.devicePixelRatio||1;backingStoreRatio=this.context.webkitBackingStorePixelRatio||this.context.mozBackingStorePixelRatio||this.context.msBackingStorePixelRatio||this.context.oBackingStorePixelRatio||this.context.backingStorePixelRatio||1;return devicePixelRatio/backingStoreRatio;};Caman.prototype.hiDPICapable=function(){return(window.devicePixelRatio!=null)&&window.devicePixelRatio!==1;};Caman.prototype.needsHiDPISwap=function(){if(this.hiDPIDisabled()||!this.hiDPICapable()){return false;} return this.hiDPIReplacement()!==null;};Caman.prototype.hiDPIReplacement=function(){if(this.image==null){return null;} -return this.image.getAttribute('data-caman-hidpi');};Caman.prototype.replaceCanvas=function(newCanvas){var oldCanvas;oldCanvas=this.canvas;this.canvas=newCanvas;this.context=this.canvas.getContext('2d');if(!Caman.NodeJS){oldCanvas.parentNode.replaceChild(this.canvas,oldCanvas);} +return this.image.getAttribute('data-caman-hidpi');};Caman.prototype.replaceCanvas=function(newCanvas){var i,pixel,_i,_len,_ref;this.canvas=newCanvas;this.context=this.canvas.getContext('2d');this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} this.width=this.canvas.width;this.height=this.canvas.height;this.reloadCanvasData();return this.dimensions={width:this.canvas.width,height:this.canvas.height};};Caman.prototype.render=function(callback){if(callback==null){callback=function(){};} -Event.trigger(this,"renderStart");return this.renderer.execute((function(_this){return function(){_this.context.putImageData(_this.imageData,0,0);return callback.call(_this);};})(this));};Caman.prototype.revert=function(updateContext){var i,pixel,_i,_len,_ref;if(updateContext==null){updateContext=true;} +Event.trigger(this,"renderStart");return this.renderer.execute((function(_this){return function(){_this.renderingCanvas.width=_this.canvas.width;_this.renderingCanvas.height=_this.canvas.height;_this.renderingContext.putImageData(_this.imageData,0,0);return callback.call(_this);};})(this));};Caman.prototype.revert=function(updateContext){var i,pixel,_i,_len,_ref;if(updateContext==null){updateContext=true;} if(!Caman.allowRevert){throw"Revert disabled";} _ref=this.originalVisiblePixels();for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.pixelData[i]=pixel;} -if(updateContext){return this.context.putImageData(this.imageData,0,0);}};Caman.prototype.reset=function(){var canvas,ctx,i,imageData,pixel,pixelData,_i,_len,_ref;canvas=document.createElement('canvas');Util.copyAttributes(this.canvas,canvas);canvas.width=this.originalWidth;canvas.height=this.originalHeight;ctx=canvas.getContext('2d');imageData=ctx.getImageData(0,0,canvas.width,canvas.height);pixelData=imageData.data;_ref=this.initializedPixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];pixelData[i]=pixel;} -ctx.putImageData(imageData,0,0);this.cropCoordinates={x:0,y:0};this.resized=false;return this.replaceCanvas(canvas);};Caman.prototype.originalVisiblePixels=function(){var canvas,coord,ctx,endX,endY,i,imageData,pixel,pixelData,pixels,rotatedCanvas,rotatedCanvasCtx,scaledCanvas,startX,startY,width,x,y,_i,_j,_k,_len,_len1,_ref,_ref1,_ref2,_ref3,_ref4;if(!Caman.allowRevert){throw"Revert disabled";} -pixels=[];startX=this.cropCoordinates.x;endX=startX+this.width;startY=this.cropCoordinates.y;endY=startY+this.height;if(this.resized){canvas=document.createElement('canvas');canvas.width=this.originalWidth;canvas.height=this.originalHeight;ctx=canvas.getContext('2d');imageData=ctx.getImageData(0,0,canvas.width,canvas.height);pixelData=imageData.data;_ref=this.originalPixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];pixelData[i]=pixel;} -ctx.putImageData(imageData,0,0);scaledCanvas=document.createElement('canvas');scaledCanvas.width=this.width;scaledCanvas.height=this.height;ctx=scaledCanvas.getContext('2d');ctx.drawImage(canvas,0,0,this.originalWidth,this.originalHeight,0,0,this.width,this.height);pixelData=ctx.getImageData(0,0,this.width,this.height).data;width=this.width;}else if(this.rotated){canvas=document.createElement('canvas');canvas.width=this.originalWidth;canvas.height=this.originalHeight;ctx=canvas.getContext('2d');imageData=ctx.getImageData(0,0,canvas.width,canvas.height);pixelData=imageData.data;_ref1=this.originalPixelData;for(i=_j=0,_len1=_ref1.length;_j<_len1;i=++_j){pixel=_ref1[i];pixelData[i]=pixel;} -ctx.putImageData(imageData,0,0);rotatedCanvas=document.createElement('canvas');rotatedCanvas.width=this.width;rotatedCanvas.height=this.height;rotatedCanvasCtx=rotatedCanvas.getContext('2d');rotatedCanvas.width=this.canvas.width;rotatedCanvas.height=this.canvas.height;x=rotatedCanvas.width/2;y=rotatedCanvas.height/2;rotatedCanvasCtx.save();rotatedCanvasCtx.translate(x,y);rotatedCanvasCtx.rotate(this.rotationAngle*Math.PI/180);rotatedCanvasCtx.drawImage(canvas,-canvas.width/2,-canvas.height/2,canvas.width,canvas.height);rotatedCanvasCtx.restore();pixelData=rotatedCanvasCtx.getImageData(0,0,rotatedCanvas.width,rotatedCanvas.height).data;width=rotatedCanvas.width;}else{pixelData=this.originalPixelData;width=this.originalWidth;} -for(i=_k=0,_ref2=pixelData.length;_k<_ref2;i=_k+=4){coord=Pixel.locationToCoordinates(i,width);if(((startX<=(_ref3=coord.x)&&_ref3_ref;i=0<=_ref?++_i:--_i){divisor+=adjust[i];}} diff --git a/dist/caman.full.pack.js b/dist/caman.full.pack.js index 3958fa9d..e6f34beb 100644 --- a/dist/caman.full.pack.js +++ b/dist/caman.full.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4y,2l,2j,D,5c,43,1Z,2N,6H,R,2P,4x,3c,26,3N,2a,2w,1S,7S,33,1v,fs,6A,7C,5d,9x,6x=[].fb||A(cR){W(M i=0,l=o.P;iF){u F}u 2i};1v.6j=A(4V,3O,H){M 6B,I,1o,K,3G,1n;B(H==L){H={}}K=4V.dl;1n=[];W(I=0,1o=K.P;I<1o;I++){6B=K[I];B((H.8Q!=L)&&(3G=6B.8P,6x.1x(H.8Q,3G)>=0)){6k}1n.2r(3O.bE(6B.8P,6B.dx))}u 1n};1v.6M=A(P){B(P==L){P=0}B(D.2R||(4v.br!=L)){u 1A br(P)}u 1A 5M(P)};u 1v})();B(1r 2h!=="47"&&2h!==L){7S=2h;43=74(\'G\');4x=43.4x;6H=74(\'dz\');fs=74(\'fs\');6A=74(\'6A\')}S{7S=4v}D=(A(b9){aH(D,b9);D.9v={b0:"4.1.2",aX:"7/27/dO"};D.aE=2n;D.6O=2K;D.8K="dd";D.7X="";D.cO="e8";D.2R=1r 2h!=="47"&&2h!==L;D.cD=!D.2R;D.69=A(){u"ec "+D.9v.b0+", fc "+D.9v.aX};D.9y=A(G){B(D.2R){u 2K}B(1r G==="3g"){G=$(G)}B(!((G!=L)&&(G.5w!=L))){u L}u G.5w(\'1V-3P-2T\')};A D(){o.5v=8G(o.5v,o);M 1m,1L,2T;B(1l.P===0){2O"5A 1l";}B(o cj D){o.5t=o.5t.9A(o);o.6z=o.6z.9A(o);1m=1l[0];B(!D.2R){2T=4r(D.9y(1m[0]),10);1L=1r 1m[1]==="A"?1m[1]:1r 1m[2]==="A"?1m[2]:A(){};B(!bY(2T)&&33.bR(2T)){u 33.3V(2T,1L)}}o.2T=1v.9c.4p();o.7f=o.4M=L;o.6C={x:0,y:0};o.al=2n;o.8j=2n;o.9H=2n;o.9I=0;o.6D=[];o.9J=[];o.9K=[];o.6F=L;o.cv=2n;o.ft=1A 4y(o);o.4W=1A 1S(o);o.c9((A(1w){u A(){1w.c8(1m);u 1w.c7()}})(o));u o}S{u 1A D(1l)}}D.N.c9=A(cb){M 9S;B(D.2R){u 8f((A(1w){u A(){u cb.1x(1w)}})(o),0)}S{B(29.9T==="89"){26.2v("aj cX");u 8f((A(1w){u A(){u cb.1x(1w)}})(o),0)}S{9S=(A(1w){u A(){B(29.9T==="89"){26.2v("aj cX");u cb.1x(1w)}}})(o);u 29.cW("fA",9S,2n)}}};D.N.c8=A(1m){M 2x,2i,K,1n;B(1m.P===0){2O"5A 1l cP";}o.39=L;o.7R=L;o.7N=L;o.1L=A(){};o.cC(1m[0]);B(1m.P===1){u}6g(1r 1m[1]){2g"3g":o.7N=1m[1];5g;2g"A":o.1L=1m[1]}B(1m.P===2){u}o.1L=1m[2];B(1m.P===4){K=1m[4];1n=[];W(2x 53 K){B(!6v.1x(K,2x))6k;2i=K[2x];1n.2r(o.1I[2x]=2i)}u 1n}};D.N.cC=A(2E){B(D.2R){o.39=2E;o.7R=\'cs\';u}B(1r 2E==="46"){o.39=2E}S{o.39=$(2E)}B(o.39==L){2O"fB fC fD 1f bz G W fG.";}u o.7R=o.39.8P.6X()};D.N.c7=A(){6g(o.7R){2g"cs":u o.aZ();2g"1T":u o.aL();2g"G":u o.b8()}};D.N.aZ=A(){26.2v("gc W 2R");B(1r o.39==="3g"&&o.39.7w(/^aI?:\\/\\//)){u o.cx(o.39,o.5v)}S B(1r o.39==="3g"){u fs.gf(o.39,o.5v)}S{u o.5v(L,o.39)}};D.N.cx=A(78,1L){M ae;26.2v("gv 1f 4V "+78);ae=6A.4p(78,A(4s){M 8c;8c=\'\';4s.gC(\'cS\');4s.8O(\'1V\',A(cN){u 8c+=cN});u 4s.8O(\'1Q\',A(){u 1L(L,1A gx(8c,\'cS\'))})});u ae.8O(\'af\',1L)};D.N.5v=A(6y,1V){B(6y){2O 6y;}o.1f=1A 4x();o.1f.1G=1V;26.2v("4x bA. bW = "+(o.59())+", cJ = "+(o.5p()));o.G=1A 43(o.59(),o.5p());u o.5t()};D.N.aL=A(){o.1f=o.39;o.G=29.3i(\'G\');o.1i=o.G.32(\'2d\');1v.6j(o.1f,o.G,{8Q:[\'1G\']});B(o.1f.8E!=L){o.1f.8E.ad(o.G,o.1f)}o.ac();u o.ab()};D.N.b8=A(){o.G=o.39;o.1i=o.G.32(\'2d\');B(o.7N!=L){o.1f=29.3i(\'1T\');o.1f.1G=o.7N;o.ac();u o.ab()}S{u o.5t()}};D.N.ac=A(){B(o.aa()){26.2v(o.1f.1G,"->",o.7Z());o.cu=2K;o.1f.1G=o.7Z()}B(2P.cA(o.1f)){o.1f.1G=2P.5o(o.1f.1G);u 26.2v("gt 1f gr, gg aW = "+o.1f.1G)}};D.N.ab=A(){B(o.b1()){u o.6z()}S{u o.1f.bx=o.6z}};D.N.b1=A(){B(!o.1f.89){u 2n}B((o.1f.a8!=L)&&o.1f.a8===0){u 2n}u 2K};D.N.59=A(){u o.1f.E||o.1f.a8};D.N.5p=A(){u o.1f.J||o.1f.gd};D.N.6z=A(){26.2v("4x bA. bW = "+(o.59())+", cJ = "+(o.5p()));B(o.cu){o.G.E=o.59()/o.8x();o.G.J=o.5p()/o.8x()}S{o.G.E=o.59();o.G.J=o.5p()}u o.5t()};D.N.5t=A(){M i,1s,I,1o,K;B(o.1i==L){o.1i=o.G.32(\'2d\')}o.4G=o.77=o.E=o.G.E;o.5m=o.76=o.J=o.G.J;o.cV();B(!o.d6()){o.am()}B(o.1f!=L){o.1i.5l(o.1f,0,0,o.59(),o.5p(),0,0,o.77,o.76)}o.2b=o.1i.3H(0,0,o.G.E,o.G.J);o.T=o.2b.1V;B(D.6O){o.7f=1v.6M(o.T.P);o.4M=1v.6M(o.T.P);K=o.T;W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];o.7f[i]=1s;o.4M[i]=1s}}o.1e={E:o.G.E,J:o.G.J};B(!D.2R){33.bn(o.2T,o)}o.1L.1x(o,o);u o.1L=A(){}};D.N.bo=A(){o.2b=o.1i.3H(0,0,o.G.E,o.G.J);u o.T=o.2b.1V};D.N.g6=A(){M i,1s,I,1o,K,1n;B(!D.6O){2O"a7 7I";}o.4M=1v.6M(o.T.P);K=o.T;1n=[];W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];1n.2r(o.4M[i]=1s)}u 1n};D.N.d6=A(){u D.9y(o.G)!=L};D.N.am=A(){B(D.2R||o.G.5w(\'1V-3P-2T\')){u}u o.G.bE(\'1V-3P-2T\',o.2T)};D.N.bC=A(){u o.G.5w(\'1V-3P-bS-7I\')!==L};D.N.cV=A(){M 4n;B(D.2R||!o.aa()){u}4n=o.8x();B(4n!==1){26.2v("g3 4n = "+4n);o.cv=2K;o.77=o.G.E;o.76=o.G.J;o.G.E=o.77*4n;o.G.J=o.76*4n;o.G.bX.E=""+o.77+"c3";o.G.bX.J=""+o.76+"c3";o.1i.g2(4n,4n);o.E=o.4G=o.G.E;u o.J=o.5m=o.G.J}};D.N.8x=A(){M a6,4m;4m=4v.4m||1;a6=o.1i.fX||o.1i.fW||o.1i.fU||o.1i.fQ||o.1i.fO||1;u 4m/a6};D.N.cM=A(){u(4v.4m!=L)&&4v.4m!==1};D.N.aa=A(){B(o.bC()||!o.cM()){u 2n}u o.7Z()!==L};D.N.7Z=A(){B(o.1f==L){u L}u o.1f.5w(\'1V-3P-bS\')};D.N.72=A(cQ){M 8n;8n=o.G;o.G=cQ;o.1i=o.G.32(\'2d\');B(!D.2R){8n.8E.ad(o.G,8n)}o.E=o.G.E;o.J=o.G.J;o.bo();u o.1e={E:o.G.E,J:o.G.J}};D.N.cT=A(1L){B(1L==L){1L=A(){}}2N.5k(o,"d4");u o.4W.3V((A(1w){u A(){1w.1i.71(1w.2b,0,0);u 1L.1x(1w)}})(o))};D.N.fN=A(8w){M i,1s,I,1o,K;B(8w==L){8w=2K}B(!D.6O){2O"a7 7I";}K=o.aA();W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];o.T[i]=1s}B(8w){u o.1i.71(o.2b,0,0)}};D.N.fM=A(){M G,1J,i,2b,1s,T,I,1o,K;G=29.3i(\'G\');1v.6j(o.G,G);G.E=o.4G;G.J=o.5m;1J=G.32(\'2d\');2b=1J.3H(0,0,G.E,G.J);T=2b.1V;K=o.7f;W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];T[i]=1s}1J.71(2b,0,0);o.6C={x:0,y:0};o.8j=2n;u o.72(G)};D.N.aA=A(){M G,8B,1J,28,a3,i,2b,1s,T,Y,3p,4w,6W,7i,7j,E,x,y,I,1d,1y,1o,a2,K,3G,4g,a1,a0;B(!D.6O){2O"a7 7I";}Y=[];7i=o.6C.x;28=7i+o.E;7j=o.6C.y;a3=7j+o.J;B(o.8j){G=29.3i(\'G\');G.E=o.4G;G.J=o.5m;1J=G.32(\'2d\');2b=1J.3H(0,0,G.E,G.J);T=2b.1V;K=o.4M;W(i=I=0,1o=K.P;I<1o;i=++I){1s=K[i];T[i]=1s}1J.71(2b,0,0);6W=29.3i(\'G\');6W.E=o.E;6W.J=o.J;1J=6W.32(\'2d\');1J.5l(G,0,0,o.4G,o.5m,0,0,o.E,o.J);T=1J.3H(0,0,o.E,o.J).1V;E=o.E}S B(o.9H){G=29.3i(\'G\');G.E=o.4G;G.J=o.5m;1J=G.32(\'2d\');2b=1J.3H(0,0,G.E,G.J);T=2b.1V;3G=o.4M;W(i=1d=0,a2=3G.P;1dK;i=0<=K?++I:--I){2S+=Q[i]}}o.4W.4e({1u:R.3e.9W,1p:1p,Q:Q,2S:2S,3d:3d});u o};D.N.5e=A(4a,1m){o.4W.4e({1u:R.3e.2w,4a:4a,1m:1m});u o};D.N.2Z=A(1L){M 2c;2c=1A 3c(o);o.9K.2r(2c);o.4W.4e({1u:R.3e.9V});1L.1x(2c);o.4W.4e({1u:R.3e.9U});u o};D.N.d9=A(2c){u o.da(2c)};D.N.da=A(2c){o.9J.2r(o.6F);o.6D.2r(o.T);o.6F=2c;u o.T=2c.T};D.N.dc=A(){o.T=o.6D.6L();u o.6F=o.9J.6L()};D.N.dg=A(){u o.6F.ah()};u D})(3N);7S.D=D;D.4y=(A(){A 4y(c){o.c=c}4y.N.fy=A(){M i,3v,6U,I,1d,1y,K;3v={r:{},g:{},b:{}};W(i=I=0;I<=F;i=++I){3v.r[i]=0;3v.g[i]=0;3v.b[i]=0}W(i=1d=0,K=o.c.T.P;1d0)){u}1n=[];W(I=0,1o=6T.P;I<1o;I++){1T=6T[I];1n.2r(b7=1A 5c(1T,A(){o.bh();u o.3V()}))}u 1n};B(D.cD){(A(){B(29.9T==="89"){u D.9R()}S{u 29.cW("fv",D.9R,2n)}})()}5c=(A(){M 8q;8q="(\\\\w+)\\\\((.*?)\\\\)";A 5c(4c,bv){o.bw=4c.5w(\'1V-3P\');o.3P=D(4c,bv.9A(o))}5c.N.bh=A(){M 1m,e,1C,57,9Q,9P,m,r,6R,I,1o,K,1n;o.4c=o.3P.G;r=1A bU(8q,\'g\');6R=o.bw.7w(r);B(!(6R.P>0)){u}r=1A bU(8q);1n=[];W(I=0,1o=6R.P;I<1o;I++){9Q=6R[I];K=9Q.7w(r),m=K[0],1C=K[1],1m=K[2];9P=1A fu("u A() { o."+1C+"("+1m+"); };");9O{57=9P();1n.2r(57.1x(o.3P))}9N(5K){e=5K;1n.2r(26.2v(e))}}u 1n};5c.N.3V=A(){M 4c;4c=o.4c;u o.3P.cT(A(){u 4c.8E.ad(o.c2(),4c)})};u 5c})();D.2l=(A(){A 2l(){}2l.9M={};2l.V=A(1p,57){u o.9M[1p]=57};2l.3V=A(1p,Z,X){u o.9M[1p](Z,X)};u 2l})();2l=D.2l;D.2j=(A(){A 2j(){}2j.5b=A(6Q,6P,6n,6K){u O.7B(O.1U(6n-6Q,2)+O.1U(6K-6P,2))};2j.ct=A(1N,1c,6I){M 4h;B(6I==L){6I=2n}4h=1N+(O.fr()*(1c-1N));B(6I){u 4h.fq(6I)}S{u O.6i(4h)}};2j.6G=A(C){u(0.9L*C.r)+(0.fp*C.g)+(0.fo*C.b)};2j.2f=A(1K,4C,4D,1Q,5r,58){M 2f,5E,2D,28,i,j,5I,1O,3K,t,I,1d,K;B(5r==L){5r=0}B(58==L){58=F}B(1K[0]cj 5M){2D=1K;5r=4C;58=4D}S{2D=[1K,4C,4D,1Q]}B(2D.P<2){2O"5A 8k 9G 1l 3O 2f";}2f={};5I=A(a,b,t){u a*(1-t)+b*t};5E=A(a,1N,1c){u O.1N(O.1c(a,1N),1c)};W(i=I=0;I1){1O=[];W(j=1d=0,K=3K.P-2;0<=K?1d<=K:1d>=K;j=0<=K?++1d:--1d){1O.2r([5I(3K[j][0],3K[j+1][0],t),5I(3K[j][1],3K[j+1][1],t)])}3K=1O}2f[O.6i(3K[0][0])]=O.6i(5E(3K[0][1],5r,58))}28=2D[2D.P-1][0];2f=D.2j.9E(2f,28);B(2f[28]==L){2f[28]=2f[28-1]}u 2f};2j.aN=A(2D,5r,58){M 4e,5E,9D,28,8r,8s,8t,8u,i,j,5I,9C,9B,4L,p,63,64,4N,8F,7d,3A,7g,t,I,1d,K;B(2D.P<2){2O"5A 8k 9G 1l 3O aN";}3A={};5I=A(a,b,t){u a*(1-t)+b*t};4e=(A(1w){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4L=(A(1w){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7g=(A(1w){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);5E=A(a,1N,1c){u O.1N(O.1c(a,1N),1c)};9D=0;W(i=I=0,K=2D.P-2;0<=K?I<=K:I>=K;i=0<=K?++I:--I){63=2D[i];64=2D[i+1];4N=64[0]-63[0];8F=1/4N;B(i===2D.P-2){8F=1/(4N-1)}p=i>0?2D[i-1]:63;9C=4L(7g(64,p),[0.5,0.5]);p=i<2D.P-2?2D[i+2]:64;9B=4L(7g(p,63),[0.5,0.5]);W(j=1d=0;0<=4N?1d<=4N:1d>=4N;j=0<=4N?++1d:--1d){t=j*8F;8r=2.0*t*t*t-3.0*t*t+1.0;8s=t*t*t-2.0*t*t+t;8t=-2.0*t*t*t+3.0*t*t;8u=t*t*t-t*t;7d=4e(4L(63,[8r,8r]),4L(9C,[8s,8s]),4L(64,[8t,8t]),4L(9B,[8u,8u]));3A[O.6i(7d[0])]=O.6i(5E(7d[1],5r,58));9D+=1}}28=2D[2D.P-1][0];3A=D.2j.9E(3A,28);u 3A};2j.9E=A(56,28){M i,j,6b,3A,7l,I,1d;B(cr.fm(56).P<28+1){3A={};W(i=I=0;0<=28?I<=28:I>=28;i=0<=28?++I:--I){B(56[i]!=L){3A[i]=56[i]}S{6b=[i-1,3A[i-1]];W(j=1d=i;i<=28?1d<=28:1d>=28;j=i<=28?++1d:--1d){B(56[j]!=L){7l=[j,56[j]];5g}}3A[i]=6b[1]+((7l[1]-6b[1])/(7l[0]-6b[0]))*(i-6b[0])}}u 3A}u 56};u 2j})();2j=D.2j;D.1Z=(A(){A 1Z(){}1Z.7p=A(3F){M b,g,r;B(3F.fl(0)==="#"){3F=3F.54(1)}r=4r(3F.54(0,2),16);g=4r(3F.54(2,2),16);b=4r(3F.54(4,2),16);u{r:r,g:g,b:b}};1Z.fk=A(r,g,b){M d,h,l,1c,1N,s;B(1r r==="46"){g=r.g;b=r.b;r=r.r}r/=F;g/=F;b/=F;1c=O.1c(r,g,b);1N=O.1N(r,g,b);l=(1c+1N)/2;B(1c===1N){h=s=0}S{d=1c-1N;s=l>0.5?d/(2-1c-1N):d/(1c+1N);h=(A(){6g(1c){2g r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1Z.cl=A(r,g,b){M d,h,1c,1N,s,v;r/=F;g/=F;b/=F;1c=O.1c(r,g,b);1N=O.1N(r,g,b);v=1c;d=1c-1N;s=1c===0?0:d/1c;B(1c===1N){h=0}S{h=(A(){6g(1c){2g r:u(g-b)/d+(g0.9z){r=O.1U((r+0.3u)/1.3u,2.4)}S{r/=12.92}B(g>0.9z){g=O.1U((g+0.3u)/1.3u,2.4)}S{g/=12.92}B(b>0.9z){b=O.1U((b+0.3u)/1.3u,2.4)}S{b/=12.92}x=r*0.fi+g*0.fh+b*0.fg;y=r*0.cE+g*0.cG+b*0.cH;z=r*0.ff+g*0.fe+b*0.fd;u{x:x*1j,y:y*1j,z:z*1j}};1Z.fa=A(x,y,z){M b,g,r;x/=1j;y/=1j;z/=1j;r=(3.f9*x)+(-1.f8*y)+(-0.f7*z);g=(-0.f6*x)+(1.f5*y)+(0.f3*z);b=(0.f2*x)+(-0.f1*y)+(1.f0*z);B(r>0.9u){r=(1.3u*O.1U(r,0.9t))-0.3u}S{r*=12.92}B(g>0.9u){g=(1.3u*O.1U(g,0.9t))-0.3u}S{g*=12.92}B(b>0.9u){b=(1.3u*O.1U(b,0.9t))-0.3u}S{b*=12.92}u{r:r*F,g:g*F,b:b*F}};1Z.db=A(x,y,z){M a,b,l,9s,9r,9q;B(1r x==="46"){y=x.y;z=x.z;x=x.x}9s=95.ai;9r=1j.0;9q=9p.ak;x/=9s;y/=9r;z/=9q;B(x>0.9o){x=O.1U(x,0.9n)}S{x=(7.9k*x)+0.5T}B(y>0.9o){y=O.1U(y,0.9n)}S{y=(7.9k*y)+0.5T}B(z>0.9o){z=O.1U(z,0.9n)}S{z=(7.9k*z)+0.5T}l=aB*y-16;a=aC*(x-y);b=5U*(y-z);u{l:l,a:a,b:b}};1Z.eZ=A(l,a,b){M x,y,z;B(1r l==="46"){a=l.a;b=l.b;l=l.l}y=(l+16)/aB;x=y+(a/aC);z=y-(b/5U);B(x>0.9j){x=x*x*x}S{x=0.9i*(x-0.5T)}B(y>0.9j){y=y*y*y}S{y=0.9i*(y-0.5T)}B(z>0.9j){z=z*z*z}S{z=0.9i*(z-0.5T)}u{x:x*95.ai,y:y*1j.0,z:z*9p.ak}};1Z.eY=A(r,g,b){M 9h;B(1r r==="46"){g=r.g;b=r.b;r=r.r}9h=o.cq(r,g,b);u o.db(9h)};1Z.gD=A(l,a,b){};u 1Z})();1Z=D.1Z;D.2N=(A(){A 2N(){}2N.5f={};2N.b2=["b3","b4","d4","b5","b6","62"];2N.5k=A(37,1u,1V){M 6u,I,1o,K,1n;B(1V==L){1V=L}B(o.5f[1u]&&o.5f[1u].P){K=o.5f[1u];1n=[];W(I=0,1o=K.P;I<1o;I++){6u=K[I];B(6u.37===L||37.2T===6u.37.2T){1n.2r(6u.fn.1x(37,1V))}S{1n.2r(bb 0)}}u 1n}};2N.eX=A(37,1u,fn){M 9f,9e;B(1r 37==="3g"){9e=37;9f=1u;37=L;1u=9e;fn=9f}B(6x.1x(o.b2,1u)<0){u 2n}B(!o.5f[1u]){o.5f[1u]=[]}o.5f[1u].2r({37:37,fn:fn});u 2K};u 2N})();2N=D.2N;D.R=(A(){A R(){}R.3e={9X:1,9W:2,9V:3,9U:4,9d:5,2w:6};R.V=A(1p,bp){u D.N[1p]=bp};u R})();R=D.R;D.2P=(A(){A 2P(){}2P.bq=/(?:(?:6A|aI):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2P.cA=A(1T){B(1T==L){u 2n}B(o.bs(1T)){u 2n}u o.7a(1T.1G)};2P.bs=A(1T){M K;u(1T.8K!=L)&&((K=1T.8K.6X())===\'dd\'||K===\'bu-eW\')};2P.7a=A(78){M 7c;7c=78.7w(o.bq);B(7c){u 7c[1]!==29.eV}S{u 2n}};2P.by=A(1G){B(o.7a(1G)){B(!D.7X.P){26.9a("eU 3O eT a bD 1f eS a eP bQ. aW: "+1G)}S{B(D.7a(D.7X)){26.9a("eO bu a bD bQ W eN eM.");u}u o.5o(1G)}}};2P.5o=A(1G){u""+D.7X+"?"+D.cO+"="+(eK(1G))};2P.eJ=A(5n){M 7o;7o={eI:\'eG\',eF:\'eD\',eC:\'eB\',eA:\'ez\'};5n=5n.6X();B(7o[5n]!=L){5n=7o[5n]}u"ey/ex."+5n};u 2P})();D.N.9Z=A(){B(1r 2h!=="47"&&2h!==L){u o.ca.4k(o,1l)}S{u o.cc.4k(o,1l)}};D.N.cc=A(1u){M 1f;B(1u==L){1u="cd"}1u=1u.6X();1f=o.94(1u).ev("1f/"+1u,"1f/eu-es");u 29.er.eq=1f};D.N.ca=A(6l,7z,1L){M e,93;B(7z==L){7z=2K}B(1L==L){1L=L}9O{93=fs.ep(6l);B(93.eo()&&!7z){u 2n}}9N(5K){e=5K;26.2v("en el 6l "+6l)}u fs.ej(6l,o.G.eh(),A(6y){26.2v("ef ee 3O "+6l);B(1L){u 1L.1x(o,6y)}})};D.N.c2=A(1u){M 1T;1T=1A 4x();1T.1G=o.94(1u);1T.E=o.1e.E;1T.J=o.1e.J;B(4v.4m){1T.E/=4v.4m;1T.J/=4v.4m}u 1T};D.N.94=A(1u){B(1u==L){1u="cd"}1u=1u.6X();u o.G.ed("1f/"+1u)};2P=D.2P;D.3c=(A(){A 3c(c){o.c=c;o.1C=o.c;o.1I={91:\'8Z\',2p:1.0};o.eb=1v.9c.4p();o.G=1r 2h!=="47"&&2h!==L?1A 43():29.3i(\'G\');o.G.E=o.c.1e.E;o.G.J=o.c.1e.J;o.1i=o.G.32(\'2d\');o.1i.ea(o.G.E,o.G.J);o.2b=o.1i.3H(0,0,o.G.E,o.G.J);o.T=o.2b.1V}3c.N.2Z=A(cb){u o.c.2Z.1x(o.c,cb)};3c.N.3m=A(cB){o.1I.91=cB;u o};3c.N.2p=A(2p){o.1I.2p=2p/1j;u o};3c.N.4f=A(){M i,31,I,K;31=o.c.T;W(i=I=0,K=o.c.T.P;Io.c.T.P||3M<0){u 1A 2a(0,0,0,F,o.c)}u o.8U(3M)};2a.N.e6=A(7V,7W,C){M cZ;B(o.c==L){2O"5L a 5F 1i";}cZ=o.U+(o.c.1e.E*4*(7W*-1))+(4*7V);B(3M>o.c.T.P||3M<0){u}o.c.T[3M]=C.r;o.c.T[3M+1]=C.g;o.c.T[3M+2]=C.b;o.c.T[3M+3]=C.a;u 2K};2a.N.e5=A(x,y){M U;B(o.c==L){2O"5L a 5F 1i";}U=o.8X(x,y,o.E);u o.8U(U)};2a.N.e4=A(x,y,C){M U;B(o.c==L){2O"5L a 5F 1i";}U=o.8X(x,y,o.E);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};2a.N.69=A(){u o.e3()};2a.N.e2=A(7Y){M 3F;B(7Y==L){7Y=2n}3F=\'#\'+o.r.69(16)+o.g.69(16)+o.b.69(16);B(7Y){u 3F+o.a.69(16)}S{u 3F}};u 2a})();2a=D.2a;D.2w=(A(){A 2w(){}2w.8T={};2w.V=A(1p,4a){u o.8T[1p]=4a};2w.3V=A(1i,1p,1m){u o.8T[1p].4k(1i,1m)};u 2w})();2w=D.2w;D.1S=(A(){1S.4z=D.2R?74(\'e1\').e0().P:4;A 1S(c){o.c=c;o.49=8G(o.49,o);o.6w=[];o.5a=L}1S.N.4e=A(8S){B(8S==L){u}u o.6w.2r(8S)};1S.N.49=A(){M 2c;B(o.6w.P===0){2N.5k(o,"b5");B(o.8R!=L){o.8R.1x(o.c)}u o}o.2k=o.6w.de();6g(o.2k.1u){2g R.3e.9V:2c=o.c.9K.de();o.c.d9(2c);u o.49();2g R.3e.9U:o.c.dg();o.c.dc();u o.49();2g R.3e.9d:u o.df(o.2k.2c,o.2k.1G);2g R.3e.2w:u o.ag();dZ:u o.di()}};1S.N.3V=A(1L){o.8R=1L;o.5a=1v.6M(o.c.T.P);u o.49()};1S.N.8N=A(fn){M 6J,8L,2L,1Q,f,i,8J,n,1K,I,K,1n;o.8e=0;n=o.c.T.P;8L=O.2M((n/4)/1S.4z);6J=8L*4;8J=6J+((n/4)%1S.4z)*4;1n=[];W(i=I=0,K=1S.4z;0<=K?IK;i=0<=K?++I:--I){1K=i*6J;1Q=1K+(i===1S.4z-1?8J:6J);B(D.2R){f=6H((A(1w){u A(){u fn.1x(1w,i,1K,1Q)}})(o));2L=f.dY();1n.2r(o.62(2L))}S{1n.2r(8f((A(1w){u A(i,1K,1Q){u A(){u fn.1x(1w,i,1K,1Q)}}})(o)(i,1K,1Q),0))}}u 1n};1S.N.di=A(){2N.5k(o.c,"b3",o.2k);B(o.2k.1u===R.3e.9X){u o.8N(o.ao)}S{u o.8N(o.ap)}};1S.N.ag=A(){26.2v("dX 4a "+o.2k.4a);2w.3V(o.c,o.2k.4a,o.2k.1m);26.2v("2w "+o.2k.4a+" 8I!");u o.49()};1S.N.ao=A(2L,1K,1Q){M i,1s,I;26.2v("as #"+2L+" - R: "+o.2k.1p+", dW: "+1K+", dV: "+1Q);2N.5k(o.c,"b6",{av:2L,aw:1S.4z,dU:1K,dT:1Q});1s=1A 2a();1s.8W(o.c);W(i=I=1K;I<1Q;i=I+=4){1s.U=i;1s.r=o.c.T[i];1s.g=o.c.T[i+1];1s.b=o.c.T[i+2];1s.a=o.c.T[i+3];o.2k.7J(1s);o.c.T[i]=1v.3Q(1s.r);o.c.T[i+1]=1v.3Q(1s.g);o.c.T[i+2]=1v.3Q(1s.b);o.c.T[i+3]=1v.3Q(1s.a)}B(D.2R){u 6H["az"](2L)}S{u o.62(2L)}};1S.N.ap=A(2L,1K,1Q){M Q,6N,3d,2W,5V,2S,i,j,k,2I,n,1p,p,1s,4s,I,1d,1y;1p=o.2k.1p;3d=o.2k.3d;2S=o.2k.2S;n=o.c.T.P;Q=o.2k.Q;6N=O.7B(Q.P);2I=[];26.2v("dS 2I - R: "+o.2k.1p);1K=O.1c(1K,o.c.1e.E*4*((6N-1)/2));1Q=O.1N(1Q,n-(o.c.1e.E*4*((6N-1)/2)));2W=(6N-1)/2;1s=1A 2a();1s.8W(o.c);W(i=I=1K;I<1Q;i=I+=4){1s.U=i;5V=0;W(j=1d=-2W;-2W<=2W?1d<=2W:1d>=2W;j=-2W<=2W?++1d:--1d){W(k=1y=2W;2W<=-2W?1y<=-2W:1y>=-2W;k=2W<=-2W?++1y:--1y){p=1s.cU(j,k);2I[5V*3]=p.r;2I[5V*3+1]=p.g;2I[5V*3+2]=p.b;5V++}}4s=o.3L(Q,2I,2S,3d);o.5a[i]=1v.3Q(4s.r);o.5a[i+1]=1v.3Q(4s.g);o.5a[i+2]=1v.3Q(4s.b);o.5a[i+3]=o.c.T[i+3]}B(D.2R){u 6H["az"](2L)}S{u o.62(2L)}};1S.N.62=A(2L){M i,I,K;B(2L>=0){26.2v("as #"+2L+" 8I! R: "+o.2k.1p)}o.8e++;2N.5k(o.c,"62",{av:2L,dR:o.8e,aw:1S.4z});B(o.8e===1S.4z){B(o.2k.1u===R.3e.9W){W(i=I=0,K=o.c.T.P;0<=K?IK;i=0<=K?++I:--I){o.c.T[i]=o.5a[i]}}B(2L>=0){26.2v("R "+o.2k.1p+" 8I!")}2N.5k(o.c,"b4",o.2k);u o.49()}};1S.N.3L=A(Q,2I,2S,3d){M i,2i,I,K;2i={r:0,g:0,b:0};W(i=I=0,K=Q.P;0<=K?IK;i=0<=K?++I:--I){2i.r+=Q[i]*2I[i*3];2i.g+=Q[i]*2I[i*3+1];2i.b+=Q[i]*2I[i*3+2]}2i.r=(2i.r/2S)+3d;2i.g=(2i.g/2S)+3d;2i.b=(2i.b/2S)+3d;u 2i};1S.N.df=A(2c,1G){M 1T,5o;1T=1A 4x();1T.bx=(A(1w){u A(){2c.1i.5l(1T,0,0,1w.c.1e.E,1w.c.1e.J);2c.2b=2c.1i.3H(0,0,1w.c.1e.E,1w.c.1e.J);2c.T=2c.2b.1V;1w.c.T=2c.T;u 1w.49()}})(o);5o=2P.by(1G);u 1T.1G=5o!=L?5o:1G};u 1S})();1S=D.1S;D.33=(A(){A 33(){}33.5S={};33.bR=A(4O){u o.5S[4O]!=L};33.4p=A(4O){u o.5S[4O]};33.bn=A(1p,2E){u o.5S[1p]=2E};33.3V=A(4O,1L){8f((A(1w){u A(){u 1L.1x(1w.4p(4O),1w.4p(4O))}})(o),0);u o.4p(4O)};33.dQ=A(1p){B(1p==L){1p=2n}B(1p){u aK o.5S[1p]}S{u o.5S={}}};u 33})();33=D.33;2l.V("8Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2l.V("6a",A(Z,X){u{r:(Z.r*X.r)/F,g:(Z.g*X.g)/F,b:(Z.b*X.b)/F}});2l.V("dP",A(Z,X){u{r:F-(((F-Z.r)*(F-X.r))/F),g:F-(((F-Z.g)*(F-X.g))/F),b:F-(((F-Z.b)*(F-X.b))/F)}});2l.V("8m",A(Z,X){M 1F;1F={};1F.r=X.r>1g?F-2*(F-Z.r)*(F-X.r)/F:(X.r*Z.r*2)/F;1F.g=X.g>1g?F-2*(F-Z.g)*(F-X.g)/F:(X.g*Z.g*2)/F;1F.b=X.b>1g?F-2*(F-Z.b)*(F-X.b)/F:(X.b*Z.b*2)/F;u 1F});2l.V("dN",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2l.V("aQ",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2l.V("dM",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/F,g:1g-2*(X.g-1g)*(Z.g-1g)/F,b:1g-2*(X.b-1g)*(Z.b-1g)/F}});2l.V("aS",A(Z,X){M 1F;1F={};1F.r=X.r>1g?F-((F-X.r)*(F-(Z.r-1g)))/F:(X.r*(Z.r+1g))/F;1F.g=X.g>1g?F-((F-X.g)*(F-(Z.g-1g)))/F:(X.g*(Z.g+1g))/F;1F.b=X.b>1g?F-((F-X.b)*(F-(Z.b-1g)))/F:(X.b*(Z.b+1g))/F;u 1F});2l.V("dL",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2l.V("dK",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4S",A(){M 3j;B(1l.P===1){3j=1Z.7p(1l[0])}S{3j={r:1l[0],g:1l[1],b:1l[2]}}u o.2q("4S",A(C){C.r=3j.r;C.g=3j.g;C.b=3j.b;C.a=F;u C})});R.V("3s",A(Q){Q=O.2M(F*(Q/1j));u o.2q("3s",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3I",A(Q){Q*=-0.dJ;u o.2q("3I",A(C){M 1c;1c=O.1c(C.r,C.g,C.b);B(C.r!==1c){C.r+=(1c-C.r)*Q}B(C.g!==1c){C.g+=(1c-C.g)*Q}B(C.b!==1c){C.b+=(1c-C.b)*Q}u C})});R.V("48",A(Q){Q*=-1;u o.2q("48",A(C){M 1q,4E,1c;1c=O.1c(C.r,C.g,C.b);4E=(C.r+C.g+C.b)/3;1q=((O.4J(1c-4E)*2/F)*Q)/1j;B(C.r!==1c){C.r+=(1c-C.r)*1q}B(C.g!==1c){C.g+=(1c-C.g)*1q}B(C.b!==1c){C.b+=(1c-C.b)*1q}u C})});R.V("4F",A(Q){u o.2q("4F",A(C){M 4E;4E=2j.6G(C);C.r=4E;C.g=4E;C.b=4E;u C})});R.V("2t",A(Q){Q=O.1U((Q+1j)/1j,2);u o.2q("2t",A(C){C.r/=F;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=F;C.g/=F;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=F;C.b/=F;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=F;u C})});R.V("8H",A(Q){u o.2q("8H",A(C){M b,g,h,5h,r,K;5h=1Z.cl(C.r,C.g,C.b);h=5h.h*1j;h+=O.4J(Q);h=h%1j;h/=1j;5h.h=h;K=1Z.cn(5h.h,5h.s,5h.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4i",A(){M 5B,3h;B(1l.P===2){3h=1Z.7p(1l[0]);5B=1l[1]}S B(1l.P===4){3h={r:1l[0],g:1l[1],b:1l[2]};5B=1l[3]}u o.2q("4i",A(C){C.r-=(C.r-3h.r)*(5B/1j);C.g-=(C.g-3h.g)*(5B/1j);C.b-=(C.b-3h.b)*(5B/1j);u C})});R.V("ba",A(){u o.2q("ba",A(C){C.r=F-C.r;C.g=F-C.g;C.b=F-C.b;u C})});R.V("4l",A(Q){B(Q==L){Q=1j}Q/=1j;u o.2q("4l",A(C){C.r=O.1N(F,(C.r*(1-(0.dI*Q)))+(C.g*(0.dH*Q))+(C.b*(0.dG*Q)));C.g=O.1N(F,(C.r*(0.dF*Q))+(C.g*(1-(0.dE*Q)))+(C.b*(0.dD*Q)));C.b=O.1N(F,(C.r*(0.dC*Q))+(C.g*(0.dB*Q))+(C.b*(1-(0.dA*Q))));u C})});R.V("2y",A(Q){u o.2q("2y",A(C){C.r=O.1U(C.r/F,Q)*F;C.g=O.1U(C.g/F,Q)*F;C.b=O.1U(C.b/F,Q)*F;u C})});R.V("8z",A(Q){Q=O.4J(Q)*2.55;u o.2q("8z",A(C){M 4h;4h=2j.ct(Q*-1,Q);C.r+=4h;C.g+=4h;C.b+=4h;u C})});R.V("8A",A(Q){Q=O.4J(Q)*2.55;u o.2q("8A",A(C){B(C.r>F-Q){C.r=F}S B(C.rF-Q){C.g=F}S B(C.gF-Q){C.b=F}S B(C.b0){C.r+=(F-C.r)*1I.3f}S{C.r-=C.r*O.4J(1I.3f)}}B(1I.4T!=L){B(1I.4T>0){C.g+=(F-C.g)*1I.4T}S{C.g-=C.g*O.4J(1I.4T)}}B(1I.3T!=L){B(1I.3T>0){C.b+=(F-C.b)*1I.3T}S{C.b-=C.b*O.4J(1I.3T)}}u C})});R.V("2e",A(){M 6Y,2f,42,3J,1Q,i,61,1K,I,1d,K,3G;42=1l[0],3J=2<=1l.P?5G.1x(1l,1):[];61=3J[3J.P-1];B(1r 61==="A"){6Y=61;3J.6L()}S B(1r 61==="3g"){6Y=2j[61];3J.6L()}S{6Y=2j.2f}B(1r 42==="3g"){42=42.dy("")}B(42[0]==="v"){42=[\'r\',\'g\',\'b\']}B(3J.P<2){2O"5A 8k 9G 1l 3O 2e 1C";}2f=6Y(3J,0,F);1K=3J[0];B(1K[0]>0){W(i=I=0,K=1K[0];0<=K?IK;i=0<=K?++I:--I){2f[i]=1K[1]}}1Q=3J[3J.P-1];B(1Q[0]=F;i=3G<=F?++1d:--1d){2f[i]=1Q[1]}}u o.2q("2e",A(C){M 1y,4g;W(i=1y=0,4g=42.P;0<=4g?1y<4g:1y>4g;i=0<=4g?++1y:--1y){C[42[i]]=2f[C[42[i]]]}u C})});R.V("38",A(Q){M 4C,4D,p;p=O.4J(Q)/1j;4C=[0,F*p];4D=[F-(F*p),F];B(Q<0){4C=4C.bB();4D=4D.bB()}u o.2e(\'3h\',[0,0],4C,4D,[F,F])});D.2w.V("8M",A(E,J,x,y){M G,1J;B(x==L){x=0}B(y==L){y=0}B(1r 2h!=="47"&&2h!==L){G=1A 43(E,J)}S{G=29.3i(\'G\');1v.6j(o.G,G);G.E=E;G.J=J}1J=G.32(\'2d\');1J.5l(o.G,x,y,E,J,0,0,E,J);o.6C={x:x,y:y};o.al=2K;u o.72(G)});D.2w.V("88",A(2C){M G,1J;B(2C==L){2C=L}B(2C===L||((2C.E==L)&&(2C.J==L))){26.af("5A bz dw 1e cP W 88");u}B(2C.E==L){2C.E=o.G.E*2C.J/o.G.J}S B(2C.J==L){2C.J=o.G.J*2C.E/o.G.E}B(1r 2h!=="47"&&2h!==L){G=1A 43(2C.E,2C.J)}S{G=29.3i(\'G\');1v.6j(o.G,G);G.E=2C.E;G.J=2C.J}1J=G.32(\'2d\');1J.5l(o.G,0,0,o.G.E,o.G.J,0,0,2C.E,2C.J);o.8j=2K;u o.72(G)});D.R.V("8M",A(){u o.5e("8M",5M.N.5d.1x(1l,0))});D.R.V("88",A(){u o.5e("88",5M.N.5d.1x(1l,0))});D.R.V("dv",A(){u o.3L("du 86",[1,1,1,1,1,1,1,1,1])});D.R.V("dt",A(){u o.3L("ds dr 86",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dq",A(){u o.3L("dp 86",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("do",A(3B){M 2I;B(3B===0||3B===44){2I=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3B>0&&3B<90)||(3B>44&&3B<84)){2I=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3B===90||3B===84){2I=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2I=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3L("dn 86",2I)});D.R.V("6E",A(1q){B(1q==L){1q=1j}1q/=1j;u o.3L("dm",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});9x={3s:A(C,1q,H){C.r=C.r-(C.r*1q*H.3k);C.g=C.g-(C.g*1q*H.3k);C.b=C.b-(C.b*1q*H.3k);u C},2y:A(C,1q,H){C.r=O.1U(C.r/F,O.1c(10*1q*H.3k,1))*F;C.g=O.1U(C.g/F,O.1c(10*1q*H.3k,1))*F;C.b=O.1U(C.b/F,O.1c(10*1q*H.3k,1))*F;u C},4i:A(C,1q,H){C.r-=(C.r-H.3j.r)*1q;C.g-=(C.g-H.3j.g)*1q;C.b-=(C.b-H.3j.b)*1q;u C}};R.V("1W",A(1t,3k){M 2f,3C,1Q,1K;B(3k==L){3k=60}B(1r 1t==="3g"&&1t.54(-1)==="%"){B(o.1e.J>o.1e.E){1t=o.1e.E*(4r(1t.54(0,1t.P-1),10)/1j)}S{1t=o.1e.J*(4r(1t.54(0,1t.P-1),10)/1j)}}3k/=1j;3C=[o.1e.E/2,o.1e.J/2];1K=O.7B(O.1U(3C[0],2)+O.1U(3C[1],2));1Q=1K-1t;2f=2j.2f([0,1],[30,30],[70,60],[1j,80]);u o.2q("1W",A(C){M 7A,2J,U;U=C.8V();7A=2j.5b(U.x,U.y,3C[0],3C[1]);B(7A>1Q){2J=O.1c(1,(2f[O.6i(((7A-1Q)/1t)*1j)]/10)*3k);C.r=O.1U(C.r/F,2J)*F;C.g=O.1U(C.g/F,2J)*F;C.b=O.1U(C.b/F,2J)*F}u C})});R.V("c5",A(H){M 4j,6f,7k,1t,I,1o,K;4j={3k:50,2G:0,9b:\'3s\',3j:{r:0,g:0,b:0}};H=1v.7e(4j,H);B(!H.1t){u o}S B(1r H.1t==="3g"){7k=4r(H.1t,10)/1j;H.1t={E:o.1e.E*7k,J:o.1e.J*7k}}S B(1r H.1t==="46"){K=["E","J"];W(I=0,1o=K.P;I<1o;I++){6f=K[I];B(1r H.1t[6f]==="3g"){H.1t[6f]=o.1e[6f]*(4r(H.1t[6f],10)/1j)}}}S B(H.1t==="8k"){1t=H.1t;H.1t={E:1t,J:1t}}B(1r H.2G==="3g"){H.2G=(H.1t.E/2)*(4r(H.2G,10)/1j)}H.3k/=1j;H.1t.E=O.2M(H.1t.E);H.1t.J=O.2M(H.1t.J);H.1f={E:o.1e.E,J:o.1e.J};B(H.9b==="4i"&&1r H.3j==="3g"){H.3j=1Z.7p(H.3j)}H.1Y={5j:(o.1e.E-H.1t.E)/2,66:o.1e.E-H.1Y.5j,5i:(o.1e.J-H.1t.J)/2,5Z:o.1e.J-H.1Y.5i};H.1z=[{x:H.1Y.5j+H.2G,y:H.1Y.5Z-H.2G},{x:H.1Y.66-H.2G,y:H.1Y.5Z-H.2G},{x:H.1Y.66-H.2G,y:H.1Y.5i+H.2G},{x:H.1Y.5j+H.2G,y:H.1Y.5i+H.2G}];H.4b=2j.5b(0,0,H.1z[3].x,H.1z[3].y)-H.2G;u o.2q("c5",A(C){M 1q,U,4d;U=C.8V();B((U.x>H.1z[0].x&&U.xH.1Y.5i&&U.yH.1Y.5j&&U.xH.1z[3].y&&U.yH.1z[0].x&&U.xH.1Y.5Z){1q=(U.y-H.1Y.5Z)/H.4b}S B(U.y>H.1z[2].y&&U.yH.1Y.66){1q=(U.x-H.1Y.66)/H.4b}S B(U.x>H.1z[0].x&&U.xH.1z[2].y&&U.y=H.1z[0].y){4d=D.5b(U.x,U.y,H.1z[0].x,H.1z[0].y);1q=(4d-H.2G)/H.4b}S B(U.x>=H.1z[1].x&&U.y>=H.1z[1].y){4d=D.5b(U.x,U.y,H.1z[1].x,H.1z[1].y);1q=(4d-H.2G)/H.4b}S B(U.x>=H.1z[2].x&&U.y<=H.1z[2].y){4d=D.5b(U.x,U.y,H.1z[2].x,H.1z[2].y);1q=(4d-H.2G)/H.4b}S B(U.x<=H.1z[3].x&&U.y<=H.1z[3].y){4d=D.5b(U.x,U.y,H.1z[3].x,H.1z[3].y);1q=(4d-H.2G)/H.4b}B(1q<0){u C}u 9x[H.9b](C,1q,H)})});(A(){M 4P,9l,9m,5R,5Q;5R=[2Q,2Q,3b,2Q,3n,3b,3E,2Q,3Z,3n,3r,3b,3W,3E,3U,2Q,4Z,3Z,4Y,3n,4X,3r,4U,3b,4K,3W,4o,3E,3a,3U,4H,2Q,5N,4Z,3X,3Z,5J,4Y,5H,3n,3a,4X,5y,3r,4B,4U,4A,3b,5O,4K,5D,3W,5C,4o,5x,3E,5u,3a,6e,3U,65,4H,3R,2Q,8d,5N,83,4Z,82,3X,7T,3Z,7M,5J,7F,4Y,4I,5H,7u,3n,5s,3a,7q,4X,8C,5y,4u,3r,3R,4B,81,4U,7L,4A,7G,3b,7y,5O,3X,4K,8o,5D,8g,3W,7K,5C,7s,4o,4I,5x,5W,3E,7h,5u,8D,3a,8l,6e,7r,3U,5Y,65,4u,4H,7H,3R,7U,2Q,bV,8d,bT,5N,4A,83,bP,4Z,bO,82,bM,3X,bL,7T,bK,3Z,bJ,7M,bI,5J,bH,7F,bG,4Y,bF,4I,8a,5H,5W,7u,8b,3n,bl,5s,bk,3a,bj,7q,bi,4X,8y,8C,5Y,5y,bg,4u,bf,3r,be,3R,bd,4B,bc,81,aY,4U,aV,7L,aU,4A,aT,7G,aR,3b,aP,7y,aO,5O,aM,3X,aJ,4K,aG,8o,aF,5D,ay,8g,ax,3W,au,7K,at,5C,aq,7s,an,4o,dh,4I,8a,5x,d8,5W,d7,3E,8b,7h,d3,5u,5s,8D,d2,3a,d1,8l,d0,6e,9L,7r,8y,3U,cY,5Y,cL,65,cI,4u,cF,4H,3r,7H,cz,3R,cy,7U,4B];5Q=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];9l=A(E,J,6h,6m,2H,P,ci){M 3S,1i,2u,6Q,6n,6P,6K;3S=1r 2h!=="47"&&2h!==L?1A 43():29.3i(\'G\');3S.E=E;3S.J=J;6Q=6h+O.cg(2H)*P*0.5;6P=6m+O.cf(2H)*P*0.5;6n=6h-O.cg(2H)*P*0.5;6K=6m-O.cf(2H)*P*0.5;1i=3S.32("2d");2u=1i.ew(6Q,6P,6n,6K);B(!ci){2u.5q(0,"7t");2u.5q(1,"96")}S{2u.5q(0,"7t");2u.5q(0.5,"96");2u.5q(1,"7t")}1i.c6=2u;1i.c4(0,0,E,J);u 1i.3H(0,0,E,J)};9m=A(E,J,6h,6m,6o,6p){M 3S,1i,2u;3S=1r 2h!=="47"&&2h!==L?1A 43():29.3i(\'G\');3S.E=E;3S.J=J;1i=3S.32("2d");2u=1i.eE(6h,6m,6o,6h,6m,6p);2u.5q(1,"7t");2u.5q(0,"96");1i.c6=2u;1i.c4(0,0,E,J);u 1i.3H(0,0,E,J)};4P=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1O=L};D.2w.V("97",A(c0,1X,bZ,7m){M 2o,2z,1M,6c,6q,2J,2s,2A,1P,J,3Y,i,6r,2B,3D,7b,41,79,2V,p,1D,1B,Y,1E,2m,2F,1R,9w,1a,34,2U,1b,4t,1k,1H,2X,51,2Y,7Q,7P,5z,E,3z,x,y,1h,4R,4Q,I,1d,1y,3l,3o,3q,3t,3x,3y,6d;E=o.1e.E;J=o.1e.J;3D=o.T;9w=c0.1V;7P=E*J;5z=7P<<2;Y=[];W(i=I=0;0<=5z?I<5z:I>5z;i=0<=5z?++I:--I){Y[i]=3D[i]}6q=0;51=7m;7m-=1;9F(51-->=0){41=(1X+0.5)|0;B(41===0){6k}B(41>6S){41=6S}2J=41+41+1;7Q=E<<2;3z=E-1;3Y=J-1;1a=41+1;2Y=1a*(1a+1)/2;2X=1A 4P();4t=bb 0;1b=2X;W(i=1d=1;1<=2J?1d<2J:1d>2J;i=1<=2J?++1d:--1d){1b=1b.1O=1A 4P();B(i===1a){4t=1b}}1b.1O=2X;1k=L;1H=L;4Q=1h=0;2V=5R[41];2U=5Q[41];W(y=1y=0;0<=J?1yJ;y=0<=J?++1y:--1y){2m=2s=2o=1R=1P=1M=0;2F=1a*(1E=Y[1h]);2A=1a*(1B=Y[1h+1]);2z=1a*(1D=Y[1h+2]);1R+=2Y*1E;1P+=2Y*1B;1M+=2Y*1D;1b=2X;W(i=3l=0;0<=1a?3l<1a:3l>1a;i=0<=1a?++3l:--3l){1b.r=1E;1b.g=1B;1b.b=1D;1b=1b.1O}W(i=3o=1;1<=1a?3o<1a:3o>1a;i=1<=1a?++3o:--3o){p=1h+((3zE;x=0<=E?++3q:--3q){Y[1h]=(1R*2V)>>2U;Y[1h+1]=(1P*2V)>>2U;Y[1h+2]=(1M*2V)>>2U;1R-=2F;1P-=2A;1M-=2z;2F-=1k.r;2A-=1k.g;2z-=1k.b;p=(4Q+((p=x+1a)<3z?p:3z))<<2;2m+=(1k.r=Y[p]);2s+=(1k.g=Y[p+1]);2o+=(1k.b=Y[p+2]);1R+=2m;1P+=2s;1M+=2o;1k=1k.1O;2F+=(1E=1H.r);2A+=(1B=1H.g);2z+=(1D=1H.b);2m-=1E;2s-=1B;2o-=1D;1H=1H.1O;1h+=4}4Q+=E}W(x=3t=0;0<=E?3tE;x=0<=E?++3t:--3t){2s=2o=2m=1P=1M=1R=0;1h=x<<2;2F=1a*(1E=Y[1h]);2A=1a*(1B=Y[1h+1]);2z=1a*(1D=Y[1h+2]);1R+=2Y*1E;1P+=2Y*1B;1M+=2Y*1D;1b=2X;W(i=3x=0;0<=1a?3x<1a:3x>1a;i=0<=1a?++3x:--3x){1b.r=1E;1b.g=1B;1b.b=1D;1b=1b.1O}4R=E;W(i=3y=1;1<=1a?3y<1a:3y>1a;i=1<=1a?++3y:--3y){1h=(4R+x)<<2;1R+=(1b.r=(1E=Y[1h]))*(34=1a-i);1P+=(1b.g=(1B=Y[1h+1]))*34;1M+=(1b.b=(1D=Y[1h+2]))*34;2m+=1E;2s+=1B;2o+=1D;1b=1b.1O;B(i<3Y){4R+=E}}1h=x;1k=2X;1H=4t;W(y=6d=0;0<=J?6dJ;y=0<=J?++6d:--6d){p=1h<<2;Y[p]=(1R*2V)>>2U;Y[p+1]=(1P*2V)>>2U;Y[p+2]=(1M*2V)>>2U;1R-=2F;1P-=2A;1M-=2z;2F-=1k.r;2A-=1k.g;2z-=1k.b;p=(x+(((p=y+1a)<3Y?p:3Y)*E))<<2;1R+=(2m+=(1k.r=Y[p]));1P+=(2s+=(1k.g=Y[p+1]));1M+=(2o+=(1k.b=Y[p+2]));1k=1k.1O;2F+=(1E=1H.r);2A+=(1B=1H.g);2z+=(1D=1H.b);2m-=1E;2s-=1B;2o-=1D;1H=1H.1O;1h+=E}}1X*=bZ;i=7P;9F(--i>-1){2B=i<<2;79=(9w[2B+2]&fx)/F.0*7m;7b=79|0;B(7b===6q){6c=6S.0*(79-(79|0));6r=6S-6c;3D[2B]=(3D[2B]*6r+Y[2B]*6c)>>8;3D[2B+1]=(3D[2B+1]*6r+Y[2B+1]*6c)>>8;3D[2B+2]=(3D[2B+2]*6r+Y[2B+2]*6c)>>8}S B(7b===6q+1){3D[2B]=Y[2B];3D[2B+1]=Y[2B+1];3D[2B+2]=Y[2B+2]}}6q++}u o});D.R.V("fz",A(H){M 4j,2u;4j={3C:{x:o.1e.E/2,y:o.1e.J/2},2H:45,cp:5U,7E:3,7n:1.5,51:3};H=1v.7e(4j,H);H.2H*=O.9Y/44;2u=9l(o.1e.E,o.1e.J,H.3C.x,H.3C.y,H.2H,H.cp,2K);u o.5e("97",[2u,H.7E,H.7n,H.51])});u D.R.V("fE",A(H){M 4j,2u,6o,6p;4j={1t:50,3C:{x:o.1e.E/2,y:o.1e.J/2},7E:3,7n:1.5,51:3,1X:L};H=1v.7e(4j,H);B(!H.1X){H.1X=o.1e.E2J;i=1<=2J?++I:--I){1b=1b.1O=1A 4P();B(i===1a){4t=1b}}1b.1O=2X;1k=L;1H=L;4Q=1h=0;2V=5R[1X];2U=5Q[1X];W(y=1d=0;0<=J?1dJ;y=0<=J?++1d:--1d){2m=2s=2o=1R=1P=1M=0;2F=1a*(1E=Y[1h]);2A=1a*(1B=Y[1h+1]);2z=1a*(1D=Y[1h+2]);1R+=2Y*1E;1P+=2Y*1B;1M+=2Y*1D;1b=2X;W(i=1y=0;0<=1a?1y<1a:1y>1a;i=0<=1a?++1y:--1y){1b.r=1E;1b.g=1B;1b.b=1D;1b=1b.1O}W(i=3l=1;1<=1a?3l<1a:3l>1a;i=1<=1a?++3l:--3l){p=1h+((3zE;x=0<=E?++3o:--3o){Y[1h]=(1R*2V)>>2U;Y[1h+1]=(1P*2V)>>2U;Y[1h+2]=(1M*2V)>>2U;1R-=2F;1P-=2A;1M-=2z;2F-=1k.r;2A-=1k.g;2z-=1k.b;p=(4Q+((p=x+1X+1)<3z?p:3z))<<2;2m+=(1k.r=Y[p]);2s+=(1k.g=Y[p+1]);2o+=(1k.b=Y[p+2]);1R+=2m;1P+=2s;1M+=2o;1k=1k.1O;2F+=(1E=1H.r);2A+=(1B=1H.g);2z+=(1D=1H.b);2m-=1E;2s-=1B;2o-=1D;1H=1H.1O;1h+=4}4Q+=E}W(x=3q=0;0<=E?3qE;x=0<=E?++3q:--3q){2s=2o=2m=1P=1M=1R=0;1h=x<<2;2F=1a*(1E=Y[1h]);2A=1a*(1B=Y[1h+1]);2z=1a*(1D=Y[1h+2]);1R+=2Y*1E;1P+=2Y*1B;1M+=2Y*1D;1b=2X;W(i=3t=0;0<=1a?3t<1a:3t>1a;i=0<=1a?++3t:--3t){1b.r=1E;1b.g=1B;1b.b=1D;1b=1b.1O}4R=E;W(i=3x=1;1<=1X?3x<=1X:3x>=1X;i=1<=1X?++3x:--3x){1h=(4R+x)<<2;1R+=(1b.r=(1E=Y[1h]))*(34=1a-i);1P+=(1b.g=(1B=Y[1h+1]))*34;1M+=(1b.b=(1D=Y[1h+2]))*34;2m+=1E;2s+=1B;2o+=1D;1b=1b.1O;B(i<3Y){4R+=E}}1h=x;1k=2X;1H=4t;W(y=3y=0;0<=J?3yJ;y=0<=J?++3y:--3y){p=1h<<2;Y[p]=(1R*2V)>>2U;Y[p+1]=(1P*2V)>>2U;Y[p+2]=(1M*2V)>>2U;1R-=2F;1P-=2A;1M-=2z;2F-=1k.r;2A-=1k.g;2z-=1k.b;p=(x+(((p=y+1a)<3Y?p:3Y)*E))<<2;1R+=(2m+=(1k.r=Y[p]));1P+=(2s+=(1k.g=Y[p+1]));1M+=(2o+=(1k.b=Y[p+2]));1k=1k.1O;2F+=(1E=1H.r);2A+=(1B=1H.g);2z+=(1D=1H.b);2m-=1E;2s-=1B;2o-=1D;1H=1H.1O;1h+=E}}u o});u D.R.V("5P",A(1X){u o.5e("5P",[1X])})})();D.R.V("dj",A(Q){u o.2q("dj",A(C){M 6G;6G=(0.cE*C.r)+(0.cG*C.g)+(0.cH*C.b);B(6G35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4J,2m,2b,D,5b,48,1W,2W,6z,R,2U,4v,33,1X,3M,1Z,2v,1M,7R,32,1t,fs,6S,82,5c,8V,6J=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2e};1t.5p=A(4P,3K,G){M 6s,H,1n,K,41,1o;B(G==L){G={}}K=4P.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6s=K[H];B((G.7g!=L)&&(41=6s.9Q,6J.1x(G.7g,41)>=0)){5F}1o.2j(3K.bh(6s.9Q,6s.fP))}u 1o};1t.5l=A(P){B(P==L){P=0}B(D.2Y||(4D.ca!=L)){u 1z ca(P)}u 1z 5v(P)};u 1t})();B(1s 2h!=="3P"&&2h!==L){7R=2h;48=6K(\'I\');4v=48.4v;6z=6K(\'fO\');fs=6K(\'fs\');6S=6K(\'6S\')}S{7R=4D}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5P=2T;D.9C="c3";D.7G="";D.c5="fH";D.2Y=1s 2h!=="3P"&&2h!==L;D.ce=!D.2Y;D.5L=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Y){u 2T}B(1s I==="3h"){I=$(I)}B(!((I!=L)&&(I.5D!=L))){u L}u I.5D(\'2a-3I-2V\')};A D(){o.5B=8Q(o.5B,o);M 1l,1L,2V;B(1k.P===0){2Q"5z 1k";}B(o aT D){o.5y=o.5y.9y(o);o.6y=o.6y.9y(o);1l=1k[0];B(!D.2Y){2V=49(D.9z(1l[0]),10);1L=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2V)&&32.bR(2V)){u 32.3V(2V,1L)}}o.2V=1t.9L.4c();o.5r=o.4V=L;o.9x={x:0,y:0};o.cr=2k;o.9v=2k;o.cL=2k;o.cM=0;o.6D=[];o.9u=[];o.9t=[];o.6T=L;o.d6=2k;o.fz=1z 4J(o);o.4F=1z 1M(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1z D(1k)}}D.N.ad=A(cb){M 9s;B(D.2Y){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2q.9q==="7J"){1X.2w("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9s=(A(1r){u A(){B(2q.9q==="7J"){1X.2w("aU aW");u cb.1x(1r)}}})(o);u 2q.aX("fw",9s,2k)}}};D.N.ar=A(1l){M 2s,2e,K,1o;B(1l.P===0){2Q"5z 1k be";}o.3a=L;o.7K=L;o.7L=L;o.1L=A(){};o.bo(1l[0]);B(1l.P===1){u}5E(1s 1l[1]){2g"3h":o.7L=1l[1];56;2g"A":o.1L=1l[1]}B(1l.P===2){u}o.1L=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2s 57 K){B(!6r.1x(K,2s))5F;2e=K[2s];1o.2j(o.1F[2s]=2e)}u 1o}};D.N.bo=A(2B){B(D.2Y){o.3a=2B;o.7K=\'bS\';u}B(1s 2B==="3S"){o.3a=2B}S{o.3a=$(2B)}B(o.3a==L){2Q"fv fu gy 1d cc I W ft.";}u o.7K=o.3a.9Q.6H()};D.N.as=A(){5E(o.7K){2g"bS":u o.ci();2g"1O":u o.cl();2g"I":u o.cm()}};D.N.ci=A(){1X.2w("fr W 2Y");B(1s o.3a==="3h"&&o.3a.7V(/^cA?:\\/\\//)){u o.cD(o.3a,o.5B)}S B(1s o.3a==="3h"){u fs.fp(o.3a,o.5B)}S{u o.5B(L,o.3a)}};D.N.cD=A(6Z,1L){M 9h;1X.2w("fm 1d 4P "+6Z);9h=6S.4c(6Z,A(4t){M 83;83=\'\';4t.fl(\'d7\');4t.9f(\'2a\',A(a7){u 83+=a7});u 4t.9f(\'1Q\',A(){u 1L(L,1z fk(83,\'d7\'))})});u 9h.9f(\'9e\',1L)};D.N.5B=A(6N,2a){B(6N){2Q 6N;}o.1d=1z 4v();o.1d.1E=2a;1X.2w("4v au. ay = "+(o.3T())+", aL = "+(o.3W()));o.I=1z 48(o.3T(),o.3W());u o.5y()};D.N.cl=A(){o.1d=o.3a;o.I=2q.3J(\'I\');o.1j=o.I.3i(\'2d\');o.3w=2q.3J(\'I\');o.6x=o.3w.3i(\'2d\');1t.5p(o.1d,o.I,{7g:[\'1E\']});1t.5p(o.1d,o.3w,{7g:[\'1E\']});B(o.1d.9d!=L){o.1d.9d.aY(o.3w,o.1d)}o.9c();u o.9b()};D.N.cm=A(){o.I=o.3a;o.1j=o.I.3i(\'2d\');o.3w=2q.3J(\'I\');o.6x=o.3w.3i(\'2d\');B(o.7L!=L){o.1d=2q.3J(\'1O\');o.1d.1E=o.7L;o.9c();u o.9b()}S{u o.5y()}};D.N.9c=A(){B(o.9a()){1X.2w(o.1d.1E,"->",o.84());o.bi=2T;o.1d.1E=o.84()}B(2U.bj(o.1d)){o.1d.1E=2U.5m(o.1d.1E);u 1X.2w("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9b=A(){B(o.bJ()){u o.6y()}S{u o.1d.bP=o.6y}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.98!=L)&&o.1d.98===0){u 2k}u 2T};D.N.3T=A(){u o.1d.F||o.1d.98};D.N.3W=A(){u o.1d.J||o.1d.fg};D.N.6y=A(){1X.2w("4v au. ay = "+(o.3T())+", aL = "+(o.3W()));B(o.bi){o.I.F=o.3T()/o.6o();o.I.J=o.3W()/o.6o();o.3w.F=o.3T()/o.6o();o.3w.J=o.3W()/o.6o()}S{o.I.F=o.3T();o.I.J=o.3W();o.3w.F=o.3T();o.3w.J=o.3W()}u o.5y()};D.N.5y=A(){M i,1v,H,1n,K;B(o.1j==L){o.1j=o.I.3i(\'2d\')}o.8b=o.6n=o.F=o.I.F;o.8c=o.6j=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.6h(o.1d,0,0,o.3T(),o.3W(),0,0,o.6n,o.6j);o.6x.6h(o.1d,0,0,o.3T(),o.3W(),0,0,o.6n,o.6j)}o.2M=o.1j.4O(0,0,o.I.F,o.I.J);o.T=o.2M.2a;B(D.5P){o.5r=1t.5l(o.T.P);o.4V=1t.5l(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];o.5r[i]=1v;o.4V[i]=1v}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Y){32.cs(o.2V,o)}o.1L.1x(o,o);u o.1L=A(){}};D.N.cy=A(){o.2M=o.1j.4O(0,0,o.I.F,o.I.J);u o.T=o.2M.2a};D.N.ff=A(){M i,1v,H,1n,K,1o;B(!D.5P){2Q"8Z 8d";}o.4V=1t.5l(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];1o.2j(o.4V[i]=1v)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Y||o.I.5D(\'2a-3I-2V\')){u}u o.I.bh(\'2a-3I-2V\',o.2V)};D.N.cH=A(){u o.I.5D(\'2a-3I-cK-8d\')!==L};D.N.cf=A(){M 4j;B(D.2Y||!o.9a()){u}4j=o.6o();B(4j!==1){1X.2w("fe 4j = "+4j);o.d6=2T;o.6n=o.I.F;o.6j=o.I.J;o.I.F=o.6n*4j;o.I.J=o.6j*4j;o.I.cN.F=""+o.6n+"cQ";o.I.cN.J=""+o.6j+"cQ";o.1j.fd(4j,4j);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6o=A(){M 8X,4d;4d=4D.4d||1;8X=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4d/8X};D.N.a8=A(){u(4D.4d!=L)&&4D.4d!==1};D.N.9a=A(){B(o.cH()||!o.a8()){u 2k}u o.84()!==L};D.N.84=A(){B(o.1d==L){u L}u o.1d.5D(\'2a-3I-cK\')};D.N.6O=A(aa){M i,1v,H,1n,K;o.I=aa;o.1j=o.I.3i(\'2d\');o.2M=o.1j.4O(0,0,o.I.F,o.I.J);o.T=o.2M.2a;B(D.5P){o.5r=1t.5l(o.T.P);o.4V=1t.5l(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];o.5r[i]=1v;o.4V[i]=1v}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1L){B(1L==L){1L=A(){}}2W.5g(o,"ai");u o.4F.3V((A(1r){u A(){1r.3w.F=1r.I.F;1r.3w.J=1r.I.J;1r.6x.8T(1r.2M,0,0);u 1L.1x(1r)}})(o))};D.N.f7=A(8k){M i,1v,H,1n,K;B(8k==L){8k=2T}B(!D.5P){2Q"8Z 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];o.T[i]=1v}B(8k){u o.6x.8T(o.2M,0,0)}};D.N.f6=A(){M I,2I,i,2M,1v,T,H,1n,K;I=2q.3J(\'I\');1t.5p(o.I,I);I.F=o.8b;I.J=o.8c;2I=I.3i(\'2d\');2M=2I.4O(0,0,I.F,I.J);T=2M.2a;K=o.5r;W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];T[i]=1v}2I.8T(2M,0,0);o.9x={x:0,y:0};o.9v=2k;u o.6O(I)};D.N.av=A(){M 8o,26,8P,i,T,Y,8p,8r,F,H,K,41,4i;B(!D.5P){2Q"8Z 8d";}Y=[];8p=0;26=8p+o.F;8r=0;8P=8r+o.J;T=o.4V;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2P+=Q[i]}}o.4F.4p({1w:R.3j.8I,1p:1p,Q:Q,2P:2P,3c:3c});u o};D.N.51=A(4m,1l){o.4F.4p({1w:R.3j.2v,4m:4m,1l:1l});u o};D.N.2Z=A(1L){M 2f;2f=1z 33(o);o.9t.2j(2f);o.4F.4p({1w:R.3j.8H});1L.1x(2f);o.4F.4p({1w:R.3j.8G});u o};D.N.bT=A(2f){u o.bX(2f)};D.N.bX=A(2f){o.9u.2j(o.6T);o.6D.2j(o.T);o.6T=2f;u o.T=2f.T};D.N.bZ=A(){o.T=o.6D.6A();u o.6T=o.9u.6A()};D.N.c1=A(){u o.6T.c2()};u D})(3M);7R.D=D;D.4J=(A(){A 4J(c){o.c=c}4J.N.f5=A(){M i,3q,6V,H,1f,1I,K;3q={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3q.r[i]=0;3q.g[i]=0;3q.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6u.P;H<1n;H++){1O=6u[H];1o.2j(cj=1z 5b(1O,A(){o.ck();u o.3V()}))}u 1o};B(D.ce){(A(){B(2q.9q==="7J"){u D.8C()}S{u 2q.aX("f3",D.8C,2k)}})()}5b=(A(){M 8y;8y="(\\\\w+)\\\\((.*?)\\\\)";A 5b(4o,ct){o.cw=4o.5D(\'2a-3I\');o.3I=D(4o,ct.9y(o))}5b.N.ck=A(){M 1l,e,1A,5a,8K,8L,m,r,6L,H,1n,K,1o;o.4o=o.3I.I;r=1z cJ(8y,\'g\');6L=o.cw.7V(r);B(!(6L.P>0)){u}r=1z cJ(8y);1o=[];W(H=0,1n=6L.P;H<1n;H++){8K=6L[H];K=8K.7V(r),m=K[0],1A=K[1],1l=K[2];8L=1z f2("u A() { o."+1A+"("+1l+"); };");8M{5a=8L();1o.2j(5a.1x(o.3I))}8N(5q){e=5q;1o.2j(1X.2w(e))}}u 1o};5b.N.3V=A(){M 4o;4o=o.4o;u o.3I.ac(A(){u 4o.9d.aY(o.cO(),4o)})};u 5b})();D.2m=(A(){A 2m(){}2m.8O={};2m.V=A(1p,5a){u o.8O[1p]=5a};2m.3V=A(1p,Z,X){u o.8O[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.59=A(71,73,74,6q){u O.8m(O.1T(74-71,2)+O.1T(6q-73,2))};2b.ab=A(1K,1e,6w){M 4f;B(6w==L){6w=2k}4f=1K+(O.f1()*(1e-1K));B(6w){u 4f.f0(6w)}S{u O.5H(4f)}};2b.6C=A(C){u(0.8S*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.28=A(1J,4K,4L,1Q,53,52){M 28,6d,2D,26,i,j,62,1N,3O,t,H,1f,K;B(53==L){53=0}B(52==L){52=E}B(1J[0]aT 5v){2D=1J;53=4K;52=4L}S{2D=[1J,4K,4L,1Q]}B(2D.P<2){2Q"5z 8f 8W 1k 3K 28";}28={};62=A(a,b,t){u a*(1-t)+b*t};6d=A(a,1K,1e){u O.1K(O.1e(a,1K),1e)};W(i=H=0;H1){1N=[];W(j=1f=0,K=3O.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1N.2j([62(3O[j][0],3O[j+1][0],t),62(3O[j][1],3O[j+1][1],t)])}3O=1N}28[O.5H(3O[0][0])]=O.5H(6d(3O[0][1],53,52))}26=2D[2D.P-1][0];28=D.2b.91(28,26);B(28[26]==L){28[26]=28[26-1]}u 28};2b.bE=A(2D,53,52){M 4p,6d,93,26,89,88,86,85,i,j,62,99,9g,4Q,p,6g,5t,4N,81,7Z,3k,7Y,t,H,1f,K;B(2D.P<2){2Q"5z 8f 8W 1k 3K bE";}3k={};62=A(a,b,t){u a*(1-t)+b*t};4p=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4Q=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7Y=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);6d=A(a,1K,1e){u O.1K(O.1e(a,1K),1e)};93=0;W(i=H=0,K=2D.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){6g=2D[i];5t=2D[i+1];4N=5t[0]-6g[0];81=1/4N;B(i===2D.P-2){81=1/(4N-1)}p=i>0?2D[i-1]:6g;99=4Q(7Y(5t,p),[0.5,0.5]);p=i<2D.P-2?2D[i+2]:5t;9g=4Q(7Y(p,6g),[0.5,0.5]);W(j=1f=0;0<=4N?1f<=4N:1f>=4N;j=0<=4N?++1f:--1f){t=j*81;89=2.0*t*t*t-3.0*t*t+1.0;88=t*t*t-2.0*t*t+t;86=-2.0*t*t*t+3.0*t*t;85=t*t*t-t*t;7Z=4p(4Q(6g,[89,89]),4Q(99,[88,88]),4Q(5t,[86,86]),4Q(9g,[85,85]));3k[O.5H(7Z[0])]=O.5H(6d(7Z[1],53,52));93+=1}}26=2D[2D.P-1][0];3k=D.2b.91(3k,26);u 3k};2b.91=A(54,26){M i,j,5Z,3k,7W,H,1f;B(bk.eX(54).P<26+1){3k={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(54[i]!=L){3k[i]=54[i]}S{5Z=[i-1,3k[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(54[j]!=L){7W=[j,54[j]];56}}3k[i]=5Z[1]+((7W[1]-5Z[1])/(7W[0]-5Z[0]))*(i-5Z[0])}}u 3k}u 54};u 2b})();2b=D.2b;D.1W=(A(){A 1W(){}1W.7U=A(3L){M b,g,r;B(3L.eW(0)==="#"){3L=3L.58(1)}r=49(3L.58(0,2),16);g=49(3L.58(2,2),16);b=49(3L.58(4,2),16);u{r:r,g:g,b:b}};1W.eV=A(r,g,b){M d,h,l,1e,1K,s;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1K=O.1K(r,g,b);l=(1e+1K)/2;B(1e===1K){h=s=0}S{d=1e-1K;s=l>0.5?d/(2-1e-1K):d/(1e+1K);h=(A(){5E(1e){2g r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1W.cC=A(r,g,b){M d,h,1e,1K,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1K=O.1K(r,g,b);v=1e;d=1e-1K;s=1e===0?0:d/1e;B(1e===1K){h=0}S{h=(A(){5E(1e){2g r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3o)/1.3o,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3o)/1.3o,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3o)/1.3o,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1W.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.8B){r=(1.3o*O.1T(r,0.9o))-0.3o}S{r*=12.92}B(g>0.8B){g=(1.3o*O.1T(g,0.9o))-0.3o}S{g*=12.92}B(b>0.8B){b=(1.3o*O.1T(b,0.9o))-0.3o}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1W.at=A(x,y,z){M a,b,l,9r,9D,9F;B(1s x==="3S"){y=x.y;z=x.z;x=x.x}9r=95.aB;9D=1i.0;9F=9G.aE;x/=9r;y/=9D;z/=9F;B(x>0.9I){x=O.1T(x,0.9K)}S{x=(7.9M*x)+0.5V}B(y>0.9I){y=O.1T(y,0.9K)}S{y=(7.9M*y)+0.5V}B(z>0.9I){z=O.1T(z,0.9K)}S{z=(7.9M*z)+0.5V}l=aQ*y-16;a=aR*(x-y);b=5W*(y-z);u{l:l,a:a,b:b}};1W.eD=A(l,a,b){M x,y,z;B(1s l==="3S"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5W);B(x>0.9R){x=x*x*x}S{x=0.9U*(x-0.5V)}B(y>0.9R){y=y*y*y}S{y=0.9U*(y-0.5V)}B(z>0.9R){z=z*z*z}S{z=0.9U*(z-0.5V)}u{x:x*95.aB,y:y*1i.0,z:z*9G.aE}};1W.eC=A(r,g,b){M 9V;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1W.eB=A(l,a,b){};u 1W})();1W=D.1W;D.2W=(A(){A 2W(){}2W.5j={};2W.b1=["b6","bb","ai","bc","bd","64"];2W.5g=A(37,1w,2a){M 6F,H,1n,K,1o;B(2a==L){2a=L}B(o.5j[1w]&&o.5j[1w].P){K=o.5j[1w];1o=[];W(H=0,1n=K.P;H<1n;H++){6F=K[H];B(6F.37===L||37.2V===6F.37.2V){1o.2j(6F.fn.1x(37,2a))}S{1o.2j(bg 0)}}u 1o}};2W.eA=A(37,1w,fn){M 9W,9X;B(1s 37==="3h"){9X=37;9W=1w;37=L;1w=9X;fn=9W}B(6J.1x(o.b1,1w)<0){u 2k}B(!o.5j[1w]){o.5j[1w]=[]}o.5j[1w].2j({37:37,fn:fn});u 2T};u 2W})();2W=D.2W;D.R=(A(){A R(){}R.3j={8J:1,8I:2,8H:3,8G:4,9Y:5,2v:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2U=(A(){A 2U(){}2U.bm=/(?:(?:6S|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2U.bj=A(1O){B(1O==L){u 2k}B(o.bn(1O)){u 2k}u o.7i(1O.1E)};2U.bn=A(1O){M K;u(1O.9C!=L)&&((K=1O.9C.6H())===\'c3\'||K===\'bp-ez\')};2U.7i=A(6Z){M 7h;7h=6Z.7V(o.bm);B(7h){u 7h[1]!==2q.ey}S{u 2k}};2U.bu=A(1E){B(o.7i(1E)){B(!D.7G.P){1X.a1("ex 3K ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7i(D.7G)){1X.a1("es bp a bH bK W er eq.");u}u o.5m(1E)}}};2U.5m=A(1E){u""+D.7G+"?"+D.c5+"="+(ep(1E))};2U.eo=A(5o){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5o=5o.6H();B(8z[5o]!=L){5o=8z[5o]}u"ee/ed."+5o};u 2U})();D.N.c6=A(){B(1s 2h!=="3P"&&2h!==L){u o.c7.4q(o,1k)}S{u o.c8.4q(o,1k)}};D.N.c8=A(1w){M 1d;B(1w==L){1w="c9"}1w=1w.6H();1d=o.a5(1w).ec("1d/"+1w,"1d/eb-ea");u 2q.e9.e8=1d};D.N.c7=A(6c,7b,1L){M e,a2;B(7b==L){7b=2T}B(1L==L){1L=L}8M{a2=fs.e7(6c);B(a2.e6()&&!7b){u 2k}}8N(5q){e=5q;1X.2w("e5 e4 6c "+6c)}u fs.e3(6c,o.I.e2(),A(6N){1X.2w("e1 e0 3K "+6c);B(1L){u 1L.1x(o,6N)}})};D.N.cO=A(1w){M 1O;1O=1z 4v();1O.1E=o.a5(1w);1O.F=o.1c.F;1O.J=o.1c.J;B(4D.4d){1O.F/=4D.4d;1O.J/=4D.4d}u 1O};D.N.a5=A(1w){B(1w==L){1w="c9"}1w=1w.6H();u o.I.dZ("1d/"+1w)};2U=D.2U;D.33=(A(){A 33(c){o.c=c;o.1A=o.c;o.1F={a0:\'9Z\',2i:1.0};o.dY=1t.9L.4c();o.I=1s 2h!=="3P"&&2h!==L?1z 48():2q.3J(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3i(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2M=o.1j.4O(0,0,o.I.F,o.I.J);o.T=o.2M.2a}33.N.2Z=A(cb){u o.c.2Z.1x(o.c,cb)};33.N.3n=A(cx){o.1F.a0=cx;u o};33.N.2i=A(2i){o.1F.2i=2i/1i;u o};33.N.4g=A(){M i,31,H,K;31=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3H<0){u 1z 1Z(0,0,0,E,o.c)}u o.9J(3H)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2Q"5U a 5T 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3H>o.c.T.P||3H<0){u}o.c.T[3H]=C.r;o.c.T[3H+1]=C.g;o.c.T[3H+2]=C.b;o.c.T[3H+3]=C.a;u 2T};1Z.N.dT=A(x,y){M U;B(o.c==L){2Q"5U a 5T 1j";}U=o.9S(x,y,o.F);u o.9J(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2Q"5U a 5T 1j";}U=o.9S(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5L=A(){u o.dR()};1Z.N.dQ=A(7B){M 3L;B(7B==L){7B=2k}3L=\'#\'+o.r.5L(16)+o.g.5L(16)+o.b.5L(16);B(7B){u 3L+o.a.5L(16)}S{u 3L}};u 1Z})();1Z=D.1Z;D.2v=(A(){A 2v(){}2v.9H={};2v.V=A(1p,4m){u o.9H[1p]=4m};2v.3V=A(1j,1p,1l){u o.9H[1p].4q(1j,1l)};u 2v})();2v=D.2v;D.1M=(A(){1M.4y=D.2Y?6K(\'dP\').dO().P:4;A 1M(c){o.c=c;o.4b=8Q(o.4b,o);o.6G=[];o.5e=L}1M.N.4p=A(9B){B(9B==L){u}u o.6G.2j(9B)};1M.N.4b=A(){M 2f;B(o.6G.P===0){2W.5g(o,"bc");B(o.9w!=L){o.9w.1x(o.c)}u o}o.2c=o.6G.d9();5E(o.2c.1w){2g R.3j.8H:2f=o.c.9t.d9();o.c.bT(2f);u o.4b();2g R.3j.8G:o.c.c1();o.c.bZ();u o.4b();2g R.3j.9Y:u o.da(o.2c.2f,o.2c.1E);2g R.3j.2v:u o.db();dN:u o.a6()}};1M.N.3V=A(1L){o.9w=1L;o.5e=1t.5l(o.c.T.P);u o.4b()};1M.N.9p=A(fn){M 72,9n,2S,1Q,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;9n=O.2J((n/4)/1M.4y);72=9n*4;9l=72+((n/4)%1M.4y)*4;1o=[];W(i=H=0,K=1M.4y;0<=K?HK;i=0<=K?++H:--H){1J=i*72;1Q=1J+(i===1M.4y-1?9l:72);B(D.2Y){f=6z((A(1r){u A(){u fn.1x(1r,i,1J,1Q)}})(o));2S=f.dM();1o.2j(o.64(2S))}S{1o.2j(7I((A(1r){u A(i,1J,1Q){u A(){u fn.1x(1r,i,1J,1Q)}}})(o)(i,1J,1Q),0))}}u 1o};1M.N.a6=A(){2W.5g(o.c,"b6",o.2c);B(o.2c.1w===R.3j.8J){u o.9p(o.af)}S{u o.9p(o.ag)}};1M.N.db=A(){1X.2w("dL 4m "+o.2c.4m);2v.3V(o.c,o.2c.4m,o.2c.1l);1X.2w("2v "+o.2c.4m+" 9k!");u o.4b()};1M.N.af=A(2S,1J,1Q){M i,1v,H;1X.2w("aj #"+2S+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1Q);2W.5g(o.c,"bd",{am:2S,an:1M.4y,dI:1J,dH:1Q});1v=1z 1Z();1v.9P(o.c);W(i=H=1J;H<1Q;i=H+=4){1v.U=i;1v.r=o.c.T[i];1v.g=o.c.T[i+1];1v.b=o.c.T[i+2];1v.a=o.c.T[i+3];o.2c.8t(1v);o.c.T[i]=1t.3F(1v.r);o.c.T[i+1]=1t.3F(1v.g);o.c.T[i+2]=1t.3F(1v.b);o.c.T[i+3]=1t.3F(1v.a)}B(D.2Y){u 6z["aq"](2S)}S{u o.64(2S)}};1M.N.ag=A(2S,1J,1Q){M Q,6I,3c,2K,5u,2P,i,j,k,2G,n,1p,p,1v,4t,H,1f,1I;1p=o.2c.1p;3c=o.2c.3c;2P=o.2c.2P;n=o.c.T.P;Q=o.2c.Q;6I=O.8m(Q.P);2G=[];1X.2w("dG 2G - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6I-1)/2));1Q=O.1K(1Q,n-(o.c.1c.F*4*((6I-1)/2)));2K=(6I-1)/2;1v=1z 1Z();1v.9P(o.c);W(i=H=1J;H<1Q;i=H+=4){1v.U=i;5u=0;W(j=1f=-2K;-2K<=2K?1f<=2K:1f>=2K;j=-2K<=2K?++1f:--1f){W(k=1I=2K;2K<=-2K?1I<=-2K:1I>=-2K;k=2K<=-2K?++1I:--1I){p=1v.cP(j,k);2G[5u*3]=p.r;2G[5u*3+1]=p.g;2G[5u*3+2]=p.b;5u++}}4t=o.3G(Q,2G,2P,3c);o.5e[i]=1t.3F(4t.r);o.5e[i+1]=1t.3F(4t.g);o.5e[i+2]=1t.3F(4t.b);o.5e[i+3]=o.c.T[i+3]}B(D.2Y){u 6z["aq"](2S)}S{u o.64(2S)}};1M.N.64=A(2S){M i,H,K;B(2S>=0){1X.2w("aj #"+2S+" 9k! R: "+o.2c.1p)}o.7P++;2W.5g(o.c,"64",{am:2S,dF:o.7P,an:1M.4y});B(o.7P===1M.4y){B(o.2c.1w===R.3j.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.5e[i]}}B(2S>=0){1X.2w("R "+o.2c.1p+" 9k!")}2W.5g(o.c,"bb",o.2c);u o.4b()}};1M.N.3G=A(Q,2G,2P,3c){M i,2e,H,K;2e={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2e.r+=Q[i]*2G[i*3];2e.g+=Q[i]*2G[i*3+1];2e.b+=Q[i]*2G[i*3+2]}2e.r=(2e.r/2P)+3c;2e.g=(2e.g/2P)+3c;2e.b=(2e.b/2P)+3c;u 2e};1M.N.da=A(2f,1E){M 1O,5m;1O=1z 4v();1O.bP=(A(1r){u A(){2f.1j.6h(1O,0,0,1r.c.1c.F,1r.c.1c.J);2f.2M=2f.1j.4O(0,0,1r.c.1c.F,1r.c.1c.J);2f.T=2f.2M.2a;1r.c.T=2f.T;u 1r.4b()}})(o);5m=2U.bu(1E);u 1O.1E=5m!=L?5m:1E};u 1M})();1M=D.1M;D.32=(A(){A 32(){}32.63={};32.bR=A(4E){u o.63[4E]!=L};32.4c=A(4E){u o.63[4E]};32.cs=A(1p,2B){u o.63[1p]=2B};32.3V=A(4E,1L){7I((A(1r){u A(){u 1L.1x(1r.4c(4E),1r.4c(4E))}})(o),0);u o.4c(4E)};32.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.63[1p]}S{u o.63={}}};u 32})();32=D.32;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("61",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1G;1G={};1G.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1G.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1G.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1G});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1G;1G={};1G.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1G.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1G.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1G});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4U",A(){M 3e;B(1k.P===1){3e=1W.7U(1k[0])}S{3e={r:1k[0],g:1k[1],b:1k[2]}}u o.2n("4U",A(C){C.r=3e.r;C.g=3e.g;C.b=3e.b;C.a=E;u C})});R.V("3u",A(Q){Q=O.2J(E*(Q/1i));u o.2n("3u",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3N",A(Q){Q*=-0.dy;u o.2n("3N",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("44",A(Q){Q*=-1;u o.2n("44",A(C){M 1q,4X,1e;1e=O.1e(C.r,C.g,C.b);4X=(C.r+C.g+C.b)/3;1q=((O.4Y(1e-4X)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4Z",A(Q){u o.2n("4Z",A(C){M 4X;4X=2b.6C(C);C.r=4X;C.g=4X;C.b=4X;u C})});R.V("2t",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2n("2t",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("94",A(Q){u o.2n("94",A(C){M b,g,h,5d,r,K;5d=1W.cC(C.r,C.g,C.b);h=5d.h*1i;h+=O.4Y(Q);h=h%1i;h/=1i;5d.h=h;K=1W.cE(5d.h,5d.s,5d.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4u",A(){M 5w,3d;B(1k.P===2){3d=1W.7U(1k[0]);5w=1k[1]}S B(1k.P===4){3d={r:1k[0],g:1k[1],b:1k[2]};5w=1k[3]}u o.2n("4u",A(C){C.r-=(C.r-3d.r)*(5w/1i);C.g-=(C.g-3d.g)*(5w/1i);C.b-=(C.b-3d.b)*(5w/1i);u C})});R.V("b0",A(){u o.2n("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4s",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2n("4s",A(C){C.r=O.1K(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1K(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1K(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2u",A(Q){u o.2n("2u",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4Y(Q)*2.55;u o.2n("8i",A(C){M 4f;4f=2b.ab(Q*-1,Q);C.r+=4f;C.g+=4f;C.b+=4f;u C})});R.V("8j",A(Q){Q=O.4Y(Q)*2.55;u o.2n("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1F.3f}S{C.r-=C.r*O.4Y(1F.3f)}}B(1F.4w!=L){B(1F.4w>0){C.g+=(E-C.g)*1F.4w}S{C.g-=C.g*O.4Y(1F.4w)}}B(1F.3Y!=L){B(1F.3Y>0){C.b+=(E-C.b)*1F.3Y}S{C.b-=C.b*O.4Y(1F.3Y)}}u C})});R.V("29",A(){M 6R,28,3X,3E,1Q,i,5s,1J,H,1f,K,41;3X=1k[0],3E=2<=1k.P?6f.1x(1k,1):[];5s=3E[3E.P-1];B(1s 5s==="A"){6R=5s;3E.6A()}S B(1s 5s==="3h"){6R=2b[5s];3E.6A()}S{6R=2b.28}B(1s 3X==="3h"){3X=3X.do("")}B(3X[0]==="v"){3X=[\'r\',\'g\',\'b\']}B(3E.P<2){2Q"5z 8f 8W 1k 3K 29 1A";}28=6R(3E,0,E);1J=3E[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){28[i]=1J[1]}}1Q=3E[3E.P-1];B(1Q[0]=E;i=41<=E?++1f:--1f){28[i]=1Q[1]}}u o.2n("29",A(C){M 1I,4i;W(i=1I=0,4i=3X.P;0<=4i?1I<4i:1I>4i;i=0<=4i?++1I:--1I){C[3X[i]]=28[C[3X[i]]]}u C})});R.V("39",A(Q){M 4K,4L,p;p=O.4Y(Q)/1i;4K=[0,E*p];4L=[E-(E*p),E];B(Q<0){4K=4K.br();4L=4L.br()}u o.29(\'3d\',[0,0],4K,4L,[E,E])});D.2v.V("8D",A(F,J,x,y){M I,2I;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="3P"&&2h!==L){I=1z 48(F,J)}S{I=2q.3J(\'I\');1t.5p(o.I,I);I.F=F;I.J=J}2I=I.3i(\'2d\');2I.6h(o.I,x,y,F,J,0,0,F,J);o.9x={x:x,y:y};o.cr=2T;u o.6O(I)});D.2v.V("8x",A(2x){M I,2I;B(2x==L){2x=L}B(2x===L||((2x.F==L)&&(2x.J==L))){1X.9e("5z cc dn 1c be W 8x");u}B(2x.F==L){2x.F=o.I.F*2x.J/o.I.J}S B(2x.J==L){2x.J=o.I.J*2x.F/o.I.F}B(1s 2h!=="3P"&&2h!==L){I=1z 48(2x.F,2x.J)}S{I=2q.3J(\'I\');1t.5p(o.I,I);I.F=2x.F;I.J=2x.J}2I=I.3i(\'2d\');2I.6h(o.I,0,0,o.I.F,o.I.J,0,0,2x.F,2x.J);o.9v=2T;u o.6O(I)});D.R.V("8D",A(){u o.51("8D",5v.N.5c.1x(1k,0))});D.R.V("8x",A(){u o.51("8x",5v.N.5c.1x(1k,0))});D.R.V("dm",A(){u o.3G("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3G("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3G("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3p){M 2G;B(3p===0||3p===4e){2G=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3p>0&&3p<90)||(3p>4e&&3p<8v)){2G=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3p===90||3p===8v){2G=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2G=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3G("de 8A",2G)});D.R.V("6W",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3G("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3u:A(C,1q,G){C.r=C.r-(C.r*1q*G.3g);C.g=C.g-(C.g*1q*G.3g);C.b=C.b-(C.b*1q*G.3g);u C},2u:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3g,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3g,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3g,1))*E;u C},4u:A(C,1q,G){C.r-=(C.r-G.3e.r)*1q;C.g-=(C.g-G.3e.g)*1q;C.b-=(C.b-G.3e.b)*1q;u C}};R.V("1U",A(1u,3g){M 28,3B,1Q,1J;B(3g==L){3g=60}B(1s 1u==="3h"&&1u.58(-1)==="%"){B(o.1c.J>o.1c.F){1u=o.1c.F*(49(1u.58(0,1u.P-1),10)/1i)}S{1u=o.1c.J*(49(1u.58(0,1u.P-1),10)/1i)}}3g/=1i;3B=[o.1c.F/2,o.1c.J/2];1J=O.8m(O.1T(3B[0],2)+O.1T(3B[1],2));1Q=1J-1u;28=2b.28([0,1],[30,30],[70,60],[1i,80]);u o.2n("1U",A(C){M 8q,2H,U;U=C.9O();8q=2b.59(U.x,U.y,3B[0],3B[1]);B(8q>1Q){2H=O.1e(1,(28[O.5H(((8q-1Q)/1u)*1i)]/10)*3g);C.r=O.1T(C.r/E,2H)*E;C.g=O.1T(C.g/E,2H)*E;C.b=O.1T(C.b/E,2H)*E}u C})});R.V("bY",A(G){M 4h,5S,8l,1u,H,1n,K;4h={3g:50,2F:0,8U:\'3u\',3e:{r:0,g:0,b:0}};G=1t.7a(4h,G);B(!G.1u){u o}S B(1s G.1u==="3h"){8l=49(G.1u,10)/1i;G.1u={F:o.1c.F*8l,J:o.1c.J*8l}}S B(1s G.1u==="3S"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){5S=K[H];B(1s G.1u[5S]==="3h"){G.1u[5S]=o.1c[5S]*(49(G.1u[5S],10)/1i)}}}S B(G.1u==="8f"){1u=G.1u;G.1u={F:1u,J:1u}}B(1s G.2F==="3h"){G.2F=(G.1u.F/2)*(49(G.2F,10)/1i)}G.3g/=1i;G.1u.F=O.2J(G.1u.F);G.1u.J=O.2J(G.1u.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4u"&&1s G.3e==="3h"){G.3e=1W.7U(G.3e)}G.1Y={5i:(o.1c.F-G.1u.F)/2,67:o.1c.F-G.1Y.5i,5k:(o.1c.J-G.1u.J)/2,69:o.1c.J-G.1Y.5k};G.1y=[{x:G.1Y.5i+G.2F,y:G.1Y.69-G.2F},{x:G.1Y.67-G.2F,y:G.1Y.69-G.2F},{x:G.1Y.67-G.2F,y:G.1Y.5k+G.2F},{x:G.1Y.5i+G.2F,y:G.1Y.5k+G.2F}];G.4l=2b.59(0,0,G.1y[3].x,G.1y[3].y)-G.2F;u o.2n("bY",A(C){M 1q,U,4n;U=C.9O();B((U.x>G.1y[0].x&&U.xG.1Y.5k&&U.yG.1Y.5i&&U.xG.1y[3].y&&U.yG.1y[0].x&&U.xG.1Y.69){1q=(U.y-G.1Y.69)/G.4l}S B(U.y>G.1y[2].y&&U.yG.1Y.67){1q=(U.x-G.1Y.67)/G.4l}S B(U.x>G.1y[0].x&&U.xG.1y[2].y&&U.y=G.1y[0].y){4n=D.59(U.x,U.y,G.1y[0].x,G.1y[0].y);1q=(4n-G.2F)/G.4l}S B(U.x>=G.1y[1].x&&U.y>=G.1y[1].y){4n=D.59(U.x,U.y,G.1y[1].x,G.1y[1].y);1q=(4n-G.2F)/G.4l}S B(U.x>=G.1y[2].x&&U.y<=G.1y[2].y){4n=D.59(U.x,U.y,G.1y[2].x,G.1y[2].y);1q=(4n-G.2F)/G.4l}S B(U.x<=G.1y[3].x&&U.y<=G.1y[3].y){4n=D.59(U.x,U.y,G.1y[3].x,G.1y[3].y);1q=(4n-G.2F)/G.4l}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4S,96,97,6p,66;6p=[2O,2O,38,2O,3t,38,3v,2O,3U,3t,3A,38,43,3v,3Q,2O,4T,3U,4C,3t,4W,3A,4z,38,4A,43,4k,3v,3b,3Q,4G,2O,68,4T,46,3U,5X,4C,5Q,3t,3b,4W,6a,3A,4B,4z,4x,38,6i,4A,5x,43,5I,4k,5K,3v,5M,3b,5O,3Q,5Y,4G,47,2O,7E,68,7D,4T,7C,46,7A,3U,7x,5X,7w,4C,4R,5Q,7v,3t,6b,3b,7u,4W,7t,6a,4H,3A,47,4B,7s,4z,7r,4x,7q,38,7o,6i,46,4A,7n,5x,7l,43,7k,5I,7j,4k,4R,5K,6e,3v,7f,5M,7e,3b,7d,5O,7c,3Q,6k,5Y,4H,4G,79,47,77,2O,bU,7E,bN,68,4x,7D,bL,4T,bG,7C,bF,46,bD,7A,bC,3U,bB,7x,bA,5X,bz,7w,bx,4C,bw,4R,76,5Q,6e,7v,8u,3t,ba,6b,b9,3b,b8,7u,b7,4W,8g,7t,6k,6a,b5,4H,b4,3A,b3,47,b2,4B,aO,7s,aK,4z,aJ,7r,aH,4x,aF,7q,aC,38,az,7o,ax,6i,aw,46,ap,4A,ao,7n,al,5x,ak,7l,ah,43,ae,7k,dc,5I,d3,7j,d2,4k,cY,4R,76,5K,cX,6e,cW,3v,8u,7f,cV,5M,6b,7e,cT,3b,cG,7d,cB,5O,8S,7c,8g,3Q,cv,6k,cu,5Y,cq,4H,cp,4G,3A,79,co,47,cn,77,4B];66=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6m,6l,2E,P,c0){M 42,1j,2r,71,74,73,6q;42=1s 2h!=="3P"&&2h!==L?1z 48():2q.3J(\'I\');42.F=F;42.J=J;71=6m+O.bW(2E)*P*0.5;73=6l+O.bV(2E)*P*0.5;74=6m-O.bW(2E)*P*0.5;6q=6l-O.bV(2E)*P*0.5;1j=42.3i("2d");2r=1j.en(71,73,74,6q);B(!c0){2r.5n(0,"78");2r.5n(1,"a4")}S{2r.5n(0,"78");2r.5n(0.5,"a4");2r.5n(1,"78")}1j.bO=2r;1j.bM(0,0,F,J);u 1j.4O(0,0,F,J)};97=A(F,J,6m,6l,6Q,6P){M 42,1j,2r;42=1s 2h!=="3P"&&2h!==L?1z 48():2q.3J(\'I\');42.F=F;42.J=J;1j=42.3i("2d");2r=1j.ev(6m,6l,6Q,6m,6l,6P);2r.5n(1,"78");2r.5n(0,"a4");1j.bO=2r;1j.bM(0,0,F,J);u 1j.4O(0,0,F,J)};4S=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1N=L};D.2v.V("a3",A(by,1V,bq,7m){M 2l,2z,1P,5N,6Y,2H,2o,2y,1S,J,3Z,i,6U,2C,3y,7O,3R,6M,2N,p,1B,1D,Y,1C,2p,2A,1R,9i,1a,34,2R,1b,4a,1m,1H,2L,5f,2X,8h,8e,65,F,3r,x,y,1h,4M,4I,H,1f,1I,3m,3x,3s,3l,3z,3D,5J;F=o.1c.F;J=o.1c.J;3y=o.T;9i=by.2a;8e=F*J;65=8e<<2;Y=[];W(i=H=0;0<=65?H<65:H>65;i=0<=65?++H:--H){Y[i]=3y[i]}6Y=0;5f=7m;7m-=1;8Y(5f-->=0){3R=(1V+0.5)|0;B(3R===0){5F}B(3R>6t){3R=6t}2H=3R+3R+1;8h=F<<2;3r=F-1;3Z=J-1;1a=3R+1;2X=1a*(1a+1)/2;2L=1z 4S();4a=bg 0;1b=2L;W(i=1f=1;1<=2H?1f<2H:1f>2H;i=1<=2H?++1f:--1f){1b=1b.1N=1z 4S();B(i===1a){4a=1b}}1b.1N=2L;1m=L;1H=L;4I=1h=0;2N=6p[3R];2R=66[3R];W(y=1I=0;0<=J?1IJ;y=0<=J?++1I:--1I){2p=2o=2l=1R=1S=1P=0;2A=1a*(1C=Y[1h]);2y=1a*(1D=Y[1h+1]);2z=1a*(1B=Y[1h+2]);1R+=2X*1C;1S+=2X*1D;1P+=2X*1B;1b=2L;W(i=3m=0;0<=1a?3m<1a:3m>1a;i=0<=1a?++3m:--3m){1b.r=1C;1b.g=1D;1b.b=1B;1b=1b.1N}W(i=3x=1;1<=1a?3x<1a:3x>1a;i=1<=1a?++3x:--3x){p=1h+((3rF;x=0<=F?++3s:--3s){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1S*2N)>>2R;Y[1h+2]=(1P*2N)>>2R;1R-=2A;1S-=2y;1P-=2z;2A-=1m.r;2y-=1m.g;2z-=1m.b;p=(4I+((p=x+1a)<3r?p:3r))<<2;2p+=(1m.r=Y[p]);2o+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2p;1S+=2o;1P+=2l;1m=1m.1N;2A+=(1C=1H.r);2y+=(1D=1H.g);2z+=(1B=1H.b);2p-=1C;2o-=1D;2l-=1B;1H=1H.1N;1h+=4}4I+=F}W(x=3l=0;0<=F?3lF;x=0<=F?++3l:--3l){2o=2l=2p=1S=1P=1R=0;1h=x<<2;2A=1a*(1C=Y[1h]);2y=1a*(1D=Y[1h+1]);2z=1a*(1B=Y[1h+2]);1R+=2X*1C;1S+=2X*1D;1P+=2X*1B;1b=2L;W(i=3z=0;0<=1a?3z<1a:3z>1a;i=0<=1a?++3z:--3z){1b.r=1C;1b.g=1D;1b.b=1B;1b=1b.1N}4M=F;W(i=3D=1;1<=1a?3D<1a:3D>1a;i=1<=1a?++3D:--3D){1h=(4M+x)<<2;1R+=(1b.r=(1C=Y[1h]))*(34=1a-i);1S+=(1b.g=(1D=Y[1h+1]))*34;1P+=(1b.b=(1B=Y[1h+2]))*34;2p+=1C;2o+=1D;2l+=1B;1b=1b.1N;B(i<3Z){4M+=F}}1h=x;1m=2L;1H=4a;W(y=5J=0;0<=J?5JJ;y=0<=J?++5J:--5J){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1S*2N)>>2R;Y[p+2]=(1P*2N)>>2R;1R-=2A;1S-=2y;1P-=2z;2A-=1m.r;2y-=1m.g;2z-=1m.b;p=(x+(((p=y+1a)<3Z?p:3Z)*F))<<2;1R+=(2p+=(1m.r=Y[p]));1S+=(2o+=(1m.g=Y[p+1]));1P+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2A+=(1C=1H.r);2y+=(1D=1H.g);2z+=(1B=1H.b);2p-=1C;2o-=1D;2l-=1B;1H=1H.1N;1h+=F}}1V*=bq;i=8e;8Y(--i>-1){2C=i<<2;6M=(9i[2C+2]&fo)/E.0*7m;7O=6M|0;B(7O===6Y){5N=6t.0*(6M-(6M|0));6U=6t-5N;3y[2C]=(3y[2C]*6U+Y[2C]*5N)>>8;3y[2C+1]=(3y[2C+1]*6U+Y[2C+1]*5N)>>8;3y[2C+2]=(3y[2C+2]*6U+Y[2C+2]*5N)>>8}S B(7O===6Y+1){3y[2C]=Y[2C];3y[2C+1]=Y[2C+1];3y[2C+2]=Y[2C+2]}}6Y++}u o});D.R.V("fq",A(G){M 4h,2r;4h={3B:{x:o.1c.F/2,y:o.1c.J/2},2E:45,cd:5W,7Q:3,7N:1.5,5f:3};G=1t.7a(4h,G);G.2E*=O.aZ/4e;2r=96(o.1c.F,o.1c.J,G.3B.x,G.3B.y,G.2E,G.cd,2T);u o.51("a3",[2r,G.7Q,G.7N,G.5f])});u D.R.V("fx",A(G){M 4h,2r,6Q,6P;4h={1u:50,3B:{x:o.1c.F/2,y:o.1c.J/2},7Q:3,7N:1.5,5f:3,1V:L};G=1t.7a(4h,G);B(!G.1V){G.1V=o.1c.F2H;i=1<=2H?++H:--H){1b=1b.1N=1z 4S();B(i===1a){4a=1b}}1b.1N=2L;1m=L;1H=L;4I=1h=0;2N=6p[1V];2R=66[1V];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2p=2o=2l=1R=1S=1P=0;2A=1a*(1C=Y[1h]);2y=1a*(1D=Y[1h+1]);2z=1a*(1B=Y[1h+2]);1R+=2X*1C;1S+=2X*1D;1P+=2X*1B;1b=2L;W(i=1I=0;0<=1a?1I<1a:1I>1a;i=0<=1a?++1I:--1I){1b.r=1C;1b.g=1D;1b.b=1B;1b=1b.1N}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3rF;x=0<=F?++3x:--3x){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1S*2N)>>2R;Y[1h+2]=(1P*2N)>>2R;1R-=2A;1S-=2y;1P-=2z;2A-=1m.r;2y-=1m.g;2z-=1m.b;p=(4I+((p=x+1V+1)<3r?p:3r))<<2;2p+=(1m.r=Y[p]);2o+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2p;1S+=2o;1P+=2l;1m=1m.1N;2A+=(1C=1H.r);2y+=(1D=1H.g);2z+=(1B=1H.b);2p-=1C;2o-=1D;2l-=1B;1H=1H.1N;1h+=4}4I+=F}W(x=3s=0;0<=F?3sF;x=0<=F?++3s:--3s){2o=2l=2p=1S=1P=1R=0;1h=x<<2;2A=1a*(1C=Y[1h]);2y=1a*(1D=Y[1h+1]);2z=1a*(1B=Y[1h+2]);1R+=2X*1C;1S+=2X*1D;1P+=2X*1B;1b=2L;W(i=3l=0;0<=1a?3l<1a:3l>1a;i=0<=1a?++3l:--3l){1b.r=1C;1b.g=1D;1b.b=1B;1b=1b.1N}4M=F;W(i=3z=1;1<=1V?3z<=1V:3z>=1V;i=1<=1V?++3z:--3z){1h=(4M+x)<<2;1R+=(1b.r=(1C=Y[1h]))*(34=1a-i);1S+=(1b.g=(1D=Y[1h+1]))*34;1P+=(1b.b=(1B=Y[1h+2]))*34;2p+=1C;2o+=1D;2l+=1B;1b=1b.1N;B(i<3Z){4M+=F}}1h=x;1m=2L;1H=4a;W(y=3D=0;0<=J?3DJ;y=0<=J?++3D:--3D){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1S*2N)>>2R;Y[p+2]=(1P*2N)>>2R;1R-=2A;1S-=2y;1P-=2z;2A-=1m.r;2y-=1m.g;2z-=1m.b;p=(x+(((p=y+1a)<3Z?p:3Z)*F))<<2;1R+=(2p+=(1m.r=Y[p]));1S+=(2o+=(1m.g=Y[p+1]));1P+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2A+=(1C=1H.r);2y+=(1D=1H.g);2z+=(1B=1H.b);2p-=1C;2o-=1D;2l-=1B;1H=1H.1N;1h+=F}}u o});u D.R.V("5R",A(1V){u o.51("5R",[1V])})})();D.R.V("aD",A(Q){u o.2n("aD",A(C){M 6C;6C=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6C",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} +this.image=new Image();this.image.src=data;Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));this.canvas=new Canvas(this.imageWidth(),this.imageHeight());return this.finishInit();};Caman.prototype.initImage=function(){this.image=this.initObj;this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');Util.copyAttributes(this.image,this.canvas,{except:['src']});Util.copyAttributes(this.image,this.renderingCanvas,{except:['src']});if(this.image.parentNode!=null){this.image.parentNode.replaceChild(this.renderingCanvas,this.image);} +this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=this.initObj;this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} -return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();} +return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} return this.finishInit();};Caman.prototype.finishInit=function(){var i,pixel,_i,_len,_ref;if(this.context==null){this.context=this.canvas.getContext('2d');} this.originalWidth=this.preScaledWidth=this.width=this.canvas.width;this.originalHeight=this.preScaledHeight=this.height=this.canvas.height;this.hiDPIAdjustments();if(!this.hasId()){this.assignId();} -if(this.image!=null){this.context.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);} +if(this.image!=null){this.context.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);this.renderingContext.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);} this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} this.dimensions={width:this.canvas.width,height:this.canvas.height};if(!Caman.NodeJS){Store.put(this.id,this);} this.callback.call(this,this);return this.callback=function(){};};Caman.prototype.reloadCanvasData=function(){this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);return this.pixelData=this.imageData.data;};Caman.prototype.resetOriginalPixelData=function(){var i,pixel,_i,_len,_ref,_results;if(!Caman.allowRevert){throw"Revert disabled";} @@ -48,17 +48,14 @@ return _results;};Caman.prototype.hasId=function(){return Caman.getAttrId(this.c return this.canvas.setAttribute('data-caman-id',this.id);};Caman.prototype.hiDPIDisabled=function(){return this.canvas.getAttribute('data-caman-hidpi-disabled')!==null;};Caman.prototype.hiDPIAdjustments=function(){var ratio;if(Caman.NodeJS||!this.needsHiDPISwap()){return;} ratio=this.hiDPIRatio();if(ratio!==1){Log.debug("HiDPI ratio = "+ratio);this.scaled=true;this.preScaledWidth=this.canvas.width;this.preScaledHeight=this.canvas.height;this.canvas.width=this.preScaledWidth*ratio;this.canvas.height=this.preScaledHeight*ratio;this.canvas.style.width=""+this.preScaledWidth+"px";this.canvas.style.height=""+this.preScaledHeight+"px";this.context.scale(ratio,ratio);this.width=this.originalWidth=this.canvas.width;return this.height=this.originalHeight=this.canvas.height;}};Caman.prototype.hiDPIRatio=function(){var backingStoreRatio,devicePixelRatio;devicePixelRatio=window.devicePixelRatio||1;backingStoreRatio=this.context.webkitBackingStorePixelRatio||this.context.mozBackingStorePixelRatio||this.context.msBackingStorePixelRatio||this.context.oBackingStorePixelRatio||this.context.backingStorePixelRatio||1;return devicePixelRatio/backingStoreRatio;};Caman.prototype.hiDPICapable=function(){return(window.devicePixelRatio!=null)&&window.devicePixelRatio!==1;};Caman.prototype.needsHiDPISwap=function(){if(this.hiDPIDisabled()||!this.hiDPICapable()){return false;} return this.hiDPIReplacement()!==null;};Caman.prototype.hiDPIReplacement=function(){if(this.image==null){return null;} -return this.image.getAttribute('data-caman-hidpi');};Caman.prototype.replaceCanvas=function(newCanvas){var oldCanvas;oldCanvas=this.canvas;this.canvas=newCanvas;this.context=this.canvas.getContext('2d');if(!Caman.NodeJS){oldCanvas.parentNode.replaceChild(this.canvas,oldCanvas);} +return this.image.getAttribute('data-caman-hidpi');};Caman.prototype.replaceCanvas=function(newCanvas){var i,pixel,_i,_len,_ref;this.canvas=newCanvas;this.context=this.canvas.getContext('2d');this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} this.width=this.canvas.width;this.height=this.canvas.height;this.reloadCanvasData();return this.dimensions={width:this.canvas.width,height:this.canvas.height};};Caman.prototype.render=function(callback){if(callback==null){callback=function(){};} -Event.trigger(this,"renderStart");return this.renderer.execute((function(_this){return function(){_this.context.putImageData(_this.imageData,0,0);return callback.call(_this);};})(this));};Caman.prototype.revert=function(updateContext){var i,pixel,_i,_len,_ref;if(updateContext==null){updateContext=true;} +Event.trigger(this,"renderStart");return this.renderer.execute((function(_this){return function(){_this.renderingCanvas.width=_this.canvas.width;_this.renderingCanvas.height=_this.canvas.height;_this.renderingContext.putImageData(_this.imageData,0,0);return callback.call(_this);};})(this));};Caman.prototype.revert=function(updateContext){var i,pixel,_i,_len,_ref;if(updateContext==null){updateContext=true;} if(!Caman.allowRevert){throw"Revert disabled";} _ref=this.originalVisiblePixels();for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.pixelData[i]=pixel;} -if(updateContext){return this.context.putImageData(this.imageData,0,0);}};Caman.prototype.reset=function(){var canvas,ctx,i,imageData,pixel,pixelData,_i,_len,_ref;canvas=document.createElement('canvas');Util.copyAttributes(this.canvas,canvas);canvas.width=this.originalWidth;canvas.height=this.originalHeight;ctx=canvas.getContext('2d');imageData=ctx.getImageData(0,0,canvas.width,canvas.height);pixelData=imageData.data;_ref=this.initializedPixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];pixelData[i]=pixel;} -ctx.putImageData(imageData,0,0);this.cropCoordinates={x:0,y:0};this.resized=false;return this.replaceCanvas(canvas);};Caman.prototype.originalVisiblePixels=function(){var canvas,coord,ctx,endX,endY,i,imageData,pixel,pixelData,pixels,rotatedCanvas,rotatedCanvasCtx,scaledCanvas,startX,startY,width,x,y,_i,_j,_k,_len,_len1,_ref,_ref1,_ref2,_ref3,_ref4;if(!Caman.allowRevert){throw"Revert disabled";} -pixels=[];startX=this.cropCoordinates.x;endX=startX+this.width;startY=this.cropCoordinates.y;endY=startY+this.height;if(this.resized){canvas=document.createElement('canvas');canvas.width=this.originalWidth;canvas.height=this.originalHeight;ctx=canvas.getContext('2d');imageData=ctx.getImageData(0,0,canvas.width,canvas.height);pixelData=imageData.data;_ref=this.originalPixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];pixelData[i]=pixel;} -ctx.putImageData(imageData,0,0);scaledCanvas=document.createElement('canvas');scaledCanvas.width=this.width;scaledCanvas.height=this.height;ctx=scaledCanvas.getContext('2d');ctx.drawImage(canvas,0,0,this.originalWidth,this.originalHeight,0,0,this.width,this.height);pixelData=ctx.getImageData(0,0,this.width,this.height).data;width=this.width;}else if(this.rotated){canvas=document.createElement('canvas');canvas.width=this.originalWidth;canvas.height=this.originalHeight;ctx=canvas.getContext('2d');imageData=ctx.getImageData(0,0,canvas.width,canvas.height);pixelData=imageData.data;_ref1=this.originalPixelData;for(i=_j=0,_len1=_ref1.length;_j<_len1;i=++_j){pixel=_ref1[i];pixelData[i]=pixel;} -ctx.putImageData(imageData,0,0);rotatedCanvas=document.createElement('canvas');rotatedCanvas.width=this.width;rotatedCanvas.height=this.height;rotatedCanvasCtx=rotatedCanvas.getContext('2d');rotatedCanvas.width=this.canvas.width;rotatedCanvas.height=this.canvas.height;x=rotatedCanvas.width/2;y=rotatedCanvas.height/2;rotatedCanvasCtx.save();rotatedCanvasCtx.translate(x,y);rotatedCanvasCtx.rotate(this.rotationAngle*Math.PI/180);rotatedCanvasCtx.drawImage(canvas,-canvas.width/2,-canvas.height/2,canvas.width,canvas.height);rotatedCanvasCtx.restore();pixelData=rotatedCanvasCtx.getImageData(0,0,rotatedCanvas.width,rotatedCanvas.height).data;width=rotatedCanvas.width;}else{pixelData=this.originalPixelData;width=this.originalWidth;} -for(i=_k=0,_ref2=pixelData.length;_k<_ref2;i=_k+=4){coord=Pixel.locationToCoordinates(i,width);if(((startX<=(_ref3=coord.x)&&_ref3_ref;i=0<=_ref?++_i:--_i){divisor+=adjust[i];}} diff --git a/dist/caman.pack.js b/dist/caman.pack.js index 397e659e..86563976 100644 --- a/dist/caman.pack.js +++ b/dist/caman.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2Q,1D,1K,B,32,34,1s,1U,4l,V,1Q,2K,22,1p,2j,1r,1P,1i,4S,1Z,1a,3y,40,4u,3m,3O=[].br||o(6U){S(I i=0,l=8.M;iE){9 E}9 1u};1a.3S=o(2O,2g,3V){I 3W,D,14,F,2e,X;u(3V==G){3V={}}F=2O.9K;X=[];S(D=0,14=F.M;D<14;D++){3W=F[D];u((3V.67!=G)&&(2e=3W.69,3O.19(3V.67,2e)>=0)){4p}X.1A(2g.87(3W.69,3W.9z))}9 X};1a.4b=o(M){u(M==G){M=0}u(B.1X||(2H.8b!=G)){9 1m 8b(M)}9 1m 48(M)};9 1a})();u(1f 1Y!=="31"&&1Y!==G){4S=1Y;34=4h(\'C\');2K=34.2K;4l=4h(\'9v\');3y=4h(\'3y\');40=4h(\'40\')}Q{4S=2H}B=(o(8h){6V(B,8h);B.6y={8M:"4.1.2",8o:"7/27/9A"};B.7K=1F;B.41=2k;B.5X="7A";B.59="";B.7x="a6";B.1X=1f 1Y!=="31"&&1Y!==G;B.7u=!B.1X;B.3F=o(){9"a7 "+B.6y.8M+", a8 "+B.6y.8o};B.5T=o(C){u(B.1X){9 2k}u(1f C==="2N"){C=$(C)}u(!((C!=G)&&(C.3K!=G))){9 G}9 C.3K(\'1o-2f-1R\')};o B(){8.3r=5x(8.3r,8);I W,1g,1R;u(Y.M===0){1S"3L Y";}u(8 7m B){8.3I=8.3I.5S(8);8.44=8.44.5S(8);W=Y[0];u(!B.1X){1R=57(B.5T(W[0]),10);1g=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!ag(1R)&&1Z.7b(1R)){9 1Z.2r(1R,1g)}}8.1R=1a.61.2v();8.51=8.2P=G;8.4g={x:0,y:0};8.79=1F;8.4Z=1F;8.74=1F;8.73=0;8.3P=[];8.5D=[];8.5C=[];8.3T=G;8.71=1F;8.aj=1m 2Q(8);8.2S=1m 1i(8);8.6M((o(17){9 o(){17.6L(W);9 17.6J()}})(8));9 8}Q{9 1m B(Y)}}B.H.6M=o(3B){I 5q;u(B.1X){9 4Q((o(17){9 o(){9 3B.19(17)}})(8),0)}Q{u(1E.5o==="4P"){1p.1G("6E 6D");9 4Q((o(17){9 o(){9 3B.19(17)}})(8),0)}Q{5q=(o(17){9 o(){u(1E.5o==="4P"){1p.1G("6E 6D");9 3B.19(17)}}})(8);9 1E.6C("al",5q,1F)}}};B.H.6L=o(W){I 1H,1u,F,X;u(W.M===0){1S"3L Y 8L";}8.23=G;8.4O=G;8.4N=G;8.1g=o(){};8.8s(W[0]);u(W.M===1){9}3x(1f W[1]){1y"2N":8.4N=W[1];3b;1y"o":8.1g=W[1]}u(W.M===2){9}8.1g=W[2];u(W.M===4){F=W[4];X=[];S(1H 38 F){u(!46.19(F,1H))4p;1u=F[1H];X.1A(8.1e[1H]=1u)}9 X}};B.H.8s=o(1J){u(B.1X){8.23=1J;8.4O=\'8r\';9}u(1f 1J==="2z"){8.23=1J}Q{8.23=$(1J)}u(8.23==G){1S"ax ay aE T 7Z C S aQ.";}9 8.4O=8.23.69.3Y()};B.H.6J=o(){3x(8.4O){1y"8r":9 8.7V();1y"1h":9 8.7R();1y"C":9 8.7L()}};B.H.7V=o(){1p.1G("aT S 1X");u(1f 8.23==="2N"&&8.23.4L(/^7C?:\\/\\//)){9 8.7k(8.23,8.3r)}Q u(1f 8.23==="2N"){9 3y.aY(8.23,8.3r)}Q{9 8.3r(G,8.23)}};B.H.7k=o(49,1g){I 5U;1p.1G("aZ T 2O "+49);5U=40.2v(49,o(2y){I 4J;4J=\'\';2y.b0(\'7c\');2y.5J(\'1o\',o(6Y){9 4J+=6Y});9 2y.5J(\'1t\',o(){9 1g(G,1m b2(4J,\'7c\'))})});9 5U.5J(\'5F\',1g)};B.H.3r=o(4o,1o){u(4o){1S 4o;}8.T=1m 2K();8.T.1c=1o;1p.1G("2K 6S. 6K = "+(8.3f())+", 6I = "+(8.3d()));8.C=1m 34(8.3f(),8.3d());9 8.3I()};B.H.7R=o(){8.T=8.23;8.C=1E.2p(\'C\');8.1b=8.C.2a(\'2d\');1a.3S(8.T,8.C,{67:[\'1c\']});u(8.T.4I!=G){8.T.4I.5w(8.C,8.T)}8.5v();9 8.5r()};B.H.7L=o(){8.C=8.23;8.1b=8.C.2a(\'2d\');u(8.4N!=G){8.T=1E.2p(\'1h\');8.T.1c=8.4N;8.5v();9 8.5r()}Q{9 8.3I()}};B.H.5v=o(){u(8.5p()){1p.1G(8.T.1c,"->",8.4G());8.7j=2k;8.T.1c=8.4G()}u(1Q.7h(8.T)){8.T.1c=1Q.39(8.T.1c);9 1p.1G("bh T bi, bj 6W = "+8.T.1c)}};B.H.5r=o(){u(8.6O()){9 8.44()}Q{9 8.T.6B=8.44}};B.H.6O=o(){u(!8.T.4P){9 1F}u((8.T.63!=G)&&8.T.63===0){9 1F}9 2k};B.H.3f=o(){9 8.T.J||8.T.63};B.H.3d=o(){9 8.T.O||8.T.bv};B.H.44=o(){1p.1G("2K 6S. 6K = "+(8.3f())+", 6I = "+(8.3d()));u(8.7j){8.C.J=8.3f()/8.4s();8.C.O=8.3d()/8.4s()}Q{8.C.J=8.3f();8.C.O=8.3d()}9 8.3I()};B.H.3I=o(){I i,13,D,14,F;u(8.1b==G){8.1b=8.C.2a(\'2d\')}8.36=8.4i=8.J=8.C.J;8.3J=8.4k=8.O=8.C.O;8.7U();u(!8.7Y()){8.7e()}u(8.T!=G){8.1b.3N(8.T,0,0,8.3f(),8.3d(),0,0,8.4i,8.4k)}8.1z=8.1b.2B(0,0,8.C.J,8.C.O);8.K=8.1z.1o;u(B.41){8.51=1a.4b(8.K.M);8.2P=1a.4b(8.K.M);F=8.K;S(i=D=0,14=F.M;D<14;i=++D){13=F[i];8.51[i]=13;8.2P[i]=13}}8.1L={J:8.C.J,O:8.C.O};u(!B.1X){1Z.6F(8.1R,8)}8.1g.19(8,8);9 8.1g=o(){}};B.H.6Z=o(){8.1z=8.1b.2B(0,0,8.C.J,8.C.O);9 8.K=8.1z.1o};B.H.by=o(){I i,13,D,14,F,X;u(!B.41){1S"5y 4R";}8.2P=1a.4b(8.K.M);F=8.K;X=[];S(i=D=0,14=F.M;D<14;i=++D){13=F[i];X.1A(8.2P[i]=13)}9 X};B.H.7Y=o(){9 B.5T(8.C)!=G};B.H.7e=o(){u(B.1X||8.C.3K(\'1o-2f-1R\')){9}9 8.C.87(\'1o-2f-1R\',8.1R)};B.H.6N=o(){9 8.C.3K(\'1o-2f-6X-4R\')!==G};B.H.7U=o(){I 2t;u(B.1X||!8.5p()){9}2t=8.4s();u(2t!==1){1p.1G("bx 2t = "+2t);8.71=2k;8.4i=8.C.J;8.4k=8.C.O;8.C.J=8.4i*2t;8.C.O=8.4k*2t;8.C.7z.J=""+8.4i+"7F";8.C.7z.O=""+8.4k+"7F";8.1b.bw(2t,2t);8.J=8.36=8.C.J;9 8.O=8.3J=8.C.O}};B.H.4s=o(){I 5k,2G;2G=2H.2G||1;5k=8.1b.bs||8.1b.bq||8.1b.bo||8.1b.bn||8.1b.bm||1;9 2G/5k};B.H.7f=o(){9(2H.2G!=G)&&2H.2G!==1};B.H.5p=o(){u(8.6N()||!8.7f()){9 1F}9 8.4G()!==G};B.H.4G=o(){u(8.T==G){9 G}9 8.T.3K(\'1o-2f-6X\')};B.H.4y=o(7B){I 4z;4z=8.C;8.C=7B;8.1b=8.C.2a(\'2d\');u(!B.1X){4z.4I.5w(8.C,4z)}8.J=8.C.J;8.O=8.C.O;8.6Z();9 8.1L={J:8.C.J,O:8.C.O}};B.H.7H=o(1g){u(1g==G){1g=o(){}}1U.33(8,"8B");9 8.2S.2r((o(17){9 o(){17.1b.4a(17.1z,0,0);9 1g.19(17)}})(8))};B.H.bl=o(4B){I i,13,D,14,F;u(4B==G){4B=2k}u(!B.41){1S"5y 4R";}F=8.6H();S(i=D=0,14=F.M;D<14;i=++D){13=F[i];8.K[i]=13}u(4B){9 8.1b.4a(8.1z,0,0)}};B.H.bk=o(){I C,1B,i,1z,13,K,D,14,F;C=1E.2p(\'C\');1a.3S(8.C,C);C.J=8.36;C.O=8.3J;1B=C.2a(\'2d\');1z=1B.2B(0,0,C.J,C.O);K=1z.1o;F=8.51;S(i=D=0,14=F.M;D<14;i=++D){13=F[i];K[i]=13}1B.4a(1z,0,0);8.4g={x:0,y:0};8.4Z=1F;9 8.4y(C)};B.H.6H=o(){I C,4C,1B,1q,5Q,i,1z,13,K,4D,29,2Y,45,4E,4F,J,x,y,D,Z,1C,14,6w,F,2e,2E,5l,5n;u(!B.41){1S"5y 4R";}4D=[];4E=8.4g.x;1q=4E+8.J;4F=8.4g.y;5Q=4F+8.O;u(8.4Z){C=1E.2p(\'C\');C.J=8.36;C.O=8.3J;1B=C.2a(\'2d\');1z=1B.2B(0,0,C.J,C.O);K=1z.1o;F=8.2P;S(i=D=0,14=F.M;D<14;i=++D){13=F[i];K[i]=13}1B.4a(1z,0,0);45=1E.2p(\'C\');45.J=8.J;45.O=8.O;1B=45.2a(\'2d\');1B.3N(C,0,0,8.36,8.3J,0,0,8.J,8.O);K=1B.2B(0,0,8.J,8.O).1o;J=8.J}Q u(8.74){C=1E.2p(\'C\');C.J=8.36;C.O=8.3J;1B=C.2a(\'2d\');1z=1B.2B(0,0,C.J,C.O);K=1z.1o;2e=8.2P;S(i=Z=0,6w=2e.M;Z<6w;i=++Z){13=2e[i];K[i]=13}1B.4a(1z,0,0);29=1E.2p(\'C\');29.J=8.J;29.O=8.O;2Y=29.2a(\'2d\');29.J=8.C.J;29.O=8.C.O;x=29.J/2;y=29.O/2;2Y.7J();2Y.bg(x,y);2Y.bf(8.73*R.b5/b4);2Y.3N(C,-C.J/2,-C.O/2,C.J,C.O);2Y.b3();K=2Y.2B(0,0,29.J,29.O).1o;J=29.J}Q{K=8.2P;J=8.36}S(i=1C=0,2E=K.M;1C<2E;i=1C+=4){4C=1r.8z(i,J);u(((4E<=(5l=4C.x)&&5l<1q))&&((4F<=(5n=4C.y)&&5n<5Q))){4D.1A(K[i],K[i+1],K[i+2],K[i+3])}}9 4D};B.H.1W=o(11,4H){8.2S.2x({15:V.26.5z,11:11,4H:4H});9 8};B.H.5E=o(11,L,1T,25){I i,D,F;u(1T==G){1T=G}u(25==G){25=0}u(1T==G){1T=0;S(i=D=0,F=L.M;0<=F?DF;i=0<=F?++D:--D){1T+=L[i]}}8.2S.2x({15:V.26.5G,11:11,L:L,1T:1T,25:25});9 8};B.H.5H=o(2C,W){8.2S.2x({15:V.26.1P,2C:2C,W:W});9 8};B.H.5I=o(1g){I 1x;1x=1m 22(8);8.5C.1A(1x);8.2S.2x({15:V.26.5K});1g.19(1x);8.2S.2x({15:V.26.5O});9 8};B.H.75=o(1x){9 8.76(1x)};B.H.76=o(1x){8.5D.1A(8.3T);8.3P.1A(8.K);8.3T=1x;9 8.K=1x.K};B.H.77=o(){8.K=8.3P.3Z();9 8.3T=8.5D.3Z()};B.H.78=o(){9 8.3T.7a()};9 B})(2j);4S.B=B;B.2Q=(o(){o 2Q(c){8.c=c}2Q.H.b1=o(){I i,28,4e,D,Z,1C,F;28={r:{},g:{},b:{}};S(i=D=0;D<=E;i=++D){28.r[i]=0;28.g[i]=0;28.b[i]=0}S(i=Z=0,F=8.c.K.M;Z0)){9}X=[];S(D=0,14=4n.M;D<14;D++){1h=4n[D];X.1A(7l=1m 32(1h,o(){8.7q();9 8.2r()}))}9 X};u(B.7u){(o(){u(1E.5o==="4P"){9 B.5W()}Q{9 1E.6C("aU",B.5W,1F)}})()}32=(o(){I 4K;4K="(\\\\w+)\\\\((.*?)\\\\)";o 32(2w,7D){8.7E=2w.3K(\'1o-2f\');8.2f=B(2w,7D.5S(8))}32.H.7q=o(){I W,e,43,3e,64,65,m,r,42,D,14,F,X;8.2w=8.2f.C;r=1m 7N(4K,\'g\');42=8.7E.4L(r);u(!(42.M>0)){9}r=1m 7N(4K);X=[];S(D=0,14=42.M;D<14;D++){64=42[D];F=64.4L(r),m=F[0],43=F[1],W=F[2];65=1m aR("9 o() { 8."+43+"("+W+"); };");6c{3e=65();X.1A(3e.19(8.2f))}6m(3p){e=3p;X.1A(1p.1G(e))}}9 X};32.H.2r=o(){I 2w;2w=8.2w;9 8.2f.7H(o(){9 2w.4I.5w(8.7S(),2w)})};9 32})();B.1D=(o(){o 1D(){}1D.6o={};1D.18=o(11,3e){9 8.6o[11]=3e};1D.2r=o(11,P,N){9 8.6o[11](P,N)};9 1D})();1D=B.1D;B.1K=(o(){o 1K(){}1K.aP=o(84,85,86,8c){9 R.8d(R.21(86-84,2)+R.21(8c-85,2))};1K.8f=o(1j,U,3R){I 2F;u(3R==G){3R=1F}2F=1j+(R.au()*(U-1j));u(3R){9 2F.at(3R)}Q{9 R.4m(2F)}};1K.8A=o(A){9(0.aq*A.r)+(0.ap*A.g)+(0.am*A.b)};1K.1N=o(1k,2L,2M,1t,2Z,3c){I 1N,3z,1M,1q,i,j,3C,4q,2n,t,D,Z,F;u(2Z==G){2Z=0}u(3c==G){3c=E}u(1k[0]7m 48){1M=1k;2Z=2L;3c=2M}Q{1M=[1k,2L,2M,1t]}u(1M.M<2){1S"3L 5s 5t Y 2g 1N";}1N={};3C=o(a,b,t){9 a*(1-t)+b*t};3z=o(a,1j,U){9 R.1j(R.U(a,1j),U)};S(i=D=0;D<6Q;i=++D){t=i/6Q;2n=1M;ai(2n.M>1){4q=[];S(j=Z=0,F=2n.M-2;0<=F?Z<=F:Z>=F;j=0<=F?++Z:--Z){4q.1A([3C(2n[j][0],2n[j+1][0],t),3C(2n[j][1],2n[j+1][1],t)])}2n=4q}1N[R.4m(2n[0][0])]=R.4m(3z(2n[0][1],2Z,3c))}1q=1M[1M.M-1][0];1N=B.1K.5u(1N,1q);u(1N[1q]==G){1N[1q]=1N[1q-1]}9 1N};1K.6T=o(1M,2Z,3c){I 2x,3z,6A,1q,4T,4U,4V,4W,i,j,3C,5A,5B,2T,p,3D,3E,2X,4X,4Y,2b,50,t,D,Z,F;u(1M.M<2){1S"3L 5s 5t Y 2g 6T";}2b={};3C=o(a,b,t){9 a*(1-t)+b*t};2x=(o(17){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2T=(o(17){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(17){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3z=o(a,1j,U){9 R.1j(R.U(a,1j),U)};6A=0;S(i=D=0,F=1M.M-2;0<=F?D<=F:D>=F;i=0<=F?++D:--D){3D=1M[i];3E=1M[i+1];2X=3E[0]-3D[0];4X=1/2X;u(i===1M.M-2){4X=1/(2X-1)}p=i>0?1M[i-1]:3D;5A=2T(50(3E,p),[0.5,0.5]);p=i<1M.M-2?1M[i+2]:3E;5B=2T(50(p,3D),[0.5,0.5]);S(j=Z=0;0<=2X?Z<=2X:Z>=2X;j=0<=2X?++Z:--Z){t=j*4X;4T=2.0*t*t*t-3.0*t*t+1.0;4U=t*t*t-2.0*t*t+t;4V=-2.0*t*t*t+3.0*t*t;4W=t*t*t-t*t;4Y=2x(2T(3D,[4T,4T]),2T(5A,[4U,4U]),2T(3E,[4V,4V]),2T(5B,[4W,4W]));2b[R.4m(4Y[0])]=R.4m(3z(4Y[1],2Z,3c));6A+=1}}1q=1M[1M.M-1][0];2b=B.1K.5u(2b,1q);9 2b};1K.5u=o(35,1q){I i,j,3H,2b,53,D,Z;u(8t.ae(35).M<1q+1){2b={};S(i=D=0;0<=1q?D<=1q:D>=1q;i=0<=1q?++D:--D){u(35[i]!=G){2b[i]=35[i]}Q{3H=[i-1,2b[i-1]];S(j=Z=i;i<=1q?Z<=1q:Z>=1q;j=i<=1q?++Z:--Z){u(35[j]!=G){53=[j,35[j]];3b}}2b[i]=3H[1]+((53[1]-3H[1])/(53[0]-3H[0]))*(i-3H[0])}}9 2b}9 35};9 1K})();1K=B.1K;B.1s=(o(){o 1s(){}1s.5M=o(2l){I b,g,r;u(2l.8N(0)==="#"){2l=2l.56(1)}r=57(2l.56(0,2),16);g=57(2l.56(2,2),16);b=57(2l.56(4,2),16);9{r:r,g:g,b:b}};1s.ab=o(r,g,b){I d,h,l,U,1j,s;u(1f r==="2z"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;U=R.U(r,g,b);1j=R.1j(r,g,b);l=(U+1j)/2;u(U===1j){h=s=0}Q{d=U-1j;s=l>0.5?d/(2-U-1j):d/(U+1j);h=(o(){3x(U){1y r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1s.7r=o(r,g,b){I d,h,U,1j,s,v;r/=E;g/=E;b/=E;U=R.U(r,g,b);1j=R.1j(r,g,b);v=U;d=U-1j;s=U===0?0:d/U;u(U===1j){h=0}Q{h=(o(){3x(U){1y r:9(g-b)/d+(g0.5V){r=R.21((r+0.2c)/1.2c,2.4)}Q{r/=12.92}u(g>0.5V){g=R.21((g+0.2c)/1.2c,2.4)}Q{g/=12.92}u(b>0.5V){b=R.21((b+0.2c)/1.2c,2.4)}Q{b/=12.92}x=r*0.a5+g*0.a4+b*0.a3;y=r*0.a1+g*0.9X+b*0.9W;z=r*0.9R+g*0.9P+b*0.9O;9{x:x*1n,y:y*1n,z:z*1n}};1s.9N=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9M*x)+(-1.9L*y)+(-0.9J*z);g=(-0.9H*x)+(1.9G*y)+(0.9F*z);b=(0.9E*x)+(-0.9C*y)+(1.9B*z);u(r>0.6d){r=(1.2c*R.21(r,0.6e))-0.2c}Q{r*=12.92}u(g>0.6d){g=(1.2c*R.21(g,0.6e))-0.2c}Q{g*=12.92}u(b>0.6d){b=(1.2c*R.21(b,0.6e))-0.2c}Q{b*=12.92}9{r:r*E,g:g*E,b:b*E}};1s.7X=o(x,y,z){I a,b,l,5Y,6f,6g;u(1f x==="2z"){y=x.y;z=x.z;x=x.x}5Y=95.81;6f=1n.0;6g=82.83;x/=5Y;y/=6f;z/=6g;u(x>0.6h){x=R.21(x,0.6i)}Q{x=(7.6j*x)+0.3n}u(y>0.6h){y=R.21(y,0.6i)}Q{y=(7.6j*y)+0.3n}u(z>0.6h){z=R.21(z,0.6i)}Q{z=(7.6j*z)+0.3n}l=88*y-16;a=89*(x-y);b=8a*(y-z);9{l:l,a:a,b:b}};1s.9y=o(l,a,b){I x,y,z;u(1f l==="2z"){a=l.a;b=l.b;l=l.l}y=(l+16)/88;x=y+(a/89);z=y-(b/8a);u(x>0.6k){x=x*x*x}Q{x=0.6l*(x-0.3n)}u(y>0.6k){y=y*y*y}Q{y=0.6l*(y-0.3n)}u(z>0.6k){z=z*z*z}Q{z=0.6l*(z-0.3n)}9{x:x*95.81,y:y*1n.0,z:z*82.83}};1s.9w=o(r,g,b){I 6n;u(1f r==="2z"){g=r.g;b=r.b;r=r.r}6n=8.7w(r,g,b);9 8.7X(6n)};1s.9t=o(l,a,b){};9 1s})();1s=B.1s;B.1U=(o(){o 1U(){}1U.3g={};1U.8i=["8j","8k","8B","8l","8m","3j"];1U.33=o(24,15,1o){I 3U,D,14,F,X;u(1o==G){1o=G}u(8.3g[15]&&8.3g[15].M){F=8.3g[15];X=[];S(D=0,14=F.M;D<14;D++){3U=F[D];u(3U.24===G||24.1R===3U.24.1R){X.1A(3U.2s.19(24,1o))}Q{X.1A(9p 0)}}9 X}};1U.9o=o(24,15,2s){I 6q,6r;u(1f 24==="2N"){6r=24;6q=15;24=G;15=6r;2s=6q}u(3O.19(8.8i,15)<0){9 1F}u(!8.3g[15]){8.3g[15]=[]}8.3g[15].1A({24:24,2s:2s});9 2k};9 1U})();1U=B.1U;B.V=(o(){o V(){}V.26={5z:1,5G:2,5K:3,5O:4,6s:5,1P:6};V.18=o(11,8u){9 B.H[11]=8u};9 V})();V=B.V;B.1Q=(o(){o 1Q(){}1Q.8v=/(?:(?:40|7C):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1Q.7h=o(1h){u(1h==G){9 1F}u(8.8w(1h)){9 1F}9 8.5h(1h.1c)};1Q.8w=o(1h){I F;9(1h.5X!=G)&&((F=1h.5X.3Y())===\'7A\'||F===\'8y-9e\')};1Q.5h=o(49){I 5i;5i=49.4L(8.8v);u(5i){9 5i[1]!==1E.9d}Q{9 1F}};1Q.8C=o(1c){u(8.5h(1c)){u(!B.59.M){1p.6x("9c 2g 96 a 8G T 94 a 93 8J. 6W: "+1c)}Q{u(B.5h(B.59)){1p.6x("91 8y a 8G 8J S 8Q 8P.");9}9 8.39(1c)}}};1Q.39=o(1c){9""+B.59+"?"+B.7x+"="+(8O(1c))};1Q.ac=o(3h){I 4r;4r={8R:\'8S\',8T:\'8U\',8V:\'8W\',8X:\'8Y\'};3h=3h.3Y();u(4r[3h]!=G){3h=4r[3h]}9"8Z/90."+3h};9 1Q})();B.H.7J=o(){u(1f 1Y!=="31"&&1Y!==G){9 8.8K.2D(8,Y)}Q{9 8.8I.2D(8,Y)}};B.H.8I=o(15){I T;u(15==G){15="8H"}15=15.3Y();T=8.6z(15).97("T/"+15,"T/98-99");9 1E.9a.9b=T};B.H.8K=o(3k,5j,1g){I e,6u;u(5j==G){5j=2k}u(1g==G){1g=G}6c{6u=3y.9f(3k);u(6u.9g()&&!5j){9 1F}}6m(3p){e=3p;1p.1G("9h 9i 3k "+3k)}9 3y.9j(3k,8.C.9k(),o(4o){1p.1G("9l 9m 2g "+3k);u(1g){9 1g.19(8,4o)}})};B.H.7S=o(15){I 1h;1h=1m 2K();1h.1c=8.6z(15);1h.J=8.1L.J;1h.O=8.1L.O;u(2H.2G){1h.J/=2H.2G;1h.O/=2H.2G}9 1h};B.H.6z=o(15){u(15==G){15="8H"}15=15.3Y();9 8.C.9n("T/"+15)};1Q=B.1Q;B.22=(o(){o 22(c){8.c=c;8.43=8.c;8.1e={6p:\'8p\',2W:1.0};8.9q=1a.61.2v();8.C=1f 1Y!=="31"&&1Y!==G?1m 34():1E.2p(\'C\');8.C.J=8.c.1L.J;8.C.O=8.c.1L.O;8.1b=8.C.2a(\'2d\');8.1b.9r(8.C.J,8.C.O);8.1z=8.1b.2B(0,0,8.C.J,8.C.O);8.K=8.1z.1o}22.H.5I=o(3B){9 8.c.5I.19(8.c,3B)};22.H.9s=o(8g){8.1e.6p=8g;9 8};22.H.2W=o(2W){8.1e.2W=2W/1n;9 8};22.H.9u=o(){I i,20,D,F;20=8.c.K;S(i=D=0,F=8.c.K.M;D8.c.K.M||2i<0){9 1m 1r(0,0,0,E,8.c)}9 8.66(2i)};1r.H.9Q=o(5e,5d,A){I 7I;u(8.c==G){1S"3v a 3w 1b";}7I=8.1l+(8.c.1L.J*4*(5d*-1))+(4*5e);u(2i>8.c.K.M||2i<0){9}8.c.K[2i]=A.r;8.c.K[2i+1]=A.g;8.c.K[2i+2]=A.b;8.c.K[2i+3]=A.a;9 2k};1r.H.9S=o(x,y){I 1l;u(8.c==G){1S"3v a 3w 1b";}1l=8.6a(x,y,8.J);9 8.66(1l)};1r.H.9T=o(x,y,A){I 1l;u(8.c==G){1S"3v a 3w 1b";}1l=8.6a(x,y,8.J);8.c.K[1l]=A.r;8.c.K[1l+1]=A.g;8.c.K[1l+2]=A.b;9 8.c.K[1l+3]=A.a};1r.H.3F=o(){9 8.9U()};1r.H.9V=o(5b){I 2l;u(5b==G){5b=1F}2l=\'#\'+8.r.3F(16)+8.g.3F(16)+8.b.3F(16);u(5b){9 2l+8.a.3F(16)}Q{9 2l}};9 1r})();1r=B.1r;B.1P=(o(){o 1P(){}1P.62={};1P.18=o(11,2C){9 8.62[11]=2C};1P.2r=o(1b,11,W){9 8.62[11].2D(1b,W)};9 1P})();1P=B.1P;B.1i=(o(){1i.2U=B.1X?4h(\'9Z\').a0().M:4;o 1i(c){8.c=c;8.2A=5x(8.2A,8);8.4f=[];8.37=G}1i.H.2x=o(60){u(60==G){9}9 8.4f.1A(60)};1i.H.2A=o(){I 1x;u(8.4f.M===0){1U.33(8,"8l");u(8.5Z!=G){8.5Z.19(8.c)}9 8}8.1w=8.4f.7v();3x(8.1w.15){1y V.26.5K:1x=8.c.5C.7v();8.c.75(1x);9 8.2A();1y V.26.5O:8.c.78();8.c.77();9 8.2A();1y V.26.6s:9 8.7s(8.1w.1x,8.1w.1c);1y V.26.1P:9 8.7p();a9:9 8.7o()}};1i.H.2r=o(1g){8.5Z=1g;8.37=1a.4b(8.c.K.M);9 8.2A()};1i.H.5R=o(2s){I 4d,5N,1O,1t,f,i,5L,n,1k,D,F,X;8.52=0;n=8.c.K.M;5N=R.2R((n/4)/1i.2U);4d=5N*4;5L=4d+((n/4)%1i.2U)*4;X=[];S(i=D=0,F=1i.2U;0<=F?DF;i=0<=F?++D:--D){1k=i*4d;1t=1k+(i===1i.2U-1?5L:4d);u(B.1X){f=4l((o(17){9 o(){9 2s.19(17,i,1k,1t)}})(8));1O=f.ah();X.1A(8.3j(1O))}Q{X.1A(4Q((o(17){9 o(i,1k,1t){9 o(){9 2s.19(17,i,1k,1t)}}})(8)(i,1k,1t),0))}}9 X};1i.H.7o=o(){1U.33(8.c,"8j",8.1w);u(8.1w.15===V.26.5z){9 8.5R(8.6R)}Q{9 8.5R(8.6P)}};1i.H.7p=o(){1p.1G("ak 2C "+8.1w.2C);1P.2r(8.c,8.1w.2C,8.1w.W);1p.1G("1P "+8.1w.2C+" 5m!");9 8.2A()};1i.H.6R=o(1O,1k,1t){I i,13,D;1p.1G("8F #"+1O+" - V: "+8.1w.11+", an: "+1k+", ao: "+1t);1U.33(8.c,"8m",{8E:1O,8D:1i.2U,ar:1k,as:1t});13=1m 1r();13.68(8.c);S(i=D=1k;D<1t;i=D+=4){13.1l=i;13.r=8.c.K[i];13.g=8.c.K[i+1];13.b=8.c.K[i+2];13.a=8.c.K[i+3];8.1w.4H(13);8.c.K[i]=1a.2m(13.r);8.c.K[i+1]=1a.2m(13.g);8.c.K[i+2]=1a.2m(13.b);8.c.K[i+3]=1a.2m(13.a)}u(B.1X){9 4l["8x"](1O)}Q{9 8.3j(1O)}};1i.H.6P=o(1O,1k,1t){I L,3Q,25,1V,3M,1T,i,j,k,2o,n,11,p,13,2y,D,Z,1C;11=8.1w.11;25=8.1w.25;1T=8.1w.1T;n=8.c.K.M;L=8.1w.L;3Q=R.8d(L.M);2o=[];1p.1G("az 2o - V: "+8.1w.11);1k=R.U(1k,8.c.1L.J*4*((3Q-1)/2));1t=R.1j(1t,n-(8.c.1L.J*4*((3Q-1)/2)));1V=(3Q-1)/2;13=1m 1r();13.68(8.c);S(i=D=1k;D<1t;i=D+=4){13.1l=i;3M=0;S(j=Z=-1V;-1V<=1V?Z<=1V:Z>=1V;j=-1V<=1V?++Z:--Z){S(k=1C=1V;1V<=-1V?1C<=-1V:1C>=-1V;k=1V<=-1V?++1C:--1C){p=13.7M(j,k);2o[3M*3]=p.r;2o[3M*3+1]=p.g;2o[3M*3+2]=p.b;3M++}}2y=8.5E(L,2o,1T,25);8.37[i]=1a.2m(2y.r);8.37[i+1]=1a.2m(2y.g);8.37[i+2]=1a.2m(2y.b);8.37[i+3]=8.c.K[i+3]}u(B.1X){9 4l["8x"](1O)}Q{9 8.3j(1O)}};1i.H.3j=o(1O){I i,D,F;u(1O>=0){1p.1G("8F #"+1O+" 5m! V: "+8.1w.11)}8.52++;1U.33(8.c,"3j",{8E:1O,aA:8.52,8D:1i.2U});u(8.52===1i.2U){u(8.1w.15===V.26.5G){S(i=D=0,F=8.c.K.M;0<=F?DF;i=0<=F?++D:--D){8.c.K[i]=8.37[i]}}u(1O>=0){1p.1G("V "+8.1w.11+" 5m!")}1U.33(8.c,"8k",8.1w);9 8.2A()}};1i.H.5E=o(L,2o,1T,25){I i,1u,D,F;1u={r:0,g:0,b:0};S(i=D=0,F=L.M;0<=F?DF;i=0<=F?++D:--D){1u.r+=L[i]*2o[i*3];1u.g+=L[i]*2o[i*3+1];1u.b+=L[i]*2o[i*3+2]}1u.r=(1u.r/1T)+25;1u.g=(1u.g/1T)+25;1u.b=(1u.b/1T)+25;9 1u};1i.H.7s=o(1x,1c){I 1h,39;1h=1m 2K();1h.6B=(o(17){9 o(){1x.1b.3N(1h,0,0,17.c.1L.J,17.c.1L.O);1x.1z=1x.1b.2B(0,0,17.c.1L.J,17.c.1L.O);1x.K=1x.1z.1o;17.c.K=1x.K;9 17.2A()}})(8);39=1Q.8C(1c);9 1h.1c=39!=G?39:1c};9 1i})();1i=B.1i;B.1Z=(o(){o 1Z(){}1Z.3G={};1Z.7b=o(2V){9 8.3G[2V]!=G};1Z.2v=o(2V){9 8.3G[2V]};1Z.6F=o(11,1J){9 8.3G[11]=1J};1Z.2r=o(2V,1g){4Q((o(17){9 o(){9 1g.19(17.2v(2V),17.2v(2V))}})(8),0);9 8.2v(2V)};1Z.aD=o(11){u(11==G){11=1F}u(11){9 8e 8.3G[11]}Q{9 8.3G={}}};9 1Z})();1Z=B.1Z;1D.18("8p",o(P,N){9{r:P.r,g:P.g,b:P.b}});1D.18("aF",o(P,N){9{r:(P.r*N.r)/E,g:(P.g*N.g)/E,b:(P.b*N.b)/E}});1D.18("aG",o(P,N){9{r:E-(((E-P.r)*(E-N.r))/E),g:E-(((E-P.g)*(E-N.g))/E),b:E-(((E-P.b)*(E-N.b))/E)}});1D.18("aH",o(P,N){I 1d;1d={};1d.r=N.r>1v?E-2*(E-P.r)*(E-N.r)/E:(N.r*P.r*2)/E;1d.g=N.g>1v?E-2*(E-P.g)*(E-N.g)/E:(N.g*P.g*2)/E;1d.b=N.b>1v?E-2*(E-P.b)*(E-N.b)/E:(N.b*P.b*2)/E;9 1d});1D.18("aJ",o(P,N){9{r:P.r-N.r,g:P.g-N.g,b:P.b-N.b}});1D.18("aK",o(P,N){9{r:N.r+P.r,g:N.g+P.g,b:N.b+P.b}});1D.18("aL",o(P,N){9{r:1v-2*(N.r-1v)*(P.r-1v)/E,g:1v-2*(N.g-1v)*(P.g-1v)/E,b:1v-2*(N.b-1v)*(P.b-1v)/E}});1D.18("aM",o(P,N){I 1d;1d={};1d.r=N.r>1v?E-((E-N.r)*(E-(P.r-1v)))/E:(N.r*(P.r+1v))/E;1d.g=N.g>1v?E-((E-N.g)*(E-(P.g-1v)))/E:(N.g*(P.g+1v))/E;1d.b=N.b>1v?E-((E-N.b)*(E-(P.b-1v)))/E:(N.b*(P.b+1v))/E;9 1d});1D.18("aN",o(P,N){9{r:N.r>P.r?N.r:P.r,g:N.g>P.g?N.g:P.g,b:N.b>P.b?N.b:P.b}});1D.18("aO",o(P,N){9{r:N.r>P.r?P.r:N.r,g:N.g>P.g?P.g:N.g,b:N.b>P.b?P.b:N.b}});V.18("5g",o(){I 3A;u(Y.M===1){3A=1s.5M(Y[0])}Q{3A={r:Y[0],g:Y[1],b:Y[2]}}9 8.1W("5g",o(A){A.r=3A.r;A.g=3A.g;A.b=3A.b;A.a=E;9 A})});V.18("7W",o(L){L=R.2R(E*(L/1n));9 8.1W("7W",o(A){A.r+=L;A.g+=L;A.b+=L;9 A})});V.18("7O",o(L){L*=-0.aS;9 8.1W("7O",o(A){I U;U=R.U(A.r,A.g,A.b);u(A.r!==U){A.r+=(U-A.r)*L}u(A.g!==U){A.g+=(U-A.g)*L}u(A.b!==U){A.b+=(U-A.b)*L}9 A})});V.18("7G",o(L){L*=-1;9 8.1W("7G",o(A){I 3X,2J,U;U=R.U(A.r,A.g,A.b);2J=(A.r+A.g+A.b)/3;3X=((R.2I(U-2J)*2/E)*L)/1n;u(A.r!==U){A.r+=(U-A.r)*3X}u(A.g!==U){A.g+=(U-A.g)*3X}u(A.b!==U){A.b+=(U-A.b)*3X}9 A})});V.18("7n",o(L){9 8.1W("7n",o(A){I 2J;2J=1K.8A(A);A.r=2J;A.g=2J;A.b=2J;9 A})});V.18("7i",o(L){L=R.21((L+1n)/1n,2);9 8.1W("7i",o(A){A.r/=E;A.r-=0.5;A.r*=L;A.r+=0.5;A.r*=E;A.g/=E;A.g-=0.5;A.g*=L;A.g+=0.5;A.g*=E;A.b/=E;A.b-=0.5;A.b*=L;A.b+=0.5;A.b*=E;9 A})});V.18("7g",o(L){9 8.1W("7g",o(A){I b,g,h,3a,r,F;3a=1s.7r(A.r,A.g,A.b);h=3a.h*1n;h+=R.2I(L);h=h%1n;h/=1n;3a.h=h;F=1s.7t(3a.h,3a.s,3a.v),r=F.r,g=F.g,b=F.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7d",o(){I 3s,3i;u(Y.M===2){3i=1s.5M(Y[0]);3s=Y[1]}Q u(Y.M===4){3i={r:Y[0],g:Y[1],b:Y[2]};3s=Y[3]}9 8.1W("7d",o(A){A.r-=(A.r-3i.r)*(3s/1n);A.g-=(A.g-3i.g)*(3s/1n);A.b-=(A.b-3i.b)*(3s/1n);9 A})});V.18("8n",o(){9 8.1W("8n",o(A){A.r=E-A.r;A.g=E-A.g;A.b=E-A.b;9 A})});V.18("80",o(L){u(L==G){L=1n}L/=1n;9 8.1W("80",o(A){A.r=R.1j(E,(A.r*(1-(0.b6*L)))+(A.g*(0.b7*L))+(A.b*(0.b8*L)));A.g=R.1j(E,(A.r*(0.b9*L))+(A.g*(1-(0.ba*L)))+(A.b*(0.bb*L)));A.b=R.1j(E,(A.r*(0.bc*L))+(A.g*(0.bd*L))+(A.b*(1-(0.be*L))));9 A})});V.18("7Q",o(L){9 8.1W("7Q",o(A){A.r=R.21(A.r/E,L)*E;A.g=R.21(A.g/E,L)*E;A.b=R.21(A.b/E,L)*E;9 A})});V.18("7P",o(L){L=R.2I(L)*2.55;9 8.1W("7P",o(A){I 2F;2F=1K.8f(L*-1,L);A.r+=2F;A.g+=2F;A.b+=2F;9 A})});V.18("72",o(L){L=R.2I(L)*2.55;9 8.1W("72",o(A){u(A.r>E-L){A.r=E}Q u(A.rE-L){A.g=E}Q u(A.gE-L){A.b=E}Q u(A.b0){A.r+=(E-A.r)*1e.4A}Q{A.r-=A.r*R.2I(1e.4A)}}u(1e.4x!=G){u(1e.4x>0){A.g+=(E-A.g)*1e.4x}Q{A.g-=A.g*R.2I(1e.4x)}}u(1e.4w!=G){u(1e.4w>0){A.b+=(E-A.b)*1e.4w}Q{A.b-=A.b*R.2I(1e.4w)}}9 A})});V.18("4v",o(){I 47,1N,2q,2h,1t,i,3l,1k,D,Z,F,2e;2q=Y[0],2h=2<=Y.M?3o.19(Y,1):[];3l=2h[2h.M-1];u(1f 3l==="o"){47=3l;2h.3Z()}Q u(1f 3l==="2N"){47=1K[3l];2h.3Z()}Q{47=1K.1N}u(1f 2q==="2N"){2q=2q.bt("")}u(2q[0]==="v"){2q=[\'r\',\'g\',\'b\']}u(2h.M<2){1S"3L 5s 5t Y 2g 4v 43";}1N=47(2h,0,E);1k=2h[0];u(1k[0]>0){S(i=D=0,F=1k[0];0<=F?DF;i=0<=F?++D:--D){1N[i]=1k[1]}}1t=2h[2h.M-1];u(1t[0]=E;i=2e<=E?++Z:--Z){1N[i]=1t[1]}}9 8.1W("4v",o(A){I 1C,2E;S(i=1C=0,2E=2q.M;0<=2E?1C<2E:1C>2E;i=0<=2E?++1C:--1C){A[2q[i]]=1N[A[2q[i]]]}9 A})});V.18("bu",o(L){I 2L,2M,p;p=R.2I(L)/1n;2L=[0,E*p];2M=[E-(E*p),E];u(L<0){2L=2L.6G();2M=2M.6G()}9 8.4v(\'3i\',[0,0],2L,2M,[E,E])});B.1P.18("6v",o(J,O,x,y){I C,1B;u(x==G){x=0}u(y==G){y=0}u(1f 1Y!=="31"&&1Y!==G){C=1m 34(J,O)}Q{C=1E.2p(\'C\');1a.3S(8.C,C);C.J=J;C.O=O}1B=C.2a(\'2d\');1B.3N(8.C,x,y,J,O,0,0,J,O);8.4g={x:x,y:y};8.79=2k;9 8.4y(C)});B.1P.18("4t",o(1I){I C,1B;u(1I==G){1I=G}u(1I===G||((1I.J==G)&&(1I.O==G))){1p.5F("3L 7Z bz 1L 8L S 4t");9}u(1I.J==G){1I.J=8.C.J*1I.O/8.C.O}Q u(1I.O==G){1I.O=8.C.O*1I.J/8.C.J}u(1f 1Y!=="31"&&1Y!==G){C=1m 34(1I.J,1I.O)}Q{C=1E.2p(\'C\');1a.3S(8.C,C);C.J=1I.J;C.O=1I.O}1B=C.2a(\'2d\');1B.3N(8.C,0,0,8.C.J,8.C.O,0,0,1I.J,1I.O);8.4Z=2k;9 8.4y(C)});B.V.18("6v",o(){9 8.5H("6v",48.H.3m.19(Y,0))});B.V.18("4t",o(){9 8.5H("4t",48.H.3m.19(Y,0))})}).19(8);',62,718,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|canvas|_i|255|_ref|null|prototype|var|width|pixelData|adjust|length|rgbaParent|height|rgbaLayer|else|Math|for|image|max|Filter|args|_results|arguments|_j||name||pixel|_len|type||_this|register|call|Util|context|src|result|options|typeof|callback|img|Renderer|min|start|loc|new|100|data|Log|endX|Pixel|Convert|end|val|128|currentJob|layer|case|imageData|push|ctx|_k|Blender|document|false|debug|key|newDims|obj|Calculate|dimensions|controlPoints|bezier|bnum|Plugin|IO|id|throw|divisor|Event|builder|process|NodeJS|exports|Store|parentData|pow|Layer|initObj|target|bias|Type||levels|rotatedCanvas|getContext|ret|055||_ref1|caman|to|cps|newLoc|Module|true|hex|clampRGB|prev|kernel|createElement|chans|execute|fn|ratio|value|get|ele|add|res|object|processNext|getImageData|plugin|apply|_ref2|rand|devicePixelRatio|window|abs|avg|Image|ctrl1|ctrl2|string|from|originalPixelData|Analyze|floor|renderer|mul|Blocks|search|opacity|pointsPerSegment|rotatedCanvasCtx|lowBound|layerData|undefined|CamanParser|trigger|Canvas|values|originalWidth|modPixelData|in|proxyUrl|hsv|break|highBound|imageHeight|func|imageWidth|events|lang|rgb|blockFinished|file|last|slice|1379310345|__slice|_error|chan|nodeFileReady|level|child|parent|Requires|CamanJS|switch|fs|clamp|color|cb|lerp|p0|p1|toString|items|leftCoord|finishInit|originalHeight|getAttribute|Invalid|builderIndex|drawImage|__indexOf|pixelStack|adjustSize|getFloat|copyAttributes|currentLayer|event|opts|attr|amt|toLowerCase|pop|http|allowRevert|unparsedInstructions|filter|imageLoaded|scaledCanvas|__hasProp|algo|Array|url|putImageData|dataArray|copy|blockN|numPixels|renderQueue|cropCoordinates|require|preScaledWidth|prop|preScaledHeight|Fiber|round|imgs|err|continue|next|langToExt|hiDPIRatio|resize|moduleKeywords|curves|blue|green|replaceCanvas|oldCanvas|red|updateContext|coord|pixels|startX|startY|hiDPIReplacement|processFn|parentNode|buf|INST_REGEX|match|source|imageUrl|initType|complete|setTimeout|disabled|Root|fac0|fac1|fac2|fac3|pointsPerStep|pos|resized|sub|initializedPixelData|blocksDone|rightCoord|sel||substr|parseInt|hueToRGB|remoteProxy|root|includeAlpha|dest|vert|horiz|Logger|fillColor|isURLRemote|matches|overwrite|backingStoreRatio|_ref3|finished|_ref4|readyState|needsHiDPISwap|listener|waitForImageLoaded|number|of|missingValues|imageAdjustments|replaceChild|__bind|Revert|Single|m0|m1|canvasQueue|layerStack|processKernel|error|Kernel|processPlugin|newLayer|on|LayerDequeue|lastBlockN|hexToRGB|blockPixelLength|LayerFinished|ctor|endY|eachBlock|bind|getAttrId|req|04045|DOMUpdated|crossOrigin|whiteX|finishedFn|job|uniqid|plugins|naturalWidth|inst|instFunc|pixelAtLocation|except|setContext|nodeName|coordinatesToLocation|console|try|0031308|4166666667|whiteY|whiteZ|008856451679|3333333333|787037037|2068965517|1284185493|catch|xyz|blenders|blendingMode|_fn|_type|LoadOverlay|included|stats|crop|_len1|info|version|toBase64|count|onload|addEventListener|initialized|DOM|put|reverse|originalVisiblePixels|Height|setup|Width|parseArguments|domIsLoaded|hiDPIDisabled|isImageLoaded|renderKernel|1000|renderBlock|loaded|hermite|item|__extends|URL|hidpi|chunk|reloadCanvasData|channels|scaled|clip|rotationAngle|rotated|executeLayer|pushContext|popContext|applyCurrentLayer|cropped|applyToParent|has|binary|colorize|assignId|hiDPICapable|hue|isRemote|contrast|swapped|readFromHttp|parser|instanceof|greyscale|executeFilter|executePlugin|parse|rgbToHSV|loadOverlay|hsvToRGB|autoload|shift|rgbToXYZ|proxyParam|extended|style|anonymous|newCanvas|https|ready|dataStr|px|vibrance|render|nowLoc|save|DEBUG|initCanvas|getPixelRelative|RegExp|saturation|noise|gamma|initImage|toImage|log|hiDPIAdjustments|initNode|brightness|xyzToLab|hasId|or|sepia|047|108|883|x1|y1|x2|setAttribute|116|500|200|Uint8Array|y2|sqrt|delete|randomRange|mode|_super|types|processStart|processComplete|renderFinished|blockStarted|invert|date|normal|me|node|setInitObject|Object|filterFunc|domainRegex|corsEnabled|yield|use|locationToCoordinates|luminance|renderStart|remoteCheck|totalBlocks|blockNum|Block|remote|png|browserSave|proxy|nodeSave|given|release|charAt|encodeURIComponent|images|loading|ruby|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|Cannot||configured|without||load|replace|octet|stream|location|href|Attempting|domain|credentials|statSync|isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|listen|void|layerID|createImageData|setBlendingMode|labToRGB|copyParent|fibers|rgbToLab|overlayImage|labToXYZ|nodeValue|2013|0570|2040|warn|0557|0415|8758|9689|locationXY|4986|attributes|5372|2406|xyzToRGB|9505|1192|putPixelRelative|0193|getPixel|putPixel|toKey|toHex|0722|7152|extend|os|cpus|2126|querySelector|1805|3576|4124|camanProxyUrl|Version|Released|default|hslToRGB|rgbToHSL|useProxy|set|keys|defineProperty|isNaN|run|while|analyze|Executing|readystatechange|114|Start|End|587|299|startPixel|endPixel|toFixed|random|aliasProperty|aliasFunction|Could|not|Rendering|blocksFinished|delegate|includes|flush|find|multiply|screen|overlay|extends|difference|addition|exclusion|softLight|lighten|darken|distance|initialization|Function|01|Initializing|DOMContentLoaded|__super__|constructor|querySelectorAll|readFile|Fetching|setEncoding|calculateLevels|Buffer|restore|180|PI|607|769|189|349|314|168|272|534|869|rotate|translate|Remote|detected|using|reset|revert|backingStorePixelRatio|oBackingStorePixelRatio|msBackingStorePixelRatio|hasOwnProperty|mozBackingStorePixelRatio|indexOf|webkitBackingStorePixelRatio|split|exposure|naturalHeight|scale|HiDPI|resetOriginalPixelData|missing'.split('|'),0,{})) \ No newline at end of file +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2V,1y,1F,B,38,30,1q,1S,3T,V,1M,2T,22,1o,2f,1r,1P,1g,4F,1X,19,3l,4b,4q,3y,3Y=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};19.3Q=o(2K,2l,4i){I 4k,C,13,E,2q,X;u(4i==G){4i={}}E=2K.bm;X=[];U(C=0,13=E.K;C<13;C++){4k=E[C];u((4i.5c!=G)&&(2q=4k.5f,3Y.1a(4i.5c,2q)>=0)){4g}X.1A(2l.7n(4k.5f,4k.bn))}9 X};19.32=o(K){u(K==G){K=0}u(B.1W||(2Q.7o!=G)){9 1m 7o(K)}9 1m 45(K)};9 19})();u(1f 1Z!=="3d"&&1Z!==G){4F=1Z;30=4j(\'F\');2T=30.2T;3T=4j(\'bl\');3l=4j(\'3l\');4b=4j(\'4b\')}R{4F=2Q}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1C;B.3A=2k;B.5O="86";B.4z="";B.8c="9q";B.1W=1f 1Z!=="3d"&&1Z!==G;B.8m=!B.1W;B.3n=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.1W){9 2k}u(1f F==="2X"){F=$(F)}u(!((F!=G)&&(F.3o!=G))){9 G}9 F.3o(\'1z-2g-1R\')};o B(){8.3p=5T(8.3p,8);I W,1h,1R;u(Y.K===0){1U"3v Y";}u(8 6A B){8.3M=8.3M.5p(8);8.4l=8.4l.5p(8);W=Y[0];u(!B.1W){1R=59(B.63(W[0]),10);1h=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1R)&&1X.6P(1R)){9 1X.2t(1R,1h)}}8.1R=19.5q.2D();8.3P=8.2J=G;8.5m={x:0,y:0};8.82=1C;8.5s=1C;8.be=1C;8.bd=0;8.41=[];8.5t=[];8.5u=[];8.40=G;8.6R=1C;8.aT=1m 2V(8);8.2N=1m 1g(8);8.7T((o(11){9 o(){11.80(W);9 11.8g()}})(8));9 8}R{9 1m B(Y)}}B.H.7T=o(3J){I 5C;u(B.1W){9 4V((o(11){9 o(){9 3J.1a(11)}})(8),0)}R{u(1J.5D==="5b"){1o.1D("6B 6G");9 4V((o(11){9 o(){9 3J.1a(11)}})(8),0)}R{5C=(o(11){9 o(){u(1J.5D==="5b"){1o.1D("6B 6G");9 3J.1a(11)}}})(8);9 1J.6L("ap",5C,1C)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1U"3v Y 6M";}8.21=G;8.54=G;8.57=G;8.1h=o(){};8.6W(W[0]);u(W.K===1){9}3r(1f W[1]){1v"2X":8.57=W[1];39;1v"o":8.1h=W[1]}u(W.K===2){9}8.1h=W[2];u(W.K===4){E=W[4];X=[];U(1B 36 E){u(!47.1a(E,1B))4g;1w=E[1B];X.1A(8.1d[1B]=1w)}9 X}};B.H.6W=o(1H){u(B.1W){8.21=1H;8.54=\'6Z\';9}u(1f 1H==="2v"){8.21=1H}R{8.21=$(1H)}u(8.21==G){1U"al a8 a7 S 7h F U a3.";}9 8.54=8.21.5f.4a()};B.H.8g=o(){3r(8.54){1v"6Z":9 8.7w();1v"1i":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1o.1D("9N U 1W");u(1f 8.21==="2X"&&8.21.4A(/^7E?:\\/\\//)){9 8.7F(8.21,8.3p)}R u(1f 8.21==="2X"){9 3l.9E(8.21,8.3p)}R{9 8.3p(G,8.21)}};B.H.7F=o(4h,1h){I 66;1o.1D("9A S 2K "+4h);66=4b.2D(4h,o(2u){I 4J;4J=\'\';2u.9s(\'8d\');2u.6m(\'1z\',o(8f){9 4J+=8f});9 2u.6m(\'1s\',o(){9 1h(G,1m 91(4J,\'8d\'))})});9 66.6m(\'6t\',1h)};B.H.3p=o(3W,1z){u(3W){1U 3W;}8.S=1m 2T();8.S.1b=1z;1o.1D("2T 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));8.F=1m 30(8.2m(),8.2n());9 8.3M()};B.H.7A=o(){8.S=8.21;8.F=1J.2W(\'F\');8.1c=8.F.2o(\'2d\');8.26=1J.2W(\'F\');8.3U=8.26.2o(\'2d\');19.3Q(8.S,8.F,{5c:[\'1b\']});19.3Q(8.S,8.26,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.26,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=8.21;8.1c=8.F.2o(\'2d\');8.26=1J.2W(\'F\');8.3U=8.26.2o(\'2d\');u(8.57!=G){8.S=1J.2W(\'1i\');8.S.1b=8.57;8.5Z();9 8.5Y()}R{9 8.3M()}};B.H.5Z=o(){u(8.5X()){1o.1D(8.S.1b,"->",8.4H());8.7m=2k;8.S.1b=8.4H()}u(1M.7k(8.S)){8.S.1b=1M.33(8.S.1b);9 1o.1D("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4l()}R{9 8.S.73=8.4l}};B.H.78=o(){u(!8.S.5b){9 1C}u((8.S.5P!=G)&&8.S.5P===0){9 1C}9 2k};B.H.2m=o(){9 8.S.M||8.S.5P};B.H.2n=o(){9 8.S.Q||8.S.an};B.H.4l=o(){1o.1D("2T 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));u(8.7m){8.F.M=8.2m()/8.3B();8.F.Q=8.2n()/8.3B();8.26.M=8.2m()/8.3B();8.26.Q=8.2n()/8.3B()}R{8.F.M=8.2m();8.F.Q=8.2n();8.26.M=8.2m();8.26.Q=8.2n()}9 8.3M()};B.H.3M=o(){I i,14,C,13,E;u(8.1c==G){8.1c=8.F.2o(\'2d\')}8.5N=8.3D=8.M=8.F.M;8.5M=8.3E=8.Q=8.F.Q;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1c.3S(8.S,0,0,8.2m(),8.2n(),0,0,8.3D,8.3E);8.3U.3S(8.S,0,0,8.2m(),8.2n(),0,0,8.3D,8.3E)}8.1T=8.1c.3G(0,0,8.F.M,8.F.Q);8.L=8.1T.1z;u(B.3A){8.3P=19.32(8.L.K);8.2J=19.32(8.L.K);E=8.L;U(i=C=0,13=E.K;C<13;i=++C){14=E[i];8.3P[i]=14;8.2J[i]=14}}8.1I={M:8.F.M,Q:8.F.Q};u(!B.1W){1X.6K(8.1R,8)}8.1h.1a(8,8);9 8.1h=o(){}};B.H.6z=o(){8.1T=8.1c.3G(0,0,8.F.M,8.F.Q);9 8.L=8.1T.1z};B.H.aG=o(){I i,14,C,13,E,X;u(!B.3A){1U"5E 4y";}8.2J=19.32(8.L.K);E=8.L;X=[];U(i=C=0,13=E.K;C<13;i=++C){14=E[i];X.1A(8.2J[i]=14)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.1W||8.F.3o(\'1z-2g-1R\')){9}9 8.F.7n(\'1z-2g-1R\',8.1R)};B.H.6w=o(){9 8.F.3o(\'1z-2g-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.1W||!8.5X()){9}2E=8.3B();u(2E!==1){1o.1D("aH 2E = "+2E);8.6R=2k;8.3D=8.F.M;8.3E=8.F.Q;8.F.M=8.3D*2E;8.F.Q=8.3E*2E;8.F.8w.M=""+8.3D+"8u";8.F.8w.Q=""+8.3E+"8u";8.1c.aK(2E,2E);8.M=8.5N=8.F.M;9 8.Q=8.5M=8.F.Q}};B.H.3B=o(){I 5B,2C;2C=2Q.2C||1;5B=8.1c.aU||8.1c.aV||8.1c.b6||8.1c.b7||8.1c.b8||1;9 2C/5B};B.H.7p=o(){9(2Q.2C!=G)&&2Q.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1C}9 8.4H()!==G};B.H.4H=o(){u(8.S==G){9 G}9 8.S.3o(\'1z-2g-6v\')};B.H.4O=o(7e){I i,14,C,13,E;8.F=7e;8.1c=8.F.2o(\'2d\');8.1T=8.1c.3G(0,0,8.F.M,8.F.Q);8.L=8.1T.1z;u(B.3A){8.3P=19.32(8.L.K);8.2J=19.32(8.L.K);E=8.L;U(i=C=0,13=E.K;C<13;i=++C){14=E[i];8.3P[i]=14;8.2J[i]=14}}8.M=8.F.M;8.Q=8.F.Q;8.6z();9 8.1I={M:8.F.M,Q:8.F.Q}};B.H.72=o(1h){u(1h==G){1h=o(){}}1S.34(8,"6Y");9 8.2N.2t((o(11){9 o(){11.26.M=11.F.M;11.26.Q=11.F.Q;11.3U.5v(11.1T,0,0);9 1h.1a(11)}})(8))};B.H.bf=o(4U){I i,14,C,13,E;u(4U==G){4U=2k}u(!B.3A){1U"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){14=E[i];8.L[i]=14}u(4U){9 8.3U.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,14,L,C,13,E;F=1J.2W(\'F\');19.3Q(8.F,F);F.M=8.5N;F.Q=8.5M;2p=F.2o(\'2d\');1T=2p.3G(0,0,F.M,F.Q);L=1T.1z;E=8.3P;U(i=C=0,13=E.K;C<13;i=++C){14=E[i];L[i]=14}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1C;9 8.4O(F)};B.H.7r=o(){I 4Y,1p,5n,i,L,51,52,53,M,C,E,2q,2y;u(!B.3A){1U"5E 4y";}51=[];52=0;1p=52+8.M;53=0;5n=53+8.Q;L=8.2J;M=8.F.M;U(i=C=0,E=L.K;CE;i=0<=E?++C:--C){1N+=J[i]}}8.2N.2F({15:V.24.5h,Z:Z,J:J,1N:1N,25:25});9 8};B.H.5i=o(2w,W){8.2N.2F({15:V.24.1P,2w:2w,W:W});9 8};B.H.5j=o(1h){I 1t;1t=1m 22(8);8.5u.1A(1t);8.2N.2F({15:V.24.5k});1h.1a(1t);8.2N.2F({15:V.24.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1A(8.40);8.41.1A(8.L);8.40=1t;9 8.L=1t.L};B.H.6x=o(){8.L=8.41.3V();9 8.40=8.5t.3V()};B.H.6D=o(){9 8.40.6J()};9 B})(2f);4F.B=B;B.2V=(o(){o 2V(c){8.c=c}2V.H.bi=o(){I i,2a,4f,C,17,1O,E;2a={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){2a.r[i]=0;2a.g[i]=0;2a.b[i]=0}U(i=17=0,E=8.c.L.K;170)){9}X=[];U(C=0,13=4c.K;C<13;C++){1i=4c[C];X.1A(6C=1m 38(1i,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1J.5D==="5b"){9 B.5r()}R{9 1J.6L("bb",B.5r,1C)}})()}38=(o(){I 4S;4S="(\\\\w+)\\\\((.*?)\\\\)";o 38(2z,6T){8.6U=2z.3o(\'1z-2g\');8.2g=B(2z,6T.5p(8))}38.H.6H=o(){I W,e,49,31,5w,5x,m,r,48,C,13,E,X;8.2z=8.2g.F;r=1m 7f(4S,\'g\');48=8.6U.4A(r);u(!(48.K>0)){9}r=1m 7f(4S);X=[];U(C=0,13=48.K;C<13;C++){5w=48[C];E=5w.4A(r),m=E[0],49=E[1],W=E[2];5x=1m b9("9 o() { 8."+49+"("+W+"); };");5y{31=5x();X.1A(31.1a(8.2g))}5z(3N){e=3N;X.1A(1o.1D(e))}}9 X};38.H.2t=o(){I 2z;2z=8.2z;9 8.2g.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 38})();B.1y=(o(){o 1y(){}1y.5A={};1y.18=o(Z,31){9 8.5A[Z]=31};1y.2t=o(Z,O,N){9 8.5A[Z](O,N)};9 1y})();1y=B.1y;B.1F=(o(){o 1F(){}1F.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1F.7P=o(1j,T,43){I 2A;u(43==G){43=1C}2A=1j+(P.aQ()*(T-1j));u(43){9 2A.aP(43)}R{9 P.42(2A)}};1F.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1F.1K=o(1l,2L,2M,1s,3a,3f){I 1K,3I,1G,1p,i,j,3H,4v,2j,t,C,17,E;u(3a==G){3a=0}u(3f==G){3f=D}u(1l[0]6A 45){1G=1l;3a=2L;3f=2M}R{1G=[1l,2L,2M,1s]}u(1G.K<2){1U"3v 5F 5G Y 2l 1K";}1K={};3H=o(a,b,t){9 a*(1-t)+b*t};3I=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2j=1G;as(2j.K>1){4v=[];U(j=17=0,E=2j.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1A([3H(2j[j][0],2j[j+1][0],t),3H(2j[j][1],2j[j+1][1],t)])}2j=4v}1K[P.42(2j[0][0])]=P.42(3I(2j[0][1],3a,3f))}1p=1G[1G.K-1][0];1K=B.1F.5H(1K,1p);u(1K[1p]==G){1K[1p]=1K[1p-1]}9 1K};1F.6I=o(1G,3a,3f){I 2F,3I,5I,1p,4u,4t,4r,4p,i,j,3H,5J,5K,2H,p,3F,3i,2R,56,50,29,4X,t,C,17,E;u(1G.K<2){1U"3v 5F 5G Y 2l 6I";}29={};3H=o(a,b,t){9 a*(1-t)+b*t};2F=(o(11){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2H=(o(11){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);4X=(o(11){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3I=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1G.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3F=1G[i];3i=1G[i+1];2R=3i[0]-3F[0];56=1/2R;u(i===1G.K-2){56=1/(2R-1)}p=i>0?1G[i-1]:3F;5J=2H(4X(3i,p),[0.5,0.5]);p=i<1G.K-2?1G[i+2]:3i;5K=2H(4X(p,3F),[0.5,0.5]);U(j=17=0;0<=2R?17<=2R:17>=2R;j=0<=2R?++17:--17){t=j*56;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;50=2F(2H(3F,[4u,4u]),2H(5J,[4t,4t]),2H(3i,[4r,4r]),2H(5K,[4p,4p]));29[P.42(50[0])]=P.42(3I(50[1],3a,3f));5I+=1}}1p=1G[1G.K-1][0];29=B.1F.5H(29,1p);9 29};1F.5H=o(2Z,1p){I i,j,3z,29,4T,C,17;u(7W.ah(2Z).K<1p+1){29={};U(i=C=0;0<=1p?C<=1p:C>=1p;i=0<=1p?++C:--C){u(2Z[i]!=G){29[i]=2Z[i]}R{3z=[i-1,29[i-1]];U(j=17=i;i<=1p?17<=1p:17>=1p;j=i<=1p?++17:--17){u(2Z[j]!=G){4T=[j,2Z[j]];39}}29[i]=3z[1]+((4T[1]-3z[1])/(4T[0]-3z[0]))*(i-3z[0])}}9 29}9 2Z};9 1F})();1F=B.1F;B.1q=(o(){o 1q(){}1q.5d=o(2e){I b,g,r;u(2e.ae(0)==="#"){2e=2e.4R(1)}r=59(2e.4R(0,2),16);g=59(2e.4R(2,2),16);b=59(2e.4R(4,2),16);9{r:r,g:g,b:b}};1q.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}R{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3r(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1q.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}R{h=(o(){3r(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}R{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}R{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}R{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1n,y:y*1n,z:z*1n}};1q.9S=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}R{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}R{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}R{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1q.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1n.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}R{x=(7.6f*x)+0.3s}u(y>0.6d){y=P.1Y(y,0.6e)}R{y=(7.6f*y)+0.3s}u(z>0.6d){z=P.1Y(z,0.6e)}R{z=(7.6f*z)+0.3s}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1q.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}R{x=0.6j*(x-0.3s)}u(y>0.6i){y=y*y*y}R{y=0.6j*(y-0.3s)}u(z>0.6i){z=z*z*z}R{z=0.6j*(z-0.3s)}9{x:x*95.7Q,y:y*1n.0,z:z*7R.7S}};1q.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1q.9t=o(l,a,b){};9 1q})();1q=B.1q;B.1S=(o(){o 1S(){}1S.37={};1S.87=["88","89","6Y","8a","8b","3q"];1S.34=o(23,15,1z){I 4m,C,13,E,X;u(1z==G){1z=G}u(8.37[15]&&8.37[15].K){E=8.37[15];X=[];U(C=0,13=E.K;C<13;C++){4m=E[C];u(4m.23===G||23.1R===4m.23.1R){X.1A(4m.2r.1a(23,1z))}R{X.1A(9p 0)}}9 X}};1S.9n=o(23,15,2r){I 6n,5e;u(1f 23==="2X"){5e=23;6n=15;23=G;15=5e;2r=6n}u(3Y.1a(8.87,15)<0){9 1C}u(!8.37[15]){8.37[15]=[]}8.37[15].1A({23:23,2r:2r});9 2k};9 1S})();1S=B.1S;B.V=(o(){o V(){}V.24={6o:1,5h:2,5k:3,5l:4,6p:5,1P:6};V.18=o(Z,8j){9 B.H[Z]=8j};9 V})();V=B.V;B.1M=(o(){o 1M(){}1M.8k=/(?:(?:4b|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1M.7k=o(1i){u(1i==G){9 1C}u(8.8l(1i)){9 1C}9 8.4o(1i.1b)};1M.8l=o(1i){I E;9(1i.5O!=G)&&((E=1i.5O.4a())===\'86\'||E===\'8n-9m\')};1M.4o=o(4h){I 4n;4n=4h.4A(8.8k);u(4n){9 4n[1]!==1J.9k}R{9 1C}};1M.8r=o(1b){u(8.4o(1b)){u(!B.4z.K){1o.6q("9f 2l 9e a 8v S 93 a 90 8y. 79: "+1b)}R{u(B.4o(B.4z)){1o.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.33(1b)}}};1M.33=o(1b){9""+B.4z+"?"+B.8c+"="+(8R(1b))};1M.8G=o(3b){I 58;58={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};3b=3b.4a();u(58[3b]!=G){3b=58[3b]}9"8O/8P."+3b};9 1M})();B.H.8Q=o(){u(1f 1Z!=="3d"&&1Z!==G){9 8.8C.2G(8,Y)}R{9 8.8B.2G(8,Y)}};B.H.8B=o(15){I S;u(15==G){15="8A"}15=15.4a();S=8.6u(15).8V("S/"+15,"S/8W-8X");9 1J.8Y.8Z=S};B.H.8C=o(3m,4Z,1h){I e,6s;u(4Z==G){4Z=2k}u(1h==G){1h=G}5y{6s=3l.94(3m);u(6s.96()&&!4Z){9 1C}}5z(3N){e=3N;1o.1D("97 98 3m "+3m)}9 3l.99(3m,8.F.9a(),o(3W){1o.1D("9b 9c 2l "+3m);u(1h){9 1h.1a(8,3W)}})};B.H.7q=o(15){I 1i;1i=1m 2T();1i.1b=8.6u(15);1i.M=8.1I.M;1i.Q=8.1I.Q;u(2Q.2C){1i.M/=2Q.2C;1i.Q/=2Q.2C}9 1i};B.H.6u=o(15){u(15==G){15="8A"}15=15.4a();9 8.F.9d("S/"+15)};1M=B.1M;B.22=(o(){o 22(c){8.c=c;8.49=8.c;8.1d={6r:\'8t\',2Y:1.0};8.9h=19.5q.2D();8.F=1f 1Z!=="3d"&&1Z!==G?1m 30():1J.2W(\'F\');8.F.M=8.c.1I.M;8.F.Q=8.c.1I.Q;8.1c=8.F.2o(\'2d\');8.1c.9i(8.F.M,8.F.Q);8.1T=8.1c.3G(0,0,8.F.M,8.F.Q);8.L=8.1T.1z}22.H.5j=o(3J){9 8.c.5j.1a(8.c,3J)};22.H.9j=o(8q){8.1d.6r=8q;9 8};22.H.2Y=o(2Y){8.1d.2Y=2Y/1n;9 8};22.H.9l=o(){I i,20,C,E;20=8.c.L;U(i=C=0,E=8.c.L.K;C8.c.L.K||2h<0){9 1m 1r(0,0,0,D,8.c)}9 8.65(2h)};1r.H.9H=o(4D,4C,A){I 7D;u(8.c==G){1U"3k a 3j 1c";}7D=8.1k+(8.c.1I.M*4*(4C*-1))+(4*4D);u(2h>8.c.L.K||2h<0){9}8.c.L[2h]=A.r;8.c.L[2h+1]=A.g;8.c.L[2h+2]=A.b;8.c.L[2h+3]=A.a;9 2k};1r.H.9J=o(x,y){I 1k;u(8.c==G){1U"3k a 3j 1c";}1k=8.6h(x,y,8.M);9 8.65(1k)};1r.H.9K=o(x,y,A){I 1k;u(8.c==G){1U"3k a 3j 1c";}1k=8.6h(x,y,8.M);8.c.L[1k]=A.r;8.c.L[1k+1]=A.g;8.c.L[1k+2]=A.b;9 8.c.L[1k+3]=A.a};1r.H.3n=o(){9 8.9L()};1r.H.9M=o(4w){I 2e;u(4w==G){4w=1C}2e=\'#\'+8.r.3n(16)+8.g.3n(16)+8.b.3n(16);u(4w){9 2e+8.a.3n(16)}R{9 2e}};9 1r})();1r=B.1r;B.1P=(o(){o 1P(){}1P.64={};1P.18=o(Z,2w){9 8.64[Z]=2w};1P.2t=o(1c,Z,W){9 8.64[Z].2G(1c,W)};9 1P})();1P=B.1P;B.1g=(o(){1g.2I=B.1W?4j(\'9Q\').9R().K:4;o 1g(c){8.c=c;8.2B=5T(8.2B,8);8.46=[];8.3g=G}1g.H.2F=o(62){u(62==G){9}9 8.46.1A(62)};1g.H.2B=o(){I 1t;u(8.46.K===0){1S.34(8,"8a");u(8.61!=G){8.61.1a(8.c)}9 8}8.1u=8.46.7v();3r(8.1u.15){1v V.24.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.24.5l:8.c.6D();8.c.6x();9 8.2B();1v V.24.6p:9 8.7u(8.1u.1t,8.1u.1b);1v V.24.1P:9 8.7t();a0:9 8.7s()}};1g.H.2t=o(1h){8.61=1h;8.3g=19.32(8.c.L.K);9 8.2B()};1g.H.60=o(2r){I 3Z,5V,1V,1s,f,i,5U,n,1l,C,E,X;8.4I=0;n=8.c.L.K;5V=P.2U((n/4)/1g.2I);3Z=5V*4;5U=3Z+((n/4)%1g.2I)*4;X=[];U(i=C=0,E=1g.2I;0<=E?CE;i=0<=E?++C:--C){1l=i*3Z;1s=1l+(i===1g.2I-1?5U:3Z);u(B.1W){f=3T((o(11){9 o(){9 2r.1a(11,i,1l,1s)}})(8));1V=f.a9();X.1A(8.3q(1V))}R{X.1A(4V((o(11){9 o(i,1l,1s){9 o(){9 2r.1a(11,i,1l,1s)}}})(8)(i,1l,1s),0))}}9 X};1g.H.7s=o(){1S.34(8.c,"88",8.1u);u(8.1u.15===V.24.6o){9 8.60(8.7d)}R{9 8.60(8.7a)}};1g.H.7t=o(){1o.1D("ac 2w "+8.1u.2w);1P.2t(8.c,8.1u.2w,8.1u.W);1o.1D("1P "+8.1u.2w+" 5S!");9 8.2B()};1g.H.7d=o(1V,1l,1s){I i,14,C;1o.1D("77 #"+1V+" - V: "+8.1u.Z+", af: "+1l+", ag: "+1s);1S.34(8.c,"8b",{74:1V,71:1g.2I,ai:1l,aj:1s});14=1m 1r();14.67(8.c);U(i=C=1l;C<1s;i=C+=4){14.1k=i;14.r=8.c.L[i];14.g=8.c.L[i+1];14.b=8.c.L[i+2];14.a=8.c.L[i+3];8.1u.5a(14);8.c.L[i]=19.2c(14.r);8.c.L[i+1]=19.2c(14.g);8.c.L[i+2]=19.2c(14.b);8.c.L[i+3]=19.2c(14.a)}u(B.1W){9 3T["70"](1V)}R{9 8.3q(1V)}};1g.H.7a=o(1V,1l,1s){I J,3X,25,1Q,3t,1N,i,j,k,2i,n,Z,p,14,2u,C,17,1O;Z=8.1u.Z;25=8.1u.25;1N=8.1u.1N;n=8.c.L.K;J=8.1u.J;3X=P.7N(J.K);2i=[];1o.1D("aq 2i - V: "+8.1u.Z);1l=P.T(1l,8.c.1I.M*4*((3X-1)/2));1s=P.1j(1s,n-(8.c.1I.M*4*((3X-1)/2)));1Q=(3X-1)/2;14=1m 1r();14.67(8.c);U(i=C=1l;C<1s;i=C+=4){14.1k=i;3t=0;U(j=17=-1Q;-1Q<=1Q?17<=1Q:17>=1Q;j=-1Q<=1Q?++17:--17){U(k=1O=1Q;1Q<=-1Q?1O<=-1Q:1O>=-1Q;k=1Q<=-1Q?++1O:--1O){p=14.7G(j,k);2i[3t*3]=p.r;2i[3t*3+1]=p.g;2i[3t*3+2]=p.b;3t++}}2u=8.5Q(J,2i,1N,25);8.3g[i]=19.2c(2u.r);8.3g[i+1]=19.2c(2u.g);8.3g[i+2]=19.2c(2u.b);8.3g[i+3]=8.c.L[i+3]}u(B.1W){9 3T["70"](1V)}R{9 8.3q(1V)}};1g.H.3q=o(1V){I i,C,E;u(1V>=0){1o.1D("77 #"+1V+" 5S! V: "+8.1u.Z)}8.4I++;1S.34(8.c,"3q",{74:1V,ar:8.4I,71:1g.2I});u(8.4I===1g.2I){u(8.1u.15===V.24.5h){U(i=C=0,E=8.c.L.K;0<=E?CE;i=0<=E?++C:--C){8.c.L[i]=8.3g[i]}}u(1V>=0){1o.1D("V "+8.1u.Z+" 5S!")}1S.34(8.c,"89",8.1u);9 8.2B()}};1g.H.5Q=o(J,2i,1N,25){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2i[i*3];1w.g+=J[i]*2i[i*3+1];1w.b+=J[i]*2i[i*3+2]}1w.r=(1w.r/1N)+25;1w.g=(1w.g/1N)+25;1w.b=(1w.b/1N)+25;9 1w};1g.H.7u=o(1t,1b){I 1i,33;1i=1m 2T();1i.73=(o(11){9 o(){1t.1c.3S(1i,0,0,11.c.1I.M,11.c.1I.Q);1t.1T=1t.1c.3G(0,0,11.c.1I.M,11.c.1I.Q);1t.L=1t.1T.1z;11.c.L=1t.L;9 11.2B()}})(8);33=1M.8r(1b);9 1i.1b=33!=G?33:1b};9 1g})();1g=B.1g;B.1X=(o(){o 1X(){}1X.3w={};1X.6P=o(2S){9 8.3w[2S]!=G};1X.2D=o(2S){9 8.3w[2S]};1X.6K=o(Z,1H){9 8.3w[Z]=1H};1X.2t=o(2S,1h){4V((o(11){9 o(){9 1h.1a(11.2D(2S),11.2D(2S))}})(8),0);9 8.2D(2S)};1X.at=o(Z){u(Z==G){Z=1C}u(Z){9 6E 8.3w[Z]}R{9 8.3w={}}};9 1X})();1X=B.1X;1y.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1y.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1y.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1y.18("ax",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1e.g=N.g>1x?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1e.b=N.b>1x?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1e});1y.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1y.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1y.18("aB",o(O,N){9{r:1x-2*(N.r-1x)*(O.r-1x)/D,g:1x-2*(N.g-1x)*(O.g-1x)/D,b:1x-2*(N.b-1x)*(O.b-1x)/D}});1y.18("aC",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-((D-N.r)*(D-(O.r-1x)))/D:(N.r*(O.r+1x))/D;1e.g=N.g>1x?D-((D-N.g)*(D-(O.g-1x)))/D:(N.g*(O.g+1x))/D;1e.b=N.b>1x?D-((D-N.b)*(D-(O.b-1x)))/D:(N.b*(O.b+1x))/D;9 1e});1y.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1y.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Q",o(){I 3C;u(Y.K===1){3C=1q.5d(Y[0])}R{3C={r:Y[0],g:Y[1],b:Y[2]}}9 8.1L("4Q",o(A){A.r=3C.r;A.g=3C.g;A.b=3C.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2U(D*(J/1n));9 8.1L("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1L("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1L("8s",o(A){I 3R,2P,T;T=P.T(A.r,A.g,A.b);2P=(A.r+A.g+A.b)/3;3R=((P.2O(T-2P)*2/D)*J)/1n;u(A.r!==T){A.r+=(T-A.r)*3R}u(A.g!==T){A.g+=(T-A.g)*3R}u(A.b!==T){A.b+=(T-A.b)*3R}9 A})});V.18("8e",o(J){9 8.1L("8e",o(A){I 2P;2P=1F.83(A);A.r=2P;A.g=2P;A.b=2P;9 A})});V.18("84",o(J){J=P.1Y((J+1n)/1n,2);9 8.1L("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1L("81",o(A){I b,g,h,3c,r,E;3c=1q.7g(A.r,A.g,A.b);h=3c.h*1n;h+=P.2O(J);h=h%1n;h/=1n;3c.h=h;E=1q.7i(3c.h,3c.s,3c.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3K,35;u(Y.K===2){35=1q.5d(Y[0]);3K=Y[1]}R u(Y.K===4){35={r:Y[0],g:Y[1],b:Y[2]};3K=Y[3]}9 8.1L("7U",o(A){A.r-=(A.r-35.r)*(3K/1n);A.g-=(A.g-35.g)*(3K/1n);A.b-=(A.b-35.b)*(3K/1n);9 A})});V.18("7O",o(){9 8.1L("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1n}J/=1n;9 8.1L("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1L("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2O(J)*2.55;9 8.1L("7y",o(A){I 2A;2A=1F.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2O(J)*2.55;9 8.1L("7x",o(A){u(A.r>D-J){A.r=D}R u(A.rD-J){A.g=D}R u(A.gD-J){A.b=D}R u(A.b0){A.r+=(D-A.r)*1d.4B}R{A.r-=A.r*P.2O(1d.4B)}}u(1d.4s!=G){u(1d.4s>0){A.g+=(D-A.g)*1d.4s}R{A.g-=A.g*P.2O(1d.4s)}}u(1d.4N!=G){u(1d.4N>0){A.b+=(D-A.b)*1d.4N}R{A.b-=A.b*P.2O(1d.4N)}}9 A})});V.18("4G",o(){I 44,1K,2s,2b,1s,i,3O,1l,C,17,E,2q;2s=Y[0],2b=2<=Y.K?3u.1a(Y,1):[];3O=2b[2b.K-1];u(1f 3O==="o"){44=3O;2b.3V()}R u(1f 3O==="2X"){44=1F[3O];2b.3V()}R{44=1F.1K}u(1f 2s==="2X"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2b.K<2){1U"3v 5F 5G Y 2l 4G 49";}1K=44(2b,0,D);1l=2b[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1K[i]=1l[1]}}1s=2b[2b.K-1];u(1s[0]=D;i=2q<=D?++17:--17){1K[i]=1s[1]}}9 8.1L("4G",o(A){I 1O,2y;U(i=1O=0,2y=2s.K;0<=2y?1O<2y:1O>2y;i=0<=2y?++1O:--1O){A[2s[i]]=1K[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2L,2M,p;p=P.2O(J)/1n;2L=[0,D*p];2M=[D-(D*p),D];u(J<0){2L=2L.6O();2M=2M.6O()}9 8.4G(\'35\',[0,0],2L,2M,[D,D])});B.1P.18("5g",o(M,Q,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1Z!=="3d"&&1Z!==G){F=1m 30(M,Q)}R{F=1J.2W(\'F\');19.3Q(8.F,F);F.M=M;F.Q=Q}2p=F.2o(\'2d\');2p.3S(8.F,x,y,M,Q,0,0,M,Q);8.5m={x:x,y:y};8.82=2k;9 8.4O(F)});B.1P.18("4E",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.M==G)&&(1E.Q==G))){1o.6t("3v 7h bp 1I 6M U 4E");9}u(1E.M==G){1E.M=8.F.M*1E.Q/8.F.Q}R u(1E.Q==G){1E.Q=8.F.Q*1E.M/8.F.M}u(1f 1Z!=="3d"&&1Z!==G){F=1m 30(1E.M,1E.Q)}R{F=1J.2W(\'F\');19.3Q(8.F,F);F.M=1E.M;F.Q=1E.Q}2p=F.2o(\'2d\');2p.3S(8.F,0,0,8.F.M,8.F.Q,0,0,1E.M,1E.Q);8.5s=2k;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",45.H.3y.1a(Y,0))});B.V.18("4E",o(){9 8.5i("4E",45.H.3y.1a(Y,0))})}).1a(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|pixelData|width|rgbaParent|rgbaLayer|Math|height|else|image|max|for|Filter|args|_results|arguments|name||_this||_len|pixel|type||_j|register|Util|call|src|context|options|result|typeof|Renderer|callback|img|min|loc|start|new|100|Log|endX|Convert|Pixel|end|layer|currentJob|case|val|128|Blender|data|push|key|false|debug|newDims|Calculate|controlPoints|obj|dimensions|document|bezier|process|IO|divisor|_k|Plugin|builder|id|Event|imageData|throw|bnum|NodeJS|Store|pow|exports|parentData|initObj|Layer|target|Type|bias|renderingCanvas||055|ret|levels|cps|clampRGB||hex|Module|caman|newLoc|kernel|prev|true|to|imageWidth|imageHeight|getContext|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|mul|Blocks|originalPixelData|from|ctrl1|ctrl2|renderer|abs|avg|window|pointsPerSegment|search|Image|floor|Analyze|createElement|string|opacity|values|Canvas|func|dataArray|proxyUrl|trigger|rgb|in|events|CamanParser|break|lowBound|lang|hsv|undefined|layerData|highBound|modPixelData|parent|p1|CamanJS|Requires|fs|file|toString|getAttribute|nodeFileReady|blockFinished|switch|1379310345|builderIndex|__slice|Invalid|items|child|slice|leftCoord|allowRevert|hiDPIRatio|color|preScaledWidth|preScaledHeight|p0|getImageData|lerp|clamp|cb|level|chan|finishInit|_error|last|initializedPixelData|copyAttributes|amt|drawImage|Fiber|renderingContext|pop|err|adjustSize|__indexOf|blockN|currentLayer|pixelStack|round|getFloat|algo|Array|renderQueue|__hasProp|unparsedInstructions|filter|toLowerCase|http|imgs|copy|prop|numPixels|continue|url|opts|require|attr|imageLoaded|event|matches|isURLRemote|fac3|moduleKeywords|fac2|green|fac1|fac0|next|includeAlpha|source|disabled|remoteProxy|match|red|vert|horiz|resize|Root|curves|hiDPIReplacement|blocksDone|buf|sel|root|Logger|blue|replaceCanvas|hueToRGB|fillColor|substr|INST_REGEX|rightCoord|updateContext|setTimeout|dest|sub|coord|overwrite|pos|pixels|startX|startY|initType||pointsPerStep|imageUrl|langToExt|parseInt|processFn|complete|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file diff --git a/src/core/caman.coffee b/src/core/caman.coffee index 3e213dd0..c89b95df 100644 --- a/src/core/caman.coffee +++ b/src/core/caman.coffee @@ -269,11 +269,16 @@ class Caman extends Module @image = @initObj @canvas = document.createElement 'canvas' @context = @canvas.getContext '2d' + + @renderingCanvas = document.createElement 'canvas' + @renderingContext = @renderingCanvas.getContext '2d' + Util.copyAttributes @image, @canvas, except: ['src'] + Util.copyAttributes @image, @renderingCanvas, except: ['src'] - # Swap out the image with the canvas element if the image exists + # Swap out the image with the rendering canvas element if the image exists # in the DOM. - @image.parentNode.replaceChild @canvas, @image if @image.parentNode? + @image.parentNode.replaceChild @renderingCanvas, @image if @image.parentNode? @imageAdjustments() @waitForImageLoaded() @@ -283,6 +288,9 @@ class Caman extends Module @canvas = @initObj @context = @canvas.getContext '2d' + @renderingCanvas = document.createElement 'canvas' + @renderingContext = @renderingCanvas.getContext '2d' + if @imageUrl? @image = document.createElement 'img' @image.src = @imageUrl @@ -340,9 +348,13 @@ class Caman extends Module if @swapped @canvas.width = @imageWidth() / @hiDPIRatio() @canvas.height = @imageHeight() / @hiDPIRatio() + @renderingCanvas.width = @imageWidth() / @hiDPIRatio() + @renderingCanvas.height = @imageHeight() / @hiDPIRatio() else @canvas.width = @imageWidth() @canvas.height = @imageHeight() + @renderingCanvas.width = @imageWidth() + @renderingCanvas.height = @imageHeight() @finishInit() @@ -363,6 +375,11 @@ class Caman extends Module @imageWidth(), @imageHeight(), 0, 0, @preScaledWidth, @preScaledHeight + @renderingContext.drawImage @image, + 0, 0, + @imageWidth(), @imageHeight(), + 0, 0, + @preScaledWidth, @preScaledHeight @imageData = @context.getImageData 0, 0, @canvas.width, @canvas.height @pixelData = @imageData.data @@ -473,12 +490,19 @@ class Caman extends Module # # @param [DOMObject] newCanvas The canvas to swap into this instance. replaceCanvas: (newCanvas) -> - oldCanvas = @canvas @canvas = newCanvas @context = @canvas.getContext '2d' + @imageData = @context.getImageData 0, 0, @canvas.width, @canvas.height + @pixelData = @imageData.data - oldCanvas.parentNode.replaceChild @canvas, oldCanvas if !Caman.NodeJS + if Caman.allowRevert + @initializedPixelData = Util.dataArray(@pixelData.length) + @originalPixelData = Util.dataArray(@pixelData.length) + + for pixel, i in @pixelData + @initializedPixelData[i] = pixel + @originalPixelData[i] = pixel @width = @canvas.width @height = @canvas.height @@ -494,10 +518,13 @@ class Caman extends Module # # @param [Function] callback Function to call when rendering is finished. render: (callback = ->) -> + Event.trigger @, "renderStart" - + @renderer.execute => - @context.putImageData @imageData, 0, 0 + @renderingCanvas.width = @canvas.width + @renderingCanvas.height = @canvas.height + @renderingContext.putImageData @imageData, 0, 0 callback.call @ # Reverts the canvas back to it's original state while @@ -509,7 +536,7 @@ class Caman extends Module throw "Revert disabled" unless Caman.allowRevert @pixelData[i] = pixel for pixel, i in @originalVisiblePixels() - @context.putImageData @imageData, 0, 0 if updateContext + @renderingContext.putImageData @imageData, 0, 0 if updateContext # Completely resets the canvas back to it's original state. # Any size adjustments will also be reset. @@ -543,66 +570,13 @@ class Caman extends Module pixels = [] - startX = @cropCoordinates.x + startX = 0 endX = startX + @width - startY = @cropCoordinates.y + startY = 0 endY = startY + @height - if @resized - canvas = document.createElement('canvas') - canvas.width = @originalWidth - canvas.height = @originalHeight - - ctx = canvas.getContext('2d') - imageData = ctx.getImageData 0, 0, canvas.width, canvas.height - pixelData = imageData.data - - pixelData[i] = pixel for pixel, i in @originalPixelData - - ctx.putImageData imageData, 0, 0 - - scaledCanvas = document.createElement('canvas') - scaledCanvas.width = @width - scaledCanvas.height = @height - - ctx = scaledCanvas.getContext('2d') - ctx.drawImage canvas, 0, 0, @originalWidth, @originalHeight, 0, 0, @width, @height - - pixelData = ctx.getImageData(0, 0, @width, @height).data - width = @width - else if @rotated - canvas = document.createElement('canvas') - canvas.width = @originalWidth - canvas.height = @originalHeight - - ctx = canvas.getContext('2d') - imageData = ctx.getImageData 0, 0, canvas.width, canvas.height - pixelData = imageData.data - - pixelData[i] = pixel for pixel, i in @originalPixelData - - ctx.putImageData imageData, 0, 0 - - rotatedCanvas = document.createElement('canvas') - rotatedCanvas.width = @width - rotatedCanvas.height = @height - rotatedCanvasCtx = rotatedCanvas.getContext('2d') - rotatedCanvas.width = @canvas.width - rotatedCanvas.height = @canvas.height - x = rotatedCanvas.width / 2 - y = rotatedCanvas.height / 2 - - rotatedCanvasCtx.save() - rotatedCanvasCtx.translate x, y - rotatedCanvasCtx.rotate @rotationAngle * Math.PI / 180 - rotatedCanvasCtx.drawImage canvas, -canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height - rotatedCanvasCtx.restore() - - pixelData = rotatedCanvasCtx.getImageData(0, 0, rotatedCanvas.width, rotatedCanvas.height).data - width = rotatedCanvas.width - else - pixelData = @originalPixelData - width = @originalWidth + pixelData = @originalPixelData + width = @canvas.width for i in [0...pixelData.length] by 4 coord = Pixel.locationToCoordinates(i, width) From bed2c3d03d4afda65e571f85220e8a507243df7e Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Wed, 31 Dec 2014 11:58:43 +0100 Subject: [PATCH 04/12] Keep info about image data used for initialization --- dist/caman.full.js | 2 -- dist/caman.full.min.js | 2 +- dist/caman.full.pack.js | 2 +- dist/caman.js | 2 -- dist/caman.min.js | 2 +- dist/caman.pack.js | 2 +- src/core/caman.coffee | 2 -- 7 files changed, 4 insertions(+), 10 deletions(-) diff --git a/dist/caman.full.js b/dist/caman.full.js index de3f60d1..488ff21f 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -604,12 +604,10 @@ this.imageData = this.context.getImageData(0, 0, this.canvas.width, this.canvas.height); this.pixelData = this.imageData.data; if (Caman.allowRevert) { - this.initializedPixelData = Util.dataArray(this.pixelData.length); this.originalPixelData = Util.dataArray(this.pixelData.length); _ref = this.pixelData; for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { pixel = _ref[i]; - this.initializedPixelData[i] = pixel; this.originalPixelData[i] = pixel; } } diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index 00f02ea5..d1aafe65 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -48,7 +48,7 @@ return _results;};Caman.prototype.hasId=function(){return Caman.getAttrId(this.c return this.canvas.setAttribute('data-caman-id',this.id);};Caman.prototype.hiDPIDisabled=function(){return this.canvas.getAttribute('data-caman-hidpi-disabled')!==null;};Caman.prototype.hiDPIAdjustments=function(){var ratio;if(Caman.NodeJS||!this.needsHiDPISwap()){return;} ratio=this.hiDPIRatio();if(ratio!==1){Log.debug("HiDPI ratio = "+ratio);this.scaled=true;this.preScaledWidth=this.canvas.width;this.preScaledHeight=this.canvas.height;this.canvas.width=this.preScaledWidth*ratio;this.canvas.height=this.preScaledHeight*ratio;this.canvas.style.width=""+this.preScaledWidth+"px";this.canvas.style.height=""+this.preScaledHeight+"px";this.context.scale(ratio,ratio);this.width=this.originalWidth=this.canvas.width;return this.height=this.originalHeight=this.canvas.height;}};Caman.prototype.hiDPIRatio=function(){var backingStoreRatio,devicePixelRatio;devicePixelRatio=window.devicePixelRatio||1;backingStoreRatio=this.context.webkitBackingStorePixelRatio||this.context.mozBackingStorePixelRatio||this.context.msBackingStorePixelRatio||this.context.oBackingStorePixelRatio||this.context.backingStorePixelRatio||1;return devicePixelRatio/backingStoreRatio;};Caman.prototype.hiDPICapable=function(){return(window.devicePixelRatio!=null)&&window.devicePixelRatio!==1;};Caman.prototype.needsHiDPISwap=function(){if(this.hiDPIDisabled()||!this.hiDPICapable()){return false;} return this.hiDPIReplacement()!==null;};Caman.prototype.hiDPIReplacement=function(){if(this.image==null){return null;} -return this.image.getAttribute('data-caman-hidpi');};Caman.prototype.replaceCanvas=function(newCanvas){var i,pixel,_i,_len,_ref;this.canvas=newCanvas;this.context=this.canvas.getContext('2d');this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} +return this.image.getAttribute('data-caman-hidpi');};Caman.prototype.replaceCanvas=function(newCanvas){var i,pixel,_i,_len,_ref;this.canvas=newCanvas;this.context=this.canvas.getContext('2d');this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.originalPixelData[i]=pixel;}} this.width=this.canvas.width;this.height=this.canvas.height;this.reloadCanvasData();return this.dimensions={width:this.canvas.width,height:this.canvas.height};};Caman.prototype.render=function(callback){if(callback==null){callback=function(){};} Event.trigger(this,"renderStart");return this.renderer.execute((function(_this){return function(){_this.renderingCanvas.width=_this.canvas.width;_this.renderingCanvas.height=_this.canvas.height;_this.renderingContext.putImageData(_this.imageData,0,0);return callback.call(_this);};})(this));};Caman.prototype.revert=function(updateContext){var i,pixel,_i,_len,_ref;if(updateContext==null){updateContext=true;} if(!Caman.allowRevert){throw"Revert disabled";} diff --git a/dist/caman.full.pack.js b/dist/caman.full.pack.js index e6f34beb..cd44b732 100644 --- a/dist/caman.full.pack.js +++ b/dist/caman.full.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4J,2m,2b,D,5b,48,1W,2W,6z,R,2U,4v,33,1X,3M,1Z,2v,1M,7R,32,1t,fs,6S,82,5c,8V,6J=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2e};1t.5p=A(4P,3K,G){M 6s,H,1n,K,41,1o;B(G==L){G={}}K=4P.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6s=K[H];B((G.7g!=L)&&(41=6s.9Q,6J.1x(G.7g,41)>=0)){5F}1o.2j(3K.bh(6s.9Q,6s.fP))}u 1o};1t.5l=A(P){B(P==L){P=0}B(D.2Y||(4D.ca!=L)){u 1z ca(P)}u 1z 5v(P)};u 1t})();B(1s 2h!=="3P"&&2h!==L){7R=2h;48=6K(\'I\');4v=48.4v;6z=6K(\'fO\');fs=6K(\'fs\');6S=6K(\'6S\')}S{7R=4D}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5P=2T;D.9C="c3";D.7G="";D.c5="fH";D.2Y=1s 2h!=="3P"&&2h!==L;D.ce=!D.2Y;D.5L=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Y){u 2T}B(1s I==="3h"){I=$(I)}B(!((I!=L)&&(I.5D!=L))){u L}u I.5D(\'2a-3I-2V\')};A D(){o.5B=8Q(o.5B,o);M 1l,1L,2V;B(1k.P===0){2Q"5z 1k";}B(o aT D){o.5y=o.5y.9y(o);o.6y=o.6y.9y(o);1l=1k[0];B(!D.2Y){2V=49(D.9z(1l[0]),10);1L=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2V)&&32.bR(2V)){u 32.3V(2V,1L)}}o.2V=1t.9L.4c();o.5r=o.4V=L;o.9x={x:0,y:0};o.cr=2k;o.9v=2k;o.cL=2k;o.cM=0;o.6D=[];o.9u=[];o.9t=[];o.6T=L;o.d6=2k;o.fz=1z 4J(o);o.4F=1z 1M(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1z D(1k)}}D.N.ad=A(cb){M 9s;B(D.2Y){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2q.9q==="7J"){1X.2w("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9s=(A(1r){u A(){B(2q.9q==="7J"){1X.2w("aU aW");u cb.1x(1r)}}})(o);u 2q.aX("fw",9s,2k)}}};D.N.ar=A(1l){M 2s,2e,K,1o;B(1l.P===0){2Q"5z 1k be";}o.3a=L;o.7K=L;o.7L=L;o.1L=A(){};o.bo(1l[0]);B(1l.P===1){u}5E(1s 1l[1]){2g"3h":o.7L=1l[1];56;2g"A":o.1L=1l[1]}B(1l.P===2){u}o.1L=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2s 57 K){B(!6r.1x(K,2s))5F;2e=K[2s];1o.2j(o.1F[2s]=2e)}u 1o}};D.N.bo=A(2B){B(D.2Y){o.3a=2B;o.7K=\'bS\';u}B(1s 2B==="3S"){o.3a=2B}S{o.3a=$(2B)}B(o.3a==L){2Q"fv fu gy 1d cc I W ft.";}u o.7K=o.3a.9Q.6H()};D.N.as=A(){5E(o.7K){2g"bS":u o.ci();2g"1O":u o.cl();2g"I":u o.cm()}};D.N.ci=A(){1X.2w("fr W 2Y");B(1s o.3a==="3h"&&o.3a.7V(/^cA?:\\/\\//)){u o.cD(o.3a,o.5B)}S B(1s o.3a==="3h"){u fs.fp(o.3a,o.5B)}S{u o.5B(L,o.3a)}};D.N.cD=A(6Z,1L){M 9h;1X.2w("fm 1d 4P "+6Z);9h=6S.4c(6Z,A(4t){M 83;83=\'\';4t.fl(\'d7\');4t.9f(\'2a\',A(a7){u 83+=a7});u 4t.9f(\'1Q\',A(){u 1L(L,1z fk(83,\'d7\'))})});u 9h.9f(\'9e\',1L)};D.N.5B=A(6N,2a){B(6N){2Q 6N;}o.1d=1z 4v();o.1d.1E=2a;1X.2w("4v au. ay = "+(o.3T())+", aL = "+(o.3W()));o.I=1z 48(o.3T(),o.3W());u o.5y()};D.N.cl=A(){o.1d=o.3a;o.I=2q.3J(\'I\');o.1j=o.I.3i(\'2d\');o.3w=2q.3J(\'I\');o.6x=o.3w.3i(\'2d\');1t.5p(o.1d,o.I,{7g:[\'1E\']});1t.5p(o.1d,o.3w,{7g:[\'1E\']});B(o.1d.9d!=L){o.1d.9d.aY(o.3w,o.1d)}o.9c();u o.9b()};D.N.cm=A(){o.I=o.3a;o.1j=o.I.3i(\'2d\');o.3w=2q.3J(\'I\');o.6x=o.3w.3i(\'2d\');B(o.7L!=L){o.1d=2q.3J(\'1O\');o.1d.1E=o.7L;o.9c();u o.9b()}S{u o.5y()}};D.N.9c=A(){B(o.9a()){1X.2w(o.1d.1E,"->",o.84());o.bi=2T;o.1d.1E=o.84()}B(2U.bj(o.1d)){o.1d.1E=2U.5m(o.1d.1E);u 1X.2w("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9b=A(){B(o.bJ()){u o.6y()}S{u o.1d.bP=o.6y}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.98!=L)&&o.1d.98===0){u 2k}u 2T};D.N.3T=A(){u o.1d.F||o.1d.98};D.N.3W=A(){u o.1d.J||o.1d.fg};D.N.6y=A(){1X.2w("4v au. ay = "+(o.3T())+", aL = "+(o.3W()));B(o.bi){o.I.F=o.3T()/o.6o();o.I.J=o.3W()/o.6o();o.3w.F=o.3T()/o.6o();o.3w.J=o.3W()/o.6o()}S{o.I.F=o.3T();o.I.J=o.3W();o.3w.F=o.3T();o.3w.J=o.3W()}u o.5y()};D.N.5y=A(){M i,1v,H,1n,K;B(o.1j==L){o.1j=o.I.3i(\'2d\')}o.8b=o.6n=o.F=o.I.F;o.8c=o.6j=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.6h(o.1d,0,0,o.3T(),o.3W(),0,0,o.6n,o.6j);o.6x.6h(o.1d,0,0,o.3T(),o.3W(),0,0,o.6n,o.6j)}o.2M=o.1j.4O(0,0,o.I.F,o.I.J);o.T=o.2M.2a;B(D.5P){o.5r=1t.5l(o.T.P);o.4V=1t.5l(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];o.5r[i]=1v;o.4V[i]=1v}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Y){32.cs(o.2V,o)}o.1L.1x(o,o);u o.1L=A(){}};D.N.cy=A(){o.2M=o.1j.4O(0,0,o.I.F,o.I.J);u o.T=o.2M.2a};D.N.ff=A(){M i,1v,H,1n,K,1o;B(!D.5P){2Q"8Z 8d";}o.4V=1t.5l(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];1o.2j(o.4V[i]=1v)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Y||o.I.5D(\'2a-3I-2V\')){u}u o.I.bh(\'2a-3I-2V\',o.2V)};D.N.cH=A(){u o.I.5D(\'2a-3I-cK-8d\')!==L};D.N.cf=A(){M 4j;B(D.2Y||!o.9a()){u}4j=o.6o();B(4j!==1){1X.2w("fe 4j = "+4j);o.d6=2T;o.6n=o.I.F;o.6j=o.I.J;o.I.F=o.6n*4j;o.I.J=o.6j*4j;o.I.cN.F=""+o.6n+"cQ";o.I.cN.J=""+o.6j+"cQ";o.1j.fd(4j,4j);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6o=A(){M 8X,4d;4d=4D.4d||1;8X=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4d/8X};D.N.a8=A(){u(4D.4d!=L)&&4D.4d!==1};D.N.9a=A(){B(o.cH()||!o.a8()){u 2k}u o.84()!==L};D.N.84=A(){B(o.1d==L){u L}u o.1d.5D(\'2a-3I-cK\')};D.N.6O=A(aa){M i,1v,H,1n,K;o.I=aa;o.1j=o.I.3i(\'2d\');o.2M=o.1j.4O(0,0,o.I.F,o.I.J);o.T=o.2M.2a;B(D.5P){o.5r=1t.5l(o.T.P);o.4V=1t.5l(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];o.5r[i]=1v;o.4V[i]=1v}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1L){B(1L==L){1L=A(){}}2W.5g(o,"ai");u o.4F.3V((A(1r){u A(){1r.3w.F=1r.I.F;1r.3w.J=1r.I.J;1r.6x.8T(1r.2M,0,0);u 1L.1x(1r)}})(o))};D.N.f7=A(8k){M i,1v,H,1n,K;B(8k==L){8k=2T}B(!D.5P){2Q"8Z 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];o.T[i]=1v}B(8k){u o.6x.8T(o.2M,0,0)}};D.N.f6=A(){M I,2I,i,2M,1v,T,H,1n,K;I=2q.3J(\'I\');1t.5p(o.I,I);I.F=o.8b;I.J=o.8c;2I=I.3i(\'2d\');2M=2I.4O(0,0,I.F,I.J);T=2M.2a;K=o.5r;W(i=H=0,1n=K.P;H<1n;i=++H){1v=K[i];T[i]=1v}2I.8T(2M,0,0);o.9x={x:0,y:0};o.9v=2k;u o.6O(I)};D.N.av=A(){M 8o,26,8P,i,T,Y,8p,8r,F,H,K,41,4i;B(!D.5P){2Q"8Z 8d";}Y=[];8p=0;26=8p+o.F;8r=0;8P=8r+o.J;T=o.4V;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2P+=Q[i]}}o.4F.4p({1w:R.3j.8I,1p:1p,Q:Q,2P:2P,3c:3c});u o};D.N.51=A(4m,1l){o.4F.4p({1w:R.3j.2v,4m:4m,1l:1l});u o};D.N.2Z=A(1L){M 2f;2f=1z 33(o);o.9t.2j(2f);o.4F.4p({1w:R.3j.8H});1L.1x(2f);o.4F.4p({1w:R.3j.8G});u o};D.N.bT=A(2f){u o.bX(2f)};D.N.bX=A(2f){o.9u.2j(o.6T);o.6D.2j(o.T);o.6T=2f;u o.T=2f.T};D.N.bZ=A(){o.T=o.6D.6A();u o.6T=o.9u.6A()};D.N.c1=A(){u o.6T.c2()};u D})(3M);7R.D=D;D.4J=(A(){A 4J(c){o.c=c}4J.N.f5=A(){M i,3q,6V,H,1f,1I,K;3q={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3q.r[i]=0;3q.g[i]=0;3q.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6u.P;H<1n;H++){1O=6u[H];1o.2j(cj=1z 5b(1O,A(){o.ck();u o.3V()}))}u 1o};B(D.ce){(A(){B(2q.9q==="7J"){u D.8C()}S{u 2q.aX("f3",D.8C,2k)}})()}5b=(A(){M 8y;8y="(\\\\w+)\\\\((.*?)\\\\)";A 5b(4o,ct){o.cw=4o.5D(\'2a-3I\');o.3I=D(4o,ct.9y(o))}5b.N.ck=A(){M 1l,e,1A,5a,8K,8L,m,r,6L,H,1n,K,1o;o.4o=o.3I.I;r=1z cJ(8y,\'g\');6L=o.cw.7V(r);B(!(6L.P>0)){u}r=1z cJ(8y);1o=[];W(H=0,1n=6L.P;H<1n;H++){8K=6L[H];K=8K.7V(r),m=K[0],1A=K[1],1l=K[2];8L=1z f2("u A() { o."+1A+"("+1l+"); };");8M{5a=8L();1o.2j(5a.1x(o.3I))}8N(5q){e=5q;1o.2j(1X.2w(e))}}u 1o};5b.N.3V=A(){M 4o;4o=o.4o;u o.3I.ac(A(){u 4o.9d.aY(o.cO(),4o)})};u 5b})();D.2m=(A(){A 2m(){}2m.8O={};2m.V=A(1p,5a){u o.8O[1p]=5a};2m.3V=A(1p,Z,X){u o.8O[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.59=A(71,73,74,6q){u O.8m(O.1T(74-71,2)+O.1T(6q-73,2))};2b.ab=A(1K,1e,6w){M 4f;B(6w==L){6w=2k}4f=1K+(O.f1()*(1e-1K));B(6w){u 4f.f0(6w)}S{u O.5H(4f)}};2b.6C=A(C){u(0.8S*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.28=A(1J,4K,4L,1Q,53,52){M 28,6d,2D,26,i,j,62,1N,3O,t,H,1f,K;B(53==L){53=0}B(52==L){52=E}B(1J[0]aT 5v){2D=1J;53=4K;52=4L}S{2D=[1J,4K,4L,1Q]}B(2D.P<2){2Q"5z 8f 8W 1k 3K 28";}28={};62=A(a,b,t){u a*(1-t)+b*t};6d=A(a,1K,1e){u O.1K(O.1e(a,1K),1e)};W(i=H=0;H1){1N=[];W(j=1f=0,K=3O.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1N.2j([62(3O[j][0],3O[j+1][0],t),62(3O[j][1],3O[j+1][1],t)])}3O=1N}28[O.5H(3O[0][0])]=O.5H(6d(3O[0][1],53,52))}26=2D[2D.P-1][0];28=D.2b.91(28,26);B(28[26]==L){28[26]=28[26-1]}u 28};2b.bE=A(2D,53,52){M 4p,6d,93,26,89,88,86,85,i,j,62,99,9g,4Q,p,6g,5t,4N,81,7Z,3k,7Y,t,H,1f,K;B(2D.P<2){2Q"5z 8f 8W 1k 3K bE";}3k={};62=A(a,b,t){u a*(1-t)+b*t};4p=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4Q=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7Y=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);6d=A(a,1K,1e){u O.1K(O.1e(a,1K),1e)};93=0;W(i=H=0,K=2D.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){6g=2D[i];5t=2D[i+1];4N=5t[0]-6g[0];81=1/4N;B(i===2D.P-2){81=1/(4N-1)}p=i>0?2D[i-1]:6g;99=4Q(7Y(5t,p),[0.5,0.5]);p=i<2D.P-2?2D[i+2]:5t;9g=4Q(7Y(p,6g),[0.5,0.5]);W(j=1f=0;0<=4N?1f<=4N:1f>=4N;j=0<=4N?++1f:--1f){t=j*81;89=2.0*t*t*t-3.0*t*t+1.0;88=t*t*t-2.0*t*t+t;86=-2.0*t*t*t+3.0*t*t;85=t*t*t-t*t;7Z=4p(4Q(6g,[89,89]),4Q(99,[88,88]),4Q(5t,[86,86]),4Q(9g,[85,85]));3k[O.5H(7Z[0])]=O.5H(6d(7Z[1],53,52));93+=1}}26=2D[2D.P-1][0];3k=D.2b.91(3k,26);u 3k};2b.91=A(54,26){M i,j,5Z,3k,7W,H,1f;B(bk.eX(54).P<26+1){3k={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(54[i]!=L){3k[i]=54[i]}S{5Z=[i-1,3k[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(54[j]!=L){7W=[j,54[j]];56}}3k[i]=5Z[1]+((7W[1]-5Z[1])/(7W[0]-5Z[0]))*(i-5Z[0])}}u 3k}u 54};u 2b})();2b=D.2b;D.1W=(A(){A 1W(){}1W.7U=A(3L){M b,g,r;B(3L.eW(0)==="#"){3L=3L.58(1)}r=49(3L.58(0,2),16);g=49(3L.58(2,2),16);b=49(3L.58(4,2),16);u{r:r,g:g,b:b}};1W.eV=A(r,g,b){M d,h,l,1e,1K,s;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1K=O.1K(r,g,b);l=(1e+1K)/2;B(1e===1K){h=s=0}S{d=1e-1K;s=l>0.5?d/(2-1e-1K):d/(1e+1K);h=(A(){5E(1e){2g r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1W.cC=A(r,g,b){M d,h,1e,1K,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1K=O.1K(r,g,b);v=1e;d=1e-1K;s=1e===0?0:d/1e;B(1e===1K){h=0}S{h=(A(){5E(1e){2g r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3o)/1.3o,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3o)/1.3o,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3o)/1.3o,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1W.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.8B){r=(1.3o*O.1T(r,0.9o))-0.3o}S{r*=12.92}B(g>0.8B){g=(1.3o*O.1T(g,0.9o))-0.3o}S{g*=12.92}B(b>0.8B){b=(1.3o*O.1T(b,0.9o))-0.3o}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1W.at=A(x,y,z){M a,b,l,9r,9D,9F;B(1s x==="3S"){y=x.y;z=x.z;x=x.x}9r=95.aB;9D=1i.0;9F=9G.aE;x/=9r;y/=9D;z/=9F;B(x>0.9I){x=O.1T(x,0.9K)}S{x=(7.9M*x)+0.5V}B(y>0.9I){y=O.1T(y,0.9K)}S{y=(7.9M*y)+0.5V}B(z>0.9I){z=O.1T(z,0.9K)}S{z=(7.9M*z)+0.5V}l=aQ*y-16;a=aR*(x-y);b=5W*(y-z);u{l:l,a:a,b:b}};1W.eD=A(l,a,b){M x,y,z;B(1s l==="3S"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5W);B(x>0.9R){x=x*x*x}S{x=0.9U*(x-0.5V)}B(y>0.9R){y=y*y*y}S{y=0.9U*(y-0.5V)}B(z>0.9R){z=z*z*z}S{z=0.9U*(z-0.5V)}u{x:x*95.aB,y:y*1i.0,z:z*9G.aE}};1W.eC=A(r,g,b){M 9V;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1W.eB=A(l,a,b){};u 1W})();1W=D.1W;D.2W=(A(){A 2W(){}2W.5j={};2W.b1=["b6","bb","ai","bc","bd","64"];2W.5g=A(37,1w,2a){M 6F,H,1n,K,1o;B(2a==L){2a=L}B(o.5j[1w]&&o.5j[1w].P){K=o.5j[1w];1o=[];W(H=0,1n=K.P;H<1n;H++){6F=K[H];B(6F.37===L||37.2V===6F.37.2V){1o.2j(6F.fn.1x(37,2a))}S{1o.2j(bg 0)}}u 1o}};2W.eA=A(37,1w,fn){M 9W,9X;B(1s 37==="3h"){9X=37;9W=1w;37=L;1w=9X;fn=9W}B(6J.1x(o.b1,1w)<0){u 2k}B(!o.5j[1w]){o.5j[1w]=[]}o.5j[1w].2j({37:37,fn:fn});u 2T};u 2W})();2W=D.2W;D.R=(A(){A R(){}R.3j={8J:1,8I:2,8H:3,8G:4,9Y:5,2v:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2U=(A(){A 2U(){}2U.bm=/(?:(?:6S|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2U.bj=A(1O){B(1O==L){u 2k}B(o.bn(1O)){u 2k}u o.7i(1O.1E)};2U.bn=A(1O){M K;u(1O.9C!=L)&&((K=1O.9C.6H())===\'c3\'||K===\'bp-ez\')};2U.7i=A(6Z){M 7h;7h=6Z.7V(o.bm);B(7h){u 7h[1]!==2q.ey}S{u 2k}};2U.bu=A(1E){B(o.7i(1E)){B(!D.7G.P){1X.a1("ex 3K ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7i(D.7G)){1X.a1("es bp a bH bK W er eq.");u}u o.5m(1E)}}};2U.5m=A(1E){u""+D.7G+"?"+D.c5+"="+(ep(1E))};2U.eo=A(5o){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5o=5o.6H();B(8z[5o]!=L){5o=8z[5o]}u"ee/ed."+5o};u 2U})();D.N.c6=A(){B(1s 2h!=="3P"&&2h!==L){u o.c7.4q(o,1k)}S{u o.c8.4q(o,1k)}};D.N.c8=A(1w){M 1d;B(1w==L){1w="c9"}1w=1w.6H();1d=o.a5(1w).ec("1d/"+1w,"1d/eb-ea");u 2q.e9.e8=1d};D.N.c7=A(6c,7b,1L){M e,a2;B(7b==L){7b=2T}B(1L==L){1L=L}8M{a2=fs.e7(6c);B(a2.e6()&&!7b){u 2k}}8N(5q){e=5q;1X.2w("e5 e4 6c "+6c)}u fs.e3(6c,o.I.e2(),A(6N){1X.2w("e1 e0 3K "+6c);B(1L){u 1L.1x(o,6N)}})};D.N.cO=A(1w){M 1O;1O=1z 4v();1O.1E=o.a5(1w);1O.F=o.1c.F;1O.J=o.1c.J;B(4D.4d){1O.F/=4D.4d;1O.J/=4D.4d}u 1O};D.N.a5=A(1w){B(1w==L){1w="c9"}1w=1w.6H();u o.I.dZ("1d/"+1w)};2U=D.2U;D.33=(A(){A 33(c){o.c=c;o.1A=o.c;o.1F={a0:\'9Z\',2i:1.0};o.dY=1t.9L.4c();o.I=1s 2h!=="3P"&&2h!==L?1z 48():2q.3J(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3i(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2M=o.1j.4O(0,0,o.I.F,o.I.J);o.T=o.2M.2a}33.N.2Z=A(cb){u o.c.2Z.1x(o.c,cb)};33.N.3n=A(cx){o.1F.a0=cx;u o};33.N.2i=A(2i){o.1F.2i=2i/1i;u o};33.N.4g=A(){M i,31,H,K;31=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3H<0){u 1z 1Z(0,0,0,E,o.c)}u o.9J(3H)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2Q"5U a 5T 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3H>o.c.T.P||3H<0){u}o.c.T[3H]=C.r;o.c.T[3H+1]=C.g;o.c.T[3H+2]=C.b;o.c.T[3H+3]=C.a;u 2T};1Z.N.dT=A(x,y){M U;B(o.c==L){2Q"5U a 5T 1j";}U=o.9S(x,y,o.F);u o.9J(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2Q"5U a 5T 1j";}U=o.9S(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5L=A(){u o.dR()};1Z.N.dQ=A(7B){M 3L;B(7B==L){7B=2k}3L=\'#\'+o.r.5L(16)+o.g.5L(16)+o.b.5L(16);B(7B){u 3L+o.a.5L(16)}S{u 3L}};u 1Z})();1Z=D.1Z;D.2v=(A(){A 2v(){}2v.9H={};2v.V=A(1p,4m){u o.9H[1p]=4m};2v.3V=A(1j,1p,1l){u o.9H[1p].4q(1j,1l)};u 2v})();2v=D.2v;D.1M=(A(){1M.4y=D.2Y?6K(\'dP\').dO().P:4;A 1M(c){o.c=c;o.4b=8Q(o.4b,o);o.6G=[];o.5e=L}1M.N.4p=A(9B){B(9B==L){u}u o.6G.2j(9B)};1M.N.4b=A(){M 2f;B(o.6G.P===0){2W.5g(o,"bc");B(o.9w!=L){o.9w.1x(o.c)}u o}o.2c=o.6G.d9();5E(o.2c.1w){2g R.3j.8H:2f=o.c.9t.d9();o.c.bT(2f);u o.4b();2g R.3j.8G:o.c.c1();o.c.bZ();u o.4b();2g R.3j.9Y:u o.da(o.2c.2f,o.2c.1E);2g R.3j.2v:u o.db();dN:u o.a6()}};1M.N.3V=A(1L){o.9w=1L;o.5e=1t.5l(o.c.T.P);u o.4b()};1M.N.9p=A(fn){M 72,9n,2S,1Q,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;9n=O.2J((n/4)/1M.4y);72=9n*4;9l=72+((n/4)%1M.4y)*4;1o=[];W(i=H=0,K=1M.4y;0<=K?HK;i=0<=K?++H:--H){1J=i*72;1Q=1J+(i===1M.4y-1?9l:72);B(D.2Y){f=6z((A(1r){u A(){u fn.1x(1r,i,1J,1Q)}})(o));2S=f.dM();1o.2j(o.64(2S))}S{1o.2j(7I((A(1r){u A(i,1J,1Q){u A(){u fn.1x(1r,i,1J,1Q)}}})(o)(i,1J,1Q),0))}}u 1o};1M.N.a6=A(){2W.5g(o.c,"b6",o.2c);B(o.2c.1w===R.3j.8J){u o.9p(o.af)}S{u o.9p(o.ag)}};1M.N.db=A(){1X.2w("dL 4m "+o.2c.4m);2v.3V(o.c,o.2c.4m,o.2c.1l);1X.2w("2v "+o.2c.4m+" 9k!");u o.4b()};1M.N.af=A(2S,1J,1Q){M i,1v,H;1X.2w("aj #"+2S+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1Q);2W.5g(o.c,"bd",{am:2S,an:1M.4y,dI:1J,dH:1Q});1v=1z 1Z();1v.9P(o.c);W(i=H=1J;H<1Q;i=H+=4){1v.U=i;1v.r=o.c.T[i];1v.g=o.c.T[i+1];1v.b=o.c.T[i+2];1v.a=o.c.T[i+3];o.2c.8t(1v);o.c.T[i]=1t.3F(1v.r);o.c.T[i+1]=1t.3F(1v.g);o.c.T[i+2]=1t.3F(1v.b);o.c.T[i+3]=1t.3F(1v.a)}B(D.2Y){u 6z["aq"](2S)}S{u o.64(2S)}};1M.N.ag=A(2S,1J,1Q){M Q,6I,3c,2K,5u,2P,i,j,k,2G,n,1p,p,1v,4t,H,1f,1I;1p=o.2c.1p;3c=o.2c.3c;2P=o.2c.2P;n=o.c.T.P;Q=o.2c.Q;6I=O.8m(Q.P);2G=[];1X.2w("dG 2G - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6I-1)/2));1Q=O.1K(1Q,n-(o.c.1c.F*4*((6I-1)/2)));2K=(6I-1)/2;1v=1z 1Z();1v.9P(o.c);W(i=H=1J;H<1Q;i=H+=4){1v.U=i;5u=0;W(j=1f=-2K;-2K<=2K?1f<=2K:1f>=2K;j=-2K<=2K?++1f:--1f){W(k=1I=2K;2K<=-2K?1I<=-2K:1I>=-2K;k=2K<=-2K?++1I:--1I){p=1v.cP(j,k);2G[5u*3]=p.r;2G[5u*3+1]=p.g;2G[5u*3+2]=p.b;5u++}}4t=o.3G(Q,2G,2P,3c);o.5e[i]=1t.3F(4t.r);o.5e[i+1]=1t.3F(4t.g);o.5e[i+2]=1t.3F(4t.b);o.5e[i+3]=o.c.T[i+3]}B(D.2Y){u 6z["aq"](2S)}S{u o.64(2S)}};1M.N.64=A(2S){M i,H,K;B(2S>=0){1X.2w("aj #"+2S+" 9k! R: "+o.2c.1p)}o.7P++;2W.5g(o.c,"64",{am:2S,dF:o.7P,an:1M.4y});B(o.7P===1M.4y){B(o.2c.1w===R.3j.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.5e[i]}}B(2S>=0){1X.2w("R "+o.2c.1p+" 9k!")}2W.5g(o.c,"bb",o.2c);u o.4b()}};1M.N.3G=A(Q,2G,2P,3c){M i,2e,H,K;2e={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2e.r+=Q[i]*2G[i*3];2e.g+=Q[i]*2G[i*3+1];2e.b+=Q[i]*2G[i*3+2]}2e.r=(2e.r/2P)+3c;2e.g=(2e.g/2P)+3c;2e.b=(2e.b/2P)+3c;u 2e};1M.N.da=A(2f,1E){M 1O,5m;1O=1z 4v();1O.bP=(A(1r){u A(){2f.1j.6h(1O,0,0,1r.c.1c.F,1r.c.1c.J);2f.2M=2f.1j.4O(0,0,1r.c.1c.F,1r.c.1c.J);2f.T=2f.2M.2a;1r.c.T=2f.T;u 1r.4b()}})(o);5m=2U.bu(1E);u 1O.1E=5m!=L?5m:1E};u 1M})();1M=D.1M;D.32=(A(){A 32(){}32.63={};32.bR=A(4E){u o.63[4E]!=L};32.4c=A(4E){u o.63[4E]};32.cs=A(1p,2B){u o.63[1p]=2B};32.3V=A(4E,1L){7I((A(1r){u A(){u 1L.1x(1r.4c(4E),1r.4c(4E))}})(o),0);u o.4c(4E)};32.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.63[1p]}S{u o.63={}}};u 32})();32=D.32;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("61",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1G;1G={};1G.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1G.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1G.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1G});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1G;1G={};1G.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1G.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1G.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1G});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4U",A(){M 3e;B(1k.P===1){3e=1W.7U(1k[0])}S{3e={r:1k[0],g:1k[1],b:1k[2]}}u o.2n("4U",A(C){C.r=3e.r;C.g=3e.g;C.b=3e.b;C.a=E;u C})});R.V("3u",A(Q){Q=O.2J(E*(Q/1i));u o.2n("3u",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3N",A(Q){Q*=-0.dy;u o.2n("3N",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("44",A(Q){Q*=-1;u o.2n("44",A(C){M 1q,4X,1e;1e=O.1e(C.r,C.g,C.b);4X=(C.r+C.g+C.b)/3;1q=((O.4Y(1e-4X)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4Z",A(Q){u o.2n("4Z",A(C){M 4X;4X=2b.6C(C);C.r=4X;C.g=4X;C.b=4X;u C})});R.V("2t",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2n("2t",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("94",A(Q){u o.2n("94",A(C){M b,g,h,5d,r,K;5d=1W.cC(C.r,C.g,C.b);h=5d.h*1i;h+=O.4Y(Q);h=h%1i;h/=1i;5d.h=h;K=1W.cE(5d.h,5d.s,5d.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4u",A(){M 5w,3d;B(1k.P===2){3d=1W.7U(1k[0]);5w=1k[1]}S B(1k.P===4){3d={r:1k[0],g:1k[1],b:1k[2]};5w=1k[3]}u o.2n("4u",A(C){C.r-=(C.r-3d.r)*(5w/1i);C.g-=(C.g-3d.g)*(5w/1i);C.b-=(C.b-3d.b)*(5w/1i);u C})});R.V("b0",A(){u o.2n("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4s",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2n("4s",A(C){C.r=O.1K(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1K(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1K(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2u",A(Q){u o.2n("2u",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4Y(Q)*2.55;u o.2n("8i",A(C){M 4f;4f=2b.ab(Q*-1,Q);C.r+=4f;C.g+=4f;C.b+=4f;u C})});R.V("8j",A(Q){Q=O.4Y(Q)*2.55;u o.2n("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1F.3f}S{C.r-=C.r*O.4Y(1F.3f)}}B(1F.4w!=L){B(1F.4w>0){C.g+=(E-C.g)*1F.4w}S{C.g-=C.g*O.4Y(1F.4w)}}B(1F.3Y!=L){B(1F.3Y>0){C.b+=(E-C.b)*1F.3Y}S{C.b-=C.b*O.4Y(1F.3Y)}}u C})});R.V("29",A(){M 6R,28,3X,3E,1Q,i,5s,1J,H,1f,K,41;3X=1k[0],3E=2<=1k.P?6f.1x(1k,1):[];5s=3E[3E.P-1];B(1s 5s==="A"){6R=5s;3E.6A()}S B(1s 5s==="3h"){6R=2b[5s];3E.6A()}S{6R=2b.28}B(1s 3X==="3h"){3X=3X.do("")}B(3X[0]==="v"){3X=[\'r\',\'g\',\'b\']}B(3E.P<2){2Q"5z 8f 8W 1k 3K 29 1A";}28=6R(3E,0,E);1J=3E[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){28[i]=1J[1]}}1Q=3E[3E.P-1];B(1Q[0]=E;i=41<=E?++1f:--1f){28[i]=1Q[1]}}u o.2n("29",A(C){M 1I,4i;W(i=1I=0,4i=3X.P;0<=4i?1I<4i:1I>4i;i=0<=4i?++1I:--1I){C[3X[i]]=28[C[3X[i]]]}u C})});R.V("39",A(Q){M 4K,4L,p;p=O.4Y(Q)/1i;4K=[0,E*p];4L=[E-(E*p),E];B(Q<0){4K=4K.br();4L=4L.br()}u o.29(\'3d\',[0,0],4K,4L,[E,E])});D.2v.V("8D",A(F,J,x,y){M I,2I;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="3P"&&2h!==L){I=1z 48(F,J)}S{I=2q.3J(\'I\');1t.5p(o.I,I);I.F=F;I.J=J}2I=I.3i(\'2d\');2I.6h(o.I,x,y,F,J,0,0,F,J);o.9x={x:x,y:y};o.cr=2T;u o.6O(I)});D.2v.V("8x",A(2x){M I,2I;B(2x==L){2x=L}B(2x===L||((2x.F==L)&&(2x.J==L))){1X.9e("5z cc dn 1c be W 8x");u}B(2x.F==L){2x.F=o.I.F*2x.J/o.I.J}S B(2x.J==L){2x.J=o.I.J*2x.F/o.I.F}B(1s 2h!=="3P"&&2h!==L){I=1z 48(2x.F,2x.J)}S{I=2q.3J(\'I\');1t.5p(o.I,I);I.F=2x.F;I.J=2x.J}2I=I.3i(\'2d\');2I.6h(o.I,0,0,o.I.F,o.I.J,0,0,2x.F,2x.J);o.9v=2T;u o.6O(I)});D.R.V("8D",A(){u o.51("8D",5v.N.5c.1x(1k,0))});D.R.V("8x",A(){u o.51("8x",5v.N.5c.1x(1k,0))});D.R.V("dm",A(){u o.3G("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3G("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3G("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3p){M 2G;B(3p===0||3p===4e){2G=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3p>0&&3p<90)||(3p>4e&&3p<8v)){2G=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3p===90||3p===8v){2G=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2G=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3G("de 8A",2G)});D.R.V("6W",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3G("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3u:A(C,1q,G){C.r=C.r-(C.r*1q*G.3g);C.g=C.g-(C.g*1q*G.3g);C.b=C.b-(C.b*1q*G.3g);u C},2u:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3g,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3g,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3g,1))*E;u C},4u:A(C,1q,G){C.r-=(C.r-G.3e.r)*1q;C.g-=(C.g-G.3e.g)*1q;C.b-=(C.b-G.3e.b)*1q;u C}};R.V("1U",A(1u,3g){M 28,3B,1Q,1J;B(3g==L){3g=60}B(1s 1u==="3h"&&1u.58(-1)==="%"){B(o.1c.J>o.1c.F){1u=o.1c.F*(49(1u.58(0,1u.P-1),10)/1i)}S{1u=o.1c.J*(49(1u.58(0,1u.P-1),10)/1i)}}3g/=1i;3B=[o.1c.F/2,o.1c.J/2];1J=O.8m(O.1T(3B[0],2)+O.1T(3B[1],2));1Q=1J-1u;28=2b.28([0,1],[30,30],[70,60],[1i,80]);u o.2n("1U",A(C){M 8q,2H,U;U=C.9O();8q=2b.59(U.x,U.y,3B[0],3B[1]);B(8q>1Q){2H=O.1e(1,(28[O.5H(((8q-1Q)/1u)*1i)]/10)*3g);C.r=O.1T(C.r/E,2H)*E;C.g=O.1T(C.g/E,2H)*E;C.b=O.1T(C.b/E,2H)*E}u C})});R.V("bY",A(G){M 4h,5S,8l,1u,H,1n,K;4h={3g:50,2F:0,8U:\'3u\',3e:{r:0,g:0,b:0}};G=1t.7a(4h,G);B(!G.1u){u o}S B(1s G.1u==="3h"){8l=49(G.1u,10)/1i;G.1u={F:o.1c.F*8l,J:o.1c.J*8l}}S B(1s G.1u==="3S"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){5S=K[H];B(1s G.1u[5S]==="3h"){G.1u[5S]=o.1c[5S]*(49(G.1u[5S],10)/1i)}}}S B(G.1u==="8f"){1u=G.1u;G.1u={F:1u,J:1u}}B(1s G.2F==="3h"){G.2F=(G.1u.F/2)*(49(G.2F,10)/1i)}G.3g/=1i;G.1u.F=O.2J(G.1u.F);G.1u.J=O.2J(G.1u.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4u"&&1s G.3e==="3h"){G.3e=1W.7U(G.3e)}G.1Y={5i:(o.1c.F-G.1u.F)/2,67:o.1c.F-G.1Y.5i,5k:(o.1c.J-G.1u.J)/2,69:o.1c.J-G.1Y.5k};G.1y=[{x:G.1Y.5i+G.2F,y:G.1Y.69-G.2F},{x:G.1Y.67-G.2F,y:G.1Y.69-G.2F},{x:G.1Y.67-G.2F,y:G.1Y.5k+G.2F},{x:G.1Y.5i+G.2F,y:G.1Y.5k+G.2F}];G.4l=2b.59(0,0,G.1y[3].x,G.1y[3].y)-G.2F;u o.2n("bY",A(C){M 1q,U,4n;U=C.9O();B((U.x>G.1y[0].x&&U.xG.1Y.5k&&U.yG.1Y.5i&&U.xG.1y[3].y&&U.yG.1y[0].x&&U.xG.1Y.69){1q=(U.y-G.1Y.69)/G.4l}S B(U.y>G.1y[2].y&&U.yG.1Y.67){1q=(U.x-G.1Y.67)/G.4l}S B(U.x>G.1y[0].x&&U.xG.1y[2].y&&U.y=G.1y[0].y){4n=D.59(U.x,U.y,G.1y[0].x,G.1y[0].y);1q=(4n-G.2F)/G.4l}S B(U.x>=G.1y[1].x&&U.y>=G.1y[1].y){4n=D.59(U.x,U.y,G.1y[1].x,G.1y[1].y);1q=(4n-G.2F)/G.4l}S B(U.x>=G.1y[2].x&&U.y<=G.1y[2].y){4n=D.59(U.x,U.y,G.1y[2].x,G.1y[2].y);1q=(4n-G.2F)/G.4l}S B(U.x<=G.1y[3].x&&U.y<=G.1y[3].y){4n=D.59(U.x,U.y,G.1y[3].x,G.1y[3].y);1q=(4n-G.2F)/G.4l}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4S,96,97,6p,66;6p=[2O,2O,38,2O,3t,38,3v,2O,3U,3t,3A,38,43,3v,3Q,2O,4T,3U,4C,3t,4W,3A,4z,38,4A,43,4k,3v,3b,3Q,4G,2O,68,4T,46,3U,5X,4C,5Q,3t,3b,4W,6a,3A,4B,4z,4x,38,6i,4A,5x,43,5I,4k,5K,3v,5M,3b,5O,3Q,5Y,4G,47,2O,7E,68,7D,4T,7C,46,7A,3U,7x,5X,7w,4C,4R,5Q,7v,3t,6b,3b,7u,4W,7t,6a,4H,3A,47,4B,7s,4z,7r,4x,7q,38,7o,6i,46,4A,7n,5x,7l,43,7k,5I,7j,4k,4R,5K,6e,3v,7f,5M,7e,3b,7d,5O,7c,3Q,6k,5Y,4H,4G,79,47,77,2O,bU,7E,bN,68,4x,7D,bL,4T,bG,7C,bF,46,bD,7A,bC,3U,bB,7x,bA,5X,bz,7w,bx,4C,bw,4R,76,5Q,6e,7v,8u,3t,ba,6b,b9,3b,b8,7u,b7,4W,8g,7t,6k,6a,b5,4H,b4,3A,b3,47,b2,4B,aO,7s,aK,4z,aJ,7r,aH,4x,aF,7q,aC,38,az,7o,ax,6i,aw,46,ap,4A,ao,7n,al,5x,ak,7l,ah,43,ae,7k,dc,5I,d3,7j,d2,4k,cY,4R,76,5K,cX,6e,cW,3v,8u,7f,cV,5M,6b,7e,cT,3b,cG,7d,cB,5O,8S,7c,8g,3Q,cv,6k,cu,5Y,cq,4H,cp,4G,3A,79,co,47,cn,77,4B];66=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6m,6l,2E,P,c0){M 42,1j,2r,71,74,73,6q;42=1s 2h!=="3P"&&2h!==L?1z 48():2q.3J(\'I\');42.F=F;42.J=J;71=6m+O.bW(2E)*P*0.5;73=6l+O.bV(2E)*P*0.5;74=6m-O.bW(2E)*P*0.5;6q=6l-O.bV(2E)*P*0.5;1j=42.3i("2d");2r=1j.en(71,73,74,6q);B(!c0){2r.5n(0,"78");2r.5n(1,"a4")}S{2r.5n(0,"78");2r.5n(0.5,"a4");2r.5n(1,"78")}1j.bO=2r;1j.bM(0,0,F,J);u 1j.4O(0,0,F,J)};97=A(F,J,6m,6l,6Q,6P){M 42,1j,2r;42=1s 2h!=="3P"&&2h!==L?1z 48():2q.3J(\'I\');42.F=F;42.J=J;1j=42.3i("2d");2r=1j.ev(6m,6l,6Q,6m,6l,6P);2r.5n(1,"78");2r.5n(0,"a4");1j.bO=2r;1j.bM(0,0,F,J);u 1j.4O(0,0,F,J)};4S=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1N=L};D.2v.V("a3",A(by,1V,bq,7m){M 2l,2z,1P,5N,6Y,2H,2o,2y,1S,J,3Z,i,6U,2C,3y,7O,3R,6M,2N,p,1B,1D,Y,1C,2p,2A,1R,9i,1a,34,2R,1b,4a,1m,1H,2L,5f,2X,8h,8e,65,F,3r,x,y,1h,4M,4I,H,1f,1I,3m,3x,3s,3l,3z,3D,5J;F=o.1c.F;J=o.1c.J;3y=o.T;9i=by.2a;8e=F*J;65=8e<<2;Y=[];W(i=H=0;0<=65?H<65:H>65;i=0<=65?++H:--H){Y[i]=3y[i]}6Y=0;5f=7m;7m-=1;8Y(5f-->=0){3R=(1V+0.5)|0;B(3R===0){5F}B(3R>6t){3R=6t}2H=3R+3R+1;8h=F<<2;3r=F-1;3Z=J-1;1a=3R+1;2X=1a*(1a+1)/2;2L=1z 4S();4a=bg 0;1b=2L;W(i=1f=1;1<=2H?1f<2H:1f>2H;i=1<=2H?++1f:--1f){1b=1b.1N=1z 4S();B(i===1a){4a=1b}}1b.1N=2L;1m=L;1H=L;4I=1h=0;2N=6p[3R];2R=66[3R];W(y=1I=0;0<=J?1IJ;y=0<=J?++1I:--1I){2p=2o=2l=1R=1S=1P=0;2A=1a*(1C=Y[1h]);2y=1a*(1D=Y[1h+1]);2z=1a*(1B=Y[1h+2]);1R+=2X*1C;1S+=2X*1D;1P+=2X*1B;1b=2L;W(i=3m=0;0<=1a?3m<1a:3m>1a;i=0<=1a?++3m:--3m){1b.r=1C;1b.g=1D;1b.b=1B;1b=1b.1N}W(i=3x=1;1<=1a?3x<1a:3x>1a;i=1<=1a?++3x:--3x){p=1h+((3rF;x=0<=F?++3s:--3s){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1S*2N)>>2R;Y[1h+2]=(1P*2N)>>2R;1R-=2A;1S-=2y;1P-=2z;2A-=1m.r;2y-=1m.g;2z-=1m.b;p=(4I+((p=x+1a)<3r?p:3r))<<2;2p+=(1m.r=Y[p]);2o+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2p;1S+=2o;1P+=2l;1m=1m.1N;2A+=(1C=1H.r);2y+=(1D=1H.g);2z+=(1B=1H.b);2p-=1C;2o-=1D;2l-=1B;1H=1H.1N;1h+=4}4I+=F}W(x=3l=0;0<=F?3lF;x=0<=F?++3l:--3l){2o=2l=2p=1S=1P=1R=0;1h=x<<2;2A=1a*(1C=Y[1h]);2y=1a*(1D=Y[1h+1]);2z=1a*(1B=Y[1h+2]);1R+=2X*1C;1S+=2X*1D;1P+=2X*1B;1b=2L;W(i=3z=0;0<=1a?3z<1a:3z>1a;i=0<=1a?++3z:--3z){1b.r=1C;1b.g=1D;1b.b=1B;1b=1b.1N}4M=F;W(i=3D=1;1<=1a?3D<1a:3D>1a;i=1<=1a?++3D:--3D){1h=(4M+x)<<2;1R+=(1b.r=(1C=Y[1h]))*(34=1a-i);1S+=(1b.g=(1D=Y[1h+1]))*34;1P+=(1b.b=(1B=Y[1h+2]))*34;2p+=1C;2o+=1D;2l+=1B;1b=1b.1N;B(i<3Z){4M+=F}}1h=x;1m=2L;1H=4a;W(y=5J=0;0<=J?5JJ;y=0<=J?++5J:--5J){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1S*2N)>>2R;Y[p+2]=(1P*2N)>>2R;1R-=2A;1S-=2y;1P-=2z;2A-=1m.r;2y-=1m.g;2z-=1m.b;p=(x+(((p=y+1a)<3Z?p:3Z)*F))<<2;1R+=(2p+=(1m.r=Y[p]));1S+=(2o+=(1m.g=Y[p+1]));1P+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2A+=(1C=1H.r);2y+=(1D=1H.g);2z+=(1B=1H.b);2p-=1C;2o-=1D;2l-=1B;1H=1H.1N;1h+=F}}1V*=bq;i=8e;8Y(--i>-1){2C=i<<2;6M=(9i[2C+2]&fo)/E.0*7m;7O=6M|0;B(7O===6Y){5N=6t.0*(6M-(6M|0));6U=6t-5N;3y[2C]=(3y[2C]*6U+Y[2C]*5N)>>8;3y[2C+1]=(3y[2C+1]*6U+Y[2C+1]*5N)>>8;3y[2C+2]=(3y[2C+2]*6U+Y[2C+2]*5N)>>8}S B(7O===6Y+1){3y[2C]=Y[2C];3y[2C+1]=Y[2C+1];3y[2C+2]=Y[2C+2]}}6Y++}u o});D.R.V("fq",A(G){M 4h,2r;4h={3B:{x:o.1c.F/2,y:o.1c.J/2},2E:45,cd:5W,7Q:3,7N:1.5,5f:3};G=1t.7a(4h,G);G.2E*=O.aZ/4e;2r=96(o.1c.F,o.1c.J,G.3B.x,G.3B.y,G.2E,G.cd,2T);u o.51("a3",[2r,G.7Q,G.7N,G.5f])});u D.R.V("fx",A(G){M 4h,2r,6Q,6P;4h={1u:50,3B:{x:o.1c.F/2,y:o.1c.J/2},7Q:3,7N:1.5,5f:3,1V:L};G=1t.7a(4h,G);B(!G.1V){G.1V=o.1c.F2H;i=1<=2H?++H:--H){1b=1b.1N=1z 4S();B(i===1a){4a=1b}}1b.1N=2L;1m=L;1H=L;4I=1h=0;2N=6p[1V];2R=66[1V];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2p=2o=2l=1R=1S=1P=0;2A=1a*(1C=Y[1h]);2y=1a*(1D=Y[1h+1]);2z=1a*(1B=Y[1h+2]);1R+=2X*1C;1S+=2X*1D;1P+=2X*1B;1b=2L;W(i=1I=0;0<=1a?1I<1a:1I>1a;i=0<=1a?++1I:--1I){1b.r=1C;1b.g=1D;1b.b=1B;1b=1b.1N}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3rF;x=0<=F?++3x:--3x){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1S*2N)>>2R;Y[1h+2]=(1P*2N)>>2R;1R-=2A;1S-=2y;1P-=2z;2A-=1m.r;2y-=1m.g;2z-=1m.b;p=(4I+((p=x+1V+1)<3r?p:3r))<<2;2p+=(1m.r=Y[p]);2o+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2p;1S+=2o;1P+=2l;1m=1m.1N;2A+=(1C=1H.r);2y+=(1D=1H.g);2z+=(1B=1H.b);2p-=1C;2o-=1D;2l-=1B;1H=1H.1N;1h+=4}4I+=F}W(x=3s=0;0<=F?3sF;x=0<=F?++3s:--3s){2o=2l=2p=1S=1P=1R=0;1h=x<<2;2A=1a*(1C=Y[1h]);2y=1a*(1D=Y[1h+1]);2z=1a*(1B=Y[1h+2]);1R+=2X*1C;1S+=2X*1D;1P+=2X*1B;1b=2L;W(i=3l=0;0<=1a?3l<1a:3l>1a;i=0<=1a?++3l:--3l){1b.r=1C;1b.g=1D;1b.b=1B;1b=1b.1N}4M=F;W(i=3z=1;1<=1V?3z<=1V:3z>=1V;i=1<=1V?++3z:--3z){1h=(4M+x)<<2;1R+=(1b.r=(1C=Y[1h]))*(34=1a-i);1S+=(1b.g=(1D=Y[1h+1]))*34;1P+=(1b.b=(1B=Y[1h+2]))*34;2p+=1C;2o+=1D;2l+=1B;1b=1b.1N;B(i<3Z){4M+=F}}1h=x;1m=2L;1H=4a;W(y=3D=0;0<=J?3DJ;y=0<=J?++3D:--3D){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1S*2N)>>2R;Y[p+2]=(1P*2N)>>2R;1R-=2A;1S-=2y;1P-=2z;2A-=1m.r;2y-=1m.g;2z-=1m.b;p=(x+(((p=y+1a)<3Z?p:3Z)*F))<<2;1R+=(2p+=(1m.r=Y[p]));1S+=(2o+=(1m.g=Y[p+1]));1P+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2A+=(1C=1H.r);2y+=(1D=1H.g);2z+=(1B=1H.b);2p-=1C;2o-=1D;2l-=1B;1H=1H.1N;1h+=F}}u o});u D.R.V("5R",A(1V){u o.51("5R",[1V])})})();D.R.V("aD",A(Q){u o.2n("aD",A(C){M 6C;6C=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6C35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4E,2m,2b,D,59,44,1W,2J,6y,R,2U,4w,3a,1X,3K,1Z,2r,1Q,7O,31,1u,fs,6S,81,5o,8V,6J=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.5l=A(4I,3I,G){M 6s,H,1n,K,3P,1o;B(G==L){G={}}K=4I.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6s=K[H];B((G.7g!=L)&&(3P=6s.9Q,6J.1x(G.7g,3P)>=0)){67}1o.2j(3I.bh(6s.9Q,6s.fP))}u 1o};1u.68=A(P){B(P==L){P=0}B(D.2Y||(4y.ca!=L)){u 1y ca(P)}u 1y 5R(P)};u 1u})();B(1s 2h!=="3Q"&&2h!==L){7O=2h;44=6N(\'I\');4w=44.4w;6y=6N(\'fO\');fs=6N(\'fs\');6S=6N(\'6S\')}S{7O=4y}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5N=2W;D.9C="c3";D.7F="";D.c5="fH";D.2Y=1s 2h!=="3Q"&&2h!==L;D.ce=!D.2Y;D.5J=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Y){u 2W}B(1s I==="3c"){I=$(I)}B(!((I!=L)&&(I.5E!=L))){u L}u I.5E(\'2a-3M-2V\')};A D(){o.5C=8Q(o.5C,o);M 1l,1N,2V;B(1k.P===0){2K"5y 1k";}B(o aT D){o.5x=o.5x.9y(o);o.6z=o.6z.9y(o);1l=1k[0];B(!D.2Y){2V=4f(D.9z(1l[0]),10);1N=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2V)&&31.bR(2V)){u 31.3Z(2V,1N)}}o.2V=1u.9L.49();o.7G=o.4Q=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6G=[];o.9t=[];o.9s=[];o.6W=L;o.d6=2k;o.fz=1y 4E(o);o.4J=1y 1Q(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Y){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2i.9p==="7J"){1X.2s("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2i.9p==="7J"){1X.2s("aU aW");u cb.1x(1r)}}})(o);u 2i.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2v,2f,K,1o;B(1l.P===0){2K"5y 1k be";}o.3b=L;o.7K=L;o.7L=L;o.1N=A(){};o.bo(1l[0]);B(1l.P===1){u}5U(1s 1l[1]){28"3c":o.7L=1l[1];5c;28"A":o.1N=1l[1]}B(1l.P===2){u}o.1N=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2v 5a K){B(!6r.1x(K,2v))67;2f=K[2v];1o.2j(o.1G[2v]=2f)}u 1o}};D.N.bo=A(2A){B(D.2Y){o.3b=2A;o.7K=\'bS\';u}B(1s 2A==="3Y"){o.3b=2A}S{o.3b=$(2A)}B(o.3b==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3b.9Q.6I()};D.N.as=A(){5U(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1X.2s("fr W 2Y");B(1s o.3b==="3c"&&o.3b.82(/^cA?:\\/\\//)){u o.cD(o.3b,o.5C)}S B(1s o.3b==="3c"){u fs.fp(o.3b,o.5C)}S{u o.5C(L,o.3b)}};D.N.cD=A(6Z,1N){M 9g;1X.2s("fm 1d 4I "+6Z);9g=6S.49(6Z,A(4j){M 83;83=\'\';4j.fl(\'d7\');4j.9e(\'2a\',A(a7){u 83+=a7});u 4j.9e(\'1M\',A(){u 1N(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1N)};D.N.5C=A(6R,2a){B(6R){2K 6R;}o.1d=1y 4w();o.1d.1E=2a;1X.2s("4w au. ay = "+(o.46())+", aL = "+(o.3T()));o.I=1y 44(o.46(),o.3T());u o.5x()};D.N.cl=A(){o.1d=o.3b;o.I=2i.3H(\'I\');o.1j=o.I.3i(\'2d\');o.3w=2i.3H(\'I\');o.6x=o.3w.3i(\'2d\');1u.5l(o.1d,o.I,{7g:[\'1E\']});1u.5l(o.1d,o.3w,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.3w,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=o.3b;o.1j=o.I.3i(\'2d\');o.3w=2i.3H(\'I\');o.6x=o.3w.3i(\'2d\');B(o.7L!=L){o.1d=2i.3H(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5x()}};D.N.9b=A(){B(o.99()){1X.2s(o.1d.1E,"->",o.89());o.bi=2W;o.1d.1E=o.89()}B(2U.bj(o.1d)){o.1d.1E=2U.56(o.1d.1E);u 1X.2s("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9a=A(){B(o.bJ()){u o.6z()}S{u o.1d.bP=o.6z}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2W};D.N.46=A(){u o.1d.F||o.1d.94};D.N.3T=A(){u o.1d.J||o.1d.fg};D.N.6z=A(){1X.2s("4w au. ay = "+(o.46())+", aL = "+(o.3T()));B(o.bi){o.I.F=o.46()/o.6d();o.I.J=o.3T()/o.6d();o.3w.F=o.46()/o.6d();o.3w.J=o.3T()/o.6d()}S{o.I.F=o.46();o.I.J=o.3T();o.3w.F=o.46();o.3w.J=o.3T()}u o.5x()};D.N.5x=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3i(\'2d\')}o.8b=o.6g=o.F=o.I.F;o.8c=o.5u=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.5A(o.1d,0,0,o.46(),o.3T(),0,0,o.6g,o.5u);o.6x.5A(o.1d,0,0,o.46(),o.3T(),0,0,o.6g,o.5u)}o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a;B(D.5N){o.7G=1u.68(o.T.P);o.4Q=1u.68(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4Q[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Y){31.cs(o.2V,o)}o.1N.1x(o,o);u o.1N=A(){}};D.N.cy=A(){o.2S=o.1j.4K(0,0,o.I.F,o.I.J);u o.T=o.2S.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5N){2K"8Y 8d";}o.4Q=1u.68(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4Q[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Y||o.I.5E(\'2a-3M-2V\')){u}u o.I.bh(\'2a-3M-2V\',o.2V)};D.N.cH=A(){u o.I.5E(\'2a-3M-cK-8d\')!==L};D.N.cf=A(){M 4r;B(D.2Y||!o.99()){u}4r=o.6d();B(4r!==1){1X.2s("fe 4r = "+4r);o.d6=2W;o.6g=o.I.F;o.5u=o.I.J;o.I.F=o.6g*4r;o.I.J=o.5u*4r;o.I.cN.F=""+o.6g+"cQ";o.I.cN.J=""+o.5u+"cQ";o.1j.fd(4r,4r);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6d=A(){M 8W,4o;4o=4y.4o||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4o/8W};D.N.a8=A(){u(4y.4o!=L)&&4y.4o!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5E(\'2a-3M-cK\')};D.N.6T=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3i(\'2d\');o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a;B(D.5N){o.4Q=1u.68(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4Q[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1N){B(1N==L){1N=A(){}}2J.5m(o,"ai");u o.4J.3Z((A(1r){u A(){1r.3w.F=1r.I.F;1r.3w.J=1r.I.J;1r.6x.8S(1r.2S,0,0);u 1N.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2W}B(!D.5N){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.6x.8S(o.2S,0,0)}};D.N.f6=A(){M I,2E,i,2S,1w,T,H,1n,K;I=2i.3H(\'I\');1u.5l(o.I,I);I.F=o.8b;I.J=o.8c;2E=I.3i(\'2d\');2S=2E.4K(0,0,I.F,I.J);T=2S.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2E.8S(2S,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6T(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,3P,4e;B(!D.5N){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4Q;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2O+=Q[i]}}o.4J.4h({1v:R.3j.8I,1p:1p,Q:Q,2O:2O,3h:3h});u o};D.N.5h=A(4i,1l){o.4J.4h({1v:R.3j.2r,4i:4i,1l:1l});u o};D.N.32=A(1N){M 2g;2g=1y 3a(o);o.9s.2j(2g);o.4J.4h({1v:R.3j.8H});1N.1x(2g);o.4J.4h({1v:R.3j.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6W);o.6G.2j(o.T);o.6W=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6G.6A();u o.6W=o.9t.6A()};D.N.c1=A(){u o.6W.c2()};u D})(3K);7O.D=D;D.4E=(A(){A 4E(c){o.c=c}4E.N.f5=A(){M i,3r,6V,H,1f,1H,K;3r={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3r.r[i]=0;3r.g[i]=0;3r.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6u.P;H<1n;H++){1P=6u[H];1o.2j(cj=1y 59(1P,A(){o.ck();u o.3Z()}))}u 1o};B(D.ce){(A(){B(2i.9p==="7J"){u D.9m()}S{u 2i.aX("f3",D.9m,2k)}})()}59=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 59(4k,ct){o.cw=4k.5E(\'2a-3M\');o.3M=D(4k,ct.9y(o))}59.N.ck=A(){M 1l,e,1C,57,8K,8L,m,r,6L,H,1n,K,1o;o.4k=o.3M.I;r=1y cJ(8v,\'g\');6L=o.cw.82(r);B(!(6L.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6L.P;H<1n;H++){8K=6L[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{57=8L();1o.2j(57.1x(o.3M))}8N(6m){e=6m;1o.2j(1X.2s(e))}}u 1o};59.N.3Z=A(){M 4k;4k=o.4k;u o.3M.ac(A(){u 4k.9c.aY(o.cO(),4k)})};u 59})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,57){u o.8P[1p]=57};2m.3Z=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.52=A(72,73,6p,6q){u O.8l(O.1T(6p-72,2)+O.1T(6q-73,2))};2b.ab=A(1S,1e,6w){M 4g;B(6w==L){6w=2k}4g=1S+(O.f1()*(1e-1S));B(6w){u 4g.f0(6w)}S{u O.5Q(4g)}};2b.6E=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4D,4C,1M,5g,5k){M 29,6o,2z,26,i,j,5q,1L,3F,t,H,1f,K;B(5g==L){5g=0}B(5k==L){5k=E}B(1J[0]aT 5R){2z=1J;5g=4D;5k=4C}S{2z=[1J,4D,4C,1M]}B(2z.P<2){2K"5y 8e 8X 1k 3I 29";}29={};5q=A(a,b,t){u a*(1-t)+b*t};6o=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1L=[];W(j=1f=0,K=3F.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1L.2j([5q(3F[j][0],3F[j+1][0],t),5q(3F[j][1],3F[j+1][1],t)])}3F=1L}29[O.5Q(3F[0][0])]=O.5Q(6o(3F[0][1],5g,5k))}26=2z[2z.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2z,5g,5k){M 4h,6o,98,26,88,86,85,84,i,j,5q,9f,9h,4F,p,5Y,5Z,4H,7Z,7Y,3z,7W,t,H,1f,K;B(2z.P<2){2K"5y 8e 8X 1k 3I bE";}3z={};5q=A(a,b,t){u a*(1-t)+b*t};4h=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4F=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);6o=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};98=0;W(i=H=0,K=2z.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5Y=2z[i];5Z=2z[i+1];4H=5Z[0]-5Y[0];7Z=1/4H;B(i===2z.P-2){7Z=1/(4H-1)}p=i>0?2z[i-1]:5Y;9f=4F(7W(5Z,p),[0.5,0.5]);p=i<2z.P-2?2z[i+2]:5Z;9h=4F(7W(p,5Y),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4h(4F(5Y,[88,88]),4F(9f,[86,86]),4F(5Z,[85,85]),4F(9h,[84,84]));3z[O.5Q(7Y[0])]=O.5Q(6o(7Y[1],5g,5k));98+=1}}26=2z[2z.P-1][0];3z=D.2b.91(3z,26);u 3z};2b.91=A(5d,26){M i,j,6b,3z,7V,H,1f;B(bk.eX(5d).P<26+1){3z={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(5d[i]!=L){3z[i]=5d[i]}S{6b=[i-1,3z[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(5d[j]!=L){7V=[j,5d[j]];5c}}3z[i]=6b[1]+((7V[1]-6b[1])/(7V[0]-6b[0]))*(i-6b[0])}}u 3z}u 5d};u 2b})();2b=D.2b;D.1W=(A(){A 1W(){}1W.7U=A(3L){M b,g,r;B(3L.eW(0)==="#"){3L=3L.51(1)}r=4f(3L.51(0,2),16);g=4f(3L.51(2,2),16);b=4f(3L.51(4,2),16);u{r:r,g:g,b:b}};1W.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="3Y"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5U(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1W.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5U(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3y)/1.3y,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3y)/1.3y,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3y)/1.3y,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1W.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3y*O.1T(r,0.9q))-0.3y}S{r*=12.92}B(g>0.9n){g=(1.3y*O.1T(g,0.9q))-0.3y}S{g*=12.92}B(b>0.9n){b=(1.3y*O.1T(b,0.9q))-0.3y}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1W.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="3Y"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5V}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5V}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5V}l=aQ*y-16;a=aR*(x-y);b=5W*(y-z);u{l:l,a:a,b:b}};1W.eD=A(l,a,b){M x,y,z;B(1s l==="3Y"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5W);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5V)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5V)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5V)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1W.eC=A(r,g,b){M 9V;B(1s r==="3Y"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1W.eB=A(l,a,b){};u 1W})();1W=D.1W;D.2J=(A(){A 2J(){}2J.5b={};2J.b1=["b6","bb","ai","bc","bd","63"];2J.5m=A(34,1v,2a){M 6F,H,1n,K,1o;B(2a==L){2a=L}B(o.5b[1v]&&o.5b[1v].P){K=o.5b[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6F=K[H];B(6F.34===L||34.2V===6F.34.2V){1o.2j(6F.fn.1x(34,2a))}S{1o.2j(bg 0)}}u 1o}};2J.eA=A(34,1v,fn){M 9W,9X;B(1s 34==="3c"){9X=34;9W=1v;34=L;1v=9X;fn=9W}B(6J.1x(o.b1,1v)<0){u 2k}B(!o.5b[1v]){o.5b[1v]=[]}o.5b[1v].2j({34:34,fn:fn});u 2W};u 2J})();2J=D.2J;D.R=(A(){A R(){}R.3j={8J:1,8I:2,8H:3,8G:4,9Y:5,2r:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2U=(A(){A 2U(){}2U.bm=/(?:(?:6S|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2U.bj=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2U.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6I())===\'c3\'||K===\'bp-ez\')};2U.7h=A(6Z){M 7d;7d=6Z.82(o.bm);B(7d){u 7d[1]!==2i.ey}S{u 2k}};2U.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1X.a2("ex 3I ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7h(D.7F)){1X.a2("es bp a bH bK W er eq.");u}u o.56(1E)}}};2U.56=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2U.eo=A(5j){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5j=5j.6I();B(8z[5j]!=L){5j=8z[5j]}u"ee/ed."+5j};u 2U})();D.N.c6=A(){B(1s 2h!=="3Q"&&2h!==L){u o.c7.4n(o,1k)}S{u o.c8.4n(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6I();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2i.e9.e8=1d};D.N.c7=A(6a,7b,1N){M e,a1;B(7b==L){7b=2W}B(1N==L){1N=L}8M{a1=fs.e7(6a);B(a1.e6()&&!7b){u 2k}}8N(6m){e=6m;1X.2s("e5 e4 6a "+6a)}u fs.e3(6a,o.I.e2(),A(6R){1X.2s("e1 e0 3I "+6a);B(1N){u 1N.1x(o,6R)}})};D.N.cO=A(1v){M 1P;1P=1y 4w();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4y.4o){1P.F/=4y.4o;1P.J/=4y.4o}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6I();u o.I.dZ("1d/"+1v)};2U=D.2U;D.3a=(A(){A 3a(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2p:1.0};o.dY=1u.9L.49();o.I=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3i(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a}3a.N.32=A(cb){u o.c.32.1x(o.c,cb)};3a.N.3A=A(cx){o.1G.a0=cx;u o};3a.N.2p=A(2p){o.1G.2p=2p/1i;u o};3a.N.4a=A(){M i,2Z,H,K;2Z=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3O<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3O)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5T a 5S 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3O>o.c.T.P||3O<0){u}o.c.T[3O]=C.r;o.c.T[3O+1]=C.g;o.c.T[3O+2]=C.b;o.c.T[3O+3]=C.a;u 2W};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5T a 5S 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5T a 5S 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5J=A(){u o.dR()};1Z.N.dQ=A(7B){M 3L;B(7B==L){7B=2k}3L=\'#\'+o.r.5J(16)+o.g.5J(16)+o.b.5J(16);B(7B){u 3L+o.a.5J(16)}S{u 3L}};u 1Z})();1Z=D.1Z;D.2r=(A(){A 2r(){}2r.9G={};2r.V=A(1p,4i){u o.9G[1p]=4i};2r.3Z=A(1j,1p,1l){u o.9G[1p].4n(1j,1l)};u 2r})();2r=D.2r;D.1Q=(A(){1Q.4V=D.2Y?6N(\'dP\').dO().P:4;A 1Q(c){o.c=c;o.4m=8Q(o.4m,o);o.6B=[];o.54=L}1Q.N.4h=A(9x){B(9x==L){u}u o.6B.2j(9x)};1Q.N.4m=A(){M 2g;B(o.6B.P===0){2J.5m(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6B.d9();5U(o.2c.1v){28 R.3j.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4m();28 R.3j.8G:o.c.c1();o.c.bZ();u o.4m();28 R.3j.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3j.2r:u o.db();dN:u o.a6()}};1Q.N.3Z=A(1N){o.9v=1N;o.54=1u.68(o.c.T.P);u o.4m()};1Q.N.9o=A(fn){M 71,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2L((n/4)/1Q.4V);71=8B*4;9l=71+((n/4)%1Q.4V)*4;1o=[];W(i=H=0,K=1Q.4V;0<=K?HK;i=0<=K?++H:--H){1J=i*71;1M=1J+(i===1Q.4V-1?9l:71);B(D.2Y){f=6y((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.63(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1Q.N.a6=A(){2J.5m(o.c,"b6",o.2c);B(o.2c.1v===R.3j.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1Q.N.db=A(){1X.2s("dL 4i "+o.2c.4i);2r.3Z(o.c,o.2c.4i,o.2c.1l);1X.2s("2r "+o.2c.4i+" 9k!");u o.4m()};1Q.N.af=A(2Q,1J,1M){M i,1w,H;1X.2s("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2J.5m(o.c,"bd",{am:2Q,an:1Q.4V,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3E(1w.r);o.c.T[i+1]=1u.3E(1w.g);o.c.T[i+2]=1u.3E(1w.b);o.c.T[i+3]=1u.3E(1w.a)}B(D.2Y){u 6y["aq"](2Q)}S{u o.63(2Q)}};1Q.N.ag=A(2Q,1J,1M){M Q,6D,3h,2T,5p,2O,i,j,k,2F,n,1p,p,1w,4j,H,1f,1H;1p=o.2c.1p;3h=o.2c.3h;2O=o.2c.2O;n=o.c.T.P;Q=o.2c.Q;6D=O.8l(Q.P);2F=[];1X.2s("dG 2F - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6D-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6D-1)/2)));2T=(6D-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;5p=0;W(j=1f=-2T;-2T<=2T?1f<=2T:1f>=2T;j=-2T<=2T?++1f:--1f){W(k=1H=2T;2T<=-2T?1H<=-2T:1H>=-2T;k=2T<=-2T?++1H:--1H){p=1w.cP(j,k);2F[5p*3]=p.r;2F[5p*3+1]=p.g;2F[5p*3+2]=p.b;5p++}}4j=o.3J(Q,2F,2O,3h);o.54[i]=1u.3E(4j.r);o.54[i+1]=1u.3E(4j.g);o.54[i+2]=1u.3E(4j.b);o.54[i+3]=o.c.T[i+3]}B(D.2Y){u 6y["aq"](2Q)}S{u o.63(2Q)}};1Q.N.63=A(2Q){M i,H,K;B(2Q>=0){1X.2s("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2J.5m(o.c,"63",{am:2Q,dF:o.7P,an:1Q.4V});B(o.7P===1Q.4V){B(o.2c.1v===R.3j.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.54[i]}}B(2Q>=0){1X.2s("R "+o.2c.1p+" 9k!")}2J.5m(o.c,"bb",o.2c);u o.4m()}};1Q.N.3J=A(Q,2F,2O,3h){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2F[i*3];2f.g+=Q[i]*2F[i*3+1];2f.b+=Q[i]*2F[i*3+2]}2f.r=(2f.r/2O)+3h;2f.g=(2f.g/2O)+3h;2f.b=(2f.b/2O)+3h;u 2f};1Q.N.da=A(2g,1E){M 1P,56;1P=1y 4w();1P.bP=(A(1r){u A(){2g.1j.5A(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2S=2g.1j.4K(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2S.2a;1r.c.T=2g.T;u 1r.4m()}})(o);56=2U.bu(1E);u 1P.1E=56!=L?56:1E};u 1Q})();1Q=D.1Q;D.31=(A(){A 31(){}31.6e={};31.bR=A(4L){u o.6e[4L]!=L};31.49=A(4L){u o.6e[4L]};31.cs=A(1p,2A){u o.6e[1p]=2A};31.3Z=A(4L,1N){7I((A(1r){u A(){u 1N.1x(1r.49(4L),1r.49(4L))}})(o),0);u o.49(4L)};31.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.6e[1p]}S{u o.6e={}}};u 31})();31=D.31;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("65",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4R",A(){M 3d;B(1k.P===1){3d=1W.7U(1k[0])}S{3d={r:1k[0],g:1k[1],b:1k[2]}}u o.2o("4R",A(C){C.r=3d.r;C.g=3d.g;C.b=3d.b;C.a=E;u C})});R.V("3l",A(Q){Q=O.2L(E*(Q/1i));u o.2o("3l",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3G",A(Q){Q*=-0.dy;u o.2o("3G",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("43",A(Q){Q*=-1;u o.2o("43",A(C){M 1q,4B,1e;1e=O.1e(C.r,C.g,C.b);4B=(C.r+C.g+C.b)/3;1q=((O.4A(1e-4B)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4z",A(Q){u o.2o("4z",A(C){M 4B;4B=2b.6E(C);C.r=4B;C.g=4B;C.b=4B;u C})});R.V("2u",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2o("2u",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2o("93",A(C){M b,g,h,5f,r,K;5f=1W.cC(C.r,C.g,C.b);h=5f.h*1i;h+=O.4A(Q);h=h%1i;h/=1i;5f.h=h;K=1W.cE(5f.h,5f.s,5f.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4p",A(){M 5z,3e;B(1k.P===2){3e=1W.7U(1k[0]);5z=1k[1]}S B(1k.P===4){3e={r:1k[0],g:1k[1],b:1k[2]};5z=1k[3]}u o.2o("4p",A(C){C.r-=(C.r-3e.r)*(5z/1i);C.g-=(C.g-3e.g)*(5z/1i);C.b-=(C.b-3e.b)*(5z/1i);u C})});R.V("b0",A(){u o.2o("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4s",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2o("4s",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2t",A(Q){u o.2o("2t",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4A(Q)*2.55;u o.2o("8i",A(C){M 4g;4g=2b.ab(Q*-1,Q);C.r+=4g;C.g+=4g;C.b+=4g;u C})});R.V("8j",A(Q){Q=O.4A(Q)*2.55;u o.2o("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3f}S{C.r-=C.r*O.4A(1G.3f)}}B(1G.4X!=L){B(1G.4X>0){C.g+=(E-C.g)*1G.4X}S{C.g-=C.g*O.4A(1G.4X)}}B(1G.3V!=L){B(1G.3V>0){C.b+=(E-C.b)*1G.3V}S{C.b-=C.b*O.4A(1G.3V)}}u C})});R.V("2e",A(){M 6O,29,48,3N,1M,i,61,1J,H,1f,K,3P;48=1k[0],3N=2<=1k.P?5H.1x(1k,1):[];61=3N[3N.P-1];B(1s 61==="A"){6O=61;3N.6A()}S B(1s 61==="3c"){6O=2b[61];3N.6A()}S{6O=2b.29}B(1s 48==="3c"){48=48.do("")}B(48[0]==="v"){48=[\'r\',\'g\',\'b\']}B(3N.P<2){2K"5y 8e 8X 1k 3I 2e 1C";}29=6O(3N,0,E);1J=3N[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3N[3N.P-1];B(1M[0]=E;i=3P<=E?++1f:--1f){29[i]=1M[1]}}u o.2o("2e",A(C){M 1H,4e;W(i=1H=0,4e=48.P;0<=4e?1H<4e:1H>4e;i=0<=4e?++1H:--1H){C[48[i]]=29[C[48[i]]]}u C})});R.V("39",A(Q){M 4D,4C,p;p=O.4A(Q)/1i;4D=[0,E*p];4C=[E-(E*p),E];B(Q<0){4D=4D.br();4C=4C.br()}u o.2e(\'3e\',[0,0],4D,4C,[E,E])});D.2r.V("8F",A(F,J,x,y){M I,2E;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="3Q"&&2h!==L){I=1y 44(F,J)}S{I=2i.3H(\'I\');1u.5l(o.I,I);I.F=F;I.J=J}2E=I.3i(\'2d\');2E.5A(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2W;u o.6T(I)});D.2r.V("8x",A(2D){M I,2E;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1X.9d("5y cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="3Q"&&2h!==L){I=1y 44(2D.F,2D.J)}S{I=2i.3H(\'I\');1u.5l(o.I,I);I.F=2D.F;I.J=2D.J}2E=I.3i(\'2d\');2E.5A(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2W;u o.6T(I)});D.R.V("8F",A(){u o.5h("8F",5R.N.5o.1x(1k,0))});D.R.V("8x",A(){u o.5h("8x",5R.N.5o.1x(1k,0))});D.R.V("dm",A(){u o.3J("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3J("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3J("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3q){M 2F;B(3q===0||3q===4d){2F=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3q>0&&3q<90)||(3q>4d&&3q<8w)){2F=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3q===90||3q===8w){2F=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2F=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3J("de 8A",2F)});D.R.V("6K",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3J("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3l:A(C,1q,G){C.r=C.r-(C.r*1q*G.3g);C.g=C.g-(C.g*1q*G.3g);C.b=C.b-(C.b*1q*G.3g);u C},2t:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3g,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3g,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3g,1))*E;u C},4p:A(C,1q,G){C.r-=(C.r-G.3d.r)*1q;C.g-=(C.g-G.3d.g)*1q;C.b-=(C.b-G.3d.b)*1q;u C}};R.V("1V",A(1t,3g){M 29,3B,1M,1J;B(3g==L){3g=60}B(1s 1t==="3c"&&1t.51(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4f(1t.51(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4f(1t.51(0,1t.P-1),10)/1i)}}3g/=1i;3B=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3B[0],2)+O.1T(3B[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2o("1V",A(C){M 8p,2I,U;U=C.9M();8p=2b.52(U.x,U.y,3B[0],3B[1]);B(8p>1M){2I=O.1e(1,(29[O.5Q(((8p-1M)/1t)*1i)]/10)*3g);C.r=O.1T(C.r/E,2I)*E;C.g=O.1T(C.g/E,2I)*E;C.b=O.1T(C.b/E,2I)*E}u C})});R.V("bY",A(G){M 4u,6i,8k,1t,H,1n,K;4u={3g:50,2H:0,8U:\'3l\',3d:{r:0,g:0,b:0}};G=1u.79(4u,G);B(!G.1t){u o}S B(1s G.1t==="3c"){8k=4f(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="3Y"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){6i=K[H];B(1s G.1t[6i]==="3c"){G.1t[6i]=o.1c[6i]*(4f(G.1t[6i],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2H==="3c"){G.2H=(G.1t.F/2)*(4f(G.2H,10)/1i)}G.3g/=1i;G.1t.F=O.2L(G.1t.F);G.1t.J=O.2L(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4p"&&1s G.3d==="3c"){G.3d=1W.7U(G.3d)}G.1Y={5e:(o.1c.F-G.1t.F)/2,64:o.1c.F-G.1Y.5e,53:(o.1c.J-G.1t.J)/2,5s:o.1c.J-G.1Y.53};G.1z=[{x:G.1Y.5e+G.2H,y:G.1Y.5s-G.2H},{x:G.1Y.64-G.2H,y:G.1Y.5s-G.2H},{x:G.1Y.64-G.2H,y:G.1Y.53+G.2H},{x:G.1Y.5e+G.2H,y:G.1Y.53+G.2H}];G.4c=2b.52(0,0,G.1z[3].x,G.1z[3].y)-G.2H;u o.2o("bY",A(C){M 1q,U,4b;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1Y.53&&U.yG.1Y.5e&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1Y.5s){1q=(U.y-G.1Y.5s)/G.4c}S B(U.y>G.1z[2].y&&U.yG.1Y.64){1q=(U.x-G.1Y.64)/G.4c}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4b=D.52(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4b-G.2H)/G.4c}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4b=D.52(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4b-G.2H)/G.4c}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4b=D.52(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4b-G.2H)/G.4c}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4b=D.52(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4b-G.2H)/G.4c}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4M,96,97,5w,62;5w=[2P,2P,37,2P,3u,37,3D,2P,42,3u,3v,37,3S,3D,3R,2P,4U,42,4W,3u,4Y,3v,4T,37,4G,3S,4l,3D,38,3R,4v,2P,6n,4U,47,42,66,4W,6f,3u,38,4Y,6h,3v,4O,4T,4P,37,5r,4G,5v,3S,5G,4l,5I,3D,5K,38,5L,3R,5X,4v,3X,2P,7D,6n,7C,4U,7A,47,7x,42,7w,66,7v,4W,4N,6f,7u,3u,69,38,7t,4Y,7s,6h,4x,3v,3X,4O,7r,4T,7q,4P,7o,37,7n,5r,47,4G,7m,5v,7k,3S,7j,5G,7i,4l,4N,5I,6c,3D,7f,5K,7e,38,7c,5L,7a,3R,6j,5X,4x,4v,78,3X,76,2P,bU,7D,bN,6n,4P,7C,bL,4U,bG,7A,bF,47,bD,7x,bC,42,bB,7w,bA,66,bz,7v,bx,4W,bw,4N,74,6f,6c,7u,8u,3u,ba,69,b9,38,b8,7t,b7,4Y,8g,7s,6j,6h,b5,4x,b4,3v,b3,3X,b2,4O,aO,7r,aK,4T,aJ,7q,aH,4P,aF,7o,aC,37,az,7n,ax,5r,aw,47,ap,4G,ao,7m,al,5v,ak,7k,ah,3S,ae,7j,dc,5G,d3,7i,d2,4l,cY,4N,74,5I,cX,6c,cW,3D,8u,7f,cV,5K,69,7e,cT,38,cG,7c,cB,5L,8T,7a,8g,3R,cv,6j,cu,5X,cq,4x,cp,4v,3v,78,co,3X,cn,76,4O];62=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6l,6k,2G,P,c0){M 41,1j,2w,72,6p,73,6q;41=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');41.F=F;41.J=J;72=6l+O.bW(2G)*P*0.5;73=6k+O.bV(2G)*P*0.5;6p=6l-O.bW(2G)*P*0.5;6q=6k-O.bV(2G)*P*0.5;1j=41.3i("2d");2w=1j.en(72,73,6p,6q);B(!c0){2w.5i(0,"77");2w.5i(1,"a4")}S{2w.5i(0,"77");2w.5i(0.5,"a4");2w.5i(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4K(0,0,F,J)};97=A(F,J,6l,6k,6Q,6P){M 41,1j,2w;41=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');41.F=F;41.J=J;1j=41.3i("2d");2w=1j.ev(6l,6k,6Q,6l,6k,6P);2w.5i(1,"77");2w.5i(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4K(0,0,F,J)};4M=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1L=L};D.2r.V("a3",A(by,1U,bq,7l){M 2l,2B,1O,5M,6Y,2I,2n,2x,1K,J,3U,i,6U,2C,3n,7M,3W,6M,2N,p,1D,1A,Y,1B,2q,2y,1R,9i,1a,33,2R,1b,4t,1m,1I,2M,5n,2X,8h,8f,5D,F,3t,x,y,1h,4S,4Z,H,1f,1H,3m,3p,3o,3s,3x,3C,5F;F=o.1c.F;J=o.1c.J;3n=o.T;9i=by.2a;8f=F*J;5D=8f<<2;Y=[];W(i=H=0;0<=5D?H<5D:H>5D;i=0<=5D?++H:--H){Y[i]=3n[i]}6Y=0;5n=7l;7l-=1;8Z(5n-->=0){3W=(1U+0.5)|0;B(3W===0){67}B(3W>6t){3W=6t}2I=3W+3W+1;8h=F<<2;3t=F-1;3U=J-1;1a=3W+1;2X=1a*(1a+1)/2;2M=1y 4M();4t=bg 0;1b=2M;W(i=1f=1;1<=2I?1f<2I:1f>2I;i=1<=2I?++1f:--1f){1b=1b.1L=1y 4M();B(i===1a){4t=1b}}1b.1L=2M;1m=L;1I=L;4Z=1h=0;2N=5w[3W];2R=62[3W];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1R=1K=1O=0;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3m=0;0<=1a?3m<1a:3m>1a;i=0<=1a?++3m:--3m){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}W(i=3p=1;1<=1a?3p<1a:3p>1a;i=1<=1a?++3p:--3p){p=1h+((3tF;x=0<=F?++3o:--3o){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1K*2N)>>2R;Y[1h+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(4Z+((p=x+1a)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2q;1K+=2n;1O+=2l;1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=4}4Z+=F}W(x=3s=0;0<=F?3sF;x=0<=F?++3s:--3s){2n=2l=2q=1K=1O=1R=0;1h=x<<2;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3x=0;0<=1a?3x<1a:3x>1a;i=0<=1a?++3x:--3x){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}4S=F;W(i=3C=1;1<=1a?3C<1a:3C>1a;i=1<=1a?++3C:--3C){1h=(4S+x)<<2;1R+=(1b.r=(1B=Y[1h]))*(33=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*33;1O+=(1b.b=(1D=Y[1h+2]))*33;2q+=1B;2n+=1A;2l+=1D;1b=1b.1L;B(i<3U){4S+=F}}1h=x;1m=2M;1I=4t;W(y=5F=0;0<=J?5FJ;y=0<=J?++5F:--5F){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1K*2N)>>2R;Y[p+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=F}}1U*=bq;i=8f;8Z(--i>-1){2C=i<<2;6M=(9i[2C+2]&fo)/E.0*7l;7M=6M|0;B(7M===6Y){5M=6t.0*(6M-(6M|0));6U=6t-5M;3n[2C]=(3n[2C]*6U+Y[2C]*5M)>>8;3n[2C+1]=(3n[2C+1]*6U+Y[2C+1]*5M)>>8;3n[2C+2]=(3n[2C+2]*6U+Y[2C+2]*5M)>>8}S B(7M===6Y+1){3n[2C]=Y[2C];3n[2C+1]=Y[2C+1];3n[2C+2]=Y[2C+2]}}6Y++}u o});D.R.V("fq",A(G){M 4u,2w;4u={3B:{x:o.1c.F/2,y:o.1c.J/2},2G:45,cd:5W,7R:3,7Q:1.5,5n:3};G=1u.79(4u,G);G.2G*=O.aZ/4d;2w=96(o.1c.F,o.1c.J,G.3B.x,G.3B.y,G.2G,G.cd,2W);u o.5h("a3",[2w,G.7R,G.7Q,G.5n])});u D.R.V("fx",A(G){M 4u,2w,6Q,6P;4u={1t:50,3B:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5n:3,1U:L};G=1u.79(4u,G);B(!G.1U){G.1U=o.1c.F2I;i=1<=2I?++H:--H){1b=1b.1L=1y 4M();B(i===1a){4t=1b}}1b.1L=2M;1m=L;1I=L;4Z=1h=0;2N=5w[1U];2R=62[1U];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1R=1K=1O=0;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3tF;x=0<=F?++3p:--3p){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1K*2N)>>2R;Y[1h+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(4Z+((p=x+1U+1)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2q;1K+=2n;1O+=2l;1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=4}4Z+=F}W(x=3o=0;0<=F?3oF;x=0<=F?++3o:--3o){2n=2l=2q=1K=1O=1R=0;1h=x<<2;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3s=0;0<=1a?3s<1a:3s>1a;i=0<=1a?++3s:--3s){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}4S=F;W(i=3x=1;1<=1U?3x<=1U:3x>=1U;i=1<=1U?++3x:--3x){1h=(4S+x)<<2;1R+=(1b.r=(1B=Y[1h]))*(33=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*33;1O+=(1b.b=(1D=Y[1h+2]))*33;2q+=1B;2n+=1A;2l+=1D;1b=1b.1L;B(i<3U){4S+=F}}1h=x;1m=2M;1I=4t;W(y=3C=0;0<=J?3CJ;y=0<=J?++3C:--3C){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1K*2N)>>2R;Y[p+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=F}}u o});u D.R.V("5t",A(1U){u o.5h("5t",[1U])})})();D.R.V("aD",A(Q){u o.2o("aD",A(C){M 6E;6E=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6E35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2V,1y,1F,B,38,30,1q,1S,3T,V,1M,2T,22,1o,2f,1r,1P,1g,4F,1X,19,3l,4b,4q,3y,3Y=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};19.3Q=o(2K,2l,4i){I 4k,C,13,E,2q,X;u(4i==G){4i={}}E=2K.bm;X=[];U(C=0,13=E.K;C<13;C++){4k=E[C];u((4i.5c!=G)&&(2q=4k.5f,3Y.1a(4i.5c,2q)>=0)){4g}X.1A(2l.7n(4k.5f,4k.bn))}9 X};19.32=o(K){u(K==G){K=0}u(B.1W||(2Q.7o!=G)){9 1m 7o(K)}9 1m 45(K)};9 19})();u(1f 1Z!=="3d"&&1Z!==G){4F=1Z;30=4j(\'F\');2T=30.2T;3T=4j(\'bl\');3l=4j(\'3l\');4b=4j(\'4b\')}R{4F=2Q}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1C;B.3A=2k;B.5O="86";B.4z="";B.8c="9q";B.1W=1f 1Z!=="3d"&&1Z!==G;B.8m=!B.1W;B.3n=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.1W){9 2k}u(1f F==="2X"){F=$(F)}u(!((F!=G)&&(F.3o!=G))){9 G}9 F.3o(\'1z-2g-1R\')};o B(){8.3p=5T(8.3p,8);I W,1h,1R;u(Y.K===0){1U"3v Y";}u(8 6A B){8.3M=8.3M.5p(8);8.4l=8.4l.5p(8);W=Y[0];u(!B.1W){1R=59(B.63(W[0]),10);1h=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1R)&&1X.6P(1R)){9 1X.2t(1R,1h)}}8.1R=19.5q.2D();8.3P=8.2J=G;8.5m={x:0,y:0};8.82=1C;8.5s=1C;8.be=1C;8.bd=0;8.41=[];8.5t=[];8.5u=[];8.40=G;8.6R=1C;8.aT=1m 2V(8);8.2N=1m 1g(8);8.7T((o(11){9 o(){11.80(W);9 11.8g()}})(8));9 8}R{9 1m B(Y)}}B.H.7T=o(3J){I 5C;u(B.1W){9 4V((o(11){9 o(){9 3J.1a(11)}})(8),0)}R{u(1J.5D==="5b"){1o.1D("6B 6G");9 4V((o(11){9 o(){9 3J.1a(11)}})(8),0)}R{5C=(o(11){9 o(){u(1J.5D==="5b"){1o.1D("6B 6G");9 3J.1a(11)}}})(8);9 1J.6L("ap",5C,1C)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1U"3v Y 6M";}8.21=G;8.54=G;8.57=G;8.1h=o(){};8.6W(W[0]);u(W.K===1){9}3r(1f W[1]){1v"2X":8.57=W[1];39;1v"o":8.1h=W[1]}u(W.K===2){9}8.1h=W[2];u(W.K===4){E=W[4];X=[];U(1B 36 E){u(!47.1a(E,1B))4g;1w=E[1B];X.1A(8.1d[1B]=1w)}9 X}};B.H.6W=o(1H){u(B.1W){8.21=1H;8.54=\'6Z\';9}u(1f 1H==="2v"){8.21=1H}R{8.21=$(1H)}u(8.21==G){1U"al a8 a7 S 7h F U a3.";}9 8.54=8.21.5f.4a()};B.H.8g=o(){3r(8.54){1v"6Z":9 8.7w();1v"1i":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1o.1D("9N U 1W");u(1f 8.21==="2X"&&8.21.4A(/^7E?:\\/\\//)){9 8.7F(8.21,8.3p)}R u(1f 8.21==="2X"){9 3l.9E(8.21,8.3p)}R{9 8.3p(G,8.21)}};B.H.7F=o(4h,1h){I 66;1o.1D("9A S 2K "+4h);66=4b.2D(4h,o(2u){I 4J;4J=\'\';2u.9s(\'8d\');2u.6m(\'1z\',o(8f){9 4J+=8f});9 2u.6m(\'1s\',o(){9 1h(G,1m 91(4J,\'8d\'))})});9 66.6m(\'6t\',1h)};B.H.3p=o(3W,1z){u(3W){1U 3W;}8.S=1m 2T();8.S.1b=1z;1o.1D("2T 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));8.F=1m 30(8.2m(),8.2n());9 8.3M()};B.H.7A=o(){8.S=8.21;8.F=1J.2W(\'F\');8.1c=8.F.2o(\'2d\');8.26=1J.2W(\'F\');8.3U=8.26.2o(\'2d\');19.3Q(8.S,8.F,{5c:[\'1b\']});19.3Q(8.S,8.26,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.26,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=8.21;8.1c=8.F.2o(\'2d\');8.26=1J.2W(\'F\');8.3U=8.26.2o(\'2d\');u(8.57!=G){8.S=1J.2W(\'1i\');8.S.1b=8.57;8.5Z();9 8.5Y()}R{9 8.3M()}};B.H.5Z=o(){u(8.5X()){1o.1D(8.S.1b,"->",8.4H());8.7m=2k;8.S.1b=8.4H()}u(1M.7k(8.S)){8.S.1b=1M.33(8.S.1b);9 1o.1D("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4l()}R{9 8.S.73=8.4l}};B.H.78=o(){u(!8.S.5b){9 1C}u((8.S.5P!=G)&&8.S.5P===0){9 1C}9 2k};B.H.2m=o(){9 8.S.M||8.S.5P};B.H.2n=o(){9 8.S.Q||8.S.an};B.H.4l=o(){1o.1D("2T 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));u(8.7m){8.F.M=8.2m()/8.3B();8.F.Q=8.2n()/8.3B();8.26.M=8.2m()/8.3B();8.26.Q=8.2n()/8.3B()}R{8.F.M=8.2m();8.F.Q=8.2n();8.26.M=8.2m();8.26.Q=8.2n()}9 8.3M()};B.H.3M=o(){I i,14,C,13,E;u(8.1c==G){8.1c=8.F.2o(\'2d\')}8.5N=8.3D=8.M=8.F.M;8.5M=8.3E=8.Q=8.F.Q;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1c.3S(8.S,0,0,8.2m(),8.2n(),0,0,8.3D,8.3E);8.3U.3S(8.S,0,0,8.2m(),8.2n(),0,0,8.3D,8.3E)}8.1T=8.1c.3G(0,0,8.F.M,8.F.Q);8.L=8.1T.1z;u(B.3A){8.3P=19.32(8.L.K);8.2J=19.32(8.L.K);E=8.L;U(i=C=0,13=E.K;C<13;i=++C){14=E[i];8.3P[i]=14;8.2J[i]=14}}8.1I={M:8.F.M,Q:8.F.Q};u(!B.1W){1X.6K(8.1R,8)}8.1h.1a(8,8);9 8.1h=o(){}};B.H.6z=o(){8.1T=8.1c.3G(0,0,8.F.M,8.F.Q);9 8.L=8.1T.1z};B.H.aG=o(){I i,14,C,13,E,X;u(!B.3A){1U"5E 4y";}8.2J=19.32(8.L.K);E=8.L;X=[];U(i=C=0,13=E.K;C<13;i=++C){14=E[i];X.1A(8.2J[i]=14)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.1W||8.F.3o(\'1z-2g-1R\')){9}9 8.F.7n(\'1z-2g-1R\',8.1R)};B.H.6w=o(){9 8.F.3o(\'1z-2g-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.1W||!8.5X()){9}2E=8.3B();u(2E!==1){1o.1D("aH 2E = "+2E);8.6R=2k;8.3D=8.F.M;8.3E=8.F.Q;8.F.M=8.3D*2E;8.F.Q=8.3E*2E;8.F.8w.M=""+8.3D+"8u";8.F.8w.Q=""+8.3E+"8u";8.1c.aK(2E,2E);8.M=8.5N=8.F.M;9 8.Q=8.5M=8.F.Q}};B.H.3B=o(){I 5B,2C;2C=2Q.2C||1;5B=8.1c.aU||8.1c.aV||8.1c.b6||8.1c.b7||8.1c.b8||1;9 2C/5B};B.H.7p=o(){9(2Q.2C!=G)&&2Q.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1C}9 8.4H()!==G};B.H.4H=o(){u(8.S==G){9 G}9 8.S.3o(\'1z-2g-6v\')};B.H.4O=o(7e){I i,14,C,13,E;8.F=7e;8.1c=8.F.2o(\'2d\');8.1T=8.1c.3G(0,0,8.F.M,8.F.Q);8.L=8.1T.1z;u(B.3A){8.3P=19.32(8.L.K);8.2J=19.32(8.L.K);E=8.L;U(i=C=0,13=E.K;C<13;i=++C){14=E[i];8.3P[i]=14;8.2J[i]=14}}8.M=8.F.M;8.Q=8.F.Q;8.6z();9 8.1I={M:8.F.M,Q:8.F.Q}};B.H.72=o(1h){u(1h==G){1h=o(){}}1S.34(8,"6Y");9 8.2N.2t((o(11){9 o(){11.26.M=11.F.M;11.26.Q=11.F.Q;11.3U.5v(11.1T,0,0);9 1h.1a(11)}})(8))};B.H.bf=o(4U){I i,14,C,13,E;u(4U==G){4U=2k}u(!B.3A){1U"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){14=E[i];8.L[i]=14}u(4U){9 8.3U.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,14,L,C,13,E;F=1J.2W(\'F\');19.3Q(8.F,F);F.M=8.5N;F.Q=8.5M;2p=F.2o(\'2d\');1T=2p.3G(0,0,F.M,F.Q);L=1T.1z;E=8.3P;U(i=C=0,13=E.K;C<13;i=++C){14=E[i];L[i]=14}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1C;9 8.4O(F)};B.H.7r=o(){I 4Y,1p,5n,i,L,51,52,53,M,C,E,2q,2y;u(!B.3A){1U"5E 4y";}51=[];52=0;1p=52+8.M;53=0;5n=53+8.Q;L=8.2J;M=8.F.M;U(i=C=0,E=L.K;CE;i=0<=E?++C:--C){1N+=J[i]}}8.2N.2F({15:V.24.5h,Z:Z,J:J,1N:1N,25:25});9 8};B.H.5i=o(2w,W){8.2N.2F({15:V.24.1P,2w:2w,W:W});9 8};B.H.5j=o(1h){I 1t;1t=1m 22(8);8.5u.1A(1t);8.2N.2F({15:V.24.5k});1h.1a(1t);8.2N.2F({15:V.24.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1A(8.40);8.41.1A(8.L);8.40=1t;9 8.L=1t.L};B.H.6x=o(){8.L=8.41.3V();9 8.40=8.5t.3V()};B.H.6D=o(){9 8.40.6J()};9 B})(2f);4F.B=B;B.2V=(o(){o 2V(c){8.c=c}2V.H.bi=o(){I i,2a,4f,C,17,1O,E;2a={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){2a.r[i]=0;2a.g[i]=0;2a.b[i]=0}U(i=17=0,E=8.c.L.K;170)){9}X=[];U(C=0,13=4c.K;C<13;C++){1i=4c[C];X.1A(6C=1m 38(1i,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1J.5D==="5b"){9 B.5r()}R{9 1J.6L("bb",B.5r,1C)}})()}38=(o(){I 4S;4S="(\\\\w+)\\\\((.*?)\\\\)";o 38(2z,6T){8.6U=2z.3o(\'1z-2g\');8.2g=B(2z,6T.5p(8))}38.H.6H=o(){I W,e,49,31,5w,5x,m,r,48,C,13,E,X;8.2z=8.2g.F;r=1m 7f(4S,\'g\');48=8.6U.4A(r);u(!(48.K>0)){9}r=1m 7f(4S);X=[];U(C=0,13=48.K;C<13;C++){5w=48[C];E=5w.4A(r),m=E[0],49=E[1],W=E[2];5x=1m b9("9 o() { 8."+49+"("+W+"); };");5y{31=5x();X.1A(31.1a(8.2g))}5z(3N){e=3N;X.1A(1o.1D(e))}}9 X};38.H.2t=o(){I 2z;2z=8.2z;9 8.2g.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 38})();B.1y=(o(){o 1y(){}1y.5A={};1y.18=o(Z,31){9 8.5A[Z]=31};1y.2t=o(Z,O,N){9 8.5A[Z](O,N)};9 1y})();1y=B.1y;B.1F=(o(){o 1F(){}1F.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1F.7P=o(1j,T,43){I 2A;u(43==G){43=1C}2A=1j+(P.aQ()*(T-1j));u(43){9 2A.aP(43)}R{9 P.42(2A)}};1F.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1F.1K=o(1l,2L,2M,1s,3a,3f){I 1K,3I,1G,1p,i,j,3H,4v,2j,t,C,17,E;u(3a==G){3a=0}u(3f==G){3f=D}u(1l[0]6A 45){1G=1l;3a=2L;3f=2M}R{1G=[1l,2L,2M,1s]}u(1G.K<2){1U"3v 5F 5G Y 2l 1K";}1K={};3H=o(a,b,t){9 a*(1-t)+b*t};3I=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2j=1G;as(2j.K>1){4v=[];U(j=17=0,E=2j.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1A([3H(2j[j][0],2j[j+1][0],t),3H(2j[j][1],2j[j+1][1],t)])}2j=4v}1K[P.42(2j[0][0])]=P.42(3I(2j[0][1],3a,3f))}1p=1G[1G.K-1][0];1K=B.1F.5H(1K,1p);u(1K[1p]==G){1K[1p]=1K[1p-1]}9 1K};1F.6I=o(1G,3a,3f){I 2F,3I,5I,1p,4u,4t,4r,4p,i,j,3H,5J,5K,2H,p,3F,3i,2R,56,50,29,4X,t,C,17,E;u(1G.K<2){1U"3v 5F 5G Y 2l 6I";}29={};3H=o(a,b,t){9 a*(1-t)+b*t};2F=(o(11){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2H=(o(11){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);4X=(o(11){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3I=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1G.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3F=1G[i];3i=1G[i+1];2R=3i[0]-3F[0];56=1/2R;u(i===1G.K-2){56=1/(2R-1)}p=i>0?1G[i-1]:3F;5J=2H(4X(3i,p),[0.5,0.5]);p=i<1G.K-2?1G[i+2]:3i;5K=2H(4X(p,3F),[0.5,0.5]);U(j=17=0;0<=2R?17<=2R:17>=2R;j=0<=2R?++17:--17){t=j*56;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;50=2F(2H(3F,[4u,4u]),2H(5J,[4t,4t]),2H(3i,[4r,4r]),2H(5K,[4p,4p]));29[P.42(50[0])]=P.42(3I(50[1],3a,3f));5I+=1}}1p=1G[1G.K-1][0];29=B.1F.5H(29,1p);9 29};1F.5H=o(2Z,1p){I i,j,3z,29,4T,C,17;u(7W.ah(2Z).K<1p+1){29={};U(i=C=0;0<=1p?C<=1p:C>=1p;i=0<=1p?++C:--C){u(2Z[i]!=G){29[i]=2Z[i]}R{3z=[i-1,29[i-1]];U(j=17=i;i<=1p?17<=1p:17>=1p;j=i<=1p?++17:--17){u(2Z[j]!=G){4T=[j,2Z[j]];39}}29[i]=3z[1]+((4T[1]-3z[1])/(4T[0]-3z[0]))*(i-3z[0])}}9 29}9 2Z};9 1F})();1F=B.1F;B.1q=(o(){o 1q(){}1q.5d=o(2e){I b,g,r;u(2e.ae(0)==="#"){2e=2e.4R(1)}r=59(2e.4R(0,2),16);g=59(2e.4R(2,2),16);b=59(2e.4R(4,2),16);9{r:r,g:g,b:b}};1q.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}R{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3r(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1q.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}R{h=(o(){3r(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}R{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}R{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}R{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1n,y:y*1n,z:z*1n}};1q.9S=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}R{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}R{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}R{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1q.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1n.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}R{x=(7.6f*x)+0.3s}u(y>0.6d){y=P.1Y(y,0.6e)}R{y=(7.6f*y)+0.3s}u(z>0.6d){z=P.1Y(z,0.6e)}R{z=(7.6f*z)+0.3s}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1q.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}R{x=0.6j*(x-0.3s)}u(y>0.6i){y=y*y*y}R{y=0.6j*(y-0.3s)}u(z>0.6i){z=z*z*z}R{z=0.6j*(z-0.3s)}9{x:x*95.7Q,y:y*1n.0,z:z*7R.7S}};1q.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1q.9t=o(l,a,b){};9 1q})();1q=B.1q;B.1S=(o(){o 1S(){}1S.37={};1S.87=["88","89","6Y","8a","8b","3q"];1S.34=o(23,15,1z){I 4m,C,13,E,X;u(1z==G){1z=G}u(8.37[15]&&8.37[15].K){E=8.37[15];X=[];U(C=0,13=E.K;C<13;C++){4m=E[C];u(4m.23===G||23.1R===4m.23.1R){X.1A(4m.2r.1a(23,1z))}R{X.1A(9p 0)}}9 X}};1S.9n=o(23,15,2r){I 6n,5e;u(1f 23==="2X"){5e=23;6n=15;23=G;15=5e;2r=6n}u(3Y.1a(8.87,15)<0){9 1C}u(!8.37[15]){8.37[15]=[]}8.37[15].1A({23:23,2r:2r});9 2k};9 1S})();1S=B.1S;B.V=(o(){o V(){}V.24={6o:1,5h:2,5k:3,5l:4,6p:5,1P:6};V.18=o(Z,8j){9 B.H[Z]=8j};9 V})();V=B.V;B.1M=(o(){o 1M(){}1M.8k=/(?:(?:4b|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1M.7k=o(1i){u(1i==G){9 1C}u(8.8l(1i)){9 1C}9 8.4o(1i.1b)};1M.8l=o(1i){I E;9(1i.5O!=G)&&((E=1i.5O.4a())===\'86\'||E===\'8n-9m\')};1M.4o=o(4h){I 4n;4n=4h.4A(8.8k);u(4n){9 4n[1]!==1J.9k}R{9 1C}};1M.8r=o(1b){u(8.4o(1b)){u(!B.4z.K){1o.6q("9f 2l 9e a 8v S 93 a 90 8y. 79: "+1b)}R{u(B.4o(B.4z)){1o.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.33(1b)}}};1M.33=o(1b){9""+B.4z+"?"+B.8c+"="+(8R(1b))};1M.8G=o(3b){I 58;58={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};3b=3b.4a();u(58[3b]!=G){3b=58[3b]}9"8O/8P."+3b};9 1M})();B.H.8Q=o(){u(1f 1Z!=="3d"&&1Z!==G){9 8.8C.2G(8,Y)}R{9 8.8B.2G(8,Y)}};B.H.8B=o(15){I S;u(15==G){15="8A"}15=15.4a();S=8.6u(15).8V("S/"+15,"S/8W-8X");9 1J.8Y.8Z=S};B.H.8C=o(3m,4Z,1h){I e,6s;u(4Z==G){4Z=2k}u(1h==G){1h=G}5y{6s=3l.94(3m);u(6s.96()&&!4Z){9 1C}}5z(3N){e=3N;1o.1D("97 98 3m "+3m)}9 3l.99(3m,8.F.9a(),o(3W){1o.1D("9b 9c 2l "+3m);u(1h){9 1h.1a(8,3W)}})};B.H.7q=o(15){I 1i;1i=1m 2T();1i.1b=8.6u(15);1i.M=8.1I.M;1i.Q=8.1I.Q;u(2Q.2C){1i.M/=2Q.2C;1i.Q/=2Q.2C}9 1i};B.H.6u=o(15){u(15==G){15="8A"}15=15.4a();9 8.F.9d("S/"+15)};1M=B.1M;B.22=(o(){o 22(c){8.c=c;8.49=8.c;8.1d={6r:\'8t\',2Y:1.0};8.9h=19.5q.2D();8.F=1f 1Z!=="3d"&&1Z!==G?1m 30():1J.2W(\'F\');8.F.M=8.c.1I.M;8.F.Q=8.c.1I.Q;8.1c=8.F.2o(\'2d\');8.1c.9i(8.F.M,8.F.Q);8.1T=8.1c.3G(0,0,8.F.M,8.F.Q);8.L=8.1T.1z}22.H.5j=o(3J){9 8.c.5j.1a(8.c,3J)};22.H.9j=o(8q){8.1d.6r=8q;9 8};22.H.2Y=o(2Y){8.1d.2Y=2Y/1n;9 8};22.H.9l=o(){I i,20,C,E;20=8.c.L;U(i=C=0,E=8.c.L.K;C8.c.L.K||2h<0){9 1m 1r(0,0,0,D,8.c)}9 8.65(2h)};1r.H.9H=o(4D,4C,A){I 7D;u(8.c==G){1U"3k a 3j 1c";}7D=8.1k+(8.c.1I.M*4*(4C*-1))+(4*4D);u(2h>8.c.L.K||2h<0){9}8.c.L[2h]=A.r;8.c.L[2h+1]=A.g;8.c.L[2h+2]=A.b;8.c.L[2h+3]=A.a;9 2k};1r.H.9J=o(x,y){I 1k;u(8.c==G){1U"3k a 3j 1c";}1k=8.6h(x,y,8.M);9 8.65(1k)};1r.H.9K=o(x,y,A){I 1k;u(8.c==G){1U"3k a 3j 1c";}1k=8.6h(x,y,8.M);8.c.L[1k]=A.r;8.c.L[1k+1]=A.g;8.c.L[1k+2]=A.b;9 8.c.L[1k+3]=A.a};1r.H.3n=o(){9 8.9L()};1r.H.9M=o(4w){I 2e;u(4w==G){4w=1C}2e=\'#\'+8.r.3n(16)+8.g.3n(16)+8.b.3n(16);u(4w){9 2e+8.a.3n(16)}R{9 2e}};9 1r})();1r=B.1r;B.1P=(o(){o 1P(){}1P.64={};1P.18=o(Z,2w){9 8.64[Z]=2w};1P.2t=o(1c,Z,W){9 8.64[Z].2G(1c,W)};9 1P})();1P=B.1P;B.1g=(o(){1g.2I=B.1W?4j(\'9Q\').9R().K:4;o 1g(c){8.c=c;8.2B=5T(8.2B,8);8.46=[];8.3g=G}1g.H.2F=o(62){u(62==G){9}9 8.46.1A(62)};1g.H.2B=o(){I 1t;u(8.46.K===0){1S.34(8,"8a");u(8.61!=G){8.61.1a(8.c)}9 8}8.1u=8.46.7v();3r(8.1u.15){1v V.24.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.24.5l:8.c.6D();8.c.6x();9 8.2B();1v V.24.6p:9 8.7u(8.1u.1t,8.1u.1b);1v V.24.1P:9 8.7t();a0:9 8.7s()}};1g.H.2t=o(1h){8.61=1h;8.3g=19.32(8.c.L.K);9 8.2B()};1g.H.60=o(2r){I 3Z,5V,1V,1s,f,i,5U,n,1l,C,E,X;8.4I=0;n=8.c.L.K;5V=P.2U((n/4)/1g.2I);3Z=5V*4;5U=3Z+((n/4)%1g.2I)*4;X=[];U(i=C=0,E=1g.2I;0<=E?CE;i=0<=E?++C:--C){1l=i*3Z;1s=1l+(i===1g.2I-1?5U:3Z);u(B.1W){f=3T((o(11){9 o(){9 2r.1a(11,i,1l,1s)}})(8));1V=f.a9();X.1A(8.3q(1V))}R{X.1A(4V((o(11){9 o(i,1l,1s){9 o(){9 2r.1a(11,i,1l,1s)}}})(8)(i,1l,1s),0))}}9 X};1g.H.7s=o(){1S.34(8.c,"88",8.1u);u(8.1u.15===V.24.6o){9 8.60(8.7d)}R{9 8.60(8.7a)}};1g.H.7t=o(){1o.1D("ac 2w "+8.1u.2w);1P.2t(8.c,8.1u.2w,8.1u.W);1o.1D("1P "+8.1u.2w+" 5S!");9 8.2B()};1g.H.7d=o(1V,1l,1s){I i,14,C;1o.1D("77 #"+1V+" - V: "+8.1u.Z+", af: "+1l+", ag: "+1s);1S.34(8.c,"8b",{74:1V,71:1g.2I,ai:1l,aj:1s});14=1m 1r();14.67(8.c);U(i=C=1l;C<1s;i=C+=4){14.1k=i;14.r=8.c.L[i];14.g=8.c.L[i+1];14.b=8.c.L[i+2];14.a=8.c.L[i+3];8.1u.5a(14);8.c.L[i]=19.2c(14.r);8.c.L[i+1]=19.2c(14.g);8.c.L[i+2]=19.2c(14.b);8.c.L[i+3]=19.2c(14.a)}u(B.1W){9 3T["70"](1V)}R{9 8.3q(1V)}};1g.H.7a=o(1V,1l,1s){I J,3X,25,1Q,3t,1N,i,j,k,2i,n,Z,p,14,2u,C,17,1O;Z=8.1u.Z;25=8.1u.25;1N=8.1u.1N;n=8.c.L.K;J=8.1u.J;3X=P.7N(J.K);2i=[];1o.1D("aq 2i - V: "+8.1u.Z);1l=P.T(1l,8.c.1I.M*4*((3X-1)/2));1s=P.1j(1s,n-(8.c.1I.M*4*((3X-1)/2)));1Q=(3X-1)/2;14=1m 1r();14.67(8.c);U(i=C=1l;C<1s;i=C+=4){14.1k=i;3t=0;U(j=17=-1Q;-1Q<=1Q?17<=1Q:17>=1Q;j=-1Q<=1Q?++17:--17){U(k=1O=1Q;1Q<=-1Q?1O<=-1Q:1O>=-1Q;k=1Q<=-1Q?++1O:--1O){p=14.7G(j,k);2i[3t*3]=p.r;2i[3t*3+1]=p.g;2i[3t*3+2]=p.b;3t++}}2u=8.5Q(J,2i,1N,25);8.3g[i]=19.2c(2u.r);8.3g[i+1]=19.2c(2u.g);8.3g[i+2]=19.2c(2u.b);8.3g[i+3]=8.c.L[i+3]}u(B.1W){9 3T["70"](1V)}R{9 8.3q(1V)}};1g.H.3q=o(1V){I i,C,E;u(1V>=0){1o.1D("77 #"+1V+" 5S! V: "+8.1u.Z)}8.4I++;1S.34(8.c,"3q",{74:1V,ar:8.4I,71:1g.2I});u(8.4I===1g.2I){u(8.1u.15===V.24.5h){U(i=C=0,E=8.c.L.K;0<=E?CE;i=0<=E?++C:--C){8.c.L[i]=8.3g[i]}}u(1V>=0){1o.1D("V "+8.1u.Z+" 5S!")}1S.34(8.c,"89",8.1u);9 8.2B()}};1g.H.5Q=o(J,2i,1N,25){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2i[i*3];1w.g+=J[i]*2i[i*3+1];1w.b+=J[i]*2i[i*3+2]}1w.r=(1w.r/1N)+25;1w.g=(1w.g/1N)+25;1w.b=(1w.b/1N)+25;9 1w};1g.H.7u=o(1t,1b){I 1i,33;1i=1m 2T();1i.73=(o(11){9 o(){1t.1c.3S(1i,0,0,11.c.1I.M,11.c.1I.Q);1t.1T=1t.1c.3G(0,0,11.c.1I.M,11.c.1I.Q);1t.L=1t.1T.1z;11.c.L=1t.L;9 11.2B()}})(8);33=1M.8r(1b);9 1i.1b=33!=G?33:1b};9 1g})();1g=B.1g;B.1X=(o(){o 1X(){}1X.3w={};1X.6P=o(2S){9 8.3w[2S]!=G};1X.2D=o(2S){9 8.3w[2S]};1X.6K=o(Z,1H){9 8.3w[Z]=1H};1X.2t=o(2S,1h){4V((o(11){9 o(){9 1h.1a(11.2D(2S),11.2D(2S))}})(8),0);9 8.2D(2S)};1X.at=o(Z){u(Z==G){Z=1C}u(Z){9 6E 8.3w[Z]}R{9 8.3w={}}};9 1X})();1X=B.1X;1y.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1y.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1y.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1y.18("ax",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1e.g=N.g>1x?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1e.b=N.b>1x?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1e});1y.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1y.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1y.18("aB",o(O,N){9{r:1x-2*(N.r-1x)*(O.r-1x)/D,g:1x-2*(N.g-1x)*(O.g-1x)/D,b:1x-2*(N.b-1x)*(O.b-1x)/D}});1y.18("aC",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-((D-N.r)*(D-(O.r-1x)))/D:(N.r*(O.r+1x))/D;1e.g=N.g>1x?D-((D-N.g)*(D-(O.g-1x)))/D:(N.g*(O.g+1x))/D;1e.b=N.b>1x?D-((D-N.b)*(D-(O.b-1x)))/D:(N.b*(O.b+1x))/D;9 1e});1y.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1y.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Q",o(){I 3C;u(Y.K===1){3C=1q.5d(Y[0])}R{3C={r:Y[0],g:Y[1],b:Y[2]}}9 8.1L("4Q",o(A){A.r=3C.r;A.g=3C.g;A.b=3C.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2U(D*(J/1n));9 8.1L("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1L("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1L("8s",o(A){I 3R,2P,T;T=P.T(A.r,A.g,A.b);2P=(A.r+A.g+A.b)/3;3R=((P.2O(T-2P)*2/D)*J)/1n;u(A.r!==T){A.r+=(T-A.r)*3R}u(A.g!==T){A.g+=(T-A.g)*3R}u(A.b!==T){A.b+=(T-A.b)*3R}9 A})});V.18("8e",o(J){9 8.1L("8e",o(A){I 2P;2P=1F.83(A);A.r=2P;A.g=2P;A.b=2P;9 A})});V.18("84",o(J){J=P.1Y((J+1n)/1n,2);9 8.1L("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1L("81",o(A){I b,g,h,3c,r,E;3c=1q.7g(A.r,A.g,A.b);h=3c.h*1n;h+=P.2O(J);h=h%1n;h/=1n;3c.h=h;E=1q.7i(3c.h,3c.s,3c.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3K,35;u(Y.K===2){35=1q.5d(Y[0]);3K=Y[1]}R u(Y.K===4){35={r:Y[0],g:Y[1],b:Y[2]};3K=Y[3]}9 8.1L("7U",o(A){A.r-=(A.r-35.r)*(3K/1n);A.g-=(A.g-35.g)*(3K/1n);A.b-=(A.b-35.b)*(3K/1n);9 A})});V.18("7O",o(){9 8.1L("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1n}J/=1n;9 8.1L("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1L("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2O(J)*2.55;9 8.1L("7y",o(A){I 2A;2A=1F.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2O(J)*2.55;9 8.1L("7x",o(A){u(A.r>D-J){A.r=D}R u(A.rD-J){A.g=D}R u(A.gD-J){A.b=D}R u(A.b0){A.r+=(D-A.r)*1d.4B}R{A.r-=A.r*P.2O(1d.4B)}}u(1d.4s!=G){u(1d.4s>0){A.g+=(D-A.g)*1d.4s}R{A.g-=A.g*P.2O(1d.4s)}}u(1d.4N!=G){u(1d.4N>0){A.b+=(D-A.b)*1d.4N}R{A.b-=A.b*P.2O(1d.4N)}}9 A})});V.18("4G",o(){I 44,1K,2s,2b,1s,i,3O,1l,C,17,E,2q;2s=Y[0],2b=2<=Y.K?3u.1a(Y,1):[];3O=2b[2b.K-1];u(1f 3O==="o"){44=3O;2b.3V()}R u(1f 3O==="2X"){44=1F[3O];2b.3V()}R{44=1F.1K}u(1f 2s==="2X"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2b.K<2){1U"3v 5F 5G Y 2l 4G 49";}1K=44(2b,0,D);1l=2b[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1K[i]=1l[1]}}1s=2b[2b.K-1];u(1s[0]=D;i=2q<=D?++17:--17){1K[i]=1s[1]}}9 8.1L("4G",o(A){I 1O,2y;U(i=1O=0,2y=2s.K;0<=2y?1O<2y:1O>2y;i=0<=2y?++1O:--1O){A[2s[i]]=1K[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2L,2M,p;p=P.2O(J)/1n;2L=[0,D*p];2M=[D-(D*p),D];u(J<0){2L=2L.6O();2M=2M.6O()}9 8.4G(\'35\',[0,0],2L,2M,[D,D])});B.1P.18("5g",o(M,Q,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1Z!=="3d"&&1Z!==G){F=1m 30(M,Q)}R{F=1J.2W(\'F\');19.3Q(8.F,F);F.M=M;F.Q=Q}2p=F.2o(\'2d\');2p.3S(8.F,x,y,M,Q,0,0,M,Q);8.5m={x:x,y:y};8.82=2k;9 8.4O(F)});B.1P.18("4E",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.M==G)&&(1E.Q==G))){1o.6t("3v 7h bp 1I 6M U 4E");9}u(1E.M==G){1E.M=8.F.M*1E.Q/8.F.Q}R u(1E.Q==G){1E.Q=8.F.Q*1E.M/8.F.M}u(1f 1Z!=="3d"&&1Z!==G){F=1m 30(1E.M,1E.Q)}R{F=1J.2W(\'F\');19.3Q(8.F,F);F.M=1E.M;F.Q=1E.Q}2p=F.2o(\'2d\');2p.3S(8.F,0,0,8.F.M,8.F.Q,0,0,1E.M,1E.Q);8.5s=2k;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",45.H.3y.1a(Y,0))});B.V.18("4E",o(){9 8.5i("4E",45.H.3y.1a(Y,0))})}).1a(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|pixelData|width|rgbaParent|rgbaLayer|Math|height|else|image|max|for|Filter|args|_results|arguments|name||_this||_len|pixel|type||_j|register|Util|call|src|context|options|result|typeof|Renderer|callback|img|min|loc|start|new|100|Log|endX|Convert|Pixel|end|layer|currentJob|case|val|128|Blender|data|push|key|false|debug|newDims|Calculate|controlPoints|obj|dimensions|document|bezier|process|IO|divisor|_k|Plugin|builder|id|Event|imageData|throw|bnum|NodeJS|Store|pow|exports|parentData|initObj|Layer|target|Type|bias|renderingCanvas||055|ret|levels|cps|clampRGB||hex|Module|caman|newLoc|kernel|prev|true|to|imageWidth|imageHeight|getContext|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|mul|Blocks|originalPixelData|from|ctrl1|ctrl2|renderer|abs|avg|window|pointsPerSegment|search|Image|floor|Analyze|createElement|string|opacity|values|Canvas|func|dataArray|proxyUrl|trigger|rgb|in|events|CamanParser|break|lowBound|lang|hsv|undefined|layerData|highBound|modPixelData|parent|p1|CamanJS|Requires|fs|file|toString|getAttribute|nodeFileReady|blockFinished|switch|1379310345|builderIndex|__slice|Invalid|items|child|slice|leftCoord|allowRevert|hiDPIRatio|color|preScaledWidth|preScaledHeight|p0|getImageData|lerp|clamp|cb|level|chan|finishInit|_error|last|initializedPixelData|copyAttributes|amt|drawImage|Fiber|renderingContext|pop|err|adjustSize|__indexOf|blockN|currentLayer|pixelStack|round|getFloat|algo|Array|renderQueue|__hasProp|unparsedInstructions|filter|toLowerCase|http|imgs|copy|prop|numPixels|continue|url|opts|require|attr|imageLoaded|event|matches|isURLRemote|fac3|moduleKeywords|fac2|green|fac1|fac0|next|includeAlpha|source|disabled|remoteProxy|match|red|vert|horiz|resize|Root|curves|hiDPIReplacement|blocksDone|buf|sel|root|Logger|blue|replaceCanvas|hueToRGB|fillColor|substr|INST_REGEX|rightCoord|updateContext|setTimeout|dest|sub|coord|overwrite|pos|pixels|startX|startY|initType||pointsPerStep|imageUrl|langToExt|parseInt|processFn|complete|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2M,1y,1F,B,3d,3b,1q,1S,4l,V,1M,2V,22,1o,2f,1r,1P,1g,4J,1X,1a,3D,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3g=o(2H,2l,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1A(2l.7n(4j.5f,4j.bn))}9 X};1a.3u=o(K){u(K==G){K=0}u(B.1W||(2X.7o!=G)){9 1m 7o(K)}9 1m 44(K)};9 1a})();u(1f 1Z!=="31"&&1Z!==G){4J=1Z;3b=4i(\'F\');2V=3b.2V;4l=4i(\'bl\');3D=4i(\'3D\');3Y=4i(\'3Y\')}R{4J=2X}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1C;B.3J=2k;B.5O="86";B.4A="";B.8c="9q";B.1W=1f 1Z!=="31"&&1Z!==G;B.8m=!B.1W;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.1W){9 2k}u(1f F==="2Y"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1z-2g-1R\')};o B(){8.3s=5T(8.3s,8);I W,1h,1R;u(Y.K===0){1U"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.1W){1R=51(B.63(W[0]),10);1h=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1R)&&1X.6P(1R)){9 1X.2t(1R,1h)}}8.1R=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1C;8.5s=1C;8.be=1C;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1C;8.aT=1m 2M(8);8.2P=1m 1g(8);8.7T((o(11){9 o(){11.80(W);9 11.8g()}})(8));9 8}R{9 1m B(Y)}}B.H.7T=o(3y){I 5C;u(B.1W){9 4s((o(11){9 o(){9 3y.19(11)}})(8),0)}R{u(1J.5D==="4D"){1o.1D("6B 6G");9 4s((o(11){9 o(){9 3y.19(11)}})(8),0)}R{5C=(o(11){9 o(){u(1J.5D==="4D"){1o.1D("6B 6G");9 3y.19(11)}}})(8);9 1J.6L("ap",5C,1C)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1U"3m Y 6M";}8.21=G;8.4m=G;8.4n=G;8.1h=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Y":8.4n=W[1];30;1v"o":8.1h=W[1]}u(W.K===2){9}8.1h=W[2];u(W.K===4){E=W[4];X=[];U(1B 3c E){u(!3Q.19(E,1B))4f;1w=E[1B];X.1A(8.1d[1B]=1w)}9 X}};B.H.6W=o(1H){u(B.1W){8.21=1H;8.4m=\'6Z\';9}u(1f 1H==="2v"){8.21=1H}R{8.21=$(1H)}u(8.21==G){1U"al a8 a7 S 7h F U a3.";}9 8.4m=8.21.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1i":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1o.1D("9N U 1W");u(1f 8.21==="2Y"&&8.21.4C(/^7E?:\\/\\//)){9 8.7F(8.21,8.3s)}R u(1f 8.21==="2Y"){9 3D.9E(8.21,8.3s)}R{9 8.3s(G,8.21)}};B.H.7F=o(3X,1h){I 66;1o.1D("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1z\',o(8f){9 4N+=8f});9 2u.6m(\'1s\',o(){9 1h(G,1m 91(4N,\'8d\'))})});9 66.6m(\'6t\',1h)};B.H.3s=o(3T,1z){u(3T){1U 3T;}8.S=1m 2V();8.S.1b=1z;1o.1D("2V 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));8.F=1m 3b(8.2m(),8.2n());9 8.3x()};B.H.7A=o(){8.S=8.21;8.F=1J.2N(\'F\');8.1c=8.F.2o(\'2d\');8.26=1J.2N(\'F\');8.45=8.26.2o(\'2d\');1a.3g(8.S,8.F,{5c:[\'1b\']});1a.3g(8.S,8.26,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.26,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=8.21;8.1c=8.F.2o(\'2d\');8.26=1J.2N(\'F\');8.45=8.26.2o(\'2d\');u(8.4n!=G){8.S=1J.2N(\'1i\');8.S.1b=8.4n;8.5Z();9 8.5Y()}R{9 8.3x()}};B.H.5Z=o(){u(8.5X()){1o.1D(8.S.1b,"->",8.4I());8.7m=2k;8.S.1b=8.4I()}u(1M.7k(8.S)){8.S.1b=1M.3e(8.S.1b);9 1o.1D("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4k()}R{9 8.S.73=8.4k}};B.H.78=o(){u(!8.S.4D){9 1C}u((8.S.5P!=G)&&8.S.5P===0){9 1C}9 2k};B.H.2m=o(){9 8.S.L||8.S.5P};B.H.2n=o(){9 8.S.Q||8.S.an};B.H.4k=o(){1o.1D("2V 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));u(8.7m){8.F.L=8.2m()/8.3K();8.F.Q=8.2n()/8.3K();8.26.L=8.2m()/8.3K();8.26.Q=8.2n()/8.3K()}R{8.F.L=8.2m();8.F.Q=8.2n();8.26.L=8.2m();8.26.Q=8.2n()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1c==G){8.1c=8.F.2o(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.Q=8.F.Q;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1c.3R(8.S,0,0,8.2m(),8.2n(),0,0,8.3M,8.3O);8.45.3R(8.S,0,0,8.2m(),8.2n(),0,0,8.3M,8.3O)}8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z;u(B.3J){8.59=1a.3u(8.M.K);8.2J=1a.3u(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1I={L:8.F.L,Q:8.F.Q};u(!B.1W){1X.6K(8.1R,8)}8.1h.19(8,8);9 8.1h=o(){}};B.H.6z=o(){8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);9 8.M=8.1T.1z};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3J){1U"5E 4y";}8.2J=1a.3u(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1A(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.1W||8.F.3w(\'1z-2g-1R\')){9}9 8.F.7n(\'1z-2g-1R\',8.1R)};B.H.6w=o(){9 8.F.3w(\'1z-2g-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.1W||!8.5X()){9}2E=8.3K();u(2E!==1){1o.1D("aH 2E = "+2E);8.6R=2k;8.3M=8.F.L;8.3O=8.F.Q;8.F.L=8.3M*2E;8.F.Q=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.Q=""+8.3O+"8u";8.1c.aK(2E,2E);8.L=8.5N=8.F.L;9 8.Q=8.5M=8.F.Q}};B.H.3K=o(){I 5B,2C;2C=2X.2C||1;5B=8.1c.aU||8.1c.aV||8.1c.b6||8.1c.b7||8.1c.b8||1;9 2C/5B};B.H.7p=o(){9(2X.2C!=G)&&2X.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1C}9 8.4I()!==G};B.H.4I=o(){u(8.S==G){9 G}9 8.S.3w(\'1z-2g-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1c=8.F.2o(\'2d\');8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z;u(B.3J){8.2J=1a.3u(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.Q=8.F.Q;8.6z();9 8.1I={L:8.F.L,Q:8.F.Q}};B.H.72=o(1h){u(1h==G){1h=o(){}}1S.39(8,"6Y");9 8.2P.2t((o(11){9 o(){11.26.L=11.F.L;11.26.Q=11.F.Q;11.45.5v(11.1T,0,0);9 1h.19(11)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2k}u(!B.3J){1U"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.45.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,15,M,C,13,E;F=1J.2N(\'F\');1a.3g(8.F,F);F.L=8.5N;F.Q=8.5M;2p=F.2o(\'2d\');1T=2p.3v(0,0,F.L,F.Q);M=1T.1z;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1C;9 8.4O(F)};B.H.7r=o(){I 4Z,1p,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3J){1U"5E 4y";}52=[];53=0;1p=53+8.L;54=0;5n=54+8.Q;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1N+=J[i]}}8.2P.2F({14:V.24.5h,Z:Z,J:J,1N:1N,25:25});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.24.1P,2w:2w,W:W});9 8};B.H.5j=o(1h){I 1t;1t=1m 22(8);8.5u.1A(1t);8.2P.2F({14:V.24.5k});1h.19(1t);8.2P.2F({14:V.24.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1A(8.49);8.4a.1A(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2f);4J.B=B;B.2M=(o(){o 2M(c){8.c=c}2M.H.bi=o(){I i,2a,4e,C,17,1O,E;2a={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){2a.r[i]=0;2a.g[i]=0;2a.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1i=4b[C];X.1A(6C=1m 3d(1i,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1J.5D==="4D"){9 B.5r()}R{9 1J.6L("bb",B.5r,1C)}})()}3d=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3d(2z,6T){8.6U=2z.3w(\'1z-2g\');8.2g=B(2z,6T.5p(8))}3d.H.6H=o(){I W,e,48,38,5w,5x,m,r,47,C,13,E,X;8.2z=8.2g.F;r=1m 7f(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1m 7f(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1m b9("9 o() { 8."+48+"("+W+"); };");5y{38=5x();X.1A(38.19(8.2g))}5z(3E){e=3E;X.1A(1o.1D(e))}}9 X};3d.H.2t=o(){I 2z;2z=8.2z;9 8.2g.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 3d})();B.1y=(o(){o 1y(){}1y.5A={};1y.18=o(Z,38){9 8.5A[Z]=38};1y.2t=o(Z,O,N){9 8.5A[Z](O,N)};9 1y})();1y=B.1y;B.1F=(o(){o 1F(){}1F.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1F.7P=o(1j,T,42){I 2A;u(42==G){42=1C}2A=1j+(P.aQ()*(T-1j));u(42){9 2A.aP(42)}R{9 P.41(2A)}};1F.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1F.1K=o(1l,2W,2T,1s,34,35){I 1K,3o,1G,1p,i,j,3r,4v,2j,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1G=1l;34=2W;35=2T}R{1G=[1l,2W,2T,1s]}u(1G.K<2){1U"3m 5F 5G Y 2l 1K";}1K={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2j=1G;as(2j.K>1){4v=[];U(j=17=0,E=2j.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1A([3r(2j[j][0],2j[j+1][0],t),3r(2j[j][1],2j[j+1][1],t)])}2j=4v}1K[P.41(2j[0][0])]=P.41(3o(2j[0][1],34,35))}1p=1G[1G.K-1][0];1K=B.1F.5H(1K,1p);u(1K[1p]==G){1K[1p]=1K[1p-1]}9 1K};1F.6I=o(1G,34,35){I 2F,3o,5I,1p,4u,4t,4r,4p,i,j,3r,5J,5K,2L,p,3C,3N,2I,58,56,29,50,t,C,17,E;u(1G.K<2){1U"3m 5F 5G Y 2l 6I";}29={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(11){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2L=(o(11){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(11){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1G.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3C=1G[i];3N=1G[i+1];2I=3N[0]-3C[0];58=1/2I;u(i===1G.K-2){58=1/(2I-1)}p=i>0?1G[i-1]:3C;5J=2L(50(3N,p),[0.5,0.5]);p=i<1G.K-2?1G[i+2]:3N;5K=2L(50(p,3C),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2L(3C,[4u,4u]),2L(5J,[4t,4t]),2L(3N,[4r,4r]),2L(5K,[4p,4p]));29[P.41(56[0])]=P.41(3o(56[1],34,35));5I+=1}}1p=1G[1G.K-1][0];29=B.1F.5H(29,1p);9 29};1F.5H=o(3f,1p){I i,j,3I,29,4W,C,17;u(7W.ah(3f).K<1p+1){29={};U(i=C=0;0<=1p?C<=1p:C>=1p;i=0<=1p?++C:--C){u(3f[i]!=G){29[i]=3f[i]}R{3I=[i-1,29[i-1]];U(j=17=i;i<=1p?17<=1p:17>=1p;j=i<=1p?++17:--17){u(3f[j]!=G){4W=[j,3f[j]];30}}29[i]=3I[1]+((4W[1]-3I[1])/(4W[0]-3I[0]))*(i-3I[0])}}9 29}9 3f};9 1F})();1F=B.1F;B.1q=(o(){o 1q(){}1q.5d=o(2e){I b,g,r;u(2e.ae(0)==="#"){2e=2e.4U(1)}r=51(2e.4U(0,2),16);g=51(2e.4U(2,2),16);b=51(2e.4U(4,2),16);9{r:r,g:g,b:b}};1q.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}R{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1q.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}R{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}R{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}R{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}R{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1n,y:y*1n,z:z*1n}};1q.9S=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}R{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}R{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}R{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1q.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1n.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}R{x=(7.6f*x)+0.3z}u(y>0.6d){y=P.1Y(y,0.6e)}R{y=(7.6f*y)+0.3z}u(z>0.6d){z=P.1Y(z,0.6e)}R{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1q.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}R{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}R{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}R{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1n.0,z:z*7R.7S}};1q.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1q.9t=o(l,a,b){};9 1q})();1q=B.1q;B.1S=(o(){o 1S(){}1S.3a={};1S.87=["88","89","6Y","8a","8b","3P"];1S.39=o(23,14,1z){I 3S,C,13,E,X;u(1z==G){1z=G}u(8.3a[14]&&8.3a[14].K){E=8.3a[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.23===G||23.1R===3S.23.1R){X.1A(3S.2r.19(23,1z))}R{X.1A(9p 0)}}9 X}};1S.9n=o(23,14,2r){I 6n,5e;u(1f 23==="2Y"){5e=23;6n=14;23=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1C}u(!8.3a[14]){8.3a[14]=[]}8.3a[14].1A({23:23,2r:2r});9 2k};9 1S})();1S=B.1S;B.V=(o(){o V(){}V.24={6o:1,5h:2,5k:3,5l:4,6p:5,1P:6};V.18=o(Z,8j){9 B.H[Z]=8j};9 V})();V=B.V;B.1M=(o(){o 1M(){}1M.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1M.7k=o(1i){u(1i==G){9 1C}u(8.8l(1i)){9 1C}9 8.4q(1i.1b)};1M.8l=o(1i){I E;9(1i.5O!=G)&&((E=1i.5O.3Z())===\'86\'||E===\'8n-9m\')};1M.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1J.9k}R{9 1C}};1M.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1o.6q("9f 2l 9e a 8v S 93 a 90 8y. 79: "+1b)}R{u(B.4q(B.4A)){1o.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3e(1b)}}};1M.3e=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1M.8G=o(2Z){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};2Z=2Z.3Z();u(5b[2Z]!=G){2Z=5b[2Z]}9"8O/8P."+2Z};9 1M})();B.H.8Q=o(){u(1f 1Z!=="31"&&1Z!==G){9 8.8C.2G(8,Y)}R{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1J.8Y.8Z=S};B.H.8C=o(3q,57,1h){I e,6s;u(57==G){57=2k}u(1h==G){1h=G}5y{6s=3D.94(3q);u(6s.96()&&!57){9 1C}}5z(3E){e=3E;1o.1D("97 98 3q "+3q)}9 3D.99(3q,8.F.9a(),o(3T){1o.1D("9b 9c 2l "+3q);u(1h){9 1h.19(8,3T)}})};B.H.7q=o(14){I 1i;1i=1m 2V();1i.1b=8.6u(14);1i.L=8.1I.L;1i.Q=8.1I.Q;u(2X.2C){1i.L/=2X.2C;1i.Q/=2X.2C}9 1i};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.F.9d("S/"+14)};1M=B.1M;B.22=(o(){o 22(c){8.c=c;8.48=8.c;8.1d={6r:\'8t\',2O:1.0};8.9h=1a.5q.2D();8.F=1f 1Z!=="31"&&1Z!==G?1m 3b():1J.2N(\'F\');8.F.L=8.c.1I.L;8.F.Q=8.c.1I.Q;8.1c=8.F.2o(\'2d\');8.1c.9i(8.F.L,8.F.Q);8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z}22.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};22.H.9j=o(8q){8.1d.6r=8q;9 8};22.H.2O=o(2O){8.1d.2O=2O/1n;9 8};22.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2h<0){9 1m 1r(0,0,0,D,8.c)}9 8.65(2h)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1U"3l a 3k 1c";}7D=8.1k+(8.c.1I.L*4*(4E*-1))+(4*4F);u(2h>8.c.M.K||2h<0){9}8.c.M[2h]=A.r;8.c.M[2h+1]=A.g;8.c.M[2h+2]=A.b;8.c.M[2h+3]=A.a;9 2k};1r.H.9J=o(x,y){I 1k;u(8.c==G){1U"3l a 3k 1c";}1k=8.6h(x,y,8.L);9 8.65(1k)};1r.H.9K=o(x,y,A){I 1k;u(8.c==G){1U"3l a 3k 1c";}1k=8.6h(x,y,8.L);8.c.M[1k]=A.r;8.c.M[1k+1]=A.g;8.c.M[1k+2]=A.b;9 8.c.M[1k+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2e;u(4B==G){4B=1C}2e=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2e+8.a.3t(16)}R{9 2e}};9 1r})();1r=B.1r;B.1P=(o(){o 1P(){}1P.64={};1P.18=o(Z,2w){9 8.64[Z]=2w};1P.2t=o(1c,Z,W){9 8.64[Z].2G(1c,W)};9 1P})();1P=B.1P;B.1g=(o(){1g.2Q=B.1W?4i(\'9Q\').9R().K:4;o 1g(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1g.H.2F=o(62){u(62==G){9}9 8.3V.1A(62)};1g.H.2B=o(){I 1t;u(8.3V.K===0){1S.39(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1u=8.3V.7v();3p(8.1u.14){1v V.24.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.24.5l:8.c.6D();8.c.6x();9 8.2B();1v V.24.6p:9 8.7u(8.1u.1t,8.1u.1b);1v V.24.1P:9 8.7t();a0:9 8.7s()}};1g.H.2t=o(1h){8.61=1h;8.32=1a.3u(8.c.M.K);9 8.2B()};1g.H.60=o(2r){I 40,5V,1V,1s,f,i,5U,n,1l,C,E,X;8.4R=0;n=8.c.M.K;5V=P.2K((n/4)/1g.2Q);40=5V*4;5U=40+((n/4)%1g.2Q)*4;X=[];U(i=C=0,E=1g.2Q;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1s=1l+(i===1g.2Q-1?5U:40);u(B.1W){f=4l((o(11){9 o(){9 2r.19(11,i,1l,1s)}})(8));1V=f.a9();X.1A(8.3P(1V))}R{X.1A(4s((o(11){9 o(i,1l,1s){9 o(){9 2r.19(11,i,1l,1s)}}})(8)(i,1l,1s),0))}}9 X};1g.H.7s=o(){1S.39(8.c,"88",8.1u);u(8.1u.14===V.24.6o){9 8.60(8.7d)}R{9 8.60(8.7a)}};1g.H.7t=o(){1o.1D("ac 2w "+8.1u.2w);1P.2t(8.c,8.1u.2w,8.1u.W);1o.1D("1P "+8.1u.2w+" 5S!");9 8.2B()};1g.H.7d=o(1V,1l,1s){I i,15,C;1o.1D("77 #"+1V+" - V: "+8.1u.Z+", af: "+1l+", ag: "+1s);1S.39(8.c,"8b",{74:1V,71:1g.2Q,ai:1l,aj:1s});15=1m 1r();15.67(8.c);U(i=C=1l;C<1s;i=C+=4){15.1k=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1u.5a(15);8.c.M[i]=1a.2c(15.r);8.c.M[i+1]=1a.2c(15.g);8.c.M[i+2]=1a.2c(15.b);8.c.M[i+3]=1a.2c(15.a)}u(B.1W){9 4l["70"](1V)}R{9 8.3P(1V)}};1g.H.7a=o(1V,1l,1s){I J,43,25,1Q,3n,1N,i,j,k,2i,n,Z,p,15,2u,C,17,1O;Z=8.1u.Z;25=8.1u.25;1N=8.1u.1N;n=8.c.M.K;J=8.1u.J;43=P.7N(J.K);2i=[];1o.1D("aq 2i - V: "+8.1u.Z);1l=P.T(1l,8.c.1I.L*4*((43-1)/2));1s=P.1j(1s,n-(8.c.1I.L*4*((43-1)/2)));1Q=(43-1)/2;15=1m 1r();15.67(8.c);U(i=C=1l;C<1s;i=C+=4){15.1k=i;3n=0;U(j=17=-1Q;-1Q<=1Q?17<=1Q:17>=1Q;j=-1Q<=1Q?++17:--17){U(k=1O=1Q;1Q<=-1Q?1O<=-1Q:1O>=-1Q;k=1Q<=-1Q?++1O:--1O){p=15.7G(j,k);2i[3n*3]=p.r;2i[3n*3+1]=p.g;2i[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2i,1N,25);8.32[i]=1a.2c(2u.r);8.32[i+1]=1a.2c(2u.g);8.32[i+2]=1a.2c(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.1W){9 4l["70"](1V)}R{9 8.3P(1V)}};1g.H.3P=o(1V){I i,C,E;u(1V>=0){1o.1D("77 #"+1V+" 5S! V: "+8.1u.Z)}8.4R++;1S.39(8.c,"3P",{74:1V,ar:8.4R,71:1g.2Q});u(8.4R===1g.2Q){u(8.1u.14===V.24.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1V>=0){1o.1D("V "+8.1u.Z+" 5S!")}1S.39(8.c,"89",8.1u);9 8.2B()}};1g.H.5Q=o(J,2i,1N,25){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2i[i*3];1w.g+=J[i]*2i[i*3+1];1w.b+=J[i]*2i[i*3+2]}1w.r=(1w.r/1N)+25;1w.g=(1w.g/1N)+25;1w.b=(1w.b/1N)+25;9 1w};1g.H.7u=o(1t,1b){I 1i,3e;1i=1m 2V();1i.73=(o(11){9 o(){1t.1c.3R(1i,0,0,11.c.1I.L,11.c.1I.Q);1t.1T=1t.1c.3v(0,0,11.c.1I.L,11.c.1I.Q);1t.M=1t.1T.1z;11.c.M=1t.M;9 11.2B()}})(8);3e=1M.8r(1b);9 1i.1b=3e!=G?3e:1b};9 1g})();1g=B.1g;B.1X=(o(){o 1X(){}1X.3h={};1X.6P=o(2U){9 8.3h[2U]!=G};1X.2D=o(2U){9 8.3h[2U]};1X.6K=o(Z,1H){9 8.3h[Z]=1H};1X.2t=o(2U,1h){4s((o(11){9 o(){9 1h.19(11.2D(2U),11.2D(2U))}})(8),0);9 8.2D(2U)};1X.at=o(Z){u(Z==G){Z=1C}u(Z){9 6E 8.3h[Z]}R{9 8.3h={}}};9 1X})();1X=B.1X;1y.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1y.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1y.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1y.18("ax",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1e.g=N.g>1x?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1e.b=N.b>1x?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1e});1y.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1y.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1y.18("aB",o(O,N){9{r:1x-2*(N.r-1x)*(O.r-1x)/D,g:1x-2*(N.g-1x)*(O.g-1x)/D,b:1x-2*(N.b-1x)*(O.b-1x)/D}});1y.18("aC",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-((D-N.r)*(D-(O.r-1x)))/D:(N.r*(O.r+1x))/D;1e.g=N.g>1x?D-((D-N.g)*(D-(O.g-1x)))/D:(N.g*(O.g+1x))/D;1e.b=N.b>1x?D-((D-N.b)*(D-(O.b-1x)))/D:(N.b*(O.b+1x))/D;9 1e});1y.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1y.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Y",o(){I 3F;u(Y.K===1){3F=1q.5d(Y[0])}R{3F={r:Y[0],g:Y[1],b:Y[2]}}9 8.1L("4Y",o(A){A.r=3F.r;A.g=3F.g;A.b=3F.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2K(D*(J/1n));9 8.1L("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1L("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1L("8s",o(A){I 46,2S,T;T=P.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;46=((P.2R(T-2S)*2/D)*J)/1n;u(A.r!==T){A.r+=(T-A.r)*46}u(A.g!==T){A.g+=(T-A.g)*46}u(A.b!==T){A.b+=(T-A.b)*46}9 A})});V.18("8e",o(J){9 8.1L("8e",o(A){I 2S;2S=1F.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=P.1Y((J+1n)/1n,2);9 8.1L("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1L("81",o(A){I b,g,h,33,r,E;33=1q.7g(A.r,A.g,A.b);h=33.h*1n;h+=P.2R(J);h=h%1n;h/=1n;33.h=h;E=1q.7i(33.h,33.s,33.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,37;u(Y.K===2){37=1q.5d(Y[0]);3j=Y[1]}R u(Y.K===4){37={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1L("7U",o(A){A.r-=(A.r-37.r)*(3j/1n);A.g-=(A.g-37.g)*(3j/1n);A.b-=(A.b-37.b)*(3j/1n);9 A})});V.18("7O",o(){9 8.1L("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1n}J/=1n;9 8.1L("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1L("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2R(J)*2.55;9 8.1L("7y",o(A){I 2A;2A=1F.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2R(J)*2.55;9 8.1L("7x",o(A){u(A.r>D-J){A.r=D}R u(A.rD-J){A.g=D}R u(A.gD-J){A.b=D}R u(A.b0){A.r+=(D-A.r)*1d.4S}R{A.r-=A.r*P.2R(1d.4S)}}u(1d.4M!=G){u(1d.4M>0){A.g+=(D-A.g)*1d.4M}R{A.g-=A.g*P.2R(1d.4M)}}u(1d.4G!=G){u(1d.4G>0){A.b+=(D-A.b)*1d.4G}R{A.b-=A.b*P.2R(1d.4G)}}9 A})});V.18("4z",o(){I 4g,1K,2s,2b,1s,i,3L,1l,C,17,E,2q;2s=Y[0],2b=2<=Y.K?3B.19(Y,1):[];3L=2b[2b.K-1];u(1f 3L==="o"){4g=3L;2b.3U()}R u(1f 3L==="2Y"){4g=1F[3L];2b.3U()}R{4g=1F.1K}u(1f 2s==="2Y"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2b.K<2){1U"3m 5F 5G Y 2l 4z 48";}1K=4g(2b,0,D);1l=2b[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1K[i]=1l[1]}}1s=2b[2b.K-1];u(1s[0]=D;i=2q<=D?++17:--17){1K[i]=1s[1]}}9 8.1L("4z",o(A){I 1O,2y;U(i=1O=0,2y=2s.K;0<=2y?1O<2y:1O>2y;i=0<=2y?++1O:--1O){A[2s[i]]=1K[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2W,2T,p;p=P.2R(J)/1n;2W=[0,D*p];2T=[D-(D*p),D];u(J<0){2W=2W.6O();2T=2T.6O()}9 8.4z(\'37\',[0,0],2W,2T,[D,D])});B.1P.18("5g",o(L,Q,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1Z!=="31"&&1Z!==G){F=1m 3b(L,Q)}R{F=1J.2N(\'F\');1a.3g(8.F,F);F.L=L;F.Q=Q}2p=F.2o(\'2d\');2p.3R(8.F,x,y,L,Q,0,0,L,Q);8.5m={x:x,y:y};8.82=2k;9 8.4O(F)});B.1P.18("4H",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.L==G)&&(1E.Q==G))){1o.6t("3m 7h bp 1I 6M U 4H");9}u(1E.L==G){1E.L=8.F.L*1E.Q/8.F.Q}R u(1E.Q==G){1E.Q=8.F.Q*1E.L/8.F.L}u(1f 1Z!=="31"&&1Z!==G){F=1m 3b(1E.L,1E.Q)}R{F=1J.2N(\'F\');1a.3g(8.F,F);F.L=1E.L;F.Q=1E.Q}2p=F.2o(\'2d\');2p.3R(8.F,0,0,8.F.L,8.F.Q,0,0,1E.L,1E.Q);8.5s=2k;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|Math|height|else|image|max|for|Filter|args|_results|arguments|name||_this||_len|type|pixel||_j|register|call|Util|src|context|options|result|typeof|Renderer|callback|img|min|loc|start|new|100|Log|endX|Convert|Pixel|end|layer|currentJob|case|val|128|Blender|data|push|key|false|debug|newDims|Calculate|controlPoints|obj|dimensions|document|bezier|process|IO|divisor|_k|Plugin|builder|id|Event|imageData|throw|bnum|NodeJS|Store|pow|exports|parentData|initObj|Layer|target|Type|bias|renderingCanvas||055|ret|levels|cps|clampRGB||hex|Module|caman|newLoc|kernel|prev|true|to|imageWidth|imageHeight|getContext|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|mul|Analyze|createElement|opacity|renderer|Blocks|abs|avg|ctrl2|search|Image|ctrl1|window|string|lang|break|undefined|modPixelData|hsv|lowBound|highBound|layerData|rgb|func|trigger|events|Canvas|in|CamanParser|proxyUrl|values|copyAttributes|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|dataArray|getImageData|getAttribute|finishInit|cb|1379310345|chan|__slice|p0|fs|_error|color|child|parent|leftCoord|allowRevert|hiDPIRatio|last|preScaledWidth|p1|preScaledHeight|blockFinished|__hasProp|drawImage|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|renderingContext|amt|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|Fiber|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|hiDPIReplacement|Root|sel|root|green|buf|replaceCanvas|Logger|hueToRGB|blocksDone|red|INST_REGEX|substr|updateContext|rightCoord|dest|fillColor|coord|sub|parseInt|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file diff --git a/src/core/caman.coffee b/src/core/caman.coffee index c89b95df..391ebd99 100644 --- a/src/core/caman.coffee +++ b/src/core/caman.coffee @@ -497,11 +497,9 @@ class Caman extends Module @pixelData = @imageData.data if Caman.allowRevert - @initializedPixelData = Util.dataArray(@pixelData.length) @originalPixelData = Util.dataArray(@pixelData.length) for pixel, i in @pixelData - @initializedPixelData[i] = pixel @originalPixelData[i] = pixel @width = @canvas.width From 6eec39f7afc7fc570e61fb98a37597fe9b8aa7a3 Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Thu, 1 Jan 2015 12:32:17 +0100 Subject: [PATCH 05/12] Caman::toBase64: use rendering canvas --- dist/caman.full.js | 2 +- dist/caman.full.min.js | 2 +- dist/caman.full.pack.js | 2 +- dist/caman.js | 2 +- dist/caman.min.js | 2 +- dist/caman.pack.js | 2 +- src/core/io.coffee | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dist/caman.full.js b/dist/caman.full.js index 488ff21f..85c6d29d 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -1591,7 +1591,7 @@ type = "png"; } type = type.toLowerCase(); - return this.canvas.toDataURL("image/" + type); + return this.renderingCanvas.toDataURL("image/" + type); }; IO = Caman.IO; diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index d1aafe65..286404dc 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -132,7 +132,7 @@ if(callback==null){callback=null;} try{stats=fs.statSync(file);if(stats.isFile()&&!overwrite){return false;}}catch(_error){e=_error;Log.debug("Creating output file "+file);} return fs.writeFile(file,this.canvas.toBuffer(),function(err){Log.debug("Finished writing to "+file);if(callback){return callback.call(this,err);}});};Caman.prototype.toImage=function(type){var img;img=new Image();img.src=this.toBase64(type);img.width=this.dimensions.width;img.height=this.dimensions.height;if(window.devicePixelRatio){img.width/=window.devicePixelRatio;img.height/=window.devicePixelRatio;} return img;};Caman.prototype.toBase64=function(type){if(type==null){type="png";} -type=type.toLowerCase();return this.canvas.toDataURL("image/"+type);};IO=Caman.IO;Caman.Layer=(function(){function Layer(c){this.c=c;this.filter=this.c;this.options={blendingMode:'normal',opacity:1.0};this.layerID=Util.uniqid.get();this.canvas=typeof exports!=="undefined"&&exports!==null?new Canvas():document.createElement('canvas');this.canvas.width=this.c.dimensions.width;this.canvas.height=this.c.dimensions.height;this.context=this.canvas.getContext('2d');this.context.createImageData(this.canvas.width,this.canvas.height);this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;} +type=type.toLowerCase();return this.renderingCanvas.toDataURL("image/"+type);};IO=Caman.IO;Caman.Layer=(function(){function Layer(c){this.c=c;this.filter=this.c;this.options={blendingMode:'normal',opacity:1.0};this.layerID=Util.uniqid.get();this.canvas=typeof exports!=="undefined"&&exports!==null?new Canvas():document.createElement('canvas');this.canvas.width=this.c.dimensions.width;this.canvas.height=this.c.dimensions.height;this.context=this.canvas.getContext('2d');this.context.createImageData(this.canvas.width,this.canvas.height);this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;} Layer.prototype.newLayer=function(cb){return this.c.newLayer.call(this.c,cb);};Layer.prototype.setBlendingMode=function(mode){this.options.blendingMode=mode;return this;};Layer.prototype.opacity=function(opacity){this.options.opacity=opacity/100;return this;};Layer.prototype.copyParent=function(){var i,parentData,_i,_ref;parentData=this.c.pixelData;for(i=_i=0,_ref=this.c.pixelData.length;_i<_ref;i=_i+=4){this.pixelData[i]=parentData[i];this.pixelData[i+1]=parentData[i+1];this.pixelData[i+2]=parentData[i+2];this.pixelData[i+3]=parentData[i+3];} return this;};Layer.prototype.fillColor=function(){return this.c.fillColor.apply(this.c,arguments);};Layer.prototype.overlayImage=function(image){if(typeof image==="object"){image=image.src;}else if(typeof image==="string"&&image[0]==="#"){image=$(image).src;} if(!image){return this;} diff --git a/dist/caman.full.pack.js b/dist/caman.full.pack.js index cd44b732..1577d809 100644 --- a/dist/caman.full.pack.js +++ b/dist/caman.full.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4E,2m,2b,D,59,44,1W,2J,6y,R,2U,4w,3a,1X,3K,1Z,2r,1Q,7O,31,1u,fs,6S,81,5o,8V,6J=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.5l=A(4I,3I,G){M 6s,H,1n,K,3P,1o;B(G==L){G={}}K=4I.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6s=K[H];B((G.7g!=L)&&(3P=6s.9Q,6J.1x(G.7g,3P)>=0)){67}1o.2j(3I.bh(6s.9Q,6s.fP))}u 1o};1u.68=A(P){B(P==L){P=0}B(D.2Y||(4y.ca!=L)){u 1y ca(P)}u 1y 5R(P)};u 1u})();B(1s 2h!=="3Q"&&2h!==L){7O=2h;44=6N(\'I\');4w=44.4w;6y=6N(\'fO\');fs=6N(\'fs\');6S=6N(\'6S\')}S{7O=4y}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5N=2W;D.9C="c3";D.7F="";D.c5="fH";D.2Y=1s 2h!=="3Q"&&2h!==L;D.ce=!D.2Y;D.5J=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Y){u 2W}B(1s I==="3c"){I=$(I)}B(!((I!=L)&&(I.5E!=L))){u L}u I.5E(\'2a-3M-2V\')};A D(){o.5C=8Q(o.5C,o);M 1l,1N,2V;B(1k.P===0){2K"5y 1k";}B(o aT D){o.5x=o.5x.9y(o);o.6z=o.6z.9y(o);1l=1k[0];B(!D.2Y){2V=4f(D.9z(1l[0]),10);1N=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2V)&&31.bR(2V)){u 31.3Z(2V,1N)}}o.2V=1u.9L.49();o.7G=o.4Q=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6G=[];o.9t=[];o.9s=[];o.6W=L;o.d6=2k;o.fz=1y 4E(o);o.4J=1y 1Q(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Y){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2i.9p==="7J"){1X.2s("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2i.9p==="7J"){1X.2s("aU aW");u cb.1x(1r)}}})(o);u 2i.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2v,2f,K,1o;B(1l.P===0){2K"5y 1k be";}o.3b=L;o.7K=L;o.7L=L;o.1N=A(){};o.bo(1l[0]);B(1l.P===1){u}5U(1s 1l[1]){28"3c":o.7L=1l[1];5c;28"A":o.1N=1l[1]}B(1l.P===2){u}o.1N=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2v 5a K){B(!6r.1x(K,2v))67;2f=K[2v];1o.2j(o.1G[2v]=2f)}u 1o}};D.N.bo=A(2A){B(D.2Y){o.3b=2A;o.7K=\'bS\';u}B(1s 2A==="3Y"){o.3b=2A}S{o.3b=$(2A)}B(o.3b==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3b.9Q.6I()};D.N.as=A(){5U(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1X.2s("fr W 2Y");B(1s o.3b==="3c"&&o.3b.82(/^cA?:\\/\\//)){u o.cD(o.3b,o.5C)}S B(1s o.3b==="3c"){u fs.fp(o.3b,o.5C)}S{u o.5C(L,o.3b)}};D.N.cD=A(6Z,1N){M 9g;1X.2s("fm 1d 4I "+6Z);9g=6S.49(6Z,A(4j){M 83;83=\'\';4j.fl(\'d7\');4j.9e(\'2a\',A(a7){u 83+=a7});u 4j.9e(\'1M\',A(){u 1N(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1N)};D.N.5C=A(6R,2a){B(6R){2K 6R;}o.1d=1y 4w();o.1d.1E=2a;1X.2s("4w au. ay = "+(o.46())+", aL = "+(o.3T()));o.I=1y 44(o.46(),o.3T());u o.5x()};D.N.cl=A(){o.1d=o.3b;o.I=2i.3H(\'I\');o.1j=o.I.3i(\'2d\');o.3w=2i.3H(\'I\');o.6x=o.3w.3i(\'2d\');1u.5l(o.1d,o.I,{7g:[\'1E\']});1u.5l(o.1d,o.3w,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.3w,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=o.3b;o.1j=o.I.3i(\'2d\');o.3w=2i.3H(\'I\');o.6x=o.3w.3i(\'2d\');B(o.7L!=L){o.1d=2i.3H(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5x()}};D.N.9b=A(){B(o.99()){1X.2s(o.1d.1E,"->",o.89());o.bi=2W;o.1d.1E=o.89()}B(2U.bj(o.1d)){o.1d.1E=2U.56(o.1d.1E);u 1X.2s("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9a=A(){B(o.bJ()){u o.6z()}S{u o.1d.bP=o.6z}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2W};D.N.46=A(){u o.1d.F||o.1d.94};D.N.3T=A(){u o.1d.J||o.1d.fg};D.N.6z=A(){1X.2s("4w au. ay = "+(o.46())+", aL = "+(o.3T()));B(o.bi){o.I.F=o.46()/o.6d();o.I.J=o.3T()/o.6d();o.3w.F=o.46()/o.6d();o.3w.J=o.3T()/o.6d()}S{o.I.F=o.46();o.I.J=o.3T();o.3w.F=o.46();o.3w.J=o.3T()}u o.5x()};D.N.5x=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3i(\'2d\')}o.8b=o.6g=o.F=o.I.F;o.8c=o.5u=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.5A(o.1d,0,0,o.46(),o.3T(),0,0,o.6g,o.5u);o.6x.5A(o.1d,0,0,o.46(),o.3T(),0,0,o.6g,o.5u)}o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a;B(D.5N){o.7G=1u.68(o.T.P);o.4Q=1u.68(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4Q[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Y){31.cs(o.2V,o)}o.1N.1x(o,o);u o.1N=A(){}};D.N.cy=A(){o.2S=o.1j.4K(0,0,o.I.F,o.I.J);u o.T=o.2S.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5N){2K"8Y 8d";}o.4Q=1u.68(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4Q[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Y||o.I.5E(\'2a-3M-2V\')){u}u o.I.bh(\'2a-3M-2V\',o.2V)};D.N.cH=A(){u o.I.5E(\'2a-3M-cK-8d\')!==L};D.N.cf=A(){M 4r;B(D.2Y||!o.99()){u}4r=o.6d();B(4r!==1){1X.2s("fe 4r = "+4r);o.d6=2W;o.6g=o.I.F;o.5u=o.I.J;o.I.F=o.6g*4r;o.I.J=o.5u*4r;o.I.cN.F=""+o.6g+"cQ";o.I.cN.J=""+o.5u+"cQ";o.1j.fd(4r,4r);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6d=A(){M 8W,4o;4o=4y.4o||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4o/8W};D.N.a8=A(){u(4y.4o!=L)&&4y.4o!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5E(\'2a-3M-cK\')};D.N.6T=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3i(\'2d\');o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a;B(D.5N){o.4Q=1u.68(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4Q[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1N){B(1N==L){1N=A(){}}2J.5m(o,"ai");u o.4J.3Z((A(1r){u A(){1r.3w.F=1r.I.F;1r.3w.J=1r.I.J;1r.6x.8S(1r.2S,0,0);u 1N.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2W}B(!D.5N){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.6x.8S(o.2S,0,0)}};D.N.f6=A(){M I,2E,i,2S,1w,T,H,1n,K;I=2i.3H(\'I\');1u.5l(o.I,I);I.F=o.8b;I.J=o.8c;2E=I.3i(\'2d\');2S=2E.4K(0,0,I.F,I.J);T=2S.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2E.8S(2S,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6T(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,3P,4e;B(!D.5N){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4Q;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2O+=Q[i]}}o.4J.4h({1v:R.3j.8I,1p:1p,Q:Q,2O:2O,3h:3h});u o};D.N.5h=A(4i,1l){o.4J.4h({1v:R.3j.2r,4i:4i,1l:1l});u o};D.N.32=A(1N){M 2g;2g=1y 3a(o);o.9s.2j(2g);o.4J.4h({1v:R.3j.8H});1N.1x(2g);o.4J.4h({1v:R.3j.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6W);o.6G.2j(o.T);o.6W=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6G.6A();u o.6W=o.9t.6A()};D.N.c1=A(){u o.6W.c2()};u D})(3K);7O.D=D;D.4E=(A(){A 4E(c){o.c=c}4E.N.f5=A(){M i,3r,6V,H,1f,1H,K;3r={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3r.r[i]=0;3r.g[i]=0;3r.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6u.P;H<1n;H++){1P=6u[H];1o.2j(cj=1y 59(1P,A(){o.ck();u o.3Z()}))}u 1o};B(D.ce){(A(){B(2i.9p==="7J"){u D.9m()}S{u 2i.aX("f3",D.9m,2k)}})()}59=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 59(4k,ct){o.cw=4k.5E(\'2a-3M\');o.3M=D(4k,ct.9y(o))}59.N.ck=A(){M 1l,e,1C,57,8K,8L,m,r,6L,H,1n,K,1o;o.4k=o.3M.I;r=1y cJ(8v,\'g\');6L=o.cw.82(r);B(!(6L.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6L.P;H<1n;H++){8K=6L[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{57=8L();1o.2j(57.1x(o.3M))}8N(6m){e=6m;1o.2j(1X.2s(e))}}u 1o};59.N.3Z=A(){M 4k;4k=o.4k;u o.3M.ac(A(){u 4k.9c.aY(o.cO(),4k)})};u 59})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,57){u o.8P[1p]=57};2m.3Z=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.52=A(72,73,6p,6q){u O.8l(O.1T(6p-72,2)+O.1T(6q-73,2))};2b.ab=A(1S,1e,6w){M 4g;B(6w==L){6w=2k}4g=1S+(O.f1()*(1e-1S));B(6w){u 4g.f0(6w)}S{u O.5Q(4g)}};2b.6E=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4D,4C,1M,5g,5k){M 29,6o,2z,26,i,j,5q,1L,3F,t,H,1f,K;B(5g==L){5g=0}B(5k==L){5k=E}B(1J[0]aT 5R){2z=1J;5g=4D;5k=4C}S{2z=[1J,4D,4C,1M]}B(2z.P<2){2K"5y 8e 8X 1k 3I 29";}29={};5q=A(a,b,t){u a*(1-t)+b*t};6o=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1L=[];W(j=1f=0,K=3F.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1L.2j([5q(3F[j][0],3F[j+1][0],t),5q(3F[j][1],3F[j+1][1],t)])}3F=1L}29[O.5Q(3F[0][0])]=O.5Q(6o(3F[0][1],5g,5k))}26=2z[2z.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2z,5g,5k){M 4h,6o,98,26,88,86,85,84,i,j,5q,9f,9h,4F,p,5Y,5Z,4H,7Z,7Y,3z,7W,t,H,1f,K;B(2z.P<2){2K"5y 8e 8X 1k 3I bE";}3z={};5q=A(a,b,t){u a*(1-t)+b*t};4h=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4F=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);6o=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};98=0;W(i=H=0,K=2z.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5Y=2z[i];5Z=2z[i+1];4H=5Z[0]-5Y[0];7Z=1/4H;B(i===2z.P-2){7Z=1/(4H-1)}p=i>0?2z[i-1]:5Y;9f=4F(7W(5Z,p),[0.5,0.5]);p=i<2z.P-2?2z[i+2]:5Z;9h=4F(7W(p,5Y),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4h(4F(5Y,[88,88]),4F(9f,[86,86]),4F(5Z,[85,85]),4F(9h,[84,84]));3z[O.5Q(7Y[0])]=O.5Q(6o(7Y[1],5g,5k));98+=1}}26=2z[2z.P-1][0];3z=D.2b.91(3z,26);u 3z};2b.91=A(5d,26){M i,j,6b,3z,7V,H,1f;B(bk.eX(5d).P<26+1){3z={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(5d[i]!=L){3z[i]=5d[i]}S{6b=[i-1,3z[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(5d[j]!=L){7V=[j,5d[j]];5c}}3z[i]=6b[1]+((7V[1]-6b[1])/(7V[0]-6b[0]))*(i-6b[0])}}u 3z}u 5d};u 2b})();2b=D.2b;D.1W=(A(){A 1W(){}1W.7U=A(3L){M b,g,r;B(3L.eW(0)==="#"){3L=3L.51(1)}r=4f(3L.51(0,2),16);g=4f(3L.51(2,2),16);b=4f(3L.51(4,2),16);u{r:r,g:g,b:b}};1W.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="3Y"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5U(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1W.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5U(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3y)/1.3y,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3y)/1.3y,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3y)/1.3y,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1W.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3y*O.1T(r,0.9q))-0.3y}S{r*=12.92}B(g>0.9n){g=(1.3y*O.1T(g,0.9q))-0.3y}S{g*=12.92}B(b>0.9n){b=(1.3y*O.1T(b,0.9q))-0.3y}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1W.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="3Y"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5V}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5V}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5V}l=aQ*y-16;a=aR*(x-y);b=5W*(y-z);u{l:l,a:a,b:b}};1W.eD=A(l,a,b){M x,y,z;B(1s l==="3Y"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5W);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5V)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5V)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5V)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1W.eC=A(r,g,b){M 9V;B(1s r==="3Y"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1W.eB=A(l,a,b){};u 1W})();1W=D.1W;D.2J=(A(){A 2J(){}2J.5b={};2J.b1=["b6","bb","ai","bc","bd","63"];2J.5m=A(34,1v,2a){M 6F,H,1n,K,1o;B(2a==L){2a=L}B(o.5b[1v]&&o.5b[1v].P){K=o.5b[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6F=K[H];B(6F.34===L||34.2V===6F.34.2V){1o.2j(6F.fn.1x(34,2a))}S{1o.2j(bg 0)}}u 1o}};2J.eA=A(34,1v,fn){M 9W,9X;B(1s 34==="3c"){9X=34;9W=1v;34=L;1v=9X;fn=9W}B(6J.1x(o.b1,1v)<0){u 2k}B(!o.5b[1v]){o.5b[1v]=[]}o.5b[1v].2j({34:34,fn:fn});u 2W};u 2J})();2J=D.2J;D.R=(A(){A R(){}R.3j={8J:1,8I:2,8H:3,8G:4,9Y:5,2r:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2U=(A(){A 2U(){}2U.bm=/(?:(?:6S|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2U.bj=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2U.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6I())===\'c3\'||K===\'bp-ez\')};2U.7h=A(6Z){M 7d;7d=6Z.82(o.bm);B(7d){u 7d[1]!==2i.ey}S{u 2k}};2U.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1X.a2("ex 3I ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7h(D.7F)){1X.a2("es bp a bH bK W er eq.");u}u o.56(1E)}}};2U.56=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2U.eo=A(5j){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5j=5j.6I();B(8z[5j]!=L){5j=8z[5j]}u"ee/ed."+5j};u 2U})();D.N.c6=A(){B(1s 2h!=="3Q"&&2h!==L){u o.c7.4n(o,1k)}S{u o.c8.4n(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6I();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2i.e9.e8=1d};D.N.c7=A(6a,7b,1N){M e,a1;B(7b==L){7b=2W}B(1N==L){1N=L}8M{a1=fs.e7(6a);B(a1.e6()&&!7b){u 2k}}8N(6m){e=6m;1X.2s("e5 e4 6a "+6a)}u fs.e3(6a,o.I.e2(),A(6R){1X.2s("e1 e0 3I "+6a);B(1N){u 1N.1x(o,6R)}})};D.N.cO=A(1v){M 1P;1P=1y 4w();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4y.4o){1P.F/=4y.4o;1P.J/=4y.4o}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6I();u o.I.dZ("1d/"+1v)};2U=D.2U;D.3a=(A(){A 3a(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2p:1.0};o.dY=1u.9L.49();o.I=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3i(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a}3a.N.32=A(cb){u o.c.32.1x(o.c,cb)};3a.N.3A=A(cx){o.1G.a0=cx;u o};3a.N.2p=A(2p){o.1G.2p=2p/1i;u o};3a.N.4a=A(){M i,2Z,H,K;2Z=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3O<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3O)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5T a 5S 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3O>o.c.T.P||3O<0){u}o.c.T[3O]=C.r;o.c.T[3O+1]=C.g;o.c.T[3O+2]=C.b;o.c.T[3O+3]=C.a;u 2W};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5T a 5S 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5T a 5S 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5J=A(){u o.dR()};1Z.N.dQ=A(7B){M 3L;B(7B==L){7B=2k}3L=\'#\'+o.r.5J(16)+o.g.5J(16)+o.b.5J(16);B(7B){u 3L+o.a.5J(16)}S{u 3L}};u 1Z})();1Z=D.1Z;D.2r=(A(){A 2r(){}2r.9G={};2r.V=A(1p,4i){u o.9G[1p]=4i};2r.3Z=A(1j,1p,1l){u o.9G[1p].4n(1j,1l)};u 2r})();2r=D.2r;D.1Q=(A(){1Q.4V=D.2Y?6N(\'dP\').dO().P:4;A 1Q(c){o.c=c;o.4m=8Q(o.4m,o);o.6B=[];o.54=L}1Q.N.4h=A(9x){B(9x==L){u}u o.6B.2j(9x)};1Q.N.4m=A(){M 2g;B(o.6B.P===0){2J.5m(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6B.d9();5U(o.2c.1v){28 R.3j.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4m();28 R.3j.8G:o.c.c1();o.c.bZ();u o.4m();28 R.3j.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3j.2r:u o.db();dN:u o.a6()}};1Q.N.3Z=A(1N){o.9v=1N;o.54=1u.68(o.c.T.P);u o.4m()};1Q.N.9o=A(fn){M 71,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2L((n/4)/1Q.4V);71=8B*4;9l=71+((n/4)%1Q.4V)*4;1o=[];W(i=H=0,K=1Q.4V;0<=K?HK;i=0<=K?++H:--H){1J=i*71;1M=1J+(i===1Q.4V-1?9l:71);B(D.2Y){f=6y((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.63(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1Q.N.a6=A(){2J.5m(o.c,"b6",o.2c);B(o.2c.1v===R.3j.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1Q.N.db=A(){1X.2s("dL 4i "+o.2c.4i);2r.3Z(o.c,o.2c.4i,o.2c.1l);1X.2s("2r "+o.2c.4i+" 9k!");u o.4m()};1Q.N.af=A(2Q,1J,1M){M i,1w,H;1X.2s("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2J.5m(o.c,"bd",{am:2Q,an:1Q.4V,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3E(1w.r);o.c.T[i+1]=1u.3E(1w.g);o.c.T[i+2]=1u.3E(1w.b);o.c.T[i+3]=1u.3E(1w.a)}B(D.2Y){u 6y["aq"](2Q)}S{u o.63(2Q)}};1Q.N.ag=A(2Q,1J,1M){M Q,6D,3h,2T,5p,2O,i,j,k,2F,n,1p,p,1w,4j,H,1f,1H;1p=o.2c.1p;3h=o.2c.3h;2O=o.2c.2O;n=o.c.T.P;Q=o.2c.Q;6D=O.8l(Q.P);2F=[];1X.2s("dG 2F - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6D-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6D-1)/2)));2T=(6D-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;5p=0;W(j=1f=-2T;-2T<=2T?1f<=2T:1f>=2T;j=-2T<=2T?++1f:--1f){W(k=1H=2T;2T<=-2T?1H<=-2T:1H>=-2T;k=2T<=-2T?++1H:--1H){p=1w.cP(j,k);2F[5p*3]=p.r;2F[5p*3+1]=p.g;2F[5p*3+2]=p.b;5p++}}4j=o.3J(Q,2F,2O,3h);o.54[i]=1u.3E(4j.r);o.54[i+1]=1u.3E(4j.g);o.54[i+2]=1u.3E(4j.b);o.54[i+3]=o.c.T[i+3]}B(D.2Y){u 6y["aq"](2Q)}S{u o.63(2Q)}};1Q.N.63=A(2Q){M i,H,K;B(2Q>=0){1X.2s("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2J.5m(o.c,"63",{am:2Q,dF:o.7P,an:1Q.4V});B(o.7P===1Q.4V){B(o.2c.1v===R.3j.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.54[i]}}B(2Q>=0){1X.2s("R "+o.2c.1p+" 9k!")}2J.5m(o.c,"bb",o.2c);u o.4m()}};1Q.N.3J=A(Q,2F,2O,3h){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2F[i*3];2f.g+=Q[i]*2F[i*3+1];2f.b+=Q[i]*2F[i*3+2]}2f.r=(2f.r/2O)+3h;2f.g=(2f.g/2O)+3h;2f.b=(2f.b/2O)+3h;u 2f};1Q.N.da=A(2g,1E){M 1P,56;1P=1y 4w();1P.bP=(A(1r){u A(){2g.1j.5A(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2S=2g.1j.4K(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2S.2a;1r.c.T=2g.T;u 1r.4m()}})(o);56=2U.bu(1E);u 1P.1E=56!=L?56:1E};u 1Q})();1Q=D.1Q;D.31=(A(){A 31(){}31.6e={};31.bR=A(4L){u o.6e[4L]!=L};31.49=A(4L){u o.6e[4L]};31.cs=A(1p,2A){u o.6e[1p]=2A};31.3Z=A(4L,1N){7I((A(1r){u A(){u 1N.1x(1r.49(4L),1r.49(4L))}})(o),0);u o.49(4L)};31.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.6e[1p]}S{u o.6e={}}};u 31})();31=D.31;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("65",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4R",A(){M 3d;B(1k.P===1){3d=1W.7U(1k[0])}S{3d={r:1k[0],g:1k[1],b:1k[2]}}u o.2o("4R",A(C){C.r=3d.r;C.g=3d.g;C.b=3d.b;C.a=E;u C})});R.V("3l",A(Q){Q=O.2L(E*(Q/1i));u o.2o("3l",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3G",A(Q){Q*=-0.dy;u o.2o("3G",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("43",A(Q){Q*=-1;u o.2o("43",A(C){M 1q,4B,1e;1e=O.1e(C.r,C.g,C.b);4B=(C.r+C.g+C.b)/3;1q=((O.4A(1e-4B)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4z",A(Q){u o.2o("4z",A(C){M 4B;4B=2b.6E(C);C.r=4B;C.g=4B;C.b=4B;u C})});R.V("2u",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2o("2u",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2o("93",A(C){M b,g,h,5f,r,K;5f=1W.cC(C.r,C.g,C.b);h=5f.h*1i;h+=O.4A(Q);h=h%1i;h/=1i;5f.h=h;K=1W.cE(5f.h,5f.s,5f.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4p",A(){M 5z,3e;B(1k.P===2){3e=1W.7U(1k[0]);5z=1k[1]}S B(1k.P===4){3e={r:1k[0],g:1k[1],b:1k[2]};5z=1k[3]}u o.2o("4p",A(C){C.r-=(C.r-3e.r)*(5z/1i);C.g-=(C.g-3e.g)*(5z/1i);C.b-=(C.b-3e.b)*(5z/1i);u C})});R.V("b0",A(){u o.2o("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4s",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2o("4s",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2t",A(Q){u o.2o("2t",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4A(Q)*2.55;u o.2o("8i",A(C){M 4g;4g=2b.ab(Q*-1,Q);C.r+=4g;C.g+=4g;C.b+=4g;u C})});R.V("8j",A(Q){Q=O.4A(Q)*2.55;u o.2o("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3f}S{C.r-=C.r*O.4A(1G.3f)}}B(1G.4X!=L){B(1G.4X>0){C.g+=(E-C.g)*1G.4X}S{C.g-=C.g*O.4A(1G.4X)}}B(1G.3V!=L){B(1G.3V>0){C.b+=(E-C.b)*1G.3V}S{C.b-=C.b*O.4A(1G.3V)}}u C})});R.V("2e",A(){M 6O,29,48,3N,1M,i,61,1J,H,1f,K,3P;48=1k[0],3N=2<=1k.P?5H.1x(1k,1):[];61=3N[3N.P-1];B(1s 61==="A"){6O=61;3N.6A()}S B(1s 61==="3c"){6O=2b[61];3N.6A()}S{6O=2b.29}B(1s 48==="3c"){48=48.do("")}B(48[0]==="v"){48=[\'r\',\'g\',\'b\']}B(3N.P<2){2K"5y 8e 8X 1k 3I 2e 1C";}29=6O(3N,0,E);1J=3N[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3N[3N.P-1];B(1M[0]=E;i=3P<=E?++1f:--1f){29[i]=1M[1]}}u o.2o("2e",A(C){M 1H,4e;W(i=1H=0,4e=48.P;0<=4e?1H<4e:1H>4e;i=0<=4e?++1H:--1H){C[48[i]]=29[C[48[i]]]}u C})});R.V("39",A(Q){M 4D,4C,p;p=O.4A(Q)/1i;4D=[0,E*p];4C=[E-(E*p),E];B(Q<0){4D=4D.br();4C=4C.br()}u o.2e(\'3e\',[0,0],4D,4C,[E,E])});D.2r.V("8F",A(F,J,x,y){M I,2E;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="3Q"&&2h!==L){I=1y 44(F,J)}S{I=2i.3H(\'I\');1u.5l(o.I,I);I.F=F;I.J=J}2E=I.3i(\'2d\');2E.5A(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2W;u o.6T(I)});D.2r.V("8x",A(2D){M I,2E;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1X.9d("5y cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="3Q"&&2h!==L){I=1y 44(2D.F,2D.J)}S{I=2i.3H(\'I\');1u.5l(o.I,I);I.F=2D.F;I.J=2D.J}2E=I.3i(\'2d\');2E.5A(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2W;u o.6T(I)});D.R.V("8F",A(){u o.5h("8F",5R.N.5o.1x(1k,0))});D.R.V("8x",A(){u o.5h("8x",5R.N.5o.1x(1k,0))});D.R.V("dm",A(){u o.3J("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3J("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3J("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3q){M 2F;B(3q===0||3q===4d){2F=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3q>0&&3q<90)||(3q>4d&&3q<8w)){2F=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3q===90||3q===8w){2F=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2F=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3J("de 8A",2F)});D.R.V("6K",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3J("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3l:A(C,1q,G){C.r=C.r-(C.r*1q*G.3g);C.g=C.g-(C.g*1q*G.3g);C.b=C.b-(C.b*1q*G.3g);u C},2t:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3g,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3g,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3g,1))*E;u C},4p:A(C,1q,G){C.r-=(C.r-G.3d.r)*1q;C.g-=(C.g-G.3d.g)*1q;C.b-=(C.b-G.3d.b)*1q;u C}};R.V("1V",A(1t,3g){M 29,3B,1M,1J;B(3g==L){3g=60}B(1s 1t==="3c"&&1t.51(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4f(1t.51(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4f(1t.51(0,1t.P-1),10)/1i)}}3g/=1i;3B=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3B[0],2)+O.1T(3B[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2o("1V",A(C){M 8p,2I,U;U=C.9M();8p=2b.52(U.x,U.y,3B[0],3B[1]);B(8p>1M){2I=O.1e(1,(29[O.5Q(((8p-1M)/1t)*1i)]/10)*3g);C.r=O.1T(C.r/E,2I)*E;C.g=O.1T(C.g/E,2I)*E;C.b=O.1T(C.b/E,2I)*E}u C})});R.V("bY",A(G){M 4u,6i,8k,1t,H,1n,K;4u={3g:50,2H:0,8U:\'3l\',3d:{r:0,g:0,b:0}};G=1u.79(4u,G);B(!G.1t){u o}S B(1s G.1t==="3c"){8k=4f(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="3Y"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){6i=K[H];B(1s G.1t[6i]==="3c"){G.1t[6i]=o.1c[6i]*(4f(G.1t[6i],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2H==="3c"){G.2H=(G.1t.F/2)*(4f(G.2H,10)/1i)}G.3g/=1i;G.1t.F=O.2L(G.1t.F);G.1t.J=O.2L(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4p"&&1s G.3d==="3c"){G.3d=1W.7U(G.3d)}G.1Y={5e:(o.1c.F-G.1t.F)/2,64:o.1c.F-G.1Y.5e,53:(o.1c.J-G.1t.J)/2,5s:o.1c.J-G.1Y.53};G.1z=[{x:G.1Y.5e+G.2H,y:G.1Y.5s-G.2H},{x:G.1Y.64-G.2H,y:G.1Y.5s-G.2H},{x:G.1Y.64-G.2H,y:G.1Y.53+G.2H},{x:G.1Y.5e+G.2H,y:G.1Y.53+G.2H}];G.4c=2b.52(0,0,G.1z[3].x,G.1z[3].y)-G.2H;u o.2o("bY",A(C){M 1q,U,4b;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1Y.53&&U.yG.1Y.5e&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1Y.5s){1q=(U.y-G.1Y.5s)/G.4c}S B(U.y>G.1z[2].y&&U.yG.1Y.64){1q=(U.x-G.1Y.64)/G.4c}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4b=D.52(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4b-G.2H)/G.4c}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4b=D.52(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4b-G.2H)/G.4c}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4b=D.52(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4b-G.2H)/G.4c}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4b=D.52(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4b-G.2H)/G.4c}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4M,96,97,5w,62;5w=[2P,2P,37,2P,3u,37,3D,2P,42,3u,3v,37,3S,3D,3R,2P,4U,42,4W,3u,4Y,3v,4T,37,4G,3S,4l,3D,38,3R,4v,2P,6n,4U,47,42,66,4W,6f,3u,38,4Y,6h,3v,4O,4T,4P,37,5r,4G,5v,3S,5G,4l,5I,3D,5K,38,5L,3R,5X,4v,3X,2P,7D,6n,7C,4U,7A,47,7x,42,7w,66,7v,4W,4N,6f,7u,3u,69,38,7t,4Y,7s,6h,4x,3v,3X,4O,7r,4T,7q,4P,7o,37,7n,5r,47,4G,7m,5v,7k,3S,7j,5G,7i,4l,4N,5I,6c,3D,7f,5K,7e,38,7c,5L,7a,3R,6j,5X,4x,4v,78,3X,76,2P,bU,7D,bN,6n,4P,7C,bL,4U,bG,7A,bF,47,bD,7x,bC,42,bB,7w,bA,66,bz,7v,bx,4W,bw,4N,74,6f,6c,7u,8u,3u,ba,69,b9,38,b8,7t,b7,4Y,8g,7s,6j,6h,b5,4x,b4,3v,b3,3X,b2,4O,aO,7r,aK,4T,aJ,7q,aH,4P,aF,7o,aC,37,az,7n,ax,5r,aw,47,ap,4G,ao,7m,al,5v,ak,7k,ah,3S,ae,7j,dc,5G,d3,7i,d2,4l,cY,4N,74,5I,cX,6c,cW,3D,8u,7f,cV,5K,69,7e,cT,38,cG,7c,cB,5L,8T,7a,8g,3R,cv,6j,cu,5X,cq,4x,cp,4v,3v,78,co,3X,cn,76,4O];62=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6l,6k,2G,P,c0){M 41,1j,2w,72,6p,73,6q;41=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');41.F=F;41.J=J;72=6l+O.bW(2G)*P*0.5;73=6k+O.bV(2G)*P*0.5;6p=6l-O.bW(2G)*P*0.5;6q=6k-O.bV(2G)*P*0.5;1j=41.3i("2d");2w=1j.en(72,73,6p,6q);B(!c0){2w.5i(0,"77");2w.5i(1,"a4")}S{2w.5i(0,"77");2w.5i(0.5,"a4");2w.5i(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4K(0,0,F,J)};97=A(F,J,6l,6k,6Q,6P){M 41,1j,2w;41=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');41.F=F;41.J=J;1j=41.3i("2d");2w=1j.ev(6l,6k,6Q,6l,6k,6P);2w.5i(1,"77");2w.5i(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4K(0,0,F,J)};4M=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1L=L};D.2r.V("a3",A(by,1U,bq,7l){M 2l,2B,1O,5M,6Y,2I,2n,2x,1K,J,3U,i,6U,2C,3n,7M,3W,6M,2N,p,1D,1A,Y,1B,2q,2y,1R,9i,1a,33,2R,1b,4t,1m,1I,2M,5n,2X,8h,8f,5D,F,3t,x,y,1h,4S,4Z,H,1f,1H,3m,3p,3o,3s,3x,3C,5F;F=o.1c.F;J=o.1c.J;3n=o.T;9i=by.2a;8f=F*J;5D=8f<<2;Y=[];W(i=H=0;0<=5D?H<5D:H>5D;i=0<=5D?++H:--H){Y[i]=3n[i]}6Y=0;5n=7l;7l-=1;8Z(5n-->=0){3W=(1U+0.5)|0;B(3W===0){67}B(3W>6t){3W=6t}2I=3W+3W+1;8h=F<<2;3t=F-1;3U=J-1;1a=3W+1;2X=1a*(1a+1)/2;2M=1y 4M();4t=bg 0;1b=2M;W(i=1f=1;1<=2I?1f<2I:1f>2I;i=1<=2I?++1f:--1f){1b=1b.1L=1y 4M();B(i===1a){4t=1b}}1b.1L=2M;1m=L;1I=L;4Z=1h=0;2N=5w[3W];2R=62[3W];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1R=1K=1O=0;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3m=0;0<=1a?3m<1a:3m>1a;i=0<=1a?++3m:--3m){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}W(i=3p=1;1<=1a?3p<1a:3p>1a;i=1<=1a?++3p:--3p){p=1h+((3tF;x=0<=F?++3o:--3o){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1K*2N)>>2R;Y[1h+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(4Z+((p=x+1a)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2q;1K+=2n;1O+=2l;1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=4}4Z+=F}W(x=3s=0;0<=F?3sF;x=0<=F?++3s:--3s){2n=2l=2q=1K=1O=1R=0;1h=x<<2;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3x=0;0<=1a?3x<1a:3x>1a;i=0<=1a?++3x:--3x){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}4S=F;W(i=3C=1;1<=1a?3C<1a:3C>1a;i=1<=1a?++3C:--3C){1h=(4S+x)<<2;1R+=(1b.r=(1B=Y[1h]))*(33=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*33;1O+=(1b.b=(1D=Y[1h+2]))*33;2q+=1B;2n+=1A;2l+=1D;1b=1b.1L;B(i<3U){4S+=F}}1h=x;1m=2M;1I=4t;W(y=5F=0;0<=J?5FJ;y=0<=J?++5F:--5F){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1K*2N)>>2R;Y[p+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=F}}1U*=bq;i=8f;8Z(--i>-1){2C=i<<2;6M=(9i[2C+2]&fo)/E.0*7l;7M=6M|0;B(7M===6Y){5M=6t.0*(6M-(6M|0));6U=6t-5M;3n[2C]=(3n[2C]*6U+Y[2C]*5M)>>8;3n[2C+1]=(3n[2C+1]*6U+Y[2C+1]*5M)>>8;3n[2C+2]=(3n[2C+2]*6U+Y[2C+2]*5M)>>8}S B(7M===6Y+1){3n[2C]=Y[2C];3n[2C+1]=Y[2C+1];3n[2C+2]=Y[2C+2]}}6Y++}u o});D.R.V("fq",A(G){M 4u,2w;4u={3B:{x:o.1c.F/2,y:o.1c.J/2},2G:45,cd:5W,7R:3,7Q:1.5,5n:3};G=1u.79(4u,G);G.2G*=O.aZ/4d;2w=96(o.1c.F,o.1c.J,G.3B.x,G.3B.y,G.2G,G.cd,2W);u o.5h("a3",[2w,G.7R,G.7Q,G.5n])});u D.R.V("fx",A(G){M 4u,2w,6Q,6P;4u={1t:50,3B:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5n:3,1U:L};G=1u.79(4u,G);B(!G.1U){G.1U=o.1c.F2I;i=1<=2I?++H:--H){1b=1b.1L=1y 4M();B(i===1a){4t=1b}}1b.1L=2M;1m=L;1I=L;4Z=1h=0;2N=5w[1U];2R=62[1U];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1R=1K=1O=0;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3tF;x=0<=F?++3p:--3p){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1K*2N)>>2R;Y[1h+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(4Z+((p=x+1U+1)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2q;1K+=2n;1O+=2l;1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=4}4Z+=F}W(x=3o=0;0<=F?3oF;x=0<=F?++3o:--3o){2n=2l=2q=1K=1O=1R=0;1h=x<<2;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3s=0;0<=1a?3s<1a:3s>1a;i=0<=1a?++3s:--3s){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}4S=F;W(i=3x=1;1<=1U?3x<=1U:3x>=1U;i=1<=1U?++3x:--3x){1h=(4S+x)<<2;1R+=(1b.r=(1B=Y[1h]))*(33=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*33;1O+=(1b.b=(1D=Y[1h+2]))*33;2q+=1B;2n+=1A;2l+=1D;1b=1b.1L;B(i<3U){4S+=F}}1h=x;1m=2M;1I=4t;W(y=3C=0;0<=J?3CJ;y=0<=J?++3C:--3C){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1K*2N)>>2R;Y[p+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=F}}u o});u D.R.V("5t",A(1U){u o.5h("5t",[1U])})})();D.R.V("aD",A(Q){u o.2o("aD",A(C){M 6E;6E=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6E35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4E,2m,2b,D,59,44,1W,2J,6y,R,2U,4w,3a,1X,3K,1Z,2r,1Q,7O,31,1u,fs,6S,81,5o,8V,6J=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.5l=A(4I,3I,G){M 6s,H,1n,K,3P,1o;B(G==L){G={}}K=4I.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6s=K[H];B((G.7g!=L)&&(3P=6s.9Q,6J.1x(G.7g,3P)>=0)){67}1o.2j(3I.bh(6s.9Q,6s.fP))}u 1o};1u.68=A(P){B(P==L){P=0}B(D.2Y||(4y.ca!=L)){u 1y ca(P)}u 1y 5R(P)};u 1u})();B(1s 2h!=="3Q"&&2h!==L){7O=2h;44=6N(\'I\');4w=44.4w;6y=6N(\'fO\');fs=6N(\'fs\');6S=6N(\'6S\')}S{7O=4y}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5N=2W;D.9C="c3";D.7F="";D.c5="fH";D.2Y=1s 2h!=="3Q"&&2h!==L;D.ce=!D.2Y;D.5J=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Y){u 2W}B(1s I==="3h"){I=$(I)}B(!((I!=L)&&(I.5E!=L))){u L}u I.5E(\'2a-3M-2V\')};A D(){o.5C=8Q(o.5C,o);M 1l,1N,2V;B(1k.P===0){2K"5y 1k";}B(o aT D){o.5x=o.5x.9y(o);o.6z=o.6z.9y(o);1l=1k[0];B(!D.2Y){2V=4f(D.9z(1l[0]),10);1N=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2V)&&31.bR(2V)){u 31.3Z(2V,1N)}}o.2V=1u.9L.49();o.7G=o.4Q=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6G=[];o.9t=[];o.9s=[];o.6W=L;o.d6=2k;o.fz=1y 4E(o);o.4J=1y 1Q(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Y){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2i.9p==="7J"){1X.2s("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2i.9p==="7J"){1X.2s("aU aW");u cb.1x(1r)}}})(o);u 2i.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2v,2f,K,1o;B(1l.P===0){2K"5y 1k be";}o.3b=L;o.7K=L;o.7L=L;o.1N=A(){};o.bo(1l[0]);B(1l.P===1){u}5U(1s 1l[1]){28"3h":o.7L=1l[1];5c;28"A":o.1N=1l[1]}B(1l.P===2){u}o.1N=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2v 5a K){B(!6r.1x(K,2v))67;2f=K[2v];1o.2j(o.1G[2v]=2f)}u 1o}};D.N.bo=A(2A){B(D.2Y){o.3b=2A;o.7K=\'bS\';u}B(1s 2A==="3Y"){o.3b=2A}S{o.3b=$(2A)}B(o.3b==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3b.9Q.6I()};D.N.as=A(){5U(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1X.2s("fr W 2Y");B(1s o.3b==="3h"&&o.3b.82(/^cA?:\\/\\//)){u o.cD(o.3b,o.5C)}S B(1s o.3b==="3h"){u fs.fp(o.3b,o.5C)}S{u o.5C(L,o.3b)}};D.N.cD=A(6Z,1N){M 9g;1X.2s("fm 1d 4I "+6Z);9g=6S.49(6Z,A(4j){M 83;83=\'\';4j.fl(\'d7\');4j.9e(\'2a\',A(a7){u 83+=a7});u 4j.9e(\'1M\',A(){u 1N(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1N)};D.N.5C=A(6R,2a){B(6R){2K 6R;}o.1d=1y 4w();o.1d.1E=2a;1X.2s("4w au. ay = "+(o.46())+", aL = "+(o.3T()));o.I=1y 44(o.46(),o.3T());u o.5x()};D.N.cl=A(){o.1d=o.3b;o.I=2i.3H(\'I\');o.1j=o.I.3k(\'2d\');o.3i=2i.3H(\'I\');o.6x=o.3i.3k(\'2d\');1u.5l(o.1d,o.I,{7g:[\'1E\']});1u.5l(o.1d,o.3i,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.3i,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=o.3b;o.1j=o.I.3k(\'2d\');o.3i=2i.3H(\'I\');o.6x=o.3i.3k(\'2d\');B(o.7L!=L){o.1d=2i.3H(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5x()}};D.N.9b=A(){B(o.99()){1X.2s(o.1d.1E,"->",o.89());o.bi=2W;o.1d.1E=o.89()}B(2U.bj(o.1d)){o.1d.1E=2U.56(o.1d.1E);u 1X.2s("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9a=A(){B(o.bJ()){u o.6z()}S{u o.1d.bP=o.6z}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2W};D.N.46=A(){u o.1d.F||o.1d.94};D.N.3T=A(){u o.1d.J||o.1d.fg};D.N.6z=A(){1X.2s("4w au. ay = "+(o.46())+", aL = "+(o.3T()));B(o.bi){o.I.F=o.46()/o.6d();o.I.J=o.3T()/o.6d();o.3i.F=o.46()/o.6d();o.3i.J=o.3T()/o.6d()}S{o.I.F=o.46();o.I.J=o.3T();o.3i.F=o.46();o.3i.J=o.3T()}u o.5x()};D.N.5x=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3k(\'2d\')}o.8b=o.6g=o.F=o.I.F;o.8c=o.5u=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.5A(o.1d,0,0,o.46(),o.3T(),0,0,o.6g,o.5u);o.6x.5A(o.1d,0,0,o.46(),o.3T(),0,0,o.6g,o.5u)}o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a;B(D.5N){o.7G=1u.68(o.T.P);o.4Q=1u.68(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4Q[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Y){31.cs(o.2V,o)}o.1N.1x(o,o);u o.1N=A(){}};D.N.cy=A(){o.2S=o.1j.4K(0,0,o.I.F,o.I.J);u o.T=o.2S.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5N){2K"8Y 8d";}o.4Q=1u.68(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4Q[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Y||o.I.5E(\'2a-3M-2V\')){u}u o.I.bh(\'2a-3M-2V\',o.2V)};D.N.cH=A(){u o.I.5E(\'2a-3M-cK-8d\')!==L};D.N.cf=A(){M 4r;B(D.2Y||!o.99()){u}4r=o.6d();B(4r!==1){1X.2s("fe 4r = "+4r);o.d6=2W;o.6g=o.I.F;o.5u=o.I.J;o.I.F=o.6g*4r;o.I.J=o.5u*4r;o.I.cN.F=""+o.6g+"cQ";o.I.cN.J=""+o.5u+"cQ";o.1j.fd(4r,4r);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6d=A(){M 8W,4o;4o=4y.4o||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4o/8W};D.N.a8=A(){u(4y.4o!=L)&&4y.4o!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5E(\'2a-3M-cK\')};D.N.6T=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3k(\'2d\');o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a;B(D.5N){o.4Q=1u.68(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4Q[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1N){B(1N==L){1N=A(){}}2J.5m(o,"ai");u o.4J.3Z((A(1r){u A(){1r.3i.F=1r.I.F;1r.3i.J=1r.I.J;1r.6x.8S(1r.2S,0,0);u 1N.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2W}B(!D.5N){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.6x.8S(o.2S,0,0)}};D.N.f6=A(){M I,2E,i,2S,1w,T,H,1n,K;I=2i.3H(\'I\');1u.5l(o.I,I);I.F=o.8b;I.J=o.8c;2E=I.3k(\'2d\');2S=2E.4K(0,0,I.F,I.J);T=2S.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2E.8S(2S,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6T(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,3P,4e;B(!D.5N){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4Q;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2O+=Q[i]}}o.4J.4h({1v:R.3d.8I,1p:1p,Q:Q,2O:2O,3j:3j});u o};D.N.5h=A(4i,1l){o.4J.4h({1v:R.3d.2r,4i:4i,1l:1l});u o};D.N.32=A(1N){M 2g;2g=1y 3a(o);o.9s.2j(2g);o.4J.4h({1v:R.3d.8H});1N.1x(2g);o.4J.4h({1v:R.3d.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6W);o.6G.2j(o.T);o.6W=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6G.6A();u o.6W=o.9t.6A()};D.N.c1=A(){u o.6W.c2()};u D})(3K);7O.D=D;D.4E=(A(){A 4E(c){o.c=c}4E.N.f5=A(){M i,3r,6V,H,1f,1H,K;3r={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3r.r[i]=0;3r.g[i]=0;3r.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6u.P;H<1n;H++){1P=6u[H];1o.2j(cj=1y 59(1P,A(){o.ck();u o.3Z()}))}u 1o};B(D.ce){(A(){B(2i.9p==="7J"){u D.9m()}S{u 2i.aX("f3",D.9m,2k)}})()}59=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 59(4k,ct){o.cw=4k.5E(\'2a-3M\');o.3M=D(4k,ct.9y(o))}59.N.ck=A(){M 1l,e,1C,57,8K,8L,m,r,6L,H,1n,K,1o;o.4k=o.3M.I;r=1y cJ(8v,\'g\');6L=o.cw.82(r);B(!(6L.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6L.P;H<1n;H++){8K=6L[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{57=8L();1o.2j(57.1x(o.3M))}8N(6m){e=6m;1o.2j(1X.2s(e))}}u 1o};59.N.3Z=A(){M 4k;4k=o.4k;u o.3M.ac(A(){u 4k.9c.aY(o.cO(),4k)})};u 59})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,57){u o.8P[1p]=57};2m.3Z=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.52=A(72,73,6p,6q){u O.8l(O.1T(6p-72,2)+O.1T(6q-73,2))};2b.ab=A(1S,1e,6w){M 4g;B(6w==L){6w=2k}4g=1S+(O.f1()*(1e-1S));B(6w){u 4g.f0(6w)}S{u O.5Q(4g)}};2b.6E=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4D,4C,1M,5g,5k){M 29,6o,2z,26,i,j,5q,1L,3F,t,H,1f,K;B(5g==L){5g=0}B(5k==L){5k=E}B(1J[0]aT 5R){2z=1J;5g=4D;5k=4C}S{2z=[1J,4D,4C,1M]}B(2z.P<2){2K"5y 8e 8X 1k 3I 29";}29={};5q=A(a,b,t){u a*(1-t)+b*t};6o=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1L=[];W(j=1f=0,K=3F.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1L.2j([5q(3F[j][0],3F[j+1][0],t),5q(3F[j][1],3F[j+1][1],t)])}3F=1L}29[O.5Q(3F[0][0])]=O.5Q(6o(3F[0][1],5g,5k))}26=2z[2z.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2z,5g,5k){M 4h,6o,98,26,88,86,85,84,i,j,5q,9f,9h,4F,p,5Y,5Z,4H,7Z,7Y,3y,7W,t,H,1f,K;B(2z.P<2){2K"5y 8e 8X 1k 3I bE";}3y={};5q=A(a,b,t){u a*(1-t)+b*t};4h=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4F=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);6o=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};98=0;W(i=H=0,K=2z.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5Y=2z[i];5Z=2z[i+1];4H=5Z[0]-5Y[0];7Z=1/4H;B(i===2z.P-2){7Z=1/(4H-1)}p=i>0?2z[i-1]:5Y;9f=4F(7W(5Z,p),[0.5,0.5]);p=i<2z.P-2?2z[i+2]:5Z;9h=4F(7W(p,5Y),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4h(4F(5Y,[88,88]),4F(9f,[86,86]),4F(5Z,[85,85]),4F(9h,[84,84]));3y[O.5Q(7Y[0])]=O.5Q(6o(7Y[1],5g,5k));98+=1}}26=2z[2z.P-1][0];3y=D.2b.91(3y,26);u 3y};2b.91=A(5d,26){M i,j,6b,3y,7V,H,1f;B(bk.eX(5d).P<26+1){3y={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(5d[i]!=L){3y[i]=5d[i]}S{6b=[i-1,3y[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(5d[j]!=L){7V=[j,5d[j]];5c}}3y[i]=6b[1]+((7V[1]-6b[1])/(7V[0]-6b[0]))*(i-6b[0])}}u 3y}u 5d};u 2b})();2b=D.2b;D.1W=(A(){A 1W(){}1W.7U=A(3L){M b,g,r;B(3L.eW(0)==="#"){3L=3L.51(1)}r=4f(3L.51(0,2),16);g=4f(3L.51(2,2),16);b=4f(3L.51(4,2),16);u{r:r,g:g,b:b}};1W.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="3Y"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5U(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1W.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5U(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3x)/1.3x,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3x)/1.3x,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3x)/1.3x,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1W.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3x*O.1T(r,0.9q))-0.3x}S{r*=12.92}B(g>0.9n){g=(1.3x*O.1T(g,0.9q))-0.3x}S{g*=12.92}B(b>0.9n){b=(1.3x*O.1T(b,0.9q))-0.3x}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1W.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="3Y"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5V}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5V}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5V}l=aQ*y-16;a=aR*(x-y);b=5W*(y-z);u{l:l,a:a,b:b}};1W.eD=A(l,a,b){M x,y,z;B(1s l==="3Y"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5W);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5V)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5V)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5V)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1W.eC=A(r,g,b){M 9V;B(1s r==="3Y"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1W.eB=A(l,a,b){};u 1W})();1W=D.1W;D.2J=(A(){A 2J(){}2J.5b={};2J.b1=["b6","bb","ai","bc","bd","63"];2J.5m=A(34,1v,2a){M 6F,H,1n,K,1o;B(2a==L){2a=L}B(o.5b[1v]&&o.5b[1v].P){K=o.5b[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6F=K[H];B(6F.34===L||34.2V===6F.34.2V){1o.2j(6F.fn.1x(34,2a))}S{1o.2j(bg 0)}}u 1o}};2J.eA=A(34,1v,fn){M 9W,9X;B(1s 34==="3h"){9X=34;9W=1v;34=L;1v=9X;fn=9W}B(6J.1x(o.b1,1v)<0){u 2k}B(!o.5b[1v]){o.5b[1v]=[]}o.5b[1v].2j({34:34,fn:fn});u 2W};u 2J})();2J=D.2J;D.R=(A(){A R(){}R.3d={8J:1,8I:2,8H:3,8G:4,9Y:5,2r:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2U=(A(){A 2U(){}2U.bm=/(?:(?:6S|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2U.bj=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2U.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6I())===\'c3\'||K===\'bp-ez\')};2U.7h=A(6Z){M 7d;7d=6Z.82(o.bm);B(7d){u 7d[1]!==2i.ey}S{u 2k}};2U.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1X.a2("ex 3I ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7h(D.7F)){1X.a2("es bp a bH bK W er eq.");u}u o.56(1E)}}};2U.56=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2U.eo=A(5j){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5j=5j.6I();B(8z[5j]!=L){5j=8z[5j]}u"ee/ed."+5j};u 2U})();D.N.c6=A(){B(1s 2h!=="3Q"&&2h!==L){u o.c7.4n(o,1k)}S{u o.c8.4n(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6I();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2i.e9.e8=1d};D.N.c7=A(6a,7b,1N){M e,a1;B(7b==L){7b=2W}B(1N==L){1N=L}8M{a1=fs.e7(6a);B(a1.e6()&&!7b){u 2k}}8N(6m){e=6m;1X.2s("e5 e4 6a "+6a)}u fs.e3(6a,o.I.e2(),A(6R){1X.2s("e1 e0 3I "+6a);B(1N){u 1N.1x(o,6R)}})};D.N.cO=A(1v){M 1P;1P=1y 4w();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4y.4o){1P.F/=4y.4o;1P.J/=4y.4o}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6I();u o.3i.dZ("1d/"+1v)};2U=D.2U;D.3a=(A(){A 3a(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2p:1.0};o.dY=1u.9L.49();o.I=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3k(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a}3a.N.32=A(cb){u o.c.32.1x(o.c,cb)};3a.N.3z=A(cx){o.1G.a0=cx;u o};3a.N.2p=A(2p){o.1G.2p=2p/1i;u o};3a.N.4a=A(){M i,2Z,H,K;2Z=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3O<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3O)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5T a 5S 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3O>o.c.T.P||3O<0){u}o.c.T[3O]=C.r;o.c.T[3O+1]=C.g;o.c.T[3O+2]=C.b;o.c.T[3O+3]=C.a;u 2W};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5T a 5S 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5T a 5S 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5J=A(){u o.dR()};1Z.N.dQ=A(7B){M 3L;B(7B==L){7B=2k}3L=\'#\'+o.r.5J(16)+o.g.5J(16)+o.b.5J(16);B(7B){u 3L+o.a.5J(16)}S{u 3L}};u 1Z})();1Z=D.1Z;D.2r=(A(){A 2r(){}2r.9G={};2r.V=A(1p,4i){u o.9G[1p]=4i};2r.3Z=A(1j,1p,1l){u o.9G[1p].4n(1j,1l)};u 2r})();2r=D.2r;D.1Q=(A(){1Q.4V=D.2Y?6N(\'dP\').dO().P:4;A 1Q(c){o.c=c;o.4m=8Q(o.4m,o);o.6B=[];o.54=L}1Q.N.4h=A(9x){B(9x==L){u}u o.6B.2j(9x)};1Q.N.4m=A(){M 2g;B(o.6B.P===0){2J.5m(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6B.d9();5U(o.2c.1v){28 R.3d.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4m();28 R.3d.8G:o.c.c1();o.c.bZ();u o.4m();28 R.3d.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3d.2r:u o.db();dN:u o.a6()}};1Q.N.3Z=A(1N){o.9v=1N;o.54=1u.68(o.c.T.P);u o.4m()};1Q.N.9o=A(fn){M 71,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2L((n/4)/1Q.4V);71=8B*4;9l=71+((n/4)%1Q.4V)*4;1o=[];W(i=H=0,K=1Q.4V;0<=K?HK;i=0<=K?++H:--H){1J=i*71;1M=1J+(i===1Q.4V-1?9l:71);B(D.2Y){f=6y((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.63(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1Q.N.a6=A(){2J.5m(o.c,"b6",o.2c);B(o.2c.1v===R.3d.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1Q.N.db=A(){1X.2s("dL 4i "+o.2c.4i);2r.3Z(o.c,o.2c.4i,o.2c.1l);1X.2s("2r "+o.2c.4i+" 9k!");u o.4m()};1Q.N.af=A(2Q,1J,1M){M i,1w,H;1X.2s("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2J.5m(o.c,"bd",{am:2Q,an:1Q.4V,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3E(1w.r);o.c.T[i+1]=1u.3E(1w.g);o.c.T[i+2]=1u.3E(1w.b);o.c.T[i+3]=1u.3E(1w.a)}B(D.2Y){u 6y["aq"](2Q)}S{u o.63(2Q)}};1Q.N.ag=A(2Q,1J,1M){M Q,6D,3j,2T,5p,2O,i,j,k,2F,n,1p,p,1w,4j,H,1f,1H;1p=o.2c.1p;3j=o.2c.3j;2O=o.2c.2O;n=o.c.T.P;Q=o.2c.Q;6D=O.8l(Q.P);2F=[];1X.2s("dG 2F - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6D-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6D-1)/2)));2T=(6D-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;5p=0;W(j=1f=-2T;-2T<=2T?1f<=2T:1f>=2T;j=-2T<=2T?++1f:--1f){W(k=1H=2T;2T<=-2T?1H<=-2T:1H>=-2T;k=2T<=-2T?++1H:--1H){p=1w.cP(j,k);2F[5p*3]=p.r;2F[5p*3+1]=p.g;2F[5p*3+2]=p.b;5p++}}4j=o.3J(Q,2F,2O,3j);o.54[i]=1u.3E(4j.r);o.54[i+1]=1u.3E(4j.g);o.54[i+2]=1u.3E(4j.b);o.54[i+3]=o.c.T[i+3]}B(D.2Y){u 6y["aq"](2Q)}S{u o.63(2Q)}};1Q.N.63=A(2Q){M i,H,K;B(2Q>=0){1X.2s("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2J.5m(o.c,"63",{am:2Q,dF:o.7P,an:1Q.4V});B(o.7P===1Q.4V){B(o.2c.1v===R.3d.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.54[i]}}B(2Q>=0){1X.2s("R "+o.2c.1p+" 9k!")}2J.5m(o.c,"bb",o.2c);u o.4m()}};1Q.N.3J=A(Q,2F,2O,3j){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2F[i*3];2f.g+=Q[i]*2F[i*3+1];2f.b+=Q[i]*2F[i*3+2]}2f.r=(2f.r/2O)+3j;2f.g=(2f.g/2O)+3j;2f.b=(2f.b/2O)+3j;u 2f};1Q.N.da=A(2g,1E){M 1P,56;1P=1y 4w();1P.bP=(A(1r){u A(){2g.1j.5A(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2S=2g.1j.4K(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2S.2a;1r.c.T=2g.T;u 1r.4m()}})(o);56=2U.bu(1E);u 1P.1E=56!=L?56:1E};u 1Q})();1Q=D.1Q;D.31=(A(){A 31(){}31.6e={};31.bR=A(4L){u o.6e[4L]!=L};31.49=A(4L){u o.6e[4L]};31.cs=A(1p,2A){u o.6e[1p]=2A};31.3Z=A(4L,1N){7I((A(1r){u A(){u 1N.1x(1r.49(4L),1r.49(4L))}})(o),0);u o.49(4L)};31.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.6e[1p]}S{u o.6e={}}};u 31})();31=D.31;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("65",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4R",A(){M 3e;B(1k.P===1){3e=1W.7U(1k[0])}S{3e={r:1k[0],g:1k[1],b:1k[2]}}u o.2o("4R",A(C){C.r=3e.r;C.g=3e.g;C.b=3e.b;C.a=E;u C})});R.V("3A",A(Q){Q=O.2L(E*(Q/1i));u o.2o("3A",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3G",A(Q){Q*=-0.dy;u o.2o("3G",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("43",A(Q){Q*=-1;u o.2o("43",A(C){M 1q,4B,1e;1e=O.1e(C.r,C.g,C.b);4B=(C.r+C.g+C.b)/3;1q=((O.4A(1e-4B)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4z",A(Q){u o.2o("4z",A(C){M 4B;4B=2b.6E(C);C.r=4B;C.g=4B;C.b=4B;u C})});R.V("2u",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2o("2u",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2o("93",A(C){M b,g,h,5f,r,K;5f=1W.cC(C.r,C.g,C.b);h=5f.h*1i;h+=O.4A(Q);h=h%1i;h/=1i;5f.h=h;K=1W.cE(5f.h,5f.s,5f.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4p",A(){M 5z,3f;B(1k.P===2){3f=1W.7U(1k[0]);5z=1k[1]}S B(1k.P===4){3f={r:1k[0],g:1k[1],b:1k[2]};5z=1k[3]}u o.2o("4p",A(C){C.r-=(C.r-3f.r)*(5z/1i);C.g-=(C.g-3f.g)*(5z/1i);C.b-=(C.b-3f.b)*(5z/1i);u C})});R.V("b0",A(){u o.2o("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4s",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2o("4s",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2t",A(Q){u o.2o("2t",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4A(Q)*2.55;u o.2o("8i",A(C){M 4g;4g=2b.ab(Q*-1,Q);C.r+=4g;C.g+=4g;C.b+=4g;u C})});R.V("8j",A(Q){Q=O.4A(Q)*2.55;u o.2o("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3g}S{C.r-=C.r*O.4A(1G.3g)}}B(1G.4X!=L){B(1G.4X>0){C.g+=(E-C.g)*1G.4X}S{C.g-=C.g*O.4A(1G.4X)}}B(1G.3V!=L){B(1G.3V>0){C.b+=(E-C.b)*1G.3V}S{C.b-=C.b*O.4A(1G.3V)}}u C})});R.V("2e",A(){M 6O,29,48,3N,1M,i,61,1J,H,1f,K,3P;48=1k[0],3N=2<=1k.P?5H.1x(1k,1):[];61=3N[3N.P-1];B(1s 61==="A"){6O=61;3N.6A()}S B(1s 61==="3h"){6O=2b[61];3N.6A()}S{6O=2b.29}B(1s 48==="3h"){48=48.do("")}B(48[0]==="v"){48=[\'r\',\'g\',\'b\']}B(3N.P<2){2K"5y 8e 8X 1k 3I 2e 1C";}29=6O(3N,0,E);1J=3N[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3N[3N.P-1];B(1M[0]=E;i=3P<=E?++1f:--1f){29[i]=1M[1]}}u o.2o("2e",A(C){M 1H,4e;W(i=1H=0,4e=48.P;0<=4e?1H<4e:1H>4e;i=0<=4e?++1H:--1H){C[48[i]]=29[C[48[i]]]}u C})});R.V("39",A(Q){M 4D,4C,p;p=O.4A(Q)/1i;4D=[0,E*p];4C=[E-(E*p),E];B(Q<0){4D=4D.br();4C=4C.br()}u o.2e(\'3f\',[0,0],4D,4C,[E,E])});D.2r.V("8F",A(F,J,x,y){M I,2E;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="3Q"&&2h!==L){I=1y 44(F,J)}S{I=2i.3H(\'I\');1u.5l(o.I,I);I.F=F;I.J=J}2E=I.3k(\'2d\');2E.5A(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2W;u o.6T(I)});D.2r.V("8x",A(2D){M I,2E;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1X.9d("5y cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="3Q"&&2h!==L){I=1y 44(2D.F,2D.J)}S{I=2i.3H(\'I\');1u.5l(o.I,I);I.F=2D.F;I.J=2D.J}2E=I.3k(\'2d\');2E.5A(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2W;u o.6T(I)});D.R.V("8F",A(){u o.5h("8F",5R.N.5o.1x(1k,0))});D.R.V("8x",A(){u o.5h("8x",5R.N.5o.1x(1k,0))});D.R.V("dm",A(){u o.3J("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3J("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3J("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3q){M 2F;B(3q===0||3q===4d){2F=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3q>0&&3q<90)||(3q>4d&&3q<8w)){2F=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3q===90||3q===8w){2F=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2F=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3J("de 8A",2F)});D.R.V("6K",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3J("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3A:A(C,1q,G){C.r=C.r-(C.r*1q*G.3c);C.g=C.g-(C.g*1q*G.3c);C.b=C.b-(C.b*1q*G.3c);u C},2t:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3c,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3c,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3c,1))*E;u C},4p:A(C,1q,G){C.r-=(C.r-G.3e.r)*1q;C.g-=(C.g-G.3e.g)*1q;C.b-=(C.b-G.3e.b)*1q;u C}};R.V("1V",A(1t,3c){M 29,3B,1M,1J;B(3c==L){3c=60}B(1s 1t==="3h"&&1t.51(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4f(1t.51(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4f(1t.51(0,1t.P-1),10)/1i)}}3c/=1i;3B=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3B[0],2)+O.1T(3B[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2o("1V",A(C){M 8p,2I,U;U=C.9M();8p=2b.52(U.x,U.y,3B[0],3B[1]);B(8p>1M){2I=O.1e(1,(29[O.5Q(((8p-1M)/1t)*1i)]/10)*3c);C.r=O.1T(C.r/E,2I)*E;C.g=O.1T(C.g/E,2I)*E;C.b=O.1T(C.b/E,2I)*E}u C})});R.V("bY",A(G){M 4u,6i,8k,1t,H,1n,K;4u={3c:50,2H:0,8U:\'3A\',3e:{r:0,g:0,b:0}};G=1u.79(4u,G);B(!G.1t){u o}S B(1s G.1t==="3h"){8k=4f(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="3Y"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){6i=K[H];B(1s G.1t[6i]==="3h"){G.1t[6i]=o.1c[6i]*(4f(G.1t[6i],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2H==="3h"){G.2H=(G.1t.F/2)*(4f(G.2H,10)/1i)}G.3c/=1i;G.1t.F=O.2L(G.1t.F);G.1t.J=O.2L(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4p"&&1s G.3e==="3h"){G.3e=1W.7U(G.3e)}G.1Y={5e:(o.1c.F-G.1t.F)/2,64:o.1c.F-G.1Y.5e,53:(o.1c.J-G.1t.J)/2,5s:o.1c.J-G.1Y.53};G.1z=[{x:G.1Y.5e+G.2H,y:G.1Y.5s-G.2H},{x:G.1Y.64-G.2H,y:G.1Y.5s-G.2H},{x:G.1Y.64-G.2H,y:G.1Y.53+G.2H},{x:G.1Y.5e+G.2H,y:G.1Y.53+G.2H}];G.4c=2b.52(0,0,G.1z[3].x,G.1z[3].y)-G.2H;u o.2o("bY",A(C){M 1q,U,4b;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1Y.53&&U.yG.1Y.5e&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1Y.5s){1q=(U.y-G.1Y.5s)/G.4c}S B(U.y>G.1z[2].y&&U.yG.1Y.64){1q=(U.x-G.1Y.64)/G.4c}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4b=D.52(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4b-G.2H)/G.4c}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4b=D.52(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4b-G.2H)/G.4c}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4b=D.52(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4b-G.2H)/G.4c}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4b=D.52(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4b-G.2H)/G.4c}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4M,96,97,5w,62;5w=[2P,2P,37,2P,3u,37,3D,2P,42,3u,3v,37,3S,3D,3R,2P,4U,42,4W,3u,4Y,3v,4T,37,4G,3S,4l,3D,38,3R,4v,2P,6n,4U,47,42,66,4W,6f,3u,38,4Y,6h,3v,4O,4T,4P,37,5r,4G,5v,3S,5G,4l,5I,3D,5K,38,5L,3R,5X,4v,3X,2P,7D,6n,7C,4U,7A,47,7x,42,7w,66,7v,4W,4N,6f,7u,3u,69,38,7t,4Y,7s,6h,4x,3v,3X,4O,7r,4T,7q,4P,7o,37,7n,5r,47,4G,7m,5v,7k,3S,7j,5G,7i,4l,4N,5I,6c,3D,7f,5K,7e,38,7c,5L,7a,3R,6j,5X,4x,4v,78,3X,76,2P,bU,7D,bN,6n,4P,7C,bL,4U,bG,7A,bF,47,bD,7x,bC,42,bB,7w,bA,66,bz,7v,bx,4W,bw,4N,74,6f,6c,7u,8u,3u,ba,69,b9,38,b8,7t,b7,4Y,8g,7s,6j,6h,b5,4x,b4,3v,b3,3X,b2,4O,aO,7r,aK,4T,aJ,7q,aH,4P,aF,7o,aC,37,az,7n,ax,5r,aw,47,ap,4G,ao,7m,al,5v,ak,7k,ah,3S,ae,7j,dc,5G,d3,7i,d2,4l,cY,4N,74,5I,cX,6c,cW,3D,8u,7f,cV,5K,69,7e,cT,38,cG,7c,cB,5L,8T,7a,8g,3R,cv,6j,cu,5X,cq,4x,cp,4v,3v,78,co,3X,cn,76,4O];62=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6l,6k,2G,P,c0){M 41,1j,2w,72,6p,73,6q;41=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');41.F=F;41.J=J;72=6l+O.bW(2G)*P*0.5;73=6k+O.bV(2G)*P*0.5;6p=6l-O.bW(2G)*P*0.5;6q=6k-O.bV(2G)*P*0.5;1j=41.3k("2d");2w=1j.en(72,73,6p,6q);B(!c0){2w.5i(0,"77");2w.5i(1,"a4")}S{2w.5i(0,"77");2w.5i(0.5,"a4");2w.5i(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4K(0,0,F,J)};97=A(F,J,6l,6k,6Q,6P){M 41,1j,2w;41=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');41.F=F;41.J=J;1j=41.3k("2d");2w=1j.ev(6l,6k,6Q,6l,6k,6P);2w.5i(1,"77");2w.5i(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4K(0,0,F,J)};4M=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1L=L};D.2r.V("a3",A(by,1U,bq,7l){M 2l,2B,1O,5M,6Y,2I,2n,2x,1K,J,3U,i,6U,2C,3n,7M,3W,6M,2N,p,1D,1A,Y,1B,2q,2y,1R,9i,1a,33,2R,1b,4t,1m,1I,2M,5n,2X,8h,8f,5D,F,3t,x,y,1h,4S,4Z,H,1f,1H,3m,3p,3o,3s,3w,3C,5F;F=o.1c.F;J=o.1c.J;3n=o.T;9i=by.2a;8f=F*J;5D=8f<<2;Y=[];W(i=H=0;0<=5D?H<5D:H>5D;i=0<=5D?++H:--H){Y[i]=3n[i]}6Y=0;5n=7l;7l-=1;8Z(5n-->=0){3W=(1U+0.5)|0;B(3W===0){67}B(3W>6t){3W=6t}2I=3W+3W+1;8h=F<<2;3t=F-1;3U=J-1;1a=3W+1;2X=1a*(1a+1)/2;2M=1y 4M();4t=bg 0;1b=2M;W(i=1f=1;1<=2I?1f<2I:1f>2I;i=1<=2I?++1f:--1f){1b=1b.1L=1y 4M();B(i===1a){4t=1b}}1b.1L=2M;1m=L;1I=L;4Z=1h=0;2N=5w[3W];2R=62[3W];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1R=1K=1O=0;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3m=0;0<=1a?3m<1a:3m>1a;i=0<=1a?++3m:--3m){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}W(i=3p=1;1<=1a?3p<1a:3p>1a;i=1<=1a?++3p:--3p){p=1h+((3tF;x=0<=F?++3o:--3o){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1K*2N)>>2R;Y[1h+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(4Z+((p=x+1a)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2q;1K+=2n;1O+=2l;1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=4}4Z+=F}W(x=3s=0;0<=F?3sF;x=0<=F?++3s:--3s){2n=2l=2q=1K=1O=1R=0;1h=x<<2;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3w=0;0<=1a?3w<1a:3w>1a;i=0<=1a?++3w:--3w){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}4S=F;W(i=3C=1;1<=1a?3C<1a:3C>1a;i=1<=1a?++3C:--3C){1h=(4S+x)<<2;1R+=(1b.r=(1B=Y[1h]))*(33=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*33;1O+=(1b.b=(1D=Y[1h+2]))*33;2q+=1B;2n+=1A;2l+=1D;1b=1b.1L;B(i<3U){4S+=F}}1h=x;1m=2M;1I=4t;W(y=5F=0;0<=J?5FJ;y=0<=J?++5F:--5F){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1K*2N)>>2R;Y[p+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=F}}1U*=bq;i=8f;8Z(--i>-1){2C=i<<2;6M=(9i[2C+2]&fo)/E.0*7l;7M=6M|0;B(7M===6Y){5M=6t.0*(6M-(6M|0));6U=6t-5M;3n[2C]=(3n[2C]*6U+Y[2C]*5M)>>8;3n[2C+1]=(3n[2C+1]*6U+Y[2C+1]*5M)>>8;3n[2C+2]=(3n[2C+2]*6U+Y[2C+2]*5M)>>8}S B(7M===6Y+1){3n[2C]=Y[2C];3n[2C+1]=Y[2C+1];3n[2C+2]=Y[2C+2]}}6Y++}u o});D.R.V("fq",A(G){M 4u,2w;4u={3B:{x:o.1c.F/2,y:o.1c.J/2},2G:45,cd:5W,7R:3,7Q:1.5,5n:3};G=1u.79(4u,G);G.2G*=O.aZ/4d;2w=96(o.1c.F,o.1c.J,G.3B.x,G.3B.y,G.2G,G.cd,2W);u o.5h("a3",[2w,G.7R,G.7Q,G.5n])});u D.R.V("fx",A(G){M 4u,2w,6Q,6P;4u={1t:50,3B:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5n:3,1U:L};G=1u.79(4u,G);B(!G.1U){G.1U=o.1c.F2I;i=1<=2I?++H:--H){1b=1b.1L=1y 4M();B(i===1a){4t=1b}}1b.1L=2M;1m=L;1I=L;4Z=1h=0;2N=5w[1U];2R=62[1U];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1R=1K=1O=0;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3tF;x=0<=F?++3p:--3p){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1K*2N)>>2R;Y[1h+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(4Z+((p=x+1U+1)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2q;1K+=2n;1O+=2l;1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=4}4Z+=F}W(x=3o=0;0<=F?3oF;x=0<=F?++3o:--3o){2n=2l=2q=1K=1O=1R=0;1h=x<<2;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3s=0;0<=1a?3s<1a:3s>1a;i=0<=1a?++3s:--3s){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}4S=F;W(i=3w=1;1<=1U?3w<=1U:3w>=1U;i=1<=1U?++3w:--3w){1h=(4S+x)<<2;1R+=(1b.r=(1B=Y[1h]))*(33=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*33;1O+=(1b.b=(1D=Y[1h+2]))*33;2q+=1B;2n+=1A;2l+=1D;1b=1b.1L;B(i<3U){4S+=F}}1h=x;1m=2M;1I=4t;W(y=3C=0;0<=J?3CJ;y=0<=J?++3C:--3C){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1K*2N)>>2R;Y[p+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=F}}u o});u D.R.V("5t",A(1U){u o.5h("5t",[1U])})})();D.R.V("aD",A(Q){u o.2o("aD",A(C){M 6E;6E=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6E35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2M,1y,1F,B,3d,3b,1q,1S,4l,V,1M,2V,22,1o,2f,1r,1P,1g,4J,1X,1a,3D,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3g=o(2H,2l,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1A(2l.7n(4j.5f,4j.bn))}9 X};1a.3u=o(K){u(K==G){K=0}u(B.1W||(2X.7o!=G)){9 1m 7o(K)}9 1m 44(K)};9 1a})();u(1f 1Z!=="31"&&1Z!==G){4J=1Z;3b=4i(\'F\');2V=3b.2V;4l=4i(\'bl\');3D=4i(\'3D\');3Y=4i(\'3Y\')}R{4J=2X}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1C;B.3J=2k;B.5O="86";B.4A="";B.8c="9q";B.1W=1f 1Z!=="31"&&1Z!==G;B.8m=!B.1W;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.1W){9 2k}u(1f F==="2Y"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1z-2g-1R\')};o B(){8.3s=5T(8.3s,8);I W,1h,1R;u(Y.K===0){1U"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.1W){1R=51(B.63(W[0]),10);1h=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1R)&&1X.6P(1R)){9 1X.2t(1R,1h)}}8.1R=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1C;8.5s=1C;8.be=1C;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1C;8.aT=1m 2M(8);8.2P=1m 1g(8);8.7T((o(11){9 o(){11.80(W);9 11.8g()}})(8));9 8}R{9 1m B(Y)}}B.H.7T=o(3y){I 5C;u(B.1W){9 4s((o(11){9 o(){9 3y.19(11)}})(8),0)}R{u(1J.5D==="4D"){1o.1D("6B 6G");9 4s((o(11){9 o(){9 3y.19(11)}})(8),0)}R{5C=(o(11){9 o(){u(1J.5D==="4D"){1o.1D("6B 6G");9 3y.19(11)}}})(8);9 1J.6L("ap",5C,1C)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1U"3m Y 6M";}8.21=G;8.4m=G;8.4n=G;8.1h=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Y":8.4n=W[1];30;1v"o":8.1h=W[1]}u(W.K===2){9}8.1h=W[2];u(W.K===4){E=W[4];X=[];U(1B 3c E){u(!3Q.19(E,1B))4f;1w=E[1B];X.1A(8.1d[1B]=1w)}9 X}};B.H.6W=o(1H){u(B.1W){8.21=1H;8.4m=\'6Z\';9}u(1f 1H==="2v"){8.21=1H}R{8.21=$(1H)}u(8.21==G){1U"al a8 a7 S 7h F U a3.";}9 8.4m=8.21.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1i":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1o.1D("9N U 1W");u(1f 8.21==="2Y"&&8.21.4C(/^7E?:\\/\\//)){9 8.7F(8.21,8.3s)}R u(1f 8.21==="2Y"){9 3D.9E(8.21,8.3s)}R{9 8.3s(G,8.21)}};B.H.7F=o(3X,1h){I 66;1o.1D("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1z\',o(8f){9 4N+=8f});9 2u.6m(\'1s\',o(){9 1h(G,1m 91(4N,\'8d\'))})});9 66.6m(\'6t\',1h)};B.H.3s=o(3T,1z){u(3T){1U 3T;}8.S=1m 2V();8.S.1b=1z;1o.1D("2V 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));8.F=1m 3b(8.2m(),8.2n());9 8.3x()};B.H.7A=o(){8.S=8.21;8.F=1J.2N(\'F\');8.1c=8.F.2o(\'2d\');8.26=1J.2N(\'F\');8.45=8.26.2o(\'2d\');1a.3g(8.S,8.F,{5c:[\'1b\']});1a.3g(8.S,8.26,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.26,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=8.21;8.1c=8.F.2o(\'2d\');8.26=1J.2N(\'F\');8.45=8.26.2o(\'2d\');u(8.4n!=G){8.S=1J.2N(\'1i\');8.S.1b=8.4n;8.5Z();9 8.5Y()}R{9 8.3x()}};B.H.5Z=o(){u(8.5X()){1o.1D(8.S.1b,"->",8.4I());8.7m=2k;8.S.1b=8.4I()}u(1M.7k(8.S)){8.S.1b=1M.3e(8.S.1b);9 1o.1D("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4k()}R{9 8.S.73=8.4k}};B.H.78=o(){u(!8.S.4D){9 1C}u((8.S.5P!=G)&&8.S.5P===0){9 1C}9 2k};B.H.2m=o(){9 8.S.L||8.S.5P};B.H.2n=o(){9 8.S.Q||8.S.an};B.H.4k=o(){1o.1D("2V 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));u(8.7m){8.F.L=8.2m()/8.3K();8.F.Q=8.2n()/8.3K();8.26.L=8.2m()/8.3K();8.26.Q=8.2n()/8.3K()}R{8.F.L=8.2m();8.F.Q=8.2n();8.26.L=8.2m();8.26.Q=8.2n()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1c==G){8.1c=8.F.2o(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.Q=8.F.Q;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1c.3R(8.S,0,0,8.2m(),8.2n(),0,0,8.3M,8.3O);8.45.3R(8.S,0,0,8.2m(),8.2n(),0,0,8.3M,8.3O)}8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z;u(B.3J){8.59=1a.3u(8.M.K);8.2J=1a.3u(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1I={L:8.F.L,Q:8.F.Q};u(!B.1W){1X.6K(8.1R,8)}8.1h.19(8,8);9 8.1h=o(){}};B.H.6z=o(){8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);9 8.M=8.1T.1z};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3J){1U"5E 4y";}8.2J=1a.3u(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1A(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.1W||8.F.3w(\'1z-2g-1R\')){9}9 8.F.7n(\'1z-2g-1R\',8.1R)};B.H.6w=o(){9 8.F.3w(\'1z-2g-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.1W||!8.5X()){9}2E=8.3K();u(2E!==1){1o.1D("aH 2E = "+2E);8.6R=2k;8.3M=8.F.L;8.3O=8.F.Q;8.F.L=8.3M*2E;8.F.Q=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.Q=""+8.3O+"8u";8.1c.aK(2E,2E);8.L=8.5N=8.F.L;9 8.Q=8.5M=8.F.Q}};B.H.3K=o(){I 5B,2C;2C=2X.2C||1;5B=8.1c.aU||8.1c.aV||8.1c.b6||8.1c.b7||8.1c.b8||1;9 2C/5B};B.H.7p=o(){9(2X.2C!=G)&&2X.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1C}9 8.4I()!==G};B.H.4I=o(){u(8.S==G){9 G}9 8.S.3w(\'1z-2g-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1c=8.F.2o(\'2d\');8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z;u(B.3J){8.2J=1a.3u(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.Q=8.F.Q;8.6z();9 8.1I={L:8.F.L,Q:8.F.Q}};B.H.72=o(1h){u(1h==G){1h=o(){}}1S.39(8,"6Y");9 8.2P.2t((o(11){9 o(){11.26.L=11.F.L;11.26.Q=11.F.Q;11.45.5v(11.1T,0,0);9 1h.19(11)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2k}u(!B.3J){1U"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.45.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,15,M,C,13,E;F=1J.2N(\'F\');1a.3g(8.F,F);F.L=8.5N;F.Q=8.5M;2p=F.2o(\'2d\');1T=2p.3v(0,0,F.L,F.Q);M=1T.1z;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1C;9 8.4O(F)};B.H.7r=o(){I 4Z,1p,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3J){1U"5E 4y";}52=[];53=0;1p=53+8.L;54=0;5n=54+8.Q;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1N+=J[i]}}8.2P.2F({14:V.24.5h,Z:Z,J:J,1N:1N,25:25});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.24.1P,2w:2w,W:W});9 8};B.H.5j=o(1h){I 1t;1t=1m 22(8);8.5u.1A(1t);8.2P.2F({14:V.24.5k});1h.19(1t);8.2P.2F({14:V.24.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1A(8.49);8.4a.1A(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2f);4J.B=B;B.2M=(o(){o 2M(c){8.c=c}2M.H.bi=o(){I i,2a,4e,C,17,1O,E;2a={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){2a.r[i]=0;2a.g[i]=0;2a.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1i=4b[C];X.1A(6C=1m 3d(1i,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1J.5D==="4D"){9 B.5r()}R{9 1J.6L("bb",B.5r,1C)}})()}3d=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3d(2z,6T){8.6U=2z.3w(\'1z-2g\');8.2g=B(2z,6T.5p(8))}3d.H.6H=o(){I W,e,48,38,5w,5x,m,r,47,C,13,E,X;8.2z=8.2g.F;r=1m 7f(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1m 7f(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1m b9("9 o() { 8."+48+"("+W+"); };");5y{38=5x();X.1A(38.19(8.2g))}5z(3E){e=3E;X.1A(1o.1D(e))}}9 X};3d.H.2t=o(){I 2z;2z=8.2z;9 8.2g.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 3d})();B.1y=(o(){o 1y(){}1y.5A={};1y.18=o(Z,38){9 8.5A[Z]=38};1y.2t=o(Z,O,N){9 8.5A[Z](O,N)};9 1y})();1y=B.1y;B.1F=(o(){o 1F(){}1F.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1F.7P=o(1j,T,42){I 2A;u(42==G){42=1C}2A=1j+(P.aQ()*(T-1j));u(42){9 2A.aP(42)}R{9 P.41(2A)}};1F.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1F.1K=o(1l,2W,2T,1s,34,35){I 1K,3o,1G,1p,i,j,3r,4v,2j,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1G=1l;34=2W;35=2T}R{1G=[1l,2W,2T,1s]}u(1G.K<2){1U"3m 5F 5G Y 2l 1K";}1K={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2j=1G;as(2j.K>1){4v=[];U(j=17=0,E=2j.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1A([3r(2j[j][0],2j[j+1][0],t),3r(2j[j][1],2j[j+1][1],t)])}2j=4v}1K[P.41(2j[0][0])]=P.41(3o(2j[0][1],34,35))}1p=1G[1G.K-1][0];1K=B.1F.5H(1K,1p);u(1K[1p]==G){1K[1p]=1K[1p-1]}9 1K};1F.6I=o(1G,34,35){I 2F,3o,5I,1p,4u,4t,4r,4p,i,j,3r,5J,5K,2L,p,3C,3N,2I,58,56,29,50,t,C,17,E;u(1G.K<2){1U"3m 5F 5G Y 2l 6I";}29={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(11){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2L=(o(11){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(11){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1G.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3C=1G[i];3N=1G[i+1];2I=3N[0]-3C[0];58=1/2I;u(i===1G.K-2){58=1/(2I-1)}p=i>0?1G[i-1]:3C;5J=2L(50(3N,p),[0.5,0.5]);p=i<1G.K-2?1G[i+2]:3N;5K=2L(50(p,3C),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2L(3C,[4u,4u]),2L(5J,[4t,4t]),2L(3N,[4r,4r]),2L(5K,[4p,4p]));29[P.41(56[0])]=P.41(3o(56[1],34,35));5I+=1}}1p=1G[1G.K-1][0];29=B.1F.5H(29,1p);9 29};1F.5H=o(3f,1p){I i,j,3I,29,4W,C,17;u(7W.ah(3f).K<1p+1){29={};U(i=C=0;0<=1p?C<=1p:C>=1p;i=0<=1p?++C:--C){u(3f[i]!=G){29[i]=3f[i]}R{3I=[i-1,29[i-1]];U(j=17=i;i<=1p?17<=1p:17>=1p;j=i<=1p?++17:--17){u(3f[j]!=G){4W=[j,3f[j]];30}}29[i]=3I[1]+((4W[1]-3I[1])/(4W[0]-3I[0]))*(i-3I[0])}}9 29}9 3f};9 1F})();1F=B.1F;B.1q=(o(){o 1q(){}1q.5d=o(2e){I b,g,r;u(2e.ae(0)==="#"){2e=2e.4U(1)}r=51(2e.4U(0,2),16);g=51(2e.4U(2,2),16);b=51(2e.4U(4,2),16);9{r:r,g:g,b:b}};1q.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}R{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1q.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}R{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}R{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}R{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}R{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1n,y:y*1n,z:z*1n}};1q.9S=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}R{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}R{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}R{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1q.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1n.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}R{x=(7.6f*x)+0.3z}u(y>0.6d){y=P.1Y(y,0.6e)}R{y=(7.6f*y)+0.3z}u(z>0.6d){z=P.1Y(z,0.6e)}R{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1q.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}R{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}R{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}R{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1n.0,z:z*7R.7S}};1q.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1q.9t=o(l,a,b){};9 1q})();1q=B.1q;B.1S=(o(){o 1S(){}1S.3a={};1S.87=["88","89","6Y","8a","8b","3P"];1S.39=o(23,14,1z){I 3S,C,13,E,X;u(1z==G){1z=G}u(8.3a[14]&&8.3a[14].K){E=8.3a[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.23===G||23.1R===3S.23.1R){X.1A(3S.2r.19(23,1z))}R{X.1A(9p 0)}}9 X}};1S.9n=o(23,14,2r){I 6n,5e;u(1f 23==="2Y"){5e=23;6n=14;23=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1C}u(!8.3a[14]){8.3a[14]=[]}8.3a[14].1A({23:23,2r:2r});9 2k};9 1S})();1S=B.1S;B.V=(o(){o V(){}V.24={6o:1,5h:2,5k:3,5l:4,6p:5,1P:6};V.18=o(Z,8j){9 B.H[Z]=8j};9 V})();V=B.V;B.1M=(o(){o 1M(){}1M.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1M.7k=o(1i){u(1i==G){9 1C}u(8.8l(1i)){9 1C}9 8.4q(1i.1b)};1M.8l=o(1i){I E;9(1i.5O!=G)&&((E=1i.5O.3Z())===\'86\'||E===\'8n-9m\')};1M.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1J.9k}R{9 1C}};1M.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1o.6q("9f 2l 9e a 8v S 93 a 90 8y. 79: "+1b)}R{u(B.4q(B.4A)){1o.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3e(1b)}}};1M.3e=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1M.8G=o(2Z){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};2Z=2Z.3Z();u(5b[2Z]!=G){2Z=5b[2Z]}9"8O/8P."+2Z};9 1M})();B.H.8Q=o(){u(1f 1Z!=="31"&&1Z!==G){9 8.8C.2G(8,Y)}R{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1J.8Y.8Z=S};B.H.8C=o(3q,57,1h){I e,6s;u(57==G){57=2k}u(1h==G){1h=G}5y{6s=3D.94(3q);u(6s.96()&&!57){9 1C}}5z(3E){e=3E;1o.1D("97 98 3q "+3q)}9 3D.99(3q,8.F.9a(),o(3T){1o.1D("9b 9c 2l "+3q);u(1h){9 1h.19(8,3T)}})};B.H.7q=o(14){I 1i;1i=1m 2V();1i.1b=8.6u(14);1i.L=8.1I.L;1i.Q=8.1I.Q;u(2X.2C){1i.L/=2X.2C;1i.Q/=2X.2C}9 1i};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.F.9d("S/"+14)};1M=B.1M;B.22=(o(){o 22(c){8.c=c;8.48=8.c;8.1d={6r:\'8t\',2O:1.0};8.9h=1a.5q.2D();8.F=1f 1Z!=="31"&&1Z!==G?1m 3b():1J.2N(\'F\');8.F.L=8.c.1I.L;8.F.Q=8.c.1I.Q;8.1c=8.F.2o(\'2d\');8.1c.9i(8.F.L,8.F.Q);8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z}22.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};22.H.9j=o(8q){8.1d.6r=8q;9 8};22.H.2O=o(2O){8.1d.2O=2O/1n;9 8};22.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2h<0){9 1m 1r(0,0,0,D,8.c)}9 8.65(2h)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1U"3l a 3k 1c";}7D=8.1k+(8.c.1I.L*4*(4E*-1))+(4*4F);u(2h>8.c.M.K||2h<0){9}8.c.M[2h]=A.r;8.c.M[2h+1]=A.g;8.c.M[2h+2]=A.b;8.c.M[2h+3]=A.a;9 2k};1r.H.9J=o(x,y){I 1k;u(8.c==G){1U"3l a 3k 1c";}1k=8.6h(x,y,8.L);9 8.65(1k)};1r.H.9K=o(x,y,A){I 1k;u(8.c==G){1U"3l a 3k 1c";}1k=8.6h(x,y,8.L);8.c.M[1k]=A.r;8.c.M[1k+1]=A.g;8.c.M[1k+2]=A.b;9 8.c.M[1k+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2e;u(4B==G){4B=1C}2e=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2e+8.a.3t(16)}R{9 2e}};9 1r})();1r=B.1r;B.1P=(o(){o 1P(){}1P.64={};1P.18=o(Z,2w){9 8.64[Z]=2w};1P.2t=o(1c,Z,W){9 8.64[Z].2G(1c,W)};9 1P})();1P=B.1P;B.1g=(o(){1g.2Q=B.1W?4i(\'9Q\').9R().K:4;o 1g(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1g.H.2F=o(62){u(62==G){9}9 8.3V.1A(62)};1g.H.2B=o(){I 1t;u(8.3V.K===0){1S.39(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1u=8.3V.7v();3p(8.1u.14){1v V.24.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.24.5l:8.c.6D();8.c.6x();9 8.2B();1v V.24.6p:9 8.7u(8.1u.1t,8.1u.1b);1v V.24.1P:9 8.7t();a0:9 8.7s()}};1g.H.2t=o(1h){8.61=1h;8.32=1a.3u(8.c.M.K);9 8.2B()};1g.H.60=o(2r){I 40,5V,1V,1s,f,i,5U,n,1l,C,E,X;8.4R=0;n=8.c.M.K;5V=P.2K((n/4)/1g.2Q);40=5V*4;5U=40+((n/4)%1g.2Q)*4;X=[];U(i=C=0,E=1g.2Q;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1s=1l+(i===1g.2Q-1?5U:40);u(B.1W){f=4l((o(11){9 o(){9 2r.19(11,i,1l,1s)}})(8));1V=f.a9();X.1A(8.3P(1V))}R{X.1A(4s((o(11){9 o(i,1l,1s){9 o(){9 2r.19(11,i,1l,1s)}}})(8)(i,1l,1s),0))}}9 X};1g.H.7s=o(){1S.39(8.c,"88",8.1u);u(8.1u.14===V.24.6o){9 8.60(8.7d)}R{9 8.60(8.7a)}};1g.H.7t=o(){1o.1D("ac 2w "+8.1u.2w);1P.2t(8.c,8.1u.2w,8.1u.W);1o.1D("1P "+8.1u.2w+" 5S!");9 8.2B()};1g.H.7d=o(1V,1l,1s){I i,15,C;1o.1D("77 #"+1V+" - V: "+8.1u.Z+", af: "+1l+", ag: "+1s);1S.39(8.c,"8b",{74:1V,71:1g.2Q,ai:1l,aj:1s});15=1m 1r();15.67(8.c);U(i=C=1l;C<1s;i=C+=4){15.1k=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1u.5a(15);8.c.M[i]=1a.2c(15.r);8.c.M[i+1]=1a.2c(15.g);8.c.M[i+2]=1a.2c(15.b);8.c.M[i+3]=1a.2c(15.a)}u(B.1W){9 4l["70"](1V)}R{9 8.3P(1V)}};1g.H.7a=o(1V,1l,1s){I J,43,25,1Q,3n,1N,i,j,k,2i,n,Z,p,15,2u,C,17,1O;Z=8.1u.Z;25=8.1u.25;1N=8.1u.1N;n=8.c.M.K;J=8.1u.J;43=P.7N(J.K);2i=[];1o.1D("aq 2i - V: "+8.1u.Z);1l=P.T(1l,8.c.1I.L*4*((43-1)/2));1s=P.1j(1s,n-(8.c.1I.L*4*((43-1)/2)));1Q=(43-1)/2;15=1m 1r();15.67(8.c);U(i=C=1l;C<1s;i=C+=4){15.1k=i;3n=0;U(j=17=-1Q;-1Q<=1Q?17<=1Q:17>=1Q;j=-1Q<=1Q?++17:--17){U(k=1O=1Q;1Q<=-1Q?1O<=-1Q:1O>=-1Q;k=1Q<=-1Q?++1O:--1O){p=15.7G(j,k);2i[3n*3]=p.r;2i[3n*3+1]=p.g;2i[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2i,1N,25);8.32[i]=1a.2c(2u.r);8.32[i+1]=1a.2c(2u.g);8.32[i+2]=1a.2c(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.1W){9 4l["70"](1V)}R{9 8.3P(1V)}};1g.H.3P=o(1V){I i,C,E;u(1V>=0){1o.1D("77 #"+1V+" 5S! V: "+8.1u.Z)}8.4R++;1S.39(8.c,"3P",{74:1V,ar:8.4R,71:1g.2Q});u(8.4R===1g.2Q){u(8.1u.14===V.24.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1V>=0){1o.1D("V "+8.1u.Z+" 5S!")}1S.39(8.c,"89",8.1u);9 8.2B()}};1g.H.5Q=o(J,2i,1N,25){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2i[i*3];1w.g+=J[i]*2i[i*3+1];1w.b+=J[i]*2i[i*3+2]}1w.r=(1w.r/1N)+25;1w.g=(1w.g/1N)+25;1w.b=(1w.b/1N)+25;9 1w};1g.H.7u=o(1t,1b){I 1i,3e;1i=1m 2V();1i.73=(o(11){9 o(){1t.1c.3R(1i,0,0,11.c.1I.L,11.c.1I.Q);1t.1T=1t.1c.3v(0,0,11.c.1I.L,11.c.1I.Q);1t.M=1t.1T.1z;11.c.M=1t.M;9 11.2B()}})(8);3e=1M.8r(1b);9 1i.1b=3e!=G?3e:1b};9 1g})();1g=B.1g;B.1X=(o(){o 1X(){}1X.3h={};1X.6P=o(2U){9 8.3h[2U]!=G};1X.2D=o(2U){9 8.3h[2U]};1X.6K=o(Z,1H){9 8.3h[Z]=1H};1X.2t=o(2U,1h){4s((o(11){9 o(){9 1h.19(11.2D(2U),11.2D(2U))}})(8),0);9 8.2D(2U)};1X.at=o(Z){u(Z==G){Z=1C}u(Z){9 6E 8.3h[Z]}R{9 8.3h={}}};9 1X})();1X=B.1X;1y.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1y.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1y.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1y.18("ax",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1e.g=N.g>1x?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1e.b=N.b>1x?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1e});1y.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1y.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1y.18("aB",o(O,N){9{r:1x-2*(N.r-1x)*(O.r-1x)/D,g:1x-2*(N.g-1x)*(O.g-1x)/D,b:1x-2*(N.b-1x)*(O.b-1x)/D}});1y.18("aC",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-((D-N.r)*(D-(O.r-1x)))/D:(N.r*(O.r+1x))/D;1e.g=N.g>1x?D-((D-N.g)*(D-(O.g-1x)))/D:(N.g*(O.g+1x))/D;1e.b=N.b>1x?D-((D-N.b)*(D-(O.b-1x)))/D:(N.b*(O.b+1x))/D;9 1e});1y.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1y.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Y",o(){I 3F;u(Y.K===1){3F=1q.5d(Y[0])}R{3F={r:Y[0],g:Y[1],b:Y[2]}}9 8.1L("4Y",o(A){A.r=3F.r;A.g=3F.g;A.b=3F.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2K(D*(J/1n));9 8.1L("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1L("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1L("8s",o(A){I 46,2S,T;T=P.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;46=((P.2R(T-2S)*2/D)*J)/1n;u(A.r!==T){A.r+=(T-A.r)*46}u(A.g!==T){A.g+=(T-A.g)*46}u(A.b!==T){A.b+=(T-A.b)*46}9 A})});V.18("8e",o(J){9 8.1L("8e",o(A){I 2S;2S=1F.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=P.1Y((J+1n)/1n,2);9 8.1L("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1L("81",o(A){I b,g,h,33,r,E;33=1q.7g(A.r,A.g,A.b);h=33.h*1n;h+=P.2R(J);h=h%1n;h/=1n;33.h=h;E=1q.7i(33.h,33.s,33.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,37;u(Y.K===2){37=1q.5d(Y[0]);3j=Y[1]}R u(Y.K===4){37={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1L("7U",o(A){A.r-=(A.r-37.r)*(3j/1n);A.g-=(A.g-37.g)*(3j/1n);A.b-=(A.b-37.b)*(3j/1n);9 A})});V.18("7O",o(){9 8.1L("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1n}J/=1n;9 8.1L("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1L("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2R(J)*2.55;9 8.1L("7y",o(A){I 2A;2A=1F.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2R(J)*2.55;9 8.1L("7x",o(A){u(A.r>D-J){A.r=D}R u(A.rD-J){A.g=D}R u(A.gD-J){A.b=D}R u(A.b0){A.r+=(D-A.r)*1d.4S}R{A.r-=A.r*P.2R(1d.4S)}}u(1d.4M!=G){u(1d.4M>0){A.g+=(D-A.g)*1d.4M}R{A.g-=A.g*P.2R(1d.4M)}}u(1d.4G!=G){u(1d.4G>0){A.b+=(D-A.b)*1d.4G}R{A.b-=A.b*P.2R(1d.4G)}}9 A})});V.18("4z",o(){I 4g,1K,2s,2b,1s,i,3L,1l,C,17,E,2q;2s=Y[0],2b=2<=Y.K?3B.19(Y,1):[];3L=2b[2b.K-1];u(1f 3L==="o"){4g=3L;2b.3U()}R u(1f 3L==="2Y"){4g=1F[3L];2b.3U()}R{4g=1F.1K}u(1f 2s==="2Y"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2b.K<2){1U"3m 5F 5G Y 2l 4z 48";}1K=4g(2b,0,D);1l=2b[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1K[i]=1l[1]}}1s=2b[2b.K-1];u(1s[0]=D;i=2q<=D?++17:--17){1K[i]=1s[1]}}9 8.1L("4z",o(A){I 1O,2y;U(i=1O=0,2y=2s.K;0<=2y?1O<2y:1O>2y;i=0<=2y?++1O:--1O){A[2s[i]]=1K[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2W,2T,p;p=P.2R(J)/1n;2W=[0,D*p];2T=[D-(D*p),D];u(J<0){2W=2W.6O();2T=2T.6O()}9 8.4z(\'37\',[0,0],2W,2T,[D,D])});B.1P.18("5g",o(L,Q,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1Z!=="31"&&1Z!==G){F=1m 3b(L,Q)}R{F=1J.2N(\'F\');1a.3g(8.F,F);F.L=L;F.Q=Q}2p=F.2o(\'2d\');2p.3R(8.F,x,y,L,Q,0,0,L,Q);8.5m={x:x,y:y};8.82=2k;9 8.4O(F)});B.1P.18("4H",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.L==G)&&(1E.Q==G))){1o.6t("3m 7h bp 1I 6M U 4H");9}u(1E.L==G){1E.L=8.F.L*1E.Q/8.F.Q}R u(1E.Q==G){1E.Q=8.F.Q*1E.L/8.F.L}u(1f 1Z!=="31"&&1Z!==G){F=1m 3b(1E.L,1E.Q)}R{F=1J.2N(\'F\');1a.3g(8.F,F);F.L=1E.L;F.Q=1E.Q}2p=F.2o(\'2d\');2p.3R(8.F,0,0,8.F.L,8.F.Q,0,0,1E.L,1E.Q);8.5s=2k;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|Math|height|else|image|max|for|Filter|args|_results|arguments|name||_this||_len|type|pixel||_j|register|call|Util|src|context|options|result|typeof|Renderer|callback|img|min|loc|start|new|100|Log|endX|Convert|Pixel|end|layer|currentJob|case|val|128|Blender|data|push|key|false|debug|newDims|Calculate|controlPoints|obj|dimensions|document|bezier|process|IO|divisor|_k|Plugin|builder|id|Event|imageData|throw|bnum|NodeJS|Store|pow|exports|parentData|initObj|Layer|target|Type|bias|renderingCanvas||055|ret|levels|cps|clampRGB||hex|Module|caman|newLoc|kernel|prev|true|to|imageWidth|imageHeight|getContext|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|mul|Analyze|createElement|opacity|renderer|Blocks|abs|avg|ctrl2|search|Image|ctrl1|window|string|lang|break|undefined|modPixelData|hsv|lowBound|highBound|layerData|rgb|func|trigger|events|Canvas|in|CamanParser|proxyUrl|values|copyAttributes|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|dataArray|getImageData|getAttribute|finishInit|cb|1379310345|chan|__slice|p0|fs|_error|color|child|parent|leftCoord|allowRevert|hiDPIRatio|last|preScaledWidth|p1|preScaledHeight|blockFinished|__hasProp|drawImage|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|renderingContext|amt|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|Fiber|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|hiDPIReplacement|Root|sel|root|green|buf|replaceCanvas|Logger|hueToRGB|blocksDone|red|INST_REGEX|substr|updateContext|rightCoord|dest|fillColor|coord|sub|parseInt|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2M,1y,1F,B,3d,3b,1q,1S,4l,V,1M,2V,22,1o,2f,1r,1P,1g,4J,1X,1a,3D,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3g=o(2H,2l,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1A(2l.7n(4j.5f,4j.bn))}9 X};1a.3u=o(K){u(K==G){K=0}u(B.1W||(2X.7o!=G)){9 1m 7o(K)}9 1m 44(K)};9 1a})();u(1f 1Z!=="31"&&1Z!==G){4J=1Z;3b=4i(\'F\');2V=3b.2V;4l=4i(\'bl\');3D=4i(\'3D\');3Y=4i(\'3Y\')}R{4J=2X}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1C;B.3J=2k;B.5O="86";B.4A="";B.8c="9q";B.1W=1f 1Z!=="31"&&1Z!==G;B.8m=!B.1W;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.1W){9 2k}u(1f F==="2Y"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1z-2g-1R\')};o B(){8.3s=5T(8.3s,8);I W,1h,1R;u(Y.K===0){1U"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.1W){1R=51(B.63(W[0]),10);1h=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1R)&&1X.6P(1R)){9 1X.2t(1R,1h)}}8.1R=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1C;8.5s=1C;8.be=1C;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1C;8.aT=1m 2M(8);8.2P=1m 1g(8);8.7T((o(11){9 o(){11.80(W);9 11.8g()}})(8));9 8}R{9 1m B(Y)}}B.H.7T=o(3y){I 5C;u(B.1W){9 4s((o(11){9 o(){9 3y.19(11)}})(8),0)}R{u(1J.5D==="4D"){1o.1D("6B 6G");9 4s((o(11){9 o(){9 3y.19(11)}})(8),0)}R{5C=(o(11){9 o(){u(1J.5D==="4D"){1o.1D("6B 6G");9 3y.19(11)}}})(8);9 1J.6L("ap",5C,1C)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1U"3m Y 6M";}8.21=G;8.4m=G;8.4n=G;8.1h=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Y":8.4n=W[1];30;1v"o":8.1h=W[1]}u(W.K===2){9}8.1h=W[2];u(W.K===4){E=W[4];X=[];U(1B 3c E){u(!3Q.19(E,1B))4f;1w=E[1B];X.1A(8.1d[1B]=1w)}9 X}};B.H.6W=o(1H){u(B.1W){8.21=1H;8.4m=\'6Z\';9}u(1f 1H==="2v"){8.21=1H}R{8.21=$(1H)}u(8.21==G){1U"al a8 a7 S 7h F U a3.";}9 8.4m=8.21.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1i":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1o.1D("9N U 1W");u(1f 8.21==="2Y"&&8.21.4C(/^7E?:\\/\\//)){9 8.7F(8.21,8.3s)}R u(1f 8.21==="2Y"){9 3D.9E(8.21,8.3s)}R{9 8.3s(G,8.21)}};B.H.7F=o(3X,1h){I 66;1o.1D("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1z\',o(8f){9 4N+=8f});9 2u.6m(\'1s\',o(){9 1h(G,1m 91(4N,\'8d\'))})});9 66.6m(\'6t\',1h)};B.H.3s=o(3T,1z){u(3T){1U 3T;}8.S=1m 2V();8.S.1b=1z;1o.1D("2V 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));8.F=1m 3b(8.2m(),8.2n());9 8.3x()};B.H.7A=o(){8.S=8.21;8.F=1J.2N(\'F\');8.1c=8.F.2o(\'2d\');8.24=1J.2N(\'F\');8.45=8.24.2o(\'2d\');1a.3g(8.S,8.F,{5c:[\'1b\']});1a.3g(8.S,8.24,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.24,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=8.21;8.1c=8.F.2o(\'2d\');8.24=1J.2N(\'F\');8.45=8.24.2o(\'2d\');u(8.4n!=G){8.S=1J.2N(\'1i\');8.S.1b=8.4n;8.5Z();9 8.5Y()}R{9 8.3x()}};B.H.5Z=o(){u(8.5X()){1o.1D(8.S.1b,"->",8.4I());8.7m=2k;8.S.1b=8.4I()}u(1M.7k(8.S)){8.S.1b=1M.3e(8.S.1b);9 1o.1D("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4k()}R{9 8.S.73=8.4k}};B.H.78=o(){u(!8.S.4D){9 1C}u((8.S.5P!=G)&&8.S.5P===0){9 1C}9 2k};B.H.2m=o(){9 8.S.L||8.S.5P};B.H.2n=o(){9 8.S.Q||8.S.an};B.H.4k=o(){1o.1D("2V 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));u(8.7m){8.F.L=8.2m()/8.3K();8.F.Q=8.2n()/8.3K();8.24.L=8.2m()/8.3K();8.24.Q=8.2n()/8.3K()}R{8.F.L=8.2m();8.F.Q=8.2n();8.24.L=8.2m();8.24.Q=8.2n()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1c==G){8.1c=8.F.2o(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.Q=8.F.Q;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1c.3R(8.S,0,0,8.2m(),8.2n(),0,0,8.3M,8.3O);8.45.3R(8.S,0,0,8.2m(),8.2n(),0,0,8.3M,8.3O)}8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z;u(B.3J){8.59=1a.3u(8.M.K);8.2J=1a.3u(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1I={L:8.F.L,Q:8.F.Q};u(!B.1W){1X.6K(8.1R,8)}8.1h.19(8,8);9 8.1h=o(){}};B.H.6z=o(){8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);9 8.M=8.1T.1z};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3J){1U"5E 4y";}8.2J=1a.3u(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1A(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.1W||8.F.3w(\'1z-2g-1R\')){9}9 8.F.7n(\'1z-2g-1R\',8.1R)};B.H.6w=o(){9 8.F.3w(\'1z-2g-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.1W||!8.5X()){9}2E=8.3K();u(2E!==1){1o.1D("aH 2E = "+2E);8.6R=2k;8.3M=8.F.L;8.3O=8.F.Q;8.F.L=8.3M*2E;8.F.Q=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.Q=""+8.3O+"8u";8.1c.aK(2E,2E);8.L=8.5N=8.F.L;9 8.Q=8.5M=8.F.Q}};B.H.3K=o(){I 5B,2C;2C=2X.2C||1;5B=8.1c.aU||8.1c.aV||8.1c.b6||8.1c.b7||8.1c.b8||1;9 2C/5B};B.H.7p=o(){9(2X.2C!=G)&&2X.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1C}9 8.4I()!==G};B.H.4I=o(){u(8.S==G){9 G}9 8.S.3w(\'1z-2g-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1c=8.F.2o(\'2d\');8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z;u(B.3J){8.2J=1a.3u(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.Q=8.F.Q;8.6z();9 8.1I={L:8.F.L,Q:8.F.Q}};B.H.72=o(1h){u(1h==G){1h=o(){}}1S.39(8,"6Y");9 8.2P.2t((o(11){9 o(){11.24.L=11.F.L;11.24.Q=11.F.Q;11.45.5v(11.1T,0,0);9 1h.19(11)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2k}u(!B.3J){1U"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.45.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,15,M,C,13,E;F=1J.2N(\'F\');1a.3g(8.F,F);F.L=8.5N;F.Q=8.5M;2p=F.2o(\'2d\');1T=2p.3v(0,0,F.L,F.Q);M=1T.1z;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1C;9 8.4O(F)};B.H.7r=o(){I 4Z,1p,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3J){1U"5E 4y";}52=[];53=0;1p=53+8.L;54=0;5n=54+8.Q;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1N+=J[i]}}8.2P.2F({14:V.25.5h,Z:Z,J:J,1N:1N,26:26});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.25.1P,2w:2w,W:W});9 8};B.H.5j=o(1h){I 1t;1t=1m 22(8);8.5u.1A(1t);8.2P.2F({14:V.25.5k});1h.19(1t);8.2P.2F({14:V.25.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1A(8.49);8.4a.1A(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2f);4J.B=B;B.2M=(o(){o 2M(c){8.c=c}2M.H.bi=o(){I i,2a,4e,C,17,1O,E;2a={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){2a.r[i]=0;2a.g[i]=0;2a.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1i=4b[C];X.1A(6C=1m 3d(1i,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1J.5D==="4D"){9 B.5r()}R{9 1J.6L("bb",B.5r,1C)}})()}3d=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3d(2z,6T){8.6U=2z.3w(\'1z-2g\');8.2g=B(2z,6T.5p(8))}3d.H.6H=o(){I W,e,48,38,5w,5x,m,r,47,C,13,E,X;8.2z=8.2g.F;r=1m 7f(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1m 7f(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1m b9("9 o() { 8."+48+"("+W+"); };");5y{38=5x();X.1A(38.19(8.2g))}5z(3E){e=3E;X.1A(1o.1D(e))}}9 X};3d.H.2t=o(){I 2z;2z=8.2z;9 8.2g.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 3d})();B.1y=(o(){o 1y(){}1y.5A={};1y.18=o(Z,38){9 8.5A[Z]=38};1y.2t=o(Z,O,N){9 8.5A[Z](O,N)};9 1y})();1y=B.1y;B.1F=(o(){o 1F(){}1F.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1F.7P=o(1j,T,42){I 2A;u(42==G){42=1C}2A=1j+(P.aQ()*(T-1j));u(42){9 2A.aP(42)}R{9 P.41(2A)}};1F.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1F.1K=o(1l,2W,2T,1s,34,35){I 1K,3o,1G,1p,i,j,3r,4v,2j,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1G=1l;34=2W;35=2T}R{1G=[1l,2W,2T,1s]}u(1G.K<2){1U"3m 5F 5G Y 2l 1K";}1K={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2j=1G;as(2j.K>1){4v=[];U(j=17=0,E=2j.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1A([3r(2j[j][0],2j[j+1][0],t),3r(2j[j][1],2j[j+1][1],t)])}2j=4v}1K[P.41(2j[0][0])]=P.41(3o(2j[0][1],34,35))}1p=1G[1G.K-1][0];1K=B.1F.5H(1K,1p);u(1K[1p]==G){1K[1p]=1K[1p-1]}9 1K};1F.6I=o(1G,34,35){I 2F,3o,5I,1p,4u,4t,4r,4p,i,j,3r,5J,5K,2L,p,3C,3N,2I,58,56,29,50,t,C,17,E;u(1G.K<2){1U"3m 5F 5G Y 2l 6I";}29={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(11){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2L=(o(11){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(11){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1G.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3C=1G[i];3N=1G[i+1];2I=3N[0]-3C[0];58=1/2I;u(i===1G.K-2){58=1/(2I-1)}p=i>0?1G[i-1]:3C;5J=2L(50(3N,p),[0.5,0.5]);p=i<1G.K-2?1G[i+2]:3N;5K=2L(50(p,3C),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2L(3C,[4u,4u]),2L(5J,[4t,4t]),2L(3N,[4r,4r]),2L(5K,[4p,4p]));29[P.41(56[0])]=P.41(3o(56[1],34,35));5I+=1}}1p=1G[1G.K-1][0];29=B.1F.5H(29,1p);9 29};1F.5H=o(3f,1p){I i,j,3I,29,4W,C,17;u(7W.ah(3f).K<1p+1){29={};U(i=C=0;0<=1p?C<=1p:C>=1p;i=0<=1p?++C:--C){u(3f[i]!=G){29[i]=3f[i]}R{3I=[i-1,29[i-1]];U(j=17=i;i<=1p?17<=1p:17>=1p;j=i<=1p?++17:--17){u(3f[j]!=G){4W=[j,3f[j]];30}}29[i]=3I[1]+((4W[1]-3I[1])/(4W[0]-3I[0]))*(i-3I[0])}}9 29}9 3f};9 1F})();1F=B.1F;B.1q=(o(){o 1q(){}1q.5d=o(2e){I b,g,r;u(2e.ae(0)==="#"){2e=2e.4U(1)}r=51(2e.4U(0,2),16);g=51(2e.4U(2,2),16);b=51(2e.4U(4,2),16);9{r:r,g:g,b:b}};1q.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}R{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1q.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}R{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}R{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}R{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}R{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1n,y:y*1n,z:z*1n}};1q.9S=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}R{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}R{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}R{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1q.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1n.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}R{x=(7.6f*x)+0.3z}u(y>0.6d){y=P.1Y(y,0.6e)}R{y=(7.6f*y)+0.3z}u(z>0.6d){z=P.1Y(z,0.6e)}R{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1q.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}R{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}R{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}R{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1n.0,z:z*7R.7S}};1q.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1q.9t=o(l,a,b){};9 1q})();1q=B.1q;B.1S=(o(){o 1S(){}1S.3a={};1S.87=["88","89","6Y","8a","8b","3P"];1S.39=o(23,14,1z){I 3S,C,13,E,X;u(1z==G){1z=G}u(8.3a[14]&&8.3a[14].K){E=8.3a[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.23===G||23.1R===3S.23.1R){X.1A(3S.2r.19(23,1z))}R{X.1A(9p 0)}}9 X}};1S.9n=o(23,14,2r){I 6n,5e;u(1f 23==="2Y"){5e=23;6n=14;23=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1C}u(!8.3a[14]){8.3a[14]=[]}8.3a[14].1A({23:23,2r:2r});9 2k};9 1S})();1S=B.1S;B.V=(o(){o V(){}V.25={6o:1,5h:2,5k:3,5l:4,6p:5,1P:6};V.18=o(Z,8j){9 B.H[Z]=8j};9 V})();V=B.V;B.1M=(o(){o 1M(){}1M.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1M.7k=o(1i){u(1i==G){9 1C}u(8.8l(1i)){9 1C}9 8.4q(1i.1b)};1M.8l=o(1i){I E;9(1i.5O!=G)&&((E=1i.5O.3Z())===\'86\'||E===\'8n-9m\')};1M.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1J.9k}R{9 1C}};1M.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1o.6q("9f 2l 9e a 8v S 93 a 90 8y. 79: "+1b)}R{u(B.4q(B.4A)){1o.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3e(1b)}}};1M.3e=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1M.8G=o(2Z){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};2Z=2Z.3Z();u(5b[2Z]!=G){2Z=5b[2Z]}9"8O/8P."+2Z};9 1M})();B.H.8Q=o(){u(1f 1Z!=="31"&&1Z!==G){9 8.8C.2G(8,Y)}R{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1J.8Y.8Z=S};B.H.8C=o(3q,57,1h){I e,6s;u(57==G){57=2k}u(1h==G){1h=G}5y{6s=3D.94(3q);u(6s.96()&&!57){9 1C}}5z(3E){e=3E;1o.1D("97 98 3q "+3q)}9 3D.99(3q,8.F.9a(),o(3T){1o.1D("9b 9c 2l "+3q);u(1h){9 1h.19(8,3T)}})};B.H.7q=o(14){I 1i;1i=1m 2V();1i.1b=8.6u(14);1i.L=8.1I.L;1i.Q=8.1I.Q;u(2X.2C){1i.L/=2X.2C;1i.Q/=2X.2C}9 1i};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.24.9d("S/"+14)};1M=B.1M;B.22=(o(){o 22(c){8.c=c;8.48=8.c;8.1d={6r:\'8t\',2O:1.0};8.9h=1a.5q.2D();8.F=1f 1Z!=="31"&&1Z!==G?1m 3b():1J.2N(\'F\');8.F.L=8.c.1I.L;8.F.Q=8.c.1I.Q;8.1c=8.F.2o(\'2d\');8.1c.9i(8.F.L,8.F.Q);8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z}22.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};22.H.9j=o(8q){8.1d.6r=8q;9 8};22.H.2O=o(2O){8.1d.2O=2O/1n;9 8};22.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2h<0){9 1m 1r(0,0,0,D,8.c)}9 8.65(2h)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1U"3l a 3k 1c";}7D=8.1k+(8.c.1I.L*4*(4E*-1))+(4*4F);u(2h>8.c.M.K||2h<0){9}8.c.M[2h]=A.r;8.c.M[2h+1]=A.g;8.c.M[2h+2]=A.b;8.c.M[2h+3]=A.a;9 2k};1r.H.9J=o(x,y){I 1k;u(8.c==G){1U"3l a 3k 1c";}1k=8.6h(x,y,8.L);9 8.65(1k)};1r.H.9K=o(x,y,A){I 1k;u(8.c==G){1U"3l a 3k 1c";}1k=8.6h(x,y,8.L);8.c.M[1k]=A.r;8.c.M[1k+1]=A.g;8.c.M[1k+2]=A.b;9 8.c.M[1k+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2e;u(4B==G){4B=1C}2e=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2e+8.a.3t(16)}R{9 2e}};9 1r})();1r=B.1r;B.1P=(o(){o 1P(){}1P.64={};1P.18=o(Z,2w){9 8.64[Z]=2w};1P.2t=o(1c,Z,W){9 8.64[Z].2G(1c,W)};9 1P})();1P=B.1P;B.1g=(o(){1g.2Q=B.1W?4i(\'9Q\').9R().K:4;o 1g(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1g.H.2F=o(62){u(62==G){9}9 8.3V.1A(62)};1g.H.2B=o(){I 1t;u(8.3V.K===0){1S.39(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1u=8.3V.7v();3p(8.1u.14){1v V.25.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.25.5l:8.c.6D();8.c.6x();9 8.2B();1v V.25.6p:9 8.7u(8.1u.1t,8.1u.1b);1v V.25.1P:9 8.7t();a0:9 8.7s()}};1g.H.2t=o(1h){8.61=1h;8.32=1a.3u(8.c.M.K);9 8.2B()};1g.H.60=o(2r){I 40,5V,1V,1s,f,i,5U,n,1l,C,E,X;8.4R=0;n=8.c.M.K;5V=P.2K((n/4)/1g.2Q);40=5V*4;5U=40+((n/4)%1g.2Q)*4;X=[];U(i=C=0,E=1g.2Q;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1s=1l+(i===1g.2Q-1?5U:40);u(B.1W){f=4l((o(11){9 o(){9 2r.19(11,i,1l,1s)}})(8));1V=f.a9();X.1A(8.3P(1V))}R{X.1A(4s((o(11){9 o(i,1l,1s){9 o(){9 2r.19(11,i,1l,1s)}}})(8)(i,1l,1s),0))}}9 X};1g.H.7s=o(){1S.39(8.c,"88",8.1u);u(8.1u.14===V.25.6o){9 8.60(8.7d)}R{9 8.60(8.7a)}};1g.H.7t=o(){1o.1D("ac 2w "+8.1u.2w);1P.2t(8.c,8.1u.2w,8.1u.W);1o.1D("1P "+8.1u.2w+" 5S!");9 8.2B()};1g.H.7d=o(1V,1l,1s){I i,15,C;1o.1D("77 #"+1V+" - V: "+8.1u.Z+", af: "+1l+", ag: "+1s);1S.39(8.c,"8b",{74:1V,71:1g.2Q,ai:1l,aj:1s});15=1m 1r();15.67(8.c);U(i=C=1l;C<1s;i=C+=4){15.1k=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1u.5a(15);8.c.M[i]=1a.2c(15.r);8.c.M[i+1]=1a.2c(15.g);8.c.M[i+2]=1a.2c(15.b);8.c.M[i+3]=1a.2c(15.a)}u(B.1W){9 4l["70"](1V)}R{9 8.3P(1V)}};1g.H.7a=o(1V,1l,1s){I J,43,26,1Q,3n,1N,i,j,k,2i,n,Z,p,15,2u,C,17,1O;Z=8.1u.Z;26=8.1u.26;1N=8.1u.1N;n=8.c.M.K;J=8.1u.J;43=P.7N(J.K);2i=[];1o.1D("aq 2i - V: "+8.1u.Z);1l=P.T(1l,8.c.1I.L*4*((43-1)/2));1s=P.1j(1s,n-(8.c.1I.L*4*((43-1)/2)));1Q=(43-1)/2;15=1m 1r();15.67(8.c);U(i=C=1l;C<1s;i=C+=4){15.1k=i;3n=0;U(j=17=-1Q;-1Q<=1Q?17<=1Q:17>=1Q;j=-1Q<=1Q?++17:--17){U(k=1O=1Q;1Q<=-1Q?1O<=-1Q:1O>=-1Q;k=1Q<=-1Q?++1O:--1O){p=15.7G(j,k);2i[3n*3]=p.r;2i[3n*3+1]=p.g;2i[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2i,1N,26);8.32[i]=1a.2c(2u.r);8.32[i+1]=1a.2c(2u.g);8.32[i+2]=1a.2c(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.1W){9 4l["70"](1V)}R{9 8.3P(1V)}};1g.H.3P=o(1V){I i,C,E;u(1V>=0){1o.1D("77 #"+1V+" 5S! V: "+8.1u.Z)}8.4R++;1S.39(8.c,"3P",{74:1V,ar:8.4R,71:1g.2Q});u(8.4R===1g.2Q){u(8.1u.14===V.25.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1V>=0){1o.1D("V "+8.1u.Z+" 5S!")}1S.39(8.c,"89",8.1u);9 8.2B()}};1g.H.5Q=o(J,2i,1N,26){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2i[i*3];1w.g+=J[i]*2i[i*3+1];1w.b+=J[i]*2i[i*3+2]}1w.r=(1w.r/1N)+26;1w.g=(1w.g/1N)+26;1w.b=(1w.b/1N)+26;9 1w};1g.H.7u=o(1t,1b){I 1i,3e;1i=1m 2V();1i.73=(o(11){9 o(){1t.1c.3R(1i,0,0,11.c.1I.L,11.c.1I.Q);1t.1T=1t.1c.3v(0,0,11.c.1I.L,11.c.1I.Q);1t.M=1t.1T.1z;11.c.M=1t.M;9 11.2B()}})(8);3e=1M.8r(1b);9 1i.1b=3e!=G?3e:1b};9 1g})();1g=B.1g;B.1X=(o(){o 1X(){}1X.3h={};1X.6P=o(2U){9 8.3h[2U]!=G};1X.2D=o(2U){9 8.3h[2U]};1X.6K=o(Z,1H){9 8.3h[Z]=1H};1X.2t=o(2U,1h){4s((o(11){9 o(){9 1h.19(11.2D(2U),11.2D(2U))}})(8),0);9 8.2D(2U)};1X.at=o(Z){u(Z==G){Z=1C}u(Z){9 6E 8.3h[Z]}R{9 8.3h={}}};9 1X})();1X=B.1X;1y.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1y.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1y.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1y.18("ax",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1e.g=N.g>1x?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1e.b=N.b>1x?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1e});1y.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1y.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1y.18("aB",o(O,N){9{r:1x-2*(N.r-1x)*(O.r-1x)/D,g:1x-2*(N.g-1x)*(O.g-1x)/D,b:1x-2*(N.b-1x)*(O.b-1x)/D}});1y.18("aC",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-((D-N.r)*(D-(O.r-1x)))/D:(N.r*(O.r+1x))/D;1e.g=N.g>1x?D-((D-N.g)*(D-(O.g-1x)))/D:(N.g*(O.g+1x))/D;1e.b=N.b>1x?D-((D-N.b)*(D-(O.b-1x)))/D:(N.b*(O.b+1x))/D;9 1e});1y.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1y.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Y",o(){I 3F;u(Y.K===1){3F=1q.5d(Y[0])}R{3F={r:Y[0],g:Y[1],b:Y[2]}}9 8.1L("4Y",o(A){A.r=3F.r;A.g=3F.g;A.b=3F.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2K(D*(J/1n));9 8.1L("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1L("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1L("8s",o(A){I 46,2S,T;T=P.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;46=((P.2R(T-2S)*2/D)*J)/1n;u(A.r!==T){A.r+=(T-A.r)*46}u(A.g!==T){A.g+=(T-A.g)*46}u(A.b!==T){A.b+=(T-A.b)*46}9 A})});V.18("8e",o(J){9 8.1L("8e",o(A){I 2S;2S=1F.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=P.1Y((J+1n)/1n,2);9 8.1L("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1L("81",o(A){I b,g,h,33,r,E;33=1q.7g(A.r,A.g,A.b);h=33.h*1n;h+=P.2R(J);h=h%1n;h/=1n;33.h=h;E=1q.7i(33.h,33.s,33.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,37;u(Y.K===2){37=1q.5d(Y[0]);3j=Y[1]}R u(Y.K===4){37={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1L("7U",o(A){A.r-=(A.r-37.r)*(3j/1n);A.g-=(A.g-37.g)*(3j/1n);A.b-=(A.b-37.b)*(3j/1n);9 A})});V.18("7O",o(){9 8.1L("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1n}J/=1n;9 8.1L("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1L("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2R(J)*2.55;9 8.1L("7y",o(A){I 2A;2A=1F.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2R(J)*2.55;9 8.1L("7x",o(A){u(A.r>D-J){A.r=D}R u(A.rD-J){A.g=D}R u(A.gD-J){A.b=D}R u(A.b0){A.r+=(D-A.r)*1d.4S}R{A.r-=A.r*P.2R(1d.4S)}}u(1d.4M!=G){u(1d.4M>0){A.g+=(D-A.g)*1d.4M}R{A.g-=A.g*P.2R(1d.4M)}}u(1d.4G!=G){u(1d.4G>0){A.b+=(D-A.b)*1d.4G}R{A.b-=A.b*P.2R(1d.4G)}}9 A})});V.18("4z",o(){I 4g,1K,2s,2b,1s,i,3L,1l,C,17,E,2q;2s=Y[0],2b=2<=Y.K?3B.19(Y,1):[];3L=2b[2b.K-1];u(1f 3L==="o"){4g=3L;2b.3U()}R u(1f 3L==="2Y"){4g=1F[3L];2b.3U()}R{4g=1F.1K}u(1f 2s==="2Y"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2b.K<2){1U"3m 5F 5G Y 2l 4z 48";}1K=4g(2b,0,D);1l=2b[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1K[i]=1l[1]}}1s=2b[2b.K-1];u(1s[0]=D;i=2q<=D?++17:--17){1K[i]=1s[1]}}9 8.1L("4z",o(A){I 1O,2y;U(i=1O=0,2y=2s.K;0<=2y?1O<2y:1O>2y;i=0<=2y?++1O:--1O){A[2s[i]]=1K[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2W,2T,p;p=P.2R(J)/1n;2W=[0,D*p];2T=[D-(D*p),D];u(J<0){2W=2W.6O();2T=2T.6O()}9 8.4z(\'37\',[0,0],2W,2T,[D,D])});B.1P.18("5g",o(L,Q,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1Z!=="31"&&1Z!==G){F=1m 3b(L,Q)}R{F=1J.2N(\'F\');1a.3g(8.F,F);F.L=L;F.Q=Q}2p=F.2o(\'2d\');2p.3R(8.F,x,y,L,Q,0,0,L,Q);8.5m={x:x,y:y};8.82=2k;9 8.4O(F)});B.1P.18("4H",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.L==G)&&(1E.Q==G))){1o.6t("3m 7h bp 1I 6M U 4H");9}u(1E.L==G){1E.L=8.F.L*1E.Q/8.F.Q}R u(1E.Q==G){1E.Q=8.F.Q*1E.L/8.F.L}u(1f 1Z!=="31"&&1Z!==G){F=1m 3b(1E.L,1E.Q)}R{F=1J.2N(\'F\');1a.3g(8.F,F);F.L=1E.L;F.Q=1E.Q}2p=F.2o(\'2d\');2p.3R(8.F,0,0,8.F.L,8.F.Q,0,0,1E.L,1E.Q);8.5s=2k;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|Math|height|else|image|max|for|Filter|args|_results|arguments|name||_this||_len|type|pixel||_j|register|call|Util|src|context|options|result|typeof|Renderer|callback|img|min|loc|start|new|100|Log|endX|Convert|Pixel|end|layer|currentJob|case|val|128|Blender|data|push|key|false|debug|newDims|Calculate|controlPoints|obj|dimensions|document|bezier|process|IO|divisor|_k|Plugin|builder|id|Event|imageData|throw|bnum|NodeJS|Store|pow|exports|parentData|initObj|Layer|target|renderingCanvas|Type|bias||055|ret|levels|cps|clampRGB||hex|Module|caman|newLoc|kernel|prev|true|to|imageWidth|imageHeight|getContext|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|mul|Analyze|createElement|opacity|renderer|Blocks|abs|avg|ctrl2|search|Image|ctrl1|window|string|lang|break|undefined|modPixelData|hsv|lowBound|highBound|layerData|rgb|func|trigger|events|Canvas|in|CamanParser|proxyUrl|values|copyAttributes|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|dataArray|getImageData|getAttribute|finishInit|cb|1379310345|chan|__slice|p0|fs|_error|color|child|parent|leftCoord|allowRevert|hiDPIRatio|last|preScaledWidth|p1|preScaledHeight|blockFinished|__hasProp|drawImage|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|renderingContext|amt|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|Fiber|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|hiDPIReplacement|Root|sel|root|green|buf|replaceCanvas|Logger|hueToRGB|blocksDone|red|INST_REGEX|substr|updateContext|rightCoord|dest|fillColor|coord|sub|parseInt|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file diff --git a/src/core/io.coffee b/src/core/io.coffee index 512672ab..1b53a1b2 100644 --- a/src/core/io.coffee +++ b/src/core/io.coffee @@ -108,6 +108,6 @@ Caman::toImage = (type) -> # Base64 encodes the current canvas Caman::toBase64 = (type = "png") -> type = type.toLowerCase() - return @canvas.toDataURL "image/#{type}" + return @renderingCanvas.toDataURL "image/#{type}" IO = Caman.IO \ No newline at end of file From c5a6044ba32d327e4aefcfd5fb05f0fe9656743a Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Fri, 2 Jan 2015 12:54:16 +0100 Subject: [PATCH 06/12] Fix rendering canvas initialization for node + test scripts fixes --- .travis.yml | 8 ++++++-- dist/caman.full.js | 4 ++++ dist/caman.full.min.js | 3 ++- dist/caman.full.pack.js | 2 +- dist/caman.js | 4 ++++ dist/caman.min.js | 3 ++- dist/caman.pack.js | 2 +- karma.conf.js | 7 +++++-- package.json | 7 ++++--- src/core/caman.coffee | 2 ++ 10 files changed, 31 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0b6bea49..ac2c0e35 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,11 @@ language: node_js env: TRAVISCI=true node_js: - "0.10" - - "0.8" before_script: - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start \ No newline at end of file + - sh -e /etc/init.d/xvfb start +before_install: + - sudo apt-get install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++ + - npm install canvas + - npm install karma-coffee-preprocessor karma-firefox-launcher + diff --git a/dist/caman.full.js b/dist/caman.full.js index 85c6d29d..544aa233 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -387,6 +387,7 @@ this.image.src = data; Log.debug("Image loaded. Width = " + (this.imageWidth()) + ", Height = " + (this.imageHeight())); this.canvas = new Canvas(this.imageWidth(), this.imageHeight()); + this.renderingCanvas = new Canvas(this.imageWidth(), this.imageHeight()); return this.finishInit(); }; @@ -483,6 +484,9 @@ if (this.context == null) { this.context = this.canvas.getContext('2d'); } + if (this.renderingContext == null) { + this.renderingContext = this.renderingCanvas.getContext('2d'); + } this.originalWidth = this.preScaledWidth = this.width = this.canvas.width; this.originalHeight = this.preScaledHeight = this.height = this.canvas.height; this.hiDPIAdjustments(); diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index 286404dc..46a45f88 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -32,12 +32,13 @@ return _results;}};Caman.prototype.setInitObject=function(obj){if(Caman.NodeJS){ if(typeof obj==="object"){this.initObj=obj;}else{this.initObj=$(obj);} if(this.initObj==null){throw"Could not find image or canvas for initialization.";} return this.initType=this.initObj.nodeName.toLowerCase();};Caman.prototype.setup=function(){switch(this.initType){case"node":return this.initNode();case"img":return this.initImage();case"canvas":return this.initCanvas();}};Caman.prototype.initNode=function(){Log.debug("Initializing for NodeJS");if(typeof this.initObj==="string"&&this.initObj.match(/^https?:\/\//)){return this.readFromHttp(this.initObj,this.nodeFileReady);}else if(typeof this.initObj==="string"){return fs.readFile(this.initObj,this.nodeFileReady);}else{return this.nodeFileReady(null,this.initObj);}};Caman.prototype.readFromHttp=function(url,callback){var req;Log.debug("Fetching image from "+url);req=http.get(url,function(res){var buf;buf='';res.setEncoding('binary');res.on('data',function(chunk){return buf+=chunk;});return res.on('end',function(){return callback(null,new Buffer(buf,'binary'));});});return req.on('error',callback);};Caman.prototype.nodeFileReady=function(err,data){if(err){throw err;} -this.image=new Image();this.image.src=data;Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));this.canvas=new Canvas(this.imageWidth(),this.imageHeight());return this.finishInit();};Caman.prototype.initImage=function(){this.image=this.initObj;this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');Util.copyAttributes(this.image,this.canvas,{except:['src']});Util.copyAttributes(this.image,this.renderingCanvas,{except:['src']});if(this.image.parentNode!=null){this.image.parentNode.replaceChild(this.renderingCanvas,this.image);} +this.image=new Image();this.image.src=data;Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));this.canvas=new Canvas(this.imageWidth(),this.imageHeight());this.renderingCanvas=new Canvas(this.imageWidth(),this.imageHeight());return this.finishInit();};Caman.prototype.initImage=function(){this.image=this.initObj;this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');Util.copyAttributes(this.image,this.canvas,{except:['src']});Util.copyAttributes(this.image,this.renderingCanvas,{except:['src']});if(this.image.parentNode!=null){this.image.parentNode.replaceChild(this.renderingCanvas,this.image);} this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=this.initObj;this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} return this.finishInit();};Caman.prototype.finishInit=function(){var i,pixel,_i,_len,_ref;if(this.context==null){this.context=this.canvas.getContext('2d');} +if(this.renderingContext==null){this.renderingContext=this.renderingCanvas.getContext('2d');} this.originalWidth=this.preScaledWidth=this.width=this.canvas.width;this.originalHeight=this.preScaledHeight=this.height=this.canvas.height;this.hiDPIAdjustments();if(!this.hasId()){this.assignId();} if(this.image!=null){this.context.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);this.renderingContext.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);} this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} diff --git a/dist/caman.full.pack.js b/dist/caman.full.pack.js index 1577d809..3bfda836 100644 --- a/dist/caman.full.pack.js +++ b/dist/caman.full.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4E,2m,2b,D,59,44,1W,2J,6y,R,2U,4w,3a,1X,3K,1Z,2r,1Q,7O,31,1u,fs,6S,81,5o,8V,6J=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.5l=A(4I,3I,G){M 6s,H,1n,K,3P,1o;B(G==L){G={}}K=4I.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6s=K[H];B((G.7g!=L)&&(3P=6s.9Q,6J.1x(G.7g,3P)>=0)){67}1o.2j(3I.bh(6s.9Q,6s.fP))}u 1o};1u.68=A(P){B(P==L){P=0}B(D.2Y||(4y.ca!=L)){u 1y ca(P)}u 1y 5R(P)};u 1u})();B(1s 2h!=="3Q"&&2h!==L){7O=2h;44=6N(\'I\');4w=44.4w;6y=6N(\'fO\');fs=6N(\'fs\');6S=6N(\'6S\')}S{7O=4y}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5N=2W;D.9C="c3";D.7F="";D.c5="fH";D.2Y=1s 2h!=="3Q"&&2h!==L;D.ce=!D.2Y;D.5J=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Y){u 2W}B(1s I==="3h"){I=$(I)}B(!((I!=L)&&(I.5E!=L))){u L}u I.5E(\'2a-3M-2V\')};A D(){o.5C=8Q(o.5C,o);M 1l,1N,2V;B(1k.P===0){2K"5y 1k";}B(o aT D){o.5x=o.5x.9y(o);o.6z=o.6z.9y(o);1l=1k[0];B(!D.2Y){2V=4f(D.9z(1l[0]),10);1N=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2V)&&31.bR(2V)){u 31.3Z(2V,1N)}}o.2V=1u.9L.49();o.7G=o.4Q=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6G=[];o.9t=[];o.9s=[];o.6W=L;o.d6=2k;o.fz=1y 4E(o);o.4J=1y 1Q(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Y){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2i.9p==="7J"){1X.2s("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2i.9p==="7J"){1X.2s("aU aW");u cb.1x(1r)}}})(o);u 2i.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2v,2f,K,1o;B(1l.P===0){2K"5y 1k be";}o.3b=L;o.7K=L;o.7L=L;o.1N=A(){};o.bo(1l[0]);B(1l.P===1){u}5U(1s 1l[1]){28"3h":o.7L=1l[1];5c;28"A":o.1N=1l[1]}B(1l.P===2){u}o.1N=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2v 5a K){B(!6r.1x(K,2v))67;2f=K[2v];1o.2j(o.1G[2v]=2f)}u 1o}};D.N.bo=A(2A){B(D.2Y){o.3b=2A;o.7K=\'bS\';u}B(1s 2A==="3Y"){o.3b=2A}S{o.3b=$(2A)}B(o.3b==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3b.9Q.6I()};D.N.as=A(){5U(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1X.2s("fr W 2Y");B(1s o.3b==="3h"&&o.3b.82(/^cA?:\\/\\//)){u o.cD(o.3b,o.5C)}S B(1s o.3b==="3h"){u fs.fp(o.3b,o.5C)}S{u o.5C(L,o.3b)}};D.N.cD=A(6Z,1N){M 9g;1X.2s("fm 1d 4I "+6Z);9g=6S.49(6Z,A(4j){M 83;83=\'\';4j.fl(\'d7\');4j.9e(\'2a\',A(a7){u 83+=a7});u 4j.9e(\'1M\',A(){u 1N(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1N)};D.N.5C=A(6R,2a){B(6R){2K 6R;}o.1d=1y 4w();o.1d.1E=2a;1X.2s("4w au. ay = "+(o.46())+", aL = "+(o.3T()));o.I=1y 44(o.46(),o.3T());u o.5x()};D.N.cl=A(){o.1d=o.3b;o.I=2i.3H(\'I\');o.1j=o.I.3k(\'2d\');o.3i=2i.3H(\'I\');o.6x=o.3i.3k(\'2d\');1u.5l(o.1d,o.I,{7g:[\'1E\']});1u.5l(o.1d,o.3i,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.3i,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=o.3b;o.1j=o.I.3k(\'2d\');o.3i=2i.3H(\'I\');o.6x=o.3i.3k(\'2d\');B(o.7L!=L){o.1d=2i.3H(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5x()}};D.N.9b=A(){B(o.99()){1X.2s(o.1d.1E,"->",o.89());o.bi=2W;o.1d.1E=o.89()}B(2U.bj(o.1d)){o.1d.1E=2U.56(o.1d.1E);u 1X.2s("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9a=A(){B(o.bJ()){u o.6z()}S{u o.1d.bP=o.6z}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2W};D.N.46=A(){u o.1d.F||o.1d.94};D.N.3T=A(){u o.1d.J||o.1d.fg};D.N.6z=A(){1X.2s("4w au. ay = "+(o.46())+", aL = "+(o.3T()));B(o.bi){o.I.F=o.46()/o.6d();o.I.J=o.3T()/o.6d();o.3i.F=o.46()/o.6d();o.3i.J=o.3T()/o.6d()}S{o.I.F=o.46();o.I.J=o.3T();o.3i.F=o.46();o.3i.J=o.3T()}u o.5x()};D.N.5x=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3k(\'2d\')}o.8b=o.6g=o.F=o.I.F;o.8c=o.5u=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.5A(o.1d,0,0,o.46(),o.3T(),0,0,o.6g,o.5u);o.6x.5A(o.1d,0,0,o.46(),o.3T(),0,0,o.6g,o.5u)}o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a;B(D.5N){o.7G=1u.68(o.T.P);o.4Q=1u.68(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4Q[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Y){31.cs(o.2V,o)}o.1N.1x(o,o);u o.1N=A(){}};D.N.cy=A(){o.2S=o.1j.4K(0,0,o.I.F,o.I.J);u o.T=o.2S.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5N){2K"8Y 8d";}o.4Q=1u.68(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4Q[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Y||o.I.5E(\'2a-3M-2V\')){u}u o.I.bh(\'2a-3M-2V\',o.2V)};D.N.cH=A(){u o.I.5E(\'2a-3M-cK-8d\')!==L};D.N.cf=A(){M 4r;B(D.2Y||!o.99()){u}4r=o.6d();B(4r!==1){1X.2s("fe 4r = "+4r);o.d6=2W;o.6g=o.I.F;o.5u=o.I.J;o.I.F=o.6g*4r;o.I.J=o.5u*4r;o.I.cN.F=""+o.6g+"cQ";o.I.cN.J=""+o.5u+"cQ";o.1j.fd(4r,4r);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6d=A(){M 8W,4o;4o=4y.4o||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4o/8W};D.N.a8=A(){u(4y.4o!=L)&&4y.4o!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5E(\'2a-3M-cK\')};D.N.6T=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3k(\'2d\');o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a;B(D.5N){o.4Q=1u.68(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4Q[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1N){B(1N==L){1N=A(){}}2J.5m(o,"ai");u o.4J.3Z((A(1r){u A(){1r.3i.F=1r.I.F;1r.3i.J=1r.I.J;1r.6x.8S(1r.2S,0,0);u 1N.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2W}B(!D.5N){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.6x.8S(o.2S,0,0)}};D.N.f6=A(){M I,2E,i,2S,1w,T,H,1n,K;I=2i.3H(\'I\');1u.5l(o.I,I);I.F=o.8b;I.J=o.8c;2E=I.3k(\'2d\');2S=2E.4K(0,0,I.F,I.J);T=2S.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2E.8S(2S,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6T(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,3P,4e;B(!D.5N){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4Q;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2O+=Q[i]}}o.4J.4h({1v:R.3d.8I,1p:1p,Q:Q,2O:2O,3j:3j});u o};D.N.5h=A(4i,1l){o.4J.4h({1v:R.3d.2r,4i:4i,1l:1l});u o};D.N.32=A(1N){M 2g;2g=1y 3a(o);o.9s.2j(2g);o.4J.4h({1v:R.3d.8H});1N.1x(2g);o.4J.4h({1v:R.3d.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6W);o.6G.2j(o.T);o.6W=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6G.6A();u o.6W=o.9t.6A()};D.N.c1=A(){u o.6W.c2()};u D})(3K);7O.D=D;D.4E=(A(){A 4E(c){o.c=c}4E.N.f5=A(){M i,3r,6V,H,1f,1H,K;3r={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3r.r[i]=0;3r.g[i]=0;3r.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6u.P;H<1n;H++){1P=6u[H];1o.2j(cj=1y 59(1P,A(){o.ck();u o.3Z()}))}u 1o};B(D.ce){(A(){B(2i.9p==="7J"){u D.9m()}S{u 2i.aX("f3",D.9m,2k)}})()}59=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 59(4k,ct){o.cw=4k.5E(\'2a-3M\');o.3M=D(4k,ct.9y(o))}59.N.ck=A(){M 1l,e,1C,57,8K,8L,m,r,6L,H,1n,K,1o;o.4k=o.3M.I;r=1y cJ(8v,\'g\');6L=o.cw.82(r);B(!(6L.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6L.P;H<1n;H++){8K=6L[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{57=8L();1o.2j(57.1x(o.3M))}8N(6m){e=6m;1o.2j(1X.2s(e))}}u 1o};59.N.3Z=A(){M 4k;4k=o.4k;u o.3M.ac(A(){u 4k.9c.aY(o.cO(),4k)})};u 59})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,57){u o.8P[1p]=57};2m.3Z=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.52=A(72,73,6p,6q){u O.8l(O.1T(6p-72,2)+O.1T(6q-73,2))};2b.ab=A(1S,1e,6w){M 4g;B(6w==L){6w=2k}4g=1S+(O.f1()*(1e-1S));B(6w){u 4g.f0(6w)}S{u O.5Q(4g)}};2b.6E=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4D,4C,1M,5g,5k){M 29,6o,2z,26,i,j,5q,1L,3F,t,H,1f,K;B(5g==L){5g=0}B(5k==L){5k=E}B(1J[0]aT 5R){2z=1J;5g=4D;5k=4C}S{2z=[1J,4D,4C,1M]}B(2z.P<2){2K"5y 8e 8X 1k 3I 29";}29={};5q=A(a,b,t){u a*(1-t)+b*t};6o=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1L=[];W(j=1f=0,K=3F.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1L.2j([5q(3F[j][0],3F[j+1][0],t),5q(3F[j][1],3F[j+1][1],t)])}3F=1L}29[O.5Q(3F[0][0])]=O.5Q(6o(3F[0][1],5g,5k))}26=2z[2z.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2z,5g,5k){M 4h,6o,98,26,88,86,85,84,i,j,5q,9f,9h,4F,p,5Y,5Z,4H,7Z,7Y,3y,7W,t,H,1f,K;B(2z.P<2){2K"5y 8e 8X 1k 3I bE";}3y={};5q=A(a,b,t){u a*(1-t)+b*t};4h=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4F=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);6o=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};98=0;W(i=H=0,K=2z.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5Y=2z[i];5Z=2z[i+1];4H=5Z[0]-5Y[0];7Z=1/4H;B(i===2z.P-2){7Z=1/(4H-1)}p=i>0?2z[i-1]:5Y;9f=4F(7W(5Z,p),[0.5,0.5]);p=i<2z.P-2?2z[i+2]:5Z;9h=4F(7W(p,5Y),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4h(4F(5Y,[88,88]),4F(9f,[86,86]),4F(5Z,[85,85]),4F(9h,[84,84]));3y[O.5Q(7Y[0])]=O.5Q(6o(7Y[1],5g,5k));98+=1}}26=2z[2z.P-1][0];3y=D.2b.91(3y,26);u 3y};2b.91=A(5d,26){M i,j,6b,3y,7V,H,1f;B(bk.eX(5d).P<26+1){3y={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(5d[i]!=L){3y[i]=5d[i]}S{6b=[i-1,3y[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(5d[j]!=L){7V=[j,5d[j]];5c}}3y[i]=6b[1]+((7V[1]-6b[1])/(7V[0]-6b[0]))*(i-6b[0])}}u 3y}u 5d};u 2b})();2b=D.2b;D.1W=(A(){A 1W(){}1W.7U=A(3L){M b,g,r;B(3L.eW(0)==="#"){3L=3L.51(1)}r=4f(3L.51(0,2),16);g=4f(3L.51(2,2),16);b=4f(3L.51(4,2),16);u{r:r,g:g,b:b}};1W.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="3Y"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5U(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1W.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5U(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3x)/1.3x,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3x)/1.3x,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3x)/1.3x,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1W.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3x*O.1T(r,0.9q))-0.3x}S{r*=12.92}B(g>0.9n){g=(1.3x*O.1T(g,0.9q))-0.3x}S{g*=12.92}B(b>0.9n){b=(1.3x*O.1T(b,0.9q))-0.3x}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1W.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="3Y"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5V}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5V}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5V}l=aQ*y-16;a=aR*(x-y);b=5W*(y-z);u{l:l,a:a,b:b}};1W.eD=A(l,a,b){M x,y,z;B(1s l==="3Y"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5W);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5V)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5V)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5V)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1W.eC=A(r,g,b){M 9V;B(1s r==="3Y"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1W.eB=A(l,a,b){};u 1W})();1W=D.1W;D.2J=(A(){A 2J(){}2J.5b={};2J.b1=["b6","bb","ai","bc","bd","63"];2J.5m=A(34,1v,2a){M 6F,H,1n,K,1o;B(2a==L){2a=L}B(o.5b[1v]&&o.5b[1v].P){K=o.5b[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6F=K[H];B(6F.34===L||34.2V===6F.34.2V){1o.2j(6F.fn.1x(34,2a))}S{1o.2j(bg 0)}}u 1o}};2J.eA=A(34,1v,fn){M 9W,9X;B(1s 34==="3h"){9X=34;9W=1v;34=L;1v=9X;fn=9W}B(6J.1x(o.b1,1v)<0){u 2k}B(!o.5b[1v]){o.5b[1v]=[]}o.5b[1v].2j({34:34,fn:fn});u 2W};u 2J})();2J=D.2J;D.R=(A(){A R(){}R.3d={8J:1,8I:2,8H:3,8G:4,9Y:5,2r:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2U=(A(){A 2U(){}2U.bm=/(?:(?:6S|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2U.bj=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2U.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6I())===\'c3\'||K===\'bp-ez\')};2U.7h=A(6Z){M 7d;7d=6Z.82(o.bm);B(7d){u 7d[1]!==2i.ey}S{u 2k}};2U.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1X.a2("ex 3I ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7h(D.7F)){1X.a2("es bp a bH bK W er eq.");u}u o.56(1E)}}};2U.56=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2U.eo=A(5j){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5j=5j.6I();B(8z[5j]!=L){5j=8z[5j]}u"ee/ed."+5j};u 2U})();D.N.c6=A(){B(1s 2h!=="3Q"&&2h!==L){u o.c7.4n(o,1k)}S{u o.c8.4n(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6I();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2i.e9.e8=1d};D.N.c7=A(6a,7b,1N){M e,a1;B(7b==L){7b=2W}B(1N==L){1N=L}8M{a1=fs.e7(6a);B(a1.e6()&&!7b){u 2k}}8N(6m){e=6m;1X.2s("e5 e4 6a "+6a)}u fs.e3(6a,o.I.e2(),A(6R){1X.2s("e1 e0 3I "+6a);B(1N){u 1N.1x(o,6R)}})};D.N.cO=A(1v){M 1P;1P=1y 4w();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4y.4o){1P.F/=4y.4o;1P.J/=4y.4o}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6I();u o.3i.dZ("1d/"+1v)};2U=D.2U;D.3a=(A(){A 3a(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2p:1.0};o.dY=1u.9L.49();o.I=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3k(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2S=o.1j.4K(0,0,o.I.F,o.I.J);o.T=o.2S.2a}3a.N.32=A(cb){u o.c.32.1x(o.c,cb)};3a.N.3z=A(cx){o.1G.a0=cx;u o};3a.N.2p=A(2p){o.1G.2p=2p/1i;u o};3a.N.4a=A(){M i,2Z,H,K;2Z=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3O<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3O)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5T a 5S 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3O>o.c.T.P||3O<0){u}o.c.T[3O]=C.r;o.c.T[3O+1]=C.g;o.c.T[3O+2]=C.b;o.c.T[3O+3]=C.a;u 2W};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5T a 5S 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5T a 5S 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5J=A(){u o.dR()};1Z.N.dQ=A(7B){M 3L;B(7B==L){7B=2k}3L=\'#\'+o.r.5J(16)+o.g.5J(16)+o.b.5J(16);B(7B){u 3L+o.a.5J(16)}S{u 3L}};u 1Z})();1Z=D.1Z;D.2r=(A(){A 2r(){}2r.9G={};2r.V=A(1p,4i){u o.9G[1p]=4i};2r.3Z=A(1j,1p,1l){u o.9G[1p].4n(1j,1l)};u 2r})();2r=D.2r;D.1Q=(A(){1Q.4V=D.2Y?6N(\'dP\').dO().P:4;A 1Q(c){o.c=c;o.4m=8Q(o.4m,o);o.6B=[];o.54=L}1Q.N.4h=A(9x){B(9x==L){u}u o.6B.2j(9x)};1Q.N.4m=A(){M 2g;B(o.6B.P===0){2J.5m(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6B.d9();5U(o.2c.1v){28 R.3d.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4m();28 R.3d.8G:o.c.c1();o.c.bZ();u o.4m();28 R.3d.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3d.2r:u o.db();dN:u o.a6()}};1Q.N.3Z=A(1N){o.9v=1N;o.54=1u.68(o.c.T.P);u o.4m()};1Q.N.9o=A(fn){M 71,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2L((n/4)/1Q.4V);71=8B*4;9l=71+((n/4)%1Q.4V)*4;1o=[];W(i=H=0,K=1Q.4V;0<=K?HK;i=0<=K?++H:--H){1J=i*71;1M=1J+(i===1Q.4V-1?9l:71);B(D.2Y){f=6y((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.63(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1Q.N.a6=A(){2J.5m(o.c,"b6",o.2c);B(o.2c.1v===R.3d.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1Q.N.db=A(){1X.2s("dL 4i "+o.2c.4i);2r.3Z(o.c,o.2c.4i,o.2c.1l);1X.2s("2r "+o.2c.4i+" 9k!");u o.4m()};1Q.N.af=A(2Q,1J,1M){M i,1w,H;1X.2s("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2J.5m(o.c,"bd",{am:2Q,an:1Q.4V,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3E(1w.r);o.c.T[i+1]=1u.3E(1w.g);o.c.T[i+2]=1u.3E(1w.b);o.c.T[i+3]=1u.3E(1w.a)}B(D.2Y){u 6y["aq"](2Q)}S{u o.63(2Q)}};1Q.N.ag=A(2Q,1J,1M){M Q,6D,3j,2T,5p,2O,i,j,k,2F,n,1p,p,1w,4j,H,1f,1H;1p=o.2c.1p;3j=o.2c.3j;2O=o.2c.2O;n=o.c.T.P;Q=o.2c.Q;6D=O.8l(Q.P);2F=[];1X.2s("dG 2F - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6D-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6D-1)/2)));2T=(6D-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;5p=0;W(j=1f=-2T;-2T<=2T?1f<=2T:1f>=2T;j=-2T<=2T?++1f:--1f){W(k=1H=2T;2T<=-2T?1H<=-2T:1H>=-2T;k=2T<=-2T?++1H:--1H){p=1w.cP(j,k);2F[5p*3]=p.r;2F[5p*3+1]=p.g;2F[5p*3+2]=p.b;5p++}}4j=o.3J(Q,2F,2O,3j);o.54[i]=1u.3E(4j.r);o.54[i+1]=1u.3E(4j.g);o.54[i+2]=1u.3E(4j.b);o.54[i+3]=o.c.T[i+3]}B(D.2Y){u 6y["aq"](2Q)}S{u o.63(2Q)}};1Q.N.63=A(2Q){M i,H,K;B(2Q>=0){1X.2s("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2J.5m(o.c,"63",{am:2Q,dF:o.7P,an:1Q.4V});B(o.7P===1Q.4V){B(o.2c.1v===R.3d.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.54[i]}}B(2Q>=0){1X.2s("R "+o.2c.1p+" 9k!")}2J.5m(o.c,"bb",o.2c);u o.4m()}};1Q.N.3J=A(Q,2F,2O,3j){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2F[i*3];2f.g+=Q[i]*2F[i*3+1];2f.b+=Q[i]*2F[i*3+2]}2f.r=(2f.r/2O)+3j;2f.g=(2f.g/2O)+3j;2f.b=(2f.b/2O)+3j;u 2f};1Q.N.da=A(2g,1E){M 1P,56;1P=1y 4w();1P.bP=(A(1r){u A(){2g.1j.5A(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2S=2g.1j.4K(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2S.2a;1r.c.T=2g.T;u 1r.4m()}})(o);56=2U.bu(1E);u 1P.1E=56!=L?56:1E};u 1Q})();1Q=D.1Q;D.31=(A(){A 31(){}31.6e={};31.bR=A(4L){u o.6e[4L]!=L};31.49=A(4L){u o.6e[4L]};31.cs=A(1p,2A){u o.6e[1p]=2A};31.3Z=A(4L,1N){7I((A(1r){u A(){u 1N.1x(1r.49(4L),1r.49(4L))}})(o),0);u o.49(4L)};31.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.6e[1p]}S{u o.6e={}}};u 31})();31=D.31;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("65",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4R",A(){M 3e;B(1k.P===1){3e=1W.7U(1k[0])}S{3e={r:1k[0],g:1k[1],b:1k[2]}}u o.2o("4R",A(C){C.r=3e.r;C.g=3e.g;C.b=3e.b;C.a=E;u C})});R.V("3A",A(Q){Q=O.2L(E*(Q/1i));u o.2o("3A",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3G",A(Q){Q*=-0.dy;u o.2o("3G",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("43",A(Q){Q*=-1;u o.2o("43",A(C){M 1q,4B,1e;1e=O.1e(C.r,C.g,C.b);4B=(C.r+C.g+C.b)/3;1q=((O.4A(1e-4B)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4z",A(Q){u o.2o("4z",A(C){M 4B;4B=2b.6E(C);C.r=4B;C.g=4B;C.b=4B;u C})});R.V("2u",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2o("2u",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2o("93",A(C){M b,g,h,5f,r,K;5f=1W.cC(C.r,C.g,C.b);h=5f.h*1i;h+=O.4A(Q);h=h%1i;h/=1i;5f.h=h;K=1W.cE(5f.h,5f.s,5f.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4p",A(){M 5z,3f;B(1k.P===2){3f=1W.7U(1k[0]);5z=1k[1]}S B(1k.P===4){3f={r:1k[0],g:1k[1],b:1k[2]};5z=1k[3]}u o.2o("4p",A(C){C.r-=(C.r-3f.r)*(5z/1i);C.g-=(C.g-3f.g)*(5z/1i);C.b-=(C.b-3f.b)*(5z/1i);u C})});R.V("b0",A(){u o.2o("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4s",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2o("4s",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2t",A(Q){u o.2o("2t",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4A(Q)*2.55;u o.2o("8i",A(C){M 4g;4g=2b.ab(Q*-1,Q);C.r+=4g;C.g+=4g;C.b+=4g;u C})});R.V("8j",A(Q){Q=O.4A(Q)*2.55;u o.2o("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3g}S{C.r-=C.r*O.4A(1G.3g)}}B(1G.4X!=L){B(1G.4X>0){C.g+=(E-C.g)*1G.4X}S{C.g-=C.g*O.4A(1G.4X)}}B(1G.3V!=L){B(1G.3V>0){C.b+=(E-C.b)*1G.3V}S{C.b-=C.b*O.4A(1G.3V)}}u C})});R.V("2e",A(){M 6O,29,48,3N,1M,i,61,1J,H,1f,K,3P;48=1k[0],3N=2<=1k.P?5H.1x(1k,1):[];61=3N[3N.P-1];B(1s 61==="A"){6O=61;3N.6A()}S B(1s 61==="3h"){6O=2b[61];3N.6A()}S{6O=2b.29}B(1s 48==="3h"){48=48.do("")}B(48[0]==="v"){48=[\'r\',\'g\',\'b\']}B(3N.P<2){2K"5y 8e 8X 1k 3I 2e 1C";}29=6O(3N,0,E);1J=3N[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3N[3N.P-1];B(1M[0]=E;i=3P<=E?++1f:--1f){29[i]=1M[1]}}u o.2o("2e",A(C){M 1H,4e;W(i=1H=0,4e=48.P;0<=4e?1H<4e:1H>4e;i=0<=4e?++1H:--1H){C[48[i]]=29[C[48[i]]]}u C})});R.V("39",A(Q){M 4D,4C,p;p=O.4A(Q)/1i;4D=[0,E*p];4C=[E-(E*p),E];B(Q<0){4D=4D.br();4C=4C.br()}u o.2e(\'3f\',[0,0],4D,4C,[E,E])});D.2r.V("8F",A(F,J,x,y){M I,2E;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="3Q"&&2h!==L){I=1y 44(F,J)}S{I=2i.3H(\'I\');1u.5l(o.I,I);I.F=F;I.J=J}2E=I.3k(\'2d\');2E.5A(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2W;u o.6T(I)});D.2r.V("8x",A(2D){M I,2E;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1X.9d("5y cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="3Q"&&2h!==L){I=1y 44(2D.F,2D.J)}S{I=2i.3H(\'I\');1u.5l(o.I,I);I.F=2D.F;I.J=2D.J}2E=I.3k(\'2d\');2E.5A(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2W;u o.6T(I)});D.R.V("8F",A(){u o.5h("8F",5R.N.5o.1x(1k,0))});D.R.V("8x",A(){u o.5h("8x",5R.N.5o.1x(1k,0))});D.R.V("dm",A(){u o.3J("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3J("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3J("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3q){M 2F;B(3q===0||3q===4d){2F=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3q>0&&3q<90)||(3q>4d&&3q<8w)){2F=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3q===90||3q===8w){2F=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2F=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3J("de 8A",2F)});D.R.V("6K",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3J("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3A:A(C,1q,G){C.r=C.r-(C.r*1q*G.3c);C.g=C.g-(C.g*1q*G.3c);C.b=C.b-(C.b*1q*G.3c);u C},2t:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3c,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3c,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3c,1))*E;u C},4p:A(C,1q,G){C.r-=(C.r-G.3e.r)*1q;C.g-=(C.g-G.3e.g)*1q;C.b-=(C.b-G.3e.b)*1q;u C}};R.V("1V",A(1t,3c){M 29,3B,1M,1J;B(3c==L){3c=60}B(1s 1t==="3h"&&1t.51(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4f(1t.51(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4f(1t.51(0,1t.P-1),10)/1i)}}3c/=1i;3B=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3B[0],2)+O.1T(3B[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2o("1V",A(C){M 8p,2I,U;U=C.9M();8p=2b.52(U.x,U.y,3B[0],3B[1]);B(8p>1M){2I=O.1e(1,(29[O.5Q(((8p-1M)/1t)*1i)]/10)*3c);C.r=O.1T(C.r/E,2I)*E;C.g=O.1T(C.g/E,2I)*E;C.b=O.1T(C.b/E,2I)*E}u C})});R.V("bY",A(G){M 4u,6i,8k,1t,H,1n,K;4u={3c:50,2H:0,8U:\'3A\',3e:{r:0,g:0,b:0}};G=1u.79(4u,G);B(!G.1t){u o}S B(1s G.1t==="3h"){8k=4f(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="3Y"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){6i=K[H];B(1s G.1t[6i]==="3h"){G.1t[6i]=o.1c[6i]*(4f(G.1t[6i],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2H==="3h"){G.2H=(G.1t.F/2)*(4f(G.2H,10)/1i)}G.3c/=1i;G.1t.F=O.2L(G.1t.F);G.1t.J=O.2L(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4p"&&1s G.3e==="3h"){G.3e=1W.7U(G.3e)}G.1Y={5e:(o.1c.F-G.1t.F)/2,64:o.1c.F-G.1Y.5e,53:(o.1c.J-G.1t.J)/2,5s:o.1c.J-G.1Y.53};G.1z=[{x:G.1Y.5e+G.2H,y:G.1Y.5s-G.2H},{x:G.1Y.64-G.2H,y:G.1Y.5s-G.2H},{x:G.1Y.64-G.2H,y:G.1Y.53+G.2H},{x:G.1Y.5e+G.2H,y:G.1Y.53+G.2H}];G.4c=2b.52(0,0,G.1z[3].x,G.1z[3].y)-G.2H;u o.2o("bY",A(C){M 1q,U,4b;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1Y.53&&U.yG.1Y.5e&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1Y.5s){1q=(U.y-G.1Y.5s)/G.4c}S B(U.y>G.1z[2].y&&U.yG.1Y.64){1q=(U.x-G.1Y.64)/G.4c}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4b=D.52(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4b-G.2H)/G.4c}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4b=D.52(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4b-G.2H)/G.4c}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4b=D.52(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4b-G.2H)/G.4c}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4b=D.52(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4b-G.2H)/G.4c}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4M,96,97,5w,62;5w=[2P,2P,37,2P,3u,37,3D,2P,42,3u,3v,37,3S,3D,3R,2P,4U,42,4W,3u,4Y,3v,4T,37,4G,3S,4l,3D,38,3R,4v,2P,6n,4U,47,42,66,4W,6f,3u,38,4Y,6h,3v,4O,4T,4P,37,5r,4G,5v,3S,5G,4l,5I,3D,5K,38,5L,3R,5X,4v,3X,2P,7D,6n,7C,4U,7A,47,7x,42,7w,66,7v,4W,4N,6f,7u,3u,69,38,7t,4Y,7s,6h,4x,3v,3X,4O,7r,4T,7q,4P,7o,37,7n,5r,47,4G,7m,5v,7k,3S,7j,5G,7i,4l,4N,5I,6c,3D,7f,5K,7e,38,7c,5L,7a,3R,6j,5X,4x,4v,78,3X,76,2P,bU,7D,bN,6n,4P,7C,bL,4U,bG,7A,bF,47,bD,7x,bC,42,bB,7w,bA,66,bz,7v,bx,4W,bw,4N,74,6f,6c,7u,8u,3u,ba,69,b9,38,b8,7t,b7,4Y,8g,7s,6j,6h,b5,4x,b4,3v,b3,3X,b2,4O,aO,7r,aK,4T,aJ,7q,aH,4P,aF,7o,aC,37,az,7n,ax,5r,aw,47,ap,4G,ao,7m,al,5v,ak,7k,ah,3S,ae,7j,dc,5G,d3,7i,d2,4l,cY,4N,74,5I,cX,6c,cW,3D,8u,7f,cV,5K,69,7e,cT,38,cG,7c,cB,5L,8T,7a,8g,3R,cv,6j,cu,5X,cq,4x,cp,4v,3v,78,co,3X,cn,76,4O];62=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6l,6k,2G,P,c0){M 41,1j,2w,72,6p,73,6q;41=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');41.F=F;41.J=J;72=6l+O.bW(2G)*P*0.5;73=6k+O.bV(2G)*P*0.5;6p=6l-O.bW(2G)*P*0.5;6q=6k-O.bV(2G)*P*0.5;1j=41.3k("2d");2w=1j.en(72,73,6p,6q);B(!c0){2w.5i(0,"77");2w.5i(1,"a4")}S{2w.5i(0,"77");2w.5i(0.5,"a4");2w.5i(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4K(0,0,F,J)};97=A(F,J,6l,6k,6Q,6P){M 41,1j,2w;41=1s 2h!=="3Q"&&2h!==L?1y 44():2i.3H(\'I\');41.F=F;41.J=J;1j=41.3k("2d");2w=1j.ev(6l,6k,6Q,6l,6k,6P);2w.5i(1,"77");2w.5i(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4K(0,0,F,J)};4M=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1L=L};D.2r.V("a3",A(by,1U,bq,7l){M 2l,2B,1O,5M,6Y,2I,2n,2x,1K,J,3U,i,6U,2C,3n,7M,3W,6M,2N,p,1D,1A,Y,1B,2q,2y,1R,9i,1a,33,2R,1b,4t,1m,1I,2M,5n,2X,8h,8f,5D,F,3t,x,y,1h,4S,4Z,H,1f,1H,3m,3p,3o,3s,3w,3C,5F;F=o.1c.F;J=o.1c.J;3n=o.T;9i=by.2a;8f=F*J;5D=8f<<2;Y=[];W(i=H=0;0<=5D?H<5D:H>5D;i=0<=5D?++H:--H){Y[i]=3n[i]}6Y=0;5n=7l;7l-=1;8Z(5n-->=0){3W=(1U+0.5)|0;B(3W===0){67}B(3W>6t){3W=6t}2I=3W+3W+1;8h=F<<2;3t=F-1;3U=J-1;1a=3W+1;2X=1a*(1a+1)/2;2M=1y 4M();4t=bg 0;1b=2M;W(i=1f=1;1<=2I?1f<2I:1f>2I;i=1<=2I?++1f:--1f){1b=1b.1L=1y 4M();B(i===1a){4t=1b}}1b.1L=2M;1m=L;1I=L;4Z=1h=0;2N=5w[3W];2R=62[3W];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1R=1K=1O=0;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3m=0;0<=1a?3m<1a:3m>1a;i=0<=1a?++3m:--3m){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}W(i=3p=1;1<=1a?3p<1a:3p>1a;i=1<=1a?++3p:--3p){p=1h+((3tF;x=0<=F?++3o:--3o){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1K*2N)>>2R;Y[1h+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(4Z+((p=x+1a)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2q;1K+=2n;1O+=2l;1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=4}4Z+=F}W(x=3s=0;0<=F?3sF;x=0<=F?++3s:--3s){2n=2l=2q=1K=1O=1R=0;1h=x<<2;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3w=0;0<=1a?3w<1a:3w>1a;i=0<=1a?++3w:--3w){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}4S=F;W(i=3C=1;1<=1a?3C<1a:3C>1a;i=1<=1a?++3C:--3C){1h=(4S+x)<<2;1R+=(1b.r=(1B=Y[1h]))*(33=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*33;1O+=(1b.b=(1D=Y[1h+2]))*33;2q+=1B;2n+=1A;2l+=1D;1b=1b.1L;B(i<3U){4S+=F}}1h=x;1m=2M;1I=4t;W(y=5F=0;0<=J?5FJ;y=0<=J?++5F:--5F){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1K*2N)>>2R;Y[p+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=F}}1U*=bq;i=8f;8Z(--i>-1){2C=i<<2;6M=(9i[2C+2]&fo)/E.0*7l;7M=6M|0;B(7M===6Y){5M=6t.0*(6M-(6M|0));6U=6t-5M;3n[2C]=(3n[2C]*6U+Y[2C]*5M)>>8;3n[2C+1]=(3n[2C+1]*6U+Y[2C+1]*5M)>>8;3n[2C+2]=(3n[2C+2]*6U+Y[2C+2]*5M)>>8}S B(7M===6Y+1){3n[2C]=Y[2C];3n[2C+1]=Y[2C+1];3n[2C+2]=Y[2C+2]}}6Y++}u o});D.R.V("fq",A(G){M 4u,2w;4u={3B:{x:o.1c.F/2,y:o.1c.J/2},2G:45,cd:5W,7R:3,7Q:1.5,5n:3};G=1u.79(4u,G);G.2G*=O.aZ/4d;2w=96(o.1c.F,o.1c.J,G.3B.x,G.3B.y,G.2G,G.cd,2W);u o.5h("a3",[2w,G.7R,G.7Q,G.5n])});u D.R.V("fx",A(G){M 4u,2w,6Q,6P;4u={1t:50,3B:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5n:3,1U:L};G=1u.79(4u,G);B(!G.1U){G.1U=o.1c.F2I;i=1<=2I?++H:--H){1b=1b.1L=1y 4M();B(i===1a){4t=1b}}1b.1L=2M;1m=L;1I=L;4Z=1h=0;2N=5w[1U];2R=62[1U];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1R=1K=1O=0;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3tF;x=0<=F?++3p:--3p){Y[1h]=(1R*2N)>>2R;Y[1h+1]=(1K*2N)>>2R;Y[1h+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(4Z+((p=x+1U+1)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1R+=2q;1K+=2n;1O+=2l;1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=4}4Z+=F}W(x=3o=0;0<=F?3oF;x=0<=F?++3o:--3o){2n=2l=2q=1K=1O=1R=0;1h=x<<2;2y=1a*(1B=Y[1h]);2x=1a*(1A=Y[1h+1]);2B=1a*(1D=Y[1h+2]);1R+=2X*1B;1K+=2X*1A;1O+=2X*1D;1b=2M;W(i=3s=0;0<=1a?3s<1a:3s>1a;i=0<=1a?++3s:--3s){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1L}4S=F;W(i=3w=1;1<=1U?3w<=1U:3w>=1U;i=1<=1U?++3w:--3w){1h=(4S+x)<<2;1R+=(1b.r=(1B=Y[1h]))*(33=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*33;1O+=(1b.b=(1D=Y[1h+2]))*33;2q+=1B;2n+=1A;2l+=1D;1b=1b.1L;B(i<3U){4S+=F}}1h=x;1m=2M;1I=4t;W(y=3C=0;0<=J?3CJ;y=0<=J?++3C:--3C){p=1h<<2;Y[p]=(1R*2N)>>2R;Y[p+1]=(1K*2N)>>2R;Y[p+2]=(1O*2N)>>2R;1R-=2y;1K-=2x;1O-=2B;2y-=1m.r;2x-=1m.g;2B-=1m.b;p=(x+(((p=y+1a)<3U?p:3U)*F))<<2;1R+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1L;2y+=(1B=1I.r);2x+=(1A=1I.g);2B+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1L;1h+=F}}u o});u D.R.V("5t",A(1U){u o.5h("5t",[1U])})})();D.R.V("aD",A(Q){u o.2o("aD",A(C){M 6E;6E=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6E35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4K,2m,2b,D,5c,3Q,1X,2L,6x,R,2V,4J,3b,1Y,3H,1Z,2t,1R,7O,32,1u,fs,6N,81,5d,8V,6F=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.52=A(4D,3G,G){M 6J,H,1n,K,44,1o;B(G==L){G={}}K=4D.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6J=K[H];B((G.7g!=L)&&(44=6J.9Q,6F.1x(G.7g,44)>=0)){5G}1o.2j(3G.bh(6J.9Q,6J.fP))}u 1o};1u.6b=A(P){B(P==L){P=0}B(D.2Z||(4Q.ca!=L)){u 1y ca(P)}u 1y 5u(P)};u 1u})();B(1s 2h!=="41"&&2h!==L){7O=2h;3Q=6u(\'I\');4J=3Q.4J;6x=6u(\'fO\');fs=6u(\'fs\');6N=6u(\'6N\')}S{7O=4Q}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5Q=2J;D.9C="c3";D.7F="";D.c5="fH";D.2Z=1s 2h!=="41"&&2h!==L;D.ce=!D.2Z;D.5M=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Z){u 2J}B(1s I==="3j"){I=$(I)}B(!((I!=L)&&(I.5F!=L))){u L}u I.5F(\'2a-3K-2W\')};A D(){o.5D=8Q(o.5D,o);M 1l,1Q,2W;B(1k.P===0){2K"5z 1k";}B(o aT D){o.5y=o.5y.9y(o);o.6R=o.6R.9y(o);1l=1k[0];B(!D.2Z){2W=4q(D.9z(1l[0]),10);1Q=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2W)&&32.bR(2W)){u 32.3T(2W,1Q)}}o.2W=1u.9L.4o();o.7G=o.4P=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6U=[];o.9t=[];o.9s=[];o.6w=L;o.d6=2k;o.fz=1y 4K(o);o.4E=1y 1R(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Z){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2o.9p==="7J"){1Y.2u("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2o.9p==="7J"){1Y.2u("aU aW");u cb.1x(1r)}}})(o);u 2o.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2r,2f,K,1o;B(1l.P===0){2K"5z 1k be";}o.3c=L;o.7K=L;o.7L=L;o.1Q=A(){};o.bo(1l[0]);B(1l.P===1){u}5B(1s 1l[1]){28"3j":o.7L=1l[1];56;28"A":o.1Q=1l[1]}B(1l.P===2){u}o.1Q=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2r 57 K){B(!72.1x(K,2r))5G;2f=K[2r];1o.2j(o.1G[2r]=2f)}u 1o}};D.N.bo=A(2B){B(D.2Z){o.3c=2B;o.7K=\'bS\';u}B(1s 2B==="3S"){o.3c=2B}S{o.3c=$(2B)}B(o.3c==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3c.9Q.6r()};D.N.as=A(){5B(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1Y.2u("fr W 2Z");B(1s o.3c==="3j"&&o.3c.82(/^cA?:\\/\\//)){u o.cD(o.3c,o.5D)}S B(1s o.3c==="3j"){u fs.fp(o.3c,o.5D)}S{u o.5D(L,o.3c)}};D.N.cD=A(6H,1Q){M 9g;1Y.2u("fm 1d 4D "+6H);9g=6N.4o(6H,A(4e){M 83;83=\'\';4e.fl(\'d7\');4e.9e(\'2a\',A(a7){u 83+=a7});u 4e.9e(\'1M\',A(){u 1Q(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1Q)};D.N.5D=A(6v,2a){B(6v){2K 6v;}o.1d=1y 4J();o.1d.1E=2a;1Y.2u("4J au. ay = "+(o.3I())+", aL = "+(o.3J()));o.I=1y 3Q(o.3I(),o.3J());o.2Y=1y 3Q(o.3I(),o.3J());u o.5y()};D.N.cl=A(){o.1d=o.3c;o.I=2o.3E(\'I\');o.1j=o.I.3d(\'2d\');o.2Y=2o.3E(\'I\');o.5g=o.2Y.3d(\'2d\');1u.52(o.1d,o.I,{7g:[\'1E\']});1u.52(o.1d,o.2Y,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.2Y,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=o.3c;o.1j=o.I.3d(\'2d\');o.2Y=2o.3E(\'I\');o.5g=o.2Y.3d(\'2d\');B(o.7L!=L){o.1d=2o.3E(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5y()}};D.N.9b=A(){B(o.99()){1Y.2u(o.1d.1E,"->",o.89());o.bi=2J;o.1d.1E=o.89()}B(2V.bj(o.1d)){o.1d.1E=2V.5l(o.1d.1E);u 1Y.2u("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9a=A(){B(o.bJ()){u o.6R()}S{u o.1d.bP=o.6R}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2J};D.N.3I=A(){u o.1d.F||o.1d.94};D.N.3J=A(){u o.1d.J||o.1d.fg};D.N.6R=A(){1Y.2u("4J au. ay = "+(o.3I())+", aL = "+(o.3J()));B(o.bi){o.I.F=o.3I()/o.6p();o.I.J=o.3J()/o.6p();o.2Y.F=o.3I()/o.6p();o.2Y.J=o.3J()/o.6p()}S{o.I.F=o.3I();o.I.J=o.3J();o.2Y.F=o.3I();o.2Y.J=o.3J()}u o.5y()};D.N.5y=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3d(\'2d\')}B(o.5g==L){o.5g=o.2Y.3d(\'2d\')}o.8b=o.6o=o.F=o.I.F;o.8c=o.6i=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.6f(o.1d,0,0,o.3I(),o.3J(),0,0,o.6o,o.6i);o.5g.6f(o.1d,0,0,o.3I(),o.3J(),0,0,o.6o,o.6i)}o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.7G=1u.6b(o.T.P);o.4P=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4P[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Z){32.cs(o.2W,o)}o.1Q.1x(o,o);u o.1Q=A(){}};D.N.cy=A(){o.2T=o.1j.4V(0,0,o.I.F,o.I.J);u o.T=o.2T.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5Q){2K"8Y 8d";}o.4P=1u.6b(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4P[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Z||o.I.5F(\'2a-3K-2W\')){u}u o.I.bh(\'2a-3K-2W\',o.2W)};D.N.cH=A(){u o.I.5F(\'2a-3K-cK-8d\')!==L};D.N.cf=A(){M 4p;B(D.2Z||!o.99()){u}4p=o.6p();B(4p!==1){1Y.2u("fe 4p = "+4p);o.d6=2J;o.6o=o.I.F;o.6i=o.I.J;o.I.F=o.6o*4p;o.I.J=o.6i*4p;o.I.cN.F=""+o.6o+"cQ";o.I.cN.J=""+o.6i+"cQ";o.1j.fd(4p,4p);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6p=A(){M 8W,4g;4g=4Q.4g||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4g/8W};D.N.a8=A(){u(4Q.4g!=L)&&4Q.4g!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5F(\'2a-3K-cK\')};D.N.6D=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3d(\'2d\');o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.4P=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4P[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1Q){B(1Q==L){1Q=A(){}}2L.5j(o,"ai");u o.4E.3T((A(1r){u A(){1r.2Y.F=1r.I.F;1r.2Y.J=1r.I.J;1r.5g.8S(1r.2T,0,0);u 1Q.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2J}B(!D.5Q){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.5g.8S(o.2T,0,0)}};D.N.f6=A(){M I,2I,i,2T,1w,T,H,1n,K;I=2o.3E(\'I\');1u.52(o.I,I);I.F=o.8b;I.J=o.8c;2I=I.3d(\'2d\');2T=2I.4V(0,0,I.F,I.J);T=2T.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2I.8S(2T,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6D(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,44,4m;B(!D.5Q){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4P;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2P+=Q[i]}}o.4E.4f({1v:R.3k.8I,1p:1p,Q:Q,2P:2P,3e:3e});u o};D.N.51=A(4b,1l){o.4E.4f({1v:R.3k.2t,4b:4b,1l:1l});u o};D.N.33=A(1Q){M 2g;2g=1y 3b(o);o.9s.2j(2g);o.4E.4f({1v:R.3k.8H});1Q.1x(2g);o.4E.4f({1v:R.3k.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6w);o.6U.2j(o.T);o.6w=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6U.6s();u o.6w=o.9t.6s()};D.N.c1=A(){u o.6w.c2()};u D})(3H);7O.D=D;D.4K=(A(){A 4K(c){o.c=c}4K.N.f5=A(){M i,3y,6L,H,1f,1H,K;3y={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3y.r[i]=0;3y.g[i]=0;3y.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6q.P;H<1n;H++){1P=6q[H];1o.2j(cj=1y 5c(1P,A(){o.ck();u o.3T()}))}u 1o};B(D.ce){(A(){B(2o.9p==="7J"){u D.9m()}S{u 2o.aX("f3",D.9m,2k)}})()}5c=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 5c(4u,ct){o.cw=4u.5F(\'2a-3K\');o.3K=D(4u,ct.9y(o))}5c.N.ck=A(){M 1l,e,1C,5b,8K,8L,m,r,6G,H,1n,K,1o;o.4u=o.3K.I;r=1y cJ(8v,\'g\');6G=o.cw.82(r);B(!(6G.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6G.P;H<1n;H++){8K=6G[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{5b=8L();1o.2j(5b.1x(o.3K))}8N(6h){e=6h;1o.2j(1Y.2u(e))}}u 1o};5c.N.3T=A(){M 4u;4u=o.4u;u o.3K.ac(A(){u 4u.9c.aY(o.cO(),4u)})};u 5c})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,5b){u o.8P[1p]=5b};2m.3T=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.5a=A(6V,6W,6Y,71){u O.8l(O.1T(6Y-6V,2)+O.1T(71-6W,2))};2b.ab=A(1S,1e,6t){M 4h;B(6t==L){6t=2k}4h=1S+(O.f1()*(1e-1S));B(6t){u 4h.f0(6t)}S{u O.5C(4h)}};2b.6y=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4L,4M,1M,54,53){M 29,5S,2A,26,i,j,5E,1N,3R,t,H,1f,K;B(54==L){54=0}B(53==L){53=E}B(1J[0]aT 5u){2A=1J;54=4L;53=4M}S{2A=[1J,4L,4M,1M]}B(2A.P<2){2K"5z 8e 8X 1k 3G 29";}29={};5E=A(a,b,t){u a*(1-t)+b*t};5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1N=[];W(j=1f=0,K=3R.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1N.2j([5E(3R[j][0],3R[j+1][0],t),5E(3R[j][1],3R[j+1][1],t)])}3R=1N}29[O.5C(3R[0][0])]=O.5C(5S(3R[0][1],54,53))}26=2A[2A.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2A,54,53){M 4f,5S,98,26,88,86,85,84,i,j,5E,9f,9h,4O,p,5r,5x,4H,7Z,7Y,3u,7W,t,H,1f,K;B(2A.P<2){2K"5z 8e 8X 1k 3G bE";}3u={};5E=A(a,b,t){u a*(1-t)+b*t};4f=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4O=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};98=0;W(i=H=0,K=2A.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5r=2A[i];5x=2A[i+1];4H=5x[0]-5r[0];7Z=1/4H;B(i===2A.P-2){7Z=1/(4H-1)}p=i>0?2A[i-1]:5r;9f=4O(7W(5x,p),[0.5,0.5]);p=i<2A.P-2?2A[i+2]:5x;9h=4O(7W(p,5r),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4f(4O(5r,[88,88]),4O(9f,[86,86]),4O(5x,[85,85]),4O(9h,[84,84]));3u[O.5C(7Y[0])]=O.5C(5S(7Y[1],54,53));98+=1}}26=2A[2A.P-1][0];3u=D.2b.91(3u,26);u 3u};2b.91=A(58,26){M i,j,5T,3u,7V,H,1f;B(bk.eX(58).P<26+1){3u={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(58[i]!=L){3u[i]=58[i]}S{5T=[i-1,3u[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(58[j]!=L){7V=[j,58[j]];56}}3u[i]=5T[1]+((7V[1]-5T[1])/(7V[0]-5T[0]))*(i-5T[0])}}u 3u}u 58};u 2b})();2b=D.2b;D.1X=(A(){A 1X(){}1X.7U=A(3N){M b,g,r;B(3N.eW(0)==="#"){3N=3N.59(1)}r=4q(3N.59(0,2),16);g=4q(3N.59(2,2),16);b=4q(3N.59(4,2),16);u{r:r,g:g,b:b}};1X.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5B(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1X.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5B(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3w)/1.3w,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3w)/1.3w,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3w)/1.3w,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1X.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3w*O.1T(r,0.9q))-0.3w}S{r*=12.92}B(g>0.9n){g=(1.3w*O.1T(g,0.9q))-0.3w}S{g*=12.92}B(b>0.9n){b=(1.3w*O.1T(b,0.9q))-0.3w}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1X.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="3S"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5X}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5X}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5X}l=aQ*y-16;a=aR*(x-y);b=5Y*(y-z);u{l:l,a:a,b:b}};1X.eD=A(l,a,b){M x,y,z;B(1s l==="3S"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5Y);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5X)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5X)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5X)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1X.eC=A(r,g,b){M 9V;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1X.eB=A(l,a,b){};u 1X})();1X=D.1X;D.2L=(A(){A 2L(){}2L.5k={};2L.b1=["b6","bb","ai","bc","bd","65"];2L.5j=A(38,1v,2a){M 6E,H,1n,K,1o;B(2a==L){2a=L}B(o.5k[1v]&&o.5k[1v].P){K=o.5k[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6E=K[H];B(6E.38===L||38.2W===6E.38.2W){1o.2j(6E.fn.1x(38,2a))}S{1o.2j(bg 0)}}u 1o}};2L.eA=A(38,1v,fn){M 9W,9X;B(1s 38==="3j"){9X=38;9W=1v;38=L;1v=9X;fn=9W}B(6F.1x(o.b1,1v)<0){u 2k}B(!o.5k[1v]){o.5k[1v]=[]}o.5k[1v].2j({38:38,fn:fn});u 2J};u 2L})();2L=D.2L;D.R=(A(){A R(){}R.3k={8J:1,8I:2,8H:3,8G:4,9Y:5,2t:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2V=(A(){A 2V(){}2V.bm=/(?:(?:6N|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2V.bj=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2V.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6r())===\'c3\'||K===\'bp-ez\')};2V.7h=A(6H){M 7d;7d=6H.82(o.bm);B(7d){u 7d[1]!==2o.ey}S{u 2k}};2V.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1Y.a2("ex 3G ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7h(D.7F)){1Y.a2("es bp a bH bK W er eq.");u}u o.5l(1E)}}};2V.5l=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2V.eo=A(5p){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5p=5p.6r();B(8z[5p]!=L){5p=8z[5p]}u"ee/ed."+5p};u 2V})();D.N.c6=A(){B(1s 2h!=="41"&&2h!==L){u o.c7.49(o,1k)}S{u o.c8.49(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6r();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2o.e9.e8=1d};D.N.c7=A(6d,7b,1Q){M e,a1;B(7b==L){7b=2J}B(1Q==L){1Q=L}8M{a1=fs.e7(6d);B(a1.e6()&&!7b){u 2k}}8N(6h){e=6h;1Y.2u("e5 e4 6d "+6d)}u fs.e3(6d,o.I.e2(),A(6v){1Y.2u("e1 e0 3G "+6d);B(1Q){u 1Q.1x(o,6v)}})};D.N.cO=A(1v){M 1P;1P=1y 4J();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4Q.4g){1P.F/=4Q.4g;1P.J/=4Q.4g}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6r();u o.2Y.dZ("1d/"+1v)};2V=D.2V;D.3b=(A(){A 3b(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2i:1.0};o.dY=1u.9L.4o();o.I=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3d(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a}3b.N.33=A(cb){u o.c.33.1x(o.c,cb)};3b.N.3o=A(cx){o.1G.a0=cx;u o};3b.N.2i=A(2i){o.1G.2i=2i/1i;u o};3b.N.4s=A(){M i,31,H,K;31=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3M<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3M)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5V a 5U 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3M>o.c.T.P||3M<0){u}o.c.T[3M]=C.r;o.c.T[3M+1]=C.g;o.c.T[3M+2]=C.b;o.c.T[3M+3]=C.a;u 2J};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5M=A(){u o.dR()};1Z.N.dQ=A(7B){M 3N;B(7B==L){7B=2k}3N=\'#\'+o.r.5M(16)+o.g.5M(16)+o.b.5M(16);B(7B){u 3N+o.a.5M(16)}S{u 3N}};u 1Z})();1Z=D.1Z;D.2t=(A(){A 2t(){}2t.9G={};2t.V=A(1p,4b){u o.9G[1p]=4b};2t.3T=A(1j,1p,1l){u o.9G[1p].49(1j,1l)};u 2t})();2t=D.2t;D.1R=(A(){1R.4G=D.2Z?6u(\'dP\').dO().P:4;A 1R(c){o.c=c;o.4i=8Q(o.4i,o);o.6A=[];o.5f=L}1R.N.4f=A(9x){B(9x==L){u}u o.6A.2j(9x)};1R.N.4i=A(){M 2g;B(o.6A.P===0){2L.5j(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6A.d9();5B(o.2c.1v){28 R.3k.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4i();28 R.3k.8G:o.c.c1();o.c.bZ();u o.4i();28 R.3k.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3k.2t:u o.db();dN:u o.a6()}};1R.N.3T=A(1Q){o.9v=1Q;o.5f=1u.6b(o.c.T.P);u o.4i()};1R.N.9o=A(fn){M 6Z,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2N((n/4)/1R.4G);6Z=8B*4;9l=6Z+((n/4)%1R.4G)*4;1o=[];W(i=H=0,K=1R.4G;0<=K?HK;i=0<=K?++H:--H){1J=i*6Z;1M=1J+(i===1R.4G-1?9l:6Z);B(D.2Z){f=6x((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.65(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1R.N.a6=A(){2L.5j(o.c,"b6",o.2c);B(o.2c.1v===R.3k.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1R.N.db=A(){1Y.2u("dL 4b "+o.2c.4b);2t.3T(o.c,o.2c.4b,o.2c.1l);1Y.2u("2t "+o.2c.4b+" 9k!");u o.4i()};1R.N.af=A(2Q,1J,1M){M i,1w,H;1Y.2u("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2L.5j(o.c,"bd",{am:2Q,an:1R.4G,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3O(1w.r);o.c.T[i+1]=1u.3O(1w.g);o.c.T[i+2]=1u.3O(1w.b);o.c.T[i+3]=1u.3O(1w.a)}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.ag=A(2Q,1J,1M){M Q,6B,3e,2X,6j,2P,i,j,k,2G,n,1p,p,1w,4e,H,1f,1H;1p=o.2c.1p;3e=o.2c.3e;2P=o.2c.2P;n=o.c.T.P;Q=o.2c.Q;6B=O.8l(Q.P);2G=[];1Y.2u("dG 2G - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6B-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6B-1)/2)));2X=(6B-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;6j=0;W(j=1f=-2X;-2X<=2X?1f<=2X:1f>=2X;j=-2X<=2X?++1f:--1f){W(k=1H=2X;2X<=-2X?1H<=-2X:1H>=-2X;k=2X<=-2X?++1H:--1H){p=1w.cP(j,k);2G[6j*3]=p.r;2G[6j*3+1]=p.g;2G[6j*3+2]=p.b;6j++}}4e=o.3L(Q,2G,2P,3e);o.5f[i]=1u.3O(4e.r);o.5f[i+1]=1u.3O(4e.g);o.5f[i+2]=1u.3O(4e.b);o.5f[i+3]=o.c.T[i+3]}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.65=A(2Q){M i,H,K;B(2Q>=0){1Y.2u("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2L.5j(o.c,"65",{am:2Q,dF:o.7P,an:1R.4G});B(o.7P===1R.4G){B(o.2c.1v===R.3k.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.5f[i]}}B(2Q>=0){1Y.2u("R "+o.2c.1p+" 9k!")}2L.5j(o.c,"bb",o.2c);u o.4i()}};1R.N.3L=A(Q,2G,2P,3e){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2G[i*3];2f.g+=Q[i]*2G[i*3+1];2f.b+=Q[i]*2G[i*3+2]}2f.r=(2f.r/2P)+3e;2f.g=(2f.g/2P)+3e;2f.b=(2f.b/2P)+3e;u 2f};1R.N.da=A(2g,1E){M 1P,5l;1P=1y 4J();1P.bP=(A(1r){u A(){2g.1j.6f(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2T=2g.1j.4V(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2T.2a;1r.c.T=2g.T;u 1r.4i()}})(o);5l=2V.bu(1E);u 1P.1E=5l!=L?5l:1E};u 1R})();1R=D.1R;D.32=(A(){A 32(){}32.63={};32.bR=A(4C){u o.63[4C]!=L};32.4o=A(4C){u o.63[4C]};32.cs=A(1p,2B){u o.63[1p]=2B};32.3T=A(4C,1Q){7I((A(1r){u A(){u 1Q.1x(1r.4o(4C),1r.4o(4C))}})(o),0);u o.4o(4C)};32.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.63[1p]}S{u o.63={}}};u 32})();32=D.32;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("5I",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4S",A(){M 3g;B(1k.P===1){3g=1X.7U(1k[0])}S{3g={r:1k[0],g:1k[1],b:1k[2]}}u o.2p("4S",A(C){C.r=3g.r;C.g=3g.g;C.b=3g.b;C.a=E;u C})});R.V("3r",A(Q){Q=O.2N(E*(Q/1i));u o.2p("3r",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3P",A(Q){Q*=-0.dy;u o.2p("3P",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("43",A(Q){Q*=-1;u o.2p("43",A(C){M 1q,4W,1e;1e=O.1e(C.r,C.g,C.b);4W=(C.r+C.g+C.b)/3;1q=((O.4X(1e-4W)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4Z",A(Q){u o.2p("4Z",A(C){M 4W;4W=2b.6y(C);C.r=4W;C.g=4W;C.b=4W;u C})});R.V("2s",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2p("2s",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2p("93",A(C){M b,g,h,5e,r,K;5e=1X.cC(C.r,C.g,C.b);h=5e.h*1i;h+=O.4X(Q);h=h%1i;h/=1i;5e.h=h;K=1X.cE(5e.h,5e.s,5e.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4j",A(){M 6g,3f;B(1k.P===2){3f=1X.7U(1k[0]);6g=1k[1]}S B(1k.P===4){3f={r:1k[0],g:1k[1],b:1k[2]};6g=1k[3]}u o.2p("4j",A(C){C.r-=(C.r-3f.r)*(6g/1i);C.g-=(C.g-3f.g)*(6g/1i);C.b-=(C.b-3f.b)*(6g/1i);u C})});R.V("b0",A(){u o.2p("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4t",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2p("4t",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2v",A(Q){u o.2p("2v",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4X(Q)*2.55;u o.2p("8i",A(C){M 4h;4h=2b.ab(Q*-1,Q);C.r+=4h;C.g+=4h;C.b+=4h;u C})});R.V("8j",A(Q){Q=O.4X(Q)*2.55;u o.2p("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3h}S{C.r-=C.r*O.4X(1G.3h)}}B(1G.4w!=L){B(1G.4w>0){C.g+=(E-C.g)*1G.4w}S{C.g-=C.g*O.4X(1G.4w)}}B(1G.3W!=L){B(1G.3W>0){C.b+=(E-C.b)*1G.3W}S{C.b-=C.b*O.4X(1G.3W)}}u C})});R.V("2e",A(){M 6I,29,3V,3F,1M,i,5t,1J,H,1f,K,44;3V=1k[0],3F=2<=1k.P?61.1x(1k,1):[];5t=3F[3F.P-1];B(1s 5t==="A"){6I=5t;3F.6s()}S B(1s 5t==="3j"){6I=2b[5t];3F.6s()}S{6I=2b.29}B(1s 3V==="3j"){3V=3V.do("")}B(3V[0]==="v"){3V=[\'r\',\'g\',\'b\']}B(3F.P<2){2K"5z 8e 8X 1k 3G 2e 1C";}29=6I(3F,0,E);1J=3F[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3F[3F.P-1];B(1M[0]=E;i=44<=E?++1f:--1f){29[i]=1M[1]}}u o.2p("2e",A(C){M 1H,4m;W(i=1H=0,4m=3V.P;0<=4m?1H<4m:1H>4m;i=0<=4m?++1H:--1H){C[3V[i]]=29[C[3V[i]]]}u C})});R.V("3a",A(Q){M 4L,4M,p;p=O.4X(Q)/1i;4L=[0,E*p];4M=[E-(E*p),E];B(Q<0){4L=4L.br();4M=4M.br()}u o.2e(\'3f\',[0,0],4L,4M,[E,E])});D.2t.V("8F",A(F,J,x,y){M I,2I;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="41"&&2h!==L){I=1y 3Q(F,J)}S{I=2o.3E(\'I\');1u.52(o.I,I);I.F=F;I.J=J}2I=I.3d(\'2d\');2I.6f(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2J;u o.6D(I)});D.2t.V("8x",A(2D){M I,2I;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1Y.9d("5z cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="41"&&2h!==L){I=1y 3Q(2D.F,2D.J)}S{I=2o.3E(\'I\');1u.52(o.I,I);I.F=2D.F;I.J=2D.J}2I=I.3d(\'2d\');2I.6f(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2J;u o.6D(I)});D.R.V("8F",A(){u o.51("8F",5u.N.5d.1x(1k,0))});D.R.V("8x",A(){u o.51("8x",5u.N.5d.1x(1k,0))});D.R.V("dm",A(){u o.3L("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3L("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3L("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3x){M 2G;B(3x===0||3x===4k){2G=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3x>0&&3x<90)||(3x>4k&&3x<8w)){2G=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3x===90||3x===8w){2G=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2G=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3L("de 8A",2G)});D.R.V("6C",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3L("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3r:A(C,1q,G){C.r=C.r-(C.r*1q*G.3i);C.g=C.g-(C.g*1q*G.3i);C.b=C.b-(C.b*1q*G.3i);u C},2v:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3i,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3i,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3i,1))*E;u C},4j:A(C,1q,G){C.r-=(C.r-G.3g.r)*1q;C.g-=(C.g-G.3g.g)*1q;C.b-=(C.b-G.3g.b)*1q;u C}};R.V("1U",A(1t,3i){M 29,3C,1M,1J;B(3i==L){3i=60}B(1s 1t==="3j"&&1t.59(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4q(1t.59(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4q(1t.59(0,1t.P-1),10)/1i)}}3i/=1i;3C=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3C[0],2)+O.1T(3C[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2p("1U",A(C){M 8p,2H,U;U=C.9M();8p=2b.5a(U.x,U.y,3C[0],3C[1]);B(8p>1M){2H=O.1e(1,(29[O.5C(((8p-1M)/1t)*1i)]/10)*3i);C.r=O.1T(C.r/E,2H)*E;C.g=O.1T(C.g/E,2H)*E;C.b=O.1T(C.b/E,2H)*E}u C})});R.V("bY",A(G){M 4a,5W,8k,1t,H,1n,K;4a={3i:50,2E:0,8U:\'3r\',3g:{r:0,g:0,b:0}};G=1u.79(4a,G);B(!G.1t){u o}S B(1s G.1t==="3j"){8k=4q(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="3S"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){5W=K[H];B(1s G.1t[5W]==="3j"){G.1t[5W]=o.1c[5W]*(4q(G.1t[5W],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2E==="3j"){G.2E=(G.1t.F/2)*(4q(G.2E,10)/1i)}G.3i/=1i;G.1t.F=O.2N(G.1t.F);G.1t.J=O.2N(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4j"&&1s G.3g==="3j"){G.3g=1X.7U(G.3g)}G.1W={5m:(o.1c.F-G.1t.F)/2,6a:o.1c.F-G.1W.5m,5n:(o.1c.J-G.1t.J)/2,6k:o.1c.J-G.1W.5n};G.1z=[{x:G.1W.5m+G.2E,y:G.1W.6k-G.2E},{x:G.1W.6a-G.2E,y:G.1W.6k-G.2E},{x:G.1W.6a-G.2E,y:G.1W.5n+G.2E},{x:G.1W.5m+G.2E,y:G.1W.5n+G.2E}];G.4d=2b.5a(0,0,G.1z[3].x,G.1z[3].y)-G.2E;u o.2p("bY",A(C){M 1q,U,4r;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1W.5n&&U.yG.1W.5m&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1W.6k){1q=(U.y-G.1W.6k)/G.4d}S B(U.y>G.1z[2].y&&U.yG.1W.6a){1q=(U.x-G.1W.6a)/G.4d}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4r=D.5a(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4r-G.2E)/G.4d}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4r=D.5a(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4r-G.2E)/G.4d}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4r=D.5a(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4r-G.2E)/G.4d}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4r=D.5a(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4r-G.2E)/G.4d}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4F,96,97,66,62;66=[2S,2S,37,2S,3t,37,3z,2S,3U,3t,3B,37,3X,3z,3Y,2S,4z,3U,4T,3t,4A,3B,4B,37,4I,3X,4l,3z,39,3Y,4v,2S,5H,4z,46,3U,5R,4T,64,3t,39,4A,69,3B,4y,4B,4U,37,5s,4I,5w,3X,5q,4l,5K,3z,5N,39,5O,3Y,5Z,4v,3Z,2S,7D,5H,7C,4z,7A,46,7x,3U,7w,5R,7v,4T,4R,64,7u,3t,6c,39,7t,4A,7s,69,4N,3B,3Z,4y,7r,4B,7q,4U,7o,37,7n,5s,46,4I,7m,5w,7k,3X,7j,5q,7i,4l,4R,5K,6e,3z,7f,5N,7e,39,7c,5O,7a,3Y,6l,5Z,4N,4v,78,3Z,76,2S,bU,7D,bN,5H,4U,7C,bL,4z,bG,7A,bF,46,bD,7x,bC,3U,bB,7w,bA,5R,bz,7v,bx,4T,bw,4R,74,64,6e,7u,8u,3t,ba,6c,b9,39,b8,7t,b7,4A,8g,7s,6l,69,b5,4N,b4,3B,b3,3Z,b2,4y,aO,7r,aK,4B,aJ,7q,aH,4U,aF,7o,aC,37,az,7n,ax,5s,aw,46,ap,4I,ao,7m,al,5w,ak,7k,ah,3X,ae,7j,dc,5q,d3,7i,d2,4l,cY,4R,74,5K,cX,6e,cW,3z,8u,7f,cV,5N,6c,7e,cT,39,cG,7c,cB,5O,8T,7a,8g,3Y,cv,6l,cu,5Z,cq,4N,cp,4v,3B,78,co,3Z,cn,76,4y];62=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6n,6m,2F,P,c0){M 42,1j,2w,6V,6Y,6W,71;42=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');42.F=F;42.J=J;6V=6n+O.bW(2F)*P*0.5;6W=6m+O.bV(2F)*P*0.5;6Y=6n-O.bW(2F)*P*0.5;71=6m-O.bV(2F)*P*0.5;1j=42.3d("2d");2w=1j.en(6V,6W,6Y,71);B(!c0){2w.5o(0,"77");2w.5o(1,"a4")}S{2w.5o(0,"77");2w.5o(0.5,"a4");2w.5o(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4V(0,0,F,J)};97=A(F,J,6n,6m,6P,6O){M 42,1j,2w;42=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');42.F=F;42.J=J;1j=42.3d("2d");2w=1j.ev(6n,6m,6P,6n,6m,6O);2w.5o(1,"77");2w.5o(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4V(0,0,F,J)};4F=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1N=L};D.2t.V("a3",A(by,1V,bq,7l){M 2l,2C,1O,5P,6X,2H,2n,2y,1K,J,47,i,6S,2x,3m,7M,48,6K,2O,p,1D,1A,Y,1B,2q,2z,1L,9i,1a,34,2R,1b,4c,1m,1I,2M,5h,2U,8h,8f,68,F,3q,x,y,1h,4x,4Y,H,1f,1H,3n,3D,3v,3l,3p,3A,5J;F=o.1c.F;J=o.1c.J;3m=o.T;9i=by.2a;8f=F*J;68=8f<<2;Y=[];W(i=H=0;0<=68?H<68:H>68;i=0<=68?++H:--H){Y[i]=3m[i]}6X=0;5h=7l;7l-=1;8Z(5h-->=0){48=(1V+0.5)|0;B(48===0){5G}B(48>6M){48=6M}2H=48+48+1;8h=F<<2;3q=F-1;47=J-1;1a=48+1;2U=1a*(1a+1)/2;2M=1y 4F();4c=bg 0;1b=2M;W(i=1f=1;1<=2H?1f<2H:1f>2H;i=1<=2H?++1f:--1f){1b=1b.1N=1y 4F();B(i===1a){4c=1b}}1b.1N=2M;1m=L;1I=L;4Y=1h=0;2O=66[48];2R=62[48];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3n=0;0<=1a?3n<1a:3n>1a;i=0<=1a?++3n:--3n){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3D=1;1<=1a?3D<1a:3D>1a;i=1<=1a?++3D:--3D){p=1h+((3qF;x=0<=F?++3v:--3v){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4Y+((p=x+1a)<3q?p:3q))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4Y+=F}W(x=3l=0;0<=F?3lF;x=0<=F?++3l:--3l){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3p=0;0<=1a?3p<1a:3p>1a;i=0<=1a?++3p:--3p){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4x=F;W(i=3A=1;1<=1a?3A<1a:3A>1a;i=1<=1a?++3A:--3A){1h=(4x+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<47){4x+=F}}1h=x;1m=2M;1I=4c;W(y=5J=0;0<=J?5JJ;y=0<=J?++5J:--5J){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<47?p:47)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}1V*=bq;i=8f;8Z(--i>-1){2x=i<<2;6K=(9i[2x+2]&fo)/E.0*7l;7M=6K|0;B(7M===6X){5P=6M.0*(6K-(6K|0));6S=6M-5P;3m[2x]=(3m[2x]*6S+Y[2x]*5P)>>8;3m[2x+1]=(3m[2x+1]*6S+Y[2x+1]*5P)>>8;3m[2x+2]=(3m[2x+2]*6S+Y[2x+2]*5P)>>8}S B(7M===6X+1){3m[2x]=Y[2x];3m[2x+1]=Y[2x+1];3m[2x+2]=Y[2x+2]}}6X++}u o});D.R.V("fq",A(G){M 4a,2w;4a={3C:{x:o.1c.F/2,y:o.1c.J/2},2F:45,cd:5Y,7R:3,7Q:1.5,5h:3};G=1u.79(4a,G);G.2F*=O.aZ/4k;2w=96(o.1c.F,o.1c.J,G.3C.x,G.3C.y,G.2F,G.cd,2J);u o.51("a3",[2w,G.7R,G.7Q,G.5h])});u D.R.V("fx",A(G){M 4a,2w,6P,6O;4a={1t:50,3C:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5h:3,1V:L};G=1u.79(4a,G);B(!G.1V){G.1V=o.1c.F2H;i=1<=2H?++H:--H){1b=1b.1N=1y 4F();B(i===1a){4c=1b}}1b.1N=2M;1m=L;1I=L;4Y=1h=0;2O=66[1V];2R=62[1V];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3n=1;1<=1a?3n<1a:3n>1a;i=1<=1a?++3n:--3n){p=1h+((3qF;x=0<=F?++3D:--3D){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4Y+((p=x+1V+1)<3q?p:3q))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4Y+=F}W(x=3v=0;0<=F?3vF;x=0<=F?++3v:--3v){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3l=0;0<=1a?3l<1a:3l>1a;i=0<=1a?++3l:--3l){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4x=F;W(i=3p=1;1<=1V?3p<=1V:3p>=1V;i=1<=1V?++3p:--3p){1h=(4x+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<47){4x+=F}}1h=x;1m=2M;1I=4c;W(y=3A=0;0<=J?3AJ;y=0<=J?++3A:--3A){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<47?p:47)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}u o});u D.R.V("5L",A(1V){u o.51("5L",[1V])})})();D.R.V("aD",A(Q){u o.2p("aD",A(C){M 6y;6y=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6y",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} return this.finishInit();};Caman.prototype.finishInit=function(){var i,pixel,_i,_len,_ref;if(this.context==null){this.context=this.canvas.getContext('2d');} +if(this.renderingContext==null){this.renderingContext=this.renderingCanvas.getContext('2d');} this.originalWidth=this.preScaledWidth=this.width=this.canvas.width;this.originalHeight=this.preScaledHeight=this.height=this.canvas.height;this.hiDPIAdjustments();if(!this.hasId()){this.assignId();} if(this.image!=null){this.context.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);this.renderingContext.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);} this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} diff --git a/dist/caman.pack.js b/dist/caman.pack.js index 2b71e4db..26ae08ea 100644 --- a/dist/caman.pack.js +++ b/dist/caman.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2M,1y,1F,B,3d,3b,1q,1S,4l,V,1M,2V,22,1o,2f,1r,1P,1g,4J,1X,1a,3D,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3g=o(2H,2l,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1A(2l.7n(4j.5f,4j.bn))}9 X};1a.3u=o(K){u(K==G){K=0}u(B.1W||(2X.7o!=G)){9 1m 7o(K)}9 1m 44(K)};9 1a})();u(1f 1Z!=="31"&&1Z!==G){4J=1Z;3b=4i(\'F\');2V=3b.2V;4l=4i(\'bl\');3D=4i(\'3D\');3Y=4i(\'3Y\')}R{4J=2X}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1C;B.3J=2k;B.5O="86";B.4A="";B.8c="9q";B.1W=1f 1Z!=="31"&&1Z!==G;B.8m=!B.1W;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.1W){9 2k}u(1f F==="2Y"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1z-2g-1R\')};o B(){8.3s=5T(8.3s,8);I W,1h,1R;u(Y.K===0){1U"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.1W){1R=51(B.63(W[0]),10);1h=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1R)&&1X.6P(1R)){9 1X.2t(1R,1h)}}8.1R=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1C;8.5s=1C;8.be=1C;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1C;8.aT=1m 2M(8);8.2P=1m 1g(8);8.7T((o(11){9 o(){11.80(W);9 11.8g()}})(8));9 8}R{9 1m B(Y)}}B.H.7T=o(3y){I 5C;u(B.1W){9 4s((o(11){9 o(){9 3y.19(11)}})(8),0)}R{u(1J.5D==="4D"){1o.1D("6B 6G");9 4s((o(11){9 o(){9 3y.19(11)}})(8),0)}R{5C=(o(11){9 o(){u(1J.5D==="4D"){1o.1D("6B 6G");9 3y.19(11)}}})(8);9 1J.6L("ap",5C,1C)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1U"3m Y 6M";}8.21=G;8.4m=G;8.4n=G;8.1h=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Y":8.4n=W[1];30;1v"o":8.1h=W[1]}u(W.K===2){9}8.1h=W[2];u(W.K===4){E=W[4];X=[];U(1B 3c E){u(!3Q.19(E,1B))4f;1w=E[1B];X.1A(8.1d[1B]=1w)}9 X}};B.H.6W=o(1H){u(B.1W){8.21=1H;8.4m=\'6Z\';9}u(1f 1H==="2v"){8.21=1H}R{8.21=$(1H)}u(8.21==G){1U"al a8 a7 S 7h F U a3.";}9 8.4m=8.21.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1i":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1o.1D("9N U 1W");u(1f 8.21==="2Y"&&8.21.4C(/^7E?:\\/\\//)){9 8.7F(8.21,8.3s)}R u(1f 8.21==="2Y"){9 3D.9E(8.21,8.3s)}R{9 8.3s(G,8.21)}};B.H.7F=o(3X,1h){I 66;1o.1D("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1z\',o(8f){9 4N+=8f});9 2u.6m(\'1s\',o(){9 1h(G,1m 91(4N,\'8d\'))})});9 66.6m(\'6t\',1h)};B.H.3s=o(3T,1z){u(3T){1U 3T;}8.S=1m 2V();8.S.1b=1z;1o.1D("2V 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));8.F=1m 3b(8.2m(),8.2n());9 8.3x()};B.H.7A=o(){8.S=8.21;8.F=1J.2N(\'F\');8.1c=8.F.2o(\'2d\');8.24=1J.2N(\'F\');8.45=8.24.2o(\'2d\');1a.3g(8.S,8.F,{5c:[\'1b\']});1a.3g(8.S,8.24,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.24,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=8.21;8.1c=8.F.2o(\'2d\');8.24=1J.2N(\'F\');8.45=8.24.2o(\'2d\');u(8.4n!=G){8.S=1J.2N(\'1i\');8.S.1b=8.4n;8.5Z();9 8.5Y()}R{9 8.3x()}};B.H.5Z=o(){u(8.5X()){1o.1D(8.S.1b,"->",8.4I());8.7m=2k;8.S.1b=8.4I()}u(1M.7k(8.S)){8.S.1b=1M.3e(8.S.1b);9 1o.1D("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4k()}R{9 8.S.73=8.4k}};B.H.78=o(){u(!8.S.4D){9 1C}u((8.S.5P!=G)&&8.S.5P===0){9 1C}9 2k};B.H.2m=o(){9 8.S.L||8.S.5P};B.H.2n=o(){9 8.S.Q||8.S.an};B.H.4k=o(){1o.1D("2V 8D. 8E = "+(8.2m())+", 8p = "+(8.2n()));u(8.7m){8.F.L=8.2m()/8.3K();8.F.Q=8.2n()/8.3K();8.24.L=8.2m()/8.3K();8.24.Q=8.2n()/8.3K()}R{8.F.L=8.2m();8.F.Q=8.2n();8.24.L=8.2m();8.24.Q=8.2n()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1c==G){8.1c=8.F.2o(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.Q=8.F.Q;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1c.3R(8.S,0,0,8.2m(),8.2n(),0,0,8.3M,8.3O);8.45.3R(8.S,0,0,8.2m(),8.2n(),0,0,8.3M,8.3O)}8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z;u(B.3J){8.59=1a.3u(8.M.K);8.2J=1a.3u(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1I={L:8.F.L,Q:8.F.Q};u(!B.1W){1X.6K(8.1R,8)}8.1h.19(8,8);9 8.1h=o(){}};B.H.6z=o(){8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);9 8.M=8.1T.1z};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3J){1U"5E 4y";}8.2J=1a.3u(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1A(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.1W||8.F.3w(\'1z-2g-1R\')){9}9 8.F.7n(\'1z-2g-1R\',8.1R)};B.H.6w=o(){9 8.F.3w(\'1z-2g-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.1W||!8.5X()){9}2E=8.3K();u(2E!==1){1o.1D("aH 2E = "+2E);8.6R=2k;8.3M=8.F.L;8.3O=8.F.Q;8.F.L=8.3M*2E;8.F.Q=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.Q=""+8.3O+"8u";8.1c.aK(2E,2E);8.L=8.5N=8.F.L;9 8.Q=8.5M=8.F.Q}};B.H.3K=o(){I 5B,2C;2C=2X.2C||1;5B=8.1c.aU||8.1c.aV||8.1c.b6||8.1c.b7||8.1c.b8||1;9 2C/5B};B.H.7p=o(){9(2X.2C!=G)&&2X.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1C}9 8.4I()!==G};B.H.4I=o(){u(8.S==G){9 G}9 8.S.3w(\'1z-2g-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1c=8.F.2o(\'2d\');8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z;u(B.3J){8.2J=1a.3u(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.Q=8.F.Q;8.6z();9 8.1I={L:8.F.L,Q:8.F.Q}};B.H.72=o(1h){u(1h==G){1h=o(){}}1S.39(8,"6Y");9 8.2P.2t((o(11){9 o(){11.24.L=11.F.L;11.24.Q=11.F.Q;11.45.5v(11.1T,0,0);9 1h.19(11)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2k}u(!B.3J){1U"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.45.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,15,M,C,13,E;F=1J.2N(\'F\');1a.3g(8.F,F);F.L=8.5N;F.Q=8.5M;2p=F.2o(\'2d\');1T=2p.3v(0,0,F.L,F.Q);M=1T.1z;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1C;9 8.4O(F)};B.H.7r=o(){I 4Z,1p,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3J){1U"5E 4y";}52=[];53=0;1p=53+8.L;54=0;5n=54+8.Q;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1N+=J[i]}}8.2P.2F({14:V.25.5h,Z:Z,J:J,1N:1N,26:26});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.25.1P,2w:2w,W:W});9 8};B.H.5j=o(1h){I 1t;1t=1m 22(8);8.5u.1A(1t);8.2P.2F({14:V.25.5k});1h.19(1t);8.2P.2F({14:V.25.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1A(8.49);8.4a.1A(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2f);4J.B=B;B.2M=(o(){o 2M(c){8.c=c}2M.H.bi=o(){I i,2a,4e,C,17,1O,E;2a={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){2a.r[i]=0;2a.g[i]=0;2a.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1i=4b[C];X.1A(6C=1m 3d(1i,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1J.5D==="4D"){9 B.5r()}R{9 1J.6L("bb",B.5r,1C)}})()}3d=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3d(2z,6T){8.6U=2z.3w(\'1z-2g\');8.2g=B(2z,6T.5p(8))}3d.H.6H=o(){I W,e,48,38,5w,5x,m,r,47,C,13,E,X;8.2z=8.2g.F;r=1m 7f(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1m 7f(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1m b9("9 o() { 8."+48+"("+W+"); };");5y{38=5x();X.1A(38.19(8.2g))}5z(3E){e=3E;X.1A(1o.1D(e))}}9 X};3d.H.2t=o(){I 2z;2z=8.2z;9 8.2g.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 3d})();B.1y=(o(){o 1y(){}1y.5A={};1y.18=o(Z,38){9 8.5A[Z]=38};1y.2t=o(Z,O,N){9 8.5A[Z](O,N)};9 1y})();1y=B.1y;B.1F=(o(){o 1F(){}1F.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1F.7P=o(1j,T,42){I 2A;u(42==G){42=1C}2A=1j+(P.aQ()*(T-1j));u(42){9 2A.aP(42)}R{9 P.41(2A)}};1F.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1F.1K=o(1l,2W,2T,1s,34,35){I 1K,3o,1G,1p,i,j,3r,4v,2j,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1G=1l;34=2W;35=2T}R{1G=[1l,2W,2T,1s]}u(1G.K<2){1U"3m 5F 5G Y 2l 1K";}1K={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2j=1G;as(2j.K>1){4v=[];U(j=17=0,E=2j.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1A([3r(2j[j][0],2j[j+1][0],t),3r(2j[j][1],2j[j+1][1],t)])}2j=4v}1K[P.41(2j[0][0])]=P.41(3o(2j[0][1],34,35))}1p=1G[1G.K-1][0];1K=B.1F.5H(1K,1p);u(1K[1p]==G){1K[1p]=1K[1p-1]}9 1K};1F.6I=o(1G,34,35){I 2F,3o,5I,1p,4u,4t,4r,4p,i,j,3r,5J,5K,2L,p,3C,3N,2I,58,56,29,50,t,C,17,E;u(1G.K<2){1U"3m 5F 5G Y 2l 6I";}29={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(11){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2L=(o(11){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(11){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1G.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3C=1G[i];3N=1G[i+1];2I=3N[0]-3C[0];58=1/2I;u(i===1G.K-2){58=1/(2I-1)}p=i>0?1G[i-1]:3C;5J=2L(50(3N,p),[0.5,0.5]);p=i<1G.K-2?1G[i+2]:3N;5K=2L(50(p,3C),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2L(3C,[4u,4u]),2L(5J,[4t,4t]),2L(3N,[4r,4r]),2L(5K,[4p,4p]));29[P.41(56[0])]=P.41(3o(56[1],34,35));5I+=1}}1p=1G[1G.K-1][0];29=B.1F.5H(29,1p);9 29};1F.5H=o(3f,1p){I i,j,3I,29,4W,C,17;u(7W.ah(3f).K<1p+1){29={};U(i=C=0;0<=1p?C<=1p:C>=1p;i=0<=1p?++C:--C){u(3f[i]!=G){29[i]=3f[i]}R{3I=[i-1,29[i-1]];U(j=17=i;i<=1p?17<=1p:17>=1p;j=i<=1p?++17:--17){u(3f[j]!=G){4W=[j,3f[j]];30}}29[i]=3I[1]+((4W[1]-3I[1])/(4W[0]-3I[0]))*(i-3I[0])}}9 29}9 3f};9 1F})();1F=B.1F;B.1q=(o(){o 1q(){}1q.5d=o(2e){I b,g,r;u(2e.ae(0)==="#"){2e=2e.4U(1)}r=51(2e.4U(0,2),16);g=51(2e.4U(2,2),16);b=51(2e.4U(4,2),16);9{r:r,g:g,b:b}};1q.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}R{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1q.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}R{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}R{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}R{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}R{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1n,y:y*1n,z:z*1n}};1q.9S=o(x,y,z){I b,g,r;x/=1n;y/=1n;z/=1n;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}R{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}R{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}R{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1q.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1n.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}R{x=(7.6f*x)+0.3z}u(y>0.6d){y=P.1Y(y,0.6e)}R{y=(7.6f*y)+0.3z}u(z>0.6d){z=P.1Y(z,0.6e)}R{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1q.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}R{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}R{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}R{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1n.0,z:z*7R.7S}};1q.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1q.9t=o(l,a,b){};9 1q})();1q=B.1q;B.1S=(o(){o 1S(){}1S.3a={};1S.87=["88","89","6Y","8a","8b","3P"];1S.39=o(23,14,1z){I 3S,C,13,E,X;u(1z==G){1z=G}u(8.3a[14]&&8.3a[14].K){E=8.3a[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.23===G||23.1R===3S.23.1R){X.1A(3S.2r.19(23,1z))}R{X.1A(9p 0)}}9 X}};1S.9n=o(23,14,2r){I 6n,5e;u(1f 23==="2Y"){5e=23;6n=14;23=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1C}u(!8.3a[14]){8.3a[14]=[]}8.3a[14].1A({23:23,2r:2r});9 2k};9 1S})();1S=B.1S;B.V=(o(){o V(){}V.25={6o:1,5h:2,5k:3,5l:4,6p:5,1P:6};V.18=o(Z,8j){9 B.H[Z]=8j};9 V})();V=B.V;B.1M=(o(){o 1M(){}1M.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1M.7k=o(1i){u(1i==G){9 1C}u(8.8l(1i)){9 1C}9 8.4q(1i.1b)};1M.8l=o(1i){I E;9(1i.5O!=G)&&((E=1i.5O.3Z())===\'86\'||E===\'8n-9m\')};1M.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1J.9k}R{9 1C}};1M.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1o.6q("9f 2l 9e a 8v S 93 a 90 8y. 79: "+1b)}R{u(B.4q(B.4A)){1o.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3e(1b)}}};1M.3e=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1M.8G=o(2Z){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};2Z=2Z.3Z();u(5b[2Z]!=G){2Z=5b[2Z]}9"8O/8P."+2Z};9 1M})();B.H.8Q=o(){u(1f 1Z!=="31"&&1Z!==G){9 8.8C.2G(8,Y)}R{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1J.8Y.8Z=S};B.H.8C=o(3q,57,1h){I e,6s;u(57==G){57=2k}u(1h==G){1h=G}5y{6s=3D.94(3q);u(6s.96()&&!57){9 1C}}5z(3E){e=3E;1o.1D("97 98 3q "+3q)}9 3D.99(3q,8.F.9a(),o(3T){1o.1D("9b 9c 2l "+3q);u(1h){9 1h.19(8,3T)}})};B.H.7q=o(14){I 1i;1i=1m 2V();1i.1b=8.6u(14);1i.L=8.1I.L;1i.Q=8.1I.Q;u(2X.2C){1i.L/=2X.2C;1i.Q/=2X.2C}9 1i};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.24.9d("S/"+14)};1M=B.1M;B.22=(o(){o 22(c){8.c=c;8.48=8.c;8.1d={6r:\'8t\',2O:1.0};8.9h=1a.5q.2D();8.F=1f 1Z!=="31"&&1Z!==G?1m 3b():1J.2N(\'F\');8.F.L=8.c.1I.L;8.F.Q=8.c.1I.Q;8.1c=8.F.2o(\'2d\');8.1c.9i(8.F.L,8.F.Q);8.1T=8.1c.3v(0,0,8.F.L,8.F.Q);8.M=8.1T.1z}22.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};22.H.9j=o(8q){8.1d.6r=8q;9 8};22.H.2O=o(2O){8.1d.2O=2O/1n;9 8};22.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2h<0){9 1m 1r(0,0,0,D,8.c)}9 8.65(2h)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1U"3l a 3k 1c";}7D=8.1k+(8.c.1I.L*4*(4E*-1))+(4*4F);u(2h>8.c.M.K||2h<0){9}8.c.M[2h]=A.r;8.c.M[2h+1]=A.g;8.c.M[2h+2]=A.b;8.c.M[2h+3]=A.a;9 2k};1r.H.9J=o(x,y){I 1k;u(8.c==G){1U"3l a 3k 1c";}1k=8.6h(x,y,8.L);9 8.65(1k)};1r.H.9K=o(x,y,A){I 1k;u(8.c==G){1U"3l a 3k 1c";}1k=8.6h(x,y,8.L);8.c.M[1k]=A.r;8.c.M[1k+1]=A.g;8.c.M[1k+2]=A.b;9 8.c.M[1k+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2e;u(4B==G){4B=1C}2e=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2e+8.a.3t(16)}R{9 2e}};9 1r})();1r=B.1r;B.1P=(o(){o 1P(){}1P.64={};1P.18=o(Z,2w){9 8.64[Z]=2w};1P.2t=o(1c,Z,W){9 8.64[Z].2G(1c,W)};9 1P})();1P=B.1P;B.1g=(o(){1g.2Q=B.1W?4i(\'9Q\').9R().K:4;o 1g(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1g.H.2F=o(62){u(62==G){9}9 8.3V.1A(62)};1g.H.2B=o(){I 1t;u(8.3V.K===0){1S.39(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1u=8.3V.7v();3p(8.1u.14){1v V.25.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.25.5l:8.c.6D();8.c.6x();9 8.2B();1v V.25.6p:9 8.7u(8.1u.1t,8.1u.1b);1v V.25.1P:9 8.7t();a0:9 8.7s()}};1g.H.2t=o(1h){8.61=1h;8.32=1a.3u(8.c.M.K);9 8.2B()};1g.H.60=o(2r){I 40,5V,1V,1s,f,i,5U,n,1l,C,E,X;8.4R=0;n=8.c.M.K;5V=P.2K((n/4)/1g.2Q);40=5V*4;5U=40+((n/4)%1g.2Q)*4;X=[];U(i=C=0,E=1g.2Q;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1s=1l+(i===1g.2Q-1?5U:40);u(B.1W){f=4l((o(11){9 o(){9 2r.19(11,i,1l,1s)}})(8));1V=f.a9();X.1A(8.3P(1V))}R{X.1A(4s((o(11){9 o(i,1l,1s){9 o(){9 2r.19(11,i,1l,1s)}}})(8)(i,1l,1s),0))}}9 X};1g.H.7s=o(){1S.39(8.c,"88",8.1u);u(8.1u.14===V.25.6o){9 8.60(8.7d)}R{9 8.60(8.7a)}};1g.H.7t=o(){1o.1D("ac 2w "+8.1u.2w);1P.2t(8.c,8.1u.2w,8.1u.W);1o.1D("1P "+8.1u.2w+" 5S!");9 8.2B()};1g.H.7d=o(1V,1l,1s){I i,15,C;1o.1D("77 #"+1V+" - V: "+8.1u.Z+", af: "+1l+", ag: "+1s);1S.39(8.c,"8b",{74:1V,71:1g.2Q,ai:1l,aj:1s});15=1m 1r();15.67(8.c);U(i=C=1l;C<1s;i=C+=4){15.1k=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1u.5a(15);8.c.M[i]=1a.2c(15.r);8.c.M[i+1]=1a.2c(15.g);8.c.M[i+2]=1a.2c(15.b);8.c.M[i+3]=1a.2c(15.a)}u(B.1W){9 4l["70"](1V)}R{9 8.3P(1V)}};1g.H.7a=o(1V,1l,1s){I J,43,26,1Q,3n,1N,i,j,k,2i,n,Z,p,15,2u,C,17,1O;Z=8.1u.Z;26=8.1u.26;1N=8.1u.1N;n=8.c.M.K;J=8.1u.J;43=P.7N(J.K);2i=[];1o.1D("aq 2i - V: "+8.1u.Z);1l=P.T(1l,8.c.1I.L*4*((43-1)/2));1s=P.1j(1s,n-(8.c.1I.L*4*((43-1)/2)));1Q=(43-1)/2;15=1m 1r();15.67(8.c);U(i=C=1l;C<1s;i=C+=4){15.1k=i;3n=0;U(j=17=-1Q;-1Q<=1Q?17<=1Q:17>=1Q;j=-1Q<=1Q?++17:--17){U(k=1O=1Q;1Q<=-1Q?1O<=-1Q:1O>=-1Q;k=1Q<=-1Q?++1O:--1O){p=15.7G(j,k);2i[3n*3]=p.r;2i[3n*3+1]=p.g;2i[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2i,1N,26);8.32[i]=1a.2c(2u.r);8.32[i+1]=1a.2c(2u.g);8.32[i+2]=1a.2c(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.1W){9 4l["70"](1V)}R{9 8.3P(1V)}};1g.H.3P=o(1V){I i,C,E;u(1V>=0){1o.1D("77 #"+1V+" 5S! V: "+8.1u.Z)}8.4R++;1S.39(8.c,"3P",{74:1V,ar:8.4R,71:1g.2Q});u(8.4R===1g.2Q){u(8.1u.14===V.25.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1V>=0){1o.1D("V "+8.1u.Z+" 5S!")}1S.39(8.c,"89",8.1u);9 8.2B()}};1g.H.5Q=o(J,2i,1N,26){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2i[i*3];1w.g+=J[i]*2i[i*3+1];1w.b+=J[i]*2i[i*3+2]}1w.r=(1w.r/1N)+26;1w.g=(1w.g/1N)+26;1w.b=(1w.b/1N)+26;9 1w};1g.H.7u=o(1t,1b){I 1i,3e;1i=1m 2V();1i.73=(o(11){9 o(){1t.1c.3R(1i,0,0,11.c.1I.L,11.c.1I.Q);1t.1T=1t.1c.3v(0,0,11.c.1I.L,11.c.1I.Q);1t.M=1t.1T.1z;11.c.M=1t.M;9 11.2B()}})(8);3e=1M.8r(1b);9 1i.1b=3e!=G?3e:1b};9 1g})();1g=B.1g;B.1X=(o(){o 1X(){}1X.3h={};1X.6P=o(2U){9 8.3h[2U]!=G};1X.2D=o(2U){9 8.3h[2U]};1X.6K=o(Z,1H){9 8.3h[Z]=1H};1X.2t=o(2U,1h){4s((o(11){9 o(){9 1h.19(11.2D(2U),11.2D(2U))}})(8),0);9 8.2D(2U)};1X.at=o(Z){u(Z==G){Z=1C}u(Z){9 6E 8.3h[Z]}R{9 8.3h={}}};9 1X})();1X=B.1X;1y.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1y.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1y.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1y.18("ax",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1e.g=N.g>1x?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1e.b=N.b>1x?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1e});1y.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1y.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1y.18("aB",o(O,N){9{r:1x-2*(N.r-1x)*(O.r-1x)/D,g:1x-2*(N.g-1x)*(O.g-1x)/D,b:1x-2*(N.b-1x)*(O.b-1x)/D}});1y.18("aC",o(O,N){I 1e;1e={};1e.r=N.r>1x?D-((D-N.r)*(D-(O.r-1x)))/D:(N.r*(O.r+1x))/D;1e.g=N.g>1x?D-((D-N.g)*(D-(O.g-1x)))/D:(N.g*(O.g+1x))/D;1e.b=N.b>1x?D-((D-N.b)*(D-(O.b-1x)))/D:(N.b*(O.b+1x))/D;9 1e});1y.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1y.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Y",o(){I 3F;u(Y.K===1){3F=1q.5d(Y[0])}R{3F={r:Y[0],g:Y[1],b:Y[2]}}9 8.1L("4Y",o(A){A.r=3F.r;A.g=3F.g;A.b=3F.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2K(D*(J/1n));9 8.1L("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1L("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1L("8s",o(A){I 46,2S,T;T=P.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;46=((P.2R(T-2S)*2/D)*J)/1n;u(A.r!==T){A.r+=(T-A.r)*46}u(A.g!==T){A.g+=(T-A.g)*46}u(A.b!==T){A.b+=(T-A.b)*46}9 A})});V.18("8e",o(J){9 8.1L("8e",o(A){I 2S;2S=1F.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=P.1Y((J+1n)/1n,2);9 8.1L("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1L("81",o(A){I b,g,h,33,r,E;33=1q.7g(A.r,A.g,A.b);h=33.h*1n;h+=P.2R(J);h=h%1n;h/=1n;33.h=h;E=1q.7i(33.h,33.s,33.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,37;u(Y.K===2){37=1q.5d(Y[0]);3j=Y[1]}R u(Y.K===4){37={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1L("7U",o(A){A.r-=(A.r-37.r)*(3j/1n);A.g-=(A.g-37.g)*(3j/1n);A.b-=(A.b-37.b)*(3j/1n);9 A})});V.18("7O",o(){9 8.1L("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1n}J/=1n;9 8.1L("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1L("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2R(J)*2.55;9 8.1L("7y",o(A){I 2A;2A=1F.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2R(J)*2.55;9 8.1L("7x",o(A){u(A.r>D-J){A.r=D}R u(A.rD-J){A.g=D}R u(A.gD-J){A.b=D}R u(A.b0){A.r+=(D-A.r)*1d.4S}R{A.r-=A.r*P.2R(1d.4S)}}u(1d.4M!=G){u(1d.4M>0){A.g+=(D-A.g)*1d.4M}R{A.g-=A.g*P.2R(1d.4M)}}u(1d.4G!=G){u(1d.4G>0){A.b+=(D-A.b)*1d.4G}R{A.b-=A.b*P.2R(1d.4G)}}9 A})});V.18("4z",o(){I 4g,1K,2s,2b,1s,i,3L,1l,C,17,E,2q;2s=Y[0],2b=2<=Y.K?3B.19(Y,1):[];3L=2b[2b.K-1];u(1f 3L==="o"){4g=3L;2b.3U()}R u(1f 3L==="2Y"){4g=1F[3L];2b.3U()}R{4g=1F.1K}u(1f 2s==="2Y"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2b.K<2){1U"3m 5F 5G Y 2l 4z 48";}1K=4g(2b,0,D);1l=2b[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1K[i]=1l[1]}}1s=2b[2b.K-1];u(1s[0]=D;i=2q<=D?++17:--17){1K[i]=1s[1]}}9 8.1L("4z",o(A){I 1O,2y;U(i=1O=0,2y=2s.K;0<=2y?1O<2y:1O>2y;i=0<=2y?++1O:--1O){A[2s[i]]=1K[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2W,2T,p;p=P.2R(J)/1n;2W=[0,D*p];2T=[D-(D*p),D];u(J<0){2W=2W.6O();2T=2T.6O()}9 8.4z(\'37\',[0,0],2W,2T,[D,D])});B.1P.18("5g",o(L,Q,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1Z!=="31"&&1Z!==G){F=1m 3b(L,Q)}R{F=1J.2N(\'F\');1a.3g(8.F,F);F.L=L;F.Q=Q}2p=F.2o(\'2d\');2p.3R(8.F,x,y,L,Q,0,0,L,Q);8.5m={x:x,y:y};8.82=2k;9 8.4O(F)});B.1P.18("4H",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.L==G)&&(1E.Q==G))){1o.6t("3m 7h bp 1I 6M U 4H");9}u(1E.L==G){1E.L=8.F.L*1E.Q/8.F.Q}R u(1E.Q==G){1E.Q=8.F.Q*1E.L/8.F.L}u(1f 1Z!=="31"&&1Z!==G){F=1m 3b(1E.L,1E.Q)}R{F=1J.2N(\'F\');1a.3g(8.F,F);F.L=1E.L;F.Q=1E.Q}2p=F.2o(\'2d\');2p.3R(8.F,0,0,8.F.L,8.F.Q,0,0,1E.L,1E.Q);8.5s=2k;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|Math|height|else|image|max|for|Filter|args|_results|arguments|name||_this||_len|type|pixel||_j|register|call|Util|src|context|options|result|typeof|Renderer|callback|img|min|loc|start|new|100|Log|endX|Convert|Pixel|end|layer|currentJob|case|val|128|Blender|data|push|key|false|debug|newDims|Calculate|controlPoints|obj|dimensions|document|bezier|process|IO|divisor|_k|Plugin|builder|id|Event|imageData|throw|bnum|NodeJS|Store|pow|exports|parentData|initObj|Layer|target|renderingCanvas|Type|bias||055|ret|levels|cps|clampRGB||hex|Module|caman|newLoc|kernel|prev|true|to|imageWidth|imageHeight|getContext|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|mul|Analyze|createElement|opacity|renderer|Blocks|abs|avg|ctrl2|search|Image|ctrl1|window|string|lang|break|undefined|modPixelData|hsv|lowBound|highBound|layerData|rgb|func|trigger|events|Canvas|in|CamanParser|proxyUrl|values|copyAttributes|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|dataArray|getImageData|getAttribute|finishInit|cb|1379310345|chan|__slice|p0|fs|_error|color|child|parent|leftCoord|allowRevert|hiDPIRatio|last|preScaledWidth|p1|preScaledHeight|blockFinished|__hasProp|drawImage|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|renderingContext|amt|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|Fiber|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|hiDPIReplacement|Root|sel|root|green|buf|replaceCanvas|Logger|hueToRGB|blocksDone|red|INST_REGEX|substr|updateContext|rightCoord|dest|fillColor|coord|sub|parseInt|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2N,1z,1G,B,3e,2L,1s,1N,45,V,1V,2V,23,1n,2i,1r,1R,1h,4J,1W,1a,3C,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3L=o(2H,2o,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1y(2o.7n(4j.5f,4j.bn))}9 X};1a.3v=o(K){u(K==G){K=0}u(B.21||(2Y.7o!=G)){9 1k 7o(K)}9 1k 44(K)};9 1a})();u(1f 1X!=="33"&&1X!==G){4J=1X;2L=4i(\'F\');2V=2L.2V;45=4i(\'bl\');3C=4i(\'3C\');3Y=4i(\'3Y\')}Q{4J=2Y}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1D;B.3J=2n;B.5O="86";B.4A="";B.8c="9q";B.21=1f 1X!=="33"&&1X!==G;B.8m=!B.21;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.21){9 2n}u(1f F==="2Z"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1A-2l-1S\')};o B(){8.3s=5T(8.3s,8);I W,1i,1S;u(Y.K===0){1P"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.21){1S=51(B.63(W[0]),10);1i=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1S)&&1W.6P(1S)){9 1W.2t(1S,1i)}}8.1S=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1D;8.5s=1D;8.be=1D;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1D;8.aT=1k 2N(8);8.2P=1k 1h(8);8.7T((o(Z){9 o(){Z.80(W);9 Z.8g()}})(8));9 8}Q{9 1k B(Y)}}B.H.7T=o(3y){I 5C;u(B.21){9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}Q{u(1K.5D==="4D"){1n.1C("6B 6G");9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}Q{5C=(o(Z){9 o(){u(1K.5D==="4D"){1n.1C("6B 6G");9 3y.19(Z)}}})(8);9 1K.6L("ap",5C,1D)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1P"3m Y 6M";}8.22=G;8.4m=G;8.4n=G;8.1i=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Z":8.4n=W[1];31;1v"o":8.1i=W[1]}u(W.K===2){9}8.1i=W[2];u(W.K===4){E=W[4];X=[];U(1B 3d E){u(!3R.19(E,1B))4f;1w=E[1B];X.1y(8.1c[1B]=1w)}9 X}};B.H.6W=o(1I){u(B.21){8.22=1I;8.4m=\'6Z\';9}u(1f 1I==="2v"){8.22=1I}Q{8.22=$(1I)}u(8.22==G){1P"al a8 a7 S 7h F U a3.";}9 8.4m=8.22.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1g":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1n.1C("9N U 21");u(1f 8.22==="2Z"&&8.22.4C(/^7E?:\\/\\//)){9 8.7F(8.22,8.3s)}Q u(1f 8.22==="2Z"){9 3C.9E(8.22,8.3s)}Q{9 8.3s(G,8.22)}};B.H.7F=o(3X,1i){I 66;1n.1C("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1A\',o(8f){9 4N+=8f});9 2u.6m(\'1p\',o(){9 1i(G,1k 91(4N,\'8d\'))})});9 66.6m(\'6t\',1i)};B.H.3s=o(3T,1A){u(3T){1P 3T;}8.S=1k 2V();8.S.1b=1A;1n.1C("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));8.F=1k 2L(8.2g(),8.2f());8.1Z=1k 2L(8.2g(),8.2f());9 8.3x()};B.H.7A=o(){8.S=8.22;8.F=1K.2O(\'F\');8.1e=8.F.2b(\'2d\');8.1Z=1K.2O(\'F\');8.3c=8.1Z.2b(\'2d\');1a.3L(8.S,8.F,{5c:[\'1b\']});1a.3L(8.S,8.1Z,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.1Z,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=8.22;8.1e=8.F.2b(\'2d\');8.1Z=1K.2O(\'F\');8.3c=8.1Z.2b(\'2d\');u(8.4n!=G){8.S=1K.2O(\'1g\');8.S.1b=8.4n;8.5Z();9 8.5Y()}Q{9 8.3x()}};B.H.5Z=o(){u(8.5X()){1n.1C(8.S.1b,"->",8.4I());8.7m=2n;8.S.1b=8.4I()}u(1V.7k(8.S)){8.S.1b=1V.3f(8.S.1b);9 1n.1C("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4k()}Q{9 8.S.73=8.4k}};B.H.78=o(){u(!8.S.4D){9 1D}u((8.S.5P!=G)&&8.S.5P===0){9 1D}9 2n};B.H.2g=o(){9 8.S.L||8.S.5P};B.H.2f=o(){9 8.S.R||8.S.an};B.H.4k=o(){1n.1C("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));u(8.7m){8.F.L=8.2g()/8.3K();8.F.R=8.2f()/8.3K();8.1Z.L=8.2g()/8.3K();8.1Z.R=8.2f()/8.3K()}Q{8.F.L=8.2g();8.F.R=8.2f();8.1Z.L=8.2g();8.1Z.R=8.2f()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1e==G){8.1e=8.F.2b(\'2d\')}u(8.3c==G){8.3c=8.1Z.2b(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.R=8.F.R;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1e.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O);8.3c.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O)}8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A;u(B.3J){8.59=1a.3v(8.M.K);8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1F={L:8.F.L,R:8.F.R};u(!B.21){1W.6K(8.1S,8)}8.1i.19(8,8);9 8.1i=o(){}};B.H.6z=o(){8.1T=8.1e.3u(0,0,8.F.L,8.F.R);9 8.M=8.1T.1A};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3J){1P"5E 4y";}8.2J=1a.3v(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1y(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.21||8.F.3w(\'1A-2l-1S\')){9}9 8.F.7n(\'1A-2l-1S\',8.1S)};B.H.6w=o(){9 8.F.3w(\'1A-2l-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.21||!8.5X()){9}2E=8.3K();u(2E!==1){1n.1C("aH 2E = "+2E);8.6R=2n;8.3M=8.F.L;8.3O=8.F.R;8.F.L=8.3M*2E;8.F.R=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.R=""+8.3O+"8u";8.1e.aK(2E,2E);8.L=8.5N=8.F.L;9 8.R=8.5M=8.F.R}};B.H.3K=o(){I 5B,2C;2C=2Y.2C||1;5B=8.1e.aU||8.1e.aV||8.1e.b6||8.1e.b7||8.1e.b8||1;9 2C/5B};B.H.7p=o(){9(2Y.2C!=G)&&2Y.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1D}9 8.4I()!==G};B.H.4I=o(){u(8.S==G){9 G}9 8.S.3w(\'1A-2l-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1e=8.F.2b(\'2d\');8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A;u(B.3J){8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.R=8.F.R;8.6z();9 8.1F={L:8.F.L,R:8.F.R}};B.H.72=o(1i){u(1i==G){1i=o(){}}1N.3a(8,"6Y");9 8.2P.2t((o(Z){9 o(){Z.1Z.L=Z.F.L;Z.1Z.R=Z.F.R;Z.3c.5v(Z.1T,0,0);9 1i.19(Z)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2n}u(!B.3J){1P"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.3c.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,15,M,C,13,E;F=1K.2O(\'F\');1a.3L(8.F,F);F.L=8.5N;F.R=8.5M;2p=F.2b(\'2d\');1T=2p.3u(0,0,F.L,F.R);M=1T.1A;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1D;9 8.4O(F)};B.H.7r=o(){I 4Z,1q,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3J){1P"5E 4y";}52=[];53=0;1q=53+8.L;54=0;5n=54+8.R;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1U+=J[i]}}8.2P.2F({14:V.25.5h,11:11,J:J,1U:1U,26:26});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.25.1R,2w:2w,W:W});9 8};B.H.5j=o(1i){I 1t;1t=1k 23(8);8.5u.1y(1t);8.2P.2F({14:V.25.5k});1i.19(1t);8.2P.2F({14:V.25.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1y(8.49);8.4a.1y(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2i);4J.B=B;B.2N=(o(){o 2N(c){8.c=c}2N.H.bi=o(){I i,29,4e,C,17,1L,E;29={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){29.r[i]=0;29.g[i]=0;29.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1g=4b[C];X.1y(6C=1k 3e(1g,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1K.5D==="4D"){9 B.5r()}Q{9 1K.6L("bb",B.5r,1D)}})()}3e=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3e(2z,6T){8.6U=2z.3w(\'1A-2l\');8.2l=B(2z,6T.5p(8))}3e.H.6H=o(){I W,e,48,39,5w,5x,m,r,47,C,13,E,X;8.2z=8.2l.F;r=1k 7f(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1k 7f(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1k b9("9 o() { 8."+48+"("+W+"); };");5y{39=5x();X.1y(39.19(8.2l))}5z(3D){e=3D;X.1y(1n.1C(e))}}9 X};3e.H.2t=o(){I 2z;2z=8.2z;9 8.2l.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 3e})();B.1z=(o(){o 1z(){}1z.5A={};1z.18=o(11,39){9 8.5A[11]=39};1z.2t=o(11,O,N){9 8.5A[11](O,N)};9 1z})();1z=B.1z;B.1G=(o(){o 1G(){}1G.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1G.7P=o(1j,T,42){I 2A;u(42==G){42=1D}2A=1j+(P.aQ()*(T-1j));u(42){9 2A.aP(42)}Q{9 P.41(2A)}};1G.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1G.1J=o(1l,2X,2W,1p,34,35){I 1J,3o,1H,1q,i,j,3r,4v,2m,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1H=1l;34=2X;35=2W}Q{1H=[1l,2X,2W,1p]}u(1H.K<2){1P"3m 5F 5G Y 2o 1J";}1J={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2m=1H;as(2m.K>1){4v=[];U(j=17=0,E=2m.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1y([3r(2m[j][0],2m[j+1][0],t),3r(2m[j][1],2m[j+1][1],t)])}2m=4v}1J[P.41(2m[0][0])]=P.41(3o(2m[0][1],34,35))}1q=1H[1H.K-1][0];1J=B.1G.5H(1J,1q);u(1J[1q]==G){1J[1q]=1J[1q-1]}9 1J};1G.6I=o(1H,34,35){I 2F,3o,5I,1q,4u,4t,4r,4p,i,j,3r,5J,5K,2M,p,3P,3N,2I,58,56,2a,50,t,C,17,E;u(1H.K<2){1P"3m 5F 5G Y 2o 6I";}2a={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(Z){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2M=(o(Z){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(Z){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1H.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3P=1H[i];3N=1H[i+1];2I=3N[0]-3P[0];58=1/2I;u(i===1H.K-2){58=1/(2I-1)}p=i>0?1H[i-1]:3P;5J=2M(50(3N,p),[0.5,0.5]);p=i<1H.K-2?1H[i+2]:3N;5K=2M(50(p,3P),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2M(3P,[4u,4u]),2M(5J,[4t,4t]),2M(3N,[4r,4r]),2M(5K,[4p,4p]));2a[P.41(56[0])]=P.41(3o(56[1],34,35));5I+=1}}1q=1H[1H.K-1][0];2a=B.1G.5H(2a,1q);9 2a};1G.5H=o(3g,1q){I i,j,3I,2a,4W,C,17;u(7W.ah(3g).K<1q+1){2a={};U(i=C=0;0<=1q?C<=1q:C>=1q;i=0<=1q?++C:--C){u(3g[i]!=G){2a[i]=3g[i]}Q{3I=[i-1,2a[i-1]];U(j=17=i;i<=1q?17<=1q:17>=1q;j=i<=1q?++17:--17){u(3g[j]!=G){4W=[j,3g[j]];31}}2a[i]=3I[1]+((4W[1]-3I[1])/(4W[0]-3I[0]))*(i-3I[0])}}9 2a}9 3g};9 1G})();1G=B.1G;B.1s=(o(){o 1s(){}1s.5d=o(2h){I b,g,r;u(2h.ae(0)==="#"){2h=2h.4U(1)}r=51(2h.4U(0,2),16);g=51(2h.4U(2,2),16);b=51(2h.4U(4,2),16);9{r:r,g:g,b:b}};1s.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}Q{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1s.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}Q{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}Q{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}Q{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}Q{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1o,y:y*1o,z:z*1o}};1s.9S=o(x,y,z){I b,g,r;x/=1o;y/=1o;z/=1o;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}Q{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}Q{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}Q{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1s.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1o.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}Q{x=(7.6f*x)+0.3z}u(y>0.6d){y=P.1Y(y,0.6e)}Q{y=(7.6f*y)+0.3z}u(z>0.6d){z=P.1Y(z,0.6e)}Q{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1s.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}Q{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}Q{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}Q{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1o.0,z:z*7R.7S}};1s.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1s.9t=o(l,a,b){};9 1s})();1s=B.1s;B.1N=(o(){o 1N(){}1N.3b={};1N.87=["88","89","6Y","8a","8b","3Q"];1N.3a=o(24,14,1A){I 3S,C,13,E,X;u(1A==G){1A=G}u(8.3b[14]&&8.3b[14].K){E=8.3b[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.24===G||24.1S===3S.24.1S){X.1y(3S.2r.19(24,1A))}Q{X.1y(9p 0)}}9 X}};1N.9n=o(24,14,2r){I 6n,5e;u(1f 24==="2Z"){5e=24;6n=14;24=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1D}u(!8.3b[14]){8.3b[14]=[]}8.3b[14].1y({24:24,2r:2r});9 2n};9 1N})();1N=B.1N;B.V=(o(){o V(){}V.25={6o:1,5h:2,5k:3,5l:4,6p:5,1R:6};V.18=o(11,8j){9 B.H[11]=8j};9 V})();V=B.V;B.1V=(o(){o 1V(){}1V.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1V.7k=o(1g){u(1g==G){9 1D}u(8.8l(1g)){9 1D}9 8.4q(1g.1b)};1V.8l=o(1g){I E;9(1g.5O!=G)&&((E=1g.5O.3Z())===\'86\'||E===\'8n-9m\')};1V.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1K.9k}Q{9 1D}};1V.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1n.6q("9f 2o 9e a 8v S 93 a 90 8y. 79: "+1b)}Q{u(B.4q(B.4A)){1n.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3f(1b)}}};1V.3f=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1V.8G=o(38){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};38=38.3Z();u(5b[38]!=G){38=5b[38]}9"8O/8P."+38};9 1V})();B.H.8Q=o(){u(1f 1X!=="33"&&1X!==G){9 8.8C.2G(8,Y)}Q{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1K.8Y.8Z=S};B.H.8C=o(3q,57,1i){I e,6s;u(57==G){57=2n}u(1i==G){1i=G}5y{6s=3C.94(3q);u(6s.96()&&!57){9 1D}}5z(3D){e=3D;1n.1C("97 98 3q "+3q)}9 3C.99(3q,8.F.9a(),o(3T){1n.1C("9b 9c 2o "+3q);u(1i){9 1i.19(8,3T)}})};B.H.7q=o(14){I 1g;1g=1k 2V();1g.1b=8.6u(14);1g.L=8.1F.L;1g.R=8.1F.R;u(2Y.2C){1g.L/=2Y.2C;1g.R/=2Y.2C}9 1g};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.1Z.9d("S/"+14)};1V=B.1V;B.23=(o(){o 23(c){8.c=c;8.48=8.c;8.1c={6r:\'8t\',2Q:1.0};8.9h=1a.5q.2D();8.F=1f 1X!=="33"&&1X!==G?1k 2L():1K.2O(\'F\');8.F.L=8.c.1F.L;8.F.R=8.c.1F.R;8.1e=8.F.2b(\'2d\');8.1e.9i(8.F.L,8.F.R);8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A}23.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};23.H.9j=o(8q){8.1c.6r=8q;9 8};23.H.2Q=o(2Q){8.1c.2Q=2Q/1o;9 8};23.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2j<0){9 1k 1r(0,0,0,D,8.c)}9 8.65(2j)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1P"3l a 3k 1e";}7D=8.1m+(8.c.1F.L*4*(4E*-1))+(4*4F);u(2j>8.c.M.K||2j<0){9}8.c.M[2j]=A.r;8.c.M[2j+1]=A.g;8.c.M[2j+2]=A.b;8.c.M[2j+3]=A.a;9 2n};1r.H.9J=o(x,y){I 1m;u(8.c==G){1P"3l a 3k 1e";}1m=8.6h(x,y,8.L);9 8.65(1m)};1r.H.9K=o(x,y,A){I 1m;u(8.c==G){1P"3l a 3k 1e";}1m=8.6h(x,y,8.L);8.c.M[1m]=A.r;8.c.M[1m+1]=A.g;8.c.M[1m+2]=A.b;9 8.c.M[1m+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2h;u(4B==G){4B=1D}2h=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2h+8.a.3t(16)}Q{9 2h}};9 1r})();1r=B.1r;B.1R=(o(){o 1R(){}1R.64={};1R.18=o(11,2w){9 8.64[11]=2w};1R.2t=o(1e,11,W){9 8.64[11].2G(1e,W)};9 1R})();1R=B.1R;B.1h=(o(){1h.2T=B.21?4i(\'9Q\').9R().K:4;o 1h(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1h.H.2F=o(62){u(62==G){9}9 8.3V.1y(62)};1h.H.2B=o(){I 1t;u(8.3V.K===0){1N.3a(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1x=8.3V.7v();3p(8.1x.14){1v V.25.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.25.5l:8.c.6D();8.c.6x();9 8.2B();1v V.25.6p:9 8.7u(8.1x.1t,8.1x.1b);1v V.25.1R:9 8.7t();a0:9 8.7s()}};1h.H.2t=o(1i){8.61=1i;8.32=1a.3v(8.c.M.K);9 8.2B()};1h.H.60=o(2r){I 40,5V,1O,1p,f,i,5U,n,1l,C,E,X;8.4R=0;n=8.c.M.K;5V=P.2K((n/4)/1h.2T);40=5V*4;5U=40+((n/4)%1h.2T)*4;X=[];U(i=C=0,E=1h.2T;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1p=1l+(i===1h.2T-1?5U:40);u(B.21){f=45((o(Z){9 o(){9 2r.19(Z,i,1l,1p)}})(8));1O=f.a9();X.1y(8.3Q(1O))}Q{X.1y(4s((o(Z){9 o(i,1l,1p){9 o(){9 2r.19(Z,i,1l,1p)}}})(8)(i,1l,1p),0))}}9 X};1h.H.7s=o(){1N.3a(8.c,"88",8.1x);u(8.1x.14===V.25.6o){9 8.60(8.7d)}Q{9 8.60(8.7a)}};1h.H.7t=o(){1n.1C("ac 2w "+8.1x.2w);1R.2t(8.c,8.1x.2w,8.1x.W);1n.1C("1R "+8.1x.2w+" 5S!");9 8.2B()};1h.H.7d=o(1O,1l,1p){I i,15,C;1n.1C("77 #"+1O+" - V: "+8.1x.11+", af: "+1l+", ag: "+1p);1N.3a(8.c,"8b",{74:1O,71:1h.2T,ai:1l,aj:1p});15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1x.5a(15);8.c.M[i]=1a.2e(15.r);8.c.M[i+1]=1a.2e(15.g);8.c.M[i+2]=1a.2e(15.b);8.c.M[i+3]=1a.2e(15.a)}u(B.21){9 45["70"](1O)}Q{9 8.3Q(1O)}};1h.H.7a=o(1O,1l,1p){I J,43,26,1M,3n,1U,i,j,k,2k,n,11,p,15,2u,C,17,1L;11=8.1x.11;26=8.1x.26;1U=8.1x.1U;n=8.c.M.K;J=8.1x.J;43=P.7N(J.K);2k=[];1n.1C("aq 2k - V: "+8.1x.11);1l=P.T(1l,8.c.1F.L*4*((43-1)/2));1p=P.1j(1p,n-(8.c.1F.L*4*((43-1)/2)));1M=(43-1)/2;15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;3n=0;U(j=17=-1M;-1M<=1M?17<=1M:17>=1M;j=-1M<=1M?++17:--17){U(k=1L=1M;1M<=-1M?1L<=-1M:1L>=-1M;k=1M<=-1M?++1L:--1L){p=15.7G(j,k);2k[3n*3]=p.r;2k[3n*3+1]=p.g;2k[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2k,1U,26);8.32[i]=1a.2e(2u.r);8.32[i+1]=1a.2e(2u.g);8.32[i+2]=1a.2e(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.21){9 45["70"](1O)}Q{9 8.3Q(1O)}};1h.H.3Q=o(1O){I i,C,E;u(1O>=0){1n.1C("77 #"+1O+" 5S! V: "+8.1x.11)}8.4R++;1N.3a(8.c,"3Q",{74:1O,ar:8.4R,71:1h.2T});u(8.4R===1h.2T){u(8.1x.14===V.25.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1O>=0){1n.1C("V "+8.1x.11+" 5S!")}1N.3a(8.c,"89",8.1x);9 8.2B()}};1h.H.5Q=o(J,2k,1U,26){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2k[i*3];1w.g+=J[i]*2k[i*3+1];1w.b+=J[i]*2k[i*3+2]}1w.r=(1w.r/1U)+26;1w.g=(1w.g/1U)+26;1w.b=(1w.b/1U)+26;9 1w};1h.H.7u=o(1t,1b){I 1g,3f;1g=1k 2V();1g.73=(o(Z){9 o(){1t.1e.46(1g,0,0,Z.c.1F.L,Z.c.1F.R);1t.1T=1t.1e.3u(0,0,Z.c.1F.L,Z.c.1F.R);1t.M=1t.1T.1A;Z.c.M=1t.M;9 Z.2B()}})(8);3f=1V.8r(1b);9 1g.1b=3f!=G?3f:1b};9 1h})();1h=B.1h;B.1W=(o(){o 1W(){}1W.3h={};1W.6P=o(2U){9 8.3h[2U]!=G};1W.2D=o(2U){9 8.3h[2U]};1W.6K=o(11,1I){9 8.3h[11]=1I};1W.2t=o(2U,1i){4s((o(Z){9 o(){9 1i.19(Z.2D(2U),Z.2D(2U))}})(8),0);9 8.2D(2U)};1W.at=o(11){u(11==G){11=1D}u(11){9 6E 8.3h[11]}Q{9 8.3h={}}};9 1W})();1W=B.1W;1z.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1z.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1z.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1z.18("ax",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1d.g=N.g>1u?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1d.b=N.b>1u?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1d});1z.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1z.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1z.18("aB",o(O,N){9{r:1u-2*(N.r-1u)*(O.r-1u)/D,g:1u-2*(N.g-1u)*(O.g-1u)/D,b:1u-2*(N.b-1u)*(O.b-1u)/D}});1z.18("aC",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-((D-N.r)*(D-(O.r-1u)))/D:(N.r*(O.r+1u))/D;1d.g=N.g>1u?D-((D-N.g)*(D-(O.g-1u)))/D:(N.g*(O.g+1u))/D;1d.b=N.b>1u?D-((D-N.b)*(D-(O.b-1u)))/D:(N.b*(O.b+1u))/D;9 1d});1z.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1z.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Y",o(){I 3E;u(Y.K===1){3E=1s.5d(Y[0])}Q{3E={r:Y[0],g:Y[1],b:Y[2]}}9 8.1Q("4Y",o(A){A.r=3E.r;A.g=3E.g;A.b=3E.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2K(D*(J/1o));9 8.1Q("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1Q("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1Q("8s",o(A){I 4l,2S,T;T=P.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;4l=((P.2R(T-2S)*2/D)*J)/1o;u(A.r!==T){A.r+=(T-A.r)*4l}u(A.g!==T){A.g+=(T-A.g)*4l}u(A.b!==T){A.b+=(T-A.b)*4l}9 A})});V.18("8e",o(J){9 8.1Q("8e",o(A){I 2S;2S=1G.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=P.1Y((J+1o)/1o,2);9 8.1Q("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1Q("81",o(A){I b,g,h,37,r,E;37=1s.7g(A.r,A.g,A.b);h=37.h*1o;h+=P.2R(J);h=h%1o;h/=1o;37.h=h;E=1s.7i(37.h,37.s,37.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,30;u(Y.K===2){30=1s.5d(Y[0]);3j=Y[1]}Q u(Y.K===4){30={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1Q("7U",o(A){A.r-=(A.r-30.r)*(3j/1o);A.g-=(A.g-30.g)*(3j/1o);A.b-=(A.b-30.b)*(3j/1o);9 A})});V.18("7O",o(){9 8.1Q("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1o}J/=1o;9 8.1Q("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1Q("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2R(J)*2.55;9 8.1Q("7y",o(A){I 2A;2A=1G.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2R(J)*2.55;9 8.1Q("7x",o(A){u(A.r>D-J){A.r=D}Q u(A.rD-J){A.g=D}Q u(A.gD-J){A.b=D}Q u(A.b0){A.r+=(D-A.r)*1c.4S}Q{A.r-=A.r*P.2R(1c.4S)}}u(1c.4M!=G){u(1c.4M>0){A.g+=(D-A.g)*1c.4M}Q{A.g-=A.g*P.2R(1c.4M)}}u(1c.4G!=G){u(1c.4G>0){A.b+=(D-A.b)*1c.4G}Q{A.b-=A.b*P.2R(1c.4G)}}9 A})});V.18("4z",o(){I 4g,1J,2s,2c,1p,i,3F,1l,C,17,E,2q;2s=Y[0],2c=2<=Y.K?3B.19(Y,1):[];3F=2c[2c.K-1];u(1f 3F==="o"){4g=3F;2c.3U()}Q u(1f 3F==="2Z"){4g=1G[3F];2c.3U()}Q{4g=1G.1J}u(1f 2s==="2Z"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2c.K<2){1P"3m 5F 5G Y 2o 4z 48";}1J=4g(2c,0,D);1l=2c[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1J[i]=1l[1]}}1p=2c[2c.K-1];u(1p[0]=D;i=2q<=D?++17:--17){1J[i]=1p[1]}}9 8.1Q("4z",o(A){I 1L,2y;U(i=1L=0,2y=2s.K;0<=2y?1L<2y:1L>2y;i=0<=2y?++1L:--1L){A[2s[i]]=1J[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2X,2W,p;p=P.2R(J)/1o;2X=[0,D*p];2W=[D-(D*p),D];u(J<0){2X=2X.6O();2W=2W.6O()}9 8.4z(\'30\',[0,0],2X,2W,[D,D])});B.1R.18("5g",o(L,R,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1X!=="33"&&1X!==G){F=1k 2L(L,R)}Q{F=1K.2O(\'F\');1a.3L(8.F,F);F.L=L;F.R=R}2p=F.2b(\'2d\');2p.46(8.F,x,y,L,R,0,0,L,R);8.5m={x:x,y:y};8.82=2n;9 8.4O(F)});B.1R.18("4H",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.L==G)&&(1E.R==G))){1n.6t("3m 7h bp 1F 6M U 4H");9}u(1E.L==G){1E.L=8.F.L*1E.R/8.F.R}Q u(1E.R==G){1E.R=8.F.R*1E.L/8.F.L}u(1f 1X!=="33"&&1X!==G){F=1k 2L(1E.L,1E.R)}Q{F=1K.2O(\'F\');1a.3L(8.F,F);F.L=1E.L;F.R=1E.R}2p=F.2b(\'2d\');2p.46(8.F,0,0,8.F.L,8.F.R,0,0,1E.L,1E.R);8.5s=2n;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|Math|else|height|image|max|for|Filter|args|_results|arguments|_this||name||_len|type|pixel||_j|register|call|Util|src|options|result|context|typeof|img|Renderer|callback|min|new|start|loc|Log|100|end|endX|Pixel|Convert|layer|128|case|val|currentJob|push|Blender|data|key|debug|false|newDims|dimensions|Calculate|controlPoints|obj|bezier|document|_k|builder|Event|bnum|throw|process|Plugin|id|imageData|divisor|IO|Store|exports|pow|renderingCanvas|parentData|NodeJS|initObj|Layer|target|Type|bias||055|levels|ret|getContext|cps||clampRGB|imageHeight|imageWidth|hex|Module|newLoc|kernel|caman|prev|true|to|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|Canvas|mul|Analyze|createElement|renderer|opacity|abs|avg|Blocks|search|Image|ctrl2|ctrl1|window|string|rgb|break|modPixelData|undefined|lowBound|highBound|layerData|hsv|lang|func|trigger|events|renderingContext|in|CamanParser|proxyUrl|values|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|getImageData|dataArray|getAttribute|finishInit|cb|1379310345|chan|__slice|fs|_error|color|last|child|parent|leftCoord|allowRevert|hiDPIRatio|copyAttributes|preScaledWidth|p1|preScaledHeight|p0|blockFinished|__hasProp|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|Fiber|drawImage|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|amt|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|hiDPIReplacement|Root|sel|root|green|buf|replaceCanvas|Logger|hueToRGB|blocksDone|red|INST_REGEX|substr|updateContext|rightCoord|dest|fillColor|coord|sub|parseInt|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 3a89078c..85a82ba1 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -22,16 +22,19 @@ module.exports = function(config) { {pattern: 'test/ext/grey.png', watched: false, included: false} ], - // list of files to exclude exclude: [ ], + preprocessors: { + '**/*.coffee': 'coffee' + }, + // test results reporter to use // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage' - reporters: ['progress'], + reporters: ['dots'], // web server port diff --git a/package.json b/package.json index 62506b18..fd4b3d4f 100644 --- a/package.json +++ b/package.json @@ -60,11 +60,12 @@ "servedir": "*", "cli": "*", "cli-table": "*", - "karma": "~ 0.10", - "karma-mocha": "*" + "karma": "*", + "karma-mocha": "*", + "canvas": "*" }, "scripts": { - "test": "./node_modules/mocha/bin/mocha --compilers coffee:coffee-script --reporter spec --globals Caman ./test/unit/*.coffee && ./node_modules/.bin/karma start --single-run --browsers Firefox", + "test": "./node_modules/mocha/bin/mocha --compilers coffee:coffee-script/register --reporter spec --globals Caman ./test/unit/*.coffee && ./node_modules/karma/bin/karma start --single-run --browsers Firefox", "examples": "./node_modules/servedir/bin/servedir", "docs": "codo", "docs-server": "codo --server" diff --git a/src/core/caman.coffee b/src/core/caman.coffee index 391ebd99..090a6240 100644 --- a/src/core/caman.coffee +++ b/src/core/caman.coffee @@ -262,6 +262,7 @@ class Caman extends Module Log.debug "Image loaded. Width = #{@imageWidth()}, Height = #{@imageHeight()}" @canvas = new Canvas @imageWidth(), @imageHeight() + @renderingCanvas = new Canvas @imageWidth(), @imageHeight() @finishInit() # Initialization function for the browser and image objects. @@ -362,6 +363,7 @@ class Caman extends Module # draw the image to the canvas (if applicable). finishInit: -> @context = @canvas.getContext '2d' unless @context? + @renderingContext = @renderingCanvas.getContext '2d' unless @renderingContext? @originalWidth = @preScaledWidth = @width = @canvas.width @originalHeight = @preScaledHeight = @height = @canvas.height From fae834e632647550e1db79a648234307f83bb6a3 Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Mon, 5 Jan 2015 12:29:37 +0100 Subject: [PATCH 07/12] Fix init from existing canvas element --- dist/caman.full.js | 4 ++-- dist/caman.full.min.js | 2 +- dist/caman.full.pack.js | 2 +- dist/caman.js | 4 ++-- dist/caman.min.js | 2 +- dist/caman.pack.js | 2 +- src/core/caman.coffee | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/dist/caman.full.js b/dist/caman.full.js index 544aa233..23401e0d 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -411,9 +411,9 @@ }; Caman.prototype.initCanvas = function() { - this.canvas = this.initObj; + this.canvas = document.createElement('canvas'); this.context = this.canvas.getContext('2d'); - this.renderingCanvas = document.createElement('canvas'); + this.renderingCanvas = this.initObj; this.renderingContext = this.renderingCanvas.getContext('2d'); if (this.imageUrl != null) { this.image = document.createElement('img'); diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index 46a45f88..167192d2 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -33,7 +33,7 @@ if(typeof obj==="object"){this.initObj=obj;}else{this.initObj=$(obj);} if(this.initObj==null){throw"Could not find image or canvas for initialization.";} return this.initType=this.initObj.nodeName.toLowerCase();};Caman.prototype.setup=function(){switch(this.initType){case"node":return this.initNode();case"img":return this.initImage();case"canvas":return this.initCanvas();}};Caman.prototype.initNode=function(){Log.debug("Initializing for NodeJS");if(typeof this.initObj==="string"&&this.initObj.match(/^https?:\/\//)){return this.readFromHttp(this.initObj,this.nodeFileReady);}else if(typeof this.initObj==="string"){return fs.readFile(this.initObj,this.nodeFileReady);}else{return this.nodeFileReady(null,this.initObj);}};Caman.prototype.readFromHttp=function(url,callback){var req;Log.debug("Fetching image from "+url);req=http.get(url,function(res){var buf;buf='';res.setEncoding('binary');res.on('data',function(chunk){return buf+=chunk;});return res.on('end',function(){return callback(null,new Buffer(buf,'binary'));});});return req.on('error',callback);};Caman.prototype.nodeFileReady=function(err,data){if(err){throw err;} this.image=new Image();this.image.src=data;Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));this.canvas=new Canvas(this.imageWidth(),this.imageHeight());this.renderingCanvas=new Canvas(this.imageWidth(),this.imageHeight());return this.finishInit();};Caman.prototype.initImage=function(){this.image=this.initObj;this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');Util.copyAttributes(this.image,this.canvas,{except:['src']});Util.copyAttributes(this.image,this.renderingCanvas,{except:['src']});if(this.image.parentNode!=null){this.image.parentNode.replaceChild(this.renderingCanvas,this.image);} -this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=this.initObj;this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} +this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=this.initObj;this.renderingContext=this.renderingCanvas.getContext('2d');if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} diff --git a/dist/caman.full.pack.js b/dist/caman.full.pack.js index 3bfda836..39dcc82b 100644 --- a/dist/caman.full.pack.js +++ b/dist/caman.full.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4K,2m,2b,D,5c,3Q,1X,2L,6x,R,2V,4J,3b,1Y,3H,1Z,2t,1R,7O,32,1u,fs,6N,81,5d,8V,6F=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.52=A(4D,3G,G){M 6J,H,1n,K,44,1o;B(G==L){G={}}K=4D.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6J=K[H];B((G.7g!=L)&&(44=6J.9Q,6F.1x(G.7g,44)>=0)){5G}1o.2j(3G.bh(6J.9Q,6J.fP))}u 1o};1u.6b=A(P){B(P==L){P=0}B(D.2Z||(4Q.ca!=L)){u 1y ca(P)}u 1y 5u(P)};u 1u})();B(1s 2h!=="41"&&2h!==L){7O=2h;3Q=6u(\'I\');4J=3Q.4J;6x=6u(\'fO\');fs=6u(\'fs\');6N=6u(\'6N\')}S{7O=4Q}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5Q=2J;D.9C="c3";D.7F="";D.c5="fH";D.2Z=1s 2h!=="41"&&2h!==L;D.ce=!D.2Z;D.5M=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Z){u 2J}B(1s I==="3j"){I=$(I)}B(!((I!=L)&&(I.5F!=L))){u L}u I.5F(\'2a-3K-2W\')};A D(){o.5D=8Q(o.5D,o);M 1l,1Q,2W;B(1k.P===0){2K"5z 1k";}B(o aT D){o.5y=o.5y.9y(o);o.6R=o.6R.9y(o);1l=1k[0];B(!D.2Z){2W=4q(D.9z(1l[0]),10);1Q=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2W)&&32.bR(2W)){u 32.3T(2W,1Q)}}o.2W=1u.9L.4o();o.7G=o.4P=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6U=[];o.9t=[];o.9s=[];o.6w=L;o.d6=2k;o.fz=1y 4K(o);o.4E=1y 1R(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Z){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2o.9p==="7J"){1Y.2u("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2o.9p==="7J"){1Y.2u("aU aW");u cb.1x(1r)}}})(o);u 2o.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2r,2f,K,1o;B(1l.P===0){2K"5z 1k be";}o.3c=L;o.7K=L;o.7L=L;o.1Q=A(){};o.bo(1l[0]);B(1l.P===1){u}5B(1s 1l[1]){28"3j":o.7L=1l[1];56;28"A":o.1Q=1l[1]}B(1l.P===2){u}o.1Q=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2r 57 K){B(!72.1x(K,2r))5G;2f=K[2r];1o.2j(o.1G[2r]=2f)}u 1o}};D.N.bo=A(2B){B(D.2Z){o.3c=2B;o.7K=\'bS\';u}B(1s 2B==="3S"){o.3c=2B}S{o.3c=$(2B)}B(o.3c==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3c.9Q.6r()};D.N.as=A(){5B(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1Y.2u("fr W 2Z");B(1s o.3c==="3j"&&o.3c.82(/^cA?:\\/\\//)){u o.cD(o.3c,o.5D)}S B(1s o.3c==="3j"){u fs.fp(o.3c,o.5D)}S{u o.5D(L,o.3c)}};D.N.cD=A(6H,1Q){M 9g;1Y.2u("fm 1d 4D "+6H);9g=6N.4o(6H,A(4e){M 83;83=\'\';4e.fl(\'d7\');4e.9e(\'2a\',A(a7){u 83+=a7});u 4e.9e(\'1M\',A(){u 1Q(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1Q)};D.N.5D=A(6v,2a){B(6v){2K 6v;}o.1d=1y 4J();o.1d.1E=2a;1Y.2u("4J au. ay = "+(o.3I())+", aL = "+(o.3J()));o.I=1y 3Q(o.3I(),o.3J());o.2Y=1y 3Q(o.3I(),o.3J());u o.5y()};D.N.cl=A(){o.1d=o.3c;o.I=2o.3E(\'I\');o.1j=o.I.3d(\'2d\');o.2Y=2o.3E(\'I\');o.5g=o.2Y.3d(\'2d\');1u.52(o.1d,o.I,{7g:[\'1E\']});1u.52(o.1d,o.2Y,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.2Y,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=o.3c;o.1j=o.I.3d(\'2d\');o.2Y=2o.3E(\'I\');o.5g=o.2Y.3d(\'2d\');B(o.7L!=L){o.1d=2o.3E(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5y()}};D.N.9b=A(){B(o.99()){1Y.2u(o.1d.1E,"->",o.89());o.bi=2J;o.1d.1E=o.89()}B(2V.bj(o.1d)){o.1d.1E=2V.5l(o.1d.1E);u 1Y.2u("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9a=A(){B(o.bJ()){u o.6R()}S{u o.1d.bP=o.6R}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2J};D.N.3I=A(){u o.1d.F||o.1d.94};D.N.3J=A(){u o.1d.J||o.1d.fg};D.N.6R=A(){1Y.2u("4J au. ay = "+(o.3I())+", aL = "+(o.3J()));B(o.bi){o.I.F=o.3I()/o.6p();o.I.J=o.3J()/o.6p();o.2Y.F=o.3I()/o.6p();o.2Y.J=o.3J()/o.6p()}S{o.I.F=o.3I();o.I.J=o.3J();o.2Y.F=o.3I();o.2Y.J=o.3J()}u o.5y()};D.N.5y=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3d(\'2d\')}B(o.5g==L){o.5g=o.2Y.3d(\'2d\')}o.8b=o.6o=o.F=o.I.F;o.8c=o.6i=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.6f(o.1d,0,0,o.3I(),o.3J(),0,0,o.6o,o.6i);o.5g.6f(o.1d,0,0,o.3I(),o.3J(),0,0,o.6o,o.6i)}o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.7G=1u.6b(o.T.P);o.4P=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4P[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Z){32.cs(o.2W,o)}o.1Q.1x(o,o);u o.1Q=A(){}};D.N.cy=A(){o.2T=o.1j.4V(0,0,o.I.F,o.I.J);u o.T=o.2T.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5Q){2K"8Y 8d";}o.4P=1u.6b(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4P[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Z||o.I.5F(\'2a-3K-2W\')){u}u o.I.bh(\'2a-3K-2W\',o.2W)};D.N.cH=A(){u o.I.5F(\'2a-3K-cK-8d\')!==L};D.N.cf=A(){M 4p;B(D.2Z||!o.99()){u}4p=o.6p();B(4p!==1){1Y.2u("fe 4p = "+4p);o.d6=2J;o.6o=o.I.F;o.6i=o.I.J;o.I.F=o.6o*4p;o.I.J=o.6i*4p;o.I.cN.F=""+o.6o+"cQ";o.I.cN.J=""+o.6i+"cQ";o.1j.fd(4p,4p);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6p=A(){M 8W,4g;4g=4Q.4g||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4g/8W};D.N.a8=A(){u(4Q.4g!=L)&&4Q.4g!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5F(\'2a-3K-cK\')};D.N.6D=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3d(\'2d\');o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.4P=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4P[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1Q){B(1Q==L){1Q=A(){}}2L.5j(o,"ai");u o.4E.3T((A(1r){u A(){1r.2Y.F=1r.I.F;1r.2Y.J=1r.I.J;1r.5g.8S(1r.2T,0,0);u 1Q.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2J}B(!D.5Q){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.5g.8S(o.2T,0,0)}};D.N.f6=A(){M I,2I,i,2T,1w,T,H,1n,K;I=2o.3E(\'I\');1u.52(o.I,I);I.F=o.8b;I.J=o.8c;2I=I.3d(\'2d\');2T=2I.4V(0,0,I.F,I.J);T=2T.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2I.8S(2T,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6D(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,44,4m;B(!D.5Q){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4P;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2P+=Q[i]}}o.4E.4f({1v:R.3k.8I,1p:1p,Q:Q,2P:2P,3e:3e});u o};D.N.51=A(4b,1l){o.4E.4f({1v:R.3k.2t,4b:4b,1l:1l});u o};D.N.33=A(1Q){M 2g;2g=1y 3b(o);o.9s.2j(2g);o.4E.4f({1v:R.3k.8H});1Q.1x(2g);o.4E.4f({1v:R.3k.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6w);o.6U.2j(o.T);o.6w=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6U.6s();u o.6w=o.9t.6s()};D.N.c1=A(){u o.6w.c2()};u D})(3H);7O.D=D;D.4K=(A(){A 4K(c){o.c=c}4K.N.f5=A(){M i,3y,6L,H,1f,1H,K;3y={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3y.r[i]=0;3y.g[i]=0;3y.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6q.P;H<1n;H++){1P=6q[H];1o.2j(cj=1y 5c(1P,A(){o.ck();u o.3T()}))}u 1o};B(D.ce){(A(){B(2o.9p==="7J"){u D.9m()}S{u 2o.aX("f3",D.9m,2k)}})()}5c=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 5c(4u,ct){o.cw=4u.5F(\'2a-3K\');o.3K=D(4u,ct.9y(o))}5c.N.ck=A(){M 1l,e,1C,5b,8K,8L,m,r,6G,H,1n,K,1o;o.4u=o.3K.I;r=1y cJ(8v,\'g\');6G=o.cw.82(r);B(!(6G.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6G.P;H<1n;H++){8K=6G[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{5b=8L();1o.2j(5b.1x(o.3K))}8N(6h){e=6h;1o.2j(1Y.2u(e))}}u 1o};5c.N.3T=A(){M 4u;4u=o.4u;u o.3K.ac(A(){u 4u.9c.aY(o.cO(),4u)})};u 5c})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,5b){u o.8P[1p]=5b};2m.3T=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.5a=A(6V,6W,6Y,71){u O.8l(O.1T(6Y-6V,2)+O.1T(71-6W,2))};2b.ab=A(1S,1e,6t){M 4h;B(6t==L){6t=2k}4h=1S+(O.f1()*(1e-1S));B(6t){u 4h.f0(6t)}S{u O.5C(4h)}};2b.6y=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4L,4M,1M,54,53){M 29,5S,2A,26,i,j,5E,1N,3R,t,H,1f,K;B(54==L){54=0}B(53==L){53=E}B(1J[0]aT 5u){2A=1J;54=4L;53=4M}S{2A=[1J,4L,4M,1M]}B(2A.P<2){2K"5z 8e 8X 1k 3G 29";}29={};5E=A(a,b,t){u a*(1-t)+b*t};5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1N=[];W(j=1f=0,K=3R.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1N.2j([5E(3R[j][0],3R[j+1][0],t),5E(3R[j][1],3R[j+1][1],t)])}3R=1N}29[O.5C(3R[0][0])]=O.5C(5S(3R[0][1],54,53))}26=2A[2A.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2A,54,53){M 4f,5S,98,26,88,86,85,84,i,j,5E,9f,9h,4O,p,5r,5x,4H,7Z,7Y,3u,7W,t,H,1f,K;B(2A.P<2){2K"5z 8e 8X 1k 3G bE";}3u={};5E=A(a,b,t){u a*(1-t)+b*t};4f=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4O=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};98=0;W(i=H=0,K=2A.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5r=2A[i];5x=2A[i+1];4H=5x[0]-5r[0];7Z=1/4H;B(i===2A.P-2){7Z=1/(4H-1)}p=i>0?2A[i-1]:5r;9f=4O(7W(5x,p),[0.5,0.5]);p=i<2A.P-2?2A[i+2]:5x;9h=4O(7W(p,5r),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4f(4O(5r,[88,88]),4O(9f,[86,86]),4O(5x,[85,85]),4O(9h,[84,84]));3u[O.5C(7Y[0])]=O.5C(5S(7Y[1],54,53));98+=1}}26=2A[2A.P-1][0];3u=D.2b.91(3u,26);u 3u};2b.91=A(58,26){M i,j,5T,3u,7V,H,1f;B(bk.eX(58).P<26+1){3u={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(58[i]!=L){3u[i]=58[i]}S{5T=[i-1,3u[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(58[j]!=L){7V=[j,58[j]];56}}3u[i]=5T[1]+((7V[1]-5T[1])/(7V[0]-5T[0]))*(i-5T[0])}}u 3u}u 58};u 2b})();2b=D.2b;D.1X=(A(){A 1X(){}1X.7U=A(3N){M b,g,r;B(3N.eW(0)==="#"){3N=3N.59(1)}r=4q(3N.59(0,2),16);g=4q(3N.59(2,2),16);b=4q(3N.59(4,2),16);u{r:r,g:g,b:b}};1X.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5B(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1X.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5B(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3w)/1.3w,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3w)/1.3w,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3w)/1.3w,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1X.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3w*O.1T(r,0.9q))-0.3w}S{r*=12.92}B(g>0.9n){g=(1.3w*O.1T(g,0.9q))-0.3w}S{g*=12.92}B(b>0.9n){b=(1.3w*O.1T(b,0.9q))-0.3w}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1X.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="3S"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5X}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5X}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5X}l=aQ*y-16;a=aR*(x-y);b=5Y*(y-z);u{l:l,a:a,b:b}};1X.eD=A(l,a,b){M x,y,z;B(1s l==="3S"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5Y);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5X)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5X)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5X)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1X.eC=A(r,g,b){M 9V;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1X.eB=A(l,a,b){};u 1X})();1X=D.1X;D.2L=(A(){A 2L(){}2L.5k={};2L.b1=["b6","bb","ai","bc","bd","65"];2L.5j=A(38,1v,2a){M 6E,H,1n,K,1o;B(2a==L){2a=L}B(o.5k[1v]&&o.5k[1v].P){K=o.5k[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6E=K[H];B(6E.38===L||38.2W===6E.38.2W){1o.2j(6E.fn.1x(38,2a))}S{1o.2j(bg 0)}}u 1o}};2L.eA=A(38,1v,fn){M 9W,9X;B(1s 38==="3j"){9X=38;9W=1v;38=L;1v=9X;fn=9W}B(6F.1x(o.b1,1v)<0){u 2k}B(!o.5k[1v]){o.5k[1v]=[]}o.5k[1v].2j({38:38,fn:fn});u 2J};u 2L})();2L=D.2L;D.R=(A(){A R(){}R.3k={8J:1,8I:2,8H:3,8G:4,9Y:5,2t:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2V=(A(){A 2V(){}2V.bm=/(?:(?:6N|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2V.bj=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2V.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6r())===\'c3\'||K===\'bp-ez\')};2V.7h=A(6H){M 7d;7d=6H.82(o.bm);B(7d){u 7d[1]!==2o.ey}S{u 2k}};2V.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1Y.a2("ex 3G ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7h(D.7F)){1Y.a2("es bp a bH bK W er eq.");u}u o.5l(1E)}}};2V.5l=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2V.eo=A(5p){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5p=5p.6r();B(8z[5p]!=L){5p=8z[5p]}u"ee/ed."+5p};u 2V})();D.N.c6=A(){B(1s 2h!=="41"&&2h!==L){u o.c7.49(o,1k)}S{u o.c8.49(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6r();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2o.e9.e8=1d};D.N.c7=A(6d,7b,1Q){M e,a1;B(7b==L){7b=2J}B(1Q==L){1Q=L}8M{a1=fs.e7(6d);B(a1.e6()&&!7b){u 2k}}8N(6h){e=6h;1Y.2u("e5 e4 6d "+6d)}u fs.e3(6d,o.I.e2(),A(6v){1Y.2u("e1 e0 3G "+6d);B(1Q){u 1Q.1x(o,6v)}})};D.N.cO=A(1v){M 1P;1P=1y 4J();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4Q.4g){1P.F/=4Q.4g;1P.J/=4Q.4g}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6r();u o.2Y.dZ("1d/"+1v)};2V=D.2V;D.3b=(A(){A 3b(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2i:1.0};o.dY=1u.9L.4o();o.I=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3d(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a}3b.N.33=A(cb){u o.c.33.1x(o.c,cb)};3b.N.3o=A(cx){o.1G.a0=cx;u o};3b.N.2i=A(2i){o.1G.2i=2i/1i;u o};3b.N.4s=A(){M i,31,H,K;31=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3M<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3M)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5V a 5U 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3M>o.c.T.P||3M<0){u}o.c.T[3M]=C.r;o.c.T[3M+1]=C.g;o.c.T[3M+2]=C.b;o.c.T[3M+3]=C.a;u 2J};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5M=A(){u o.dR()};1Z.N.dQ=A(7B){M 3N;B(7B==L){7B=2k}3N=\'#\'+o.r.5M(16)+o.g.5M(16)+o.b.5M(16);B(7B){u 3N+o.a.5M(16)}S{u 3N}};u 1Z})();1Z=D.1Z;D.2t=(A(){A 2t(){}2t.9G={};2t.V=A(1p,4b){u o.9G[1p]=4b};2t.3T=A(1j,1p,1l){u o.9G[1p].49(1j,1l)};u 2t})();2t=D.2t;D.1R=(A(){1R.4G=D.2Z?6u(\'dP\').dO().P:4;A 1R(c){o.c=c;o.4i=8Q(o.4i,o);o.6A=[];o.5f=L}1R.N.4f=A(9x){B(9x==L){u}u o.6A.2j(9x)};1R.N.4i=A(){M 2g;B(o.6A.P===0){2L.5j(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6A.d9();5B(o.2c.1v){28 R.3k.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4i();28 R.3k.8G:o.c.c1();o.c.bZ();u o.4i();28 R.3k.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3k.2t:u o.db();dN:u o.a6()}};1R.N.3T=A(1Q){o.9v=1Q;o.5f=1u.6b(o.c.T.P);u o.4i()};1R.N.9o=A(fn){M 6Z,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2N((n/4)/1R.4G);6Z=8B*4;9l=6Z+((n/4)%1R.4G)*4;1o=[];W(i=H=0,K=1R.4G;0<=K?HK;i=0<=K?++H:--H){1J=i*6Z;1M=1J+(i===1R.4G-1?9l:6Z);B(D.2Z){f=6x((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.65(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1R.N.a6=A(){2L.5j(o.c,"b6",o.2c);B(o.2c.1v===R.3k.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1R.N.db=A(){1Y.2u("dL 4b "+o.2c.4b);2t.3T(o.c,o.2c.4b,o.2c.1l);1Y.2u("2t "+o.2c.4b+" 9k!");u o.4i()};1R.N.af=A(2Q,1J,1M){M i,1w,H;1Y.2u("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2L.5j(o.c,"bd",{am:2Q,an:1R.4G,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3O(1w.r);o.c.T[i+1]=1u.3O(1w.g);o.c.T[i+2]=1u.3O(1w.b);o.c.T[i+3]=1u.3O(1w.a)}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.ag=A(2Q,1J,1M){M Q,6B,3e,2X,6j,2P,i,j,k,2G,n,1p,p,1w,4e,H,1f,1H;1p=o.2c.1p;3e=o.2c.3e;2P=o.2c.2P;n=o.c.T.P;Q=o.2c.Q;6B=O.8l(Q.P);2G=[];1Y.2u("dG 2G - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6B-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6B-1)/2)));2X=(6B-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;6j=0;W(j=1f=-2X;-2X<=2X?1f<=2X:1f>=2X;j=-2X<=2X?++1f:--1f){W(k=1H=2X;2X<=-2X?1H<=-2X:1H>=-2X;k=2X<=-2X?++1H:--1H){p=1w.cP(j,k);2G[6j*3]=p.r;2G[6j*3+1]=p.g;2G[6j*3+2]=p.b;6j++}}4e=o.3L(Q,2G,2P,3e);o.5f[i]=1u.3O(4e.r);o.5f[i+1]=1u.3O(4e.g);o.5f[i+2]=1u.3O(4e.b);o.5f[i+3]=o.c.T[i+3]}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.65=A(2Q){M i,H,K;B(2Q>=0){1Y.2u("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2L.5j(o.c,"65",{am:2Q,dF:o.7P,an:1R.4G});B(o.7P===1R.4G){B(o.2c.1v===R.3k.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.5f[i]}}B(2Q>=0){1Y.2u("R "+o.2c.1p+" 9k!")}2L.5j(o.c,"bb",o.2c);u o.4i()}};1R.N.3L=A(Q,2G,2P,3e){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2G[i*3];2f.g+=Q[i]*2G[i*3+1];2f.b+=Q[i]*2G[i*3+2]}2f.r=(2f.r/2P)+3e;2f.g=(2f.g/2P)+3e;2f.b=(2f.b/2P)+3e;u 2f};1R.N.da=A(2g,1E){M 1P,5l;1P=1y 4J();1P.bP=(A(1r){u A(){2g.1j.6f(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2T=2g.1j.4V(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2T.2a;1r.c.T=2g.T;u 1r.4i()}})(o);5l=2V.bu(1E);u 1P.1E=5l!=L?5l:1E};u 1R})();1R=D.1R;D.32=(A(){A 32(){}32.63={};32.bR=A(4C){u o.63[4C]!=L};32.4o=A(4C){u o.63[4C]};32.cs=A(1p,2B){u o.63[1p]=2B};32.3T=A(4C,1Q){7I((A(1r){u A(){u 1Q.1x(1r.4o(4C),1r.4o(4C))}})(o),0);u o.4o(4C)};32.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.63[1p]}S{u o.63={}}};u 32})();32=D.32;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("5I",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4S",A(){M 3g;B(1k.P===1){3g=1X.7U(1k[0])}S{3g={r:1k[0],g:1k[1],b:1k[2]}}u o.2p("4S",A(C){C.r=3g.r;C.g=3g.g;C.b=3g.b;C.a=E;u C})});R.V("3r",A(Q){Q=O.2N(E*(Q/1i));u o.2p("3r",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3P",A(Q){Q*=-0.dy;u o.2p("3P",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("43",A(Q){Q*=-1;u o.2p("43",A(C){M 1q,4W,1e;1e=O.1e(C.r,C.g,C.b);4W=(C.r+C.g+C.b)/3;1q=((O.4X(1e-4W)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4Z",A(Q){u o.2p("4Z",A(C){M 4W;4W=2b.6y(C);C.r=4W;C.g=4W;C.b=4W;u C})});R.V("2s",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2p("2s",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2p("93",A(C){M b,g,h,5e,r,K;5e=1X.cC(C.r,C.g,C.b);h=5e.h*1i;h+=O.4X(Q);h=h%1i;h/=1i;5e.h=h;K=1X.cE(5e.h,5e.s,5e.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4j",A(){M 6g,3f;B(1k.P===2){3f=1X.7U(1k[0]);6g=1k[1]}S B(1k.P===4){3f={r:1k[0],g:1k[1],b:1k[2]};6g=1k[3]}u o.2p("4j",A(C){C.r-=(C.r-3f.r)*(6g/1i);C.g-=(C.g-3f.g)*(6g/1i);C.b-=(C.b-3f.b)*(6g/1i);u C})});R.V("b0",A(){u o.2p("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4t",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2p("4t",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2v",A(Q){u o.2p("2v",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4X(Q)*2.55;u o.2p("8i",A(C){M 4h;4h=2b.ab(Q*-1,Q);C.r+=4h;C.g+=4h;C.b+=4h;u C})});R.V("8j",A(Q){Q=O.4X(Q)*2.55;u o.2p("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3h}S{C.r-=C.r*O.4X(1G.3h)}}B(1G.4w!=L){B(1G.4w>0){C.g+=(E-C.g)*1G.4w}S{C.g-=C.g*O.4X(1G.4w)}}B(1G.3W!=L){B(1G.3W>0){C.b+=(E-C.b)*1G.3W}S{C.b-=C.b*O.4X(1G.3W)}}u C})});R.V("2e",A(){M 6I,29,3V,3F,1M,i,5t,1J,H,1f,K,44;3V=1k[0],3F=2<=1k.P?61.1x(1k,1):[];5t=3F[3F.P-1];B(1s 5t==="A"){6I=5t;3F.6s()}S B(1s 5t==="3j"){6I=2b[5t];3F.6s()}S{6I=2b.29}B(1s 3V==="3j"){3V=3V.do("")}B(3V[0]==="v"){3V=[\'r\',\'g\',\'b\']}B(3F.P<2){2K"5z 8e 8X 1k 3G 2e 1C";}29=6I(3F,0,E);1J=3F[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3F[3F.P-1];B(1M[0]=E;i=44<=E?++1f:--1f){29[i]=1M[1]}}u o.2p("2e",A(C){M 1H,4m;W(i=1H=0,4m=3V.P;0<=4m?1H<4m:1H>4m;i=0<=4m?++1H:--1H){C[3V[i]]=29[C[3V[i]]]}u C})});R.V("3a",A(Q){M 4L,4M,p;p=O.4X(Q)/1i;4L=[0,E*p];4M=[E-(E*p),E];B(Q<0){4L=4L.br();4M=4M.br()}u o.2e(\'3f\',[0,0],4L,4M,[E,E])});D.2t.V("8F",A(F,J,x,y){M I,2I;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="41"&&2h!==L){I=1y 3Q(F,J)}S{I=2o.3E(\'I\');1u.52(o.I,I);I.F=F;I.J=J}2I=I.3d(\'2d\');2I.6f(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2J;u o.6D(I)});D.2t.V("8x",A(2D){M I,2I;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1Y.9d("5z cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="41"&&2h!==L){I=1y 3Q(2D.F,2D.J)}S{I=2o.3E(\'I\');1u.52(o.I,I);I.F=2D.F;I.J=2D.J}2I=I.3d(\'2d\');2I.6f(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2J;u o.6D(I)});D.R.V("8F",A(){u o.51("8F",5u.N.5d.1x(1k,0))});D.R.V("8x",A(){u o.51("8x",5u.N.5d.1x(1k,0))});D.R.V("dm",A(){u o.3L("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3L("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3L("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3x){M 2G;B(3x===0||3x===4k){2G=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3x>0&&3x<90)||(3x>4k&&3x<8w)){2G=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3x===90||3x===8w){2G=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2G=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3L("de 8A",2G)});D.R.V("6C",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3L("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3r:A(C,1q,G){C.r=C.r-(C.r*1q*G.3i);C.g=C.g-(C.g*1q*G.3i);C.b=C.b-(C.b*1q*G.3i);u C},2v:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3i,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3i,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3i,1))*E;u C},4j:A(C,1q,G){C.r-=(C.r-G.3g.r)*1q;C.g-=(C.g-G.3g.g)*1q;C.b-=(C.b-G.3g.b)*1q;u C}};R.V("1U",A(1t,3i){M 29,3C,1M,1J;B(3i==L){3i=60}B(1s 1t==="3j"&&1t.59(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4q(1t.59(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4q(1t.59(0,1t.P-1),10)/1i)}}3i/=1i;3C=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3C[0],2)+O.1T(3C[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2p("1U",A(C){M 8p,2H,U;U=C.9M();8p=2b.5a(U.x,U.y,3C[0],3C[1]);B(8p>1M){2H=O.1e(1,(29[O.5C(((8p-1M)/1t)*1i)]/10)*3i);C.r=O.1T(C.r/E,2H)*E;C.g=O.1T(C.g/E,2H)*E;C.b=O.1T(C.b/E,2H)*E}u C})});R.V("bY",A(G){M 4a,5W,8k,1t,H,1n,K;4a={3i:50,2E:0,8U:\'3r\',3g:{r:0,g:0,b:0}};G=1u.79(4a,G);B(!G.1t){u o}S B(1s G.1t==="3j"){8k=4q(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="3S"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){5W=K[H];B(1s G.1t[5W]==="3j"){G.1t[5W]=o.1c[5W]*(4q(G.1t[5W],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2E==="3j"){G.2E=(G.1t.F/2)*(4q(G.2E,10)/1i)}G.3i/=1i;G.1t.F=O.2N(G.1t.F);G.1t.J=O.2N(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4j"&&1s G.3g==="3j"){G.3g=1X.7U(G.3g)}G.1W={5m:(o.1c.F-G.1t.F)/2,6a:o.1c.F-G.1W.5m,5n:(o.1c.J-G.1t.J)/2,6k:o.1c.J-G.1W.5n};G.1z=[{x:G.1W.5m+G.2E,y:G.1W.6k-G.2E},{x:G.1W.6a-G.2E,y:G.1W.6k-G.2E},{x:G.1W.6a-G.2E,y:G.1W.5n+G.2E},{x:G.1W.5m+G.2E,y:G.1W.5n+G.2E}];G.4d=2b.5a(0,0,G.1z[3].x,G.1z[3].y)-G.2E;u o.2p("bY",A(C){M 1q,U,4r;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1W.5n&&U.yG.1W.5m&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1W.6k){1q=(U.y-G.1W.6k)/G.4d}S B(U.y>G.1z[2].y&&U.yG.1W.6a){1q=(U.x-G.1W.6a)/G.4d}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4r=D.5a(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4r-G.2E)/G.4d}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4r=D.5a(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4r-G.2E)/G.4d}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4r=D.5a(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4r-G.2E)/G.4d}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4r=D.5a(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4r-G.2E)/G.4d}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4F,96,97,66,62;66=[2S,2S,37,2S,3t,37,3z,2S,3U,3t,3B,37,3X,3z,3Y,2S,4z,3U,4T,3t,4A,3B,4B,37,4I,3X,4l,3z,39,3Y,4v,2S,5H,4z,46,3U,5R,4T,64,3t,39,4A,69,3B,4y,4B,4U,37,5s,4I,5w,3X,5q,4l,5K,3z,5N,39,5O,3Y,5Z,4v,3Z,2S,7D,5H,7C,4z,7A,46,7x,3U,7w,5R,7v,4T,4R,64,7u,3t,6c,39,7t,4A,7s,69,4N,3B,3Z,4y,7r,4B,7q,4U,7o,37,7n,5s,46,4I,7m,5w,7k,3X,7j,5q,7i,4l,4R,5K,6e,3z,7f,5N,7e,39,7c,5O,7a,3Y,6l,5Z,4N,4v,78,3Z,76,2S,bU,7D,bN,5H,4U,7C,bL,4z,bG,7A,bF,46,bD,7x,bC,3U,bB,7w,bA,5R,bz,7v,bx,4T,bw,4R,74,64,6e,7u,8u,3t,ba,6c,b9,39,b8,7t,b7,4A,8g,7s,6l,69,b5,4N,b4,3B,b3,3Z,b2,4y,aO,7r,aK,4B,aJ,7q,aH,4U,aF,7o,aC,37,az,7n,ax,5s,aw,46,ap,4I,ao,7m,al,5w,ak,7k,ah,3X,ae,7j,dc,5q,d3,7i,d2,4l,cY,4R,74,5K,cX,6e,cW,3z,8u,7f,cV,5N,6c,7e,cT,39,cG,7c,cB,5O,8T,7a,8g,3Y,cv,6l,cu,5Z,cq,4N,cp,4v,3B,78,co,3Z,cn,76,4y];62=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6n,6m,2F,P,c0){M 42,1j,2w,6V,6Y,6W,71;42=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');42.F=F;42.J=J;6V=6n+O.bW(2F)*P*0.5;6W=6m+O.bV(2F)*P*0.5;6Y=6n-O.bW(2F)*P*0.5;71=6m-O.bV(2F)*P*0.5;1j=42.3d("2d");2w=1j.en(6V,6W,6Y,71);B(!c0){2w.5o(0,"77");2w.5o(1,"a4")}S{2w.5o(0,"77");2w.5o(0.5,"a4");2w.5o(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4V(0,0,F,J)};97=A(F,J,6n,6m,6P,6O){M 42,1j,2w;42=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');42.F=F;42.J=J;1j=42.3d("2d");2w=1j.ev(6n,6m,6P,6n,6m,6O);2w.5o(1,"77");2w.5o(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4V(0,0,F,J)};4F=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1N=L};D.2t.V("a3",A(by,1V,bq,7l){M 2l,2C,1O,5P,6X,2H,2n,2y,1K,J,47,i,6S,2x,3m,7M,48,6K,2O,p,1D,1A,Y,1B,2q,2z,1L,9i,1a,34,2R,1b,4c,1m,1I,2M,5h,2U,8h,8f,68,F,3q,x,y,1h,4x,4Y,H,1f,1H,3n,3D,3v,3l,3p,3A,5J;F=o.1c.F;J=o.1c.J;3m=o.T;9i=by.2a;8f=F*J;68=8f<<2;Y=[];W(i=H=0;0<=68?H<68:H>68;i=0<=68?++H:--H){Y[i]=3m[i]}6X=0;5h=7l;7l-=1;8Z(5h-->=0){48=(1V+0.5)|0;B(48===0){5G}B(48>6M){48=6M}2H=48+48+1;8h=F<<2;3q=F-1;47=J-1;1a=48+1;2U=1a*(1a+1)/2;2M=1y 4F();4c=bg 0;1b=2M;W(i=1f=1;1<=2H?1f<2H:1f>2H;i=1<=2H?++1f:--1f){1b=1b.1N=1y 4F();B(i===1a){4c=1b}}1b.1N=2M;1m=L;1I=L;4Y=1h=0;2O=66[48];2R=62[48];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3n=0;0<=1a?3n<1a:3n>1a;i=0<=1a?++3n:--3n){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3D=1;1<=1a?3D<1a:3D>1a;i=1<=1a?++3D:--3D){p=1h+((3qF;x=0<=F?++3v:--3v){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4Y+((p=x+1a)<3q?p:3q))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4Y+=F}W(x=3l=0;0<=F?3lF;x=0<=F?++3l:--3l){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3p=0;0<=1a?3p<1a:3p>1a;i=0<=1a?++3p:--3p){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4x=F;W(i=3A=1;1<=1a?3A<1a:3A>1a;i=1<=1a?++3A:--3A){1h=(4x+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<47){4x+=F}}1h=x;1m=2M;1I=4c;W(y=5J=0;0<=J?5JJ;y=0<=J?++5J:--5J){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<47?p:47)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}1V*=bq;i=8f;8Z(--i>-1){2x=i<<2;6K=(9i[2x+2]&fo)/E.0*7l;7M=6K|0;B(7M===6X){5P=6M.0*(6K-(6K|0));6S=6M-5P;3m[2x]=(3m[2x]*6S+Y[2x]*5P)>>8;3m[2x+1]=(3m[2x+1]*6S+Y[2x+1]*5P)>>8;3m[2x+2]=(3m[2x+2]*6S+Y[2x+2]*5P)>>8}S B(7M===6X+1){3m[2x]=Y[2x];3m[2x+1]=Y[2x+1];3m[2x+2]=Y[2x+2]}}6X++}u o});D.R.V("fq",A(G){M 4a,2w;4a={3C:{x:o.1c.F/2,y:o.1c.J/2},2F:45,cd:5Y,7R:3,7Q:1.5,5h:3};G=1u.79(4a,G);G.2F*=O.aZ/4k;2w=96(o.1c.F,o.1c.J,G.3C.x,G.3C.y,G.2F,G.cd,2J);u o.51("a3",[2w,G.7R,G.7Q,G.5h])});u D.R.V("fx",A(G){M 4a,2w,6P,6O;4a={1t:50,3C:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5h:3,1V:L};G=1u.79(4a,G);B(!G.1V){G.1V=o.1c.F2H;i=1<=2H?++H:--H){1b=1b.1N=1y 4F();B(i===1a){4c=1b}}1b.1N=2M;1m=L;1I=L;4Y=1h=0;2O=66[1V];2R=62[1V];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3n=1;1<=1a?3n<1a:3n>1a;i=1<=1a?++3n:--3n){p=1h+((3qF;x=0<=F?++3D:--3D){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4Y+((p=x+1V+1)<3q?p:3q))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4Y+=F}W(x=3v=0;0<=F?3vF;x=0<=F?++3v:--3v){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3l=0;0<=1a?3l<1a:3l>1a;i=0<=1a?++3l:--3l){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4x=F;W(i=3p=1;1<=1V?3p<=1V:3p>=1V;i=1<=1V?++3p:--3p){1h=(4x+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<47){4x+=F}}1h=x;1m=2M;1I=4c;W(y=3A=0;0<=J?3AJ;y=0<=J?++3A:--3A){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<47?p:47)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}u o});u D.R.V("5L",A(1V){u o.51("5L",[1V])})})();D.R.V("aD",A(Q){u o.2p("aD",A(C){M 6y;6y=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6y35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4K,2m,2b,D,5c,3Q,1X,2L,6x,R,2V,4J,3b,1Y,3H,1Z,2t,1R,7O,32,1u,fs,6N,81,5d,8V,6F=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.52=A(4D,3G,G){M 6J,H,1n,K,44,1o;B(G==L){G={}}K=4D.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6J=K[H];B((G.7g!=L)&&(44=6J.9Q,6F.1x(G.7g,44)>=0)){5G}1o.2j(3G.bh(6J.9Q,6J.fP))}u 1o};1u.6b=A(P){B(P==L){P=0}B(D.2Z||(4Q.ca!=L)){u 1y ca(P)}u 1y 5u(P)};u 1u})();B(1s 2h!=="41"&&2h!==L){7O=2h;3Q=6u(\'I\');4J=3Q.4J;6x=6u(\'fO\');fs=6u(\'fs\');6N=6u(\'6N\')}S{7O=4Q}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5Q=2J;D.9C="c3";D.7F="";D.c5="fH";D.2Z=1s 2h!=="41"&&2h!==L;D.ce=!D.2Z;D.5M=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Z){u 2J}B(1s I==="3j"){I=$(I)}B(!((I!=L)&&(I.5F!=L))){u L}u I.5F(\'2a-3K-2W\')};A D(){o.5D=8Q(o.5D,o);M 1l,1Q,2W;B(1k.P===0){2K"5z 1k";}B(o aT D){o.5y=o.5y.9y(o);o.6R=o.6R.9y(o);1l=1k[0];B(!D.2Z){2W=4q(D.9z(1l[0]),10);1Q=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2W)&&32.bR(2W)){u 32.3T(2W,1Q)}}o.2W=1u.9L.4o();o.7G=o.4P=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6U=[];o.9t=[];o.9s=[];o.6w=L;o.d6=2k;o.fz=1y 4K(o);o.4E=1y 1R(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Z){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2o.9p==="7J"){1Y.2u("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2o.9p==="7J"){1Y.2u("aU aW");u cb.1x(1r)}}})(o);u 2o.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2r,2f,K,1o;B(1l.P===0){2K"5z 1k be";}o.3c=L;o.7K=L;o.7L=L;o.1Q=A(){};o.bo(1l[0]);B(1l.P===1){u}5B(1s 1l[1]){28"3j":o.7L=1l[1];56;28"A":o.1Q=1l[1]}B(1l.P===2){u}o.1Q=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2r 57 K){B(!72.1x(K,2r))5G;2f=K[2r];1o.2j(o.1G[2r]=2f)}u 1o}};D.N.bo=A(2B){B(D.2Z){o.3c=2B;o.7K=\'bS\';u}B(1s 2B==="3S"){o.3c=2B}S{o.3c=$(2B)}B(o.3c==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3c.9Q.6r()};D.N.as=A(){5B(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1Y.2u("fr W 2Z");B(1s o.3c==="3j"&&o.3c.82(/^cA?:\\/\\//)){u o.cD(o.3c,o.5D)}S B(1s o.3c==="3j"){u fs.fp(o.3c,o.5D)}S{u o.5D(L,o.3c)}};D.N.cD=A(6H,1Q){M 9g;1Y.2u("fm 1d 4D "+6H);9g=6N.4o(6H,A(4e){M 83;83=\'\';4e.fl(\'d7\');4e.9e(\'2a\',A(a7){u 83+=a7});u 4e.9e(\'1M\',A(){u 1Q(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1Q)};D.N.5D=A(6v,2a){B(6v){2K 6v;}o.1d=1y 4J();o.1d.1E=2a;1Y.2u("4J au. ay = "+(o.3I())+", aL = "+(o.3J()));o.I=1y 3Q(o.3I(),o.3J());o.2Y=1y 3Q(o.3I(),o.3J());u o.5y()};D.N.cl=A(){o.1d=o.3c;o.I=2o.3E(\'I\');o.1j=o.I.3d(\'2d\');o.2Y=2o.3E(\'I\');o.5g=o.2Y.3d(\'2d\');1u.52(o.1d,o.I,{7g:[\'1E\']});1u.52(o.1d,o.2Y,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.2Y,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=2o.3E(\'I\');o.1j=o.I.3d(\'2d\');o.2Y=o.3c;o.5g=o.2Y.3d(\'2d\');B(o.7L!=L){o.1d=2o.3E(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5y()}};D.N.9b=A(){B(o.99()){1Y.2u(o.1d.1E,"->",o.89());o.bi=2J;o.1d.1E=o.89()}B(2V.bj(o.1d)){o.1d.1E=2V.5l(o.1d.1E);u 1Y.2u("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9a=A(){B(o.bJ()){u o.6R()}S{u o.1d.bP=o.6R}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2J};D.N.3I=A(){u o.1d.F||o.1d.94};D.N.3J=A(){u o.1d.J||o.1d.fg};D.N.6R=A(){1Y.2u("4J au. ay = "+(o.3I())+", aL = "+(o.3J()));B(o.bi){o.I.F=o.3I()/o.6p();o.I.J=o.3J()/o.6p();o.2Y.F=o.3I()/o.6p();o.2Y.J=o.3J()/o.6p()}S{o.I.F=o.3I();o.I.J=o.3J();o.2Y.F=o.3I();o.2Y.J=o.3J()}u o.5y()};D.N.5y=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3d(\'2d\')}B(o.5g==L){o.5g=o.2Y.3d(\'2d\')}o.8b=o.6o=o.F=o.I.F;o.8c=o.6i=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.6f(o.1d,0,0,o.3I(),o.3J(),0,0,o.6o,o.6i);o.5g.6f(o.1d,0,0,o.3I(),o.3J(),0,0,o.6o,o.6i)}o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.7G=1u.6b(o.T.P);o.4P=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4P[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Z){32.cs(o.2W,o)}o.1Q.1x(o,o);u o.1Q=A(){}};D.N.cy=A(){o.2T=o.1j.4V(0,0,o.I.F,o.I.J);u o.T=o.2T.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5Q){2K"8Y 8d";}o.4P=1u.6b(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4P[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Z||o.I.5F(\'2a-3K-2W\')){u}u o.I.bh(\'2a-3K-2W\',o.2W)};D.N.cH=A(){u o.I.5F(\'2a-3K-cK-8d\')!==L};D.N.cf=A(){M 4p;B(D.2Z||!o.99()){u}4p=o.6p();B(4p!==1){1Y.2u("fe 4p = "+4p);o.d6=2J;o.6o=o.I.F;o.6i=o.I.J;o.I.F=o.6o*4p;o.I.J=o.6i*4p;o.I.cN.F=""+o.6o+"cQ";o.I.cN.J=""+o.6i+"cQ";o.1j.fd(4p,4p);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6p=A(){M 8W,4g;4g=4Q.4g||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4g/8W};D.N.a8=A(){u(4Q.4g!=L)&&4Q.4g!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5F(\'2a-3K-cK\')};D.N.6D=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3d(\'2d\');o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.4P=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4P[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1Q){B(1Q==L){1Q=A(){}}2L.5j(o,"ai");u o.4E.3T((A(1r){u A(){1r.2Y.F=1r.I.F;1r.2Y.J=1r.I.J;1r.5g.8S(1r.2T,0,0);u 1Q.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2J}B(!D.5Q){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.5g.8S(o.2T,0,0)}};D.N.f6=A(){M I,2I,i,2T,1w,T,H,1n,K;I=2o.3E(\'I\');1u.52(o.I,I);I.F=o.8b;I.J=o.8c;2I=I.3d(\'2d\');2T=2I.4V(0,0,I.F,I.J);T=2T.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2I.8S(2T,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6D(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,44,4m;B(!D.5Q){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4P;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2P+=Q[i]}}o.4E.4f({1v:R.3k.8I,1p:1p,Q:Q,2P:2P,3e:3e});u o};D.N.51=A(4b,1l){o.4E.4f({1v:R.3k.2t,4b:4b,1l:1l});u o};D.N.33=A(1Q){M 2g;2g=1y 3b(o);o.9s.2j(2g);o.4E.4f({1v:R.3k.8H});1Q.1x(2g);o.4E.4f({1v:R.3k.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6w);o.6U.2j(o.T);o.6w=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6U.6s();u o.6w=o.9t.6s()};D.N.c1=A(){u o.6w.c2()};u D})(3H);7O.D=D;D.4K=(A(){A 4K(c){o.c=c}4K.N.f5=A(){M i,3y,6L,H,1f,1H,K;3y={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3y.r[i]=0;3y.g[i]=0;3y.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6q.P;H<1n;H++){1P=6q[H];1o.2j(cj=1y 5c(1P,A(){o.ck();u o.3T()}))}u 1o};B(D.ce){(A(){B(2o.9p==="7J"){u D.9m()}S{u 2o.aX("f3",D.9m,2k)}})()}5c=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 5c(4u,ct){o.cw=4u.5F(\'2a-3K\');o.3K=D(4u,ct.9y(o))}5c.N.ck=A(){M 1l,e,1C,5b,8K,8L,m,r,6G,H,1n,K,1o;o.4u=o.3K.I;r=1y cJ(8v,\'g\');6G=o.cw.82(r);B(!(6G.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6G.P;H<1n;H++){8K=6G[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{5b=8L();1o.2j(5b.1x(o.3K))}8N(6h){e=6h;1o.2j(1Y.2u(e))}}u 1o};5c.N.3T=A(){M 4u;4u=o.4u;u o.3K.ac(A(){u 4u.9c.aY(o.cO(),4u)})};u 5c})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,5b){u o.8P[1p]=5b};2m.3T=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.5a=A(6V,6W,6Y,71){u O.8l(O.1T(6Y-6V,2)+O.1T(71-6W,2))};2b.ab=A(1S,1e,6t){M 4h;B(6t==L){6t=2k}4h=1S+(O.f1()*(1e-1S));B(6t){u 4h.f0(6t)}S{u O.5C(4h)}};2b.6y=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4L,4M,1M,54,53){M 29,5S,2A,26,i,j,5E,1N,3R,t,H,1f,K;B(54==L){54=0}B(53==L){53=E}B(1J[0]aT 5u){2A=1J;54=4L;53=4M}S{2A=[1J,4L,4M,1M]}B(2A.P<2){2K"5z 8e 8X 1k 3G 29";}29={};5E=A(a,b,t){u a*(1-t)+b*t};5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1N=[];W(j=1f=0,K=3R.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1N.2j([5E(3R[j][0],3R[j+1][0],t),5E(3R[j][1],3R[j+1][1],t)])}3R=1N}29[O.5C(3R[0][0])]=O.5C(5S(3R[0][1],54,53))}26=2A[2A.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2A,54,53){M 4f,5S,98,26,88,86,85,84,i,j,5E,9f,9h,4O,p,5r,5x,4H,7Z,7Y,3u,7W,t,H,1f,K;B(2A.P<2){2K"5z 8e 8X 1k 3G bE";}3u={};5E=A(a,b,t){u a*(1-t)+b*t};4f=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4O=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};98=0;W(i=H=0,K=2A.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5r=2A[i];5x=2A[i+1];4H=5x[0]-5r[0];7Z=1/4H;B(i===2A.P-2){7Z=1/(4H-1)}p=i>0?2A[i-1]:5r;9f=4O(7W(5x,p),[0.5,0.5]);p=i<2A.P-2?2A[i+2]:5x;9h=4O(7W(p,5r),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4f(4O(5r,[88,88]),4O(9f,[86,86]),4O(5x,[85,85]),4O(9h,[84,84]));3u[O.5C(7Y[0])]=O.5C(5S(7Y[1],54,53));98+=1}}26=2A[2A.P-1][0];3u=D.2b.91(3u,26);u 3u};2b.91=A(58,26){M i,j,5T,3u,7V,H,1f;B(bk.eX(58).P<26+1){3u={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(58[i]!=L){3u[i]=58[i]}S{5T=[i-1,3u[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(58[j]!=L){7V=[j,58[j]];56}}3u[i]=5T[1]+((7V[1]-5T[1])/(7V[0]-5T[0]))*(i-5T[0])}}u 3u}u 58};u 2b})();2b=D.2b;D.1X=(A(){A 1X(){}1X.7U=A(3N){M b,g,r;B(3N.eW(0)==="#"){3N=3N.59(1)}r=4q(3N.59(0,2),16);g=4q(3N.59(2,2),16);b=4q(3N.59(4,2),16);u{r:r,g:g,b:b}};1X.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5B(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1X.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5B(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3w)/1.3w,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3w)/1.3w,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3w)/1.3w,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1X.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3w*O.1T(r,0.9q))-0.3w}S{r*=12.92}B(g>0.9n){g=(1.3w*O.1T(g,0.9q))-0.3w}S{g*=12.92}B(b>0.9n){b=(1.3w*O.1T(b,0.9q))-0.3w}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1X.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="3S"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5X}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5X}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5X}l=aQ*y-16;a=aR*(x-y);b=5Y*(y-z);u{l:l,a:a,b:b}};1X.eD=A(l,a,b){M x,y,z;B(1s l==="3S"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5Y);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5X)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5X)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5X)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1X.eC=A(r,g,b){M 9V;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1X.eB=A(l,a,b){};u 1X})();1X=D.1X;D.2L=(A(){A 2L(){}2L.5k={};2L.b1=["b6","bb","ai","bc","bd","65"];2L.5j=A(38,1v,2a){M 6E,H,1n,K,1o;B(2a==L){2a=L}B(o.5k[1v]&&o.5k[1v].P){K=o.5k[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6E=K[H];B(6E.38===L||38.2W===6E.38.2W){1o.2j(6E.fn.1x(38,2a))}S{1o.2j(bg 0)}}u 1o}};2L.eA=A(38,1v,fn){M 9W,9X;B(1s 38==="3j"){9X=38;9W=1v;38=L;1v=9X;fn=9W}B(6F.1x(o.b1,1v)<0){u 2k}B(!o.5k[1v]){o.5k[1v]=[]}o.5k[1v].2j({38:38,fn:fn});u 2J};u 2L})();2L=D.2L;D.R=(A(){A R(){}R.3k={8J:1,8I:2,8H:3,8G:4,9Y:5,2t:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2V=(A(){A 2V(){}2V.bm=/(?:(?:6N|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2V.bj=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2V.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6r())===\'c3\'||K===\'bp-ez\')};2V.7h=A(6H){M 7d;7d=6H.82(o.bm);B(7d){u 7d[1]!==2o.ey}S{u 2k}};2V.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1Y.a2("ex 3G ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7h(D.7F)){1Y.a2("es bp a bH bK W er eq.");u}u o.5l(1E)}}};2V.5l=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2V.eo=A(5p){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5p=5p.6r();B(8z[5p]!=L){5p=8z[5p]}u"ee/ed."+5p};u 2V})();D.N.c6=A(){B(1s 2h!=="41"&&2h!==L){u o.c7.49(o,1k)}S{u o.c8.49(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6r();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2o.e9.e8=1d};D.N.c7=A(6d,7b,1Q){M e,a1;B(7b==L){7b=2J}B(1Q==L){1Q=L}8M{a1=fs.e7(6d);B(a1.e6()&&!7b){u 2k}}8N(6h){e=6h;1Y.2u("e5 e4 6d "+6d)}u fs.e3(6d,o.I.e2(),A(6v){1Y.2u("e1 e0 3G "+6d);B(1Q){u 1Q.1x(o,6v)}})};D.N.cO=A(1v){M 1P;1P=1y 4J();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4Q.4g){1P.F/=4Q.4g;1P.J/=4Q.4g}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6r();u o.2Y.dZ("1d/"+1v)};2V=D.2V;D.3b=(A(){A 3b(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2i:1.0};o.dY=1u.9L.4o();o.I=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3d(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a}3b.N.33=A(cb){u o.c.33.1x(o.c,cb)};3b.N.3o=A(cx){o.1G.a0=cx;u o};3b.N.2i=A(2i){o.1G.2i=2i/1i;u o};3b.N.4s=A(){M i,31,H,K;31=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3M<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3M)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5V a 5U 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3M>o.c.T.P||3M<0){u}o.c.T[3M]=C.r;o.c.T[3M+1]=C.g;o.c.T[3M+2]=C.b;o.c.T[3M+3]=C.a;u 2J};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5M=A(){u o.dR()};1Z.N.dQ=A(7B){M 3N;B(7B==L){7B=2k}3N=\'#\'+o.r.5M(16)+o.g.5M(16)+o.b.5M(16);B(7B){u 3N+o.a.5M(16)}S{u 3N}};u 1Z})();1Z=D.1Z;D.2t=(A(){A 2t(){}2t.9G={};2t.V=A(1p,4b){u o.9G[1p]=4b};2t.3T=A(1j,1p,1l){u o.9G[1p].49(1j,1l)};u 2t})();2t=D.2t;D.1R=(A(){1R.4G=D.2Z?6u(\'dP\').dO().P:4;A 1R(c){o.c=c;o.4i=8Q(o.4i,o);o.6A=[];o.5f=L}1R.N.4f=A(9x){B(9x==L){u}u o.6A.2j(9x)};1R.N.4i=A(){M 2g;B(o.6A.P===0){2L.5j(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6A.d9();5B(o.2c.1v){28 R.3k.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4i();28 R.3k.8G:o.c.c1();o.c.bZ();u o.4i();28 R.3k.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3k.2t:u o.db();dN:u o.a6()}};1R.N.3T=A(1Q){o.9v=1Q;o.5f=1u.6b(o.c.T.P);u o.4i()};1R.N.9o=A(fn){M 6Z,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2N((n/4)/1R.4G);6Z=8B*4;9l=6Z+((n/4)%1R.4G)*4;1o=[];W(i=H=0,K=1R.4G;0<=K?HK;i=0<=K?++H:--H){1J=i*6Z;1M=1J+(i===1R.4G-1?9l:6Z);B(D.2Z){f=6x((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.65(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1R.N.a6=A(){2L.5j(o.c,"b6",o.2c);B(o.2c.1v===R.3k.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1R.N.db=A(){1Y.2u("dL 4b "+o.2c.4b);2t.3T(o.c,o.2c.4b,o.2c.1l);1Y.2u("2t "+o.2c.4b+" 9k!");u o.4i()};1R.N.af=A(2Q,1J,1M){M i,1w,H;1Y.2u("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2L.5j(o.c,"bd",{am:2Q,an:1R.4G,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3O(1w.r);o.c.T[i+1]=1u.3O(1w.g);o.c.T[i+2]=1u.3O(1w.b);o.c.T[i+3]=1u.3O(1w.a)}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.ag=A(2Q,1J,1M){M Q,6B,3e,2X,6j,2P,i,j,k,2G,n,1p,p,1w,4e,H,1f,1H;1p=o.2c.1p;3e=o.2c.3e;2P=o.2c.2P;n=o.c.T.P;Q=o.2c.Q;6B=O.8l(Q.P);2G=[];1Y.2u("dG 2G - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6B-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6B-1)/2)));2X=(6B-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;6j=0;W(j=1f=-2X;-2X<=2X?1f<=2X:1f>=2X;j=-2X<=2X?++1f:--1f){W(k=1H=2X;2X<=-2X?1H<=-2X:1H>=-2X;k=2X<=-2X?++1H:--1H){p=1w.cP(j,k);2G[6j*3]=p.r;2G[6j*3+1]=p.g;2G[6j*3+2]=p.b;6j++}}4e=o.3L(Q,2G,2P,3e);o.5f[i]=1u.3O(4e.r);o.5f[i+1]=1u.3O(4e.g);o.5f[i+2]=1u.3O(4e.b);o.5f[i+3]=o.c.T[i+3]}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.65=A(2Q){M i,H,K;B(2Q>=0){1Y.2u("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2L.5j(o.c,"65",{am:2Q,dF:o.7P,an:1R.4G});B(o.7P===1R.4G){B(o.2c.1v===R.3k.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.5f[i]}}B(2Q>=0){1Y.2u("R "+o.2c.1p+" 9k!")}2L.5j(o.c,"bb",o.2c);u o.4i()}};1R.N.3L=A(Q,2G,2P,3e){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2G[i*3];2f.g+=Q[i]*2G[i*3+1];2f.b+=Q[i]*2G[i*3+2]}2f.r=(2f.r/2P)+3e;2f.g=(2f.g/2P)+3e;2f.b=(2f.b/2P)+3e;u 2f};1R.N.da=A(2g,1E){M 1P,5l;1P=1y 4J();1P.bP=(A(1r){u A(){2g.1j.6f(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2T=2g.1j.4V(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2T.2a;1r.c.T=2g.T;u 1r.4i()}})(o);5l=2V.bu(1E);u 1P.1E=5l!=L?5l:1E};u 1R})();1R=D.1R;D.32=(A(){A 32(){}32.63={};32.bR=A(4C){u o.63[4C]!=L};32.4o=A(4C){u o.63[4C]};32.cs=A(1p,2B){u o.63[1p]=2B};32.3T=A(4C,1Q){7I((A(1r){u A(){u 1Q.1x(1r.4o(4C),1r.4o(4C))}})(o),0);u o.4o(4C)};32.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.63[1p]}S{u o.63={}}};u 32})();32=D.32;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("5I",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4S",A(){M 3g;B(1k.P===1){3g=1X.7U(1k[0])}S{3g={r:1k[0],g:1k[1],b:1k[2]}}u o.2p("4S",A(C){C.r=3g.r;C.g=3g.g;C.b=3g.b;C.a=E;u C})});R.V("3r",A(Q){Q=O.2N(E*(Q/1i));u o.2p("3r",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3P",A(Q){Q*=-0.dy;u o.2p("3P",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("43",A(Q){Q*=-1;u o.2p("43",A(C){M 1q,4W,1e;1e=O.1e(C.r,C.g,C.b);4W=(C.r+C.g+C.b)/3;1q=((O.4X(1e-4W)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4Z",A(Q){u o.2p("4Z",A(C){M 4W;4W=2b.6y(C);C.r=4W;C.g=4W;C.b=4W;u C})});R.V("2s",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2p("2s",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2p("93",A(C){M b,g,h,5e,r,K;5e=1X.cC(C.r,C.g,C.b);h=5e.h*1i;h+=O.4X(Q);h=h%1i;h/=1i;5e.h=h;K=1X.cE(5e.h,5e.s,5e.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4j",A(){M 6g,3f;B(1k.P===2){3f=1X.7U(1k[0]);6g=1k[1]}S B(1k.P===4){3f={r:1k[0],g:1k[1],b:1k[2]};6g=1k[3]}u o.2p("4j",A(C){C.r-=(C.r-3f.r)*(6g/1i);C.g-=(C.g-3f.g)*(6g/1i);C.b-=(C.b-3f.b)*(6g/1i);u C})});R.V("b0",A(){u o.2p("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4t",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2p("4t",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2v",A(Q){u o.2p("2v",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4X(Q)*2.55;u o.2p("8i",A(C){M 4h;4h=2b.ab(Q*-1,Q);C.r+=4h;C.g+=4h;C.b+=4h;u C})});R.V("8j",A(Q){Q=O.4X(Q)*2.55;u o.2p("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3h}S{C.r-=C.r*O.4X(1G.3h)}}B(1G.4w!=L){B(1G.4w>0){C.g+=(E-C.g)*1G.4w}S{C.g-=C.g*O.4X(1G.4w)}}B(1G.3W!=L){B(1G.3W>0){C.b+=(E-C.b)*1G.3W}S{C.b-=C.b*O.4X(1G.3W)}}u C})});R.V("2e",A(){M 6I,29,3V,3F,1M,i,5t,1J,H,1f,K,44;3V=1k[0],3F=2<=1k.P?61.1x(1k,1):[];5t=3F[3F.P-1];B(1s 5t==="A"){6I=5t;3F.6s()}S B(1s 5t==="3j"){6I=2b[5t];3F.6s()}S{6I=2b.29}B(1s 3V==="3j"){3V=3V.do("")}B(3V[0]==="v"){3V=[\'r\',\'g\',\'b\']}B(3F.P<2){2K"5z 8e 8X 1k 3G 2e 1C";}29=6I(3F,0,E);1J=3F[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3F[3F.P-1];B(1M[0]=E;i=44<=E?++1f:--1f){29[i]=1M[1]}}u o.2p("2e",A(C){M 1H,4m;W(i=1H=0,4m=3V.P;0<=4m?1H<4m:1H>4m;i=0<=4m?++1H:--1H){C[3V[i]]=29[C[3V[i]]]}u C})});R.V("3a",A(Q){M 4L,4M,p;p=O.4X(Q)/1i;4L=[0,E*p];4M=[E-(E*p),E];B(Q<0){4L=4L.br();4M=4M.br()}u o.2e(\'3f\',[0,0],4L,4M,[E,E])});D.2t.V("8F",A(F,J,x,y){M I,2I;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="41"&&2h!==L){I=1y 3Q(F,J)}S{I=2o.3E(\'I\');1u.52(o.I,I);I.F=F;I.J=J}2I=I.3d(\'2d\');2I.6f(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2J;u o.6D(I)});D.2t.V("8x",A(2D){M I,2I;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1Y.9d("5z cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="41"&&2h!==L){I=1y 3Q(2D.F,2D.J)}S{I=2o.3E(\'I\');1u.52(o.I,I);I.F=2D.F;I.J=2D.J}2I=I.3d(\'2d\');2I.6f(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2J;u o.6D(I)});D.R.V("8F",A(){u o.51("8F",5u.N.5d.1x(1k,0))});D.R.V("8x",A(){u o.51("8x",5u.N.5d.1x(1k,0))});D.R.V("dm",A(){u o.3L("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3L("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3L("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3x){M 2G;B(3x===0||3x===4k){2G=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3x>0&&3x<90)||(3x>4k&&3x<8w)){2G=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3x===90||3x===8w){2G=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2G=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3L("de 8A",2G)});D.R.V("6C",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3L("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3r:A(C,1q,G){C.r=C.r-(C.r*1q*G.3i);C.g=C.g-(C.g*1q*G.3i);C.b=C.b-(C.b*1q*G.3i);u C},2v:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3i,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3i,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3i,1))*E;u C},4j:A(C,1q,G){C.r-=(C.r-G.3g.r)*1q;C.g-=(C.g-G.3g.g)*1q;C.b-=(C.b-G.3g.b)*1q;u C}};R.V("1U",A(1t,3i){M 29,3C,1M,1J;B(3i==L){3i=60}B(1s 1t==="3j"&&1t.59(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4q(1t.59(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4q(1t.59(0,1t.P-1),10)/1i)}}3i/=1i;3C=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3C[0],2)+O.1T(3C[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2p("1U",A(C){M 8p,2H,U;U=C.9M();8p=2b.5a(U.x,U.y,3C[0],3C[1]);B(8p>1M){2H=O.1e(1,(29[O.5C(((8p-1M)/1t)*1i)]/10)*3i);C.r=O.1T(C.r/E,2H)*E;C.g=O.1T(C.g/E,2H)*E;C.b=O.1T(C.b/E,2H)*E}u C})});R.V("bY",A(G){M 4a,5W,8k,1t,H,1n,K;4a={3i:50,2E:0,8U:\'3r\',3g:{r:0,g:0,b:0}};G=1u.79(4a,G);B(!G.1t){u o}S B(1s G.1t==="3j"){8k=4q(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="3S"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){5W=K[H];B(1s G.1t[5W]==="3j"){G.1t[5W]=o.1c[5W]*(4q(G.1t[5W],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2E==="3j"){G.2E=(G.1t.F/2)*(4q(G.2E,10)/1i)}G.3i/=1i;G.1t.F=O.2N(G.1t.F);G.1t.J=O.2N(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4j"&&1s G.3g==="3j"){G.3g=1X.7U(G.3g)}G.1W={5m:(o.1c.F-G.1t.F)/2,6a:o.1c.F-G.1W.5m,5n:(o.1c.J-G.1t.J)/2,6k:o.1c.J-G.1W.5n};G.1z=[{x:G.1W.5m+G.2E,y:G.1W.6k-G.2E},{x:G.1W.6a-G.2E,y:G.1W.6k-G.2E},{x:G.1W.6a-G.2E,y:G.1W.5n+G.2E},{x:G.1W.5m+G.2E,y:G.1W.5n+G.2E}];G.4d=2b.5a(0,0,G.1z[3].x,G.1z[3].y)-G.2E;u o.2p("bY",A(C){M 1q,U,4r;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1W.5n&&U.yG.1W.5m&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1W.6k){1q=(U.y-G.1W.6k)/G.4d}S B(U.y>G.1z[2].y&&U.yG.1W.6a){1q=(U.x-G.1W.6a)/G.4d}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4r=D.5a(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4r-G.2E)/G.4d}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4r=D.5a(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4r-G.2E)/G.4d}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4r=D.5a(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4r-G.2E)/G.4d}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4r=D.5a(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4r-G.2E)/G.4d}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4F,96,97,66,62;66=[2S,2S,37,2S,3t,37,3z,2S,3U,3t,3B,37,3X,3z,3Y,2S,4z,3U,4T,3t,4A,3B,4B,37,4I,3X,4l,3z,39,3Y,4v,2S,5H,4z,46,3U,5R,4T,64,3t,39,4A,69,3B,4y,4B,4U,37,5s,4I,5w,3X,5q,4l,5K,3z,5N,39,5O,3Y,5Z,4v,3Z,2S,7D,5H,7C,4z,7A,46,7x,3U,7w,5R,7v,4T,4R,64,7u,3t,6c,39,7t,4A,7s,69,4N,3B,3Z,4y,7r,4B,7q,4U,7o,37,7n,5s,46,4I,7m,5w,7k,3X,7j,5q,7i,4l,4R,5K,6e,3z,7f,5N,7e,39,7c,5O,7a,3Y,6l,5Z,4N,4v,78,3Z,76,2S,bU,7D,bN,5H,4U,7C,bL,4z,bG,7A,bF,46,bD,7x,bC,3U,bB,7w,bA,5R,bz,7v,bx,4T,bw,4R,74,64,6e,7u,8u,3t,ba,6c,b9,39,b8,7t,b7,4A,8g,7s,6l,69,b5,4N,b4,3B,b3,3Z,b2,4y,aO,7r,aK,4B,aJ,7q,aH,4U,aF,7o,aC,37,az,7n,ax,5s,aw,46,ap,4I,ao,7m,al,5w,ak,7k,ah,3X,ae,7j,dc,5q,d3,7i,d2,4l,cY,4R,74,5K,cX,6e,cW,3z,8u,7f,cV,5N,6c,7e,cT,39,cG,7c,cB,5O,8T,7a,8g,3Y,cv,6l,cu,5Z,cq,4N,cp,4v,3B,78,co,3Z,cn,76,4y];62=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6n,6m,2F,P,c0){M 42,1j,2w,6V,6Y,6W,71;42=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');42.F=F;42.J=J;6V=6n+O.bW(2F)*P*0.5;6W=6m+O.bV(2F)*P*0.5;6Y=6n-O.bW(2F)*P*0.5;71=6m-O.bV(2F)*P*0.5;1j=42.3d("2d");2w=1j.en(6V,6W,6Y,71);B(!c0){2w.5o(0,"77");2w.5o(1,"a4")}S{2w.5o(0,"77");2w.5o(0.5,"a4");2w.5o(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4V(0,0,F,J)};97=A(F,J,6n,6m,6P,6O){M 42,1j,2w;42=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');42.F=F;42.J=J;1j=42.3d("2d");2w=1j.ev(6n,6m,6P,6n,6m,6O);2w.5o(1,"77");2w.5o(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4V(0,0,F,J)};4F=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1N=L};D.2t.V("a3",A(by,1V,bq,7l){M 2l,2C,1O,5P,6X,2H,2n,2y,1K,J,47,i,6S,2x,3m,7M,48,6K,2O,p,1D,1A,Y,1B,2q,2z,1L,9i,1a,34,2R,1b,4c,1m,1I,2M,5h,2U,8h,8f,68,F,3q,x,y,1h,4x,4Y,H,1f,1H,3n,3D,3v,3l,3p,3A,5J;F=o.1c.F;J=o.1c.J;3m=o.T;9i=by.2a;8f=F*J;68=8f<<2;Y=[];W(i=H=0;0<=68?H<68:H>68;i=0<=68?++H:--H){Y[i]=3m[i]}6X=0;5h=7l;7l-=1;8Z(5h-->=0){48=(1V+0.5)|0;B(48===0){5G}B(48>6M){48=6M}2H=48+48+1;8h=F<<2;3q=F-1;47=J-1;1a=48+1;2U=1a*(1a+1)/2;2M=1y 4F();4c=bg 0;1b=2M;W(i=1f=1;1<=2H?1f<2H:1f>2H;i=1<=2H?++1f:--1f){1b=1b.1N=1y 4F();B(i===1a){4c=1b}}1b.1N=2M;1m=L;1I=L;4Y=1h=0;2O=66[48];2R=62[48];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3n=0;0<=1a?3n<1a:3n>1a;i=0<=1a?++3n:--3n){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3D=1;1<=1a?3D<1a:3D>1a;i=1<=1a?++3D:--3D){p=1h+((3qF;x=0<=F?++3v:--3v){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4Y+((p=x+1a)<3q?p:3q))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4Y+=F}W(x=3l=0;0<=F?3lF;x=0<=F?++3l:--3l){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3p=0;0<=1a?3p<1a:3p>1a;i=0<=1a?++3p:--3p){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4x=F;W(i=3A=1;1<=1a?3A<1a:3A>1a;i=1<=1a?++3A:--3A){1h=(4x+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<47){4x+=F}}1h=x;1m=2M;1I=4c;W(y=5J=0;0<=J?5JJ;y=0<=J?++5J:--5J){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<47?p:47)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}1V*=bq;i=8f;8Z(--i>-1){2x=i<<2;6K=(9i[2x+2]&fo)/E.0*7l;7M=6K|0;B(7M===6X){5P=6M.0*(6K-(6K|0));6S=6M-5P;3m[2x]=(3m[2x]*6S+Y[2x]*5P)>>8;3m[2x+1]=(3m[2x+1]*6S+Y[2x+1]*5P)>>8;3m[2x+2]=(3m[2x+2]*6S+Y[2x+2]*5P)>>8}S B(7M===6X+1){3m[2x]=Y[2x];3m[2x+1]=Y[2x+1];3m[2x+2]=Y[2x+2]}}6X++}u o});D.R.V("fq",A(G){M 4a,2w;4a={3C:{x:o.1c.F/2,y:o.1c.J/2},2F:45,cd:5Y,7R:3,7Q:1.5,5h:3};G=1u.79(4a,G);G.2F*=O.aZ/4k;2w=96(o.1c.F,o.1c.J,G.3C.x,G.3C.y,G.2F,G.cd,2J);u o.51("a3",[2w,G.7R,G.7Q,G.5h])});u D.R.V("fx",A(G){M 4a,2w,6P,6O;4a={1t:50,3C:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5h:3,1V:L};G=1u.79(4a,G);B(!G.1V){G.1V=o.1c.F2H;i=1<=2H?++H:--H){1b=1b.1N=1y 4F();B(i===1a){4c=1b}}1b.1N=2M;1m=L;1I=L;4Y=1h=0;2O=66[1V];2R=62[1V];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3n=1;1<=1a?3n<1a:3n>1a;i=1<=1a?++3n:--3n){p=1h+((3qF;x=0<=F?++3D:--3D){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4Y+((p=x+1V+1)<3q?p:3q))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4Y+=F}W(x=3v=0;0<=F?3vF;x=0<=F?++3v:--3v){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3l=0;0<=1a?3l<1a:3l>1a;i=0<=1a?++3l:--3l){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4x=F;W(i=3p=1;1<=1V?3p<=1V:3p>=1V;i=1<=1V?++3p:--3p){1h=(4x+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<47){4x+=F}}1h=x;1m=2M;1I=4c;W(y=3A=0;0<=J?3AJ;y=0<=J?++3A:--3A){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<47?p:47)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}u o});u D.R.V("5L",A(1V){u o.51("5L",[1V])})})();D.R.V("aD",A(Q){u o.2p("aD",A(C){M 6y;6y=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6y",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} +this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=this.initObj;this.renderingContext=this.renderingCanvas.getContext('2d');if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} diff --git a/dist/caman.pack.js b/dist/caman.pack.js index 26ae08ea..48cfbf35 100644 --- a/dist/caman.pack.js +++ b/dist/caman.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2N,1z,1G,B,3e,2L,1s,1N,45,V,1V,2V,23,1n,2i,1r,1R,1h,4J,1W,1a,3C,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3L=o(2H,2o,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1y(2o.7n(4j.5f,4j.bn))}9 X};1a.3v=o(K){u(K==G){K=0}u(B.21||(2Y.7o!=G)){9 1k 7o(K)}9 1k 44(K)};9 1a})();u(1f 1X!=="33"&&1X!==G){4J=1X;2L=4i(\'F\');2V=2L.2V;45=4i(\'bl\');3C=4i(\'3C\');3Y=4i(\'3Y\')}Q{4J=2Y}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1D;B.3J=2n;B.5O="86";B.4A="";B.8c="9q";B.21=1f 1X!=="33"&&1X!==G;B.8m=!B.21;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.21){9 2n}u(1f F==="2Z"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1A-2l-1S\')};o B(){8.3s=5T(8.3s,8);I W,1i,1S;u(Y.K===0){1P"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.21){1S=51(B.63(W[0]),10);1i=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1S)&&1W.6P(1S)){9 1W.2t(1S,1i)}}8.1S=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1D;8.5s=1D;8.be=1D;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1D;8.aT=1k 2N(8);8.2P=1k 1h(8);8.7T((o(Z){9 o(){Z.80(W);9 Z.8g()}})(8));9 8}Q{9 1k B(Y)}}B.H.7T=o(3y){I 5C;u(B.21){9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}Q{u(1K.5D==="4D"){1n.1C("6B 6G");9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}Q{5C=(o(Z){9 o(){u(1K.5D==="4D"){1n.1C("6B 6G");9 3y.19(Z)}}})(8);9 1K.6L("ap",5C,1D)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1P"3m Y 6M";}8.22=G;8.4m=G;8.4n=G;8.1i=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Z":8.4n=W[1];31;1v"o":8.1i=W[1]}u(W.K===2){9}8.1i=W[2];u(W.K===4){E=W[4];X=[];U(1B 3d E){u(!3R.19(E,1B))4f;1w=E[1B];X.1y(8.1c[1B]=1w)}9 X}};B.H.6W=o(1I){u(B.21){8.22=1I;8.4m=\'6Z\';9}u(1f 1I==="2v"){8.22=1I}Q{8.22=$(1I)}u(8.22==G){1P"al a8 a7 S 7h F U a3.";}9 8.4m=8.22.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1g":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1n.1C("9N U 21");u(1f 8.22==="2Z"&&8.22.4C(/^7E?:\\/\\//)){9 8.7F(8.22,8.3s)}Q u(1f 8.22==="2Z"){9 3C.9E(8.22,8.3s)}Q{9 8.3s(G,8.22)}};B.H.7F=o(3X,1i){I 66;1n.1C("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1A\',o(8f){9 4N+=8f});9 2u.6m(\'1p\',o(){9 1i(G,1k 91(4N,\'8d\'))})});9 66.6m(\'6t\',1i)};B.H.3s=o(3T,1A){u(3T){1P 3T;}8.S=1k 2V();8.S.1b=1A;1n.1C("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));8.F=1k 2L(8.2g(),8.2f());8.1Z=1k 2L(8.2g(),8.2f());9 8.3x()};B.H.7A=o(){8.S=8.22;8.F=1K.2O(\'F\');8.1e=8.F.2b(\'2d\');8.1Z=1K.2O(\'F\');8.3c=8.1Z.2b(\'2d\');1a.3L(8.S,8.F,{5c:[\'1b\']});1a.3L(8.S,8.1Z,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.1Z,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=8.22;8.1e=8.F.2b(\'2d\');8.1Z=1K.2O(\'F\');8.3c=8.1Z.2b(\'2d\');u(8.4n!=G){8.S=1K.2O(\'1g\');8.S.1b=8.4n;8.5Z();9 8.5Y()}Q{9 8.3x()}};B.H.5Z=o(){u(8.5X()){1n.1C(8.S.1b,"->",8.4I());8.7m=2n;8.S.1b=8.4I()}u(1V.7k(8.S)){8.S.1b=1V.3f(8.S.1b);9 1n.1C("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4k()}Q{9 8.S.73=8.4k}};B.H.78=o(){u(!8.S.4D){9 1D}u((8.S.5P!=G)&&8.S.5P===0){9 1D}9 2n};B.H.2g=o(){9 8.S.L||8.S.5P};B.H.2f=o(){9 8.S.R||8.S.an};B.H.4k=o(){1n.1C("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));u(8.7m){8.F.L=8.2g()/8.3K();8.F.R=8.2f()/8.3K();8.1Z.L=8.2g()/8.3K();8.1Z.R=8.2f()/8.3K()}Q{8.F.L=8.2g();8.F.R=8.2f();8.1Z.L=8.2g();8.1Z.R=8.2f()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1e==G){8.1e=8.F.2b(\'2d\')}u(8.3c==G){8.3c=8.1Z.2b(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.R=8.F.R;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1e.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O);8.3c.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O)}8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A;u(B.3J){8.59=1a.3v(8.M.K);8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1F={L:8.F.L,R:8.F.R};u(!B.21){1W.6K(8.1S,8)}8.1i.19(8,8);9 8.1i=o(){}};B.H.6z=o(){8.1T=8.1e.3u(0,0,8.F.L,8.F.R);9 8.M=8.1T.1A};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3J){1P"5E 4y";}8.2J=1a.3v(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1y(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.21||8.F.3w(\'1A-2l-1S\')){9}9 8.F.7n(\'1A-2l-1S\',8.1S)};B.H.6w=o(){9 8.F.3w(\'1A-2l-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.21||!8.5X()){9}2E=8.3K();u(2E!==1){1n.1C("aH 2E = "+2E);8.6R=2n;8.3M=8.F.L;8.3O=8.F.R;8.F.L=8.3M*2E;8.F.R=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.R=""+8.3O+"8u";8.1e.aK(2E,2E);8.L=8.5N=8.F.L;9 8.R=8.5M=8.F.R}};B.H.3K=o(){I 5B,2C;2C=2Y.2C||1;5B=8.1e.aU||8.1e.aV||8.1e.b6||8.1e.b7||8.1e.b8||1;9 2C/5B};B.H.7p=o(){9(2Y.2C!=G)&&2Y.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1D}9 8.4I()!==G};B.H.4I=o(){u(8.S==G){9 G}9 8.S.3w(\'1A-2l-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1e=8.F.2b(\'2d\');8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A;u(B.3J){8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.R=8.F.R;8.6z();9 8.1F={L:8.F.L,R:8.F.R}};B.H.72=o(1i){u(1i==G){1i=o(){}}1N.3a(8,"6Y");9 8.2P.2t((o(Z){9 o(){Z.1Z.L=Z.F.L;Z.1Z.R=Z.F.R;Z.3c.5v(Z.1T,0,0);9 1i.19(Z)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2n}u(!B.3J){1P"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.3c.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,15,M,C,13,E;F=1K.2O(\'F\');1a.3L(8.F,F);F.L=8.5N;F.R=8.5M;2p=F.2b(\'2d\');1T=2p.3u(0,0,F.L,F.R);M=1T.1A;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1D;9 8.4O(F)};B.H.7r=o(){I 4Z,1q,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3J){1P"5E 4y";}52=[];53=0;1q=53+8.L;54=0;5n=54+8.R;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1U+=J[i]}}8.2P.2F({14:V.25.5h,11:11,J:J,1U:1U,26:26});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.25.1R,2w:2w,W:W});9 8};B.H.5j=o(1i){I 1t;1t=1k 23(8);8.5u.1y(1t);8.2P.2F({14:V.25.5k});1i.19(1t);8.2P.2F({14:V.25.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1y(8.49);8.4a.1y(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2i);4J.B=B;B.2N=(o(){o 2N(c){8.c=c}2N.H.bi=o(){I i,29,4e,C,17,1L,E;29={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){29.r[i]=0;29.g[i]=0;29.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1g=4b[C];X.1y(6C=1k 3e(1g,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1K.5D==="4D"){9 B.5r()}Q{9 1K.6L("bb",B.5r,1D)}})()}3e=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3e(2z,6T){8.6U=2z.3w(\'1A-2l\');8.2l=B(2z,6T.5p(8))}3e.H.6H=o(){I W,e,48,39,5w,5x,m,r,47,C,13,E,X;8.2z=8.2l.F;r=1k 7f(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1k 7f(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1k b9("9 o() { 8."+48+"("+W+"); };");5y{39=5x();X.1y(39.19(8.2l))}5z(3D){e=3D;X.1y(1n.1C(e))}}9 X};3e.H.2t=o(){I 2z;2z=8.2z;9 8.2l.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 3e})();B.1z=(o(){o 1z(){}1z.5A={};1z.18=o(11,39){9 8.5A[11]=39};1z.2t=o(11,O,N){9 8.5A[11](O,N)};9 1z})();1z=B.1z;B.1G=(o(){o 1G(){}1G.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1G.7P=o(1j,T,42){I 2A;u(42==G){42=1D}2A=1j+(P.aQ()*(T-1j));u(42){9 2A.aP(42)}Q{9 P.41(2A)}};1G.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1G.1J=o(1l,2X,2W,1p,34,35){I 1J,3o,1H,1q,i,j,3r,4v,2m,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1H=1l;34=2X;35=2W}Q{1H=[1l,2X,2W,1p]}u(1H.K<2){1P"3m 5F 5G Y 2o 1J";}1J={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2m=1H;as(2m.K>1){4v=[];U(j=17=0,E=2m.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1y([3r(2m[j][0],2m[j+1][0],t),3r(2m[j][1],2m[j+1][1],t)])}2m=4v}1J[P.41(2m[0][0])]=P.41(3o(2m[0][1],34,35))}1q=1H[1H.K-1][0];1J=B.1G.5H(1J,1q);u(1J[1q]==G){1J[1q]=1J[1q-1]}9 1J};1G.6I=o(1H,34,35){I 2F,3o,5I,1q,4u,4t,4r,4p,i,j,3r,5J,5K,2M,p,3P,3N,2I,58,56,2a,50,t,C,17,E;u(1H.K<2){1P"3m 5F 5G Y 2o 6I";}2a={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(Z){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2M=(o(Z){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(Z){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1H.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3P=1H[i];3N=1H[i+1];2I=3N[0]-3P[0];58=1/2I;u(i===1H.K-2){58=1/(2I-1)}p=i>0?1H[i-1]:3P;5J=2M(50(3N,p),[0.5,0.5]);p=i<1H.K-2?1H[i+2]:3N;5K=2M(50(p,3P),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2M(3P,[4u,4u]),2M(5J,[4t,4t]),2M(3N,[4r,4r]),2M(5K,[4p,4p]));2a[P.41(56[0])]=P.41(3o(56[1],34,35));5I+=1}}1q=1H[1H.K-1][0];2a=B.1G.5H(2a,1q);9 2a};1G.5H=o(3g,1q){I i,j,3I,2a,4W,C,17;u(7W.ah(3g).K<1q+1){2a={};U(i=C=0;0<=1q?C<=1q:C>=1q;i=0<=1q?++C:--C){u(3g[i]!=G){2a[i]=3g[i]}Q{3I=[i-1,2a[i-1]];U(j=17=i;i<=1q?17<=1q:17>=1q;j=i<=1q?++17:--17){u(3g[j]!=G){4W=[j,3g[j]];31}}2a[i]=3I[1]+((4W[1]-3I[1])/(4W[0]-3I[0]))*(i-3I[0])}}9 2a}9 3g};9 1G})();1G=B.1G;B.1s=(o(){o 1s(){}1s.5d=o(2h){I b,g,r;u(2h.ae(0)==="#"){2h=2h.4U(1)}r=51(2h.4U(0,2),16);g=51(2h.4U(2,2),16);b=51(2h.4U(4,2),16);9{r:r,g:g,b:b}};1s.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}Q{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1s.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}Q{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}Q{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}Q{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}Q{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1o,y:y*1o,z:z*1o}};1s.9S=o(x,y,z){I b,g,r;x/=1o;y/=1o;z/=1o;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}Q{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}Q{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}Q{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1s.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1o.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}Q{x=(7.6f*x)+0.3z}u(y>0.6d){y=P.1Y(y,0.6e)}Q{y=(7.6f*y)+0.3z}u(z>0.6d){z=P.1Y(z,0.6e)}Q{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1s.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}Q{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}Q{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}Q{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1o.0,z:z*7R.7S}};1s.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1s.9t=o(l,a,b){};9 1s})();1s=B.1s;B.1N=(o(){o 1N(){}1N.3b={};1N.87=["88","89","6Y","8a","8b","3Q"];1N.3a=o(24,14,1A){I 3S,C,13,E,X;u(1A==G){1A=G}u(8.3b[14]&&8.3b[14].K){E=8.3b[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.24===G||24.1S===3S.24.1S){X.1y(3S.2r.19(24,1A))}Q{X.1y(9p 0)}}9 X}};1N.9n=o(24,14,2r){I 6n,5e;u(1f 24==="2Z"){5e=24;6n=14;24=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1D}u(!8.3b[14]){8.3b[14]=[]}8.3b[14].1y({24:24,2r:2r});9 2n};9 1N})();1N=B.1N;B.V=(o(){o V(){}V.25={6o:1,5h:2,5k:3,5l:4,6p:5,1R:6};V.18=o(11,8j){9 B.H[11]=8j};9 V})();V=B.V;B.1V=(o(){o 1V(){}1V.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1V.7k=o(1g){u(1g==G){9 1D}u(8.8l(1g)){9 1D}9 8.4q(1g.1b)};1V.8l=o(1g){I E;9(1g.5O!=G)&&((E=1g.5O.3Z())===\'86\'||E===\'8n-9m\')};1V.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1K.9k}Q{9 1D}};1V.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1n.6q("9f 2o 9e a 8v S 93 a 90 8y. 79: "+1b)}Q{u(B.4q(B.4A)){1n.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3f(1b)}}};1V.3f=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1V.8G=o(38){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};38=38.3Z();u(5b[38]!=G){38=5b[38]}9"8O/8P."+38};9 1V})();B.H.8Q=o(){u(1f 1X!=="33"&&1X!==G){9 8.8C.2G(8,Y)}Q{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1K.8Y.8Z=S};B.H.8C=o(3q,57,1i){I e,6s;u(57==G){57=2n}u(1i==G){1i=G}5y{6s=3C.94(3q);u(6s.96()&&!57){9 1D}}5z(3D){e=3D;1n.1C("97 98 3q "+3q)}9 3C.99(3q,8.F.9a(),o(3T){1n.1C("9b 9c 2o "+3q);u(1i){9 1i.19(8,3T)}})};B.H.7q=o(14){I 1g;1g=1k 2V();1g.1b=8.6u(14);1g.L=8.1F.L;1g.R=8.1F.R;u(2Y.2C){1g.L/=2Y.2C;1g.R/=2Y.2C}9 1g};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.1Z.9d("S/"+14)};1V=B.1V;B.23=(o(){o 23(c){8.c=c;8.48=8.c;8.1c={6r:\'8t\',2Q:1.0};8.9h=1a.5q.2D();8.F=1f 1X!=="33"&&1X!==G?1k 2L():1K.2O(\'F\');8.F.L=8.c.1F.L;8.F.R=8.c.1F.R;8.1e=8.F.2b(\'2d\');8.1e.9i(8.F.L,8.F.R);8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A}23.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};23.H.9j=o(8q){8.1c.6r=8q;9 8};23.H.2Q=o(2Q){8.1c.2Q=2Q/1o;9 8};23.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2j<0){9 1k 1r(0,0,0,D,8.c)}9 8.65(2j)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1P"3l a 3k 1e";}7D=8.1m+(8.c.1F.L*4*(4E*-1))+(4*4F);u(2j>8.c.M.K||2j<0){9}8.c.M[2j]=A.r;8.c.M[2j+1]=A.g;8.c.M[2j+2]=A.b;8.c.M[2j+3]=A.a;9 2n};1r.H.9J=o(x,y){I 1m;u(8.c==G){1P"3l a 3k 1e";}1m=8.6h(x,y,8.L);9 8.65(1m)};1r.H.9K=o(x,y,A){I 1m;u(8.c==G){1P"3l a 3k 1e";}1m=8.6h(x,y,8.L);8.c.M[1m]=A.r;8.c.M[1m+1]=A.g;8.c.M[1m+2]=A.b;9 8.c.M[1m+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2h;u(4B==G){4B=1D}2h=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2h+8.a.3t(16)}Q{9 2h}};9 1r})();1r=B.1r;B.1R=(o(){o 1R(){}1R.64={};1R.18=o(11,2w){9 8.64[11]=2w};1R.2t=o(1e,11,W){9 8.64[11].2G(1e,W)};9 1R})();1R=B.1R;B.1h=(o(){1h.2T=B.21?4i(\'9Q\').9R().K:4;o 1h(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1h.H.2F=o(62){u(62==G){9}9 8.3V.1y(62)};1h.H.2B=o(){I 1t;u(8.3V.K===0){1N.3a(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1x=8.3V.7v();3p(8.1x.14){1v V.25.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.25.5l:8.c.6D();8.c.6x();9 8.2B();1v V.25.6p:9 8.7u(8.1x.1t,8.1x.1b);1v V.25.1R:9 8.7t();a0:9 8.7s()}};1h.H.2t=o(1i){8.61=1i;8.32=1a.3v(8.c.M.K);9 8.2B()};1h.H.60=o(2r){I 40,5V,1O,1p,f,i,5U,n,1l,C,E,X;8.4R=0;n=8.c.M.K;5V=P.2K((n/4)/1h.2T);40=5V*4;5U=40+((n/4)%1h.2T)*4;X=[];U(i=C=0,E=1h.2T;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1p=1l+(i===1h.2T-1?5U:40);u(B.21){f=45((o(Z){9 o(){9 2r.19(Z,i,1l,1p)}})(8));1O=f.a9();X.1y(8.3Q(1O))}Q{X.1y(4s((o(Z){9 o(i,1l,1p){9 o(){9 2r.19(Z,i,1l,1p)}}})(8)(i,1l,1p),0))}}9 X};1h.H.7s=o(){1N.3a(8.c,"88",8.1x);u(8.1x.14===V.25.6o){9 8.60(8.7d)}Q{9 8.60(8.7a)}};1h.H.7t=o(){1n.1C("ac 2w "+8.1x.2w);1R.2t(8.c,8.1x.2w,8.1x.W);1n.1C("1R "+8.1x.2w+" 5S!");9 8.2B()};1h.H.7d=o(1O,1l,1p){I i,15,C;1n.1C("77 #"+1O+" - V: "+8.1x.11+", af: "+1l+", ag: "+1p);1N.3a(8.c,"8b",{74:1O,71:1h.2T,ai:1l,aj:1p});15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1x.5a(15);8.c.M[i]=1a.2e(15.r);8.c.M[i+1]=1a.2e(15.g);8.c.M[i+2]=1a.2e(15.b);8.c.M[i+3]=1a.2e(15.a)}u(B.21){9 45["70"](1O)}Q{9 8.3Q(1O)}};1h.H.7a=o(1O,1l,1p){I J,43,26,1M,3n,1U,i,j,k,2k,n,11,p,15,2u,C,17,1L;11=8.1x.11;26=8.1x.26;1U=8.1x.1U;n=8.c.M.K;J=8.1x.J;43=P.7N(J.K);2k=[];1n.1C("aq 2k - V: "+8.1x.11);1l=P.T(1l,8.c.1F.L*4*((43-1)/2));1p=P.1j(1p,n-(8.c.1F.L*4*((43-1)/2)));1M=(43-1)/2;15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;3n=0;U(j=17=-1M;-1M<=1M?17<=1M:17>=1M;j=-1M<=1M?++17:--17){U(k=1L=1M;1M<=-1M?1L<=-1M:1L>=-1M;k=1M<=-1M?++1L:--1L){p=15.7G(j,k);2k[3n*3]=p.r;2k[3n*3+1]=p.g;2k[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2k,1U,26);8.32[i]=1a.2e(2u.r);8.32[i+1]=1a.2e(2u.g);8.32[i+2]=1a.2e(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.21){9 45["70"](1O)}Q{9 8.3Q(1O)}};1h.H.3Q=o(1O){I i,C,E;u(1O>=0){1n.1C("77 #"+1O+" 5S! V: "+8.1x.11)}8.4R++;1N.3a(8.c,"3Q",{74:1O,ar:8.4R,71:1h.2T});u(8.4R===1h.2T){u(8.1x.14===V.25.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1O>=0){1n.1C("V "+8.1x.11+" 5S!")}1N.3a(8.c,"89",8.1x);9 8.2B()}};1h.H.5Q=o(J,2k,1U,26){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2k[i*3];1w.g+=J[i]*2k[i*3+1];1w.b+=J[i]*2k[i*3+2]}1w.r=(1w.r/1U)+26;1w.g=(1w.g/1U)+26;1w.b=(1w.b/1U)+26;9 1w};1h.H.7u=o(1t,1b){I 1g,3f;1g=1k 2V();1g.73=(o(Z){9 o(){1t.1e.46(1g,0,0,Z.c.1F.L,Z.c.1F.R);1t.1T=1t.1e.3u(0,0,Z.c.1F.L,Z.c.1F.R);1t.M=1t.1T.1A;Z.c.M=1t.M;9 Z.2B()}})(8);3f=1V.8r(1b);9 1g.1b=3f!=G?3f:1b};9 1h})();1h=B.1h;B.1W=(o(){o 1W(){}1W.3h={};1W.6P=o(2U){9 8.3h[2U]!=G};1W.2D=o(2U){9 8.3h[2U]};1W.6K=o(11,1I){9 8.3h[11]=1I};1W.2t=o(2U,1i){4s((o(Z){9 o(){9 1i.19(Z.2D(2U),Z.2D(2U))}})(8),0);9 8.2D(2U)};1W.at=o(11){u(11==G){11=1D}u(11){9 6E 8.3h[11]}Q{9 8.3h={}}};9 1W})();1W=B.1W;1z.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1z.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1z.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1z.18("ax",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1d.g=N.g>1u?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1d.b=N.b>1u?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1d});1z.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1z.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1z.18("aB",o(O,N){9{r:1u-2*(N.r-1u)*(O.r-1u)/D,g:1u-2*(N.g-1u)*(O.g-1u)/D,b:1u-2*(N.b-1u)*(O.b-1u)/D}});1z.18("aC",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-((D-N.r)*(D-(O.r-1u)))/D:(N.r*(O.r+1u))/D;1d.g=N.g>1u?D-((D-N.g)*(D-(O.g-1u)))/D:(N.g*(O.g+1u))/D;1d.b=N.b>1u?D-((D-N.b)*(D-(O.b-1u)))/D:(N.b*(O.b+1u))/D;9 1d});1z.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1z.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Y",o(){I 3E;u(Y.K===1){3E=1s.5d(Y[0])}Q{3E={r:Y[0],g:Y[1],b:Y[2]}}9 8.1Q("4Y",o(A){A.r=3E.r;A.g=3E.g;A.b=3E.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2K(D*(J/1o));9 8.1Q("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1Q("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1Q("8s",o(A){I 4l,2S,T;T=P.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;4l=((P.2R(T-2S)*2/D)*J)/1o;u(A.r!==T){A.r+=(T-A.r)*4l}u(A.g!==T){A.g+=(T-A.g)*4l}u(A.b!==T){A.b+=(T-A.b)*4l}9 A})});V.18("8e",o(J){9 8.1Q("8e",o(A){I 2S;2S=1G.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=P.1Y((J+1o)/1o,2);9 8.1Q("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1Q("81",o(A){I b,g,h,37,r,E;37=1s.7g(A.r,A.g,A.b);h=37.h*1o;h+=P.2R(J);h=h%1o;h/=1o;37.h=h;E=1s.7i(37.h,37.s,37.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,30;u(Y.K===2){30=1s.5d(Y[0]);3j=Y[1]}Q u(Y.K===4){30={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1Q("7U",o(A){A.r-=(A.r-30.r)*(3j/1o);A.g-=(A.g-30.g)*(3j/1o);A.b-=(A.b-30.b)*(3j/1o);9 A})});V.18("7O",o(){9 8.1Q("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1o}J/=1o;9 8.1Q("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1Q("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2R(J)*2.55;9 8.1Q("7y",o(A){I 2A;2A=1G.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2R(J)*2.55;9 8.1Q("7x",o(A){u(A.r>D-J){A.r=D}Q u(A.rD-J){A.g=D}Q u(A.gD-J){A.b=D}Q u(A.b0){A.r+=(D-A.r)*1c.4S}Q{A.r-=A.r*P.2R(1c.4S)}}u(1c.4M!=G){u(1c.4M>0){A.g+=(D-A.g)*1c.4M}Q{A.g-=A.g*P.2R(1c.4M)}}u(1c.4G!=G){u(1c.4G>0){A.b+=(D-A.b)*1c.4G}Q{A.b-=A.b*P.2R(1c.4G)}}9 A})});V.18("4z",o(){I 4g,1J,2s,2c,1p,i,3F,1l,C,17,E,2q;2s=Y[0],2c=2<=Y.K?3B.19(Y,1):[];3F=2c[2c.K-1];u(1f 3F==="o"){4g=3F;2c.3U()}Q u(1f 3F==="2Z"){4g=1G[3F];2c.3U()}Q{4g=1G.1J}u(1f 2s==="2Z"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2c.K<2){1P"3m 5F 5G Y 2o 4z 48";}1J=4g(2c,0,D);1l=2c[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1J[i]=1l[1]}}1p=2c[2c.K-1];u(1p[0]=D;i=2q<=D?++17:--17){1J[i]=1p[1]}}9 8.1Q("4z",o(A){I 1L,2y;U(i=1L=0,2y=2s.K;0<=2y?1L<2y:1L>2y;i=0<=2y?++1L:--1L){A[2s[i]]=1J[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2X,2W,p;p=P.2R(J)/1o;2X=[0,D*p];2W=[D-(D*p),D];u(J<0){2X=2X.6O();2W=2W.6O()}9 8.4z(\'30\',[0,0],2X,2W,[D,D])});B.1R.18("5g",o(L,R,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1X!=="33"&&1X!==G){F=1k 2L(L,R)}Q{F=1K.2O(\'F\');1a.3L(8.F,F);F.L=L;F.R=R}2p=F.2b(\'2d\');2p.46(8.F,x,y,L,R,0,0,L,R);8.5m={x:x,y:y};8.82=2n;9 8.4O(F)});B.1R.18("4H",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.L==G)&&(1E.R==G))){1n.6t("3m 7h bp 1F 6M U 4H");9}u(1E.L==G){1E.L=8.F.L*1E.R/8.F.R}Q u(1E.R==G){1E.R=8.F.R*1E.L/8.F.L}u(1f 1X!=="33"&&1X!==G){F=1k 2L(1E.L,1E.R)}Q{F=1K.2O(\'F\');1a.3L(8.F,F);F.L=1E.L;F.R=1E.R}2p=F.2b(\'2d\');2p.46(8.F,0,0,8.F.L,8.F.R,0,0,1E.L,1E.R);8.5s=2n;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|Math|else|height|image|max|for|Filter|args|_results|arguments|_this||name||_len|type|pixel||_j|register|call|Util|src|options|result|context|typeof|img|Renderer|callback|min|new|start|loc|Log|100|end|endX|Pixel|Convert|layer|128|case|val|currentJob|push|Blender|data|key|debug|false|newDims|dimensions|Calculate|controlPoints|obj|bezier|document|_k|builder|Event|bnum|throw|process|Plugin|id|imageData|divisor|IO|Store|exports|pow|renderingCanvas|parentData|NodeJS|initObj|Layer|target|Type|bias||055|levels|ret|getContext|cps||clampRGB|imageHeight|imageWidth|hex|Module|newLoc|kernel|caman|prev|true|to|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|Canvas|mul|Analyze|createElement|renderer|opacity|abs|avg|Blocks|search|Image|ctrl2|ctrl1|window|string|rgb|break|modPixelData|undefined|lowBound|highBound|layerData|hsv|lang|func|trigger|events|renderingContext|in|CamanParser|proxyUrl|values|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|getImageData|dataArray|getAttribute|finishInit|cb|1379310345|chan|__slice|fs|_error|color|last|child|parent|leftCoord|allowRevert|hiDPIRatio|copyAttributes|preScaledWidth|p1|preScaledHeight|p0|blockFinished|__hasProp|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|Fiber|drawImage|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|amt|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|hiDPIReplacement|Root|sel|root|green|buf|replaceCanvas|Logger|hueToRGB|blocksDone|red|INST_REGEX|substr|updateContext|rightCoord|dest|fillColor|coord|sub|parseInt|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2N,1z,1G,B,3e,2L,1s,1N,45,V,1V,2V,23,1n,2i,1r,1R,1h,4J,1W,1a,3C,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3L=o(2H,2o,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1y(2o.7n(4j.5f,4j.bn))}9 X};1a.3v=o(K){u(K==G){K=0}u(B.21||(2Y.7o!=G)){9 1k 7o(K)}9 1k 44(K)};9 1a})();u(1f 1X!=="33"&&1X!==G){4J=1X;2L=4i(\'F\');2V=2L.2V;45=4i(\'bl\');3C=4i(\'3C\');3Y=4i(\'3Y\')}Q{4J=2Y}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1D;B.3J=2n;B.5O="86";B.4A="";B.8c="9q";B.21=1f 1X!=="33"&&1X!==G;B.8m=!B.21;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.21){9 2n}u(1f F==="2Z"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1A-2l-1S\')};o B(){8.3s=5T(8.3s,8);I W,1i,1S;u(Y.K===0){1P"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.21){1S=51(B.63(W[0]),10);1i=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1S)&&1W.6P(1S)){9 1W.2t(1S,1i)}}8.1S=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1D;8.5s=1D;8.be=1D;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1D;8.aT=1k 2N(8);8.2P=1k 1h(8);8.7T((o(Z){9 o(){Z.80(W);9 Z.8g()}})(8));9 8}Q{9 1k B(Y)}}B.H.7T=o(3y){I 5C;u(B.21){9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}Q{u(1K.5D==="4D"){1n.1C("6B 6G");9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}Q{5C=(o(Z){9 o(){u(1K.5D==="4D"){1n.1C("6B 6G");9 3y.19(Z)}}})(8);9 1K.6L("ap",5C,1D)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1P"3m Y 6M";}8.22=G;8.4m=G;8.4n=G;8.1i=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Z":8.4n=W[1];31;1v"o":8.1i=W[1]}u(W.K===2){9}8.1i=W[2];u(W.K===4){E=W[4];X=[];U(1B 3d E){u(!3R.19(E,1B))4f;1w=E[1B];X.1y(8.1c[1B]=1w)}9 X}};B.H.6W=o(1I){u(B.21){8.22=1I;8.4m=\'6Z\';9}u(1f 1I==="2v"){8.22=1I}Q{8.22=$(1I)}u(8.22==G){1P"al a8 a7 S 7h F U a3.";}9 8.4m=8.22.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1g":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1n.1C("9N U 21");u(1f 8.22==="2Z"&&8.22.4C(/^7E?:\\/\\//)){9 8.7F(8.22,8.3s)}Q u(1f 8.22==="2Z"){9 3C.9E(8.22,8.3s)}Q{9 8.3s(G,8.22)}};B.H.7F=o(3X,1i){I 66;1n.1C("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1A\',o(8f){9 4N+=8f});9 2u.6m(\'1p\',o(){9 1i(G,1k 91(4N,\'8d\'))})});9 66.6m(\'6t\',1i)};B.H.3s=o(3T,1A){u(3T){1P 3T;}8.S=1k 2V();8.S.1b=1A;1n.1C("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));8.F=1k 2L(8.2g(),8.2f());8.1Z=1k 2L(8.2g(),8.2f());9 8.3x()};B.H.7A=o(){8.S=8.22;8.F=1K.2O(\'F\');8.1e=8.F.2b(\'2d\');8.1Z=1K.2O(\'F\');8.3c=8.1Z.2b(\'2d\');1a.3L(8.S,8.F,{5c:[\'1b\']});1a.3L(8.S,8.1Z,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.1Z,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=1K.2O(\'F\');8.1e=8.F.2b(\'2d\');8.1Z=8.22;8.3c=8.1Z.2b(\'2d\');u(8.4n!=G){8.S=1K.2O(\'1g\');8.S.1b=8.4n;8.5Z();9 8.5Y()}Q{9 8.3x()}};B.H.5Z=o(){u(8.5X()){1n.1C(8.S.1b,"->",8.4I());8.7m=2n;8.S.1b=8.4I()}u(1V.7k(8.S)){8.S.1b=1V.3f(8.S.1b);9 1n.1C("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4k()}Q{9 8.S.73=8.4k}};B.H.78=o(){u(!8.S.4D){9 1D}u((8.S.5P!=G)&&8.S.5P===0){9 1D}9 2n};B.H.2g=o(){9 8.S.L||8.S.5P};B.H.2f=o(){9 8.S.R||8.S.an};B.H.4k=o(){1n.1C("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));u(8.7m){8.F.L=8.2g()/8.3K();8.F.R=8.2f()/8.3K();8.1Z.L=8.2g()/8.3K();8.1Z.R=8.2f()/8.3K()}Q{8.F.L=8.2g();8.F.R=8.2f();8.1Z.L=8.2g();8.1Z.R=8.2f()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1e==G){8.1e=8.F.2b(\'2d\')}u(8.3c==G){8.3c=8.1Z.2b(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.R=8.F.R;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1e.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O);8.3c.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O)}8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A;u(B.3J){8.59=1a.3v(8.M.K);8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1F={L:8.F.L,R:8.F.R};u(!B.21){1W.6K(8.1S,8)}8.1i.19(8,8);9 8.1i=o(){}};B.H.6z=o(){8.1T=8.1e.3u(0,0,8.F.L,8.F.R);9 8.M=8.1T.1A};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3J){1P"5E 4y";}8.2J=1a.3v(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1y(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.21||8.F.3w(\'1A-2l-1S\')){9}9 8.F.7n(\'1A-2l-1S\',8.1S)};B.H.6w=o(){9 8.F.3w(\'1A-2l-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.21||!8.5X()){9}2E=8.3K();u(2E!==1){1n.1C("aH 2E = "+2E);8.6R=2n;8.3M=8.F.L;8.3O=8.F.R;8.F.L=8.3M*2E;8.F.R=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.R=""+8.3O+"8u";8.1e.aK(2E,2E);8.L=8.5N=8.F.L;9 8.R=8.5M=8.F.R}};B.H.3K=o(){I 5B,2C;2C=2Y.2C||1;5B=8.1e.aU||8.1e.aV||8.1e.b6||8.1e.b7||8.1e.b8||1;9 2C/5B};B.H.7p=o(){9(2Y.2C!=G)&&2Y.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1D}9 8.4I()!==G};B.H.4I=o(){u(8.S==G){9 G}9 8.S.3w(\'1A-2l-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1e=8.F.2b(\'2d\');8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A;u(B.3J){8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.R=8.F.R;8.6z();9 8.1F={L:8.F.L,R:8.F.R}};B.H.72=o(1i){u(1i==G){1i=o(){}}1N.3a(8,"6Y");9 8.2P.2t((o(Z){9 o(){Z.1Z.L=Z.F.L;Z.1Z.R=Z.F.R;Z.3c.5v(Z.1T,0,0);9 1i.19(Z)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2n}u(!B.3J){1P"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.3c.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,15,M,C,13,E;F=1K.2O(\'F\');1a.3L(8.F,F);F.L=8.5N;F.R=8.5M;2p=F.2b(\'2d\');1T=2p.3u(0,0,F.L,F.R);M=1T.1A;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1D;9 8.4O(F)};B.H.7r=o(){I 4Z,1q,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3J){1P"5E 4y";}52=[];53=0;1q=53+8.L;54=0;5n=54+8.R;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1U+=J[i]}}8.2P.2F({14:V.25.5h,11:11,J:J,1U:1U,26:26});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.25.1R,2w:2w,W:W});9 8};B.H.5j=o(1i){I 1t;1t=1k 23(8);8.5u.1y(1t);8.2P.2F({14:V.25.5k});1i.19(1t);8.2P.2F({14:V.25.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1y(8.49);8.4a.1y(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2i);4J.B=B;B.2N=(o(){o 2N(c){8.c=c}2N.H.bi=o(){I i,29,4e,C,17,1L,E;29={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){29.r[i]=0;29.g[i]=0;29.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1g=4b[C];X.1y(6C=1k 3e(1g,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1K.5D==="4D"){9 B.5r()}Q{9 1K.6L("bb",B.5r,1D)}})()}3e=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3e(2z,6T){8.6U=2z.3w(\'1A-2l\');8.2l=B(2z,6T.5p(8))}3e.H.6H=o(){I W,e,48,39,5w,5x,m,r,47,C,13,E,X;8.2z=8.2l.F;r=1k 7f(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1k 7f(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1k b9("9 o() { 8."+48+"("+W+"); };");5y{39=5x();X.1y(39.19(8.2l))}5z(3D){e=3D;X.1y(1n.1C(e))}}9 X};3e.H.2t=o(){I 2z;2z=8.2z;9 8.2l.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 3e})();B.1z=(o(){o 1z(){}1z.5A={};1z.18=o(11,39){9 8.5A[11]=39};1z.2t=o(11,O,N){9 8.5A[11](O,N)};9 1z})();1z=B.1z;B.1G=(o(){o 1G(){}1G.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1G.7P=o(1j,T,42){I 2A;u(42==G){42=1D}2A=1j+(P.aQ()*(T-1j));u(42){9 2A.aP(42)}Q{9 P.41(2A)}};1G.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1G.1J=o(1l,2X,2W,1p,34,35){I 1J,3o,1H,1q,i,j,3r,4v,2m,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1H=1l;34=2X;35=2W}Q{1H=[1l,2X,2W,1p]}u(1H.K<2){1P"3m 5F 5G Y 2o 1J";}1J={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2m=1H;as(2m.K>1){4v=[];U(j=17=0,E=2m.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1y([3r(2m[j][0],2m[j+1][0],t),3r(2m[j][1],2m[j+1][1],t)])}2m=4v}1J[P.41(2m[0][0])]=P.41(3o(2m[0][1],34,35))}1q=1H[1H.K-1][0];1J=B.1G.5H(1J,1q);u(1J[1q]==G){1J[1q]=1J[1q-1]}9 1J};1G.6I=o(1H,34,35){I 2F,3o,5I,1q,4u,4t,4r,4p,i,j,3r,5J,5K,2M,p,3P,3N,2I,58,56,2a,50,t,C,17,E;u(1H.K<2){1P"3m 5F 5G Y 2o 6I";}2a={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(Z){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2M=(o(Z){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(Z){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1H.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3P=1H[i];3N=1H[i+1];2I=3N[0]-3P[0];58=1/2I;u(i===1H.K-2){58=1/(2I-1)}p=i>0?1H[i-1]:3P;5J=2M(50(3N,p),[0.5,0.5]);p=i<1H.K-2?1H[i+2]:3N;5K=2M(50(p,3P),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2M(3P,[4u,4u]),2M(5J,[4t,4t]),2M(3N,[4r,4r]),2M(5K,[4p,4p]));2a[P.41(56[0])]=P.41(3o(56[1],34,35));5I+=1}}1q=1H[1H.K-1][0];2a=B.1G.5H(2a,1q);9 2a};1G.5H=o(3g,1q){I i,j,3I,2a,4W,C,17;u(7W.ah(3g).K<1q+1){2a={};U(i=C=0;0<=1q?C<=1q:C>=1q;i=0<=1q?++C:--C){u(3g[i]!=G){2a[i]=3g[i]}Q{3I=[i-1,2a[i-1]];U(j=17=i;i<=1q?17<=1q:17>=1q;j=i<=1q?++17:--17){u(3g[j]!=G){4W=[j,3g[j]];31}}2a[i]=3I[1]+((4W[1]-3I[1])/(4W[0]-3I[0]))*(i-3I[0])}}9 2a}9 3g};9 1G})();1G=B.1G;B.1s=(o(){o 1s(){}1s.5d=o(2h){I b,g,r;u(2h.ae(0)==="#"){2h=2h.4U(1)}r=51(2h.4U(0,2),16);g=51(2h.4U(2,2),16);b=51(2h.4U(4,2),16);9{r:r,g:g,b:b}};1s.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}Q{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1s.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}Q{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}Q{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}Q{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}Q{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1o,y:y*1o,z:z*1o}};1s.9S=o(x,y,z){I b,g,r;x/=1o;y/=1o;z/=1o;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}Q{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}Q{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}Q{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1s.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1o.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}Q{x=(7.6f*x)+0.3z}u(y>0.6d){y=P.1Y(y,0.6e)}Q{y=(7.6f*y)+0.3z}u(z>0.6d){z=P.1Y(z,0.6e)}Q{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1s.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}Q{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}Q{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}Q{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1o.0,z:z*7R.7S}};1s.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1s.9t=o(l,a,b){};9 1s})();1s=B.1s;B.1N=(o(){o 1N(){}1N.3b={};1N.87=["88","89","6Y","8a","8b","3Q"];1N.3a=o(24,14,1A){I 3S,C,13,E,X;u(1A==G){1A=G}u(8.3b[14]&&8.3b[14].K){E=8.3b[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.24===G||24.1S===3S.24.1S){X.1y(3S.2r.19(24,1A))}Q{X.1y(9p 0)}}9 X}};1N.9n=o(24,14,2r){I 6n,5e;u(1f 24==="2Z"){5e=24;6n=14;24=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1D}u(!8.3b[14]){8.3b[14]=[]}8.3b[14].1y({24:24,2r:2r});9 2n};9 1N})();1N=B.1N;B.V=(o(){o V(){}V.25={6o:1,5h:2,5k:3,5l:4,6p:5,1R:6};V.18=o(11,8j){9 B.H[11]=8j};9 V})();V=B.V;B.1V=(o(){o 1V(){}1V.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1V.7k=o(1g){u(1g==G){9 1D}u(8.8l(1g)){9 1D}9 8.4q(1g.1b)};1V.8l=o(1g){I E;9(1g.5O!=G)&&((E=1g.5O.3Z())===\'86\'||E===\'8n-9m\')};1V.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1K.9k}Q{9 1D}};1V.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1n.6q("9f 2o 9e a 8v S 93 a 90 8y. 79: "+1b)}Q{u(B.4q(B.4A)){1n.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3f(1b)}}};1V.3f=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1V.8G=o(38){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};38=38.3Z();u(5b[38]!=G){38=5b[38]}9"8O/8P."+38};9 1V})();B.H.8Q=o(){u(1f 1X!=="33"&&1X!==G){9 8.8C.2G(8,Y)}Q{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1K.8Y.8Z=S};B.H.8C=o(3q,57,1i){I e,6s;u(57==G){57=2n}u(1i==G){1i=G}5y{6s=3C.94(3q);u(6s.96()&&!57){9 1D}}5z(3D){e=3D;1n.1C("97 98 3q "+3q)}9 3C.99(3q,8.F.9a(),o(3T){1n.1C("9b 9c 2o "+3q);u(1i){9 1i.19(8,3T)}})};B.H.7q=o(14){I 1g;1g=1k 2V();1g.1b=8.6u(14);1g.L=8.1F.L;1g.R=8.1F.R;u(2Y.2C){1g.L/=2Y.2C;1g.R/=2Y.2C}9 1g};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.1Z.9d("S/"+14)};1V=B.1V;B.23=(o(){o 23(c){8.c=c;8.48=8.c;8.1c={6r:\'8t\',2Q:1.0};8.9h=1a.5q.2D();8.F=1f 1X!=="33"&&1X!==G?1k 2L():1K.2O(\'F\');8.F.L=8.c.1F.L;8.F.R=8.c.1F.R;8.1e=8.F.2b(\'2d\');8.1e.9i(8.F.L,8.F.R);8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A}23.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};23.H.9j=o(8q){8.1c.6r=8q;9 8};23.H.2Q=o(2Q){8.1c.2Q=2Q/1o;9 8};23.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2j<0){9 1k 1r(0,0,0,D,8.c)}9 8.65(2j)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1P"3l a 3k 1e";}7D=8.1m+(8.c.1F.L*4*(4E*-1))+(4*4F);u(2j>8.c.M.K||2j<0){9}8.c.M[2j]=A.r;8.c.M[2j+1]=A.g;8.c.M[2j+2]=A.b;8.c.M[2j+3]=A.a;9 2n};1r.H.9J=o(x,y){I 1m;u(8.c==G){1P"3l a 3k 1e";}1m=8.6h(x,y,8.L);9 8.65(1m)};1r.H.9K=o(x,y,A){I 1m;u(8.c==G){1P"3l a 3k 1e";}1m=8.6h(x,y,8.L);8.c.M[1m]=A.r;8.c.M[1m+1]=A.g;8.c.M[1m+2]=A.b;9 8.c.M[1m+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2h;u(4B==G){4B=1D}2h=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2h+8.a.3t(16)}Q{9 2h}};9 1r})();1r=B.1r;B.1R=(o(){o 1R(){}1R.64={};1R.18=o(11,2w){9 8.64[11]=2w};1R.2t=o(1e,11,W){9 8.64[11].2G(1e,W)};9 1R})();1R=B.1R;B.1h=(o(){1h.2T=B.21?4i(\'9Q\').9R().K:4;o 1h(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1h.H.2F=o(62){u(62==G){9}9 8.3V.1y(62)};1h.H.2B=o(){I 1t;u(8.3V.K===0){1N.3a(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1x=8.3V.7v();3p(8.1x.14){1v V.25.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.25.5l:8.c.6D();8.c.6x();9 8.2B();1v V.25.6p:9 8.7u(8.1x.1t,8.1x.1b);1v V.25.1R:9 8.7t();a0:9 8.7s()}};1h.H.2t=o(1i){8.61=1i;8.32=1a.3v(8.c.M.K);9 8.2B()};1h.H.60=o(2r){I 40,5V,1O,1p,f,i,5U,n,1l,C,E,X;8.4R=0;n=8.c.M.K;5V=P.2K((n/4)/1h.2T);40=5V*4;5U=40+((n/4)%1h.2T)*4;X=[];U(i=C=0,E=1h.2T;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1p=1l+(i===1h.2T-1?5U:40);u(B.21){f=45((o(Z){9 o(){9 2r.19(Z,i,1l,1p)}})(8));1O=f.a9();X.1y(8.3Q(1O))}Q{X.1y(4s((o(Z){9 o(i,1l,1p){9 o(){9 2r.19(Z,i,1l,1p)}}})(8)(i,1l,1p),0))}}9 X};1h.H.7s=o(){1N.3a(8.c,"88",8.1x);u(8.1x.14===V.25.6o){9 8.60(8.7d)}Q{9 8.60(8.7a)}};1h.H.7t=o(){1n.1C("ac 2w "+8.1x.2w);1R.2t(8.c,8.1x.2w,8.1x.W);1n.1C("1R "+8.1x.2w+" 5S!");9 8.2B()};1h.H.7d=o(1O,1l,1p){I i,15,C;1n.1C("77 #"+1O+" - V: "+8.1x.11+", af: "+1l+", ag: "+1p);1N.3a(8.c,"8b",{74:1O,71:1h.2T,ai:1l,aj:1p});15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1x.5a(15);8.c.M[i]=1a.2e(15.r);8.c.M[i+1]=1a.2e(15.g);8.c.M[i+2]=1a.2e(15.b);8.c.M[i+3]=1a.2e(15.a)}u(B.21){9 45["70"](1O)}Q{9 8.3Q(1O)}};1h.H.7a=o(1O,1l,1p){I J,43,26,1M,3n,1U,i,j,k,2k,n,11,p,15,2u,C,17,1L;11=8.1x.11;26=8.1x.26;1U=8.1x.1U;n=8.c.M.K;J=8.1x.J;43=P.7N(J.K);2k=[];1n.1C("aq 2k - V: "+8.1x.11);1l=P.T(1l,8.c.1F.L*4*((43-1)/2));1p=P.1j(1p,n-(8.c.1F.L*4*((43-1)/2)));1M=(43-1)/2;15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;3n=0;U(j=17=-1M;-1M<=1M?17<=1M:17>=1M;j=-1M<=1M?++17:--17){U(k=1L=1M;1M<=-1M?1L<=-1M:1L>=-1M;k=1M<=-1M?++1L:--1L){p=15.7G(j,k);2k[3n*3]=p.r;2k[3n*3+1]=p.g;2k[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2k,1U,26);8.32[i]=1a.2e(2u.r);8.32[i+1]=1a.2e(2u.g);8.32[i+2]=1a.2e(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.21){9 45["70"](1O)}Q{9 8.3Q(1O)}};1h.H.3Q=o(1O){I i,C,E;u(1O>=0){1n.1C("77 #"+1O+" 5S! V: "+8.1x.11)}8.4R++;1N.3a(8.c,"3Q",{74:1O,ar:8.4R,71:1h.2T});u(8.4R===1h.2T){u(8.1x.14===V.25.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1O>=0){1n.1C("V "+8.1x.11+" 5S!")}1N.3a(8.c,"89",8.1x);9 8.2B()}};1h.H.5Q=o(J,2k,1U,26){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2k[i*3];1w.g+=J[i]*2k[i*3+1];1w.b+=J[i]*2k[i*3+2]}1w.r=(1w.r/1U)+26;1w.g=(1w.g/1U)+26;1w.b=(1w.b/1U)+26;9 1w};1h.H.7u=o(1t,1b){I 1g,3f;1g=1k 2V();1g.73=(o(Z){9 o(){1t.1e.46(1g,0,0,Z.c.1F.L,Z.c.1F.R);1t.1T=1t.1e.3u(0,0,Z.c.1F.L,Z.c.1F.R);1t.M=1t.1T.1A;Z.c.M=1t.M;9 Z.2B()}})(8);3f=1V.8r(1b);9 1g.1b=3f!=G?3f:1b};9 1h})();1h=B.1h;B.1W=(o(){o 1W(){}1W.3h={};1W.6P=o(2U){9 8.3h[2U]!=G};1W.2D=o(2U){9 8.3h[2U]};1W.6K=o(11,1I){9 8.3h[11]=1I};1W.2t=o(2U,1i){4s((o(Z){9 o(){9 1i.19(Z.2D(2U),Z.2D(2U))}})(8),0);9 8.2D(2U)};1W.at=o(11){u(11==G){11=1D}u(11){9 6E 8.3h[11]}Q{9 8.3h={}}};9 1W})();1W=B.1W;1z.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1z.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1z.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1z.18("ax",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1d.g=N.g>1u?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1d.b=N.b>1u?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1d});1z.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1z.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1z.18("aB",o(O,N){9{r:1u-2*(N.r-1u)*(O.r-1u)/D,g:1u-2*(N.g-1u)*(O.g-1u)/D,b:1u-2*(N.b-1u)*(O.b-1u)/D}});1z.18("aC",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-((D-N.r)*(D-(O.r-1u)))/D:(N.r*(O.r+1u))/D;1d.g=N.g>1u?D-((D-N.g)*(D-(O.g-1u)))/D:(N.g*(O.g+1u))/D;1d.b=N.b>1u?D-((D-N.b)*(D-(O.b-1u)))/D:(N.b*(O.b+1u))/D;9 1d});1z.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1z.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Y",o(){I 3E;u(Y.K===1){3E=1s.5d(Y[0])}Q{3E={r:Y[0],g:Y[1],b:Y[2]}}9 8.1Q("4Y",o(A){A.r=3E.r;A.g=3E.g;A.b=3E.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2K(D*(J/1o));9 8.1Q("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1Q("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1Q("8s",o(A){I 4l,2S,T;T=P.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;4l=((P.2R(T-2S)*2/D)*J)/1o;u(A.r!==T){A.r+=(T-A.r)*4l}u(A.g!==T){A.g+=(T-A.g)*4l}u(A.b!==T){A.b+=(T-A.b)*4l}9 A})});V.18("8e",o(J){9 8.1Q("8e",o(A){I 2S;2S=1G.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=P.1Y((J+1o)/1o,2);9 8.1Q("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1Q("81",o(A){I b,g,h,37,r,E;37=1s.7g(A.r,A.g,A.b);h=37.h*1o;h+=P.2R(J);h=h%1o;h/=1o;37.h=h;E=1s.7i(37.h,37.s,37.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,30;u(Y.K===2){30=1s.5d(Y[0]);3j=Y[1]}Q u(Y.K===4){30={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1Q("7U",o(A){A.r-=(A.r-30.r)*(3j/1o);A.g-=(A.g-30.g)*(3j/1o);A.b-=(A.b-30.b)*(3j/1o);9 A})});V.18("7O",o(){9 8.1Q("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1o}J/=1o;9 8.1Q("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1Q("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2R(J)*2.55;9 8.1Q("7y",o(A){I 2A;2A=1G.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2R(J)*2.55;9 8.1Q("7x",o(A){u(A.r>D-J){A.r=D}Q u(A.rD-J){A.g=D}Q u(A.gD-J){A.b=D}Q u(A.b0){A.r+=(D-A.r)*1c.4S}Q{A.r-=A.r*P.2R(1c.4S)}}u(1c.4M!=G){u(1c.4M>0){A.g+=(D-A.g)*1c.4M}Q{A.g-=A.g*P.2R(1c.4M)}}u(1c.4G!=G){u(1c.4G>0){A.b+=(D-A.b)*1c.4G}Q{A.b-=A.b*P.2R(1c.4G)}}9 A})});V.18("4z",o(){I 4g,1J,2s,2c,1p,i,3F,1l,C,17,E,2q;2s=Y[0],2c=2<=Y.K?3B.19(Y,1):[];3F=2c[2c.K-1];u(1f 3F==="o"){4g=3F;2c.3U()}Q u(1f 3F==="2Z"){4g=1G[3F];2c.3U()}Q{4g=1G.1J}u(1f 2s==="2Z"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2c.K<2){1P"3m 5F 5G Y 2o 4z 48";}1J=4g(2c,0,D);1l=2c[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1J[i]=1l[1]}}1p=2c[2c.K-1];u(1p[0]=D;i=2q<=D?++17:--17){1J[i]=1p[1]}}9 8.1Q("4z",o(A){I 1L,2y;U(i=1L=0,2y=2s.K;0<=2y?1L<2y:1L>2y;i=0<=2y?++1L:--1L){A[2s[i]]=1J[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2X,2W,p;p=P.2R(J)/1o;2X=[0,D*p];2W=[D-(D*p),D];u(J<0){2X=2X.6O();2W=2W.6O()}9 8.4z(\'30\',[0,0],2X,2W,[D,D])});B.1R.18("5g",o(L,R,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1X!=="33"&&1X!==G){F=1k 2L(L,R)}Q{F=1K.2O(\'F\');1a.3L(8.F,F);F.L=L;F.R=R}2p=F.2b(\'2d\');2p.46(8.F,x,y,L,R,0,0,L,R);8.5m={x:x,y:y};8.82=2n;9 8.4O(F)});B.1R.18("4H",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.L==G)&&(1E.R==G))){1n.6t("3m 7h bp 1F 6M U 4H");9}u(1E.L==G){1E.L=8.F.L*1E.R/8.F.R}Q u(1E.R==G){1E.R=8.F.R*1E.L/8.F.L}u(1f 1X!=="33"&&1X!==G){F=1k 2L(1E.L,1E.R)}Q{F=1K.2O(\'F\');1a.3L(8.F,F);F.L=1E.L;F.R=1E.R}2p=F.2b(\'2d\');2p.46(8.F,0,0,8.F.L,8.F.R,0,0,1E.L,1E.R);8.5s=2n;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|Math|else|height|image|max|for|Filter|args|_results|arguments|_this||name||_len|type|pixel||_j|register|call|Util|src|options|result|context|typeof|img|Renderer|callback|min|new|start|loc|Log|100|end|endX|Pixel|Convert|layer|128|case|val|currentJob|push|Blender|data|key|debug|false|newDims|dimensions|Calculate|controlPoints|obj|bezier|document|_k|builder|Event|bnum|throw|process|Plugin|id|imageData|divisor|IO|Store|exports|pow|renderingCanvas|parentData|NodeJS|initObj|Layer|target|Type|bias||055|levels|ret|getContext|cps||clampRGB|imageHeight|imageWidth|hex|Module|newLoc|kernel|caman|prev|true|to|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|Canvas|mul|Analyze|createElement|renderer|opacity|abs|avg|Blocks|search|Image|ctrl2|ctrl1|window|string|rgb|break|modPixelData|undefined|lowBound|highBound|layerData|hsv|lang|func|trigger|events|renderingContext|in|CamanParser|proxyUrl|values|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|getImageData|dataArray|getAttribute|finishInit|cb|1379310345|chan|__slice|fs|_error|color|last|child|parent|leftCoord|allowRevert|hiDPIRatio|copyAttributes|preScaledWidth|p1|preScaledHeight|p0|blockFinished|__hasProp|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|Fiber|drawImage|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|amt|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|hiDPIReplacement|Root|sel|root|green|buf|replaceCanvas|Logger|hueToRGB|blocksDone|red|INST_REGEX|substr|updateContext|rightCoord|dest|fillColor|coord|sub|parseInt|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file diff --git a/src/core/caman.coffee b/src/core/caman.coffee index 090a6240..3cdc42b7 100644 --- a/src/core/caman.coffee +++ b/src/core/caman.coffee @@ -286,10 +286,10 @@ class Caman extends Module # Initialization function for the browser and canvas objects. initCanvas: -> - @canvas = @initObj + @canvas = document.createElement 'canvas' @context = @canvas.getContext '2d' - @renderingCanvas = document.createElement 'canvas' + @renderingCanvas = @initObj @renderingContext = @renderingCanvas.getContext '2d' if @imageUrl? From 8a04179c6a6431ee57cace0e2e25cc1a774a64fa Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Mon, 9 Mar 2015 11:04:41 +0100 Subject: [PATCH 08/12] Resize intermediate canvas when initialized with existing canvas object --- dist/caman.full.js | 2 ++ dist/caman.full.min.js | 2 +- dist/caman.full.pack.js | 2 +- dist/caman.js | 2 ++ dist/caman.min.js | 2 +- dist/caman.pack.js | 2 +- src/core/caman.coffee | 3 +++ src/plugins/src/rotate.coffee | 2 +- test/unit/initialization.coffee | 2 +- 9 files changed, 13 insertions(+), 6 deletions(-) diff --git a/dist/caman.full.js b/dist/caman.full.js index 23401e0d..abae280b 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -415,6 +415,8 @@ this.context = this.canvas.getContext('2d'); this.renderingCanvas = this.initObj; this.renderingContext = this.renderingCanvas.getContext('2d'); + this.canvas.width = this.renderingCanvas.width; + this.canvas.height = this.renderingCanvas.height; if (this.imageUrl != null) { this.image = document.createElement('img'); this.image.src = this.imageUrl; diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index 167192d2..c6bbd2ed 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -33,7 +33,7 @@ if(typeof obj==="object"){this.initObj=obj;}else{this.initObj=$(obj);} if(this.initObj==null){throw"Could not find image or canvas for initialization.";} return this.initType=this.initObj.nodeName.toLowerCase();};Caman.prototype.setup=function(){switch(this.initType){case"node":return this.initNode();case"img":return this.initImage();case"canvas":return this.initCanvas();}};Caman.prototype.initNode=function(){Log.debug("Initializing for NodeJS");if(typeof this.initObj==="string"&&this.initObj.match(/^https?:\/\//)){return this.readFromHttp(this.initObj,this.nodeFileReady);}else if(typeof this.initObj==="string"){return fs.readFile(this.initObj,this.nodeFileReady);}else{return this.nodeFileReady(null,this.initObj);}};Caman.prototype.readFromHttp=function(url,callback){var req;Log.debug("Fetching image from "+url);req=http.get(url,function(res){var buf;buf='';res.setEncoding('binary');res.on('data',function(chunk){return buf+=chunk;});return res.on('end',function(){return callback(null,new Buffer(buf,'binary'));});});return req.on('error',callback);};Caman.prototype.nodeFileReady=function(err,data){if(err){throw err;} this.image=new Image();this.image.src=data;Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));this.canvas=new Canvas(this.imageWidth(),this.imageHeight());this.renderingCanvas=new Canvas(this.imageWidth(),this.imageHeight());return this.finishInit();};Caman.prototype.initImage=function(){this.image=this.initObj;this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');Util.copyAttributes(this.image,this.canvas,{except:['src']});Util.copyAttributes(this.image,this.renderingCanvas,{except:['src']});if(this.image.parentNode!=null){this.image.parentNode.replaceChild(this.renderingCanvas,this.image);} -this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=this.initObj;this.renderingContext=this.renderingCanvas.getContext('2d');if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} +this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=this.initObj;this.renderingContext=this.renderingCanvas.getContext('2d');this.canvas.width=this.renderingCanvas.width;this.canvas.height=this.renderingCanvas.height;if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} diff --git a/dist/caman.full.pack.js b/dist/caman.full.pack.js index 39dcc82b..687ba55d 100644 --- a/dist/caman.full.pack.js +++ b/dist/caman.full.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4K,2m,2b,D,5c,3Q,1X,2L,6x,R,2V,4J,3b,1Y,3H,1Z,2t,1R,7O,32,1u,fs,6N,81,5d,8V,6F=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.52=A(4D,3G,G){M 6J,H,1n,K,44,1o;B(G==L){G={}}K=4D.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6J=K[H];B((G.7g!=L)&&(44=6J.9Q,6F.1x(G.7g,44)>=0)){5G}1o.2j(3G.bh(6J.9Q,6J.fP))}u 1o};1u.6b=A(P){B(P==L){P=0}B(D.2Z||(4Q.ca!=L)){u 1y ca(P)}u 1y 5u(P)};u 1u})();B(1s 2h!=="41"&&2h!==L){7O=2h;3Q=6u(\'I\');4J=3Q.4J;6x=6u(\'fO\');fs=6u(\'fs\');6N=6u(\'6N\')}S{7O=4Q}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5Q=2J;D.9C="c3";D.7F="";D.c5="fH";D.2Z=1s 2h!=="41"&&2h!==L;D.ce=!D.2Z;D.5M=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Z){u 2J}B(1s I==="3j"){I=$(I)}B(!((I!=L)&&(I.5F!=L))){u L}u I.5F(\'2a-3K-2W\')};A D(){o.5D=8Q(o.5D,o);M 1l,1Q,2W;B(1k.P===0){2K"5z 1k";}B(o aT D){o.5y=o.5y.9y(o);o.6R=o.6R.9y(o);1l=1k[0];B(!D.2Z){2W=4q(D.9z(1l[0]),10);1Q=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bQ(2W)&&32.bR(2W)){u 32.3T(2W,1Q)}}o.2W=1u.9L.4o();o.7G=o.4P=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6U=[];o.9t=[];o.9s=[];o.6w=L;o.d6=2k;o.fz=1y 4K(o);o.4E=1y 1R(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Z){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2o.9p==="7J"){1Y.2u("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2o.9p==="7J"){1Y.2u("aU aW");u cb.1x(1r)}}})(o);u 2o.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2r,2f,K,1o;B(1l.P===0){2K"5z 1k be";}o.3c=L;o.7K=L;o.7L=L;o.1Q=A(){};o.bo(1l[0]);B(1l.P===1){u}5B(1s 1l[1]){28"3j":o.7L=1l[1];56;28"A":o.1Q=1l[1]}B(1l.P===2){u}o.1Q=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2r 57 K){B(!72.1x(K,2r))5G;2f=K[2r];1o.2j(o.1G[2r]=2f)}u 1o}};D.N.bo=A(2B){B(D.2Z){o.3c=2B;o.7K=\'bS\';u}B(1s 2B==="3S"){o.3c=2B}S{o.3c=$(2B)}B(o.3c==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3c.9Q.6r()};D.N.as=A(){5B(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1Y.2u("fr W 2Z");B(1s o.3c==="3j"&&o.3c.82(/^cA?:\\/\\//)){u o.cD(o.3c,o.5D)}S B(1s o.3c==="3j"){u fs.fp(o.3c,o.5D)}S{u o.5D(L,o.3c)}};D.N.cD=A(6H,1Q){M 9g;1Y.2u("fm 1d 4D "+6H);9g=6N.4o(6H,A(4e){M 83;83=\'\';4e.fl(\'d7\');4e.9e(\'2a\',A(a7){u 83+=a7});u 4e.9e(\'1M\',A(){u 1Q(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1Q)};D.N.5D=A(6v,2a){B(6v){2K 6v;}o.1d=1y 4J();o.1d.1E=2a;1Y.2u("4J au. ay = "+(o.3I())+", aL = "+(o.3J()));o.I=1y 3Q(o.3I(),o.3J());o.2Y=1y 3Q(o.3I(),o.3J());u o.5y()};D.N.cl=A(){o.1d=o.3c;o.I=2o.3E(\'I\');o.1j=o.I.3d(\'2d\');o.2Y=2o.3E(\'I\');o.5g=o.2Y.3d(\'2d\');1u.52(o.1d,o.I,{7g:[\'1E\']});1u.52(o.1d,o.2Y,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.2Y,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=2o.3E(\'I\');o.1j=o.I.3d(\'2d\');o.2Y=o.3c;o.5g=o.2Y.3d(\'2d\');B(o.7L!=L){o.1d=2o.3E(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5y()}};D.N.9b=A(){B(o.99()){1Y.2u(o.1d.1E,"->",o.89());o.bi=2J;o.1d.1E=o.89()}B(2V.bj(o.1d)){o.1d.1E=2V.5l(o.1d.1E);u 1Y.2u("fj 1d fi, fh bI = "+o.1d.1E)}};D.N.9a=A(){B(o.bJ()){u o.6R()}S{u o.1d.bP=o.6R}};D.N.bJ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2J};D.N.3I=A(){u o.1d.F||o.1d.94};D.N.3J=A(){u o.1d.J||o.1d.fg};D.N.6R=A(){1Y.2u("4J au. ay = "+(o.3I())+", aL = "+(o.3J()));B(o.bi){o.I.F=o.3I()/o.6p();o.I.J=o.3J()/o.6p();o.2Y.F=o.3I()/o.6p();o.2Y.J=o.3J()/o.6p()}S{o.I.F=o.3I();o.I.J=o.3J();o.2Y.F=o.3I();o.2Y.J=o.3J()}u o.5y()};D.N.5y=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3d(\'2d\')}B(o.5g==L){o.5g=o.2Y.3d(\'2d\')}o.8b=o.6o=o.F=o.I.F;o.8c=o.6i=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.6f(o.1d,0,0,o.3I(),o.3J(),0,0,o.6o,o.6i);o.5g.6f(o.1d,0,0,o.3I(),o.3J(),0,0,o.6o,o.6i)}o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.7G=1u.6b(o.T.P);o.4P=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4P[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Z){32.cs(o.2W,o)}o.1Q.1x(o,o);u o.1Q=A(){}};D.N.cy=A(){o.2T=o.1j.4V(0,0,o.I.F,o.I.J);u o.T=o.2T.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5Q){2K"8Y 8d";}o.4P=1u.6b(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4P[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Z||o.I.5F(\'2a-3K-2W\')){u}u o.I.bh(\'2a-3K-2W\',o.2W)};D.N.cH=A(){u o.I.5F(\'2a-3K-cK-8d\')!==L};D.N.cf=A(){M 4p;B(D.2Z||!o.99()){u}4p=o.6p();B(4p!==1){1Y.2u("fe 4p = "+4p);o.d6=2J;o.6o=o.I.F;o.6i=o.I.J;o.I.F=o.6o*4p;o.I.J=o.6i*4p;o.I.cN.F=""+o.6o+"cQ";o.I.cN.J=""+o.6i+"cQ";o.1j.fd(4p,4p);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6p=A(){M 8W,4g;4g=4Q.4g||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4g/8W};D.N.a8=A(){u(4Q.4g!=L)&&4Q.4g!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5F(\'2a-3K-cK\')};D.N.6D=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3d(\'2d\');o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.4P=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4P[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1Q){B(1Q==L){1Q=A(){}}2L.5j(o,"ai");u o.4E.3T((A(1r){u A(){1r.2Y.F=1r.I.F;1r.2Y.J=1r.I.J;1r.5g.8S(1r.2T,0,0);u 1Q.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2J}B(!D.5Q){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.5g.8S(o.2T,0,0)}};D.N.f6=A(){M I,2I,i,2T,1w,T,H,1n,K;I=2o.3E(\'I\');1u.52(o.I,I);I.F=o.8b;I.J=o.8c;2I=I.3d(\'2d\');2T=2I.4V(0,0,I.F,I.J);T=2T.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2I.8S(2T,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6D(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,44,4m;B(!D.5Q){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4P;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2P+=Q[i]}}o.4E.4f({1v:R.3k.8I,1p:1p,Q:Q,2P:2P,3e:3e});u o};D.N.51=A(4b,1l){o.4E.4f({1v:R.3k.2t,4b:4b,1l:1l});u o};D.N.33=A(1Q){M 2g;2g=1y 3b(o);o.9s.2j(2g);o.4E.4f({1v:R.3k.8H});1Q.1x(2g);o.4E.4f({1v:R.3k.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6w);o.6U.2j(o.T);o.6w=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6U.6s();u o.6w=o.9t.6s()};D.N.c1=A(){u o.6w.c2()};u D})(3H);7O.D=D;D.4K=(A(){A 4K(c){o.c=c}4K.N.f5=A(){M i,3y,6L,H,1f,1H,K;3y={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3y.r[i]=0;3y.g[i]=0;3y.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6q.P;H<1n;H++){1P=6q[H];1o.2j(cj=1y 5c(1P,A(){o.ck();u o.3T()}))}u 1o};B(D.ce){(A(){B(2o.9p==="7J"){u D.9m()}S{u 2o.aX("f3",D.9m,2k)}})()}5c=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 5c(4u,ct){o.cw=4u.5F(\'2a-3K\');o.3K=D(4u,ct.9y(o))}5c.N.ck=A(){M 1l,e,1C,5b,8K,8L,m,r,6G,H,1n,K,1o;o.4u=o.3K.I;r=1y cJ(8v,\'g\');6G=o.cw.82(r);B(!(6G.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6G.P;H<1n;H++){8K=6G[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{5b=8L();1o.2j(5b.1x(o.3K))}8N(6h){e=6h;1o.2j(1Y.2u(e))}}u 1o};5c.N.3T=A(){M 4u;4u=o.4u;u o.3K.ac(A(){u 4u.9c.aY(o.cO(),4u)})};u 5c})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,5b){u o.8P[1p]=5b};2m.3T=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.5a=A(6V,6W,6Y,71){u O.8l(O.1T(6Y-6V,2)+O.1T(71-6W,2))};2b.ab=A(1S,1e,6t){M 4h;B(6t==L){6t=2k}4h=1S+(O.f1()*(1e-1S));B(6t){u 4h.f0(6t)}S{u O.5C(4h)}};2b.6y=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4L,4M,1M,54,53){M 29,5S,2A,26,i,j,5E,1N,3R,t,H,1f,K;B(54==L){54=0}B(53==L){53=E}B(1J[0]aT 5u){2A=1J;54=4L;53=4M}S{2A=[1J,4L,4M,1M]}B(2A.P<2){2K"5z 8e 8X 1k 3G 29";}29={};5E=A(a,b,t){u a*(1-t)+b*t};5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1N=[];W(j=1f=0,K=3R.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1N.2j([5E(3R[j][0],3R[j+1][0],t),5E(3R[j][1],3R[j+1][1],t)])}3R=1N}29[O.5C(3R[0][0])]=O.5C(5S(3R[0][1],54,53))}26=2A[2A.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2A,54,53){M 4f,5S,98,26,88,86,85,84,i,j,5E,9f,9h,4O,p,5r,5x,4H,7Z,7Y,3u,7W,t,H,1f,K;B(2A.P<2){2K"5z 8e 8X 1k 3G bE";}3u={};5E=A(a,b,t){u a*(1-t)+b*t};4f=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4O=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};98=0;W(i=H=0,K=2A.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5r=2A[i];5x=2A[i+1];4H=5x[0]-5r[0];7Z=1/4H;B(i===2A.P-2){7Z=1/(4H-1)}p=i>0?2A[i-1]:5r;9f=4O(7W(5x,p),[0.5,0.5]);p=i<2A.P-2?2A[i+2]:5x;9h=4O(7W(p,5r),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4f(4O(5r,[88,88]),4O(9f,[86,86]),4O(5x,[85,85]),4O(9h,[84,84]));3u[O.5C(7Y[0])]=O.5C(5S(7Y[1],54,53));98+=1}}26=2A[2A.P-1][0];3u=D.2b.91(3u,26);u 3u};2b.91=A(58,26){M i,j,5T,3u,7V,H,1f;B(bk.eX(58).P<26+1){3u={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(58[i]!=L){3u[i]=58[i]}S{5T=[i-1,3u[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(58[j]!=L){7V=[j,58[j]];56}}3u[i]=5T[1]+((7V[1]-5T[1])/(7V[0]-5T[0]))*(i-5T[0])}}u 3u}u 58};u 2b})();2b=D.2b;D.1X=(A(){A 1X(){}1X.7U=A(3N){M b,g,r;B(3N.eW(0)==="#"){3N=3N.59(1)}r=4q(3N.59(0,2),16);g=4q(3N.59(2,2),16);b=4q(3N.59(4,2),16);u{r:r,g:g,b:b}};1X.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5B(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1X.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5B(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3w)/1.3w,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3w)/1.3w,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3w)/1.3w,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1X.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3w*O.1T(r,0.9q))-0.3w}S{r*=12.92}B(g>0.9n){g=(1.3w*O.1T(g,0.9q))-0.3w}S{g*=12.92}B(b>0.9n){b=(1.3w*O.1T(b,0.9q))-0.3w}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1X.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="3S"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5X}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5X}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5X}l=aQ*y-16;a=aR*(x-y);b=5Y*(y-z);u{l:l,a:a,b:b}};1X.eD=A(l,a,b){M x,y,z;B(1s l==="3S"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5Y);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5X)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5X)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5X)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1X.eC=A(r,g,b){M 9V;B(1s r==="3S"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1X.eB=A(l,a,b){};u 1X})();1X=D.1X;D.2L=(A(){A 2L(){}2L.5k={};2L.b1=["b6","bb","ai","bc","bd","65"];2L.5j=A(38,1v,2a){M 6E,H,1n,K,1o;B(2a==L){2a=L}B(o.5k[1v]&&o.5k[1v].P){K=o.5k[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6E=K[H];B(6E.38===L||38.2W===6E.38.2W){1o.2j(6E.fn.1x(38,2a))}S{1o.2j(bg 0)}}u 1o}};2L.eA=A(38,1v,fn){M 9W,9X;B(1s 38==="3j"){9X=38;9W=1v;38=L;1v=9X;fn=9W}B(6F.1x(o.b1,1v)<0){u 2k}B(!o.5k[1v]){o.5k[1v]=[]}o.5k[1v].2j({38:38,fn:fn});u 2J};u 2L})();2L=D.2L;D.R=(A(){A R(){}R.3k={8J:1,8I:2,8H:3,8G:4,9Y:5,2t:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2V=(A(){A 2V(){}2V.bm=/(?:(?:6N|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2V.bj=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2V.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6r())===\'c3\'||K===\'bp-ez\')};2V.7h=A(6H){M 7d;7d=6H.82(o.bm);B(7d){u 7d[1]!==2o.ey}S{u 2k}};2V.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1Y.a2("ex 3G ew a bH 1d eu a et bK. bI: "+1E)}S{B(D.7h(D.7F)){1Y.a2("es bp a bH bK W er eq.");u}u o.5l(1E)}}};2V.5l=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2V.eo=A(5p){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5p=5p.6r();B(8z[5p]!=L){5p=8z[5p]}u"ee/ed."+5p};u 2V})();D.N.c6=A(){B(1s 2h!=="41"&&2h!==L){u o.c7.49(o,1k)}S{u o.c8.49(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6r();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2o.e9.e8=1d};D.N.c7=A(6d,7b,1Q){M e,a1;B(7b==L){7b=2J}B(1Q==L){1Q=L}8M{a1=fs.e7(6d);B(a1.e6()&&!7b){u 2k}}8N(6h){e=6h;1Y.2u("e5 e4 6d "+6d)}u fs.e3(6d,o.I.e2(),A(6v){1Y.2u("e1 e0 3G "+6d);B(1Q){u 1Q.1x(o,6v)}})};D.N.cO=A(1v){M 1P;1P=1y 4J();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4Q.4g){1P.F/=4Q.4g;1P.J/=4Q.4g}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6r();u o.2Y.dZ("1d/"+1v)};2V=D.2V;D.3b=(A(){A 3b(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2i:1.0};o.dY=1u.9L.4o();o.I=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3d(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2T=o.1j.4V(0,0,o.I.F,o.I.J);o.T=o.2T.2a}3b.N.33=A(cb){u o.c.33.1x(o.c,cb)};3b.N.3o=A(cx){o.1G.a0=cx;u o};3b.N.2i=A(2i){o.1G.2i=2i/1i;u o};3b.N.4s=A(){M i,31,H,K;31=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3M<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3M)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5V a 5U 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3M>o.c.T.P||3M<0){u}o.c.T[3M]=C.r;o.c.T[3M+1]=C.g;o.c.T[3M+2]=C.b;o.c.T[3M+3]=C.a;u 2J};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5M=A(){u o.dR()};1Z.N.dQ=A(7B){M 3N;B(7B==L){7B=2k}3N=\'#\'+o.r.5M(16)+o.g.5M(16)+o.b.5M(16);B(7B){u 3N+o.a.5M(16)}S{u 3N}};u 1Z})();1Z=D.1Z;D.2t=(A(){A 2t(){}2t.9G={};2t.V=A(1p,4b){u o.9G[1p]=4b};2t.3T=A(1j,1p,1l){u o.9G[1p].49(1j,1l)};u 2t})();2t=D.2t;D.1R=(A(){1R.4G=D.2Z?6u(\'dP\').dO().P:4;A 1R(c){o.c=c;o.4i=8Q(o.4i,o);o.6A=[];o.5f=L}1R.N.4f=A(9x){B(9x==L){u}u o.6A.2j(9x)};1R.N.4i=A(){M 2g;B(o.6A.P===0){2L.5j(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6A.d9();5B(o.2c.1v){28 R.3k.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4i();28 R.3k.8G:o.c.c1();o.c.bZ();u o.4i();28 R.3k.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3k.2t:u o.db();dN:u o.a6()}};1R.N.3T=A(1Q){o.9v=1Q;o.5f=1u.6b(o.c.T.P);u o.4i()};1R.N.9o=A(fn){M 6Z,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2N((n/4)/1R.4G);6Z=8B*4;9l=6Z+((n/4)%1R.4G)*4;1o=[];W(i=H=0,K=1R.4G;0<=K?HK;i=0<=K?++H:--H){1J=i*6Z;1M=1J+(i===1R.4G-1?9l:6Z);B(D.2Z){f=6x((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.65(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1R.N.a6=A(){2L.5j(o.c,"b6",o.2c);B(o.2c.1v===R.3k.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1R.N.db=A(){1Y.2u("dL 4b "+o.2c.4b);2t.3T(o.c,o.2c.4b,o.2c.1l);1Y.2u("2t "+o.2c.4b+" 9k!");u o.4i()};1R.N.af=A(2Q,1J,1M){M i,1w,H;1Y.2u("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2L.5j(o.c,"bd",{am:2Q,an:1R.4G,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3O(1w.r);o.c.T[i+1]=1u.3O(1w.g);o.c.T[i+2]=1u.3O(1w.b);o.c.T[i+3]=1u.3O(1w.a)}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.ag=A(2Q,1J,1M){M Q,6B,3e,2X,6j,2P,i,j,k,2G,n,1p,p,1w,4e,H,1f,1H;1p=o.2c.1p;3e=o.2c.3e;2P=o.2c.2P;n=o.c.T.P;Q=o.2c.Q;6B=O.8l(Q.P);2G=[];1Y.2u("dG 2G - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6B-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6B-1)/2)));2X=(6B-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;6j=0;W(j=1f=-2X;-2X<=2X?1f<=2X:1f>=2X;j=-2X<=2X?++1f:--1f){W(k=1H=2X;2X<=-2X?1H<=-2X:1H>=-2X;k=2X<=-2X?++1H:--1H){p=1w.cP(j,k);2G[6j*3]=p.r;2G[6j*3+1]=p.g;2G[6j*3+2]=p.b;6j++}}4e=o.3L(Q,2G,2P,3e);o.5f[i]=1u.3O(4e.r);o.5f[i+1]=1u.3O(4e.g);o.5f[i+2]=1u.3O(4e.b);o.5f[i+3]=o.c.T[i+3]}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.65=A(2Q){M i,H,K;B(2Q>=0){1Y.2u("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2L.5j(o.c,"65",{am:2Q,dF:o.7P,an:1R.4G});B(o.7P===1R.4G){B(o.2c.1v===R.3k.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.5f[i]}}B(2Q>=0){1Y.2u("R "+o.2c.1p+" 9k!")}2L.5j(o.c,"bb",o.2c);u o.4i()}};1R.N.3L=A(Q,2G,2P,3e){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2G[i*3];2f.g+=Q[i]*2G[i*3+1];2f.b+=Q[i]*2G[i*3+2]}2f.r=(2f.r/2P)+3e;2f.g=(2f.g/2P)+3e;2f.b=(2f.b/2P)+3e;u 2f};1R.N.da=A(2g,1E){M 1P,5l;1P=1y 4J();1P.bP=(A(1r){u A(){2g.1j.6f(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2T=2g.1j.4V(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2T.2a;1r.c.T=2g.T;u 1r.4i()}})(o);5l=2V.bu(1E);u 1P.1E=5l!=L?5l:1E};u 1R})();1R=D.1R;D.32=(A(){A 32(){}32.63={};32.bR=A(4C){u o.63[4C]!=L};32.4o=A(4C){u o.63[4C]};32.cs=A(1p,2B){u o.63[1p]=2B};32.3T=A(4C,1Q){7I((A(1r){u A(){u 1Q.1x(1r.4o(4C),1r.4o(4C))}})(o),0);u o.4o(4C)};32.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.63[1p]}S{u o.63={}}};u 32})();32=D.32;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("5I",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4S",A(){M 3g;B(1k.P===1){3g=1X.7U(1k[0])}S{3g={r:1k[0],g:1k[1],b:1k[2]}}u o.2p("4S",A(C){C.r=3g.r;C.g=3g.g;C.b=3g.b;C.a=E;u C})});R.V("3r",A(Q){Q=O.2N(E*(Q/1i));u o.2p("3r",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3P",A(Q){Q*=-0.dy;u o.2p("3P",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("43",A(Q){Q*=-1;u o.2p("43",A(C){M 1q,4W,1e;1e=O.1e(C.r,C.g,C.b);4W=(C.r+C.g+C.b)/3;1q=((O.4X(1e-4W)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4Z",A(Q){u o.2p("4Z",A(C){M 4W;4W=2b.6y(C);C.r=4W;C.g=4W;C.b=4W;u C})});R.V("2s",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2p("2s",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2p("93",A(C){M b,g,h,5e,r,K;5e=1X.cC(C.r,C.g,C.b);h=5e.h*1i;h+=O.4X(Q);h=h%1i;h/=1i;5e.h=h;K=1X.cE(5e.h,5e.s,5e.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("4j",A(){M 6g,3f;B(1k.P===2){3f=1X.7U(1k[0]);6g=1k[1]}S B(1k.P===4){3f={r:1k[0],g:1k[1],b:1k[2]};6g=1k[3]}u o.2p("4j",A(C){C.r-=(C.r-3f.r)*(6g/1i);C.g-=(C.g-3f.g)*(6g/1i);C.b-=(C.b-3f.b)*(6g/1i);u C})});R.V("b0",A(){u o.2p("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4t",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2p("4t",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2v",A(Q){u o.2p("2v",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4X(Q)*2.55;u o.2p("8i",A(C){M 4h;4h=2b.ab(Q*-1,Q);C.r+=4h;C.g+=4h;C.b+=4h;u C})});R.V("8j",A(Q){Q=O.4X(Q)*2.55;u o.2p("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3h}S{C.r-=C.r*O.4X(1G.3h)}}B(1G.4w!=L){B(1G.4w>0){C.g+=(E-C.g)*1G.4w}S{C.g-=C.g*O.4X(1G.4w)}}B(1G.3W!=L){B(1G.3W>0){C.b+=(E-C.b)*1G.3W}S{C.b-=C.b*O.4X(1G.3W)}}u C})});R.V("2e",A(){M 6I,29,3V,3F,1M,i,5t,1J,H,1f,K,44;3V=1k[0],3F=2<=1k.P?61.1x(1k,1):[];5t=3F[3F.P-1];B(1s 5t==="A"){6I=5t;3F.6s()}S B(1s 5t==="3j"){6I=2b[5t];3F.6s()}S{6I=2b.29}B(1s 3V==="3j"){3V=3V.do("")}B(3V[0]==="v"){3V=[\'r\',\'g\',\'b\']}B(3F.P<2){2K"5z 8e 8X 1k 3G 2e 1C";}29=6I(3F,0,E);1J=3F[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3F[3F.P-1];B(1M[0]=E;i=44<=E?++1f:--1f){29[i]=1M[1]}}u o.2p("2e",A(C){M 1H,4m;W(i=1H=0,4m=3V.P;0<=4m?1H<4m:1H>4m;i=0<=4m?++1H:--1H){C[3V[i]]=29[C[3V[i]]]}u C})});R.V("3a",A(Q){M 4L,4M,p;p=O.4X(Q)/1i;4L=[0,E*p];4M=[E-(E*p),E];B(Q<0){4L=4L.br();4M=4M.br()}u o.2e(\'3f\',[0,0],4L,4M,[E,E])});D.2t.V("8F",A(F,J,x,y){M I,2I;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="41"&&2h!==L){I=1y 3Q(F,J)}S{I=2o.3E(\'I\');1u.52(o.I,I);I.F=F;I.J=J}2I=I.3d(\'2d\');2I.6f(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2J;u o.6D(I)});D.2t.V("8x",A(2D){M I,2I;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1Y.9d("5z cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="41"&&2h!==L){I=1y 3Q(2D.F,2D.J)}S{I=2o.3E(\'I\');1u.52(o.I,I);I.F=2D.F;I.J=2D.J}2I=I.3d(\'2d\');2I.6f(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2J;u o.6D(I)});D.R.V("8F",A(){u o.51("8F",5u.N.5d.1x(1k,0))});D.R.V("8x",A(){u o.51("8x",5u.N.5d.1x(1k,0))});D.R.V("dm",A(){u o.3L("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3L("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3L("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3x){M 2G;B(3x===0||3x===4k){2G=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3x>0&&3x<90)||(3x>4k&&3x<8w)){2G=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3x===90||3x===8w){2G=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2G=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3L("de 8A",2G)});D.R.V("6C",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3L("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3r:A(C,1q,G){C.r=C.r-(C.r*1q*G.3i);C.g=C.g-(C.g*1q*G.3i);C.b=C.b-(C.b*1q*G.3i);u C},2v:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3i,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3i,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3i,1))*E;u C},4j:A(C,1q,G){C.r-=(C.r-G.3g.r)*1q;C.g-=(C.g-G.3g.g)*1q;C.b-=(C.b-G.3g.b)*1q;u C}};R.V("1U",A(1t,3i){M 29,3C,1M,1J;B(3i==L){3i=60}B(1s 1t==="3j"&&1t.59(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4q(1t.59(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4q(1t.59(0,1t.P-1),10)/1i)}}3i/=1i;3C=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3C[0],2)+O.1T(3C[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2p("1U",A(C){M 8p,2H,U;U=C.9M();8p=2b.5a(U.x,U.y,3C[0],3C[1]);B(8p>1M){2H=O.1e(1,(29[O.5C(((8p-1M)/1t)*1i)]/10)*3i);C.r=O.1T(C.r/E,2H)*E;C.g=O.1T(C.g/E,2H)*E;C.b=O.1T(C.b/E,2H)*E}u C})});R.V("bY",A(G){M 4a,5W,8k,1t,H,1n,K;4a={3i:50,2E:0,8U:\'3r\',3g:{r:0,g:0,b:0}};G=1u.79(4a,G);B(!G.1t){u o}S B(1s G.1t==="3j"){8k=4q(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="3S"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){5W=K[H];B(1s G.1t[5W]==="3j"){G.1t[5W]=o.1c[5W]*(4q(G.1t[5W],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2E==="3j"){G.2E=(G.1t.F/2)*(4q(G.2E,10)/1i)}G.3i/=1i;G.1t.F=O.2N(G.1t.F);G.1t.J=O.2N(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="4j"&&1s G.3g==="3j"){G.3g=1X.7U(G.3g)}G.1W={5m:(o.1c.F-G.1t.F)/2,6a:o.1c.F-G.1W.5m,5n:(o.1c.J-G.1t.J)/2,6k:o.1c.J-G.1W.5n};G.1z=[{x:G.1W.5m+G.2E,y:G.1W.6k-G.2E},{x:G.1W.6a-G.2E,y:G.1W.6k-G.2E},{x:G.1W.6a-G.2E,y:G.1W.5n+G.2E},{x:G.1W.5m+G.2E,y:G.1W.5n+G.2E}];G.4d=2b.5a(0,0,G.1z[3].x,G.1z[3].y)-G.2E;u o.2p("bY",A(C){M 1q,U,4r;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1W.5n&&U.yG.1W.5m&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1W.6k){1q=(U.y-G.1W.6k)/G.4d}S B(U.y>G.1z[2].y&&U.yG.1W.6a){1q=(U.x-G.1W.6a)/G.4d}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4r=D.5a(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4r-G.2E)/G.4d}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4r=D.5a(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4r-G.2E)/G.4d}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4r=D.5a(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4r-G.2E)/G.4d}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4r=D.5a(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4r-G.2E)/G.4d}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4F,96,97,66,62;66=[2S,2S,37,2S,3t,37,3z,2S,3U,3t,3B,37,3X,3z,3Y,2S,4z,3U,4T,3t,4A,3B,4B,37,4I,3X,4l,3z,39,3Y,4v,2S,5H,4z,46,3U,5R,4T,64,3t,39,4A,69,3B,4y,4B,4U,37,5s,4I,5w,3X,5q,4l,5K,3z,5N,39,5O,3Y,5Z,4v,3Z,2S,7D,5H,7C,4z,7A,46,7x,3U,7w,5R,7v,4T,4R,64,7u,3t,6c,39,7t,4A,7s,69,4N,3B,3Z,4y,7r,4B,7q,4U,7o,37,7n,5s,46,4I,7m,5w,7k,3X,7j,5q,7i,4l,4R,5K,6e,3z,7f,5N,7e,39,7c,5O,7a,3Y,6l,5Z,4N,4v,78,3Z,76,2S,bU,7D,bN,5H,4U,7C,bL,4z,bG,7A,bF,46,bD,7x,bC,3U,bB,7w,bA,5R,bz,7v,bx,4T,bw,4R,74,64,6e,7u,8u,3t,ba,6c,b9,39,b8,7t,b7,4A,8g,7s,6l,69,b5,4N,b4,3B,b3,3Z,b2,4y,aO,7r,aK,4B,aJ,7q,aH,4U,aF,7o,aC,37,az,7n,ax,5s,aw,46,ap,4I,ao,7m,al,5w,ak,7k,ah,3X,ae,7j,dc,5q,d3,7i,d2,4l,cY,4R,74,5K,cX,6e,cW,3z,8u,7f,cV,5N,6c,7e,cT,39,cG,7c,cB,5O,8T,7a,8g,3Y,cv,6l,cu,5Z,cq,4N,cp,4v,3B,78,co,3Z,cn,76,4y];62=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];96=A(F,J,6n,6m,2F,P,c0){M 42,1j,2w,6V,6Y,6W,71;42=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');42.F=F;42.J=J;6V=6n+O.bW(2F)*P*0.5;6W=6m+O.bV(2F)*P*0.5;6Y=6n-O.bW(2F)*P*0.5;71=6m-O.bV(2F)*P*0.5;1j=42.3d("2d");2w=1j.en(6V,6W,6Y,71);B(!c0){2w.5o(0,"77");2w.5o(1,"a4")}S{2w.5o(0,"77");2w.5o(0.5,"a4");2w.5o(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4V(0,0,F,J)};97=A(F,J,6n,6m,6P,6O){M 42,1j,2w;42=1s 2h!=="41"&&2h!==L?1y 3Q():2o.3E(\'I\');42.F=F;42.J=J;1j=42.3d("2d");2w=1j.ev(6n,6m,6P,6n,6m,6O);2w.5o(1,"77");2w.5o(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4V(0,0,F,J)};4F=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1N=L};D.2t.V("a3",A(by,1V,bq,7l){M 2l,2C,1O,5P,6X,2H,2n,2y,1K,J,47,i,6S,2x,3m,7M,48,6K,2O,p,1D,1A,Y,1B,2q,2z,1L,9i,1a,34,2R,1b,4c,1m,1I,2M,5h,2U,8h,8f,68,F,3q,x,y,1h,4x,4Y,H,1f,1H,3n,3D,3v,3l,3p,3A,5J;F=o.1c.F;J=o.1c.J;3m=o.T;9i=by.2a;8f=F*J;68=8f<<2;Y=[];W(i=H=0;0<=68?H<68:H>68;i=0<=68?++H:--H){Y[i]=3m[i]}6X=0;5h=7l;7l-=1;8Z(5h-->=0){48=(1V+0.5)|0;B(48===0){5G}B(48>6M){48=6M}2H=48+48+1;8h=F<<2;3q=F-1;47=J-1;1a=48+1;2U=1a*(1a+1)/2;2M=1y 4F();4c=bg 0;1b=2M;W(i=1f=1;1<=2H?1f<2H:1f>2H;i=1<=2H?++1f:--1f){1b=1b.1N=1y 4F();B(i===1a){4c=1b}}1b.1N=2M;1m=L;1I=L;4Y=1h=0;2O=66[48];2R=62[48];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3n=0;0<=1a?3n<1a:3n>1a;i=0<=1a?++3n:--3n){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3D=1;1<=1a?3D<1a:3D>1a;i=1<=1a?++3D:--3D){p=1h+((3qF;x=0<=F?++3v:--3v){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4Y+((p=x+1a)<3q?p:3q))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4Y+=F}W(x=3l=0;0<=F?3lF;x=0<=F?++3l:--3l){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3p=0;0<=1a?3p<1a:3p>1a;i=0<=1a?++3p:--3p){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4x=F;W(i=3A=1;1<=1a?3A<1a:3A>1a;i=1<=1a?++3A:--3A){1h=(4x+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<47){4x+=F}}1h=x;1m=2M;1I=4c;W(y=5J=0;0<=J?5JJ;y=0<=J?++5J:--5J){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<47?p:47)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}1V*=bq;i=8f;8Z(--i>-1){2x=i<<2;6K=(9i[2x+2]&fo)/E.0*7l;7M=6K|0;B(7M===6X){5P=6M.0*(6K-(6K|0));6S=6M-5P;3m[2x]=(3m[2x]*6S+Y[2x]*5P)>>8;3m[2x+1]=(3m[2x+1]*6S+Y[2x+1]*5P)>>8;3m[2x+2]=(3m[2x+2]*6S+Y[2x+2]*5P)>>8}S B(7M===6X+1){3m[2x]=Y[2x];3m[2x+1]=Y[2x+1];3m[2x+2]=Y[2x+2]}}6X++}u o});D.R.V("fq",A(G){M 4a,2w;4a={3C:{x:o.1c.F/2,y:o.1c.J/2},2F:45,cd:5Y,7R:3,7Q:1.5,5h:3};G=1u.79(4a,G);G.2F*=O.aZ/4k;2w=96(o.1c.F,o.1c.J,G.3C.x,G.3C.y,G.2F,G.cd,2J);u o.51("a3",[2w,G.7R,G.7Q,G.5h])});u D.R.V("fx",A(G){M 4a,2w,6P,6O;4a={1t:50,3C:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5h:3,1V:L};G=1u.79(4a,G);B(!G.1V){G.1V=o.1c.F2H;i=1<=2H?++H:--H){1b=1b.1N=1y 4F();B(i===1a){4c=1b}}1b.1N=2M;1m=L;1I=L;4Y=1h=0;2O=66[1V];2R=62[1V];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3n=1;1<=1a?3n<1a:3n>1a;i=1<=1a?++3n:--3n){p=1h+((3qF;x=0<=F?++3D:--3D){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4Y+((p=x+1V+1)<3q?p:3q))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4Y+=F}W(x=3v=0;0<=F?3vF;x=0<=F?++3v:--3v){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2U*1B;1K+=2U*1A;1O+=2U*1D;1b=2M;W(i=3l=0;0<=1a?3l<1a:3l>1a;i=0<=1a?++3l:--3l){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4x=F;W(i=3p=1;1<=1V?3p<=1V:3p>=1V;i=1<=1V?++3p:--3p){1h=(4x+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<47){4x+=F}}1h=x;1m=2M;1I=4c;W(y=3A=0;0<=J?3AJ;y=0<=J?++3A:--3A){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<47?p:47)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}u o});u D.R.V("5L",A(1V){u o.51("5L",[1V])})})();D.R.V("aD",A(Q){u o.2p("aD",A(C){M 6y;6y=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6y35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4K,2m,2b,D,5c,3I,1X,2L,6x,R,2V,4S,3b,1Y,3M,1Z,2t,1R,7O,32,1u,fs,6N,81,5d,8V,6F=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.52=A(4P,3N,G){M 6J,H,1n,K,3S,1o;B(G==L){G={}}K=4P.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6J=K[H];B((G.7g!=L)&&(3S=6J.9Q,6F.1x(G.7g,3S)>=0)){5G}1o.2j(3N.bh(6J.9Q,6J.fP))}u 1o};1u.6b=A(P){B(P==L){P=0}B(D.2Z||(4z.ca!=L)){u 1y ca(P)}u 1y 5u(P)};u 1u})();B(1s 2h!=="3T"&&2h!==L){7O=2h;3I=6u(\'I\');4S=3I.4S;6x=6u(\'fO\');fs=6u(\'fs\');6N=6u(\'6N\')}S{7O=4z}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5Q=2X;D.9C="c3";D.7F="";D.c5="fH";D.2Z=1s 2h!=="3T"&&2h!==L;D.ce=!D.2Z;D.5M=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Z){u 2X}B(1s I==="3i"){I=$(I)}B(!((I!=L)&&(I.5F!=L))){u L}u I.5F(\'2a-3R-2W\')};A D(){o.5D=8Q(o.5D,o);M 1l,1Q,2W;B(1k.P===0){2K"5z 1k";}B(o aT D){o.5y=o.5y.9y(o);o.6R=o.6R.9y(o);1l=1k[0];B(!D.2Z){2W=4u(D.9z(1l[0]),10);1Q=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bI(2W)&&32.bJ(2W)){u 32.48(2W,1Q)}}o.2W=1u.9L.4p();o.7G=o.4Q=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6U=[];o.9t=[];o.9s=[];o.6w=L;o.d6=2k;o.fz=1y 4K(o);o.4E=1y 1R(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Z){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2o.9p==="7J"){1Y.2u("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2o.9p==="7J"){1Y.2u("aU aW");u cb.1x(1r)}}})(o);u 2o.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2r,2f,K,1o;B(1l.P===0){2K"5z 1k be";}o.3c=L;o.7K=L;o.7L=L;o.1Q=A(){};o.bj(1l[0]);B(1l.P===1){u}5B(1s 1l[1]){28"3i":o.7L=1l[1];56;28"A":o.1Q=1l[1]}B(1l.P===2){u}o.1Q=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2r 57 K){B(!72.1x(K,2r))5G;2f=K[2r];1o.2j(o.1G[2r]=2f)}u 1o}};D.N.bj=A(2B){B(D.2Z){o.3c=2B;o.7K=\'bS\';u}B(1s 2B==="41"){o.3c=2B}S{o.3c=$(2B)}B(o.3c==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3c.9Q.6r()};D.N.as=A(){5B(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1Y.2u("fr W 2Z");B(1s o.3c==="3i"&&o.3c.82(/^cA?:\\/\\//)){u o.cD(o.3c,o.5D)}S B(1s o.3c==="3i"){u fs.fp(o.3c,o.5D)}S{u o.5D(L,o.3c)}};D.N.cD=A(6H,1Q){M 9g;1Y.2u("fm 1d 4P "+6H);9g=6N.4p(6H,A(4a){M 83;83=\'\';4a.fl(\'d7\');4a.9e(\'2a\',A(a7){u 83+=a7});u 4a.9e(\'1M\',A(){u 1Q(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1Q)};D.N.5D=A(6v,2a){B(6v){2K 6v;}o.1d=1y 4S();o.1d.1E=2a;1Y.2u("4S au. ay = "+(o.3E())+", aL = "+(o.3Q()));o.I=1y 3I(o.3E(),o.3Q());o.2I=1y 3I(o.3E(),o.3Q());u o.5y()};D.N.cl=A(){o.1d=o.3c;o.I=2o.3H(\'I\');o.1j=o.I.3d(\'2d\');o.2I=2o.3H(\'I\');o.5g=o.2I.3d(\'2d\');1u.52(o.1d,o.I,{7g:[\'1E\']});1u.52(o.1d,o.2I,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.2I,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=2o.3H(\'I\');o.1j=o.I.3d(\'2d\');o.2I=o.3c;o.5g=o.2I.3d(\'2d\');o.I.F=o.2I.F;o.I.J=o.2I.J;B(o.7L!=L){o.1d=2o.3H(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5y()}};D.N.9b=A(){B(o.99()){1Y.2u(o.1d.1E,"->",o.89());o.bk=2X;o.1d.1E=o.89()}B(2V.bo(o.1d)){o.1d.1E=2V.5n(o.1d.1E);u 1Y.2u("fj 1d fi, fh bP = "+o.1d.1E)}};D.N.9a=A(){B(o.bQ()){u o.6R()}S{u o.1d.bR=o.6R}};D.N.bQ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2X};D.N.3E=A(){u o.1d.F||o.1d.94};D.N.3Q=A(){u o.1d.J||o.1d.fg};D.N.6R=A(){1Y.2u("4S au. ay = "+(o.3E())+", aL = "+(o.3Q()));B(o.bk){o.I.F=o.3E()/o.6p();o.I.J=o.3Q()/o.6p();o.2I.F=o.3E()/o.6p();o.2I.J=o.3Q()/o.6p()}S{o.I.F=o.3E();o.I.J=o.3Q();o.2I.F=o.3E();o.2I.J=o.3Q()}u o.5y()};D.N.5y=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3d(\'2d\')}B(o.5g==L){o.5g=o.2I.3d(\'2d\')}o.8b=o.6o=o.F=o.I.F;o.8c=o.6i=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.6f(o.1d,0,0,o.3E(),o.3Q(),0,0,o.6o,o.6i);o.5g.6f(o.1d,0,0,o.3E(),o.3Q(),0,0,o.6o,o.6i)}o.2T=o.1j.4G(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.7G=1u.6b(o.T.P);o.4Q=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4Q[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Z){32.cs(o.2W,o)}o.1Q.1x(o,o);u o.1Q=A(){}};D.N.cy=A(){o.2T=o.1j.4G(0,0,o.I.F,o.I.J);u o.T=o.2T.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5Q){2K"8Y 8d";}o.4Q=1u.6b(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4Q[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Z||o.I.5F(\'2a-3R-2W\')){u}u o.I.bh(\'2a-3R-2W\',o.2W)};D.N.cH=A(){u o.I.5F(\'2a-3R-cK-8d\')!==L};D.N.cf=A(){M 4e;B(D.2Z||!o.99()){u}4e=o.6p();B(4e!==1){1Y.2u("fe 4e = "+4e);o.d6=2X;o.6o=o.I.F;o.6i=o.I.J;o.I.F=o.6o*4e;o.I.J=o.6i*4e;o.I.cN.F=""+o.6o+"cQ";o.I.cN.J=""+o.6i+"cQ";o.1j.fd(4e,4e);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6p=A(){M 8W,4j;4j=4z.4j||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4j/8W};D.N.a8=A(){u(4z.4j!=L)&&4z.4j!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5F(\'2a-3R-cK\')};D.N.6D=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3d(\'2d\');o.2T=o.1j.4G(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.4Q=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4Q[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1Q){B(1Q==L){1Q=A(){}}2L.5j(o,"ai");u o.4E.48((A(1r){u A(){1r.2I.F=1r.I.F;1r.2I.J=1r.I.J;1r.5g.8S(1r.2T,0,0);u 1Q.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2X}B(!D.5Q){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.5g.8S(o.2T,0,0)}};D.N.f6=A(){M I,2J,i,2T,1w,T,H,1n,K;I=2o.3H(\'I\');1u.52(o.I,I);I.F=o.8b;I.J=o.8c;2J=I.3d(\'2d\');2T=2J.4G(0,0,I.F,I.J);T=2T.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2J.8S(2T,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6D(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,3S,4o;B(!D.5Q){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4Q;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2P+=Q[i]}}o.4E.4c({1v:R.3k.8I,1p:1p,Q:Q,2P:2P,3j:3j});u o};D.N.51=A(4q,1l){o.4E.4c({1v:R.3k.2t,4q:4q,1l:1l});u o};D.N.33=A(1Q){M 2g;2g=1y 3b(o);o.9s.2j(2g);o.4E.4c({1v:R.3k.8H});1Q.1x(2g);o.4E.4c({1v:R.3k.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6w);o.6U.2j(o.T);o.6w=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6U.6s();u o.6w=o.9t.6s()};D.N.c1=A(){u o.6w.c2()};u D})(3M);7O.D=D;D.4K=(A(){A 4K(c){o.c=c}4K.N.f5=A(){M i,3u,6L,H,1f,1H,K;3u={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3u.r[i]=0;3u.g[i]=0;3u.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6q.P;H<1n;H++){1P=6q[H];1o.2j(cj=1y 5c(1P,A(){o.ck();u o.48()}))}u 1o};B(D.ce){(A(){B(2o.9p==="7J"){u D.9m()}S{u 2o.aX("f3",D.9m,2k)}})()}5c=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 5c(4r,ct){o.cw=4r.5F(\'2a-3R\');o.3R=D(4r,ct.9y(o))}5c.N.ck=A(){M 1l,e,1C,5b,8K,8L,m,r,6G,H,1n,K,1o;o.4r=o.3R.I;r=1y cJ(8v,\'g\');6G=o.cw.82(r);B(!(6G.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6G.P;H<1n;H++){8K=6G[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{5b=8L();1o.2j(5b.1x(o.3R))}8N(6h){e=6h;1o.2j(1Y.2u(e))}}u 1o};5c.N.48=A(){M 4r;4r=o.4r;u o.3R.ac(A(){u 4r.9c.aY(o.cO(),4r)})};u 5c})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,5b){u o.8P[1p]=5b};2m.48=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.5a=A(6V,6W,6Y,71){u O.8l(O.1T(6Y-6V,2)+O.1T(71-6W,2))};2b.ab=A(1S,1e,6t){M 4g;B(6t==L){6t=2k}4g=1S+(O.f1()*(1e-1S));B(6t){u 4g.f0(6t)}S{u O.5C(4g)}};2b.6y=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4L,4M,1M,54,53){M 29,5S,2A,26,i,j,5E,1N,3G,t,H,1f,K;B(54==L){54=0}B(53==L){53=E}B(1J[0]aT 5u){2A=1J;54=4L;53=4M}S{2A=[1J,4L,4M,1M]}B(2A.P<2){2K"5z 8e 8X 1k 3N 29";}29={};5E=A(a,b,t){u a*(1-t)+b*t};5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1N=[];W(j=1f=0,K=3G.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1N.2j([5E(3G[j][0],3G[j+1][0],t),5E(3G[j][1],3G[j+1][1],t)])}3G=1N}29[O.5C(3G[0][0])]=O.5C(5S(3G[0][1],54,53))}26=2A[2A.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2A,54,53){M 4c,5S,96,26,88,86,85,84,i,j,5E,9f,9h,4O,p,5r,5x,4H,7Z,7Y,3n,7W,t,H,1f,K;B(2A.P<2){2K"5z 8e 8X 1k 3N bE";}3n={};5E=A(a,b,t){u a*(1-t)+b*t};4c=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4O=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};96=0;W(i=H=0,K=2A.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5r=2A[i];5x=2A[i+1];4H=5x[0]-5r[0];7Z=1/4H;B(i===2A.P-2){7Z=1/(4H-1)}p=i>0?2A[i-1]:5r;9f=4O(7W(5x,p),[0.5,0.5]);p=i<2A.P-2?2A[i+2]:5x;9h=4O(7W(p,5r),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4c(4O(5r,[88,88]),4O(9f,[86,86]),4O(5x,[85,85]),4O(9h,[84,84]));3n[O.5C(7Y[0])]=O.5C(5S(7Y[1],54,53));96+=1}}26=2A[2A.P-1][0];3n=D.2b.91(3n,26);u 3n};2b.91=A(58,26){M i,j,5T,3n,7V,H,1f;B(bi.eX(58).P<26+1){3n={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(58[i]!=L){3n[i]=58[i]}S{5T=[i-1,3n[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(58[j]!=L){7V=[j,58[j]];56}}3n[i]=5T[1]+((7V[1]-5T[1])/(7V[0]-5T[0]))*(i-5T[0])}}u 3n}u 58};u 2b})();2b=D.2b;D.1X=(A(){A 1X(){}1X.7U=A(3O){M b,g,r;B(3O.eW(0)==="#"){3O=3O.59(1)}r=4u(3O.59(0,2),16);g=4u(3O.59(2,2),16);b=4u(3O.59(4,2),16);u{r:r,g:g,b:b}};1X.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="41"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5B(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1X.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5B(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3r)/1.3r,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3r)/1.3r,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3r)/1.3r,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1X.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3r*O.1T(r,0.9q))-0.3r}S{r*=12.92}B(g>0.9n){g=(1.3r*O.1T(g,0.9q))-0.3r}S{g*=12.92}B(b>0.9n){b=(1.3r*O.1T(b,0.9q))-0.3r}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1X.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="41"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5X}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5X}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5X}l=aQ*y-16;a=aR*(x-y);b=5Y*(y-z);u{l:l,a:a,b:b}};1X.eD=A(l,a,b){M x,y,z;B(1s l==="41"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5Y);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5X)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5X)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5X)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1X.eC=A(r,g,b){M 9V;B(1s r==="41"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1X.eB=A(l,a,b){};u 1X})();1X=D.1X;D.2L=(A(){A 2L(){}2L.5k={};2L.b1=["b6","bb","ai","bc","bd","65"];2L.5j=A(38,1v,2a){M 6E,H,1n,K,1o;B(2a==L){2a=L}B(o.5k[1v]&&o.5k[1v].P){K=o.5k[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6E=K[H];B(6E.38===L||38.2W===6E.38.2W){1o.2j(6E.fn.1x(38,2a))}S{1o.2j(bg 0)}}u 1o}};2L.eA=A(38,1v,fn){M 9W,9X;B(1s 38==="3i"){9X=38;9W=1v;38=L;1v=9X;fn=9W}B(6F.1x(o.b1,1v)<0){u 2k}B(!o.5k[1v]){o.5k[1v]=[]}o.5k[1v].2j({38:38,fn:fn});u 2X};u 2L})();2L=D.2L;D.R=(A(){A R(){}R.3k={8J:1,8I:2,8H:3,8G:4,9Y:5,2t:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2V=(A(){A 2V(){}2V.bm=/(?:(?:6N|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2V.bo=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2V.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6r())===\'c3\'||K===\'bp-ez\')};2V.7h=A(6H){M 7d;7d=6H.82(o.bm);B(7d){u 7d[1]!==2o.ey}S{u 2k}};2V.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1Y.a2("ex 3N ew a bH 1d eu a et bK. bP: "+1E)}S{B(D.7h(D.7F)){1Y.a2("es bp a bH bK W er eq.");u}u o.5n(1E)}}};2V.5n=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2V.eo=A(5p){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5p=5p.6r();B(8z[5p]!=L){5p=8z[5p]}u"ee/ed."+5p};u 2V})();D.N.c6=A(){B(1s 2h!=="3T"&&2h!==L){u o.c7.4t(o,1k)}S{u o.c8.4t(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6r();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2o.e9.e8=1d};D.N.c7=A(6d,7b,1Q){M e,a1;B(7b==L){7b=2X}B(1Q==L){1Q=L}8M{a1=fs.e7(6d);B(a1.e6()&&!7b){u 2k}}8N(6h){e=6h;1Y.2u("e5 e4 6d "+6d)}u fs.e3(6d,o.I.e2(),A(6v){1Y.2u("e1 e0 3N "+6d);B(1Q){u 1Q.1x(o,6v)}})};D.N.cO=A(1v){M 1P;1P=1y 4S();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4z.4j){1P.F/=4z.4j;1P.J/=4z.4j}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6r();u o.2I.dZ("1d/"+1v)};2V=D.2V;D.3b=(A(){A 3b(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2i:1.0};o.dY=1u.9L.4p();o.I=1s 2h!=="3T"&&2h!==L?1y 3I():2o.3H(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3d(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2T=o.1j.4G(0,0,o.I.F,o.I.J);o.T=o.2T.2a}3b.N.33=A(cb){u o.c.33.1x(o.c,cb)};3b.N.3p=A(cx){o.1G.a0=cx;u o};3b.N.2i=A(2i){o.1G.2i=2i/1i;u o};3b.N.4m=A(){M i,31,H,K;31=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3L<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3L)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5V a 5U 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3L>o.c.T.P||3L<0){u}o.c.T[3L]=C.r;o.c.T[3L+1]=C.g;o.c.T[3L+2]=C.b;o.c.T[3L+3]=C.a;u 2X};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5M=A(){u o.dR()};1Z.N.dQ=A(7B){M 3O;B(7B==L){7B=2k}3O=\'#\'+o.r.5M(16)+o.g.5M(16)+o.b.5M(16);B(7B){u 3O+o.a.5M(16)}S{u 3O}};u 1Z})();1Z=D.1Z;D.2t=(A(){A 2t(){}2t.9G={};2t.V=A(1p,4q){u o.9G[1p]=4q};2t.48=A(1j,1p,1l){u o.9G[1p].4t(1j,1l)};u 2t})();2t=D.2t;D.1R=(A(){1R.4R=D.2Z?6u(\'dP\').dO().P:4;A 1R(c){o.c=c;o.4f=8Q(o.4f,o);o.6A=[];o.5f=L}1R.N.4c=A(9x){B(9x==L){u}u o.6A.2j(9x)};1R.N.4f=A(){M 2g;B(o.6A.P===0){2L.5j(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6A.d9();5B(o.2c.1v){28 R.3k.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4f();28 R.3k.8G:o.c.c1();o.c.bZ();u o.4f();28 R.3k.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3k.2t:u o.db();dN:u o.a6()}};1R.N.48=A(1Q){o.9v=1Q;o.5f=1u.6b(o.c.T.P);u o.4f()};1R.N.9o=A(fn){M 6Z,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2N((n/4)/1R.4R);6Z=8B*4;9l=6Z+((n/4)%1R.4R)*4;1o=[];W(i=H=0,K=1R.4R;0<=K?HK;i=0<=K?++H:--H){1J=i*6Z;1M=1J+(i===1R.4R-1?9l:6Z);B(D.2Z){f=6x((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.65(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1R.N.a6=A(){2L.5j(o.c,"b6",o.2c);B(o.2c.1v===R.3k.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1R.N.db=A(){1Y.2u("dL 4q "+o.2c.4q);2t.48(o.c,o.2c.4q,o.2c.1l);1Y.2u("2t "+o.2c.4q+" 9k!");u o.4f()};1R.N.af=A(2Q,1J,1M){M i,1w,H;1Y.2u("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2L.5j(o.c,"bd",{am:2Q,an:1R.4R,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3F(1w.r);o.c.T[i+1]=1u.3F(1w.g);o.c.T[i+2]=1u.3F(1w.b);o.c.T[i+3]=1u.3F(1w.a)}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.ag=A(2Q,1J,1M){M Q,6B,3j,2U,6j,2P,i,j,k,2G,n,1p,p,1w,4a,H,1f,1H;1p=o.2c.1p;3j=o.2c.3j;2P=o.2c.2P;n=o.c.T.P;Q=o.2c.Q;6B=O.8l(Q.P);2G=[];1Y.2u("dG 2G - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6B-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6B-1)/2)));2U=(6B-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;6j=0;W(j=1f=-2U;-2U<=2U?1f<=2U:1f>=2U;j=-2U<=2U?++1f:--1f){W(k=1H=2U;2U<=-2U?1H<=-2U:1H>=-2U;k=2U<=-2U?++1H:--1H){p=1w.cP(j,k);2G[6j*3]=p.r;2G[6j*3+1]=p.g;2G[6j*3+2]=p.b;6j++}}4a=o.3K(Q,2G,2P,3j);o.5f[i]=1u.3F(4a.r);o.5f[i+1]=1u.3F(4a.g);o.5f[i+2]=1u.3F(4a.b);o.5f[i+3]=o.c.T[i+3]}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.65=A(2Q){M i,H,K;B(2Q>=0){1Y.2u("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2L.5j(o.c,"65",{am:2Q,dF:o.7P,an:1R.4R});B(o.7P===1R.4R){B(o.2c.1v===R.3k.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.5f[i]}}B(2Q>=0){1Y.2u("R "+o.2c.1p+" 9k!")}2L.5j(o.c,"bb",o.2c);u o.4f()}};1R.N.3K=A(Q,2G,2P,3j){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2G[i*3];2f.g+=Q[i]*2G[i*3+1];2f.b+=Q[i]*2G[i*3+2]}2f.r=(2f.r/2P)+3j;2f.g=(2f.g/2P)+3j;2f.b=(2f.b/2P)+3j;u 2f};1R.N.da=A(2g,1E){M 1P,5n;1P=1y 4S();1P.bR=(A(1r){u A(){2g.1j.6f(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2T=2g.1j.4G(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2T.2a;1r.c.T=2g.T;u 1r.4f()}})(o);5n=2V.bu(1E);u 1P.1E=5n!=L?5n:1E};u 1R})();1R=D.1R;D.32=(A(){A 32(){}32.62={};32.bJ=A(4C){u o.62[4C]!=L};32.4p=A(4C){u o.62[4C]};32.cs=A(1p,2B){u o.62[1p]=2B};32.48=A(4C,1Q){7I((A(1r){u A(){u 1Q.1x(1r.4p(4C),1r.4p(4C))}})(o),0);u o.4p(4C)};32.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.62[1p]}S{u o.62={}}};u 32})();32=D.32;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("5I",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4x",A(){M 3f;B(1k.P===1){3f=1X.7U(1k[0])}S{3f={r:1k[0],g:1k[1],b:1k[2]}}u o.2p("4x",A(C){C.r=3f.r;C.g=3f.g;C.b=3f.b;C.a=E;u C})});R.V("3y",A(Q){Q=O.2N(E*(Q/1i));u o.2p("3y",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3J",A(Q){Q*=-0.dy;u o.2p("3J",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("44",A(Q){Q*=-1;u o.2p("44",A(C){M 1q,4X,1e;1e=O.1e(C.r,C.g,C.b);4X=(C.r+C.g+C.b)/3;1q=((O.4Y(1e-4X)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4Z",A(Q){u o.2p("4Z",A(C){M 4X;4X=2b.6y(C);C.r=4X;C.g=4X;C.b=4X;u C})});R.V("2s",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2p("2s",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2p("93",A(C){M b,g,h,5e,r,K;5e=1X.cC(C.r,C.g,C.b);h=5e.h*1i;h+=O.4Y(Q);h=h%1i;h/=1i;5e.h=h;K=1X.cE(5e.h,5e.s,5e.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("49",A(){M 6g,3e;B(1k.P===2){3e=1X.7U(1k[0]);6g=1k[1]}S B(1k.P===4){3e={r:1k[0],g:1k[1],b:1k[2]};6g=1k[3]}u o.2p("49",A(C){C.r-=(C.r-3e.r)*(6g/1i);C.g-=(C.g-3e.g)*(6g/1i);C.b-=(C.b-3e.b)*(6g/1i);u C})});R.V("b0",A(){u o.2p("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4s",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2p("4s",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2v",A(Q){u o.2p("2v",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4Y(Q)*2.55;u o.2p("8i",A(C){M 4g;4g=2b.ab(Q*-1,Q);C.r+=4g;C.g+=4g;C.b+=4g;u C})});R.V("8j",A(Q){Q=O.4Y(Q)*2.55;u o.2p("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3g}S{C.r-=C.r*O.4Y(1G.3g)}}B(1G.4w!=L){B(1G.4w>0){C.g+=(E-C.g)*1G.4w}S{C.g-=C.g*O.4Y(1G.4w)}}B(1G.3X!=L){B(1G.3X>0){C.b+=(E-C.b)*1G.3X}S{C.b-=C.b*O.4Y(1G.3X)}}u C})});R.V("2e",A(){M 6I,29,3W,3P,1M,i,5t,1J,H,1f,K,3S;3W=1k[0],3P=2<=1k.P?61.1x(1k,1):[];5t=3P[3P.P-1];B(1s 5t==="A"){6I=5t;3P.6s()}S B(1s 5t==="3i"){6I=2b[5t];3P.6s()}S{6I=2b.29}B(1s 3W==="3i"){3W=3W.do("")}B(3W[0]==="v"){3W=[\'r\',\'g\',\'b\']}B(3P.P<2){2K"5z 8e 8X 1k 3N 2e 1C";}29=6I(3P,0,E);1J=3P[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3P[3P.P-1];B(1M[0]=E;i=3S<=E?++1f:--1f){29[i]=1M[1]}}u o.2p("2e",A(C){M 1H,4o;W(i=1H=0,4o=3W.P;0<=4o?1H<4o:1H>4o;i=0<=4o?++1H:--1H){C[3W[i]]=29[C[3W[i]]]}u C})});R.V("3a",A(Q){M 4L,4M,p;p=O.4Y(Q)/1i;4L=[0,E*p];4M=[E-(E*p),E];B(Q<0){4L=4L.br();4M=4M.br()}u o.2e(\'3e\',[0,0],4L,4M,[E,E])});D.2t.V("8F",A(F,J,x,y){M I,2J;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="3T"&&2h!==L){I=1y 3I(F,J)}S{I=2o.3H(\'I\');1u.52(o.I,I);I.F=F;I.J=J}2J=I.3d(\'2d\');2J.6f(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2X;u o.6D(I)});D.2t.V("8x",A(2D){M I,2J;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1Y.9d("5z cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="3T"&&2h!==L){I=1y 3I(2D.F,2D.J)}S{I=2o.3H(\'I\');1u.52(o.I,I);I.F=2D.F;I.J=2D.J}2J=I.3d(\'2d\');2J.6f(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2X;u o.6D(I)});D.R.V("8F",A(){u o.51("8F",5u.N.5d.1x(1k,0))});D.R.V("8x",A(){u o.51("8x",5u.N.5d.1x(1k,0))});D.R.V("dm",A(){u o.3K("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3K("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3K("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3s){M 2G;B(3s===0||3s===4i){2G=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3s>0&&3s<90)||(3s>4i&&3s<8w)){2G=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3s===90||3s===8w){2G=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2G=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3K("de 8A",2G)});D.R.V("6C",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3K("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3y:A(C,1q,G){C.r=C.r-(C.r*1q*G.3h);C.g=C.g-(C.g*1q*G.3h);C.b=C.b-(C.b*1q*G.3h);u C},2v:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3h,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3h,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3h,1))*E;u C},49:A(C,1q,G){C.r-=(C.r-G.3f.r)*1q;C.g-=(C.g-G.3f.g)*1q;C.b-=(C.b-G.3f.b)*1q;u C}};R.V("1U",A(1t,3h){M 29,3B,1M,1J;B(3h==L){3h=60}B(1s 1t==="3i"&&1t.59(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4u(1t.59(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4u(1t.59(0,1t.P-1),10)/1i)}}3h/=1i;3B=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3B[0],2)+O.1T(3B[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2p("1U",A(C){M 8p,2H,U;U=C.9M();8p=2b.5a(U.x,U.y,3B[0],3B[1]);B(8p>1M){2H=O.1e(1,(29[O.5C(((8p-1M)/1t)*1i)]/10)*3h);C.r=O.1T(C.r/E,2H)*E;C.g=O.1T(C.g/E,2H)*E;C.b=O.1T(C.b/E,2H)*E}u C})});R.V("bY",A(G){M 4h,5W,8k,1t,H,1n,K;4h={3h:50,2E:0,8U:\'3y\',3f:{r:0,g:0,b:0}};G=1u.79(4h,G);B(!G.1t){u o}S B(1s G.1t==="3i"){8k=4u(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="41"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){5W=K[H];B(1s G.1t[5W]==="3i"){G.1t[5W]=o.1c[5W]*(4u(G.1t[5W],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2E==="3i"){G.2E=(G.1t.F/2)*(4u(G.2E,10)/1i)}G.3h/=1i;G.1t.F=O.2N(G.1t.F);G.1t.J=O.2N(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="49"&&1s G.3f==="3i"){G.3f=1X.7U(G.3f)}G.1W={5l:(o.1c.F-G.1t.F)/2,69:o.1c.F-G.1W.5l,5m:(o.1c.J-G.1t.J)/2,6k:o.1c.J-G.1W.5m};G.1z=[{x:G.1W.5l+G.2E,y:G.1W.6k-G.2E},{x:G.1W.69-G.2E,y:G.1W.6k-G.2E},{x:G.1W.69-G.2E,y:G.1W.5m+G.2E},{x:G.1W.5l+G.2E,y:G.1W.5m+G.2E}];G.4n=2b.5a(0,0,G.1z[3].x,G.1z[3].y)-G.2E;u o.2p("bY",A(C){M 1q,U,4l;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1W.5m&&U.yG.1W.5l&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1W.6k){1q=(U.y-G.1W.6k)/G.4n}S B(U.y>G.1z[2].y&&U.yG.1W.69){1q=(U.x-G.1W.69)/G.4n}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4l=D.5a(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4l-G.2E)/G.4n}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4l=D.5a(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4l-G.2E)/G.4n}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4l=D.5a(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4l-G.2E)/G.4n}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4l=D.5a(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4l-G.2E)/G.4n}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4T,97,98,66,63;66=[2S,2S,37,2S,3x,37,3D,2S,43,3x,3l,37,3V,3D,3U,2S,4D,43,4V,3x,4A,3l,4B,37,4I,3V,4k,3D,39,3U,4U,2S,5H,4D,47,43,5R,4V,64,3x,39,4A,6a,3l,4y,4B,4W,37,5s,4I,5w,3V,5q,4k,5K,3D,5N,39,5O,3U,5Z,4U,3Y,2S,7D,5H,7C,4D,7A,47,7x,43,7w,5R,7v,4V,4v,64,7u,3x,6c,39,7t,4A,7s,6a,4F,3l,3Y,4y,7r,4B,7q,4W,7o,37,7n,5s,47,4I,7m,5w,7k,3V,7j,5q,7i,4k,4v,5K,6e,3D,7f,5N,7e,39,7c,5O,7a,3U,6l,5Z,4F,4U,78,3Y,76,2S,bU,7D,bN,5H,4W,7C,bL,4D,bG,7A,bF,47,bD,7x,bC,43,bB,7w,bA,5R,bz,7v,bx,4V,bw,4v,74,64,6e,7u,8u,3x,ba,6c,b9,39,b8,7t,b7,4A,8g,7s,6l,6a,b5,4F,b4,3l,b3,3Y,b2,4y,aO,7r,aK,4B,aJ,7q,aH,4W,aF,7o,aC,37,az,7n,ax,5s,aw,47,ap,4I,ao,7m,al,5w,ak,7k,ah,3V,ae,7j,dc,5q,d3,7i,d2,4k,cY,4v,74,5K,cX,6e,cW,3D,8u,7f,cV,5N,6c,7e,cT,39,cG,7c,cB,5O,8T,7a,8g,3U,cv,6l,cu,5Z,cq,4F,cp,4U,3l,78,co,3Y,cn,76,4y];63=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];97=A(F,J,6n,6m,2F,P,c0){M 42,1j,2w,6V,6Y,6W,71;42=1s 2h!=="3T"&&2h!==L?1y 3I():2o.3H(\'I\');42.F=F;42.J=J;6V=6n+O.bW(2F)*P*0.5;6W=6m+O.bV(2F)*P*0.5;6Y=6n-O.bW(2F)*P*0.5;71=6m-O.bV(2F)*P*0.5;1j=42.3d("2d");2w=1j.en(6V,6W,6Y,71);B(!c0){2w.5o(0,"77");2w.5o(1,"a4")}S{2w.5o(0,"77");2w.5o(0.5,"a4");2w.5o(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4G(0,0,F,J)};98=A(F,J,6n,6m,6P,6O){M 42,1j,2w;42=1s 2h!=="3T"&&2h!==L?1y 3I():2o.3H(\'I\');42.F=F;42.J=J;1j=42.3d("2d");2w=1j.ev(6n,6m,6P,6n,6m,6O);2w.5o(1,"77");2w.5o(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4G(0,0,F,J)};4T=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1N=L};D.2t.V("a3",A(by,1V,bq,7l){M 2l,2C,1O,5P,6X,2H,2n,2y,1K,J,46,i,6S,2x,3z,7M,3Z,6K,2O,p,1D,1A,Y,1B,2q,2z,1L,9i,1a,34,2R,1b,4b,1m,1I,2M,5h,2Y,8h,8f,67,F,3t,x,y,1h,4N,4J,H,1f,1H,3o,3m,3v,3q,3w,3C,5J;F=o.1c.F;J=o.1c.J;3z=o.T;9i=by.2a;8f=F*J;67=8f<<2;Y=[];W(i=H=0;0<=67?H<67:H>67;i=0<=67?++H:--H){Y[i]=3z[i]}6X=0;5h=7l;7l-=1;8Z(5h-->=0){3Z=(1V+0.5)|0;B(3Z===0){5G}B(3Z>6M){3Z=6M}2H=3Z+3Z+1;8h=F<<2;3t=F-1;46=J-1;1a=3Z+1;2Y=1a*(1a+1)/2;2M=1y 4T();4b=bg 0;1b=2M;W(i=1f=1;1<=2H?1f<2H:1f>2H;i=1<=2H?++1f:--1f){1b=1b.1N=1y 4T();B(i===1a){4b=1b}}1b.1N=2M;1m=L;1I=L;4J=1h=0;2O=66[3Z];2R=63[3Z];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2Y*1B;1K+=2Y*1A;1O+=2Y*1D;1b=2M;W(i=3o=0;0<=1a?3o<1a:3o>1a;i=0<=1a?++3o:--3o){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3tF;x=0<=F?++3v:--3v){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4J+((p=x+1a)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4J+=F}W(x=3q=0;0<=F?3qF;x=0<=F?++3q:--3q){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2Y*1B;1K+=2Y*1A;1O+=2Y*1D;1b=2M;W(i=3w=0;0<=1a?3w<1a:3w>1a;i=0<=1a?++3w:--3w){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4N=F;W(i=3C=1;1<=1a?3C<1a:3C>1a;i=1<=1a?++3C:--3C){1h=(4N+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<46){4N+=F}}1h=x;1m=2M;1I=4b;W(y=5J=0;0<=J?5JJ;y=0<=J?++5J:--5J){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<46?p:46)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}1V*=bq;i=8f;8Z(--i>-1){2x=i<<2;6K=(9i[2x+2]&fo)/E.0*7l;7M=6K|0;B(7M===6X){5P=6M.0*(6K-(6K|0));6S=6M-5P;3z[2x]=(3z[2x]*6S+Y[2x]*5P)>>8;3z[2x+1]=(3z[2x+1]*6S+Y[2x+1]*5P)>>8;3z[2x+2]=(3z[2x+2]*6S+Y[2x+2]*5P)>>8}S B(7M===6X+1){3z[2x]=Y[2x];3z[2x+1]=Y[2x+1];3z[2x+2]=Y[2x+2]}}6X++}u o});D.R.V("fq",A(G){M 4h,2w;4h={3B:{x:o.1c.F/2,y:o.1c.J/2},2F:45,cd:5Y,7R:3,7Q:1.5,5h:3};G=1u.79(4h,G);G.2F*=O.aZ/4i;2w=97(o.1c.F,o.1c.J,G.3B.x,G.3B.y,G.2F,G.cd,2X);u o.51("a3",[2w,G.7R,G.7Q,G.5h])});u D.R.V("fx",A(G){M 4h,2w,6P,6O;4h={1t:50,3B:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5h:3,1V:L};G=1u.79(4h,G);B(!G.1V){G.1V=o.1c.F2H;i=1<=2H?++H:--H){1b=1b.1N=1y 4T();B(i===1a){4b=1b}}1b.1N=2M;1m=L;1I=L;4J=1h=0;2O=66[1V];2R=63[1V];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2Y*1B;1K+=2Y*1A;1O+=2Y*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3o=1;1<=1a?3o<1a:3o>1a;i=1<=1a?++3o:--3o){p=1h+((3tF;x=0<=F?++3m:--3m){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4J+((p=x+1V+1)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4J+=F}W(x=3v=0;0<=F?3vF;x=0<=F?++3v:--3v){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2Y*1B;1K+=2Y*1A;1O+=2Y*1D;1b=2M;W(i=3q=0;0<=1a?3q<1a:3q>1a;i=0<=1a?++3q:--3q){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4N=F;W(i=3w=1;1<=1V?3w<=1V:3w>=1V;i=1<=1V?++3w:--3w){1h=(4N+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<46){4N+=F}}1h=x;1m=2M;1I=4b;W(y=3C=0;0<=J?3CJ;y=0<=J?++3C:--3C){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<46?p:46)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}u o});u D.R.V("5L",A(1V){u o.51("5L",[1V])})})();D.R.V("aD",A(Q){u o.2p("aD",A(C){M 6y;6y=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6y",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} +this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=this.initObj;this.renderingContext=this.renderingCanvas.getContext('2d');this.canvas.width=this.renderingCanvas.width;this.canvas.height=this.renderingCanvas.height;if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} diff --git a/dist/caman.pack.js b/dist/caman.pack.js index 48cfbf35..209b2f05 100644 --- a/dist/caman.pack.js +++ b/dist/caman.pack.js @@ -1 +1 @@ -eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2N,1z,1G,B,3e,2L,1s,1N,45,V,1V,2V,23,1n,2i,1r,1R,1h,4J,1W,1a,3C,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3L=o(2H,2o,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1y(2o.7n(4j.5f,4j.bn))}9 X};1a.3v=o(K){u(K==G){K=0}u(B.21||(2Y.7o!=G)){9 1k 7o(K)}9 1k 44(K)};9 1a})();u(1f 1X!=="33"&&1X!==G){4J=1X;2L=4i(\'F\');2V=2L.2V;45=4i(\'bl\');3C=4i(\'3C\');3Y=4i(\'3Y\')}Q{4J=2Y}B=(o(76){7b(B,76);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1D;B.3J=2n;B.5O="86";B.4A="";B.8c="9q";B.21=1f 1X!=="33"&&1X!==G;B.8m=!B.21;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.21){9 2n}u(1f F==="2Z"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1A-2l-1S\')};o B(){8.3s=5T(8.3s,8);I W,1i,1S;u(Y.K===0){1P"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.21){1S=51(B.63(W[0]),10);1i=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1S)&&1W.6P(1S)){9 1W.2t(1S,1i)}}8.1S=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1D;8.5s=1D;8.be=1D;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1D;8.aT=1k 2N(8);8.2P=1k 1h(8);8.7T((o(Z){9 o(){Z.80(W);9 Z.8g()}})(8));9 8}Q{9 1k B(Y)}}B.H.7T=o(3y){I 5C;u(B.21){9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}Q{u(1K.5D==="4D"){1n.1C("6B 6G");9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}Q{5C=(o(Z){9 o(){u(1K.5D==="4D"){1n.1C("6B 6G");9 3y.19(Z)}}})(8);9 1K.6L("ap",5C,1D)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1P"3m Y 6M";}8.22=G;8.4m=G;8.4n=G;8.1i=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Z":8.4n=W[1];31;1v"o":8.1i=W[1]}u(W.K===2){9}8.1i=W[2];u(W.K===4){E=W[4];X=[];U(1B 3d E){u(!3R.19(E,1B))4f;1w=E[1B];X.1y(8.1c[1B]=1w)}9 X}};B.H.6W=o(1I){u(B.21){8.22=1I;8.4m=\'6Z\';9}u(1f 1I==="2v"){8.22=1I}Q{8.22=$(1I)}u(8.22==G){1P"al a8 a7 S 7h F U a3.";}9 8.4m=8.22.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1g":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1n.1C("9N U 21");u(1f 8.22==="2Z"&&8.22.4C(/^7E?:\\/\\//)){9 8.7F(8.22,8.3s)}Q u(1f 8.22==="2Z"){9 3C.9E(8.22,8.3s)}Q{9 8.3s(G,8.22)}};B.H.7F=o(3X,1i){I 66;1n.1C("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1A\',o(8f){9 4N+=8f});9 2u.6m(\'1p\',o(){9 1i(G,1k 91(4N,\'8d\'))})});9 66.6m(\'6t\',1i)};B.H.3s=o(3T,1A){u(3T){1P 3T;}8.S=1k 2V();8.S.1b=1A;1n.1C("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));8.F=1k 2L(8.2g(),8.2f());8.1Z=1k 2L(8.2g(),8.2f());9 8.3x()};B.H.7A=o(){8.S=8.22;8.F=1K.2O(\'F\');8.1e=8.F.2b(\'2d\');8.1Z=1K.2O(\'F\');8.3c=8.1Z.2b(\'2d\');1a.3L(8.S,8.F,{5c:[\'1b\']});1a.3L(8.S,8.1Z,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.1Z,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=1K.2O(\'F\');8.1e=8.F.2b(\'2d\');8.1Z=8.22;8.3c=8.1Z.2b(\'2d\');u(8.4n!=G){8.S=1K.2O(\'1g\');8.S.1b=8.4n;8.5Z();9 8.5Y()}Q{9 8.3x()}};B.H.5Z=o(){u(8.5X()){1n.1C(8.S.1b,"->",8.4I());8.7m=2n;8.S.1b=8.4I()}u(1V.7k(8.S)){8.S.1b=1V.3f(8.S.1b);9 1n.1C("8F S a6, ab 79 = "+8.S.1b)}};B.H.5Y=o(){u(8.78()){9 8.4k()}Q{9 8.S.73=8.4k}};B.H.78=o(){u(!8.S.4D){9 1D}u((8.S.5P!=G)&&8.S.5P===0){9 1D}9 2n};B.H.2g=o(){9 8.S.L||8.S.5P};B.H.2f=o(){9 8.S.R||8.S.an};B.H.4k=o(){1n.1C("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));u(8.7m){8.F.L=8.2g()/8.3K();8.F.R=8.2f()/8.3K();8.1Z.L=8.2g()/8.3K();8.1Z.R=8.2f()/8.3K()}Q{8.F.L=8.2g();8.F.R=8.2f();8.1Z.L=8.2g();8.1Z.R=8.2f()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1e==G){8.1e=8.F.2b(\'2d\')}u(8.3c==G){8.3c=8.1Z.2b(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.R=8.F.R;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1e.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O);8.3c.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O)}8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A;u(B.3J){8.59=1a.3v(8.M.K);8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1F={L:8.F.L,R:8.F.R};u(!B.21){1W.6K(8.1S,8)}8.1i.19(8,8);9 8.1i=o(){}};B.H.6z=o(){8.1T=8.1e.3u(0,0,8.F.L,8.F.R);9 8.M=8.1T.1A};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3J){1P"5E 4y";}8.2J=1a.3v(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1y(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.21||8.F.3w(\'1A-2l-1S\')){9}9 8.F.7n(\'1A-2l-1S\',8.1S)};B.H.6w=o(){9 8.F.3w(\'1A-2l-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.21||!8.5X()){9}2E=8.3K();u(2E!==1){1n.1C("aH 2E = "+2E);8.6R=2n;8.3M=8.F.L;8.3O=8.F.R;8.F.L=8.3M*2E;8.F.R=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.R=""+8.3O+"8u";8.1e.aK(2E,2E);8.L=8.5N=8.F.L;9 8.R=8.5M=8.F.R}};B.H.3K=o(){I 5B,2C;2C=2Y.2C||1;5B=8.1e.aU||8.1e.aV||8.1e.b6||8.1e.b7||8.1e.b8||1;9 2C/5B};B.H.7p=o(){9(2Y.2C!=G)&&2Y.2C!==1};B.H.5X=o(){u(8.6w()||!8.7p()){9 1D}9 8.4I()!==G};B.H.4I=o(){u(8.S==G){9 G}9 8.S.3w(\'1A-2l-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1e=8.F.2b(\'2d\');8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A;u(B.3J){8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.R=8.F.R;8.6z();9 8.1F={L:8.F.L,R:8.F.R}};B.H.72=o(1i){u(1i==G){1i=o(){}}1N.3a(8,"6Y");9 8.2P.2t((o(Z){9 o(){Z.1Z.L=Z.F.L;Z.1Z.R=Z.F.R;Z.3c.5v(Z.1T,0,0);9 1i.19(Z)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2n}u(!B.3J){1P"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.3c.5v(8.1T,0,0)}};B.H.bh=o(){I F,2p,i,1T,15,M,C,13,E;F=1K.2O(\'F\');1a.3L(8.F,F);F.L=8.5N;F.R=8.5M;2p=F.2b(\'2d\');1T=2p.3u(0,0,F.L,F.R);M=1T.1A;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1T,0,0);8.5m={x:0,y:0};8.5s=1D;9 8.4O(F)};B.H.7r=o(){I 4Z,1q,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3J){1P"5E 4y";}52=[];53=0;1q=53+8.L;54=0;5n=54+8.R;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1U+=J[i]}}8.2P.2F({14:V.25.5h,11:11,J:J,1U:1U,26:26});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.25.1R,2w:2w,W:W});9 8};B.H.5j=o(1i){I 1t;1t=1k 23(8);8.5u.1y(1t);8.2P.2F({14:V.25.5k});1i.19(1t);8.2P.2F({14:V.25.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1y(8.49);8.4a.1y(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2i);4J.B=B;B.2N=(o(){o 2N(c){8.c=c}2N.H.bi=o(){I i,29,4e,C,17,1L,E;29={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){29.r[i]=0;29.g[i]=0;29.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1g=4b[C];X.1y(6C=1k 3e(1g,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1K.5D==="4D"){9 B.5r()}Q{9 1K.6L("bb",B.5r,1D)}})()}3e=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3e(2z,6T){8.6U=2z.3w(\'1A-2l\');8.2l=B(2z,6T.5p(8))}3e.H.6H=o(){I W,e,48,39,5w,5x,m,r,47,C,13,E,X;8.2z=8.2l.F;r=1k 7f(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1k 7f(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1k b9("9 o() { 8."+48+"("+W+"); };");5y{39=5x();X.1y(39.19(8.2l))}5z(3D){e=3D;X.1y(1n.1C(e))}}9 X};3e.H.2t=o(){I 2z;2z=8.2z;9 8.2l.72(o(){9 2z.6g.7z(8.7q(),2z)})};9 3e})();B.1z=(o(){o 1z(){}1z.5A={};1z.18=o(11,39){9 8.5A[11]=39};1z.2t=o(11,O,N){9 8.5A[11](O,N)};9 1z})();1z=B.1z;B.1G=(o(){o 1G(){}1G.b5=o(7H,7I,7J,7K){9 P.7N(P.1Y(7J-7H,2)+P.1Y(7K-7I,2))};1G.7P=o(1j,T,42){I 2A;u(42==G){42=1D}2A=1j+(P.aQ()*(T-1j));u(42){9 2A.aP(42)}Q{9 P.41(2A)}};1G.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1G.1J=o(1l,2X,2W,1p,34,35){I 1J,3o,1H,1q,i,j,3r,4v,2m,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1H=1l;34=2X;35=2W}Q{1H=[1l,2X,2W,1p]}u(1H.K<2){1P"3m 5F 5G Y 2o 1J";}1J={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2m=1H;as(2m.K>1){4v=[];U(j=17=0,E=2m.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1y([3r(2m[j][0],2m[j+1][0],t),3r(2m[j][1],2m[j+1][1],t)])}2m=4v}1J[P.41(2m[0][0])]=P.41(3o(2m[0][1],34,35))}1q=1H[1H.K-1][0];1J=B.1G.5H(1J,1q);u(1J[1q]==G){1J[1q]=1J[1q-1]}9 1J};1G.6I=o(1H,34,35){I 2F,3o,5I,1q,4u,4t,4r,4p,i,j,3r,5J,5K,2M,p,3P,3N,2I,58,56,2a,50,t,C,17,E;u(1H.K<2){1P"3m 5F 5G Y 2o 6I";}2a={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(Z){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2M=(o(Z){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);50=(o(Z){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 P.1j(P.T(a,1j),T)};5I=0;U(i=C=0,E=1H.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3P=1H[i];3N=1H[i+1];2I=3N[0]-3P[0];58=1/2I;u(i===1H.K-2){58=1/(2I-1)}p=i>0?1H[i-1]:3P;5J=2M(50(3N,p),[0.5,0.5]);p=i<1H.K-2?1H[i+2]:3N;5K=2M(50(p,3P),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2M(3P,[4u,4u]),2M(5J,[4t,4t]),2M(3N,[4r,4r]),2M(5K,[4p,4p]));2a[P.41(56[0])]=P.41(3o(56[1],34,35));5I+=1}}1q=1H[1H.K-1][0];2a=B.1G.5H(2a,1q);9 2a};1G.5H=o(3g,1q){I i,j,3I,2a,4W,C,17;u(7W.ah(3g).K<1q+1){2a={};U(i=C=0;0<=1q?C<=1q:C>=1q;i=0<=1q?++C:--C){u(3g[i]!=G){2a[i]=3g[i]}Q{3I=[i-1,2a[i-1]];U(j=17=i;i<=1q?17<=1q:17>=1q;j=i<=1q?++17:--17){u(3g[j]!=G){4W=[j,3g[j]];31}}2a[i]=3I[1]+((4W[1]-3I[1])/(4W[0]-3I[0]))*(i-3I[0])}}9 2a}9 3g};9 1G})();1G=B.1G;B.1s=(o(){o 1s(){}1s.5d=o(2h){I b,g,r;u(2h.ae(0)==="#"){2h=2h.4U(1)}r=51(2h.4U(0,2),16);g=51(2h.4U(2,2),16);b=51(2h.4U(4,2),16);9{r:r,g:g,b:b}};1s.ad=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}Q{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1s.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=P.T(r,g,b);1j=P.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}Q{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=P.1Y((r+0.28)/1.28,2.4)}Q{r/=12.92}u(g>0.5W){g=P.1Y((g+0.28)/1.28,2.4)}Q{g/=12.92}u(b>0.5W){b=P.1Y((b+0.28)/1.28,2.4)}Q{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1o,y:y*1o,z:z*1o}};1s.9S=o(x,y,z){I b,g,r;x/=1o;y/=1o;z/=1o;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*P.1Y(r,0.69))-0.28}Q{r*=12.92}u(g>0.68){g=(1.28*P.1Y(g,0.69))-0.28}Q{g*=12.92}u(b>0.68){b=(1.28*P.1Y(b,0.69))-0.28}Q{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1s.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1o.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=P.1Y(x,0.6e)}Q{x=(7.6f*x)+0.3z}u(y>0.6d){y=P.1Y(y,0.6e)}Q{y=(7.6f*y)+0.3z}u(z>0.6d){z=P.1Y(z,0.6e)}Q{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1s.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}Q{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}Q{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}Q{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1o.0,z:z*7R.7S}};1s.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1s.9t=o(l,a,b){};9 1s})();1s=B.1s;B.1N=(o(){o 1N(){}1N.3b={};1N.87=["88","89","6Y","8a","8b","3Q"];1N.3a=o(24,14,1A){I 3S,C,13,E,X;u(1A==G){1A=G}u(8.3b[14]&&8.3b[14].K){E=8.3b[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.24===G||24.1S===3S.24.1S){X.1y(3S.2r.19(24,1A))}Q{X.1y(9p 0)}}9 X}};1N.9n=o(24,14,2r){I 6n,5e;u(1f 24==="2Z"){5e=24;6n=14;24=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1D}u(!8.3b[14]){8.3b[14]=[]}8.3b[14].1y({24:24,2r:2r});9 2n};9 1N})();1N=B.1N;B.V=(o(){o V(){}V.25={6o:1,5h:2,5k:3,5l:4,6p:5,1R:6};V.18=o(11,8j){9 B.H[11]=8j};9 V})();V=B.V;B.1V=(o(){o 1V(){}1V.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1V.7k=o(1g){u(1g==G){9 1D}u(8.8l(1g)){9 1D}9 8.4q(1g.1b)};1V.8l=o(1g){I E;9(1g.5O!=G)&&((E=1g.5O.3Z())===\'86\'||E===\'8n-9m\')};1V.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1K.9k}Q{9 1D}};1V.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1n.6q("9f 2o 9e a 8v S 93 a 90 8y. 79: "+1b)}Q{u(B.4q(B.4A)){1n.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3f(1b)}}};1V.3f=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1V.8G=o(38){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};38=38.3Z();u(5b[38]!=G){38=5b[38]}9"8O/8P."+38};9 1V})();B.H.8Q=o(){u(1f 1X!=="33"&&1X!==G){9 8.8C.2G(8,Y)}Q{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1K.8Y.8Z=S};B.H.8C=o(3q,57,1i){I e,6s;u(57==G){57=2n}u(1i==G){1i=G}5y{6s=3C.94(3q);u(6s.96()&&!57){9 1D}}5z(3D){e=3D;1n.1C("97 98 3q "+3q)}9 3C.99(3q,8.F.9a(),o(3T){1n.1C("9b 9c 2o "+3q);u(1i){9 1i.19(8,3T)}})};B.H.7q=o(14){I 1g;1g=1k 2V();1g.1b=8.6u(14);1g.L=8.1F.L;1g.R=8.1F.R;u(2Y.2C){1g.L/=2Y.2C;1g.R/=2Y.2C}9 1g};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.1Z.9d("S/"+14)};1V=B.1V;B.23=(o(){o 23(c){8.c=c;8.48=8.c;8.1c={6r:\'8t\',2Q:1.0};8.9h=1a.5q.2D();8.F=1f 1X!=="33"&&1X!==G?1k 2L():1K.2O(\'F\');8.F.L=8.c.1F.L;8.F.R=8.c.1F.R;8.1e=8.F.2b(\'2d\');8.1e.9i(8.F.L,8.F.R);8.1T=8.1e.3u(0,0,8.F.L,8.F.R);8.M=8.1T.1A}23.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};23.H.9j=o(8q){8.1c.6r=8q;9 8};23.H.2Q=o(2Q){8.1c.2Q=2Q/1o;9 8};23.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2j<0){9 1k 1r(0,0,0,D,8.c)}9 8.65(2j)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1P"3l a 3k 1e";}7D=8.1m+(8.c.1F.L*4*(4E*-1))+(4*4F);u(2j>8.c.M.K||2j<0){9}8.c.M[2j]=A.r;8.c.M[2j+1]=A.g;8.c.M[2j+2]=A.b;8.c.M[2j+3]=A.a;9 2n};1r.H.9J=o(x,y){I 1m;u(8.c==G){1P"3l a 3k 1e";}1m=8.6h(x,y,8.L);9 8.65(1m)};1r.H.9K=o(x,y,A){I 1m;u(8.c==G){1P"3l a 3k 1e";}1m=8.6h(x,y,8.L);8.c.M[1m]=A.r;8.c.M[1m+1]=A.g;8.c.M[1m+2]=A.b;9 8.c.M[1m+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2h;u(4B==G){4B=1D}2h=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2h+8.a.3t(16)}Q{9 2h}};9 1r})();1r=B.1r;B.1R=(o(){o 1R(){}1R.64={};1R.18=o(11,2w){9 8.64[11]=2w};1R.2t=o(1e,11,W){9 8.64[11].2G(1e,W)};9 1R})();1R=B.1R;B.1h=(o(){1h.2T=B.21?4i(\'9Q\').9R().K:4;o 1h(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1h.H.2F=o(62){u(62==G){9}9 8.3V.1y(62)};1h.H.2B=o(){I 1t;u(8.3V.K===0){1N.3a(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1x=8.3V.7v();3p(8.1x.14){1v V.25.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.25.5l:8.c.6D();8.c.6x();9 8.2B();1v V.25.6p:9 8.7u(8.1x.1t,8.1x.1b);1v V.25.1R:9 8.7t();a0:9 8.7s()}};1h.H.2t=o(1i){8.61=1i;8.32=1a.3v(8.c.M.K);9 8.2B()};1h.H.60=o(2r){I 40,5V,1O,1p,f,i,5U,n,1l,C,E,X;8.4R=0;n=8.c.M.K;5V=P.2K((n/4)/1h.2T);40=5V*4;5U=40+((n/4)%1h.2T)*4;X=[];U(i=C=0,E=1h.2T;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1p=1l+(i===1h.2T-1?5U:40);u(B.21){f=45((o(Z){9 o(){9 2r.19(Z,i,1l,1p)}})(8));1O=f.a9();X.1y(8.3Q(1O))}Q{X.1y(4s((o(Z){9 o(i,1l,1p){9 o(){9 2r.19(Z,i,1l,1p)}}})(8)(i,1l,1p),0))}}9 X};1h.H.7s=o(){1N.3a(8.c,"88",8.1x);u(8.1x.14===V.25.6o){9 8.60(8.7d)}Q{9 8.60(8.7a)}};1h.H.7t=o(){1n.1C("ac 2w "+8.1x.2w);1R.2t(8.c,8.1x.2w,8.1x.W);1n.1C("1R "+8.1x.2w+" 5S!");9 8.2B()};1h.H.7d=o(1O,1l,1p){I i,15,C;1n.1C("77 #"+1O+" - V: "+8.1x.11+", af: "+1l+", ag: "+1p);1N.3a(8.c,"8b",{74:1O,71:1h.2T,ai:1l,aj:1p});15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1x.5a(15);8.c.M[i]=1a.2e(15.r);8.c.M[i+1]=1a.2e(15.g);8.c.M[i+2]=1a.2e(15.b);8.c.M[i+3]=1a.2e(15.a)}u(B.21){9 45["70"](1O)}Q{9 8.3Q(1O)}};1h.H.7a=o(1O,1l,1p){I J,43,26,1M,3n,1U,i,j,k,2k,n,11,p,15,2u,C,17,1L;11=8.1x.11;26=8.1x.26;1U=8.1x.1U;n=8.c.M.K;J=8.1x.J;43=P.7N(J.K);2k=[];1n.1C("aq 2k - V: "+8.1x.11);1l=P.T(1l,8.c.1F.L*4*((43-1)/2));1p=P.1j(1p,n-(8.c.1F.L*4*((43-1)/2)));1M=(43-1)/2;15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;3n=0;U(j=17=-1M;-1M<=1M?17<=1M:17>=1M;j=-1M<=1M?++17:--17){U(k=1L=1M;1M<=-1M?1L<=-1M:1L>=-1M;k=1M<=-1M?++1L:--1L){p=15.7G(j,k);2k[3n*3]=p.r;2k[3n*3+1]=p.g;2k[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2k,1U,26);8.32[i]=1a.2e(2u.r);8.32[i+1]=1a.2e(2u.g);8.32[i+2]=1a.2e(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.21){9 45["70"](1O)}Q{9 8.3Q(1O)}};1h.H.3Q=o(1O){I i,C,E;u(1O>=0){1n.1C("77 #"+1O+" 5S! V: "+8.1x.11)}8.4R++;1N.3a(8.c,"3Q",{74:1O,ar:8.4R,71:1h.2T});u(8.4R===1h.2T){u(8.1x.14===V.25.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1O>=0){1n.1C("V "+8.1x.11+" 5S!")}1N.3a(8.c,"89",8.1x);9 8.2B()}};1h.H.5Q=o(J,2k,1U,26){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2k[i*3];1w.g+=J[i]*2k[i*3+1];1w.b+=J[i]*2k[i*3+2]}1w.r=(1w.r/1U)+26;1w.g=(1w.g/1U)+26;1w.b=(1w.b/1U)+26;9 1w};1h.H.7u=o(1t,1b){I 1g,3f;1g=1k 2V();1g.73=(o(Z){9 o(){1t.1e.46(1g,0,0,Z.c.1F.L,Z.c.1F.R);1t.1T=1t.1e.3u(0,0,Z.c.1F.L,Z.c.1F.R);1t.M=1t.1T.1A;Z.c.M=1t.M;9 Z.2B()}})(8);3f=1V.8r(1b);9 1g.1b=3f!=G?3f:1b};9 1h})();1h=B.1h;B.1W=(o(){o 1W(){}1W.3h={};1W.6P=o(2U){9 8.3h[2U]!=G};1W.2D=o(2U){9 8.3h[2U]};1W.6K=o(11,1I){9 8.3h[11]=1I};1W.2t=o(2U,1i){4s((o(Z){9 o(){9 1i.19(Z.2D(2U),Z.2D(2U))}})(8),0);9 8.2D(2U)};1W.at=o(11){u(11==G){11=1D}u(11){9 6E 8.3h[11]}Q{9 8.3h={}}};9 1W})();1W=B.1W;1z.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1z.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1z.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1z.18("ax",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1d.g=N.g>1u?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1d.b=N.b>1u?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1d});1z.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1z.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1z.18("aB",o(O,N){9{r:1u-2*(N.r-1u)*(O.r-1u)/D,g:1u-2*(N.g-1u)*(O.g-1u)/D,b:1u-2*(N.b-1u)*(O.b-1u)/D}});1z.18("aC",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-((D-N.r)*(D-(O.r-1u)))/D:(N.r*(O.r+1u))/D;1d.g=N.g>1u?D-((D-N.g)*(D-(O.g-1u)))/D:(N.g*(O.g+1u))/D;1d.b=N.b>1u?D-((D-N.b)*(D-(O.b-1u)))/D:(N.b*(O.b+1u))/D;9 1d});1z.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1z.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4Y",o(){I 3E;u(Y.K===1){3E=1s.5d(Y[0])}Q{3E={r:Y[0],g:Y[1],b:Y[2]}}9 8.1Q("4Y",o(A){A.r=3E.r;A.g=3E.g;A.b=3E.b;A.a=D;9 A})});V.18("6y",o(J){J=P.2K(D*(J/1o));9 8.1Q("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1Q("8x",o(A){I T;T=P.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1Q("8s",o(A){I 4l,2S,T;T=P.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;4l=((P.2R(T-2S)*2/D)*J)/1o;u(A.r!==T){A.r+=(T-A.r)*4l}u(A.g!==T){A.g+=(T-A.g)*4l}u(A.b!==T){A.b+=(T-A.b)*4l}9 A})});V.18("8e",o(J){9 8.1Q("8e",o(A){I 2S;2S=1G.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=P.1Y((J+1o)/1o,2);9 8.1Q("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1Q("81",o(A){I b,g,h,37,r,E;37=1s.7g(A.r,A.g,A.b);h=37.h*1o;h+=P.2R(J);h=h%1o;h/=1o;37.h=h;E=1s.7i(37.h,37.s,37.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,30;u(Y.K===2){30=1s.5d(Y[0]);3j=Y[1]}Q u(Y.K===4){30={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1Q("7U",o(A){A.r-=(A.r-30.r)*(3j/1o);A.g-=(A.g-30.g)*(3j/1o);A.b-=(A.b-30.b)*(3j/1o);9 A})});V.18("7O",o(){9 8.1Q("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1o}J/=1o;9 8.1Q("7L",o(A){A.r=P.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=P.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=P.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1Q("7C",o(A){A.r=P.1Y(A.r/D,J)*D;A.g=P.1Y(A.g/D,J)*D;A.b=P.1Y(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=P.2R(J)*2.55;9 8.1Q("7y",o(A){I 2A;2A=1G.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=P.2R(J)*2.55;9 8.1Q("7x",o(A){u(A.r>D-J){A.r=D}Q u(A.rD-J){A.g=D}Q u(A.gD-J){A.b=D}Q u(A.b0){A.r+=(D-A.r)*1c.4S}Q{A.r-=A.r*P.2R(1c.4S)}}u(1c.4M!=G){u(1c.4M>0){A.g+=(D-A.g)*1c.4M}Q{A.g-=A.g*P.2R(1c.4M)}}u(1c.4G!=G){u(1c.4G>0){A.b+=(D-A.b)*1c.4G}Q{A.b-=A.b*P.2R(1c.4G)}}9 A})});V.18("4z",o(){I 4g,1J,2s,2c,1p,i,3F,1l,C,17,E,2q;2s=Y[0],2c=2<=Y.K?3B.19(Y,1):[];3F=2c[2c.K-1];u(1f 3F==="o"){4g=3F;2c.3U()}Q u(1f 3F==="2Z"){4g=1G[3F];2c.3U()}Q{4g=1G.1J}u(1f 2s==="2Z"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2c.K<2){1P"3m 5F 5G Y 2o 4z 48";}1J=4g(2c,0,D);1l=2c[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1J[i]=1l[1]}}1p=2c[2c.K-1];u(1p[0]=D;i=2q<=D?++17:--17){1J[i]=1p[1]}}9 8.1Q("4z",o(A){I 1L,2y;U(i=1L=0,2y=2s.K;0<=2y?1L<2y:1L>2y;i=0<=2y?++1L:--1L){A[2s[i]]=1J[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2X,2W,p;p=P.2R(J)/1o;2X=[0,D*p];2W=[D-(D*p),D];u(J<0){2X=2X.6O();2W=2W.6O()}9 8.4z(\'30\',[0,0],2X,2W,[D,D])});B.1R.18("5g",o(L,R,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1X!=="33"&&1X!==G){F=1k 2L(L,R)}Q{F=1K.2O(\'F\');1a.3L(8.F,F);F.L=L;F.R=R}2p=F.2b(\'2d\');2p.46(8.F,x,y,L,R,0,0,L,R);8.5m={x:x,y:y};8.82=2n;9 8.4O(F)});B.1R.18("4H",o(1E){I F,2p;u(1E==G){1E=G}u(1E===G||((1E.L==G)&&(1E.R==G))){1n.6t("3m 7h bp 1F 6M U 4H");9}u(1E.L==G){1E.L=8.F.L*1E.R/8.F.R}Q u(1E.R==G){1E.R=8.F.R*1E.L/8.F.L}u(1f 1X!=="33"&&1X!==G){F=1k 2L(1E.L,1E.R)}Q{F=1K.2O(\'F\');1a.3L(8.F,F);F.L=1E.L;F.R=1E.R}2p=F.2b(\'2d\');2p.46(8.F,0,0,8.F.L,8.F.R,0,0,1E.L,1E.R);8.5s=2n;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|Math|else|height|image|max|for|Filter|args|_results|arguments|_this||name||_len|type|pixel||_j|register|call|Util|src|options|result|context|typeof|img|Renderer|callback|min|new|start|loc|Log|100|end|endX|Pixel|Convert|layer|128|case|val|currentJob|push|Blender|data|key|debug|false|newDims|dimensions|Calculate|controlPoints|obj|bezier|document|_k|builder|Event|bnum|throw|process|Plugin|id|imageData|divisor|IO|Store|exports|pow|renderingCanvas|parentData|NodeJS|initObj|Layer|target|Type|bias||055|levels|ret|getContext|cps||clampRGB|imageHeight|imageWidth|hex|Module|newLoc|kernel|caman|prev|true|to|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|Canvas|mul|Analyze|createElement|renderer|opacity|abs|avg|Blocks|search|Image|ctrl2|ctrl1|window|string|rgb|break|modPixelData|undefined|lowBound|highBound|layerData|hsv|lang|func|trigger|events|renderingContext|in|CamanParser|proxyUrl|values|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|getImageData|dataArray|getAttribute|finishInit|cb|1379310345|chan|__slice|fs|_error|color|last|child|parent|leftCoord|allowRevert|hiDPIRatio|copyAttributes|preScaledWidth|p1|preScaledHeight|p0|blockFinished|__hasProp|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|Fiber|drawImage|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|amt|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|hiDPIReplacement|Root|sel|root|green|buf|replaceCanvas|Logger|hueToRGB|blocksDone|red|INST_REGEX|substr|updateContext|rightCoord|dest|fillColor|coord|sub|parseInt|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|hexToRGB|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|crossOrigin|naturalWidth|processKernel|ctor|finished|__bind|lastBlockN|blockPixelLength|04045|needsHiDPISwap|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|render|onload|blockNum|locationToCoordinates|_super|Block|isImageLoaded|URL|renderKernel|__extends|me|renderBlock|newCanvas|RegExp|rgbToHSV|or|hsvToRGB|channels|isRemote|rgbToXYZ|swapped|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|Remote|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|hasOwnProperty|detected|find|not|run|hslToRGB|using|Executing|rgbToHSL|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(o(){I $,2N,1z,1H,B,3e,2L,1s,1N,45,V,1U,2V,24,1n,2i,1r,1R,1h,4I,1X,1a,3D,3Y,4w,3i,3W=[].9r||o(8o){U(I i=0,l=8.K;iD){9 D}9 1w};1a.3L=o(2H,2o,4h){I 4j,C,13,E,2q,X;u(4h==G){4h={}}E=2H.bm;X=[];U(C=0,13=E.K;C<13;C++){4j=E[C];u((4h.5c!=G)&&(2q=4j.5f,3W.19(4h.5c,2q)>=0)){4f}X.1y(2o.7n(4j.5f,4j.bn))}9 X};1a.3v=o(K){u(K==G){K=0}u(B.21||(2Y.7o!=G)){9 1k 7o(K)}9 1k 44(K)};9 1a})();u(1f 1Y!=="33"&&1Y!==G){4I=1Y;2L=4i(\'F\');2V=2L.2V;45=4i(\'bl\');3D=4i(\'3D\');3Y=4i(\'3Y\')}R{4I=2Y}B=(o(79){7c(B,79);B.5o={7V:"4.1.2",8z:"7/27/ao"};B.6V=1C;B.3C=2n;B.5X="86";B.4A="";B.8c="9q";B.21=1f 1Y!=="33"&&1Y!==G;B.8m=!B.21;B.3t=o(){9"9g "+B.5o.7V+", 9x "+B.5o.8z};B.63=o(F){u(B.21){9 2n}u(1f F==="2Z"){F=$(F)}u(!((F!=G)&&(F.3w!=G))){9 G}9 F.3w(\'1A-2l-1T\')};o B(){8.3s=5T(8.3s,8);I W,1i,1T;u(Y.K===0){1O"3m Y";}u(8 6A B){8.3x=8.3x.5p(8);8.4k=8.4k.5p(8);W=Y[0];u(!B.21){1T=50(B.63(W[0]),10);1i=1f W[1]==="o"?W[1]:1f W[2]==="o"?W[2]:o(){};u(!bo(1T)&&1X.6P(1T)){9 1X.2t(1T,1i)}}8.1T=1a.5q.2D();8.59=8.2J=G;8.5m={x:0,y:0};8.82=1C;8.5s=1C;8.be=1C;8.bd=0;8.4a=[];8.5t=[];8.5u=[];8.49=G;8.6R=1C;8.aT=1k 2N(8);8.2P=1k 1h(8);8.7T((o(Z){9 o(){Z.80(W);9 Z.8g()}})(8));9 8}R{9 1k B(Y)}}B.H.7T=o(3y){I 5C;u(B.21){9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}R{u(1L.5D==="4D"){1n.1D("6B 6G");9 4s((o(Z){9 o(){9 3y.19(Z)}})(8),0)}R{5C=(o(Z){9 o(){u(1L.5D==="4D"){1n.1D("6B 6G");9 3y.19(Z)}}})(8);9 1L.6L("ap",5C,1C)}}};B.H.80=o(W){I 1B,1w,E,X;u(W.K===0){1O"3m Y 6M";}8.23=G;8.4m=G;8.4n=G;8.1i=o(){};8.6W(W[0]);u(W.K===1){9}3p(1f W[1]){1v"2Z":8.4n=W[1];31;1v"o":8.1i=W[1]}u(W.K===2){9}8.1i=W[2];u(W.K===4){E=W[4];X=[];U(1B 3d E){u(!3R.19(E,1B))4f;1w=E[1B];X.1y(8.1c[1B]=1w)}9 X}};B.H.6W=o(1I){u(B.21){8.23=1I;8.4m=\'6Z\';9}u(1f 1I==="2v"){8.23=1I}R{8.23=$(1I)}u(8.23==G){1O"al a8 a7 S 7f F U a3.";}9 8.4m=8.23.5f.3Z()};B.H.8g=o(){3p(8.4m){1v"6Z":9 8.7w();1v"1g":9 8.7A();1v"F":9 8.7B()}};B.H.7w=o(){1n.1D("9N U 21");u(1f 8.23==="2Z"&&8.23.4C(/^7E?:\\/\\//)){9 8.7F(8.23,8.3s)}R u(1f 8.23==="2Z"){9 3D.9E(8.23,8.3s)}R{9 8.3s(G,8.23)}};B.H.7F=o(3X,1i){I 66;1n.1D("9A S 2H "+3X);66=3Y.2D(3X,o(2u){I 4N;4N=\'\';2u.9s(\'8d\');2u.6m(\'1A\',o(8f){9 4N+=8f});9 2u.6m(\'1p\',o(){9 1i(G,1k 91(4N,\'8d\'))})});9 66.6m(\'6t\',1i)};B.H.3s=o(3T,1A){u(3T){1O 3T;}8.S=1k 2V();8.S.1b=1A;1n.1D("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));8.F=1k 2L(8.2g(),8.2f());8.1J=1k 2L(8.2g(),8.2f());9 8.3x()};B.H.7A=o(){8.S=8.23;8.F=1L.2O(\'F\');8.1e=8.F.2b(\'2d\');8.1J=1L.2O(\'F\');8.3c=8.1J.2b(\'2d\');1a.3L(8.S,8.F,{5c:[\'1b\']});1a.3L(8.S,8.1J,{5c:[\'1b\']});u(8.S.6g!=G){8.S.6g.7z(8.1J,8.S)}8.5Z();9 8.5Y()};B.H.7B=o(){8.F=1L.2O(\'F\');8.1e=8.F.2b(\'2d\');8.1J=8.23;8.3c=8.1J.2b(\'2d\');8.F.L=8.1J.L;8.F.P=8.1J.P;u(8.4n!=G){8.S=1L.2O(\'1g\');8.S.1b=8.4n;8.5Z();9 8.5Y()}R{9 8.3x()}};B.H.5Z=o(){u(8.5V()){1n.1D(8.S.1b,"->",8.4M());8.7k=2n;8.S.1b=8.4M()}u(1U.7j(8.S)){8.S.1b=1U.3f(8.S.1b);9 1n.1D("a5 S aa, ad 78 = "+8.S.1b)}};B.H.5Y=o(){u(8.73()){9 8.4k()}R{9 8.S.72=8.4k}};B.H.73=o(){u(!8.S.4D){9 1C}u((8.S.5O!=G)&&8.S.5O===0){9 1C}9 2n};B.H.2g=o(){9 8.S.L||8.S.5O};B.H.2f=o(){9 8.S.P||8.S.an};B.H.4k=o(){1n.1D("2V 8D. 8E = "+(8.2g())+", 8p = "+(8.2f()));u(8.7k){8.F.L=8.2g()/8.3K();8.F.P=8.2f()/8.3K();8.1J.L=8.2g()/8.3K();8.1J.P=8.2f()/8.3K()}R{8.F.L=8.2g();8.F.P=8.2f();8.1J.L=8.2g();8.1J.P=8.2f()}9 8.3x()};B.H.3x=o(){I i,15,C,13,E;u(8.1e==G){8.1e=8.F.2b(\'2d\')}u(8.3c==G){8.3c=8.1J.2b(\'2d\')}8.5N=8.3M=8.L=8.F.L;8.5M=8.3O=8.P=8.F.P;8.6S();u(!8.6Q()){8.6N()}u(8.S!=G){8.1e.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O);8.3c.46(8.S,0,0,8.2g(),8.2f(),0,0,8.3M,8.3O)}8.1W=8.1e.3u(0,0,8.F.L,8.F.P);8.M=8.1W.1A;u(B.3C){8.59=1a.3v(8.M.K);8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.59[i]=15;8.2J[i]=15}}8.1F={L:8.F.L,P:8.F.P};u(!B.21){1X.6K(8.1T,8)}8.1i.19(8,8);9 8.1i=o(){}};B.H.6z=o(){8.1W=8.1e.3u(0,0,8.F.L,8.F.P);9 8.M=8.1W.1A};B.H.aG=o(){I i,15,C,13,E,X;u(!B.3C){1O"5E 4y";}8.2J=1a.3v(8.M.K);E=8.M;X=[];U(i=C=0,13=E.K;C<13;i=++C){15=E[i];X.1y(8.2J[i]=15)}9 X};B.H.6Q=o(){9 B.63(8.F)!=G};B.H.6N=o(){u(B.21||8.F.3w(\'1A-2l-1T\')){9}9 8.F.7n(\'1A-2l-1T\',8.1T)};B.H.6w=o(){9 8.F.3w(\'1A-2l-6v-4y\')!==G};B.H.6S=o(){I 2E;u(B.21||!8.5V()){9}2E=8.3K();u(2E!==1){1n.1D("aH 2E = "+2E);8.6R=2n;8.3M=8.F.L;8.3O=8.F.P;8.F.L=8.3M*2E;8.F.P=8.3O*2E;8.F.8w.L=""+8.3M+"8u";8.F.8w.P=""+8.3O+"8u";8.1e.aK(2E,2E);8.L=8.5N=8.F.L;9 8.P=8.5M=8.F.P}};B.H.3K=o(){I 5B,2C;2C=2Y.2C||1;5B=8.1e.aU||8.1e.aV||8.1e.b6||8.1e.b7||8.1e.b8||1;9 2C/5B};B.H.7p=o(){9(2Y.2C!=G)&&2Y.2C!==1};B.H.5V=o(){u(8.6w()||!8.7p()){9 1C}9 8.4M()!==G};B.H.4M=o(){u(8.S==G){9 G}9 8.S.3w(\'1A-2l-6v\')};B.H.4O=o(7e){I i,15,C,13,E;8.F=7e;8.1e=8.F.2b(\'2d\');8.1W=8.1e.3u(0,0,8.F.L,8.F.P);8.M=8.1W.1A;u(B.3C){8.2J=1a.3v(8.M.K);E=8.M;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.2J[i]=15}}8.L=8.F.L;8.P=8.F.P;8.6z();9 8.1F={L:8.F.L,P:8.F.P}};B.H.75=o(1i){u(1i==G){1i=o(){}}1N.3a(8,"6Y");9 8.2P.2t((o(Z){9 o(){Z.1J.L=Z.F.L;Z.1J.P=Z.F.P;Z.3c.5v(Z.1W,0,0);9 1i.19(Z)}})(8))};B.H.bf=o(4V){I i,15,C,13,E;u(4V==G){4V=2n}u(!B.3C){1O"5E 4y";}E=8.7r();U(i=C=0,13=E.K;C<13;i=++C){15=E[i];8.M[i]=15}u(4V){9 8.3c.5v(8.1W,0,0)}};B.H.bh=o(){I F,2p,i,1W,15,M,C,13,E;F=1L.2O(\'F\');1a.3L(8.F,F);F.L=8.5N;F.P=8.5M;2p=F.2b(\'2d\');1W=2p.3u(0,0,F.L,F.P);M=1W.1A;E=8.59;U(i=C=0,13=E.K;C<13;i=++C){15=E[i];M[i]=15}2p.5v(1W,0,0);8.5m={x:0,y:0};8.5s=1C;9 8.4O(F)};B.H.7r=o(){I 4Z,1q,5n,i,M,52,53,54,L,C,E,2q,2y;u(!B.3C){1O"5E 4y";}52=[];53=0;1q=53+8.L;54=0;5n=54+8.P;M=8.2J;L=8.F.L;U(i=C=0,E=M.K;CE;i=0<=E?++C:--C){1S+=J[i]}}8.2P.2F({14:V.25.5h,11:11,J:J,1S:1S,26:26});9 8};B.H.5i=o(2w,W){8.2P.2F({14:V.25.1R,2w:2w,W:W});9 8};B.H.5j=o(1i){I 1t;1t=1k 24(8);8.5u.1y(1t);8.2P.2F({14:V.25.5k});1i.19(1t);8.2P.2F({14:V.25.5l});9 8};B.H.8h=o(1t){9 8.8i(1t)};B.H.8i=o(1t){8.5t.1y(8.49);8.4a.1y(8.M);8.49=1t;9 8.M=1t.M};B.H.6x=o(){8.M=8.4a.3U();9 8.49=8.5t.3U()};B.H.6D=o(){9 8.49.6J()};9 B})(2i);4I.B=B;B.2N=(o(){o 2N(c){8.c=c}2N.H.bi=o(){I i,29,4e,C,17,1M,E;29={r:{},g:{},b:{}};U(i=C=0;C<=D;i=++C){29.r[i]=0;29.g[i]=0;29.b[i]=0}U(i=17=0,E=8.c.M.K;170)){9}X=[];U(C=0,13=4b.K;C<13;C++){1g=4b[C];X.1y(6C=1k 3e(1g,o(){8.6H();9 8.2t()}))}9 X};u(B.8m){(o(){u(1L.5D==="4D"){9 B.5r()}R{9 1L.6L("bb",B.5r,1C)}})()}3e=(o(){I 4T;4T="(\\\\w+)\\\\((.*?)\\\\)";o 3e(2z,6T){8.6U=2z.3w(\'1A-2l\');8.2l=B(2z,6T.5p(8))}3e.H.6H=o(){I W,e,48,39,5w,5x,m,r,47,C,13,E,X;8.2z=8.2l.F;r=1k 7h(4T,\'g\');47=8.6U.4C(r);u(!(47.K>0)){9}r=1k 7h(4T);X=[];U(C=0,13=47.K;C<13;C++){5w=47[C];E=5w.4C(r),m=E[0],48=E[1],W=E[2];5x=1k b9("9 o() { 8."+48+"("+W+"); };");5y{39=5x();X.1y(39.19(8.2l))}5z(3E){e=3E;X.1y(1n.1D(e))}}9 X};3e.H.2t=o(){I 2z;2z=8.2z;9 8.2l.75(o(){9 2z.6g.7z(8.7q(),2z)})};9 3e})();B.1z=(o(){o 1z(){}1z.5A={};1z.18=o(11,39){9 8.5A[11]=39};1z.2t=o(11,O,N){9 8.5A[11](O,N)};9 1z})();1z=B.1z;B.1H=(o(){o 1H(){}1H.b5=o(7H,7I,7J,7K){9 Q.7N(Q.1Z(7J-7H,2)+Q.1Z(7K-7I,2))};1H.7P=o(1j,T,42){I 2A;u(42==G){42=1C}2A=1j+(Q.aQ()*(T-1j));u(42){9 2A.aP(42)}R{9 Q.41(2A)}};1H.83=o(A){9(0.aN*A.r)+(0.aM*A.g)+(0.aL*A.b)};1H.1K=o(1l,2X,2W,1p,34,35){I 1K,3o,1E,1q,i,j,3r,4v,2m,t,C,17,E;u(34==G){34=0}u(35==G){35=D}u(1l[0]6A 44){1E=1l;34=2X;35=2W}R{1E=[1l,2X,2W,1p]}u(1E.K<2){1O"3m 5F 5G Y 2o 1K";}1K={};3r=o(a,b,t){9 a*(1-t)+b*t};3o=o(a,1j,T){9 Q.1j(Q.T(a,1j),T)};U(i=C=0;C<6F;i=++C){t=i/6F;2m=1E;as(2m.K>1){4v=[];U(j=17=0,E=2m.K-2;0<=E?17<=E:17>=E;j=0<=E?++17:--17){4v.1y([3r(2m[j][0],2m[j+1][0],t),3r(2m[j][1],2m[j+1][1],t)])}2m=4v}1K[Q.41(2m[0][0])]=Q.41(3o(2m[0][1],34,35))}1q=1E[1E.K-1][0];1K=B.1H.5H(1K,1q);u(1K[1q]==G){1K[1q]=1K[1q-1]}9 1K};1H.6I=o(1E,34,35){I 2F,3o,5I,1q,4u,4t,4r,4p,i,j,3r,5J,5K,2M,p,3P,3N,2I,58,56,2a,51,t,C,17,E;u(1E.K<2){1O"3m 5F 5G Y 2o 6I";}2a={};3r=o(a,b,t){9 a*(1-t)+b*t};2F=(o(Z){9 o(a,b,c,d){9[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(8);2M=(o(Z){9 o(a,b){9[a[0]*b[0],a[1]*b[1]]}})(8);51=(o(Z){9 o(a,b){9[a[0]-b[0],a[1]-b[1]]}})(8);3o=o(a,1j,T){9 Q.1j(Q.T(a,1j),T)};5I=0;U(i=C=0,E=1E.K-2;0<=E?C<=E:C>=E;i=0<=E?++C:--C){3P=1E[i];3N=1E[i+1];2I=3N[0]-3P[0];58=1/2I;u(i===1E.K-2){58=1/(2I-1)}p=i>0?1E[i-1]:3P;5J=2M(51(3N,p),[0.5,0.5]);p=i<1E.K-2?1E[i+2]:3N;5K=2M(51(p,3P),[0.5,0.5]);U(j=17=0;0<=2I?17<=2I:17>=2I;j=0<=2I?++17:--17){t=j*58;4u=2.0*t*t*t-3.0*t*t+1.0;4t=t*t*t-2.0*t*t+t;4r=-2.0*t*t*t+3.0*t*t;4p=t*t*t-t*t;56=2F(2M(3P,[4u,4u]),2M(5J,[4t,4t]),2M(3N,[4r,4r]),2M(5K,[4p,4p]));2a[Q.41(56[0])]=Q.41(3o(56[1],34,35));5I+=1}}1q=1E[1E.K-1][0];2a=B.1H.5H(2a,1q);9 2a};1H.5H=o(3g,1q){I i,j,3J,2a,4Y,C,17;u(7W.ah(3g).K<1q+1){2a={};U(i=C=0;0<=1q?C<=1q:C>=1q;i=0<=1q?++C:--C){u(3g[i]!=G){2a[i]=3g[i]}R{3J=[i-1,2a[i-1]];U(j=17=i;i<=1q?17<=1q:17>=1q;j=i<=1q?++17:--17){u(3g[j]!=G){4Y=[j,3g[j]];31}}2a[i]=3J[1]+((4Y[1]-3J[1])/(4Y[0]-3J[0]))*(i-3J[0])}}9 2a}9 3g};9 1H})();1H=B.1H;B.1s=(o(){o 1s(){}1s.5P=o(2h){I b,g,r;u(2h.ae(0)==="#"){2h=2h.4W(1)}r=50(2h.4W(0,2),16);g=50(2h.4W(2,2),16);b=50(2h.4W(4,2),16);9{r:r,g:g,b:b}};1s.ab=o(r,g,b){I d,h,l,T,1j,s;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}r/=D;g/=D;b/=D;T=Q.T(r,g,b);1j=Q.1j(r,g,b);l=(T+1j)/2;u(T===1j){h=s=0}R{d=T-1j;s=l>0.5?d/(2-T-1j):d/(T+1j);h=(o(){3p(T){1v r:9(g-b)/d+(g1){t-=1}u(t<1/6){9 p+(q-p)*6*t}u(t<1/2){9 q}u(t<2/3){9 p+(q-p)*(2/3-t)*6}9 p};1s.7g=o(r,g,b){I d,h,T,1j,s,v;r/=D;g/=D;b/=D;T=Q.T(r,g,b);1j=Q.1j(r,g,b);v=T;d=T-1j;s=T===0?0:d/T;u(T===1j){h=0}R{h=(o(){3p(T){1v r:9(g-b)/d+(g0.5W){r=Q.1Z((r+0.28)/1.28,2.4)}R{r/=12.92}u(g>0.5W){g=Q.1Z((g+0.28)/1.28,2.4)}R{g/=12.92}u(b>0.5W){b=Q.1Z((b+0.28)/1.28,2.4)}R{b/=12.92}x=r*0.a2+g*0.a1+b*0.9Z;y=r*0.9Y+g*0.9X+b*0.9W;z=r*0.9V+g*0.9U+b*0.9T;9{x:x*1o,y:y*1o,z:z*1o}};1s.9S=o(x,y,z){I b,g,r;x/=1o;y/=1o;z/=1o;r=(3.9P*x)+(-1.9O*y)+(-0.9I*z);g=(-0.9G*x)+(1.9F*y)+(0.9D*z);b=(0.9C*x)+(-0.9B*y)+(1.9y*z);u(r>0.68){r=(1.28*Q.1Z(r,0.69))-0.28}R{r*=12.92}u(g>0.68){g=(1.28*Q.1Z(g,0.69))-0.28}R{g*=12.92}u(b>0.68){b=(1.28*Q.1Z(b,0.69))-0.28}R{b*=12.92}9{r:r*D,g:g*D,b:b*D}};1s.7M=o(x,y,z){I a,b,l,6a,6b,6c;u(1f x==="2v"){y=x.y;z=x.z;x=x.x}6a=95.7Q;6b=1o.0;6c=7R.7S;x/=6a;y/=6b;z/=6c;u(x>0.6d){x=Q.1Z(x,0.6e)}R{x=(7.6f*x)+0.3z}u(y>0.6d){y=Q.1Z(y,0.6e)}R{y=(7.6f*y)+0.3z}u(z>0.6d){z=Q.1Z(z,0.6e)}R{z=(7.6f*z)+0.3z}l=7X*y-16;a=7Y*(x-y);b=7Z*(y-z);9{l:l,a:a,b:b}};1s.9w=o(l,a,b){I x,y,z;u(1f l==="2v"){a=l.a;b=l.b;l=l.l}y=(l+16)/7X;x=y+(a/7Y);z=y-(b/7Z);u(x>0.6i){x=x*x*x}R{x=0.6j*(x-0.3z)}u(y>0.6i){y=y*y*y}R{y=0.6j*(y-0.3z)}u(z>0.6i){z=z*z*z}R{z=0.6j*(z-0.3z)}9{x:x*95.7Q,y:y*1o.0,z:z*7R.7S}};1s.9v=o(r,g,b){I 6l;u(1f r==="2v"){g=r.g;b=r.b;r=r.r}6l=8.7l(r,g,b);9 8.7M(6l)};1s.9t=o(l,a,b){};9 1s})();1s=B.1s;B.1N=(o(){o 1N(){}1N.3b={};1N.87=["88","89","6Y","8a","8b","3Q"];1N.3a=o(22,14,1A){I 3S,C,13,E,X;u(1A==G){1A=G}u(8.3b[14]&&8.3b[14].K){E=8.3b[14];X=[];U(C=0,13=E.K;C<13;C++){3S=E[C];u(3S.22===G||22.1T===3S.22.1T){X.1y(3S.2r.19(22,1A))}R{X.1y(9p 0)}}9 X}};1N.9n=o(22,14,2r){I 6n,5e;u(1f 22==="2Z"){5e=22;6n=14;22=G;14=5e;2r=6n}u(3W.19(8.87,14)<0){9 1C}u(!8.3b[14]){8.3b[14]=[]}8.3b[14].1y({22:22,2r:2r});9 2n};9 1N})();1N=B.1N;B.V=(o(){o V(){}V.25={6o:1,5h:2,5k:3,5l:4,6p:5,1R:6};V.18=o(11,8j){9 B.H[11]=8j};9 V})();V=B.V;B.1U=(o(){o 1U(){}1U.8k=/(?:(?:3Y|7E):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;1U.7j=o(1g){u(1g==G){9 1C}u(8.8l(1g)){9 1C}9 8.4q(1g.1b)};1U.8l=o(1g){I E;9(1g.5X!=G)&&((E=1g.5X.3Z())===\'86\'||E===\'8n-9m\')};1U.4q=o(3X){I 4o;4o=3X.4C(8.8k);u(4o){9 4o[1]!==1L.9k}R{9 1C}};1U.8r=o(1b){u(8.4q(1b)){u(!B.4A.K){1n.6q("9f 2o 9e a 8v S 93 a 90 8y. 78: "+1b)}R{u(B.4q(B.4A)){1n.6q("8U 8n a 8v 8y U 8T 8S.");9}9 8.3f(1b)}}};1U.3f=o(1b){9""+B.4A+"?"+B.8c+"="+(8R(1b))};1U.8G=o(38){I 5b;5b={a4:\'8H\',8I:\'8J\',8K:\'8L\',8M:\'8N\'};38=38.3Z();u(5b[38]!=G){38=5b[38]}9"8O/8P."+38};9 1U})();B.H.8Q=o(){u(1f 1Y!=="33"&&1Y!==G){9 8.8C.2G(8,Y)}R{9 8.8B.2G(8,Y)}};B.H.8B=o(14){I S;u(14==G){14="8A"}14=14.3Z();S=8.6u(14).8V("S/"+14,"S/8W-8X");9 1L.8Y.8Z=S};B.H.8C=o(3q,57,1i){I e,6s;u(57==G){57=2n}u(1i==G){1i=G}5y{6s=3D.94(3q);u(6s.96()&&!57){9 1C}}5z(3E){e=3E;1n.1D("97 98 3q "+3q)}9 3D.99(3q,8.F.9a(),o(3T){1n.1D("9b 9c 2o "+3q);u(1i){9 1i.19(8,3T)}})};B.H.7q=o(14){I 1g;1g=1k 2V();1g.1b=8.6u(14);1g.L=8.1F.L;1g.P=8.1F.P;u(2Y.2C){1g.L/=2Y.2C;1g.P/=2Y.2C}9 1g};B.H.6u=o(14){u(14==G){14="8A"}14=14.3Z();9 8.1J.9d("S/"+14)};1U=B.1U;B.24=(o(){o 24(c){8.c=c;8.48=8.c;8.1c={6r:\'8t\',2Q:1.0};8.9h=1a.5q.2D();8.F=1f 1Y!=="33"&&1Y!==G?1k 2L():1L.2O(\'F\');8.F.L=8.c.1F.L;8.F.P=8.c.1F.P;8.1e=8.F.2b(\'2d\');8.1e.9i(8.F.L,8.F.P);8.1W=8.1e.3u(0,0,8.F.L,8.F.P);8.M=8.1W.1A}24.H.5j=o(3y){9 8.c.5j.19(8.c,3y)};24.H.9j=o(8q){8.1c.6r=8q;9 8};24.H.2Q=o(2Q){8.1c.2Q=2Q/1o;9 8};24.H.9l=o(){I i,20,C,E;20=8.c.M;U(i=C=0,E=8.c.M.K;C8.c.M.K||2j<0){9 1k 1r(0,0,0,D,8.c)}9 8.65(2j)};1r.H.9H=o(4F,4E,A){I 7D;u(8.c==G){1O"3l a 3k 1e";}7D=8.1m+(8.c.1F.L*4*(4E*-1))+(4*4F);u(2j>8.c.M.K||2j<0){9}8.c.M[2j]=A.r;8.c.M[2j+1]=A.g;8.c.M[2j+2]=A.b;8.c.M[2j+3]=A.a;9 2n};1r.H.9J=o(x,y){I 1m;u(8.c==G){1O"3l a 3k 1e";}1m=8.6h(x,y,8.L);9 8.65(1m)};1r.H.9K=o(x,y,A){I 1m;u(8.c==G){1O"3l a 3k 1e";}1m=8.6h(x,y,8.L);8.c.M[1m]=A.r;8.c.M[1m+1]=A.g;8.c.M[1m+2]=A.b;9 8.c.M[1m+3]=A.a};1r.H.3t=o(){9 8.9L()};1r.H.9M=o(4B){I 2h;u(4B==G){4B=1C}2h=\'#\'+8.r.3t(16)+8.g.3t(16)+8.b.3t(16);u(4B){9 2h+8.a.3t(16)}R{9 2h}};9 1r})();1r=B.1r;B.1R=(o(){o 1R(){}1R.64={};1R.18=o(11,2w){9 8.64[11]=2w};1R.2t=o(1e,11,W){9 8.64[11].2G(1e,W)};9 1R})();1R=B.1R;B.1h=(o(){1h.2T=B.21?4i(\'9Q\').9R().K:4;o 1h(c){8.c=c;8.2B=5T(8.2B,8);8.3V=[];8.32=G}1h.H.2F=o(62){u(62==G){9}9 8.3V.1y(62)};1h.H.2B=o(){I 1t;u(8.3V.K===0){1N.3a(8,"8a");u(8.61!=G){8.61.19(8.c)}9 8}8.1x=8.3V.7v();3p(8.1x.14){1v V.25.5k:1t=8.c.5u.7v();8.c.8h(1t);9 8.2B();1v V.25.5l:8.c.6D();8.c.6x();9 8.2B();1v V.25.6p:9 8.7u(8.1x.1t,8.1x.1b);1v V.25.1R:9 8.7t();a0:9 8.7s()}};1h.H.2t=o(1i){8.61=1i;8.32=1a.3v(8.c.M.K);9 8.2B()};1h.H.60=o(2r){I 40,5U,1P,1p,f,i,5S,n,1l,C,E,X;8.4Q=0;n=8.c.M.K;5U=Q.2K((n/4)/1h.2T);40=5U*4;5S=40+((n/4)%1h.2T)*4;X=[];U(i=C=0,E=1h.2T;0<=E?CE;i=0<=E?++C:--C){1l=i*40;1p=1l+(i===1h.2T-1?5S:40);u(B.21){f=45((o(Z){9 o(){9 2r.19(Z,i,1l,1p)}})(8));1P=f.a9();X.1y(8.3Q(1P))}R{X.1y(4s((o(Z){9 o(i,1l,1p){9 o(){9 2r.19(Z,i,1l,1p)}}})(8)(i,1l,1p),0))}}9 X};1h.H.7s=o(){1N.3a(8.c,"88",8.1x);u(8.1x.14===V.25.6o){9 8.60(8.7b)}R{9 8.60(8.7a)}};1h.H.7t=o(){1n.1D("ac 2w "+8.1x.2w);1R.2t(8.c,8.1x.2w,8.1x.W);1n.1D("1R "+8.1x.2w+" 5R!");9 8.2B()};1h.H.7b=o(1P,1l,1p){I i,15,C;1n.1D("77 #"+1P+" - V: "+8.1x.11+", af: "+1l+", ag: "+1p);1N.3a(8.c,"8b",{74:1P,71:1h.2T,ai:1l,aj:1p});15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;15.r=8.c.M[i];15.g=8.c.M[i+1];15.b=8.c.M[i+2];15.a=8.c.M[i+3];8.1x.5a(15);8.c.M[i]=1a.2e(15.r);8.c.M[i+1]=1a.2e(15.g);8.c.M[i+2]=1a.2e(15.b);8.c.M[i+3]=1a.2e(15.a)}u(B.21){9 45["70"](1P)}R{9 8.3Q(1P)}};1h.H.7a=o(1P,1l,1p){I J,43,26,1V,3n,1S,i,j,k,2k,n,11,p,15,2u,C,17,1M;11=8.1x.11;26=8.1x.26;1S=8.1x.1S;n=8.c.M.K;J=8.1x.J;43=Q.7N(J.K);2k=[];1n.1D("aq 2k - V: "+8.1x.11);1l=Q.T(1l,8.c.1F.L*4*((43-1)/2));1p=Q.1j(1p,n-(8.c.1F.L*4*((43-1)/2)));1V=(43-1)/2;15=1k 1r();15.67(8.c);U(i=C=1l;C<1p;i=C+=4){15.1m=i;3n=0;U(j=17=-1V;-1V<=1V?17<=1V:17>=1V;j=-1V<=1V?++17:--17){U(k=1M=1V;1V<=-1V?1M<=-1V:1M>=-1V;k=1V<=-1V?++1M:--1M){p=15.7G(j,k);2k[3n*3]=p.r;2k[3n*3+1]=p.g;2k[3n*3+2]=p.b;3n++}}2u=8.5Q(J,2k,1S,26);8.32[i]=1a.2e(2u.r);8.32[i+1]=1a.2e(2u.g);8.32[i+2]=1a.2e(2u.b);8.32[i+3]=8.c.M[i+3]}u(B.21){9 45["70"](1P)}R{9 8.3Q(1P)}};1h.H.3Q=o(1P){I i,C,E;u(1P>=0){1n.1D("77 #"+1P+" 5R! V: "+8.1x.11)}8.4Q++;1N.3a(8.c,"3Q",{74:1P,ar:8.4Q,71:1h.2T});u(8.4Q===1h.2T){u(8.1x.14===V.25.5h){U(i=C=0,E=8.c.M.K;0<=E?CE;i=0<=E?++C:--C){8.c.M[i]=8.32[i]}}u(1P>=0){1n.1D("V "+8.1x.11+" 5R!")}1N.3a(8.c,"89",8.1x);9 8.2B()}};1h.H.5Q=o(J,2k,1S,26){I i,1w,C,E;1w={r:0,g:0,b:0};U(i=C=0,E=J.K;0<=E?CE;i=0<=E?++C:--C){1w.r+=J[i]*2k[i*3];1w.g+=J[i]*2k[i*3+1];1w.b+=J[i]*2k[i*3+2]}1w.r=(1w.r/1S)+26;1w.g=(1w.g/1S)+26;1w.b=(1w.b/1S)+26;9 1w};1h.H.7u=o(1t,1b){I 1g,3f;1g=1k 2V();1g.72=(o(Z){9 o(){1t.1e.46(1g,0,0,Z.c.1F.L,Z.c.1F.P);1t.1W=1t.1e.3u(0,0,Z.c.1F.L,Z.c.1F.P);1t.M=1t.1W.1A;Z.c.M=1t.M;9 Z.2B()}})(8);3f=1U.8r(1b);9 1g.1b=3f!=G?3f:1b};9 1h})();1h=B.1h;B.1X=(o(){o 1X(){}1X.3h={};1X.6P=o(2U){9 8.3h[2U]!=G};1X.2D=o(2U){9 8.3h[2U]};1X.6K=o(11,1I){9 8.3h[11]=1I};1X.2t=o(2U,1i){4s((o(Z){9 o(){9 1i.19(Z.2D(2U),Z.2D(2U))}})(8),0);9 8.2D(2U)};1X.at=o(11){u(11==G){11=1C}u(11){9 6E 8.3h[11]}R{9 8.3h={}}};9 1X})();1X=B.1X;1z.18("8t",o(O,N){9{r:O.r,g:O.g,b:O.b}});1z.18("av",o(O,N){9{r:(O.r*N.r)/D,g:(O.g*N.g)/D,b:(O.b*N.b)/D}});1z.18("aw",o(O,N){9{r:D-(((D-O.r)*(D-N.r))/D),g:D-(((D-O.g)*(D-N.g))/D),b:D-(((D-O.b)*(D-N.b))/D)}});1z.18("ax",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-2*(D-O.r)*(D-N.r)/D:(N.r*O.r*2)/D;1d.g=N.g>1u?D-2*(D-O.g)*(D-N.g)/D:(N.g*O.g*2)/D;1d.b=N.b>1u?D-2*(D-O.b)*(D-N.b)/D:(N.b*O.b*2)/D;9 1d});1z.18("az",o(O,N){9{r:O.r-N.r,g:O.g-N.g,b:O.b-N.b}});1z.18("aA",o(O,N){9{r:N.r+O.r,g:N.g+O.g,b:N.b+O.b}});1z.18("aB",o(O,N){9{r:1u-2*(N.r-1u)*(O.r-1u)/D,g:1u-2*(N.g-1u)*(O.g-1u)/D,b:1u-2*(N.b-1u)*(O.b-1u)/D}});1z.18("aC",o(O,N){I 1d;1d={};1d.r=N.r>1u?D-((D-N.r)*(D-(O.r-1u)))/D:(N.r*(O.r+1u))/D;1d.g=N.g>1u?D-((D-N.g)*(D-(O.g-1u)))/D:(N.g*(O.g+1u))/D;1d.b=N.b>1u?D-((D-N.b)*(D-(O.b-1u)))/D:(N.b*(O.b+1u))/D;9 1d});1z.18("aD",o(O,N){9{r:N.r>O.r?N.r:O.r,g:N.g>O.g?N.g:O.g,b:N.b>O.b?N.b:O.b}});1z.18("aE",o(O,N){9{r:N.r>O.r?O.r:N.r,g:N.g>O.g?O.g:N.g,b:N.b>O.b?O.b:N.b}});V.18("4U",o(){I 3F;u(Y.K===1){3F=1s.5P(Y[0])}R{3F={r:Y[0],g:Y[1],b:Y[2]}}9 8.1Q("4U",o(A){A.r=3F.r;A.g=3F.g;A.b=3F.b;A.a=D;9 A})});V.18("6y",o(J){J=Q.2K(D*(J/1o));9 8.1Q("6y",o(A){A.r+=J;A.g+=J;A.b+=J;9 A})});V.18("8x",o(J){J*=-0.aI;9 8.1Q("8x",o(A){I T;T=Q.T(A.r,A.g,A.b);u(A.r!==T){A.r+=(T-A.r)*J}u(A.g!==T){A.g+=(T-A.g)*J}u(A.b!==T){A.b+=(T-A.b)*J}9 A})});V.18("8s",o(J){J*=-1;9 8.1Q("8s",o(A){I 4l,2S,T;T=Q.T(A.r,A.g,A.b);2S=(A.r+A.g+A.b)/3;4l=((Q.2R(T-2S)*2/D)*J)/1o;u(A.r!==T){A.r+=(T-A.r)*4l}u(A.g!==T){A.g+=(T-A.g)*4l}u(A.b!==T){A.b+=(T-A.b)*4l}9 A})});V.18("8e",o(J){9 8.1Q("8e",o(A){I 2S;2S=1H.83(A);A.r=2S;A.g=2S;A.b=2S;9 A})});V.18("84",o(J){J=Q.1Z((J+1o)/1o,2);9 8.1Q("84",o(A){A.r/=D;A.r-=0.5;A.r*=J;A.r+=0.5;A.r*=D;A.g/=D;A.g-=0.5;A.g*=J;A.g+=0.5;A.g*=D;A.b/=D;A.b-=0.5;A.b*=J;A.b+=0.5;A.b*=D;9 A})});V.18("81",o(J){9 8.1Q("81",o(A){I b,g,h,37,r,E;37=1s.7g(A.r,A.g,A.b);h=37.h*1o;h+=Q.2R(J);h=h%1o;h/=1o;37.h=h;E=1s.7i(37.h,37.s,37.v),r=E.r,g=E.g,b=E.b;A.r=r;A.g=g;A.b=b;9 A})});V.18("7U",o(){I 3j,30;u(Y.K===2){30=1s.5P(Y[0]);3j=Y[1]}R u(Y.K===4){30={r:Y[0],g:Y[1],b:Y[2]};3j=Y[3]}9 8.1Q("7U",o(A){A.r-=(A.r-30.r)*(3j/1o);A.g-=(A.g-30.g)*(3j/1o);A.b-=(A.b-30.b)*(3j/1o);9 A})});V.18("7O",o(){9 8.1Q("7O",o(A){A.r=D-A.r;A.g=D-A.g;A.b=D-A.b;9 A})});V.18("7L",o(J){u(J==G){J=1o}J/=1o;9 8.1Q("7L",o(A){A.r=Q.1j(D,(A.r*(1-(0.aW*J)))+(A.g*(0.aX*J))+(A.b*(0.aY*J)));A.g=Q.1j(D,(A.r*(0.aZ*J))+(A.g*(1-(0.b0*J)))+(A.b*(0.b1*J)));A.b=Q.1j(D,(A.r*(0.b2*J))+(A.g*(0.b3*J))+(A.b*(1-(0.b4*J))));9 A})});V.18("7C",o(J){9 8.1Q("7C",o(A){A.r=Q.1Z(A.r/D,J)*D;A.g=Q.1Z(A.g/D,J)*D;A.b=Q.1Z(A.b/D,J)*D;9 A})});V.18("7y",o(J){J=Q.2R(J)*2.55;9 8.1Q("7y",o(A){I 2A;2A=1H.7P(J*-1,J);A.r+=2A;A.g+=2A;A.b+=2A;9 A})});V.18("7x",o(J){J=Q.2R(J)*2.55;9 8.1Q("7x",o(A){u(A.r>D-J){A.r=D}R u(A.rD-J){A.g=D}R u(A.gD-J){A.b=D}R u(A.b0){A.r+=(D-A.r)*1c.4S}R{A.r-=A.r*Q.2R(1c.4S)}}u(1c.4J!=G){u(1c.4J>0){A.g+=(D-A.g)*1c.4J}R{A.g-=A.g*Q.2R(1c.4J)}}u(1c.4G!=G){u(1c.4G>0){A.b+=(D-A.b)*1c.4G}R{A.b-=A.b*Q.2R(1c.4G)}}9 A})});V.18("4z",o(){I 4g,1K,2s,2c,1p,i,3G,1l,C,17,E,2q;2s=Y[0],2c=2<=Y.K?3B.19(Y,1):[];3G=2c[2c.K-1];u(1f 3G==="o"){4g=3G;2c.3U()}R u(1f 3G==="2Z"){4g=1H[3G];2c.3U()}R{4g=1H.1K}u(1f 2s==="2Z"){2s=2s.bj("")}u(2s[0]==="v"){2s=[\'r\',\'g\',\'b\']}u(2c.K<2){1O"3m 5F 5G Y 2o 4z 48";}1K=4g(2c,0,D);1l=2c[0];u(1l[0]>0){U(i=C=0,E=1l[0];0<=E?CE;i=0<=E?++C:--C){1K[i]=1l[1]}}1p=2c[2c.K-1];u(1p[0]=D;i=2q<=D?++17:--17){1K[i]=1p[1]}}9 8.1Q("4z",o(A){I 1M,2y;U(i=1M=0,2y=2s.K;0<=2y?1M<2y:1M>2y;i=0<=2y?++1M:--1M){A[2s[i]]=1K[A[2s[i]]]}9 A})});V.18("bk",o(J){I 2X,2W,p;p=Q.2R(J)/1o;2X=[0,D*p];2W=[D-(D*p),D];u(J<0){2X=2X.6O();2W=2W.6O()}9 8.4z(\'30\',[0,0],2X,2W,[D,D])});B.1R.18("5g",o(L,P,x,y){I F,2p;u(x==G){x=0}u(y==G){y=0}u(1f 1Y!=="33"&&1Y!==G){F=1k 2L(L,P)}R{F=1L.2O(\'F\');1a.3L(8.F,F);F.L=L;F.P=P}2p=F.2b(\'2d\');2p.46(8.F,x,y,L,P,0,0,L,P);8.5m={x:x,y:y};8.82=2n;9 8.4O(F)});B.1R.18("4H",o(1G){I F,2p;u(1G==G){1G=G}u(1G===G||((1G.L==G)&&(1G.P==G))){1n.6t("3m 7f bp 1F 6M U 4H");9}u(1G.L==G){1G.L=8.F.L*1G.P/8.F.P}R u(1G.P==G){1G.P=8.F.P*1G.L/8.F.L}u(1f 1Y!=="33"&&1Y!==G){F=1k 2L(1G.L,1G.P)}R{F=1L.2O(\'F\');1a.3L(8.F,F);F.L=1G.L;F.P=1G.P}2p=F.2b(\'2d\');2p.46(8.F,0,0,8.F.L,8.F.P,0,0,1G.L,1G.P);8.5s=2n;9 8.4O(F)});B.V.18("5g",o(){9 8.5i("5g",44.H.3i.19(Y,0))});B.V.18("4H",o(){9 8.5i("4H",44.H.3i.19(Y,0))})}).19(8);',62,708,'||||||||this|return|||||||||||||||function||||||if||||||rgba|Caman|_i|255|_ref|canvas|null|prototype|var|adjust|length|width|pixelData|rgbaParent|rgbaLayer|height|Math|else|image|max|for|Filter|args|_results|arguments|_this||name||_len|type|pixel||_j|register|call|Util|src|options|result|context|typeof|img|Renderer|callback|min|new|start|loc|Log|100|end|endX|Pixel|Convert|layer|128|case|val|currentJob|push|Blender|data|key|false|debug|controlPoints|dimensions|newDims|Calculate|obj|renderingCanvas|bezier|document|_k|Event|throw|bnum|process|Plugin|divisor|id|IO|builder|imageData|Store|exports|pow|parentData|NodeJS|target|initObj|Layer|Type|bias||055|levels|ret|getContext|cps||clampRGB|imageHeight|imageWidth|hex|Module|newLoc|kernel|caman|prev|true|to|ctx|_ref1|fn|chans|execute|res|object|plugin|value|_ref2|ele|rand|processNext|devicePixelRatio|get|ratio|add|apply|from|pointsPerSegment|originalPixelData|floor|Canvas|mul|Analyze|createElement|renderer|opacity|abs|avg|Blocks|search|Image|ctrl2|ctrl1|window|string|rgb|break|modPixelData|undefined|lowBound|highBound|layerData|hsv|lang|func|trigger|events|renderingContext|in|CamanParser|proxyUrl|values|items|slice|level|CamanJS|Requires|Invalid|builderIndex|clamp|switch|file|lerp|nodeFileReady|toString|getImageData|dataArray|getAttribute|finishInit|cb|1379310345|chan|__slice|allowRevert|fs|_error|color|last|child|parent|leftCoord|hiDPIRatio|copyAttributes|preScaledWidth|p1|preScaledHeight|p0|blockFinished|__hasProp|event|err|pop|renderQueue|__indexOf|url|http|toLowerCase|blockN|round|getFloat|adjustSize|Array|Fiber|drawImage|unparsedInstructions|filter|currentLayer|pixelStack|imgs|copy|prop|numPixels|continue|algo|opts|require|attr|imageLoaded|amt|initType|imageUrl|matches|fac3|isURLRemote|fac2|setTimeout|fac1|fac0|next|moduleKeywords|source|disabled|curves|remoteProxy|includeAlpha|match|complete|vert|horiz|blue|resize|Root|green|sel|root|hiDPIReplacement|buf|replaceCanvas|Logger|blocksDone|hueToRGB|red|INST_REGEX|fillColor|updateContext|substr|dest|rightCoord|coord|parseInt|sub|pixels|startX|startY||pos|overwrite|pointsPerStep|initializedPixelData|processFn|langToExt|except|ctor|_type|nodeName|crop|Kernel|processPlugin|newLayer|LayerDequeue|LayerFinished|cropCoordinates|endY|version|bind|uniqid|DOMUpdated|resized|layerStack|canvasQueue|putImageData|inst|instFunc|try|catch|blenders|backingStoreRatio|listener|readyState|Revert|number|of|missingValues|count|m0|m1|included|originalHeight|originalWidth|naturalWidth|hexToRGB|processKernel|finished|lastBlockN|__bind|blockPixelLength|needsHiDPISwap|04045|crossOrigin|waitForImageLoaded|imageAdjustments|eachBlock|finishedFn|job|getAttrId|plugins|pixelAtLocation|req|setContext|0031308|4166666667|whiteX|whiteY|whiteZ|008856451679|3333333333|787037037|parentNode|coordinatesToLocation|2068965517|1284185493|console|xyz|on|_fn|Single|LoadOverlay|info|blendingMode|stats|error|toBase64|hidpi|hiDPIDisabled|popContext|brightness|reloadCanvasData|instanceof|DOM|parser|applyCurrentLayer|delete|1000|initialized|parse|hermite|applyToParent|put|addEventListener|given|assignId|reverse|has|hasId|scaled|hiDPIAdjustments|ready|dataStr|DEBUG|setInitObject|extended|renderStart|node|yield|totalBlocks|onload|isImageLoaded|blockNum|render|locationToCoordinates|Block|URL|_super|renderKernel|renderBlock|__extends|me|newCanvas|or|rgbToHSV|RegExp|hsvToRGB|isRemote|swapped|rgbToXYZ|channels|setAttribute|Uint8Array|hiDPICapable|toImage|originalVisiblePixels|executeFilter|executePlugin|loadOverlay|shift|initNode|clip|noise|replaceChild|initImage|initCanvas|gamma|nowLoc|https|readFromHttp|getPixelRelative|x1|y1|x2|y2|sepia|xyzToLab|sqrt|invert|randomRange|047|108|883|domIsLoaded|colorize|release|Object|116|500|200|parseArguments|hue|cropped|luminance|contrast|log|anonymous|types|processStart|processComplete|renderFinished|blockStarted|proxyParam|binary|greyscale|chunk|setup|executeLayer|pushContext|filterFunc|domainRegex|corsEnabled|autoload|use|item|Height|mode|remoteCheck|vibrance|normal|px|remote|style|saturation|proxy|date|png|browserSave|nodeSave|loaded|Width|hasOwnProperty|useProxy|rb|python|py|perl|pl|javascript|js|proxies|caman_proxy|save|encodeURIComponent|images|loading|Cannot|replace|octet|stream|location|href|configured|Buffer||without|statSync||isFile|Creating|output|writeFile|toBuffer|Finished|writing|toDataURL|load|Attempting|Version|layerID|createImageData|setBlendingMode|domain|copyParent|credentials|listen|overlayImage|void|camanProxyUrl|indexOf|setEncoding|labToRGB|warn|rgbToLab|labToXYZ|Released|0570|locationXY|Fetching|2040|0557|0415|readFile|8758|9689|putPixelRelative|4986|getPixel|putPixel|toKey|toHex|Initializing|5372|2406|os|cpus|xyzToRGB|9505|1192|0193|0722|7152|2126|1805|default|3576|4124|initialization|ruby|Remote|hslToRGB|find|not|run|detected|rgbToHSL|Executing|using|charAt|Start|End|keys|startPixel|endPixel|constructor|Could|__super__|naturalHeight|2013|readystatechange|Rendering|blocksFinished|while|flush|extends|multiply|screen|overlay|includes|difference|addition|exclusion|softLight|lighten|darken|delegate|resetOriginalPixelData|HiDPI|01|aliasFunction|scale|114|587|299|aliasProperty|toFixed|random|defineProperty|set|analyze|webkitBackingStorePixelRatio|mozBackingStorePixelRatio|607|769|189|349|314|168|272|534|869|distance|msBackingStorePixelRatio|oBackingStorePixelRatio|backingStorePixelRatio|Function|querySelector|DOMContentLoaded|querySelectorAll|rotationAngle|rotated|revert|extend|reset|calculateLevels|split|exposure|fibers|attributes|nodeValue|isNaN|missing'.split('|'),0,{})) \ No newline at end of file diff --git a/src/core/caman.coffee b/src/core/caman.coffee index 3cdc42b7..091f3889 100644 --- a/src/core/caman.coffee +++ b/src/core/caman.coffee @@ -292,6 +292,9 @@ class Caman extends Module @renderingCanvas = @initObj @renderingContext = @renderingCanvas.getContext '2d' + @canvas.width = @renderingCanvas.width + @canvas.height = @renderingCanvas.height + if @imageUrl? @image = document.createElement 'img' @image.src = @imageUrl diff --git a/src/plugins/src/rotate.coffee b/src/plugins/src/rotate.coffee index 96e358b2..e394b8ba 100644 --- a/src/plugins/src/rotate.coffee +++ b/src/plugins/src/rotate.coffee @@ -22,7 +22,7 @@ Caman.Plugin.register "rotate", (degrees) -> height = @canvas.height x = width/2 y = height/2 - else + else width = Math.sqrt(Math.pow(@originalWidth, 2) + Math.pow(@originalHeight, 2)) height = width x = @canvas.height/2 diff --git a/test/unit/initialization.coffee b/test/unit/initialization.coffee index d72b608a..ccc4be45 100644 --- a/test/unit/initialization.coffee +++ b/test/unit/initialization.coffee @@ -51,7 +51,7 @@ describe "Initialization", -> canvas.width = 1 canvas.height = 1 - Caman canvas, -> + Caman canvas, -> assert.equal @width, 1 assert.equal @height, 1 done() From 366cc23e4d611dd9b422ffd04c6291c4cc7124b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Wiaderny?= Date: Mon, 9 Mar 2015 11:47:39 +0100 Subject: [PATCH 09/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 462f0afd..7e0f29c9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # About the Project -[![Build Status](https://secure.travis-ci.org/meltingice/CamanJS.png)](http://travis-ci.org/meltingice/CamanJS) +[![Build Status](https://api.travis-ci.org/ckfinder/CamanJS.png)](https://travis-ci.org/ckfinder/CamanJS) The main focus of CamanJS is manipulating images using the HTML5 canvas and Javascript. It's a combination of a simple-to-use interface with advanced and efficient image/canvas editing techniques. It is also completely library independent and can be safely used next to jQuery, YUI, Scriptaculous, MooTools, etc. From 8445984ba131a63eac012fb031d76ff30e275b39 Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Fri, 27 Mar 2015 16:09:23 +0100 Subject: [PATCH 10/12] Added checks at places where undefined errors were thrown --- Cakefile | 5 +- dist/caman.full.js | 392 +++++++++++++++++++------------------- dist/caman.full.min.js | 182 +++++++++--------- dist/caman.full.pack.js | 1 - dist/caman.js | 342 +++++++++++++++++---------------- dist/caman.min.js | 148 +++++++------- src/core/calculate.coffee | 7 +- src/core/renderer.coffee | 8 +- 8 files changed, 554 insertions(+), 531 deletions(-) delete mode 100644 dist/caman.full.pack.js diff --git a/Cakefile b/Cakefile index 0b2cc7bd..fbb0eeb2 100644 --- a/Cakefile +++ b/Cakefile @@ -3,10 +3,7 @@ fs = require 'fs' util = require 'util' {jsmin} = require 'jsmin' -try - packer = require 'packer' -catch err - packer = null +packer = null targetName = "caman" diff --git a/dist/caman.full.js b/dist/caman.full.js index abae280b..5cebcd54 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -1,11 +1,11 @@ -// Generated by CoffeeScript 1.8.0 +// Generated by CoffeeScript 1.9.1 (function() { var $, Analyze, Blender, Calculate, Caman, CamanParser, Canvas, Convert, Event, Fiber, Filter, IO, Image, Layer, Log, Module, Pixel, Plugin, Renderer, Root, Store, Util, fs, http, moduleKeywords, slice, vignetteFilters, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, - __slice = [].slice, - __hasProp = {}.hasOwnProperty, - __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, + slice1 = [].slice, + hasProp = {}.hasOwnProperty, + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; moduleKeywords = ['extended', 'included']; @@ -13,50 +13,50 @@ function Module() {} Module["extends"] = function(obj) { - var key, value, _ref; + var key, ref, value; for (key in obj) { value = obj[key]; - if (__indexOf.call(moduleKeywords, key) < 0) { + if (indexOf.call(moduleKeywords, key) < 0) { this[key] = value; } } - if ((_ref = obj.extended) != null) { - _ref.apply(this); + if ((ref = obj.extended) != null) { + ref.apply(this); } return this; }; Module.includes = function(obj) { - var key, value, _ref; + var key, ref, value; for (key in obj) { value = obj[key]; - if (__indexOf.call(moduleKeywords, key) < 0) { + if (indexOf.call(moduleKeywords, key) < 0) { this.prototype[key] = value; } } - if ((_ref = obj.included) != null) { - _ref.apply(this); + if ((ref = obj.included) != null) { + ref.apply(this); } return this; }; Module.delegate = function() { - var args, source, target, _i, _len, _results; - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + var args, len, o, results, source, target; + args = 1 <= arguments.length ? slice1.call(arguments, 0) : []; target = args.pop(); - _results = []; - for (_i = 0, _len = args.length; _i < _len; _i++) { - source = args[_i]; - _results.push(this.prototype[source] = target.prototype[source]); + results = []; + for (o = 0, len = args.length; o < len; o++) { + source = args[o]; + results.push(this.prototype[source] = target.prototype[source]); } - return _results; + return results; }; Module.aliasFunction = function(to, from) { return this.prototype[to] = (function(_this) { return function() { var args; - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + args = 1 <= arguments.length ? slice1.call(arguments, 0) : []; return _this.prototype[from].apply(_this, args); }; })(this); @@ -107,13 +107,13 @@ })(); Util.extend = function() { - var copy, dest, obj, prop, src, _i, _len; - obj = arguments[0], src = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + var copy, dest, len, o, obj, prop, src; + obj = arguments[0], src = 2 <= arguments.length ? slice1.call(arguments, 1) : []; dest = obj; - for (_i = 0, _len = src.length; _i < _len; _i++) { - copy = src[_i]; + for (o = 0, len = src.length; o < len; o++) { + copy = src[o]; for (prop in copy) { - if (!__hasProp.call(copy, prop)) continue; + if (!hasProp.call(copy, prop)) continue; dest[prop] = copy[prop]; } } @@ -131,20 +131,20 @@ }; Util.copyAttributes = function(from, to, opts) { - var attr, _i, _len, _ref, _ref1, _results; + var attr, len, o, ref, ref1, results; if (opts == null) { opts = {}; } - _ref = from.attributes; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - attr = _ref[_i]; - if ((opts.except != null) && (_ref1 = attr.nodeName, __indexOf.call(opts.except, _ref1) >= 0)) { + ref = from.attributes; + results = []; + for (o = 0, len = ref.length; o < len; o++) { + attr = ref[o]; + if ((opts.except != null) && (ref1 = attr.nodeName, indexOf.call(opts.except, ref1) >= 0)) { continue; } - _results.push(to.setAttribute(attr.nodeName, attr.nodeValue)); + results.push(to.setAttribute(attr.nodeName, attr.nodeValue)); } - return _results; + return results; }; Util.dataArray = function(length) { @@ -172,8 +172,8 @@ Root = window; } - Caman = (function(_super) { - __extends(Caman, _super); + Caman = (function(superClass) { + extend(Caman, superClass); Caman.version = { release: "4.1.2", @@ -212,7 +212,7 @@ }; function Caman() { - this.nodeFileReady = __bind(this.nodeFileReady, this); + this.nodeFileReady = bind(this.nodeFileReady, this); var args, callback, id; if (arguments.length === 0) { throw "Invalid arguments"; @@ -288,7 +288,7 @@ }; Caman.prototype.parseArguments = function(args) { - var key, val, _ref, _results; + var key, ref, results, val; if (args.length === 0) { throw "Invalid arguments given"; } @@ -312,14 +312,14 @@ } this.callback = args[2]; if (args.length === 4) { - _ref = args[4]; - _results = []; - for (key in _ref) { - if (!__hasProp.call(_ref, key)) continue; - val = _ref[key]; - _results.push(this.options[key] = val); + ref = args[4]; + results = []; + for (key in ref) { + if (!hasProp.call(ref, key)) continue; + val = ref[key]; + results.push(this.options[key] = val); } - return _results; + return results; } }; @@ -482,7 +482,7 @@ }; Caman.prototype.finishInit = function() { - var i, pixel, _i, _len, _ref; + var i, len, o, pixel, ref; if (this.context == null) { this.context = this.canvas.getContext('2d'); } @@ -504,9 +504,9 @@ if (Caman.allowRevert) { this.initializedPixelData = Util.dataArray(this.pixelData.length); this.originalPixelData = Util.dataArray(this.pixelData.length); - _ref = this.pixelData; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; + ref = this.pixelData; + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; this.initializedPixelData[i] = pixel; this.originalPixelData[i] = pixel; } @@ -528,18 +528,18 @@ }; Caman.prototype.resetOriginalPixelData = function() { - var i, pixel, _i, _len, _ref, _results; + var i, len, o, pixel, ref, results; if (!Caman.allowRevert) { throw "Revert disabled"; } this.originalPixelData = Util.dataArray(this.pixelData.length); - _ref = this.pixelData; - _results = []; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; - _results.push(this.originalPixelData[i] = pixel); + ref = this.pixelData; + results = []; + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; + results.push(this.originalPixelData[i] = pixel); } - return _results; + return results; }; Caman.prototype.hasId = function() { @@ -570,8 +570,8 @@ this.preScaledHeight = this.canvas.height; this.canvas.width = this.preScaledWidth * ratio; this.canvas.height = this.preScaledHeight * ratio; - this.canvas.style.width = "" + this.preScaledWidth + "px"; - this.canvas.style.height = "" + this.preScaledHeight + "px"; + this.canvas.style.width = this.preScaledWidth + "px"; + this.canvas.style.height = this.preScaledHeight + "px"; this.context.scale(ratio, ratio); this.width = this.originalWidth = this.canvas.width; return this.height = this.originalHeight = this.canvas.height; @@ -604,16 +604,16 @@ }; Caman.prototype.replaceCanvas = function(newCanvas) { - var i, pixel, _i, _len, _ref; + var i, len, o, pixel, ref; this.canvas = newCanvas; this.context = this.canvas.getContext('2d'); this.imageData = this.context.getImageData(0, 0, this.canvas.width, this.canvas.height); this.pixelData = this.imageData.data; if (Caman.allowRevert) { this.originalPixelData = Util.dataArray(this.pixelData.length); - _ref = this.pixelData; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; + ref = this.pixelData; + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; this.originalPixelData[i] = pixel; } } @@ -642,16 +642,16 @@ }; Caman.prototype.revert = function(updateContext) { - var i, pixel, _i, _len, _ref; + var i, len, o, pixel, ref; if (updateContext == null) { updateContext = true; } if (!Caman.allowRevert) { throw "Revert disabled"; } - _ref = this.originalVisiblePixels(); - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; + ref = this.originalVisiblePixels(); + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; this.pixelData[i] = pixel; } if (updateContext) { @@ -660,7 +660,7 @@ }; Caman.prototype.reset = function() { - var canvas, ctx, i, imageData, pixel, pixelData, _i, _len, _ref; + var canvas, ctx, i, imageData, len, o, pixel, pixelData, ref; canvas = document.createElement('canvas'); Util.copyAttributes(this.canvas, canvas); canvas.width = this.originalWidth; @@ -668,9 +668,9 @@ ctx = canvas.getContext('2d'); imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); pixelData = imageData.data; - _ref = this.initializedPixelData; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; + ref = this.initializedPixelData; + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; pixelData[i] = pixel; } ctx.putImageData(imageData, 0, 0); @@ -683,7 +683,7 @@ }; Caman.prototype.originalVisiblePixels = function() { - var coord, endX, endY, i, pixelData, pixels, startX, startY, width, _i, _ref, _ref1, _ref2; + var coord, endX, endY, i, o, pixelData, pixels, ref, ref1, ref2, startX, startY, width; if (!Caman.allowRevert) { throw "Revert disabled"; } @@ -694,9 +694,9 @@ endY = startY + this.height; pixelData = this.originalPixelData; width = this.canvas.width; - for (i = _i = 0, _ref = pixelData.length; _i < _ref; i = _i += 4) { + for (i = o = 0, ref = pixelData.length; o < ref; i = o += 4) { coord = Pixel.locationToCoordinates(i, width); - if (((startX <= (_ref1 = coord.x) && _ref1 < endX)) && ((startY <= (_ref2 = coord.y) && _ref2 < endY))) { + if (((startX <= (ref1 = coord.x) && ref1 < endX)) && ((startY <= (ref2 = coord.y) && ref2 < endY))) { pixels.push(pixelData[i], pixelData[i + 1], pixelData[i + 2], pixelData[i + 3]); } } @@ -713,7 +713,7 @@ }; Caman.prototype.processKernel = function(name, adjust, divisor, bias) { - var i, _i, _ref; + var i, o, ref; if (divisor == null) { divisor = null; } @@ -722,7 +722,7 @@ } if (divisor == null) { divisor = 0; - for (i = _i = 0, _ref = adjust.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = adjust.length; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { divisor += adjust[i]; } } @@ -786,29 +786,29 @@ Root.Caman = Caman; Caman.Analyze = (function() { - function Analyze(c) { - this.c = c; + function Analyze(c1) { + this.c = c1; } Analyze.prototype.calculateLevels = function() { - var i, levels, numPixels, _i, _j, _k, _ref; + var i, levels, numPixels, o, ref, u, w; levels = { r: {}, g: {}, b: {} }; - for (i = _i = 0; _i <= 255; i = ++_i) { + for (i = o = 0; o <= 255; i = ++o) { levels.r[i] = 0; levels.g[i] = 0; levels.b[i] = 0; } - for (i = _j = 0, _ref = this.c.pixelData.length; _j < _ref; i = _j += 4) { + for (i = u = 0, ref = this.c.pixelData.length; u < ref; i = u += 4) { levels.r[this.c.pixelData[i]]++; levels.g[this.c.pixelData[i + 1]]++; levels.b[this.c.pixelData[i + 2]]++; } numPixels = this.c.pixelData.length / 4; - for (i = _k = 0; _k <= 255; i = ++_k) { + for (i = w = 0; w <= 255; i = ++w) { levels.r[i] /= numPixels; levels.g[i] /= numPixels; levels.b[i] /= numPixels; @@ -823,20 +823,20 @@ Analyze = Caman.Analyze; Caman.DOMUpdated = function() { - var img, imgs, parser, _i, _len, _results; + var img, imgs, len, o, parser, results; imgs = document.querySelectorAll("img[data-caman]"); if (!(imgs.length > 0)) { return; } - _results = []; - for (_i = 0, _len = imgs.length; _i < _len; _i++) { - img = imgs[_i]; - _results.push(parser = new CamanParser(img, function() { + results = []; + for (o = 0, len = imgs.length; o < len; o++) { + img = imgs[o]; + results.push(parser = new CamanParser(img, function() { this.parse(); return this.execute(); })); } - return _results; + return results; }; if (Caman.autoload) { @@ -860,7 +860,7 @@ } CamanParser.prototype.parse = function() { - var args, e, filter, func, inst, instFunc, m, r, unparsedInstructions, _i, _len, _ref, _results; + var args, e, filter, func, inst, instFunc, len, m, o, r, ref, results, unparsedInstructions; this.ele = this.caman.canvas; r = new RegExp(INST_REGEX, 'g'); unparsedInstructions = this.dataStr.match(r); @@ -868,20 +868,20 @@ return; } r = new RegExp(INST_REGEX); - _results = []; - for (_i = 0, _len = unparsedInstructions.length; _i < _len; _i++) { - inst = unparsedInstructions[_i]; - _ref = inst.match(r), m = _ref[0], filter = _ref[1], args = _ref[2]; + results = []; + for (o = 0, len = unparsedInstructions.length; o < len; o++) { + inst = unparsedInstructions[o]; + ref = inst.match(r), m = ref[0], filter = ref[1], args = ref[2]; instFunc = new Function("return function() { this." + filter + "(" + args + "); };"); try { func = instFunc(); - _results.push(func.call(this.caman)); + results.push(func.call(this.caman)); } catch (_error) { e = _error; - _results.push(Log.debug(e)); + results.push(Log.debug(e)); } } - return _results; + return results; }; CamanParser.prototype.execute = function() { @@ -940,7 +940,7 @@ }; Calculate.bezier = function(start, ctrl1, ctrl2, end, lowBound, highBound) { - var bezier, clamp, controlPoints, endX, i, j, lerp, next, prev, t, _i, _j, _ref; + var bezier, clamp, controlPoints, endX, i, j, lerp, next, o, prev, ref, t, u; if (lowBound == null) { lowBound = 0; } @@ -964,12 +964,12 @@ clamp = function(a, min, max) { return Math.min(Math.max(a, min), max); }; - for (i = _i = 0; _i < 1000; i = ++_i) { + for (i = o = 0; o < 1000; i = ++o) { t = i / 1000; prev = controlPoints; while (prev.length > 1) { next = []; - for (j = _j = 0, _ref = prev.length - 2; 0 <= _ref ? _j <= _ref : _j >= _ref; j = 0 <= _ref ? ++_j : --_j) { + for (j = u = 0, ref = prev.length - 2; 0 <= ref ? u <= ref : u >= ref; j = 0 <= ref ? ++u : --u) { next.push([lerp(prev[j][0], prev[j + 1][0], t), lerp(prev[j][1], prev[j + 1][1], t)]); } prev = next; @@ -985,7 +985,7 @@ }; Calculate.hermite = function(controlPoints, lowBound, highBound) { - var add, clamp, count, endX, fac0, fac1, fac2, fac3, i, j, lerp, m0, m1, mul, p, p0, p1, pointsPerSegment, pointsPerStep, pos, ret, sub, t, _i, _j, _ref; + var add, clamp, count, endX, fac0, fac1, fac2, fac3, i, j, lerp, m0, m1, mul, o, p, p0, p1, pointsPerSegment, pointsPerStep, pos, ref, ref1, ret, sub, t, u; if (controlPoints.length < 2) { throw "Invalid number of arguments to hermite"; } @@ -1012,7 +1012,7 @@ return Math.min(Math.max(a, min), max); }; count = 0; - for (i = _i = 0, _ref = controlPoints.length - 2; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = controlPoints.length - 2; 0 <= ref ? o <= ref : o >= ref; i = 0 <= ref ? ++o : --o) { p0 = controlPoints[i]; p1 = controlPoints[i + 1]; pointsPerSegment = p1[0] - p0[0]; @@ -1024,7 +1024,7 @@ m0 = mul(sub(p1, p), [0.5, 0.5]); p = i < controlPoints.length - 2 ? controlPoints[i + 2] : p1; m1 = mul(sub(p, p0), [0.5, 0.5]); - for (j = _j = 0; 0 <= pointsPerSegment ? _j <= pointsPerSegment : _j >= pointsPerSegment; j = 0 <= pointsPerSegment ? ++_j : --_j) { + for (j = u = 0, ref1 = pointsPerSegment; 0 <= ref1 ? u <= ref1 : u >= ref1; j = 0 <= ref1 ? ++u : --u) { t = j * pointsPerStep; fac0 = 2.0 * t * t * t - 3.0 * t * t + 1.0; fac1 = t * t * t - 2.0 * t * t + t; @@ -1041,21 +1041,23 @@ }; Calculate.missingValues = function(values, endX) { - var i, j, leftCoord, ret, rightCoord, _i, _j; + var i, j, leftCoord, o, ref, ref1, ref2, ret, rightCoord, u; if (Object.keys(values).length < endX + 1) { ret = {}; - for (i = _i = 0; 0 <= endX ? _i <= endX : _i >= endX; i = 0 <= endX ? ++_i : --_i) { + for (i = o = 0, ref = endX; 0 <= ref ? o <= ref : o >= ref; i = 0 <= ref ? ++o : --o) { if (values[i] != null) { ret[i] = values[i]; } else { leftCoord = [i - 1, ret[i - 1]]; - for (j = _j = i; i <= endX ? _j <= endX : _j >= endX; j = i <= endX ? ++_j : --_j) { + for (j = u = ref1 = i, ref2 = endX; ref1 <= ref2 ? u <= ref2 : u >= ref2; j = ref1 <= ref2 ? ++u : --u) { if (values[j] != null) { rightCoord = [j, values[j]]; break; } } - ret[i] = leftCoord[1] + ((rightCoord[1] - leftCoord[1]) / (rightCoord[0] - leftCoord[0])) * (i - leftCoord[0]); + if (rightCoord) { + ret[i] = leftCoord[1] + ((rightCoord[1] - leftCoord[1]) / (rightCoord[0] - leftCoord[0])) * (i - leftCoord[0]); + } } } return ret; @@ -1400,22 +1402,22 @@ Event.types = ["processStart", "processComplete", "renderStart", "renderFinished", "blockStarted", "blockFinished"]; Event.trigger = function(target, type, data) { - var event, _i, _len, _ref, _results; + var event, len, o, ref, results; if (data == null) { data = null; } if (this.events[type] && this.events[type].length) { - _ref = this.events[type]; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - event = _ref[_i]; + ref = this.events[type]; + results = []; + for (o = 0, len = ref.length; o < len; o++) { + event = ref[o]; if (event.target === null || target.id === event.target.id) { - _results.push(event.fn.call(target, data)); + results.push(event.fn.call(target, data)); } else { - _results.push(void 0); + results.push(void 0); } } - return _results; + return results; } }; @@ -1428,7 +1430,7 @@ type = _type; fn = _fn; } - if (__indexOf.call(this.types, type) < 0) { + if (indexOf.call(this.types, type) < 0) { return false; } if (!this.events[type]) { @@ -1485,8 +1487,8 @@ }; IO.corsEnabled = function(img) { - var _ref; - return (img.crossOrigin != null) && ((_ref = img.crossOrigin.toLowerCase()) === 'anonymous' || _ref === 'use-credentials'); + var ref; + return (img.crossOrigin != null) && ((ref = img.crossOrigin.toLowerCase()) === 'anonymous' || ref === 'use-credentials'); }; IO.isURLRemote = function(url) { @@ -1514,7 +1516,7 @@ }; IO.proxyUrl = function(src) { - return "" + Caman.remoteProxy + "?" + Caman.proxyParam + "=" + (encodeURIComponent(src)); + return Caman.remoteProxy + "?" + Caman.proxyParam + "=" + (encodeURIComponent(src)); }; IO.useProxy = function(lang) { @@ -1603,8 +1605,8 @@ IO = Caman.IO; Caman.Layer = (function() { - function Layer(c) { - this.c = c; + function Layer(c1) { + this.c = c1; this.filter = this.c; this.options = { blendingMode: 'normal', @@ -1635,9 +1637,9 @@ }; Layer.prototype.copyParent = function() { - var i, parentData, _i, _ref; + var i, o, parentData, ref; parentData = this.c.pixelData; - for (i = _i = 0, _ref = this.c.pixelData.length; _i < _ref; i = _i += 4) { + for (i = o = 0, ref = this.c.pixelData.length; o < ref; i = o += 4) { this.pixelData[i] = parentData[i]; this.pixelData[i + 1] = parentData[i + 1]; this.pixelData[i + 2] = parentData[i + 2]; @@ -1668,11 +1670,11 @@ }; Layer.prototype.applyToParent = function() { - var i, layerData, parentData, result, rgbaLayer, rgbaParent, _i, _ref, _results; + var i, layerData, o, parentData, ref, result, results, rgbaLayer, rgbaParent; parentData = this.c.pixelStack[this.c.pixelStack.length - 1]; layerData = this.c.pixelData; - _results = []; - for (i = _i = 0, _ref = layerData.length; _i < _ref; i = _i += 4) { + results = []; + for (i = o = 0, ref = layerData.length; o < ref; i = o += 4) { rgbaParent = { r: parentData[i], g: parentData[i + 1], @@ -1694,9 +1696,9 @@ } parentData[i] = rgbaParent.r - ((rgbaParent.r - result.r) * (this.options.opacity * (result.a / 255))); parentData[i + 1] = rgbaParent.g - ((rgbaParent.g - result.g) * (this.options.opacity * (result.a / 255))); - _results.push(parentData[i + 2] = rgbaParent.b - ((rgbaParent.b - result.b) * (this.options.opacity * (result.a / 255)))); + results.push(parentData[i + 2] = rgbaParent.b - ((rgbaParent.b - result.b) * (this.options.opacity * (result.a / 255)))); } - return _results; + return results; }; return Layer; @@ -1707,14 +1709,14 @@ Caman.Logger = (function() { function Logger() { - var name, _i, _len, _ref; - _ref = ['log', 'info', 'warn', 'error']; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - name = _ref[_i]; + var len, name, o, ref; + ref = ['log', 'info', 'warn', 'error']; + for (o = 0, len = ref.length; o < len; o++) { + name = ref[o]; this[name] = (function(name) { return function() { var args, e; - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + args = 1 <= arguments.length ? slice1.call(arguments, 0) : []; if (!Caman.DEBUG) { return; } @@ -1751,12 +1753,12 @@ }; }; - function Pixel(r, g, b, a, c) { - this.r = r != null ? r : 0; - this.g = g != null ? g : 0; - this.b = b != null ? b : 0; - this.a = a != null ? a : 255; - this.c = c != null ? c : null; + function Pixel(r1, g1, b1, a1, c1) { + this.r = r1 != null ? r1 : 0; + this.g = g1 != null ? g1 : 0; + this.b = b1 != null ? b1 : 0; + this.a = a1 != null ? a1 : 255; + this.c = c1 != null ? c1 : null; this.loc = 0; } @@ -1878,9 +1880,9 @@ Caman.Renderer = (function() { Renderer.Blocks = Caman.NodeJS ? require('os').cpus().length : 4; - function Renderer(c) { - this.c = c; - this.processNext = __bind(this.processNext, this); + function Renderer(c1) { + this.c = c1; + this.processNext = bind(this.processNext, this); this.renderQueue = []; this.modPixelData = null; } @@ -1927,14 +1929,14 @@ }; Renderer.prototype.eachBlock = function(fn) { - var blockN, blockPixelLength, bnum, end, f, i, lastBlockN, n, start, _i, _ref, _results; + var blockN, blockPixelLength, bnum, end, f, i, lastBlockN, n, o, ref, results, start; this.blocksDone = 0; n = this.c.pixelData.length; blockPixelLength = Math.floor((n / 4) / Renderer.Blocks); blockN = blockPixelLength * 4; lastBlockN = blockN + ((n / 4) % Renderer.Blocks) * 4; - _results = []; - for (i = _i = 0, _ref = Renderer.Blocks; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + results = []; + for (i = o = 0, ref = Renderer.Blocks; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { start = i * blockN; end = start + (i === Renderer.Blocks - 1 ? lastBlockN : blockN); if (Caman.NodeJS) { @@ -1944,9 +1946,9 @@ }; })(this)); bnum = f.run(); - _results.push(this.blockFinished(bnum)); + results.push(this.blockFinished(bnum)); } else { - _results.push(setTimeout((function(_this) { + results.push(setTimeout((function(_this) { return function(i, start, end) { return function() { return fn.call(_this, i, start, end); @@ -1955,7 +1957,7 @@ })(this)(i, start, end), 0)); } } - return _results; + return results; }; Renderer.prototype.executeFilter = function() { @@ -1975,7 +1977,7 @@ }; Renderer.prototype.renderBlock = function(bnum, start, end) { - var i, pixel, _i; + var i, o, pixel, ref, ref1; Log.debug("Block #" + bnum + " - Filter: " + this.currentJob.name + ", Start: " + start + ", End: " + end); Event.trigger(this.c, "blockStarted", { blockNum: bnum, @@ -1985,13 +1987,15 @@ }); pixel = new Pixel(); pixel.setContext(this.c); - for (i = _i = start; _i < end; i = _i += 4) { + for (i = o = ref = start, ref1 = end; o < ref1; i = o += 4) { pixel.loc = i; pixel.r = this.c.pixelData[i]; pixel.g = this.c.pixelData[i + 1]; pixel.b = this.c.pixelData[i + 2]; pixel.a = this.c.pixelData[i + 3]; - this.currentJob.processFn(pixel); + if (this.currentJob.processFn) { + this.currentJob.processFn(pixel); + } this.c.pixelData[i] = Util.clampRGB(pixel.r); this.c.pixelData[i + 1] = Util.clampRGB(pixel.g); this.c.pixelData[i + 2] = Util.clampRGB(pixel.b); @@ -2005,12 +2009,16 @@ }; Renderer.prototype.renderKernel = function(bnum, start, end) { - var adjust, adjustSize, bias, builder, builderIndex, divisor, i, j, k, kernel, n, name, p, pixel, res, _i, _j, _k; + var adjust, adjustSize, bias, builder, builderIndex, divisor, i, j, k, kernel, n, name, o, p, pixel, ref, ref1, ref2, ref3, ref4, ref5, res, u, w; name = this.currentJob.name; bias = this.currentJob.bias; divisor = this.currentJob.divisor; n = this.c.pixelData.length; adjust = this.currentJob.adjust; + if (!adjust) { + this.blockFinished(bnum); + return; + } adjustSize = Math.sqrt(adjust.length); kernel = []; Log.debug("Rendering kernel - Filter: " + this.currentJob.name); @@ -2019,11 +2027,11 @@ builder = (adjustSize - 1) / 2; pixel = new Pixel(); pixel.setContext(this.c); - for (i = _i = start; _i < end; i = _i += 4) { + for (i = o = ref = start, ref1 = end; o < ref1; i = o += 4) { pixel.loc = i; builderIndex = 0; - for (j = _j = -builder; -builder <= builder ? _j <= builder : _j >= builder; j = -builder <= builder ? ++_j : --_j) { - for (k = _k = builder; builder <= -builder ? _k <= -builder : _k >= -builder; k = builder <= -builder ? ++_k : --_k) { + for (j = u = ref2 = -builder, ref3 = builder; ref2 <= ref3 ? u <= ref3 : u >= ref3; j = ref2 <= ref3 ? ++u : --u) { + for (k = w = ref4 = builder, ref5 = -builder; ref4 <= ref5 ? w <= ref5 : w >= ref5; k = ref4 <= ref5 ? ++w : --w) { p = pixel.getPixelRelative(j, k); kernel[builderIndex * 3] = p.r; kernel[builderIndex * 3 + 1] = p.g; @@ -2045,7 +2053,7 @@ }; Renderer.prototype.blockFinished = function(bnum) { - var i, _i, _ref; + var i, o, ref; if (bnum >= 0) { Log.debug("Block #" + bnum + " finished! Filter: " + this.currentJob.name); } @@ -2057,7 +2065,7 @@ }); if (this.blocksDone === Renderer.Blocks) { if (this.currentJob.type === Filter.Type.Kernel) { - for (i = _i = 0, _ref = this.c.pixelData.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = this.c.pixelData.length; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { this.c.pixelData[i] = this.modPixelData[i]; } } @@ -2070,13 +2078,13 @@ }; Renderer.prototype.processKernel = function(adjust, kernel, divisor, bias) { - var i, val, _i, _ref; + var i, o, ref, val; val = { r: 0, g: 0, b: 0 }; - for (i = _i = 0, _ref = adjust.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = adjust.length; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { val.r += adjust[i] * kernel[i * 3]; val.g += adjust[i] * kernel[i * 3 + 1]; val.b += adjust[i] * kernel[i * 3 + 2]; @@ -2337,14 +2345,14 @@ Filter.register("hue", function(adjust) { return this.process("hue", function(rgba) { - var b, g, h, hsv, r, _ref; + var b, g, h, hsv, r, ref; hsv = Convert.rgbToHSV(rgba.r, rgba.g, rgba.b); h = hsv.h * 100; h += Math.abs(adjust); h = h % 100; h /= 100; hsv.h = h; - _ref = Convert.hsvToRGB(hsv.h, hsv.s, hsv.v), r = _ref.r, g = _ref.g, b = _ref.b; + ref = Convert.hsvToRGB(hsv.h, hsv.s, hsv.v), r = ref.r, g = ref.g, b = ref.b; rgba.r = r; rgba.g = g; rgba.b = b; @@ -2444,7 +2452,7 @@ return this; } for (chan in options) { - if (!__hasProp.call(options, chan)) continue; + if (!hasProp.call(options, chan)) continue; value = options[chan]; if (value === 0) { delete options[chan]; @@ -2482,8 +2490,8 @@ }); Filter.register("curves", function() { - var algo, bezier, chans, cps, end, i, last, start, _i, _j, _ref, _ref1; - chans = arguments[0], cps = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + var algo, bezier, chans, cps, end, i, last, o, ref, ref1, start, u; + chans = arguments[0], cps = 2 <= arguments.length ? slice1.call(arguments, 1) : []; last = cps[cps.length - 1]; if (typeof last === "function") { algo = last; @@ -2506,19 +2514,19 @@ bezier = algo(cps, 0, 255); start = cps[0]; if (start[0] > 0) { - for (i = _i = 0, _ref = start[0]; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = start[0]; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { bezier[i] = start[1]; } } end = cps[cps.length - 1]; if (end[0] < 255) { - for (i = _j = _ref1 = end[0]; _ref1 <= 255 ? _j <= 255 : _j >= 255; i = _ref1 <= 255 ? ++_j : --_j) { + for (i = u = ref1 = end[0]; ref1 <= 255 ? u <= 255 : u >= 255; i = ref1 <= 255 ? ++u : --u) { bezier[i] = end[1]; } } return this.process("curves", function(rgba) { - var _k, _ref2; - for (i = _k = 0, _ref2 = chans.length; 0 <= _ref2 ? _k < _ref2 : _k > _ref2; i = 0 <= _ref2 ? ++_k : --_k) { + var ref2, w; + for (i = w = 0, ref2 = chans.length; 0 <= ref2 ? w < ref2 : w > ref2; i = 0 <= ref2 ? ++w : --w) { rgba[chans[i]] = bezier[rgba[chans[i]]]; } return rgba; @@ -2686,7 +2694,7 @@ }); Filter.register("rectangularVignette", function(opts) { - var defaults, dim, percent, size, _i, _len, _ref; + var defaults, dim, len, o, percent, ref, size; defaults = { strength: 50, cornerRadius: 0, @@ -2707,9 +2715,9 @@ height: this.dimensions.height * percent }; } else if (typeof opts.size === "object") { - _ref = ["width", "height"]; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - dim = _ref[_i]; + ref = ["width", "height"]; + for (o = 0, len = ref.length; o < len; o++) { + dim = ref[o]; if (typeof opts.size[dim] === "string") { opts.size[dim] = this.dimensions[dim] * (parseInt(opts.size[dim], 10) / 100); } @@ -2880,7 +2888,7 @@ return this.next = null; }; Caman.Plugin.register("compoundBlur", function(radiusData, radius, increaseFactor, blurLevels) { - var b_in_sum, b_out_sum, b_sum, blend, currentIndex, div, g_in_sum, g_out_sum, g_sum, height, heightMinus1, i, iblend, idx, imagePixels, index, iradius, lookupValue, mul_sum, p, pb, pg, pixels, pr, r_in_sum, r_out_sum, r_sum, radiusPixels, radiusPlus1, rbs, shg_sum, stack, stackEnd, stackIn, stackOut, stackStart, steps, sumFactor, w4, wh, wh4, width, widthMinus1, x, y, yi, yp, yw, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r; + var aa, ab, ac, ad, ae, af, ag, b_in_sum, b_out_sum, b_sum, blend, currentIndex, div, g_in_sum, g_out_sum, g_sum, height, heightMinus1, i, iblend, idx, imagePixels, index, iradius, lookupValue, mul_sum, o, p, pb, pg, pixels, pr, r_in_sum, r_out_sum, r_sum, radiusPixels, radiusPlus1, rbs, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, shg_sum, stack, stackEnd, stackIn, stackOut, stackStart, steps, sumFactor, u, w, w4, wh, wh4, width, widthMinus1, x, y, yi, yp, yw; width = this.dimensions.width; height = this.dimensions.height; imagePixels = this.pixelData; @@ -2888,7 +2896,7 @@ wh = width * height; wh4 = wh << 2; pixels = []; - for (i = _i = 0; 0 <= wh4 ? _i < wh4 : _i > wh4; i = 0 <= wh4 ? ++_i : --_i) { + for (i = o = 0, ref = wh4; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { pixels[i] = imagePixels[i]; } currentIndex = 0; @@ -2911,7 +2919,7 @@ stackStart = new BlurStack(); stackEnd = void 0; stack = stackStart; - for (i = _j = 1; 1 <= div ? _j < div : _j > div; i = 1 <= div ? ++_j : --_j) { + for (i = u = 1, ref1 = div; 1 <= ref1 ? u < ref1 : u > ref1; i = 1 <= ref1 ? ++u : --u) { stack = stack.next = new BlurStack(); if (i === radiusPlus1) { stackEnd = stack; @@ -2923,7 +2931,7 @@ yw = yi = 0; mul_sum = mul_table[iradius]; shg_sum = shg_table[iradius]; - for (y = _k = 0; 0 <= height ? _k < height : _k > height; y = 0 <= height ? ++_k : --_k) { + for (y = w = 0, ref2 = height; 0 <= ref2 ? w < ref2 : w > ref2; y = 0 <= ref2 ? ++w : --w) { r_in_sum = g_in_sum = b_in_sum = r_sum = g_sum = b_sum = 0; r_out_sum = radiusPlus1 * (pr = pixels[yi]); g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]); @@ -2932,13 +2940,13 @@ g_sum += sumFactor * pg; b_sum += sumFactor * pb; stack = stackStart; - for (i = _l = 0; 0 <= radiusPlus1 ? _l < radiusPlus1 : _l > radiusPlus1; i = 0 <= radiusPlus1 ? ++_l : --_l) { + for (i = aa = 0, ref3 = radiusPlus1; 0 <= ref3 ? aa < ref3 : aa > ref3; i = 0 <= ref3 ? ++aa : --aa) { stack.r = pr; stack.g = pg; stack.b = pb; stack = stack.next; } - for (i = _m = 1; 1 <= radiusPlus1 ? _m < radiusPlus1 : _m > radiusPlus1; i = 1 <= radiusPlus1 ? ++_m : --_m) { + for (i = ab = 1, ref4 = radiusPlus1; 1 <= ref4 ? ab < ref4 : ab > ref4; i = 1 <= ref4 ? ++ab : --ab) { p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2); r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i); g_sum += (stack.g = (pg = pixels[p + 1])) * rbs; @@ -2950,7 +2958,7 @@ } stackIn = stackStart; stackOut = stackEnd; - for (x = _n = 0; 0 <= width ? _n < width : _n > width; x = 0 <= width ? ++_n : --_n) { + for (x = ac = 0, ref5 = width; 0 <= ref5 ? ac < ref5 : ac > ref5; x = 0 <= ref5 ? ++ac : --ac) { pixels[yi] = (r_sum * mul_sum) >> shg_sum; pixels[yi + 1] = (g_sum * mul_sum) >> shg_sum; pixels[yi + 2] = (b_sum * mul_sum) >> shg_sum; @@ -2979,7 +2987,7 @@ } yw += width; } - for (x = _o = 0; 0 <= width ? _o < width : _o > width; x = 0 <= width ? ++_o : --_o) { + for (x = ad = 0, ref6 = width; 0 <= ref6 ? ad < ref6 : ad > ref6; x = 0 <= ref6 ? ++ad : --ad) { g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0; yi = x << 2; r_out_sum = radiusPlus1 * (pr = pixels[yi]); @@ -2989,14 +2997,14 @@ g_sum += sumFactor * pg; b_sum += sumFactor * pb; stack = stackStart; - for (i = _p = 0; 0 <= radiusPlus1 ? _p < radiusPlus1 : _p > radiusPlus1; i = 0 <= radiusPlus1 ? ++_p : --_p) { + for (i = ae = 0, ref7 = radiusPlus1; 0 <= ref7 ? ae < ref7 : ae > ref7; i = 0 <= ref7 ? ++ae : --ae) { stack.r = pr; stack.g = pg; stack.b = pb; stack = stack.next; } yp = width; - for (i = _q = 1; 1 <= radiusPlus1 ? _q < radiusPlus1 : _q > radiusPlus1; i = 1 <= radiusPlus1 ? ++_q : --_q) { + for (i = af = 1, ref8 = radiusPlus1; 1 <= ref8 ? af < ref8 : af > ref8; i = 1 <= ref8 ? ++af : --af) { yi = (yp + x) << 2; r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i); g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs; @@ -3012,7 +3020,7 @@ yi = x; stackIn = stackStart; stackOut = stackEnd; - for (y = _r = 0; 0 <= height ? _r < height : _r > height; y = 0 <= height ? ++_r : --_r) { + for (y = ag = 0, ref9 = height; 0 <= ref9 ? ag < ref9 : ag > ref9; y = 0 <= ref9 ? ++ag : --ag) { p = yi << 2; pixels[p] = (r_sum * mul_sum) >> shg_sum; pixels[p + 1] = (g_sum * mul_sum) >> shg_sum; @@ -3532,7 +3540,7 @@ return this.next = null; }; Caman.Plugin.register("stackBlur", function(radius) { - var b_in_sum, b_out_sum, b_sum, div, g_in_sum, g_out_sum, g_sum, height, heightMinus1, i, mul_sum, p, pb, pg, pixels, pr, r_in_sum, r_out_sum, r_sum, radiusPlus1, rbs, shg_sum, stack, stackEnd, stackIn, stackOut, stackStart, sumFactor, w4, width, widthMinus1, x, y, yi, yp, yw, _i, _j, _k, _l, _m, _n, _o, _p, _q; + var aa, ab, ac, ad, ae, af, b_in_sum, b_out_sum, b_sum, div, g_in_sum, g_out_sum, g_sum, height, heightMinus1, i, mul_sum, o, p, pb, pg, pixels, pr, r_in_sum, r_out_sum, r_sum, radiusPlus1, rbs, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, shg_sum, stack, stackEnd, stackIn, stackOut, stackStart, sumFactor, u, w, w4, width, widthMinus1, x, y, yi, yp, yw; if (isNaN(radius) || radius < 1) { return; } @@ -3548,7 +3556,7 @@ sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2; stackStart = new BlurStack(); stack = stackStart; - for (i = _i = 1; 1 <= div ? _i < div : _i > div; i = 1 <= div ? ++_i : --_i) { + for (i = o = 1, ref = div; 1 <= ref ? o < ref : o > ref; i = 1 <= ref ? ++o : --o) { stack = stack.next = new BlurStack(); if (i === radiusPlus1) { stackEnd = stack; @@ -3560,7 +3568,7 @@ yw = yi = 0; mul_sum = mul_table[radius]; shg_sum = shg_table[radius]; - for (y = _j = 0; 0 <= height ? _j < height : _j > height; y = 0 <= height ? ++_j : --_j) { + for (y = u = 0, ref1 = height; 0 <= ref1 ? u < ref1 : u > ref1; y = 0 <= ref1 ? ++u : --u) { r_in_sum = g_in_sum = b_in_sum = r_sum = g_sum = b_sum = 0; r_out_sum = radiusPlus1 * (pr = pixels[yi]); g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]); @@ -3569,13 +3577,13 @@ g_sum += sumFactor * pg; b_sum += sumFactor * pb; stack = stackStart; - for (i = _k = 0; 0 <= radiusPlus1 ? _k < radiusPlus1 : _k > radiusPlus1; i = 0 <= radiusPlus1 ? ++_k : --_k) { + for (i = w = 0, ref2 = radiusPlus1; 0 <= ref2 ? w < ref2 : w > ref2; i = 0 <= ref2 ? ++w : --w) { stack.r = pr; stack.g = pg; stack.b = pb; stack = stack.next; } - for (i = _l = 1; 1 <= radiusPlus1 ? _l < radiusPlus1 : _l > radiusPlus1; i = 1 <= radiusPlus1 ? ++_l : --_l) { + for (i = aa = 1, ref3 = radiusPlus1; 1 <= ref3 ? aa < ref3 : aa > ref3; i = 1 <= ref3 ? ++aa : --aa) { p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2); r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i); g_sum += (stack.g = (pg = pixels[p + 1])) * rbs; @@ -3587,7 +3595,7 @@ } stackIn = stackStart; stackOut = stackEnd; - for (x = _m = 0; 0 <= width ? _m < width : _m > width; x = 0 <= width ? ++_m : --_m) { + for (x = ab = 0, ref4 = width; 0 <= ref4 ? ab < ref4 : ab > ref4; x = 0 <= ref4 ? ++ab : --ab) { pixels[yi] = (r_sum * mul_sum) >> shg_sum; pixels[yi + 1] = (g_sum * mul_sum) >> shg_sum; pixels[yi + 2] = (b_sum * mul_sum) >> shg_sum; @@ -3616,7 +3624,7 @@ } yw += width; } - for (x = _n = 0; 0 <= width ? _n < width : _n > width; x = 0 <= width ? ++_n : --_n) { + for (x = ac = 0, ref5 = width; 0 <= ref5 ? ac < ref5 : ac > ref5; x = 0 <= ref5 ? ++ac : --ac) { g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0; yi = x << 2; r_out_sum = radiusPlus1 * (pr = pixels[yi]); @@ -3626,14 +3634,14 @@ g_sum += sumFactor * pg; b_sum += sumFactor * pb; stack = stackStart; - for (i = _o = 0; 0 <= radiusPlus1 ? _o < radiusPlus1 : _o > radiusPlus1; i = 0 <= radiusPlus1 ? ++_o : --_o) { + for (i = ad = 0, ref6 = radiusPlus1; 0 <= ref6 ? ad < ref6 : ad > ref6; i = 0 <= ref6 ? ++ad : --ad) { stack.r = pr; stack.g = pg; stack.b = pb; stack = stack.next; } yp = width; - for (i = _p = 1; 1 <= radius ? _p <= radius : _p >= radius; i = 1 <= radius ? ++_p : --_p) { + for (i = ae = 1, ref7 = radius; 1 <= ref7 ? ae <= ref7 : ae >= ref7; i = 1 <= ref7 ? ++ae : --ae) { yi = (yp + x) << 2; r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i); g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs; @@ -3649,7 +3657,7 @@ yi = x; stackIn = stackStart; stackOut = stackEnd; - for (y = _q = 0; 0 <= height ? _q < height : _q > height; y = 0 <= height ? ++_q : --_q) { + for (y = af = 0, ref8 = height; 0 <= ref8 ? af < ref8 : af > ref8; y = 0 <= ref8 ? ++af : --af) { p = yi << 2; pixels[p] = (r_sum * mul_sum) >> shg_sum; pixels[p + 1] = (g_sum * mul_sum) >> shg_sum; diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index c6bbd2ed..cb40ea67 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -1,34 +1,34 @@ -(function(){var $,Analyze,Blender,Calculate,Caman,CamanParser,Canvas,Convert,Event,Fiber,Filter,IO,Image,Layer,Log,Module,Pixel,Plugin,Renderer,Root,Store,Util,fs,http,moduleKeywords,slice,vignetteFilters,__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i255){return 255;} -return val;};Util.copyAttributes=function(from,to,opts){var attr,_i,_len,_ref,_ref1,_results;if(opts==null){opts={};} -_ref=from.attributes;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){attr=_ref[_i];if((opts.except!=null)&&(_ref1=attr.nodeName,__indexOf.call(opts.except,_ref1)>=0)){continue;} -_results.push(to.setAttribute(attr.nodeName,attr.nodeValue));} -return _results;};Util.dataArray=function(length){if(length==null){length=0;} +return val;};Util.copyAttributes=function(from,to,opts){var attr,len,o,ref,ref1,results;if(opts==null){opts={};} +ref=from.attributes;results=[];for(o=0,len=ref.length;o=0)){continue;} +results.push(to.setAttribute(attr.nodeName,attr.nodeValue));} +return results;};Util.dataArray=function(length){if(length==null){length=0;} if(Caman.NodeJS||(window.Uint8Array!=null)){return new Uint8Array(length);} return new Array(length);};return Util;})();if(typeof exports!=="undefined"&&exports!==null){Root=exports;Canvas=require('canvas');Image=Canvas.Image;Fiber=require('fibers');fs=require('fs');http=require('http');}else{Root=window;} -Caman=(function(_super){__extends(Caman,_super);Caman.version={release:"4.1.2",date:"7/27/2013"};Caman.DEBUG=false;Caman.allowRevert=true;Caman.crossOrigin="anonymous";Caman.remoteProxy="";Caman.proxyParam="camanProxyUrl";Caman.NodeJS=typeof exports!=="undefined"&&exports!==null;Caman.autoload=!Caman.NodeJS;Caman.toString=function(){return"Version "+Caman.version.release+", Released "+Caman.version.date;};Caman.getAttrId=function(canvas){if(Caman.NodeJS){return true;} +Caman=(function(superClass){extend(Caman,superClass);Caman.version={release:"4.1.2",date:"7/27/2013"};Caman.DEBUG=false;Caman.allowRevert=true;Caman.crossOrigin="anonymous";Caman.remoteProxy="";Caman.proxyParam="camanProxyUrl";Caman.NodeJS=typeof exports!=="undefined"&&exports!==null;Caman.autoload=!Caman.NodeJS;Caman.toString=function(){return"Version "+Caman.version.release+", Released "+Caman.version.date;};Caman.getAttrId=function(canvas){if(Caman.NodeJS){return true;} if(typeof canvas==="string"){canvas=$(canvas);} if(!((canvas!=null)&&(canvas.getAttribute!=null))){return null;} -return canvas.getAttribute('data-caman-id');};function Caman(){this.nodeFileReady=__bind(this.nodeFileReady,this);var args,callback,id;if(arguments.length===0){throw"Invalid arguments";} +return canvas.getAttribute('data-caman-id');};function Caman(){this.nodeFileReady=bind(this.nodeFileReady,this);var args,callback,id;if(arguments.length===0){throw"Invalid arguments";} if(this instanceof Caman){this.finishInit=this.finishInit.bind(this);this.imageLoaded=this.imageLoaded.bind(this);args=arguments[0];if(!Caman.NodeJS){id=parseInt(Caman.getAttrId(args[0]),10);callback=typeof args[1]==="function"?args[1]:typeof args[2]==="function"?args[2]:function(){};if(!isNaN(id)&&Store.has(id)){return Store.execute(id,callback);}} this.id=Util.uniqid.get();this.initializedPixelData=this.originalPixelData=null;this.cropCoordinates={x:0,y:0};this.cropped=false;this.resized=false;this.rotated=false;this.rotationAngle=0;this.pixelStack=[];this.layerStack=[];this.canvasQueue=[];this.currentLayer=null;this.scaled=false;this.analyze=new Analyze(this);this.renderer=new Renderer(this);this.domIsLoaded((function(_this){return function(){_this.parseArguments(args);return _this.setup();};})(this));return this;}else{return new Caman(arguments);}} -Caman.prototype.domIsLoaded=function(cb){var listener;if(Caman.NodeJS){return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{if(document.readyState==="complete"){Log.debug("DOM initialized");return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{listener=(function(_this){return function(){if(document.readyState==="complete"){Log.debug("DOM initialized");return cb.call(_this);}};})(this);return document.addEventListener("readystatechange",listener,false);}}};Caman.prototype.parseArguments=function(args){var key,val,_ref,_results;if(args.length===0){throw"Invalid arguments given";} +Caman.prototype.domIsLoaded=function(cb){var listener;if(Caman.NodeJS){return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{if(document.readyState==="complete"){Log.debug("DOM initialized");return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{listener=(function(_this){return function(){if(document.readyState==="complete"){Log.debug("DOM initialized");return cb.call(_this);}};})(this);return document.addEventListener("readystatechange",listener,false);}}};Caman.prototype.parseArguments=function(args){var key,ref,results,val;if(args.length===0){throw"Invalid arguments given";} this.initObj=null;this.initType=null;this.imageUrl=null;this.callback=function(){};this.setInitObject(args[0]);if(args.length===1){return;} switch(typeof args[1]){case"string":this.imageUrl=args[1];break;case"function":this.callback=args[1];} if(args.length===2){return;} -this.callback=args[2];if(args.length===4){_ref=args[4];_results=[];for(key in _ref){if(!__hasProp.call(_ref,key))continue;val=_ref[key];_results.push(this.options[key]=val);} -return _results;}};Caman.prototype.setInitObject=function(obj){if(Caman.NodeJS){this.initObj=obj;this.initType='node';return;} +this.callback=args[2];if(args.length===4){ref=args[4];results=[];for(key in ref){if(!hasProp.call(ref,key))continue;val=ref[key];results.push(this.options[key]=val);} +return results;}};Caman.prototype.setInitObject=function(obj){if(Caman.NodeJS){this.initObj=obj;this.initType='node';return;} if(typeof obj==="object"){this.initObj=obj;}else{this.initObj=$(obj);} if(this.initObj==null){throw"Could not find image or canvas for initialization.";} return this.initType=this.initObj.nodeName.toLowerCase();};Caman.prototype.setup=function(){switch(this.initType){case"node":return this.initNode();case"img":return this.initImage();case"canvas":return this.initCanvas();}};Caman.prototype.initNode=function(){Log.debug("Initializing for NodeJS");if(typeof this.initObj==="string"&&this.initObj.match(/^https?:\/\//)){return this.readFromHttp(this.initObj,this.nodeFileReady);}else if(typeof this.initObj==="string"){return fs.readFile(this.initObj,this.nodeFileReady);}else{return this.nodeFileReady(null,this.initObj);}};Caman.prototype.readFromHttp=function(url,callback){var req;Log.debug("Fetching image from "+url);req=http.get(url,function(res){var buf;buf='';res.setEncoding('binary');res.on('data',function(chunk){return buf+=chunk;});return res.on('end',function(){return callback(null,new Buffer(buf,'binary'));});});return req.on('error',callback);};Caman.prototype.nodeFileReady=function(err,data){if(err){throw err;} @@ -37,55 +37,55 @@ this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initC if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} -return this.finishInit();};Caman.prototype.finishInit=function(){var i,pixel,_i,_len,_ref;if(this.context==null){this.context=this.canvas.getContext('2d');} +return this.finishInit();};Caman.prototype.finishInit=function(){var i,len,o,pixel,ref;if(this.context==null){this.context=this.canvas.getContext('2d');} if(this.renderingContext==null){this.renderingContext=this.renderingCanvas.getContext('2d');} this.originalWidth=this.preScaledWidth=this.width=this.canvas.width;this.originalHeight=this.preScaledHeight=this.height=this.canvas.height;this.hiDPIAdjustments();if(!this.hasId()){this.assignId();} if(this.image!=null){this.context.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);this.renderingContext.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);} -this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} +this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);ref=this.pixelData;for(i=o=0,len=ref.length;o_ref;i=0<=_ref?++_i:--_i){divisor+=adjust[i];}} -this.renderer.add({type:Filter.Type.Kernel,name:name,adjust:adjust,divisor:divisor,bias:bias});return this;};Caman.prototype.processPlugin=function(plugin,args){this.renderer.add({type:Filter.Type.Plugin,plugin:plugin,args:args});return this;};Caman.prototype.newLayer=function(callback){var layer;layer=new Layer(this);this.canvasQueue.push(layer);this.renderer.add({type:Filter.Type.LayerDequeue});callback.call(layer);this.renderer.add({type:Filter.Type.LayerFinished});return this;};Caman.prototype.executeLayer=function(layer){return this.pushContext(layer);};Caman.prototype.pushContext=function(layer){this.layerStack.push(this.currentLayer);this.pixelStack.push(this.pixelData);this.currentLayer=layer;return this.pixelData=layer.pixelData;};Caman.prototype.popContext=function(){this.pixelData=this.pixelStack.pop();return this.currentLayer=this.layerStack.pop();};Caman.prototype.applyCurrentLayer=function(){return this.currentLayer.applyToParent();};return Caman;})(Module);Root.Caman=Caman;Caman.Analyze=(function(){function Analyze(c){this.c=c;} -Analyze.prototype.calculateLevels=function(){var i,levels,numPixels,_i,_j,_k,_ref;levels={r:{},g:{},b:{}};for(i=_i=0;_i<=255;i=++_i){levels.r[i]=0;levels.g[i]=0;levels.b[i]=0;} -for(i=_j=0,_ref=this.c.pixelData.length;_j<_ref;i=_j+=4){levels.r[this.c.pixelData[i]]++;levels.g[this.c.pixelData[i+1]]++;levels.b[this.c.pixelData[i+2]]++;} -numPixels=this.c.pixelData.length/4;for(i=_k=0;_k<=255;i=++_k){levels.r[i]/=numPixels;levels.g[i]/=numPixels;levels.b[i]/=numPixels;} -return levels;};return Analyze;})();Analyze=Caman.Analyze;Caman.DOMUpdated=function(){var img,imgs,parser,_i,_len,_results;imgs=document.querySelectorAll("img[data-caman]");if(!(imgs.length>0)){return;} -_results=[];for(_i=0,_len=imgs.length;_i<_len;_i++){img=imgs[_i];_results.push(parser=new CamanParser(img,function(){this.parse();return this.execute();}));} -return _results;};if(Caman.autoload){(function(){if(document.readyState==="complete"){return Caman.DOMUpdated();}else{return document.addEventListener("DOMContentLoaded",Caman.DOMUpdated,false);}})();} +if(divisor==null){divisor=0;for(i=o=0,ref=adjust.length;0<=ref?oref;i=0<=ref?++o:--o){divisor+=adjust[i];}} +this.renderer.add({type:Filter.Type.Kernel,name:name,adjust:adjust,divisor:divisor,bias:bias});return this;};Caman.prototype.processPlugin=function(plugin,args){this.renderer.add({type:Filter.Type.Plugin,plugin:plugin,args:args});return this;};Caman.prototype.newLayer=function(callback){var layer;layer=new Layer(this);this.canvasQueue.push(layer);this.renderer.add({type:Filter.Type.LayerDequeue});callback.call(layer);this.renderer.add({type:Filter.Type.LayerFinished});return this;};Caman.prototype.executeLayer=function(layer){return this.pushContext(layer);};Caman.prototype.pushContext=function(layer){this.layerStack.push(this.currentLayer);this.pixelStack.push(this.pixelData);this.currentLayer=layer;return this.pixelData=layer.pixelData;};Caman.prototype.popContext=function(){this.pixelData=this.pixelStack.pop();return this.currentLayer=this.layerStack.pop();};Caman.prototype.applyCurrentLayer=function(){return this.currentLayer.applyToParent();};return Caman;})(Module);Root.Caman=Caman;Caman.Analyze=(function(){function Analyze(c1){this.c=c1;} +Analyze.prototype.calculateLevels=function(){var i,levels,numPixels,o,ref,u,w;levels={r:{},g:{},b:{}};for(i=o=0;o<=255;i=++o){levels.r[i]=0;levels.g[i]=0;levels.b[i]=0;} +for(i=u=0,ref=this.c.pixelData.length;u0)){return;} +results=[];for(o=0,len=imgs.length;o0)){return;} -r=new RegExp(INST_REGEX);_results=[];for(_i=0,_len=unparsedInstructions.length;_i<_len;_i++){inst=unparsedInstructions[_i];_ref=inst.match(r),m=_ref[0],filter=_ref[1],args=_ref[2];instFunc=new Function("return function() { this."+filter+"("+args+"); };");try{func=instFunc();_results.push(func.call(this.caman));}catch(_error){e=_error;_results.push(Log.debug(e));}} -return _results;};CamanParser.prototype.execute=function(){var ele;ele=this.ele;return this.caman.render(function(){return ele.parentNode.replaceChild(this.toImage(),ele);});};return CamanParser;})();Caman.Blender=(function(){function Blender(){} +CamanParser.prototype.parse=function(){var args,e,filter,func,inst,instFunc,len,m,o,r,ref,results,unparsedInstructions;this.ele=this.caman.canvas;r=new RegExp(INST_REGEX,'g');unparsedInstructions=this.dataStr.match(r);if(!(unparsedInstructions.length>0)){return;} +r=new RegExp(INST_REGEX);results=[];for(o=0,len=unparsedInstructions.length;o1){next=[];for(j=_j=0,_ref=prev.length-2;0<=_ref?_j<=_ref:_j>=_ref;j=0<=_ref?++_j:--_j){next.push([lerp(prev[j][0],prev[j+1][0],t),lerp(prev[j][1],prev[j+1][1],t)]);} +bezier={};lerp=function(a,b,t){return a*(1-t)+b*t;};clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};for(i=o=0;o<1000;i=++o){t=i/1000;prev=controlPoints;while(prev.length>1){next=[];for(j=u=0,ref=prev.length-2;0<=ref?u<=ref:u>=ref;j=0<=ref?++u:--u){next.push([lerp(prev[j][0],prev[j+1][0],t),lerp(prev[j][1],prev[j+1][1],t)]);} prev=next;} bezier[Math.round(prev[0][0])]=Math.round(clamp(prev[0][1],lowBound,highBound));} endX=controlPoints[controlPoints.length-1][0];bezier=Caman.Calculate.missingValues(bezier,endX);if(bezier[endX]==null){bezier[endX]=bezier[endX-1];} -return bezier;};Calculate.hermite=function(controlPoints,lowBound,highBound){var add,clamp,count,endX,fac0,fac1,fac2,fac3,i,j,lerp,m0,m1,mul,p,p0,p1,pointsPerSegment,pointsPerStep,pos,ret,sub,t,_i,_j,_ref;if(controlPoints.length<2){throw"Invalid number of arguments to hermite";} -ret={};lerp=function(a,b,t){return a*(1-t)+b*t;};add=(function(_this){return function(a,b,c,d){return[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]];};})(this);mul=(function(_this){return function(a,b){return[a[0]*b[0],a[1]*b[1]];};})(this);sub=(function(_this){return function(a,b){return[a[0]-b[0],a[1]-b[1]];};})(this);clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};count=0;for(i=_i=0,_ref=controlPoints.length-2;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){p0=controlPoints[i];p1=controlPoints[i+1];pointsPerSegment=p1[0]-p0[0];pointsPerStep=1/pointsPerSegment;if(i===controlPoints.length-2){pointsPerStep=1/(pointsPerSegment-1);} -p=i>0?controlPoints[i-1]:p0;m0=mul(sub(p1,p),[0.5,0.5]);p=i=pointsPerSegment;j=0<=pointsPerSegment?++_j:--_j){t=j*pointsPerStep;fac0=2.0*t*t*t-3.0*t*t+1.0;fac1=t*t*t-2.0*t*t+t;fac2=-2.0*t*t*t+3.0*t*t;fac3=t*t*t-t*t;pos=add(mul(p0,[fac0,fac0]),mul(m0,[fac1,fac1]),mul(p1,[fac2,fac2]),mul(m1,[fac3,fac3]));ret[Math.round(pos[0])]=Math.round(clamp(pos[1],lowBound,highBound));count+=1;}} -endX=controlPoints[controlPoints.length-1][0];ret=Caman.Calculate.missingValues(ret,endX);return ret;};Calculate.missingValues=function(values,endX){var i,j,leftCoord,ret,rightCoord,_i,_j;if(Object.keys(values).length=endX;i=0<=endX?++_i:--_i){if(values[i]!=null){ret[i]=values[i];}else{leftCoord=[i-1,ret[i-1]];for(j=_j=i;i<=endX?_j<=endX:_j>=endX;j=i<=endX?++_j:--_j){if(values[j]!=null){rightCoord=[j,values[j]];break;}} -ret[i]=leftCoord[1]+((rightCoord[1]-leftCoord[1])/(rightCoord[0]-leftCoord[0]))*(i-leftCoord[0]);}} +return bezier;};Calculate.hermite=function(controlPoints,lowBound,highBound){var add,clamp,count,endX,fac0,fac1,fac2,fac3,i,j,lerp,m0,m1,mul,o,p,p0,p1,pointsPerSegment,pointsPerStep,pos,ref,ref1,ret,sub,t,u;if(controlPoints.length<2){throw"Invalid number of arguments to hermite";} +ret={};lerp=function(a,b,t){return a*(1-t)+b*t;};add=(function(_this){return function(a,b,c,d){return[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]];};})(this);mul=(function(_this){return function(a,b){return[a[0]*b[0],a[1]*b[1]];};})(this);sub=(function(_this){return function(a,b){return[a[0]-b[0],a[1]-b[1]];};})(this);clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};count=0;for(i=o=0,ref=controlPoints.length-2;0<=ref?o<=ref:o>=ref;i=0<=ref?++o:--o){p0=controlPoints[i];p1=controlPoints[i+1];pointsPerSegment=p1[0]-p0[0];pointsPerStep=1/pointsPerSegment;if(i===controlPoints.length-2){pointsPerStep=1/(pointsPerSegment-1);} +p=i>0?controlPoints[i-1]:p0;m0=mul(sub(p1,p),[0.5,0.5]);p=i=ref1;j=0<=ref1?++u:--u){t=j*pointsPerStep;fac0=2.0*t*t*t-3.0*t*t+1.0;fac1=t*t*t-2.0*t*t+t;fac2=-2.0*t*t*t+3.0*t*t;fac3=t*t*t-t*t;pos=add(mul(p0,[fac0,fac0]),mul(m0,[fac1,fac1]),mul(p1,[fac2,fac2]),mul(m1,[fac3,fac3]));ret[Math.round(pos[0])]=Math.round(clamp(pos[1],lowBound,highBound));count+=1;}} +endX=controlPoints[controlPoints.length-1][0];ret=Caman.Calculate.missingValues(ret,endX);return ret;};Calculate.missingValues=function(values,endX){var i,j,leftCoord,o,ref,ref1,ref2,ret,rightCoord,u;if(Object.keys(values).length=ref;i=0<=ref?++o:--o){if(values[i]!=null){ret[i]=values[i];}else{leftCoord=[i-1,ret[i-1]];for(j=u=ref1=i,ref2=endX;ref1<=ref2?u<=ref2:u>=ref2;j=ref1<=ref2?++u:--u){if(values[j]!=null){rightCoord=[j,values[j]];break;}} +if(rightCoord){ret[i]=leftCoord[1]+((rightCoord[1]-leftCoord[1])/(rightCoord[0]-leftCoord[0]))*(i-leftCoord[0]);}}} return ret;} return values;};return Calculate;})();Calculate=Caman.Calculate;Caman.Convert=(function(){function Convert(){} Convert.hexToRGB=function(hex){var b,g,r;if(hex.charAt(0)==="#"){hex=hex.substr(1);} @@ -116,33 +116,33 @@ if(y>0.2068965517){y=y*y*y;}else{y=0.1284185493*(y-0.1379310345);} if(z>0.2068965517){z=z*z*z;}else{z=0.1284185493*(z-0.1379310345);} return{x:x*95.047,y:y*100.0,z:z*108.883};};Convert.rgbToLab=function(r,g,b){var xyz;if(typeof r==="object"){g=r.g;b=r.b;r=r.r;} xyz=this.rgbToXYZ(r,g,b);return this.xyzToLab(xyz);};Convert.labToRGB=function(l,a,b){};return Convert;})();Convert=Caman.Convert;Caman.Event=(function(){function Event(){} -Event.events={};Event.types=["processStart","processComplete","renderStart","renderFinished","blockStarted","blockFinished"];Event.trigger=function(target,type,data){var event,_i,_len,_ref,_results;if(data==null){data=null;} -if(this.events[type]&&this.events[type].length){_ref=this.events[type];_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){event=_ref[_i];if(event.target===null||target.id===event.target.id){_results.push(event.fn.call(target,data));}else{_results.push(void 0);}} -return _results;}};Event.listen=function(target,type,fn){var _fn,_type;if(typeof target==="string"){_type=target;_fn=type;target=null;type=_type;fn=_fn;} -if(__indexOf.call(this.types,type)<0){return false;} +Event.events={};Event.types=["processStart","processComplete","renderStart","renderFinished","blockStarted","blockFinished"];Event.trigger=function(target,type,data){var event,len,o,ref,results;if(data==null){data=null;} +if(this.events[type]&&this.events[type].length){ref=this.events[type];results=[];for(o=0,len=ref.length;o_ref;i=0<=_ref?++_i:--_i){start=i*blockN;end=start+(i===Renderer.Blocks-1?lastBlockN:blockN);if(Caman.NodeJS){f=Fiber((function(_this){return function(){return fn.call(_this,i,start,end);};})(this));bnum=f.run();_results.push(this.blockFinished(bnum));}else{_results.push(setTimeout((function(_this){return function(i,start,end){return function(){return fn.call(_this,i,start,end);};};})(this)(i,start,end),0));}} -return _results;};Renderer.prototype.executeFilter=function(){Event.trigger(this.c,"processStart",this.currentJob);if(this.currentJob.type===Filter.Type.Single){return this.eachBlock(this.renderBlock);}else{return this.eachBlock(this.renderKernel);}};Renderer.prototype.executePlugin=function(){Log.debug("Executing plugin "+this.currentJob.plugin);Plugin.execute(this.c,this.currentJob.plugin,this.currentJob.args);Log.debug("Plugin "+this.currentJob.plugin+" finished!");return this.processNext();};Renderer.prototype.renderBlock=function(bnum,start,end){var i,pixel,_i;Log.debug("Block #"+bnum+" - Filter: "+this.currentJob.name+", Start: "+start+", End: "+end);Event.trigger(this.c,"blockStarted",{blockNum:bnum,totalBlocks:Renderer.Blocks,startPixel:start,endPixel:end});pixel=new Pixel();pixel.setContext(this.c);for(i=_i=start;_i=builder;j=-builder<=builder?++_j:--_j){for(k=_k=builder;builder<=-builder?_k<=-builder:_k>=-builder;k=builder<=-builder?++_k:--_k){p=pixel.getPixelRelative(j,k);kernel[builderIndex*3]=p.r;kernel[builderIndex*3+1]=p.g;kernel[builderIndex*3+2]=p.b;builderIndex++;}} +this.currentJob=this.renderQueue.shift();switch(this.currentJob.type){case Filter.Type.LayerDequeue:layer=this.c.canvasQueue.shift();this.c.executeLayer(layer);return this.processNext();case Filter.Type.LayerFinished:this.c.applyCurrentLayer();this.c.popContext();return this.processNext();case Filter.Type.LoadOverlay:return this.loadOverlay(this.currentJob.layer,this.currentJob.src);case Filter.Type.Plugin:return this.executePlugin();default:return this.executeFilter();}};Renderer.prototype.execute=function(callback){this.finishedFn=callback;this.modPixelData=Util.dataArray(this.c.pixelData.length);return this.processNext();};Renderer.prototype.eachBlock=function(fn){var blockN,blockPixelLength,bnum,end,f,i,lastBlockN,n,o,ref,results,start;this.blocksDone=0;n=this.c.pixelData.length;blockPixelLength=Math.floor((n/4)/Renderer.Blocks);blockN=blockPixelLength*4;lastBlockN=blockN+((n/4)%Renderer.Blocks)*4;results=[];for(i=o=0,ref=Renderer.Blocks;0<=ref?oref;i=0<=ref?++o:--o){start=i*blockN;end=start+(i===Renderer.Blocks-1?lastBlockN:blockN);if(Caman.NodeJS){f=Fiber((function(_this){return function(){return fn.call(_this,i,start,end);};})(this));bnum=f.run();results.push(this.blockFinished(bnum));}else{results.push(setTimeout((function(_this){return function(i,start,end){return function(){return fn.call(_this,i,start,end);};};})(this)(i,start,end),0));}} +return results;};Renderer.prototype.executeFilter=function(){Event.trigger(this.c,"processStart",this.currentJob);if(this.currentJob.type===Filter.Type.Single){return this.eachBlock(this.renderBlock);}else{return this.eachBlock(this.renderKernel);}};Renderer.prototype.executePlugin=function(){Log.debug("Executing plugin "+this.currentJob.plugin);Plugin.execute(this.c,this.currentJob.plugin,this.currentJob.args);Log.debug("Plugin "+this.currentJob.plugin+" finished!");return this.processNext();};Renderer.prototype.renderBlock=function(bnum,start,end){var i,o,pixel,ref,ref1;Log.debug("Block #"+bnum+" - Filter: "+this.currentJob.name+", Start: "+start+", End: "+end);Event.trigger(this.c,"blockStarted",{blockNum:bnum,totalBlocks:Renderer.Blocks,startPixel:start,endPixel:end});pixel=new Pixel();pixel.setContext(this.c);for(i=o=ref=start,ref1=end;o=ref3;j=ref2<=ref3?++u:--u){for(k=w=ref4=builder,ref5=-builder;ref4<=ref5?w<=ref5:w>=ref5;k=ref4<=ref5?++w:--w){p=pixel.getPixelRelative(j,k);kernel[builderIndex*3]=p.r;kernel[builderIndex*3+1]=p.g;kernel[builderIndex*3+2]=p.b;builderIndex++;}} res=this.processKernel(adjust,kernel,divisor,bias);this.modPixelData[i]=Util.clampRGB(res.r);this.modPixelData[i+1]=Util.clampRGB(res.g);this.modPixelData[i+2]=Util.clampRGB(res.b);this.modPixelData[i+3]=this.c.pixelData[i+3];} -if(Caman.NodeJS){return Fiber["yield"](bnum);}else{return this.blockFinished(bnum);}};Renderer.prototype.blockFinished=function(bnum){var i,_i,_ref;if(bnum>=0){Log.debug("Block #"+bnum+" finished! Filter: "+this.currentJob.name);} -this.blocksDone++;Event.trigger(this.c,"blockFinished",{blockNum:bnum,blocksFinished:this.blocksDone,totalBlocks:Renderer.Blocks});if(this.blocksDone===Renderer.Blocks){if(this.currentJob.type===Filter.Type.Kernel){for(i=_i=0,_ref=this.c.pixelData.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){this.c.pixelData[i]=this.modPixelData[i];}} +if(Caman.NodeJS){return Fiber["yield"](bnum);}else{return this.blockFinished(bnum);}};Renderer.prototype.blockFinished=function(bnum){var i,o,ref;if(bnum>=0){Log.debug("Block #"+bnum+" finished! Filter: "+this.currentJob.name);} +this.blocksDone++;Event.trigger(this.c,"blockFinished",{blockNum:bnum,blocksFinished:this.blocksDone,totalBlocks:Renderer.Blocks});if(this.blocksDone===Renderer.Blocks){if(this.currentJob.type===Filter.Type.Kernel){for(i=o=0,ref=this.c.pixelData.length;0<=ref?oref;i=0<=ref?++o:--o){this.c.pixelData[i]=this.modPixelData[i];}} if(bnum>=0){Log.debug("Filter "+this.currentJob.name+" finished!");} -Event.trigger(this.c,"processComplete",this.currentJob);return this.processNext();}};Renderer.prototype.processKernel=function(adjust,kernel,divisor,bias){var i,val,_i,_ref;val={r:0,g:0,b:0};for(i=_i=0,_ref=adjust.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){val.r+=adjust[i]*kernel[i*3];val.g+=adjust[i]*kernel[i*3+1];val.b+=adjust[i]*kernel[i*3+2];} +Event.trigger(this.c,"processComplete",this.currentJob);return this.processNext();}};Renderer.prototype.processKernel=function(adjust,kernel,divisor,bias){var i,o,ref,val;val={r:0,g:0,b:0};for(i=o=0,ref=adjust.length;0<=ref?oref;i=0<=ref?++o:--o){val.r+=adjust[i]*kernel[i*3];val.g+=adjust[i]*kernel[i*3+1];val.b+=adjust[i]*kernel[i*3+2];} val.r=(val.r/divisor)+bias;val.g=(val.g/divisor)+bias;val.b=(val.b/divisor)+bias;return val;};Renderer.prototype.loadOverlay=function(layer,src){var img,proxyUrl;img=new Image();img.onload=(function(_this){return function(){layer.context.drawImage(img,0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.imageData=layer.context.getImageData(0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.pixelData=layer.imageData.data;_this.c.pixelData=layer.pixelData;return _this.processNext();};})(this);proxyUrl=IO.remoteCheck(src);return img.src=proxyUrl!=null?proxyUrl:src;};return Renderer;})();Renderer=Caman.Renderer;Caman.Store=(function(){function Store(){} Store.items={};Store.has=function(search){return this.items[search]!=null;};Store.get=function(search){return this.items[search];};Store.put=function(name,obj){return this.items[name]=obj;};Store.execute=function(search,callback){setTimeout((function(_this){return function(){return callback.call(_this.get(search),_this.get(search));};})(this),0);return this.get(search);};Store.flush=function(name){if(name==null){name=false;} if(name){return delete this.items[name];}else{return this.items={};}};return Store;})();Store=Caman.Store;Blender.register("normal",function(rgbaLayer,rgbaParent){return{r:rgbaLayer.r,g:rgbaLayer.g,b:rgbaLayer.b};});Blender.register("multiply",function(rgbaLayer,rgbaParent){return{r:(rgbaLayer.r*rgbaParent.r)/255,g:(rgbaLayer.g*rgbaParent.g)/255,b:(rgbaLayer.b*rgbaParent.b)/255};});Blender.register("screen",function(rgbaLayer,rgbaParent){return{r:255-(((255-rgbaLayer.r)*(255-rgbaParent.r))/255),g:255-(((255-rgbaLayer.g)*(255-rgbaParent.g))/255),b:255-(((255-rgbaLayer.b)*(255-rgbaParent.b))/255)};});Blender.register("overlay",function(rgbaLayer,rgbaParent){var result;result={};result.r=rgbaParent.r>128?255-2*(255-rgbaLayer.r)*(255-rgbaParent.r)/255:(rgbaParent.r*rgbaLayer.r*2)/255;result.g=rgbaParent.g>128?255-2*(255-rgbaLayer.g)*(255-rgbaParent.g)/255:(rgbaParent.g*rgbaLayer.g*2)/255;result.b=rgbaParent.b>128?255-2*(255-rgbaLayer.b)*(255-rgbaParent.b)/255:(rgbaParent.b*rgbaLayer.b*2)/255;return result;});Blender.register("difference",function(rgbaLayer,rgbaParent){return{r:rgbaLayer.r-rgbaParent.r,g:rgbaLayer.g-rgbaParent.g,b:rgbaLayer.b-rgbaParent.b};});Blender.register("addition",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r+rgbaLayer.r,g:rgbaParent.g+rgbaLayer.g,b:rgbaParent.b+rgbaLayer.b};});Blender.register("exclusion",function(rgbaLayer,rgbaParent){return{r:128-2*(rgbaParent.r-128)*(rgbaLayer.r-128)/255,g:128-2*(rgbaParent.g-128)*(rgbaLayer.g-128)/255,b:128-2*(rgbaParent.b-128)*(rgbaLayer.b-128)/255};});Blender.register("softLight",function(rgbaLayer,rgbaParent){var result;result={};result.r=rgbaParent.r>128?255-((255-rgbaParent.r)*(255-(rgbaLayer.r-128)))/255:(rgbaParent.r*(rgbaLayer.r+128))/255;result.g=rgbaParent.g>128?255-((255-rgbaParent.g)*(255-(rgbaLayer.g-128)))/255:(rgbaParent.g*(rgbaLayer.g+128))/255;result.b=rgbaParent.b>128?255-((255-rgbaParent.b)*(255-(rgbaLayer.b-128)))/255:(rgbaParent.b*(rgbaLayer.b+128))/255;return result;});Blender.register("lighten",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r>rgbaLayer.r?rgbaParent.r:rgbaLayer.r,g:rgbaParent.g>rgbaLayer.g?rgbaParent.g:rgbaLayer.g,b:rgbaParent.b>rgbaLayer.b?rgbaParent.b:rgbaLayer.b};});Blender.register("darken",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r>rgbaLayer.r?rgbaLayer.r:rgbaParent.r,g:rgbaParent.g>rgbaLayer.g?rgbaLayer.g:rgbaParent.g,b:rgbaParent.b>rgbaLayer.b?rgbaLayer.b:rgbaParent.b};});Filter.register("fillColor",function(){var color;if(arguments.length===1){color=Convert.hexToRGB(arguments[0]);}else{color={r:arguments[0],g:arguments[1],b:arguments[2]};} @@ -174,25 +176,25 @@ if(rgba.b!==max){rgba.b+=(max-rgba.b)*adjust;} return rgba;});});Filter.register("vibrance",function(adjust){adjust*=-1;return this.process("vibrance",function(rgba){var amt,avg,max;max=Math.max(rgba.r,rgba.g,rgba.b);avg=(rgba.r+rgba.g+rgba.b)/3;amt=((Math.abs(max-avg)*2/255)*adjust)/100;if(rgba.r!==max){rgba.r+=(max-rgba.r)*amt;} if(rgba.g!==max){rgba.g+=(max-rgba.g)*amt;} if(rgba.b!==max){rgba.b+=(max-rgba.b)*amt;} -return rgba;});});Filter.register("greyscale",function(adjust){return this.process("greyscale",function(rgba){var avg;avg=Calculate.luminance(rgba);rgba.r=avg;rgba.g=avg;rgba.b=avg;return rgba;});});Filter.register("contrast",function(adjust){adjust=Math.pow((adjust+100)/100,2);return this.process("contrast",function(rgba){rgba.r/=255;rgba.r-=0.5;rgba.r*=adjust;rgba.r+=0.5;rgba.r*=255;rgba.g/=255;rgba.g-=0.5;rgba.g*=adjust;rgba.g+=0.5;rgba.g*=255;rgba.b/=255;rgba.b-=0.5;rgba.b*=adjust;rgba.b+=0.5;rgba.b*=255;return rgba;});});Filter.register("hue",function(adjust){return this.process("hue",function(rgba){var b,g,h,hsv,r,_ref;hsv=Convert.rgbToHSV(rgba.r,rgba.g,rgba.b);h=hsv.h*100;h+=Math.abs(adjust);h=h%100;h/=100;hsv.h=h;_ref=Convert.hsvToRGB(hsv.h,hsv.s,hsv.v),r=_ref.r,g=_ref.g,b=_ref.b;rgba.r=r;rgba.g=g;rgba.b=b;return rgba;});});Filter.register("colorize",function(){var level,rgb;if(arguments.length===2){rgb=Convert.hexToRGB(arguments[0]);level=arguments[1];}else if(arguments.length===4){rgb={r:arguments[0],g:arguments[1],b:arguments[2]};level=arguments[3];} +return rgba;});});Filter.register("greyscale",function(adjust){return this.process("greyscale",function(rgba){var avg;avg=Calculate.luminance(rgba);rgba.r=avg;rgba.g=avg;rgba.b=avg;return rgba;});});Filter.register("contrast",function(adjust){adjust=Math.pow((adjust+100)/100,2);return this.process("contrast",function(rgba){rgba.r/=255;rgba.r-=0.5;rgba.r*=adjust;rgba.r+=0.5;rgba.r*=255;rgba.g/=255;rgba.g-=0.5;rgba.g*=adjust;rgba.g+=0.5;rgba.g*=255;rgba.b/=255;rgba.b-=0.5;rgba.b*=adjust;rgba.b+=0.5;rgba.b*=255;return rgba;});});Filter.register("hue",function(adjust){return this.process("hue",function(rgba){var b,g,h,hsv,r,ref;hsv=Convert.rgbToHSV(rgba.r,rgba.g,rgba.b);h=hsv.h*100;h+=Math.abs(adjust);h=h%100;h/=100;hsv.h=h;ref=Convert.hsvToRGB(hsv.h,hsv.s,hsv.v),r=ref.r,g=ref.g,b=ref.b;rgba.r=r;rgba.g=g;rgba.b=b;return rgba;});});Filter.register("colorize",function(){var level,rgb;if(arguments.length===2){rgb=Convert.hexToRGB(arguments[0]);level=arguments[1];}else if(arguments.length===4){rgb={r:arguments[0],g:arguments[1],b:arguments[2]};level=arguments[3];} return this.process("colorize",function(rgba){rgba.r-=(rgba.r-rgb.r)*(level/100);rgba.g-=(rgba.g-rgb.g)*(level/100);rgba.b-=(rgba.b-rgb.b)*(level/100);return rgba;});});Filter.register("invert",function(){return this.process("invert",function(rgba){rgba.r=255-rgba.r;rgba.g=255-rgba.g;rgba.b=255-rgba.b;return rgba;});});Filter.register("sepia",function(adjust){if(adjust==null){adjust=100;} adjust/=100;return this.process("sepia",function(rgba){rgba.r=Math.min(255,(rgba.r*(1-(0.607*adjust)))+(rgba.g*(0.769*adjust))+(rgba.b*(0.189*adjust)));rgba.g=Math.min(255,(rgba.r*(0.349*adjust))+(rgba.g*(1-(0.314*adjust)))+(rgba.b*(0.168*adjust)));rgba.b=Math.min(255,(rgba.r*(0.272*adjust))+(rgba.g*(0.534*adjust))+(rgba.b*(1-(0.869*adjust))));return rgba;});});Filter.register("gamma",function(adjust){return this.process("gamma",function(rgba){rgba.r=Math.pow(rgba.r/255,adjust)*255;rgba.g=Math.pow(rgba.g/255,adjust)*255;rgba.b=Math.pow(rgba.b/255,adjust)*255;return rgba;});});Filter.register("noise",function(adjust){adjust=Math.abs(adjust)*2.55;return this.process("noise",function(rgba){var rand;rand=Calculate.randomRange(adjust*-1,adjust);rgba.r+=rand;rgba.g+=rand;rgba.b+=rand;return rgba;});});Filter.register("clip",function(adjust){adjust=Math.abs(adjust)*2.55;return this.process("clip",function(rgba){if(rgba.r>255-adjust){rgba.r=255;}else if(rgba.r255-adjust){rgba.g=255;}else if(rgba.g255-adjust){rgba.b=255;}else if(rgba.b0){rgba.r+=(255-rgba.r)*options.red;}else{rgba.r-=rgba.r*Math.abs(options.red);}} if(options.green!=null){if(options.green>0){rgba.g+=(255-rgba.g)*options.green;}else{rgba.g-=rgba.g*Math.abs(options.green);}} if(options.blue!=null){if(options.blue>0){rgba.b+=(255-rgba.b)*options.blue;}else{rgba.b-=rgba.b*Math.abs(options.blue);}} -return rgba;});});Filter.register("curves",function(){var algo,bezier,chans,cps,end,i,last,start,_i,_j,_ref,_ref1;chans=arguments[0],cps=2<=arguments.length?__slice.call(arguments,1):[];last=cps[cps.length-1];if(typeof last==="function"){algo=last;cps.pop();}else if(typeof last==="string"){algo=Calculate[last];cps.pop();}else{algo=Calculate.bezier;} +return rgba;});});Filter.register("curves",function(){var algo,bezier,chans,cps,end,i,last,o,ref,ref1,start,u;chans=arguments[0],cps=2<=arguments.length?slice1.call(arguments,1):[];last=cps[cps.length-1];if(typeof last==="function"){algo=last;cps.pop();}else if(typeof last==="string"){algo=Calculate[last];cps.pop();}else{algo=Calculate.bezier;} if(typeof chans==="string"){chans=chans.split("");} if(chans[0]==="v"){chans=['r','g','b'];} if(cps.length<2){throw"Invalid number of arguments to curves filter";} -bezier=algo(cps,0,255);start=cps[0];if(start[0]>0){for(i=_i=0,_ref=start[0];0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){bezier[i]=start[1];}} -end=cps[cps.length-1];if(end[0]<255){for(i=_j=_ref1=end[0];_ref1<=255?_j<=255:_j>=255;i=_ref1<=255?++_j:--_j){bezier[i]=end[1];}} -return this.process("curves",function(rgba){var _k,_ref2;for(i=_k=0,_ref2=chans.length;0<=_ref2?_k<_ref2:_k>_ref2;i=0<=_ref2?++_k:--_k){rgba[chans[i]]=bezier[rgba[chans[i]]];} +bezier=algo(cps,0,255);start=cps[0];if(start[0]>0){for(i=o=0,ref=start[0];0<=ref?oref;i=0<=ref?++o:--o){bezier[i]=start[1];}} +end=cps[cps.length-1];if(end[0]<255){for(i=u=ref1=end[0];ref1<=255?u<=255:u>=255;i=ref1<=255?++u:--u){bezier[i]=end[1];}} +return this.process("curves",function(rgba){var ref2,w;for(i=w=0,ref2=chans.length;0<=ref2?wref2;i=0<=ref2?++w:--w){rgba[chans[i]]=bezier[rgba[chans[i]]];} return rgba;});});Filter.register("exposure",function(adjust){var ctrl1,ctrl2,p;p=Math.abs(adjust)/100;ctrl1=[0,255*p];ctrl2=[255-(255*p),255];if(adjust<0){ctrl1=ctrl1.reverse();ctrl2=ctrl2.reverse();} return this.curves('rgb',[0,0],ctrl1,ctrl2,[255,255]);});Caman.Plugin.register("crop",function(width,height,x,y){var canvas,ctx;if(x==null){x=0;} if(y==null){y=0;} @@ -206,7 +208,7 @@ return this.processKernel("Motion Blur",kernel);});Caman.Filter.register("sharpe amt/=100;return this.processKernel("Sharpen",[0,-amt,0,-amt,4*amt+1,-amt,0,-amt,0]);});vignetteFilters={brightness:function(rgba,amt,opts){rgba.r=rgba.r-(rgba.r*amt*opts.strength);rgba.g=rgba.g-(rgba.g*amt*opts.strength);rgba.b=rgba.b-(rgba.b*amt*opts.strength);return rgba;},gamma:function(rgba,amt,opts){rgba.r=Math.pow(rgba.r/255,Math.max(10*amt*opts.strength,1))*255;rgba.g=Math.pow(rgba.g/255,Math.max(10*amt*opts.strength,1))*255;rgba.b=Math.pow(rgba.b/255,Math.max(10*amt*opts.strength,1))*255;return rgba;},colorize:function(rgba,amt,opts){rgba.r-=(rgba.r-opts.color.r)*amt;rgba.g-=(rgba.g-opts.color.g)*amt;rgba.b-=(rgba.b-opts.color.b)*amt;return rgba;}};Filter.register("vignette",function(size,strength){var bezier,center,end,start;if(strength==null){strength=60;} if(typeof size==="string"&&size.substr(-1)==="%"){if(this.dimensions.height>this.dimensions.width){size=this.dimensions.width*(parseInt(size.substr(0,size.length-1),10)/100);}else{size=this.dimensions.height*(parseInt(size.substr(0,size.length-1),10)/100);}} strength/=100;center=[this.dimensions.width/2,this.dimensions.height/2];start=Math.sqrt(Math.pow(center[0],2)+Math.pow(center[1],2));end=start-size;bezier=Calculate.bezier([0,1],[30,30],[70,60],[100,80]);return this.process("vignette",function(rgba){var dist,div,loc;loc=rgba.locationXY();dist=Calculate.distance(loc.x,loc.y,center[0],center[1]);if(dist>end){div=Math.max(1,(bezier[Math.round(((dist-end)/size)*100)]/10)*strength);rgba.r=Math.pow(rgba.r/255,div)*255;rgba.g=Math.pow(rgba.g/255,div)*255;rgba.b=Math.pow(rgba.b/255,div)*255;} -return rgba;});});Filter.register("rectangularVignette",function(opts){var defaults,dim,percent,size,_i,_len,_ref;defaults={strength:50,cornerRadius:0,method:'brightness',color:{r:0,g:0,b:0}};opts=Util.extend(defaults,opts);if(!opts.size){return this;}else if(typeof opts.size==="string"){percent=parseInt(opts.size,10)/100;opts.size={width:this.dimensions.width*percent,height:this.dimensions.height*percent};}else if(typeof opts.size==="object"){_ref=["width","height"];for(_i=0,_len=_ref.length;_i<_len;_i++){dim=_ref[_i];if(typeof opts.size[dim]==="string"){opts.size[dim]=this.dimensions[dim]*(parseInt(opts.size[dim],10)/100);}}}else if(opts.size==="number"){size=opts.size;opts.size={width:size,height:size};} +return rgba;});});Filter.register("rectangularVignette",function(opts){var defaults,dim,len,o,percent,ref,size;defaults={strength:50,cornerRadius:0,method:'brightness',color:{r:0,g:0,b:0}};opts=Util.extend(defaults,opts);if(!opts.size){return this;}else if(typeof opts.size==="string"){percent=parseInt(opts.size,10)/100;opts.size={width:this.dimensions.width*percent,height:this.dimensions.height*percent};}else if(typeof opts.size==="object"){ref=["width","height"];for(o=0,len=ref.length;oopts.corners[0].x&&loc.xopts.coords.bottom&&loc.yopts.coords.left&&loc.xopts.corners[3].y&& if(loc.x>opts.corners[0].x&&loc.xopts.coords.top){amt=(loc.y-opts.coords.top)/opts.maxDist;}else if(loc.y>opts.corners[2].y&&loc.yopts.coords.right){amt=(loc.x-opts.coords.right)/opts.maxDist;}else if(loc.x>opts.corners[0].x&&loc.xopts.corners[2].y&&loc.y=opts.corners[0].y){radialDist=Caman.distance(loc.x,loc.y,opts.corners[0].x,opts.corners[0].y);amt=(radialDist-opts.cornerRadius)/opts.maxDist;}else if(loc.x>=opts.corners[1].x&&loc.y>=opts.corners[1].y){radialDist=Caman.distance(loc.x,loc.y,opts.corners[1].x,opts.corners[1].y);amt=(radialDist-opts.cornerRadius)/opts.maxDist;}else if(loc.x>=opts.corners[2].x&&loc.y<=opts.corners[2].y){radialDist=Caman.distance(loc.x,loc.y,opts.corners[2].x,opts.corners[2].y);amt=(radialDist-opts.cornerRadius)/opts.maxDist;}else if(loc.x<=opts.corners[3].x&&loc.y<=opts.corners[3].y){radialDist=Caman.distance(loc.x,loc.y,opts.corners[3].x,opts.corners[3].y);amt=(radialDist-opts.cornerRadius)/opts.maxDist;} if(amt<0){return rgba;} return vignetteFilters[opts.method](rgba,amt,opts);});});(function(){var BlurStack,getLinearGradientMap,getRadialGradientMap,mul_table,shg_table;mul_table=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];shg_table=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];getLinearGradientMap=function(width,height,centerX,centerY,angle,length,mirrored){var cnv,context,gradient,x1,x2,y1,y2;cnv=typeof exports!=="undefined"&&exports!==null?new Canvas():document.createElement('canvas');cnv.width=width;cnv.height=height;x1=centerX+Math.cos(angle)*length*0.5;y1=centerY+Math.sin(angle)*length*0.5;x2=centerX-Math.cos(angle)*length*0.5;y2=centerY-Math.sin(angle)*length*0.5;context=cnv.getContext("2d");gradient=context.createLinearGradient(x1,y1,x2,y2);if(!mirrored){gradient.addColorStop(0,"white");gradient.addColorStop(1,"black");}else{gradient.addColorStop(0,"white");gradient.addColorStop(0.5,"black");gradient.addColorStop(1,"white");} -context.fillStyle=gradient;context.fillRect(0,0,width,height);return context.getImageData(0,0,width,height);};getRadialGradientMap=function(width,height,centerX,centerY,radius1,radius2){var cnv,context,gradient;cnv=typeof exports!=="undefined"&&exports!==null?new Canvas():document.createElement('canvas');cnv.width=width;cnv.height=height;context=cnv.getContext("2d");gradient=context.createRadialGradient(centerX,centerY,radius1,centerX,centerY,radius2);gradient.addColorStop(1,"white");gradient.addColorStop(0,"black");context.fillStyle=gradient;context.fillRect(0,0,width,height);return context.getImageData(0,0,width,height);};BlurStack=function(){this.r=0;this.g=0;this.b=0;this.a=0;return this.next=null;};Caman.Plugin.register("compoundBlur",function(radiusData,radius,increaseFactor,blurLevels){var b_in_sum,b_out_sum,b_sum,blend,currentIndex,div,g_in_sum,g_out_sum,g_sum,height,heightMinus1,i,iblend,idx,imagePixels,index,iradius,lookupValue,mul_sum,p,pb,pg,pixels,pr,r_in_sum,r_out_sum,r_sum,radiusPixels,radiusPlus1,rbs,shg_sum,stack,stackEnd,stackIn,stackOut,stackStart,steps,sumFactor,w4,wh,wh4,width,widthMinus1,x,y,yi,yp,yw,_i,_j,_k,_l,_m,_n,_o,_p,_q,_r;width=this.dimensions.width;height=this.dimensions.height;imagePixels=this.pixelData;radiusPixels=radiusData.data;wh=width*height;wh4=wh<<2;pixels=[];for(i=_i=0;0<=wh4?_iwh4;i=0<=wh4?++_i:--_i){pixels[i]=imagePixels[i];} +context.fillStyle=gradient;context.fillRect(0,0,width,height);return context.getImageData(0,0,width,height);};getRadialGradientMap=function(width,height,centerX,centerY,radius1,radius2){var cnv,context,gradient;cnv=typeof exports!=="undefined"&&exports!==null?new Canvas():document.createElement('canvas');cnv.width=width;cnv.height=height;context=cnv.getContext("2d");gradient=context.createRadialGradient(centerX,centerY,radius1,centerX,centerY,radius2);gradient.addColorStop(1,"white");gradient.addColorStop(0,"black");context.fillStyle=gradient;context.fillRect(0,0,width,height);return context.getImageData(0,0,width,height);};BlurStack=function(){this.r=0;this.g=0;this.b=0;this.a=0;return this.next=null;};Caman.Plugin.register("compoundBlur",function(radiusData,radius,increaseFactor,blurLevels){var aa,ab,ac,ad,ae,af,ag,b_in_sum,b_out_sum,b_sum,blend,currentIndex,div,g_in_sum,g_out_sum,g_sum,height,heightMinus1,i,iblend,idx,imagePixels,index,iradius,lookupValue,mul_sum,o,p,pb,pg,pixels,pr,r_in_sum,r_out_sum,r_sum,radiusPixels,radiusPlus1,rbs,ref,ref1,ref2,ref3,ref4,ref5,ref6,ref7,ref8,ref9,shg_sum,stack,stackEnd,stackIn,stackOut,stackStart,steps,sumFactor,u,w,w4,wh,wh4,width,widthMinus1,x,y,yi,yp,yw;width=this.dimensions.width;height=this.dimensions.height;imagePixels=this.pixelData;radiusPixels=radiusData.data;wh=width*height;wh4=wh<<2;pixels=[];for(i=o=0,ref=wh4;0<=ref?oref;i=0<=ref?++o:--o){pixels[i]=imagePixels[i];} currentIndex=0;steps=blurLevels;blurLevels-=1;while(steps-->=0){iradius=(radius+0.5)|0;if(iradius===0){continue;} if(iradius>256){iradius=256;} -div=iradius+iradius+1;w4=width<<2;widthMinus1=width-1;heightMinus1=height-1;radiusPlus1=iradius+1;sumFactor=radiusPlus1*(radiusPlus1+1)/2;stackStart=new BlurStack();stackEnd=void 0;stack=stackStart;for(i=_j=1;1<=div?_jdiv;i=1<=div?++_j:--_j){stack=stack.next=new BlurStack();if(i===radiusPlus1){stackEnd=stack;}} -stack.next=stackStart;stackIn=null;stackOut=null;yw=yi=0;mul_sum=mul_table[iradius];shg_sum=shg_table[iradius];for(y=_k=0;0<=height?_kheight;y=0<=height?++_k:--_k){r_in_sum=g_in_sum=b_in_sum=r_sum=g_sum=b_sum=0;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=_l=0;0<=radiusPlus1?_lradiusPlus1;i=0<=radiusPlus1?++_l:--_l){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} -for(i=_m=1;1<=radiusPlus1?_mradiusPlus1;i=1<=radiusPlus1?++_m:--_m){p=yi+((widthMinus1width;x=0<=width?++_n:--_n){pixels[yi]=(r_sum*mul_sum)>>shg_sum;pixels[yi+1]=(g_sum*mul_sum)>>shg_sum;pixels[yi+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(yw+((p=x+radiusPlus1)ref1;i=1<=ref1?++u:--u){stack=stack.next=new BlurStack();if(i===radiusPlus1){stackEnd=stack;}} +stack.next=stackStart;stackIn=null;stackOut=null;yw=yi=0;mul_sum=mul_table[iradius];shg_sum=shg_table[iradius];for(y=w=0,ref2=height;0<=ref2?wref2;y=0<=ref2?++w:--w){r_in_sum=g_in_sum=b_in_sum=r_sum=g_sum=b_sum=0;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=aa=0,ref3=radiusPlus1;0<=ref3?aaref3;i=0<=ref3?++aa:--aa){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} +for(i=ab=1,ref4=radiusPlus1;1<=ref4?abref4;i=1<=ref4?++ab:--ab){p=yi+((widthMinus1ref5;x=0<=ref5?++ac:--ac){pixels[yi]=(r_sum*mul_sum)>>shg_sum;pixels[yi+1]=(g_sum*mul_sum)>>shg_sum;pixels[yi+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(yw+((p=x+radiusPlus1)width;x=0<=width?++_o:--_o){g_in_sum=b_in_sum=r_in_sum=g_sum=b_sum=r_sum=0;yi=x<<2;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=_p=0;0<=radiusPlus1?_pradiusPlus1;i=0<=radiusPlus1?++_p:--_p){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} -yp=width;for(i=_q=1;1<=radiusPlus1?_qradiusPlus1;i=1<=radiusPlus1?++_q:--_q){yi=(yp+x)<<2;r_sum+=(stack.r=(pr=pixels[yi]))*(rbs=radiusPlus1-i);g_sum+=(stack.g=(pg=pixels[yi+1]))*rbs;b_sum+=(stack.b=(pb=pixels[yi+2]))*rbs;r_in_sum+=pr;g_in_sum+=pg;b_in_sum+=pb;stack=stack.next;if(iheight;y=0<=height?++_r:--_r){p=yi<<2;pixels[p]=(r_sum*mul_sum)>>shg_sum;pixels[p+1]=(g_sum*mul_sum)>>shg_sum;pixels[p+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(x+(((p=y+radiusPlus1)ref6;x=0<=ref6?++ad:--ad){g_in_sum=b_in_sum=r_in_sum=g_sum=b_sum=r_sum=0;yi=x<<2;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=ae=0,ref7=radiusPlus1;0<=ref7?aeref7;i=0<=ref7?++ae:--ae){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} +yp=width;for(i=af=1,ref8=radiusPlus1;1<=ref8?afref8;i=1<=ref8?++af:--af){yi=(yp+x)<<2;r_sum+=(stack.r=(pr=pixels[yi]))*(rbs=radiusPlus1-i);g_sum+=(stack.g=(pg=pixels[yi+1]))*rbs;b_sum+=(stack.b=(pb=pixels[yi+2]))*rbs;r_in_sum+=pr;g_in_sum+=pg;b_in_sum+=pb;stack=stack.next;if(iref9;y=0<=ref9?++ag:--ag){p=yi<<2;pixels[p]=(r_sum*mul_sum)>>shg_sum;pixels[p+1]=(g_sum*mul_sum)>>shg_sum;pixels[p+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(x+(((p=y+radiusPlus1)-1){idx=i<<2;lookupValue=(radiusPixels[idx+2]&0xff)/255.0*blurLevels;index=lookupValue|0;if(index===currentIndex){blend=256.0*(lookupValue-(lookupValue|0));iblend=256-blend;imagePixels[idx]=(imagePixels[idx]*iblend+pixels[idx]*blend)>>8;imagePixels[idx+1]=(imagePixels[idx+1]*iblend+pixels[idx+1]*blend)>>8;imagePixels[idx+2]=(imagePixels[idx+2]*iblend+pixels[idx+2]*blend)>>8;}else if(index===currentIndex+1){imagePixels[idx]=pixels[idx];imagePixels[idx+1]=pixels[idx+1];imagePixels[idx+2]=pixels[idx+2];}} currentIndex++;} return this;});Caman.Filter.register("tiltShift",function(opts){var defaults,gradient;defaults={center:{x:this.dimensions.width/2,y:this.dimensions.height/2},angle:45,focusWidth:200,startRadius:3,radiusFactor:1.5,steps:3};opts=Util.extend(defaults,opts);opts.angle*=Math.PI/180;gradient=getLinearGradientMap(this.dimensions.width,this.dimensions.height,opts.center.x,opts.center.y,opts.angle,opts.focusWidth,true);return this.processPlugin("compoundBlur",[gradient,opts.startRadius,opts.radiusFactor,opts.steps]);});return Caman.Filter.register("radialBlur",function(opts){var defaults,gradient,radius1,radius2;defaults={size:50,center:{x:this.dimensions.width/2,y:this.dimensions.height/2},startRadius:3,radiusFactor:1.5,steps:3,radius:null};opts=Util.extend(defaults,opts);if(!opts.radius){opts.radius=this.dimensions.widthdiv;i=1<=div?++_i:--_i){stack=stack.next=new BlurStack();if(i===radiusPlus1){stackEnd=stack;}} -stack.next=stackStart;stackIn=null;stackOut=null;yw=yi=0;mul_sum=mul_table[radius];shg_sum=shg_table[radius];for(y=_j=0;0<=height?_jheight;y=0<=height?++_j:--_j){r_in_sum=g_in_sum=b_in_sum=r_sum=g_sum=b_sum=0;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=_k=0;0<=radiusPlus1?_kradiusPlus1;i=0<=radiusPlus1?++_k:--_k){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} -for(i=_l=1;1<=radiusPlus1?_lradiusPlus1;i=1<=radiusPlus1?++_l:--_l){p=yi+((widthMinus1width;x=0<=width?++_m:--_m){pixels[yi]=(r_sum*mul_sum)>>shg_sum;pixels[yi+1]=(g_sum*mul_sum)>>shg_sum;pixels[yi+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(yw+((p=x+radius+1)ref;i=1<=ref?++o:--o){stack=stack.next=new BlurStack();if(i===radiusPlus1){stackEnd=stack;}} +stack.next=stackStart;stackIn=null;stackOut=null;yw=yi=0;mul_sum=mul_table[radius];shg_sum=shg_table[radius];for(y=u=0,ref1=height;0<=ref1?uref1;y=0<=ref1?++u:--u){r_in_sum=g_in_sum=b_in_sum=r_sum=g_sum=b_sum=0;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=w=0,ref2=radiusPlus1;0<=ref2?wref2;i=0<=ref2?++w:--w){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} +for(i=aa=1,ref3=radiusPlus1;1<=ref3?aaref3;i=1<=ref3?++aa:--aa){p=yi+((widthMinus1ref4;x=0<=ref4?++ab:--ab){pixels[yi]=(r_sum*mul_sum)>>shg_sum;pixels[yi+1]=(g_sum*mul_sum)>>shg_sum;pixels[yi+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(yw+((p=x+radius+1)width;x=0<=width?++_n:--_n){g_in_sum=b_in_sum=r_in_sum=g_sum=b_sum=r_sum=0;yi=x<<2;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=_o=0;0<=radiusPlus1?_oradiusPlus1;i=0<=radiusPlus1?++_o:--_o){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} -yp=width;for(i=_p=1;1<=radius?_p<=radius:_p>=radius;i=1<=radius?++_p:--_p){yi=(yp+x)<<2;r_sum+=(stack.r=(pr=pixels[yi]))*(rbs=radiusPlus1-i);g_sum+=(stack.g=(pg=pixels[yi+1]))*rbs;b_sum+=(stack.b=(pb=pixels[yi+2]))*rbs;r_in_sum+=pr;g_in_sum+=pg;b_in_sum+=pb;stack=stack.next;if(iheight;y=0<=height?++_q:--_q){p=yi<<2;pixels[p]=(r_sum*mul_sum)>>shg_sum;pixels[p+1]=(g_sum*mul_sum)>>shg_sum;pixels[p+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(x+(((p=y+radiusPlus1)ref5;x=0<=ref5?++ac:--ac){g_in_sum=b_in_sum=r_in_sum=g_sum=b_sum=r_sum=0;yi=x<<2;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=ad=0,ref6=radiusPlus1;0<=ref6?adref6;i=0<=ref6?++ad:--ad){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} +yp=width;for(i=ae=1,ref7=radius;1<=ref7?ae<=ref7:ae>=ref7;i=1<=ref7?++ae:--ae){yi=(yp+x)<<2;r_sum+=(stack.r=(pr=pixels[yi]))*(rbs=radiusPlus1-i);g_sum+=(stack.g=(pg=pixels[yi+1]))*rbs;b_sum+=(stack.b=(pb=pixels[yi+2]))*rbs;r_in_sum+=pr;g_in_sum+=pg;b_in_sum+=pb;stack=stack.next;if(iref8;y=0<=ref8?++af:--af){p=yi<<2;pixels[p]=(r_sum*mul_sum)>>shg_sum;pixels[p+1]=(g_sum*mul_sum)>>shg_sum;pixels[p+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(x+(((p=y+radiusPlus1)35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(A(){M $,4K,2m,2b,D,5c,3I,1X,2L,6x,R,2V,4S,3b,1Y,3M,1Z,2t,1R,7O,32,1u,fs,6N,81,5d,8V,6F=[].gv||A(d5){W(M i=0,l=o.P;iE){u E}u 2f};1u.52=A(4P,3N,G){M 6J,H,1n,K,3S,1o;B(G==L){G={}}K=4P.fU;1o=[];W(H=0,1n=K.P;H<1n;H++){6J=K[H];B((G.7g!=L)&&(3S=6J.9Q,6F.1x(G.7g,3S)>=0)){5G}1o.2j(3N.bh(6J.9Q,6J.fP))}u 1o};1u.6b=A(P){B(P==L){P=0}B(D.2Z||(4z.ca!=L)){u 1y ca(P)}u 1y 5u(P)};u 1u})();B(1s 2h!=="3T"&&2h!==L){7O=2h;3I=6u(\'I\');4S=3I.4S;6x=6u(\'fO\');fs=6u(\'fs\');6N=6u(\'6N\')}S{7O=4z}D=(A(d4){aP(D,d4);D.9E={a9:"4.1.2",aM:"7/27/fJ"};D.bf=2k;D.5Q=2X;D.9C="c3";D.7F="";D.c5="fH";D.2Z=1s 2h!=="3T"&&2h!==L;D.ce=!D.2Z;D.5M=A(){u"fG "+D.9E.a9+", fF "+D.9E.aM};D.9z=A(I){B(D.2Z){u 2X}B(1s I==="3i"){I=$(I)}B(!((I!=L)&&(I.5F!=L))){u L}u I.5F(\'2a-3R-2W\')};A D(){o.5D=8Q(o.5D,o);M 1l,1Q,2W;B(1k.P===0){2K"5z 1k";}B(o aT D){o.5y=o.5y.9y(o);o.6R=o.6R.9y(o);1l=1k[0];B(!D.2Z){2W=4u(D.9z(1l[0]),10);1Q=1s 1l[1]==="A"?1l[1]:1s 1l[2]==="A"?1l[2]:A(){};B(!bI(2W)&&32.bJ(2W)){u 32.48(2W,1Q)}}o.2W=1u.9L.4p();o.7G=o.4Q=L;o.9w={x:0,y:0};o.cr=2k;o.9u=2k;o.cL=2k;o.cM=0;o.6U=[];o.9t=[];o.9s=[];o.6w=L;o.d6=2k;o.fz=1y 4K(o);o.4E=1y 1R(o);o.ad((A(1r){u A(){1r.ar(1l);u 1r.as()}})(o));u o}S{u 1y D(1k)}}D.N.ad=A(cb){M 9r;B(D.2Z){u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{B(2o.9p==="7J"){1Y.2u("aU aW");u 7I((A(1r){u A(){u cb.1x(1r)}})(o),0)}S{9r=(A(1r){u A(){B(2o.9p==="7J"){1Y.2u("aU aW");u cb.1x(1r)}}})(o);u 2o.aX("fw",9r,2k)}}};D.N.ar=A(1l){M 2r,2f,K,1o;B(1l.P===0){2K"5z 1k be";}o.3c=L;o.7K=L;o.7L=L;o.1Q=A(){};o.bj(1l[0]);B(1l.P===1){u}5B(1s 1l[1]){28"3i":o.7L=1l[1];56;28"A":o.1Q=1l[1]}B(1l.P===2){u}o.1Q=1l[2];B(1l.P===4){K=1l[4];1o=[];W(2r 57 K){B(!72.1x(K,2r))5G;2f=K[2r];1o.2j(o.1G[2r]=2f)}u 1o}};D.N.bj=A(2B){B(D.2Z){o.3c=2B;o.7K=\'bS\';u}B(1s 2B==="41"){o.3c=2B}S{o.3c=$(2B)}B(o.3c==L){2K"fv fu gy 1d cc I W ft.";}u o.7K=o.3c.9Q.6r()};D.N.as=A(){5B(o.7K){28"bS":u o.ci();28"1P":u o.cl();28"I":u o.cm()}};D.N.ci=A(){1Y.2u("fr W 2Z");B(1s o.3c==="3i"&&o.3c.82(/^cA?:\\/\\//)){u o.cD(o.3c,o.5D)}S B(1s o.3c==="3i"){u fs.fp(o.3c,o.5D)}S{u o.5D(L,o.3c)}};D.N.cD=A(6H,1Q){M 9g;1Y.2u("fm 1d 4P "+6H);9g=6N.4p(6H,A(4a){M 83;83=\'\';4a.fl(\'d7\');4a.9e(\'2a\',A(a7){u 83+=a7});u 4a.9e(\'1M\',A(){u 1Q(L,1y fk(83,\'d7\'))})});u 9g.9e(\'9d\',1Q)};D.N.5D=A(6v,2a){B(6v){2K 6v;}o.1d=1y 4S();o.1d.1E=2a;1Y.2u("4S au. ay = "+(o.3E())+", aL = "+(o.3Q()));o.I=1y 3I(o.3E(),o.3Q());o.2I=1y 3I(o.3E(),o.3Q());u o.5y()};D.N.cl=A(){o.1d=o.3c;o.I=2o.3H(\'I\');o.1j=o.I.3d(\'2d\');o.2I=2o.3H(\'I\');o.5g=o.2I.3d(\'2d\');1u.52(o.1d,o.I,{7g:[\'1E\']});1u.52(o.1d,o.2I,{7g:[\'1E\']});B(o.1d.9c!=L){o.1d.9c.aY(o.2I,o.1d)}o.9b();u o.9a()};D.N.cm=A(){o.I=2o.3H(\'I\');o.1j=o.I.3d(\'2d\');o.2I=o.3c;o.5g=o.2I.3d(\'2d\');o.I.F=o.2I.F;o.I.J=o.2I.J;B(o.7L!=L){o.1d=2o.3H(\'1P\');o.1d.1E=o.7L;o.9b();u o.9a()}S{u o.5y()}};D.N.9b=A(){B(o.99()){1Y.2u(o.1d.1E,"->",o.89());o.bk=2X;o.1d.1E=o.89()}B(2V.bo(o.1d)){o.1d.1E=2V.5n(o.1d.1E);u 1Y.2u("fj 1d fi, fh bP = "+o.1d.1E)}};D.N.9a=A(){B(o.bQ()){u o.6R()}S{u o.1d.bR=o.6R}};D.N.bQ=A(){B(!o.1d.7J){u 2k}B((o.1d.94!=L)&&o.1d.94===0){u 2k}u 2X};D.N.3E=A(){u o.1d.F||o.1d.94};D.N.3Q=A(){u o.1d.J||o.1d.fg};D.N.6R=A(){1Y.2u("4S au. ay = "+(o.3E())+", aL = "+(o.3Q()));B(o.bk){o.I.F=o.3E()/o.6p();o.I.J=o.3Q()/o.6p();o.2I.F=o.3E()/o.6p();o.2I.J=o.3Q()/o.6p()}S{o.I.F=o.3E();o.I.J=o.3Q();o.2I.F=o.3E();o.2I.J=o.3Q()}u o.5y()};D.N.5y=A(){M i,1w,H,1n,K;B(o.1j==L){o.1j=o.I.3d(\'2d\')}B(o.5g==L){o.5g=o.2I.3d(\'2d\')}o.8b=o.6o=o.F=o.I.F;o.8c=o.6i=o.J=o.I.J;o.cf();B(!o.cg()){o.ch()}B(o.1d!=L){o.1j.6f(o.1d,0,0,o.3E(),o.3Q(),0,0,o.6o,o.6i);o.5g.6f(o.1d,0,0,o.3E(),o.3Q(),0,0,o.6o,o.6i)}o.2T=o.1j.4G(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.7G=1u.6b(o.T.P);o.4Q=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.7G[i]=1w;o.4Q[i]=1w}}o.1c={F:o.I.F,J:o.I.J};B(!D.2Z){32.cs(o.2W,o)}o.1Q.1x(o,o);u o.1Q=A(){}};D.N.cy=A(){o.2T=o.1j.4G(0,0,o.I.F,o.I.J);u o.T=o.2T.2a};D.N.ff=A(){M i,1w,H,1n,K,1o;B(!D.5Q){2K"8Y 8d";}o.4Q=1u.6b(o.T.P);K=o.T;1o=[];W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];1o.2j(o.4Q[i]=1w)}u 1o};D.N.cg=A(){u D.9z(o.I)!=L};D.N.ch=A(){B(D.2Z||o.I.5F(\'2a-3R-2W\')){u}u o.I.bh(\'2a-3R-2W\',o.2W)};D.N.cH=A(){u o.I.5F(\'2a-3R-cK-8d\')!==L};D.N.cf=A(){M 4e;B(D.2Z||!o.99()){u}4e=o.6p();B(4e!==1){1Y.2u("fe 4e = "+4e);o.d6=2X;o.6o=o.I.F;o.6i=o.I.J;o.I.F=o.6o*4e;o.I.J=o.6i*4e;o.I.cN.F=""+o.6o+"cQ";o.I.cN.J=""+o.6i+"cQ";o.1j.fd(4e,4e);o.F=o.8b=o.I.F;u o.J=o.8c=o.I.J}};D.N.6p=A(){M 8W,4j;4j=4z.4j||1;8W=o.1j.fc||o.1j.fb||o.1j.fa||o.1j.f9||o.1j.f8||1;u 4j/8W};D.N.a8=A(){u(4z.4j!=L)&&4z.4j!==1};D.N.99=A(){B(o.cH()||!o.a8()){u 2k}u o.89()!==L};D.N.89=A(){B(o.1d==L){u L}u o.1d.5F(\'2a-3R-cK\')};D.N.6D=A(aa){M i,1w,H,1n,K;o.I=aa;o.1j=o.I.3d(\'2d\');o.2T=o.1j.4G(0,0,o.I.F,o.I.J);o.T=o.2T.2a;B(D.5Q){o.4Q=1u.6b(o.T.P);K=o.T;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.4Q[i]=1w}}o.F=o.I.F;o.J=o.I.J;o.cy();u o.1c={F:o.I.F,J:o.I.J}};D.N.ac=A(1Q){B(1Q==L){1Q=A(){}}2L.5j(o,"ai");u o.4E.48((A(1r){u A(){1r.2I.F=1r.I.F;1r.2I.J=1r.I.J;1r.5g.8S(1r.2T,0,0);u 1Q.1x(1r)}})(o))};D.N.f7=A(8n){M i,1w,H,1n,K;B(8n==L){8n=2X}B(!D.5Q){2K"8Y 8d";}K=o.av();W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];o.T[i]=1w}B(8n){u o.5g.8S(o.2T,0,0)}};D.N.f6=A(){M I,2J,i,2T,1w,T,H,1n,K;I=2o.3H(\'I\');1u.52(o.I,I);I.F=o.8b;I.J=o.8c;2J=I.3d(\'2d\');2T=2J.4G(0,0,I.F,I.J);T=2T.2a;K=o.7G;W(i=H=0,1n=K.P;H<1n;i=++H){1w=K[i];T[i]=1w}2J.8S(2T,0,0);o.9w={x:0,y:0};o.9u=2k;u o.6D(I)};D.N.av=A(){M 8o,26,8O,i,T,Y,8q,8r,F,H,K,3S,4o;B(!D.5Q){2K"8Y 8d";}Y=[];8q=0;26=8q+o.F;8r=0;8O=8r+o.J;T=o.4Q;F=o.I.F;W(i=H=0,K=T.P;HK;i=0<=K?++H:--H){2P+=Q[i]}}o.4E.4c({1v:R.3k.8I,1p:1p,Q:Q,2P:2P,3j:3j});u o};D.N.51=A(4q,1l){o.4E.4c({1v:R.3k.2t,4q:4q,1l:1l});u o};D.N.33=A(1Q){M 2g;2g=1y 3b(o);o.9s.2j(2g);o.4E.4c({1v:R.3k.8H});1Q.1x(2g);o.4E.4c({1v:R.3k.8G});u o};D.N.bT=A(2g){u o.bX(2g)};D.N.bX=A(2g){o.9t.2j(o.6w);o.6U.2j(o.T);o.6w=2g;u o.T=2g.T};D.N.bZ=A(){o.T=o.6U.6s();u o.6w=o.9t.6s()};D.N.c1=A(){u o.6w.c2()};u D})(3M);7O.D=D;D.4K=(A(){A 4K(c){o.c=c}4K.N.f5=A(){M i,3u,6L,H,1f,1H,K;3u={r:{},g:{},b:{}};W(i=H=0;H<=E;i=++H){3u.r[i]=0;3u.g[i]=0;3u.b[i]=0}W(i=1f=0,K=o.c.T.P;1f0)){u}1o=[];W(H=0,1n=6q.P;H<1n;H++){1P=6q[H];1o.2j(cj=1y 5c(1P,A(){o.ck();u o.48()}))}u 1o};B(D.ce){(A(){B(2o.9p==="7J"){u D.9m()}S{u 2o.aX("f3",D.9m,2k)}})()}5c=(A(){M 8v;8v="(\\\\w+)\\\\((.*?)\\\\)";A 5c(4r,ct){o.cw=4r.5F(\'2a-3R\');o.3R=D(4r,ct.9y(o))}5c.N.ck=A(){M 1l,e,1C,5b,8K,8L,m,r,6G,H,1n,K,1o;o.4r=o.3R.I;r=1y cJ(8v,\'g\');6G=o.cw.82(r);B(!(6G.P>0)){u}r=1y cJ(8v);1o=[];W(H=0,1n=6G.P;H<1n;H++){8K=6G[H];K=8K.82(r),m=K[0],1C=K[1],1l=K[2];8L=1y f2("u A() { o."+1C+"("+1l+"); };");8M{5b=8L();1o.2j(5b.1x(o.3R))}8N(6h){e=6h;1o.2j(1Y.2u(e))}}u 1o};5c.N.48=A(){M 4r;4r=o.4r;u o.3R.ac(A(){u 4r.9c.aY(o.cO(),4r)})};u 5c})();D.2m=(A(){A 2m(){}2m.8P={};2m.V=A(1p,5b){u o.8P[1p]=5b};2m.48=A(1p,Z,X){u o.8P[1p](Z,X)};u 2m})();2m=D.2m;D.2b=(A(){A 2b(){}2b.5a=A(6V,6W,6Y,71){u O.8l(O.1T(6Y-6V,2)+O.1T(71-6W,2))};2b.ab=A(1S,1e,6t){M 4g;B(6t==L){6t=2k}4g=1S+(O.f1()*(1e-1S));B(6t){u 4g.f0(6t)}S{u O.5C(4g)}};2b.6y=A(C){u(0.8T*C.r)+(0.eZ*C.g)+(0.eY*C.b)};2b.29=A(1J,4L,4M,1M,54,53){M 29,5S,2A,26,i,j,5E,1N,3G,t,H,1f,K;B(54==L){54=0}B(53==L){53=E}B(1J[0]aT 5u){2A=1J;54=4L;53=4M}S{2A=[1J,4L,4M,1M]}B(2A.P<2){2K"5z 8e 8X 1k 3N 29";}29={};5E=A(a,b,t){u a*(1-t)+b*t};5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};W(i=H=0;H1){1N=[];W(j=1f=0,K=3G.P-2;0<=K?1f<=K:1f>=K;j=0<=K?++1f:--1f){1N.2j([5E(3G[j][0],3G[j+1][0],t),5E(3G[j][1],3G[j+1][1],t)])}3G=1N}29[O.5C(3G[0][0])]=O.5C(5S(3G[0][1],54,53))}26=2A[2A.P-1][0];29=D.2b.91(29,26);B(29[26]==L){29[26]=29[26-1]}u 29};2b.bE=A(2A,54,53){M 4c,5S,96,26,88,86,85,84,i,j,5E,9f,9h,4O,p,5r,5x,4H,7Z,7Y,3n,7W,t,H,1f,K;B(2A.P<2){2K"5z 8e 8X 1k 3N bE";}3n={};5E=A(a,b,t){u a*(1-t)+b*t};4c=(A(1r){u A(a,b,c,d){u[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]]}})(o);4O=(A(1r){u A(a,b){u[a[0]*b[0],a[1]*b[1]]}})(o);7W=(A(1r){u A(a,b){u[a[0]-b[0],a[1]-b[1]]}})(o);5S=A(a,1S,1e){u O.1S(O.1e(a,1S),1e)};96=0;W(i=H=0,K=2A.P-2;0<=K?H<=K:H>=K;i=0<=K?++H:--H){5r=2A[i];5x=2A[i+1];4H=5x[0]-5r[0];7Z=1/4H;B(i===2A.P-2){7Z=1/(4H-1)}p=i>0?2A[i-1]:5r;9f=4O(7W(5x,p),[0.5,0.5]);p=i<2A.P-2?2A[i+2]:5x;9h=4O(7W(p,5r),[0.5,0.5]);W(j=1f=0;0<=4H?1f<=4H:1f>=4H;j=0<=4H?++1f:--1f){t=j*7Z;88=2.0*t*t*t-3.0*t*t+1.0;86=t*t*t-2.0*t*t+t;85=-2.0*t*t*t+3.0*t*t;84=t*t*t-t*t;7Y=4c(4O(5r,[88,88]),4O(9f,[86,86]),4O(5x,[85,85]),4O(9h,[84,84]));3n[O.5C(7Y[0])]=O.5C(5S(7Y[1],54,53));96+=1}}26=2A[2A.P-1][0];3n=D.2b.91(3n,26);u 3n};2b.91=A(58,26){M i,j,5T,3n,7V,H,1f;B(bi.eX(58).P<26+1){3n={};W(i=H=0;0<=26?H<=26:H>=26;i=0<=26?++H:--H){B(58[i]!=L){3n[i]=58[i]}S{5T=[i-1,3n[i-1]];W(j=1f=i;i<=26?1f<=26:1f>=26;j=i<=26?++1f:--1f){B(58[j]!=L){7V=[j,58[j]];56}}3n[i]=5T[1]+((7V[1]-5T[1])/(7V[0]-5T[0]))*(i-5T[0])}}u 3n}u 58};u 2b})();2b=D.2b;D.1X=(A(){A 1X(){}1X.7U=A(3O){M b,g,r;B(3O.eW(0)==="#"){3O=3O.59(1)}r=4u(3O.59(0,2),16);g=4u(3O.59(2,2),16);b=4u(3O.59(4,2),16);u{r:r,g:g,b:b}};1X.eV=A(r,g,b){M d,h,l,1e,1S,s;B(1s r==="41"){g=r.g;b=r.b;r=r.r}r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);l=(1e+1S)/2;B(1e===1S){h=s=0}S{d=1e-1S;s=l>0.5?d/(2-1e-1S):d/(1e+1S);h=(A(){5B(1e){28 r:u(g-b)/d+(g1){t-=1}B(t<1/6){u p+(q-p)*6*t}B(t<1/2){u q}B(t<2/3){u p+(q-p)*(2/3-t)*6}u p};1X.cC=A(r,g,b){M d,h,1e,1S,s,v;r/=E;g/=E;b/=E;1e=O.1e(r,g,b);1S=O.1S(r,g,b);v=1e;d=1e-1S;s=1e===0?0:d/1e;B(1e===1S){h=0}S{h=(A(){5B(1e){28 r:u(g-b)/d+(g0.9j){r=O.1T((r+0.3r)/1.3r,2.4)}S{r/=12.92}B(g>0.9j){g=O.1T((g+0.3r)/1.3r,2.4)}S{g/=12.92}B(b>0.9j){b=O.1T((b+0.3r)/1.3r,2.4)}S{b/=12.92}x=r*0.eT+g*0.dd+b*0.eR;y=r*0.cS+g*0.cZ+b*0.d0;z=r*0.eQ+g*0.eP+b*0.eO;u{x:x*1i,y:y*1i,z:z*1i}};1X.eN=A(x,y,z){M b,g,r;x/=1i;y/=1i;z/=1i;r=(3.eM*x)+(-1.eL*y)+(-0.eK*z);g=(-0.eJ*x)+(1.eI*y)+(0.eH*z);b=(0.eG*x)+(-0.eF*y)+(1.eE*z);B(r>0.9n){r=(1.3r*O.1T(r,0.9q))-0.3r}S{r*=12.92}B(g>0.9n){g=(1.3r*O.1T(g,0.9q))-0.3r}S{g*=12.92}B(b>0.9n){b=(1.3r*O.1T(b,0.9q))-0.3r}S{b*=12.92}u{r:r*E,g:g*E,b:b*E}};1X.at=A(x,y,z){M a,b,l,9B,9D,9F;B(1s x==="41"){y=x.y;z=x.z;x=x.x}9B=95.aB;9D=1i.0;9F=9H.aE;x/=9B;y/=9D;z/=9F;B(x>0.9J){x=O.1T(x,0.9K)}S{x=(7.9P*x)+0.5X}B(y>0.9J){y=O.1T(y,0.9K)}S{y=(7.9P*y)+0.5X}B(z>0.9J){z=O.1T(z,0.9K)}S{z=(7.9P*z)+0.5X}l=aQ*y-16;a=aR*(x-y);b=5Y*(y-z);u{l:l,a:a,b:b}};1X.eD=A(l,a,b){M x,y,z;B(1s l==="41"){a=l.a;b=l.b;l=l.l}y=(l+16)/aQ;x=y+(a/aR);z=y-(b/5Y);B(x>0.9T){x=x*x*x}S{x=0.9U*(x-0.5X)}B(y>0.9T){y=y*y*y}S{y=0.9U*(y-0.5X)}B(z>0.9T){z=z*z*z}S{z=0.9U*(z-0.5X)}u{x:x*95.aB,y:y*1i.0,z:z*9H.aE}};1X.eC=A(r,g,b){M 9V;B(1s r==="41"){g=r.g;b=r.b;r=r.r}9V=o.cI(r,g,b);u o.at(9V)};1X.eB=A(l,a,b){};u 1X})();1X=D.1X;D.2L=(A(){A 2L(){}2L.5k={};2L.b1=["b6","bb","ai","bc","bd","65"];2L.5j=A(38,1v,2a){M 6E,H,1n,K,1o;B(2a==L){2a=L}B(o.5k[1v]&&o.5k[1v].P){K=o.5k[1v];1o=[];W(H=0,1n=K.P;H<1n;H++){6E=K[H];B(6E.38===L||38.2W===6E.38.2W){1o.2j(6E.fn.1x(38,2a))}S{1o.2j(bg 0)}}u 1o}};2L.eA=A(38,1v,fn){M 9W,9X;B(1s 38==="3i"){9X=38;9W=1v;38=L;1v=9X;fn=9W}B(6F.1x(o.b1,1v)<0){u 2k}B(!o.5k[1v]){o.5k[1v]=[]}o.5k[1v].2j({38:38,fn:fn});u 2X};u 2L})();2L=D.2L;D.R=(A(){A R(){}R.3k={8J:1,8I:2,8H:3,8G:4,9Y:5,2t:6};R.V=A(1p,bl){u D.N[1p]=bl};u R})();R=D.R;D.2V=(A(){A 2V(){}2V.bm=/(?:(?:6N|cA):\\/\\/)((?:\\w+)\\.(?:(?:\\w|\\.)+))/;2V.bo=A(1P){B(1P==L){u 2k}B(o.bn(1P)){u 2k}u o.7h(1P.1E)};2V.bn=A(1P){M K;u(1P.9C!=L)&&((K=1P.9C.6r())===\'c3\'||K===\'bp-ez\')};2V.7h=A(6H){M 7d;7d=6H.82(o.bm);B(7d){u 7d[1]!==2o.ey}S{u 2k}};2V.bu=A(1E){B(o.7h(1E)){B(!D.7F.P){1Y.a2("ex 3N ew a bH 1d eu a et bK. bP: "+1E)}S{B(D.7h(D.7F)){1Y.a2("es bp a bH bK W er eq.");u}u o.5n(1E)}}};2V.5n=A(1E){u""+D.7F+"?"+D.c5+"="+(ep(1E))};2V.eo=A(5p){M 8z;8z={em:\'el\',ek:\'ej\',ei:\'eh\',eg:\'ef\'};5p=5p.6r();B(8z[5p]!=L){5p=8z[5p]}u"ee/ed."+5p};u 2V})();D.N.c6=A(){B(1s 2h!=="3T"&&2h!==L){u o.c7.4t(o,1k)}S{u o.c8.4t(o,1k)}};D.N.c8=A(1v){M 1d;B(1v==L){1v="c9"}1v=1v.6r();1d=o.a5(1v).ec("1d/"+1v,"1d/eb-ea");u 2o.e9.e8=1d};D.N.c7=A(6d,7b,1Q){M e,a1;B(7b==L){7b=2X}B(1Q==L){1Q=L}8M{a1=fs.e7(6d);B(a1.e6()&&!7b){u 2k}}8N(6h){e=6h;1Y.2u("e5 e4 6d "+6d)}u fs.e3(6d,o.I.e2(),A(6v){1Y.2u("e1 e0 3N "+6d);B(1Q){u 1Q.1x(o,6v)}})};D.N.cO=A(1v){M 1P;1P=1y 4S();1P.1E=o.a5(1v);1P.F=o.1c.F;1P.J=o.1c.J;B(4z.4j){1P.F/=4z.4j;1P.J/=4z.4j}u 1P};D.N.a5=A(1v){B(1v==L){1v="c9"}1v=1v.6r();u o.2I.dZ("1d/"+1v)};2V=D.2V;D.3b=(A(){A 3b(c){o.c=c;o.1C=o.c;o.1G={a0:\'9Z\',2i:1.0};o.dY=1u.9L.4p();o.I=1s 2h!=="3T"&&2h!==L?1y 3I():2o.3H(\'I\');o.I.F=o.c.1c.F;o.I.J=o.c.1c.J;o.1j=o.I.3d(\'2d\');o.1j.dX(o.I.F,o.I.J);o.2T=o.1j.4G(0,0,o.I.F,o.I.J);o.T=o.2T.2a}3b.N.33=A(cb){u o.c.33.1x(o.c,cb)};3b.N.3p=A(cx){o.1G.a0=cx;u o};3b.N.2i=A(2i){o.1G.2i=2i/1i;u o};3b.N.4m=A(){M i,31,H,K;31=o.c.T;W(i=H=0,K=o.c.T.P;Ho.c.T.P||3L<0){u 1y 1Z(0,0,0,E,o.c)}u o.9I(3L)};1Z.N.dU=A(7y,7z,C){M cU;B(o.c==L){2K"5V a 5U 1j";}cU=o.U+(o.c.1c.F*4*(7z*-1))+(4*7y);B(3L>o.c.T.P||3L<0){u}o.c.T[3L]=C.r;o.c.T[3L+1]=C.g;o.c.T[3L+2]=C.b;o.c.T[3L+3]=C.a;u 2X};1Z.N.dT=A(x,y){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);u o.9I(U)};1Z.N.dS=A(x,y,C){M U;B(o.c==L){2K"5V a 5U 1j";}U=o.9R(x,y,o.F);o.c.T[U]=C.r;o.c.T[U+1]=C.g;o.c.T[U+2]=C.b;u o.c.T[U+3]=C.a};1Z.N.5M=A(){u o.dR()};1Z.N.dQ=A(7B){M 3O;B(7B==L){7B=2k}3O=\'#\'+o.r.5M(16)+o.g.5M(16)+o.b.5M(16);B(7B){u 3O+o.a.5M(16)}S{u 3O}};u 1Z})();1Z=D.1Z;D.2t=(A(){A 2t(){}2t.9G={};2t.V=A(1p,4q){u o.9G[1p]=4q};2t.48=A(1j,1p,1l){u o.9G[1p].4t(1j,1l)};u 2t})();2t=D.2t;D.1R=(A(){1R.4R=D.2Z?6u(\'dP\').dO().P:4;A 1R(c){o.c=c;o.4f=8Q(o.4f,o);o.6A=[];o.5f=L}1R.N.4c=A(9x){B(9x==L){u}u o.6A.2j(9x)};1R.N.4f=A(){M 2g;B(o.6A.P===0){2L.5j(o,"bc");B(o.9v!=L){o.9v.1x(o.c)}u o}o.2c=o.6A.d9();5B(o.2c.1v){28 R.3k.8H:2g=o.c.9s.d9();o.c.bT(2g);u o.4f();28 R.3k.8G:o.c.c1();o.c.bZ();u o.4f();28 R.3k.9Y:u o.da(o.2c.2g,o.2c.1E);28 R.3k.2t:u o.db();dN:u o.a6()}};1R.N.48=A(1Q){o.9v=1Q;o.5f=1u.6b(o.c.T.P);u o.4f()};1R.N.9o=A(fn){M 6Z,8B,2Q,1M,f,i,9l,n,1J,H,K,1o;o.7P=0;n=o.c.T.P;8B=O.2N((n/4)/1R.4R);6Z=8B*4;9l=6Z+((n/4)%1R.4R)*4;1o=[];W(i=H=0,K=1R.4R;0<=K?HK;i=0<=K?++H:--H){1J=i*6Z;1M=1J+(i===1R.4R-1?9l:6Z);B(D.2Z){f=6x((A(1r){u A(){u fn.1x(1r,i,1J,1M)}})(o));2Q=f.dM();1o.2j(o.65(2Q))}S{1o.2j(7I((A(1r){u A(i,1J,1M){u A(){u fn.1x(1r,i,1J,1M)}}})(o)(i,1J,1M),0))}}u 1o};1R.N.a6=A(){2L.5j(o.c,"b6",o.2c);B(o.2c.1v===R.3k.8J){u o.9o(o.af)}S{u o.9o(o.ag)}};1R.N.db=A(){1Y.2u("dL 4q "+o.2c.4q);2t.48(o.c,o.2c.4q,o.2c.1l);1Y.2u("2t "+o.2c.4q+" 9k!");u o.4f()};1R.N.af=A(2Q,1J,1M){M i,1w,H;1Y.2u("aj #"+2Q+" - R: "+o.2c.1p+", dK: "+1J+", dJ: "+1M);2L.5j(o.c,"bd",{am:2Q,an:1R.4R,dI:1J,dH:1M});1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;1w.r=o.c.T[i];1w.g=o.c.T[i+1];1w.b=o.c.T[i+2];1w.a=o.c.T[i+3];o.2c.8t(1w);o.c.T[i]=1u.3F(1w.r);o.c.T[i+1]=1u.3F(1w.g);o.c.T[i+2]=1u.3F(1w.b);o.c.T[i+3]=1u.3F(1w.a)}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.ag=A(2Q,1J,1M){M Q,6B,3j,2U,6j,2P,i,j,k,2G,n,1p,p,1w,4a,H,1f,1H;1p=o.2c.1p;3j=o.2c.3j;2P=o.2c.2P;n=o.c.T.P;Q=o.2c.Q;6B=O.8l(Q.P);2G=[];1Y.2u("dG 2G - R: "+o.2c.1p);1J=O.1e(1J,o.c.1c.F*4*((6B-1)/2));1M=O.1S(1M,n-(o.c.1c.F*4*((6B-1)/2)));2U=(6B-1)/2;1w=1y 1Z();1w.9O(o.c);W(i=H=1J;H<1M;i=H+=4){1w.U=i;6j=0;W(j=1f=-2U;-2U<=2U?1f<=2U:1f>=2U;j=-2U<=2U?++1f:--1f){W(k=1H=2U;2U<=-2U?1H<=-2U:1H>=-2U;k=2U<=-2U?++1H:--1H){p=1w.cP(j,k);2G[6j*3]=p.r;2G[6j*3+1]=p.g;2G[6j*3+2]=p.b;6j++}}4a=o.3K(Q,2G,2P,3j);o.5f[i]=1u.3F(4a.r);o.5f[i+1]=1u.3F(4a.g);o.5f[i+2]=1u.3F(4a.b);o.5f[i+3]=o.c.T[i+3]}B(D.2Z){u 6x["aq"](2Q)}S{u o.65(2Q)}};1R.N.65=A(2Q){M i,H,K;B(2Q>=0){1Y.2u("aj #"+2Q+" 9k! R: "+o.2c.1p)}o.7P++;2L.5j(o.c,"65",{am:2Q,dF:o.7P,an:1R.4R});B(o.7P===1R.4R){B(o.2c.1v===R.3k.8I){W(i=H=0,K=o.c.T.P;0<=K?HK;i=0<=K?++H:--H){o.c.T[i]=o.5f[i]}}B(2Q>=0){1Y.2u("R "+o.2c.1p+" 9k!")}2L.5j(o.c,"bb",o.2c);u o.4f()}};1R.N.3K=A(Q,2G,2P,3j){M i,2f,H,K;2f={r:0,g:0,b:0};W(i=H=0,K=Q.P;0<=K?HK;i=0<=K?++H:--H){2f.r+=Q[i]*2G[i*3];2f.g+=Q[i]*2G[i*3+1];2f.b+=Q[i]*2G[i*3+2]}2f.r=(2f.r/2P)+3j;2f.g=(2f.g/2P)+3j;2f.b=(2f.b/2P)+3j;u 2f};1R.N.da=A(2g,1E){M 1P,5n;1P=1y 4S();1P.bR=(A(1r){u A(){2g.1j.6f(1P,0,0,1r.c.1c.F,1r.c.1c.J);2g.2T=2g.1j.4G(0,0,1r.c.1c.F,1r.c.1c.J);2g.T=2g.2T.2a;1r.c.T=2g.T;u 1r.4f()}})(o);5n=2V.bu(1E);u 1P.1E=5n!=L?5n:1E};u 1R})();1R=D.1R;D.32=(A(){A 32(){}32.62={};32.bJ=A(4C){u o.62[4C]!=L};32.4p=A(4C){u o.62[4C]};32.cs=A(1p,2B){u o.62[1p]=2B};32.48=A(4C,1Q){7I((A(1r){u A(){u 1Q.1x(1r.4p(4C),1r.4p(4C))}})(o),0);u o.4p(4C)};32.dE=A(1p){B(1p==L){1p=2k}B(1p){u aA o.62[1p]}S{u o.62={}}};u 32})();32=D.32;2m.V("9Z",A(Z,X){u{r:Z.r,g:Z.g,b:Z.b}});2m.V("5I",A(Z,X){u{r:(Z.r*X.r)/E,g:(Z.g*X.g)/E,b:(Z.b*X.b)/E}});2m.V("dD",A(Z,X){u{r:E-(((E-Z.r)*(E-X.r))/E),g:E-(((E-Z.g)*(E-X.g))/E),b:E-(((E-Z.b)*(E-X.b))/E)}});2m.V("7X",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-2*(E-Z.r)*(E-X.r)/E:(X.r*Z.r*2)/E;1F.g=X.g>1g?E-2*(E-Z.g)*(E-X.g)/E:(X.g*Z.g*2)/E;1F.b=X.b>1g?E-2*(E-Z.b)*(E-X.b)/E:(X.b*Z.b*2)/E;u 1F});2m.V("dC",A(Z,X){u{r:Z.r-X.r,g:Z.g-X.g,b:Z.b-X.b}});2m.V("aG",A(Z,X){u{r:X.r+Z.r,g:X.g+Z.g,b:X.b+Z.b}});2m.V("dB",A(Z,X){u{r:1g-2*(X.r-1g)*(Z.r-1g)/E,g:1g-2*(X.g-1g)*(Z.g-1g)/E,b:1g-2*(X.b-1g)*(Z.b-1g)/E}});2m.V("aI",A(Z,X){M 1F;1F={};1F.r=X.r>1g?E-((E-X.r)*(E-(Z.r-1g)))/E:(X.r*(Z.r+1g))/E;1F.g=X.g>1g?E-((E-X.g)*(E-(Z.g-1g)))/E:(X.g*(Z.g+1g))/E;1F.b=X.b>1g?E-((E-X.b)*(E-(Z.b-1g)))/E:(X.b*(Z.b+1g))/E;u 1F});2m.V("dA",A(Z,X){u{r:X.r>Z.r?X.r:Z.r,g:X.g>Z.g?X.g:Z.g,b:X.b>Z.b?X.b:Z.b}});2m.V("dz",A(Z,X){u{r:X.r>Z.r?Z.r:X.r,g:X.g>Z.g?Z.g:X.g,b:X.b>Z.b?Z.b:X.b}});R.V("4x",A(){M 3f;B(1k.P===1){3f=1X.7U(1k[0])}S{3f={r:1k[0],g:1k[1],b:1k[2]}}u o.2p("4x",A(C){C.r=3f.r;C.g=3f.g;C.b=3f.b;C.a=E;u C})});R.V("3y",A(Q){Q=O.2N(E*(Q/1i));u o.2p("3y",A(C){C.r+=Q;C.g+=Q;C.b+=Q;u C})});R.V("3J",A(Q){Q*=-0.dy;u o.2p("3J",A(C){M 1e;1e=O.1e(C.r,C.g,C.b);B(C.r!==1e){C.r+=(1e-C.r)*Q}B(C.g!==1e){C.g+=(1e-C.g)*Q}B(C.b!==1e){C.b+=(1e-C.b)*Q}u C})});R.V("44",A(Q){Q*=-1;u o.2p("44",A(C){M 1q,4X,1e;1e=O.1e(C.r,C.g,C.b);4X=(C.r+C.g+C.b)/3;1q=((O.4Y(1e-4X)*2/E)*Q)/1i;B(C.r!==1e){C.r+=(1e-C.r)*1q}B(C.g!==1e){C.g+=(1e-C.g)*1q}B(C.b!==1e){C.b+=(1e-C.b)*1q}u C})});R.V("4Z",A(Q){u o.2p("4Z",A(C){M 4X;4X=2b.6y(C);C.r=4X;C.g=4X;C.b=4X;u C})});R.V("2s",A(Q){Q=O.1T((Q+1i)/1i,2);u o.2p("2s",A(C){C.r/=E;C.r-=0.5;C.r*=Q;C.r+=0.5;C.r*=E;C.g/=E;C.g-=0.5;C.g*=Q;C.g+=0.5;C.g*=E;C.b/=E;C.b-=0.5;C.b*=Q;C.b+=0.5;C.b*=E;u C})});R.V("93",A(Q){u o.2p("93",A(C){M b,g,h,5e,r,K;5e=1X.cC(C.r,C.g,C.b);h=5e.h*1i;h+=O.4Y(Q);h=h%1i;h/=1i;5e.h=h;K=1X.cE(5e.h,5e.s,5e.v),r=K.r,g=K.g,b=K.b;C.r=r;C.g=g;C.b=b;u C})});R.V("49",A(){M 6g,3e;B(1k.P===2){3e=1X.7U(1k[0]);6g=1k[1]}S B(1k.P===4){3e={r:1k[0],g:1k[1],b:1k[2]};6g=1k[3]}u o.2p("49",A(C){C.r-=(C.r-3e.r)*(6g/1i);C.g-=(C.g-3e.g)*(6g/1i);C.b-=(C.b-3e.b)*(6g/1i);u C})});R.V("b0",A(){u o.2p("b0",A(C){C.r=E-C.r;C.g=E-C.g;C.b=E-C.b;u C})});R.V("4s",A(Q){B(Q==L){Q=1i}Q/=1i;u o.2p("4s",A(C){C.r=O.1S(E,(C.r*(1-(0.dx*Q)))+(C.g*(0.dw*Q))+(C.b*(0.dv*Q)));C.g=O.1S(E,(C.r*(0.du*Q))+(C.g*(1-(0.dt*Q)))+(C.b*(0.ds*Q)));C.b=O.1S(E,(C.r*(0.dr*Q))+(C.g*(0.dq*Q))+(C.b*(1-(0.dp*Q))));u C})});R.V("2v",A(Q){u o.2p("2v",A(C){C.r=O.1T(C.r/E,Q)*E;C.g=O.1T(C.g/E,Q)*E;C.b=O.1T(C.b/E,Q)*E;u C})});R.V("8i",A(Q){Q=O.4Y(Q)*2.55;u o.2p("8i",A(C){M 4g;4g=2b.ab(Q*-1,Q);C.r+=4g;C.g+=4g;C.b+=4g;u C})});R.V("8j",A(Q){Q=O.4Y(Q)*2.55;u o.2p("8j",A(C){B(C.r>E-Q){C.r=E}S B(C.rE-Q){C.g=E}S B(C.gE-Q){C.b=E}S B(C.b0){C.r+=(E-C.r)*1G.3g}S{C.r-=C.r*O.4Y(1G.3g)}}B(1G.4w!=L){B(1G.4w>0){C.g+=(E-C.g)*1G.4w}S{C.g-=C.g*O.4Y(1G.4w)}}B(1G.3X!=L){B(1G.3X>0){C.b+=(E-C.b)*1G.3X}S{C.b-=C.b*O.4Y(1G.3X)}}u C})});R.V("2e",A(){M 6I,29,3W,3P,1M,i,5t,1J,H,1f,K,3S;3W=1k[0],3P=2<=1k.P?61.1x(1k,1):[];5t=3P[3P.P-1];B(1s 5t==="A"){6I=5t;3P.6s()}S B(1s 5t==="3i"){6I=2b[5t];3P.6s()}S{6I=2b.29}B(1s 3W==="3i"){3W=3W.do("")}B(3W[0]==="v"){3W=[\'r\',\'g\',\'b\']}B(3P.P<2){2K"5z 8e 8X 1k 3N 2e 1C";}29=6I(3P,0,E);1J=3P[0];B(1J[0]>0){W(i=H=0,K=1J[0];0<=K?HK;i=0<=K?++H:--H){29[i]=1J[1]}}1M=3P[3P.P-1];B(1M[0]=E;i=3S<=E?++1f:--1f){29[i]=1M[1]}}u o.2p("2e",A(C){M 1H,4o;W(i=1H=0,4o=3W.P;0<=4o?1H<4o:1H>4o;i=0<=4o?++1H:--1H){C[3W[i]]=29[C[3W[i]]]}u C})});R.V("3a",A(Q){M 4L,4M,p;p=O.4Y(Q)/1i;4L=[0,E*p];4M=[E-(E*p),E];B(Q<0){4L=4L.br();4M=4M.br()}u o.2e(\'3e\',[0,0],4L,4M,[E,E])});D.2t.V("8F",A(F,J,x,y){M I,2J;B(x==L){x=0}B(y==L){y=0}B(1s 2h!=="3T"&&2h!==L){I=1y 3I(F,J)}S{I=2o.3H(\'I\');1u.52(o.I,I);I.F=F;I.J=J}2J=I.3d(\'2d\');2J.6f(o.I,x,y,F,J,0,0,F,J);o.9w={x:x,y:y};o.cr=2X;u o.6D(I)});D.2t.V("8x",A(2D){M I,2J;B(2D==L){2D=L}B(2D===L||((2D.F==L)&&(2D.J==L))){1Y.9d("5z cc dn 1c be W 8x");u}B(2D.F==L){2D.F=o.I.F*2D.J/o.I.J}S B(2D.J==L){2D.J=o.I.J*2D.F/o.I.F}B(1s 2h!=="3T"&&2h!==L){I=1y 3I(2D.F,2D.J)}S{I=2o.3H(\'I\');1u.52(o.I,I);I.F=2D.F;I.J=2D.J}2J=I.3d(\'2d\');2J.6f(o.I,0,0,o.I.F,o.I.J,0,0,2D.F,2D.J);o.9u=2X;u o.6D(I)});D.R.V("8F",A(){u o.51("8F",5u.N.5d.1x(1k,0))});D.R.V("8x",A(){u o.51("8x",5u.N.5d.1x(1k,0))});D.R.V("dm",A(){u o.3K("dl 8A",[1,1,1,1,1,1,1,1,1])});D.R.V("dk",A(){u o.3K("dj di 8A",[0,0,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0])});D.R.V("dh",A(){u o.3K("dg 8A",[1,4,6,4,1,4,16,24,16,4,6,24,36,24,6,4,16,24,16,4,1,4,6,4,1])});D.R.V("df",A(3s){M 2G;B(3s===0||3s===4i){2G=[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0]}S B((3s>0&&3s<90)||(3s>4i&&3s<8w)){2G=[0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0]}S B(3s===90||3s===8w){2G=[0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0]}S{2G=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1]}u o.3K("de 8A",2G)});D.R.V("6C",A(1q){B(1q==L){1q=1i}1q/=1i;u o.3K("eS",[0,-1q,0,-1q,4*1q+1,-1q,0,-1q,0])});8V={3y:A(C,1q,G){C.r=C.r-(C.r*1q*G.3h);C.g=C.g-(C.g*1q*G.3h);C.b=C.b-(C.b*1q*G.3h);u C},2v:A(C,1q,G){C.r=O.1T(C.r/E,O.1e(10*1q*G.3h,1))*E;C.g=O.1T(C.g/E,O.1e(10*1q*G.3h,1))*E;C.b=O.1T(C.b/E,O.1e(10*1q*G.3h,1))*E;u C},49:A(C,1q,G){C.r-=(C.r-G.3f.r)*1q;C.g-=(C.g-G.3f.g)*1q;C.b-=(C.b-G.3f.b)*1q;u C}};R.V("1U",A(1t,3h){M 29,3B,1M,1J;B(3h==L){3h=60}B(1s 1t==="3i"&&1t.59(-1)==="%"){B(o.1c.J>o.1c.F){1t=o.1c.F*(4u(1t.59(0,1t.P-1),10)/1i)}S{1t=o.1c.J*(4u(1t.59(0,1t.P-1),10)/1i)}}3h/=1i;3B=[o.1c.F/2,o.1c.J/2];1J=O.8l(O.1T(3B[0],2)+O.1T(3B[1],2));1M=1J-1t;29=2b.29([0,1],[30,30],[70,60],[1i,80]);u o.2p("1U",A(C){M 8p,2H,U;U=C.9M();8p=2b.5a(U.x,U.y,3B[0],3B[1]);B(8p>1M){2H=O.1e(1,(29[O.5C(((8p-1M)/1t)*1i)]/10)*3h);C.r=O.1T(C.r/E,2H)*E;C.g=O.1T(C.g/E,2H)*E;C.b=O.1T(C.b/E,2H)*E}u C})});R.V("bY",A(G){M 4h,5W,8k,1t,H,1n,K;4h={3h:50,2E:0,8U:\'3y\',3f:{r:0,g:0,b:0}};G=1u.79(4h,G);B(!G.1t){u o}S B(1s G.1t==="3i"){8k=4u(G.1t,10)/1i;G.1t={F:o.1c.F*8k,J:o.1c.J*8k}}S B(1s G.1t==="41"){K=["F","J"];W(H=0,1n=K.P;H<1n;H++){5W=K[H];B(1s G.1t[5W]==="3i"){G.1t[5W]=o.1c[5W]*(4u(G.1t[5W],10)/1i)}}}S B(G.1t==="8e"){1t=G.1t;G.1t={F:1t,J:1t}}B(1s G.2E==="3i"){G.2E=(G.1t.F/2)*(4u(G.2E,10)/1i)}G.3h/=1i;G.1t.F=O.2N(G.1t.F);G.1t.J=O.2N(G.1t.J);G.1d={F:o.1c.F,J:o.1c.J};B(G.8U==="49"&&1s G.3f==="3i"){G.3f=1X.7U(G.3f)}G.1W={5l:(o.1c.F-G.1t.F)/2,69:o.1c.F-G.1W.5l,5m:(o.1c.J-G.1t.J)/2,6k:o.1c.J-G.1W.5m};G.1z=[{x:G.1W.5l+G.2E,y:G.1W.6k-G.2E},{x:G.1W.69-G.2E,y:G.1W.6k-G.2E},{x:G.1W.69-G.2E,y:G.1W.5m+G.2E},{x:G.1W.5l+G.2E,y:G.1W.5m+G.2E}];G.4n=2b.5a(0,0,G.1z[3].x,G.1z[3].y)-G.2E;u o.2p("bY",A(C){M 1q,U,4l;U=C.9M();B((U.x>G.1z[0].x&&U.xG.1W.5m&&U.yG.1W.5l&&U.xG.1z[3].y&&U.yG.1z[0].x&&U.xG.1W.6k){1q=(U.y-G.1W.6k)/G.4n}S B(U.y>G.1z[2].y&&U.yG.1W.69){1q=(U.x-G.1W.69)/G.4n}S B(U.x>G.1z[0].x&&U.xG.1z[2].y&&U.y=G.1z[0].y){4l=D.5a(U.x,U.y,G.1z[0].x,G.1z[0].y);1q=(4l-G.2E)/G.4n}S B(U.x>=G.1z[1].x&&U.y>=G.1z[1].y){4l=D.5a(U.x,U.y,G.1z[1].x,G.1z[1].y);1q=(4l-G.2E)/G.4n}S B(U.x>=G.1z[2].x&&U.y<=G.1z[2].y){4l=D.5a(U.x,U.y,G.1z[2].x,G.1z[2].y);1q=(4l-G.2E)/G.4n}S B(U.x<=G.1z[3].x&&U.y<=G.1z[3].y){4l=D.5a(U.x,U.y,G.1z[3].x,G.1z[3].y);1q=(4l-G.2E)/G.4n}B(1q<0){u C}u 8V[G.8U](C,1q,G)})});(A(){M 4T,97,98,66,63;66=[2S,2S,37,2S,3x,37,3D,2S,43,3x,3l,37,3V,3D,3U,2S,4D,43,4V,3x,4A,3l,4B,37,4I,3V,4k,3D,39,3U,4U,2S,5H,4D,47,43,5R,4V,64,3x,39,4A,6a,3l,4y,4B,4W,37,5s,4I,5w,3V,5q,4k,5K,3D,5N,39,5O,3U,5Z,4U,3Y,2S,7D,5H,7C,4D,7A,47,7x,43,7w,5R,7v,4V,4v,64,7u,3x,6c,39,7t,4A,7s,6a,4F,3l,3Y,4y,7r,4B,7q,4W,7o,37,7n,5s,47,4I,7m,5w,7k,3V,7j,5q,7i,4k,4v,5K,6e,3D,7f,5N,7e,39,7c,5O,7a,3U,6l,5Z,4F,4U,78,3Y,76,2S,bU,7D,bN,5H,4W,7C,bL,4D,bG,7A,bF,47,bD,7x,bC,43,bB,7w,bA,5R,bz,7v,bx,4V,bw,4v,74,64,6e,7u,8u,3x,ba,6c,b9,39,b8,7t,b7,4A,8g,7s,6l,6a,b5,4F,b4,3l,b3,3Y,b2,4y,aO,7r,aK,4B,aJ,7q,aH,4W,aF,7o,aC,37,az,7n,ax,5s,aw,47,ap,4I,ao,7m,al,5w,ak,7k,ah,3V,ae,7j,dc,5q,d3,7i,d2,4k,cY,4v,74,5K,cX,6e,cW,3D,8u,7f,cV,5N,6c,7e,cT,39,cG,7c,cB,5O,8T,7a,8g,3U,cv,6l,cu,5Z,cq,4F,cp,4U,3l,78,co,3Y,cn,76,4y];63=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];97=A(F,J,6n,6m,2F,P,c0){M 42,1j,2w,6V,6Y,6W,71;42=1s 2h!=="3T"&&2h!==L?1y 3I():2o.3H(\'I\');42.F=F;42.J=J;6V=6n+O.bW(2F)*P*0.5;6W=6m+O.bV(2F)*P*0.5;6Y=6n-O.bW(2F)*P*0.5;71=6m-O.bV(2F)*P*0.5;1j=42.3d("2d");2w=1j.en(6V,6W,6Y,71);B(!c0){2w.5o(0,"77");2w.5o(1,"a4")}S{2w.5o(0,"77");2w.5o(0.5,"a4");2w.5o(1,"77")}1j.bO=2w;1j.bM(0,0,F,J);u 1j.4G(0,0,F,J)};98=A(F,J,6n,6m,6P,6O){M 42,1j,2w;42=1s 2h!=="3T"&&2h!==L?1y 3I():2o.3H(\'I\');42.F=F;42.J=J;1j=42.3d("2d");2w=1j.ev(6n,6m,6P,6n,6m,6O);2w.5o(1,"77");2w.5o(0,"a4");1j.bO=2w;1j.bM(0,0,F,J);u 1j.4G(0,0,F,J)};4T=A(){o.r=0;o.g=0;o.b=0;o.a=0;u o.1N=L};D.2t.V("a3",A(by,1V,bq,7l){M 2l,2C,1O,5P,6X,2H,2n,2y,1K,J,46,i,6S,2x,3z,7M,3Z,6K,2O,p,1D,1A,Y,1B,2q,2z,1L,9i,1a,34,2R,1b,4b,1m,1I,2M,5h,2Y,8h,8f,67,F,3t,x,y,1h,4N,4J,H,1f,1H,3o,3m,3v,3q,3w,3C,5J;F=o.1c.F;J=o.1c.J;3z=o.T;9i=by.2a;8f=F*J;67=8f<<2;Y=[];W(i=H=0;0<=67?H<67:H>67;i=0<=67?++H:--H){Y[i]=3z[i]}6X=0;5h=7l;7l-=1;8Z(5h-->=0){3Z=(1V+0.5)|0;B(3Z===0){5G}B(3Z>6M){3Z=6M}2H=3Z+3Z+1;8h=F<<2;3t=F-1;46=J-1;1a=3Z+1;2Y=1a*(1a+1)/2;2M=1y 4T();4b=bg 0;1b=2M;W(i=1f=1;1<=2H?1f<2H:1f>2H;i=1<=2H?++1f:--1f){1b=1b.1N=1y 4T();B(i===1a){4b=1b}}1b.1N=2M;1m=L;1I=L;4J=1h=0;2O=66[3Z];2R=63[3Z];W(y=1H=0;0<=J?1HJ;y=0<=J?++1H:--1H){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2Y*1B;1K+=2Y*1A;1O+=2Y*1D;1b=2M;W(i=3o=0;0<=1a?3o<1a:3o>1a;i=0<=1a?++3o:--3o){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3m=1;1<=1a?3m<1a:3m>1a;i=1<=1a?++3m:--3m){p=1h+((3tF;x=0<=F?++3v:--3v){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4J+((p=x+1a)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4J+=F}W(x=3q=0;0<=F?3qF;x=0<=F?++3q:--3q){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2Y*1B;1K+=2Y*1A;1O+=2Y*1D;1b=2M;W(i=3w=0;0<=1a?3w<1a:3w>1a;i=0<=1a?++3w:--3w){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4N=F;W(i=3C=1;1<=1a?3C<1a:3C>1a;i=1<=1a?++3C:--3C){1h=(4N+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<46){4N+=F}}1h=x;1m=2M;1I=4b;W(y=5J=0;0<=J?5JJ;y=0<=J?++5J:--5J){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<46?p:46)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}1V*=bq;i=8f;8Z(--i>-1){2x=i<<2;6K=(9i[2x+2]&fo)/E.0*7l;7M=6K|0;B(7M===6X){5P=6M.0*(6K-(6K|0));6S=6M-5P;3z[2x]=(3z[2x]*6S+Y[2x]*5P)>>8;3z[2x+1]=(3z[2x+1]*6S+Y[2x+1]*5P)>>8;3z[2x+2]=(3z[2x+2]*6S+Y[2x+2]*5P)>>8}S B(7M===6X+1){3z[2x]=Y[2x];3z[2x+1]=Y[2x+1];3z[2x+2]=Y[2x+2]}}6X++}u o});D.R.V("fq",A(G){M 4h,2w;4h={3B:{x:o.1c.F/2,y:o.1c.J/2},2F:45,cd:5Y,7R:3,7Q:1.5,5h:3};G=1u.79(4h,G);G.2F*=O.aZ/4i;2w=97(o.1c.F,o.1c.J,G.3B.x,G.3B.y,G.2F,G.cd,2X);u o.51("a3",[2w,G.7R,G.7Q,G.5h])});u D.R.V("fx",A(G){M 4h,2w,6P,6O;4h={1t:50,3B:{x:o.1c.F/2,y:o.1c.J/2},7R:3,7Q:1.5,5h:3,1V:L};G=1u.79(4h,G);B(!G.1V){G.1V=o.1c.F2H;i=1<=2H?++H:--H){1b=1b.1N=1y 4T();B(i===1a){4b=1b}}1b.1N=2M;1m=L;1I=L;4J=1h=0;2O=66[1V];2R=63[1V];W(y=1f=0;0<=J?1fJ;y=0<=J?++1f:--1f){2q=2n=2l=1L=1K=1O=0;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2Y*1B;1K+=2Y*1A;1O+=2Y*1D;1b=2M;W(i=1H=0;0<=1a?1H<1a:1H>1a;i=0<=1a?++1H:--1H){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}W(i=3o=1;1<=1a?3o<1a:3o>1a;i=1<=1a?++3o:--3o){p=1h+((3tF;x=0<=F?++3m:--3m){Y[1h]=(1L*2O)>>2R;Y[1h+1]=(1K*2O)>>2R;Y[1h+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(4J+((p=x+1V+1)<3t?p:3t))<<2;2q+=(1m.r=Y[p]);2n+=(1m.g=Y[p+1]);2l+=(1m.b=Y[p+2]);1L+=2q;1K+=2n;1O+=2l;1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=4}4J+=F}W(x=3v=0;0<=F?3vF;x=0<=F?++3v:--3v){2n=2l=2q=1K=1O=1L=0;1h=x<<2;2z=1a*(1B=Y[1h]);2y=1a*(1A=Y[1h+1]);2C=1a*(1D=Y[1h+2]);1L+=2Y*1B;1K+=2Y*1A;1O+=2Y*1D;1b=2M;W(i=3q=0;0<=1a?3q<1a:3q>1a;i=0<=1a?++3q:--3q){1b.r=1B;1b.g=1A;1b.b=1D;1b=1b.1N}4N=F;W(i=3w=1;1<=1V?3w<=1V:3w>=1V;i=1<=1V?++3w:--3w){1h=(4N+x)<<2;1L+=(1b.r=(1B=Y[1h]))*(34=1a-i);1K+=(1b.g=(1A=Y[1h+1]))*34;1O+=(1b.b=(1D=Y[1h+2]))*34;2q+=1B;2n+=1A;2l+=1D;1b=1b.1N;B(i<46){4N+=F}}1h=x;1m=2M;1I=4b;W(y=3C=0;0<=J?3CJ;y=0<=J?++3C:--3C){p=1h<<2;Y[p]=(1L*2O)>>2R;Y[p+1]=(1K*2O)>>2R;Y[p+2]=(1O*2O)>>2R;1L-=2z;1K-=2y;1O-=2C;2z-=1m.r;2y-=1m.g;2C-=1m.b;p=(x+(((p=y+1a)<46?p:46)*F))<<2;1L+=(2q+=(1m.r=Y[p]));1K+=(2n+=(1m.g=Y[p+1]));1O+=(2l+=(1m.b=Y[p+2]));1m=1m.1N;2z+=(1B=1I.r);2y+=(1A=1I.g);2C+=(1D=1I.b);2q-=1B;2n-=1A;2l-=1D;1I=1I.1N;1h+=F}}u o});u D.R.V("5L",A(1V){u o.51("5L",[1V])})})();D.R.V("aD",A(Q){u o.2p("aD",A(C){M 6y;6y=(0.cS*C.r)+(0.cZ*C.g)+(0.d0*C.b);B(6y= 0)) { + ref = from.attributes; + results = []; + for (o = 0, len = ref.length; o < len; o++) { + attr = ref[o]; + if ((opts.except != null) && (ref1 = attr.nodeName, indexOf.call(opts.except, ref1) >= 0)) { continue; } - _results.push(to.setAttribute(attr.nodeName, attr.nodeValue)); + results.push(to.setAttribute(attr.nodeName, attr.nodeValue)); } - return _results; + return results; }; Util.dataArray = function(length) { @@ -172,8 +172,8 @@ Root = window; } - Caman = (function(_super) { - __extends(Caman, _super); + Caman = (function(superClass) { + extend(Caman, superClass); Caman.version = { release: "4.1.2", @@ -212,7 +212,7 @@ }; function Caman() { - this.nodeFileReady = __bind(this.nodeFileReady, this); + this.nodeFileReady = bind(this.nodeFileReady, this); var args, callback, id; if (arguments.length === 0) { throw "Invalid arguments"; @@ -288,7 +288,7 @@ }; Caman.prototype.parseArguments = function(args) { - var key, val, _ref, _results; + var key, ref, results, val; if (args.length === 0) { throw "Invalid arguments given"; } @@ -312,14 +312,14 @@ } this.callback = args[2]; if (args.length === 4) { - _ref = args[4]; - _results = []; - for (key in _ref) { - if (!__hasProp.call(_ref, key)) continue; - val = _ref[key]; - _results.push(this.options[key] = val); + ref = args[4]; + results = []; + for (key in ref) { + if (!hasProp.call(ref, key)) continue; + val = ref[key]; + results.push(this.options[key] = val); } - return _results; + return results; } }; @@ -482,7 +482,7 @@ }; Caman.prototype.finishInit = function() { - var i, pixel, _i, _len, _ref; + var i, len, o, pixel, ref; if (this.context == null) { this.context = this.canvas.getContext('2d'); } @@ -504,9 +504,9 @@ if (Caman.allowRevert) { this.initializedPixelData = Util.dataArray(this.pixelData.length); this.originalPixelData = Util.dataArray(this.pixelData.length); - _ref = this.pixelData; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; + ref = this.pixelData; + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; this.initializedPixelData[i] = pixel; this.originalPixelData[i] = pixel; } @@ -528,18 +528,18 @@ }; Caman.prototype.resetOriginalPixelData = function() { - var i, pixel, _i, _len, _ref, _results; + var i, len, o, pixel, ref, results; if (!Caman.allowRevert) { throw "Revert disabled"; } this.originalPixelData = Util.dataArray(this.pixelData.length); - _ref = this.pixelData; - _results = []; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; - _results.push(this.originalPixelData[i] = pixel); + ref = this.pixelData; + results = []; + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; + results.push(this.originalPixelData[i] = pixel); } - return _results; + return results; }; Caman.prototype.hasId = function() { @@ -570,8 +570,8 @@ this.preScaledHeight = this.canvas.height; this.canvas.width = this.preScaledWidth * ratio; this.canvas.height = this.preScaledHeight * ratio; - this.canvas.style.width = "" + this.preScaledWidth + "px"; - this.canvas.style.height = "" + this.preScaledHeight + "px"; + this.canvas.style.width = this.preScaledWidth + "px"; + this.canvas.style.height = this.preScaledHeight + "px"; this.context.scale(ratio, ratio); this.width = this.originalWidth = this.canvas.width; return this.height = this.originalHeight = this.canvas.height; @@ -604,16 +604,16 @@ }; Caman.prototype.replaceCanvas = function(newCanvas) { - var i, pixel, _i, _len, _ref; + var i, len, o, pixel, ref; this.canvas = newCanvas; this.context = this.canvas.getContext('2d'); this.imageData = this.context.getImageData(0, 0, this.canvas.width, this.canvas.height); this.pixelData = this.imageData.data; if (Caman.allowRevert) { this.originalPixelData = Util.dataArray(this.pixelData.length); - _ref = this.pixelData; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; + ref = this.pixelData; + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; this.originalPixelData[i] = pixel; } } @@ -642,16 +642,16 @@ }; Caman.prototype.revert = function(updateContext) { - var i, pixel, _i, _len, _ref; + var i, len, o, pixel, ref; if (updateContext == null) { updateContext = true; } if (!Caman.allowRevert) { throw "Revert disabled"; } - _ref = this.originalVisiblePixels(); - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; + ref = this.originalVisiblePixels(); + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; this.pixelData[i] = pixel; } if (updateContext) { @@ -660,7 +660,7 @@ }; Caman.prototype.reset = function() { - var canvas, ctx, i, imageData, pixel, pixelData, _i, _len, _ref; + var canvas, ctx, i, imageData, len, o, pixel, pixelData, ref; canvas = document.createElement('canvas'); Util.copyAttributes(this.canvas, canvas); canvas.width = this.originalWidth; @@ -668,9 +668,9 @@ ctx = canvas.getContext('2d'); imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); pixelData = imageData.data; - _ref = this.initializedPixelData; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - pixel = _ref[i]; + ref = this.initializedPixelData; + for (i = o = 0, len = ref.length; o < len; i = ++o) { + pixel = ref[i]; pixelData[i] = pixel; } ctx.putImageData(imageData, 0, 0); @@ -683,7 +683,7 @@ }; Caman.prototype.originalVisiblePixels = function() { - var coord, endX, endY, i, pixelData, pixels, startX, startY, width, _i, _ref, _ref1, _ref2; + var coord, endX, endY, i, o, pixelData, pixels, ref, ref1, ref2, startX, startY, width; if (!Caman.allowRevert) { throw "Revert disabled"; } @@ -694,9 +694,9 @@ endY = startY + this.height; pixelData = this.originalPixelData; width = this.canvas.width; - for (i = _i = 0, _ref = pixelData.length; _i < _ref; i = _i += 4) { + for (i = o = 0, ref = pixelData.length; o < ref; i = o += 4) { coord = Pixel.locationToCoordinates(i, width); - if (((startX <= (_ref1 = coord.x) && _ref1 < endX)) && ((startY <= (_ref2 = coord.y) && _ref2 < endY))) { + if (((startX <= (ref1 = coord.x) && ref1 < endX)) && ((startY <= (ref2 = coord.y) && ref2 < endY))) { pixels.push(pixelData[i], pixelData[i + 1], pixelData[i + 2], pixelData[i + 3]); } } @@ -713,7 +713,7 @@ }; Caman.prototype.processKernel = function(name, adjust, divisor, bias) { - var i, _i, _ref; + var i, o, ref; if (divisor == null) { divisor = null; } @@ -722,7 +722,7 @@ } if (divisor == null) { divisor = 0; - for (i = _i = 0, _ref = adjust.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = adjust.length; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { divisor += adjust[i]; } } @@ -786,29 +786,29 @@ Root.Caman = Caman; Caman.Analyze = (function() { - function Analyze(c) { - this.c = c; + function Analyze(c1) { + this.c = c1; } Analyze.prototype.calculateLevels = function() { - var i, levels, numPixels, _i, _j, _k, _ref; + var i, levels, numPixels, o, ref, u, w; levels = { r: {}, g: {}, b: {} }; - for (i = _i = 0; _i <= 255; i = ++_i) { + for (i = o = 0; o <= 255; i = ++o) { levels.r[i] = 0; levels.g[i] = 0; levels.b[i] = 0; } - for (i = _j = 0, _ref = this.c.pixelData.length; _j < _ref; i = _j += 4) { + for (i = u = 0, ref = this.c.pixelData.length; u < ref; i = u += 4) { levels.r[this.c.pixelData[i]]++; levels.g[this.c.pixelData[i + 1]]++; levels.b[this.c.pixelData[i + 2]]++; } numPixels = this.c.pixelData.length / 4; - for (i = _k = 0; _k <= 255; i = ++_k) { + for (i = w = 0; w <= 255; i = ++w) { levels.r[i] /= numPixels; levels.g[i] /= numPixels; levels.b[i] /= numPixels; @@ -823,20 +823,20 @@ Analyze = Caman.Analyze; Caman.DOMUpdated = function() { - var img, imgs, parser, _i, _len, _results; + var img, imgs, len, o, parser, results; imgs = document.querySelectorAll("img[data-caman]"); if (!(imgs.length > 0)) { return; } - _results = []; - for (_i = 0, _len = imgs.length; _i < _len; _i++) { - img = imgs[_i]; - _results.push(parser = new CamanParser(img, function() { + results = []; + for (o = 0, len = imgs.length; o < len; o++) { + img = imgs[o]; + results.push(parser = new CamanParser(img, function() { this.parse(); return this.execute(); })); } - return _results; + return results; }; if (Caman.autoload) { @@ -860,7 +860,7 @@ } CamanParser.prototype.parse = function() { - var args, e, filter, func, inst, instFunc, m, r, unparsedInstructions, _i, _len, _ref, _results; + var args, e, filter, func, inst, instFunc, len, m, o, r, ref, results, unparsedInstructions; this.ele = this.caman.canvas; r = new RegExp(INST_REGEX, 'g'); unparsedInstructions = this.dataStr.match(r); @@ -868,20 +868,20 @@ return; } r = new RegExp(INST_REGEX); - _results = []; - for (_i = 0, _len = unparsedInstructions.length; _i < _len; _i++) { - inst = unparsedInstructions[_i]; - _ref = inst.match(r), m = _ref[0], filter = _ref[1], args = _ref[2]; + results = []; + for (o = 0, len = unparsedInstructions.length; o < len; o++) { + inst = unparsedInstructions[o]; + ref = inst.match(r), m = ref[0], filter = ref[1], args = ref[2]; instFunc = new Function("return function() { this." + filter + "(" + args + "); };"); try { func = instFunc(); - _results.push(func.call(this.caman)); + results.push(func.call(this.caman)); } catch (_error) { e = _error; - _results.push(Log.debug(e)); + results.push(Log.debug(e)); } } - return _results; + return results; }; CamanParser.prototype.execute = function() { @@ -940,7 +940,7 @@ }; Calculate.bezier = function(start, ctrl1, ctrl2, end, lowBound, highBound) { - var bezier, clamp, controlPoints, endX, i, j, lerp, next, prev, t, _i, _j, _ref; + var bezier, clamp, controlPoints, endX, i, j, lerp, next, o, prev, ref, t, u; if (lowBound == null) { lowBound = 0; } @@ -964,12 +964,12 @@ clamp = function(a, min, max) { return Math.min(Math.max(a, min), max); }; - for (i = _i = 0; _i < 1000; i = ++_i) { + for (i = o = 0; o < 1000; i = ++o) { t = i / 1000; prev = controlPoints; while (prev.length > 1) { next = []; - for (j = _j = 0, _ref = prev.length - 2; 0 <= _ref ? _j <= _ref : _j >= _ref; j = 0 <= _ref ? ++_j : --_j) { + for (j = u = 0, ref = prev.length - 2; 0 <= ref ? u <= ref : u >= ref; j = 0 <= ref ? ++u : --u) { next.push([lerp(prev[j][0], prev[j + 1][0], t), lerp(prev[j][1], prev[j + 1][1], t)]); } prev = next; @@ -985,7 +985,7 @@ }; Calculate.hermite = function(controlPoints, lowBound, highBound) { - var add, clamp, count, endX, fac0, fac1, fac2, fac3, i, j, lerp, m0, m1, mul, p, p0, p1, pointsPerSegment, pointsPerStep, pos, ret, sub, t, _i, _j, _ref; + var add, clamp, count, endX, fac0, fac1, fac2, fac3, i, j, lerp, m0, m1, mul, o, p, p0, p1, pointsPerSegment, pointsPerStep, pos, ref, ref1, ret, sub, t, u; if (controlPoints.length < 2) { throw "Invalid number of arguments to hermite"; } @@ -1012,7 +1012,7 @@ return Math.min(Math.max(a, min), max); }; count = 0; - for (i = _i = 0, _ref = controlPoints.length - 2; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = controlPoints.length - 2; 0 <= ref ? o <= ref : o >= ref; i = 0 <= ref ? ++o : --o) { p0 = controlPoints[i]; p1 = controlPoints[i + 1]; pointsPerSegment = p1[0] - p0[0]; @@ -1024,7 +1024,7 @@ m0 = mul(sub(p1, p), [0.5, 0.5]); p = i < controlPoints.length - 2 ? controlPoints[i + 2] : p1; m1 = mul(sub(p, p0), [0.5, 0.5]); - for (j = _j = 0; 0 <= pointsPerSegment ? _j <= pointsPerSegment : _j >= pointsPerSegment; j = 0 <= pointsPerSegment ? ++_j : --_j) { + for (j = u = 0, ref1 = pointsPerSegment; 0 <= ref1 ? u <= ref1 : u >= ref1; j = 0 <= ref1 ? ++u : --u) { t = j * pointsPerStep; fac0 = 2.0 * t * t * t - 3.0 * t * t + 1.0; fac1 = t * t * t - 2.0 * t * t + t; @@ -1041,21 +1041,23 @@ }; Calculate.missingValues = function(values, endX) { - var i, j, leftCoord, ret, rightCoord, _i, _j; + var i, j, leftCoord, o, ref, ref1, ref2, ret, rightCoord, u; if (Object.keys(values).length < endX + 1) { ret = {}; - for (i = _i = 0; 0 <= endX ? _i <= endX : _i >= endX; i = 0 <= endX ? ++_i : --_i) { + for (i = o = 0, ref = endX; 0 <= ref ? o <= ref : o >= ref; i = 0 <= ref ? ++o : --o) { if (values[i] != null) { ret[i] = values[i]; } else { leftCoord = [i - 1, ret[i - 1]]; - for (j = _j = i; i <= endX ? _j <= endX : _j >= endX; j = i <= endX ? ++_j : --_j) { + for (j = u = ref1 = i, ref2 = endX; ref1 <= ref2 ? u <= ref2 : u >= ref2; j = ref1 <= ref2 ? ++u : --u) { if (values[j] != null) { rightCoord = [j, values[j]]; break; } } - ret[i] = leftCoord[1] + ((rightCoord[1] - leftCoord[1]) / (rightCoord[0] - leftCoord[0])) * (i - leftCoord[0]); + if (rightCoord) { + ret[i] = leftCoord[1] + ((rightCoord[1] - leftCoord[1]) / (rightCoord[0] - leftCoord[0])) * (i - leftCoord[0]); + } } } return ret; @@ -1400,22 +1402,22 @@ Event.types = ["processStart", "processComplete", "renderStart", "renderFinished", "blockStarted", "blockFinished"]; Event.trigger = function(target, type, data) { - var event, _i, _len, _ref, _results; + var event, len, o, ref, results; if (data == null) { data = null; } if (this.events[type] && this.events[type].length) { - _ref = this.events[type]; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - event = _ref[_i]; + ref = this.events[type]; + results = []; + for (o = 0, len = ref.length; o < len; o++) { + event = ref[o]; if (event.target === null || target.id === event.target.id) { - _results.push(event.fn.call(target, data)); + results.push(event.fn.call(target, data)); } else { - _results.push(void 0); + results.push(void 0); } } - return _results; + return results; } }; @@ -1428,7 +1430,7 @@ type = _type; fn = _fn; } - if (__indexOf.call(this.types, type) < 0) { + if (indexOf.call(this.types, type) < 0) { return false; } if (!this.events[type]) { @@ -1485,8 +1487,8 @@ }; IO.corsEnabled = function(img) { - var _ref; - return (img.crossOrigin != null) && ((_ref = img.crossOrigin.toLowerCase()) === 'anonymous' || _ref === 'use-credentials'); + var ref; + return (img.crossOrigin != null) && ((ref = img.crossOrigin.toLowerCase()) === 'anonymous' || ref === 'use-credentials'); }; IO.isURLRemote = function(url) { @@ -1514,7 +1516,7 @@ }; IO.proxyUrl = function(src) { - return "" + Caman.remoteProxy + "?" + Caman.proxyParam + "=" + (encodeURIComponent(src)); + return Caman.remoteProxy + "?" + Caman.proxyParam + "=" + (encodeURIComponent(src)); }; IO.useProxy = function(lang) { @@ -1603,8 +1605,8 @@ IO = Caman.IO; Caman.Layer = (function() { - function Layer(c) { - this.c = c; + function Layer(c1) { + this.c = c1; this.filter = this.c; this.options = { blendingMode: 'normal', @@ -1635,9 +1637,9 @@ }; Layer.prototype.copyParent = function() { - var i, parentData, _i, _ref; + var i, o, parentData, ref; parentData = this.c.pixelData; - for (i = _i = 0, _ref = this.c.pixelData.length; _i < _ref; i = _i += 4) { + for (i = o = 0, ref = this.c.pixelData.length; o < ref; i = o += 4) { this.pixelData[i] = parentData[i]; this.pixelData[i + 1] = parentData[i + 1]; this.pixelData[i + 2] = parentData[i + 2]; @@ -1668,11 +1670,11 @@ }; Layer.prototype.applyToParent = function() { - var i, layerData, parentData, result, rgbaLayer, rgbaParent, _i, _ref, _results; + var i, layerData, o, parentData, ref, result, results, rgbaLayer, rgbaParent; parentData = this.c.pixelStack[this.c.pixelStack.length - 1]; layerData = this.c.pixelData; - _results = []; - for (i = _i = 0, _ref = layerData.length; _i < _ref; i = _i += 4) { + results = []; + for (i = o = 0, ref = layerData.length; o < ref; i = o += 4) { rgbaParent = { r: parentData[i], g: parentData[i + 1], @@ -1694,9 +1696,9 @@ } parentData[i] = rgbaParent.r - ((rgbaParent.r - result.r) * (this.options.opacity * (result.a / 255))); parentData[i + 1] = rgbaParent.g - ((rgbaParent.g - result.g) * (this.options.opacity * (result.a / 255))); - _results.push(parentData[i + 2] = rgbaParent.b - ((rgbaParent.b - result.b) * (this.options.opacity * (result.a / 255)))); + results.push(parentData[i + 2] = rgbaParent.b - ((rgbaParent.b - result.b) * (this.options.opacity * (result.a / 255)))); } - return _results; + return results; }; return Layer; @@ -1707,14 +1709,14 @@ Caman.Logger = (function() { function Logger() { - var name, _i, _len, _ref; - _ref = ['log', 'info', 'warn', 'error']; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - name = _ref[_i]; + var len, name, o, ref; + ref = ['log', 'info', 'warn', 'error']; + for (o = 0, len = ref.length; o < len; o++) { + name = ref[o]; this[name] = (function(name) { return function() { var args, e; - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + args = 1 <= arguments.length ? slice1.call(arguments, 0) : []; if (!Caman.DEBUG) { return; } @@ -1751,12 +1753,12 @@ }; }; - function Pixel(r, g, b, a, c) { - this.r = r != null ? r : 0; - this.g = g != null ? g : 0; - this.b = b != null ? b : 0; - this.a = a != null ? a : 255; - this.c = c != null ? c : null; + function Pixel(r1, g1, b1, a1, c1) { + this.r = r1 != null ? r1 : 0; + this.g = g1 != null ? g1 : 0; + this.b = b1 != null ? b1 : 0; + this.a = a1 != null ? a1 : 255; + this.c = c1 != null ? c1 : null; this.loc = 0; } @@ -1878,9 +1880,9 @@ Caman.Renderer = (function() { Renderer.Blocks = Caman.NodeJS ? require('os').cpus().length : 4; - function Renderer(c) { - this.c = c; - this.processNext = __bind(this.processNext, this); + function Renderer(c1) { + this.c = c1; + this.processNext = bind(this.processNext, this); this.renderQueue = []; this.modPixelData = null; } @@ -1927,14 +1929,14 @@ }; Renderer.prototype.eachBlock = function(fn) { - var blockN, blockPixelLength, bnum, end, f, i, lastBlockN, n, start, _i, _ref, _results; + var blockN, blockPixelLength, bnum, end, f, i, lastBlockN, n, o, ref, results, start; this.blocksDone = 0; n = this.c.pixelData.length; blockPixelLength = Math.floor((n / 4) / Renderer.Blocks); blockN = blockPixelLength * 4; lastBlockN = blockN + ((n / 4) % Renderer.Blocks) * 4; - _results = []; - for (i = _i = 0, _ref = Renderer.Blocks; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + results = []; + for (i = o = 0, ref = Renderer.Blocks; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { start = i * blockN; end = start + (i === Renderer.Blocks - 1 ? lastBlockN : blockN); if (Caman.NodeJS) { @@ -1944,9 +1946,9 @@ }; })(this)); bnum = f.run(); - _results.push(this.blockFinished(bnum)); + results.push(this.blockFinished(bnum)); } else { - _results.push(setTimeout((function(_this) { + results.push(setTimeout((function(_this) { return function(i, start, end) { return function() { return fn.call(_this, i, start, end); @@ -1955,7 +1957,7 @@ })(this)(i, start, end), 0)); } } - return _results; + return results; }; Renderer.prototype.executeFilter = function() { @@ -1975,7 +1977,7 @@ }; Renderer.prototype.renderBlock = function(bnum, start, end) { - var i, pixel, _i; + var i, o, pixel, ref, ref1; Log.debug("Block #" + bnum + " - Filter: " + this.currentJob.name + ", Start: " + start + ", End: " + end); Event.trigger(this.c, "blockStarted", { blockNum: bnum, @@ -1985,13 +1987,15 @@ }); pixel = new Pixel(); pixel.setContext(this.c); - for (i = _i = start; _i < end; i = _i += 4) { + for (i = o = ref = start, ref1 = end; o < ref1; i = o += 4) { pixel.loc = i; pixel.r = this.c.pixelData[i]; pixel.g = this.c.pixelData[i + 1]; pixel.b = this.c.pixelData[i + 2]; pixel.a = this.c.pixelData[i + 3]; - this.currentJob.processFn(pixel); + if (this.currentJob.processFn) { + this.currentJob.processFn(pixel); + } this.c.pixelData[i] = Util.clampRGB(pixel.r); this.c.pixelData[i + 1] = Util.clampRGB(pixel.g); this.c.pixelData[i + 2] = Util.clampRGB(pixel.b); @@ -2005,12 +2009,16 @@ }; Renderer.prototype.renderKernel = function(bnum, start, end) { - var adjust, adjustSize, bias, builder, builderIndex, divisor, i, j, k, kernel, n, name, p, pixel, res, _i, _j, _k; + var adjust, adjustSize, bias, builder, builderIndex, divisor, i, j, k, kernel, n, name, o, p, pixel, ref, ref1, ref2, ref3, ref4, ref5, res, u, w; name = this.currentJob.name; bias = this.currentJob.bias; divisor = this.currentJob.divisor; n = this.c.pixelData.length; adjust = this.currentJob.adjust; + if (!adjust) { + this.blockFinished(bnum); + return; + } adjustSize = Math.sqrt(adjust.length); kernel = []; Log.debug("Rendering kernel - Filter: " + this.currentJob.name); @@ -2019,11 +2027,11 @@ builder = (adjustSize - 1) / 2; pixel = new Pixel(); pixel.setContext(this.c); - for (i = _i = start; _i < end; i = _i += 4) { + for (i = o = ref = start, ref1 = end; o < ref1; i = o += 4) { pixel.loc = i; builderIndex = 0; - for (j = _j = -builder; -builder <= builder ? _j <= builder : _j >= builder; j = -builder <= builder ? ++_j : --_j) { - for (k = _k = builder; builder <= -builder ? _k <= -builder : _k >= -builder; k = builder <= -builder ? ++_k : --_k) { + for (j = u = ref2 = -builder, ref3 = builder; ref2 <= ref3 ? u <= ref3 : u >= ref3; j = ref2 <= ref3 ? ++u : --u) { + for (k = w = ref4 = builder, ref5 = -builder; ref4 <= ref5 ? w <= ref5 : w >= ref5; k = ref4 <= ref5 ? ++w : --w) { p = pixel.getPixelRelative(j, k); kernel[builderIndex * 3] = p.r; kernel[builderIndex * 3 + 1] = p.g; @@ -2045,7 +2053,7 @@ }; Renderer.prototype.blockFinished = function(bnum) { - var i, _i, _ref; + var i, o, ref; if (bnum >= 0) { Log.debug("Block #" + bnum + " finished! Filter: " + this.currentJob.name); } @@ -2057,7 +2065,7 @@ }); if (this.blocksDone === Renderer.Blocks) { if (this.currentJob.type === Filter.Type.Kernel) { - for (i = _i = 0, _ref = this.c.pixelData.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = this.c.pixelData.length; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { this.c.pixelData[i] = this.modPixelData[i]; } } @@ -2070,13 +2078,13 @@ }; Renderer.prototype.processKernel = function(adjust, kernel, divisor, bias) { - var i, val, _i, _ref; + var i, o, ref, val; val = { r: 0, g: 0, b: 0 }; - for (i = _i = 0, _ref = adjust.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = adjust.length; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { val.r += adjust[i] * kernel[i * 3]; val.g += adjust[i] * kernel[i * 3 + 1]; val.b += adjust[i] * kernel[i * 3 + 2]; @@ -2337,14 +2345,14 @@ Filter.register("hue", function(adjust) { return this.process("hue", function(rgba) { - var b, g, h, hsv, r, _ref; + var b, g, h, hsv, r, ref; hsv = Convert.rgbToHSV(rgba.r, rgba.g, rgba.b); h = hsv.h * 100; h += Math.abs(adjust); h = h % 100; h /= 100; hsv.h = h; - _ref = Convert.hsvToRGB(hsv.h, hsv.s, hsv.v), r = _ref.r, g = _ref.g, b = _ref.b; + ref = Convert.hsvToRGB(hsv.h, hsv.s, hsv.v), r = ref.r, g = ref.g, b = ref.b; rgba.r = r; rgba.g = g; rgba.b = b; @@ -2444,7 +2452,7 @@ return this; } for (chan in options) { - if (!__hasProp.call(options, chan)) continue; + if (!hasProp.call(options, chan)) continue; value = options[chan]; if (value === 0) { delete options[chan]; @@ -2482,8 +2490,8 @@ }); Filter.register("curves", function() { - var algo, bezier, chans, cps, end, i, last, start, _i, _j, _ref, _ref1; - chans = arguments[0], cps = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + var algo, bezier, chans, cps, end, i, last, o, ref, ref1, start, u; + chans = arguments[0], cps = 2 <= arguments.length ? slice1.call(arguments, 1) : []; last = cps[cps.length - 1]; if (typeof last === "function") { algo = last; @@ -2506,19 +2514,19 @@ bezier = algo(cps, 0, 255); start = cps[0]; if (start[0] > 0) { - for (i = _i = 0, _ref = start[0]; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + for (i = o = 0, ref = start[0]; 0 <= ref ? o < ref : o > ref; i = 0 <= ref ? ++o : --o) { bezier[i] = start[1]; } } end = cps[cps.length - 1]; if (end[0] < 255) { - for (i = _j = _ref1 = end[0]; _ref1 <= 255 ? _j <= 255 : _j >= 255; i = _ref1 <= 255 ? ++_j : --_j) { + for (i = u = ref1 = end[0]; ref1 <= 255 ? u <= 255 : u >= 255; i = ref1 <= 255 ? ++u : --u) { bezier[i] = end[1]; } } return this.process("curves", function(rgba) { - var _k, _ref2; - for (i = _k = 0, _ref2 = chans.length; 0 <= _ref2 ? _k < _ref2 : _k > _ref2; i = 0 <= _ref2 ? ++_k : --_k) { + var ref2, w; + for (i = w = 0, ref2 = chans.length; 0 <= ref2 ? w < ref2 : w > ref2; i = 0 <= ref2 ? ++w : --w) { rgba[chans[i]] = bezier[rgba[chans[i]]]; } return rgba; diff --git a/dist/caman.min.js b/dist/caman.min.js index 8e0dcdea..60aebac7 100644 --- a/dist/caman.min.js +++ b/dist/caman.min.js @@ -1,34 +1,34 @@ -(function(){var $,Analyze,Blender,Calculate,Caman,CamanParser,Canvas,Convert,Event,Fiber,Filter,IO,Image,Layer,Log,Module,Pixel,Plugin,Renderer,Root,Store,Util,fs,http,moduleKeywords,slice,__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i255){return 255;} -return val;};Util.copyAttributes=function(from,to,opts){var attr,_i,_len,_ref,_ref1,_results;if(opts==null){opts={};} -_ref=from.attributes;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){attr=_ref[_i];if((opts.except!=null)&&(_ref1=attr.nodeName,__indexOf.call(opts.except,_ref1)>=0)){continue;} -_results.push(to.setAttribute(attr.nodeName,attr.nodeValue));} -return _results;};Util.dataArray=function(length){if(length==null){length=0;} +return val;};Util.copyAttributes=function(from,to,opts){var attr,len,o,ref,ref1,results;if(opts==null){opts={};} +ref=from.attributes;results=[];for(o=0,len=ref.length;o=0)){continue;} +results.push(to.setAttribute(attr.nodeName,attr.nodeValue));} +return results;};Util.dataArray=function(length){if(length==null){length=0;} if(Caman.NodeJS||(window.Uint8Array!=null)){return new Uint8Array(length);} return new Array(length);};return Util;})();if(typeof exports!=="undefined"&&exports!==null){Root=exports;Canvas=require('canvas');Image=Canvas.Image;Fiber=require('fibers');fs=require('fs');http=require('http');}else{Root=window;} -Caman=(function(_super){__extends(Caman,_super);Caman.version={release:"4.1.2",date:"7/27/2013"};Caman.DEBUG=false;Caman.allowRevert=true;Caman.crossOrigin="anonymous";Caman.remoteProxy="";Caman.proxyParam="camanProxyUrl";Caman.NodeJS=typeof exports!=="undefined"&&exports!==null;Caman.autoload=!Caman.NodeJS;Caman.toString=function(){return"Version "+Caman.version.release+", Released "+Caman.version.date;};Caman.getAttrId=function(canvas){if(Caman.NodeJS){return true;} +Caman=(function(superClass){extend(Caman,superClass);Caman.version={release:"4.1.2",date:"7/27/2013"};Caman.DEBUG=false;Caman.allowRevert=true;Caman.crossOrigin="anonymous";Caman.remoteProxy="";Caman.proxyParam="camanProxyUrl";Caman.NodeJS=typeof exports!=="undefined"&&exports!==null;Caman.autoload=!Caman.NodeJS;Caman.toString=function(){return"Version "+Caman.version.release+", Released "+Caman.version.date;};Caman.getAttrId=function(canvas){if(Caman.NodeJS){return true;} if(typeof canvas==="string"){canvas=$(canvas);} if(!((canvas!=null)&&(canvas.getAttribute!=null))){return null;} -return canvas.getAttribute('data-caman-id');};function Caman(){this.nodeFileReady=__bind(this.nodeFileReady,this);var args,callback,id;if(arguments.length===0){throw"Invalid arguments";} +return canvas.getAttribute('data-caman-id');};function Caman(){this.nodeFileReady=bind(this.nodeFileReady,this);var args,callback,id;if(arguments.length===0){throw"Invalid arguments";} if(this instanceof Caman){this.finishInit=this.finishInit.bind(this);this.imageLoaded=this.imageLoaded.bind(this);args=arguments[0];if(!Caman.NodeJS){id=parseInt(Caman.getAttrId(args[0]),10);callback=typeof args[1]==="function"?args[1]:typeof args[2]==="function"?args[2]:function(){};if(!isNaN(id)&&Store.has(id)){return Store.execute(id,callback);}} this.id=Util.uniqid.get();this.initializedPixelData=this.originalPixelData=null;this.cropCoordinates={x:0,y:0};this.cropped=false;this.resized=false;this.rotated=false;this.rotationAngle=0;this.pixelStack=[];this.layerStack=[];this.canvasQueue=[];this.currentLayer=null;this.scaled=false;this.analyze=new Analyze(this);this.renderer=new Renderer(this);this.domIsLoaded((function(_this){return function(){_this.parseArguments(args);return _this.setup();};})(this));return this;}else{return new Caman(arguments);}} -Caman.prototype.domIsLoaded=function(cb){var listener;if(Caman.NodeJS){return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{if(document.readyState==="complete"){Log.debug("DOM initialized");return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{listener=(function(_this){return function(){if(document.readyState==="complete"){Log.debug("DOM initialized");return cb.call(_this);}};})(this);return document.addEventListener("readystatechange",listener,false);}}};Caman.prototype.parseArguments=function(args){var key,val,_ref,_results;if(args.length===0){throw"Invalid arguments given";} +Caman.prototype.domIsLoaded=function(cb){var listener;if(Caman.NodeJS){return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{if(document.readyState==="complete"){Log.debug("DOM initialized");return setTimeout((function(_this){return function(){return cb.call(_this);};})(this),0);}else{listener=(function(_this){return function(){if(document.readyState==="complete"){Log.debug("DOM initialized");return cb.call(_this);}};})(this);return document.addEventListener("readystatechange",listener,false);}}};Caman.prototype.parseArguments=function(args){var key,ref,results,val;if(args.length===0){throw"Invalid arguments given";} this.initObj=null;this.initType=null;this.imageUrl=null;this.callback=function(){};this.setInitObject(args[0]);if(args.length===1){return;} switch(typeof args[1]){case"string":this.imageUrl=args[1];break;case"function":this.callback=args[1];} if(args.length===2){return;} -this.callback=args[2];if(args.length===4){_ref=args[4];_results=[];for(key in _ref){if(!__hasProp.call(_ref,key))continue;val=_ref[key];_results.push(this.options[key]=val);} -return _results;}};Caman.prototype.setInitObject=function(obj){if(Caman.NodeJS){this.initObj=obj;this.initType='node';return;} +this.callback=args[2];if(args.length===4){ref=args[4];results=[];for(key in ref){if(!hasProp.call(ref,key))continue;val=ref[key];results.push(this.options[key]=val);} +return results;}};Caman.prototype.setInitObject=function(obj){if(Caman.NodeJS){this.initObj=obj;this.initType='node';return;} if(typeof obj==="object"){this.initObj=obj;}else{this.initObj=$(obj);} if(this.initObj==null){throw"Could not find image or canvas for initialization.";} return this.initType=this.initObj.nodeName.toLowerCase();};Caman.prototype.setup=function(){switch(this.initType){case"node":return this.initNode();case"img":return this.initImage();case"canvas":return this.initCanvas();}};Caman.prototype.initNode=function(){Log.debug("Initializing for NodeJS");if(typeof this.initObj==="string"&&this.initObj.match(/^https?:\/\//)){return this.readFromHttp(this.initObj,this.nodeFileReady);}else if(typeof this.initObj==="string"){return fs.readFile(this.initObj,this.nodeFileReady);}else{return this.nodeFileReady(null,this.initObj);}};Caman.prototype.readFromHttp=function(url,callback){var req;Log.debug("Fetching image from "+url);req=http.get(url,function(res){var buf;buf='';res.setEncoding('binary');res.on('data',function(chunk){return buf+=chunk;});return res.on('end',function(){return callback(null,new Buffer(buf,'binary'));});});return req.on('error',callback);};Caman.prototype.nodeFileReady=function(err,data){if(err){throw err;} @@ -37,55 +37,55 @@ this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initC if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} -return this.finishInit();};Caman.prototype.finishInit=function(){var i,pixel,_i,_len,_ref;if(this.context==null){this.context=this.canvas.getContext('2d');} +return this.finishInit();};Caman.prototype.finishInit=function(){var i,len,o,pixel,ref;if(this.context==null){this.context=this.canvas.getContext('2d');} if(this.renderingContext==null){this.renderingContext=this.renderingCanvas.getContext('2d');} this.originalWidth=this.preScaledWidth=this.width=this.canvas.width;this.originalHeight=this.preScaledHeight=this.height=this.canvas.height;this.hiDPIAdjustments();if(!this.hasId()){this.assignId();} if(this.image!=null){this.context.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);this.renderingContext.drawImage(this.image,0,0,this.imageWidth(),this.imageHeight(),0,0,this.preScaledWidth,this.preScaledHeight);} -this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);_ref=this.pixelData;for(i=_i=0,_len=_ref.length;_i<_len;i=++_i){pixel=_ref[i];this.initializedPixelData[i]=pixel;this.originalPixelData[i]=pixel;}} +this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);this.pixelData=this.imageData.data;if(Caman.allowRevert){this.initializedPixelData=Util.dataArray(this.pixelData.length);this.originalPixelData=Util.dataArray(this.pixelData.length);ref=this.pixelData;for(i=o=0,len=ref.length;o_ref;i=0<=_ref?++_i:--_i){divisor+=adjust[i];}} -this.renderer.add({type:Filter.Type.Kernel,name:name,adjust:adjust,divisor:divisor,bias:bias});return this;};Caman.prototype.processPlugin=function(plugin,args){this.renderer.add({type:Filter.Type.Plugin,plugin:plugin,args:args});return this;};Caman.prototype.newLayer=function(callback){var layer;layer=new Layer(this);this.canvasQueue.push(layer);this.renderer.add({type:Filter.Type.LayerDequeue});callback.call(layer);this.renderer.add({type:Filter.Type.LayerFinished});return this;};Caman.prototype.executeLayer=function(layer){return this.pushContext(layer);};Caman.prototype.pushContext=function(layer){this.layerStack.push(this.currentLayer);this.pixelStack.push(this.pixelData);this.currentLayer=layer;return this.pixelData=layer.pixelData;};Caman.prototype.popContext=function(){this.pixelData=this.pixelStack.pop();return this.currentLayer=this.layerStack.pop();};Caman.prototype.applyCurrentLayer=function(){return this.currentLayer.applyToParent();};return Caman;})(Module);Root.Caman=Caman;Caman.Analyze=(function(){function Analyze(c){this.c=c;} -Analyze.prototype.calculateLevels=function(){var i,levels,numPixels,_i,_j,_k,_ref;levels={r:{},g:{},b:{}};for(i=_i=0;_i<=255;i=++_i){levels.r[i]=0;levels.g[i]=0;levels.b[i]=0;} -for(i=_j=0,_ref=this.c.pixelData.length;_j<_ref;i=_j+=4){levels.r[this.c.pixelData[i]]++;levels.g[this.c.pixelData[i+1]]++;levels.b[this.c.pixelData[i+2]]++;} -numPixels=this.c.pixelData.length/4;for(i=_k=0;_k<=255;i=++_k){levels.r[i]/=numPixels;levels.g[i]/=numPixels;levels.b[i]/=numPixels;} -return levels;};return Analyze;})();Analyze=Caman.Analyze;Caman.DOMUpdated=function(){var img,imgs,parser,_i,_len,_results;imgs=document.querySelectorAll("img[data-caman]");if(!(imgs.length>0)){return;} -_results=[];for(_i=0,_len=imgs.length;_i<_len;_i++){img=imgs[_i];_results.push(parser=new CamanParser(img,function(){this.parse();return this.execute();}));} -return _results;};if(Caman.autoload){(function(){if(document.readyState==="complete"){return Caman.DOMUpdated();}else{return document.addEventListener("DOMContentLoaded",Caman.DOMUpdated,false);}})();} +if(divisor==null){divisor=0;for(i=o=0,ref=adjust.length;0<=ref?oref;i=0<=ref?++o:--o){divisor+=adjust[i];}} +this.renderer.add({type:Filter.Type.Kernel,name:name,adjust:adjust,divisor:divisor,bias:bias});return this;};Caman.prototype.processPlugin=function(plugin,args){this.renderer.add({type:Filter.Type.Plugin,plugin:plugin,args:args});return this;};Caman.prototype.newLayer=function(callback){var layer;layer=new Layer(this);this.canvasQueue.push(layer);this.renderer.add({type:Filter.Type.LayerDequeue});callback.call(layer);this.renderer.add({type:Filter.Type.LayerFinished});return this;};Caman.prototype.executeLayer=function(layer){return this.pushContext(layer);};Caman.prototype.pushContext=function(layer){this.layerStack.push(this.currentLayer);this.pixelStack.push(this.pixelData);this.currentLayer=layer;return this.pixelData=layer.pixelData;};Caman.prototype.popContext=function(){this.pixelData=this.pixelStack.pop();return this.currentLayer=this.layerStack.pop();};Caman.prototype.applyCurrentLayer=function(){return this.currentLayer.applyToParent();};return Caman;})(Module);Root.Caman=Caman;Caman.Analyze=(function(){function Analyze(c1){this.c=c1;} +Analyze.prototype.calculateLevels=function(){var i,levels,numPixels,o,ref,u,w;levels={r:{},g:{},b:{}};for(i=o=0;o<=255;i=++o){levels.r[i]=0;levels.g[i]=0;levels.b[i]=0;} +for(i=u=0,ref=this.c.pixelData.length;u0)){return;} +results=[];for(o=0,len=imgs.length;o0)){return;} -r=new RegExp(INST_REGEX);_results=[];for(_i=0,_len=unparsedInstructions.length;_i<_len;_i++){inst=unparsedInstructions[_i];_ref=inst.match(r),m=_ref[0],filter=_ref[1],args=_ref[2];instFunc=new Function("return function() { this."+filter+"("+args+"); };");try{func=instFunc();_results.push(func.call(this.caman));}catch(_error){e=_error;_results.push(Log.debug(e));}} -return _results;};CamanParser.prototype.execute=function(){var ele;ele=this.ele;return this.caman.render(function(){return ele.parentNode.replaceChild(this.toImage(),ele);});};return CamanParser;})();Caman.Blender=(function(){function Blender(){} +CamanParser.prototype.parse=function(){var args,e,filter,func,inst,instFunc,len,m,o,r,ref,results,unparsedInstructions;this.ele=this.caman.canvas;r=new RegExp(INST_REGEX,'g');unparsedInstructions=this.dataStr.match(r);if(!(unparsedInstructions.length>0)){return;} +r=new RegExp(INST_REGEX);results=[];for(o=0,len=unparsedInstructions.length;o1){next=[];for(j=_j=0,_ref=prev.length-2;0<=_ref?_j<=_ref:_j>=_ref;j=0<=_ref?++_j:--_j){next.push([lerp(prev[j][0],prev[j+1][0],t),lerp(prev[j][1],prev[j+1][1],t)]);} +bezier={};lerp=function(a,b,t){return a*(1-t)+b*t;};clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};for(i=o=0;o<1000;i=++o){t=i/1000;prev=controlPoints;while(prev.length>1){next=[];for(j=u=0,ref=prev.length-2;0<=ref?u<=ref:u>=ref;j=0<=ref?++u:--u){next.push([lerp(prev[j][0],prev[j+1][0],t),lerp(prev[j][1],prev[j+1][1],t)]);} prev=next;} bezier[Math.round(prev[0][0])]=Math.round(clamp(prev[0][1],lowBound,highBound));} endX=controlPoints[controlPoints.length-1][0];bezier=Caman.Calculate.missingValues(bezier,endX);if(bezier[endX]==null){bezier[endX]=bezier[endX-1];} -return bezier;};Calculate.hermite=function(controlPoints,lowBound,highBound){var add,clamp,count,endX,fac0,fac1,fac2,fac3,i,j,lerp,m0,m1,mul,p,p0,p1,pointsPerSegment,pointsPerStep,pos,ret,sub,t,_i,_j,_ref;if(controlPoints.length<2){throw"Invalid number of arguments to hermite";} -ret={};lerp=function(a,b,t){return a*(1-t)+b*t;};add=(function(_this){return function(a,b,c,d){return[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]];};})(this);mul=(function(_this){return function(a,b){return[a[0]*b[0],a[1]*b[1]];};})(this);sub=(function(_this){return function(a,b){return[a[0]-b[0],a[1]-b[1]];};})(this);clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};count=0;for(i=_i=0,_ref=controlPoints.length-2;0<=_ref?_i<=_ref:_i>=_ref;i=0<=_ref?++_i:--_i){p0=controlPoints[i];p1=controlPoints[i+1];pointsPerSegment=p1[0]-p0[0];pointsPerStep=1/pointsPerSegment;if(i===controlPoints.length-2){pointsPerStep=1/(pointsPerSegment-1);} -p=i>0?controlPoints[i-1]:p0;m0=mul(sub(p1,p),[0.5,0.5]);p=i=pointsPerSegment;j=0<=pointsPerSegment?++_j:--_j){t=j*pointsPerStep;fac0=2.0*t*t*t-3.0*t*t+1.0;fac1=t*t*t-2.0*t*t+t;fac2=-2.0*t*t*t+3.0*t*t;fac3=t*t*t-t*t;pos=add(mul(p0,[fac0,fac0]),mul(m0,[fac1,fac1]),mul(p1,[fac2,fac2]),mul(m1,[fac3,fac3]));ret[Math.round(pos[0])]=Math.round(clamp(pos[1],lowBound,highBound));count+=1;}} -endX=controlPoints[controlPoints.length-1][0];ret=Caman.Calculate.missingValues(ret,endX);return ret;};Calculate.missingValues=function(values,endX){var i,j,leftCoord,ret,rightCoord,_i,_j;if(Object.keys(values).length=endX;i=0<=endX?++_i:--_i){if(values[i]!=null){ret[i]=values[i];}else{leftCoord=[i-1,ret[i-1]];for(j=_j=i;i<=endX?_j<=endX:_j>=endX;j=i<=endX?++_j:--_j){if(values[j]!=null){rightCoord=[j,values[j]];break;}} -ret[i]=leftCoord[1]+((rightCoord[1]-leftCoord[1])/(rightCoord[0]-leftCoord[0]))*(i-leftCoord[0]);}} +return bezier;};Calculate.hermite=function(controlPoints,lowBound,highBound){var add,clamp,count,endX,fac0,fac1,fac2,fac3,i,j,lerp,m0,m1,mul,o,p,p0,p1,pointsPerSegment,pointsPerStep,pos,ref,ref1,ret,sub,t,u;if(controlPoints.length<2){throw"Invalid number of arguments to hermite";} +ret={};lerp=function(a,b,t){return a*(1-t)+b*t;};add=(function(_this){return function(a,b,c,d){return[a[0]+b[0]+c[0]+d[0],a[1]+b[1]+c[1]+d[1]];};})(this);mul=(function(_this){return function(a,b){return[a[0]*b[0],a[1]*b[1]];};})(this);sub=(function(_this){return function(a,b){return[a[0]-b[0],a[1]-b[1]];};})(this);clamp=function(a,min,max){return Math.min(Math.max(a,min),max);};count=0;for(i=o=0,ref=controlPoints.length-2;0<=ref?o<=ref:o>=ref;i=0<=ref?++o:--o){p0=controlPoints[i];p1=controlPoints[i+1];pointsPerSegment=p1[0]-p0[0];pointsPerStep=1/pointsPerSegment;if(i===controlPoints.length-2){pointsPerStep=1/(pointsPerSegment-1);} +p=i>0?controlPoints[i-1]:p0;m0=mul(sub(p1,p),[0.5,0.5]);p=i=ref1;j=0<=ref1?++u:--u){t=j*pointsPerStep;fac0=2.0*t*t*t-3.0*t*t+1.0;fac1=t*t*t-2.0*t*t+t;fac2=-2.0*t*t*t+3.0*t*t;fac3=t*t*t-t*t;pos=add(mul(p0,[fac0,fac0]),mul(m0,[fac1,fac1]),mul(p1,[fac2,fac2]),mul(m1,[fac3,fac3]));ret[Math.round(pos[0])]=Math.round(clamp(pos[1],lowBound,highBound));count+=1;}} +endX=controlPoints[controlPoints.length-1][0];ret=Caman.Calculate.missingValues(ret,endX);return ret;};Calculate.missingValues=function(values,endX){var i,j,leftCoord,o,ref,ref1,ref2,ret,rightCoord,u;if(Object.keys(values).length=ref;i=0<=ref?++o:--o){if(values[i]!=null){ret[i]=values[i];}else{leftCoord=[i-1,ret[i-1]];for(j=u=ref1=i,ref2=endX;ref1<=ref2?u<=ref2:u>=ref2;j=ref1<=ref2?++u:--u){if(values[j]!=null){rightCoord=[j,values[j]];break;}} +if(rightCoord){ret[i]=leftCoord[1]+((rightCoord[1]-leftCoord[1])/(rightCoord[0]-leftCoord[0]))*(i-leftCoord[0]);}}} return ret;} return values;};return Calculate;})();Calculate=Caman.Calculate;Caman.Convert=(function(){function Convert(){} Convert.hexToRGB=function(hex){var b,g,r;if(hex.charAt(0)==="#"){hex=hex.substr(1);} @@ -116,33 +116,33 @@ if(y>0.2068965517){y=y*y*y;}else{y=0.1284185493*(y-0.1379310345);} if(z>0.2068965517){z=z*z*z;}else{z=0.1284185493*(z-0.1379310345);} return{x:x*95.047,y:y*100.0,z:z*108.883};};Convert.rgbToLab=function(r,g,b){var xyz;if(typeof r==="object"){g=r.g;b=r.b;r=r.r;} xyz=this.rgbToXYZ(r,g,b);return this.xyzToLab(xyz);};Convert.labToRGB=function(l,a,b){};return Convert;})();Convert=Caman.Convert;Caman.Event=(function(){function Event(){} -Event.events={};Event.types=["processStart","processComplete","renderStart","renderFinished","blockStarted","blockFinished"];Event.trigger=function(target,type,data){var event,_i,_len,_ref,_results;if(data==null){data=null;} -if(this.events[type]&&this.events[type].length){_ref=this.events[type];_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){event=_ref[_i];if(event.target===null||target.id===event.target.id){_results.push(event.fn.call(target,data));}else{_results.push(void 0);}} -return _results;}};Event.listen=function(target,type,fn){var _fn,_type;if(typeof target==="string"){_type=target;_fn=type;target=null;type=_type;fn=_fn;} -if(__indexOf.call(this.types,type)<0){return false;} +Event.events={};Event.types=["processStart","processComplete","renderStart","renderFinished","blockStarted","blockFinished"];Event.trigger=function(target,type,data){var event,len,o,ref,results;if(data==null){data=null;} +if(this.events[type]&&this.events[type].length){ref=this.events[type];results=[];for(o=0,len=ref.length;o_ref;i=0<=_ref?++_i:--_i){start=i*blockN;end=start+(i===Renderer.Blocks-1?lastBlockN:blockN);if(Caman.NodeJS){f=Fiber((function(_this){return function(){return fn.call(_this,i,start,end);};})(this));bnum=f.run();_results.push(this.blockFinished(bnum));}else{_results.push(setTimeout((function(_this){return function(i,start,end){return function(){return fn.call(_this,i,start,end);};};})(this)(i,start,end),0));}} -return _results;};Renderer.prototype.executeFilter=function(){Event.trigger(this.c,"processStart",this.currentJob);if(this.currentJob.type===Filter.Type.Single){return this.eachBlock(this.renderBlock);}else{return this.eachBlock(this.renderKernel);}};Renderer.prototype.executePlugin=function(){Log.debug("Executing plugin "+this.currentJob.plugin);Plugin.execute(this.c,this.currentJob.plugin,this.currentJob.args);Log.debug("Plugin "+this.currentJob.plugin+" finished!");return this.processNext();};Renderer.prototype.renderBlock=function(bnum,start,end){var i,pixel,_i;Log.debug("Block #"+bnum+" - Filter: "+this.currentJob.name+", Start: "+start+", End: "+end);Event.trigger(this.c,"blockStarted",{blockNum:bnum,totalBlocks:Renderer.Blocks,startPixel:start,endPixel:end});pixel=new Pixel();pixel.setContext(this.c);for(i=_i=start;_i=builder;j=-builder<=builder?++_j:--_j){for(k=_k=builder;builder<=-builder?_k<=-builder:_k>=-builder;k=builder<=-builder?++_k:--_k){p=pixel.getPixelRelative(j,k);kernel[builderIndex*3]=p.r;kernel[builderIndex*3+1]=p.g;kernel[builderIndex*3+2]=p.b;builderIndex++;}} +this.currentJob=this.renderQueue.shift();switch(this.currentJob.type){case Filter.Type.LayerDequeue:layer=this.c.canvasQueue.shift();this.c.executeLayer(layer);return this.processNext();case Filter.Type.LayerFinished:this.c.applyCurrentLayer();this.c.popContext();return this.processNext();case Filter.Type.LoadOverlay:return this.loadOverlay(this.currentJob.layer,this.currentJob.src);case Filter.Type.Plugin:return this.executePlugin();default:return this.executeFilter();}};Renderer.prototype.execute=function(callback){this.finishedFn=callback;this.modPixelData=Util.dataArray(this.c.pixelData.length);return this.processNext();};Renderer.prototype.eachBlock=function(fn){var blockN,blockPixelLength,bnum,end,f,i,lastBlockN,n,o,ref,results,start;this.blocksDone=0;n=this.c.pixelData.length;blockPixelLength=Math.floor((n/4)/Renderer.Blocks);blockN=blockPixelLength*4;lastBlockN=blockN+((n/4)%Renderer.Blocks)*4;results=[];for(i=o=0,ref=Renderer.Blocks;0<=ref?oref;i=0<=ref?++o:--o){start=i*blockN;end=start+(i===Renderer.Blocks-1?lastBlockN:blockN);if(Caman.NodeJS){f=Fiber((function(_this){return function(){return fn.call(_this,i,start,end);};})(this));bnum=f.run();results.push(this.blockFinished(bnum));}else{results.push(setTimeout((function(_this){return function(i,start,end){return function(){return fn.call(_this,i,start,end);};};})(this)(i,start,end),0));}} +return results;};Renderer.prototype.executeFilter=function(){Event.trigger(this.c,"processStart",this.currentJob);if(this.currentJob.type===Filter.Type.Single){return this.eachBlock(this.renderBlock);}else{return this.eachBlock(this.renderKernel);}};Renderer.prototype.executePlugin=function(){Log.debug("Executing plugin "+this.currentJob.plugin);Plugin.execute(this.c,this.currentJob.plugin,this.currentJob.args);Log.debug("Plugin "+this.currentJob.plugin+" finished!");return this.processNext();};Renderer.prototype.renderBlock=function(bnum,start,end){var i,o,pixel,ref,ref1;Log.debug("Block #"+bnum+" - Filter: "+this.currentJob.name+", Start: "+start+", End: "+end);Event.trigger(this.c,"blockStarted",{blockNum:bnum,totalBlocks:Renderer.Blocks,startPixel:start,endPixel:end});pixel=new Pixel();pixel.setContext(this.c);for(i=o=ref=start,ref1=end;o=ref3;j=ref2<=ref3?++u:--u){for(k=w=ref4=builder,ref5=-builder;ref4<=ref5?w<=ref5:w>=ref5;k=ref4<=ref5?++w:--w){p=pixel.getPixelRelative(j,k);kernel[builderIndex*3]=p.r;kernel[builderIndex*3+1]=p.g;kernel[builderIndex*3+2]=p.b;builderIndex++;}} res=this.processKernel(adjust,kernel,divisor,bias);this.modPixelData[i]=Util.clampRGB(res.r);this.modPixelData[i+1]=Util.clampRGB(res.g);this.modPixelData[i+2]=Util.clampRGB(res.b);this.modPixelData[i+3]=this.c.pixelData[i+3];} -if(Caman.NodeJS){return Fiber["yield"](bnum);}else{return this.blockFinished(bnum);}};Renderer.prototype.blockFinished=function(bnum){var i,_i,_ref;if(bnum>=0){Log.debug("Block #"+bnum+" finished! Filter: "+this.currentJob.name);} -this.blocksDone++;Event.trigger(this.c,"blockFinished",{blockNum:bnum,blocksFinished:this.blocksDone,totalBlocks:Renderer.Blocks});if(this.blocksDone===Renderer.Blocks){if(this.currentJob.type===Filter.Type.Kernel){for(i=_i=0,_ref=this.c.pixelData.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){this.c.pixelData[i]=this.modPixelData[i];}} +if(Caman.NodeJS){return Fiber["yield"](bnum);}else{return this.blockFinished(bnum);}};Renderer.prototype.blockFinished=function(bnum){var i,o,ref;if(bnum>=0){Log.debug("Block #"+bnum+" finished! Filter: "+this.currentJob.name);} +this.blocksDone++;Event.trigger(this.c,"blockFinished",{blockNum:bnum,blocksFinished:this.blocksDone,totalBlocks:Renderer.Blocks});if(this.blocksDone===Renderer.Blocks){if(this.currentJob.type===Filter.Type.Kernel){for(i=o=0,ref=this.c.pixelData.length;0<=ref?oref;i=0<=ref?++o:--o){this.c.pixelData[i]=this.modPixelData[i];}} if(bnum>=0){Log.debug("Filter "+this.currentJob.name+" finished!");} -Event.trigger(this.c,"processComplete",this.currentJob);return this.processNext();}};Renderer.prototype.processKernel=function(adjust,kernel,divisor,bias){var i,val,_i,_ref;val={r:0,g:0,b:0};for(i=_i=0,_ref=adjust.length;0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){val.r+=adjust[i]*kernel[i*3];val.g+=adjust[i]*kernel[i*3+1];val.b+=adjust[i]*kernel[i*3+2];} +Event.trigger(this.c,"processComplete",this.currentJob);return this.processNext();}};Renderer.prototype.processKernel=function(adjust,kernel,divisor,bias){var i,o,ref,val;val={r:0,g:0,b:0};for(i=o=0,ref=adjust.length;0<=ref?oref;i=0<=ref?++o:--o){val.r+=adjust[i]*kernel[i*3];val.g+=adjust[i]*kernel[i*3+1];val.b+=adjust[i]*kernel[i*3+2];} val.r=(val.r/divisor)+bias;val.g=(val.g/divisor)+bias;val.b=(val.b/divisor)+bias;return val;};Renderer.prototype.loadOverlay=function(layer,src){var img,proxyUrl;img=new Image();img.onload=(function(_this){return function(){layer.context.drawImage(img,0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.imageData=layer.context.getImageData(0,0,_this.c.dimensions.width,_this.c.dimensions.height);layer.pixelData=layer.imageData.data;_this.c.pixelData=layer.pixelData;return _this.processNext();};})(this);proxyUrl=IO.remoteCheck(src);return img.src=proxyUrl!=null?proxyUrl:src;};return Renderer;})();Renderer=Caman.Renderer;Caman.Store=(function(){function Store(){} Store.items={};Store.has=function(search){return this.items[search]!=null;};Store.get=function(search){return this.items[search];};Store.put=function(name,obj){return this.items[name]=obj;};Store.execute=function(search,callback){setTimeout((function(_this){return function(){return callback.call(_this.get(search),_this.get(search));};})(this),0);return this.get(search);};Store.flush=function(name){if(name==null){name=false;} if(name){return delete this.items[name];}else{return this.items={};}};return Store;})();Store=Caman.Store;Blender.register("normal",function(rgbaLayer,rgbaParent){return{r:rgbaLayer.r,g:rgbaLayer.g,b:rgbaLayer.b};});Blender.register("multiply",function(rgbaLayer,rgbaParent){return{r:(rgbaLayer.r*rgbaParent.r)/255,g:(rgbaLayer.g*rgbaParent.g)/255,b:(rgbaLayer.b*rgbaParent.b)/255};});Blender.register("screen",function(rgbaLayer,rgbaParent){return{r:255-(((255-rgbaLayer.r)*(255-rgbaParent.r))/255),g:255-(((255-rgbaLayer.g)*(255-rgbaParent.g))/255),b:255-(((255-rgbaLayer.b)*(255-rgbaParent.b))/255)};});Blender.register("overlay",function(rgbaLayer,rgbaParent){var result;result={};result.r=rgbaParent.r>128?255-2*(255-rgbaLayer.r)*(255-rgbaParent.r)/255:(rgbaParent.r*rgbaLayer.r*2)/255;result.g=rgbaParent.g>128?255-2*(255-rgbaLayer.g)*(255-rgbaParent.g)/255:(rgbaParent.g*rgbaLayer.g*2)/255;result.b=rgbaParent.b>128?255-2*(255-rgbaLayer.b)*(255-rgbaParent.b)/255:(rgbaParent.b*rgbaLayer.b*2)/255;return result;});Blender.register("difference",function(rgbaLayer,rgbaParent){return{r:rgbaLayer.r-rgbaParent.r,g:rgbaLayer.g-rgbaParent.g,b:rgbaLayer.b-rgbaParent.b};});Blender.register("addition",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r+rgbaLayer.r,g:rgbaParent.g+rgbaLayer.g,b:rgbaParent.b+rgbaLayer.b};});Blender.register("exclusion",function(rgbaLayer,rgbaParent){return{r:128-2*(rgbaParent.r-128)*(rgbaLayer.r-128)/255,g:128-2*(rgbaParent.g-128)*(rgbaLayer.g-128)/255,b:128-2*(rgbaParent.b-128)*(rgbaLayer.b-128)/255};});Blender.register("softLight",function(rgbaLayer,rgbaParent){var result;result={};result.r=rgbaParent.r>128?255-((255-rgbaParent.r)*(255-(rgbaLayer.r-128)))/255:(rgbaParent.r*(rgbaLayer.r+128))/255;result.g=rgbaParent.g>128?255-((255-rgbaParent.g)*(255-(rgbaLayer.g-128)))/255:(rgbaParent.g*(rgbaLayer.g+128))/255;result.b=rgbaParent.b>128?255-((255-rgbaParent.b)*(255-(rgbaLayer.b-128)))/255:(rgbaParent.b*(rgbaLayer.b+128))/255;return result;});Blender.register("lighten",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r>rgbaLayer.r?rgbaParent.r:rgbaLayer.r,g:rgbaParent.g>rgbaLayer.g?rgbaParent.g:rgbaLayer.g,b:rgbaParent.b>rgbaLayer.b?rgbaParent.b:rgbaLayer.b};});Blender.register("darken",function(rgbaLayer,rgbaParent){return{r:rgbaParent.r>rgbaLayer.r?rgbaLayer.r:rgbaParent.r,g:rgbaParent.g>rgbaLayer.g?rgbaLayer.g:rgbaParent.g,b:rgbaParent.b>rgbaLayer.b?rgbaLayer.b:rgbaParent.b};});Filter.register("fillColor",function(){var color;if(arguments.length===1){color=Convert.hexToRGB(arguments[0]);}else{color={r:arguments[0],g:arguments[1],b:arguments[2]};} @@ -174,25 +176,25 @@ if(rgba.b!==max){rgba.b+=(max-rgba.b)*adjust;} return rgba;});});Filter.register("vibrance",function(adjust){adjust*=-1;return this.process("vibrance",function(rgba){var amt,avg,max;max=Math.max(rgba.r,rgba.g,rgba.b);avg=(rgba.r+rgba.g+rgba.b)/3;amt=((Math.abs(max-avg)*2/255)*adjust)/100;if(rgba.r!==max){rgba.r+=(max-rgba.r)*amt;} if(rgba.g!==max){rgba.g+=(max-rgba.g)*amt;} if(rgba.b!==max){rgba.b+=(max-rgba.b)*amt;} -return rgba;});});Filter.register("greyscale",function(adjust){return this.process("greyscale",function(rgba){var avg;avg=Calculate.luminance(rgba);rgba.r=avg;rgba.g=avg;rgba.b=avg;return rgba;});});Filter.register("contrast",function(adjust){adjust=Math.pow((adjust+100)/100,2);return this.process("contrast",function(rgba){rgba.r/=255;rgba.r-=0.5;rgba.r*=adjust;rgba.r+=0.5;rgba.r*=255;rgba.g/=255;rgba.g-=0.5;rgba.g*=adjust;rgba.g+=0.5;rgba.g*=255;rgba.b/=255;rgba.b-=0.5;rgba.b*=adjust;rgba.b+=0.5;rgba.b*=255;return rgba;});});Filter.register("hue",function(adjust){return this.process("hue",function(rgba){var b,g,h,hsv,r,_ref;hsv=Convert.rgbToHSV(rgba.r,rgba.g,rgba.b);h=hsv.h*100;h+=Math.abs(adjust);h=h%100;h/=100;hsv.h=h;_ref=Convert.hsvToRGB(hsv.h,hsv.s,hsv.v),r=_ref.r,g=_ref.g,b=_ref.b;rgba.r=r;rgba.g=g;rgba.b=b;return rgba;});});Filter.register("colorize",function(){var level,rgb;if(arguments.length===2){rgb=Convert.hexToRGB(arguments[0]);level=arguments[1];}else if(arguments.length===4){rgb={r:arguments[0],g:arguments[1],b:arguments[2]};level=arguments[3];} +return rgba;});});Filter.register("greyscale",function(adjust){return this.process("greyscale",function(rgba){var avg;avg=Calculate.luminance(rgba);rgba.r=avg;rgba.g=avg;rgba.b=avg;return rgba;});});Filter.register("contrast",function(adjust){adjust=Math.pow((adjust+100)/100,2);return this.process("contrast",function(rgba){rgba.r/=255;rgba.r-=0.5;rgba.r*=adjust;rgba.r+=0.5;rgba.r*=255;rgba.g/=255;rgba.g-=0.5;rgba.g*=adjust;rgba.g+=0.5;rgba.g*=255;rgba.b/=255;rgba.b-=0.5;rgba.b*=adjust;rgba.b+=0.5;rgba.b*=255;return rgba;});});Filter.register("hue",function(adjust){return this.process("hue",function(rgba){var b,g,h,hsv,r,ref;hsv=Convert.rgbToHSV(rgba.r,rgba.g,rgba.b);h=hsv.h*100;h+=Math.abs(adjust);h=h%100;h/=100;hsv.h=h;ref=Convert.hsvToRGB(hsv.h,hsv.s,hsv.v),r=ref.r,g=ref.g,b=ref.b;rgba.r=r;rgba.g=g;rgba.b=b;return rgba;});});Filter.register("colorize",function(){var level,rgb;if(arguments.length===2){rgb=Convert.hexToRGB(arguments[0]);level=arguments[1];}else if(arguments.length===4){rgb={r:arguments[0],g:arguments[1],b:arguments[2]};level=arguments[3];} return this.process("colorize",function(rgba){rgba.r-=(rgba.r-rgb.r)*(level/100);rgba.g-=(rgba.g-rgb.g)*(level/100);rgba.b-=(rgba.b-rgb.b)*(level/100);return rgba;});});Filter.register("invert",function(){return this.process("invert",function(rgba){rgba.r=255-rgba.r;rgba.g=255-rgba.g;rgba.b=255-rgba.b;return rgba;});});Filter.register("sepia",function(adjust){if(adjust==null){adjust=100;} adjust/=100;return this.process("sepia",function(rgba){rgba.r=Math.min(255,(rgba.r*(1-(0.607*adjust)))+(rgba.g*(0.769*adjust))+(rgba.b*(0.189*adjust)));rgba.g=Math.min(255,(rgba.r*(0.349*adjust))+(rgba.g*(1-(0.314*adjust)))+(rgba.b*(0.168*adjust)));rgba.b=Math.min(255,(rgba.r*(0.272*adjust))+(rgba.g*(0.534*adjust))+(rgba.b*(1-(0.869*adjust))));return rgba;});});Filter.register("gamma",function(adjust){return this.process("gamma",function(rgba){rgba.r=Math.pow(rgba.r/255,adjust)*255;rgba.g=Math.pow(rgba.g/255,adjust)*255;rgba.b=Math.pow(rgba.b/255,adjust)*255;return rgba;});});Filter.register("noise",function(adjust){adjust=Math.abs(adjust)*2.55;return this.process("noise",function(rgba){var rand;rand=Calculate.randomRange(adjust*-1,adjust);rgba.r+=rand;rgba.g+=rand;rgba.b+=rand;return rgba;});});Filter.register("clip",function(adjust){adjust=Math.abs(adjust)*2.55;return this.process("clip",function(rgba){if(rgba.r>255-adjust){rgba.r=255;}else if(rgba.r255-adjust){rgba.g=255;}else if(rgba.g255-adjust){rgba.b=255;}else if(rgba.b0){rgba.r+=(255-rgba.r)*options.red;}else{rgba.r-=rgba.r*Math.abs(options.red);}} if(options.green!=null){if(options.green>0){rgba.g+=(255-rgba.g)*options.green;}else{rgba.g-=rgba.g*Math.abs(options.green);}} if(options.blue!=null){if(options.blue>0){rgba.b+=(255-rgba.b)*options.blue;}else{rgba.b-=rgba.b*Math.abs(options.blue);}} -return rgba;});});Filter.register("curves",function(){var algo,bezier,chans,cps,end,i,last,start,_i,_j,_ref,_ref1;chans=arguments[0],cps=2<=arguments.length?__slice.call(arguments,1):[];last=cps[cps.length-1];if(typeof last==="function"){algo=last;cps.pop();}else if(typeof last==="string"){algo=Calculate[last];cps.pop();}else{algo=Calculate.bezier;} +return rgba;});});Filter.register("curves",function(){var algo,bezier,chans,cps,end,i,last,o,ref,ref1,start,u;chans=arguments[0],cps=2<=arguments.length?slice1.call(arguments,1):[];last=cps[cps.length-1];if(typeof last==="function"){algo=last;cps.pop();}else if(typeof last==="string"){algo=Calculate[last];cps.pop();}else{algo=Calculate.bezier;} if(typeof chans==="string"){chans=chans.split("");} if(chans[0]==="v"){chans=['r','g','b'];} if(cps.length<2){throw"Invalid number of arguments to curves filter";} -bezier=algo(cps,0,255);start=cps[0];if(start[0]>0){for(i=_i=0,_ref=start[0];0<=_ref?_i<_ref:_i>_ref;i=0<=_ref?++_i:--_i){bezier[i]=start[1];}} -end=cps[cps.length-1];if(end[0]<255){for(i=_j=_ref1=end[0];_ref1<=255?_j<=255:_j>=255;i=_ref1<=255?++_j:--_j){bezier[i]=end[1];}} -return this.process("curves",function(rgba){var _k,_ref2;for(i=_k=0,_ref2=chans.length;0<=_ref2?_k<_ref2:_k>_ref2;i=0<=_ref2?++_k:--_k){rgba[chans[i]]=bezier[rgba[chans[i]]];} +bezier=algo(cps,0,255);start=cps[0];if(start[0]>0){for(i=o=0,ref=start[0];0<=ref?oref;i=0<=ref?++o:--o){bezier[i]=start[1];}} +end=cps[cps.length-1];if(end[0]<255){for(i=u=ref1=end[0];ref1<=255?u<=255:u>=255;i=ref1<=255?++u:--u){bezier[i]=end[1];}} +return this.process("curves",function(rgba){var ref2,w;for(i=w=0,ref2=chans.length;0<=ref2?wref2;i=0<=ref2?++w:--w){rgba[chans[i]]=bezier[rgba[chans[i]]];} return rgba;});});Filter.register("exposure",function(adjust){var ctrl1,ctrl2,p;p=Math.abs(adjust)/100;ctrl1=[0,255*p];ctrl2=[255-(255*p),255];if(adjust<0){ctrl1=ctrl1.reverse();ctrl2=ctrl2.reverse();} return this.curves('rgb',[0,0],ctrl1,ctrl2,[255,255]);});Caman.Plugin.register("crop",function(width,height,x,y){var canvas,ctx;if(x==null){x=0;} if(y==null){y=0;} diff --git a/src/core/calculate.coffee b/src/core/calculate.coffee index 410daf7c..62bbf30a 100644 --- a/src/core/calculate.coffee +++ b/src/core/calculate.coffee @@ -179,9 +179,10 @@ class Caman.Calculate rightCoord = [j, values[j]] break - ret[i] = leftCoord[1] + - ((rightCoord[1] - leftCoord[1]) / (rightCoord[0] - leftCoord[0])) * - (i - leftCoord[0]) + if rightCoord + ret[i] = leftCoord[1] + + ((rightCoord[1] - leftCoord[1]) / (rightCoord[0] - leftCoord[0])) * + (i - leftCoord[0]) return ret diff --git a/src/core/renderer.coffee b/src/core/renderer.coffee index a45f70ae..a75d223e 100644 --- a/src/core/renderer.coffee +++ b/src/core/renderer.coffee @@ -109,7 +109,8 @@ class Caman.Renderer pixel.b = @c.pixelData[i+2] pixel.a = @c.pixelData[i+3] - @currentJob.processFn pixel + if @currentJob.processFn + @currentJob.processFn pixel @c.pixelData[i] = Util.clampRGB pixel.r @c.pixelData[i+1] = Util.clampRGB pixel.g @@ -129,6 +130,11 @@ class Caman.Renderer n = @c.pixelData.length adjust = @currentJob.adjust + + if !adjust + @blockFinished bnum + return + adjustSize = Math.sqrt adjust.length kernel = [] From 1ac3fb607da642597b02e6e0e4f875e111b27324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Go=C5=82aszewski?= Date: Thu, 16 Jul 2015 12:35:06 +0200 Subject: [PATCH 11/12] Fix domain matching in Caman.IO. --- dist/caman.full.js | 4 ++-- dist/caman.full.min.js | 2 +- dist/caman.js | 4 ++-- dist/caman.min.js | 2 +- src/core/io.coffee | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dist/caman.full.js b/dist/caman.full.js index 5cebcd54..102f0adc 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.9.1 +// Generated by CoffeeScript 1.9.3 (function() { var $, Analyze, Blender, Calculate, Caman, CamanParser, Canvas, Convert, Event, Fiber, Filter, IO, Image, Layer, Log, Module, Pixel, Plugin, Renderer, Root, Store, Util, fs, http, moduleKeywords, slice, vignetteFilters, indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, @@ -1474,7 +1474,7 @@ Caman.IO = (function() { function IO() {} - IO.domainRegex = /(?:(?:http|https):\/\/)((?:\w+)\.(?:(?:\w|\.)+))/; + IO.domainRegex = /(?:(?:http|https):\/\/)((?:[-|\w]+)\.(?:(?:-|\w|\.)+))/; IO.isRemote = function(img) { if (img == null) { diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index cb40ea67..33c91042 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -123,7 +123,7 @@ if(indexOf.call(this.types,type)<0){return false;} if(!this.events[type]){this.events[type]=[];} this.events[type].push({target:target,fn:fn});return true;};return Event;})();Event=Caman.Event;Caman.Filter=(function(){function Filter(){} Filter.Type={Single:1,Kernel:2,LayerDequeue:3,LayerFinished:4,LoadOverlay:5,Plugin:6};Filter.register=function(name,filterFunc){return Caman.prototype[name]=filterFunc;};return Filter;})();Filter=Caman.Filter;Caman.IO=(function(){function IO(){} -IO.domainRegex=/(?:(?:http|https):\/\/)((?:\w+)\.(?:(?:\w|\.)+))/;IO.isRemote=function(img){if(img==null){return false;} +IO.domainRegex=/(?:(?:http|https):\/\/)((?:[-|\w]+)\.(?:(?:-|\w|\.)+))/;IO.isRemote=function(img){if(img==null){return false;} if(this.corsEnabled(img)){return false;} return this.isURLRemote(img.src);};IO.corsEnabled=function(img){var ref;return(img.crossOrigin!=null)&&((ref=img.crossOrigin.toLowerCase())==='anonymous'||ref==='use-credentials');};IO.isURLRemote=function(url){var matches;matches=url.match(this.domainRegex);if(matches){return matches[1]!==document.domain;}else{return false;}};IO.remoteCheck=function(src){if(this.isURLRemote(src)){if(!Caman.remoteProxy.length){Log.info("Attempting to load a remote image without a configured proxy. URL: "+src);}else{if(Caman.isURLRemote(Caman.remoteProxy)){Log.info("Cannot use a remote proxy for loading images.");return;} return this.proxyUrl(src);}}};IO.proxyUrl=function(src){return Caman.remoteProxy+"?"+Caman.proxyParam+"="+(encodeURIComponent(src));};IO.useProxy=function(lang){var langToExt;langToExt={ruby:'rb',python:'py',perl:'pl',javascript:'js'};lang=lang.toLowerCase();if(langToExt[lang]!=null){lang=langToExt[lang];} diff --git a/dist/caman.js b/dist/caman.js index 94ef12d7..8708b347 100644 --- a/dist/caman.js +++ b/dist/caman.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.9.1 +// Generated by CoffeeScript 1.9.3 (function() { var $, Analyze, Blender, Calculate, Caman, CamanParser, Canvas, Convert, Event, Fiber, Filter, IO, Image, Layer, Log, Module, Pixel, Plugin, Renderer, Root, Store, Util, fs, http, moduleKeywords, slice, indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, @@ -1474,7 +1474,7 @@ Caman.IO = (function() { function IO() {} - IO.domainRegex = /(?:(?:http|https):\/\/)((?:\w+)\.(?:(?:\w|\.)+))/; + IO.domainRegex = /(?:(?:http|https):\/\/)((?:[-|\w]+)\.(?:(?:-|\w|\.)+))/; IO.isRemote = function(img) { if (img == null) { diff --git a/dist/caman.min.js b/dist/caman.min.js index 60aebac7..981a7712 100644 --- a/dist/caman.min.js +++ b/dist/caman.min.js @@ -123,7 +123,7 @@ if(indexOf.call(this.types,type)<0){return false;} if(!this.events[type]){this.events[type]=[];} this.events[type].push({target:target,fn:fn});return true;};return Event;})();Event=Caman.Event;Caman.Filter=(function(){function Filter(){} Filter.Type={Single:1,Kernel:2,LayerDequeue:3,LayerFinished:4,LoadOverlay:5,Plugin:6};Filter.register=function(name,filterFunc){return Caman.prototype[name]=filterFunc;};return Filter;})();Filter=Caman.Filter;Caman.IO=(function(){function IO(){} -IO.domainRegex=/(?:(?:http|https):\/\/)((?:\w+)\.(?:(?:\w|\.)+))/;IO.isRemote=function(img){if(img==null){return false;} +IO.domainRegex=/(?:(?:http|https):\/\/)((?:[-|\w]+)\.(?:(?:-|\w|\.)+))/;IO.isRemote=function(img){if(img==null){return false;} if(this.corsEnabled(img)){return false;} return this.isURLRemote(img.src);};IO.corsEnabled=function(img){var ref;return(img.crossOrigin!=null)&&((ref=img.crossOrigin.toLowerCase())==='anonymous'||ref==='use-credentials');};IO.isURLRemote=function(url){var matches;matches=url.match(this.domainRegex);if(matches){return matches[1]!==document.domain;}else{return false;}};IO.remoteCheck=function(src){if(this.isURLRemote(src)){if(!Caman.remoteProxy.length){Log.info("Attempting to load a remote image without a configured proxy. URL: "+src);}else{if(Caman.isURLRemote(Caman.remoteProxy)){Log.info("Cannot use a remote proxy for loading images.");return;} return this.proxyUrl(src);}}};IO.proxyUrl=function(src){return Caman.remoteProxy+"?"+Caman.proxyParam+"="+(encodeURIComponent(src));};IO.useProxy=function(lang){var langToExt;langToExt={ruby:'rb',python:'py',perl:'pl',javascript:'js'};lang=lang.toLowerCase();if(langToExt[lang]!=null){lang=langToExt[lang];} diff --git a/src/core/io.coffee b/src/core/io.coffee index 1b53a1b2..7fd2717f 100644 --- a/src/core/io.coffee +++ b/src/core/io.coffee @@ -1,7 +1,7 @@ # Various I/O based operations class Caman.IO # Used for parsing image URLs for domain names. - @domainRegex: /(?:(?:http|https):\/\/)((?:\w+)\.(?:(?:\w|\.)+))/ + @domainRegex: /(?:(?:http|https):\/\/)((?:[-|\w]+)\.(?:(?:-|\w|\.)+))/ # Is the given URL remote? # If a cross-origin setting is set, we assume you have CORS From f41e883dc08e7fb1661a70e59e99dbf8e215a1b0 Mon Sep 17 00:00:00 2001 From: Pawel Wiaderny Date: Thu, 21 Mar 2019 09:00:27 +0100 Subject: [PATCH 12/12] Fix CORS issues --- dist/caman.full.js | 48 ++++++++++++++++---------------- dist/caman.full.min.js | 36 ++++++++++++------------ dist/caman.js | 18 ++++++------ dist/caman.min.js | 10 +++---- src/core/caman.coffee | 63 +++++++++++++++++++++--------------------- src/core/io.coffee | 10 +++---- 6 files changed, 93 insertions(+), 92 deletions(-) diff --git a/dist/caman.full.js b/dist/caman.full.js index 102f0adc..a39d5dc1 100644 --- a/dist/caman.full.js +++ b/dist/caman.full.js @@ -1,4 +1,4 @@ -// Generated by CoffeeScript 1.9.3 +// Generated by CoffeeScript 1.12.7 (function() { var $, Analyze, Blender, Calculate, Caman, CamanParser, Canvas, Convert, Event, Fiber, Filter, IO, Image, Layer, Log, Module, Pixel, Plugin, Renderer, Root, Store, Util, fs, http, moduleKeywords, slice, vignetteFilters, indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, @@ -419,6 +419,7 @@ this.canvas.height = this.renderingCanvas.height; if (this.imageUrl != null) { this.image = document.createElement('img'); + this.image.crossOrigin = 'anonymous'; this.image.src = this.imageUrl; this.imageAdjustments(); return this.waitForImageLoaded(); @@ -876,8 +877,8 @@ try { func = instFunc(); results.push(func.call(this.caman)); - } catch (_error) { - e = _error; + } catch (error) { + e = error; results.push(Log.debug(e)); } } @@ -1487,8 +1488,7 @@ }; IO.corsEnabled = function(img) { - var ref; - return (img.crossOrigin != null) && ((ref = img.crossOrigin.toLowerCase()) === 'anonymous' || ref === 'use-credentials'); + return true; }; IO.isURLRemote = function(url) { @@ -1569,8 +1569,8 @@ if (stats.isFile() && !overwrite) { return false; } - } catch (_error) { - e = _error; + } catch (error) { + e = error; Log.debug("Creating output file " + file); } return fs.writeFile(file, this.canvas.toBuffer(), function(err) { @@ -1722,8 +1722,8 @@ } try { return console[name].apply(console, args); - } catch (_error) { - e = _error; + } catch (error) { + e = error; return console[name](args); } }; @@ -2888,7 +2888,7 @@ return this.next = null; }; Caman.Plugin.register("compoundBlur", function(radiusData, radius, increaseFactor, blurLevels) { - var aa, ab, ac, ad, ae, af, ag, b_in_sum, b_out_sum, b_sum, blend, currentIndex, div, g_in_sum, g_out_sum, g_sum, height, heightMinus1, i, iblend, idx, imagePixels, index, iradius, lookupValue, mul_sum, o, p, pb, pg, pixels, pr, r_in_sum, r_out_sum, r_sum, radiusPixels, radiusPlus1, rbs, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, shg_sum, stack, stackEnd, stackIn, stackOut, stackStart, steps, sumFactor, u, w, w4, wh, wh4, width, widthMinus1, x, y, yi, yp, yw; + var b_in_sum, b_out_sum, b_sum, blend, currentIndex, div, g_in_sum, g_out_sum, g_sum, height, heightMinus1, i, i1, iblend, idx, imagePixels, index, iradius, j1, k1, l1, lookupValue, mul_sum, n1, o, o1, p, pb, pg, pixels, pr, q1, r_in_sum, r_out_sum, r_sum, radiusPixels, radiusPlus1, rbs, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, shg_sum, stack, stackEnd, stackIn, stackOut, stackStart, steps, sumFactor, u, w, w4, wh, wh4, width, widthMinus1, x, y, yi, yp, yw; width = this.dimensions.width; height = this.dimensions.height; imagePixels = this.pixelData; @@ -2940,13 +2940,13 @@ g_sum += sumFactor * pg; b_sum += sumFactor * pb; stack = stackStart; - for (i = aa = 0, ref3 = radiusPlus1; 0 <= ref3 ? aa < ref3 : aa > ref3; i = 0 <= ref3 ? ++aa : --aa) { + for (i = i1 = 0, ref3 = radiusPlus1; 0 <= ref3 ? i1 < ref3 : i1 > ref3; i = 0 <= ref3 ? ++i1 : --i1) { stack.r = pr; stack.g = pg; stack.b = pb; stack = stack.next; } - for (i = ab = 1, ref4 = radiusPlus1; 1 <= ref4 ? ab < ref4 : ab > ref4; i = 1 <= ref4 ? ++ab : --ab) { + for (i = j1 = 1, ref4 = radiusPlus1; 1 <= ref4 ? j1 < ref4 : j1 > ref4; i = 1 <= ref4 ? ++j1 : --j1) { p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2); r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i); g_sum += (stack.g = (pg = pixels[p + 1])) * rbs; @@ -2958,7 +2958,7 @@ } stackIn = stackStart; stackOut = stackEnd; - for (x = ac = 0, ref5 = width; 0 <= ref5 ? ac < ref5 : ac > ref5; x = 0 <= ref5 ? ++ac : --ac) { + for (x = k1 = 0, ref5 = width; 0 <= ref5 ? k1 < ref5 : k1 > ref5; x = 0 <= ref5 ? ++k1 : --k1) { pixels[yi] = (r_sum * mul_sum) >> shg_sum; pixels[yi + 1] = (g_sum * mul_sum) >> shg_sum; pixels[yi + 2] = (b_sum * mul_sum) >> shg_sum; @@ -2987,7 +2987,7 @@ } yw += width; } - for (x = ad = 0, ref6 = width; 0 <= ref6 ? ad < ref6 : ad > ref6; x = 0 <= ref6 ? ++ad : --ad) { + for (x = l1 = 0, ref6 = width; 0 <= ref6 ? l1 < ref6 : l1 > ref6; x = 0 <= ref6 ? ++l1 : --l1) { g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0; yi = x << 2; r_out_sum = radiusPlus1 * (pr = pixels[yi]); @@ -2997,14 +2997,14 @@ g_sum += sumFactor * pg; b_sum += sumFactor * pb; stack = stackStart; - for (i = ae = 0, ref7 = radiusPlus1; 0 <= ref7 ? ae < ref7 : ae > ref7; i = 0 <= ref7 ? ++ae : --ae) { + for (i = n1 = 0, ref7 = radiusPlus1; 0 <= ref7 ? n1 < ref7 : n1 > ref7; i = 0 <= ref7 ? ++n1 : --n1) { stack.r = pr; stack.g = pg; stack.b = pb; stack = stack.next; } yp = width; - for (i = af = 1, ref8 = radiusPlus1; 1 <= ref8 ? af < ref8 : af > ref8; i = 1 <= ref8 ? ++af : --af) { + for (i = o1 = 1, ref8 = radiusPlus1; 1 <= ref8 ? o1 < ref8 : o1 > ref8; i = 1 <= ref8 ? ++o1 : --o1) { yi = (yp + x) << 2; r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i); g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs; @@ -3020,7 +3020,7 @@ yi = x; stackIn = stackStart; stackOut = stackEnd; - for (y = ag = 0, ref9 = height; 0 <= ref9 ? ag < ref9 : ag > ref9; y = 0 <= ref9 ? ++ag : --ag) { + for (y = q1 = 0, ref9 = height; 0 <= ref9 ? q1 < ref9 : q1 > ref9; y = 0 <= ref9 ? ++q1 : --q1) { p = yi << 2; pixels[p] = (r_sum * mul_sum) >> shg_sum; pixels[p + 1] = (g_sum * mul_sum) >> shg_sum; @@ -3540,7 +3540,7 @@ return this.next = null; }; Caman.Plugin.register("stackBlur", function(radius) { - var aa, ab, ac, ad, ae, af, b_in_sum, b_out_sum, b_sum, div, g_in_sum, g_out_sum, g_sum, height, heightMinus1, i, mul_sum, o, p, pb, pg, pixels, pr, r_in_sum, r_out_sum, r_sum, radiusPlus1, rbs, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, shg_sum, stack, stackEnd, stackIn, stackOut, stackStart, sumFactor, u, w, w4, width, widthMinus1, x, y, yi, yp, yw; + var b_in_sum, b_out_sum, b_sum, div, g_in_sum, g_out_sum, g_sum, height, heightMinus1, i, i1, j1, k1, l1, mul_sum, n1, o, o1, p, pb, pg, pixels, pr, r_in_sum, r_out_sum, r_sum, radiusPlus1, rbs, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, shg_sum, stack, stackEnd, stackIn, stackOut, stackStart, sumFactor, u, w, w4, width, widthMinus1, x, y, yi, yp, yw; if (isNaN(radius) || radius < 1) { return; } @@ -3583,7 +3583,7 @@ stack.b = pb; stack = stack.next; } - for (i = aa = 1, ref3 = radiusPlus1; 1 <= ref3 ? aa < ref3 : aa > ref3; i = 1 <= ref3 ? ++aa : --aa) { + for (i = i1 = 1, ref3 = radiusPlus1; 1 <= ref3 ? i1 < ref3 : i1 > ref3; i = 1 <= ref3 ? ++i1 : --i1) { p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2); r_sum += (stack.r = (pr = pixels[p])) * (rbs = radiusPlus1 - i); g_sum += (stack.g = (pg = pixels[p + 1])) * rbs; @@ -3595,7 +3595,7 @@ } stackIn = stackStart; stackOut = stackEnd; - for (x = ab = 0, ref4 = width; 0 <= ref4 ? ab < ref4 : ab > ref4; x = 0 <= ref4 ? ++ab : --ab) { + for (x = j1 = 0, ref4 = width; 0 <= ref4 ? j1 < ref4 : j1 > ref4; x = 0 <= ref4 ? ++j1 : --j1) { pixels[yi] = (r_sum * mul_sum) >> shg_sum; pixels[yi + 1] = (g_sum * mul_sum) >> shg_sum; pixels[yi + 2] = (b_sum * mul_sum) >> shg_sum; @@ -3624,7 +3624,7 @@ } yw += width; } - for (x = ac = 0, ref5 = width; 0 <= ref5 ? ac < ref5 : ac > ref5; x = 0 <= ref5 ? ++ac : --ac) { + for (x = k1 = 0, ref5 = width; 0 <= ref5 ? k1 < ref5 : k1 > ref5; x = 0 <= ref5 ? ++k1 : --k1) { g_in_sum = b_in_sum = r_in_sum = g_sum = b_sum = r_sum = 0; yi = x << 2; r_out_sum = radiusPlus1 * (pr = pixels[yi]); @@ -3634,14 +3634,14 @@ g_sum += sumFactor * pg; b_sum += sumFactor * pb; stack = stackStart; - for (i = ad = 0, ref6 = radiusPlus1; 0 <= ref6 ? ad < ref6 : ad > ref6; i = 0 <= ref6 ? ++ad : --ad) { + for (i = l1 = 0, ref6 = radiusPlus1; 0 <= ref6 ? l1 < ref6 : l1 > ref6; i = 0 <= ref6 ? ++l1 : --l1) { stack.r = pr; stack.g = pg; stack.b = pb; stack = stack.next; } yp = width; - for (i = ae = 1, ref7 = radius; 1 <= ref7 ? ae <= ref7 : ae >= ref7; i = 1 <= ref7 ? ++ae : --ae) { + for (i = n1 = 1, ref7 = radius; 1 <= ref7 ? n1 <= ref7 : n1 >= ref7; i = 1 <= ref7 ? ++n1 : --n1) { yi = (yp + x) << 2; r_sum += (stack.r = (pr = pixels[yi])) * (rbs = radiusPlus1 - i); g_sum += (stack.g = (pg = pixels[yi + 1])) * rbs; @@ -3657,7 +3657,7 @@ yi = x; stackIn = stackStart; stackOut = stackEnd; - for (y = af = 0, ref8 = height; 0 <= ref8 ? af < ref8 : af > ref8; y = 0 <= ref8 ? ++af : --af) { + for (y = o1 = 0, ref8 = height; 0 <= ref8 ? o1 < ref8 : o1 > ref8; y = 0 <= ref8 ? ++o1 : --o1) { p = yi << 2; pixels[p] = (r_sum * mul_sum) >> shg_sum; pixels[p + 1] = (g_sum * mul_sum) >> shg_sum; diff --git a/dist/caman.full.min.js b/dist/caman.full.min.js index 33c91042..05729f0d 100644 --- a/dist/caman.full.min.js +++ b/dist/caman.full.min.js @@ -33,7 +33,7 @@ if(typeof obj==="object"){this.initObj=obj;}else{this.initObj=$(obj);} if(this.initObj==null){throw"Could not find image or canvas for initialization.";} return this.initType=this.initObj.nodeName.toLowerCase();};Caman.prototype.setup=function(){switch(this.initType){case"node":return this.initNode();case"img":return this.initImage();case"canvas":return this.initCanvas();}};Caman.prototype.initNode=function(){Log.debug("Initializing for NodeJS");if(typeof this.initObj==="string"&&this.initObj.match(/^https?:\/\//)){return this.readFromHttp(this.initObj,this.nodeFileReady);}else if(typeof this.initObj==="string"){return fs.readFile(this.initObj,this.nodeFileReady);}else{return this.nodeFileReady(null,this.initObj);}};Caman.prototype.readFromHttp=function(url,callback){var req;Log.debug("Fetching image from "+url);req=http.get(url,function(res){var buf;buf='';res.setEncoding('binary');res.on('data',function(chunk){return buf+=chunk;});return res.on('end',function(){return callback(null,new Buffer(buf,'binary'));});});return req.on('error',callback);};Caman.prototype.nodeFileReady=function(err,data){if(err){throw err;} this.image=new Image();this.image.src=data;Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));this.canvas=new Canvas(this.imageWidth(),this.imageHeight());this.renderingCanvas=new Canvas(this.imageWidth(),this.imageHeight());return this.finishInit();};Caman.prototype.initImage=function(){this.image=this.initObj;this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=document.createElement('canvas');this.renderingContext=this.renderingCanvas.getContext('2d');Util.copyAttributes(this.image,this.canvas,{except:['src']});Util.copyAttributes(this.image,this.renderingCanvas,{except:['src']});if(this.image.parentNode!=null){this.image.parentNode.replaceChild(this.renderingCanvas,this.image);} -this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=this.initObj;this.renderingContext=this.renderingCanvas.getContext('2d');this.canvas.width=this.renderingCanvas.width;this.canvas.height=this.renderingCanvas.height;if(this.imageUrl!=null){this.image=document.createElement('img');this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} +this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=this.initObj;this.renderingContext=this.renderingCanvas.getContext('2d');this.canvas.width=this.renderingCanvas.width;this.canvas.height=this.renderingCanvas.height;if(this.imageUrl!=null){this.image=document.createElement('img');this.image.crossOrigin='anonymous';this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} @@ -69,7 +69,7 @@ results=[];for(o=0,len=imgs.length;o0)){return;} -r=new RegExp(INST_REGEX);results=[];for(o=0,len=unparsedInstructions.length;oopts.coords.left&&loc.xopts.corners[3].y&& if(loc.x>opts.corners[0].x&&loc.xopts.coords.top){amt=(loc.y-opts.coords.top)/opts.maxDist;}else if(loc.y>opts.corners[2].y&&loc.yopts.coords.right){amt=(loc.x-opts.coords.right)/opts.maxDist;}else if(loc.x>opts.corners[0].x&&loc.xopts.corners[2].y&&loc.y=opts.corners[0].y){radialDist=Caman.distance(loc.x,loc.y,opts.corners[0].x,opts.corners[0].y);amt=(radialDist-opts.cornerRadius)/opts.maxDist;}else if(loc.x>=opts.corners[1].x&&loc.y>=opts.corners[1].y){radialDist=Caman.distance(loc.x,loc.y,opts.corners[1].x,opts.corners[1].y);amt=(radialDist-opts.cornerRadius)/opts.maxDist;}else if(loc.x>=opts.corners[2].x&&loc.y<=opts.corners[2].y){radialDist=Caman.distance(loc.x,loc.y,opts.corners[2].x,opts.corners[2].y);amt=(radialDist-opts.cornerRadius)/opts.maxDist;}else if(loc.x<=opts.corners[3].x&&loc.y<=opts.corners[3].y){radialDist=Caman.distance(loc.x,loc.y,opts.corners[3].x,opts.corners[3].y);amt=(radialDist-opts.cornerRadius)/opts.maxDist;} if(amt<0){return rgba;} return vignetteFilters[opts.method](rgba,amt,opts);});});(function(){var BlurStack,getLinearGradientMap,getRadialGradientMap,mul_table,shg_table;mul_table=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259];shg_table=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];getLinearGradientMap=function(width,height,centerX,centerY,angle,length,mirrored){var cnv,context,gradient,x1,x2,y1,y2;cnv=typeof exports!=="undefined"&&exports!==null?new Canvas():document.createElement('canvas');cnv.width=width;cnv.height=height;x1=centerX+Math.cos(angle)*length*0.5;y1=centerY+Math.sin(angle)*length*0.5;x2=centerX-Math.cos(angle)*length*0.5;y2=centerY-Math.sin(angle)*length*0.5;context=cnv.getContext("2d");gradient=context.createLinearGradient(x1,y1,x2,y2);if(!mirrored){gradient.addColorStop(0,"white");gradient.addColorStop(1,"black");}else{gradient.addColorStop(0,"white");gradient.addColorStop(0.5,"black");gradient.addColorStop(1,"white");} -context.fillStyle=gradient;context.fillRect(0,0,width,height);return context.getImageData(0,0,width,height);};getRadialGradientMap=function(width,height,centerX,centerY,radius1,radius2){var cnv,context,gradient;cnv=typeof exports!=="undefined"&&exports!==null?new Canvas():document.createElement('canvas');cnv.width=width;cnv.height=height;context=cnv.getContext("2d");gradient=context.createRadialGradient(centerX,centerY,radius1,centerX,centerY,radius2);gradient.addColorStop(1,"white");gradient.addColorStop(0,"black");context.fillStyle=gradient;context.fillRect(0,0,width,height);return context.getImageData(0,0,width,height);};BlurStack=function(){this.r=0;this.g=0;this.b=0;this.a=0;return this.next=null;};Caman.Plugin.register("compoundBlur",function(radiusData,radius,increaseFactor,blurLevels){var aa,ab,ac,ad,ae,af,ag,b_in_sum,b_out_sum,b_sum,blend,currentIndex,div,g_in_sum,g_out_sum,g_sum,height,heightMinus1,i,iblend,idx,imagePixels,index,iradius,lookupValue,mul_sum,o,p,pb,pg,pixels,pr,r_in_sum,r_out_sum,r_sum,radiusPixels,radiusPlus1,rbs,ref,ref1,ref2,ref3,ref4,ref5,ref6,ref7,ref8,ref9,shg_sum,stack,stackEnd,stackIn,stackOut,stackStart,steps,sumFactor,u,w,w4,wh,wh4,width,widthMinus1,x,y,yi,yp,yw;width=this.dimensions.width;height=this.dimensions.height;imagePixels=this.pixelData;radiusPixels=radiusData.data;wh=width*height;wh4=wh<<2;pixels=[];for(i=o=0,ref=wh4;0<=ref?oref;i=0<=ref?++o:--o){pixels[i]=imagePixels[i];} +context.fillStyle=gradient;context.fillRect(0,0,width,height);return context.getImageData(0,0,width,height);};getRadialGradientMap=function(width,height,centerX,centerY,radius1,radius2){var cnv,context,gradient;cnv=typeof exports!=="undefined"&&exports!==null?new Canvas():document.createElement('canvas');cnv.width=width;cnv.height=height;context=cnv.getContext("2d");gradient=context.createRadialGradient(centerX,centerY,radius1,centerX,centerY,radius2);gradient.addColorStop(1,"white");gradient.addColorStop(0,"black");context.fillStyle=gradient;context.fillRect(0,0,width,height);return context.getImageData(0,0,width,height);};BlurStack=function(){this.r=0;this.g=0;this.b=0;this.a=0;return this.next=null;};Caman.Plugin.register("compoundBlur",function(radiusData,radius,increaseFactor,blurLevels){var b_in_sum,b_out_sum,b_sum,blend,currentIndex,div,g_in_sum,g_out_sum,g_sum,height,heightMinus1,i,i1,iblend,idx,imagePixels,index,iradius,j1,k1,l1,lookupValue,mul_sum,n1,o,o1,p,pb,pg,pixels,pr,q1,r_in_sum,r_out_sum,r_sum,radiusPixels,radiusPlus1,rbs,ref,ref1,ref2,ref3,ref4,ref5,ref6,ref7,ref8,ref9,shg_sum,stack,stackEnd,stackIn,stackOut,stackStart,steps,sumFactor,u,w,w4,wh,wh4,width,widthMinus1,x,y,yi,yp,yw;width=this.dimensions.width;height=this.dimensions.height;imagePixels=this.pixelData;radiusPixels=radiusData.data;wh=width*height;wh4=wh<<2;pixels=[];for(i=o=0,ref=wh4;0<=ref?oref;i=0<=ref?++o:--o){pixels[i]=imagePixels[i];} currentIndex=0;steps=blurLevels;blurLevels-=1;while(steps-->=0){iradius=(radius+0.5)|0;if(iradius===0){continue;} if(iradius>256){iradius=256;} div=iradius+iradius+1;w4=width<<2;widthMinus1=width-1;heightMinus1=height-1;radiusPlus1=iradius+1;sumFactor=radiusPlus1*(radiusPlus1+1)/2;stackStart=new BlurStack();stackEnd=void 0;stack=stackStart;for(i=u=1,ref1=div;1<=ref1?uref1;i=1<=ref1?++u:--u){stack=stack.next=new BlurStack();if(i===radiusPlus1){stackEnd=stack;}} -stack.next=stackStart;stackIn=null;stackOut=null;yw=yi=0;mul_sum=mul_table[iradius];shg_sum=shg_table[iradius];for(y=w=0,ref2=height;0<=ref2?wref2;y=0<=ref2?++w:--w){r_in_sum=g_in_sum=b_in_sum=r_sum=g_sum=b_sum=0;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=aa=0,ref3=radiusPlus1;0<=ref3?aaref3;i=0<=ref3?++aa:--aa){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} -for(i=ab=1,ref4=radiusPlus1;1<=ref4?abref4;i=1<=ref4?++ab:--ab){p=yi+((widthMinus1ref5;x=0<=ref5?++ac:--ac){pixels[yi]=(r_sum*mul_sum)>>shg_sum;pixels[yi+1]=(g_sum*mul_sum)>>shg_sum;pixels[yi+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(yw+((p=x+radiusPlus1)ref2;y=0<=ref2?++w:--w){r_in_sum=g_in_sum=b_in_sum=r_sum=g_sum=b_sum=0;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=i1=0,ref3=radiusPlus1;0<=ref3?i1ref3;i=0<=ref3?++i1:--i1){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} +for(i=j1=1,ref4=radiusPlus1;1<=ref4?j1ref4;i=1<=ref4?++j1:--j1){p=yi+((widthMinus1ref5;x=0<=ref5?++k1:--k1){pixels[yi]=(r_sum*mul_sum)>>shg_sum;pixels[yi+1]=(g_sum*mul_sum)>>shg_sum;pixels[yi+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(yw+((p=x+radiusPlus1)ref6;x=0<=ref6?++ad:--ad){g_in_sum=b_in_sum=r_in_sum=g_sum=b_sum=r_sum=0;yi=x<<2;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=ae=0,ref7=radiusPlus1;0<=ref7?aeref7;i=0<=ref7?++ae:--ae){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} -yp=width;for(i=af=1,ref8=radiusPlus1;1<=ref8?afref8;i=1<=ref8?++af:--af){yi=(yp+x)<<2;r_sum+=(stack.r=(pr=pixels[yi]))*(rbs=radiusPlus1-i);g_sum+=(stack.g=(pg=pixels[yi+1]))*rbs;b_sum+=(stack.b=(pb=pixels[yi+2]))*rbs;r_in_sum+=pr;g_in_sum+=pg;b_in_sum+=pb;stack=stack.next;if(iref9;y=0<=ref9?++ag:--ag){p=yi<<2;pixels[p]=(r_sum*mul_sum)>>shg_sum;pixels[p+1]=(g_sum*mul_sum)>>shg_sum;pixels[p+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(x+(((p=y+radiusPlus1)ref6;x=0<=ref6?++l1:--l1){g_in_sum=b_in_sum=r_in_sum=g_sum=b_sum=r_sum=0;yi=x<<2;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=n1=0,ref7=radiusPlus1;0<=ref7?n1ref7;i=0<=ref7?++n1:--n1){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} +yp=width;for(i=o1=1,ref8=radiusPlus1;1<=ref8?o1ref8;i=1<=ref8?++o1:--o1){yi=(yp+x)<<2;r_sum+=(stack.r=(pr=pixels[yi]))*(rbs=radiusPlus1-i);g_sum+=(stack.g=(pg=pixels[yi+1]))*rbs;b_sum+=(stack.b=(pb=pixels[yi+2]))*rbs;r_in_sum+=pr;g_in_sum+=pg;b_in_sum+=pb;stack=stack.next;if(iref9;y=0<=ref9?++q1:--q1){p=yi<<2;pixels[p]=(r_sum*mul_sum)>>shg_sum;pixels[p+1]=(g_sum*mul_sum)>>shg_sum;pixels[p+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(x+(((p=y+radiusPlus1)-1){idx=i<<2;lookupValue=(radiusPixels[idx+2]&0xff)/255.0*blurLevels;index=lookupValue|0;if(index===currentIndex){blend=256.0*(lookupValue-(lookupValue|0));iblend=256-blend;imagePixels[idx]=(imagePixels[idx]*iblend+pixels[idx]*blend)>>8;imagePixels[idx+1]=(imagePixels[idx+1]*iblend+pixels[idx+1]*blend)>>8;imagePixels[idx+2]=(imagePixels[idx+2]*iblend+pixels[idx+2]*blend)>>8;}else if(index===currentIndex+1){imagePixels[idx]=pixels[idx];imagePixels[idx+1]=pixels[idx+1];imagePixels[idx+2]=pixels[idx+2];}} currentIndex++;} return this;});Caman.Filter.register("tiltShift",function(opts){var defaults,gradient;defaults={center:{x:this.dimensions.width/2,y:this.dimensions.height/2},angle:45,focusWidth:200,startRadius:3,radiusFactor:1.5,steps:3};opts=Util.extend(defaults,opts);opts.angle*=Math.PI/180;gradient=getLinearGradientMap(this.dimensions.width,this.dimensions.height,opts.center.x,opts.center.y,opts.angle,opts.focusWidth,true);return this.processPlugin("compoundBlur",[gradient,opts.startRadius,opts.radiusFactor,opts.steps]);});return Caman.Filter.register("radialBlur",function(opts){var defaults,gradient,radius1,radius2;defaults={size:50,center:{x:this.dimensions.width/2,y:this.dimensions.height/2},startRadius:3,radiusFactor:1.5,steps:3,radius:null};opts=Util.extend(defaults,opts);if(!opts.radius){opts.radius=this.dimensions.widthref;i=1<=ref?++o:--o){stack=stack.next=new BlurStack();if(i===radiusPlus1){stackEnd=stack;}} stack.next=stackStart;stackIn=null;stackOut=null;yw=yi=0;mul_sum=mul_table[radius];shg_sum=shg_table[radius];for(y=u=0,ref1=height;0<=ref1?uref1;y=0<=ref1?++u:--u){r_in_sum=g_in_sum=b_in_sum=r_sum=g_sum=b_sum=0;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=w=0,ref2=radiusPlus1;0<=ref2?wref2;i=0<=ref2?++w:--w){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} -for(i=aa=1,ref3=radiusPlus1;1<=ref3?aaref3;i=1<=ref3?++aa:--aa){p=yi+((widthMinus1ref4;x=0<=ref4?++ab:--ab){pixels[yi]=(r_sum*mul_sum)>>shg_sum;pixels[yi+1]=(g_sum*mul_sum)>>shg_sum;pixels[yi+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(yw+((p=x+radius+1)ref3;i=1<=ref3?++i1:--i1){p=yi+((widthMinus1ref4;x=0<=ref4?++j1:--j1){pixels[yi]=(r_sum*mul_sum)>>shg_sum;pixels[yi+1]=(g_sum*mul_sum)>>shg_sum;pixels[yi+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(yw+((p=x+radius+1)ref5;x=0<=ref5?++ac:--ac){g_in_sum=b_in_sum=r_in_sum=g_sum=b_sum=r_sum=0;yi=x<<2;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=ad=0,ref6=radiusPlus1;0<=ref6?adref6;i=0<=ref6?++ad:--ad){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} -yp=width;for(i=ae=1,ref7=radius;1<=ref7?ae<=ref7:ae>=ref7;i=1<=ref7?++ae:--ae){yi=(yp+x)<<2;r_sum+=(stack.r=(pr=pixels[yi]))*(rbs=radiusPlus1-i);g_sum+=(stack.g=(pg=pixels[yi+1]))*rbs;b_sum+=(stack.b=(pb=pixels[yi+2]))*rbs;r_in_sum+=pr;g_in_sum+=pg;b_in_sum+=pb;stack=stack.next;if(iref8;y=0<=ref8?++af:--af){p=yi<<2;pixels[p]=(r_sum*mul_sum)>>shg_sum;pixels[p+1]=(g_sum*mul_sum)>>shg_sum;pixels[p+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(x+(((p=y+radiusPlus1)ref5;x=0<=ref5?++k1:--k1){g_in_sum=b_in_sum=r_in_sum=g_sum=b_sum=r_sum=0;yi=x<<2;r_out_sum=radiusPlus1*(pr=pixels[yi]);g_out_sum=radiusPlus1*(pg=pixels[yi+1]);b_out_sum=radiusPlus1*(pb=pixels[yi+2]);r_sum+=sumFactor*pr;g_sum+=sumFactor*pg;b_sum+=sumFactor*pb;stack=stackStart;for(i=l1=0,ref6=radiusPlus1;0<=ref6?l1ref6;i=0<=ref6?++l1:--l1){stack.r=pr;stack.g=pg;stack.b=pb;stack=stack.next;} +yp=width;for(i=n1=1,ref7=radius;1<=ref7?n1<=ref7:n1>=ref7;i=1<=ref7?++n1:--n1){yi=(yp+x)<<2;r_sum+=(stack.r=(pr=pixels[yi]))*(rbs=radiusPlus1-i);g_sum+=(stack.g=(pg=pixels[yi+1]))*rbs;b_sum+=(stack.b=(pb=pixels[yi+2]))*rbs;r_in_sum+=pr;g_in_sum+=pg;b_in_sum+=pb;stack=stack.next;if(iref8;y=0<=ref8?++o1:--o1){p=yi<<2;pixels[p]=(r_sum*mul_sum)>>shg_sum;pixels[p+1]=(g_sum*mul_sum)>>shg_sum;pixels[p+2]=(b_sum*mul_sum)>>shg_sum;r_sum-=r_out_sum;g_sum-=g_out_sum;b_sum-=b_out_sum;r_out_sum-=stackIn.r;g_out_sum-=stackIn.g;b_out_sum-=stackIn.b;p=(x+(((p=y+radiusPlus1)",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} +this.imageAdjustments();return this.waitForImageLoaded();};Caman.prototype.initCanvas=function(){this.canvas=document.createElement('canvas');this.context=this.canvas.getContext('2d');this.renderingCanvas=this.initObj;this.renderingContext=this.renderingCanvas.getContext('2d');this.canvas.width=this.renderingCanvas.width;this.canvas.height=this.renderingCanvas.height;if(this.imageUrl!=null){this.image=document.createElement('img');this.image.crossOrigin='anonymous';this.image.src=this.imageUrl;this.imageAdjustments();return this.waitForImageLoaded();}else{return this.finishInit();}};Caman.prototype.imageAdjustments=function(){if(this.needsHiDPISwap()){Log.debug(this.image.src,"->",this.hiDPIReplacement());this.swapped=true;this.image.src=this.hiDPIReplacement();} if(IO.isRemote(this.image)){this.image.src=IO.proxyUrl(this.image.src);return Log.debug("Remote image detected, using URL = "+this.image.src);}};Caman.prototype.waitForImageLoaded=function(){if(this.isImageLoaded()){return this.imageLoaded();}else{return this.image.onload=this.imageLoaded;}};Caman.prototype.isImageLoaded=function(){if(!this.image.complete){return false;} if((this.image.naturalWidth!=null)&&this.image.naturalWidth===0){return false;} return true;};Caman.prototype.imageWidth=function(){return this.image.width||this.image.naturalWidth;};Caman.prototype.imageHeight=function(){return this.image.height||this.image.naturalHeight;};Caman.prototype.imageLoaded=function(){Log.debug("Image loaded. Width = "+(this.imageWidth())+", Height = "+(this.imageHeight()));if(this.swapped){this.canvas.width=this.imageWidth()/this.hiDPIRatio();this.canvas.height=this.imageHeight()/this.hiDPIRatio();this.renderingCanvas.width=this.imageWidth()/this.hiDPIRatio();this.renderingCanvas.height=this.imageHeight()/this.hiDPIRatio();}else{this.canvas.width=this.imageWidth();this.canvas.height=this.imageHeight();this.renderingCanvas.width=this.imageWidth();this.renderingCanvas.height=this.imageHeight();} @@ -69,7 +69,7 @@ results=[];for(o=0,len=imgs.length;o0)){return;} -r=new RegExp(INST_REGEX);results=[];for(o=0,len=unparsedInstructions.length;o throw "Invalid arguments" if arguments.length is 0 if @ instanceof Caman # We have to do this to avoid polluting the global scope - # because of how Coffeescript binds functions specified + # because of how Coffeescript binds functions specified # with => and the fact that Caman can be invoked as both # a function and as a 'new' object. @finishInit = @finishInit.bind(@) @@ -124,10 +124,10 @@ class Caman extends Module if !isNaN(id) and Store.has(id) return Store.execute(id, callback) - # Every instance gets a unique ID. Makes it much simpler to check if two variables are the + # Every instance gets a unique ID. Makes it much simpler to check if two variables are the # same instance. @id = Util.uniqid.get() - + @initializedPixelData = @originalPixelData = null @cropCoordinates = x: 0, y: 0 @cropped = false @@ -145,7 +145,7 @@ class Caman extends Module @analyze = new Analyze @ @renderer = new Renderer @ - @domIsLoaded => + @domIsLoaded => @parseArguments(args) @setup() @@ -156,7 +156,7 @@ class Caman extends Module # Checks to ensure the DOM is loaded. Ensures the callback is always fired, even # if the DOM is already loaded before it's invoked. The callback is also always # called asynchronously. - # + # # @param [Function] cb The callback function to fire when the DOM is ready. domIsLoaded: (cb) -> if Caman.NodeJS @@ -193,11 +193,11 @@ class Caman extends Module # First argument is always our canvas/image @setInitObject args[0] return if args.length is 1 - + switch typeof args[1] when "string" then @imageUrl = args[1] when "function" then @callback = args[1] - + return if args.length is 2 @callback = args[2] @@ -297,6 +297,7 @@ class Caman extends Module if @imageUrl? @image = document.createElement 'img' + @image.crossOrigin = 'anonymous' @image.src = @imageUrl @imageAdjustments() @@ -375,20 +376,20 @@ class Caman extends Module @assignId() unless @hasId() if @image? - @context.drawImage @image, - 0, 0, - @imageWidth(), @imageHeight(), - 0, 0, + @context.drawImage @image, + 0, 0, + @imageWidth(), @imageHeight(), + 0, 0, @preScaledWidth, @preScaledHeight @renderingContext.drawImage @image, 0, 0, @imageWidth(), @imageHeight(), 0, 0, @preScaledWidth, @preScaledHeight - + @imageData = @context.getImageData 0, 0, @canvas.width, @canvas.height @pixelData = @imageData.data - + if Caman.allowRevert @initializedPixelData = Util.dataArray(@pixelData.length) @originalPixelData = Util.dataArray(@pixelData.length) @@ -506,7 +507,7 @@ class Caman extends Module for pixel, i in @pixelData @originalPixelData[i] = pixel - + @width = @canvas.width @height = @canvas.height @@ -584,9 +585,9 @@ class Caman extends Module for i in [0...pixelData.length] by 4 coord = Pixel.locationToCoordinates(i, width) if (startX <= coord.x < endX) and (startY <= coord.y < endY) - pixels.push pixelData[i], + pixels.push pixelData[i], pixelData[i+1], - pixelData[i+2], + pixelData[i+2], pixelData[i+3] pixels diff --git a/src/core/io.coffee b/src/core/io.coffee index 7fd2717f..419bccfb 100644 --- a/src/core/io.coffee +++ b/src/core/io.coffee @@ -18,7 +18,7 @@ class Caman.IO # @param [DOMObject] img The image to check. # @return [Boolean] @corsEnabled: (img) -> - img.crossOrigin? and img.crossOrigin.toLowerCase() in ['anonymous', 'use-credentials'] + true # Does the given URL exist on a different domain than the current one? # This is done by comparing the URL to `document.domain`. @@ -40,7 +40,7 @@ class Caman.IO if Caman.isURLRemote Caman.remoteProxy Log.info "Cannot use a remote proxy for loading images." return - + return @proxyUrl(src) # Given a URL, get the proxy URL for it. @@ -63,7 +63,7 @@ class Caman.IO lang = langToExt[lang] if langToExt[lang]? "proxies/caman_proxy.#{lang}" - # Grabs the canvas data, encodes it to Base64, then sets the browser location to + # Grabs the canvas data, encodes it to Base64, then sets the browser location to # the encoded data so that the user will be prompted to download it. # If we're in NodeJS, then we can save the image to disk. # @see Caman @@ -91,7 +91,7 @@ Caman::nodeSave = (file, overwrite = true, callback = null) -> Log.debug "Finished writing to #{file}" callback.call this, err if callback - # Takes the current canvas data, converts it to Base64, then sets it as the source + # Takes the current canvas data, converts it to Base64, then sets it as the source # of a new Image object and returns it. Caman::toImage = (type) -> img = new Image() @@ -110,4 +110,4 @@ Caman::toBase64 = (type = "png") -> type = type.toLowerCase() return @renderingCanvas.toDataURL "image/#{type}" -IO = Caman.IO \ No newline at end of file +IO = Caman.IO