From 6182820b0f93e9c66598b8fa0f2bed290b6f85a6 Mon Sep 17 00:00:00 2001 From: Neil Rashbrook Date: Thu, 26 May 2011 20:41:33 +0100 Subject: [PATCH] Fix DOS line endings rs=joedrew! DONTBUILD --- gfx/angle/src/common/debug.cpp | 192 +- gfx/angle/src/libGLESv2/Texture.cpp | 6 +- gfx/angle/src/libGLESv2/mathutil.h | 8 +- gfx/angle/src/libGLESv2/utilities.cpp | 4 +- gfx/cairo/win32-logical-font-scale.patch | 24 +- gfx/harfbuzz/src/hb-ot-head-private.hh | 280 +- gfx/ipc/SharedDIBSurface.cpp | 194 +- gfx/ipc/SharedDIBSurface.h | 188 +- gfx/layers/d3d10/LayerManagerD3D10Effect.h | 14444 +++++++++---------- gfx/layers/d3d9/LayerManagerD3D9Shaders.h | 1496 +- gfx/src/BaseMargin.h | 218 +- gfx/src/BasePoint.h | 200 +- gfx/src/BaseRect.h | 636 +- gfx/src/BaseSize.h | 202 +- gfx/src/nsRect.h | 2 +- gfx/src/nsRegion.cpp | 32 +- gfx/src/nsRegion.h | 12 +- 17 files changed, 9069 insertions(+), 9069 deletions(-) diff --git a/gfx/angle/src/common/debug.cpp b/gfx/angle/src/common/debug.cpp index 1c372528317..4dd7327e796 100644 --- a/gfx/angle/src/common/debug.cpp +++ b/gfx/angle/src/common/debug.cpp @@ -1,97 +1,97 @@ -// -// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// - -// debug.cpp: Debugging utilities. - -#include "common/debug.h" - -#include -#include -#include -#include - -namespace gl -{ - -typedef void (WINAPI *PerfOutputFunction)(D3DCOLOR, LPCWSTR); - -static void output(bool traceFileDebugOnly, PerfOutputFunction perfFunc, const char *format, va_list vararg) -{ -#if !defined(ANGLE_DISABLE_PERF) - if (perfActive()) - { - char message[4096]; - int len = vsprintf_s(message, format, vararg); - if (len < 0) - { - return; - } - - // There are no ASCII variants of these D3DPERF functions. - wchar_t wideMessage[4096]; - for (int i = 0; i < len; ++i) - { - wideMessage[i] = message[i]; - } - wideMessage[len] = 0; - - perfFunc(0, wideMessage); - } -#endif - -#if !defined(ANGLE_DISABLE_TRACE) -#if defined(NDEBUG) - if (traceFileDebugOnly) - { - return; - } -#endif - - FILE* file = fopen(TRACE_OUTPUT_FILE, "a"); - if (file) - { - vfprintf(file, format, vararg); - fclose(file); - } -#endif -} - -void trace(bool traceFileDebugOnly, const char *format, ...) -{ - va_list vararg; - va_start(vararg, format); - output(traceFileDebugOnly, D3DPERF_SetMarker, format, vararg); - va_end(vararg); -} - -bool perfActive() -{ -#if defined(ANGLE_DISABLE_PERF) - return false; -#else +// +// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// debug.cpp: Debugging utilities. + +#include "common/debug.h" + +#include +#include +#include +#include + +namespace gl +{ + +typedef void (WINAPI *PerfOutputFunction)(D3DCOLOR, LPCWSTR); + +static void output(bool traceFileDebugOnly, PerfOutputFunction perfFunc, const char *format, va_list vararg) +{ +#if !defined(ANGLE_DISABLE_PERF) + if (perfActive()) + { + char message[4096]; + int len = vsprintf_s(message, format, vararg); + if (len < 0) + { + return; + } + + // There are no ASCII variants of these D3DPERF functions. + wchar_t wideMessage[4096]; + for (int i = 0; i < len; ++i) + { + wideMessage[i] = message[i]; + } + wideMessage[len] = 0; + + perfFunc(0, wideMessage); + } +#endif + +#if !defined(ANGLE_DISABLE_TRACE) +#if defined(NDEBUG) + if (traceFileDebugOnly) + { + return; + } +#endif + + FILE* file = fopen(TRACE_OUTPUT_FILE, "a"); + if (file) + { + vfprintf(file, format, vararg); + fclose(file); + } +#endif +} + +void trace(bool traceFileDebugOnly, const char *format, ...) +{ + va_list vararg; + va_start(vararg, format); + output(traceFileDebugOnly, D3DPERF_SetMarker, format, vararg); + va_end(vararg); +} + +bool perfActive() +{ +#if defined(ANGLE_DISABLE_PERF) + return false; +#else static bool active = D3DPERF_GetStatus() != 0; - return active; -#endif -} - -ScopedPerfEventHelper::ScopedPerfEventHelper(const char* format, ...) -{ - va_list vararg; - va_start(vararg, format); - output(true, reinterpret_cast(D3DPERF_BeginEvent), format, vararg); - va_end(vararg); -} - -ScopedPerfEventHelper::~ScopedPerfEventHelper() -{ -#if !defined(ANGLE_DISABLE_PERF) - if (perfActive()) - { - D3DPERF_EndEvent(); - } -#endif -} -} + return active; +#endif +} + +ScopedPerfEventHelper::ScopedPerfEventHelper(const char* format, ...) +{ + va_list vararg; + va_start(vararg, format); + output(true, reinterpret_cast(D3DPERF_BeginEvent), format, vararg); + va_end(vararg); +} + +ScopedPerfEventHelper::~ScopedPerfEventHelper() +{ +#if !defined(ANGLE_DISABLE_PERF) + if (perfActive()) + { + D3DPERF_EndEvent(); + } +#endif +} +} diff --git a/gfx/angle/src/libGLESv2/Texture.cpp b/gfx/angle/src/libGLESv2/Texture.cpp index 8858cedb430..3f0a1644e25 100644 --- a/gfx/angle/src/libGLESv2/Texture.cpp +++ b/gfx/angle/src/libGLESv2/Texture.cpp @@ -14,9 +14,9 @@ #include -#if _MSC_VER <= 1400 -#define _interlockedbittestandreset _interlockedbittestandreset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR -#define _interlockedbittestandset _interlockedbittestandset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR +#if _MSC_VER <= 1400 +#define _interlockedbittestandreset _interlockedbittestandreset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR +#define _interlockedbittestandset _interlockedbittestandset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR #endif #include diff --git a/gfx/angle/src/libGLESv2/mathutil.h b/gfx/angle/src/libGLESv2/mathutil.h index 5111b9805f1..20cc6a3f1c9 100644 --- a/gfx/angle/src/libGLESv2/mathutil.h +++ b/gfx/angle/src/libGLESv2/mathutil.h @@ -8,10 +8,10 @@ #ifndef LIBGLESV2_MATHUTIL_H_ #define LIBGLESV2_MATHUTIL_H_ - -#if _MSC_VER <= 1400 -#define _interlockedbittestandreset _interlockedbittestandreset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR -#define _interlockedbittestandset _interlockedbittestandset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR + +#if _MSC_VER <= 1400 +#define _interlockedbittestandreset _interlockedbittestandreset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR +#define _interlockedbittestandset _interlockedbittestandset_NAME_CHANGED_TO_AVOID_MSVS2005_ERROR #endif #include diff --git a/gfx/angle/src/libGLESv2/utilities.cpp b/gfx/angle/src/libGLESv2/utilities.cpp index 6191deb47d2..ba23fd365c6 100644 --- a/gfx/angle/src/libGLESv2/utilities.cpp +++ b/gfx/angle/src/libGLESv2/utilities.cpp @@ -865,7 +865,7 @@ std::string getTempPath() return std::string(); } - return path; + return path; } void writeFile(const char* path, const void* content, size_t size) @@ -878,5 +878,5 @@ void writeFile(const char* path, const void* content, size_t size) } fwrite(content, sizeof(char), size, file); - fclose(file); + fclose(file); } diff --git a/gfx/cairo/win32-logical-font-scale.patch b/gfx/cairo/win32-logical-font-scale.patch index b1135c41d19..02d812be371 100644 --- a/gfx/cairo/win32-logical-font-scale.patch +++ b/gfx/cairo/win32-logical-font-scale.patch @@ -1,12 +1,12 @@ -diff -r e10a8066a62c gfx/cairo/cairo/src/cairo-win32-private.h ---- a/gfx/cairo/cairo/src/cairo-win32-private.h Fri Jun 08 17:39:38 2007 -0700 -+++ b/gfx/cairo/cairo/src/cairo-win32-private.h Fri Jun 29 09:14:35 2007 +0200 -@@ -46,7 +46,7 @@ - #define SB_NONE 0 - #endif - --#define WIN32_FONT_LOGICAL_SCALE 32 -+#define WIN32_FONT_LOGICAL_SCALE 1 - - typedef struct _cairo_win32_surface { - cairo_surface_t base; +diff -r e10a8066a62c gfx/cairo/cairo/src/cairo-win32-private.h +--- a/gfx/cairo/cairo/src/cairo-win32-private.h Fri Jun 08 17:39:38 2007 -0700 ++++ b/gfx/cairo/cairo/src/cairo-win32-private.h Fri Jun 29 09:14:35 2007 +0200 +@@ -46,7 +46,7 @@ + #define SB_NONE 0 + #endif + +-#define WIN32_FONT_LOGICAL_SCALE 32 ++#define WIN32_FONT_LOGICAL_SCALE 1 + + typedef struct _cairo_win32_surface { + cairo_surface_t base; diff --git a/gfx/harfbuzz/src/hb-ot-head-private.hh b/gfx/harfbuzz/src/hb-ot-head-private.hh index 520f48ba292..56a58612241 100644 --- a/gfx/harfbuzz/src/hb-ot-head-private.hh +++ b/gfx/harfbuzz/src/hb-ot-head-private.hh @@ -1,140 +1,140 @@ -/* - * Copyright (C) 2010 Red Hat, Inc. - * - * This is part of HarfBuzz, a text shaping library. - * - * Permission is hereby granted, without written agreement and without - * license or royalty fees, to use, copy, modify, and distribute this - * software and its documentation for any purpose, provided that the - * above copyright notice and the following two paragraphs appear in - * all copies of this software. - * - * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES - * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN - * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO - * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * Red Hat Author(s): Behdad Esfahbod - */ - -#ifndef HB_OT_HEAD_PRIVATE_HH -#define HB_OT_HEAD_PRIVATE_HH - -#include "hb-open-type-private.hh" - -HB_BEGIN_DECLS - - -/* - * head - */ - -#define HB_OT_TAG_head HB_TAG('h','e','a','d') - -struct head -{ - static const hb_tag_t Tag = HB_OT_TAG_head; - - inline unsigned int get_upem (void) const { - unsigned int upem = unitsPerEm; - /* If no valid head table found, assume 1000, which matches typicaly Type1 usage. */ - return 16 <= upem && upem <= 16384 ? upem : 1000; - } - - inline bool sanitize (hb_sanitize_context_t *c) { - TRACE_SANITIZE (); - /* Shall we check for magicNumber here? Who cares? */ - return c->check_struct (this) && likely (version.major == 1); - } - - private: - FixedVersion version; /* Version of the head table--currently - * 0x00010000 for version 1.0. */ - FixedVersion fontRevision; /* Set by font manufacturer. */ - ULONG checkSumAdjustment; /* To compute: set it to 0, sum the - * entire font as ULONG, then store - * 0xB1B0AFBA - sum. */ - ULONG magicNumber; /* Set to 0x5F0F3CF5. */ - USHORT flags; /* Bit 0: Baseline for font at y=0; - * Bit 1: Left sidebearing point at x=0; - * Bit 2: Instructions may depend on point size; - * Bit 3: Force ppem to integer values for all - * internal scaler math; may use fractional - * ppem sizes if this bit is clear; - * Bit 4: Instructions may alter advance width - * (the advance widths might not scale linearly); - - * Bits 5-10: These should be set according to - * Apple's specification. However, they are not - * implemented in OpenType. - * Bit 5: This bit should be set in fonts that are - * intended to e laid out vertically, and in - * which the glyphs have been drawn such that an - * x-coordinate of 0 corresponds to the desired - * vertical baseline. - * Bit 6: This bit must be set to zero. - * Bit 7: This bit should be set if the font - * requires layout for correct linguistic - * rendering (e.g. Arabic fonts). - * Bit 8: This bit should be set for a GX font - * which has one or more metamorphosis effects - * designated as happening by default. - * Bit 9: This bit should be set if the font - * contains any strong right-to-left glyphs. - * Bit 10: This bit should be set if the font - * contains Indic-style rearrangement effects. - - * Bit 11: Font data is 'lossless,' as a result - * of having been compressed and decompressed - * with the Agfa MicroType Express engine. - * Bit 12: Font converted (produce compatible metrics) - * Bit 13: Font optimized for ClearType™. - * Note, fonts that rely on embedded bitmaps (EBDT) - * for rendering should not be considered optimized - * for ClearType, and therefore should keep this bit - * cleared. - * Bit 14: Reserved, set to 0 - * Bit 15: Reserved, set to 0. */ - USHORT unitsPerEm; /* Valid range is from 16 to 16384. This value - * should be a power of 2 for fonts that have - * TrueType outlines. */ - LONGDATETIME created; /* Number of seconds since 12:00 midnight, - January 1, 1904. 64-bit integer */ - LONGDATETIME modified; /* Number of seconds since 12:00 midnight, - January 1, 1904. 64-bit integer */ - SHORT xMin; /* For all glyph bounding boxes. */ - SHORT yMin; /* For all glyph bounding boxes. */ - SHORT xMax; /* For all glyph bounding boxes. */ - SHORT yMax; /* For all glyph bounding boxes. */ - USHORT macStyle; /* Bit 0: Bold (if set to 1); - * Bit 1: Italic (if set to 1) - * Bit 2: Underline (if set to 1) - * Bit 3: Outline (if set to 1) - * Bit 4: Shadow (if set to 1) - * Bit 5: Condensed (if set to 1) - * Bit 6: Extended (if set to 1) - * Bits 7-15: Reserved (set to 0). */ - USHORT lowestRecPPEM; /* Smallest readable size in pixels. */ - SHORT fontDirectionHint; /* Deprecated (Set to 2). - * 0: Fully mixed directional glyphs; - * 1: Only strongly left to right; - * 2: Like 1 but also contains neutrals; - * -1: Only strongly right to left; - * -2: Like -1 but also contains neutrals. */ - SHORT indexToLocFormat; /* 0 for short offsets, 1 for long. */ - SHORT glyphDataFormat; /* 0 for current format. */ - public: - DEFINE_SIZE_STATIC (54); -}; - - -HB_END_DECLS - -#endif /* HB_OT_HEAD_PRIVATE_HH */ +/* + * Copyright (C) 2010 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#ifndef HB_OT_HEAD_PRIVATE_HH +#define HB_OT_HEAD_PRIVATE_HH + +#include "hb-open-type-private.hh" + +HB_BEGIN_DECLS + + +/* + * head + */ + +#define HB_OT_TAG_head HB_TAG('h','e','a','d') + +struct head +{ + static const hb_tag_t Tag = HB_OT_TAG_head; + + inline unsigned int get_upem (void) const { + unsigned int upem = unitsPerEm; + /* If no valid head table found, assume 1000, which matches typicaly Type1 usage. */ + return 16 <= upem && upem <= 16384 ? upem : 1000; + } + + inline bool sanitize (hb_sanitize_context_t *c) { + TRACE_SANITIZE (); + /* Shall we check for magicNumber here? Who cares? */ + return c->check_struct (this) && likely (version.major == 1); + } + + private: + FixedVersion version; /* Version of the head table--currently + * 0x00010000 for version 1.0. */ + FixedVersion fontRevision; /* Set by font manufacturer. */ + ULONG checkSumAdjustment; /* To compute: set it to 0, sum the + * entire font as ULONG, then store + * 0xB1B0AFBA - sum. */ + ULONG magicNumber; /* Set to 0x5F0F3CF5. */ + USHORT flags; /* Bit 0: Baseline for font at y=0; + * Bit 1: Left sidebearing point at x=0; + * Bit 2: Instructions may depend on point size; + * Bit 3: Force ppem to integer values for all + * internal scaler math; may use fractional + * ppem sizes if this bit is clear; + * Bit 4: Instructions may alter advance width + * (the advance widths might not scale linearly); + + * Bits 5-10: These should be set according to + * Apple's specification. However, they are not + * implemented in OpenType. + * Bit 5: This bit should be set in fonts that are + * intended to e laid out vertically, and in + * which the glyphs have been drawn such that an + * x-coordinate of 0 corresponds to the desired + * vertical baseline. + * Bit 6: This bit must be set to zero. + * Bit 7: This bit should be set if the font + * requires layout for correct linguistic + * rendering (e.g. Arabic fonts). + * Bit 8: This bit should be set for a GX font + * which has one or more metamorphosis effects + * designated as happening by default. + * Bit 9: This bit should be set if the font + * contains any strong right-to-left glyphs. + * Bit 10: This bit should be set if the font + * contains Indic-style rearrangement effects. + + * Bit 11: Font data is 'lossless,' as a result + * of having been compressed and decompressed + * with the Agfa MicroType Express engine. + * Bit 12: Font converted (produce compatible metrics) + * Bit 13: Font optimized for ClearType™. + * Note, fonts that rely on embedded bitmaps (EBDT) + * for rendering should not be considered optimized + * for ClearType, and therefore should keep this bit + * cleared. + * Bit 14: Reserved, set to 0 + * Bit 15: Reserved, set to 0. */ + USHORT unitsPerEm; /* Valid range is from 16 to 16384. This value + * should be a power of 2 for fonts that have + * TrueType outlines. */ + LONGDATETIME created; /* Number of seconds since 12:00 midnight, + January 1, 1904. 64-bit integer */ + LONGDATETIME modified; /* Number of seconds since 12:00 midnight, + January 1, 1904. 64-bit integer */ + SHORT xMin; /* For all glyph bounding boxes. */ + SHORT yMin; /* For all glyph bounding boxes. */ + SHORT xMax; /* For all glyph bounding boxes. */ + SHORT yMax; /* For all glyph bounding boxes. */ + USHORT macStyle; /* Bit 0: Bold (if set to 1); + * Bit 1: Italic (if set to 1) + * Bit 2: Underline (if set to 1) + * Bit 3: Outline (if set to 1) + * Bit 4: Shadow (if set to 1) + * Bit 5: Condensed (if set to 1) + * Bit 6: Extended (if set to 1) + * Bits 7-15: Reserved (set to 0). */ + USHORT lowestRecPPEM; /* Smallest readable size in pixels. */ + SHORT fontDirectionHint; /* Deprecated (Set to 2). + * 0: Fully mixed directional glyphs; + * 1: Only strongly left to right; + * 2: Like 1 but also contains neutrals; + * -1: Only strongly right to left; + * -2: Like -1 but also contains neutrals. */ + SHORT indexToLocFormat; /* 0 for short offsets, 1 for long. */ + SHORT glyphDataFormat; /* 0 for current format. */ + public: + DEFINE_SIZE_STATIC (54); +}; + + +HB_END_DECLS + +#endif /* HB_OT_HEAD_PRIVATE_HH */ diff --git a/gfx/ipc/SharedDIBSurface.cpp b/gfx/ipc/SharedDIBSurface.cpp index 466d3ba8ca1..29d24ef06e9 100644 --- a/gfx/ipc/SharedDIBSurface.cpp +++ b/gfx/ipc/SharedDIBSurface.cpp @@ -1,97 +1,97 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Firefox. - * - * The Initial Developer of the Original Code is - * the Mozilla Foundation . - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "SharedDIBSurface.h" - -#include "cairo.h" - -namespace mozilla { -namespace gfx { - -static const cairo_user_data_key_t SHAREDDIB_KEY = {0}; - -static const long kBytesPerPixel = 4; - -bool -SharedDIBSurface::Create(HDC adc, PRUint32 aWidth, PRUint32 aHeight, - bool aTransparent) -{ - nsresult rv = mSharedDIB.Create(adc, aWidth, aHeight, aTransparent); - if (NS_FAILED(rv) || !mSharedDIB.IsValid()) - return false; - - InitSurface(aWidth, aHeight, aTransparent); - return true; -} - -bool -SharedDIBSurface::Attach(Handle aHandle, PRUint32 aWidth, PRUint32 aHeight, - bool aTransparent) -{ - nsresult rv = mSharedDIB.Attach(aHandle, aWidth, aHeight, aTransparent); - if (NS_FAILED(rv) || !mSharedDIB.IsValid()) - return false; - - InitSurface(aWidth, aHeight, aTransparent); - return true; -} - -void -SharedDIBSurface::InitSurface(PRUint32 aWidth, PRUint32 aHeight, - bool aTransparent) -{ - long stride = long(aWidth * kBytesPerPixel); - unsigned char* data = reinterpret_cast(mSharedDIB.GetBits()); - - gfxImageFormat format = aTransparent ? ImageFormatARGB32 : ImageFormatRGB24; - - gfxImageSurface::InitWithData(data, gfxIntSize(aWidth, aHeight), - stride, format); - - cairo_surface_set_user_data(mSurface, &SHAREDDIB_KEY, this, NULL); -} - -bool -SharedDIBSurface::IsSharedDIBSurface(gfxASurface* aSurface) -{ - return aSurface && - aSurface->GetType() == gfxASurface::SurfaceTypeImage && - aSurface->GetData(&SHAREDDIB_KEY); -} - -} // namespace gfx -} // namespace mozilla +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Firefox. + * + * The Initial Developer of the Original Code is + * the Mozilla Foundation . + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#include "SharedDIBSurface.h" + +#include "cairo.h" + +namespace mozilla { +namespace gfx { + +static const cairo_user_data_key_t SHAREDDIB_KEY = {0}; + +static const long kBytesPerPixel = 4; + +bool +SharedDIBSurface::Create(HDC adc, PRUint32 aWidth, PRUint32 aHeight, + bool aTransparent) +{ + nsresult rv = mSharedDIB.Create(adc, aWidth, aHeight, aTransparent); + if (NS_FAILED(rv) || !mSharedDIB.IsValid()) + return false; + + InitSurface(aWidth, aHeight, aTransparent); + return true; +} + +bool +SharedDIBSurface::Attach(Handle aHandle, PRUint32 aWidth, PRUint32 aHeight, + bool aTransparent) +{ + nsresult rv = mSharedDIB.Attach(aHandle, aWidth, aHeight, aTransparent); + if (NS_FAILED(rv) || !mSharedDIB.IsValid()) + return false; + + InitSurface(aWidth, aHeight, aTransparent); + return true; +} + +void +SharedDIBSurface::InitSurface(PRUint32 aWidth, PRUint32 aHeight, + bool aTransparent) +{ + long stride = long(aWidth * kBytesPerPixel); + unsigned char* data = reinterpret_cast(mSharedDIB.GetBits()); + + gfxImageFormat format = aTransparent ? ImageFormatARGB32 : ImageFormatRGB24; + + gfxImageSurface::InitWithData(data, gfxIntSize(aWidth, aHeight), + stride, format); + + cairo_surface_set_user_data(mSurface, &SHAREDDIB_KEY, this, NULL); +} + +bool +SharedDIBSurface::IsSharedDIBSurface(gfxASurface* aSurface) +{ + return aSurface && + aSurface->GetType() == gfxASurface::SurfaceTypeImage && + aSurface->GetData(&SHAREDDIB_KEY); +} + +} // namespace gfx +} // namespace mozilla diff --git a/gfx/ipc/SharedDIBSurface.h b/gfx/ipc/SharedDIBSurface.h index fce7ca9ceb8..8f3d30ffb2c 100644 --- a/gfx/ipc/SharedDIBSurface.h +++ b/gfx/ipc/SharedDIBSurface.h @@ -1,94 +1,94 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Firefox. - * - * The Initial Developer of the Original Code is - * the Mozilla Foundation . - * Portions created by the Initial Developer are Copyright (C) 2010 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef mozilla_gfx_SharedDIBSurface_h -#define mozilla_gfx_SharedDIBSurface_h - -#include "gfxImageSurface.h" -#include "SharedDIBWin.h" - -#include - -namespace mozilla { -namespace gfx { - -/** - * A SharedDIBSurface owns an underlying SharedDIBWin. - */ -class SharedDIBSurface : public gfxImageSurface -{ -public: - typedef base::SharedMemoryHandle Handle; - - SharedDIBSurface() { } - ~SharedDIBSurface() { } - - /** - * Create this image surface backed by shared memory. - */ - bool Create(HDC adc, PRUint32 aWidth, PRUint32 aHeight, bool aTransparent); - - /** - * Attach this surface to shared memory from another process. - */ - bool Attach(Handle aHandle, PRUint32 aWidth, PRUint32 aHeight, - bool aTransparent); - - /** - * After drawing to a surface via GDI, GDI must be flushed before the bitmap - * is valid. - */ - void Flush() { ::GdiFlush(); } - - HDC GetHDC() { return mSharedDIB.GetHDC(); } - - nsresult ShareToProcess(base::ProcessHandle aChildProcess, Handle* aChildHandle) { - return mSharedDIB.ShareToProcess(aChildProcess, aChildHandle); - } - - static bool IsSharedDIBSurface(gfxASurface* aSurface); - -private: - SharedDIBWin mSharedDIB; - - void InitSurface(PRUint32 aWidth, PRUint32 aHeight, bool aTransparent); -}; - -} // namespace gfx -} // namespace mozilla - -#endif // mozilla_gfx_SharedDIBSurface_h +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Firefox. + * + * The Initial Developer of the Original Code is + * the Mozilla Foundation . + * Portions created by the Initial Developer are Copyright (C) 2010 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef mozilla_gfx_SharedDIBSurface_h +#define mozilla_gfx_SharedDIBSurface_h + +#include "gfxImageSurface.h" +#include "SharedDIBWin.h" + +#include + +namespace mozilla { +namespace gfx { + +/** + * A SharedDIBSurface owns an underlying SharedDIBWin. + */ +class SharedDIBSurface : public gfxImageSurface +{ +public: + typedef base::SharedMemoryHandle Handle; + + SharedDIBSurface() { } + ~SharedDIBSurface() { } + + /** + * Create this image surface backed by shared memory. + */ + bool Create(HDC adc, PRUint32 aWidth, PRUint32 aHeight, bool aTransparent); + + /** + * Attach this surface to shared memory from another process. + */ + bool Attach(Handle aHandle, PRUint32 aWidth, PRUint32 aHeight, + bool aTransparent); + + /** + * After drawing to a surface via GDI, GDI must be flushed before the bitmap + * is valid. + */ + void Flush() { ::GdiFlush(); } + + HDC GetHDC() { return mSharedDIB.GetHDC(); } + + nsresult ShareToProcess(base::ProcessHandle aChildProcess, Handle* aChildHandle) { + return mSharedDIB.ShareToProcess(aChildProcess, aChildHandle); + } + + static bool IsSharedDIBSurface(gfxASurface* aSurface); + +private: + SharedDIBWin mSharedDIB; + + void InitSurface(PRUint32 aWidth, PRUint32 aHeight, bool aTransparent); +}; + +} // namespace gfx +} // namespace mozilla + +#endif // mozilla_gfx_SharedDIBSurface_h diff --git a/gfx/layers/d3d10/LayerManagerD3D10Effect.h b/gfx/layers/d3d10/LayerManagerD3D10Effect.h index 6fbfc923562..eb4ad7ff7fa 100644 --- a/gfx/layers/d3d10/LayerManagerD3D10Effect.h +++ b/gfx/layers/d3d10/LayerManagerD3D10Effect.h @@ -1,7222 +1,7222 @@ -#if 0 -// -// FX Version: fx_4_0 -// Child effect (requires effect pool): false -// -// 3 local buffer(s) -// -cbuffer PerLayer -{ - float4 vTextureCoords; // Offset: 0, size: 16 - float4 vLayerQuad; // Offset: 16, size: 16 - float fLayerOpacity; // Offset: 32, size: 4 - float4x4 mLayerTransform; // Offset: 48, size: 64 -} - -cbuffer PerOccasionalLayer -{ - float4 vRenderTargetOffset; // Offset: 0, size: 16 - float4 fLayerColor; // Offset: 16, size: 16 -} - -cbuffer PerLayerManager -{ - float4x4 mProjection; // Offset: 0, size: 64 -} - -// -// 11 local object(s) -// -BlendState Premul -{ - AlphaToCoverageEnable = bool(FALSE /* 0 */); - BlendEnable[0] = bool(TRUE /* 1 */); - SrcBlend[0] = uint(ONE /* 2 */); - DestBlend[0] = uint(INV_SRC_ALPHA /* 6 */); - BlendOp[0] = uint(ADD /* 1 */); - SrcBlendAlpha[0] = uint(ONE /* 2 */); - DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */); - BlendOpAlpha[0] = uint(ADD /* 1 */); - RenderTargetWriteMask[0] = byte(0x0f); -}; -BlendState NonPremul -{ - AlphaToCoverageEnable = bool(FALSE /* 0 */); - BlendEnable[0] = bool(TRUE /* 1 */); - SrcBlend[0] = uint(SRC_ALPHA /* 5 */); - DestBlend[0] = uint(INV_SRC_ALPHA /* 6 */); - BlendOp[0] = uint(ADD /* 1 */); - SrcBlendAlpha[0] = uint(ONE /* 2 */); - DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */); - BlendOpAlpha[0] = uint(ADD /* 1 */); - RenderTargetWriteMask[0] = byte(0x0f); -}; -BlendState ComponentAlphaBlend -{ - AlphaToCoverageEnable = bool(FALSE /* 0 */); - BlendEnable[0] = bool(TRUE /* 1 */); - SrcBlend[0] = uint(ONE /* 2 */); - DestBlend[0] = uint(INV_SRC1_COLOR /* 17 */); - BlendOp[0] = uint(ADD /* 1 */); - SrcBlendAlpha[0] = uint(ZERO /* 1 */); - DestBlendAlpha[0] = uint(ONE /* 2 */); - BlendOpAlpha[0] = uint(ADD /* 1 */); - RenderTargetWriteMask[0] = byte(0x0f); -}; -RasterizerState LayerRast -{ - ScissorEnable = bool(TRUE /* 1 */); - CullMode = uint(NONE /* 1 */); -}; -Texture2D tRGB; -Texture2D tY; -Texture2D tCb; -Texture2D tCr; -Texture2D tRGBWhite; -SamplerState LayerTextureSamplerLinear -{ - Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */); - AddressU = uint(CLAMP /* 3 */); - AddressV = uint(CLAMP /* 3 */); -}; -SamplerState LayerTextureSamplerPoint -{ - Filter = uint(MIN_MAG_MIP_POINT /* 0 */); - AddressU = uint(CLAMP /* 3 */); - AddressV = uint(CLAMP /* 3 */); -}; - -// -// 9 technique(s) -// -technique10 RenderRGBLayerPremul -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = Premul; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] - // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] - // float fLayerOpacity; // Offset: 32 Size: 4 - // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // LayerTextureSamplerLinear sampler NA NA 0 1 - // tRGB texture float4 2d 0 1 - // PerLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) - // - // - // Sampler/Resource to DX9 shader sampler mappings: - // - // Target Sampler Source Sampler Source Resource - // -------------- --------------- ---------------- - // s0 s0 t0 - // - // - // Level9 shader bytecode: - // - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0.xyz, r0, c0.x - mov r0.w, c0.x - mov oC0, r0 - - // approximately 4 instruction slots used (1 texture, 3 arithmetic) - ps_4_0 - dcl_constantbuffer cb0[3], immediateIndexed - dcl_sampler s0, mode_default - dcl_resource_texture2d (float,float,float,float) t0 - dcl_input_ps linear v1.xy - dcl_output o0.xyzw - dcl_temps 1 - sample r0.xyzw, v1.xyxx, t0.xyzw, s0 - mul o0.xyz, r0.xyzx, cb0[2].xxxx - mov o0.w, cb0[2].x - ret - // Approximately 4 instruction slots used - - }; - } - -} - -technique10 RenderRGBLayerPremulPoint -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = Premul; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] - // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] - // float fLayerOpacity; // Offset: 32 Size: 4 - // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // LayerTextureSamplerPoint sampler NA NA 0 1 - // tRGB texture float4 2d 0 1 - // PerLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) - // - // - // Sampler/Resource to DX9 shader sampler mappings: - // - // Target Sampler Source Sampler Source Resource - // -------------- --------------- ---------------- - // s0 s0 t0 - // - // - // Level9 shader bytecode: - // - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0.xyz, r0, c0.x - mov r0.w, c0.x - mov oC0, r0 - - // approximately 4 instruction slots used (1 texture, 3 arithmetic) - ps_4_0 - dcl_constantbuffer cb0[3], immediateIndexed - dcl_sampler s0, mode_default - dcl_resource_texture2d (float,float,float,float) t0 - dcl_input_ps linear v1.xy - dcl_output o0.xyzw - dcl_temps 1 - sample r0.xyzw, v1.xyxx, t0.xyzw, s0 - mul o0.xyz, r0.xyzx, cb0[2].xxxx - mov o0.w, cb0[2].x - ret - // Approximately 4 instruction slots used - - }; - } - -} - -technique10 RenderRGBALayerPremul -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = Premul; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] - // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] - // float fLayerOpacity; // Offset: 32 Size: 4 - // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // LayerTextureSamplerLinear sampler NA NA 0 1 - // tRGB texture float4 2d 0 1 - // PerLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) - // - // - // Sampler/Resource to DX9 shader sampler mappings: - // - // Target Sampler Source Sampler Source Resource - // -------------- --------------- ---------------- - // s0 s0 t0 - // - // - // Level9 shader bytecode: - // - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0, r0, c0.x - mov oC0, r0 - - // approximately 3 instruction slots used (1 texture, 2 arithmetic) - ps_4_0 - dcl_constantbuffer cb0[3], immediateIndexed - dcl_sampler s0, mode_default - dcl_resource_texture2d (float,float,float,float) t0 - dcl_input_ps linear v1.xy - dcl_output o0.xyzw - dcl_temps 1 - sample r0.xyzw, v1.xyxx, t0.xyzw, s0 - mul o0.xyzw, r0.xyzw, cb0[2].xxxx - ret - // Approximately 3 instruction slots used - - }; - } - -} - -technique10 RenderRGBALayerNonPremul -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = NonPremul; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] - // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] - // float fLayerOpacity; // Offset: 32 Size: 4 - // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // LayerTextureSamplerLinear sampler NA NA 0 1 - // tRGB texture float4 2d 0 1 - // PerLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) - // - // - // Sampler/Resource to DX9 shader sampler mappings: - // - // Target Sampler Source Sampler Source Resource - // -------------- --------------- ---------------- - // s0 s0 t0 - // - // - // Level9 shader bytecode: - // - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0, r0, c0.x - mov oC0, r0 - - // approximately 3 instruction slots used (1 texture, 2 arithmetic) - ps_4_0 - dcl_constantbuffer cb0[3], immediateIndexed - dcl_sampler s0, mode_default - dcl_resource_texture2d (float,float,float,float) t0 - dcl_input_ps linear v1.xy - dcl_output o0.xyzw - dcl_temps 1 - sample r0.xyzw, v1.xyxx, t0.xyzw, s0 - mul o0.xyzw, r0.xyzw, cb0[2].xxxx - ret - // Approximately 3 instruction slots used - - }; - } - -} - -technique10 RenderRGBALayerPremulPoint -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = Premul; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] - // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] - // float fLayerOpacity; // Offset: 32 Size: 4 - // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // LayerTextureSamplerPoint sampler NA NA 0 1 - // tRGB texture float4 2d 0 1 - // PerLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) - // - // - // Sampler/Resource to DX9 shader sampler mappings: - // - // Target Sampler Source Sampler Source Resource - // -------------- --------------- ---------------- - // s0 s0 t0 - // - // - // Level9 shader bytecode: - // - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0, r0, c0.x - mov oC0, r0 - - // approximately 3 instruction slots used (1 texture, 2 arithmetic) - ps_4_0 - dcl_constantbuffer cb0[3], immediateIndexed - dcl_sampler s0, mode_default - dcl_resource_texture2d (float,float,float,float) t0 - dcl_input_ps linear v1.xy - dcl_output o0.xyzw - dcl_temps 1 - sample r0.xyzw, v1.xyxx, t0.xyzw, s0 - mul o0.xyzw, r0.xyzw, cb0[2].xxxx - ret - // Approximately 3 instruction slots used - - }; - } - -} - -technique10 RenderRGBALayerNonPremulPoint -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = NonPremul; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] - // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] - // float fLayerOpacity; // Offset: 32 Size: 4 - // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // LayerTextureSamplerPoint sampler NA NA 0 1 - // tRGB texture float4 2d 0 1 - // PerLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) - // - // - // Sampler/Resource to DX9 shader sampler mappings: - // - // Target Sampler Source Sampler Source Resource - // -------------- --------------- ---------------- - // s0 s0 t0 - // - // - // Level9 shader bytecode: - // - ps_2_x - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0, r0, c0.x - mov oC0, r0 - - // approximately 3 instruction slots used (1 texture, 2 arithmetic) - ps_4_0 - dcl_constantbuffer cb0[3], immediateIndexed - dcl_sampler s0, mode_default - dcl_resource_texture2d (float,float,float,float) t0 - dcl_input_ps linear v1.xy - dcl_output o0.xyzw - dcl_temps 1 - sample r0.xyzw, v1.xyxx, t0.xyzw, s0 - mul o0.xyzw, r0.xyzw, cb0[2].xxxx - ret - // Approximately 3 instruction slots used - - }; - } - -} - -technique10 RenderYCbCrLayer -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = Premul; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] - // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] - // float fLayerOpacity; // Offset: 32 Size: 4 - // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // LayerTextureSamplerLinear sampler NA NA 0 1 - // tY texture float4 2d 0 1 - // tCb texture float4 2d 1 1 - // tCr texture float4 2d 2 1 - // PerLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) - // - // - // Sampler/Resource to DX9 shader sampler mappings: - // - // Target Sampler Source Sampler Source Resource - // -------------- --------------- ---------------- - // s0 s0 t0 - // s1 s0 t1 - // s2 s0 t2 - // - // - // Level9 shader bytecode: - // - ps_2_x - def c1, -0.5, -0.0625, 1.59599996, 0.813000023 - def c2, 1.16400003, 2.01799989, 0.391000003, 1 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - texld r0, t0, s0 - texld r1, t0, s2 - add r0.y, r1.x, c1.x - mul r0.yz, r0.y, c1.xzww - add r0.x, r0.x, c1.y - mad r0.z, r0.x, c2.x, -r0.z - mad r1.x, r0.x, c2.x, r0.y - texld r2, t0, s1 - add r0.y, r2.x, c1.x - mad r1.y, r0.y, -c2.z, r0.z - mul r0.y, r0.y, c2.y - mad r1.z, r0.x, c2.x, r0.y - mov r1.w, c2.w - mul r0, r1, c0.x - mov oC0, r0 - - // approximately 15 instruction slots used (3 texture, 12 arithmetic) - ps_4_0 - dcl_constantbuffer cb0[3], immediateIndexed - dcl_sampler s0, mode_default - dcl_resource_texture2d (float,float,float,float) t0 - dcl_resource_texture2d (float,float,float,float) t1 - dcl_resource_texture2d (float,float,float,float) t2 - dcl_input_ps linear v1.xy - dcl_output o0.xyzw - dcl_temps 3 - sample r0.xyzw, v1.xyxx, t2.xyzw, s0 - add r0.x, r0.x, l(-0.500000) - mul r0.xy, r0.xxxx, l(1.596000, 0.813000, 0.000000, 0.000000) - sample r1.xyzw, v1.xyxx, t0.xyzw, s0 - add r0.z, r1.x, l(-0.062500) - mad r0.y, r0.z, l(1.164000), -r0.y - mad r1.x, r0.z, l(1.164000), r0.x - sample r2.xyzw, v1.xyxx, t1.xyzw, s0 - add r0.x, r2.x, l(-0.500000) - mad r1.y, -r0.x, l(0.391000), r0.y - mul r0.x, r0.x, l(2.018000) - mad r1.z, r0.z, l(1.164000), r0.x - mov r1.w, l(1.000000) - mul o0.xyzw, r1.xyzw, cb0[2].xxxx - ret - // Approximately 15 instruction slots used - - }; - } - -} - -technique10 RenderComponentAlphaLayer -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = ComponentAlphaBlend; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] - // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] - // float fLayerOpacity; // Offset: 32 Size: 4 - // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // LayerTextureSamplerLinear sampler NA NA 0 1 - // tRGB texture float4 2d 0 1 - // tRGBWhite texture float4 2d 1 1 - // PerLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // SV_Target 1 xyzw 1 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) - // - // - // Sampler/Resource to DX9 shader sampler mappings: - // - // Target Sampler Source Sampler Source Resource - // -------------- --------------- ---------------- - // s0 s0 t0 - // s1 s0 t1 - // - // - // Level9 shader bytecode: - // - ps_2_x - def c1, 1, 0, 0, 0 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - texld r0, t0, s1 - texld r1, t0, s0 - mul r2, r1, c0.x - mov oC0, r2 - add r0, -r0, r1 - add r0, r0, c1.x - mul r0, r0, c0.x - mov oC1, r0 - - // approximately 8 instruction slots used (2 texture, 6 arithmetic) - ps_4_0 - dcl_constantbuffer cb0[3], immediateIndexed - dcl_sampler s0, mode_default - dcl_resource_texture2d (float,float,float,float) t0 - dcl_resource_texture2d (float,float,float,float) t1 - dcl_input_ps linear v1.xy - dcl_output o0.xyzw - dcl_output o1.xyzw - dcl_temps 2 - sample r0.xyzw, v1.xyxx, t0.xyzw, s0 - mul o0.xyzw, r0.xyzw, cb0[2].xxxx - sample r1.xyzw, v1.xyxx, t1.xyzw, s0 - add r0.xyzw, r0.xyzw, -r1.xyzw - add r0.xyzw, r0.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) - mul o1.xyzw, r0.xyzw, cb0[2].xxxx - ret - // Approximately 7 instruction slots used - - }; - } - -} - -technique10 RenderSolidColorLayer -{ - pass P0 - { - RasterizerState = LayerRast; - AB_BlendFactor = float4(0, 0, 0, 0); - AB_SampleMask = uint(0xffffffff); - BlendState = Premul; - VertexShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerLayer - // { - // - // float4 vTextureCoords; // Offset: 0 Size: 16 - // float4 vLayerQuad; // Offset: 16 Size: 16 - // float fLayerOpacity; // Offset: 32 Size: 4 [unused] - // float4x4 mLayerTransform; // Offset: 48 Size: 64 - // - // } - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 - // float4 fLayerColor; // Offset: 16 Size: 16 [unused] - // - // } - // - // cbuffer PerLayerManager - // { - // - // float4x4 mProjection; // Offset: 0 Size: 64 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerLayer cbuffer NA NA 0 1 - // PerOccasionalLayer cbuffer NA NA 1 1 - // PerLayerManager cbuffer NA NA 2 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // POSITION 0 xy 0 NONE float xy - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float xyzw - // TEXCOORD 0 xy 1 NONE float xy - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) - // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) - // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) - // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) - // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) - // - // - // Runtime generated constant mappings: - // - // Target Reg Constant Description - // ---------- -------------------------------------------------- - // c0 Vertex Shader position offset - // - // - // Level9 shader bytecode: - // - vs_2_x - dcl_texcoord v0 - mad oT0.xy, v0, c1.zwzw, c1 - mad r0.x, v0.y, c2.w, c2.y - mul r0, r0.x, c4 - mad r1.x, v0.x, c2.z, c2.x - mad r0, c3, r1.x, r0 - add r0, r0, c5 - add r0, r0, -c6 - mul r1, r0.y, c8 - mad r1, c7, r0.x, r1 - mad r1, c9, r0.z, r1 - mad r0, c10, r0.w, r1 - mad oPos.xy, r0.w, c0, r0 - mov oPos.zw, r0 - - // approximately 13 instruction slots used - vs_4_0 - dcl_constantbuffer cb0[7], immediateIndexed - dcl_constantbuffer cb1[1], immediateIndexed - dcl_constantbuffer cb2[4], immediateIndexed - dcl_input v0.xy - dcl_output_siv o0.xyzw, position - dcl_output o1.xy - dcl_temps 2 - mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx - mul r1.xyzw, r0.yyyy, cb0[4].xyzw - mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw - add r0.xyzw, r0.xyzw, cb0[6].xyzw - add r0.xyzw, r0.xyzw, -cb1[0].xyzw - mul r1.xyzw, r0.yyyy, cb2[1].xyzw - mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw - mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw - mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw - mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx - ret - // Approximately 11 instruction slots used - - }; - GeometryShader = NULL; - PixelShader = asm { - // - // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 - // - // - // Buffer Definitions: - // - // cbuffer PerOccasionalLayer - // { - // - // float4 vRenderTargetOffset; // Offset: 0 Size: 16 [unused] - // float4 fLayerColor; // Offset: 16 Size: 16 - // - // } - // - // - // Resource Bindings: - // - // Name Type Format Dim Slot Elements - // ------------------------------ ---------- ------- ----------- ---- -------- - // PerOccasionalLayer cbuffer NA NA 0 1 - // - // - // - // Input signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Position 0 xyzw 0 POS float - // TEXCOORD 0 xy 1 NONE float - // - // - // Output signature: - // - // Name Index Mask Register SysValue Format Used - // -------------------- ----- ------ -------- -------- ------ ------ - // SV_Target 0 xyzw 0 TARGET float xyzw - // - // - // Constant buffer to DX9 shader constant mappings: - // - // Target Reg Buffer Start Reg # of Regs Data Conversion - // ---------- ------- --------- --------- ---------------------- - // c0 cb0 1 1 ( FLT, FLT, FLT, FLT) - // - // - // Level9 shader bytecode: - // - ps_2_x - mov oC0, c0 - - // approximately 1 instruction slot used - ps_4_0 - dcl_constantbuffer cb0[2], immediateIndexed - dcl_output o0.xyzw - mov o0.xyzw, cb0[1].xyzw - ret - // Approximately 2 instruction slots used - - }; - } - -} - -#endif - -const BYTE g_main[] = -{ - 68, 88, 66, 67, 105, 120, - 157, 39, 125, 94, 29, 78, - 15, 169, 65, 191, 70, 115, - 164, 88, 1, 0, 0, 0, - 231, 121, 0, 0, 1, 0, - 0, 0, 36, 0, 0, 0, - 70, 88, 49, 48, 187, 121, - 0, 0, 1, 16, 255, 254, - 3, 0, 0, 0, 7, 0, - 0, 0, 11, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 119, 112, - 0, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 0, - 0, 0, 18, 0, 0, 0, - 0, 0, 0, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 0, 102, 108, 111, 97, 116, - 52, 0, 13, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 0, 10, 33, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 118, 76, 97, - 121, 101, 114, 81, 117, 97, - 100, 0, 102, 108, 111, 97, - 116, 0, 74, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 16, 0, 0, 0, 4, 0, - 0, 0, 9, 9, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 102, 108, 111, 97, - 116, 52, 120, 52, 0, 122, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 64, - 0, 0, 0, 64, 0, 0, - 0, 64, 0, 0, 0, 11, - 100, 0, 0, 109, 76, 97, - 121, 101, 114, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 0, 80, 101, 114, 79, 99, - 99, 97, 115, 105, 111, 110, - 97, 108, 76, 97, 121, 101, - 114, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 102, 76, - 97, 121, 101, 114, 67, 111, - 108, 111, 114, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 77, 97, 110, 97, 103, 101, - 114, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 66, 108, 101, 110, - 100, 83, 116, 97, 116, 101, - 0, 254, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 80, - 114, 101, 109, 117, 108, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 78, 111, 110, 80, 114, 101, - 109, 117, 108, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 6, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 6, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 15, 0, 0, 0, 67, 111, - 109, 112, 111, 110, 101, 110, - 116, 65, 108, 112, 104, 97, - 66, 108, 101, 110, 100, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 17, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 82, 97, 115, 116, 101, 114, - 105, 122, 101, 114, 83, 116, - 97, 116, 101, 0, 142, 2, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 76, 97, 121, 101, - 114, 82, 97, 115, 116, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 84, 101, 120, 116, 117, 114, - 101, 50, 68, 0, 220, 2, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 116, 82, 71, 66, - 0, 116, 89, 0, 116, 67, - 98, 0, 116, 67, 114, 0, - 116, 82, 71, 66, 87, 104, - 105, 116, 101, 0, 83, 97, - 109, 112, 108, 101, 114, 83, - 116, 97, 116, 101, 0, 28, - 3, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 21, - 0, 0, 0, 76, 97, 121, - 101, 114, 84, 101, 120, 116, - 117, 114, 101, 83, 97, 109, - 112, 108, 101, 114, 76, 105, - 110, 101, 97, 114, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 21, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 3, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 3, 0, 0, 0, 76, - 97, 121, 101, 114, 84, 101, - 120, 116, 117, 114, 101, 83, - 97, 109, 112, 108, 101, 114, - 80, 111, 105, 110, 116, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 82, 101, 110, 100, 101, 114, - 82, 71, 66, 76, 97, 121, - 101, 114, 80, 114, 101, 109, - 117, 108, 0, 80, 48, 0, - 4, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 255, 255, 255, 255, - 24, 7, 0, 0, 68, 88, - 66, 67, 254, 249, 65, 252, - 64, 46, 192, 119, 73, 197, - 161, 234, 24, 1, 194, 131, - 1, 0, 0, 0, 24, 7, - 0, 0, 6, 0, 0, 0, - 56, 0, 0, 0, 164, 1, - 0, 0, 148, 3, 0, 0, - 16, 4, 0, 0, 140, 6, - 0, 0, 192, 6, 0, 0, - 65, 111, 110, 57, 100, 1, - 0, 0, 100, 1, 0, 0, - 0, 2, 254, 255, 0, 1, - 0, 0, 100, 0, 0, 0, - 5, 0, 36, 0, 0, 0, - 96, 0, 0, 0, 96, 0, - 0, 0, 36, 0, 1, 0, - 96, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 2, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 6, 0, - 1, 0, 5, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 6, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 4, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 254, 255, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 4, 0, - 0, 4, 0, 0, 3, 224, - 0, 0, 228, 144, 1, 0, - 238, 160, 1, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 1, 128, 0, 0, 85, 144, - 2, 0, 255, 160, 2, 0, - 85, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 0, 128, 4, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 1, 128, 0, 0, 0, 144, - 2, 0, 170, 160, 2, 0, - 0, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 3, 0, - 228, 160, 1, 0, 0, 128, - 0, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 5, 0, - 228, 160, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 6, 0, 228, 161, - 5, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 85, 128, - 8, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 15, 128, - 7, 0, 228, 160, 0, 0, - 0, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 15, 128, 9, 0, 228, 160, - 0, 0, 170, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 128, 10, 0, - 228, 160, 0, 0, 255, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 3, 192, - 0, 0, 255, 128, 0, 0, - 228, 160, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 12, 192, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 232, 1, 0, 0, - 64, 0, 1, 0, 122, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 2, 0, 0, 0, 4, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 0, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 1, 0, 0, 0, - 104, 0, 0, 2, 2, 0, - 0, 0, 50, 0, 0, 11, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 230, 138, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 0, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 5, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 166, 10, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 50, 32, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 230, 138, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 11, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 116, 2, - 0, 0, 3, 0, 0, 0, - 168, 0, 0, 0, 3, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 254, 255, 0, 1, - 0, 0, 64, 2, 0, 0, - 124, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 133, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 152, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 80, 101, 114, 76, 97, 121, - 101, 114, 0, 80, 101, 114, - 79, 99, 99, 97, 115, 105, - 111, 110, 97, 108, 76, 97, - 121, 101, 114, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 77, 97, 110, 97, 103, 101, - 114, 0, 124, 0, 0, 0, - 4, 0, 0, 0, 240, 0, - 0, 0, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 133, 0, 0, 0, - 2, 0, 0, 0, 188, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 152, 0, 0, 0, - 1, 0, 0, 0, 28, 2, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 80, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 112, 1, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 123, 1, 0, 0, - 32, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 140, 1, 0, 0, 0, 0, - 0, 0, 156, 1, 0, 0, - 48, 0, 0, 0, 64, 0, - 0, 0, 2, 0, 0, 0, - 172, 1, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 102, 76, 97, - 121, 101, 114, 79, 112, 97, - 99, 105, 116, 121, 0, 171, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 236, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 16, 2, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 52, 2, 0, 0, - 0, 0, 0, 0, 64, 0, - 0, 0, 2, 0, 0, 0, - 172, 1, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 77, 105, 99, 114, - 111, 115, 111, 102, 116, 32, - 40, 82, 41, 32, 72, 76, - 83, 76, 32, 83, 104, 97, - 100, 101, 114, 32, 67, 111, - 109, 112, 105, 108, 101, 114, - 32, 57, 46, 50, 55, 46, - 57, 53, 50, 46, 51, 48, - 50, 50, 0, 171, 171, 171, - 73, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 3, 3, 0, 0, 80, 79, - 83, 73, 84, 73, 79, 78, - 0, 171, 171, 171, 79, 83, - 71, 78, 80, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 68, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 12, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 171, 171, 8, 4, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 84, 4, - 0, 0, 68, 88, 66, 67, - 170, 213, 87, 132, 192, 216, - 64, 34, 189, 70, 85, 214, - 198, 9, 122, 139, 1, 0, - 0, 0, 84, 4, 0, 0, - 6, 0, 0, 0, 56, 0, - 0, 0, 204, 0, 0, 0, - 136, 1, 0, 0, 4, 2, - 0, 0, 200, 3, 0, 0, - 32, 4, 0, 0, 65, 111, - 110, 57, 140, 0, 0, 0, - 140, 0, 0, 0, 0, 2, - 255, 255, 88, 0, 0, 0, - 52, 0, 0, 0, 1, 0, - 40, 0, 0, 0, 52, 0, - 0, 0, 52, 0, 1, 0, - 36, 0, 0, 0, 52, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 5, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 228, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 0, 0, 8, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 180, 0, 0, 0, 64, 0, - 0, 0, 45, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 114, 32, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 0, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 130, 32, - 16, 0, 0, 0, 0, 0, - 10, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 4, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 188, 1, 0, 0, 1, 0, - 0, 0, 164, 0, 0, 0, - 3, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 255, 255, - 0, 1, 0, 0, 136, 1, - 0, 0, 124, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 150, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 155, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 76, 97, 121, 101, - 114, 84, 101, 120, 116, 117, - 114, 101, 83, 97, 109, 112, - 108, 101, 114, 76, 105, 110, - 101, 97, 114, 0, 116, 82, - 71, 66, 0, 80, 101, 114, - 76, 97, 121, 101, 114, 0, - 155, 0, 0, 0, 4, 0, - 0, 0, 188, 0, 0, 0, - 112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 28, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 1, - 0, 0, 0, 0, 0, 0, - 60, 1, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 1, - 0, 0, 0, 0, 0, 0, - 71, 1, 0, 0, 32, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 88, 1, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 48, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 102, 76, 97, 121, 101, - 114, 79, 112, 97, 99, 105, - 116, 121, 0, 171, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 55, 46, 57, 53, - 50, 46, 51, 48, 50, 50, - 0, 171, 171, 171, 73, 83, - 71, 78, 80, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 68, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 171, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171, - 56, 11, 0, 0, 0, 0, - 0, 0, 82, 101, 110, 100, - 101, 114, 82, 71, 66, 76, - 97, 121, 101, 114, 80, 114, - 101, 109, 117, 108, 80, 111, - 105, 110, 116, 0, 4, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 255, 255, 255, 255, 24, 7, - 0, 0, 68, 88, 66, 67, - 254, 249, 65, 252, 64, 46, - 192, 119, 73, 197, 161, 234, - 24, 1, 194, 131, 1, 0, - 0, 0, 24, 7, 0, 0, - 6, 0, 0, 0, 56, 0, - 0, 0, 164, 1, 0, 0, - 148, 3, 0, 0, 16, 4, - 0, 0, 140, 6, 0, 0, - 192, 6, 0, 0, 65, 111, - 110, 57, 100, 1, 0, 0, - 100, 1, 0, 0, 0, 2, - 254, 255, 0, 1, 0, 0, - 100, 0, 0, 0, 5, 0, - 36, 0, 0, 0, 96, 0, - 0, 0, 96, 0, 0, 0, - 36, 0, 1, 0, 96, 0, - 0, 0, 0, 0, 2, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 2, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 1, 0, - 5, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 6, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 4, 0, - 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 254, 255, 31, 0, 0, 2, - 5, 0, 0, 128, 0, 0, - 15, 144, 4, 0, 0, 4, - 0, 0, 3, 224, 0, 0, - 228, 144, 1, 0, 238, 160, - 1, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 1, 128, - 0, 0, 85, 144, 2, 0, - 255, 160, 2, 0, 85, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 0, 128, - 4, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 1, 128, - 0, 0, 0, 144, 2, 0, - 170, 160, 2, 0, 0, 160, - 4, 0, 0, 4, 0, 0, - 15, 128, 3, 0, 228, 160, - 1, 0, 0, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 5, 0, 228, 160, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 6, 0, 228, 161, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 8, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 15, 128, 7, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 15, 128, - 9, 0, 228, 160, 0, 0, - 170, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 10, 0, 228, 160, - 0, 0, 255, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 255, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 12, 192, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 232, 1, 0, 0, 64, 0, - 1, 0, 122, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 2, 0, - 0, 0, 4, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 0, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 2, 0, 0, 0, - 50, 0, 0, 11, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 0, 0, - 0, 0, 230, 138, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 3, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 11, 50, 32, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 0, 0, - 0, 0, 230, 138, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 11, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 116, 2, 0, 0, - 3, 0, 0, 0, 168, 0, - 0, 0, 3, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 254, 255, 0, 1, 0, 0, - 64, 2, 0, 0, 124, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 133, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 152, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 0, 80, 101, 114, 79, 99, - 99, 97, 115, 105, 111, 110, - 97, 108, 76, 97, 121, 101, - 114, 0, 80, 101, 114, 76, - 97, 121, 101, 114, 77, 97, - 110, 97, 103, 101, 114, 0, - 124, 0, 0, 0, 4, 0, - 0, 0, 240, 0, 0, 0, - 112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 133, 0, 0, 0, 2, 0, - 0, 0, 188, 1, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 152, 0, 0, 0, 1, 0, - 0, 0, 28, 2, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 80, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 96, 1, - 0, 0, 0, 0, 0, 0, - 112, 1, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 96, 1, - 0, 0, 0, 0, 0, 0, - 123, 1, 0, 0, 32, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 140, 1, - 0, 0, 0, 0, 0, 0, - 156, 1, 0, 0, 48, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 172, 1, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 102, 76, 97, 121, 101, - 114, 79, 112, 97, 99, 105, - 116, 121, 0, 171, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 236, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 16, 2, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 52, 2, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 172, 1, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 55, 46, 57, 53, - 50, 46, 51, 48, 50, 50, - 0, 171, 171, 171, 73, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 3, 3, - 0, 0, 80, 79, 83, 73, - 84, 73, 79, 78, 0, 171, - 171, 171, 79, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 12, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 226, 15, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 84, 4, 0, 0, - 68, 88, 66, 67, 146, 3, - 215, 66, 245, 177, 6, 57, - 16, 82, 147, 232, 61, 101, - 156, 116, 1, 0, 0, 0, - 84, 4, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 204, 0, 0, 0, 136, 1, - 0, 0, 4, 2, 0, 0, - 200, 3, 0, 0, 32, 4, - 0, 0, 65, 111, 110, 57, - 140, 0, 0, 0, 140, 0, - 0, 0, 0, 2, 255, 255, - 88, 0, 0, 0, 52, 0, - 0, 0, 1, 0, 40, 0, - 0, 0, 52, 0, 0, 0, - 52, 0, 1, 0, 36, 0, - 0, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 3, 176, - 31, 0, 0, 2, 0, 0, - 0, 144, 0, 8, 15, 160, - 66, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 176, - 0, 8, 228, 160, 5, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 0, 8, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 180, 0, - 0, 0, 64, 0, 0, 0, - 45, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 114, 32, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 54, 0, - 0, 6, 130, 32, 16, 0, - 0, 0, 0, 0, 10, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 4, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 188, 1, - 0, 0, 1, 0, 0, 0, - 164, 0, 0, 0, 3, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 136, 1, 0, 0, - 124, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 149, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 154, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 76, 97, 121, 101, 114, 84, - 101, 120, 116, 117, 114, 101, - 83, 97, 109, 112, 108, 101, - 114, 80, 111, 105, 110, 116, - 0, 116, 82, 71, 66, 0, - 80, 101, 114, 76, 97, 121, - 101, 114, 0, 171, 154, 0, - 0, 0, 4, 0, 0, 0, - 188, 0, 0, 0, 112, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 1, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 44, 1, 0, 0, - 0, 0, 0, 0, 60, 1, - 0, 0, 16, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 44, 1, 0, 0, - 0, 0, 0, 0, 71, 1, - 0, 0, 32, 0, 0, 0, - 4, 0, 0, 0, 2, 0, - 0, 0, 88, 1, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 48, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 76, 97, 121, - 101, 114, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 3, 0, 3, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 57, 46, 50, - 55, 46, 57, 53, 50, 46, - 51, 48, 50, 50, 0, 171, - 171, 171, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171, 18, 23, - 0, 0, 0, 0, 0, 0, - 82, 101, 110, 100, 101, 114, - 82, 71, 66, 65, 76, 97, - 121, 101, 114, 80, 114, 101, - 109, 117, 108, 0, 4, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 255, 255, 255, 255, 24, 7, - 0, 0, 68, 88, 66, 67, - 254, 249, 65, 252, 64, 46, - 192, 119, 73, 197, 161, 234, - 24, 1, 194, 131, 1, 0, - 0, 0, 24, 7, 0, 0, - 6, 0, 0, 0, 56, 0, - 0, 0, 164, 1, 0, 0, - 148, 3, 0, 0, 16, 4, - 0, 0, 140, 6, 0, 0, - 192, 6, 0, 0, 65, 111, - 110, 57, 100, 1, 0, 0, - 100, 1, 0, 0, 0, 2, - 254, 255, 0, 1, 0, 0, - 100, 0, 0, 0, 5, 0, - 36, 0, 0, 0, 96, 0, - 0, 0, 96, 0, 0, 0, - 36, 0, 1, 0, 96, 0, - 0, 0, 0, 0, 2, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 2, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 1, 0, - 5, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 6, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 4, 0, - 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 254, 255, 31, 0, 0, 2, - 5, 0, 0, 128, 0, 0, - 15, 144, 4, 0, 0, 4, - 0, 0, 3, 224, 0, 0, - 228, 144, 1, 0, 238, 160, - 1, 0, 228, 160, 4, 0, - 0, 4, 0, 0, 1, 128, - 0, 0, 85, 144, 2, 0, - 255, 160, 2, 0, 85, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 0, 128, - 4, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 1, 128, - 0, 0, 0, 144, 2, 0, - 170, 160, 2, 0, 0, 160, - 4, 0, 0, 4, 0, 0, - 15, 128, 3, 0, 228, 160, - 1, 0, 0, 128, 0, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 5, 0, 228, 160, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 6, 0, 228, 161, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 8, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 15, 128, 7, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 15, 128, - 9, 0, 228, 160, 0, 0, - 170, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 10, 0, 228, 160, - 0, 0, 255, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 3, 192, 0, 0, - 255, 128, 0, 0, 228, 160, - 0, 0, 228, 128, 1, 0, - 0, 2, 0, 0, 12, 192, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 232, 1, 0, 0, 64, 0, - 1, 0, 122, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 2, 0, - 0, 0, 4, 0, 0, 0, - 95, 0, 0, 3, 50, 16, - 16, 0, 0, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 50, 32, 16, 0, - 1, 0, 0, 0, 104, 0, - 0, 2, 2, 0, 0, 0, - 50, 0, 0, 11, 50, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 0, 0, - 0, 0, 230, 138, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 0, 0, 0, 8, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 128, 65, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 2, 0, 0, 0, - 2, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 3, 0, - 0, 0, 246, 15, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 11, 50, 32, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 0, 0, - 0, 0, 230, 138, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 70, 128, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 11, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 116, 2, 0, 0, - 3, 0, 0, 0, 168, 0, - 0, 0, 3, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 254, 255, 0, 1, 0, 0, - 64, 2, 0, 0, 124, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 133, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 152, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 0, 80, 101, 114, 79, 99, - 99, 97, 115, 105, 111, 110, - 97, 108, 76, 97, 121, 101, - 114, 0, 80, 101, 114, 76, - 97, 121, 101, 114, 77, 97, - 110, 97, 103, 101, 114, 0, - 124, 0, 0, 0, 4, 0, - 0, 0, 240, 0, 0, 0, - 112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 133, 0, 0, 0, 2, 0, - 0, 0, 188, 1, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 152, 0, 0, 0, 1, 0, - 0, 0, 28, 2, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 80, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 96, 1, - 0, 0, 0, 0, 0, 0, - 112, 1, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 96, 1, - 0, 0, 0, 0, 0, 0, - 123, 1, 0, 0, 32, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 140, 1, - 0, 0, 0, 0, 0, 0, - 156, 1, 0, 0, 48, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 172, 1, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 102, 76, 97, 121, 101, - 114, 79, 112, 97, 99, 105, - 116, 121, 0, 171, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 236, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 2, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 16, 2, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 118, 82, 101, 110, 100, 101, - 114, 84, 97, 114, 103, 101, - 116, 79, 102, 102, 115, 101, - 116, 0, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 52, 2, 0, 0, 0, 0, - 0, 0, 64, 0, 0, 0, - 2, 0, 0, 0, 172, 1, - 0, 0, 0, 0, 0, 0, - 109, 80, 114, 111, 106, 101, - 99, 116, 105, 111, 110, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 55, 46, 57, 53, - 50, 46, 51, 48, 50, 50, - 0, 171, 171, 171, 73, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 3, 3, - 0, 0, 80, 79, 83, 73, - 84, 73, 79, 78, 0, 171, - 171, 171, 79, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 12, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 184, 27, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 48, 4, 0, 0, - 68, 88, 66, 67, 135, 78, - 217, 178, 82, 246, 12, 136, - 40, 218, 112, 36, 133, 68, - 115, 32, 1, 0, 0, 0, - 48, 4, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 192, 0, 0, 0, 100, 1, - 0, 0, 224, 1, 0, 0, - 164, 3, 0, 0, 252, 3, - 0, 0, 65, 111, 110, 57, - 128, 0, 0, 0, 128, 0, - 0, 0, 0, 2, 255, 255, - 76, 0, 0, 0, 52, 0, - 0, 0, 1, 0, 40, 0, - 0, 0, 52, 0, 0, 0, - 52, 0, 1, 0, 36, 0, - 0, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 255, 255, - 31, 0, 0, 2, 0, 0, - 0, 128, 0, 0, 3, 176, - 31, 0, 0, 2, 0, 0, - 0, 144, 0, 8, 15, 160, - 66, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 176, - 0, 8, 228, 160, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 156, 0, - 0, 0, 64, 0, 0, 0, - 39, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 104, 0, 0, 2, 1, 0, - 0, 0, 69, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 1, 0, 0, 0, 70, 126, - 16, 0, 0, 0, 0, 0, - 0, 96, 16, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 6, 128, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 188, 1, - 0, 0, 1, 0, 0, 0, - 164, 0, 0, 0, 3, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 255, 255, 0, 1, - 0, 0, 136, 1, 0, 0, - 124, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 0, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 4, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 1, 0, 0, 0, - 12, 0, 0, 0, 155, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 76, 97, 121, 101, 114, 84, - 101, 120, 116, 117, 114, 101, - 83, 97, 109, 112, 108, 101, - 114, 76, 105, 110, 101, 97, - 114, 0, 116, 82, 71, 66, - 0, 80, 101, 114, 76, 97, - 121, 101, 114, 0, 155, 0, - 0, 0, 4, 0, 0, 0, - 188, 0, 0, 0, 112, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 1, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 44, 1, 0, 0, - 0, 0, 0, 0, 60, 1, - 0, 0, 16, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 44, 1, 0, 0, - 0, 0, 0, 0, 71, 1, - 0, 0, 32, 0, 0, 0, - 4, 0, 0, 0, 2, 0, - 0, 0, 88, 1, 0, 0, - 0, 0, 0, 0, 104, 1, - 0, 0, 48, 0, 0, 0, - 64, 0, 0, 0, 0, 0, - 0, 0, 120, 1, 0, 0, - 0, 0, 0, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 76, 97, 121, - 101, 114, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 3, 0, 3, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 57, 46, 50, - 55, 46, 57, 53, 50, 46, - 51, 48, 50, 50, 0, 171, - 171, 171, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 83, 86, 95, 80, 111, 115, - 105, 116, 105, 111, 110, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 97, 114, 103, 101, - 116, 0, 171, 171, 232, 34, - 0, 0, 0, 0, 0, 0, - 82, 101, 110, 100, 101, 114, - 82, 71, 66, 65, 76, 97, - 121, 101, 114, 78, 111, 110, - 80, 114, 101, 109, 117, 108, - 0, 4, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 3, - 0, 0, 0, 255, 255, 255, - 255, 24, 7, 0, 0, 68, - 88, 66, 67, 254, 249, 65, - 252, 64, 46, 192, 119, 73, - 197, 161, 234, 24, 1, 194, - 131, 1, 0, 0, 0, 24, - 7, 0, 0, 6, 0, 0, - 0, 56, 0, 0, 0, 164, - 1, 0, 0, 148, 3, 0, - 0, 16, 4, 0, 0, 140, - 6, 0, 0, 192, 6, 0, - 0, 65, 111, 110, 57, 100, - 1, 0, 0, 100, 1, 0, - 0, 0, 2, 254, 255, 0, - 1, 0, 0, 100, 0, 0, - 0, 5, 0, 36, 0, 0, - 0, 96, 0, 0, 0, 96, - 0, 0, 0, 36, 0, 1, - 0, 96, 0, 0, 0, 0, - 0, 2, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 3, - 0, 2, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 6, - 0, 1, 0, 5, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 1, 0, 6, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 4, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 1, 2, 254, 255, 31, - 0, 0, 2, 5, 0, 0, - 128, 0, 0, 15, 144, 4, - 0, 0, 4, 0, 0, 3, - 224, 0, 0, 228, 144, 1, - 0, 238, 160, 1, 0, 228, - 160, 4, 0, 0, 4, 0, - 0, 1, 128, 0, 0, 85, - 144, 2, 0, 255, 160, 2, - 0, 85, 160, 5, 0, 0, - 3, 0, 0, 15, 128, 0, - 0, 0, 128, 4, 0, 228, - 160, 4, 0, 0, 4, 1, - 0, 1, 128, 0, 0, 0, - 144, 2, 0, 170, 160, 2, - 0, 0, 160, 4, 0, 0, - 4, 0, 0, 15, 128, 3, - 0, 228, 160, 1, 0, 0, - 128, 0, 0, 228, 128, 2, - 0, 0, 3, 0, 0, 15, - 128, 0, 0, 228, 128, 5, - 0, 228, 160, 2, 0, 0, - 3, 0, 0, 15, 128, 0, - 0, 228, 128, 6, 0, 228, - 161, 5, 0, 0, 3, 1, - 0, 15, 128, 0, 0, 85, - 128, 8, 0, 228, 160, 4, - 0, 0, 4, 1, 0, 15, - 128, 7, 0, 228, 160, 0, - 0, 0, 128, 1, 0, 228, - 128, 4, 0, 0, 4, 1, - 0, 15, 128, 9, 0, 228, - 160, 0, 0, 170, 128, 1, - 0, 228, 128, 4, 0, 0, - 4, 0, 0, 15, 128, 10, - 0, 228, 160, 0, 0, 255, - 128, 1, 0, 228, 128, 4, - 0, 0, 4, 0, 0, 3, - 192, 0, 0, 255, 128, 0, - 0, 228, 160, 0, 0, 228, - 128, 1, 0, 0, 2, 0, - 0, 12, 192, 0, 0, 228, - 128, 255, 255, 0, 0, 83, - 72, 68, 82, 232, 1, 0, - 0, 64, 0, 1, 0, 122, - 0, 0, 0, 89, 0, 0, - 4, 70, 142, 32, 0, 0, - 0, 0, 0, 7, 0, 0, - 0, 89, 0, 0, 4, 70, - 142, 32, 0, 1, 0, 0, - 0, 1, 0, 0, 0, 89, - 0, 0, 4, 70, 142, 32, - 0, 2, 0, 0, 0, 4, - 0, 0, 0, 95, 0, 0, - 3, 50, 16, 16, 0, 0, - 0, 0, 0, 103, 0, 0, - 4, 242, 32, 16, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 101, 0, 0, 3, 50, - 32, 16, 0, 1, 0, 0, - 0, 104, 0, 0, 2, 2, - 0, 0, 0, 50, 0, 0, - 11, 50, 0, 16, 0, 0, - 0, 0, 0, 70, 16, 16, - 0, 0, 0, 0, 0, 230, - 138, 32, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 70, - 128, 32, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 56, - 0, 0, 8, 242, 0, 16, - 0, 1, 0, 0, 0, 86, - 5, 16, 0, 0, 0, 0, - 0, 70, 142, 32, 0, 0, - 0, 0, 0, 4, 0, 0, - 0, 50, 0, 0, 10, 242, - 0, 16, 0, 0, 0, 0, - 0, 70, 142, 32, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 6, 0, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 1, 0, 0, 0, 0, - 0, 0, 8, 242, 0, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 0, 0, 0, - 0, 70, 142, 32, 0, 0, - 0, 0, 0, 6, 0, 0, - 0, 0, 0, 0, 9, 242, - 0, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 128, 65, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 56, 0, 0, 8, 242, - 0, 16, 0, 1, 0, 0, - 0, 86, 5, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 0, 2, 0, 0, 0, 1, - 0, 0, 0, 50, 0, 0, - 10, 242, 0, 16, 0, 1, - 0, 0, 0, 70, 142, 32, - 0, 2, 0, 0, 0, 0, - 0, 0, 0, 6, 0, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 1, 0, 0, - 0, 50, 0, 0, 10, 242, - 0, 16, 0, 1, 0, 0, - 0, 70, 142, 32, 0, 2, - 0, 0, 0, 2, 0, 0, - 0, 166, 10, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 1, 0, 0, 0, 50, - 0, 0, 10, 242, 32, 16, - 0, 0, 0, 0, 0, 70, - 142, 32, 0, 2, 0, 0, - 0, 3, 0, 0, 0, 246, - 15, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 1, - 0, 0, 0, 50, 0, 0, - 11, 50, 32, 16, 0, 1, - 0, 0, 0, 70, 16, 16, - 0, 0, 0, 0, 0, 230, - 138, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 70, - 128, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 62, - 0, 0, 1, 83, 84, 65, - 84, 116, 0, 0, 0, 11, - 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 3, - 0, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 82, 68, 69, 70, 116, - 2, 0, 0, 3, 0, 0, - 0, 168, 0, 0, 0, 3, - 0, 0, 0, 28, 0, 0, - 0, 0, 4, 254, 255, 0, - 1, 0, 0, 64, 2, 0, - 0, 124, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 133, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 152, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 80, 101, 114, 76, 97, - 121, 101, 114, 0, 80, 101, - 114, 79, 99, 99, 97, 115, - 105, 111, 110, 97, 108, 76, - 97, 121, 101, 114, 0, 80, - 101, 114, 76, 97, 121, 101, - 114, 77, 97, 110, 97, 103, - 101, 114, 0, 124, 0, 0, - 0, 4, 0, 0, 0, 240, - 0, 0, 0, 112, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 133, 0, 0, - 0, 2, 0, 0, 0, 188, - 1, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 152, 0, 0, - 0, 1, 0, 0, 0, 28, - 2, 0, 0, 64, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 80, 1, 0, - 0, 0, 0, 0, 0, 16, - 0, 0, 0, 2, 0, 0, - 0, 96, 1, 0, 0, 0, - 0, 0, 0, 112, 1, 0, - 0, 16, 0, 0, 0, 16, - 0, 0, 0, 2, 0, 0, - 0, 96, 1, 0, 0, 0, - 0, 0, 0, 123, 1, 0, - 0, 32, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 140, 1, 0, 0, 0, - 0, 0, 0, 156, 1, 0, - 0, 48, 0, 0, 0, 64, - 0, 0, 0, 2, 0, 0, - 0, 172, 1, 0, 0, 0, - 0, 0, 0, 118, 84, 101, - 120, 116, 117, 114, 101, 67, - 111, 111, 114, 100, 115, 0, - 171, 1, 0, 3, 0, 1, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, - 76, 97, 121, 101, 114, 81, - 117, 97, 100, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 171, 0, 0, 3, - 0, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 109, 76, 97, 121, 101, - 114, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 0, 3, - 0, 3, 0, 4, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 236, 1, 0, - 0, 0, 0, 0, 0, 16, - 0, 0, 0, 2, 0, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 16, 2, 0, - 0, 16, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 118, 82, 101, - 110, 100, 101, 114, 84, 97, - 114, 103, 101, 116, 79, 102, - 102, 115, 101, 116, 0, 1, - 0, 3, 0, 1, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 102, 76, 97, - 121, 101, 114, 67, 111, 108, - 111, 114, 0, 52, 2, 0, - 0, 0, 0, 0, 0, 64, - 0, 0, 0, 2, 0, 0, - 0, 172, 1, 0, 0, 0, - 0, 0, 0, 109, 80, 114, - 111, 106, 101, 99, 116, 105, - 111, 110, 0, 77, 105, 99, - 114, 111, 115, 111, 102, 116, - 32, 40, 82, 41, 32, 72, - 76, 83, 76, 32, 83, 104, - 97, 100, 101, 114, 32, 67, - 111, 109, 112, 105, 108, 101, - 114, 32, 57, 46, 50, 55, - 46, 57, 53, 50, 46, 51, - 48, 50, 50, 0, 171, 171, - 171, 73, 83, 71, 78, 44, - 0, 0, 0, 1, 0, 0, - 0, 8, 0, 0, 0, 32, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, - 0, 3, 3, 0, 0, 80, - 79, 83, 73, 84, 73, 79, - 78, 0, 171, 171, 171, 79, - 83, 71, 78, 80, 0, 0, - 0, 2, 0, 0, 0, 8, - 0, 0, 0, 56, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 15, - 0, 0, 0, 68, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 1, 0, 0, 0, 3, - 12, 0, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 171, 171, 171, 109, 39, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 48, - 4, 0, 0, 68, 88, 66, - 67, 135, 78, 217, 178, 82, - 246, 12, 136, 40, 218, 112, - 36, 133, 68, 115, 32, 1, - 0, 0, 0, 48, 4, 0, - 0, 6, 0, 0, 0, 56, - 0, 0, 0, 192, 0, 0, - 0, 100, 1, 0, 0, 224, - 1, 0, 0, 164, 3, 0, - 0, 252, 3, 0, 0, 65, - 111, 110, 57, 128, 0, 0, - 0, 128, 0, 0, 0, 0, - 2, 255, 255, 76, 0, 0, - 0, 52, 0, 0, 0, 1, - 0, 40, 0, 0, 0, 52, - 0, 0, 0, 52, 0, 1, - 0, 36, 0, 0, 0, 52, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, - 2, 255, 255, 31, 0, 0, - 2, 0, 0, 0, 128, 0, - 0, 3, 176, 31, 0, 0, - 2, 0, 0, 0, 144, 0, - 8, 15, 160, 66, 0, 0, - 3, 0, 0, 15, 128, 0, - 0, 228, 176, 0, 8, 228, - 160, 5, 0, 0, 3, 0, - 0, 15, 128, 0, 0, 228, - 128, 0, 0, 0, 160, 1, - 0, 0, 2, 0, 8, 15, - 128, 0, 0, 228, 128, 255, - 255, 0, 0, 83, 72, 68, - 82, 156, 0, 0, 0, 64, - 0, 0, 0, 39, 0, 0, - 0, 89, 0, 0, 4, 70, - 142, 32, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 90, - 0, 0, 3, 0, 96, 16, - 0, 0, 0, 0, 0, 88, - 24, 0, 4, 0, 112, 16, - 0, 0, 0, 0, 0, 85, - 85, 0, 0, 98, 16, 0, - 3, 50, 16, 16, 0, 1, - 0, 0, 0, 101, 0, 0, - 3, 242, 32, 16, 0, 0, - 0, 0, 0, 104, 0, 0, - 2, 1, 0, 0, 0, 69, - 0, 0, 9, 242, 0, 16, - 0, 0, 0, 0, 0, 70, - 16, 16, 0, 1, 0, 0, - 0, 70, 126, 16, 0, 0, - 0, 0, 0, 0, 96, 16, - 0, 0, 0, 0, 0, 56, - 0, 0, 8, 242, 32, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 0, 0, 0, - 0, 6, 128, 32, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 62, 0, 0, 1, 83, - 84, 65, 84, 116, 0, 0, - 0, 3, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 82, 68, 69, - 70, 188, 1, 0, 0, 1, - 0, 0, 0, 164, 0, 0, - 0, 3, 0, 0, 0, 28, - 0, 0, 0, 0, 4, 255, - 255, 0, 1, 0, 0, 136, - 1, 0, 0, 124, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 150, - 0, 0, 0, 2, 0, 0, - 0, 5, 0, 0, 0, 4, - 0, 0, 0, 255, 255, 255, - 255, 0, 0, 0, 0, 1, - 0, 0, 0, 12, 0, 0, - 0, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 76, 97, 121, - 101, 114, 84, 101, 120, 116, - 117, 114, 101, 83, 97, 109, - 112, 108, 101, 114, 76, 105, - 110, 101, 97, 114, 0, 116, - 82, 71, 66, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 0, 155, 0, 0, 0, 4, - 0, 0, 0, 188, 0, 0, - 0, 112, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 28, 1, 0, 0, 0, - 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 44, - 1, 0, 0, 0, 0, 0, - 0, 60, 1, 0, 0, 16, - 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 44, - 1, 0, 0, 0, 0, 0, - 0, 71, 1, 0, 0, 32, - 0, 0, 0, 4, 0, 0, - 0, 2, 0, 0, 0, 88, - 1, 0, 0, 0, 0, 0, - 0, 104, 1, 0, 0, 48, - 0, 0, 0, 64, 0, 0, - 0, 0, 0, 0, 0, 120, - 1, 0, 0, 0, 0, 0, - 0, 118, 84, 101, 120, 116, - 117, 114, 101, 67, 111, 111, - 114, 100, 115, 0, 171, 1, - 0, 3, 0, 1, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 118, 76, 97, - 121, 101, 114, 81, 117, 97, - 100, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 171, 0, 0, 3, 0, 1, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 109, - 76, 97, 121, 101, 114, 84, - 114, 97, 110, 115, 102, 111, - 114, 109, 0, 3, 0, 3, - 0, 4, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 55, 46, 57, - 53, 50, 46, 51, 48, 50, - 50, 0, 171, 171, 171, 73, - 83, 71, 78, 80, 0, 0, - 0, 2, 0, 0, 0, 8, - 0, 0, 0, 56, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 15, - 0, 0, 0, 68, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 1, 0, 0, 0, 3, - 3, 0, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 171, 171, 171, 79, 83, 71, - 78, 44, 0, 0, 0, 1, - 0, 0, 0, 8, 0, 0, - 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 15, 0, 0, - 0, 83, 86, 95, 84, 97, - 114, 103, 101, 116, 0, 171, - 171, 157, 46, 0, 0, 0, - 0, 0, 0, 82, 101, 110, - 100, 101, 114, 82, 71, 66, - 65, 76, 97, 121, 101, 114, - 80, 114, 101, 109, 117, 108, - 80, 111, 105, 110, 116, 0, - 4, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 255, 255, 255, 255, - 24, 7, 0, 0, 68, 88, - 66, 67, 254, 249, 65, 252, - 64, 46, 192, 119, 73, 197, - 161, 234, 24, 1, 194, 131, - 1, 0, 0, 0, 24, 7, - 0, 0, 6, 0, 0, 0, - 56, 0, 0, 0, 164, 1, - 0, 0, 148, 3, 0, 0, - 16, 4, 0, 0, 140, 6, - 0, 0, 192, 6, 0, 0, - 65, 111, 110, 57, 100, 1, - 0, 0, 100, 1, 0, 0, - 0, 2, 254, 255, 0, 1, - 0, 0, 100, 0, 0, 0, - 5, 0, 36, 0, 0, 0, - 96, 0, 0, 0, 96, 0, - 0, 0, 36, 0, 1, 0, - 96, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 2, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 6, 0, - 1, 0, 5, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 1, 0, 6, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 4, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 254, 255, 31, 0, - 0, 2, 5, 0, 0, 128, - 0, 0, 15, 144, 4, 0, - 0, 4, 0, 0, 3, 224, - 0, 0, 228, 144, 1, 0, - 238, 160, 1, 0, 228, 160, - 4, 0, 0, 4, 0, 0, - 1, 128, 0, 0, 85, 144, - 2, 0, 255, 160, 2, 0, - 85, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 0, 128, 4, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 1, 128, 0, 0, 0, 144, - 2, 0, 170, 160, 2, 0, - 0, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 3, 0, - 228, 160, 1, 0, 0, 128, - 0, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 5, 0, - 228, 160, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 6, 0, 228, 161, - 5, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 85, 128, - 8, 0, 228, 160, 4, 0, - 0, 4, 1, 0, 15, 128, - 7, 0, 228, 160, 0, 0, - 0, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 15, 128, 9, 0, 228, 160, - 0, 0, 170, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 15, 128, 10, 0, - 228, 160, 0, 0, 255, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 3, 192, - 0, 0, 255, 128, 0, 0, - 228, 160, 0, 0, 228, 128, - 1, 0, 0, 2, 0, 0, - 12, 192, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 232, 1, 0, 0, - 64, 0, 1, 0, 122, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 2, 0, 0, 0, 4, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 0, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 1, 0, 0, 0, - 104, 0, 0, 2, 2, 0, - 0, 0, 50, 0, 0, 11, - 50, 0, 16, 0, 0, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 230, 138, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 56, 0, - 0, 8, 242, 0, 16, 0, - 1, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 0, 0, - 0, 8, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 0, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 5, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 166, 10, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 2, 0, 0, 0, - 3, 0, 0, 0, 246, 15, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 11, - 50, 32, 16, 0, 1, 0, - 0, 0, 70, 16, 16, 0, - 0, 0, 0, 0, 230, 138, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 70, 128, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 116, 0, 0, 0, 11, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 82, 68, 69, 70, 116, 2, - 0, 0, 3, 0, 0, 0, - 168, 0, 0, 0, 3, 0, - 0, 0, 28, 0, 0, 0, - 0, 4, 254, 255, 0, 1, - 0, 0, 64, 2, 0, 0, - 124, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 133, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 152, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 80, 101, 114, 76, 97, 121, - 101, 114, 0, 80, 101, 114, - 79, 99, 99, 97, 115, 105, - 111, 110, 97, 108, 76, 97, - 121, 101, 114, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 77, 97, 110, 97, 103, 101, - 114, 0, 124, 0, 0, 0, - 4, 0, 0, 0, 240, 0, - 0, 0, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 133, 0, 0, 0, - 2, 0, 0, 0, 188, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 152, 0, 0, 0, - 1, 0, 0, 0, 28, 2, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 80, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 112, 1, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 96, 1, 0, 0, 0, 0, - 0, 0, 123, 1, 0, 0, - 32, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 140, 1, 0, 0, 0, 0, - 0, 0, 156, 1, 0, 0, - 48, 0, 0, 0, 64, 0, - 0, 0, 2, 0, 0, 0, - 172, 1, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 102, 76, 97, - 121, 101, 114, 79, 112, 97, - 99, 105, 116, 121, 0, 171, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 236, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 2, 0, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 16, 2, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 67, 111, 108, 111, - 114, 0, 52, 2, 0, 0, - 0, 0, 0, 0, 64, 0, - 0, 0, 2, 0, 0, 0, - 172, 1, 0, 0, 0, 0, - 0, 0, 109, 80, 114, 111, - 106, 101, 99, 116, 105, 111, - 110, 0, 77, 105, 99, 114, - 111, 115, 111, 102, 116, 32, - 40, 82, 41, 32, 72, 76, - 83, 76, 32, 83, 104, 97, - 100, 101, 114, 32, 67, 111, - 109, 112, 105, 108, 101, 114, - 32, 57, 46, 50, 55, 46, - 57, 53, 50, 46, 51, 48, - 50, 50, 0, 171, 171, 171, - 73, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 3, 3, 0, 0, 80, 79, - 83, 73, 84, 73, 79, 78, - 0, 171, 171, 171, 79, 83, - 71, 78, 80, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 68, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 12, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 171, 171, 36, 51, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 48, 4, - 0, 0, 68, 88, 66, 67, - 15, 77, 243, 211, 185, 20, - 200, 151, 80, 95, 178, 168, - 167, 229, 221, 45, 1, 0, - 0, 0, 48, 4, 0, 0, - 6, 0, 0, 0, 56, 0, - 0, 0, 192, 0, 0, 0, - 100, 1, 0, 0, 224, 1, - 0, 0, 164, 3, 0, 0, - 252, 3, 0, 0, 65, 111, - 110, 57, 128, 0, 0, 0, - 128, 0, 0, 0, 0, 2, - 255, 255, 76, 0, 0, 0, - 52, 0, 0, 0, 1, 0, - 40, 0, 0, 0, 52, 0, - 0, 0, 52, 0, 1, 0, - 36, 0, 0, 0, 52, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 2, - 255, 255, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0, 83, 72, 68, 82, - 156, 0, 0, 0, 64, 0, - 0, 0, 39, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 90, 0, - 0, 3, 0, 96, 16, 0, - 0, 0, 0, 0, 88, 24, - 0, 4, 0, 112, 16, 0, - 0, 0, 0, 0, 85, 85, - 0, 0, 98, 16, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 104, 0, 0, 2, - 1, 0, 0, 0, 69, 0, - 0, 9, 242, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 1, 0, 0, 0, - 70, 126, 16, 0, 0, 0, - 0, 0, 0, 96, 16, 0, - 0, 0, 0, 0, 56, 0, - 0, 8, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 0, 0, 0, 0, - 6, 128, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 188, 1, 0, 0, 1, 0, - 0, 0, 164, 0, 0, 0, - 3, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 255, 255, - 0, 1, 0, 0, 136, 1, - 0, 0, 124, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 149, 0, - 0, 0, 2, 0, 0, 0, - 5, 0, 0, 0, 4, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 154, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 76, 97, 121, 101, - 114, 84, 101, 120, 116, 117, - 114, 101, 83, 97, 109, 112, - 108, 101, 114, 80, 111, 105, - 110, 116, 0, 116, 82, 71, - 66, 0, 80, 101, 114, 76, - 97, 121, 101, 114, 0, 171, - 154, 0, 0, 0, 4, 0, - 0, 0, 188, 0, 0, 0, - 112, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 28, 1, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 1, - 0, 0, 0, 0, 0, 0, - 60, 1, 0, 0, 16, 0, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 44, 1, - 0, 0, 0, 0, 0, 0, - 71, 1, 0, 0, 32, 0, - 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 88, 1, - 0, 0, 0, 0, 0, 0, - 104, 1, 0, 0, 48, 0, - 0, 0, 64, 0, 0, 0, - 0, 0, 0, 0, 120, 1, - 0, 0, 0, 0, 0, 0, - 118, 84, 101, 120, 116, 117, - 114, 101, 67, 111, 111, 114, - 100, 115, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 118, 76, 97, 121, - 101, 114, 81, 117, 97, 100, - 0, 102, 76, 97, 121, 101, - 114, 79, 112, 97, 99, 105, - 116, 121, 0, 171, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 76, - 97, 121, 101, 114, 84, 114, - 97, 110, 115, 102, 111, 114, - 109, 0, 3, 0, 3, 0, - 4, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 55, 46, 57, 53, - 50, 46, 51, 48, 50, 50, - 0, 171, 171, 171, 73, 83, - 71, 78, 80, 0, 0, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 68, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 3, 3, - 0, 0, 83, 86, 95, 80, - 111, 115, 105, 116, 105, 111, - 110, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 171, - 171, 171, 79, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 83, 86, 95, 84, 97, 114, - 103, 101, 116, 0, 171, 171, - 84, 58, 0, 0, 0, 0, - 0, 0, 82, 101, 110, 100, - 101, 114, 82, 71, 66, 65, - 76, 97, 121, 101, 114, 78, - 111, 110, 80, 114, 101, 109, - 117, 108, 80, 111, 105, 110, - 116, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 255, 255, - 255, 255, 24, 7, 0, 0, - 68, 88, 66, 67, 254, 249, - 65, 252, 64, 46, 192, 119, - 73, 197, 161, 234, 24, 1, - 194, 131, 1, 0, 0, 0, - 24, 7, 0, 0, 6, 0, - 0, 0, 56, 0, 0, 0, - 164, 1, 0, 0, 148, 3, - 0, 0, 16, 4, 0, 0, - 140, 6, 0, 0, 192, 6, - 0, 0, 65, 111, 110, 57, - 100, 1, 0, 0, 100, 1, - 0, 0, 0, 2, 254, 255, - 0, 1, 0, 0, 100, 0, - 0, 0, 5, 0, 36, 0, - 0, 0, 96, 0, 0, 0, - 96, 0, 0, 0, 36, 0, - 1, 0, 96, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 2, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 6, 0, 1, 0, 5, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 6, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 4, 0, 7, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 254, 255, - 31, 0, 0, 2, 5, 0, - 0, 128, 0, 0, 15, 144, - 4, 0, 0, 4, 0, 0, - 3, 224, 0, 0, 228, 144, - 1, 0, 238, 160, 1, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 1, 128, 0, 0, - 85, 144, 2, 0, 255, 160, - 2, 0, 85, 160, 5, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 0, 128, 4, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 1, 128, 0, 0, - 0, 144, 2, 0, 170, 160, - 2, 0, 0, 160, 4, 0, - 0, 4, 0, 0, 15, 128, - 3, 0, 228, 160, 1, 0, - 0, 128, 0, 0, 228, 128, - 2, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 5, 0, 228, 160, 2, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 128, 6, 0, - 228, 161, 5, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 85, 128, 8, 0, 228, 160, - 4, 0, 0, 4, 1, 0, - 15, 128, 7, 0, 228, 160, - 0, 0, 0, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 1, 0, 15, 128, 9, 0, - 228, 160, 0, 0, 170, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 10, 0, 228, 160, 0, 0, - 255, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 3, 192, 0, 0, 255, 128, - 0, 0, 228, 160, 0, 0, - 228, 128, 1, 0, 0, 2, - 0, 0, 12, 192, 0, 0, - 228, 128, 255, 255, 0, 0, - 83, 72, 68, 82, 232, 1, - 0, 0, 64, 0, 1, 0, - 122, 0, 0, 0, 89, 0, - 0, 4, 70, 142, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 89, 0, 0, 4, 70, 142, - 32, 0, 2, 0, 0, 0, - 4, 0, 0, 0, 95, 0, - 0, 3, 50, 16, 16, 0, - 0, 0, 0, 0, 103, 0, - 0, 4, 242, 32, 16, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 1, 0, - 0, 0, 104, 0, 0, 2, - 2, 0, 0, 0, 50, 0, - 0, 11, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 5, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 0, 0, 0, 8, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 70, 142, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 0, 9, - 242, 0, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 128, 65, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 1, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 142, - 32, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 1, 0, 0, 0, 70, 142, - 32, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 6, 0, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 1, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 70, 142, 32, 0, - 2, 0, 0, 0, 2, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 142, 32, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 246, 15, 16, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 50, 0, - 0, 11, 50, 32, 16, 0, - 1, 0, 0, 0, 70, 16, - 16, 0, 0, 0, 0, 0, - 230, 138, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 70, 128, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 11, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 82, 68, 69, 70, - 116, 2, 0, 0, 3, 0, - 0, 0, 168, 0, 0, 0, - 3, 0, 0, 0, 28, 0, - 0, 0, 0, 4, 254, 255, - 0, 1, 0, 0, 64, 2, - 0, 0, 124, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 133, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 152, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 80, 101, 114, 76, - 97, 121, 101, 114, 0, 80, - 101, 114, 79, 99, 99, 97, - 115, 105, 111, 110, 97, 108, - 76, 97, 121, 101, 114, 0, - 80, 101, 114, 76, 97, 121, - 101, 114, 77, 97, 110, 97, - 103, 101, 114, 0, 124, 0, - 0, 0, 4, 0, 0, 0, - 240, 0, 0, 0, 112, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 133, 0, - 0, 0, 2, 0, 0, 0, - 188, 1, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 152, 0, - 0, 0, 1, 0, 0, 0, - 28, 2, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 1, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 96, 1, 0, 0, - 0, 0, 0, 0, 112, 1, - 0, 0, 16, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 96, 1, 0, 0, - 0, 0, 0, 0, 123, 1, - 0, 0, 32, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 140, 1, 0, 0, - 0, 0, 0, 0, 156, 1, - 0, 0, 48, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 172, 1, 0, 0, - 0, 0, 0, 0, 118, 84, - 101, 120, 116, 117, 114, 101, - 67, 111, 111, 114, 100, 115, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 118, 76, 97, 121, 101, 114, - 81, 117, 97, 100, 0, 102, - 76, 97, 121, 101, 114, 79, - 112, 97, 99, 105, 116, 121, - 0, 171, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 109, 76, 97, 121, - 101, 114, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 3, 0, 3, 0, 4, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 1, - 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 2, 0, - 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 16, 2, - 0, 0, 16, 0, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 118, 82, - 101, 110, 100, 101, 114, 84, - 97, 114, 103, 101, 116, 79, - 102, 102, 115, 101, 116, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 67, 111, - 108, 111, 114, 0, 52, 2, - 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 0, - 0, 0, 172, 1, 0, 0, - 0, 0, 0, 0, 109, 80, - 114, 111, 106, 101, 99, 116, - 105, 111, 110, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 57, 46, 50, - 55, 46, 57, 53, 50, 46, - 51, 48, 50, 50, 0, 171, - 171, 171, 73, 83, 71, 78, - 44, 0, 0, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 0, 0, - 80, 79, 83, 73, 84, 73, - 79, 78, 0, 171, 171, 171, - 79, 83, 71, 78, 80, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 68, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 12, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 171, 171, 222, 62, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 48, 4, 0, 0, 68, 88, - 66, 67, 15, 77, 243, 211, - 185, 20, 200, 151, 80, 95, - 178, 168, 167, 229, 221, 45, - 1, 0, 0, 0, 48, 4, - 0, 0, 6, 0, 0, 0, - 56, 0, 0, 0, 192, 0, - 0, 0, 100, 1, 0, 0, - 224, 1, 0, 0, 164, 3, - 0, 0, 252, 3, 0, 0, - 65, 111, 110, 57, 128, 0, - 0, 0, 128, 0, 0, 0, - 0, 2, 255, 255, 76, 0, - 0, 0, 52, 0, 0, 0, - 1, 0, 40, 0, 0, 0, - 52, 0, 0, 0, 52, 0, - 1, 0, 36, 0, 0, 0, - 52, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 1, 2, 255, 255, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 176, 0, 8, - 228, 160, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 0, 0, 0, 160, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0, 83, 72, - 68, 82, 156, 0, 0, 0, - 64, 0, 0, 0, 39, 0, - 0, 0, 89, 0, 0, 4, - 70, 142, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 90, 0, 0, 3, 0, 96, - 16, 0, 0, 0, 0, 0, - 88, 24, 0, 4, 0, 112, - 16, 0, 0, 0, 0, 0, - 85, 85, 0, 0, 98, 16, - 0, 3, 50, 16, 16, 0, - 1, 0, 0, 0, 101, 0, - 0, 3, 242, 32, 16, 0, - 0, 0, 0, 0, 104, 0, - 0, 2, 1, 0, 0, 0, - 69, 0, 0, 9, 242, 0, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 56, 0, 0, 8, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 14, 16, 0, 0, 0, - 0, 0, 6, 128, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 68, - 69, 70, 188, 1, 0, 0, - 1, 0, 0, 0, 164, 0, - 0, 0, 3, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 136, 1, 0, 0, 124, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 149, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 1, 0, 0, 0, 12, 0, - 0, 0, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 76, 97, - 121, 101, 114, 84, 101, 120, - 116, 117, 114, 101, 83, 97, - 109, 112, 108, 101, 114, 80, - 111, 105, 110, 116, 0, 116, - 82, 71, 66, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 0, 171, 154, 0, 0, 0, - 4, 0, 0, 0, 188, 0, - 0, 0, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 28, 1, 0, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 44, 1, 0, 0, 0, 0, - 0, 0, 60, 1, 0, 0, - 16, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 44, 1, 0, 0, 0, 0, - 0, 0, 71, 1, 0, 0, - 32, 0, 0, 0, 4, 0, - 0, 0, 2, 0, 0, 0, - 88, 1, 0, 0, 0, 0, - 0, 0, 104, 1, 0, 0, - 48, 0, 0, 0, 64, 0, - 0, 0, 0, 0, 0, 0, - 120, 1, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 171, - 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 102, 76, 97, - 121, 101, 114, 79, 112, 97, - 99, 105, 116, 121, 0, 171, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 109, 76, 97, 121, 101, 114, - 84, 114, 97, 110, 115, 102, - 111, 114, 109, 0, 3, 0, - 3, 0, 4, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 77, 105, 99, 114, - 111, 115, 111, 102, 116, 32, - 40, 82, 41, 32, 72, 76, - 83, 76, 32, 83, 104, 97, - 100, 101, 114, 32, 67, 111, - 109, 112, 105, 108, 101, 114, - 32, 57, 46, 50, 55, 46, - 57, 53, 50, 46, 51, 48, - 50, 50, 0, 171, 171, 171, - 73, 83, 71, 78, 80, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 68, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 3, 0, 0, 83, 86, - 95, 80, 111, 115, 105, 116, - 105, 111, 110, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 171, 171, 79, 83, - 71, 78, 44, 0, 0, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 83, 86, 95, 84, - 97, 114, 103, 101, 116, 0, - 171, 171, 14, 70, 0, 0, - 0, 0, 0, 0, 82, 101, - 110, 100, 101, 114, 89, 67, - 98, 67, 114, 76, 97, 121, - 101, 114, 0, 4, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 3, 0, 0, 0, 255, - 255, 255, 255, 24, 7, 0, - 0, 68, 88, 66, 67, 254, - 249, 65, 252, 64, 46, 192, - 119, 73, 197, 161, 234, 24, - 1, 194, 131, 1, 0, 0, - 0, 24, 7, 0, 0, 6, - 0, 0, 0, 56, 0, 0, - 0, 164, 1, 0, 0, 148, - 3, 0, 0, 16, 4, 0, - 0, 140, 6, 0, 0, 192, - 6, 0, 0, 65, 111, 110, - 57, 100, 1, 0, 0, 100, - 1, 0, 0, 0, 2, 254, - 255, 0, 1, 0, 0, 100, - 0, 0, 0, 5, 0, 36, - 0, 0, 0, 96, 0, 0, - 0, 96, 0, 0, 0, 36, - 0, 1, 0, 96, 0, 0, - 0, 0, 0, 2, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 2, 0, 3, - 0, 0, 0, 0, 0, 0, - 0, 6, 0, 1, 0, 5, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 6, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 4, 0, 7, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 2, 254, - 255, 31, 0, 0, 2, 5, - 0, 0, 128, 0, 0, 15, - 144, 4, 0, 0, 4, 0, - 0, 3, 224, 0, 0, 228, - 144, 1, 0, 238, 160, 1, - 0, 228, 160, 4, 0, 0, - 4, 0, 0, 1, 128, 0, - 0, 85, 144, 2, 0, 255, - 160, 2, 0, 85, 160, 5, - 0, 0, 3, 0, 0, 15, - 128, 0, 0, 0, 128, 4, - 0, 228, 160, 4, 0, 0, - 4, 1, 0, 1, 128, 0, - 0, 0, 144, 2, 0, 170, - 160, 2, 0, 0, 160, 4, - 0, 0, 4, 0, 0, 15, - 128, 3, 0, 228, 160, 1, - 0, 0, 128, 0, 0, 228, - 128, 2, 0, 0, 3, 0, - 0, 15, 128, 0, 0, 228, - 128, 5, 0, 228, 160, 2, - 0, 0, 3, 0, 0, 15, - 128, 0, 0, 228, 128, 6, - 0, 228, 161, 5, 0, 0, - 3, 1, 0, 15, 128, 0, - 0, 85, 128, 8, 0, 228, - 160, 4, 0, 0, 4, 1, - 0, 15, 128, 7, 0, 228, - 160, 0, 0, 0, 128, 1, - 0, 228, 128, 4, 0, 0, - 4, 1, 0, 15, 128, 9, - 0, 228, 160, 0, 0, 170, - 128, 1, 0, 228, 128, 4, - 0, 0, 4, 0, 0, 15, - 128, 10, 0, 228, 160, 0, - 0, 255, 128, 1, 0, 228, - 128, 4, 0, 0, 4, 0, - 0, 3, 192, 0, 0, 255, - 128, 0, 0, 228, 160, 0, - 0, 228, 128, 1, 0, 0, - 2, 0, 0, 12, 192, 0, - 0, 228, 128, 255, 255, 0, - 0, 83, 72, 68, 82, 232, - 1, 0, 0, 64, 0, 1, - 0, 122, 0, 0, 0, 89, - 0, 0, 4, 70, 142, 32, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 89, 0, 0, - 4, 70, 142, 32, 0, 1, - 0, 0, 0, 1, 0, 0, - 0, 89, 0, 0, 4, 70, - 142, 32, 0, 2, 0, 0, - 0, 4, 0, 0, 0, 95, - 0, 0, 3, 50, 16, 16, - 0, 0, 0, 0, 0, 103, - 0, 0, 4, 242, 32, 16, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 101, 0, 0, - 3, 50, 32, 16, 0, 1, - 0, 0, 0, 104, 0, 0, - 2, 2, 0, 0, 0, 50, - 0, 0, 11, 50, 0, 16, - 0, 0, 0, 0, 0, 70, - 16, 16, 0, 0, 0, 0, - 0, 230, 138, 32, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 70, 128, 32, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 56, 0, 0, 8, 242, - 0, 16, 0, 1, 0, 0, - 0, 86, 5, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 0, 0, 0, 0, 0, 4, - 0, 0, 0, 50, 0, 0, - 10, 242, 0, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 0, 0, 0, 0, 0, 3, - 0, 0, 0, 6, 0, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 1, 0, 0, - 0, 0, 0, 0, 8, 242, - 0, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 0, 0, 0, 0, 0, 6, - 0, 0, 0, 0, 0, 0, - 9, 242, 0, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 0, 0, 0, 0, 70, - 142, 32, 128, 65, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, - 8, 242, 0, 16, 0, 1, - 0, 0, 0, 86, 5, 16, - 0, 0, 0, 0, 0, 70, - 142, 32, 0, 2, 0, 0, - 0, 1, 0, 0, 0, 50, - 0, 0, 10, 242, 0, 16, - 0, 1, 0, 0, 0, 70, - 142, 32, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 6, - 0, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 1, - 0, 0, 0, 50, 0, 0, - 10, 242, 0, 16, 0, 1, - 0, 0, 0, 70, 142, 32, - 0, 2, 0, 0, 0, 2, - 0, 0, 0, 166, 10, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 1, 0, 0, - 0, 50, 0, 0, 10, 242, - 32, 16, 0, 0, 0, 0, - 0, 70, 142, 32, 0, 2, - 0, 0, 0, 3, 0, 0, - 0, 246, 15, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 1, 0, 0, 0, 50, - 0, 0, 11, 50, 32, 16, - 0, 1, 0, 0, 0, 70, - 16, 16, 0, 0, 0, 0, - 0, 230, 138, 32, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 70, 128, 32, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 1, 83, - 84, 65, 84, 116, 0, 0, - 0, 11, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 82, 68, 69, - 70, 116, 2, 0, 0, 3, - 0, 0, 0, 168, 0, 0, - 0, 3, 0, 0, 0, 28, - 0, 0, 0, 0, 4, 254, - 255, 0, 1, 0, 0, 64, - 2, 0, 0, 124, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 133, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 152, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 80, 101, 114, - 76, 97, 121, 101, 114, 0, - 80, 101, 114, 79, 99, 99, - 97, 115, 105, 111, 110, 97, - 108, 76, 97, 121, 101, 114, - 0, 80, 101, 114, 76, 97, - 121, 101, 114, 77, 97, 110, - 97, 103, 101, 114, 0, 124, - 0, 0, 0, 4, 0, 0, - 0, 240, 0, 0, 0, 112, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 133, - 0, 0, 0, 2, 0, 0, - 0, 188, 1, 0, 0, 32, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, - 0, 0, 0, 1, 0, 0, - 0, 28, 2, 0, 0, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 80, - 1, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 2, - 0, 0, 0, 96, 1, 0, - 0, 0, 0, 0, 0, 112, - 1, 0, 0, 16, 0, 0, - 0, 16, 0, 0, 0, 2, - 0, 0, 0, 96, 1, 0, - 0, 0, 0, 0, 0, 123, - 1, 0, 0, 32, 0, 0, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 140, 1, 0, - 0, 0, 0, 0, 0, 156, - 1, 0, 0, 48, 0, 0, - 0, 64, 0, 0, 0, 2, - 0, 0, 0, 172, 1, 0, - 0, 0, 0, 0, 0, 118, - 84, 101, 120, 116, 117, 114, - 101, 67, 111, 111, 114, 100, - 115, 0, 171, 1, 0, 3, - 0, 1, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 118, 76, 97, 121, 101, - 114, 81, 117, 97, 100, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 171, 0, - 0, 3, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 109, 76, 97, - 121, 101, 114, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 0, 3, 0, 3, 0, 4, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, - 1, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 2, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 16, - 2, 0, 0, 16, 0, 0, - 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 118, - 82, 101, 110, 100, 101, 114, - 84, 97, 114, 103, 101, 116, - 79, 102, 102, 115, 101, 116, - 0, 1, 0, 3, 0, 1, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, - 76, 97, 121, 101, 114, 67, - 111, 108, 111, 114, 0, 52, - 2, 0, 0, 0, 0, 0, - 0, 64, 0, 0, 0, 2, - 0, 0, 0, 172, 1, 0, - 0, 0, 0, 0, 0, 109, - 80, 114, 111, 106, 101, 99, - 116, 105, 111, 110, 0, 77, - 105, 99, 114, 111, 115, 111, - 102, 116, 32, 40, 82, 41, - 32, 72, 76, 83, 76, 32, - 83, 104, 97, 100, 101, 114, - 32, 67, 111, 109, 112, 105, - 108, 101, 114, 32, 57, 46, - 50, 55, 46, 57, 53, 50, - 46, 51, 48, 50, 50, 0, - 171, 171, 171, 73, 83, 71, - 78, 44, 0, 0, 0, 1, - 0, 0, 0, 8, 0, 0, - 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 3, 3, 0, - 0, 80, 79, 83, 73, 84, - 73, 79, 78, 0, 171, 171, - 171, 79, 83, 71, 78, 80, - 0, 0, 0, 2, 0, 0, - 0, 8, 0, 0, 0, 56, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 68, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, - 0, 0, 0, 1, 0, 0, - 0, 3, 12, 0, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 171, 171, 171, 139, - 74, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 64, 7, 0, 0, 68, - 88, 66, 67, 126, 75, 135, - 159, 85, 129, 194, 57, 1, - 1, 77, 205, 160, 221, 154, - 168, 1, 0, 0, 0, 64, - 7, 0, 0, 6, 0, 0, - 0, 56, 0, 0, 0, 220, - 1, 0, 0, 44, 4, 0, - 0, 168, 4, 0, 0, 180, - 6, 0, 0, 12, 7, 0, - 0, 65, 111, 110, 57, 156, - 1, 0, 0, 156, 1, 0, - 0, 0, 2, 255, 255, 96, - 1, 0, 0, 60, 0, 0, - 0, 1, 0, 48, 0, 0, - 0, 60, 0, 0, 0, 60, - 0, 3, 0, 36, 0, 0, - 0, 60, 0, 0, 0, 0, - 0, 1, 0, 1, 0, 2, - 0, 2, 0, 0, 0, 2, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 2, 255, - 255, 81, 0, 0, 5, 1, - 0, 15, 160, 0, 0, 0, - 191, 0, 0, 128, 189, 186, - 73, 204, 63, 197, 32, 80, - 63, 81, 0, 0, 5, 2, - 0, 15, 160, 244, 253, 148, - 63, 233, 38, 1, 64, 39, - 49, 200, 62, 0, 0, 128, - 63, 31, 0, 0, 2, 0, - 0, 0, 128, 0, 0, 3, - 176, 31, 0, 0, 2, 0, - 0, 0, 144, 0, 8, 15, - 160, 31, 0, 0, 2, 0, - 0, 0, 144, 1, 8, 15, - 160, 31, 0, 0, 2, 0, - 0, 0, 144, 2, 8, 15, - 160, 66, 0, 0, 3, 0, - 0, 15, 128, 0, 0, 228, - 176, 0, 8, 228, 160, 66, - 0, 0, 3, 1, 0, 15, - 128, 0, 0, 228, 176, 2, - 8, 228, 160, 2, 0, 0, - 3, 0, 0, 2, 128, 1, - 0, 0, 128, 1, 0, 0, - 160, 5, 0, 0, 3, 0, - 0, 6, 128, 0, 0, 85, - 128, 1, 0, 248, 160, 2, - 0, 0, 3, 0, 0, 1, - 128, 0, 0, 0, 128, 1, - 0, 85, 160, 4, 0, 0, - 4, 0, 0, 4, 128, 0, - 0, 0, 128, 2, 0, 0, - 160, 0, 0, 170, 129, 4, - 0, 0, 4, 1, 0, 1, - 128, 0, 0, 0, 128, 2, - 0, 0, 160, 0, 0, 85, - 128, 66, 0, 0, 3, 2, - 0, 15, 128, 0, 0, 228, - 176, 1, 8, 228, 160, 2, - 0, 0, 3, 0, 0, 2, - 128, 2, 0, 0, 128, 1, - 0, 0, 160, 4, 0, 0, - 4, 1, 0, 2, 128, 0, - 0, 85, 128, 2, 0, 170, - 161, 0, 0, 170, 128, 5, - 0, 0, 3, 0, 0, 2, - 128, 0, 0, 85, 128, 2, - 0, 85, 160, 4, 0, 0, - 4, 1, 0, 4, 128, 0, - 0, 0, 128, 2, 0, 0, - 160, 0, 0, 85, 128, 1, - 0, 0, 2, 1, 0, 8, - 128, 2, 0, 255, 160, 5, - 0, 0, 3, 0, 0, 15, - 128, 1, 0, 228, 128, 0, - 0, 0, 160, 1, 0, 0, - 2, 0, 8, 15, 128, 0, - 0, 228, 128, 255, 255, 0, - 0, 83, 72, 68, 82, 72, - 2, 0, 0, 64, 0, 0, - 0, 146, 0, 0, 0, 89, - 0, 0, 4, 70, 142, 32, - 0, 0, 0, 0, 0, 3, - 0, 0, 0, 90, 0, 0, - 3, 0, 96, 16, 0, 0, - 0, 0, 0, 88, 24, 0, - 4, 0, 112, 16, 0, 0, - 0, 0, 0, 85, 85, 0, - 0, 88, 24, 0, 4, 0, - 112, 16, 0, 1, 0, 0, - 0, 85, 85, 0, 0, 88, - 24, 0, 4, 0, 112, 16, - 0, 2, 0, 0, 0, 85, - 85, 0, 0, 98, 16, 0, - 3, 50, 16, 16, 0, 1, - 0, 0, 0, 101, 0, 0, - 3, 242, 32, 16, 0, 0, - 0, 0, 0, 104, 0, 0, - 2, 3, 0, 0, 0, 69, - 0, 0, 9, 242, 0, 16, - 0, 0, 0, 0, 0, 70, - 16, 16, 0, 1, 0, 0, - 0, 70, 126, 16, 0, 2, - 0, 0, 0, 0, 96, 16, - 0, 0, 0, 0, 0, 0, - 0, 0, 7, 18, 0, 16, - 0, 0, 0, 0, 0, 10, - 0, 16, 0, 0, 0, 0, - 0, 1, 64, 0, 0, 0, - 0, 0, 191, 56, 0, 0, - 10, 50, 0, 16, 0, 0, - 0, 0, 0, 6, 0, 16, - 0, 0, 0, 0, 0, 2, - 64, 0, 0, 186, 73, 204, - 63, 197, 32, 80, 63, 0, - 0, 0, 0, 0, 0, 0, - 0, 69, 0, 0, 9, 242, - 0, 16, 0, 1, 0, 0, - 0, 70, 16, 16, 0, 1, - 0, 0, 0, 70, 126, 16, - 0, 0, 0, 0, 0, 0, - 96, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 66, - 0, 16, 0, 0, 0, 0, - 0, 10, 0, 16, 0, 1, - 0, 0, 0, 1, 64, 0, - 0, 0, 0, 128, 189, 50, - 0, 0, 10, 34, 0, 16, - 0, 0, 0, 0, 0, 42, - 0, 16, 0, 0, 0, 0, - 0, 1, 64, 0, 0, 244, - 253, 148, 63, 26, 0, 16, - 128, 65, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, - 9, 18, 0, 16, 0, 1, - 0, 0, 0, 42, 0, 16, - 0, 0, 0, 0, 0, 1, - 64, 0, 0, 244, 253, 148, - 63, 10, 0, 16, 0, 0, - 0, 0, 0, 69, 0, 0, - 9, 242, 0, 16, 0, 2, - 0, 0, 0, 70, 16, 16, - 0, 1, 0, 0, 0, 70, - 126, 16, 0, 1, 0, 0, - 0, 0, 96, 16, 0, 0, - 0, 0, 0, 0, 0, 0, - 7, 18, 0, 16, 0, 0, - 0, 0, 0, 10, 0, 16, - 0, 2, 0, 0, 0, 1, - 64, 0, 0, 0, 0, 0, - 191, 50, 0, 0, 10, 34, - 0, 16, 0, 1, 0, 0, - 0, 10, 0, 16, 128, 65, - 0, 0, 0, 0, 0, 0, - 0, 1, 64, 0, 0, 39, - 49, 200, 62, 26, 0, 16, - 0, 0, 0, 0, 0, 56, - 0, 0, 7, 18, 0, 16, - 0, 0, 0, 0, 0, 10, - 0, 16, 0, 0, 0, 0, - 0, 1, 64, 0, 0, 233, - 38, 1, 64, 50, 0, 0, - 9, 66, 0, 16, 0, 1, - 0, 0, 0, 42, 0, 16, - 0, 0, 0, 0, 0, 1, - 64, 0, 0, 244, 253, 148, - 63, 10, 0, 16, 0, 0, - 0, 0, 0, 54, 0, 0, - 5, 130, 0, 16, 0, 1, - 0, 0, 0, 1, 64, 0, - 0, 0, 0, 128, 63, 56, - 0, 0, 8, 242, 32, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 1, 0, 0, - 0, 6, 128, 32, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 62, 0, 0, 1, 83, - 84, 65, 84, 116, 0, 0, - 0, 15, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 6, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 82, 68, 69, - 70, 4, 2, 0, 0, 1, - 0, 0, 0, 236, 0, 0, - 0, 5, 0, 0, 0, 28, - 0, 0, 0, 0, 4, 255, - 255, 0, 1, 0, 0, 208, - 1, 0, 0, 188, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 214, - 0, 0, 0, 2, 0, 0, - 0, 5, 0, 0, 0, 4, - 0, 0, 0, 255, 255, 255, - 255, 0, 0, 0, 0, 1, - 0, 0, 0, 12, 0, 0, - 0, 217, 0, 0, 0, 2, - 0, 0, 0, 5, 0, 0, - 0, 4, 0, 0, 0, 255, - 255, 255, 255, 1, 0, 0, - 0, 1, 0, 0, 0, 12, - 0, 0, 0, 221, 0, 0, - 0, 2, 0, 0, 0, 5, - 0, 0, 0, 4, 0, 0, - 0, 255, 255, 255, 255, 2, - 0, 0, 0, 1, 0, 0, - 0, 12, 0, 0, 0, 225, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 76, 97, 121, 101, 114, - 84, 101, 120, 116, 117, 114, - 101, 83, 97, 109, 112, 108, - 101, 114, 76, 105, 110, 101, - 97, 114, 0, 116, 89, 0, - 116, 67, 98, 0, 116, 67, - 114, 0, 80, 101, 114, 76, - 97, 121, 101, 114, 0, 171, - 171, 225, 0, 0, 0, 4, - 0, 0, 0, 4, 1, 0, - 0, 112, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 100, 1, 0, 0, 0, - 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 116, - 1, 0, 0, 0, 0, 0, - 0, 132, 1, 0, 0, 16, - 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 116, - 1, 0, 0, 0, 0, 0, - 0, 143, 1, 0, 0, 32, - 0, 0, 0, 4, 0, 0, - 0, 2, 0, 0, 0, 160, - 1, 0, 0, 0, 0, 0, - 0, 176, 1, 0, 0, 48, - 0, 0, 0, 64, 0, 0, - 0, 0, 0, 0, 0, 192, - 1, 0, 0, 0, 0, 0, - 0, 118, 84, 101, 120, 116, - 117, 114, 101, 67, 111, 111, - 114, 100, 115, 0, 171, 1, - 0, 3, 0, 1, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 118, 76, 97, - 121, 101, 114, 81, 117, 97, - 100, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 171, 0, 0, 3, 0, 1, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 109, - 76, 97, 121, 101, 114, 84, - 114, 97, 110, 115, 102, 111, - 114, 109, 0, 3, 0, 3, - 0, 4, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 55, 46, 57, - 53, 50, 46, 51, 48, 50, - 50, 0, 171, 171, 171, 73, - 83, 71, 78, 80, 0, 0, - 0, 2, 0, 0, 0, 8, - 0, 0, 0, 56, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 15, - 0, 0, 0, 68, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 1, 0, 0, 0, 3, - 3, 0, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 171, 171, 171, 79, 83, 71, - 78, 44, 0, 0, 0, 1, - 0, 0, 0, 8, 0, 0, - 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 15, 0, 0, - 0, 83, 86, 95, 84, 97, - 114, 103, 101, 116, 0, 171, - 171, 187, 81, 0, 0, 0, - 0, 0, 0, 82, 101, 110, - 100, 101, 114, 67, 111, 109, - 112, 111, 110, 101, 110, 116, - 65, 108, 112, 104, 97, 76, - 97, 121, 101, 114, 0, 4, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, - 0, 255, 255, 255, 255, 24, - 7, 0, 0, 68, 88, 66, - 67, 254, 249, 65, 252, 64, - 46, 192, 119, 73, 197, 161, - 234, 24, 1, 194, 131, 1, - 0, 0, 0, 24, 7, 0, - 0, 6, 0, 0, 0, 56, - 0, 0, 0, 164, 1, 0, - 0, 148, 3, 0, 0, 16, - 4, 0, 0, 140, 6, 0, - 0, 192, 6, 0, 0, 65, - 111, 110, 57, 100, 1, 0, - 0, 100, 1, 0, 0, 0, - 2, 254, 255, 0, 1, 0, - 0, 100, 0, 0, 0, 5, - 0, 36, 0, 0, 0, 96, - 0, 0, 0, 96, 0, 0, - 0, 36, 0, 1, 0, 96, - 0, 0, 0, 0, 0, 2, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 2, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 6, 0, 1, - 0, 5, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 1, - 0, 6, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 4, - 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 2, 254, 255, 31, 0, 0, - 2, 5, 0, 0, 128, 0, - 0, 15, 144, 4, 0, 0, - 4, 0, 0, 3, 224, 0, - 0, 228, 144, 1, 0, 238, - 160, 1, 0, 228, 160, 4, - 0, 0, 4, 0, 0, 1, - 128, 0, 0, 85, 144, 2, - 0, 255, 160, 2, 0, 85, - 160, 5, 0, 0, 3, 0, - 0, 15, 128, 0, 0, 0, - 128, 4, 0, 228, 160, 4, - 0, 0, 4, 1, 0, 1, - 128, 0, 0, 0, 144, 2, - 0, 170, 160, 2, 0, 0, - 160, 4, 0, 0, 4, 0, - 0, 15, 128, 3, 0, 228, - 160, 1, 0, 0, 128, 0, - 0, 228, 128, 2, 0, 0, - 3, 0, 0, 15, 128, 0, - 0, 228, 128, 5, 0, 228, - 160, 2, 0, 0, 3, 0, - 0, 15, 128, 0, 0, 228, - 128, 6, 0, 228, 161, 5, - 0, 0, 3, 1, 0, 15, - 128, 0, 0, 85, 128, 8, - 0, 228, 160, 4, 0, 0, - 4, 1, 0, 15, 128, 7, - 0, 228, 160, 0, 0, 0, - 128, 1, 0, 228, 128, 4, - 0, 0, 4, 1, 0, 15, - 128, 9, 0, 228, 160, 0, - 0, 170, 128, 1, 0, 228, - 128, 4, 0, 0, 4, 0, - 0, 15, 128, 10, 0, 228, - 160, 0, 0, 255, 128, 1, - 0, 228, 128, 4, 0, 0, - 4, 0, 0, 3, 192, 0, - 0, 255, 128, 0, 0, 228, - 160, 0, 0, 228, 128, 1, - 0, 0, 2, 0, 0, 12, - 192, 0, 0, 228, 128, 255, - 255, 0, 0, 83, 72, 68, - 82, 232, 1, 0, 0, 64, - 0, 1, 0, 122, 0, 0, - 0, 89, 0, 0, 4, 70, - 142, 32, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 89, - 0, 0, 4, 70, 142, 32, - 0, 1, 0, 0, 0, 1, - 0, 0, 0, 89, 0, 0, - 4, 70, 142, 32, 0, 2, - 0, 0, 0, 4, 0, 0, - 0, 95, 0, 0, 3, 50, - 16, 16, 0, 0, 0, 0, - 0, 103, 0, 0, 4, 242, - 32, 16, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 101, - 0, 0, 3, 50, 32, 16, - 0, 1, 0, 0, 0, 104, - 0, 0, 2, 2, 0, 0, - 0, 50, 0, 0, 11, 50, - 0, 16, 0, 0, 0, 0, - 0, 70, 16, 16, 0, 0, - 0, 0, 0, 230, 138, 32, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 70, 128, 32, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 56, 0, 0, - 8, 242, 0, 16, 0, 1, - 0, 0, 0, 86, 5, 16, - 0, 0, 0, 0, 0, 70, - 142, 32, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 50, - 0, 0, 10, 242, 0, 16, - 0, 0, 0, 0, 0, 70, - 142, 32, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 6, - 0, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 1, - 0, 0, 0, 0, 0, 0, - 8, 242, 0, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 0, 0, 0, 0, 70, - 142, 32, 0, 0, 0, 0, - 0, 6, 0, 0, 0, 0, - 0, 0, 9, 242, 0, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 0, 0, 0, - 0, 70, 142, 32, 128, 65, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 56, - 0, 0, 8, 242, 0, 16, - 0, 1, 0, 0, 0, 86, - 5, 16, 0, 0, 0, 0, - 0, 70, 142, 32, 0, 2, - 0, 0, 0, 1, 0, 0, - 0, 50, 0, 0, 10, 242, - 0, 16, 0, 1, 0, 0, - 0, 70, 142, 32, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 6, 0, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 1, 0, 0, 0, 50, - 0, 0, 10, 242, 0, 16, - 0, 1, 0, 0, 0, 70, - 142, 32, 0, 2, 0, 0, - 0, 2, 0, 0, 0, 166, - 10, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 1, - 0, 0, 0, 50, 0, 0, - 10, 242, 32, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 0, 2, 0, 0, 0, 3, - 0, 0, 0, 246, 15, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 1, 0, 0, - 0, 50, 0, 0, 11, 50, - 32, 16, 0, 1, 0, 0, - 0, 70, 16, 16, 0, 0, - 0, 0, 0, 230, 138, 32, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 70, 128, 32, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 0, 0, - 1, 83, 84, 65, 84, 116, - 0, 0, 0, 11, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 82, - 68, 69, 70, 116, 2, 0, - 0, 3, 0, 0, 0, 168, - 0, 0, 0, 3, 0, 0, - 0, 28, 0, 0, 0, 0, - 4, 254, 255, 0, 1, 0, - 0, 64, 2, 0, 0, 124, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 133, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 152, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 80, - 101, 114, 76, 97, 121, 101, - 114, 0, 80, 101, 114, 79, - 99, 99, 97, 115, 105, 111, - 110, 97, 108, 76, 97, 121, - 101, 114, 0, 80, 101, 114, - 76, 97, 121, 101, 114, 77, - 97, 110, 97, 103, 101, 114, - 0, 124, 0, 0, 0, 4, - 0, 0, 0, 240, 0, 0, - 0, 112, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 133, 0, 0, 0, 2, - 0, 0, 0, 188, 1, 0, - 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 152, 0, 0, 0, 1, - 0, 0, 0, 28, 2, 0, - 0, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 80, 1, 0, 0, 0, - 0, 0, 0, 16, 0, 0, - 0, 2, 0, 0, 0, 96, - 1, 0, 0, 0, 0, 0, - 0, 112, 1, 0, 0, 16, - 0, 0, 0, 16, 0, 0, - 0, 2, 0, 0, 0, 96, - 1, 0, 0, 0, 0, 0, - 0, 123, 1, 0, 0, 32, - 0, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 140, - 1, 0, 0, 0, 0, 0, - 0, 156, 1, 0, 0, 48, - 0, 0, 0, 64, 0, 0, - 0, 2, 0, 0, 0, 172, - 1, 0, 0, 0, 0, 0, - 0, 118, 84, 101, 120, 116, - 117, 114, 101, 67, 111, 111, - 114, 100, 115, 0, 171, 1, - 0, 3, 0, 1, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 118, 76, 97, - 121, 101, 114, 81, 117, 97, - 100, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 171, 0, 0, 3, 0, 1, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 109, - 76, 97, 121, 101, 114, 84, - 114, 97, 110, 115, 102, 111, - 114, 109, 0, 3, 0, 3, - 0, 4, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 236, 1, 0, 0, 0, - 0, 0, 0, 16, 0, 0, - 0, 2, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 16, 2, 0, 0, 16, - 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 118, 82, 101, 110, 100, - 101, 114, 84, 97, 114, 103, - 101, 116, 79, 102, 102, 115, - 101, 116, 0, 1, 0, 3, - 0, 1, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 102, 76, 97, 121, 101, - 114, 67, 111, 108, 111, 114, - 0, 52, 2, 0, 0, 0, - 0, 0, 0, 64, 0, 0, - 0, 2, 0, 0, 0, 172, - 1, 0, 0, 0, 0, 0, - 0, 109, 80, 114, 111, 106, - 101, 99, 116, 105, 111, 110, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 55, 46, 57, - 53, 50, 46, 51, 48, 50, - 50, 0, 171, 171, 171, 73, - 83, 71, 78, 44, 0, 0, - 0, 1, 0, 0, 0, 8, - 0, 0, 0, 32, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 3, - 3, 0, 0, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 171, 171, 171, 79, 83, 71, - 78, 80, 0, 0, 0, 2, - 0, 0, 0, 8, 0, 0, - 0, 56, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 15, 0, 0, - 0, 68, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 1, - 0, 0, 0, 3, 12, 0, - 0, 83, 86, 95, 80, 111, - 115, 105, 116, 105, 111, 110, - 0, 84, 69, 88, 67, 79, - 79, 82, 68, 0, 171, 171, - 171, 81, 89, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 0, 144, 5, 0, - 0, 68, 88, 66, 67, 238, - 19, 121, 188, 150, 99, 227, - 180, 83, 152, 252, 187, 65, - 5, 113, 253, 1, 0, 0, - 0, 144, 5, 0, 0, 6, - 0, 0, 0, 56, 0, 0, - 0, 52, 1, 0, 0, 128, - 2, 0, 0, 252, 2, 0, - 0, 236, 4, 0, 0, 68, - 5, 0, 0, 65, 111, 110, - 57, 244, 0, 0, 0, 244, - 0, 0, 0, 0, 2, 255, - 255, 188, 0, 0, 0, 56, - 0, 0, 0, 1, 0, 44, - 0, 0, 0, 56, 0, 0, - 0, 56, 0, 2, 0, 36, - 0, 0, 0, 56, 0, 0, - 0, 0, 0, 1, 0, 1, - 0, 0, 0, 2, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 1, 2, 255, 255, 81, - 0, 0, 5, 1, 0, 15, - 160, 0, 0, 128, 63, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 31, - 0, 0, 2, 0, 0, 0, - 128, 0, 0, 3, 176, 31, - 0, 0, 2, 0, 0, 0, - 144, 0, 8, 15, 160, 31, - 0, 0, 2, 0, 0, 0, - 144, 1, 8, 15, 160, 66, - 0, 0, 3, 0, 0, 15, - 128, 0, 0, 228, 176, 1, - 8, 228, 160, 66, 0, 0, - 3, 1, 0, 15, 128, 0, - 0, 228, 176, 0, 8, 228, - 160, 5, 0, 0, 3, 2, - 0, 15, 128, 1, 0, 228, - 128, 0, 0, 0, 160, 1, - 0, 0, 2, 0, 8, 15, - 128, 2, 0, 228, 128, 2, - 0, 0, 3, 0, 0, 15, - 128, 0, 0, 228, 129, 1, - 0, 228, 128, 2, 0, 0, - 3, 0, 0, 15, 128, 0, - 0, 228, 128, 1, 0, 0, - 160, 5, 0, 0, 3, 0, - 0, 15, 128, 0, 0, 228, - 128, 0, 0, 0, 160, 1, - 0, 0, 2, 1, 8, 15, - 128, 0, 0, 228, 128, 255, - 255, 0, 0, 83, 72, 68, - 82, 68, 1, 0, 0, 64, - 0, 0, 0, 81, 0, 0, - 0, 89, 0, 0, 4, 70, - 142, 32, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 90, - 0, 0, 3, 0, 96, 16, - 0, 0, 0, 0, 0, 88, - 24, 0, 4, 0, 112, 16, - 0, 0, 0, 0, 0, 85, - 85, 0, 0, 88, 24, 0, - 4, 0, 112, 16, 0, 1, - 0, 0, 0, 85, 85, 0, - 0, 98, 16, 0, 3, 50, - 16, 16, 0, 1, 0, 0, - 0, 101, 0, 0, 3, 242, - 32, 16, 0, 0, 0, 0, - 0, 101, 0, 0, 3, 242, - 32, 16, 0, 1, 0, 0, - 0, 104, 0, 0, 2, 2, - 0, 0, 0, 69, 0, 0, - 9, 242, 0, 16, 0, 0, - 0, 0, 0, 70, 16, 16, - 0, 1, 0, 0, 0, 70, - 126, 16, 0, 0, 0, 0, - 0, 0, 96, 16, 0, 0, - 0, 0, 0, 56, 0, 0, - 8, 242, 32, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 0, 0, 0, 0, 6, - 128, 32, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 69, - 0, 0, 9, 242, 0, 16, - 0, 1, 0, 0, 0, 70, - 16, 16, 0, 1, 0, 0, - 0, 70, 126, 16, 0, 1, - 0, 0, 0, 0, 96, 16, - 0, 0, 0, 0, 0, 0, - 0, 0, 8, 242, 0, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 128, 65, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 10, 242, - 0, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 0, - 0, 0, 0, 2, 64, 0, - 0, 0, 0, 128, 63, 0, - 0, 128, 63, 0, 0, 128, - 63, 0, 0, 128, 63, 56, - 0, 0, 8, 242, 32, 16, - 0, 1, 0, 0, 0, 70, - 14, 16, 0, 0, 0, 0, - 0, 6, 128, 32, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 62, 0, 0, 1, 83, - 84, 65, 84, 116, 0, 0, - 0, 7, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 82, 68, 69, - 70, 232, 1, 0, 0, 1, - 0, 0, 0, 208, 0, 0, - 0, 4, 0, 0, 0, 28, - 0, 0, 0, 0, 4, 255, - 255, 0, 1, 0, 0, 180, - 1, 0, 0, 156, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 182, - 0, 0, 0, 2, 0, 0, - 0, 5, 0, 0, 0, 4, - 0, 0, 0, 255, 255, 255, - 255, 0, 0, 0, 0, 1, - 0, 0, 0, 12, 0, 0, - 0, 187, 0, 0, 0, 2, - 0, 0, 0, 5, 0, 0, - 0, 4, 0, 0, 0, 255, - 255, 255, 255, 1, 0, 0, - 0, 1, 0, 0, 0, 12, - 0, 0, 0, 197, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 76, - 97, 121, 101, 114, 84, 101, - 120, 116, 117, 114, 101, 83, - 97, 109, 112, 108, 101, 114, - 76, 105, 110, 101, 97, 114, - 0, 116, 82, 71, 66, 0, - 116, 82, 71, 66, 87, 104, - 105, 116, 101, 0, 80, 101, - 114, 76, 97, 121, 101, 114, - 0, 171, 171, 197, 0, 0, - 0, 4, 0, 0, 0, 232, - 0, 0, 0, 112, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 72, 1, 0, - 0, 0, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, - 0, 88, 1, 0, 0, 0, - 0, 0, 0, 104, 1, 0, - 0, 16, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, - 0, 88, 1, 0, 0, 0, - 0, 0, 0, 115, 1, 0, - 0, 32, 0, 0, 0, 4, - 0, 0, 0, 2, 0, 0, - 0, 132, 1, 0, 0, 0, - 0, 0, 0, 148, 1, 0, - 0, 48, 0, 0, 0, 64, - 0, 0, 0, 0, 0, 0, - 0, 164, 1, 0, 0, 0, - 0, 0, 0, 118, 84, 101, - 120, 116, 117, 114, 101, 67, - 111, 111, 114, 100, 115, 0, - 171, 1, 0, 3, 0, 1, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, - 76, 97, 121, 101, 114, 81, - 117, 97, 100, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 171, 0, 0, 3, - 0, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 109, 76, 97, 121, 101, - 114, 84, 114, 97, 110, 115, - 102, 111, 114, 109, 0, 3, - 0, 3, 0, 4, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 105, 99, - 114, 111, 115, 111, 102, 116, - 32, 40, 82, 41, 32, 72, - 76, 83, 76, 32, 83, 104, - 97, 100, 101, 114, 32, 67, - 111, 109, 112, 105, 108, 101, - 114, 32, 57, 46, 50, 55, - 46, 57, 53, 50, 46, 51, - 48, 50, 50, 0, 171, 171, - 171, 73, 83, 71, 78, 80, - 0, 0, 0, 2, 0, 0, - 0, 8, 0, 0, 0, 56, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 68, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, - 0, 0, 0, 1, 0, 0, - 0, 3, 3, 0, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 171, 171, 171, 79, - 83, 71, 78, 68, 0, 0, - 0, 2, 0, 0, 0, 8, - 0, 0, 0, 56, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 15, - 0, 0, 0, 56, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 1, 0, 0, 0, 15, - 0, 0, 0, 83, 86, 95, - 84, 97, 114, 103, 101, 116, - 0, 171, 171, 129, 96, 0, - 0, 0, 0, 0, 0, 82, - 101, 110, 100, 101, 114, 83, - 111, 108, 105, 100, 67, 111, - 108, 111, 114, 76, 97, 121, - 101, 114, 0, 4, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 3, 0, 0, 0, 255, - 255, 255, 255, 24, 7, 0, - 0, 68, 88, 66, 67, 254, - 249, 65, 252, 64, 46, 192, - 119, 73, 197, 161, 234, 24, - 1, 194, 131, 1, 0, 0, - 0, 24, 7, 0, 0, 6, - 0, 0, 0, 56, 0, 0, - 0, 164, 1, 0, 0, 148, - 3, 0, 0, 16, 4, 0, - 0, 140, 6, 0, 0, 192, - 6, 0, 0, 65, 111, 110, - 57, 100, 1, 0, 0, 100, - 1, 0, 0, 0, 2, 254, - 255, 0, 1, 0, 0, 100, - 0, 0, 0, 5, 0, 36, - 0, 0, 0, 96, 0, 0, - 0, 96, 0, 0, 0, 36, - 0, 1, 0, 96, 0, 0, - 0, 0, 0, 2, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 2, 0, 3, - 0, 0, 0, 0, 0, 0, - 0, 6, 0, 1, 0, 5, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 1, 0, 6, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 4, 0, 7, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 2, 254, - 255, 31, 0, 0, 2, 5, - 0, 0, 128, 0, 0, 15, - 144, 4, 0, 0, 4, 0, - 0, 3, 224, 0, 0, 228, - 144, 1, 0, 238, 160, 1, - 0, 228, 160, 4, 0, 0, - 4, 0, 0, 1, 128, 0, - 0, 85, 144, 2, 0, 255, - 160, 2, 0, 85, 160, 5, - 0, 0, 3, 0, 0, 15, - 128, 0, 0, 0, 128, 4, - 0, 228, 160, 4, 0, 0, - 4, 1, 0, 1, 128, 0, - 0, 0, 144, 2, 0, 170, - 160, 2, 0, 0, 160, 4, - 0, 0, 4, 0, 0, 15, - 128, 3, 0, 228, 160, 1, - 0, 0, 128, 0, 0, 228, - 128, 2, 0, 0, 3, 0, - 0, 15, 128, 0, 0, 228, - 128, 5, 0, 228, 160, 2, - 0, 0, 3, 0, 0, 15, - 128, 0, 0, 228, 128, 6, - 0, 228, 161, 5, 0, 0, - 3, 1, 0, 15, 128, 0, - 0, 85, 128, 8, 0, 228, - 160, 4, 0, 0, 4, 1, - 0, 15, 128, 7, 0, 228, - 160, 0, 0, 0, 128, 1, - 0, 228, 128, 4, 0, 0, - 4, 1, 0, 15, 128, 9, - 0, 228, 160, 0, 0, 170, - 128, 1, 0, 228, 128, 4, - 0, 0, 4, 0, 0, 15, - 128, 10, 0, 228, 160, 0, - 0, 255, 128, 1, 0, 228, - 128, 4, 0, 0, 4, 0, - 0, 3, 192, 0, 0, 255, - 128, 0, 0, 228, 160, 0, - 0, 228, 128, 1, 0, 0, - 2, 0, 0, 12, 192, 0, - 0, 228, 128, 255, 255, 0, - 0, 83, 72, 68, 82, 232, - 1, 0, 0, 64, 0, 1, - 0, 122, 0, 0, 0, 89, - 0, 0, 4, 70, 142, 32, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 89, 0, 0, - 4, 70, 142, 32, 0, 1, - 0, 0, 0, 1, 0, 0, - 0, 89, 0, 0, 4, 70, - 142, 32, 0, 2, 0, 0, - 0, 4, 0, 0, 0, 95, - 0, 0, 3, 50, 16, 16, - 0, 0, 0, 0, 0, 103, - 0, 0, 4, 242, 32, 16, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 101, 0, 0, - 3, 50, 32, 16, 0, 1, - 0, 0, 0, 104, 0, 0, - 2, 2, 0, 0, 0, 50, - 0, 0, 11, 50, 0, 16, - 0, 0, 0, 0, 0, 70, - 16, 16, 0, 0, 0, 0, - 0, 230, 138, 32, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 70, 128, 32, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 56, 0, 0, 8, 242, - 0, 16, 0, 1, 0, 0, - 0, 86, 5, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 0, 0, 0, 0, 0, 4, - 0, 0, 0, 50, 0, 0, - 10, 242, 0, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 0, 0, 0, 0, 0, 3, - 0, 0, 0, 6, 0, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 1, 0, 0, - 0, 0, 0, 0, 8, 242, - 0, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 0, - 0, 0, 0, 70, 142, 32, - 0, 0, 0, 0, 0, 6, - 0, 0, 0, 0, 0, 0, - 9, 242, 0, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 0, 0, 0, 0, 70, - 142, 32, 128, 65, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 0, - 8, 242, 0, 16, 0, 1, - 0, 0, 0, 86, 5, 16, - 0, 0, 0, 0, 0, 70, - 142, 32, 0, 2, 0, 0, - 0, 1, 0, 0, 0, 50, - 0, 0, 10, 242, 0, 16, - 0, 1, 0, 0, 0, 70, - 142, 32, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 6, - 0, 16, 0, 0, 0, 0, - 0, 70, 14, 16, 0, 1, - 0, 0, 0, 50, 0, 0, - 10, 242, 0, 16, 0, 1, - 0, 0, 0, 70, 142, 32, - 0, 2, 0, 0, 0, 2, - 0, 0, 0, 166, 10, 16, - 0, 0, 0, 0, 0, 70, - 14, 16, 0, 1, 0, 0, - 0, 50, 0, 0, 10, 242, - 32, 16, 0, 0, 0, 0, - 0, 70, 142, 32, 0, 2, - 0, 0, 0, 3, 0, 0, - 0, 246, 15, 16, 0, 0, - 0, 0, 0, 70, 14, 16, - 0, 1, 0, 0, 0, 50, - 0, 0, 11, 50, 32, 16, - 0, 1, 0, 0, 0, 70, - 16, 16, 0, 0, 0, 0, - 0, 230, 138, 32, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 70, 128, 32, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 1, 83, - 84, 65, 84, 116, 0, 0, - 0, 11, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 82, 68, 69, - 70, 116, 2, 0, 0, 3, - 0, 0, 0, 168, 0, 0, - 0, 3, 0, 0, 0, 28, - 0, 0, 0, 0, 4, 254, - 255, 0, 1, 0, 0, 64, - 2, 0, 0, 124, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 133, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 152, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 80, 101, 114, - 76, 97, 121, 101, 114, 0, - 80, 101, 114, 79, 99, 99, - 97, 115, 105, 111, 110, 97, - 108, 76, 97, 121, 101, 114, - 0, 80, 101, 114, 76, 97, - 121, 101, 114, 77, 97, 110, - 97, 103, 101, 114, 0, 124, - 0, 0, 0, 4, 0, 0, - 0, 240, 0, 0, 0, 112, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 133, - 0, 0, 0, 2, 0, 0, - 0, 188, 1, 0, 0, 32, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, - 0, 0, 0, 1, 0, 0, - 0, 28, 2, 0, 0, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 80, - 1, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 2, - 0, 0, 0, 96, 1, 0, - 0, 0, 0, 0, 0, 112, - 1, 0, 0, 16, 0, 0, - 0, 16, 0, 0, 0, 2, - 0, 0, 0, 96, 1, 0, - 0, 0, 0, 0, 0, 123, - 1, 0, 0, 32, 0, 0, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 140, 1, 0, - 0, 0, 0, 0, 0, 156, - 1, 0, 0, 48, 0, 0, - 0, 64, 0, 0, 0, 2, - 0, 0, 0, 172, 1, 0, - 0, 0, 0, 0, 0, 118, - 84, 101, 120, 116, 117, 114, - 101, 67, 111, 111, 114, 100, - 115, 0, 171, 1, 0, 3, - 0, 1, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 118, 76, 97, 121, 101, - 114, 81, 117, 97, 100, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 171, 0, - 0, 3, 0, 1, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 109, 76, 97, - 121, 101, 114, 84, 114, 97, - 110, 115, 102, 111, 114, 109, - 0, 3, 0, 3, 0, 4, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 236, - 1, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 2, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 16, - 2, 0, 0, 16, 0, 0, - 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 118, - 82, 101, 110, 100, 101, 114, - 84, 97, 114, 103, 101, 116, - 79, 102, 102, 115, 101, 116, - 0, 1, 0, 3, 0, 1, - 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, - 76, 97, 121, 101, 114, 67, - 111, 108, 111, 114, 0, 52, - 2, 0, 0, 0, 0, 0, - 0, 64, 0, 0, 0, 2, - 0, 0, 0, 172, 1, 0, - 0, 0, 0, 0, 0, 109, - 80, 114, 111, 106, 101, 99, - 116, 105, 111, 110, 0, 77, - 105, 99, 114, 111, 115, 111, - 102, 116, 32, 40, 82, 41, - 32, 72, 76, 83, 76, 32, - 83, 104, 97, 100, 101, 114, - 32, 67, 111, 109, 112, 105, - 108, 101, 114, 32, 57, 46, - 50, 55, 46, 57, 53, 50, - 46, 51, 48, 50, 50, 0, - 171, 171, 171, 73, 83, 71, - 78, 44, 0, 0, 0, 1, - 0, 0, 0, 8, 0, 0, - 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 3, 3, 0, - 0, 80, 79, 83, 73, 84, - 73, 79, 78, 0, 171, 171, - 171, 79, 83, 71, 78, 80, - 0, 0, 0, 2, 0, 0, - 0, 8, 0, 0, 0, 56, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 68, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, - 0, 0, 0, 1, 0, 0, - 0, 3, 12, 0, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 84, - 69, 88, 67, 79, 79, 82, - 68, 0, 171, 171, 171, 99, - 102, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 216, 2, 0, 0, 68, - 88, 66, 67, 247, 128, 122, - 171, 183, 156, 243, 15, 69, - 10, 154, 190, 66, 220, 37, - 74, 1, 0, 0, 0, 216, - 2, 0, 0, 6, 0, 0, - 0, 56, 0, 0, 0, 132, - 0, 0, 0, 204, 0, 0, - 0, 72, 1, 0, 0, 76, - 2, 0, 0, 164, 2, 0, - 0, 65, 111, 110, 57, 68, - 0, 0, 0, 68, 0, 0, - 0, 0, 2, 255, 255, 20, - 0, 0, 0, 48, 0, 0, - 0, 1, 0, 36, 0, 0, - 0, 48, 0, 0, 0, 48, - 0, 0, 0, 36, 0, 0, - 0, 48, 0, 0, 0, 1, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 1, 2, 255, - 255, 1, 0, 0, 2, 0, - 8, 15, 128, 0, 0, 228, - 160, 255, 255, 0, 0, 83, - 72, 68, 82, 64, 0, 0, - 0, 64, 0, 0, 0, 16, - 0, 0, 0, 89, 0, 0, - 4, 70, 142, 32, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 101, 0, 0, 3, 242, - 32, 16, 0, 0, 0, 0, - 0, 54, 0, 0, 6, 242, - 32, 16, 0, 0, 0, 0, - 0, 70, 142, 32, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 62, 0, 0, 1, 83, - 84, 65, 84, 116, 0, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 82, 68, 69, - 70, 252, 0, 0, 0, 1, - 0, 0, 0, 80, 0, 0, - 0, 1, 0, 0, 0, 28, - 0, 0, 0, 0, 4, 255, - 255, 0, 1, 0, 0, 200, - 0, 0, 0, 60, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 80, - 101, 114, 79, 99, 99, 97, - 115, 105, 111, 110, 97, 108, - 76, 97, 121, 101, 114, 0, - 171, 60, 0, 0, 0, 2, - 0, 0, 0, 104, 0, 0, - 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 152, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 172, - 0, 0, 0, 0, 0, 0, - 0, 188, 0, 0, 0, 16, - 0, 0, 0, 16, 0, 0, - 0, 2, 0, 0, 0, 172, - 0, 0, 0, 0, 0, 0, - 0, 118, 82, 101, 110, 100, - 101, 114, 84, 97, 114, 103, - 101, 116, 79, 102, 102, 115, - 101, 116, 0, 1, 0, 3, - 0, 1, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 102, 76, 97, 121, 101, - 114, 67, 111, 108, 111, 114, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 55, 46, 57, - 53, 50, 46, 51, 48, 50, - 50, 0, 171, 171, 171, 73, - 83, 71, 78, 80, 0, 0, - 0, 2, 0, 0, 0, 8, - 0, 0, 0, 56, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 3, 0, 0, - 0, 0, 0, 0, 0, 15, - 0, 0, 0, 68, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, - 0, 1, 0, 0, 0, 3, - 0, 0, 0, 83, 86, 95, - 80, 111, 115, 105, 116, 105, - 111, 110, 0, 84, 69, 88, - 67, 79, 79, 82, 68, 0, - 171, 171, 171, 79, 83, 71, - 78, 44, 0, 0, 0, 1, - 0, 0, 0, 8, 0, 0, - 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, - 0, 0, 0, 15, 0, 0, - 0, 83, 86, 95, 84, 97, - 114, 103, 101, 116, 0, 171, - 171, 147, 109, 0, 0, 0, - 0, 0, 0, 4, 0, 0, - 0, 112, 0, 0, 0, 0, - 0, 0, 0, 4, 0, 0, - 0, 255, 255, 255, 255, 0, - 0, 0, 0, 48, 0, 0, - 0, 20, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 63, 0, 0, 0, 20, - 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 108, - 0, 0, 0, 80, 0, 0, - 0, 0, 0, 0, 0, 32, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 159, 0, 0, - 0, 131, 0, 0, 0, 0, - 0, 0, 0, 48, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 175, 0, 0, 0, 32, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 255, - 255, 255, 255, 0, 0, 0, - 0, 194, 0, 0, 0, 20, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 214, - 0, 0, 0, 20, 0, 0, - 0, 0, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 226, 0, 0, - 0, 64, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 255, 255, 255, 255, 0, - 0, 0, 0, 242, 0, 0, - 0, 131, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 37, 1, 0, 0, 9, - 1, 0, 0, 0, 0, 0, - 0, 255, 255, 255, 255, 9, - 0, 0, 0, 36, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 44, 1, 0, - 0, 37, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 56, 1, 0, 0, 38, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 68, - 1, 0, 0, 39, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 80, 1, 0, - 0, 40, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 92, 1, 0, 0, 41, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 104, - 1, 0, 0, 42, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 116, 1, 0, - 0, 43, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 128, 1, 0, 0, 44, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 140, - 1, 0, 0, 0, 0, 0, - 0, 152, 1, 0, 0, 9, - 1, 0, 0, 0, 0, 0, - 0, 255, 255, 255, 255, 9, - 0, 0, 0, 36, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 162, 1, 0, - 0, 37, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 174, 1, 0, 0, 38, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 186, - 1, 0, 0, 39, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 198, 1, 0, - 0, 40, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 210, 1, 0, 0, 41, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 222, - 1, 0, 0, 42, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 234, 1, 0, - 0, 43, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 246, 1, 0, 0, 44, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 2, - 2, 0, 0, 0, 0, 0, - 0, 14, 2, 0, 0, 9, - 1, 0, 0, 0, 0, 0, - 0, 255, 255, 255, 255, 9, - 0, 0, 0, 36, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 34, 2, 0, - 0, 37, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 46, 2, 0, 0, 38, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 58, - 2, 0, 0, 39, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 70, 2, 0, - 0, 40, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 82, 2, 0, 0, 41, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 94, - 2, 0, 0, 42, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 106, 2, 0, - 0, 43, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 118, 2, 0, 0, 44, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 130, - 2, 0, 0, 0, 0, 0, - 0, 186, 2, 0, 0, 158, - 2, 0, 0, 0, 0, 0, - 0, 255, 255, 255, 255, 2, - 0, 0, 0, 19, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 196, 2, 0, - 0, 13, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 208, 2, 0, 0, 0, - 0, 0, 0, 2, 3, 0, - 0, 230, 2, 0, 0, 0, - 0, 0, 0, 255, 255, 255, - 255, 0, 0, 0, 0, 7, - 3, 0, 0, 230, 2, 0, - 0, 0, 0, 0, 0, 255, - 255, 255, 255, 0, 0, 0, - 0, 10, 3, 0, 0, 230, - 2, 0, 0, 0, 0, 0, - 0, 255, 255, 255, 255, 0, - 0, 0, 0, 14, 3, 0, - 0, 230, 2, 0, 0, 0, - 0, 0, 0, 255, 255, 255, - 255, 0, 0, 0, 0, 18, - 3, 0, 0, 230, 2, 0, - 0, 0, 0, 0, 0, 255, - 255, 255, 255, 0, 0, 0, - 0, 69, 3, 0, 0, 41, - 3, 0, 0, 0, 0, 0, - 0, 255, 255, 255, 255, 3, - 0, 0, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 95, 3, 0, - 0, 46, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 107, 3, 0, 0, 47, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 119, - 3, 0, 0, 0, 0, 0, - 0, 131, 3, 0, 0, 41, - 3, 0, 0, 0, 0, 0, - 0, 255, 255, 255, 255, 3, - 0, 0, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 156, 3, 0, - 0, 46, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 168, 3, 0, 0, 47, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 180, - 3, 0, 0, 0, 0, 0, - 0, 192, 3, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 213, 3, 0, 0, 7, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 186, 2, 0, 0, 10, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 216, - 3, 0, 0, 11, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 252, 3, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 37, 1, 0, 0, 6, - 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 36, - 11, 0, 0, 8, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 44, 11, 0, - 0, 7, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, - 0, 144, 15, 0, 0, 152, - 15, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 213, - 3, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 186, - 2, 0, 0, 10, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 178, 15, 0, - 0, 11, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 214, 15, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 37, - 1, 0, 0, 6, 0, 0, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 254, 22, 0, - 0, 8, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 6, 23, 0, 0, 7, - 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 106, - 27, 0, 0, 114, 27, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 213, 3, 0, - 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 186, 2, 0, - 0, 10, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 136, 27, 0, 0, 11, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 172, - 27, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 37, 1, 0, - 0, 6, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, - 0, 212, 34, 0, 0, 8, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 220, - 34, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 28, 39, 0, - 0, 36, 39, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 213, 3, 0, 0, 7, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 186, 2, 0, 0, 10, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 61, - 39, 0, 0, 11, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 97, 39, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 152, 1, 0, 0, 6, - 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 137, - 46, 0, 0, 8, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 145, 46, 0, - 0, 7, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, - 0, 209, 50, 0, 0, 217, - 50, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 213, - 3, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 186, - 2, 0, 0, 10, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 244, 50, 0, - 0, 11, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 24, 51, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 37, - 1, 0, 0, 6, 0, 0, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 64, 58, 0, - 0, 8, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 72, 58, 0, 0, 7, - 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 136, - 62, 0, 0, 144, 62, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 213, 3, 0, - 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 186, 2, 0, - 0, 10, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 174, 62, 0, 0, 11, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 210, - 62, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 152, 1, 0, - 0, 6, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, - 0, 250, 69, 0, 0, 8, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 2, - 70, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 66, 74, 0, - 0, 74, 74, 0, 0, 1, - 0, 0, 0, 0, 0, 0, - 0, 213, 3, 0, 0, 7, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 186, 2, 0, 0, 10, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 91, - 74, 0, 0, 11, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 127, 74, 0, - 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, - 0, 37, 1, 0, 0, 6, - 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 167, - 81, 0, 0, 8, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 175, 81, 0, - 0, 7, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, - 0, 255, 88, 0, 0, 7, - 89, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 213, - 3, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 186, - 2, 0, 0, 10, 0, 0, - 0, 0, 0, 0, 0, 1, - 0, 0, 0, 33, 89, 0, - 0, 11, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 69, 89, 0, 0, 2, - 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 14, - 2, 0, 0, 6, 0, 0, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 109, 96, 0, - 0, 8, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 117, 96, 0, 0, 7, - 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 21, - 102, 0, 0, 29, 102, 0, - 0, 1, 0, 0, 0, 0, - 0, 0, 0, 213, 3, 0, - 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 186, 2, 0, - 0, 10, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, - 0, 51, 102, 0, 0, 11, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 87, - 102, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 2, - 0, 0, 0, 37, 1, 0, - 0, 6, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, - 0, 127, 109, 0, 0, 8, - 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 135, - 109, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 7, - 0, 0, 0, 111, 112, 0, - 0 -}; +#if 0 +// +// FX Version: fx_4_0 +// Child effect (requires effect pool): false +// +// 3 local buffer(s) +// +cbuffer PerLayer +{ + float4 vTextureCoords; // Offset: 0, size: 16 + float4 vLayerQuad; // Offset: 16, size: 16 + float fLayerOpacity; // Offset: 32, size: 4 + float4x4 mLayerTransform; // Offset: 48, size: 64 +} + +cbuffer PerOccasionalLayer +{ + float4 vRenderTargetOffset; // Offset: 0, size: 16 + float4 fLayerColor; // Offset: 16, size: 16 +} + +cbuffer PerLayerManager +{ + float4x4 mProjection; // Offset: 0, size: 64 +} + +// +// 11 local object(s) +// +BlendState Premul +{ + AlphaToCoverageEnable = bool(FALSE /* 0 */); + BlendEnable[0] = bool(TRUE /* 1 */); + SrcBlend[0] = uint(ONE /* 2 */); + DestBlend[0] = uint(INV_SRC_ALPHA /* 6 */); + BlendOp[0] = uint(ADD /* 1 */); + SrcBlendAlpha[0] = uint(ONE /* 2 */); + DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */); + BlendOpAlpha[0] = uint(ADD /* 1 */); + RenderTargetWriteMask[0] = byte(0x0f); +}; +BlendState NonPremul +{ + AlphaToCoverageEnable = bool(FALSE /* 0 */); + BlendEnable[0] = bool(TRUE /* 1 */); + SrcBlend[0] = uint(SRC_ALPHA /* 5 */); + DestBlend[0] = uint(INV_SRC_ALPHA /* 6 */); + BlendOp[0] = uint(ADD /* 1 */); + SrcBlendAlpha[0] = uint(ONE /* 2 */); + DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */); + BlendOpAlpha[0] = uint(ADD /* 1 */); + RenderTargetWriteMask[0] = byte(0x0f); +}; +BlendState ComponentAlphaBlend +{ + AlphaToCoverageEnable = bool(FALSE /* 0 */); + BlendEnable[0] = bool(TRUE /* 1 */); + SrcBlend[0] = uint(ONE /* 2 */); + DestBlend[0] = uint(INV_SRC1_COLOR /* 17 */); + BlendOp[0] = uint(ADD /* 1 */); + SrcBlendAlpha[0] = uint(ZERO /* 1 */); + DestBlendAlpha[0] = uint(ONE /* 2 */); + BlendOpAlpha[0] = uint(ADD /* 1 */); + RenderTargetWriteMask[0] = byte(0x0f); +}; +RasterizerState LayerRast +{ + ScissorEnable = bool(TRUE /* 1 */); + CullMode = uint(NONE /* 1 */); +}; +Texture2D tRGB; +Texture2D tY; +Texture2D tCb; +Texture2D tCr; +Texture2D tRGBWhite; +SamplerState LayerTextureSamplerLinear +{ + Filter = uint(MIN_MAG_MIP_LINEAR /* 21 */); + AddressU = uint(CLAMP /* 3 */); + AddressV = uint(CLAMP /* 3 */); +}; +SamplerState LayerTextureSamplerPoint +{ + Filter = uint(MIN_MAG_MIP_POINT /* 0 */); + AddressU = uint(CLAMP /* 3 */); + AddressV = uint(CLAMP /* 3 */); +}; + +// +// 9 technique(s) +// +technique10 RenderRGBLayerPremul +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = Premul; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] + // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] + // float fLayerOpacity; // Offset: 32 Size: 4 + // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // LayerTextureSamplerLinear sampler NA NA 0 1 + // tRGB texture float4 2d 0 1 + // PerLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // + // + // Level9 shader bytecode: + // + ps_2_x + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0.xyz, r0, c0.x + mov r0.w, c0.x + mov oC0, r0 + + // approximately 4 instruction slots used (1 texture, 3 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_sampler s0, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_input_ps linear v1.xy + dcl_output o0.xyzw + dcl_temps 1 + sample r0.xyzw, v1.xyxx, t0.xyzw, s0 + mul o0.xyz, r0.xyzx, cb0[2].xxxx + mov o0.w, cb0[2].x + ret + // Approximately 4 instruction slots used + + }; + } + +} + +technique10 RenderRGBLayerPremulPoint +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = Premul; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] + // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] + // float fLayerOpacity; // Offset: 32 Size: 4 + // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // LayerTextureSamplerPoint sampler NA NA 0 1 + // tRGB texture float4 2d 0 1 + // PerLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // + // + // Level9 shader bytecode: + // + ps_2_x + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0.xyz, r0, c0.x + mov r0.w, c0.x + mov oC0, r0 + + // approximately 4 instruction slots used (1 texture, 3 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_sampler s0, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_input_ps linear v1.xy + dcl_output o0.xyzw + dcl_temps 1 + sample r0.xyzw, v1.xyxx, t0.xyzw, s0 + mul o0.xyz, r0.xyzx, cb0[2].xxxx + mov o0.w, cb0[2].x + ret + // Approximately 4 instruction slots used + + }; + } + +} + +technique10 RenderRGBALayerPremul +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = Premul; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] + // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] + // float fLayerOpacity; // Offset: 32 Size: 4 + // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // LayerTextureSamplerLinear sampler NA NA 0 1 + // tRGB texture float4 2d 0 1 + // PerLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // + // + // Level9 shader bytecode: + // + ps_2_x + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0, r0, c0.x + mov oC0, r0 + + // approximately 3 instruction slots used (1 texture, 2 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_sampler s0, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_input_ps linear v1.xy + dcl_output o0.xyzw + dcl_temps 1 + sample r0.xyzw, v1.xyxx, t0.xyzw, s0 + mul o0.xyzw, r0.xyzw, cb0[2].xxxx + ret + // Approximately 3 instruction slots used + + }; + } + +} + +technique10 RenderRGBALayerNonPremul +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = NonPremul; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] + // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] + // float fLayerOpacity; // Offset: 32 Size: 4 + // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // LayerTextureSamplerLinear sampler NA NA 0 1 + // tRGB texture float4 2d 0 1 + // PerLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // + // + // Level9 shader bytecode: + // + ps_2_x + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0, r0, c0.x + mov oC0, r0 + + // approximately 3 instruction slots used (1 texture, 2 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_sampler s0, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_input_ps linear v1.xy + dcl_output o0.xyzw + dcl_temps 1 + sample r0.xyzw, v1.xyxx, t0.xyzw, s0 + mul o0.xyzw, r0.xyzw, cb0[2].xxxx + ret + // Approximately 3 instruction slots used + + }; + } + +} + +technique10 RenderRGBALayerPremulPoint +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = Premul; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] + // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] + // float fLayerOpacity; // Offset: 32 Size: 4 + // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // LayerTextureSamplerPoint sampler NA NA 0 1 + // tRGB texture float4 2d 0 1 + // PerLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // + // + // Level9 shader bytecode: + // + ps_2_x + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0, r0, c0.x + mov oC0, r0 + + // approximately 3 instruction slots used (1 texture, 2 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_sampler s0, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_input_ps linear v1.xy + dcl_output o0.xyzw + dcl_temps 1 + sample r0.xyzw, v1.xyxx, t0.xyzw, s0 + mul o0.xyzw, r0.xyzw, cb0[2].xxxx + ret + // Approximately 3 instruction slots used + + }; + } + +} + +technique10 RenderRGBALayerNonPremulPoint +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = NonPremul; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] + // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] + // float fLayerOpacity; // Offset: 32 Size: 4 + // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // LayerTextureSamplerPoint sampler NA NA 0 1 + // tRGB texture float4 2d 0 1 + // PerLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // + // + // Level9 shader bytecode: + // + ps_2_x + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0, r0, c0.x + mov oC0, r0 + + // approximately 3 instruction slots used (1 texture, 2 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_sampler s0, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_input_ps linear v1.xy + dcl_output o0.xyzw + dcl_temps 1 + sample r0.xyzw, v1.xyxx, t0.xyzw, s0 + mul o0.xyzw, r0.xyzw, cb0[2].xxxx + ret + // Approximately 3 instruction slots used + + }; + } + +} + +technique10 RenderYCbCrLayer +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = Premul; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] + // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] + // float fLayerOpacity; // Offset: 32 Size: 4 + // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // LayerTextureSamplerLinear sampler NA NA 0 1 + // tY texture float4 2d 0 1 + // tCb texture float4 2d 1 1 + // tCr texture float4 2d 2 1 + // PerLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // s1 s0 t1 + // s2 s0 t2 + // + // + // Level9 shader bytecode: + // + ps_2_x + def c1, -0.5, -0.0625, 1.59599996, 0.813000023 + def c2, 1.16400003, 2.01799989, 0.391000003, 1 + dcl t0.xy + dcl_2d s0 + dcl_2d s1 + dcl_2d s2 + texld r0, t0, s0 + texld r1, t0, s2 + add r0.y, r1.x, c1.x + mul r0.yz, r0.y, c1.xzww + add r0.x, r0.x, c1.y + mad r0.z, r0.x, c2.x, -r0.z + mad r1.x, r0.x, c2.x, r0.y + texld r2, t0, s1 + add r0.y, r2.x, c1.x + mad r1.y, r0.y, -c2.z, r0.z + mul r0.y, r0.y, c2.y + mad r1.z, r0.x, c2.x, r0.y + mov r1.w, c2.w + mul r0, r1, c0.x + mov oC0, r0 + + // approximately 15 instruction slots used (3 texture, 12 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_sampler s0, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_resource_texture2d (float,float,float,float) t1 + dcl_resource_texture2d (float,float,float,float) t2 + dcl_input_ps linear v1.xy + dcl_output o0.xyzw + dcl_temps 3 + sample r0.xyzw, v1.xyxx, t2.xyzw, s0 + add r0.x, r0.x, l(-0.500000) + mul r0.xy, r0.xxxx, l(1.596000, 0.813000, 0.000000, 0.000000) + sample r1.xyzw, v1.xyxx, t0.xyzw, s0 + add r0.z, r1.x, l(-0.062500) + mad r0.y, r0.z, l(1.164000), -r0.y + mad r1.x, r0.z, l(1.164000), r0.x + sample r2.xyzw, v1.xyxx, t1.xyzw, s0 + add r0.x, r2.x, l(-0.500000) + mad r1.y, -r0.x, l(0.391000), r0.y + mul r0.x, r0.x, l(2.018000) + mad r1.z, r0.z, l(1.164000), r0.x + mov r1.w, l(1.000000) + mul o0.xyzw, r1.xyzw, cb0[2].xxxx + ret + // Approximately 15 instruction slots used + + }; + } + +} + +technique10 RenderComponentAlphaLayer +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = ComponentAlphaBlend; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 [unused] + // float4 vLayerQuad; // Offset: 16 Size: 16 [unused] + // float fLayerOpacity; // Offset: 32 Size: 4 + // float4x4 mLayerTransform; // Offset: 48 Size: 64 [unused] + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // LayerTextureSamplerLinear sampler NA NA 0 1 + // tRGB texture float4 2d 0 1 + // tRGBWhite texture float4 2d 1 1 + // PerLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // SV_Target 1 xyzw 1 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 2 1 ( FLT, FLT, FLT, FLT) + // + // + // Sampler/Resource to DX9 shader sampler mappings: + // + // Target Sampler Source Sampler Source Resource + // -------------- --------------- ---------------- + // s0 s0 t0 + // s1 s0 t1 + // + // + // Level9 shader bytecode: + // + ps_2_x + def c1, 1, 0, 0, 0 + dcl t0.xy + dcl_2d s0 + dcl_2d s1 + texld r0, t0, s1 + texld r1, t0, s0 + mul r2, r1, c0.x + mov oC0, r2 + add r0, -r0, r1 + add r0, r0, c1.x + mul r0, r0, c0.x + mov oC1, r0 + + // approximately 8 instruction slots used (2 texture, 6 arithmetic) + ps_4_0 + dcl_constantbuffer cb0[3], immediateIndexed + dcl_sampler s0, mode_default + dcl_resource_texture2d (float,float,float,float) t0 + dcl_resource_texture2d (float,float,float,float) t1 + dcl_input_ps linear v1.xy + dcl_output o0.xyzw + dcl_output o1.xyzw + dcl_temps 2 + sample r0.xyzw, v1.xyxx, t0.xyzw, s0 + mul o0.xyzw, r0.xyzw, cb0[2].xxxx + sample r1.xyzw, v1.xyxx, t1.xyzw, s0 + add r0.xyzw, r0.xyzw, -r1.xyzw + add r0.xyzw, r0.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000) + mul o1.xyzw, r0.xyzw, cb0[2].xxxx + ret + // Approximately 7 instruction slots used + + }; + } + +} + +technique10 RenderSolidColorLayer +{ + pass P0 + { + RasterizerState = LayerRast; + AB_BlendFactor = float4(0, 0, 0, 0); + AB_SampleMask = uint(0xffffffff); + BlendState = Premul; + VertexShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerLayer + // { + // + // float4 vTextureCoords; // Offset: 0 Size: 16 + // float4 vLayerQuad; // Offset: 16 Size: 16 + // float fLayerOpacity; // Offset: 32 Size: 4 [unused] + // float4x4 mLayerTransform; // Offset: 48 Size: 64 + // + // } + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 + // float4 fLayerColor; // Offset: 16 Size: 16 [unused] + // + // } + // + // cbuffer PerLayerManager + // { + // + // float4x4 mProjection; // Offset: 0 Size: 64 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerLayer cbuffer NA NA 0 1 + // PerOccasionalLayer cbuffer NA NA 1 1 + // PerLayerManager cbuffer NA NA 2 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // POSITION 0 xy 0 NONE float xy + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float xyzw + // TEXCOORD 0 xy 1 NONE float xy + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c1 cb0 0 2 ( FLT, FLT, FLT, FLT) + // c3 cb0 3 2 ( FLT, FLT, FLT, FLT) + // c5 cb0 6 1 ( FLT, FLT, FLT, FLT) + // c6 cb1 0 1 ( FLT, FLT, FLT, FLT) + // c7 cb2 0 4 ( FLT, FLT, FLT, FLT) + // + // + // Runtime generated constant mappings: + // + // Target Reg Constant Description + // ---------- -------------------------------------------------- + // c0 Vertex Shader position offset + // + // + // Level9 shader bytecode: + // + vs_2_x + dcl_texcoord v0 + mad oT0.xy, v0, c1.zwzw, c1 + mad r0.x, v0.y, c2.w, c2.y + mul r0, r0.x, c4 + mad r1.x, v0.x, c2.z, c2.x + mad r0, c3, r1.x, r0 + add r0, r0, c5 + add r0, r0, -c6 + mul r1, r0.y, c8 + mad r1, c7, r0.x, r1 + mad r1, c9, r0.z, r1 + mad r0, c10, r0.w, r1 + mad oPos.xy, r0.w, c0, r0 + mov oPos.zw, r0 + + // approximately 13 instruction slots used + vs_4_0 + dcl_constantbuffer cb0[7], immediateIndexed + dcl_constantbuffer cb1[1], immediateIndexed + dcl_constantbuffer cb2[4], immediateIndexed + dcl_input v0.xy + dcl_output_siv o0.xyzw, position + dcl_output o1.xy + dcl_temps 2 + mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx + mul r1.xyzw, r0.yyyy, cb0[4].xyzw + mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw + add r0.xyzw, r0.xyzw, cb0[6].xyzw + add r0.xyzw, r0.xyzw, -cb1[0].xyzw + mul r1.xyzw, r0.yyyy, cb2[1].xyzw + mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw + mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw + mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw + mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx + ret + // Approximately 11 instruction slots used + + }; + GeometryShader = NULL; + PixelShader = asm { + // + // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022 + // + // + // Buffer Definitions: + // + // cbuffer PerOccasionalLayer + // { + // + // float4 vRenderTargetOffset; // Offset: 0 Size: 16 [unused] + // float4 fLayerColor; // Offset: 16 Size: 16 + // + // } + // + // + // Resource Bindings: + // + // Name Type Format Dim Slot Elements + // ------------------------------ ---------- ------- ----------- ---- -------- + // PerOccasionalLayer cbuffer NA NA 0 1 + // + // + // + // Input signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Position 0 xyzw 0 POS float + // TEXCOORD 0 xy 1 NONE float + // + // + // Output signature: + // + // Name Index Mask Register SysValue Format Used + // -------------------- ----- ------ -------- -------- ------ ------ + // SV_Target 0 xyzw 0 TARGET float xyzw + // + // + // Constant buffer to DX9 shader constant mappings: + // + // Target Reg Buffer Start Reg # of Regs Data Conversion + // ---------- ------- --------- --------- ---------------------- + // c0 cb0 1 1 ( FLT, FLT, FLT, FLT) + // + // + // Level9 shader bytecode: + // + ps_2_x + mov oC0, c0 + + // approximately 1 instruction slot used + ps_4_0 + dcl_constantbuffer cb0[2], immediateIndexed + dcl_output o0.xyzw + mov o0.xyzw, cb0[1].xyzw + ret + // Approximately 2 instruction slots used + + }; + } + +} + +#endif + +const BYTE g_main[] = +{ + 68, 88, 66, 67, 105, 120, + 157, 39, 125, 94, 29, 78, + 15, 169, 65, 191, 70, 115, + 164, 88, 1, 0, 0, 0, + 231, 121, 0, 0, 1, 0, + 0, 0, 36, 0, 0, 0, + 70, 88, 49, 48, 187, 121, + 0, 0, 1, 16, 255, 254, + 3, 0, 0, 0, 7, 0, + 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 119, 112, + 0, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 18, 0, + 0, 0, 18, 0, 0, 0, + 0, 0, 0, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 0, 102, 108, 111, 97, 116, + 52, 0, 13, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 0, 16, 0, + 0, 0, 10, 33, 0, 0, + 118, 84, 101, 120, 116, 117, + 114, 101, 67, 111, 111, 114, + 100, 115, 0, 118, 76, 97, + 121, 101, 114, 81, 117, 97, + 100, 0, 102, 108, 111, 97, + 116, 0, 74, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 16, 0, 0, 0, 4, 0, + 0, 0, 9, 9, 0, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 102, 108, 111, 97, + 116, 52, 120, 52, 0, 122, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 64, + 0, 0, 0, 64, 0, 0, + 0, 64, 0, 0, 0, 11, + 100, 0, 0, 109, 76, 97, + 121, 101, 114, 84, 114, 97, + 110, 115, 102, 111, 114, 109, + 0, 80, 101, 114, 79, 99, + 99, 97, 115, 105, 111, 110, + 97, 108, 76, 97, 121, 101, + 114, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 102, 76, + 97, 121, 101, 114, 67, 111, + 108, 111, 114, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 77, 97, 110, 97, 103, 101, + 114, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 66, 108, 101, 110, + 100, 83, 116, 97, 116, 101, + 0, 254, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 80, + 114, 101, 109, 117, 108, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 6, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 6, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 15, 0, 0, 0, + 78, 111, 110, 80, 114, 101, + 109, 117, 108, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 6, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 6, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 15, 0, 0, 0, 67, 111, + 109, 112, 111, 110, 101, 110, + 116, 65, 108, 112, 104, 97, + 66, 108, 101, 110, 100, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 17, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 15, 0, 0, 0, + 82, 97, 115, 116, 101, 114, + 105, 122, 101, 114, 83, 116, + 97, 116, 101, 0, 142, 2, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 76, 97, 121, 101, + 114, 82, 97, 115, 116, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 84, 101, 120, 116, 117, 114, + 101, 50, 68, 0, 220, 2, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 0, + 0, 0, 116, 82, 71, 66, + 0, 116, 89, 0, 116, 67, + 98, 0, 116, 67, 114, 0, + 116, 82, 71, 66, 87, 104, + 105, 116, 101, 0, 83, 97, + 109, 112, 108, 101, 114, 83, + 116, 97, 116, 101, 0, 28, + 3, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, + 0, 0, 0, 76, 97, 121, + 101, 114, 84, 101, 120, 116, + 117, 114, 101, 83, 97, 109, + 112, 108, 101, 114, 76, 105, + 110, 101, 97, 114, 0, 1, + 0, 0, 0, 2, 0, 0, + 0, 21, 0, 0, 0, 1, + 0, 0, 0, 2, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 2, 0, 0, + 0, 3, 0, 0, 0, 76, + 97, 121, 101, 114, 84, 101, + 120, 116, 117, 114, 101, 83, + 97, 109, 112, 108, 101, 114, + 80, 111, 105, 110, 116, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 82, 101, 110, 100, 101, 114, + 82, 71, 66, 76, 97, 121, + 101, 114, 80, 114, 101, 109, + 117, 108, 0, 80, 48, 0, + 4, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 255, 255, 255, 255, + 24, 7, 0, 0, 68, 88, + 66, 67, 254, 249, 65, 252, + 64, 46, 192, 119, 73, 197, + 161, 234, 24, 1, 194, 131, + 1, 0, 0, 0, 24, 7, + 0, 0, 6, 0, 0, 0, + 56, 0, 0, 0, 164, 1, + 0, 0, 148, 3, 0, 0, + 16, 4, 0, 0, 140, 6, + 0, 0, 192, 6, 0, 0, + 65, 111, 110, 57, 100, 1, + 0, 0, 100, 1, 0, 0, + 0, 2, 254, 255, 0, 1, + 0, 0, 100, 0, 0, 0, + 5, 0, 36, 0, 0, 0, + 96, 0, 0, 0, 96, 0, + 0, 0, 36, 0, 1, 0, + 96, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 2, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 6, 0, + 1, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 6, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 4, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 2, 254, 255, 31, 0, + 0, 2, 5, 0, 0, 128, + 0, 0, 15, 144, 4, 0, + 0, 4, 0, 0, 3, 224, + 0, 0, 228, 144, 1, 0, + 238, 160, 1, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 1, 128, 0, 0, 85, 144, + 2, 0, 255, 160, 2, 0, + 85, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 0, 128, 4, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 1, 128, 0, 0, 0, 144, + 2, 0, 170, 160, 2, 0, + 0, 160, 4, 0, 0, 4, + 0, 0, 15, 128, 3, 0, + 228, 160, 1, 0, 0, 128, + 0, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 5, 0, + 228, 160, 2, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 6, 0, 228, 161, + 5, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 85, 128, + 8, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 15, 128, + 7, 0, 228, 160, 0, 0, + 0, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 15, 128, 9, 0, 228, 160, + 0, 0, 170, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 15, 128, 10, 0, + 228, 160, 0, 0, 255, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 255, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 12, 192, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 232, 1, 0, 0, + 64, 0, 1, 0, 122, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 2, 0, 0, 0, 4, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 0, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 2, 0, + 0, 0, 50, 0, 0, 11, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 0, 0, 0, 0, 230, 138, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 0, 0, + 0, 8, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 0, 0, 0, 9, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 128, + 65, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 1, 0, 0, 0, + 86, 5, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 166, 10, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 50, 32, 16, 0, 1, 0, + 0, 0, 70, 16, 16, 0, + 0, 0, 0, 0, 230, 138, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 11, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 82, 68, 69, 70, 116, 2, + 0, 0, 3, 0, 0, 0, + 168, 0, 0, 0, 3, 0, + 0, 0, 28, 0, 0, 0, + 0, 4, 254, 255, 0, 1, + 0, 0, 64, 2, 0, 0, + 124, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 152, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 101, 114, 76, 97, 121, + 101, 114, 0, 80, 101, 114, + 79, 99, 99, 97, 115, 105, + 111, 110, 97, 108, 76, 97, + 121, 101, 114, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 77, 97, 110, 97, 103, 101, + 114, 0, 124, 0, 0, 0, + 4, 0, 0, 0, 240, 0, + 0, 0, 112, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 133, 0, 0, 0, + 2, 0, 0, 0, 188, 1, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, + 1, 0, 0, 0, 28, 2, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 80, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 112, 1, 0, 0, + 16, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 123, 1, 0, 0, + 32, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 140, 1, 0, 0, 0, 0, + 0, 0, 156, 1, 0, 0, + 48, 0, 0, 0, 64, 0, + 0, 0, 2, 0, 0, 0, + 172, 1, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 102, 76, 97, + 121, 101, 114, 79, 112, 97, + 99, 105, 116, 121, 0, 171, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 236, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 16, 2, 0, 0, + 16, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 52, 2, 0, 0, + 0, 0, 0, 0, 64, 0, + 0, 0, 2, 0, 0, 0, + 172, 1, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 57, 46, 50, 55, 46, + 57, 53, 50, 46, 51, 48, + 50, 50, 0, 171, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 3, 0, 0, 80, 79, + 83, 73, 84, 73, 79, 78, + 0, 171, 171, 171, 79, 83, + 71, 78, 80, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 12, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 171, 171, 8, 4, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 84, 4, + 0, 0, 68, 88, 66, 67, + 170, 213, 87, 132, 192, 216, + 64, 34, 189, 70, 85, 214, + 198, 9, 122, 139, 1, 0, + 0, 0, 84, 4, 0, 0, + 6, 0, 0, 0, 56, 0, + 0, 0, 204, 0, 0, 0, + 136, 1, 0, 0, 4, 2, + 0, 0, 200, 3, 0, 0, + 32, 4, 0, 0, 65, 111, + 110, 57, 140, 0, 0, 0, + 140, 0, 0, 0, 0, 2, + 255, 255, 88, 0, 0, 0, + 52, 0, 0, 0, 1, 0, + 40, 0, 0, 0, 52, 0, + 0, 0, 52, 0, 1, 0, + 36, 0, 0, 0, 52, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 2, + 255, 255, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 0, 0, 0, 160, 1, 0, + 0, 2, 0, 0, 8, 128, + 0, 0, 0, 160, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 180, 0, 0, 0, 64, 0, + 0, 0, 45, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 0, 0, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 0, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 0, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 114, 32, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 6, 130, 32, + 16, 0, 0, 0, 0, 0, + 10, 128, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 116, 0, 0, 0, + 4, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 82, 68, 69, 70, + 188, 1, 0, 0, 1, 0, + 0, 0, 164, 0, 0, 0, + 3, 0, 0, 0, 28, 0, + 0, 0, 0, 4, 255, 255, + 0, 1, 0, 0, 136, 1, + 0, 0, 124, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 150, 0, + 0, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 4, 0, + 0, 0, 255, 255, 255, 255, + 0, 0, 0, 0, 1, 0, + 0, 0, 12, 0, 0, 0, + 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 76, 97, 121, 101, + 114, 84, 101, 120, 116, 117, + 114, 101, 83, 97, 109, 112, + 108, 101, 114, 76, 105, 110, + 101, 97, 114, 0, 116, 82, + 71, 66, 0, 80, 101, 114, + 76, 97, 121, 101, 114, 0, + 155, 0, 0, 0, 4, 0, + 0, 0, 188, 0, 0, 0, + 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 28, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 44, 1, + 0, 0, 0, 0, 0, 0, + 60, 1, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 44, 1, + 0, 0, 0, 0, 0, 0, + 71, 1, 0, 0, 32, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 88, 1, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 48, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 118, 84, 101, 120, 116, 117, + 114, 101, 67, 111, 111, 114, + 100, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 76, 97, 121, + 101, 114, 81, 117, 97, 100, + 0, 102, 76, 97, 121, 101, + 114, 79, 112, 97, 99, 105, + 116, 121, 0, 171, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 57, + 46, 50, 55, 46, 57, 53, + 50, 46, 51, 48, 50, 50, + 0, 171, 171, 171, 73, 83, + 71, 78, 80, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 3, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 171, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 83, 86, 95, 84, 97, 114, + 103, 101, 116, 0, 171, 171, + 56, 11, 0, 0, 0, 0, + 0, 0, 82, 101, 110, 100, + 101, 114, 82, 71, 66, 76, + 97, 121, 101, 114, 80, 114, + 101, 109, 117, 108, 80, 111, + 105, 110, 116, 0, 4, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 255, 255, 255, 255, 24, 7, + 0, 0, 68, 88, 66, 67, + 254, 249, 65, 252, 64, 46, + 192, 119, 73, 197, 161, 234, + 24, 1, 194, 131, 1, 0, + 0, 0, 24, 7, 0, 0, + 6, 0, 0, 0, 56, 0, + 0, 0, 164, 1, 0, 0, + 148, 3, 0, 0, 16, 4, + 0, 0, 140, 6, 0, 0, + 192, 6, 0, 0, 65, 111, + 110, 57, 100, 1, 0, 0, + 100, 1, 0, 0, 0, 2, + 254, 255, 0, 1, 0, 0, + 100, 0, 0, 0, 5, 0, + 36, 0, 0, 0, 96, 0, + 0, 0, 96, 0, 0, 0, + 36, 0, 1, 0, 96, 0, + 0, 0, 0, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 2, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 1, 0, + 5, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, + 6, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 4, 0, + 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, + 254, 255, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 4, 0, 0, 4, + 0, 0, 3, 224, 0, 0, + 228, 144, 1, 0, 238, 160, + 1, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 1, 128, + 0, 0, 85, 144, 2, 0, + 255, 160, 2, 0, 85, 160, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 0, 128, + 4, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 1, 128, + 0, 0, 0, 144, 2, 0, + 170, 160, 2, 0, 0, 160, + 4, 0, 0, 4, 0, 0, + 15, 128, 3, 0, 228, 160, + 1, 0, 0, 128, 0, 0, + 228, 128, 2, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 5, 0, 228, 160, + 2, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 6, 0, 228, 161, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 85, 128, 8, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 15, 128, 7, 0, + 228, 160, 0, 0, 0, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 1, 0, 15, 128, + 9, 0, 228, 160, 0, 0, + 170, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 128, 10, 0, 228, 160, + 0, 0, 255, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 255, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 12, 192, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 232, 1, 0, 0, 64, 0, + 1, 0, 122, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 2, 0, + 0, 0, 4, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 0, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 1, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, + 50, 0, 0, 11, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 16, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 70, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 0, 0, 0, 8, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 3, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 11, 50, 32, + 16, 0, 1, 0, 0, 0, + 70, 16, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 70, 128, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 11, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 68, + 69, 70, 116, 2, 0, 0, + 3, 0, 0, 0, 168, 0, + 0, 0, 3, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 64, 2, 0, 0, 124, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 0, 80, 101, 114, 79, 99, + 99, 97, 115, 105, 111, 110, + 97, 108, 76, 97, 121, 101, + 114, 0, 80, 101, 114, 76, + 97, 121, 101, 114, 77, 97, + 110, 97, 103, 101, 114, 0, + 124, 0, 0, 0, 4, 0, + 0, 0, 240, 0, 0, 0, + 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 133, 0, 0, 0, 2, 0, + 0, 0, 188, 1, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 1, 0, + 0, 0, 28, 2, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 80, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 96, 1, + 0, 0, 0, 0, 0, 0, + 112, 1, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 96, 1, + 0, 0, 0, 0, 0, 0, + 123, 1, 0, 0, 32, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 140, 1, + 0, 0, 0, 0, 0, 0, + 156, 1, 0, 0, 48, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 172, 1, + 0, 0, 0, 0, 0, 0, + 118, 84, 101, 120, 116, 117, + 114, 101, 67, 111, 111, 114, + 100, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 76, 97, 121, + 101, 114, 81, 117, 97, 100, + 0, 102, 76, 97, 121, 101, + 114, 79, 112, 97, 99, 105, + 116, 121, 0, 171, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 236, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 16, 2, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 52, 2, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 172, 1, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 57, + 46, 50, 55, 46, 57, 53, + 50, 46, 51, 48, 50, 50, + 0, 171, 171, 171, 73, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 3, + 0, 0, 80, 79, 83, 73, + 84, 73, 79, 78, 0, 171, + 171, 171, 79, 83, 71, 78, + 80, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 12, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 171, 171, + 226, 15, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 84, 4, 0, 0, + 68, 88, 66, 67, 146, 3, + 215, 66, 245, 177, 6, 57, + 16, 82, 147, 232, 61, 101, + 156, 116, 1, 0, 0, 0, + 84, 4, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 204, 0, 0, 0, 136, 1, + 0, 0, 4, 2, 0, 0, + 200, 3, 0, 0, 32, 4, + 0, 0, 65, 111, 110, 57, + 140, 0, 0, 0, 140, 0, + 0, 0, 0, 2, 255, 255, + 88, 0, 0, 0, 52, 0, + 0, 0, 1, 0, 40, 0, + 0, 0, 52, 0, 0, 0, + 52, 0, 1, 0, 36, 0, + 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 255, 255, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 176, + 0, 8, 228, 160, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 228, 128, 0, 0, + 0, 160, 1, 0, 0, 2, + 0, 0, 8, 128, 0, 0, + 0, 160, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 180, 0, + 0, 0, 64, 0, 0, 0, + 45, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 98, 16, 0, 3, 50, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 0, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 114, 32, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 0, 0, 0, 0, 6, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 130, 32, 16, 0, + 0, 0, 0, 0, 10, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 4, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 82, 68, 69, 70, 188, 1, + 0, 0, 1, 0, 0, 0, + 164, 0, 0, 0, 3, 0, + 0, 0, 28, 0, 0, 0, + 0, 4, 255, 255, 0, 1, + 0, 0, 136, 1, 0, 0, + 124, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 149, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 0, 0, + 0, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 154, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 76, 97, 121, 101, 114, 84, + 101, 120, 116, 117, 114, 101, + 83, 97, 109, 112, 108, 101, + 114, 80, 111, 105, 110, 116, + 0, 116, 82, 71, 66, 0, + 80, 101, 114, 76, 97, 121, + 101, 114, 0, 171, 154, 0, + 0, 0, 4, 0, 0, 0, + 188, 0, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 1, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 44, 1, 0, 0, + 0, 0, 0, 0, 60, 1, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 44, 1, 0, 0, + 0, 0, 0, 0, 71, 1, + 0, 0, 32, 0, 0, 0, + 4, 0, 0, 0, 2, 0, + 0, 0, 88, 1, 0, 0, + 0, 0, 0, 0, 104, 1, + 0, 0, 48, 0, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 120, 1, 0, 0, + 0, 0, 0, 0, 118, 84, + 101, 120, 116, 117, 114, 101, + 67, 111, 111, 114, 100, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 76, 97, 121, 101, 114, + 81, 117, 97, 100, 0, 102, + 76, 97, 121, 101, 114, 79, + 112, 97, 99, 105, 116, 121, + 0, 171, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 76, 97, 121, + 101, 114, 84, 114, 97, 110, + 115, 102, 111, 114, 109, 0, + 3, 0, 3, 0, 4, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 57, 46, 50, + 55, 46, 57, 53, 50, 46, + 51, 48, 50, 50, 0, 171, + 171, 171, 73, 83, 71, 78, + 80, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 3, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 171, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171, 18, 23, + 0, 0, 0, 0, 0, 0, + 82, 101, 110, 100, 101, 114, + 82, 71, 66, 65, 76, 97, + 121, 101, 114, 80, 114, 101, + 109, 117, 108, 0, 4, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 255, 255, 255, 255, 24, 7, + 0, 0, 68, 88, 66, 67, + 254, 249, 65, 252, 64, 46, + 192, 119, 73, 197, 161, 234, + 24, 1, 194, 131, 1, 0, + 0, 0, 24, 7, 0, 0, + 6, 0, 0, 0, 56, 0, + 0, 0, 164, 1, 0, 0, + 148, 3, 0, 0, 16, 4, + 0, 0, 140, 6, 0, 0, + 192, 6, 0, 0, 65, 111, + 110, 57, 100, 1, 0, 0, + 100, 1, 0, 0, 0, 2, + 254, 255, 0, 1, 0, 0, + 100, 0, 0, 0, 5, 0, + 36, 0, 0, 0, 96, 0, + 0, 0, 96, 0, 0, 0, + 36, 0, 1, 0, 96, 0, + 0, 0, 0, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 2, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 1, 0, + 5, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, + 6, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 4, 0, + 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, + 254, 255, 31, 0, 0, 2, + 5, 0, 0, 128, 0, 0, + 15, 144, 4, 0, 0, 4, + 0, 0, 3, 224, 0, 0, + 228, 144, 1, 0, 238, 160, + 1, 0, 228, 160, 4, 0, + 0, 4, 0, 0, 1, 128, + 0, 0, 85, 144, 2, 0, + 255, 160, 2, 0, 85, 160, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 0, 128, + 4, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 1, 128, + 0, 0, 0, 144, 2, 0, + 170, 160, 2, 0, 0, 160, + 4, 0, 0, 4, 0, 0, + 15, 128, 3, 0, 228, 160, + 1, 0, 0, 128, 0, 0, + 228, 128, 2, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 5, 0, 228, 160, + 2, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 6, 0, 228, 161, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 85, 128, 8, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 15, 128, 7, 0, + 228, 160, 0, 0, 0, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 1, 0, 15, 128, + 9, 0, 228, 160, 0, 0, + 170, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 128, 10, 0, 228, 160, + 0, 0, 255, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 3, 192, 0, 0, + 255, 128, 0, 0, 228, 160, + 0, 0, 228, 128, 1, 0, + 0, 2, 0, 0, 12, 192, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 232, 1, 0, 0, 64, 0, + 1, 0, 122, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 2, 0, + 0, 0, 4, 0, 0, 0, + 95, 0, 0, 3, 50, 16, + 16, 0, 0, 0, 0, 0, + 103, 0, 0, 4, 242, 32, + 16, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 50, 32, 16, 0, + 1, 0, 0, 0, 104, 0, + 0, 2, 2, 0, 0, 0, + 50, 0, 0, 11, 50, 0, + 16, 0, 0, 0, 0, 0, + 70, 16, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 70, 128, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 0, 0, 0, 8, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 3, 0, + 0, 0, 246, 15, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 11, 50, 32, + 16, 0, 1, 0, 0, 0, + 70, 16, 16, 0, 0, 0, + 0, 0, 230, 138, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 70, 128, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 11, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 68, + 69, 70, 116, 2, 0, 0, + 3, 0, 0, 0, 168, 0, + 0, 0, 3, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 254, 255, 0, 1, 0, 0, + 64, 2, 0, 0, 124, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 133, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 0, 80, 101, 114, 79, 99, + 99, 97, 115, 105, 111, 110, + 97, 108, 76, 97, 121, 101, + 114, 0, 80, 101, 114, 76, + 97, 121, 101, 114, 77, 97, + 110, 97, 103, 101, 114, 0, + 124, 0, 0, 0, 4, 0, + 0, 0, 240, 0, 0, 0, + 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 133, 0, 0, 0, 2, 0, + 0, 0, 188, 1, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 1, 0, + 0, 0, 28, 2, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 80, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 96, 1, + 0, 0, 0, 0, 0, 0, + 112, 1, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 96, 1, + 0, 0, 0, 0, 0, 0, + 123, 1, 0, 0, 32, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 140, 1, + 0, 0, 0, 0, 0, 0, + 156, 1, 0, 0, 48, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 172, 1, + 0, 0, 0, 0, 0, 0, + 118, 84, 101, 120, 116, 117, + 114, 101, 67, 111, 111, 114, + 100, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 76, 97, 121, + 101, 114, 81, 117, 97, 100, + 0, 102, 76, 97, 121, 101, + 114, 79, 112, 97, 99, 105, + 116, 121, 0, 171, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 236, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 2, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 16, 2, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 118, 82, 101, 110, 100, 101, + 114, 84, 97, 114, 103, 101, + 116, 79, 102, 102, 115, 101, + 116, 0, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 52, 2, 0, 0, 0, 0, + 0, 0, 64, 0, 0, 0, + 2, 0, 0, 0, 172, 1, + 0, 0, 0, 0, 0, 0, + 109, 80, 114, 111, 106, 101, + 99, 116, 105, 111, 110, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 57, + 46, 50, 55, 46, 57, 53, + 50, 46, 51, 48, 50, 50, + 0, 171, 171, 171, 73, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 3, 3, + 0, 0, 80, 79, 83, 73, + 84, 73, 79, 78, 0, 171, + 171, 171, 79, 83, 71, 78, + 80, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 12, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 171, 171, + 184, 27, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 48, 4, 0, 0, + 68, 88, 66, 67, 135, 78, + 217, 178, 82, 246, 12, 136, + 40, 218, 112, 36, 133, 68, + 115, 32, 1, 0, 0, 0, + 48, 4, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 192, 0, 0, 0, 100, 1, + 0, 0, 224, 1, 0, 0, + 164, 3, 0, 0, 252, 3, + 0, 0, 65, 111, 110, 57, + 128, 0, 0, 0, 128, 0, + 0, 0, 0, 2, 255, 255, + 76, 0, 0, 0, 52, 0, + 0, 0, 1, 0, 40, 0, + 0, 0, 52, 0, 0, 0, + 52, 0, 1, 0, 36, 0, + 0, 0, 52, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 255, 255, + 31, 0, 0, 2, 0, 0, + 0, 128, 0, 0, 3, 176, + 31, 0, 0, 2, 0, 0, + 0, 144, 0, 8, 15, 160, + 66, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 176, + 0, 8, 228, 160, 5, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 0, 0, + 0, 160, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 156, 0, + 0, 0, 64, 0, 0, 0, + 39, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 90, 0, 0, 3, + 0, 96, 16, 0, 0, 0, + 0, 0, 88, 24, 0, 4, + 0, 112, 16, 0, 0, 0, + 0, 0, 85, 85, 0, 0, + 98, 16, 0, 3, 50, 16, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 104, 0, 0, 2, 1, 0, + 0, 0, 69, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 1, 0, 0, 0, 70, 126, + 16, 0, 0, 0, 0, 0, + 0, 96, 16, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 6, 128, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 82, 68, 69, 70, 188, 1, + 0, 0, 1, 0, 0, 0, + 164, 0, 0, 0, 3, 0, + 0, 0, 28, 0, 0, 0, + 0, 4, 255, 255, 0, 1, + 0, 0, 136, 1, 0, 0, + 124, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 150, 0, 0, 0, + 2, 0, 0, 0, 5, 0, + 0, 0, 4, 0, 0, 0, + 255, 255, 255, 255, 0, 0, + 0, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 76, 97, 121, 101, 114, 84, + 101, 120, 116, 117, 114, 101, + 83, 97, 109, 112, 108, 101, + 114, 76, 105, 110, 101, 97, + 114, 0, 116, 82, 71, 66, + 0, 80, 101, 114, 76, 97, + 121, 101, 114, 0, 155, 0, + 0, 0, 4, 0, 0, 0, + 188, 0, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 1, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 44, 1, 0, 0, + 0, 0, 0, 0, 60, 1, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 44, 1, 0, 0, + 0, 0, 0, 0, 71, 1, + 0, 0, 32, 0, 0, 0, + 4, 0, 0, 0, 2, 0, + 0, 0, 88, 1, 0, 0, + 0, 0, 0, 0, 104, 1, + 0, 0, 48, 0, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 120, 1, 0, 0, + 0, 0, 0, 0, 118, 84, + 101, 120, 116, 117, 114, 101, + 67, 111, 111, 114, 100, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 76, 97, 121, 101, 114, + 81, 117, 97, 100, 0, 102, + 76, 97, 121, 101, 114, 79, + 112, 97, 99, 105, 116, 121, + 0, 171, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 76, 97, 121, + 101, 114, 84, 114, 97, 110, + 115, 102, 111, 114, 109, 0, + 3, 0, 3, 0, 4, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 57, 46, 50, + 55, 46, 57, 53, 50, 46, + 51, 48, 50, 50, 0, 171, + 171, 171, 73, 83, 71, 78, + 80, 0, 0, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 56, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 3, 3, 0, 0, + 83, 86, 95, 80, 111, 115, + 105, 116, 105, 111, 110, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 171, 171, 171, + 79, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 83, 86, + 95, 84, 97, 114, 103, 101, + 116, 0, 171, 171, 232, 34, + 0, 0, 0, 0, 0, 0, + 82, 101, 110, 100, 101, 114, + 82, 71, 66, 65, 76, 97, + 121, 101, 114, 78, 111, 110, + 80, 114, 101, 109, 117, 108, + 0, 4, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 3, + 0, 0, 0, 255, 255, 255, + 255, 24, 7, 0, 0, 68, + 88, 66, 67, 254, 249, 65, + 252, 64, 46, 192, 119, 73, + 197, 161, 234, 24, 1, 194, + 131, 1, 0, 0, 0, 24, + 7, 0, 0, 6, 0, 0, + 0, 56, 0, 0, 0, 164, + 1, 0, 0, 148, 3, 0, + 0, 16, 4, 0, 0, 140, + 6, 0, 0, 192, 6, 0, + 0, 65, 111, 110, 57, 100, + 1, 0, 0, 100, 1, 0, + 0, 0, 2, 254, 255, 0, + 1, 0, 0, 100, 0, 0, + 0, 5, 0, 36, 0, 0, + 0, 96, 0, 0, 0, 96, + 0, 0, 0, 36, 0, 1, + 0, 96, 0, 0, 0, 0, + 0, 2, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 2, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 6, + 0, 1, 0, 5, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 1, 0, 6, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 4, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 2, 254, 255, 31, + 0, 0, 2, 5, 0, 0, + 128, 0, 0, 15, 144, 4, + 0, 0, 4, 0, 0, 3, + 224, 0, 0, 228, 144, 1, + 0, 238, 160, 1, 0, 228, + 160, 4, 0, 0, 4, 0, + 0, 1, 128, 0, 0, 85, + 144, 2, 0, 255, 160, 2, + 0, 85, 160, 5, 0, 0, + 3, 0, 0, 15, 128, 0, + 0, 0, 128, 4, 0, 228, + 160, 4, 0, 0, 4, 1, + 0, 1, 128, 0, 0, 0, + 144, 2, 0, 170, 160, 2, + 0, 0, 160, 4, 0, 0, + 4, 0, 0, 15, 128, 3, + 0, 228, 160, 1, 0, 0, + 128, 0, 0, 228, 128, 2, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 228, 128, 5, + 0, 228, 160, 2, 0, 0, + 3, 0, 0, 15, 128, 0, + 0, 228, 128, 6, 0, 228, + 161, 5, 0, 0, 3, 1, + 0, 15, 128, 0, 0, 85, + 128, 8, 0, 228, 160, 4, + 0, 0, 4, 1, 0, 15, + 128, 7, 0, 228, 160, 0, + 0, 0, 128, 1, 0, 228, + 128, 4, 0, 0, 4, 1, + 0, 15, 128, 9, 0, 228, + 160, 0, 0, 170, 128, 1, + 0, 228, 128, 4, 0, 0, + 4, 0, 0, 15, 128, 10, + 0, 228, 160, 0, 0, 255, + 128, 1, 0, 228, 128, 4, + 0, 0, 4, 0, 0, 3, + 192, 0, 0, 255, 128, 0, + 0, 228, 160, 0, 0, 228, + 128, 1, 0, 0, 2, 0, + 0, 12, 192, 0, 0, 228, + 128, 255, 255, 0, 0, 83, + 72, 68, 82, 232, 1, 0, + 0, 64, 0, 1, 0, 122, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 0, + 0, 0, 0, 7, 0, 0, + 0, 89, 0, 0, 4, 70, + 142, 32, 0, 1, 0, 0, + 0, 1, 0, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 2, 0, 0, 0, 4, + 0, 0, 0, 95, 0, 0, + 3, 50, 16, 16, 0, 0, + 0, 0, 0, 103, 0, 0, + 4, 242, 32, 16, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 101, 0, 0, 3, 50, + 32, 16, 0, 1, 0, 0, + 0, 104, 0, 0, 2, 2, + 0, 0, 0, 50, 0, 0, + 11, 50, 0, 16, 0, 0, + 0, 0, 0, 70, 16, 16, + 0, 0, 0, 0, 0, 230, + 138, 32, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 70, + 128, 32, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 56, + 0, 0, 8, 242, 0, 16, + 0, 1, 0, 0, 0, 86, + 5, 16, 0, 0, 0, 0, + 0, 70, 142, 32, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 50, 0, 0, 10, 242, + 0, 16, 0, 0, 0, 0, + 0, 70, 142, 32, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 6, 0, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 1, 0, 0, 0, 0, + 0, 0, 8, 242, 0, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 0, 0, 0, + 0, 70, 142, 32, 0, 0, + 0, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 9, 242, + 0, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 128, 65, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 56, 0, 0, 8, 242, + 0, 16, 0, 1, 0, 0, + 0, 86, 5, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 0, 2, 0, 0, 0, 1, + 0, 0, 0, 50, 0, 0, + 10, 242, 0, 16, 0, 1, + 0, 0, 0, 70, 142, 32, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 1, 0, 0, + 0, 50, 0, 0, 10, 242, + 0, 16, 0, 1, 0, 0, + 0, 70, 142, 32, 0, 2, + 0, 0, 0, 2, 0, 0, + 0, 166, 10, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 1, 0, 0, 0, 50, + 0, 0, 10, 242, 32, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 0, 2, 0, 0, + 0, 3, 0, 0, 0, 246, + 15, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 1, + 0, 0, 0, 50, 0, 0, + 11, 50, 32, 16, 0, 1, + 0, 0, 0, 70, 16, 16, + 0, 0, 0, 0, 0, 230, + 138, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 70, + 128, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 62, + 0, 0, 1, 83, 84, 65, + 84, 116, 0, 0, 0, 11, + 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 82, 68, 69, 70, 116, + 2, 0, 0, 3, 0, 0, + 0, 168, 0, 0, 0, 3, + 0, 0, 0, 28, 0, 0, + 0, 0, 4, 254, 255, 0, + 1, 0, 0, 64, 2, 0, + 0, 124, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 152, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 80, 101, 114, 76, 97, + 121, 101, 114, 0, 80, 101, + 114, 79, 99, 99, 97, 115, + 105, 111, 110, 97, 108, 76, + 97, 121, 101, 114, 0, 80, + 101, 114, 76, 97, 121, 101, + 114, 77, 97, 110, 97, 103, + 101, 114, 0, 124, 0, 0, + 0, 4, 0, 0, 0, 240, + 0, 0, 0, 112, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, + 0, 2, 0, 0, 0, 188, + 1, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 152, 0, 0, + 0, 1, 0, 0, 0, 28, + 2, 0, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 80, 1, 0, + 0, 0, 0, 0, 0, 16, + 0, 0, 0, 2, 0, 0, + 0, 96, 1, 0, 0, 0, + 0, 0, 0, 112, 1, 0, + 0, 16, 0, 0, 0, 16, + 0, 0, 0, 2, 0, 0, + 0, 96, 1, 0, 0, 0, + 0, 0, 0, 123, 1, 0, + 0, 32, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 140, 1, 0, 0, 0, + 0, 0, 0, 156, 1, 0, + 0, 48, 0, 0, 0, 64, + 0, 0, 0, 2, 0, 0, + 0, 172, 1, 0, 0, 0, + 0, 0, 0, 118, 84, 101, + 120, 116, 117, 114, 101, 67, + 111, 111, 114, 100, 115, 0, + 171, 1, 0, 3, 0, 1, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118, + 76, 97, 121, 101, 114, 81, + 117, 97, 100, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 171, 0, 0, 3, + 0, 1, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 109, 76, 97, 121, 101, + 114, 84, 114, 97, 110, 115, + 102, 111, 114, 109, 0, 3, + 0, 3, 0, 4, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 236, 1, 0, + 0, 0, 0, 0, 0, 16, + 0, 0, 0, 2, 0, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 16, 2, 0, + 0, 16, 0, 0, 0, 16, + 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 118, 82, 101, + 110, 100, 101, 114, 84, 97, + 114, 103, 101, 116, 79, 102, + 102, 115, 101, 116, 0, 1, + 0, 3, 0, 1, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 102, 76, 97, + 121, 101, 114, 67, 111, 108, + 111, 114, 0, 52, 2, 0, + 0, 0, 0, 0, 0, 64, + 0, 0, 0, 2, 0, 0, + 0, 172, 1, 0, 0, 0, + 0, 0, 0, 109, 80, 114, + 111, 106, 101, 99, 116, 105, + 111, 110, 0, 77, 105, 99, + 114, 111, 115, 111, 102, 116, + 32, 40, 82, 41, 32, 72, + 76, 83, 76, 32, 83, 104, + 97, 100, 101, 114, 32, 67, + 111, 109, 112, 105, 108, 101, + 114, 32, 57, 46, 50, 55, + 46, 57, 53, 50, 46, 51, + 48, 50, 50, 0, 171, 171, + 171, 73, 83, 71, 78, 44, + 0, 0, 0, 1, 0, 0, + 0, 8, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 3, 3, 0, 0, 80, + 79, 83, 73, 84, 73, 79, + 78, 0, 171, 171, 171, 79, + 83, 71, 78, 80, 0, 0, + 0, 2, 0, 0, 0, 8, + 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 68, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 3, + 12, 0, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 171, 171, 171, 109, 39, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 48, + 4, 0, 0, 68, 88, 66, + 67, 135, 78, 217, 178, 82, + 246, 12, 136, 40, 218, 112, + 36, 133, 68, 115, 32, 1, + 0, 0, 0, 48, 4, 0, + 0, 6, 0, 0, 0, 56, + 0, 0, 0, 192, 0, 0, + 0, 100, 1, 0, 0, 224, + 1, 0, 0, 164, 3, 0, + 0, 252, 3, 0, 0, 65, + 111, 110, 57, 128, 0, 0, + 0, 128, 0, 0, 0, 0, + 2, 255, 255, 76, 0, 0, + 0, 52, 0, 0, 0, 1, + 0, 40, 0, 0, 0, 52, + 0, 0, 0, 52, 0, 1, + 0, 36, 0, 0, 0, 52, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 1, + 2, 255, 255, 31, 0, 0, + 2, 0, 0, 0, 128, 0, + 0, 3, 176, 31, 0, 0, + 2, 0, 0, 0, 144, 0, + 8, 15, 160, 66, 0, 0, + 3, 0, 0, 15, 128, 0, + 0, 228, 176, 0, 8, 228, + 160, 5, 0, 0, 3, 0, + 0, 15, 128, 0, 0, 228, + 128, 0, 0, 0, 160, 1, + 0, 0, 2, 0, 8, 15, + 128, 0, 0, 228, 128, 255, + 255, 0, 0, 83, 72, 68, + 82, 156, 0, 0, 0, 64, + 0, 0, 0, 39, 0, 0, + 0, 89, 0, 0, 4, 70, + 142, 32, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 90, + 0, 0, 3, 0, 96, 16, + 0, 0, 0, 0, 0, 88, + 24, 0, 4, 0, 112, 16, + 0, 0, 0, 0, 0, 85, + 85, 0, 0, 98, 16, 0, + 3, 50, 16, 16, 0, 1, + 0, 0, 0, 101, 0, 0, + 3, 242, 32, 16, 0, 0, + 0, 0, 0, 104, 0, 0, + 2, 1, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 0, 0, 0, 0, 70, + 16, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 0, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 56, + 0, 0, 8, 242, 32, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 0, 0, 0, + 0, 6, 128, 32, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 188, 1, 0, 0, 1, + 0, 0, 0, 164, 0, 0, + 0, 3, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 255, + 255, 0, 1, 0, 0, 136, + 1, 0, 0, 124, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 150, + 0, 0, 0, 2, 0, 0, + 0, 5, 0, 0, 0, 4, + 0, 0, 0, 255, 255, 255, + 255, 0, 0, 0, 0, 1, + 0, 0, 0, 12, 0, 0, + 0, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 76, 97, 121, + 101, 114, 84, 101, 120, 116, + 117, 114, 101, 83, 97, 109, + 112, 108, 101, 114, 76, 105, + 110, 101, 97, 114, 0, 116, + 82, 71, 66, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 0, 155, 0, 0, 0, 4, + 0, 0, 0, 188, 0, 0, + 0, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 28, 1, 0, 0, 0, + 0, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 44, + 1, 0, 0, 0, 0, 0, + 0, 60, 1, 0, 0, 16, + 0, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 44, + 1, 0, 0, 0, 0, 0, + 0, 71, 1, 0, 0, 32, + 0, 0, 0, 4, 0, 0, + 0, 2, 0, 0, 0, 88, + 1, 0, 0, 0, 0, 0, + 0, 104, 1, 0, 0, 48, + 0, 0, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 120, + 1, 0, 0, 0, 0, 0, + 0, 118, 84, 101, 120, 116, + 117, 114, 101, 67, 111, 111, + 114, 100, 115, 0, 171, 1, + 0, 3, 0, 1, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 76, 97, + 121, 101, 114, 81, 117, 97, + 100, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 171, 0, 0, 3, 0, 1, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 109, + 76, 97, 121, 101, 114, 84, + 114, 97, 110, 115, 102, 111, + 114, 109, 0, 3, 0, 3, + 0, 4, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 55, 46, 57, + 53, 50, 46, 51, 48, 50, + 50, 0, 171, 171, 171, 73, + 83, 71, 78, 80, 0, 0, + 0, 2, 0, 0, 0, 8, + 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 68, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 3, + 3, 0, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 171, 171, 171, 79, 83, 71, + 78, 44, 0, 0, 0, 1, + 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 83, 86, 95, 84, 97, + 114, 103, 101, 116, 0, 171, + 171, 157, 46, 0, 0, 0, + 0, 0, 0, 82, 101, 110, + 100, 101, 114, 82, 71, 66, + 65, 76, 97, 121, 101, 114, + 80, 114, 101, 109, 117, 108, + 80, 111, 105, 110, 116, 0, + 4, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 255, 255, 255, 255, + 24, 7, 0, 0, 68, 88, + 66, 67, 254, 249, 65, 252, + 64, 46, 192, 119, 73, 197, + 161, 234, 24, 1, 194, 131, + 1, 0, 0, 0, 24, 7, + 0, 0, 6, 0, 0, 0, + 56, 0, 0, 0, 164, 1, + 0, 0, 148, 3, 0, 0, + 16, 4, 0, 0, 140, 6, + 0, 0, 192, 6, 0, 0, + 65, 111, 110, 57, 100, 1, + 0, 0, 100, 1, 0, 0, + 0, 2, 254, 255, 0, 1, + 0, 0, 100, 0, 0, 0, + 5, 0, 36, 0, 0, 0, + 96, 0, 0, 0, 96, 0, + 0, 0, 36, 0, 1, 0, + 96, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 2, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 6, 0, + 1, 0, 5, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 1, 0, 6, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 4, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 2, 254, 255, 31, 0, + 0, 2, 5, 0, 0, 128, + 0, 0, 15, 144, 4, 0, + 0, 4, 0, 0, 3, 224, + 0, 0, 228, 144, 1, 0, + 238, 160, 1, 0, 228, 160, + 4, 0, 0, 4, 0, 0, + 1, 128, 0, 0, 85, 144, + 2, 0, 255, 160, 2, 0, + 85, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 0, 128, 4, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 1, 128, 0, 0, 0, 144, + 2, 0, 170, 160, 2, 0, + 0, 160, 4, 0, 0, 4, + 0, 0, 15, 128, 3, 0, + 228, 160, 1, 0, 0, 128, + 0, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 5, 0, + 228, 160, 2, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 6, 0, 228, 161, + 5, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 85, 128, + 8, 0, 228, 160, 4, 0, + 0, 4, 1, 0, 15, 128, + 7, 0, 228, 160, 0, 0, + 0, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 15, 128, 9, 0, 228, 160, + 0, 0, 170, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 15, 128, 10, 0, + 228, 160, 0, 0, 255, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 3, 192, + 0, 0, 255, 128, 0, 0, + 228, 160, 0, 0, 228, 128, + 1, 0, 0, 2, 0, 0, + 12, 192, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 232, 1, 0, 0, + 64, 0, 1, 0, 122, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 2, 0, 0, 0, 4, 0, + 0, 0, 95, 0, 0, 3, + 50, 16, 16, 0, 0, 0, + 0, 0, 103, 0, 0, 4, + 242, 32, 16, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 50, 32, + 16, 0, 1, 0, 0, 0, + 104, 0, 0, 2, 2, 0, + 0, 0, 50, 0, 0, 11, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 16, 0, + 0, 0, 0, 0, 230, 138, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 1, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 0, 0, + 0, 8, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 0, 0, 0, 9, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 128, + 65, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 1, 0, 0, 0, + 86, 5, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 1, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 166, 10, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 246, 15, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 11, + 50, 32, 16, 0, 1, 0, + 0, 0, 70, 16, 16, 0, + 0, 0, 0, 0, 230, 138, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 128, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 83, 84, 65, 84, + 116, 0, 0, 0, 11, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 82, 68, 69, 70, 116, 2, + 0, 0, 3, 0, 0, 0, + 168, 0, 0, 0, 3, 0, + 0, 0, 28, 0, 0, 0, + 0, 4, 254, 255, 0, 1, + 0, 0, 64, 2, 0, 0, + 124, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 133, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 152, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 80, 101, 114, 76, 97, 121, + 101, 114, 0, 80, 101, 114, + 79, 99, 99, 97, 115, 105, + 111, 110, 97, 108, 76, 97, + 121, 101, 114, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 77, 97, 110, 97, 103, 101, + 114, 0, 124, 0, 0, 0, + 4, 0, 0, 0, 240, 0, + 0, 0, 112, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 133, 0, 0, 0, + 2, 0, 0, 0, 188, 1, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, + 1, 0, 0, 0, 28, 2, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 80, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 112, 1, 0, 0, + 16, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 96, 1, 0, 0, 0, 0, + 0, 0, 123, 1, 0, 0, + 32, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 140, 1, 0, 0, 0, 0, + 0, 0, 156, 1, 0, 0, + 48, 0, 0, 0, 64, 0, + 0, 0, 2, 0, 0, 0, + 172, 1, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 102, 76, 97, + 121, 101, 114, 79, 112, 97, + 99, 105, 116, 121, 0, 171, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 236, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 2, 0, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 16, 2, 0, 0, + 16, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 67, 111, 108, 111, + 114, 0, 52, 2, 0, 0, + 0, 0, 0, 0, 64, 0, + 0, 0, 2, 0, 0, 0, + 172, 1, 0, 0, 0, 0, + 0, 0, 109, 80, 114, 111, + 106, 101, 99, 116, 105, 111, + 110, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 57, 46, 50, 55, 46, + 57, 53, 50, 46, 51, 48, + 50, 50, 0, 171, 171, 171, + 73, 83, 71, 78, 44, 0, + 0, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 3, 3, 0, 0, 80, 79, + 83, 73, 84, 73, 79, 78, + 0, 171, 171, 171, 79, 83, + 71, 78, 80, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 12, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 171, 171, 36, 51, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 48, 4, + 0, 0, 68, 88, 66, 67, + 15, 77, 243, 211, 185, 20, + 200, 151, 80, 95, 178, 168, + 167, 229, 221, 45, 1, 0, + 0, 0, 48, 4, 0, 0, + 6, 0, 0, 0, 56, 0, + 0, 0, 192, 0, 0, 0, + 100, 1, 0, 0, 224, 1, + 0, 0, 164, 3, 0, 0, + 252, 3, 0, 0, 65, 111, + 110, 57, 128, 0, 0, 0, + 128, 0, 0, 0, 0, 2, + 255, 255, 76, 0, 0, 0, + 52, 0, 0, 0, 1, 0, + 40, 0, 0, 0, 52, 0, + 0, 0, 52, 0, 1, 0, + 36, 0, 0, 0, 52, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 2, + 255, 255, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 0, 0, 0, 160, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0, 83, 72, 68, 82, + 156, 0, 0, 0, 64, 0, + 0, 0, 39, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 90, 0, + 0, 3, 0, 96, 16, 0, + 0, 0, 0, 0, 88, 24, + 0, 4, 0, 112, 16, 0, + 0, 0, 0, 0, 85, 85, + 0, 0, 98, 16, 0, 3, + 50, 16, 16, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 242, 32, 16, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 1, 0, 0, 0, 69, 0, + 0, 9, 242, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 1, 0, 0, 0, + 70, 126, 16, 0, 0, 0, + 0, 0, 0, 96, 16, 0, + 0, 0, 0, 0, 56, 0, + 0, 8, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 0, 0, 0, 0, + 6, 128, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 116, 0, 0, 0, + 3, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 82, 68, 69, 70, + 188, 1, 0, 0, 1, 0, + 0, 0, 164, 0, 0, 0, + 3, 0, 0, 0, 28, 0, + 0, 0, 0, 4, 255, 255, + 0, 1, 0, 0, 136, 1, + 0, 0, 124, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 149, 0, + 0, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 4, 0, + 0, 0, 255, 255, 255, 255, + 0, 0, 0, 0, 1, 0, + 0, 0, 12, 0, 0, 0, + 154, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 76, 97, 121, 101, + 114, 84, 101, 120, 116, 117, + 114, 101, 83, 97, 109, 112, + 108, 101, 114, 80, 111, 105, + 110, 116, 0, 116, 82, 71, + 66, 0, 80, 101, 114, 76, + 97, 121, 101, 114, 0, 171, + 154, 0, 0, 0, 4, 0, + 0, 0, 188, 0, 0, 0, + 112, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 28, 1, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 44, 1, + 0, 0, 0, 0, 0, 0, + 60, 1, 0, 0, 16, 0, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 44, 1, + 0, 0, 0, 0, 0, 0, + 71, 1, 0, 0, 32, 0, + 0, 0, 4, 0, 0, 0, + 2, 0, 0, 0, 88, 1, + 0, 0, 0, 0, 0, 0, + 104, 1, 0, 0, 48, 0, + 0, 0, 64, 0, 0, 0, + 0, 0, 0, 0, 120, 1, + 0, 0, 0, 0, 0, 0, + 118, 84, 101, 120, 116, 117, + 114, 101, 67, 111, 111, 114, + 100, 115, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 118, 76, 97, 121, + 101, 114, 81, 117, 97, 100, + 0, 102, 76, 97, 121, 101, + 114, 79, 112, 97, 99, 105, + 116, 121, 0, 171, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 76, + 97, 121, 101, 114, 84, 114, + 97, 110, 115, 102, 111, 114, + 109, 0, 3, 0, 3, 0, + 4, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 57, + 46, 50, 55, 46, 57, 53, + 50, 46, 51, 48, 50, 50, + 0, 171, 171, 171, 73, 83, + 71, 78, 80, 0, 0, 0, + 2, 0, 0, 0, 8, 0, + 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 3, 3, + 0, 0, 83, 86, 95, 80, + 111, 115, 105, 116, 105, 111, + 110, 0, 84, 69, 88, 67, + 79, 79, 82, 68, 0, 171, + 171, 171, 79, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 83, 86, 95, 84, 97, 114, + 103, 101, 116, 0, 171, 171, + 84, 58, 0, 0, 0, 0, + 0, 0, 82, 101, 110, 100, + 101, 114, 82, 71, 66, 65, + 76, 97, 121, 101, 114, 78, + 111, 110, 80, 114, 101, 109, + 117, 108, 80, 111, 105, 110, + 116, 0, 4, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 255, 255, + 255, 255, 24, 7, 0, 0, + 68, 88, 66, 67, 254, 249, + 65, 252, 64, 46, 192, 119, + 73, 197, 161, 234, 24, 1, + 194, 131, 1, 0, 0, 0, + 24, 7, 0, 0, 6, 0, + 0, 0, 56, 0, 0, 0, + 164, 1, 0, 0, 148, 3, + 0, 0, 16, 4, 0, 0, + 140, 6, 0, 0, 192, 6, + 0, 0, 65, 111, 110, 57, + 100, 1, 0, 0, 100, 1, + 0, 0, 0, 2, 254, 255, + 0, 1, 0, 0, 100, 0, + 0, 0, 5, 0, 36, 0, + 0, 0, 96, 0, 0, 0, + 96, 0, 0, 0, 36, 0, + 1, 0, 96, 0, 0, 0, + 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 2, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 6, 0, 1, 0, 5, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 1, 0, 6, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 4, 0, 7, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 254, 255, + 31, 0, 0, 2, 5, 0, + 0, 128, 0, 0, 15, 144, + 4, 0, 0, 4, 0, 0, + 3, 224, 0, 0, 228, 144, + 1, 0, 238, 160, 1, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 1, 128, 0, 0, + 85, 144, 2, 0, 255, 160, + 2, 0, 85, 160, 5, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 0, 128, 4, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 1, 128, 0, 0, + 0, 144, 2, 0, 170, 160, + 2, 0, 0, 160, 4, 0, + 0, 4, 0, 0, 15, 128, + 3, 0, 228, 160, 1, 0, + 0, 128, 0, 0, 228, 128, + 2, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 5, 0, 228, 160, 2, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 128, 6, 0, + 228, 161, 5, 0, 0, 3, + 1, 0, 15, 128, 0, 0, + 85, 128, 8, 0, 228, 160, + 4, 0, 0, 4, 1, 0, + 15, 128, 7, 0, 228, 160, + 0, 0, 0, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 1, 0, 15, 128, 9, 0, + 228, 160, 0, 0, 170, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 10, 0, 228, 160, 0, 0, + 255, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 3, 192, 0, 0, 255, 128, + 0, 0, 228, 160, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 12, 192, 0, 0, + 228, 128, 255, 255, 0, 0, + 83, 72, 68, 82, 232, 1, + 0, 0, 64, 0, 1, 0, + 122, 0, 0, 0, 89, 0, + 0, 4, 70, 142, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 89, 0, 0, 4, 70, 142, + 32, 0, 2, 0, 0, 0, + 4, 0, 0, 0, 95, 0, + 0, 3, 50, 16, 16, 0, + 0, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 101, 0, 0, 3, + 50, 32, 16, 0, 1, 0, + 0, 0, 104, 0, 0, 2, + 2, 0, 0, 0, 50, 0, + 0, 11, 50, 0, 16, 0, + 0, 0, 0, 0, 70, 16, + 16, 0, 0, 0, 0, 0, + 230, 138, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 70, 128, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 1, 0, 0, 0, + 86, 5, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 0, 0, 0, 8, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 70, 142, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 0, 9, + 242, 0, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 128, 65, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 1, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 70, 142, + 32, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 1, 0, 0, 0, 70, 142, + 32, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 6, 0, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 142, 32, 0, + 2, 0, 0, 0, 2, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 14, + 16, 0, 1, 0, 0, 0, + 50, 0, 0, 10, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 142, 32, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 246, 15, 16, 0, 0, 0, + 0, 0, 70, 14, 16, 0, + 1, 0, 0, 0, 50, 0, + 0, 11, 50, 32, 16, 0, + 1, 0, 0, 0, 70, 16, + 16, 0, 0, 0, 0, 0, + 230, 138, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 70, 128, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 116, 0, 0, 0, + 11, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 82, 68, 69, 70, + 116, 2, 0, 0, 3, 0, + 0, 0, 168, 0, 0, 0, + 3, 0, 0, 0, 28, 0, + 0, 0, 0, 4, 254, 255, + 0, 1, 0, 0, 64, 2, + 0, 0, 124, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 133, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 152, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 80, 101, 114, 76, + 97, 121, 101, 114, 0, 80, + 101, 114, 79, 99, 99, 97, + 115, 105, 111, 110, 97, 108, + 76, 97, 121, 101, 114, 0, + 80, 101, 114, 76, 97, 121, + 101, 114, 77, 97, 110, 97, + 103, 101, 114, 0, 124, 0, + 0, 0, 4, 0, 0, 0, + 240, 0, 0, 0, 112, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 133, 0, + 0, 0, 2, 0, 0, 0, + 188, 1, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 152, 0, + 0, 0, 1, 0, 0, 0, + 28, 2, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 80, 1, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 96, 1, 0, 0, + 0, 0, 0, 0, 112, 1, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 96, 1, 0, 0, + 0, 0, 0, 0, 123, 1, + 0, 0, 32, 0, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 140, 1, 0, 0, + 0, 0, 0, 0, 156, 1, + 0, 0, 48, 0, 0, 0, + 64, 0, 0, 0, 2, 0, + 0, 0, 172, 1, 0, 0, + 0, 0, 0, 0, 118, 84, + 101, 120, 116, 117, 114, 101, + 67, 111, 111, 114, 100, 115, + 0, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 118, 76, 97, 121, 101, 114, + 81, 117, 97, 100, 0, 102, + 76, 97, 121, 101, 114, 79, + 112, 97, 99, 105, 116, 121, + 0, 171, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 109, 76, 97, 121, + 101, 114, 84, 114, 97, 110, + 115, 102, 111, 114, 109, 0, + 3, 0, 3, 0, 4, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 236, 1, + 0, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 2, 0, + 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 16, 2, + 0, 0, 16, 0, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 118, 82, + 101, 110, 100, 101, 114, 84, + 97, 114, 103, 101, 116, 79, + 102, 102, 115, 101, 116, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 67, 111, + 108, 111, 114, 0, 52, 2, + 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 2, 0, + 0, 0, 172, 1, 0, 0, + 0, 0, 0, 0, 109, 80, + 114, 111, 106, 101, 99, 116, + 105, 111, 110, 0, 77, 105, + 99, 114, 111, 115, 111, 102, + 116, 32, 40, 82, 41, 32, + 72, 76, 83, 76, 32, 83, + 104, 97, 100, 101, 114, 32, + 67, 111, 109, 112, 105, 108, + 101, 114, 32, 57, 46, 50, + 55, 46, 57, 53, 50, 46, + 51, 48, 50, 50, 0, 171, + 171, 171, 73, 83, 71, 78, + 44, 0, 0, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, + 0, 0, 3, 3, 0, 0, + 80, 79, 83, 73, 84, 73, + 79, 78, 0, 171, 171, 171, + 79, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 12, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 171, 171, 222, 62, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 48, 4, 0, 0, 68, 88, + 66, 67, 15, 77, 243, 211, + 185, 20, 200, 151, 80, 95, + 178, 168, 167, 229, 221, 45, + 1, 0, 0, 0, 48, 4, + 0, 0, 6, 0, 0, 0, + 56, 0, 0, 0, 192, 0, + 0, 0, 100, 1, 0, 0, + 224, 1, 0, 0, 164, 3, + 0, 0, 252, 3, 0, 0, + 65, 111, 110, 57, 128, 0, + 0, 0, 128, 0, 0, 0, + 0, 2, 255, 255, 76, 0, + 0, 0, 52, 0, 0, 0, + 1, 0, 40, 0, 0, 0, + 52, 0, 0, 0, 52, 0, + 1, 0, 36, 0, 0, 0, + 52, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 1, 2, 255, 255, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 3, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 66, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 176, 0, 8, + 228, 160, 5, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 0, 0, 0, 160, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 128, + 255, 255, 0, 0, 83, 72, + 68, 82, 156, 0, 0, 0, + 64, 0, 0, 0, 39, 0, + 0, 0, 89, 0, 0, 4, + 70, 142, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 90, 0, 0, 3, 0, 96, + 16, 0, 0, 0, 0, 0, + 88, 24, 0, 4, 0, 112, + 16, 0, 0, 0, 0, 0, + 85, 85, 0, 0, 98, 16, + 0, 3, 50, 16, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 104, 0, + 0, 2, 1, 0, 0, 0, + 69, 0, 0, 9, 242, 0, + 16, 0, 0, 0, 0, 0, + 70, 16, 16, 0, 1, 0, + 0, 0, 70, 126, 16, 0, + 0, 0, 0, 0, 0, 96, + 16, 0, 0, 0, 0, 0, + 56, 0, 0, 8, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 0, 0, + 0, 0, 6, 128, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 116, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 68, + 69, 70, 188, 1, 0, 0, + 1, 0, 0, 0, 164, 0, + 0, 0, 3, 0, 0, 0, + 28, 0, 0, 0, 0, 4, + 255, 255, 0, 1, 0, 0, + 136, 1, 0, 0, 124, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 149, 0, 0, 0, 2, 0, + 0, 0, 5, 0, 0, 0, + 4, 0, 0, 0, 255, 255, + 255, 255, 0, 0, 0, 0, + 1, 0, 0, 0, 12, 0, + 0, 0, 154, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 76, 97, + 121, 101, 114, 84, 101, 120, + 116, 117, 114, 101, 83, 97, + 109, 112, 108, 101, 114, 80, + 111, 105, 110, 116, 0, 116, + 82, 71, 66, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 0, 171, 154, 0, 0, 0, + 4, 0, 0, 0, 188, 0, + 0, 0, 112, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 28, 1, 0, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 44, 1, 0, 0, 0, 0, + 0, 0, 60, 1, 0, 0, + 16, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, + 44, 1, 0, 0, 0, 0, + 0, 0, 71, 1, 0, 0, + 32, 0, 0, 0, 4, 0, + 0, 0, 2, 0, 0, 0, + 88, 1, 0, 0, 0, 0, + 0, 0, 104, 1, 0, 0, + 48, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, + 120, 1, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 102, 76, 97, + 121, 101, 114, 79, 112, 97, + 99, 105, 116, 121, 0, 171, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 109, 76, 97, 121, 101, 114, + 84, 114, 97, 110, 115, 102, + 111, 114, 109, 0, 3, 0, + 3, 0, 4, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 77, 105, 99, 114, + 111, 115, 111, 102, 116, 32, + 40, 82, 41, 32, 72, 76, + 83, 76, 32, 83, 104, 97, + 100, 101, 114, 32, 67, 111, + 109, 112, 105, 108, 101, 114, + 32, 57, 46, 50, 55, 46, + 57, 53, 50, 46, 51, 48, + 50, 50, 0, 171, 171, 171, + 73, 83, 71, 78, 80, 0, + 0, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 3, 3, 0, 0, 83, 86, + 95, 80, 111, 115, 105, 116, + 105, 111, 110, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 171, 171, 171, 79, 83, + 71, 78, 44, 0, 0, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 83, 86, 95, 84, + 97, 114, 103, 101, 116, 0, + 171, 171, 14, 70, 0, 0, + 0, 0, 0, 0, 82, 101, + 110, 100, 101, 114, 89, 67, + 98, 67, 114, 76, 97, 121, + 101, 114, 0, 4, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 3, 0, 0, 0, 255, + 255, 255, 255, 24, 7, 0, + 0, 68, 88, 66, 67, 254, + 249, 65, 252, 64, 46, 192, + 119, 73, 197, 161, 234, 24, + 1, 194, 131, 1, 0, 0, + 0, 24, 7, 0, 0, 6, + 0, 0, 0, 56, 0, 0, + 0, 164, 1, 0, 0, 148, + 3, 0, 0, 16, 4, 0, + 0, 140, 6, 0, 0, 192, + 6, 0, 0, 65, 111, 110, + 57, 100, 1, 0, 0, 100, + 1, 0, 0, 0, 2, 254, + 255, 0, 1, 0, 0, 100, + 0, 0, 0, 5, 0, 36, + 0, 0, 0, 96, 0, 0, + 0, 96, 0, 0, 0, 36, + 0, 1, 0, 96, 0, 0, + 0, 0, 0, 2, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 2, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 6, 0, 1, 0, 5, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 6, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 4, 0, 7, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 2, 254, + 255, 31, 0, 0, 2, 5, + 0, 0, 128, 0, 0, 15, + 144, 4, 0, 0, 4, 0, + 0, 3, 224, 0, 0, 228, + 144, 1, 0, 238, 160, 1, + 0, 228, 160, 4, 0, 0, + 4, 0, 0, 1, 128, 0, + 0, 85, 144, 2, 0, 255, + 160, 2, 0, 85, 160, 5, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 0, 128, 4, + 0, 228, 160, 4, 0, 0, + 4, 1, 0, 1, 128, 0, + 0, 0, 144, 2, 0, 170, + 160, 2, 0, 0, 160, 4, + 0, 0, 4, 0, 0, 15, + 128, 3, 0, 228, 160, 1, + 0, 0, 128, 0, 0, 228, + 128, 2, 0, 0, 3, 0, + 0, 15, 128, 0, 0, 228, + 128, 5, 0, 228, 160, 2, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 228, 128, 6, + 0, 228, 161, 5, 0, 0, + 3, 1, 0, 15, 128, 0, + 0, 85, 128, 8, 0, 228, + 160, 4, 0, 0, 4, 1, + 0, 15, 128, 7, 0, 228, + 160, 0, 0, 0, 128, 1, + 0, 228, 128, 4, 0, 0, + 4, 1, 0, 15, 128, 9, + 0, 228, 160, 0, 0, 170, + 128, 1, 0, 228, 128, 4, + 0, 0, 4, 0, 0, 15, + 128, 10, 0, 228, 160, 0, + 0, 255, 128, 1, 0, 228, + 128, 4, 0, 0, 4, 0, + 0, 3, 192, 0, 0, 255, + 128, 0, 0, 228, 160, 0, + 0, 228, 128, 1, 0, 0, + 2, 0, 0, 12, 192, 0, + 0, 228, 128, 255, 255, 0, + 0, 83, 72, 68, 82, 232, + 1, 0, 0, 64, 0, 1, + 0, 122, 0, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 1, + 0, 0, 0, 1, 0, 0, + 0, 89, 0, 0, 4, 70, + 142, 32, 0, 2, 0, 0, + 0, 4, 0, 0, 0, 95, + 0, 0, 3, 50, 16, 16, + 0, 0, 0, 0, 0, 103, + 0, 0, 4, 242, 32, 16, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 101, 0, 0, + 3, 50, 32, 16, 0, 1, + 0, 0, 0, 104, 0, 0, + 2, 2, 0, 0, 0, 50, + 0, 0, 11, 50, 0, 16, + 0, 0, 0, 0, 0, 70, + 16, 16, 0, 0, 0, 0, + 0, 230, 138, 32, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 70, 128, 32, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 56, 0, 0, 8, 242, + 0, 16, 0, 1, 0, 0, + 0, 86, 5, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 0, 0, 0, 0, 0, 4, + 0, 0, 0, 50, 0, 0, + 10, 242, 0, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 6, 0, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 1, 0, 0, + 0, 0, 0, 0, 8, 242, + 0, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, + 9, 242, 0, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 128, 65, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 56, 0, 0, + 8, 242, 0, 16, 0, 1, + 0, 0, 0, 86, 5, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 0, 2, 0, 0, + 0, 1, 0, 0, 0, 50, + 0, 0, 10, 242, 0, 16, + 0, 1, 0, 0, 0, 70, + 142, 32, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 6, + 0, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 1, + 0, 0, 0, 50, 0, 0, + 10, 242, 0, 16, 0, 1, + 0, 0, 0, 70, 142, 32, + 0, 2, 0, 0, 0, 2, + 0, 0, 0, 166, 10, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 1, 0, 0, + 0, 50, 0, 0, 10, 242, + 32, 16, 0, 0, 0, 0, + 0, 70, 142, 32, 0, 2, + 0, 0, 0, 3, 0, 0, + 0, 246, 15, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 1, 0, 0, 0, 50, + 0, 0, 11, 50, 32, 16, + 0, 1, 0, 0, 0, 70, + 16, 16, 0, 0, 0, 0, + 0, 230, 138, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 70, 128, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 11, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 116, 2, 0, 0, 3, + 0, 0, 0, 168, 0, 0, + 0, 3, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 254, + 255, 0, 1, 0, 0, 64, + 2, 0, 0, 124, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 133, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 152, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 80, 101, 114, + 76, 97, 121, 101, 114, 0, + 80, 101, 114, 79, 99, 99, + 97, 115, 105, 111, 110, 97, + 108, 76, 97, 121, 101, 114, + 0, 80, 101, 114, 76, 97, + 121, 101, 114, 77, 97, 110, + 97, 103, 101, 114, 0, 124, + 0, 0, 0, 4, 0, 0, + 0, 240, 0, 0, 0, 112, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 133, + 0, 0, 0, 2, 0, 0, + 0, 188, 1, 0, 0, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 152, + 0, 0, 0, 1, 0, 0, + 0, 28, 2, 0, 0, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 80, + 1, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 96, 1, 0, + 0, 0, 0, 0, 0, 112, + 1, 0, 0, 16, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 96, 1, 0, + 0, 0, 0, 0, 0, 123, + 1, 0, 0, 32, 0, 0, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 140, 1, 0, + 0, 0, 0, 0, 0, 156, + 1, 0, 0, 48, 0, 0, + 0, 64, 0, 0, 0, 2, + 0, 0, 0, 172, 1, 0, + 0, 0, 0, 0, 0, 118, + 84, 101, 120, 116, 117, 114, + 101, 67, 111, 111, 114, 100, + 115, 0, 171, 1, 0, 3, + 0, 1, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 118, 76, 97, 121, 101, + 114, 81, 117, 97, 100, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 171, 0, + 0, 3, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 109, 76, 97, + 121, 101, 114, 84, 114, 97, + 110, 115, 102, 111, 114, 109, + 0, 3, 0, 3, 0, 4, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, + 1, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 16, + 2, 0, 0, 16, 0, 0, + 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 118, + 82, 101, 110, 100, 101, 114, + 84, 97, 114, 103, 101, 116, + 79, 102, 102, 115, 101, 116, + 0, 1, 0, 3, 0, 1, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 102, + 76, 97, 121, 101, 114, 67, + 111, 108, 111, 114, 0, 52, + 2, 0, 0, 0, 0, 0, + 0, 64, 0, 0, 0, 2, + 0, 0, 0, 172, 1, 0, + 0, 0, 0, 0, 0, 109, + 80, 114, 111, 106, 101, 99, + 116, 105, 111, 110, 0, 77, + 105, 99, 114, 111, 115, 111, + 102, 116, 32, 40, 82, 41, + 32, 72, 76, 83, 76, 32, + 83, 104, 97, 100, 101, 114, + 32, 67, 111, 109, 112, 105, + 108, 101, 114, 32, 57, 46, + 50, 55, 46, 57, 53, 50, + 46, 51, 48, 50, 50, 0, + 171, 171, 171, 73, 83, 71, + 78, 44, 0, 0, 0, 1, + 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 3, 3, 0, + 0, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 171, 171, + 171, 79, 83, 71, 78, 80, + 0, 0, 0, 2, 0, 0, + 0, 8, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 68, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 1, 0, 0, + 0, 3, 12, 0, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 171, 171, 171, 139, + 74, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 64, 7, 0, 0, 68, + 88, 66, 67, 126, 75, 135, + 159, 85, 129, 194, 57, 1, + 1, 77, 205, 160, 221, 154, + 168, 1, 0, 0, 0, 64, + 7, 0, 0, 6, 0, 0, + 0, 56, 0, 0, 0, 220, + 1, 0, 0, 44, 4, 0, + 0, 168, 4, 0, 0, 180, + 6, 0, 0, 12, 7, 0, + 0, 65, 111, 110, 57, 156, + 1, 0, 0, 156, 1, 0, + 0, 0, 2, 255, 255, 96, + 1, 0, 0, 60, 0, 0, + 0, 1, 0, 48, 0, 0, + 0, 60, 0, 0, 0, 60, + 0, 3, 0, 36, 0, 0, + 0, 60, 0, 0, 0, 0, + 0, 1, 0, 1, 0, 2, + 0, 2, 0, 0, 0, 2, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 2, 255, + 255, 81, 0, 0, 5, 1, + 0, 15, 160, 0, 0, 0, + 191, 0, 0, 128, 189, 186, + 73, 204, 63, 197, 32, 80, + 63, 81, 0, 0, 5, 2, + 0, 15, 160, 244, 253, 148, + 63, 233, 38, 1, 64, 39, + 49, 200, 62, 0, 0, 128, + 63, 31, 0, 0, 2, 0, + 0, 0, 128, 0, 0, 3, + 176, 31, 0, 0, 2, 0, + 0, 0, 144, 0, 8, 15, + 160, 31, 0, 0, 2, 0, + 0, 0, 144, 1, 8, 15, + 160, 31, 0, 0, 2, 0, + 0, 0, 144, 2, 8, 15, + 160, 66, 0, 0, 3, 0, + 0, 15, 128, 0, 0, 228, + 176, 0, 8, 228, 160, 66, + 0, 0, 3, 1, 0, 15, + 128, 0, 0, 228, 176, 2, + 8, 228, 160, 2, 0, 0, + 3, 0, 0, 2, 128, 1, + 0, 0, 128, 1, 0, 0, + 160, 5, 0, 0, 3, 0, + 0, 6, 128, 0, 0, 85, + 128, 1, 0, 248, 160, 2, + 0, 0, 3, 0, 0, 1, + 128, 0, 0, 0, 128, 1, + 0, 85, 160, 4, 0, 0, + 4, 0, 0, 4, 128, 0, + 0, 0, 128, 2, 0, 0, + 160, 0, 0, 170, 129, 4, + 0, 0, 4, 1, 0, 1, + 128, 0, 0, 0, 128, 2, + 0, 0, 160, 0, 0, 85, + 128, 66, 0, 0, 3, 2, + 0, 15, 128, 0, 0, 228, + 176, 1, 8, 228, 160, 2, + 0, 0, 3, 0, 0, 2, + 128, 2, 0, 0, 128, 1, + 0, 0, 160, 4, 0, 0, + 4, 1, 0, 2, 128, 0, + 0, 85, 128, 2, 0, 170, + 161, 0, 0, 170, 128, 5, + 0, 0, 3, 0, 0, 2, + 128, 0, 0, 85, 128, 2, + 0, 85, 160, 4, 0, 0, + 4, 1, 0, 4, 128, 0, + 0, 0, 128, 2, 0, 0, + 160, 0, 0, 85, 128, 1, + 0, 0, 2, 1, 0, 8, + 128, 2, 0, 255, 160, 5, + 0, 0, 3, 0, 0, 15, + 128, 1, 0, 228, 128, 0, + 0, 0, 160, 1, 0, 0, + 2, 0, 8, 15, 128, 0, + 0, 228, 128, 255, 255, 0, + 0, 83, 72, 68, 82, 72, + 2, 0, 0, 64, 0, 0, + 0, 146, 0, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 90, 0, 0, + 3, 0, 96, 16, 0, 0, + 0, 0, 0, 88, 24, 0, + 4, 0, 112, 16, 0, 0, + 0, 0, 0, 85, 85, 0, + 0, 88, 24, 0, 4, 0, + 112, 16, 0, 1, 0, 0, + 0, 85, 85, 0, 0, 88, + 24, 0, 4, 0, 112, 16, + 0, 2, 0, 0, 0, 85, + 85, 0, 0, 98, 16, 0, + 3, 50, 16, 16, 0, 1, + 0, 0, 0, 101, 0, 0, + 3, 242, 32, 16, 0, 0, + 0, 0, 0, 104, 0, 0, + 2, 3, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 0, 0, 0, 0, 70, + 16, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 2, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 0, + 0, 0, 7, 18, 0, 16, + 0, 0, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, + 0, 1, 64, 0, 0, 0, + 0, 0, 191, 56, 0, 0, + 10, 50, 0, 16, 0, 0, + 0, 0, 0, 6, 0, 16, + 0, 0, 0, 0, 0, 2, + 64, 0, 0, 186, 73, 204, + 63, 197, 32, 80, 63, 0, + 0, 0, 0, 0, 0, 0, + 0, 69, 0, 0, 9, 242, + 0, 16, 0, 1, 0, 0, + 0, 70, 16, 16, 0, 1, + 0, 0, 0, 70, 126, 16, + 0, 0, 0, 0, 0, 0, + 96, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 66, + 0, 16, 0, 0, 0, 0, + 0, 10, 0, 16, 0, 1, + 0, 0, 0, 1, 64, 0, + 0, 0, 0, 128, 189, 50, + 0, 0, 10, 34, 0, 16, + 0, 0, 0, 0, 0, 42, + 0, 16, 0, 0, 0, 0, + 0, 1, 64, 0, 0, 244, + 253, 148, 63, 26, 0, 16, + 128, 65, 0, 0, 0, 0, + 0, 0, 0, 50, 0, 0, + 9, 18, 0, 16, 0, 1, + 0, 0, 0, 42, 0, 16, + 0, 0, 0, 0, 0, 1, + 64, 0, 0, 244, 253, 148, + 63, 10, 0, 16, 0, 0, + 0, 0, 0, 69, 0, 0, + 9, 242, 0, 16, 0, 2, + 0, 0, 0, 70, 16, 16, + 0, 1, 0, 0, 0, 70, + 126, 16, 0, 1, 0, 0, + 0, 0, 96, 16, 0, 0, + 0, 0, 0, 0, 0, 0, + 7, 18, 0, 16, 0, 0, + 0, 0, 0, 10, 0, 16, + 0, 2, 0, 0, 0, 1, + 64, 0, 0, 0, 0, 0, + 191, 50, 0, 0, 10, 34, + 0, 16, 0, 1, 0, 0, + 0, 10, 0, 16, 128, 65, + 0, 0, 0, 0, 0, 0, + 0, 1, 64, 0, 0, 39, + 49, 200, 62, 26, 0, 16, + 0, 0, 0, 0, 0, 56, + 0, 0, 7, 18, 0, 16, + 0, 0, 0, 0, 0, 10, + 0, 16, 0, 0, 0, 0, + 0, 1, 64, 0, 0, 233, + 38, 1, 64, 50, 0, 0, + 9, 66, 0, 16, 0, 1, + 0, 0, 0, 42, 0, 16, + 0, 0, 0, 0, 0, 1, + 64, 0, 0, 244, 253, 148, + 63, 10, 0, 16, 0, 0, + 0, 0, 0, 54, 0, 0, + 5, 130, 0, 16, 0, 1, + 0, 0, 0, 1, 64, 0, + 0, 0, 0, 128, 63, 56, + 0, 0, 8, 242, 32, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 1, 0, 0, + 0, 6, 128, 32, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 15, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 4, 2, 0, 0, 1, + 0, 0, 0, 236, 0, 0, + 0, 5, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 255, + 255, 0, 1, 0, 0, 208, + 1, 0, 0, 188, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 214, + 0, 0, 0, 2, 0, 0, + 0, 5, 0, 0, 0, 4, + 0, 0, 0, 255, 255, 255, + 255, 0, 0, 0, 0, 1, + 0, 0, 0, 12, 0, 0, + 0, 217, 0, 0, 0, 2, + 0, 0, 0, 5, 0, 0, + 0, 4, 0, 0, 0, 255, + 255, 255, 255, 1, 0, 0, + 0, 1, 0, 0, 0, 12, + 0, 0, 0, 221, 0, 0, + 0, 2, 0, 0, 0, 5, + 0, 0, 0, 4, 0, 0, + 0, 255, 255, 255, 255, 2, + 0, 0, 0, 1, 0, 0, + 0, 12, 0, 0, 0, 225, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 76, 97, 121, 101, 114, + 84, 101, 120, 116, 117, 114, + 101, 83, 97, 109, 112, 108, + 101, 114, 76, 105, 110, 101, + 97, 114, 0, 116, 89, 0, + 116, 67, 98, 0, 116, 67, + 114, 0, 80, 101, 114, 76, + 97, 121, 101, 114, 0, 171, + 171, 225, 0, 0, 0, 4, + 0, 0, 0, 4, 1, 0, + 0, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 100, 1, 0, 0, 0, + 0, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 116, + 1, 0, 0, 0, 0, 0, + 0, 132, 1, 0, 0, 16, + 0, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 116, + 1, 0, 0, 0, 0, 0, + 0, 143, 1, 0, 0, 32, + 0, 0, 0, 4, 0, 0, + 0, 2, 0, 0, 0, 160, + 1, 0, 0, 0, 0, 0, + 0, 176, 1, 0, 0, 48, + 0, 0, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 192, + 1, 0, 0, 0, 0, 0, + 0, 118, 84, 101, 120, 116, + 117, 114, 101, 67, 111, 111, + 114, 100, 115, 0, 171, 1, + 0, 3, 0, 1, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 76, 97, + 121, 101, 114, 81, 117, 97, + 100, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 171, 0, 0, 3, 0, 1, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 109, + 76, 97, 121, 101, 114, 84, + 114, 97, 110, 115, 102, 111, + 114, 109, 0, 3, 0, 3, + 0, 4, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 55, 46, 57, + 53, 50, 46, 51, 48, 50, + 50, 0, 171, 171, 171, 73, + 83, 71, 78, 80, 0, 0, + 0, 2, 0, 0, 0, 8, + 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 68, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 3, + 3, 0, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 171, 171, 171, 79, 83, 71, + 78, 44, 0, 0, 0, 1, + 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 83, 86, 95, 84, 97, + 114, 103, 101, 116, 0, 171, + 171, 187, 81, 0, 0, 0, + 0, 0, 0, 82, 101, 110, + 100, 101, 114, 67, 111, 109, + 112, 111, 110, 101, 110, 116, + 65, 108, 112, 104, 97, 76, + 97, 121, 101, 114, 0, 4, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 255, 255, 255, 255, 24, + 7, 0, 0, 68, 88, 66, + 67, 254, 249, 65, 252, 64, + 46, 192, 119, 73, 197, 161, + 234, 24, 1, 194, 131, 1, + 0, 0, 0, 24, 7, 0, + 0, 6, 0, 0, 0, 56, + 0, 0, 0, 164, 1, 0, + 0, 148, 3, 0, 0, 16, + 4, 0, 0, 140, 6, 0, + 0, 192, 6, 0, 0, 65, + 111, 110, 57, 100, 1, 0, + 0, 100, 1, 0, 0, 0, + 2, 254, 255, 0, 1, 0, + 0, 100, 0, 0, 0, 5, + 0, 36, 0, 0, 0, 96, + 0, 0, 0, 96, 0, 0, + 0, 36, 0, 1, 0, 96, + 0, 0, 0, 0, 0, 2, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 2, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 1, + 0, 5, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 1, + 0, 6, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 4, + 0, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 2, 254, 255, 31, 0, 0, + 2, 5, 0, 0, 128, 0, + 0, 15, 144, 4, 0, 0, + 4, 0, 0, 3, 224, 0, + 0, 228, 144, 1, 0, 238, + 160, 1, 0, 228, 160, 4, + 0, 0, 4, 0, 0, 1, + 128, 0, 0, 85, 144, 2, + 0, 255, 160, 2, 0, 85, + 160, 5, 0, 0, 3, 0, + 0, 15, 128, 0, 0, 0, + 128, 4, 0, 228, 160, 4, + 0, 0, 4, 1, 0, 1, + 128, 0, 0, 0, 144, 2, + 0, 170, 160, 2, 0, 0, + 160, 4, 0, 0, 4, 0, + 0, 15, 128, 3, 0, 228, + 160, 1, 0, 0, 128, 0, + 0, 228, 128, 2, 0, 0, + 3, 0, 0, 15, 128, 0, + 0, 228, 128, 5, 0, 228, + 160, 2, 0, 0, 3, 0, + 0, 15, 128, 0, 0, 228, + 128, 6, 0, 228, 161, 5, + 0, 0, 3, 1, 0, 15, + 128, 0, 0, 85, 128, 8, + 0, 228, 160, 4, 0, 0, + 4, 1, 0, 15, 128, 7, + 0, 228, 160, 0, 0, 0, + 128, 1, 0, 228, 128, 4, + 0, 0, 4, 1, 0, 15, + 128, 9, 0, 228, 160, 0, + 0, 170, 128, 1, 0, 228, + 128, 4, 0, 0, 4, 0, + 0, 15, 128, 10, 0, 228, + 160, 0, 0, 255, 128, 1, + 0, 228, 128, 4, 0, 0, + 4, 0, 0, 3, 192, 0, + 0, 255, 128, 0, 0, 228, + 160, 0, 0, 228, 128, 1, + 0, 0, 2, 0, 0, 12, + 192, 0, 0, 228, 128, 255, + 255, 0, 0, 83, 72, 68, + 82, 232, 1, 0, 0, 64, + 0, 1, 0, 122, 0, 0, + 0, 89, 0, 0, 4, 70, + 142, 32, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 1, 0, 0, 0, 1, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 2, + 0, 0, 0, 4, 0, 0, + 0, 95, 0, 0, 3, 50, + 16, 16, 0, 0, 0, 0, + 0, 103, 0, 0, 4, 242, + 32, 16, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 101, + 0, 0, 3, 50, 32, 16, + 0, 1, 0, 0, 0, 104, + 0, 0, 2, 2, 0, 0, + 0, 50, 0, 0, 11, 50, + 0, 16, 0, 0, 0, 0, + 0, 70, 16, 16, 0, 0, + 0, 0, 0, 230, 138, 32, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 70, 128, 32, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 56, 0, 0, + 8, 242, 0, 16, 0, 1, + 0, 0, 0, 86, 5, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 50, + 0, 0, 10, 242, 0, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 6, + 0, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 1, + 0, 0, 0, 0, 0, 0, + 8, 242, 0, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 0, + 0, 0, 9, 242, 0, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 0, 0, 0, + 0, 70, 142, 32, 128, 65, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 56, + 0, 0, 8, 242, 0, 16, + 0, 1, 0, 0, 0, 86, + 5, 16, 0, 0, 0, 0, + 0, 70, 142, 32, 0, 2, + 0, 0, 0, 1, 0, 0, + 0, 50, 0, 0, 10, 242, + 0, 16, 0, 1, 0, 0, + 0, 70, 142, 32, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 6, 0, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 1, 0, 0, 0, 50, + 0, 0, 10, 242, 0, 16, + 0, 1, 0, 0, 0, 70, + 142, 32, 0, 2, 0, 0, + 0, 2, 0, 0, 0, 166, + 10, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 1, + 0, 0, 0, 50, 0, 0, + 10, 242, 32, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 0, 2, 0, 0, 0, 3, + 0, 0, 0, 246, 15, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 1, 0, 0, + 0, 50, 0, 0, 11, 50, + 32, 16, 0, 1, 0, 0, + 0, 70, 16, 16, 0, 0, + 0, 0, 0, 230, 138, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 70, 128, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, + 1, 83, 84, 65, 84, 116, + 0, 0, 0, 11, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 82, + 68, 69, 70, 116, 2, 0, + 0, 3, 0, 0, 0, 168, + 0, 0, 0, 3, 0, 0, + 0, 28, 0, 0, 0, 0, + 4, 254, 255, 0, 1, 0, + 0, 64, 2, 0, 0, 124, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 133, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 152, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 80, + 101, 114, 76, 97, 121, 101, + 114, 0, 80, 101, 114, 79, + 99, 99, 97, 115, 105, 111, + 110, 97, 108, 76, 97, 121, + 101, 114, 0, 80, 101, 114, + 76, 97, 121, 101, 114, 77, + 97, 110, 97, 103, 101, 114, + 0, 124, 0, 0, 0, 4, + 0, 0, 0, 240, 0, 0, + 0, 112, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 133, 0, 0, 0, 2, + 0, 0, 0, 188, 1, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 152, 0, 0, 0, 1, + 0, 0, 0, 28, 2, 0, + 0, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 80, 1, 0, 0, 0, + 0, 0, 0, 16, 0, 0, + 0, 2, 0, 0, 0, 96, + 1, 0, 0, 0, 0, 0, + 0, 112, 1, 0, 0, 16, + 0, 0, 0, 16, 0, 0, + 0, 2, 0, 0, 0, 96, + 1, 0, 0, 0, 0, 0, + 0, 123, 1, 0, 0, 32, + 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 140, + 1, 0, 0, 0, 0, 0, + 0, 156, 1, 0, 0, 48, + 0, 0, 0, 64, 0, 0, + 0, 2, 0, 0, 0, 172, + 1, 0, 0, 0, 0, 0, + 0, 118, 84, 101, 120, 116, + 117, 114, 101, 67, 111, 111, + 114, 100, 115, 0, 171, 1, + 0, 3, 0, 1, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 76, 97, + 121, 101, 114, 81, 117, 97, + 100, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 171, 0, 0, 3, 0, 1, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 109, + 76, 97, 121, 101, 114, 84, + 114, 97, 110, 115, 102, 111, + 114, 109, 0, 3, 0, 3, + 0, 4, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 236, 1, 0, 0, 0, + 0, 0, 0, 16, 0, 0, + 0, 2, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 16, 2, 0, 0, 16, + 0, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, + 0, 118, 82, 101, 110, 100, + 101, 114, 84, 97, 114, 103, + 101, 116, 79, 102, 102, 115, + 101, 116, 0, 1, 0, 3, + 0, 1, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 102, 76, 97, 121, 101, + 114, 67, 111, 108, 111, 114, + 0, 52, 2, 0, 0, 0, + 0, 0, 0, 64, 0, 0, + 0, 2, 0, 0, 0, 172, + 1, 0, 0, 0, 0, 0, + 0, 109, 80, 114, 111, 106, + 101, 99, 116, 105, 111, 110, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 55, 46, 57, + 53, 50, 46, 51, 48, 50, + 50, 0, 171, 171, 171, 73, + 83, 71, 78, 44, 0, 0, + 0, 1, 0, 0, 0, 8, + 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 3, + 3, 0, 0, 80, 79, 83, + 73, 84, 73, 79, 78, 0, + 171, 171, 171, 79, 83, 71, + 78, 80, 0, 0, 0, 2, + 0, 0, 0, 8, 0, 0, + 0, 56, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 68, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 1, + 0, 0, 0, 3, 12, 0, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 84, 69, 88, 67, 79, + 79, 82, 68, 0, 171, 171, + 171, 81, 89, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 144, 5, 0, + 0, 68, 88, 66, 67, 238, + 19, 121, 188, 150, 99, 227, + 180, 83, 152, 252, 187, 65, + 5, 113, 253, 1, 0, 0, + 0, 144, 5, 0, 0, 6, + 0, 0, 0, 56, 0, 0, + 0, 52, 1, 0, 0, 128, + 2, 0, 0, 252, 2, 0, + 0, 236, 4, 0, 0, 68, + 5, 0, 0, 65, 111, 110, + 57, 244, 0, 0, 0, 244, + 0, 0, 0, 0, 2, 255, + 255, 188, 0, 0, 0, 56, + 0, 0, 0, 1, 0, 44, + 0, 0, 0, 56, 0, 0, + 0, 56, 0, 2, 0, 36, + 0, 0, 0, 56, 0, 0, + 0, 0, 0, 1, 0, 1, + 0, 0, 0, 2, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 1, 2, 255, 255, 81, + 0, 0, 5, 1, 0, 15, + 160, 0, 0, 128, 63, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 31, + 0, 0, 2, 0, 0, 0, + 128, 0, 0, 3, 176, 31, + 0, 0, 2, 0, 0, 0, + 144, 0, 8, 15, 160, 31, + 0, 0, 2, 0, 0, 0, + 144, 1, 8, 15, 160, 66, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 228, 176, 1, + 8, 228, 160, 66, 0, 0, + 3, 1, 0, 15, 128, 0, + 0, 228, 176, 0, 8, 228, + 160, 5, 0, 0, 3, 2, + 0, 15, 128, 1, 0, 228, + 128, 0, 0, 0, 160, 1, + 0, 0, 2, 0, 8, 15, + 128, 2, 0, 228, 128, 2, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 228, 129, 1, + 0, 228, 128, 2, 0, 0, + 3, 0, 0, 15, 128, 0, + 0, 228, 128, 1, 0, 0, + 160, 5, 0, 0, 3, 0, + 0, 15, 128, 0, 0, 228, + 128, 0, 0, 0, 160, 1, + 0, 0, 2, 1, 8, 15, + 128, 0, 0, 228, 128, 255, + 255, 0, 0, 83, 72, 68, + 82, 68, 1, 0, 0, 64, + 0, 0, 0, 81, 0, 0, + 0, 89, 0, 0, 4, 70, + 142, 32, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 90, + 0, 0, 3, 0, 96, 16, + 0, 0, 0, 0, 0, 88, + 24, 0, 4, 0, 112, 16, + 0, 0, 0, 0, 0, 85, + 85, 0, 0, 88, 24, 0, + 4, 0, 112, 16, 0, 1, + 0, 0, 0, 85, 85, 0, + 0, 98, 16, 0, 3, 50, + 16, 16, 0, 1, 0, 0, + 0, 101, 0, 0, 3, 242, + 32, 16, 0, 0, 0, 0, + 0, 101, 0, 0, 3, 242, + 32, 16, 0, 1, 0, 0, + 0, 104, 0, 0, 2, 2, + 0, 0, 0, 69, 0, 0, + 9, 242, 0, 16, 0, 0, + 0, 0, 0, 70, 16, 16, + 0, 1, 0, 0, 0, 70, + 126, 16, 0, 0, 0, 0, + 0, 0, 96, 16, 0, 0, + 0, 0, 0, 56, 0, 0, + 8, 242, 32, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 0, 0, 0, 0, 6, + 128, 32, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 69, + 0, 0, 9, 242, 0, 16, + 0, 1, 0, 0, 0, 70, + 16, 16, 0, 1, 0, 0, + 0, 70, 126, 16, 0, 1, + 0, 0, 0, 0, 96, 16, + 0, 0, 0, 0, 0, 0, + 0, 0, 8, 242, 0, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 128, 65, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 10, 242, + 0, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 0, + 0, 0, 0, 2, 64, 0, + 0, 0, 0, 128, 63, 0, + 0, 128, 63, 0, 0, 128, + 63, 0, 0, 128, 63, 56, + 0, 0, 8, 242, 32, 16, + 0, 1, 0, 0, 0, 70, + 14, 16, 0, 0, 0, 0, + 0, 6, 128, 32, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 7, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 232, 1, 0, 0, 1, + 0, 0, 0, 208, 0, 0, + 0, 4, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 255, + 255, 0, 1, 0, 0, 180, + 1, 0, 0, 156, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 182, + 0, 0, 0, 2, 0, 0, + 0, 5, 0, 0, 0, 4, + 0, 0, 0, 255, 255, 255, + 255, 0, 0, 0, 0, 1, + 0, 0, 0, 12, 0, 0, + 0, 187, 0, 0, 0, 2, + 0, 0, 0, 5, 0, 0, + 0, 4, 0, 0, 0, 255, + 255, 255, 255, 1, 0, 0, + 0, 1, 0, 0, 0, 12, + 0, 0, 0, 197, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 76, + 97, 121, 101, 114, 84, 101, + 120, 116, 117, 114, 101, 83, + 97, 109, 112, 108, 101, 114, + 76, 105, 110, 101, 97, 114, + 0, 116, 82, 71, 66, 0, + 116, 82, 71, 66, 87, 104, + 105, 116, 101, 0, 80, 101, + 114, 76, 97, 121, 101, 114, + 0, 171, 171, 197, 0, 0, + 0, 4, 0, 0, 0, 232, + 0, 0, 0, 112, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 72, 1, 0, + 0, 0, 0, 0, 0, 16, + 0, 0, 0, 0, 0, 0, + 0, 88, 1, 0, 0, 0, + 0, 0, 0, 104, 1, 0, + 0, 16, 0, 0, 0, 16, + 0, 0, 0, 0, 0, 0, + 0, 88, 1, 0, 0, 0, + 0, 0, 0, 115, 1, 0, + 0, 32, 0, 0, 0, 4, + 0, 0, 0, 2, 0, 0, + 0, 132, 1, 0, 0, 0, + 0, 0, 0, 148, 1, 0, + 0, 48, 0, 0, 0, 64, + 0, 0, 0, 0, 0, 0, + 0, 164, 1, 0, 0, 0, + 0, 0, 0, 118, 84, 101, + 120, 116, 117, 114, 101, 67, + 111, 111, 114, 100, 115, 0, + 171, 1, 0, 3, 0, 1, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118, + 76, 97, 121, 101, 114, 81, + 117, 97, 100, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 171, 0, 0, 3, + 0, 1, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 109, 76, 97, 121, 101, + 114, 84, 114, 97, 110, 115, + 102, 111, 114, 109, 0, 3, + 0, 3, 0, 4, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 77, 105, 99, + 114, 111, 115, 111, 102, 116, + 32, 40, 82, 41, 32, 72, + 76, 83, 76, 32, 83, 104, + 97, 100, 101, 114, 32, 67, + 111, 109, 112, 105, 108, 101, + 114, 32, 57, 46, 50, 55, + 46, 57, 53, 50, 46, 51, + 48, 50, 50, 0, 171, 171, + 171, 73, 83, 71, 78, 80, + 0, 0, 0, 2, 0, 0, + 0, 8, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 68, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 1, 0, 0, + 0, 3, 3, 0, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 171, 171, 171, 79, + 83, 71, 78, 68, 0, 0, + 0, 2, 0, 0, 0, 8, + 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 56, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 15, + 0, 0, 0, 83, 86, 95, + 84, 97, 114, 103, 101, 116, + 0, 171, 171, 129, 96, 0, + 0, 0, 0, 0, 0, 82, + 101, 110, 100, 101, 114, 83, + 111, 108, 105, 100, 67, 111, + 108, 111, 114, 76, 97, 121, + 101, 114, 0, 4, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 3, 0, 0, 0, 255, + 255, 255, 255, 24, 7, 0, + 0, 68, 88, 66, 67, 254, + 249, 65, 252, 64, 46, 192, + 119, 73, 197, 161, 234, 24, + 1, 194, 131, 1, 0, 0, + 0, 24, 7, 0, 0, 6, + 0, 0, 0, 56, 0, 0, + 0, 164, 1, 0, 0, 148, + 3, 0, 0, 16, 4, 0, + 0, 140, 6, 0, 0, 192, + 6, 0, 0, 65, 111, 110, + 57, 100, 1, 0, 0, 100, + 1, 0, 0, 0, 2, 254, + 255, 0, 1, 0, 0, 100, + 0, 0, 0, 5, 0, 36, + 0, 0, 0, 96, 0, 0, + 0, 96, 0, 0, 0, 36, + 0, 1, 0, 96, 0, 0, + 0, 0, 0, 2, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 2, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 6, 0, 1, 0, 5, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 6, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 4, 0, 7, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 2, 254, + 255, 31, 0, 0, 2, 5, + 0, 0, 128, 0, 0, 15, + 144, 4, 0, 0, 4, 0, + 0, 3, 224, 0, 0, 228, + 144, 1, 0, 238, 160, 1, + 0, 228, 160, 4, 0, 0, + 4, 0, 0, 1, 128, 0, + 0, 85, 144, 2, 0, 255, + 160, 2, 0, 85, 160, 5, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 0, 128, 4, + 0, 228, 160, 4, 0, 0, + 4, 1, 0, 1, 128, 0, + 0, 0, 144, 2, 0, 170, + 160, 2, 0, 0, 160, 4, + 0, 0, 4, 0, 0, 15, + 128, 3, 0, 228, 160, 1, + 0, 0, 128, 0, 0, 228, + 128, 2, 0, 0, 3, 0, + 0, 15, 128, 0, 0, 228, + 128, 5, 0, 228, 160, 2, + 0, 0, 3, 0, 0, 15, + 128, 0, 0, 228, 128, 6, + 0, 228, 161, 5, 0, 0, + 3, 1, 0, 15, 128, 0, + 0, 85, 128, 8, 0, 228, + 160, 4, 0, 0, 4, 1, + 0, 15, 128, 7, 0, 228, + 160, 0, 0, 0, 128, 1, + 0, 228, 128, 4, 0, 0, + 4, 1, 0, 15, 128, 9, + 0, 228, 160, 0, 0, 170, + 128, 1, 0, 228, 128, 4, + 0, 0, 4, 0, 0, 15, + 128, 10, 0, 228, 160, 0, + 0, 255, 128, 1, 0, 228, + 128, 4, 0, 0, 4, 0, + 0, 3, 192, 0, 0, 255, + 128, 0, 0, 228, 160, 0, + 0, 228, 128, 1, 0, 0, + 2, 0, 0, 12, 192, 0, + 0, 228, 128, 255, 255, 0, + 0, 83, 72, 68, 82, 232, + 1, 0, 0, 64, 0, 1, + 0, 122, 0, 0, 0, 89, + 0, 0, 4, 70, 142, 32, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 1, + 0, 0, 0, 1, 0, 0, + 0, 89, 0, 0, 4, 70, + 142, 32, 0, 2, 0, 0, + 0, 4, 0, 0, 0, 95, + 0, 0, 3, 50, 16, 16, + 0, 0, 0, 0, 0, 103, + 0, 0, 4, 242, 32, 16, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 101, 0, 0, + 3, 50, 32, 16, 0, 1, + 0, 0, 0, 104, 0, 0, + 2, 2, 0, 0, 0, 50, + 0, 0, 11, 50, 0, 16, + 0, 0, 0, 0, 0, 70, + 16, 16, 0, 0, 0, 0, + 0, 230, 138, 32, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 70, 128, 32, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 56, 0, 0, 8, 242, + 0, 16, 0, 1, 0, 0, + 0, 86, 5, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 0, 0, 0, 0, 0, 4, + 0, 0, 0, 50, 0, 0, + 10, 242, 0, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 6, 0, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 1, 0, 0, + 0, 0, 0, 0, 8, 242, + 0, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 0, + 0, 0, 0, 70, 142, 32, + 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, + 9, 242, 0, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 128, 65, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 56, 0, 0, + 8, 242, 0, 16, 0, 1, + 0, 0, 0, 86, 5, 16, + 0, 0, 0, 0, 0, 70, + 142, 32, 0, 2, 0, 0, + 0, 1, 0, 0, 0, 50, + 0, 0, 10, 242, 0, 16, + 0, 1, 0, 0, 0, 70, + 142, 32, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 6, + 0, 16, 0, 0, 0, 0, + 0, 70, 14, 16, 0, 1, + 0, 0, 0, 50, 0, 0, + 10, 242, 0, 16, 0, 1, + 0, 0, 0, 70, 142, 32, + 0, 2, 0, 0, 0, 2, + 0, 0, 0, 166, 10, 16, + 0, 0, 0, 0, 0, 70, + 14, 16, 0, 1, 0, 0, + 0, 50, 0, 0, 10, 242, + 32, 16, 0, 0, 0, 0, + 0, 70, 142, 32, 0, 2, + 0, 0, 0, 3, 0, 0, + 0, 246, 15, 16, 0, 0, + 0, 0, 0, 70, 14, 16, + 0, 1, 0, 0, 0, 50, + 0, 0, 11, 50, 32, 16, + 0, 1, 0, 0, 0, 70, + 16, 16, 0, 0, 0, 0, + 0, 230, 138, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 70, 128, 32, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 11, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 116, 2, 0, 0, 3, + 0, 0, 0, 168, 0, 0, + 0, 3, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 254, + 255, 0, 1, 0, 0, 64, + 2, 0, 0, 124, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 133, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 152, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 80, 101, 114, + 76, 97, 121, 101, 114, 0, + 80, 101, 114, 79, 99, 99, + 97, 115, 105, 111, 110, 97, + 108, 76, 97, 121, 101, 114, + 0, 80, 101, 114, 76, 97, + 121, 101, 114, 77, 97, 110, + 97, 103, 101, 114, 0, 124, + 0, 0, 0, 4, 0, 0, + 0, 240, 0, 0, 0, 112, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 133, + 0, 0, 0, 2, 0, 0, + 0, 188, 1, 0, 0, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 152, + 0, 0, 0, 1, 0, 0, + 0, 28, 2, 0, 0, 64, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 80, + 1, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 96, 1, 0, + 0, 0, 0, 0, 0, 112, + 1, 0, 0, 16, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 96, 1, 0, + 0, 0, 0, 0, 0, 123, + 1, 0, 0, 32, 0, 0, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 140, 1, 0, + 0, 0, 0, 0, 0, 156, + 1, 0, 0, 48, 0, 0, + 0, 64, 0, 0, 0, 2, + 0, 0, 0, 172, 1, 0, + 0, 0, 0, 0, 0, 118, + 84, 101, 120, 116, 117, 114, + 101, 67, 111, 111, 114, 100, + 115, 0, 171, 1, 0, 3, + 0, 1, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 118, 76, 97, 121, 101, + 114, 81, 117, 97, 100, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 171, 0, + 0, 3, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 109, 76, 97, + 121, 101, 114, 84, 114, 97, + 110, 115, 102, 111, 114, 109, + 0, 3, 0, 3, 0, 4, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, + 1, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 2, + 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 16, + 2, 0, 0, 16, 0, 0, + 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 118, + 82, 101, 110, 100, 101, 114, + 84, 97, 114, 103, 101, 116, + 79, 102, 102, 115, 101, 116, + 0, 1, 0, 3, 0, 1, + 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 102, + 76, 97, 121, 101, 114, 67, + 111, 108, 111, 114, 0, 52, + 2, 0, 0, 0, 0, 0, + 0, 64, 0, 0, 0, 2, + 0, 0, 0, 172, 1, 0, + 0, 0, 0, 0, 0, 109, + 80, 114, 111, 106, 101, 99, + 116, 105, 111, 110, 0, 77, + 105, 99, 114, 111, 115, 111, + 102, 116, 32, 40, 82, 41, + 32, 72, 76, 83, 76, 32, + 83, 104, 97, 100, 101, 114, + 32, 67, 111, 109, 112, 105, + 108, 101, 114, 32, 57, 46, + 50, 55, 46, 57, 53, 50, + 46, 51, 48, 50, 50, 0, + 171, 171, 171, 73, 83, 71, + 78, 44, 0, 0, 0, 1, + 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 3, 3, 0, + 0, 80, 79, 83, 73, 84, + 73, 79, 78, 0, 171, 171, + 171, 79, 83, 71, 78, 80, + 0, 0, 0, 2, 0, 0, + 0, 8, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 68, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, + 0, 0, 0, 1, 0, 0, + 0, 3, 12, 0, 0, 83, + 86, 95, 80, 111, 115, 105, + 116, 105, 111, 110, 0, 84, + 69, 88, 67, 79, 79, 82, + 68, 0, 171, 171, 171, 99, + 102, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 216, 2, 0, 0, 68, + 88, 66, 67, 247, 128, 122, + 171, 183, 156, 243, 15, 69, + 10, 154, 190, 66, 220, 37, + 74, 1, 0, 0, 0, 216, + 2, 0, 0, 6, 0, 0, + 0, 56, 0, 0, 0, 132, + 0, 0, 0, 204, 0, 0, + 0, 72, 1, 0, 0, 76, + 2, 0, 0, 164, 2, 0, + 0, 65, 111, 110, 57, 68, + 0, 0, 0, 68, 0, 0, + 0, 0, 2, 255, 255, 20, + 0, 0, 0, 48, 0, 0, + 0, 1, 0, 36, 0, 0, + 0, 48, 0, 0, 0, 48, + 0, 0, 0, 36, 0, 0, + 0, 48, 0, 0, 0, 1, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 2, 255, + 255, 1, 0, 0, 2, 0, + 8, 15, 128, 0, 0, 228, + 160, 255, 255, 0, 0, 83, + 72, 68, 82, 64, 0, 0, + 0, 64, 0, 0, 0, 16, + 0, 0, 0, 89, 0, 0, + 4, 70, 142, 32, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 101, 0, 0, 3, 242, + 32, 16, 0, 0, 0, 0, + 0, 54, 0, 0, 6, 242, + 32, 16, 0, 0, 0, 0, + 0, 70, 142, 32, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 62, 0, 0, 1, 83, + 84, 65, 84, 116, 0, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 82, 68, 69, + 70, 252, 0, 0, 0, 1, + 0, 0, 0, 80, 0, 0, + 0, 1, 0, 0, 0, 28, + 0, 0, 0, 0, 4, 255, + 255, 0, 1, 0, 0, 200, + 0, 0, 0, 60, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 80, + 101, 114, 79, 99, 99, 97, + 115, 105, 111, 110, 97, 108, + 76, 97, 121, 101, 114, 0, + 171, 60, 0, 0, 0, 2, + 0, 0, 0, 104, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 152, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, + 0, 0, 0, 0, 0, 172, + 0, 0, 0, 0, 0, 0, + 0, 188, 0, 0, 0, 16, + 0, 0, 0, 16, 0, 0, + 0, 2, 0, 0, 0, 172, + 0, 0, 0, 0, 0, 0, + 0, 118, 82, 101, 110, 100, + 101, 114, 84, 97, 114, 103, + 101, 116, 79, 102, 102, 115, + 101, 116, 0, 1, 0, 3, + 0, 1, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 102, 76, 97, 121, 101, + 114, 67, 111, 108, 111, 114, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 55, 46, 57, + 53, 50, 46, 51, 48, 50, + 50, 0, 171, 171, 171, 73, + 83, 71, 78, 80, 0, 0, + 0, 2, 0, 0, 0, 8, + 0, 0, 0, 56, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 15, + 0, 0, 0, 68, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, + 0, 1, 0, 0, 0, 3, + 0, 0, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 84, 69, 88, + 67, 79, 79, 82, 68, 0, + 171, 171, 171, 79, 83, 71, + 78, 44, 0, 0, 0, 1, + 0, 0, 0, 8, 0, 0, + 0, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, + 0, 83, 86, 95, 84, 97, + 114, 103, 101, 116, 0, 171, + 171, 147, 109, 0, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 112, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, + 0, 255, 255, 255, 255, 0, + 0, 0, 0, 48, 0, 0, + 0, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 63, 0, 0, 0, 20, + 0, 0, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 108, + 0, 0, 0, 80, 0, 0, + 0, 0, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 159, 0, 0, + 0, 131, 0, 0, 0, 0, + 0, 0, 0, 48, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 175, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 255, + 255, 255, 255, 0, 0, 0, + 0, 194, 0, 0, 0, 20, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 214, + 0, 0, 0, 20, 0, 0, + 0, 0, 0, 0, 0, 16, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 226, 0, 0, + 0, 64, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 255, 255, 255, 255, 0, + 0, 0, 0, 242, 0, 0, + 0, 131, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 37, 1, 0, 0, 9, + 1, 0, 0, 0, 0, 0, + 0, 255, 255, 255, 255, 9, + 0, 0, 0, 36, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 44, 1, 0, + 0, 37, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 56, 1, 0, 0, 38, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 68, + 1, 0, 0, 39, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 80, 1, 0, + 0, 40, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 92, 1, 0, 0, 41, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 104, + 1, 0, 0, 42, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 116, 1, 0, + 0, 43, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 128, 1, 0, 0, 44, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 140, + 1, 0, 0, 0, 0, 0, + 0, 152, 1, 0, 0, 9, + 1, 0, 0, 0, 0, 0, + 0, 255, 255, 255, 255, 9, + 0, 0, 0, 36, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 162, 1, 0, + 0, 37, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 174, 1, 0, 0, 38, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 186, + 1, 0, 0, 39, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 198, 1, 0, + 0, 40, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 210, 1, 0, 0, 41, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 222, + 1, 0, 0, 42, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 234, 1, 0, + 0, 43, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 246, 1, 0, 0, 44, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, + 0, 14, 2, 0, 0, 9, + 1, 0, 0, 0, 0, 0, + 0, 255, 255, 255, 255, 9, + 0, 0, 0, 36, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 34, 2, 0, + 0, 37, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 46, 2, 0, 0, 38, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 58, + 2, 0, 0, 39, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 70, 2, 0, + 0, 40, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 82, 2, 0, 0, 41, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 94, + 2, 0, 0, 42, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 106, 2, 0, + 0, 43, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 118, 2, 0, 0, 44, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 130, + 2, 0, 0, 0, 0, 0, + 0, 186, 2, 0, 0, 158, + 2, 0, 0, 0, 0, 0, + 0, 255, 255, 255, 255, 2, + 0, 0, 0, 19, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 196, 2, 0, + 0, 13, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 208, 2, 0, 0, 0, + 0, 0, 0, 2, 3, 0, + 0, 230, 2, 0, 0, 0, + 0, 0, 0, 255, 255, 255, + 255, 0, 0, 0, 0, 7, + 3, 0, 0, 230, 2, 0, + 0, 0, 0, 0, 0, 255, + 255, 255, 255, 0, 0, 0, + 0, 10, 3, 0, 0, 230, + 2, 0, 0, 0, 0, 0, + 0, 255, 255, 255, 255, 0, + 0, 0, 0, 14, 3, 0, + 0, 230, 2, 0, 0, 0, + 0, 0, 0, 255, 255, 255, + 255, 0, 0, 0, 0, 18, + 3, 0, 0, 230, 2, 0, + 0, 0, 0, 0, 0, 255, + 255, 255, 255, 0, 0, 0, + 0, 69, 3, 0, 0, 41, + 3, 0, 0, 0, 0, 0, + 0, 255, 255, 255, 255, 3, + 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 95, 3, 0, + 0, 46, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 107, 3, 0, 0, 47, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 119, + 3, 0, 0, 0, 0, 0, + 0, 131, 3, 0, 0, 41, + 3, 0, 0, 0, 0, 0, + 0, 255, 255, 255, 255, 3, + 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 156, 3, 0, + 0, 46, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 168, 3, 0, 0, 47, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 180, + 3, 0, 0, 0, 0, 0, + 0, 192, 3, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 213, 3, 0, 0, 7, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 186, 2, 0, 0, 10, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 216, + 3, 0, 0, 11, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 252, 3, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 37, 1, 0, 0, 6, + 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 36, + 11, 0, 0, 8, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 44, 11, 0, + 0, 7, 0, 0, 0, 0, + 0, 0, 0, 7, 0, 0, + 0, 144, 15, 0, 0, 152, + 15, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 213, + 3, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 186, + 2, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 178, 15, 0, + 0, 11, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 214, 15, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 37, + 1, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 254, 22, 0, + 0, 8, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 6, 23, 0, 0, 7, + 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 106, + 27, 0, 0, 114, 27, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 213, 3, 0, + 0, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 186, 2, 0, + 0, 10, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 136, 27, 0, 0, 11, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 172, + 27, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 37, 1, 0, + 0, 6, 0, 0, 0, 0, + 0, 0, 0, 7, 0, 0, + 0, 212, 34, 0, 0, 8, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 220, + 34, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 28, 39, 0, + 0, 36, 39, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 213, 3, 0, 0, 7, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 186, 2, 0, 0, 10, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 61, + 39, 0, 0, 11, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 97, 39, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 152, 1, 0, 0, 6, + 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 137, + 46, 0, 0, 8, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 145, 46, 0, + 0, 7, 0, 0, 0, 0, + 0, 0, 0, 7, 0, 0, + 0, 209, 50, 0, 0, 217, + 50, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 213, + 3, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 186, + 2, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 244, 50, 0, + 0, 11, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 24, 51, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 37, + 1, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 64, 58, 0, + 0, 8, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 72, 58, 0, 0, 7, + 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 136, + 62, 0, 0, 144, 62, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 213, 3, 0, + 0, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 186, 2, 0, + 0, 10, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 174, 62, 0, 0, 11, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 210, + 62, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 152, 1, 0, + 0, 6, 0, 0, 0, 0, + 0, 0, 0, 7, 0, 0, + 0, 250, 69, 0, 0, 8, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 2, + 70, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 66, 74, 0, + 0, 74, 74, 0, 0, 1, + 0, 0, 0, 0, 0, 0, + 0, 213, 3, 0, 0, 7, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 186, 2, 0, 0, 10, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 91, + 74, 0, 0, 11, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 127, 74, 0, + 0, 2, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, + 0, 37, 1, 0, 0, 6, + 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 167, + 81, 0, 0, 8, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 175, 81, 0, + 0, 7, 0, 0, 0, 0, + 0, 0, 0, 7, 0, 0, + 0, 255, 88, 0, 0, 7, + 89, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 213, + 3, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 186, + 2, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 1, + 0, 0, 0, 33, 89, 0, + 0, 11, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 69, 89, 0, 0, 2, + 0, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 14, + 2, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 109, 96, 0, + 0, 8, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 117, 96, 0, 0, 7, + 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 21, + 102, 0, 0, 29, 102, 0, + 0, 1, 0, 0, 0, 0, + 0, 0, 0, 213, 3, 0, + 0, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 186, 2, 0, + 0, 10, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, + 0, 51, 102, 0, 0, 11, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 87, + 102, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, + 0, 0, 0, 37, 1, 0, + 0, 6, 0, 0, 0, 0, + 0, 0, 0, 7, 0, 0, + 0, 127, 109, 0, 0, 8, + 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 135, + 109, 0, 0, 7, 0, 0, + 0, 0, 0, 0, 0, 7, + 0, 0, 0, 111, 112, 0, + 0 +}; diff --git a/gfx/layers/d3d9/LayerManagerD3D9Shaders.h b/gfx/layers/d3d9/LayerManagerD3D9Shaders.h index fe3525410eb..faf845a833f 100644 --- a/gfx/layers/d3d9/LayerManagerD3D9Shaders.h +++ b/gfx/layers/d3d9/LayerManagerD3D9Shaders.h @@ -1,748 +1,748 @@ -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc LayerManagerD3D9Shaders.hlsl -ELayerQuadVS -nologo -FhtmpShaderHeader -// -VnLayerQuadVS -// -// -// Parameters: -// -// float4x4 mLayerTransform; -// float4x4 mProjection; -// float4 vLayerQuad; -// float4 vRenderTargetOffset; -// float4 vTextureCoords; -// -// -// Registers: -// -// Name Reg Size -// ------------------- ----- ---- -// mLayerTransform c0 4 -// mProjection c4 4 -// vRenderTargetOffset c8 1 -// vTextureCoords c9 1 -// vLayerQuad c10 1 -// - - vs_2_0 - def c11, -0.5, 0, 0, 0 - dcl_position v0 - mad r0.xy, v0, c10.zwzw, c10 - mul r1, r0.y, c1 - mad r0, c0, r0.x, r1 - mad r0, c2, v0.z, r0 - mad r0, c3, v0.w, r0 - add r0, r0, -c8 - add r0.xy, r0, c11.x - mul r1, r0.y, c5 - mad r1, c4, r0.x, r1 - mad r1, c6, r0.z, r1 - mad oPos, c7, r0.w, r1 - mad oT0.xy, v0, c9.zwzw, c9 - -// approximately 12 instruction slots used -#endif - -const BYTE LayerQuadVS[] = -{ - 0, 2, 254, 255, 254, 255, - 78, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 2, 1, - 0, 0, 0, 2, 254, 255, - 5, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 251, 0, 0, 0, 128, 0, - 0, 0, 2, 0, 0, 0, - 4, 0, 0, 0, 144, 0, - 0, 0, 0, 0, 0, 0, - 160, 0, 0, 0, 2, 0, - 4, 0, 4, 0, 0, 0, - 144, 0, 0, 0, 0, 0, - 0, 0, 172, 0, 0, 0, - 2, 0, 10, 0, 1, 0, - 0, 0, 184, 0, 0, 0, - 0, 0, 0, 0, 200, 0, - 0, 0, 2, 0, 8, 0, - 1, 0, 0, 0, 220, 0, - 0, 0, 0, 0, 0, 0, - 236, 0, 0, 0, 2, 0, - 9, 0, 1, 0, 0, 0, - 184, 0, 0, 0, 0, 0, - 0, 0, 109, 76, 97, 121, - 101, 114, 84, 114, 97, 110, - 115, 102, 111, 114, 109, 0, - 3, 0, 3, 0, 4, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 109, 80, - 114, 111, 106, 101, 99, 116, - 105, 111, 110, 0, 118, 76, - 97, 121, 101, 114, 81, 117, - 97, 100, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 118, 82, 101, 110, - 100, 101, 114, 84, 97, 114, - 103, 101, 116, 79, 102, 102, - 115, 101, 116, 0, 1, 0, - 3, 0, 1, 0, 4, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 118, 84, 101, 120, - 116, 117, 114, 101, 67, 111, - 111, 114, 100, 115, 0, 118, - 115, 95, 50, 95, 48, 0, - 77, 105, 99, 114, 111, 115, - 111, 102, 116, 32, 40, 82, - 41, 32, 72, 76, 83, 76, - 32, 83, 104, 97, 100, 101, - 114, 32, 67, 111, 109, 112, - 105, 108, 101, 114, 32, 57, - 46, 50, 57, 46, 57, 53, - 50, 46, 51, 49, 49, 49, - 0, 171, 81, 0, 0, 5, - 11, 0, 15, 160, 0, 0, - 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 15, 144, 4, 0, 0, 4, - 0, 0, 3, 128, 0, 0, - 228, 144, 10, 0, 238, 160, - 10, 0, 228, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 1, 0, - 228, 160, 4, 0, 0, 4, - 0, 0, 15, 128, 0, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 2, 0, 228, 160, 0, 0, - 170, 144, 0, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 3, 0, 228, 160, - 0, 0, 255, 144, 0, 0, - 228, 128, 2, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 8, 0, 228, 161, - 2, 0, 0, 3, 0, 0, - 3, 128, 0, 0, 228, 128, - 11, 0, 0, 160, 5, 0, - 0, 3, 1, 0, 15, 128, - 0, 0, 85, 128, 5, 0, - 228, 160, 4, 0, 0, 4, - 1, 0, 15, 128, 4, 0, - 228, 160, 0, 0, 0, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 1, 0, 15, 128, - 6, 0, 228, 160, 0, 0, - 170, 128, 1, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 192, 7, 0, 228, 160, - 0, 0, 255, 128, 1, 0, - 228, 128, 4, 0, 0, 4, - 0, 0, 3, 224, 0, 0, - 228, 144, 9, 0, 238, 160, - 9, 0, 228, 160, 255, 255, - 0, 0 -}; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc LayerManagerD3D9Shaders.hlsl -ERGBAShader -nologo -Tps_2_0 -// -FhtmpShaderHeader -VnRGBAShaderPS -// -// -// Parameters: -// -// float fLayerOpacity; -// sampler2D s2D; -// -// -// Registers: -// -// Name Reg Size -// ------------- ----- ---- -// fLayerOpacity c0 1 -// s2D s0 1 -// - - ps_2_0 - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0, r0, c0.x - mov oC0, r0 - -// approximately 3 instruction slots used (1 texture, 2 arithmetic) -#endif - -const BYTE RGBAShaderPS[] = -{ - 0, 2, 255, 255, 254, 255, - 45, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 127, 0, - 0, 0, 0, 2, 255, 255, - 2, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 120, 0, 0, 0, 68, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 84, 0, - 0, 0, 0, 0, 0, 0, - 100, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 50, - 68, 0, 4, 0, 12, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 112, 115, 95, 50, 95, 48, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 57, 46, 57, - 53, 50, 46, 51, 49, 49, - 49, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0 -}; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc LayerManagerD3D9Shaders.hlsl -EComponentPass1Shader -nologo -Tps_2_0 -// -FhtmpShaderHeader -VnComponentPass1ShaderPS -// -// -// Parameters: -// -// float fLayerOpacity; -// sampler2D s2D; -// sampler2D s2DWhite; -// -// -// Registers: -// -// Name Reg Size -// ------------- ----- ---- -// fLayerOpacity c0 1 -// s2D s0 1 -// s2DWhite s1 1 -// - - ps_2_0 - def c1, 1, 0, 0, 0 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - texld r0, t0, s0 - texld r1, t0, s1 - add r0.xyz, r0, -r1 - add r0.xyz, r0, c1.x - mul r0.xyz, r0, c0.x - mov r1.xyz, r0 - mov r1.w, r0.y - mov oC0, r1 - -// approximately 8 instruction slots used (2 texture, 6 arithmetic) -#endif - -const BYTE ComponentPass1ShaderPS[] = -{ - 0, 2, 255, 255, 254, 255, - 57, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 175, 0, - 0, 0, 0, 2, 255, 255, - 3, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 168, 0, 0, 0, 88, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 120, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 124, 0, 0, 0, 0, 0, - 0, 0, 140, 0, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 152, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 50, 68, 0, 4, 0, - 12, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 50, 68, 87, - 104, 105, 116, 101, 0, 171, - 171, 171, 4, 0, 12, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 112, 115, 95, 50, 95, 48, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 57, 46, 57, - 53, 50, 46, 51, 49, 49, - 49, 0, 81, 0, 0, 5, - 1, 0, 15, 160, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 1, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 228, 176, - 1, 8, 228, 160, 2, 0, - 0, 3, 0, 0, 7, 128, - 0, 0, 228, 128, 1, 0, - 228, 129, 2, 0, 0, 3, - 0, 0, 7, 128, 0, 0, - 228, 128, 1, 0, 0, 160, - 5, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 228, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 1, 0, 7, 128, - 0, 0, 228, 128, 1, 0, - 0, 2, 1, 0, 8, 128, - 0, 0, 85, 128, 1, 0, - 0, 2, 0, 8, 15, 128, - 1, 0, 228, 128, 255, 255, - 0, 0 -}; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc LayerManagerD3D9Shaders.hlsl -EComponentPass2Shader -nologo -Tps_2_0 -// -FhtmpShaderHeader -VnComponentPass2ShaderPS -// -// -// Parameters: -// -// float fLayerOpacity; -// sampler2D s2D; -// sampler2D s2DWhite; -// -// -// Registers: -// -// Name Reg Size -// ------------- ----- ---- -// fLayerOpacity c0 1 -// s2D s0 1 -// s2DWhite s1 1 -// - - ps_2_0 - def c1, 1, 0, 0, 0 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - texld r0, t0, s1 - texld r1, t0, s0 - add r0.x, -r0.y, r1.y - add r1.w, r0.x, c1.x - mul r0, r1, c0.x - mov oC0, r0 - -// approximately 6 instruction slots used (2 texture, 4 arithmetic) -#endif - -const BYTE ComponentPass2ShaderPS[] = -{ - 0, 2, 255, 255, 254, 255, - 57, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 175, 0, - 0, 0, 0, 2, 255, 255, - 3, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 168, 0, 0, 0, 88, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 104, 0, - 0, 0, 0, 0, 0, 0, - 120, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 124, 0, 0, 0, 0, 0, - 0, 0, 140, 0, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 152, 0, 0, 0, - 0, 0, 0, 0, 102, 76, - 97, 121, 101, 114, 79, 112, - 97, 99, 105, 116, 121, 0, - 171, 171, 0, 0, 3, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 115, 50, 68, 0, 4, 0, - 12, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 50, 68, 87, - 104, 105, 116, 101, 0, 171, - 171, 171, 4, 0, 12, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 112, 115, 95, 50, 95, 48, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 57, 46, 57, - 53, 50, 46, 51, 49, 49, - 49, 0, 81, 0, 0, 5, - 1, 0, 15, 160, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 31, 0, 0, 2, - 0, 0, 0, 144, 1, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 176, 1, 8, 228, 160, - 66, 0, 0, 3, 1, 0, - 15, 128, 0, 0, 228, 176, - 0, 8, 228, 160, 2, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 85, 129, 1, 0, - 85, 128, 2, 0, 0, 3, - 1, 0, 8, 128, 0, 0, - 0, 128, 1, 0, 0, 160, - 5, 0, 0, 3, 0, 0, - 15, 128, 1, 0, 228, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0 -}; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc LayerManagerD3D9Shaders.hlsl -ERGBShader -nologo -Tps_2_0 -// -FhtmpShaderHeader -VnRGBShaderPS -// -// -// Parameters: -// -// float fLayerOpacity; -// sampler2D s2D; -// -// -// Registers: -// -// Name Reg Size -// ------------- ----- ---- -// fLayerOpacity c0 1 -// s2D s0 1 -// - - ps_2_0 - def c1, 1, 0, 0, 0 - dcl t0.xy - dcl_2d s0 - texld r0, t0, s0 - mul r0.xyz, r0, c0.x - mov r0.w, c1.x - mov oC0, r0 - -// approximately 4 instruction slots used (1 texture, 3 arithmetic) -#endif - -const BYTE RGBShaderPS[] = -{ - 0, 2, 255, 255, 254, 255, - 45, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 127, 0, - 0, 0, 0, 2, 255, 255, - 2, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 120, 0, 0, 0, 68, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 84, 0, - 0, 0, 0, 0, 0, 0, - 100, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 104, 0, 0, 0, 0, 0, - 0, 0, 102, 76, 97, 121, - 101, 114, 79, 112, 97, 99, - 105, 116, 121, 0, 171, 171, - 0, 0, 3, 0, 1, 0, - 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 115, 50, - 68, 0, 4, 0, 12, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 112, 115, 95, 50, 95, 48, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 57, 46, 57, - 53, 50, 46, 51, 49, 49, - 49, 0, 81, 0, 0, 5, - 1, 0, 15, 160, 0, 0, - 128, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 2, - 0, 0, 0, 128, 0, 0, - 3, 176, 31, 0, 0, 2, - 0, 0, 0, 144, 0, 8, - 15, 160, 66, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 5, 0, 0, 3, 0, 0, - 7, 128, 0, 0, 228, 128, - 0, 0, 0, 160, 1, 0, - 0, 2, 0, 0, 8, 128, - 1, 0, 0, 160, 1, 0, - 0, 2, 0, 8, 15, 128, - 0, 0, 228, 128, 255, 255, - 0, 0 -}; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc LayerManagerD3D9Shaders.hlsl -EYCbCrShader -nologo -Tps_2_0 -// -FhtmpShaderHeader -VnYCbCrShaderPS -// -// -// Parameters: -// -// float fLayerOpacity; -// sampler2D s2DCb; -// sampler2D s2DCr; -// sampler2D s2DY; -// -// -// Registers: -// -// Name Reg Size -// ------------- ----- ---- -// fLayerOpacity c0 1 -// s2DY s0 1 -// s2DCb s1 1 -// s2DCr s2 1 -// - - ps_2_0 - def c1, -0.5, -0.0625, 1.16400003, 1.59599996 - def c2, 0.813000023, 0.391000003, 2.01799989, 1 - dcl t0.xy - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - texld r0, t0, s2 - texld r1, t0, s0 - texld r2, t0, s1 - add r0.x, r0.x, c1.x - add r0.y, r1.x, c1.y - mul r0.y, r0.y, c1.z - mad r0.z, r0.x, -c2.x, r0.y - mad r1.x, r0.x, c1.w, r0.y - add r0.x, r2.x, c1.x - mad r1.y, r0.x, -c2.y, r0.z - mad r1.z, r0.x, c2.z, r0.y - mov r1.w, c2.w - mul r0, r1, c0.x - mov oC0, r0 - -// approximately 14 instruction slots used (3 texture, 11 arithmetic) -#endif - -const BYTE YCbCrShaderPS[] = -{ - 0, 2, 255, 255, 254, 255, - 68, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 219, 0, - 0, 0, 0, 2, 255, 255, - 4, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 212, 0, 0, 0, 108, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 124, 0, - 0, 0, 0, 0, 0, 0, - 140, 0, 0, 0, 3, 0, - 1, 0, 1, 0, 0, 0, - 148, 0, 0, 0, 0, 0, - 0, 0, 164, 0, 0, 0, - 3, 0, 2, 0, 1, 0, - 0, 0, 172, 0, 0, 0, - 0, 0, 0, 0, 188, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 196, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 79, 112, 97, 99, 105, 116, - 121, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 50, 68, 67, - 98, 0, 171, 171, 4, 0, - 12, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 50, 68, 67, - 114, 0, 171, 171, 4, 0, - 12, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 115, 50, 68, 89, - 0, 171, 171, 171, 4, 0, - 12, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 112, 115, 95, 50, - 95, 48, 0, 77, 105, 99, - 114, 111, 115, 111, 102, 116, - 32, 40, 82, 41, 32, 72, - 76, 83, 76, 32, 83, 104, - 97, 100, 101, 114, 32, 67, - 111, 109, 112, 105, 108, 101, - 114, 32, 57, 46, 50, 57, - 46, 57, 53, 50, 46, 51, - 49, 49, 49, 0, 81, 0, - 0, 5, 1, 0, 15, 160, - 0, 0, 0, 191, 0, 0, - 128, 189, 244, 253, 148, 63, - 186, 73, 204, 63, 81, 0, - 0, 5, 2, 0, 15, 160, - 197, 32, 80, 63, 39, 49, - 200, 62, 233, 38, 1, 64, - 0, 0, 128, 63, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 31, 0, - 0, 2, 0, 0, 0, 144, - 1, 8, 15, 160, 31, 0, - 0, 2, 0, 0, 0, 144, - 2, 8, 15, 160, 66, 0, - 0, 3, 0, 0, 15, 128, - 0, 0, 228, 176, 2, 8, - 228, 160, 66, 0, 0, 3, - 1, 0, 15, 128, 0, 0, - 228, 176, 0, 8, 228, 160, - 66, 0, 0, 3, 2, 0, - 15, 128, 0, 0, 228, 176, - 1, 8, 228, 160, 2, 0, - 0, 3, 0, 0, 1, 128, - 0, 0, 0, 128, 1, 0, - 0, 160, 2, 0, 0, 3, - 0, 0, 2, 128, 1, 0, - 0, 128, 1, 0, 85, 160, - 5, 0, 0, 3, 0, 0, - 2, 128, 0, 0, 85, 128, - 1, 0, 170, 160, 4, 0, - 0, 4, 0, 0, 4, 128, - 0, 0, 0, 128, 2, 0, - 0, 161, 0, 0, 85, 128, - 4, 0, 0, 4, 1, 0, - 1, 128, 0, 0, 0, 128, - 1, 0, 255, 160, 0, 0, - 85, 128, 2, 0, 0, 3, - 0, 0, 1, 128, 2, 0, - 0, 128, 1, 0, 0, 160, - 4, 0, 0, 4, 1, 0, - 2, 128, 0, 0, 0, 128, - 2, 0, 85, 161, 0, 0, - 170, 128, 4, 0, 0, 4, - 1, 0, 4, 128, 0, 0, - 0, 128, 2, 0, 170, 160, - 0, 0, 85, 128, 1, 0, - 0, 2, 1, 0, 8, 128, - 2, 0, 255, 160, 5, 0, - 0, 3, 0, 0, 15, 128, - 1, 0, 228, 128, 0, 0, - 0, 160, 1, 0, 0, 2, - 0, 8, 15, 128, 0, 0, - 228, 128, 255, 255, 0, 0 -}; -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// fxc LayerManagerD3D9Shaders.hlsl -ESolidColorShader -nologo -Tps_2_0 -// -FhtmpShaderHeader -VnSolidColorShaderPS -// -// -// Parameters: -// -// float4 fLayerColor; -// -// -// Registers: -// -// Name Reg Size -// ------------ ----- ---- -// fLayerColor c0 1 -// - - ps_2_0 - mov oC0, c0 - -// approximately 1 instruction slot used -#endif - -const BYTE SolidColorShaderPS[] = -{ - 0, 2, 255, 255, 254, 255, - 34, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 83, 0, - 0, 0, 0, 2, 255, 255, - 1, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 76, 0, 0, 0, 48, 0, - 0, 0, 2, 0, 0, 0, - 1, 0, 0, 0, 60, 0, - 0, 0, 0, 0, 0, 0, - 102, 76, 97, 121, 101, 114, - 67, 111, 108, 111, 114, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 112, 115, - 95, 50, 95, 48, 0, 77, - 105, 99, 114, 111, 115, 111, - 102, 116, 32, 40, 82, 41, - 32, 72, 76, 83, 76, 32, - 83, 104, 97, 100, 101, 114, - 32, 67, 111, 109, 112, 105, - 108, 101, 114, 32, 57, 46, - 50, 57, 46, 57, 53, 50, - 46, 51, 49, 49, 49, 0, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 160, - 255, 255, 0, 0 -}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// fxc LayerManagerD3D9Shaders.hlsl -ELayerQuadVS -nologo -FhtmpShaderHeader +// -VnLayerQuadVS +// +// +// Parameters: +// +// float4x4 mLayerTransform; +// float4x4 mProjection; +// float4 vLayerQuad; +// float4 vRenderTargetOffset; +// float4 vTextureCoords; +// +// +// Registers: +// +// Name Reg Size +// ------------------- ----- ---- +// mLayerTransform c0 4 +// mProjection c4 4 +// vRenderTargetOffset c8 1 +// vTextureCoords c9 1 +// vLayerQuad c10 1 +// + + vs_2_0 + def c11, -0.5, 0, 0, 0 + dcl_position v0 + mad r0.xy, v0, c10.zwzw, c10 + mul r1, r0.y, c1 + mad r0, c0, r0.x, r1 + mad r0, c2, v0.z, r0 + mad r0, c3, v0.w, r0 + add r0, r0, -c8 + add r0.xy, r0, c11.x + mul r1, r0.y, c5 + mad r1, c4, r0.x, r1 + mad r1, c6, r0.z, r1 + mad oPos, c7, r0.w, r1 + mad oT0.xy, v0, c9.zwzw, c9 + +// approximately 12 instruction slots used +#endif + +const BYTE LayerQuadVS[] = +{ + 0, 2, 254, 255, 254, 255, + 78, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 2, 1, + 0, 0, 0, 2, 254, 255, + 5, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 251, 0, 0, 0, 128, 0, + 0, 0, 2, 0, 0, 0, + 4, 0, 0, 0, 144, 0, + 0, 0, 0, 0, 0, 0, + 160, 0, 0, 0, 2, 0, + 4, 0, 4, 0, 0, 0, + 144, 0, 0, 0, 0, 0, + 0, 0, 172, 0, 0, 0, + 2, 0, 10, 0, 1, 0, + 0, 0, 184, 0, 0, 0, + 0, 0, 0, 0, 200, 0, + 0, 0, 2, 0, 8, 0, + 1, 0, 0, 0, 220, 0, + 0, 0, 0, 0, 0, 0, + 236, 0, 0, 0, 2, 0, + 9, 0, 1, 0, 0, 0, + 184, 0, 0, 0, 0, 0, + 0, 0, 109, 76, 97, 121, + 101, 114, 84, 114, 97, 110, + 115, 102, 111, 114, 109, 0, + 3, 0, 3, 0, 4, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 109, 80, + 114, 111, 106, 101, 99, 116, + 105, 111, 110, 0, 118, 76, + 97, 121, 101, 114, 81, 117, + 97, 100, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 118, 82, 101, 110, + 100, 101, 114, 84, 97, 114, + 103, 101, 116, 79, 102, 102, + 115, 101, 116, 0, 1, 0, + 3, 0, 1, 0, 4, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 118, 84, 101, 120, + 116, 117, 114, 101, 67, 111, + 111, 114, 100, 115, 0, 118, + 115, 95, 50, 95, 48, 0, + 77, 105, 99, 114, 111, 115, + 111, 102, 116, 32, 40, 82, + 41, 32, 72, 76, 83, 76, + 32, 83, 104, 97, 100, 101, + 114, 32, 67, 111, 109, 112, + 105, 108, 101, 114, 32, 57, + 46, 50, 57, 46, 57, 53, + 50, 46, 51, 49, 49, 49, + 0, 171, 81, 0, 0, 5, + 11, 0, 15, 160, 0, 0, + 0, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 15, 144, 4, 0, 0, 4, + 0, 0, 3, 128, 0, 0, + 228, 144, 10, 0, 238, 160, + 10, 0, 228, 160, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 85, 128, 1, 0, + 228, 160, 4, 0, 0, 4, + 0, 0, 15, 128, 0, 0, + 228, 160, 0, 0, 0, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 0, 0, 15, 128, + 2, 0, 228, 160, 0, 0, + 170, 144, 0, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 128, 3, 0, 228, 160, + 0, 0, 255, 144, 0, 0, + 228, 128, 2, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 128, 8, 0, 228, 161, + 2, 0, 0, 3, 0, 0, + 3, 128, 0, 0, 228, 128, + 11, 0, 0, 160, 5, 0, + 0, 3, 1, 0, 15, 128, + 0, 0, 85, 128, 5, 0, + 228, 160, 4, 0, 0, 4, + 1, 0, 15, 128, 4, 0, + 228, 160, 0, 0, 0, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 1, 0, 15, 128, + 6, 0, 228, 160, 0, 0, + 170, 128, 1, 0, 228, 128, + 4, 0, 0, 4, 0, 0, + 15, 192, 7, 0, 228, 160, + 0, 0, 255, 128, 1, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 3, 224, 0, 0, + 228, 144, 9, 0, 238, 160, + 9, 0, 228, 160, 255, 255, + 0, 0 +}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// fxc LayerManagerD3D9Shaders.hlsl -ERGBAShader -nologo -Tps_2_0 +// -FhtmpShaderHeader -VnRGBAShaderPS +// +// +// Parameters: +// +// float fLayerOpacity; +// sampler2D s2D; +// +// +// Registers: +// +// Name Reg Size +// ------------- ----- ---- +// fLayerOpacity c0 1 +// s2D s0 1 +// + + ps_2_0 + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0, r0, c0.x + mov oC0, r0 + +// approximately 3 instruction slots used (1 texture, 2 arithmetic) +#endif + +const BYTE RGBAShaderPS[] = +{ + 0, 2, 255, 255, 254, 255, + 45, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 127, 0, + 0, 0, 0, 2, 255, 255, + 2, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 120, 0, 0, 0, 68, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 84, 0, + 0, 0, 0, 0, 0, 0, + 100, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 115, 50, + 68, 0, 4, 0, 12, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 112, 115, 95, 50, 95, 48, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 0, 0, + 15, 128, 0, 0, 228, 128, + 0, 0, 0, 160, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0 +}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// fxc LayerManagerD3D9Shaders.hlsl -EComponentPass1Shader -nologo -Tps_2_0 +// -FhtmpShaderHeader -VnComponentPass1ShaderPS +// +// +// Parameters: +// +// float fLayerOpacity; +// sampler2D s2D; +// sampler2D s2DWhite; +// +// +// Registers: +// +// Name Reg Size +// ------------- ----- ---- +// fLayerOpacity c0 1 +// s2D s0 1 +// s2DWhite s1 1 +// + + ps_2_0 + def c1, 1, 0, 0, 0 + dcl t0.xy + dcl_2d s0 + dcl_2d s1 + texld r0, t0, s0 + texld r1, t0, s1 + add r0.xyz, r0, -r1 + add r0.xyz, r0, c1.x + mul r0.xyz, r0, c0.x + mov r1.xyz, r0 + mov r1.w, r0.y + mov oC0, r1 + +// approximately 8 instruction slots used (2 texture, 6 arithmetic) +#endif + +const BYTE ComponentPass1ShaderPS[] = +{ + 0, 2, 255, 255, 254, 255, + 57, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 175, 0, + 0, 0, 0, 2, 255, 255, + 3, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 168, 0, 0, 0, 88, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 104, 0, + 0, 0, 0, 0, 0, 0, + 120, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 124, 0, 0, 0, 0, 0, + 0, 0, 140, 0, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 152, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 115, 50, 68, 0, 4, 0, + 12, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 115, 50, 68, 87, + 104, 105, 116, 101, 0, 171, + 171, 171, 4, 0, 12, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 112, 115, 95, 50, 95, 48, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 81, 0, 0, 5, + 1, 0, 15, 160, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 31, 0, 0, 2, + 0, 0, 0, 144, 1, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 176, 0, 8, 228, 160, + 66, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 228, 176, + 1, 8, 228, 160, 2, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 228, 128, 1, 0, + 228, 129, 2, 0, 0, 3, + 0, 0, 7, 128, 0, 0, + 228, 128, 1, 0, 0, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 0, 0, 0, 160, 1, 0, + 0, 2, 1, 0, 7, 128, + 0, 0, 228, 128, 1, 0, + 0, 2, 1, 0, 8, 128, + 0, 0, 85, 128, 1, 0, + 0, 2, 0, 8, 15, 128, + 1, 0, 228, 128, 255, 255, + 0, 0 +}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// fxc LayerManagerD3D9Shaders.hlsl -EComponentPass2Shader -nologo -Tps_2_0 +// -FhtmpShaderHeader -VnComponentPass2ShaderPS +// +// +// Parameters: +// +// float fLayerOpacity; +// sampler2D s2D; +// sampler2D s2DWhite; +// +// +// Registers: +// +// Name Reg Size +// ------------- ----- ---- +// fLayerOpacity c0 1 +// s2D s0 1 +// s2DWhite s1 1 +// + + ps_2_0 + def c1, 1, 0, 0, 0 + dcl t0.xy + dcl_2d s0 + dcl_2d s1 + texld r0, t0, s1 + texld r1, t0, s0 + add r0.x, -r0.y, r1.y + add r1.w, r0.x, c1.x + mul r0, r1, c0.x + mov oC0, r0 + +// approximately 6 instruction slots used (2 texture, 4 arithmetic) +#endif + +const BYTE ComponentPass2ShaderPS[] = +{ + 0, 2, 255, 255, 254, 255, + 57, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 175, 0, + 0, 0, 0, 2, 255, 255, + 3, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 168, 0, 0, 0, 88, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 104, 0, + 0, 0, 0, 0, 0, 0, + 120, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 124, 0, 0, 0, 0, 0, + 0, 0, 140, 0, 0, 0, + 3, 0, 1, 0, 1, 0, + 0, 0, 152, 0, 0, 0, + 0, 0, 0, 0, 102, 76, + 97, 121, 101, 114, 79, 112, + 97, 99, 105, 116, 121, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 115, 50, 68, 0, 4, 0, + 12, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 115, 50, 68, 87, + 104, 105, 116, 101, 0, 171, + 171, 171, 4, 0, 12, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 112, 115, 95, 50, 95, 48, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 81, 0, 0, 5, + 1, 0, 15, 160, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 31, 0, 0, 2, + 0, 0, 0, 144, 1, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 176, 1, 8, 228, 160, + 66, 0, 0, 3, 1, 0, + 15, 128, 0, 0, 228, 176, + 0, 8, 228, 160, 2, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 85, 129, 1, 0, + 85, 128, 2, 0, 0, 3, + 1, 0, 8, 128, 0, 0, + 0, 128, 1, 0, 0, 160, + 5, 0, 0, 3, 0, 0, + 15, 128, 1, 0, 228, 128, + 0, 0, 0, 160, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0 +}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// fxc LayerManagerD3D9Shaders.hlsl -ERGBShader -nologo -Tps_2_0 +// -FhtmpShaderHeader -VnRGBShaderPS +// +// +// Parameters: +// +// float fLayerOpacity; +// sampler2D s2D; +// +// +// Registers: +// +// Name Reg Size +// ------------- ----- ---- +// fLayerOpacity c0 1 +// s2D s0 1 +// + + ps_2_0 + def c1, 1, 0, 0, 0 + dcl t0.xy + dcl_2d s0 + texld r0, t0, s0 + mul r0.xyz, r0, c0.x + mov r0.w, c1.x + mov oC0, r0 + +// approximately 4 instruction slots used (1 texture, 3 arithmetic) +#endif + +const BYTE RGBShaderPS[] = +{ + 0, 2, 255, 255, 254, 255, + 45, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 127, 0, + 0, 0, 0, 2, 255, 255, + 2, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 120, 0, 0, 0, 68, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 84, 0, + 0, 0, 0, 0, 0, 0, + 100, 0, 0, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 104, 0, 0, 0, 0, 0, + 0, 0, 102, 76, 97, 121, + 101, 114, 79, 112, 97, 99, + 105, 116, 121, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 115, 50, + 68, 0, 4, 0, 12, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 112, 115, 95, 50, 95, 48, + 0, 77, 105, 99, 114, 111, + 115, 111, 102, 116, 32, 40, + 82, 41, 32, 72, 76, 83, + 76, 32, 83, 104, 97, 100, + 101, 114, 32, 67, 111, 109, + 112, 105, 108, 101, 114, 32, + 57, 46, 50, 57, 46, 57, + 53, 50, 46, 51, 49, 49, + 49, 0, 81, 0, 0, 5, + 1, 0, 15, 160, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 2, + 0, 0, 0, 128, 0, 0, + 3, 176, 31, 0, 0, 2, + 0, 0, 0, 144, 0, 8, + 15, 160, 66, 0, 0, 3, + 0, 0, 15, 128, 0, 0, + 228, 176, 0, 8, 228, 160, + 5, 0, 0, 3, 0, 0, + 7, 128, 0, 0, 228, 128, + 0, 0, 0, 160, 1, 0, + 0, 2, 0, 0, 8, 128, + 1, 0, 0, 160, 1, 0, + 0, 2, 0, 8, 15, 128, + 0, 0, 228, 128, 255, 255, + 0, 0 +}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// fxc LayerManagerD3D9Shaders.hlsl -EYCbCrShader -nologo -Tps_2_0 +// -FhtmpShaderHeader -VnYCbCrShaderPS +// +// +// Parameters: +// +// float fLayerOpacity; +// sampler2D s2DCb; +// sampler2D s2DCr; +// sampler2D s2DY; +// +// +// Registers: +// +// Name Reg Size +// ------------- ----- ---- +// fLayerOpacity c0 1 +// s2DY s0 1 +// s2DCb s1 1 +// s2DCr s2 1 +// + + ps_2_0 + def c1, -0.5, -0.0625, 1.16400003, 1.59599996 + def c2, 0.813000023, 0.391000003, 2.01799989, 1 + dcl t0.xy + dcl_2d s0 + dcl_2d s1 + dcl_2d s2 + texld r0, t0, s2 + texld r1, t0, s0 + texld r2, t0, s1 + add r0.x, r0.x, c1.x + add r0.y, r1.x, c1.y + mul r0.y, r0.y, c1.z + mad r0.z, r0.x, -c2.x, r0.y + mad r1.x, r0.x, c1.w, r0.y + add r0.x, r2.x, c1.x + mad r1.y, r0.x, -c2.y, r0.z + mad r1.z, r0.x, c2.z, r0.y + mov r1.w, c2.w + mul r0, r1, c0.x + mov oC0, r0 + +// approximately 14 instruction slots used (3 texture, 11 arithmetic) +#endif + +const BYTE YCbCrShaderPS[] = +{ + 0, 2, 255, 255, 254, 255, + 68, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 219, 0, + 0, 0, 0, 2, 255, 255, + 4, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 212, 0, 0, 0, 108, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 124, 0, + 0, 0, 0, 0, 0, 0, + 140, 0, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 148, 0, 0, 0, 0, 0, + 0, 0, 164, 0, 0, 0, + 3, 0, 2, 0, 1, 0, + 0, 0, 172, 0, 0, 0, + 0, 0, 0, 0, 188, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 196, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 79, 112, 97, 99, 105, 116, + 121, 0, 171, 171, 0, 0, + 3, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 115, 50, 68, 67, + 98, 0, 171, 171, 4, 0, + 12, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 115, 50, 68, 67, + 114, 0, 171, 171, 4, 0, + 12, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 115, 50, 68, 89, + 0, 171, 171, 171, 4, 0, + 12, 0, 1, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 112, 115, 95, 50, + 95, 48, 0, 77, 105, 99, + 114, 111, 115, 111, 102, 116, + 32, 40, 82, 41, 32, 72, + 76, 83, 76, 32, 83, 104, + 97, 100, 101, 114, 32, 67, + 111, 109, 112, 105, 108, 101, + 114, 32, 57, 46, 50, 57, + 46, 57, 53, 50, 46, 51, + 49, 49, 49, 0, 81, 0, + 0, 5, 1, 0, 15, 160, + 0, 0, 0, 191, 0, 0, + 128, 189, 244, 253, 148, 63, + 186, 73, 204, 63, 81, 0, + 0, 5, 2, 0, 15, 160, + 197, 32, 80, 63, 39, 49, + 200, 62, 233, 38, 1, 64, + 0, 0, 128, 63, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 3, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 31, 0, + 0, 2, 0, 0, 0, 144, + 1, 8, 15, 160, 31, 0, + 0, 2, 0, 0, 0, 144, + 2, 8, 15, 160, 66, 0, + 0, 3, 0, 0, 15, 128, + 0, 0, 228, 176, 2, 8, + 228, 160, 66, 0, 0, 3, + 1, 0, 15, 128, 0, 0, + 228, 176, 0, 8, 228, 160, + 66, 0, 0, 3, 2, 0, + 15, 128, 0, 0, 228, 176, + 1, 8, 228, 160, 2, 0, + 0, 3, 0, 0, 1, 128, + 0, 0, 0, 128, 1, 0, + 0, 160, 2, 0, 0, 3, + 0, 0, 2, 128, 1, 0, + 0, 128, 1, 0, 85, 160, + 5, 0, 0, 3, 0, 0, + 2, 128, 0, 0, 85, 128, + 1, 0, 170, 160, 4, 0, + 0, 4, 0, 0, 4, 128, + 0, 0, 0, 128, 2, 0, + 0, 161, 0, 0, 85, 128, + 4, 0, 0, 4, 1, 0, + 1, 128, 0, 0, 0, 128, + 1, 0, 255, 160, 0, 0, + 85, 128, 2, 0, 0, 3, + 0, 0, 1, 128, 2, 0, + 0, 128, 1, 0, 0, 160, + 4, 0, 0, 4, 1, 0, + 2, 128, 0, 0, 0, 128, + 2, 0, 85, 161, 0, 0, + 170, 128, 4, 0, 0, 4, + 1, 0, 4, 128, 0, 0, + 0, 128, 2, 0, 170, 160, + 0, 0, 85, 128, 1, 0, + 0, 2, 1, 0, 8, 128, + 2, 0, 255, 160, 5, 0, + 0, 3, 0, 0, 15, 128, + 1, 0, 228, 128, 0, 0, + 0, 160, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0 +}; +#if 0 +// +// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 +// +// fxc LayerManagerD3D9Shaders.hlsl -ESolidColorShader -nologo -Tps_2_0 +// -FhtmpShaderHeader -VnSolidColorShaderPS +// +// +// Parameters: +// +// float4 fLayerColor; +// +// +// Registers: +// +// Name Reg Size +// ------------ ----- ---- +// fLayerColor c0 1 +// + + ps_2_0 + mov oC0, c0 + +// approximately 1 instruction slot used +#endif + +const BYTE SolidColorShaderPS[] = +{ + 0, 2, 255, 255, 254, 255, + 34, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 83, 0, + 0, 0, 0, 2, 255, 255, + 1, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 76, 0, 0, 0, 48, 0, + 0, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 60, 0, + 0, 0, 0, 0, 0, 0, + 102, 76, 97, 121, 101, 114, + 67, 111, 108, 111, 114, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 112, 115, + 95, 50, 95, 48, 0, 77, + 105, 99, 114, 111, 115, 111, + 102, 116, 32, 40, 82, 41, + 32, 72, 76, 83, 76, 32, + 83, 104, 97, 100, 101, 114, + 32, 67, 111, 109, 112, 105, + 108, 101, 114, 32, 57, 46, + 50, 57, 46, 57, 53, 50, + 46, 51, 49, 49, 49, 0, + 1, 0, 0, 2, 0, 8, + 15, 128, 0, 0, 228, 160, + 255, 255, 0, 0 +}; diff --git a/gfx/src/BaseMargin.h b/gfx/src/BaseMargin.h index a38c3b36caf..a25089473e0 100644 --- a/gfx/src/BaseMargin.h +++ b/gfx/src/BaseMargin.h @@ -1,109 +1,109 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Corporation code. - * - * The Initial Developer of the Original Code is Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2011 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Robert O'Callahan - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef MOZILLA_BASEMARGIN_H_ -#define MOZILLA_BASEMARGIN_H_ - -#include "gfxCore.h" - -namespace mozilla { - -/** - * Do not use this class directly. Subclass it, pass that subclass as the - * Sub parameter, and only use that subclass. - */ -template -struct BaseMargin { - typedef mozilla::css::Side SideT; - - // Do not change the layout of these members; the Side() methods below - // depend on this order. - T top, right, bottom, left; - - // Constructors - BaseMargin() : top(0), right(0), bottom(0), left(0) {} - BaseMargin(T aLeft, T aTop, T aRight, T aBottom) : - top(aTop), right(aRight), bottom(aBottom), left(aLeft) {} - - void SizeTo(T aLeft, T aTop, T aRight, T aBottom) - { - left = aLeft; top = aTop; right = aRight; bottom = aBottom; - } - - T LeftRight() const { return left + right; } - T TopBottom() const { return top + bottom; } - - T& Side(SideT aSide) { - NS_PRECONDITION(aSide <= NS_SIDE_LEFT, "Out of range side"); - // This is ugly! - return *(&top + aSide); - } - T Side(SideT aSide) const { - NS_PRECONDITION(aSide <= NS_SIDE_LEFT, "Out of range side"); - // This is ugly! - return *(&top + aSide); - } - - // Overloaded operators. Note that '=' isn't defined so we'll get the - // compiler generated default assignment operator - bool operator==(const Sub& aMargin) const { - return left == aMargin.left && top == aMargin.top && - right == aMargin.right && bottom == aMargin.bottom; - } - bool operator!=(const Sub& aMargin) const { - return !(*this == aMargin); - } - Sub operator+(const Sub& aMargin) const { - return Sub(left + aMargin.left, top + aMargin.top, - right + aMargin.right, bottom + aMargin.bottom); - } - Sub operator-(const Sub& aMargin) const { - return Sub(left - aMargin.left, top - aMargin.top, - right - aMargin.right, bottom - aMargin.bottom); - } - Sub& operator+=(const Sub& aMargin) { - left += aMargin.left; - top += aMargin.top; - right += aMargin.right; - bottom += aMargin.bottom; - return *static_cast(this); - } -}; - -} - -#endif /* MOZILLA_BASEMARGIN_H_ */ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Corporation code. + * + * The Initial Developer of the Original Code is Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2011 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Robert O'Callahan + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef MOZILLA_BASEMARGIN_H_ +#define MOZILLA_BASEMARGIN_H_ + +#include "gfxCore.h" + +namespace mozilla { + +/** + * Do not use this class directly. Subclass it, pass that subclass as the + * Sub parameter, and only use that subclass. + */ +template +struct BaseMargin { + typedef mozilla::css::Side SideT; + + // Do not change the layout of these members; the Side() methods below + // depend on this order. + T top, right, bottom, left; + + // Constructors + BaseMargin() : top(0), right(0), bottom(0), left(0) {} + BaseMargin(T aLeft, T aTop, T aRight, T aBottom) : + top(aTop), right(aRight), bottom(aBottom), left(aLeft) {} + + void SizeTo(T aLeft, T aTop, T aRight, T aBottom) + { + left = aLeft; top = aTop; right = aRight; bottom = aBottom; + } + + T LeftRight() const { return left + right; } + T TopBottom() const { return top + bottom; } + + T& Side(SideT aSide) { + NS_PRECONDITION(aSide <= NS_SIDE_LEFT, "Out of range side"); + // This is ugly! + return *(&top + aSide); + } + T Side(SideT aSide) const { + NS_PRECONDITION(aSide <= NS_SIDE_LEFT, "Out of range side"); + // This is ugly! + return *(&top + aSide); + } + + // Overloaded operators. Note that '=' isn't defined so we'll get the + // compiler generated default assignment operator + bool operator==(const Sub& aMargin) const { + return left == aMargin.left && top == aMargin.top && + right == aMargin.right && bottom == aMargin.bottom; + } + bool operator!=(const Sub& aMargin) const { + return !(*this == aMargin); + } + Sub operator+(const Sub& aMargin) const { + return Sub(left + aMargin.left, top + aMargin.top, + right + aMargin.right, bottom + aMargin.bottom); + } + Sub operator-(const Sub& aMargin) const { + return Sub(left - aMargin.left, top - aMargin.top, + right - aMargin.right, bottom - aMargin.bottom); + } + Sub& operator+=(const Sub& aMargin) { + left += aMargin.left; + top += aMargin.top; + right += aMargin.right; + bottom += aMargin.bottom; + return *static_cast(this); + } +}; + +} + +#endif /* MOZILLA_BASEMARGIN_H_ */ diff --git a/gfx/src/BasePoint.h b/gfx/src/BasePoint.h index 568caf80ab6..21cb0b64251 100644 --- a/gfx/src/BasePoint.h +++ b/gfx/src/BasePoint.h @@ -1,100 +1,100 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Corporation code. - * - * The Initial Developer of the Original Code is Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2011 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Robert O'Callahan - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef MOZILLA_BASEPOINT_H_ -#define MOZILLA_BASEPOINT_H_ - -namespace mozilla { - -/** - * Do not use this class directly. Subclass it, pass that subclass as the - * Sub parameter, and only use that subclass. This allows methods to safely - * cast 'this' to 'Sub*'. - */ -template -struct BasePoint { - T x, y; - - // Constructors - BasePoint() : x(0), y(0) {} - BasePoint(T aX, T aY) : x(aX), y(aY) {} - - void MoveTo(T aX, T aY) { x = aX; y = aY; } - void MoveBy(T aDx, T aDy) { x += aDx; y += aDy; } - - // Note that '=' isn't defined so we'll get the - // compiler generated default assignment operator - - bool operator==(const Sub& aPoint) const { - return x == aPoint.x && y == aPoint.y; - } - bool operator!=(const Sub& aPoint) const { - return x != aPoint.x || y != aPoint.y; - } - - Sub operator+(const Sub& aPoint) const { - return Sub(x + aPoint.x, y + aPoint.y); - } - Sub operator-(const Sub& aPoint) const { - return Sub(x - aPoint.x, y - aPoint.y); - } - Sub& operator+=(const Sub& aPoint) { - x += aPoint.x; - y += aPoint.y; - return *static_cast(this); - } - Sub& operator-=(const Sub& aPoint) { - x -= aPoint.x; - y -= aPoint.y; - return *static_cast(this); - } - - Sub operator*(T aScale) const { - return Sub(x * aScale, y * aScale); - } - Sub operator/(T aScale) const { - return Sub(x / aScale, y / aScale); - } - - Sub operator-() const { - return Sub(-x, -y); - } -}; - -} - -#endif /* MOZILLA_BASEPOINT_H_ */ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Corporation code. + * + * The Initial Developer of the Original Code is Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2011 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Robert O'Callahan + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef MOZILLA_BASEPOINT_H_ +#define MOZILLA_BASEPOINT_H_ + +namespace mozilla { + +/** + * Do not use this class directly. Subclass it, pass that subclass as the + * Sub parameter, and only use that subclass. This allows methods to safely + * cast 'this' to 'Sub*'. + */ +template +struct BasePoint { + T x, y; + + // Constructors + BasePoint() : x(0), y(0) {} + BasePoint(T aX, T aY) : x(aX), y(aY) {} + + void MoveTo(T aX, T aY) { x = aX; y = aY; } + void MoveBy(T aDx, T aDy) { x += aDx; y += aDy; } + + // Note that '=' isn't defined so we'll get the + // compiler generated default assignment operator + + bool operator==(const Sub& aPoint) const { + return x == aPoint.x && y == aPoint.y; + } + bool operator!=(const Sub& aPoint) const { + return x != aPoint.x || y != aPoint.y; + } + + Sub operator+(const Sub& aPoint) const { + return Sub(x + aPoint.x, y + aPoint.y); + } + Sub operator-(const Sub& aPoint) const { + return Sub(x - aPoint.x, y - aPoint.y); + } + Sub& operator+=(const Sub& aPoint) { + x += aPoint.x; + y += aPoint.y; + return *static_cast(this); + } + Sub& operator-=(const Sub& aPoint) { + x -= aPoint.x; + y -= aPoint.y; + return *static_cast(this); + } + + Sub operator*(T aScale) const { + return Sub(x * aScale, y * aScale); + } + Sub operator/(T aScale) const { + return Sub(x / aScale, y / aScale); + } + + Sub operator-() const { + return Sub(-x, -y); + } +}; + +} + +#endif /* MOZILLA_BASEPOINT_H_ */ diff --git a/gfx/src/BaseRect.h b/gfx/src/BaseRect.h index 09f9cdc9b4c..49b84f697b7 100644 --- a/gfx/src/BaseRect.h +++ b/gfx/src/BaseRect.h @@ -1,318 +1,318 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Corporation code. - * - * The Initial Developer of the Original Code is Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2011 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Robert O'Callahan - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef MOZILLA_BASERECT_H_ -#define MOZILLA_BASERECT_H_ - -#include "nsAlgorithm.h" - -namespace mozilla { - -/** - * Rectangles have two interpretations: a set of (zero-size) points, - * and a rectangular area of the plane. Most rectangle operations behave - * the same no matter what interpretation is being used, but some operations - * differ: - * -- Equality tests behave differently. When a rectangle represents an area, - * all zero-width and zero-height rectangles are equal to each other since they - * represent the empty area. But when a rectangle represents a set of - * mathematical points, zero-width and zero-height rectangles can be unequal. - * -- The union operation can behave differently. When rectangles represent - * areas, taking the union of a zero-width or zero-height rectangle with - * another rectangle can just ignore the empty rectangle. But when rectangles - * represent sets of mathematical points, we may need to extend the latter - * rectangle to include the points of a zero-width or zero-height rectangle. - * - * To ensure that these interpretations are explicitly disambiguated, we - * deny access to the == and != operators and require use of IsEqualEdges and - * IsEqualInterior instead. Similarly we provide separate Union and UnionEdges - * methods. - * - * Do not use this class directly. Subclass it, pass that subclass as the - * Sub parameter, and only use that subclass. - */ -template -struct BaseRect { - T x, y, width, height; - - // Constructors - BaseRect() : x(0), y(0), width(0), height(0) {} - BaseRect(const Point& aOrigin, const SizeT &aSize) : - x(aOrigin.x), y(aOrigin.y), width(aSize.width), height(aSize.height) - { - } - BaseRect(T aX, T aY, T aWidth, T aHeight) : - x(aX), y(aY), width(aWidth), height(aHeight) - { - } - - // Emptiness. An empty rect is one that has no area, i.e. its height or width - // is <= 0 - bool IsEmpty() const { return height <= 0 || width <= 0; } - void SetEmpty() { width = height = 0; } - - // Returns true if this rectangle contains the interior of aRect. Always - // returns true if aRect is empty, and always returns false is aRect is - // nonempty but this rect is empty. - bool Contains(const Sub& aRect) const - { - return aRect.IsEmpty() || - (x <= aRect.x && aRect.XMost() <= XMost() && - y <= aRect.y && aRect.YMost() <= YMost()); - } - // Returns true if this rectangle contains the rectangle (aX,aY,1,1). - bool Contains(T aX, T aY) const - { - return x <= aX && aX + 1 <= XMost() && - y <= aY && aY + 1 <= YMost(); - } - // Returns true if this rectangle contains the rectangle (aPoint.x,aPoint.y,1,1). - bool Contains(const Point& aPoint) const { return Contains(aPoint.x, aPoint.y); } - - // Intersection. Returns TRUE if the receiver's area has non-empty - // intersection with aRect's area, and FALSE otherwise. - // Always returns false if aRect is empty or 'this' is empty. - bool Intersects(const Sub& aRect) const - { - return x < aRect.XMost() && aRect.x < XMost() && - y < aRect.YMost() && aRect.y < YMost(); - } - // Returns the rectangle containing the intersection of the points - // (including edges) of *this and aRect. If there are no points in that - // intersection, returns an empty rectangle with x/y set to the max of the x/y - // of *this and aRect. - Sub Intersect(const Sub& aRect) const - { - Sub result; - result.x = NS_MAX(x, aRect.x); - result.y = NS_MAX(y, aRect.y); - result.width = NS_MIN(XMost(), aRect.XMost()) - result.x; - result.height = NS_MIN(YMost(), aRect.YMost()) - result.y; - if (result.width < 0 || result.height < 0) { - result.SizeTo(0, 0); - } - return result; - } - // Sets *this to be the rectangle containing the intersection of the points - // (including edges) of *this and aRect. If there are no points in that - // intersection, sets *this to be an empty rectangle with x/y set to the max - // of the x/y of *this and aRect. - // - // 'this' can be the same object as either aRect1 or aRect2 - bool IntersectRect(const Sub& aRect1, const Sub& aRect2) - { - *static_cast(this) = aRect1.Intersect(aRect2); - return !IsEmpty(); - } - - // Returns the smallest rectangle that contains both the area of both - // this and aRect2. - // Thus, empty input rectangles are ignored. - // If both rectangles are empty, returns this. - Sub Union(const Sub& aRect) const - { - if (IsEmpty()) { - return aRect; - } else if (aRect.IsEmpty()) { - return *static_cast(this); - } else { - return UnionEdges(aRect); - } - } - // Returns the smallest rectangle that contains both the points (including - // edges) of both aRect1 and aRect2. - // Thus, empty input rectangles are allowed to affect the result. - Sub UnionEdges(const Sub& aRect) const - { - Sub result; - result.x = NS_MIN(x, aRect.x); - result.y = NS_MIN(y, aRect.y); - result.width = NS_MAX(XMost(), aRect.XMost()) - result.x; - result.height = NS_MAX(YMost(), aRect.YMost()) - result.y; - return result; - } - // Computes the smallest rectangle that contains both the area of both - // aRect1 and aRect2, and fills 'this' with the result. - // Thus, empty input rectangles are ignored. - // If both rectangles are empty, sets 'this' to aRect2. - // - // 'this' can be the same object as either aRect1 or aRect2 - void UnionRect(const Sub& aRect1, const Sub& aRect2) - { - *static_cast(this) = aRect1.Union(aRect2); - } - - // Computes the smallest rectangle that contains both the points (including - // edges) of both aRect1 and aRect2. - // Thus, empty input rectangles are allowed to affect the result. - // - // 'this' can be the same object as either aRect1 or aRect2 - void UnionRectEdges(const Sub& aRect1, const Sub& aRect2) - { - *static_cast(this) = aRect1.UnionEdges(aRect2); - } - - void SetRect(T aX, T aY, T aWidth, T aHeight) - { - x = aX; y = aY; width = aWidth; height = aHeight; - } - void SetRect(const Point& aPt, const SizeT& aSize) - { - SetRect(aPt.x, aPt.y, aSize.width, aSize.height); - } - void MoveTo(T aX, T aY) { x = aX; y = aY; } - void MoveTo(const Point& aPoint) { x = aPoint.x; y = aPoint.y; } - void MoveBy(T aDx, T aDy) { x += aDx; y += aDy; } - void MoveBy(const Point& aPoint) { x += aPoint.x; y += aPoint.y; } - void SizeTo(T aWidth, T aHeight) { width = aWidth; height = aHeight; } - void SizeTo(const SizeT& aSize) { width = aSize.width; height = aSize.height; } - - void Inflate(T aD) { Inflate(aD, aD); } - void Inflate(T aDx, T aDy) - { - x -= aDx; - y -= aDy; - width += 2 * aDx; - height += 2 * aDy; - } - void Inflate(const Margin& aMargin) - { - x -= aMargin.left; - y -= aMargin.top; - width += aMargin.LeftRight(); - height += aMargin.TopBottom(); - } - void Inflate(const SizeT& aSize) { Inflate(aSize.width, aSize.height); } - - void Deflate(T aD) { Deflate(aD, aD); } - void Deflate(T aDx, T aDy) - { - x += aDx; - y += aDy; - width = NS_MAX(T(0), width - 2 * aDx); - height = NS_MAX(T(0), height - 2 * aDy); - } - void Deflate(const Margin& aMargin) - { - x += aMargin.left; - y += aMargin.top; - width = NS_MAX(T(0), width - aMargin.LeftRight()); - height = NS_MAX(T(0), height - aMargin.TopBottom()); - } - void Deflate(const SizeT& aSize) { Deflate(aSize.width, aSize.height); } - - // Return true if the rectangles contain the same set of points, including - // points on the edges. - // Use when we care about the exact x/y/width/height values being - // equal (i.e. we care about differences in empty rectangles). - bool IsEqualEdges(const Sub& aRect) const - { - return x == aRect.x && y == aRect.y && - width == aRect.width && height == aRect.height; - } - // Return true if the rectangles contain the same area of the plane. - // Use when we do not care about differences in empty rectangles. - bool IsEqualInterior(const Sub& aRect) const - { - return IsEqualEdges(aRect) || (IsEmpty() && aRect.IsEmpty()); - } - - Sub operator+(const Point& aPoint) const - { - return Sub(x + aPoint.x, y + aPoint.y, width, height); - } - Sub operator-(const Point& aPoint) const - { - return Sub(x - aPoint.x, y - aPoint.y, width, height); - } - Sub& operator+=(const Point& aPoint) - { - MoveBy(aPoint); - return *static_cast(this); - } - Sub& operator-=(const Point& aPoint) - { - MoveBy(-aPoint); - return *static_cast(this); - } - - // Find difference as a Margin - Margin operator-(const Sub& aRect) const - { - return Margin(aRect.x - x, aRect.y - y, - XMost() - aRect.XMost(), YMost() - aRect.YMost()); - } - - // Helpers for accessing the vertices - Point TopLeft() const { return Point(x, y); } - Point TopRight() const { return Point(XMost(), y); } - Point BottomLeft() const { return Point(x, YMost()); } - Point BottomRight() const { return Point(XMost(), YMost()); } - Point Center() const { return Point(x, y) + Point(width, height)/2; } - SizeT Size() const { return SizeT(width, height); } - - // Helper methods for computing the extents - T X() const { return x; } - T Y() const { return y; } - T Width() const { return width; } - T Height() const { return height; } - T XMost() const { return x + width; } - T YMost() const { return y + height; } - - // Scale 'this' by aScale, converting coordinates to integers so that the result is - // the smallest integer-coordinate rectangle containing the unrounded result. - void ScaleRoundOut(double aScale) { ScaleRoundOut(aScale, aScale); } - void ScaleRoundOut(double aXScale, double aYScale) - { - T right = static_cast(NS_ceil(double(XMost()) * aXScale)); - T bottom = static_cast(NS_ceil(double(YMost()) * aYScale)); - x = static_cast(NS_floor(double(x) * aXScale)); - y = static_cast(NS_floor(double(y) * aYScale)); - width = right - x; - height = bottom - y; - } - -private: - // Do not use the default operator== or operator!= ! - // Use IsEqualEdges or IsEqualInterior explicitly. - bool operator==(const Sub& aRect) const { return false; } - bool operator!=(const Sub& aRect) const { return false; } -}; - -} - -#endif /* MOZILLA_BASERECT_H_ */ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Corporation code. + * + * The Initial Developer of the Original Code is Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2011 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Robert O'Callahan + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef MOZILLA_BASERECT_H_ +#define MOZILLA_BASERECT_H_ + +#include "nsAlgorithm.h" + +namespace mozilla { + +/** + * Rectangles have two interpretations: a set of (zero-size) points, + * and a rectangular area of the plane. Most rectangle operations behave + * the same no matter what interpretation is being used, but some operations + * differ: + * -- Equality tests behave differently. When a rectangle represents an area, + * all zero-width and zero-height rectangles are equal to each other since they + * represent the empty area. But when a rectangle represents a set of + * mathematical points, zero-width and zero-height rectangles can be unequal. + * -- The union operation can behave differently. When rectangles represent + * areas, taking the union of a zero-width or zero-height rectangle with + * another rectangle can just ignore the empty rectangle. But when rectangles + * represent sets of mathematical points, we may need to extend the latter + * rectangle to include the points of a zero-width or zero-height rectangle. + * + * To ensure that these interpretations are explicitly disambiguated, we + * deny access to the == and != operators and require use of IsEqualEdges and + * IsEqualInterior instead. Similarly we provide separate Union and UnionEdges + * methods. + * + * Do not use this class directly. Subclass it, pass that subclass as the + * Sub parameter, and only use that subclass. + */ +template +struct BaseRect { + T x, y, width, height; + + // Constructors + BaseRect() : x(0), y(0), width(0), height(0) {} + BaseRect(const Point& aOrigin, const SizeT &aSize) : + x(aOrigin.x), y(aOrigin.y), width(aSize.width), height(aSize.height) + { + } + BaseRect(T aX, T aY, T aWidth, T aHeight) : + x(aX), y(aY), width(aWidth), height(aHeight) + { + } + + // Emptiness. An empty rect is one that has no area, i.e. its height or width + // is <= 0 + bool IsEmpty() const { return height <= 0 || width <= 0; } + void SetEmpty() { width = height = 0; } + + // Returns true if this rectangle contains the interior of aRect. Always + // returns true if aRect is empty, and always returns false is aRect is + // nonempty but this rect is empty. + bool Contains(const Sub& aRect) const + { + return aRect.IsEmpty() || + (x <= aRect.x && aRect.XMost() <= XMost() && + y <= aRect.y && aRect.YMost() <= YMost()); + } + // Returns true if this rectangle contains the rectangle (aX,aY,1,1). + bool Contains(T aX, T aY) const + { + return x <= aX && aX + 1 <= XMost() && + y <= aY && aY + 1 <= YMost(); + } + // Returns true if this rectangle contains the rectangle (aPoint.x,aPoint.y,1,1). + bool Contains(const Point& aPoint) const { return Contains(aPoint.x, aPoint.y); } + + // Intersection. Returns TRUE if the receiver's area has non-empty + // intersection with aRect's area, and FALSE otherwise. + // Always returns false if aRect is empty or 'this' is empty. + bool Intersects(const Sub& aRect) const + { + return x < aRect.XMost() && aRect.x < XMost() && + y < aRect.YMost() && aRect.y < YMost(); + } + // Returns the rectangle containing the intersection of the points + // (including edges) of *this and aRect. If there are no points in that + // intersection, returns an empty rectangle with x/y set to the max of the x/y + // of *this and aRect. + Sub Intersect(const Sub& aRect) const + { + Sub result; + result.x = NS_MAX(x, aRect.x); + result.y = NS_MAX(y, aRect.y); + result.width = NS_MIN(XMost(), aRect.XMost()) - result.x; + result.height = NS_MIN(YMost(), aRect.YMost()) - result.y; + if (result.width < 0 || result.height < 0) { + result.SizeTo(0, 0); + } + return result; + } + // Sets *this to be the rectangle containing the intersection of the points + // (including edges) of *this and aRect. If there are no points in that + // intersection, sets *this to be an empty rectangle with x/y set to the max + // of the x/y of *this and aRect. + // + // 'this' can be the same object as either aRect1 or aRect2 + bool IntersectRect(const Sub& aRect1, const Sub& aRect2) + { + *static_cast(this) = aRect1.Intersect(aRect2); + return !IsEmpty(); + } + + // Returns the smallest rectangle that contains both the area of both + // this and aRect2. + // Thus, empty input rectangles are ignored. + // If both rectangles are empty, returns this. + Sub Union(const Sub& aRect) const + { + if (IsEmpty()) { + return aRect; + } else if (aRect.IsEmpty()) { + return *static_cast(this); + } else { + return UnionEdges(aRect); + } + } + // Returns the smallest rectangle that contains both the points (including + // edges) of both aRect1 and aRect2. + // Thus, empty input rectangles are allowed to affect the result. + Sub UnionEdges(const Sub& aRect) const + { + Sub result; + result.x = NS_MIN(x, aRect.x); + result.y = NS_MIN(y, aRect.y); + result.width = NS_MAX(XMost(), aRect.XMost()) - result.x; + result.height = NS_MAX(YMost(), aRect.YMost()) - result.y; + return result; + } + // Computes the smallest rectangle that contains both the area of both + // aRect1 and aRect2, and fills 'this' with the result. + // Thus, empty input rectangles are ignored. + // If both rectangles are empty, sets 'this' to aRect2. + // + // 'this' can be the same object as either aRect1 or aRect2 + void UnionRect(const Sub& aRect1, const Sub& aRect2) + { + *static_cast(this) = aRect1.Union(aRect2); + } + + // Computes the smallest rectangle that contains both the points (including + // edges) of both aRect1 and aRect2. + // Thus, empty input rectangles are allowed to affect the result. + // + // 'this' can be the same object as either aRect1 or aRect2 + void UnionRectEdges(const Sub& aRect1, const Sub& aRect2) + { + *static_cast(this) = aRect1.UnionEdges(aRect2); + } + + void SetRect(T aX, T aY, T aWidth, T aHeight) + { + x = aX; y = aY; width = aWidth; height = aHeight; + } + void SetRect(const Point& aPt, const SizeT& aSize) + { + SetRect(aPt.x, aPt.y, aSize.width, aSize.height); + } + void MoveTo(T aX, T aY) { x = aX; y = aY; } + void MoveTo(const Point& aPoint) { x = aPoint.x; y = aPoint.y; } + void MoveBy(T aDx, T aDy) { x += aDx; y += aDy; } + void MoveBy(const Point& aPoint) { x += aPoint.x; y += aPoint.y; } + void SizeTo(T aWidth, T aHeight) { width = aWidth; height = aHeight; } + void SizeTo(const SizeT& aSize) { width = aSize.width; height = aSize.height; } + + void Inflate(T aD) { Inflate(aD, aD); } + void Inflate(T aDx, T aDy) + { + x -= aDx; + y -= aDy; + width += 2 * aDx; + height += 2 * aDy; + } + void Inflate(const Margin& aMargin) + { + x -= aMargin.left; + y -= aMargin.top; + width += aMargin.LeftRight(); + height += aMargin.TopBottom(); + } + void Inflate(const SizeT& aSize) { Inflate(aSize.width, aSize.height); } + + void Deflate(T aD) { Deflate(aD, aD); } + void Deflate(T aDx, T aDy) + { + x += aDx; + y += aDy; + width = NS_MAX(T(0), width - 2 * aDx); + height = NS_MAX(T(0), height - 2 * aDy); + } + void Deflate(const Margin& aMargin) + { + x += aMargin.left; + y += aMargin.top; + width = NS_MAX(T(0), width - aMargin.LeftRight()); + height = NS_MAX(T(0), height - aMargin.TopBottom()); + } + void Deflate(const SizeT& aSize) { Deflate(aSize.width, aSize.height); } + + // Return true if the rectangles contain the same set of points, including + // points on the edges. + // Use when we care about the exact x/y/width/height values being + // equal (i.e. we care about differences in empty rectangles). + bool IsEqualEdges(const Sub& aRect) const + { + return x == aRect.x && y == aRect.y && + width == aRect.width && height == aRect.height; + } + // Return true if the rectangles contain the same area of the plane. + // Use when we do not care about differences in empty rectangles. + bool IsEqualInterior(const Sub& aRect) const + { + return IsEqualEdges(aRect) || (IsEmpty() && aRect.IsEmpty()); + } + + Sub operator+(const Point& aPoint) const + { + return Sub(x + aPoint.x, y + aPoint.y, width, height); + } + Sub operator-(const Point& aPoint) const + { + return Sub(x - aPoint.x, y - aPoint.y, width, height); + } + Sub& operator+=(const Point& aPoint) + { + MoveBy(aPoint); + return *static_cast(this); + } + Sub& operator-=(const Point& aPoint) + { + MoveBy(-aPoint); + return *static_cast(this); + } + + // Find difference as a Margin + Margin operator-(const Sub& aRect) const + { + return Margin(aRect.x - x, aRect.y - y, + XMost() - aRect.XMost(), YMost() - aRect.YMost()); + } + + // Helpers for accessing the vertices + Point TopLeft() const { return Point(x, y); } + Point TopRight() const { return Point(XMost(), y); } + Point BottomLeft() const { return Point(x, YMost()); } + Point BottomRight() const { return Point(XMost(), YMost()); } + Point Center() const { return Point(x, y) + Point(width, height)/2; } + SizeT Size() const { return SizeT(width, height); } + + // Helper methods for computing the extents + T X() const { return x; } + T Y() const { return y; } + T Width() const { return width; } + T Height() const { return height; } + T XMost() const { return x + width; } + T YMost() const { return y + height; } + + // Scale 'this' by aScale, converting coordinates to integers so that the result is + // the smallest integer-coordinate rectangle containing the unrounded result. + void ScaleRoundOut(double aScale) { ScaleRoundOut(aScale, aScale); } + void ScaleRoundOut(double aXScale, double aYScale) + { + T right = static_cast(NS_ceil(double(XMost()) * aXScale)); + T bottom = static_cast(NS_ceil(double(YMost()) * aYScale)); + x = static_cast(NS_floor(double(x) * aXScale)); + y = static_cast(NS_floor(double(y) * aYScale)); + width = right - x; + height = bottom - y; + } + +private: + // Do not use the default operator== or operator!= ! + // Use IsEqualEdges or IsEqualInterior explicitly. + bool operator==(const Sub& aRect) const { return false; } + bool operator!=(const Sub& aRect) const { return false; } +}; + +} + +#endif /* MOZILLA_BASERECT_H_ */ diff --git a/gfx/src/BaseSize.h b/gfx/src/BaseSize.h index 5cb3ba58de5..f995b337261 100644 --- a/gfx/src/BaseSize.h +++ b/gfx/src/BaseSize.h @@ -1,101 +1,101 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Corporation code. - * - * The Initial Developer of the Original Code is Mozilla Foundation. - * Portions created by the Initial Developer are Copyright (C) 2011 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Robert O'Callahan - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef MOZILLA_BASESIZE_H_ -#define MOZILLA_BASESIZE_H_ - -namespace mozilla { - -/** - * Do not use this class directly. Subclass it, pass that subclass as the - * Sub parameter, and only use that subclass. This allows methods to safely - * cast 'this' to 'Sub*'. - */ -template -struct BaseSize { - T width, height; - - // Constructors - BaseSize() : width(0), height(0) {} - BaseSize(T aWidth, T aHeight) : width(aWidth), height(aHeight) {} - - void SizeTo(T aWidth, T aHeight) { width = aWidth; height = aHeight; } - - // Note that '=' isn't defined so we'll get the - // compiler generated default assignment operator - - bool operator==(const Sub& aSize) const { - return width == aSize.width && height == aSize.height; - } - bool operator!=(const Sub& aSize) const { - return width != aSize.width || height != aSize.height; - } - bool operator<=(const Sub& aSize) const { - return width <= aSize.width && height <= aSize.height; - } - bool operator<(const Sub& aSize) const { - return *this <= aSize && *this != aSize; - } - - Sub operator+(const Sub& aSize) const { - return Sub(width + aSize.width, height + aSize.height); - } - Sub operator-(const Sub& aSize) const { - return Sub(width - aSize.width, height - aSize.height); - } - Sub& operator+=(const Sub& aSize) { - width += aSize.width; - height += aSize.height; - return *static_cast(this); - } - Sub& operator-=(const Sub& aSize) { - width -= aSize.width; - height -= aSize.height; - return *static_cast(this); - } - - Sub operator*(T aScale) const { - return Sub(width * aScale, height * aScale); - } - Sub operator/(T aScale) const { - return Sub(width / aScale, height / aScale); - } -}; - -} - -#endif /* MOZILLA_BASESIZE_H_ */ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Corporation code. + * + * The Initial Developer of the Original Code is Mozilla Foundation. + * Portions created by the Initial Developer are Copyright (C) 2011 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Robert O'Callahan + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef MOZILLA_BASESIZE_H_ +#define MOZILLA_BASESIZE_H_ + +namespace mozilla { + +/** + * Do not use this class directly. Subclass it, pass that subclass as the + * Sub parameter, and only use that subclass. This allows methods to safely + * cast 'this' to 'Sub*'. + */ +template +struct BaseSize { + T width, height; + + // Constructors + BaseSize() : width(0), height(0) {} + BaseSize(T aWidth, T aHeight) : width(aWidth), height(aHeight) {} + + void SizeTo(T aWidth, T aHeight) { width = aWidth; height = aHeight; } + + // Note that '=' isn't defined so we'll get the + // compiler generated default assignment operator + + bool operator==(const Sub& aSize) const { + return width == aSize.width && height == aSize.height; + } + bool operator!=(const Sub& aSize) const { + return width != aSize.width || height != aSize.height; + } + bool operator<=(const Sub& aSize) const { + return width <= aSize.width && height <= aSize.height; + } + bool operator<(const Sub& aSize) const { + return *this <= aSize && *this != aSize; + } + + Sub operator+(const Sub& aSize) const { + return Sub(width + aSize.width, height + aSize.height); + } + Sub operator-(const Sub& aSize) const { + return Sub(width - aSize.width, height - aSize.height); + } + Sub& operator+=(const Sub& aSize) { + width += aSize.width; + height += aSize.height; + return *static_cast(this); + } + Sub& operator-=(const Sub& aSize) { + width -= aSize.width; + height -= aSize.height; + return *static_cast(this); + } + + Sub operator*(T aScale) const { + return Sub(width * aScale, height * aScale); + } + Sub operator/(T aScale) const { + return Sub(width / aScale, height / aScale); + } +}; + +} + +#endif /* MOZILLA_BASESIZE_H_ */ diff --git a/gfx/src/nsRect.h b/gfx/src/nsRect.h index c5557633123..c736d3acf87 100644 --- a/gfx/src/nsRect.h +++ b/gfx/src/nsRect.h @@ -118,7 +118,7 @@ struct NS_GFX nsIntRect : } inline nsRect ToAppUnits(nscoord aAppUnitsPerPixel) const; - + // Returns a special nsIntRect that's used in some places to signify // "all available space". static const nsIntRect& GetMaxSizedIntRect() { return kMaxSizedIntRect; } diff --git a/gfx/src/nsRegion.cpp b/gfx/src/nsRegion.cpp index b77425c9d98..858010d0a6c 100644 --- a/gfx/src/nsRegion.cpp +++ b/gfx/src/nsRegion.cpp @@ -1308,22 +1308,22 @@ nsRegion& nsRegion::ExtendForScaling (float aXMult, float aYMult) *this = region; return *this; } - -nsRegion& nsRegion::ScaleRoundOut (float aXScale, float aYScale) -{ - nsRegion region; - nsRegionRectIterator iter(*this); - for (;;) { - const nsRect* r = iter.Next(); - if (!r) - break; - nsRect rect = *r; - rect.ScaleRoundOut(aXScale, aYScale); - region.Or(region, rect); - } - *this = region; - return *this; -} + +nsRegion& nsRegion::ScaleRoundOut (float aXScale, float aYScale) +{ + nsRegion region; + nsRegionRectIterator iter(*this); + for (;;) { + const nsRect* r = iter.Next(); + if (!r) + break; + nsRect rect = *r; + rect.ScaleRoundOut(aXScale, aYScale); + region.Or(region, rect); + } + *this = region; + return *this; +} nsRegion nsRegion::ConvertAppUnitsRoundOut (PRInt32 aFromAPP, PRInt32 aToAPP) const { diff --git a/gfx/src/nsRegion.h b/gfx/src/nsRegion.h index 4cab3f50da0..abdce9d8b49 100644 --- a/gfx/src/nsRegion.h +++ b/gfx/src/nsRegion.h @@ -441,12 +441,12 @@ public: { return FromRect (mImpl.GetLargestRectangle( ToRect(aContainingRect) )); } - - nsIntRegion& ScaleRoundOut (float aXScale, float aYScale) - { - mImpl.ScaleRoundOut(aXScale, aYScale); - return *this; - } + + nsIntRegion& ScaleRoundOut (float aXScale, float aYScale) + { + mImpl.ScaleRoundOut(aXScale, aYScale); + return *this; + } nsIntRegion& ExtendForScaling (float aXMult, float aYMult) {